• Hey Guest. Check out your NeoGAF Wrapped 2025 results here!

GAF Devs Thread - a thread about programmer's rants

Status
Not open for further replies.
Halycon said:
I hate arrays, I use <vector> whenever possible. I blame it on doing a lot of assignments in AS3, where the Arrays expand, have built in methods for length/sort/whatever, and can contain anything and everything without explicit declarations. Totally spoiled, so learning C++ afterwards was a slap in the face.

Don't be a web programmer and learn PHP because that shit will mess up any sort of strict programming you can have. Although we try to follow the Zend Programming Standards at work it's a hard battle...
 
Ecrofirt said:
Quick C# question that I'm pretty sure I know the answer to.

I'm trying to make some of the functions in my game a little bit more generic so they can be used across multiple game modes. As it stands now, I've only been working on the 'standard' mode, but the other modes in the game will all act similarly.

I've got a function now that does collision checking, and it's got a signature that looks like this:
Code:
List<Ball> balls; //defined for the whole class
List<Layer> layers; //defined for the whole class

private void CheckForCollision(int index){}

And that function basically checks if ball[index] possibly collides with any of the layers. Everything works just dandy now.

However, in two-player mode, there's going to be two lists of balls, and two lists of layers. The way this function works, the code will be fine, so long as it knows which list of balls and which list of layers to check with.

What I'm wondering is this (and I likely already know the answer, due to how C# works):

If I pass the list of balls, as well as the list of layers into the function, I'm only passing a reference in, right? I don't have to worry about it copying everything and doing it by value, even though the List class uses an underlying array, right?

I know I'm just over-thinking this. List is a class, and it should then automatically be a reference type, so there's nothing I've got to worry about, right?

Yes, the list will be passed as a reference. Arrays are passed by reference also, not that any implementation details of List would effect whether it's passed as a reference or value. Besides the struct/class keywords obviously.

poweld said:
I'm a C/C++ guy, but I know how to use Google.

"c# pass by reference"

First result:

http://msdn.microsoft.com/en-us/library/0f66670z(v=vs.71).aspx

This isn't the correct way in this situation. The ref keyword is similar to a **. It would allow you to play with the variable passed in. Generally, this isn't a good idea to use and it's usually unnecessary.
 
Halycon said:
I hate arrays, I use <vector> whenever possible. I blame it on doing a lot of assignments in AS3, where the Arrays expand, have built in methods for length/sort/whatever, and can contain anything and everything without explicit declarations. Totally spoiled, so learning C++ afterwards was a slap in the face.
Yeah, I had to use arrays in this case since a Fourier transform function that I was using with OpenCV didn't have a form that accepted vectors. After this mess though, I just found a workaround.
 
mike23 said:
This isn't the correct way in this situation. The ref keyword is similar to a **. It would allow you to play with the variable passed in. Generally, this isn't a good idea to use and it's usually unnecessary.
I'm not sure I follow you, since that is the intention of passing a variable by reference. If you modify a parameter passed by reference, you are actually modifying the original.
 
poweld said:
I'm not sure I follow you, since that is the intention of passing a variable by reference. If you modify a parameter passed by reference, you are actually modifying the original.

Like I said, it's almost like a **.

In C#,

value types get sent by value

reference types are passed as a reference by value by default.

Code:
private List<int> test = new List<int>();

private void Method1(List<int> p)
{
    p.Add(50); 
    p = new List<int>();
    // called with Method1(test);
    // this is fine, would cause the private variable test to contain the number 50 now
    // the second line doesn't effect test
    // the second list is thrown away/optimized out, whatever
}

private  void Method2(ref List<int> p)
{
   p.Add(50);
   p = new List<int>();
   // when called with Method2(ref test);
   // test is now an empty list. if someone had a reference to the old test list, 
   // it would have 50 in it.
}

Replace the add with his collision detection code or whatever.
 
This is a math question more than it is a programming question but I'm throwing it up here anyway in case anyone can give me some advice.

