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!

Thursday, May 30, 2002



A buggy bird in the hand is worth two unknown birds in the bush. <guy behind the bad bart fellow in parappa voice>Yeah.</voice>

posted by ruffin at 5/30/2002 10:52:00 AM
0 comments
Tuesday, May 28, 2002



Rather interesting (and rather long) interview with the Chairman of BitKeeper's Board highlighted on slashdot today. I'm a little short on time having read it, but I did want to share a pretty interesting quote.

JA: However, GPLed software comprises the majority of the quite successful GNU/Linux operating system. I have found that if I have problems with a program I'm using I don't have to fix them myself, instead once I track down the development team (often just one person) and report bugs, they are quickly fixed. Free of charge.

Larry McVoy: That really depends on what it is that you are reporting. I've certainly found that to be true for some projects, but go take a look at all the projects on sourceforge and view their activity. The vast majority of them are the first pass of the code, it sort of works, and now no one is working on it.

The problem is that coding is fun while it is fun, but when it isn't fun, there has to be some other reason to keep doing it. For a lot of projects, it's painfully clear that it became "not fun" and the project stopped. Browse the CVS repositories and you'll see what I mean.


Of course I'm guilty of this and have a nice-sized plateful of apps I'd like to finish up (if I ever get to stop 9-to-5ing...), but this does play into something I've been giving more thought lately. Apps eventually grow out of the perfectly written code and planned objects that they started out as, it seems. As you get closer to deadline or as others hack on the codebase in a non-modular fashion, your easy-to-follow, well thought out logic takes a dive.

I can't decide if this means the app has stopped being fun or whether it's telling you it's done and you're not making the same app you started building.

Of course there's the argument that Joel takes, which is that it's better to keep this behemoth with all of its everyday fixes around and hack it to do this new application's job (aka -- "Throw out Netscape 4 and watch your lead in the browser market disappear"). I'm just not sure I buy it, but I'm probably being idealistic.

posted by ruffin at 5/28/2002 01:51:00 PM
0 comments
Thursday, May 23, 2002



Good night we've got some links today. I've been trying to figure out how difficult it'd be to mix Real Basic and Java on Mac OS X. Doesn't seem like it should be that difficult, though I'm not really familiar with Real Basic (Visual Basic on Windows is another story...). The bottom line is that Real Basic calls Mac jive natively and so can Java [on Mac OS X-- in ways Visual J++ (now Visual J#) and Microsoft could only dream of doing on Windows].

Unfortunately when I posted to the Apple Java dev listserv I didn't get any responses from people who programmed Java (though one response from a very active member who was interested in anything I found). Real Basic support didn't have any answers either, but pointed me to a listserv. After posting and then culling through 80+ messages in one day, I still hadn't found an answer.

Finally, someone emailed me directly and pointed me to XML-RPC. Not exactly the solution I was looking for (this is way too much overhead for integrating two apps like I was interested in doing), but the guy who runs the site above has a very active and qute interesting blog. I quickly thought about the parallels between this and SOAP, and started searching in that direction as well.

Here goes... interesting reading from today
XML Toolkit 2.0.1 for Real Basic
XML-RPC "home site"
XML-RPC spec (about seven 9-pt pages)
XML-RPC to SOAP bridges
Quick XML-RPC vs. SOAP discussion
In depth XML-RPC vs. SOAP link
Reply from XML-RPC dude for above link
Tim O'Reilly blog of email from a MS guy who "talks open source" with Hailstorm [sic]

So far it looks like you'd prefer to write XML-RPC if you're writing the communcation between two apps and would rather use SOAP if you'd like Microsoft to write the communication for you. SOAP is more complicated (giant spec with near legalese-quality text), but is certainly what Microsoft is using for web services and .NET. Seems like talking between the two should be easier than it's made out to be.

Anyhow, interesting reading today. I obviously have a due date at COB today for a rather large project.


posted by ruffin at 5/23/2002 01:57:00 PM
0 comments
Wednesday, May 22, 2002



From a link on Maccentral pointing towards an article on businessweek today:
[The author] raise[s] the question now because some small developers are crying foul. They're accusing Apple of freely copying third-party programmers' innovations into its own software. "Apple should work with independent developers, rather than taking everything in the house," Rob McNair-Huff, publisher of the popular Mac Net Journal Web site, wrote recently.

