|
My brain is built of paths and slides and ladders and lasers and I have invited all of you to enter its pavilion. My brain, as you enter, will smell of tangerines and brand-new running shoes.
 Please, rednecks, learn to drive. |
Posted - 6/27/2007 11:49:47 PM | This is a public service rage announcement to all American drivers. Believe me, if you are a native U.S. citizen and operate a motor vehicle, you need to read this. You need to read it triple if you live in Georgia.
I'm going to be brief and to the point: learn what a pedestrian is, and how to interact appropriately with them while you are driving.
Things which you should not do:
- Slow down as if your car just caught fire. I know it's rare to see people using their legs in this country of lard-assed retards, but please, stop hitting the brakes. It makes me wonder if something important is going on, and I dislike checking over my shoulder every 20 seconds to make sure someone isn't about to stick a knife in my back.
- Veer wildly into the other lane. I'm five feet away from you, and likely on a sidewalk. You're not going to hit me. You may, however, hit the poor person who is driving in the other lane.
- Flash your headlights in my face. I know you're coming, you inconsiderate prick. I could hear your car half a block away and see the lights from even farther. Also, having two high-power halogens pointed into your eyes hurts. I swear, every time someone does this, I want to drag them out of their car by the hair and pulse a few megawatts of laser revenge into their retinas.
- Roll down the window and yell. Again, I know I'm a rare sight. Please don't remind me.
- Honk wildly as if I just did something wrong. Look, I'm just trying to cross the damn street. I was still twenty metres away from you by the time I got to the other side of the road; there's not a chance in hell I endangered you in any way. Don't lay on the horn like I did something stupid.
Things which you should do:
- Just drive your stupid car and pretend I'm not there. You probably are too busy yapping on the phone to have seen me in the first place, so I'll take responsibility for getting out of your fool way, should that become necessary.
In related news, I hate this city, and wish everyone would drop dead, or learn how to drive (in order of descending preference).
This has been a public rage announcement. Thank you.
| |
 On programming skill |