I'm programming a small pinball game using Rigid Body physics and I'm stuck on the ordinary differential equation solver implementation. I used an RK4 solver (you can find it described at Glenn Fieldler's blog here) in my previous assignment, which I hoped to reuse again for this one but I've hit a snag.

The RK4 integrator looks like this:
Code:
void integrate(State &state, float t, float dt)
{
[INDENT]Derivative a = evaluate(state, t, 0.0f, Derivative());
Derivative b = evaluate(state, t+dt*0.5f, dt*0.5f, a);
Derivative c = evaluate(state, t+dt*0.5f, dt*0.5f, b);
Derivative d = evaluate(state, t+dt, dt, c);

const float dxdt = 1.0f/6.0f * (a.dx + 2.0f*(b.dx + c.dx) + d.dx);
const float dvdt = 1.0f/6.0f * (a.dv + 2.0f*(b.dv + c.dv) + d.dv)

state.x = state.x + dxdt * dt;
state.v = state.v + dvdt * dt;[/INDENT]
}
The evaluate() function calculates a new derivative using a state, a timestep (delta t or dt) and the previous derivation in order to detect curvature in the motion of an object. The result is the weighted average of all four derivatives.

The problem arises within the evaluate() function. Fiedler's implementation has a function called accelerate(). What this does is it gives an acceleration to the object using Hooke's law and some arbitrary dampening. However, in my game, I would have multiple objects colliding simultaneously. Ideally, I want to calculate all the forces acting on any object after collision detection, then let the physics code handle the rest. This is how it's done using Euler Integration. In order to use the RK4 integrator, however, I would have to recalculate the states of every game object for each of the calculations. This is because unless the acceleration of a given object changes over a single time step, the RK4 integrator is meaningless. It is there to detect curvature and there can be no curvature unless the slope (force in case of linear motion, torque in case of rotational motion) changes over time. And in order to calculate a new acceleration, I need to know how the game might have changed while iterating over dt.

So, what would Programming-GAF do? Say "Fuck it" and use Euler Integration or "Challenge Accepted" and code a monstrosity of a physics simulation?

EDIT: After thinking about it some more I realize that if I calculate acceleration just once and then use the same value for all four derivatives, velocity will increase linearly. Position, however, will still have some curvature, and the RK4 method will pick up on that. This might just save me quite a few calculations in the end.

Leaving the post up in case anyone else is interested.
 
.NET WinForms design question (Visual Studio 2010):

Is there a more robust way (either with stock VS2010 pro, or a plugin) to manually lay out controls and manipulate the control than using the Designer view, without getting as low-level (and potentially risky) as to edit the .designer.cs code directly?

Basically I have a bunch of panels that all use DockStyle.Fill and overlay each other on the form, but I need to be able to lay out their child controls as well. Since they overlay each other, I can't exactly drag-drop stuff around like I could on a regular form.

Even a read-only treeview that I could use to spot check would be great.

edit: Found something 5 seconds after posting. [View] > [Document Outline] is exactly what I need. So much easier.
 
Mister Zimbu said:
.NET WinForms design question (Visual Studio 2010):

Is there a more robust way (either with stock VS2010 pro, or a plugin) to manually lay out controls and manipulate the control than using the Designer view, without getting as low-level (and potentially risky) as to edit the .designer.cs code directly?

Basically I have a bunch of panels that all use DockStyle.Fill and overlay each other on the form, but I need to be able to lay out their child controls as well. Since they overlay each other, I can't exactly drag-drop stuff around like I could on a regular form.

Even a read-only treeview that I could use to spot check would be great.

edit: Found something 5 seconds after posting. [View] > [Document Outline] is exactly what I need. So much easier.

Have you tried WPF? A lot more flexible than standard WinForms, but also a lot tougher to deal with. I was tasked to do with WPF for my most recent project, and I personally hated it... but to each his own.
 
djtiesto said:
Have you tried WPF? A lot more flexible than standard WinForms, but also a lot tougher to deal with. I was tasked to do with WPF for my most recent project, and I personally hated it... but to each his own.

The learning curve for WPF is very steep, but once you get there you never want to leave. At least that's how it is/was for me. I don't think there is any general GUI designer exists that is in the same league as WPF, to be honest.
 
It looks like there are a couple of Web Developers in here. My projects have been moving towards a development and creating back end systems. What do you guys think of PHP frameworks like CodeIgniter and CakePHP? I haven't been using them but just came across them and they seem like they would be very useful. Any of you have opinions on them or others?

edit- Just came across Yii which looks interesting. Also seeing positive and negative things for Symfony
 
Group work time! Here's my partner's contribution:
Code:
_points = new vector3[0]; 
for( int i = 0; i < count;i++)
{
[INDENT]_points[i] = leftCurvePoints[i];
_points[i+100] = rightCurvePoints[i];[/INDENT]
}
Somehow this code works on the lab machines, but throws a heap corruption error on mine.

:|
 
Halycon said:
Code:
_points = new vector3[0]; 
for( int i = 0; i < count;i++)
{
[INDENT]_points[i] = leftCurvePoints[i];
_points[i+100] = rightCurvePoints[i];[/INDENT]
}
Somehow this code works on the lab machines, but throws a heap corruption error on mine.

:|
You're initializing a vector of size 0, and then accessing indices inside of it. Try this:
Code:
_points = new vector3[count+100]; 
for( int i = 0; i < count;i++)
{
[INDENT]_points[i] = leftCurvePoints[i];
_points[i+100] = rightCurvePoints[i];[/INDENT]
}
 
Oh I know the problem, I forgot to clarify.

I was just flabbergasted that my group partner wrote something like this and then it actually ran. I thought VS2010 would've caught something like this.
 
KiKaL said:
It looks like there are a couple of Web Developers in here. My projects have been moving towards a development and creating back end systems. What do you guys think of PHP frameworks like CodeIgniter and CakePHP? I haven't been using them but just came across them and they seem like they would be very useful. Any of you have opinions on them or others?

edit- Just came across Yii which looks interesting. Also seeing positive and negative things for Symfony

MVC in general is good, but I haven't used any frameworks for PHP. If the alternative is vanilla PHP, then I would say try out the framework with the best reputation. For what it's worth, CakePHP is the only one I've heard of.
 
Anybody here work with Dreamweaver? Thoughts?

I've never been a fan of WYSIWYG editors, but I recently came across an opportunity, so...
 
I don't know if this is the right place to ask but I was wondering how US employers react to someone with a CS degree from a foreign University? I don't think it would matter as long as I show some projects were my skills are demonstrated....right?

Also,I would like to know what's the kind of math that average programmers know?

I was wondering because most people have told me that Linear Algebra is necessary for a programmer but it's an elective in my University :/
 
Halycon said:
Oh I know the problem, I forgot to clarify.

I was just flabbergasted that my group partner wrote something like this and then it actually ran. I thought VS2010 would've caught something like this.
Ahh ok. To be honest, I'm not surprised that it ran - the compiler can't know that the indexes being referenced at runtime won't exist. I would be fairly surprised, though, if this ran without a segfault. The only way I could see this working without some catastrophic failure is if you had a large buffer on top of that vector in the stack that wasn't really being used, and the vector was just eating into that buffer without consequence.

Hope you're not relying to heavily on this partner :)
 
99hertz said:
I don't know if this is the right place to ask but I was wondering how US employers react to someone with a CS degree from a foreign University? I don't think it would matter as long as I show some projects were my skills are demonstrated....right?

Also,I would like to know what's the kind of math that average programmers know?

I was wondering because most people have told me that Linear Algebra is necessary for a programmer but it's an elective in my University :/

Are you also looking for a visa, or are you a citizen?

For me it was calculus, linear algebra, and probability. However, there's nothing beyond basic math involved at my company unless you're one of the mathematicians. It really depends on what you want to do.
 
Zoe said:
Are you also looking for a visa, or are you a citizen?

For me it was calculus, linear algebra, and probability. However, there's nothing beyond basic math involved at my company unless you're one of the mathematicians. It really depends on what you want to do.


I'm a citizen,so I would have no problems with that. (Except the fact that I've never lived in the States,but I don't think that's a problem.) I was just wondering how badly I would have it against someone that went to college there.