McNair-Huff has a legitimate beef... Take one of [Apple's] upcoming programs, iChat, to be released in late summer as part of the OS X upgrade. As described by Apple's own press release, it sounds strikingly familiar to Adam Iser's Adium chat software.


Give me a break. All this guy did was wrap up a command line generic AIM client with an Aqua interface (aka, for you non-Mac users, a "GUI on OS X"). That's not a legitimate beef. There's already gaim, Everybuddy, and at least two other AIM clones I've installed at some point along the way but never really used.

These AIM clones are a dime a dozen, and AOL doesn't particularly care for them. That some dude spent a few weeks' spare time making another doesn't make me feel bad that Apple made a new one designed specifically for Mac users (you'll notice the crazy people have heads with word bubbles, etc. Madness). They aren't the same app. Not even close. I'm afraid Mr. Iser's program isn't innovative enough for him to expect much of a return from Apple.

Now I would be a little more aggravated if I was the guy who wrote Watson. Apple grabbed this up nearly verbatim to shove into Sherlock 3 in its next release of OS X (details on that release, but not Sherlock 3, here). The big difference? Adium is a free, quick hack. Watson is $30 shareware.

The bottom line is that AIM clones are a dime a dozen. If Apple wants to make iChat come with the OS, let 'em. People who like heads with word balloons are either Electric Company age or not savvy enough to search on the web for something better anyhow (which Adium seems to be, though I've naturally never tried iChat) -- and AOL's OS X AIM client is an unbelievably mad processor hog. But Apple's robbing of Watson, if that's really what happened, is a little underhanded.

The point of the article is well taken; its "Exhibit A" in evidence isn't.

posted by ruffin at 5/22/2002 01:23:00 PM
0 comments
Tuesday, May 21, 2002



A fellow computer addict recently sent me this link detailing Richard Stallman's response to an article entitled The Stallman factor, The FSF wants to proclaim the good news of free software's benefits. Its tactics cause it to miss the mark. Here's my reply [to the addict], which contains enough text I figured I'd blog it.

(from the "fellow addict")
The part near the end [of this article], "Bitkeeper Issue", is kind of interesting, I think.

Quote from the above link
Just consider: the GNU Project starts developing an operating system, and years later Linus Torvalds adds one important piece. The GNU Project says, "Please give our project equal mention," but Linus says, "Don't give them a share of the credit; call the whole thing after my name alone!" Now envision the mindset of a person who can look at these events and accuse the GNU Project of egotism. It takes strong prejudice to misjudge so drastically.

Where does Linus insist that you call Linux "Linux"? Sounds like he wouldn't give a rat's ass if you release your own distrib and call it something else. Even so, if that "one important piece" is the kernel... I'm not sure what other piece Stallman could mean.

Regarding BitKeeper jive, I'd have to get more familiar with BitKeeper, but the whole bit smacks of how, say, couples turn discussions with, um, criticism (if not always criticism of the constructive variety) into arguments. "You think I did something wrong? Well, [biblical reference alert -- Matthew 7:3 if anyone's counting, ever so slightly paraphrased] LOOK AT THE FREAKIN' LOG IN YOUR EYE!!!!" Seems like Stallman's saying, "If you won't play by my rules, I'll make your game illegal! Ha!"

Stallman is pretty weak when it comes to solutions. He points out how things don't jive with his GNU ideals and expects something to come of it merely for having called it out. Calling something GNU/Linux doesn't make Hurd a widely accepted OS, showing Stallman's all about riding coat tails if it'll bring his ideas to light. If Linus's "one thing" is what made Linux more widely accepted than [the incomplete?] Hurd, well, it's no longer an issue of who contributed *more* but who contributed *what* -- and how important that *what* is to the success of the "gestalt".

Furthermore, Stallman's at odds with himself, trying to brand an OS with the GNU nameplate that he himself in his response calls "partially non-free". Sounds like a pretty clear double standard there.

posted by ruffin at 5/21/2002 10:03:00 AM
0 comments
Monday, May 20, 2002



I'm starting to see why you bump into so many people mired in "yesterday's technologies". Hey, ASP.NET is full of great ideas, but when an end user finally comes to my site what's the difference to them between a site written with ASP.NET, ADO.NET, and SQL Server 2000 and something written in ASP 3.0, ADO, and SQL 6.5? Or, for all that matter, php or *gasp* Perl with mySQL or postgresql?

