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!

Thursday, April 29, 2004



Was looking for emails with information about our company's 401k today with Thunderbird, my preferred mail client of the moment. I've been using 0.3 for quite some time now, and have had trouble during upgrades in the past, so I'm leaving well enough alone by not upgrading to [whatever the current version is, now 0.5].

That in mind, we've got some interesting search results. Turns out searching the "body" also searches attachments, at least in 0.3. Here's a line that came back regarding 401ks:

vq60/HLTNfMO/S6lLhGnNLT1efkLvXQ2bvc401KdKamcJ81Pk1lu2peKXWluNTM6muPV31wr
(bold mine, of course)

Not something you'd typically expect to come up in a search for 401k.

Anyhow, what's interesting to me is that the mail client, ostensibly using the same source as Netscape 7 as a base, has an error like that. You'd think that this wouldn't've been a problem with a mature client, and I wonder if Mozilla and its projects' new status independant of AOL has left something of a void in regression testing processes.

posted by ruffin at 4/29/2004 09:14:00 AM

Uh-oh. Every so often you lose what you thought was a perfectly good reason to flame someone (so a petty, geeky distinction not worth pointing out), like this one:

Because of a problem with copyright infringement, Apple didn't think it could keep the Macintosh name, already in use by another company (though with the correct spelling, 'McIntosh'). It experimented with MAC (Mouse Activated Computer, reverse engineered from Macintosh), Apple IV, Bicycle (Jobs' favorite), and Esprit. None sounded right, so Apple instead paid a hefty fee to obtain the name 'Macintosh', as it did with the name 'Apple' itself some years later. (emphasis mine, of course)

Well, it seems that all those people who say MAC all this time aren't nearly as wrong as they might have seemed. Even if they stumbled into the non-mistake, you have to admit (if this page is in the right), there is a historical basis for them using "MAC" to mean Macintosh. Dang! ;^)

posted by ruffin at 4/29/2004 08:59:00 AM
Wednesday, April 28, 2004

Seems this fellow who "started at Microsoft in June of 1994 on the Excel team" drunk the kool-aid all right:

For the curious, here is what 'drinking the kool-aid' is really like: After about a year at Microsoft, I got tired of these endless Type 11 errors every 20min running Netscape on my Mac at home. These required me to restart the machine each time - losing everything I had been doing. The flawless and imperturbable performance of Windows NT at work won me over on purely pragmatic grounds - so I finally got a PC at home. After a year of distrusting the company somewhat, I began to gain an appreciation of how Microsoft worked, and to see it for what it was - a machine that was focused on building products that people wanted, as quickly and as well as they could. Note the 'quickly' - this was what distinguished MS from Apple in the end - a focus on moving quickly, and beating the competition.

Type 11 errors every 20 minutes? The next quote gives us key info as to what's going on:

I was a fairly sophisticated Mac user, and I knew all about extensions, and extension manager, and what sorts of things could go wrong in the Mac. The fact that the Mac I had loved for years for its simplicity and appliance-like perfection (I loved MacWord 5.1a similarly) was now forcing me to have to deal with this overhead of managing its internals on a daily basis wore me down over the months. I had to rebuild my system file regularly.

I don't know what he was running, but I sure as heck never had this trouble. Nor am I having it now with an old Powerbook 520 running 7.6.1. I should have a 520c up soon with 7.5 on it, and it'll be interesting to see if that version causes more grief. In any event, when my LC went from 6 to 7, I don't recall having trouble on the same level as this schmoe, and my Powerbook 150, used daily, did just great on 7-7.6.

What we've got is someone doing the near equivalent of hacking his own registry daily in Windows. Eventually you're going to mess up. I'm suspicious that he never backed up his work and reinstalled the OS cleanly after this reboot per 20 minute cycle.

Anyhow, I'm not going to slam MS and Office's superiority back in 1996 or so. MS has made some really nice products. But the characterization that Apple didn't -- and the implication that they therefore don't & can't -- produce quickly enough is likely wrong-headed.

posted by ruffin at 4/28/2004 01:04:00 PM

I said Apple shoud have added this feature way back on November 11th. Nice to see they finally got around to it.

And no record store in the mall lets you waltz in with albums you already own and request a bin full of all other music by that band only. Thatรขโ‚ฌโ„ขs right, now you can just click a Quick Link in your personal library to get an instant display of tracks more like it in the iTunes Music Store.

