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.
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!

Friday, May 28, 2004

Okay, everyone hates Microsoft, but when they're giving their IDE away if you watch five online training sessions, you've got to be relatively impressed. Now it's time to see how long these movies are...

Let us know what you think. View and rate five movies, then sign up to receive your redemption code e-mail entitling you to a complimentary Not-For-Resale copy of Visual Basic .NET 2003 Standard Edition.

posted by ruffin at 5/28/2004 03:30:00 PM
0 comments

Welcome to Intellisense for Vim

Man, where were you guys in the 70s when I needed you?

UPDATE: ACK! Buggy buggy buggy. Do not get your hopes up yet. Repeat: Do not get your hopes up. (Just to add insult to injury, this is Windows-only.)

posted by ruffin at 5/28/2004 10:35:00 AM
0 comments

This story brings up something I've believed for a while:

Citing privacy worries, Californian senators have approved a bill that limits Google's plans to scan messages and include ads based on what it finds.

There will come a time when American citizens are comforted and expect advertisers to make decisions based on this sort of information. There will come a time where citizens are upset if the local government, state highway patrol, perhaps even the feds, don't know exactly where they and each member of their family is at any moment (except maybe "technophob grandpa" who refuses to participate -- yes, that's you, today's computer programmer).

And so yes, I also feel that time will come during the lives of, if not our children, then certainly their children. We're just beginning to find the importance and benefit of giving up privacies like our location. Once new people without our tired biases enter the world, they'll not only see the benefits, they won't see the same privacy issues we do today. "OnStar" won't just be in our cars; it'll be on us.

posted by ruffin at 5/28/2004 09:56:00 AM
0 comments
Tuesday, May 25, 2004

There are a few things in .NET land's take on object oriented programming that I don't quite understand [why they did it the way they do]. This is one.

Both the Base class & the derived classes need the constructors. As constructors are NOT inherited in VB.NET (nor C#).

Another is the fact that you have to label a method Overridable to override it later. Seems to kill quite a lot of the power of oo programming -- or at least trivially hide it so that it, in essence, makes it so that many people will be too lazy to bother. As displayed in the above post, it's at the very least confusing to force explicit signposts about inheritence.

posted by ruffin at 5/25/2004 03:59:00 PM
0 comments

In JDJ's Interview with Amy Fowler, we have this awful quote:

Let's nail this right here. Due to tremendous efforts by the Java 2D, AWT, and Swing teams, and the kindness of Moore's Law, Swing performance is no longer a valid excuse for not using Java on the client.

This is from an employee of Sun whose background includes:
I've been at Sun forever and have been an engineer on the J2SE client team since the days we called it the "JDK" and there were a total of eight packages. Most of that time I've spent on the Swing team, with a year-long tour of duty in J2EE as the JSF spec lead, trying to define a component model in the otherwise amorphous Web tier.

So this is a big quote, and a concerning one. Does Swing deliver usable GUIs now? Sure. Does my Celeron 533 tower deliver acceptable performance? Sure.

Can any user, from Granny Smith to John Q. Developer, tell a huge speed dip when moving from a native app to Swing? Yes, every bit as much as I can tell that my 533 isn't performing at the same level as my 2 GHz Pentium 4.

Here are Swing/Java's GUI issues when it comes to speed:
1.) Start-up for a Swing app is far slower than that for a natively written app.
2.) Response time for app widgets/controls written in Swing is noticibly longer than most natively written apps' controls (like my 533 to 2 GHz comparision). It is my anecdotal experience on Mac OS 9, X, and Windows XP & 2k that using Swing over AWT contributes greatly to this slowdown, everything else equal (so only when an application uses widgets available in both).
3.) A Java app written with Swing (at least with Metal L&F) regularly has its entire pane go grey on Windows in my experience. From JNN to my crappy app to Netbeans, the windows will blank out and will take seconds to reappear after alt-tabbing.
4.) Not everyone has [the latest VM installed], so don't assume those improvements.
5.) Not every programmer is going to go the extra mile to fine-tune performance of their GUIs. It's easier to switch to VB6 or VB.NET (or REALbasic or straight Cocoa (which many Java devvers for Mac lay on top of Java code or access with Java) or other lang of your choice).

Until you can fix #1, nothing else matters. Until you can fix #2, nothing else matters. Until you can fix #3, nothing else matters. That's three dealbreakers right there. Then you've got to think of a way to fix #5 (which is part of what the interview's about) without compromising the hard fact of #4.