The bottom line is that there's no reason at all why there has to be a difference! Html is html, no matter where it's coming from, and I think you've seen enough complaining about the asp.net controls enough to know that .NET's promise of quicker sites doesn't always pan out in universally accessible, well-programmed sites. Why not keep on leveraging your "old" techs?

And all this jive the .NETters "expect" you to read. I've seen about 300 articles on the datagrid and goodness knows how many claiming to show how to access COM, etc, from .NET "managed code". This is silly stuff. If you've got a site to make today, why learn to translate yesterday's tried and true tools when that's time you coulda been spending speaking your proverbial native tongue?

Again, this is not to say I don't enjoy relentlessly reading .NET and C# articles when I have time, but I certainly see why people might still be using COBOL every now and again.

posted by ruffin at 5/20/2002 11:27:00 AM
0 comments
Friday, May 17, 2002



Johnny Vimseed -- Just sent out the following email to a coworker who expressed interest about using vim and figured it was halfway useful information to anyone who might want to get started (though the only person other than me that I know reads this blog is the guy who finally got me to use vim).

Vim's that text editor I was talking about that I like using, but is a little esoteric when it comes to controls. You might want to check out this pdf:
http://tnerual.eriogerg.free.fr/vimqrc.pdf

That shows most of the commands you need in vim (okay, all that you *need* and tons you probably don't), and also gives you an idea of how crazy things are in there (really not too bad once you get used to it). There's also a pretty good set of help files in the app itself.

You can download vim from this url (it's free):
http://www.vim.org/faq/download.html
([For Windows,] look under "I don't have time to read all this - which files do I need?")

If you have questions, just give me a yell. Ultimately it's sped things up for me and made the mouse pretty useless when I'm editing, but I had a ton of help from a friend while I was learning it.

Good luck, etc.


One other link for complete vim beginners:
Very basic introduction to "vi" (the editor vim "grew out of") at webmonkey.com

posted by ruffin at 5/17/2002 10:54:00 AM
0 comments



Updated yesterday's post just a tiny bit.

posted by ruffin at 5/17/2002 10:07:00 AM
0 comments
Thursday, May 16, 2002

People have a right to make their own code for any purpose.

If a freely offered, open source package is essentially used as a self-contained library by new code, it is presumptuous to force the new code built atop or alongside of this package to fit any particular political ideals. When I buy paper, my writings are not and should not be limited to the ideologies of the paper mill's owner. Though my words are meaningless to a reader without the paper, and a written paper with its paper removed would be nothing, no one believes that I am nor should I be beholden to the paper's creators' ideals and views for using it.

At the same time, if someone takes freely offered code and changes that code's internal workings to behave in a similar but improved fashion, they have an ethical obligation to the package's original contributors to not only offer this newly updated source freely to anyone interested, but also to contact the original project's maintainer(s), if they can be found, and let them know of and provide for them those changes. If I were to change one word or several of another person's written speech, I certainly could not, ethically, present it as my own and use it solely for my own gain. To alert the original author(s), or, at the very least, my listeners, of my changes and to my use of another author's words is not only a courtesy but an ethical obligation.

This is why the GPL is discouraged and the use of the LGPL (Lesser General Public License) or MPL (Mozilla Public License) for open source projects is recommended (though be aware of the LGPL's issue with Java and release with an LGPL-style license you authored or the MPL, if appropriate).

This is also why I dislike the X11, BSD, and MIT licenses. These licenses don't do enough to protect the contributions of the people that made the code -- they essentially enable legalized plagiarism. It's certainly one's right to make code that's this unregulated, but these licenses are nearly overly altruistic motivations. At the post mentioned above, I also use an extended metaphor to compare the LGPL to GPL & BSD and explain why I ultimately think the LGPL and MPL are the most ethical and fair. (That said, in the interest of full disclosure, I do enjoy FreeBSD via Darwin in Mac OS X.)

Just for kicks, I'm calling this the GNG movement (c) 2002. This quite obviously stands for "GNG's not GNU" and is pronounced "Gee-Ehn-Geez not Guh-nhu". And the GNG discussed here should not be confused with Robert Hartley's intriguing take on GNG.

(post updated nontrivially 20060416, 20060623, 20120706, 20131011)

Labels: , , ,


posted by ruffin at 5/16/2002 10:54:00 AM
Friday, May 10, 2002



My follow-up to some poor schmoe who LaMutt's about his job on the Apple Java Developer list, of all places :^) -- which can be found here (pwd and login both == "archives"):

> When you add up everything -- I am the designer, programmer, tester,
> documenter, project manager, occasional sysadmin, and apparently the web
> designer for this project (I'm supposed to come up with some stuff for the
> public web site as well as build a dynamic site to serve our linguistic data
> and video file archives). I am my own mentor. I have no contact with other
> human beings while in the office. I am paid an academic salary with a fixed
> 3% raise each year. And I can't figure out a way out of this that doesn't
> seriously damage the project they hired me to do, albeit less so than
> spending the entire 3 years and delivering nothing.

Welcome to the "Real World".

posted by ruffin at 5/10/2002 03:42:00 PM
0 comments
Thursday, May 09, 2002



Want to make icons in Windows? If you don't mind starting from scratch and not c&p'n another image, try this freeware app from PC Magazine in 1997. Come on, it's only 32x32 anyhow.

Not a fancy app, no install needed, but makes icons VB 6.0 likes. :^) Now if I could just figure out LoadResPicture to add icons at runtime.

posted by ruffin at 5/09/2002 03:16:00 PM
0 comments



I love ASP.NET control companies. Trying to see a demo of a control in Mozilla and I get...

You are using Netscape. Netscape is not supported by allASP.net.

You may enter the site, but it may not display correctly.

We recommend you download and use the latest version of Internet Explorer.


Sorry. Pet peeve.

posted by ruffin at 5/09/2002 10:07:00 AM
0 comments



You can usually tell what kind of programmer someone is by their usenet or email sig. If you've got a good programmer that covers their bases, you'll get a good sig when it's viewed in a monospace font.

People who have sigs that look oddly spaced in a monospace font assume you're going to be using a newsreader or mail handler that has the exact font they were using, and that you've got your client rigged to display in something other than plain text. These people often don't make code that follows convention, and following some convention is what makes code extensionable and maintainable.

Or I'm just high. One or the other.

posted by ruffin at 5/09/2002 09:37:00 AM
0 comments
Tuesday, May 07, 2002



A little too busy today to blog properly with links, etc, but I can't decide if I like Apple's "Quartz Extreme" that they've announced at WWDC.

Quartz Extreme, afaict, just means the normal "windowing system" or "that thing that draws the desktop" is now hardware accelerated *if* you have 32 megs of RAM on your video card.

So much for iBook users like me.

I have noticed that turning the iBook's display down to 800x600 with "thousands of colors" instead of 1152x768 (iirc) with "millions" speeds things up a heck of a lot in OS X, but is a less than optimal screen resolution both to get things done (not enough real estate) and b/c the iBook kinda fudges 800x600, splicing together pixels to get as close as it can and, in the end, making everything sorta fuzzy.

I'm betting "legacy Mac" users, like older rev A-C iMacs and older Power- or iBooks, aren't going to get any of the Quartz update benefits, and with developers' common desire to get phat hardware and to develop, like it or not, for what they're used to using at the office, older Mac users are, once again, going to be forced to upgrade for acceptable performance.

Course, as I say, performance in X right now is abyssmal due to screen drawing problems (have you seen the spinning beach ball of death? That's why) and something had to be done. Fixing the problem for future users is better than nothing (and anyone with a tower can just update the blamed video card). A bittersweet fix with a horrible name, that's Quartz EXTREME!!!1!!!!

Jobs also announced the "death of OS 9 [support]" as far as Apple is concerned. I'm not upset by this one at all for some reason. There's tons of quality software for 9, and as long as Mozilla keeps targeting OS 9 with its builds I'm going to be happy booting into 9 unless I absolutely have to have something from X.

Like Samba. Samba is cool. But more on that later.

posted by ruffin at 5/07/2002 12:04:00 PM
0 comments
Monday, May 06, 2002



Like cows to the slaughter, or at least lemmings over the cliff, programmers often use the default options of their tools without thinking. If you're a VB 6.0 programmer, here's some stuff you should and some more you could do. These are all under "Tools, Options..."

1.) Editor Tab: Unclick "Auto Syntax Check". There no reason you need an alert box to pop up every time you leave a line and it's not syntaxically (sp?) correct. It highlights in red even with this option off, and when you're going to cut and paste text -- meaning that you're not leaving the line permanently -- the alert's just a nuisance. You know what I mean.

2.) Click (still Editor tab) "Requre Variable Declaration". Option Explicit is your friend. Misspellings that become wacky Variants are not. If you misspell a variable name and this is checked off, the error is a tough to find logical error, not a syntaxical (there's that fake word again!) one.

3.) Under "Editor Format" tab -- Use the font and font size you prefer. This one took me over a year to finally use. Looser.

4.) General Tab -- Click "Break on Unhandled Errors". No reason to stop when you've got the error covered.