Posted - 6/22/2007 12:56:17 PM | I've noticed an interesting phenomenon.
Many programmers in the C++ and .Net realm absolutely love Visual Studio, and extoll its virtues as an IDE to everyone they meet. Then there are others who are not so impressed.
Now, I personally like Visual Studio a hell of a lot, but not perhaps for the same reason as most bright-eyed newcomers to the programming world. You see, I like Visual Studio because I still remember the really early C compiler days (think Microsoft C) when you had to write your code in something hideous like Edlin or DOS-Edit, then exit, run a batch file that called the compiler, and hope the output didn't cover more than a screen or two so you could spot any serious errors at the top of the list.
(For you spoiled young folks, this was the era where a small mistake would cause the compiler to barf pages and pages of errors for the rest of the code file. If the "missing semicolon" error scrolled off the top of the screen, you're in trouble; you may be left chasing pages of spurious nonsensical non-problems until you finally locate that pesky missing character. Yes, we used to actually write software that way. I cranked out a couple of games like that before giving up and moving to Windows.)
So as far as I'm concerned, compared to the way Things Once Were, Visual Studio is a huge blessing. I've written an addin that collects some handy little tools that I use on a regular basis, and between that and memorizing a few dozen keyboard shortcuts, I can blaze along in Visual Studio being nice and productive. It sure beats the hell out of single-tasking and compiling with batch files. (For some reason - I think it was youthful ignorance - I always preferred batch to makefiles.)
This brings us back to those programmers who don't see Visual Studio in such a positive light. I've heard quite a few remarks about how crappy it is, how poorly featured it is, and so on and so forth.
Now, this naturally makes me very curious. I'm not the sort of guy to use a crappy tool when a better one exists right next door, especially if the better one happens to be free. I may be stuck with VS for work, but at least I can use this mythical Better IDE for my own personal projects, right?
So I inquire as to what this grand tool is that makes Visual Studio seem so horrible in comparison.
Here's the interesting bit: without exception, every single programmer I've ever heard bitch about Visual Studio's quality (in the last 3 years or so that is) is a Java programmer. Some of them are recent newcomers to .Net, especially C#. Some have decided they need to "get more advanced" and try out C++. Either way, a strong Java background is universal among these complainers.
And the better IDE? (Drumroll, please...) It's always a Java IDE. IDEA comes up quite a bit.
This, of course, raises an interesting question: what specific features of this IDE do these Java guys miss in Visual Studio?
I've only ever heard one answer: refactoring tools.
I'm not going to argue. Visual Studio has only mediocre refactoring tools. Resharper is pretty slick, but it's an add-in, not core VS functionality. If you're working with C++, you can pretty much kiss automated refactoring goodbye, because parsing C++ is comparable to stabbing yourself in the brain with a ball-point pen, in terms of enjoyment and sanity.
What's odd is that I have also noticed that extensive reliance on refactoring tools correlates very strongly with shitty programmers.
This is not to say that refactoring is bad, or that if you need to rearrange your code you're a bad programmer. As a matter of fact, a reluctance to clean up code that needs refactoring is also a strong a sign of a bad programmer. However, when you're so caught up in "automated refactoring" that you need to do it all day every day - to the extent that you actually choose your IDE based on its refactoring tools - you're doing something wrong.
It has been my observation that overreliance on refactoring is a crutch. These are the trial-and-error, cargo-cult people who just blindly gibber around in their code until it seems to work. I don't know why, but the Java camp seems to produce an awful lot of these kinds of programmers.
When you can easily rearrange your code in all manner of odd ways, it encourages you to write code without thinking about the actual design. By contrast, when refactoring your codebase is a pain in the ass, you have a huge incentive to design it properly the first time. Moreover, when you're not obsessed with moving little blurbs of code around a half-dozen files, one tends to invest more brain-effort into actually getting working code produced.
Of course I'm sure at this point the agile crowd has already stopped reading and is in the comments section spewing all manner of rage, because easy refactoring is of course essential to agile development, and we all know that agile is the One True Methodology.
Well, two things to that. First, as I'm sure I've revealed from my description of coding in the early 90's, I've been around this field a while. I've seen a lot of One True Metholodogies come and go, and hey guess what, none of them were actually worth all that much. I'm far from convinced that agile is really anything special. Sure, there's some good concepts there, but it's stuff that good programmers have been doing instinctively for decades anyways - and most of that transcends methodology to a large extent. But I'm not here to argue against the agile fad, especially not since it's (thankfully) finally dying down.
Secondly, let me reiterate that I have no issue with refactoring itself. I need to do a fair bit of it on a regular basis, and despite best efforts, things tend to grow beyond the initial design. That's OK. I'm not arguing that we should eliminate automated refactoring because refactoring is itself a problem.
My opinion here is that forcing refactoring to be done by hand encourages us to be much more careful with how we do it. I've seen frivolous and unnecessary refactors cause just as much trouble as poorly factored code; heck, I've made some of those changes before. I think we only stand to benefit from adjusting our habits to think more carefully on the initial design, and to think extra carefully before making huge, sweeping changes.
So there you have it. I have now concluded that anyone who complains about Visual Studio (at least on the grounds that it has worse refactoring features than their Java tool of choice) can be safely flagged as a less-than-optimal-quality programmer.
| |
 A temporary rise in post quality |
Posted - 6/21/2007 11:04:02 AM | I noticed earlier that there has been a general downward trend in the quality (and verbosity) of my entries lately. Contrary to popular opinion, this is not because me get more stupider.
I can't really say much about what's going on at work right now, but I can say these two things:
- I am busy as all hell right now
- This stuff is going to be really damn cool
We've been known ever since X Beyond the Frontier for having some of the best looking games on the market. Unfortunately, that's been one of our few strong points.
In fact, one of the main things that inspired me to join the team at Egosoft was the abysmal flight and combat AI in X-BTF. Ships would just sit there and get blown to pieces, or turn around at very inopportune times (and with physically implausible precision) and smack straight into you, and so on. Fans of the series will note that these problems have persisted throughout the series, although there has been some improvement over time.
At the risk of revealing too much, I'm now personally in a position to ensure that these problems go away in the future... and the future is looking very, very bright.
One of my favourite things about this team is that nobody has an ego problem (puns on the company's name notwithstanding). We all know where our weak points lie, and everyone is committed to doing everything we can to improve in those areas. There's been a huge amount of thought and effort poured into the aspects of our games that aren't so great, and if we accomplish even have of the awesome solutions that we've come up with, future products from our studio are going to be truly amazing indeed.
I know that's going to come off as a lot of marketing hype without any credibility. I really wish I could be more specific. All in due time, though 
Some technical thoughts
I can't get real in-depth yet without risking some serious NDA wrath, but suffice it to say that at some totally indeterminate time in the future I'll have some very, very interesting things to share regarding the design and implementation of complex realtime simulations.
Here's as far as I can go: we're messing around with some alternative design philosophies based largely on functional-style programming, and the amount of freedom and potential this has opened up is truly incredible. More importantly, the amount of really nifty stuff we can do with little programming effort is phenomenal.
The trick to making a great simulation game is not to have a great simulation - it's to have the illusion of a great simulation. We have some toys and tools here that can really raise the bar.
One of the hardest parts of working with a smaller team is having a lot of great ideas that we can't realize because we just don't have the manpower. There's a lot of polish and little fine-tuning that would make the X games even better than they already are, but we never had the chance to do it. If these experiments pan out, it'll make us a lot more productive. To put it simply, we'll be able to do deliver a much more polished experience for comparable amounts of developer effort.
And now I've probably officially said too much 
Musings on humanity
I've got something of a hobby of observing patterns in human behaviour and in the human condition. A couple of these patterns have jumped out at me a lot lately.
The first is that most people seem to deal with a very similar set of problems. This holds in many parts of life, not just technical jobs; but the bottom line is we all waste an awful lot of time worrying about the same damn things. Worse, once we figure out how to handle them, it seems very rare for us to pass these along to anyone else. I wonder how much human progress - in all manner of areas - has been hampered by this. I haven't yet really come up with a satisfactory explanation of why this occurs.
The second pattern is that it's common for people to come up with great ideas, and then totally fail to implement them. Usually this happens because they express the idea and then expect someone else to pick it up and run with it. Of course, nobody does. I suspect this mentality is actually the same basic misconception that leads to "I won't tell you my idea for this really cool hockey MMO because you might steal it". What's funny is that people who would never fall victim to the "you'll steal my idea" foolishness seem to commit the other mistake an awful lot.
As much as I'd love to be able to find some magic solution that cures both of these issues instantly for the whole human race, I somehow doubt that such a magic formula exists. (And if it does, I probably can't afford it.) So instead I'm leaning towards taking a page out of Ghandi's book. I can't instantly change anything else, but I can certainly be an example of the changes I want to see.
So something I'm personally working on is breaking the habit of the second pattern. I think a lot of potential falls through the cracks, especially at Egosoft, because we all just sort of subconsciously expect someone else to carry our ideas to the finish line. Well, enough of that; there's some really cool stuff that I can make happen with the tools I'm building right now, and I can't expect anyone else to make it happen. So I will.
I know that ventures dangerously close to Not Invented Here territory; and honestly, I haven't yet figured out a reliable distinction between the two mentalities. They feel different, though, so I'm sure there's some differentiation to be found.
I'd like to tackle that first pattern, too, but it's still a bit big and scary 
| |
 Community Service |
Posted - 6/14/2007 5:46:39 AM | I was going to write a nice vitriolic splurt about misogyny, antisocial behaviour, and general dickheadedness in the technical world.
But just read this instead.
I might still summon forth a Mighty Rant of Apochian Wrath... if I can think of anything that that article hasn't already said very well.
| |
 Musing |
Posted - 6/11/2007 4:16:09 AM | The trouble with humanity is that we have really shitty quality control.
Also, my fingertips are very sore. Electric bass strings are the ouch. Typing is rather difficult when you can't feel anything but a dull ache past the knuckle. To be honest, I'm rather scared at how well I can still touch-type without any tactile feedback. Too much practice I guess.
... Why is it 4:30 AM?
| |
In locus hic, omnes res dementes sunt.
|
| S | M | T | W | T | F | S | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | | 12 | 13 | | 15 | 16 | 17 | 18 | 19 | 20 | | | 23 | 24 | 25 | 26 | | 28 | 29 | 30 | | | | | | | |
OPTIONS
Track this Journal
ARCHIVES
July, 2009
June, 2009
May, 2009
April, 2009
March, 2009
February, 2009
January, 2009
October, 2008
September, 2008
August, 2008
July, 2008
June, 2008
May, 2008
April, 2008
March, 2008
February, 2008
January, 2008
December, 2007
November, 2007
October, 2007
September, 2007
August, 2007
July, 2007
June, 2007
May, 2007
April, 2007
March, 2007
February, 2007
January, 2007
December, 2006
November, 2006
October, 2006
September, 2006
August, 2006
July, 2006
June, 2006
May, 2006
April, 2006
March, 2006
February, 2006
January, 2006
December, 2005
November, 2005
October, 2005
|