4 Jan, 2009 by Mr. Compulsive
Yeah, so I suck at keeping this blog fresh. Sue me, I have a business to run.
Actually, please DON’T sue me.
Wow, do one’s perspectives change on so many things once responsible for owning a business. Take that funny little “sue me” colloquialism. One part of me enjoys the snark, the other part of me feels the cold tentacles of fear wrap around my heart. Lawsuits aren’t a joking matter when one could put you out of business. Never mind the fact that there’s nothing legitimate for which a party could take legal action against us; just the cost of paying an attorney to dispense of unwarranted litigation would bring the pain.
Here’s another thing you don’t care about once running your own business: religious wars of the nerd kind. I just read a comment thread on Slashdot about Perl having moved over to using the source code version control system git. These guys were blasting away at each other with warheads like “git takes up less space” or “subversion has better GUIs” or “you’re just too lazy to use the command line” or “git runs faster.”
These are the arguments and conversations of developers who are on someone else’s payroll. I can tell you straight up, I don’t give a damn about hard drive space, not when I can buy a terabyte for less than it costs to pay an developer to work for a couple of hours. I don’t care which is better, command line or GUI; I care about what will enable my developers to spend the least amount of time jacking with version control. Nor do I care about which runs faster (within reason) as I can buy a dual-core funny car for, again, less money than a couple hours of highly skilled labor.
Simply put, owning and operating a business has stripped me of all nerdly religious beliefs. In place has grown an agnostic pragmatism. My goal is to get code written at the highest quality within the smallest reasonable timeframe at the lowest cost. In our case this means running Apache on hardened Windows servers, writing PHP using Microsoft Visual Studio, using SVN to manage source code, and Python on roided up Ubuntu boxes for number crunching.
On a different note, my only conscious New Years resolution is to be more diligent about this blog. I believe that what we’re doing and learning represents a unique perspective, but if I don’t take the time to communicate that perspective is lost to time.
14 Aug, 2008 by Mr. Compulsive
Chris:
the fix process is probably two-fold
i need to do a COUNT(*) GROUP BY work_order HAVING COUNT(*) > 1
to ascertain the frequency of similar issues
then look at the sync code to see what the issue is
jimmynash:
sounds like gangs of fun
Chris:
heh
other peoples databases make me cry
jimmynash:
can I help?
Chris:
yeah, jump in your time machine and go back to about this time last year and tell me to just deal with their developers denormalized and incomprehensible database because that way i could blame stuff on him rather than having to deal with trying to normalize it
jimmynash:
here I go…
Chris:
lol
jimmynash:
WHOOOOOOOSH
Chris:
i doh’t think it worked because the prior conversation is still on my screen
your time machine suxors
jimmynash:
it was built in lasso
22 Aug, 2007 by Mr. Compulsive
I ran into an odd problem recently. I’m using mod_rewrite to do some virtual hosting in conjunction with the excellent Code Igniter PHP framework.
Out of sheer laziness and a desire to avoid having to do a SOAP transaction (since we’ve already got a couple of them going in this particular bit of code) MathGeek and I decided to put a bunch of data in the URI, hashfuscated, naturally.
Unfortunately it turns out that mod_rewrite chokes on URL strings longer than 255 characters by throwing a 403 error. Now, I’m not sure if its the TOTAL length, or just the individual length of a section of a URL. I tried a few things with regexps but I’ve not really come up with anything conclusive. I’ll have to wait until I’ve a) slapped a bandaid on the problem and b) come up with a real solution before I can fire up my dev box and mess with the module to figure out the true limitation.
20 Dec, 2006 by Mr. Compulsive
So let’s say my LAMP web application needs some set of functionality. There’s a class or set of classes out there that provide…usually about 80% of the functionality that I need. Of course, because most PHP code libraries don’t have a .NET-slick API, I usually end up parsing the code down to the base class to get my arms around the thing.
About halfway through this venture, I inevitably find myself thinking: “Screw this, I’ll just hand-roll this puppy myself.”
Nine times out of ten, that’s what I end up doing. I rationalize this using the following reasoning:
- I’ll know the code because I wrote it, so if I need to tweak the library it’ll be quick.
- Most webbish APIs suck. Especially open-source APIs. I’m good at writing webbish APIs.
- By the time I get this library wired up so it works how I want, I could have written the thing myself.
- Rolling my own makes me a better programmer because it forces me to deal with a challenge that I might otherwise sidestep by using a 3rd party library.
- I’m smarter than everybody else, so NATURALLY whatever I write is doing to be better (note mild sarcasm).
Problem is, lately I question this reasoning. My brain generates the following counterpoints:
- Yeah, you’ll know the code, but that means you have to take the time to develop, debug, and test it.
- You just think they suck because you can’t get them figured out inside of five seconds. Not so smart now, are ya?
- You’re fooling yourself, it’s going to take you longer to write it and it’s going to be so narrowly focused you won’t use it again.
- Yeah, or it makes you a worse programmer because you’re not exposing yourself to other people’s styles of coding, which may be more ’standardish compliant’ than yours.
- Keep telling yourself that. Is that why you keep round-filing your old libraries because you look at them and think they’re crap and need to be rewritten?
Yeah yeah, I tell myself, but here’s the ultimate issue: I’m a web application developer. I’m not writing non-managed Win32 apps in C++. Web apps just really aren’t all that complex. My resistance to Other People’s Code isn’t the same as my saying, “The Win32 API sucks, I’m going to make my own.” Ugh. That would be an exercise in self-flagellation.
Of course, there is the argument that I’m reinventing the wheel. Yeah, well, what if the current wheel sucks? I’ll make a better one.
And so it goes.