5.) Environment -- Click "Prompt to Save Changes" so that the IDE asks if you want to save every time you run the program. Why? Ever heard of an infinite loop? Save those changes before you have to force-quit VB 6.0.

Thus ends the lesson.

posted by ruffin at 5/06/2002 09:27:00 AM
0 comments
Friday, May 03, 2002



All that keyboard ranting reminded me of something Joe Randmo Aimer sent me yesterday -- a link to mouseless window managers, give or take. They're mostly "poc" kinds of things and are often excused as "UI research", but some are potentially daily-driver ready. Check the project at that link and the links at the bottom for more.

posted by ruffin at 5/03/2002 09:49:00 AM
0 comments



Remember that crazy McBLT or whatever at McDonalds that gave you your burger in two parts that you put together, one part with the meat and one part with all the rabbit food (lettuce, tomato, etc)? They had some slogan like, "Keep the hot side hot and the cool side cool. I'm not a big fan of McD burgers, but the concept is a good one.

While posting to the "Review-Tools" listserv at aspfriends today, I had the following in an email wishing I could find an html editor -- and even better an ASP.NET editor -- that could keep the GUI RAD editing hot, and the text editing cool. Here's a quote from that email, shamelessly cut and pasted here:

Any way you cut it, DreamWeaver, VS.NET, FrontPage, even UltraEdit and HTML-Kit -- when you want to edit the source directly you're back in an editor designed with mouseland in mind, which means your fingers are off the keyboard and not typing. I got real good at using "Alt" to access the menu in UltraEdit (Alt-f-a to save as, Alt-s-p to search and replace in files, etc) before I finally gave in and tried vim (thank heavens), and Alting around the menu simply isn't as good.