What does Swing do well? It provides an incredibly good, cross-platform GUI toolset that behaves exactly the same (all other things equal; you can, of course, use code that captures what platform you're on and change things) regardless of platform. That's not what a typical client (which, as I've pointed out, apparently includes even Java developers) wants. Until Sun & Sun's Swingers realize they're not developing what people want, Java desktop application developers will continue to feel the pain.

posted by ruffin at 5/25/2004 12:27:00 PM
0 comments



The time it takes to learn how to code modular, maintainable code and then code your work is much less than the time it takes to code your work without learning and maintain it by hook & crook later. With the amount of money you can make for application maintainance and support, coding right the first time makes your company money, daggummit.

posted by ruffin at 5/25/2004 10:46:00 AM
0 comments
Monday, May 24, 2004

I know, I know, my blog's all over the place now, but am I the only person who thinks this sounds like a horrible idea?

In terms of the physics and huge amounts of energy involved, the project would be akin to building a star on Earth.

posted by ruffin at 5/24/2004 01:03:00 PM
0 comments
Wednesday, May 19, 2004

note to self: java.net: Any HTML Renderers for Java? [May 19, 2004]

posted by ruffin at 5/19/2004 03:52:00 PM
0 comments

Yeeouch -- from the same thread I posted to -- talk aboutbroken:

Limiting myself to just 5 mins and SwingSet2 only (JDK 1.5.0 B1):

Font renderer is knackered
Cleartype has no effect on font rendering
Window does not update live when resized
Colour chooser not remotely like the Windows version
Menu alpha blending (fade) not honoured
Menu shadow missing
File open dialog buttons (top right) incorrect
File open dialog resize hint (bottom right) missing
Controls should not show focus until is pressed
Cannot use non-XP style controls (can mix and match in native Win32), e.g. use plain grey tabs.
Toolbar should use mini-window title-bar when dragged off the main form.

All of this on Windows XP nearly 2.5 years after it was released.


My follow-up:
    I'm sorry to post twice to the thread, but this really is a pet peeve issue (namely Swing's current state and future). Sorry to seem so down on Swing -- it does its original job very well. But that goal is no longer one people feel needs scratching. It's time to move on.

    The point above is that making a Swing Look & Feel look native almost by definition means that you're behind the curve on implementation. Using native widgets from the start means that you're up to date the second new widgets are released (a la SWT).

    And that's why I think Swing's failed. It was supposed to provide, afaict, a chance for programmers to create a GUI that'd act and look the same crossplatform, which the Java Metal Look & Feel does *very* well. Write once, run [exactly the same] everywhere, from headless code to GUI'd applications. That's what Swing does well.

    People, from Limewire to Netbeans users, don't like the concept of xplat GUIs, though. It's a real compromise where nobody is happy. AWT gets around this issue by using native widgets, not creating new ones virtually from scratch. SWT does the same with a full spectrum of widgets from which to choose.

    Pluggable LAFs are great if you want people to personalize apps (letting users pick the Kunstoff LAF or another pluggable LAF), but if your only usage is of that feature is plugging in native looks, well, you're wasting your time and missing the mark.

    Keep Swing. Continue to provide an xplat look and feel with Swing. Stop work on every new Swing feature. No new widgets, no new look and feels, no more by definition lagging ports of native feels. Move those resources, if not to SWT, then to AWT and fill out that toolset you stopped working on years ago so we can stop extending Canvas. IBM admitted they were wrong to like Swing**; it isn't working out. Sun, catch up.

    ** ref to IBM liking Swing then changing their mind:
    http://today.java.net/jag/page7.html#62

posted by ruffin at 5/19/2004 03:31:00 PM
0 comments

Read The Top 10 Elements of Good Software Design now.

posted by ruffin at 5/19/2004 01:27:00 PM
0 comments



Ack. Why does't every comment submission form have a Preview button?

Anyhow, here's pretty much what I posted on a board for posting Swing issues at Sun today, perhaps edited a little where it was obvious I needed more sleep. And yes, much of it you read here first. Oh boy.
    Great summation! Those are certainly the three main problems with Swing -- perceived performance for whatever reason, API complexity (aka, IDEs that aren't quite up to the GUI-building task), and native looks.

    I'd add one thing for number three: Sun really needs to decide if the great goal of Swing -- to provide consistent GUIs in every way, regardless of OS, extending the concept of "Write once, run [exactly the same way] anywhere" to GUIs -- hasn't failed.

    Take a look at a quote from this page.

    In the chat, " Ian Formanek, who is chief of technology for the NetBeans project at Sun Microsystems", says:
    3.6 focused on 2 major things: the use of Windows L&F on Windows 2000 and XP (and updating the NetBeans design to look cool under those L&Fs), and introducing a brand-new window management system to streamline the way the IDE fits into the natural workflow of development.

    If Sun's development team for its most popular GUI'd app written in Java is spending half their time making Swing look and perform well on one OS, well, the xplat L&F has absolutely failed. Hey, I love the Napkin Look & Feel as much as anyone (a great idea) -- and therefore pluggable L&Fs -- but in the grand scheme, the extendability and xplat features make for wasted effort, plain and simple.

    Swing's "Java look" is so bad that not even Netbeans users (aka, Java developers) can ignore Swing apps that don't look native. Doesn't this mean Swing's xplat goal has failed miserably? I mean, nobody should be more capable of ignoring quirks and understanding why having a Java look and feel that acts exactly the same, regardless of platform, is a laudable goal. If not even the evangelists have faith, why not go ahead and sell out to SWT (or at least start AWT development back up) now?

    (And that's likely where part of the black hole [of response from Sun, as mentioned by the previous poster to the thread this comment's in] comes from -- what's a Swing expert to do if future Swing development's scrapped? The context of their discussion is, unfortunately, "How do we fix Swing?" right now, not, "Is Swing irrepairably broken?" or even the more practical, "Where are GUI widget-building resources best placed?")

posted by ruffin at 5/19/2004 01:17:00 PM
0 comments
Tuesday, May 18, 2004



To add VB.NET syntax highlighting in jEdit 4.1 (and likely other versions), download the XML file in the "download" link from this page, and stick it in your [jEdit home]\modes directory.

Then find the file called "catalog" in that same directory and add this line:
<MODE NAME="vb_net" FILE="vb_net.xml" FILE_NAME_GLOB="*.{vb}" />

Note that that should be inserted between the <modes> and </modes> tags, of course.

posted by ruffin at 5/18/2004 01:09:00 PM
0 comments



I'm going to guess that one of the best ways to attract high quality, experienced developers -- aside from running a smooth, mature, high-functioning shop to begin with -- is to quit treating your programmers with the same degree of legal inattention you give to your customers. Sure, customers will, for whatever reason, gladly give away all of their rights to sue you if something busts. All risk is theirs. Why they're willing, who knows.

Similarly, many to most if not just short of all programmers seem to be okay giving away all of their rights to their code, their ideas, and everything that goes with them. IP contracts often constrain programmers for life. What the coder makes in their shop stays in that shop forever, no matter what. Slashdot recently had an article on the topic: "Do you keep a code library? Do you take it from one employer to another?" I recommended using open source licenses to launder code, but why put yourself in a position you have to bother?

Anybody who really realizes the value of what they're doing wouldn't be so eager to give up their rights, I think. Nor would savvy companies trying to hire the best be so quick to make their new employees sign such a contract.

Imagine how much more buy-in you'd get if you gave employees the right to use code that they programmed three years after the code was written, as long as its use didn't conflict with the market of the current company/employer (defined on a case-by-case basis; that is, the coder would get specific exemptions from the legal dept. Yes, this does hope for relatively rational and reasonable employers, unf.).

You can quickly argue that giving away a codebase would give a coder reason to take off after, say, four years to build on top of what they coded up during their first year. I really don't think that'd be the case. What's most important is that you'd be paying your employees to not only work for you, but to work for themselves. You can't beat that combination.

My guess is that giving rights to your coders' code to the coders themselves would give you a number of benefits. First, you'd have much more modularly written code. People would want to have code that promotes reuse so that they can show it's theirs and use it for a project other than the one they're doing now. Your coders would take their coding much more seriously, knowing spaghetti code means the code is likely no longer theirs to claim outright (though you could certainly give them the rights to "surrounding code" too as part of a task description). You'd also see people take more care in their coding -- now they have a great reason for buy-in on their projects. Sure, you might miss out on some of their overtime hours as they furiously work on code they have at home, but you might be able to work out re-integrating improvements to that code back into your codebase if you're flexible enough and the new contract anticipated it. You could create a sort of "intracompany open source agreement" with your employees.

Furthermore, if your hackers do hit it big on the side, you've got two things to make yourself feel better about their loss. First, the code they wrote for you was pretty danged good. Second, you've got a contact in a business that's coding in styles that match your culture. Heck, buy them out if they do good enough. In any event, use their success as a potential means to create more business for your company! I was part of a company that apparently got bought out in large measure because we used the same accounting software as the parent. Imagine if the coding conventions, planning docs, heck the culture was the same at the spin-off. Get the best, have them give you their best work, and help associate with the best in new fields once/if they take off on their own.

Again, get your coders working not just for your but for themselves. I understand that you'd probably prefer to have coders with total and infinitely long company buy-in, but in a round about way that's exactly what this is. Your code is their code is your code, and your high-functioning company and its products will be better for it. Hey, three years is a very long time.

It's a rosy set of glasses, but I have to think there are some lessons in there from creative, employee-considerate IP contracts somewhere.


posted by ruffin at 5/18/2004 12:05:00 PM
0 comments
Friday, May 14, 2004

This (quoted below) is what I was trying to say here:

4) Only the programmer who is going to write the code can schedule it. Any system where management writes a schedule and hands it off to programmers is doomed to fail. Only the programmer who is going to do the work can figure out what steps they will need to take to implement that feature. And only the programmer can estimate how long each one will take.