Maybe I will not take it and take AI or something else.

One more thing, what the mathematicians in your work do?

Thanks for answering.
 
poweld said:
Hope you're not relying to heavily on this partner :)
Thankfully, this is my final project. It's about 80% me and 20% my partner.
 
99hertz said:
I'm a citizen,so I would have no problems with that. (Except the fact that I've never lived in the States,but I don't think that's a problem.) I was just wondering how badly I would have it against someone that went to college there.

I wouldn't sweat it too much. Let your experience and knowledge speak for you.

Interviewers may unconsciously treat candidates differently when they have backgrounds similar to their own, but that's not always a good thing.

99hertz said:
One more thing, what the mathematicians in your work do?

I honestly don't know for sure, and I'm not sure if I want to know :lol Most likely something to do with probability and random numbers...
 
thcsquad said:
MVC in general is good, but I haven't used any frameworks for PHP. If the alternative is vanilla PHP, then I would say try out the framework with the best reputation. For what it's worth, CakePHP is the only one I've heard of.


I ended up going with CodeIgniter for now. It has the most tutorials that I could easily find.
 
KiKaL said:
I ended up going with CodeIgniter for now. It has the most tutorials that I could easily find.

From my low exposure to them, CodeIgniter is the less restrictive in its MVC practices, Cake is fine but ultimately all of them feel like a cheap/limited/forces version of Ruby on Rails.