Adding that link was a no brainier. Now if they'll only think different and normalize.

Update: Boy, they botched that addition. The arrow icons on every song (that are "links") are annoying. Luckily they're just one pref click away from being zapped. An extra button for looking at songs related to the one you're listening to, positioned at the top of iTunes, would be much nicer -- useful without being intrusive.

I also tried clicking beside a Hookah Brown song I snagged from Furthurnet. Sure enough, Apple hadn't gotten that far into their link logic, and Rich Robinson's latest band to go belly-up didn't even return a recommendation for The Black Crowes. If it's in CDDB, you'd think Apple could have the goods in iTunes.

A better idea would be for Apple to grab something open like FreeDB (I think that's open) and get a database that has good links with relationships running on one of their servers. In this case it's not so much the information that's as important as the implementation of what's being done with the info, so even a GPL solution should work just fine. If they have to keep CDDB around as a front-line, but appeal to the Free replacement in case CDDB strikes out, I think it'd still be worth it.

Voila, spam for the day.

posted by ruffin at 4/28/2004 08:53:00 AM
Tuesday, April 27, 2004

EFF: The Patent Busting Project: "In the coming months, EFF plans to launch various technical efforts to document the harm that these patents are causing to the public interest. The efforts will include:

(1) Identifying the worst offending patents;
(2) Documenting the prior art that shows their invalidity; and
(3) Chronicling the negative impact they have had on online publishers and innovators."

posted by ruffin at 4/27/2004 12:30:00 PM

This look at the Xbox 2 at the Register has me wonder what kinds of plans MS might have for Mac users.

The next-gen Xbox will boast three PowerPC 976 chips, each based on IBM's Power 5 architecture and fabbed at 65nm. [give or take the same processors in PowerMacs today -R]

Alongside them will be an ATI R500 graphics chip, apparently. It will support DirectX 10, which will also provide the graphics API for the next major version of Windows, 'Longhorn'.


Hrm. You know how many people try to make a big deal out of Apple perhaps releasing for x86? You know what might be a nice fringe benefit to MS from the Xbox2? That's right -- Windows on Mac hardware. MS doesn't care who's selling the hardware; only what OS they run. If MS can have Windows ready as a fallback for Mac users once they're forced into Apple's plan of "Buy or Bye!", they might find a pretty sizable audience. I've seen a number of people complain about not being able to run OS X on their boxes who have pitched to Linux, and many Linux users seem to have switched to OS X because of the superior hardware moreso than anything distinctly Mac-esque about OS X. The trend could continue.

The only issue is all those compiled applications. Two key things to remember there:

* .NET runs in a sort of virtual machine (a "common langauge runtime") like Java. Rewrite the virtual machine for the G5 and you're ready to run .NET apps on Mac hardware already.

* Microsoft owns VirtualPC now. Anything that's native can still run emulated on the G5.

I'm going to go ahead and cast my hat in the rumor ring and say that part of MS's potential anti-Apple strategy is releasing Windows for Mac hardware. They've done it, give or take, before (NT on PowerPC). Now they'll consider making a push for the client machines themselves. More conspiracy theory than something I'm confident will happen, but the pieces are all there.

posted by ruffin at 4/27/2004 12:03:00 PM

It's nice to see Apple's protecting its IP up front as opposed to waiting to sue random 16 & 60 year olds later.

Playfair and QTFairUse both provided rough applications to accomplish the task of stripping iTunes Digital Rights Management. Playfair was originally hosted at Sourceforge, but was reportedly shut down at Apple's request.

Sarovar was the next home for Playfair, but was also quickly removed at the request of Apple. From the cease and desist letter...


Sometimes companies play IP suits along the lines of an extra revenue stream rather than something they actually want to keep safe/their property. Even if you hate IP laws, I hope you approve of the way Apple uses them (at least wrt AAC; it would appear that they've been awfully heavy handed to a few URL owners).

posted by ruffin at 4/27/2004 11:52:00 AM
Thursday, April 22, 2004

In general I don't like Robert Cringely much, as he often does a poor job supporting over the top arguments in my limited experience, but this article sums up what most Linux zealots need to understand (yes, you):

All those who think Linux will clean Microsoft's clock who are also people who have never compiled software, please hold up your hand. See, it is the technical community (those who compile -- the Compilers) that sees Open Source as the ultimate winner while all the people who actually buy software don't.

Mind you, that's much different than saying, "See, just like I told you, Linux can't win," which I believe (haven't finished reading) Cringely might very well do. An Open Source OS will eventually win, I believe, not because of where it is now but because eventually people who buy software *will* start using GPL'd jive. Limewire was open source, and a number of traditional end-users sure as heck use that. I'd like to cite Mozilla, but I'm just not as confident that's as good an example -- but the numbers are high enough (of non-Compilers using the software) that it shows Moz can be done outside of the world of geeks.

And, eventually, people will find alternatives to each of their computing needs and, suddenly, one day Open Source software will hit that tipping poiint I mentioned earlier.

But for now, what the Compilers need to understand is that until Linux can pass the above quoted test, Linux won't reach the tipping point. Furthermore, anything they can do to move Linux towards passing that test, better than any other test I've seen, will help move Linux toward the eventual position of superiority open source software's paradigm nearly guarantees.

posted by ruffin at 4/22/2004 01:24:00 PM

Here we find an excellent description of what a blog[ger] does, minus the obviously inappropriate or, at the very least, horrendously callous use of the word "proletariat":

One of the things I like about blogging is that thereโ€™s no requirement to do a good job โ€“ itโ€™s just my ramblings, on my website, covering whatever my fancies might run to. Thatโ€™s particularly nice in that it gives me somewhere to just whine or ponder about whatever I might like โ€“ Iโ€™m not obliged to censor myself because my friends or colleagues mightnโ€™t be interested, or because I donโ€™t have any clue what Iโ€™m talking about. Blogs are meant to be the ignorant rambling of the proletariat.

posted by ruffin at 4/22/2004 12:21:00 PM
Wednesday, April 21, 2004



A number of tools recognize the keyword "TODO". VIm sometimes highlights TODO in yellow. VS.NET allows you to show TODO's in your "Task List" (right click the task list, select "Show Tasks", and select "Comments" or "All") like so...

D:\Projects\County of Name Changed, XX\Project Name\FrmName.vb(111): TODO: Finish comments.

I've talked about it before, and you still owe it to yourself and others to add TODO's in many many cases. Knowingly using a kludge for some reason? TODO it. Skimping on data QA? TODO. See something that you're thinking about now but might not remember to scrawl down later? TODO!

The best code is finished code. The next best code has inline comments on what's left to be done. Use an informal standard and TODO your code. Please. I might have to use it later.


posted by ruffin at 4/21/2004 01:30:00 PM
Monday, April 19, 2004



Beside me is a "Webster's Dictionary", in this case the "New Lexicon Webster's Dictionary". I don't recall the particulars, but apparently Webster didn't think to register his name as a trademark or a copyright (or whatever's appropriate), so everyone and their brother got to name their dictionaries after his name, quickly appropriating his reference book's reknown and reputation.

One part of me thinks that it's a real shame Mr. Webster didn't get to take full monetary advantage of his reputation by licensing his name -- or keeping it all to himself. But then who of us know of Samuel Johnson's Dictionary, arguably the best of the original selections? Was Webster better? Or did his mistake, made at exactly the right point in time, give him the immortality so many people seem to be seeking, often through the same fortune I mentioned above.

Hrm. Wonder if Webster minds the trade-off when all's said and done?

posted by ruffin at 4/19/2004 09:32:00 PM

After reading this recent post at Slashdot, it appears I might need to read the EULA before turning too much of my VB.NET code into open source works. Rather, I suppose I oughta check the SDK's license, and perhaps ask the #develop team how this might affect them (having assumedly used at least the SDK to create their monster).

I ran into this with VS.net 7.1. Upon discussion with the legal types, we determined this:

In order to release our application under the GPL, we would have to write a 'special exception' permitting linking with Microsoft runtime libraries, same as we currently do with linking against OpenSSL and some other BSD-licensed stuff.

posted by ruffin at 4/19/2004 11:19:00 AM
Wednesday, April 14, 2004

A little upset I didn't stumble over this earlier, but, finally, with Java 1.4, it seems with have a layout manager that works. This is as simple to use as it can be (approaching the GridLayout) while at the same time providing much of the same functionality you'd find in GridBagLayout before. Good job (I think) Sun.

posted by ruffin at 4/14/2004 10:45:00 AM
Monday, April 12, 2004

If you've got an old 68k Mac, this site has awfully old browsers galore.

Didn't know IE 4 worked on 68k... likely worth a look.

posted by ruffin at 4/12/2004 08:32:00 PM

Finally, an OS X virus. I was almost starting to feel ashamed no OS X hackers had even bothered, and had toyed with the idea of writing up something myself. It'd be oh so easy to write the typical email-spam virus app, even in Java, and just try to release it into the wild with a touch of social engineering.

But in a strange twist of irony, you'll know OS X has made it once we've got enough uneducated people opening attachments that a proof of concept virus matters. Until people clicking open fake mp3s makes a difference, well, the Mac is still just a second rate platform, even for virus deployment.

And, honestly, this mp3 idea is weak. Many Mac users are going to use iTunes for mp3s, and it would appear that "running it" using iTunes after an import does nothing but run the mp3 file inside of the bundle through iTunes -- and wouldn't execute any code. So that's about as dumb a "virus" as you could get. Many people wouldn't even bother double clicking it even were they "fooled" into thinking it was just an mp3 file. Brilliant. Disguise a trojan horse as something that makes it *less* likely to be clicked. Absolutely brilliant. *sigh*


posted by ruffin at 4/12/2004 04:41:00 PM
Sunday, April 11, 2004



I used to say I didn't know if Apple had a J2EE (the "business class jvm", as opposed to the more client-centric J2SE (S == "Standard" and E == "Enterprise")) and that I thought they didn't. Someone finally asked on the Java dev list, and now I'm pretty confident I know they don't.

> Just out of curiosity... Where's Apple's J2EE stand-alone distro? If
> not available are they planning to release it in the future?

Apple includes JBoss in the developer package as an optional install.
They do not have their own implementation of J2EE and I doubt that
Apple ever will roll their own but instead focus on leveraging a
solution like JBoss.


And here's a bit more from Apple's site:
First, Apple provides support for the development and deployment of J2EE applications both using native Java APIs and using Apple's Java-based WebObjects frameworks. For conventional J2EE development with EJBs and servlets, Apple's Xcode Tools include templates for J2EE projects as well as a JBoss development server that can run your J2EE applications.

That's a second class Java implementation, I'm afraid, but it does get the first class treatment (still the only OS where you can count on a Java 2 jre installed out of the box).

posted by ruffin at 4/11/2004 04:37:00 PM
Friday, April 09, 2004

He's not even asking that much, so why is it that this repackaging of SpamBayes rub me the wrong way?

So how much does all this good stuff cost?
First off, we give you a month's free trial, so you can train your filter and get a good feeling for how D2S works. After then, we charge a subscription of US$35 per year (rates may vary in other countries). Extraordinarily good value! Plus, we offer a no-strings money-back guarantee if you're not 100% delighted with this service!


He's done quite a bit of work, apparently, moving SpamBayes from Python to Java, and SpamBayes is a PSF-licensed project (it's BSD-like).

So what's the deal? Well, this is where the whole LGPL bit breaks out a bit (or LGPL were there no Java/LGPL issues). If you grab open source code that's doing a very specific purpose and modify it for your own use, it seems you'd feel compelled to give back to the people that did that groundbreaking work. Here, that doesn't seem to be the case. If this guy wanted to turn SpamBayes into a Java lib and give that lib away, then sell a mail server he built on top of it, sure, that's great. But to port an existing open source project and keep those cards close to the vest boarders on immoral [for me] and certainly seems to skirt common courtesy.

Now I could be very wrong on one count and horribly biased on another. For one, he may have just gotten to the core of the formulas/process behind SpamBayes, which he then clean-room implemented in Java. If that's the case, more power to him. Secondly, in the interest of full-disclosure, I want his library!. If either of those deflate my arguement entirely, well, I wanted you to know.

Still, stealing from open source without giving back (heck, even Apple's giving back to BSD) is just plain wrong.

posted by ruffin at 4/09/2004 12:21:00 PM



Some quickly Googled links on the issues of the LGPL and Java:


http://weblogs.java.net/pub/wlg/258
http://z.iwethey.org/forums/render/content/show?contentid=110301
http://www.artima.com/forums/flat.jsp?forum=141&thread=7997
http://www.theinquirer.net/?article=10574
http://weblogs.flamefew.net/bayard/archives/000430.html
http://www.rosenlaw.com/osl2.0.html

posted by ruffin at 4/09/2004 10:01:00 AM
Thursday, April 08, 2004

I'm not sure this quote from The Register is quite on the mark:

But for Sun, which had rose through the ranks of a dozens similar workstation manufacturers through foresight, engineering skill and hard competition, Microsoft's mediocrity is an affront. Few companies can afford Q&A disasters in their core product lines, as Sun knows when it endured a torrid time upgrading its SunOS customers to Solaris. And huge opportunities were lost when Sun failed to execute, such as the potential leadership of the embedded processor market that the Java picochip promised, but couldn't deliver. Thanks to its monopoly position Microsoft can afford to release sloppy software and not worry about the repercussions.

Microsoft makes shoddy software? Now sure, the security holes are insane. Security is a problem. But from a, "where do you want your home PC to go today?" angle, Windows obviously does very well. I don't hear many people complaining about what they can't do on Windows, unless MS intended you not to be able to do it on purpose.

Sure, IE's features are lagging behind now and it seems like MS Money or whatever died a horrible death (or tried to), but overall I'm reasonably impressed with their software, especially the VB6 IDE (and now VS.NET), Word, Excel, Visio, and the like.

And where's Sun? What have they done to make the consumer OS market better? Nothing. We're comparing Apples and Windows here; Sun and *NIX don't even really have a dog in the fight. Does Sun have a better server-side set-up? Arguably, sure, but even there Windows has made some very nice headway in the middle-tier of the market (one above MySQL/php and below JSP et al and Oracle farms).

This also brings me to my question from earlier today -- If MS can stand to have shoddy software, they can also afford to start from scratch. Why haven't they? This is the part I don't quite understand. I worked for a company that had a line of products they hadn't updated/rewritten in years, and it brought in a ton of money for the amount invested. If you don't spend the resources to rewrite -- and keep selling! -- you can make a ton of dough. But I don't think that's what MS is doing, exactly.

Guess I should learn more about Longhorn and how much of the NT codebase it uses.

posted by ruffin at 4/08/2004 12:24:00 PM

It's my favorite blog topic:

With version 2.2.5, an era ends. This will be the last version based on the old source tree. Over the last three years, FileZilla has been constantly improved. However, in the past few months development has slowed significantly, mainly due to the fact that it's become quite difficult to add new features to FileZilla. The complexity of FileZilla has grown far far beyond anything then anyone could imagine when the project first started, this also reflects in the source code. That's why I've decided to leave the current source tree behind and start FZ3 from scratch. The new version will contain most if not all features of FileZilla 2.2.5 once done and will be cross-platform.

Refactoring told to shove off and we've written another to throw away.

When/how do you know when it's worth cutting loose a codebase and how to you know to do your best to keep those lessons around? This is even the same hacker, which makes things more confusing. I just don't quite get it.

Apple seems to have gotten away with tossing the baby & bath out and making another, cuter baby in its place. Take their Java virual machine -- it's been written from scratch twice now, apparently. The first break came with MRJ 2.1, and another with the move to OS X. They've also, obviously, started from scratch with OS X, though they did manage to bring along a pretty good OS 9 bridge with them.

What is it that allows Apple to throw away code but not Microsoft, who would apparently be in the best position to take a few years off and leverage their monopoly to keep rivals at bay as they reinvent the wheel?

posted by ruffin at 4/08/2004 11:41:00 AM
Wednesday, April 07, 2004



Using the CurrencyManager in VB.NET:

    Private WithEvents cm As CurrencyManager
    
    
    Public Sub hookDataSetToGui(ByVal dsRun As DataSet) _
     Implements IEntryScreen.dataBindToDataSet

        Dim dt As DataTable

        Try
            Me.dsTemp = dsRun

            ' we know we only want one table from the dataset for now
            dt = Me.dsTemp.Tables(0)

            ' bind to a CurrencyManager (at module scope) to control what row the user
            ' is viewing in the GUI
            Me.cm = CType(Me.BindingContext(Me.dsTemp.Tables(0)), CurrencyManager)

            ' Note that the way we're currently writing bindings assumes that...
            ' 1.) You know what the names of the DataTable's columns are when you're
    '     writing the screen code, and...
            ' 2.) Those names aren't going to change.


            '=======================================================
            ' ADD BINDINGS FROM DATASET TO GUI
            ' Generally you might want to give yourself more generic
    ' flexibility with stuff like this, but
            ' we're going to get pretty specific with the GUI anyway.
            '========================================================
            Me.txtFname1.DataBindings.Add(New Binding("Text", dt, "T_NAMEF1"))
            Me.txtLname1.DataBindings.Add(New Binding("Text", dt, "T_NAMEL1"))
            Me.txtSsn.DataBindings.Add(New Binding("Text", dt, "T_NAMESSN1"))

            ' init the label showing what row we're on (the first)
            If Not Me.dsTemp Is Nothing AndAlso Not Me.dsTemp.Tables.Count < 1 Then
                Me.lblPosition.Text = "Item 1 of " & Me.dsTemp.Tables(0).Rows.Count
            End If

        Catch ex As Exception
            mdlErr.errp("UcTaxableOwner", ex)
        End Try
    End Sub


    
    Private Sub cmdFirst_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) _
     Handles cmdFirst.Click
        
' First "Record"
        If Not (Me.cm Is Nothing) AndAlso Me.cm.Count Then Me.cm.Position = 0
    End Sub

    Private Sub cmdPrevious_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) _
        Handles cmdPrevious.Click
        
    ' Previous row
        With Me.cm
            If Not (Me.cm Is Nothing) Then
                If (.Count AndAlso .Position > 0) Then
                    .Position -= 1
                Else
                    ' TODO: Include changes to the GUI buttons 
                    ' (dis/enable as appropriate)
            ' instead of just alerts
                    If .Position = 0 Then
                        MsgBox("Already at first entry in this set", , "First Entry")
                    End If
                End If
            End If
        End With
    End Sub

    Private Sub cmdNext_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) _
        Handles cmdNext.Click

        ' Next row
        With Me.cm
            If Not (cm Is Nothing) Then
                If .Count AndAlso .Position < .Count - 1 Then
                    .Position += 1
                Else
                    If .Position = .Count - 1 Then
                        MsgBox("Already at last entry in this set.", _ 
                , "Last Entry")
                    End If
                End If
            End If
        End With
    End Sub

    Private Sub cmdLast_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) _
     Handles cmdLast.Click

        ' Last Row
        With Me.cm
            If Not (Me.cm Is Nothing) AndAlso .Count Then .Position = .Count - 1
        End With
    End Sub
    
    public function checkNumericTextForNull(txtTemp as Textbox, _
        strFieldNameInDataSet as String) as boolean

    dim bReturn as boolean = false

    If Me.txtTemp.Text.Length = 0 Then
        bReturn = True

        ' need to capture this separately so that we can 
        ' push a null into the dataset
        ' if the textbox has an empty string.
        If Not Me.cm Is Nothing Then
            Me.dsTemp.Tables(0).Rows(Me.cm.Position).Item(strFieldNameInDataSet) _
                = DBNull.Value
        End If
    End If

    return bReturn    ' true if we inserted a null
    end function