...

Inept managers try to address this by figuring out how to get people to work faster. This is not very realistic. ...

You might be able to get 10% more raw code out of people temporarily at the cost of having them burn out 100% in a year. Not a big gain, and it's a bit like eating your seed corn.

You might be able to get 20% more raw code out of people by begging everybody to work super hard, no matter how tired they get. Boom, debugging time doubles. An idiotic move that backfires in a splendidly karmic way.


Read more at link, above.

posted by ruffin at 5/14/2004 10:41:00 AM
0 comments

Bloggeriffic Friday!

Finally, an answer, at least with the oft maligned [by myself -- and others] Swing, to the age old question, "How do I ensure my customer doesn't see a well-made GUI and think the entire application is done?" In VB, this is horrible. People will spend time doing the "fun work" dragging buttons in non-standard, non-abstracted ways all over a form, hit run, and the customer thinks the app's almost done. Au contraire, mon frere, it's hardly begun, and in fact what's been done might have only compounded the problem.

So the idea [with the Napkin look & feel] is to create a complete look and feel that can be used while the thing is not done which will convey an emotional message to match the rational one. As pieces of the work are done, the GUI for those pieces can be switched to use the 'formal' (final) look and feel, allowing someone looking at demos over time to see the progress of the entire system reflected in the expression of the GUI.