If you can, I'd recommend you RoR instead.
 
Is anyone else tired of these overwhelming requirements employers have? Almost every job posting I read expects you to know every modern technology and even niches. I don't know what to apply for anymore.
 
Seriously, what is so hard about working with raw bytes?

NO! -128 will not be equal to 0xFF.

Also, if you're making a get/set function, and you are using some Hungarian-notation type style for naming your member variables, you don't need to carry those over to the get/set method names.

If you have

int m_iFoo;

don't name the get method getM_iFoo. Just call it getFoo.

ARGHH
 
Zoe said:
Anybody here work with Dreamweaver? Thoughts?

I've never been a fan of WYSIWYG editors, but I recently came across an opportunity, so...
Way late but i'll speak my thoughts.

By default, a lot of built-in templates for dreamweaver are very table driven as opposed to style sheet driven. At least, this was the case a couple years back. Honestly, a lot of content management systems are far more powerful than Dreamweaver. So, I see it as mostly a relic of the late 90s/early 00s.


deadbeef said:
Seriously, what is so hard about working with raw bytes?

NO! -128 will not be equal to 0xFF.

I agree with this. You'd think most programmers would understand simple 8 bit 2's complement binary numbers.
 
mugurumakensei said:
Way late but i'll speak my thoughts.

By default, a lot of built-in templates for dreamweaver are very table driven as opposed to style sheet driven. At least, this was the case a couple years back. Honestly, a lot of content management systems are far more powerful than Dreamweaver. So, I see it as mostly a relic of the late 90s/early 00s.

I tried out CS5 a couple of weeks ago, but I quickly ended up just typing everything out :lol
 
Dear Boss/Manager,

Just because you say "Can you do this for me quickly" does not mean it can actually be done quickly. So please, don't look at me with a blank face when I tell you how long it will actually take.

Thank you.
 
DualShadow said:
Dear Boss/Manager,

Just because you say "Can you do this for me quickly" does not mean it can actually be done quickly. So please, don't look at me with a blank face when I tell you how long it will actually take.