posted by ruffin at 4/07/2004 03:55:00 PM



WindowsXP has built-in zip handlers. Double click a zip file and you're inside as if it were a folder. Drag contents out, copy & paste, etc. You can even create a file called foo.zip and drop folders and files inside, creating your own zip without even feeling bad about having WinZip on your machine without a license.

Well, the problem is that the zip support sucks (no apologies to Frank DeFord). I've run into WinXP not recognizing valid zips (double-click to enter it and they appear empty in Windows Explorer) and I've had it make zips that were bogus (drop tons of files in and get something you can't unzip, not even with WinXP's zip handlers).

I've never had any trouble (knock on wood) with any of Info-Zip's freeware zip utilities. It's easiest for me to use the command line versions after adding zip and unzip to my computer's path, but there are GUI-interfaced versions as well. Giant zips are easily created and unzipped speedily. What's more, most of it is essentially BSD licensed, which I'm beginning to like more and more. UnZip is even billed as "The Third Most Portable Program in the World!"

Take a look, and kiss WinXP's buggy zip file handling and WinZip's nag screen goodbye, as I did years ago. (Actually, I first managed to get my workplace to buy me a license for WinZip. Incredible! Then I found Info-Zip's k3wl jive.)

posted by ruffin at 4/07/2004 10:49:00 AM
Tuesday, April 06, 2004



Heard a story on NPR yesterday about DRM and rights management in general. It seemed to point towards -- even referred to it by name once -- and Orwellian future. I've got to disagree. The biggest difference is that we've got choices, dang it, and everyone who can type "angelfire.com" can have a free printing press. Eventually you're going to reach that tipping point where people are going to be so put off by the newly introduced barriers to entry that open source and public domain are going to take off in places the commercial content "providers" never expected. Instead of cutting in half the number of people that *aren't* using their product (as discussed in the story linked above), these guys are just doubling the number of people that won't use their commercially distributed products.

I like iTunes and I've purchased three or four (maybe five?) albums, but I've still got 20 gigs of Furthurnet tunes. It wouldn't be that difficult to give up online music purchases (heck, even store bought, which I'd pretty much already done other than a few used purchases) if things get any worse. And have you ever seen how many books there are over 75 years old? We're going to be just fine.