The look looks like all the GUI widgets were scrawled with pencil on paper. In theory, to go live you'd just change to your final look and feel -- either the failed Java look & feel, native, or the horrible Motif, among others. Neat.

Take a look -- as long as Sourceforge is up to dealing the bytes (and you've got a pretty recent Java VM installed) you can view a demo with WebStart.

posted by ruffin at 5/14/2004 10:22:00 AM
0 comments

Ack! There's more! I suppose I should be very happy that I can write one Atom parser rather than a true NNTP interface for reading usenet posts quickly, but my ideas of a few years ago are certainly getting implemented, whether I'm doing it or not. If I only had the wherewithal to live cheaply enough to make hacking for myself a real possiblity. But enough whining, here tis:

Looks like Google is pushing Atom (a standard that 'competes' with RSS) with the launch of the Google Groups2 beta. They have added Atom feeds for thousands of Usenet groups.

posted by ruffin at 5/14/2004 10:09:00 AM
0 comments

This is the sort of thing that happens when you have a good idea and not enough time to implement it. Rather, that's [nearly] what happens when you do have the time, and this is what happens when you don't quite.

Which is a long winded way of saying what I'd like to do is what everyone'd like to do -- combine the web, usenet, and email (any sort, with special attention paid to mail lists) into one aggregator-like app that'll easily replace your morning paper. Why? Because the news that's inside is not only interesting to you but b/c some of it is specifically written for you -- replying to items you've written.

Now if real life could bugger off for another three to four months, I think I'd be able to come up with that.

posted by ruffin at 5/14/2004 09:42:00 AM
0 comments
Thursday, May 13, 2004

I know, I know, I should stop reading my own blog, but I just can't get over the quote from some Netbeans feller on 3.6.

Here it is again.

Definitely. 3.6 focused on 2 major things: the use of Windows L&F on Windows 2000 and XP (and updating the NetBeans design to look cool under those L&Fs) [and something else]...

Look, if Swing's "Java look" is so bad that not even developers can ignore Swing apps that don't look native, hasn't it failed miserably? I mean, nobody should be more capable of ignoring quirks and understanding why having a Java look and feel that acts exactly the same, regardless of platform is a laudable goal. If not even the evangelists have faith, why not go ahead and sell out to SWT (or at least start AWT development back up) now?

posted by ruffin at 5/13/2004 05:30:00 PM
0 comments



As I've mentioned before, I've been using James Gosling's weekend hack for a news aggregator for the last few days. It's nice, and most importantly comes out of the box subscribed to most of the feeds I'm interested in reading anyhow.

Working from home today, which means I'm not on my recently configured box at work nor my OS X box at home -- I'm on the home XP laptop (soon to be 2k so that I've got IIS again). Turns out I've got Java build 1.3.1_06-b01 on this box, and that's not recent enough to run Gosling's hack.

Why is this as blog-worthy as my other rants? Well, even if you ignore my apparent threshold for blogging worthless bytes, what I find interesting is that Gosling not only uses deprecated methods (which I found out when I took a look at the code on the Mac several days back), but he also requires a 1.4 virtual machine, essentially the latest out there. That is to say, he's all over the place, using objects let's say 50% of the VMs out there don't support as well as using objects that Sun's warned us for years now may be going away (though, afaik, nothing important really has yet).

If this is the kind of coding we get out of the "father of Java", weekend hack or no, well, there's hope for the rest of us yet.

posted by ruffin at 5/13/2004 11:40:00 AM
1 comments
Wednesday, May 12, 2004



Strive to create a workplace where you have the luxury to give your programmers as much time as they request -- including amending dates back as often as requested. Be in a position so that if a programmer doesn't work out and his/her dates aren't acceptable you simply fire them/move them somewhere else in your organization where they can be successful.

That's not to say you shouldn't reward timely work completion and great self-management; pas du tout! The bottom line is that if you have subpar workers, the last thing you should do is catch yourself in a position where they're forced to use less time than they must take to make passable code. Some people can't make passable code no matter how much time they're given. Your shortened deadlines wouldn't work there either. Some people need you to crack the whip, yet holding them to deadlines they can't meet just means you're embedding bugs you'll be fixing at a premium later; your bad programmers are causing you more work as you speed them past where they're comfortable.

Key is that I said, "Strive to create a workplace where...". You'll need most of your programmers to be pretty mature self-starters before you can start ignoring bad code long enough to hand someone enough rope to hang their professional career at your company. But the striving will be worth it once you're there. I just know it. ;^)

posted by ruffin at 5/12/2004 03:31:00 PM
1 comments

This story gives us a pretty ludicrous quote.

Open Source activists that want to see Linux succeed argue that eventually, they want all intellectual property protection to end, including patents and trademarks. The bottom line is this: a non-IP future means that all companies in the Baruch Lev study go to from 85% to 0% in intangible asset value.

Companies in the land where you can reverse-patent a hyperlink somewhat successfullly are going to end up with 0% intangible asset values? That's obviously madness. There simply won't be a "non-IP future", and it's silly to place these real-world companies in that outcome and see what happens.

Not only that, it's not like you can't continue selling closed-source applications that run on "non-IP" OSes. As long as you're offering something that only you can implement well, you'll have a market. What we're killing are shareware authors, not large software development companies.

posted by ruffin at 5/12/2004 12:22:00 PM
0 comments



Emulators are neat, and they allow systems that should have died decades ago to run as if they'd just been ripped off of the assembly line. But are they practically useful and will they ever be? Sure, I enjoy playing Elite on my iMac running OS X, but I'm not about to trade in even AppleWorks for Speedscript just yet.

Will there ever be a time we long to use useful application from a dead system? Classic on OS X is getting close, as I've got a newsreader and mail client I like using weekly or so. If my next Mac doesn't have Classic for some strange reason, I'd like to grab a Mac OS 7.6+ emulator to keep things running.

But are there examples of productivity software that people use mainly through emulators now because those applications are still better?

posted by ruffin at 5/12/2004 10:38:00 AM
0 comments



Regular Expressions in Visual Basic 6.0 (VB6):

As I've complained, finding VB6 tutorials now is more difficult since Googling "Visual Basic" pulls back as many or more VB.NET examples [for things like regular expressions] as VB6. Anyhow, here's VB6 Regular Expression code, "inspired" by this tutorial on using regexp from vbscript.

' Step one: Include a reference to "Microsoft VBScript Regular Expressions 5.5"
' in your project.

' From: http://www.brettb.com/VBScriptRegularExpressions.asp
Public Function isMatchFound(strToCheck As String, strRegExpPattern As String)
On Error GoTo errHand

    Dim rexp As RegExp
    Dim bReturn As Boolean
    
    bReturn = False ' assume not a match
    
    Set rexp = New RegExp
    
'This object has three properties: Pattern, IgnoreCase and Global. Pattern
'specifies the Regular Expression that should be searched for. IgnoreCase should
'be True or False depending on whether the search should be case sensitive (the
'default is true). Finally, the Global property should be set to True if the
'search should match all occurrences of the pattern, or False if just the first
'occurrence should be matched:

    With rexp
        .Pattern = strRegExpPattern
        .IgnoreCase = True
        .Global = True
    End With
    
'Once the RegExp object’s properties have been set, it is time to test the
'Regular Expression. This is done using something like the line below. This uses
'the Test method of the RegExp object to see if the Regular Expression is found
'in the StringToSearch string.
    
    bReturn = rexp.Test(strToCheck)
    
    'Finally, the RegExp object is destroyed since it is no longer required.
    Set rexp = Nothing
    
    isMatchFound = bReturn
    
Exit Function
errHand:
    MsgBox Err.Number & " :: " & Err.Description
    isMatchFound = False    ' return false on error
End Function


As an aside, I'm using the new Blogger interface. Combined with Google's GMail, nobody is doing a better job providing a full-functional application crossplatform using just a browser (allowing you to make your OS, computer, even location unimportant). I can check out a preview of my post with a few keystrokes (like in GMail where I can check email, compose, etc with single keys, "elm-like"), and it's even got a nice "rich text-like" editor box. Combined with on-the-fly spellcheck like you find in OmniWeb, these are some of the best apps out there and aboslutely put ActiveX and Java applet kludges to shame.

Labels:


posted by ruffin at 5/12/2004 09:34:00 AM
0 comments



This is a new post to see if it'll let me add comments to new posts from the front page. Will likely be deleted later.

posted by ruffin at 5/12/2004 09:15:00 AM
0 comments
Tuesday, May 11, 2004

Though it's not computer science nor appliction, this story at the BBC on genetically modified corn is an example of awfully obvious yet awfully sound logic:

In the US and some other nations, Bt maize [that is resistant to certain bugs because of lethal-to-bugs toxins bred into its stalk] has to be grown alongside so-called 'refuges' of conventional varieties - a strategy aimed at preventing the insects from becoming resistant to Bt.

Brilliant!

Anyhow, this is the sort of logic I'd hope someone you've got working with you to understand immediately after reading the quote above.

Quickly, wrt the issue they raise of having the Bt gene contaminate the surrounding refuge corn without the modification, is that really a big deal? Rather than a quantum leap from genetically modified to genetically unmodified you've got a spectrum. I seriously doubt they thought that the insects weren't going to mutate at all; the goal was to minimize it. I have to imagine these findings hardly undercut that goal.

The new concept is simply to ensure that your "spectrum space" between 99.44% genetically unmodified and the Bt maize is minimized. WOW. CRAZY SCIENCE GOING ON THERE!

posted by ruffin at 5/11/2004 01:09:00 PM
1 comments
Friday, May 07, 2004

If this is true, I'm legitimately scared. I'm not going to turn this blog into a free speech bully pulpit with the other bits that've scared me if I can help myself. That said, it's well past high time we stopped attributing monentary values to everything we do or have done to us.

posted by ruffin at 5/07/2004 12:05:00 PM
0 comments



Remember when I said that VS.NET highlights comments starting with TODO? Turns out "hack" at the start of a comment is another keyword that's tracked. That's cute.

Still, folks, use the more traditional "TODO" if you're working with me. ;^)

posted by ruffin at 5/07/2004 09:51:00 AM
0 comments
Wednesday, May 05, 2004

In a very geeky blog, BEA says the same about JDO that I've been thinking would be the case for a while:

BEA explained their no vote saying they 'don't see how having another release of JDO, whose market acceptance is essentially constrained to use with object databases, can be explained in conjunction to similar enhancements being made in the EJB3 expert group.'

I just can't see a good reason to use it. I think in rdbms-ese. No real good reason for me to serialize whole objects to a database; that seems to blast the whole advantage I have by using the rdbms in the first place. Anyhow, looks like BEA is saying the same thing, in this case wrt a new version of JDO and why they voted against releasing the spec.

posted by ruffin at 5/05/2004 02:25:00 PM
0 comments



Welp, looks like I've finally found a news aggregator I'll use, the oft-criticized Juicy News Network by James Gosling (notice the not coincidental quotes from him yesterday). Why is it criticized? At least one open source Java aggregator maker is upset that Gosling made a new app from scratch instead of contributing to his project or at least using his project's engine.

That makes sense, sure. When I offered to try and port Furthurnet to Mac OS 9 (which I got awfully close to doing; md5 checks were non-trivial, and I'm afraid nobody picked up the otherwise ported source I released), at least one fellow on the Futhurnet development mailing list was upset that I was "wasting time" (paraphrase) on something that wasn't a primary concern to the project. Luckily a more senior programmer spoke up and said, again paraphrasing, "If Ruffin wants to work on an OS 9 port, we should hardly turn away the offer." That's what open source is. People contribute according to interest and ability. There's no way to say, "No, the source is open only to those who contribute according to a road map." Everyone can do whatever they want; it's a strength and weakness of open source.

So if Gosling wants to release his on aggregator, super. He's scratching his own itch, which he admits was part just wanting to give RSS a try. If the other open source aggs want to steal his code, no problem. His stuff is BSD licensed.

So why do I like this gator? Well, it appears that Gosling reads a lot of stuff I like, and JNN displays those feeds by default. Configuration for me was instantaneous. MacRumors, Java.net, The Register, Slashdot, Netbeans, BBC, Apple... there's very little he's got that I don't like checking out. That it's xplat doesn't hurt, and I imagine I'll start using it on OS X and XP/2k. Not to mention it's in Java, so if I want to I can hack it up, to some extent, myself.

And that's what end users like. Quick, painless apps. That doesn't mean JNN's for anybody -- on the contrary, it's easy for people who read what Gosling reads. What you need before any of these can easily hit the mass market is for it to appeal to mass users just as easily. I'm a pretty savvy user, if I do say so myself, and to this point no aggregator has been useful enough within the first five minutes to capture my attention. Getting a generic rss reader that'll appeal to everyone -- now that's something that'll be tough to tackle.

(I feel somewhat compelled to add that this post flies in the face of what I said on /. yesterday, where I suggest the people working on replacing NT 4.0 instead contribute to Mono and create a ECMA C# replacement. This was more on theoretical grounds -- shouldn't we, as a community, be more excited about the benefits a strong Mono would have than an NT 4.0 replacement? And I can't say I agree 100% with my own comment, which had a little devil's advocate in it. Something that runs Word 97, IIS, & ASP, is free, and continues to patch security holes would be a great thing. But as far as buy-in from companies now, I have to think a robust Mono would get more commercial play than NT 4.0 remade, released likely years from now in any really usuable form, by an awfully long shot. It's simply not practical, however admirable.)

posted by ruffin at 5/05/2004 09:18:00 AM
0 comments
Tuesday, May 04, 2004

Here's a descriptions of where resources were spent in Netbeans 3.6 development:

GlennHolmer: There were big changes in the user interface for 3.6; are more changes planned for 4.0?

Ian Formanek: Definitely. 3.6 focused on 2 major things: the use of Windows L&F on Windows 2000 and XP (and updating the NetBeans design to look cool under those L&Fs), and introducing a brand-new window management system to streamline the way the IDE fits into the natural workflow of development.


Great. Half the advances of the xplat IDE fell under tweaking a cross-platform GUI API to look like a native GUI toolset on one platform. Way to go! Efficient!

posted by ruffin at 5/04/2004 01:23:00 PM
0 comments

from here:

Some of IBM's statements have essentially distilled down to 'we'd love to help: open source java so that we can'. This has led to questions about whether or not IBM has been able to help. The answer is that they have. They're one of the strongest participants in the Java Community Process. Their participation over the years has been substantial, and we're very thankful for it. For example, IBM was the major mover that led to the creation of the Swing API to replace the AWT api. They contributed many engineers to the Swing team. Viewing that time in hindsight, it is more than slightly ironic that these days they're endorsing SWT, which is essentially a clone of the AWT architecture, which they had strongly condemmed back when the decision to create Swing was being debated.

Least they don't mind figuring out in hindsight that they were wrong. Having a long memory about how people are hypocritical might help in politics, but when it comes to business, let's say in strong words what we believe is right for today.

Aside from that, I think he's got a right good argument against open sourcing Java. Come on, don't you think Java will go somewhere if Sun buckles under?

posted by ruffin at 5/04/2004 12:47:00 PM
0 comments



For all the fuss over gaming consoles becoming convergence boxes, it looks like the Macintosh might be winning. iTunes has started delivering multimedia content (movie trailers, but also audiobooks and some other fringe, non-textual media), and it looks like it'll soon be a great gateway app that could be for commercialism what the browser was for academia -- and early home net users.

The interesting part is how many hooks there are now for commercialism to very subtly influence our lives. Take the "iMix" as an example. You can now upload your mixes from iTunes to the iTunes Music Store (iTMS) so that others can see what you listen to and buy the same songs. Songs in your lists that aren't on the iTMS aren't listed, of course, even if they're in the free & clear copyright wise.

Anyhow, one neat feature is that these mixes have mosaic-ed (there's some browser irony there) album covers representing your mix, like the one pictured with this blog entry.

If I had to guess, I'd say that Apple isn't cleverly deciding which artists to show at the moment, but if they aren't now they will soon. The mix represented by the pictured mosaic certainly has artists in addition to the ones shown in the composite album cover, yet Sarah McLachlan, who only has three songs out of the 55 listed, has two albums on the mosaic. You might also remember McLachlan was one of the first big names to endorse iTunes, and had her picture plastered on the front window of the iTMS for weeks at launch, iirc. The Black Crowes, who have twice the songs of McLachlan, aren't even pictured. (That said, you can't argue with having Flatt & Scruggs or Willie Nelson on the cover, no matter how they're represented in the list.)

Anyhow, as these mixes are linked to and from offerings by artists contained when people shop with iTunes, this sort of subtle advertising will be worth something. iTunes also now allows you to print CD inserts in the same fashion, so when you make a CD or give it away (if such a thing were legal, of course), who gets their album on the cover could be receiving a pretty effective advertisement.

Paying for preferred placement on mosaiced iMix album covers is a simple method iTunes and Apple could allow commercialism to influence our lives more effectively than ever before. At the same time, we're being guided towards a true consumer convergence machine because we crave the advance; the new browser is coming, like it or not. What's crucial is that we also start thinking critically about how this invention will affect our lives -- and ensure that when we enter that we're going in, eyes opened.

posted by ruffin at 5/04/2004 09:15:00 AM
0 comments
Monday, May 03, 2004



This is the place to get all your DataGrid questions answered. Be warned; the in-page links follow a standard that (afaict) is supported by IE, not Firefox/Moz & some other browsers. I have emailed the schmoe (months back, iirc), but have gotten nuttin.

posted by ruffin at 5/03/2004 10:43:00 AM
0 comments



A coworker years ago tried to teach me the lesson, "Never test on the production application." Some people are still learning that lesson. For some time, I'd hack on our internal web system as it was live and slap a "debugging; do not use" message at the top of the page. As nice as that is, obviously what you should be doing is setting up an exact duplicate of your app somewhere else, hack on that, and only leave debugging the migration for the live version's update. If you're hacking catch-as-catch-can, what you're likely seeing is a poor process, where you might be kneejerking a quick fix for a call you got yesterday. That's a real issue.

But in any event, don't hack anything live. Have a backup of an older version ready to slap up there in case the new version is borked, and the worst that happens is you quickly roll back your app. If the stakes are high enough, make sure you can run in parallel for a while.

And for heaven's sake, don't put up anything half-implemented into a live app.

Sounds so obvious, yet I'm hit with it -- now as a user -- much more often than I'd like.

posted by ruffin at 5/03/2004 08:52:00 AM
0 comments

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.