I like to point and click in a RAD and use the keyboard sparingly. I like to type like mad and leave the mouse lonely when I'm editing code. I wish I could find a good integrated GUI RAD/text editing combination that allows me to seamlessly do both.


Oh well, keep dreaming, right? If you're wondering how I can slam UltraEdit as a text editing tool, you haven't been keeping up with my newfound appreciation of vim. It's a shame I have this 40 hour/week job and bills to pay or I'd probably try and do something about the lack of vim integration with a good RAD [and make millions, or at least $30, when I buy a copy of my editor].

posted by ruffin at 5/03/2002 09:29:00 AM
0 comments
Wednesday, May 01, 2002



Too many people think real coding is like html coding, but it isn't. Change a line of html 4 and the worst you've done, more likely than not, is mess up the display of one page. Change a line of Java or Visual Basic (yeah, yeah, "if you can call that real coding" har har har) and you may have trashed the whole application. You can't nickel and dime real programming like you can html; you can't endlessly tease the application to see if you prefer that button at the top left instead of the bottom right. That's a large part of why I think it's important to differentiate between coders who script and scripters who try to code; they're just different animals.

By the same token, I'm happy to see that Mozilla is shooting for a version 1.0. There's nothing like having a nearly robust application with enough major bugs out of the way that you know where the next great feature lies. Tying up loose ends is a pain, and when you're close to and familiar with the development of the program loose ends are easy to ignore. Eventually, though, if you want an application someone other than the programmers and familiar users can enjoy, you need to stop changing the application and start cleaning up the bugs that are there.

There are two types of application -- those that have great features that are nearly implemented but-not-quite-ready-for-grandma-to-use and those that aren't quite bleeding edge but work.The biggest problem is that app "designers", especially those with an html design background, have no idea why things have to be this way, and why there's a sizable investment required (and a corresponding sizable delay between "nearly implemented" and "an app ready to ship") to bug test and QA these apps every time the code is touched. In their minds, this delay is time better spent on developing their latest great, last-minute idea -- and then they're struck dumb with disbelief (oh if only "struck dumb" was the right phrase) when you tell them that fixing their beloved "foo" a week before you're scheduled to go live accidently broke "bar" and nobody planned time to test to make sure it didn't.

posted by ruffin at 5/01/2002 10:10: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.