Thank you.
Steve McConnell has a book called Software Estimating: Demystifying The Black Art that addresses this particular situation exactly. Also, it's a great book anyway. I highly recommend it.
 
I am so ready for my next contract.

I'm a contract developer for a bank in Charlotte, NC, working on a webform ASP.NET app (plus related batch jobs) in C#. This app is just horrible. I've been on it for a year, have 6 more months to go before I "age out" and have to find another contract elsewhere. But I am so ready to go right now.

Next time, and I was hoping this time would have been the opportunity, but next time, I swear I want to work on decently written code, with senior developers who know what the heck they're doing. Just thinking about this app sucks the life out of me.
 
Randolph Freelander said:
I am so ready for my next contract.

I'm a contract developer for a bank in Charlotte, NC, working on a webform ASP.NET app (plus related batch jobs) in C#. This app is just horrible. I've been on it for a year, have 6 more months to go before I "age out" and have to find another contract elsewhere. But I am so ready to go right now.

Next time, and I was hoping this time would have been the opportunity, but next time, I swear I want to work on decently written code, with senior developers who know what the heck they're doing. Just thinking about this app sucks the life out of me.

One of the apps I worked on does this to me...

It's an ASP.Net app.. that is so horribly written it's painful..

There isn't a single ASPX page with actual HTML in it. Everything, and I mean, EVERYTHING is generated on the fly using the HTML classes in the framework.

And it's so pointless.. it's not some highly dynamic app.. that's just how they thought to code it.. everything about this application is so terrible I can't stand it.
 
nVidiot_Whore said:
One of the apps I worked on does this to me...

It's an ASP.Net app.. that is so horribly written it's painful..

There isn't a single ASPX page with actual HTML in it. Everything, and I mean, EVERYTHING is generated on the fly using the HTML classes in the framework.

Sounds almost like something I am fortunately not working on, but an app in the same general group is written with all the HTML in the database, I mean there's no web controls or anything, and practically everything is written with reflection instead of strong type references in code.
 
Randolph Freelander said:
Sounds almost like something I am fortunately not working on, but an app in the same general group is written with all the HTML in the database, I mean there's no web controls or anything, and practically everything is written with reflection instead of strong type references in code.

Yeah I've worked with an app that had all of the HTML in the DB. That was also pretty terrible to work with.

I love reflection.. I imagine they are using it where it doesn't need to be though?

That's what I'm GUESSING is wrong with this app.. like the dev just used techniques because they heard they were good techniques, without bothering to use them correctly. Their use of classes is also terribly implemented.

I hate thinking about it.. haven't done major coding with the app for a year but every time I have to fix a bug my manager tells me she says a little prayer hoping I won't up and quit.. lol
 
Speaking of original developers, those people ruin it for everyone. They can write an app horrible as all, but as long as it works on some basic level (could have tons of defects), good luck changing it. You just don't have the budget for it. You can introduce small changes as you go, but the line of business doesn't want to hear "this app sucks, we need to rewrite it." They just want new feature X and updated business rule B implemented pronto.
 
So the manufacturers of this motion controller I'm working with include several example projects that show us how to use their libraries for serial communication. But for some reason they decided to include only a Microsoft Visual Studio .dsp project which means that for me to get a nice simple makefile I have to download Visual Studio and actively export the makefile. Why wouldn't you include one?
 
I need some sage advice from people who have been programming professionally longer than I have.

I recently turned in my notice so I could take a web development position. No more QA! Hooray! I wasn't really expecting my current company to fight hard to keep me. My manager told me I wouldn't be qualified for a developer position (not my major, no professional experience), so they tried to offer a salaried QA position and a 20% raise. Hah, new job's giving me 40%, and no more QA!

Then they came back an hour later and said, okay, how about software dev with a 40% raise.

(actually a couple thousand more than the new job)

x_x