So keep DRM coming. As long as Linux runs on some of the hardware that's released without all of the trusted computer overhead (or, preferrably, Apple stays out of the fray), eventually we'll be even better off than we are today.

posted by ruffin at 4/06/2004 11:34:00 AM
Friday, April 02, 2004



I'm beginning to think that XML files are more useful than I've given them credit for being, though that's not saying much. Let's say I have some data stored in a file for an app I make today. Five years from now, I have the same app about five versions' worth of changes further down the line. For some strange reason, I want to create a second application that can sync *any* version of my first app up to some third party application's information. Well, now I have something of an anonymous client that wants to access with my data file from five years ago -- it just happens to be me, five years later. If I've rolled my own file format, obviously there's a chance I broke bkwds compat and have to write my interface today for the 3rd party application twice. With XML, there's a much better chance that if I blast in fields the five year old app doesn't understand, it'll still keep chugging along, and will have saved me work.

Enough that I'm happy I used XML before? Quite possibly so, especially if I just vomited XML with code rather than bothered to use a full parser, etc.

Or perhaps the fact that I only got 3.5 hours sleep last night has finally caught up with me.

posted by ruffin at 4/02/2004 04:00:00 PM
Thursday, April 01, 2004



Okay, Brooks is right even when you go into a project knowing Brooks is right. I've still got one to throw away.

