MacBook, defective by design banner

title:
Put the knife down and take a green herb, dude.


descrip:

One feller's views on the state of everyday computer science & its application (and now, OTHER STUFF) who isn't rich enough to shell out for www.myfreakinfirst-andlast-name.com

Using 89% of the same design the blog had in 2001.

FOR ENTERTAINMENT PURPOSES ONLY!!!
Back-up your data and, when you bike, always wear white.

As an Amazon Associate, I earn from qualifying purchases. Affiliate links in green.

x

MarkUpDown is the best Markdown editor for professionals on Windows 10.

It includes two-pane live preview, in-app uploads to imgur for image hosting, and MultiMarkdown table support.

Features you won't find anywhere else include...

You've wasted more than $15 of your time looking for a great Markdown editor.

Stop looking. MarkUpDown is the app you're looking for.

Learn more or head over to the 'Store now!

Monday, September 30, 2002



I've got mod points on Slashdot again, which means I'm going out of my way to make sure I read some this week. Luckily I found a good thread called Resume Tips for Jobs.

While reading, a new post came in that mentioned a site called asktheheadhunter.com. Looks like a neat site which I'll have to check out more later. I started reading the first article, and it looked like the guy, though a little informercial-esque, had some decent stuff. Then I read this:

There is only one job description: Produce profit.

Ha ha ha ha ha ha. HA HA HA HA!!!

Excuse me. Sorry about that. I'm better now.

Folks, don't be fooled. Even though you've been taught for years and years this is what to base your work ethic on, there's another pretty large sector where you can make mad dough without worrying about a profit for a second. That's right folk, the Federal Government. State and local gov't is often the same, but it's harder to find special projects that have slipped through the cracks that are quite as cash-rich as the ones in the Fed gov't.