Staying with my current company will definitely be more convenient, but I'm wary about the portability of the skills I would develop if I stay. My beginning projects would be working on automation backends so QA could write simple scripts in C# for testing our services and hardware components. Eventually (after getting through the perpetual backlog) there's potential to work on the web interfaces for various management services we develop.

I don't have enough exposure to other companies/industries to know how much I could apply all of that elsewhere. Web development with the new job, however, is pretty universal. Then again, web developers are pretty much a dime a dozen...

Help me GAF! I'm planning on asking for a sample of the backend code I'd be working on. Anything else I should ask about or red flags I should look for?
 
Sounds like you're making the right move. It's incredibly difficult to make the jump from Software Quality into development, especially as the years accumulate. Make the move.
 
deadbeef said:
Sounds like you're making the right move. It's incredibly difficult to make the jump from Software Quality into development, especially as the years accumulate. Make the move.

The problem is now I'm being offered development at both companies. Though I have no doubt that they would try to sneak in some QA responsibilities from time to time just because they're short-staffed on QA.
 
I think just from the attitude they took when you originally requested the position change should be enough to make the move. It doesn't sound like they particularly care about you, and possibly won't give you a fair chance in your current company. I'd make the move if I were in your position. A few grand isn't a deal breaker.
 
Zoe said:
The problem is now I'm being offered development at both companies. Though I have no doubt that they would try to sneak in some QA responsibilities from time to time just because they're short-staffed on QA.

Me personally, once I've made that decision to jump ship, I wouldn't backtrack and stay, even with a counter offer. It's pretty stressful to make that decision. If you just wanted to move to development, you should have gone to your boss/manager first. Have you already accepted the offer?

I've left thousands on the table for a better long-term career move, and never regretted it.
 
deadbeef said:
Me personally, once I've made that decision to jump ship, I wouldn't backtrack and stay, even with a counter offer. It's pretty stressful to make that decision. If you just wanted to move to development, you should have gone to your boss/manager first. Have you already accepted the offer?

I've left thousands on the table for a better long-term career move, and never regretted it.

In my last review with the dept head, he set my long-term goal as moving to development, but we've been swamped with a backlog of deliverables for the past year so there's been absolutely no movement on that.

I've unofficially accepted the other position pending the background check and final paperwork. It's government though and they've been closed for the past two weeks, so things are slooooooow there.
 
The_Technomancer said:
So the manufacturers of this motion controller I'm working with include several example projects that show us how to use their libraries for serial communication. But for some reason they decided to include only a Microsoft Visual Studio .dsp project which means that for me to get a nice simple makefile I have to download Visual Studio and actively export the makefile. Why wouldn't you include one?
I had to deal with a client recently who was explicitly told to deliver us some videos in .mp4 format so that we wouldn't have to waste time converting videos to display on a mobile site. They gave us .mov files. Yay.
 
@Zoe

It seems like your current employer knowingly underpaid you until you decided to leave.

It's never worth sticking around places like that, things very rarely get better.

Don't be tempted by their higher offer, you'll always be seen as disloyal for shopping around for another job. So your prospects going forward will be limited if you stay.

They'll likely want you to assist in some capacity in helping out the remaining QA team and/or training your replacement. This could take different forms, either by passing on knowledge or automating your processes for them. Once this has been completed, don't be surprised if your new development position is eliminated.

Take the new job and don't look back.
 
mike23 said:
The learning curve for WPF is very steep, but once you get there you never want to leave. At least that's how it is/was for me. I don't think there is any general GUI designer exists that is in the same league as WPF, to be honest.

Depends on what you mean by steep. There's always stuff to learn, but I was doing useful stuff in about a week or two, and really advanced stuff in 3 months.

The data bindings and custom styling are probably the most difficult things to tackle. But you're right, I fucking love WPF.
 
This is too fresh, so I'm not going to list the complete specifics, but if you're writing a service that abstracts away an interaction that is well understood to support given behaviors, and you provide objects and properties in such in a way that clearly derives from those well understood behaviors, don't hit the insane remix button and do something completely unexpected.