I knew I was taking a few shortcuts when I was creating the oft-pimped (here, anyhow. Haven't spent advertising dollar number one yet, and the revenue (only about $78,000 over the last year) reflects that (yeah yeah, smartarse, and possibly other things)) The Digest Handler, but now that I'm working on another project the gremlins are coming out of the woodwork. And the new project's *very* similar -- it's a mail handler. In this case, it's not a specialized mail handler, just a generic, every day, no frills mail handler. And yes, it'll probably eventually refactor itself & The Digest Handler so that the second is eventually swallowed by the first.

But as I begin to code up the new app, I've noticed I missed a ton of stuff I needed to do. Preference files aren't as extensible as they could be. I've still got some GUI elements that depend on others, making it too difficult to rip a JPanel from widget X in The Digest Handler and shove it without changes into the new project. Even -- argh, .NET's already got me forgetting the Java name -- "namespaces" that aren't weildy have caused trouble, which means that the code isn't grouped according to functional units as well as it could've been. I'd like to grab one namespace for preferences and be done with it, but I'm slowly having to pry it all loose from the other objects around it.

Luckily my project at my "day job" is getting to the point that it's reasonably well factored out. I've got GUIs that are passed all their information in instances of the ADO.NET DataSet. Each individual UserControl (GUI element) needs only to have the right DataSet format passed to it and it's ready to go. Each UserControl also has a test Form that'll create a DataSet from a sample XML file for testing, meaning you don't even need a database connection to get the programming going. Each tiny GUI element is totally separated from the business tier. It's very nice, and makes coding the GUI away from the RDBMS backend (so on a laptop at the beach, say, not that I'd try that. Too much sand) a pleasant thing for which to prepare.

So though I don't argue for throwing away the one to throw away -- refactor instead -- it's interesting to note that even when you're thinking about doing it right, it won't always happen.

Ha, yes, $78,000 in revenue was an April fool.

posted by ruffin at 4/01/2004 12:59: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.