Here, thinking about profit is more likely to get you into trouble. There's a budget that has to be spent before the fiscal year's out, causing grenades to be thrown at anthills ("Our $120,000 server farm has provided our users with our static web content with five nine's worth of reliability." You don't hear that last month that came to about 3000 hits), and sometimes the grenades aren't even used with that much efficiency [ie, they don't even kill ants]. There's also this incredibly amorphous measure of projects not by financial worth but by "aura". People attach themselves to nebulous projects that sound neat, but don't actually go anywhere. Well, heck, if the project ended, there wouldn't be any good sounding idea left to champion, now would there? And the coffers and funding would dry up, and you'd be back to square one, looking for another good sounding idea to spearhead. Now that's work!

And this doesn't end at the gov't agency, but continues with the contractors that work for them. Often [if my experience is any measure], gov't agencies actually measure success by how much of their budget goes out the door to the private sector for any reason without any reference to the actual results of this spending. So what contractor wouldn't want to keep a project going as long as they can so that they can keep feeding at the trough? Heck, as long as they're feeding, they're making money, which is their goal, and the gov't agency is still giving away money, which is theirs. It's awful.

Then insert the special interests looking for hand-outs from the Federal Government agencies, and the agencies' absolute fear of causing any waves by having one unhappy person, and you're back to that emasculated "100% conflict avoidence" management style I talked about a while back. (Unfortunately, in my case, this bizarro world-view of the gov't has infected the contractor I work for -- we can still do efficient work, even if the gov't agency doesn't position themselves to do it. And we're not.)

So if you're not getting a job in the world of asktheheadhunter.com, there's always a good government job -- or government contractor job -- with your name on it. In fact, in a few short weeks, you can have mine. I, personally, can't feel good about working in a system built on top of this perverted bottom line. At least not more than a few years, which is about how long it took me to figure out this wasn't a short-term (2-3 more years) fixable situation.

posted by ruffin at 9/30/2002 01:03:00 PM
Sunday, September 29, 2002



You might recall this post from years ago, it seems. here's a quote:

Put that together with the fact that I just "won" a laptop at eBay that will have a hard time running anything other than Windows 95 (thought it'd be a fun VB test box)... but that's another blog. "The myth of the $100 laptop." I think you can see where I'm headed. :^)

Welp, I'm afraid the myth has taken a turn for the absolute worst. I got scammed. The eBay seller unregistered and disappeared. I'm waiting for my partial refund from eBay, then I'll see if it's worth pursuing any further. But here's what I was planning to say, briefly...

There just ain't no way to get a cheap laptop without leaving the house, it seems. I wanted to slap FreeBSD on the old Toshiba that would have cost me about $80 and use that for a fun Apache development box, maybe even Tomcat. Load up vim and a web browser (maybe even just lynx/links) and voila. Instant fun.

But the pitiful hard drive (800 megs, iirc) just didn't sound like enough. So me buying a new 40 gig hard drive for the iBook so that the Toshiba could have a hand-me-down is a few bucks. Then I know I'd eventually want to try Windows 2000 on there so that I could have a roving SQL/ASP box to show off past systems to potential new customers (even if horribly slow)... that would require several more megs of RAM and another chunk of change. Then I'd probably want an 802.11 wireless card so that I could use it around the house on the Net.

Anyhow, you see how the $100 laptop is pretty much a myth, as far as where I stand. Luckily a family member has upgraded their laptop and, as luck would have it, is happy to let me have the old model, a slightly newer Toshiba than the one I "won" but really lost. Sounds like fun, but the upgrades are probably still going to cost me more than the price of the computer! Add up the cost, and you'll start to wonder why you didn't just buy some cheapo Pentium III system from the start...

posted by ruffin at 9/29/2002 02:05:00 PM
Friday, September 27, 2002



Whoa. Opened Blogger in IE today. Much nicer looking interface. Somebody at Pyra should be fired. :^)

Apparently there's an article at Slashdot about a $200 box that comes with Lindows 2.0 as the operating system with a version of AOL on it. Let's forget about whether it really runs software for Windows right now. What's important is that this is a distribution of Linux that, by definition (now that AOL is involved) is going to have to target the consumer.

This is big news. Think about what used to be the cost of not using Windows. Mac OS actually costs more to keep current than Windows once you start flaming about hardware. That five percent or so of personal computer users use Mac OS, in spite of it being more expensive, tells me there's something better than Windows in there on some level (even if it's just image).

Sure Linux is free, but the cost was and is that you had to find a computer that didn't have an "expensive as in Windows" OS on it when you bought it (very few people are comfortable putting together a computer from scratch, apparently :^D) and then you've got to add the learning curve of installing Linux and Linux apps, which just isn't fun. Finding the computer sans Windows plus learning to use this system that's [currently] best suited on a server has turned out to be more expensive than plopping down $600 for a new box with Windows XP and a monitor for most PC buyers.

If this Lindows/AOL box does a good enough job, Linux gets a lot cheaper for your run-of-the-mill PC user. Are Windows and, for all that matters, Macintosh OS really worth another eighty to a hundred dollars for the typical PC user? As computer users become a little savvier, and as a "free as in beer or puppies or whatever else free" operating system gets more user friendly, you'll find that these other OSs simply aren't worth the premium any more when it comes to the desktop.

I think the open source model has proven itself to be a viable one and not a fad. That's hardly controversial. As long as it keeps progressing as it is even now, it's just a matter of time before both Microsoft and Apple are wondering what hit them. (might be a long time yet, but still a matter of time)

posted by ruffin at 9/27/2002 05:38:00 PM
Thursday, September 26, 2002



I've had a great time closing out my work day the past two evenings reading The Mythical Man-Month by Frederick Brooks. I'm barely into the book at all (usually just take 5-10 minutes to relax after programming burn-out), but so far the lessons related are awfully good ones.

I'd originally shied away from reading this book because it was someone talking about writing the IBM System/360's software. But things obviously haven't changed much in 25-30 years. The talk is, so far, at a high enough level that visions of my current projects jump into my mind when, almost certainly, the author is thinking about his work in the 1970's.

Anyhow, one thing that Brooks points out right from the start is the difference between a "Program" and a "Programming Product". In brief, he says that the garage programmer is making "programs" and software shops are putting out "programming products". The latter is, by definition, something that is easily extented by anyone and is written in a "generalized fashion". It is also well tested with a variety of test cases. He guesses that this takes about three times as long to create as a simple program. I think that's a little short, but anyhow...

It's interesting to look back over the projects with which I've been involved over the last several years and notice which are programs and which are true programming products. (Brooks has another two types of end results for programming, but I'm going to stick to two for the time being.)

Most of what goes on where I work is the creation of simple programs. People get a task, in the past a "one-programmer-per-programming-task" sorta deal, and they went off and made it. When that programmer left, you were left with a sort of "cyborg without the cy". Nobody could quickly and easily take over the program because it hadn't been written in a general fashion for anyone to extend. There were few "objects" that could be picked up and extended; instead you had to get intimately invovled with the legacy code to add significant functionality (or to figure out the cause of a bug).

He's also gone on to show how adding more workers to a project simply doesn't work in a programming task, because of something quite similar. If you add someone to the mix before you're done with a programming product, you have to explain what it is that you're writing to this new person. That, with a myriad of other factors, makes new help on a project extend, rather than reduce, the time needed to finish a project. Voila, "mythical man-month".

So spam out, it's a good book.

Hang on, ah yes. If you've tried #develop and compared it to Microsoft's Visual Studio.NET, you'll see a pretty good example of a program versus a programming systems product (what comes after a programming product for Brooks). #develop has some great features (and I honestly haven't looked at its code; it could be very good), but usability isn't anywhere as close to being as good as VS.NET.

I like the concept of an open source IDE for C# (and when I start C# programming in earnest, I'm going to give #develop another good shot), but let's face it, some scary dude holding up a shirt just can't compete with Microsoft's VS.NET team when it comes to testing all the in's and out's of an IDE. Some things in #develop might make perfect sense to the people most closely associated to the project, but it's not as well-done overall as the behemoth VS.NET coming outta Washington state.

Labels:


posted by ruffin at 9/26/2002 01:02:00 PM
Wednesday, September 25, 2002



One of the most important abilities a manager needs is the confidence to say, "I made this decision and the results are my responsibilty." I've seen too many people whose strategic plan is 100% conflict avoidence. This is great for making sure you don't aggravate anyone, but less great for doing work efficiently.

There are times where it's best to complete something that you find out isn't going to be absolutely perfect en route. Simply (?) put, it's sometimes better to finish doing something a slightly flawed way than to half-finish something several times trying to build consensus with every stake-holder. It's okay, situationally, to say, "I made what seemed to be the best decision at the time, this is the reasoning I had behind the decision, and that's why we're doing what we're doing now [even if hindsight says we might gain some small benefit from starting over]."

You can make some of the people happy some of the time, but you can't pick your friend's nose. Nor should you want to.

posted by ruffin at 9/25/2002 04:08:00 PM
Tuesday, September 24, 2002



Though this is old news by now, here's a link at eWeek that talks about IBM's new processor and how Apple might put it to use. Here's a semi-key quote:

[The new processor] will also support Vector/SIMD Multimedia Extensions (VMX), a group of 162 instructions that speed data processing and algorithmic-intensive tasks, such as multimedia creation and display.

Sources note that internal documents and publicly released information make no explicit mention of Motorola's Altivec multimedia extensions currently used in the PowerPC G4 and marketed under the name Velocity Engine by Apple. However, they said that VMX and Altivec are highly compatible, if not identical.


I'm probably over-estimating its value, but I think AltiVec is the one big reason Apple won't be moving towards x86 architecture anytime soon. I have to imagine most of the iApps that deal with video are heavily tuned to use the AltiVec instruction set, and I wonder how much trouble and retesting it'd be to set these apps back up with x86 and their extended instruction sets "for multimedia". Same thing for Photoshop on OS X, the one arena where, with a few filters, Apple was able to rig up tests so that, thanks in large part to AltiVec, they could actually win.

Here's another key quote that, if true, might be more reason not to think Apple's going to go the convluted route of x86 (where they'd have to dream up something new to keep the hardware proprietary as well)...

Sources said that benchmarks and applications tests demonstrate that a 1GHz [new] processor doubles the performance of the 1GHz Motorola PowerPC G4 processor in current Macs. Even so, they said, the first run on [new] processors should range from 1.4 to 2GHz, depending on yield.

But whaddya I know? :^)

posted by ruffin at 9/24/2002 02:31:00 PM
Monday, September 23, 2002



Quite a while back, I asked a friend if he thought "handling" an error by ignoring it, if you explicitly knew the error thrown could reasonably be ignored, was a proper sort of error handling. The answer, against my best programming instincts, was that he believed it was.

Now I've started wonder if not capturing errors where, if the code is written the way it should be, should never happen is legitimate. Again, my programming instincts say, "Absolutely not. There's always the proverbial horn of a rabbit, isn't there?" But isn't not capturing the same as ignoring, except in this case you "know" there's not going to be anything to ignore?

That said, and along those lines, I have taken to playing "all-powerful, overly confident programmer" a few times recently and have left error handling out for "the time being" in places where I just know it'll never happen. "Try and bust me on it," is a bad attitude to have when you're coding, even if there is a deadline. Oh well.

[Please note that, before I blog my way out of a job, I'm putting the finishing touches on an app that I'm going to leave to someone else in a few weeks. The idea here is that I'm going to have all the functionality there, and let the next fellow clean up after me. Though certainly that's not the most fun position for him, it is the best way to ensure that, no matter what happens down the line, the application will be a success.]

posted by ruffin at 9/23/2002 06:17:00 PM
Friday, September 20, 2002



This PDF might be of interest to VB programmers that want to change the extension of a file name someone's typed into a file dialog when they change the file type. If that didn't make sense, skip the link.

It's amazing what you can do with VB 6 -- and how long you've been able to do it. That article's from 1998, iirc. It's too bad I've spent the last year and a half getting to know VB 6.0 inside and out when VB's (such as VB was -- not talking VB.NET, where these skills don't really translate) Golden Age has long since passed.

posted by ruffin at 9/20/2002 04:50:00 PM
Thursday, September 19, 2002



This sentence is a very selfish blog to remind myself to check out this web log analyzer later.

posted by ruffin at 9/19/2002 06:23:00 PM



I recently waxed all didactic over at Slashdot about what you should and shouldn't do when hiring some schmoe programmer. I got a few replies, and a number mentioned something along the lines of where this guy was heading, though his is the most exaggerated example. In brief, they say that not everyone is free to bring home their code from work for copyright reasons or what-have-you, and therefore have nothing to show in an interview.

These replies have bothered me for two reasons. First and foremost, you're looking for someone who's passionate about programming. These people will have some crappy homebrew creation to bring in, pretty much no matter what. Oh, sure, I bet there are some brilliant programmers who leave their work at work and don't even have a PC at home ("Cable modem? Telephone? Shortwave is a real man's means of communcation..."), but I'll willingly discriminate against them for the time being.

My second concern, however, is that there are vocal people out there who won't even bother whipping something up for an interview. How badly can they really want the job? I mean, it's nothing at all to get excited about, but this app I wrote to help make player graphics for the Atari 2600 literally took a few hours over two nights' worth of spare time. It's nothing great, but it is sample code I wrote, and enough to get an interview started.

I'm saying this now because I've just been handed another applicant's code (the boss finally realizes my asking for examples of someone's code isn't a bad thing! Victory!) and it's way below what I'd expect to see. There are two example files, and in one the comments plainly state this person is just the last to have modified the file. This is a long way from being something that can help me figure out how good a coder they are. Other comments say horribly encouraging stuff along the lines of, "Cross your fingers and hope this works."

Look folk, at the very least, clean up your code before an interview. It's not that tough. If you can't bring anything home from work, write up some utility that's a means to an end, and make sure it's clean code without code commented out. Look at this example code the same way you look at a resume. Care about its presentation, not just that it compiles.

I guess I shouldn't complain. At least this person has told me that they are, more than likely, a "No Hire".

posted by ruffin at 9/19/2002 05:39:00 PM
Monday, September 16, 2002



I feel bad that taxpayer bucks went towards its purchase, but my Powerlogix 1 GHz G4 upgrade for the PowerMac G4 I use at work (previously equipped with a 350 MHz G4) came in today. Wow.

For all my whining about OS X's performance, this has done quite a bit to let me know why people buying new Macs aren't quite as aggravated. I still wouldn't recommend buying an iBook 600 (which has a paltry G3 to boot) if you're doing any sort of software development that has a GUI, but the 800+ MHz G4 models of most anything probably approach usable speeds.

I really wish I had a video card I could slap in to try out Quartz Extreme with the Giga-upgrade. I would imagine that, with that speed-up, you've got a great OS once again. Does it make me feel better about my iBook 500's speed? Course not. Does it make me wish I had $1900 to drop on a new dual-proc PowerMac with a SuperDrive? Better believe it.

posted by ruffin at 9/16/2002 06:05:00 PM



We have a winner. Chimera is the Freakinname browser of choice on OS X. Other contenders were OmniWeb, a nice, fast, small OS X only browser from OmniGroup; Mozilla (also serving as a stand-in for Netscape 6 & 7); and Internet Explorer. Haven't really messed with Opera much on OS X; guess I should give that a shot.

Here's why Chimera's the best of the bunch...

  • Chimera is fast. Using native widgets seems to have sped things up, as has getting rid of Mozilla's overhead by just using Gecko and not worrying about an IRC client, email handler, etc. We're talking fast from the startup to rendering to any sort of interaction with html content. IE is fairly fast, OmniWeb is fastest. Mozilla is not fast. ;^)

  • Chimera supports Internet standards, and this means it actually works with most sites (espn.com not included). Mozilla works great with sites, just as well as Chimera, since they use the same engine. Mozilla (and therefore Chimera) also do a great job (as I've mentioned before) working crossplatform in the exact same way. Things that render in Moz on Windows renders the same way on Moz Mac. Things that don't render well in WinMoz don't render on MacMoz the same way, which is important.

    IE does okay, and lets you into some sites that code out Mozilla and friends, but sometimes suffers as people assume IE Mac is like IE Windows when they write code (or don't worry about Mac at all). OmniWeb does poorly, I hate to say, not performing much like "the big two" in dhtml and doesn't let me use Blogger at all. :^)

  • Chimera has tabs. IE & OmniWeb do not. Nuff said.

  • Chimera allows tabbing between all html elements. For some reason OS X widgets don't allow this by default. When I first used Aqua-Swing on OS X in a Java app, that was awfully annoying. OmniWeb and IE don't let you tab to select drop-downs or buttons, making the mouse more important that it should be for your ability to surf the web. Mozilla does a great job with keyboard transversals, the other Mac browsers don't. Mozilla doesn't use Cocoa (at least not when I started and not very well now). Chimera uses Cocoa expertly, with keyboard transversal. Big bonus points.

  • In fact, the only reason I could see to use any browser other than Chimera on OS X, even Chimera version 0.4.0 (now at 0.5.0), is OmniWeb's awfully cool spellcheck feature for textareas. I should bug the Chimera people and see if they won't drop in Apple's fancy spellCheckBox (don't know the real name) from Cocoa in the place of normal textareas. OmniWeb is, again, also a little faster, but not enough to override Chimera's awfully nice page rendering.

    The maturity of Mozilla with speed -- that's Chimera. Very nice.

    posted by ruffin at 9/16/2002 12:18:00 PM
    Sunday, September 15, 2002



    Stumbled over a link to this article called "Has Sun Given Up on the Desktop?" while surfing usenet tonight. Interesting commentary on the state of GUIs on Java. Java's not slow, and actually does quite well cross-platform, but Swing isn't quite the answer for bringing Java to the desktop. Here are some quotes:

    And whether intentional or not, Sun's ambivalent attitude [towards the desktop] is tantamount to a forfeiture of the desktop software market to Microsoft.... Sun cannot be forever passive with regard to Swing and expect Java to hold and expand its prominence.

    Sun needs to realize that the Java platform can't survive against Microsoft indefinitely as a server-side technology only.


    ... later...

    Why isn't Swing the de facto standard for GUI development? The first reason is perception. Sun has allowed its competitors to successfully label Swing GUI applications as second class. Swing has a reputation for being a slow-performing, memory-consuming API.

    I believe the author misses a bit here in this second quote. He mentions that Swing should be more and more usable as hardware gets faster. This is flawed logic. If Swing's performance is as good as native was two years, it's still not good enough today. There is something wrong with Swing, or IBM wouldn't have developed SWT and Apple's Java team wouldn't have wasted time hardware accelerating Swing on OS X (though OS X has its own performance problems).

    But one place he's right on the money is by comparing the complexity of Swing with the ease of creating a GUI using VB 6.0 or Windows.Forms. If you could create Swing GUIs as easily as you can in VB, you'd be on to something. The author unfortunately isn't familiar with VB, however, as he apparently believes that the VB GUI IDE is superior in what it exposes than, say, GUI development in Netbeans. It's not. As with much of VB, you can get 80% of what you want with the GUI tools in about 20% of the time it'd take in another langauge, but that last 20% is a real pain in the arse, just as it is anywhere else. (There's also the issue of his saying that VB is, "VB is boring and limited as a programming language", which it isn't. It's all 0's and 1's, and once you get API calls down, there's really nothing you can't do in VB.)

    Anyhow, interesting article.

    posted by ruffin at 9/15/2002 11:06:00 PM



    Sherlock for Mac OS X 10.2 has recently added so many of features found in the Mac OS X shareware app Watson. It's enough that when I read a bit of this blog entry (that I quoted from on the 12th), I thought the quote, "watch our markets disappear with each new release of free iThis and iThat apps," specifically referred to Watson.

    So it was somewhat surprising to find this page on Apple's site advertising Watson as an "OS X gem". You can even download the app right there from Apple's site. I can't quite figure it -- Obviously the app caught Apple's eye because the remade it. Anyhow, interesting to find it adverted on Apple.com.

    posted by ruffin at 9/15/2002 10:08:00 PM



    iTunes radio needs a sports tab. Sure, we've got 16 types of music feeds, but Apple needs to stop resting on laurels once they've made their proof of concept technology poster child. mp3 support is great, Radio is less so.

    While I'm at it, why doesn't Apple add a real radio to iPod? Or if that's too old fashioned, why not make iPod a portable player for XM Satellite Radio? Then they're on the way to making the next great media device (next a 3" color screen with optimized satellite TV, etc etc etc).

    posted by ruffin at 9/15/2002 05:26:00 PM
    Thursday, September 12, 2002



    Pretty funny quote from yet another Joel on Software blog.

    ... maybe you're [selling your software] in a niche like graphics where it seems like Macs dominate (they don't, it just seems that way because the elite graphics people in big American cities use Macs); ...

    You know, I bet he's right. The more likely people are to want to look cool, the more likely they have a Mac. Me included, I'm sure, sad as it is. Buying into all that Think Different (R) crap.

    Visited a friend's office once, and the CEO of this aeronautical engineering office had an Apple cube on his desk. Sure it looked cool, but I already wondered what kind of "real work" they were doing (or at least that the CEO was doing, which, natch, he wasn't). Let's all guess why he had a Mac on his desk.

    Anyhow, funny quote.

    posted by ruffin at 9/12/2002 06:49:00 PM



    Pretty funny quote from yet another Joel on Software blog.

    maybe you're [selling your software] in a niche like graphics where it seems like Macs dominate (they don't, it just seems that way because the elite graphics people in big American cities use Macs);

    You know, I bet he's right. The more likely people are to want to look cool, the more likely they have a Mac. Me included, I'm sure, sad as it is. Visited a friend's office once, and the CEO of this aeronautical engineering office had an Apple cube on his desk. Sure it looked cool, but I already wondered what kind of "real work" they were doing (or at least that the CEO was doing, which, natch, he wasn't).

    Anyhow, funny quote.

    posted by ruffin at 9/12/2002 06:48:00 PM



    Okay, I admit it. I'm one of those overly-anal programmers who, if he has to extend legacy code, has a irresistable instinct to rewrite bits that are duplicative or [otherwise] inefficient. I mean, I'm not crazy. I don't rewrite something that works. Well, not for the most part. I just like to spare as many bits as possible from having to be impressed into service for my applications. And if I'm going to put my name on something, it'd better be done right.

    But there are times where the mistakes are so danged convoluted and incestuous that I can't pull out one without opening Pandora's box without the hope. It reminds me of when I decide I'd like to plug my VCR back into the TV where I used to have my DVD player installed. Sometimes the three wires come right out, but sometimes you're pulling out not only the three plugs, but the coaxials and the power strip, taking each wire out until it's totally separate, and starting over. Or you end up telling yourself that the fact that you need three remotes to watch a movie really isn't all that bad.

    Let me give you an example. Let's say we've got fifteen legacy JPanels full o' code (if you're not a Java guy, just think 15 panels with GUI widgets on em, and the panels can have their own code). Each of these JPanels is displayed on a JFrame in a CardLayout (again, non-Java translation, "One of these panels can be shown at any one time in a larger frame that is displayed on the user's screen. If panel 1 is visible, then 2-15 aren't, etc").

    Now let's say the last team wrote a customized function for each JPanel (they're all different! Can't stress that enough) that essentially cleans the JPanel's GUI widgets. On panel 1 the function is called, "cleanWidgets". One panel 2 it's called, "wipeWidgets". On panel three there are actually four functions doing different parts of the work, and sometimes only 2 are called when the panel's refreshed, and sometimes all four. No obvious reason why -- it would seem all four have overlapping parts.

    That's the kind of thing I'm talking about. The original team should have taken the common logic out, extended JPanel with "legacyProjectPanel", and added a default function in this object called "resetGUI". Then each of the 15 panels would have an instance of this function. And, get this, you could centralize the code from moving from one panel to another somewhere in the JFrame! Then it could genericly call the resetGUI function of any "legacyProjectPanel", and any system-wide changes could be done in the JFrame instead of having to do things in a custom fashion in 15 different JPanels.

    If I'm going to need to functionality so that you can navigate from one JPanel to the next in a different way, say add a menu that has all fifteen (bad GUI; just an example), I'm going to refactor and insert the resetGUI function that shoulda been there before.

    So what to do if it's going to take longer to refactor than you've got to extend in the first place? If you see the jumbled mess but choose to ignore as much of it as is humanly possible (since the code does "work"), you've always got that fear that something that you did rewrite to extend the code is going to cause some strange reaction like the one your high school science teacher got that time s/he mixed two things in a vial and the fire alarm went off.

    Anyhow, the point, if there is one to this ramble, is simple. Hire smart people who know how to code and don't let the mess happen from the start. As soon as you hire one person who wasn't on the A-list, face it, your software's going into the toilet. Good luck with version 2.0.

    posted by ruffin at 9/12/2002 03:43:00 PM
    Wednesday, September 11, 2002



    Been trying to install Gentoo Linux (if that's the correct phrasing) on a PowerMac G4 recently, which has meant lots of downtime for my favorite jukebox. Okay, I admit it. When I'm at work, I do the bulk of my editing on Windows. The G4 sits over in the corner hooked up to my speakers, iTunes 3 blaring. But the Mac is so danged good at being a jukebox, right?

    Anyhow, I'm installing gentoo in hopes that it will enhance the use of my Apple hardware. OS X is just too danged slow for developing on my iBook 500 MHz and 350 MHz G4. So I had to scramble and find a good mp3 player for my Windows workstation, for the time being. I believe my employer owes the Black Crowes about half again what he's paying me for the increases in productivity. So the best reviews on download.com went to "Quintessential Player" and I grabbed it.

    It's very good. Has the requisite equalizer, fancy smancy skins (the default and a few on the site are very good -- they initially look busy, but are easy to learn), etc. Some bits like mp3 searches and ordering aren't quite up to iTunes standards, but overall I'm impressed. Probably has some trojan app in there somewhere, but so far so good.

    But most impressive is the strain it puts on the processor. Playing mp3s from a CD put it at 1-2% of my 1.8 P4's processor power. Compare that to iTunes 2, which, according to "top" takes 20-30% (varying) of my 500 MHz G3.

    I hate to Macbash, as I enjoy using Macs, but let's just say mp3 playing ain't the same as Photoshop filters. Sheesh. MHz for MHz, the Mac still loses something awful. And no, the player on Windows isn't using some dll whose proc drain I'm missing. It's really just 2%. Wow.

    posted by ruffin at 9/11/2002 05:48:00 PM
    Monday, September 09, 2002



    Like clockwork. Part nine in an infinitely long series on how to customize the ASP.NET Datagrid.

    Just to belabor the point, what he's showing is ostensibly useful, but if you've got to throw in this much to customize the grid, you're so much better off learning how to make the html. You shouldn't tie up so much logic in the GUI.

    I'd understand if everything that was being shown had an exact parallel with Windows.Forms in VB.NET or C#. There is a neat niche that Microsoft is opening on the web for people who traditionally limited themselves to desktop applications. If you can use the same code that you use to create a GUI on the desktop, swap out some references, and *poof* run that code on the net, that's a bonus. That's neat.

    But if you've got to learn how to smack html into the DataGrid to make it do what you want, you're better off (broken record -- same self-promoting article I keep inserting here) rolling your own. Why limit your skillset to knowing the complete in's and out's of the ASP.NET DataGrid when you could be just as efficiently learning html that will work no matter what the platform?

    posted by ruffin at 9/09/2002 01:07:00 PM
    Saturday, September 07, 2002



    As readers have figured out, I'm now a vim convert for editing my ASP, php, and any other html related files. I don't see how people survive without it. But that's not to say I've left all other text editors behind.

    I still like HTML-Kit for quickly mocking up html pages and still use Netbeans for Java development, regardless of platform (short of Mac OS 9-, where it won't run). Of course, on Mac OS X, I still use BBEdit Lite for everyday text editing tasks. It still even runs all the plugins others have written for the commercial-level big-brother of BBEdit Lite, BBEdit, like a BBEdit specific version of HTML Tidy. Impressive indeed. (Note that you can get BBEdit for $40 off by "cross upgrading" from, you got it, BBEdit Lite, no less. $40 for free!)

    But the text editor that impresses me most (after vim -- and probably every bit as much, just in a different way) is still UltraEdit. Not only do I envy this fellow whose shareware app has become his full-time job (make one thing and make it well), UltraEdit is a Grade-A application. I won't rant and rave about its ability to hex-edit, or its easy to navigate menus, or its built-in file compare utility, or even its ability to quickly print syntax highlighted files in another font than the one you use to view files... instead I'd like to mention one more little feature that I've just today accidently bumped into (and finally had time to notice, though it must have been doing it silently for years (?)).

    If you've used Visual Basic 6.0's IDE, you're familiar with the fact it autocompletes your statements and handles (for better or for worse) capitalization of reserved words. I often cut out parts of code I need to modify and smack them into UltraEdit where I have more text modification tools, edit them, and then c&p back into VB6. I usually start by saving the VB file snippet out as "C:\temp.vbs" in UE to get VB6-esque syntax highlighting and start going to work.

    Turns out UE automatically capitalizes VB's reserved words as well! If's, And's, While's and Wend's, even functions like CStr() have the respecitve character(s) shot up into uppercase without a second thought.

    Now I'm not arguing that forced syntax by a text editor is the best solution or a feature for everyone, and I don't believe the people at UE are necessarily the ones I should be thanking; it's probably the vbs syntax file's author. But the fact that you *can* add something like this, combined with the fact that the vbs syntax file is on their site in plain view as a free download (perhaps comes installed by default as well?) is an impressive tweak that shows just how well UE's loose ends have been tracked down and tied.

    If you're a mouse user (i.e., you're not a vi or emacs fan), you can't do any better on Windows that UltraEdit when it comes to editing text.

    Free advert over.

    posted by ruffin at 9/07/2002 01:48:00 PM
    Thursday, September 05, 2002



    Was trying out Mac OS X's dictionary and thesaurus bit in Sherlock, and decided to check on the website that was powering part of these functions, Bartleby.com. On their site they have advertised... Bartleby.com Named โ€œBest Literary Resourceโ€ for 2002" apparently by the Yahoo! Internet Life magazine.

    I'm supposed to think some place that putting commercials for how to stop acid reflux on top of texts you can get uncluttered and for free in plain text from Project Gutenberg is deserving of an award? You've got to be kidding. The poor scrivener is turning over in his literary grave. This is definitely one for the dead letter office.

    posted by ruffin at 9/05/2002 06:09:00 PM



    A fairly "fun" interview with Steve Wozniak, the guy who made the first Apple, quite literally, is here over at MacWorld. I always knew the name, but never knew exactly what Steve "Woz" did. It's a neat read, and reminds me quite a bit of what I've learned about the Atari 2600 from the few demos I've hacked.

    posted by ruffin at 9/05/2002 05:13:00 PM
    Wednesday, September 04, 2002



    Requested permission to put up a project on Sourceforge today. Nothing big -- just a simple Java class that makes, well, let me just quote the text in my submission:

    jOneOne is a Java project that automates some of the common tasks for porting Java 2 code back to Java 1.1 compliant code. This is accomplished mainly by recursively spidering through the directories of a Java 2 project, and making new Java 1.1 code from the directories' Java files. When objects and imports specific to Java 2 are found which have analogous entries in the Java Collections API for Java 1.1 from the InfoBus project, those imports are changed in the Java source file copies. Because the classpaths for the two object models, Java 2 vs. analogous entries in the JDK1.1 Collections package, are different, simply importing both causes ambiguous object references. jOneOne attempts to automate fixing this process.

    jOneOne is particularly useful when targeting the Classic Mac OS, Mac OS 9 and below, which runs Java 1.1.8.


    Pretty boring, pretty simple, but a pretty common question on the Mac Java dev list. I don't think people know how much you can do with Java 1.1 when you use the Collections API (same link) and Swing. I've seen at least a few Java apps claim to need Java 2 just because they use Swing for the GUI and a few Vectors. It just ain't so.

    Anyhow, been too busy to blog lately so I thought I'd add that bland note while I was thinking about it. Been using Mac OS X 10.2 (Jaguar or "Jagwyre") part-time for over a week now, and almost have a monster-blog/first impressions written up for that beast. "Quick peek" bottom line: If you don't have the video hardware for Quartz Extreme, spend the C-note on something else.

    posted by ruffin at 9/04/2002 02:35:00 PM

    << Older | Newer >>


    Support freedom
    All posts can be accessed here:


    Just the last year o' posts:

    URLs I want to remember:
    * Atari 2600 programming on your Mac
    * joel on software (tip pt)
    * Professional links: resume, github, paltry StackOverflow * Regular Expression Introduction (copy)
    * The hex editor whose name I forget
    * JSONLint to pretty-ify JSON
    * Using CommonDialog in VB 6 * Free zip utils
    * git repo mapped drive setup * Regex Tester
    * Read the bits about the zone * Find column in sql server db by name
    * Giant ASCII Textifier in Stick Figures (in Ivrit) * Quick intro to Javascript
    * Don't [over-]sweat "micro-optimization" * Parsing str's in VB6
    * .ToString("yyyy-MM-dd HH:mm:ss.fff", CultureInfo.InvariantCulture); (src) * Break on a Lenovo T430: Fn+Alt+B
    email if ya gotta, RSS if ya wanna RSS, (?_?), ยข, & ? if you're keypadless


    Powered by Blogger etree.org Curmudgeon Gamer badge
    The postings on this site are [usually] my own and do not necessarily reflect the views of any employer, past or present, or other entity.