For example, if some system somewhere has the concept of Foos and Bars, and you write an interfacing web service that exposes properties for Foos and Bars, if I provide a request object with those Foos and Bars objects populated, I might expect to see my Foos and Bars in the proper place at the abstracted system.

What I would not expect to see are my Foos where I would expect to see my Bars, and my Bars nowhere to be found at all.

I would not expect to then be told that you did this because some earlier client could not be bothered to use the service correctly ("I don't like what I put as Foos actually being Foos") and therefore you came up with this insane scheme of ignoring the actual service design and therefore destroying the myth of a proper abstraction.

I would also not expect to be told that in order to actually get a sane behavior, magic string keys could be provided. That's right, the default behavior is to do this insane, wildly idiotic thing. To get the sane behavior, you have to provide a proper magic string key. (Related, I would not be surprised at being told that, yes, other clients did complain about this stupid default behavior, hence the advent of the magic string keys.)

And I would not like to be told that I can rely upon another client's magic string key. No, I don't believe I could. Because in a world where you change the functionality of your service from sane to insane on the whim of an imbecilic client, I don't want to be told to use a key for another client who may or may not come to have insane machinations of their own.
 
Today's raving is about Rome.

Our application is Rome. No, it's not the city-state of ancient times, nor is it a town in modern Italy. But our app is Rome. And it is said that when in Rome, do as the Romans do (unless you're the most interesting man in the world).

The problem is that this Rome sucks. It's unmaintainable. It's untestable. The code twists and turns and bends and (often) breaks and it's scary to even read, much less change. The code is bad. Rome is bad. So what does our team do? "As the Romans do."

Instead of fixing the problem when we can, we actively contribute to it. We like to point and laugh about the unfortunate decision to offshore the project at its outset and we like to bemoan the fact that now we're stuck with the result of such thinking, as clearly the vendor that had the original contract was not up to the task, when the reality is that application has been in house for several years now and is as much ours as it ever was theirs, and we've done nothing but contribute to its deficiencies.

I say "we," but the truth is that most of us that work on it are contractors. We get rotated in and out, sticking around for no more than 18 months. But several of us have gone through those 18 months. Indeed, I'm at 13 right now. Have I made the application better? Have my current coworkers done any improvements? Those that came before, those that may have preceded us entirely or overlapped with our time, what did they do?

Sadly, the answer is once again "as the Romans did."

People. Be the change you want to see in the world. If your application sucks, be the one to make it better. Be the one to break the pattern. (Heck, be the one to use a pattern, it might help.)
 
Need more rants, people.

I just happen to have a new one. People, be more introspective.

I work with a guy apparently without the ability to question himself. He thinks he has all the answers. If it's not his idea, it's not a good one.

Here's the problem. He sucks.

I'm not saying that to be mean or condemning. I'm fully of the opinion that I also suck. I've contributed bad code to our application. Sometimes, it's because of time constraints. The code is bad, I don't have time to fix it, whatever, I'll insert this thing here and hate myself in the morning but I have a deadline to meet. (See: yesterday's rant.) And some of the time, it's inability. You recognize the code is bad, but you really don't have the first idea of what to do about it. The point is, I suck, too.

But this guy, dude has no concept that he's actively contributing to the problem. He'll look at other people's code, laugh at the badness, and then go ahead and shovel another load of crap on the pile.

It's like... you know what you know. You know what you don't know. The challenge is that you don't know what you don't know, but that thought has apparently never entered this dude's mind.

So anyway, not to go fully into my beef with this dude, I will just say this. If you're a developer, I want you to wake up in the morning and apologize for the code you wrote yesterday. Today, you'll do better. Today's code will be cleaner. You'll do the appropriate research. You'll introduce refactorings. You'll iterate, you'll improve. You'll check in your code, call it clean, and go home.

Tomorrow, you'll wake up and apologize for the code you wrote today. And you'll promise to do better.
 
Status
Not open for further replies.
Top Bottom