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!

Tuesday, September 30, 2003



Great web docs page.

posted by ruffin at 9/30/2003 11:37:00 AM



As the "BlogThis!" link continues to turn freakinname from a real blog to a collection of quotes that I agree with off of the Net...

A Thread to Visual Basic: "Deployment of technology should be driven primarily by the problem that you are trying to solve, not by the technology that someone is trying to sell you."

posted by ruffin at 9/30/2003 11:18:00 AM



I don't care for many of the beliefs and practices of XP, but this one I most certainly do: Refactor Mercilessly

posted by ruffin at 9/30/2003 08:27:00 AM
Monday, September 29, 2003



RED HERRING | The Business of Technology: "I would like to see every citizen in the U.S. interact effectively with a member of the House of Representatives. I would love for people to actually vote on bills รขโ‚ฌโ€œ with technology today, they could do that."

I've wondered about that for a while -- there's no reason not to make the House of Representatives, which has had a hard time accurately reflecting population with its fixed seats for quite some time, into a completely online/truely democratic process. Sure, we've got to get Novaterm-equipped C=64s into every house, not to mention phone lines, but there's really no reason to keep delegating our personal power to so few schmoes.

Hey, I'm all for states rights and keeping Senators for now (presidential candidates have to come from somewhere other than big companies from Texas, after all), but I've no idea why we can't have every Tuesday filled with truly democratic voting on bills understood by the masses. Would be a heck of a moderator job, though.

posted by ruffin at 9/29/2003 01:33:00 PM



Software Development Online: Errant Architectures: "If both sides of the wire use the same binary mechanism, an XML interface doesn't buy you much other than a jazzier set of acronyms." (registration required at this site, I believe)

That's well said. XML is most appropriate (in my mind, read "only appropriate") when you're publishing for an anonymous consumer. That's pretty rare, unless you're a news site or giving out public data, etc. If you're not dealing with someone anonymous (and I mean completely anonymous), there are nearly always better ways. The above article (section called "Interfaces for Distribution" on that page) is a good read why XML is overkill and a performance trasher.

posted by ruffin at 9/29/2003 09:17:00 AM
Friday, September 26, 2003



Joel on Software - Back to Basics: "How does a relational database implement SELECT author FROM books? In a relational database, every row in a table (e.g. the books table) is exactly the same length in bytes, and every fields is always at a fixed offset from the beginning of the row. So, for example, if each record in the books table is 100 bytes long, and the author field is at offset 23, then there are authors stored at byte 23, 123, 223, 323, etc. What is the code to move to the next record in the result of this query? Basically, it's this:

pointer  += 100;

One CPU instruction. Faaaaaaaaaast.

Now lets look at the books table in XML.

<?xml blah blah>
<books>
     <book>
          <title>UI Design for Programmers</title>
          <author>Joel Spolsky</author>
     </book>
     <book>
          <title>The Chop Suey Club</title>
          <author>Bruce Weber</author>
     </book>
</books>


Quick question. What is the code to move to the next record?

Uh..."

posted by ruffin at 9/26/2003 05:40:00 PM



Fantasy Economics - Why economists are obsessed with online role-playing games. By Robert Shapiro

Pure tripe.

posted by ruffin at 9/26/2003 05:17:00 PM
Thursday, September 25, 2003



Scott Hanselman's Weblog : Scott Hanselman's Ultimate Developer and Power Users Tools List

posted by ruffin at 9/25/2003 11:43:00 AM



Can it be? An article on .NET that talks about instances where you have to code for platforms other than IE???

The ASP.NET web controls provide a TabIndex property, but this property only applies to Internet Explorer and can't be used to programmatically set the focus to a control of your choice. To perform this task, you'll need the help of some JavaScript code. In this case, you need to find the JavaScript object that corresponds to the control, and call its focus() method.

Wow! I'm impressed he'll even recognize that there is such a thing as Javascript (nothing personal against him, but after so many articles on making a DataGrid work, this is new).

It is interesting that the code he writes is all on the backend. As the author writes, "Best of all, you don't need to sacrifice ASP.NET's secure, server- based model for the bulk of your coding; just fill in the gaps with a little dash of client-side magic." It's nice to see someone approach the web "space" realistically and acknowledge that clients other than IE exists, yet at the same time stick to the paradigm of .NET's server-side coding, keeping a firm break between presentation and logic.

posted by ruffin at 9/25/2003 09:27:00 AM
Wednesday, September 24, 2003



Interesting take on Linux: "The open-source code movement and Linux can trace their roots to the idea that breathed fire into early software piracy: that no one company should control the standard for either operating systems or major programs as word processing. "

Believe it or not, I'm getting a lot of work done today too. :^)

posted by ruffin at 9/24/2003 11:42:00 AM



With quotes this:

'It is our expectation that those who use our service with unlicensed or unauthorized third-party clients will likely not be able to log on after Oct. 15,' [Microsoft spokesman] Sundwall said. 'We would encourage those third parties to contact us to work out agreements by which they can continue to have their customers access our network.'

... I think it's tough for MS to say they're fighting for security. That's about $$$ any way you cut the quote.

posted by ruffin at 9/24/2003 10:59:00 AM



The first few months in any software development are by far the most important. Make that anything up until your first release to eventual customers -- not just version 1.0 but any major beta testers as well. As the requests for The Digest Handler pile up -- not only from myself, The Digest Handler's most loyal user for now, I feel sure, but also from users who are finally pouring on the comments -- I'm finding myself thinking about how to add these in two ways. First, "How can I add these features to this version most quickly?" Second, "How should I add these features to the next major version?"

That's right -- I'm thinking about rewriting all these features, which almost certainly will never happen, so that I rationalize taking shortcuts to get those features in there *now*. That's evil, man.

The issue is that I left a few good natured short-cuts in there in the first place expecting to come back and refactor once I got it all working and "out there". Now, I'm piling short-cut on top of short-cut and making the code a garbled mess just like everything else I've ever seen. And that was the whole idea behind this app: Make something useful The Right Way just to prove that a programmer still can.

Anyhow, it is fun. The excercise has become, "Make the long term fix and short term fix the same." This is even occasionally possible. I believe the important mantra is, "Make each additional feature completely independent of each that came before it." So, in my case, if I need to add a search feature, I just point the new search code to The Digest Handler's backend, code it, then lay a GUI on top. If I do things right I could release, "SearchIt -- a Digest Handler utility" as a stand-alone app when I'm done. *That's* The Right Way. Every bit of your code should work like that. Always be able to pick out each functional unit and run it as a stand-alone to help know when you've got your code properly factored. (There's more, of course, like making sure your backend access is abstracted in case of changes to the backend itself, etc, but it's a good start.)

posted by ruffin at 9/24/2003 10:32:00 AM



812404 - HOW TO: Write Pluggable Protocol to Support FTP in Managed Classes by Using Visual Basic .NET

posted by ruffin at 9/24/2003 10:20:00 AM



note to self: Ranchero Software: NetNewsWire

posted by ruffin at 9/24/2003 09:57:00 AM
Tuesday, September 23, 2003



ESRI drives me fookin' crazy. The style their documentation's written in always assumes you know what you're doing before reading the freakin' docs, which is, of course, absolutely bassackwards.

Case in point. Take the infamous phrase use categories to add that they like to use in their sample projects. For a relative ArcObjects newbie, that means you're looking through the Tools-Customizations menu's dialog from ArcMap and looking at the Command tab's Categories listbox. Naturally there's nothing to find here.

Categories refers to what's described here:

Register the dll on your machine. Use Categories.exe (found under the ArcInfo bin directory) to add the dll the appropriate component categories. Add the TraceResultsWin class to 'ESRI Mx Dockable Windows' and TraceResultsCmd class to 'ESRI Mx Commands'.

Freakin ESRI. Of course "categories" refers to an exe. Argh.

posted by ruffin at 9/23/2003 03:53:00 PM



Excellent observation by the fellow who made qmail:

I have discovered that there are two types of command interfaces in the world of computing: good interfaces and user interfaces.

The essence of user interfaces is parsing: converting an unstructured sequence of commands, in a format usually determined more by psychology than by solid engineering, into structured data.

When another programmer wants to talk to a user interface, he has to quote: convert his structured data into an unstructured sequence of commands that the parser will, he hopes, convert back into the original structured data.

This situation is a recipe for disaster. The parser often has bugs: it fails to handle some inputs according to the documented interface. The quoter often has bugs: it produces outputs that do not have the right meaning. Only on rare joyous occasions does it happen that the parser and the quoter both misinterpret the interface in the same way.

posted by ruffin at 9/23/2003 01:41:00 PM



the Java on Mac page (the original from 1996) (has link to swingall.jar, fwiw)

posted by ruffin at 9/23/2003 12:32:00 PM
Monday, September 22, 2003



Every Java lover on Slashdot is up in arms over, this comment from a blog (from a pretty good professor at MIT & Haavard, iirc):

A project done in Java will cost 5 times as much, take twice as long, and be harder to maintain than a project done in a scripting language such as PHP or Perl. People who are serious about getting the job done on time and under budget will use tools such as Visual Basic (controlled all the machines that decoded the human genome).

Now of course people miss what he says next:

But the programmers and managers using Java will feel good about themselves because they are using a tool that, in theory, has a lot of power for handling problems of tremendous complexity.

I think that's a good point, taken out of context. He's right there. Let's dig around some more.

We've got two issues. First, he's assuming very specific types of tasks. In Java, he assumes Oracle. In PHP, PostreSQL, etc. If you know both Java/JSP and PHP, yes, PHP is much better for quick, inexpensive web sites, like blogs or shopping carts for small businesses with a website. If you only know one or the other, well, naturally that tech's going to be best for you. But if you load the deck like he does, you're really comaparing Oracle to PostgreSQL.

Second, the fellow's plain wrong. Java's not difficult. If it were difficult, I wouldn't have been able to hack up my trialware app in just a few months using it. The first 70% (feature-wise) of a programming project goes by about 300% faster in VB, but the last 30% of an app, feature-wise, is always going to take 80+% of your time. Why sacrifice cross-platform deployability, true object-oriented programming, and better error handling, etc, for a 7% overall gain in time to market? Granted, I'm assuming you want crossplatform, etc, but I'm just trying to say that his anecdotal evidence for VB is just that -- it wasn't wrong to code the genome crud in VB, but that's no argument Java would've have done just as well -- or better!

I don't know -- I could ramble for a while, but the main point is that you have to pick the right tool for the job. Want a very simple site that needs Windows to run? Use ASP 3 & vbscript. Need a headless, server-side app that you can deploy anywhere? Use Java. Want the cheapest way to get a very simple web site up quickly? Use PHP & friends. Only know one technology? Well, if it's time sensitive, use that as well. Same thing goes for RDBMS -- Oracle expensive and scalable, PostreSQL cheap and powerful, MS-SQL Server a good compromise for easy usability, integration, and scaling.

And I guess my final point is that, if I'm right and there really isn't that great a development cost for programming in Java (forgetting the backend for now, since all three techs can use all three backends relatively interchangably), all other things equal, why not drive the SUV when programming? There's no cost inherent in Java over PHP (JVMs and IDEs are free), and it's cheaper than a VB.NET IDE. Most importantly, you're much more likely to go off-road when you're programming than you are on your commute to work.

posted by ruffin at 9/22/2003 09:41:00 AM
Sunday, September 21, 2003



Java on the desktop is finally getting exciting. Between the new Mad Hatter business desktop platform and 1.4.2's Version Note:ย Release 1.4.2 introduces two look and feels: GTK and Microsoft Windows XP,, I think we're getting somewhere (though I can only hope this doesn't mean we're losing Motif! (ha, ha)).

In other news, I broke down and threw a load of money at a new Mac. And to further prove I'm not a power Mac user, though I'd think I would've qualified, I got an older flatscreen iMac. I know, I know, what kinda idiot doesn't get a G5? But the screen is great, the speed's pretty good (iTunes mp3 importing is incredible!), and the price was much "righter" with the recent iMac speed bump. Finally, Java programming on OS X without feeling like you're watching the grass grow. And as I tend to upgrade every two-three years anyhow, I think the box (well, "dome") will fit the bill nicely.

posted by ruffin at 9/21/2003 04:04:00 PM
Saturday, September 20, 2003



Okay, this really doesn't have anything to do with comp sci, but here's an update to Railroad Tycoon II for LinuxPPC (well, any PPC Linux) that I'd hunted a while... Index of /lokigames/open-source/loki_update

posted by ruffin at 9/20/2003 10:29:00 AM
Friday, September 19, 2003



Visual Basic: Shell Command From VB: "Ok, maybe I missed it, but many commands, especially 'DOS' commands like x.bat require that you load the command processor in order for them to run.

To handle this, prefix your string with 'cmd /c' and make sure that any pieces that are not '8.3' format are enclosed in quotes.

The way to test your command is to put it into the run box (Start | Run...). If it works there, without modification, it should work directly from VB. If not, it probably needs the command processor.

Also, you may want to use (Environ('ComSpec') rather than 'cmd' so it works in the Win95 series.

ex.
shell Environ('ComSpec') & ' /c ' & 'somepath\somefile.bat'"

posted by ruffin at 9/19/2003 11:10:00 AM



Cute way of getting 8.3's from Windows:

Visual Basic: Shell Command From VB: "You can use the FileSystemObject and a File Object to get the short path name, something like:

Dim fso As FileSystemObject
Dim f1 as File
Dim sShort As String

Set fso = New FileSystemObject

Set f1 = fso.GetFile(app.path & '\convert.bat')

sShort = f1.ShortPath

Set f1 = Nothing
Set fso = Nothing

Shell ShortPath
"

posted by ruffin at 9/19/2003 11:03:00 AM



I'm going to go ahead and proclaim SubEthaEdit the new BBEdit Lite. But not only does it syntax highlight and text edit (and is free), it also allows you to have a number of people edit the same document from anywhere on the net with Rendevous. Now that's neat!

posted by ruffin at 9/19/2003 07:56:00 AM
Wednesday, September 17, 2003



Was downloading Eclipse again today, and noticed this all-too-common line:

Windows 98/ME/2000/XP (http) (ftp) eclipse-SDK-3.0M3-win32.zip (md5)

Now how many people check for independant confirmation that the md5 is what they expected? Sure, if somebody replaced the actual file you're downloading and absolutely nothing else, you'd find out. But if someone's compromised the file you're downloading, couldn't they have also recalculated the checksum for this compromised file? That wouldn't even require hacking the web server, just the file location.

Anyhow, md5's look nice, but I wonder how many people really check them out to the degree that they're truly reassuring.

posted by ruffin at 9/17/2003 10:02:00 AM



Gave up waiting for the perfect Mac and dropped some major change on a 1 GHz refurb'd iMac. Upgrade times are great times to buy, and this go around I went for the old model, recently discounted.

I got the 17" model, which has a great LCD screen. Bothers me that this is the only computer I have that'll be able to use it -- perhaps not after the warranty expires, but even then it'd be a real bear, I imagine. But until then, nice screen, pretty fast Mac (needs more RAM; stuck at 256, less than the iBook, right now), and I'm back to Java'n on OS X.

Eclipse is already nearly usable, which is great news. iPhoto runs pretty well. Looking forward to giving iDVD a shot.

Anyhow, just thought I'd blog that I'd given up on getting a new Powerbook and put in the iMac order. This is, of course, why Apple updated the Powerbook line today. You're welcome.

posted by ruffin at 9/17/2003 01:02:00 AM
Tuesday, September 16, 2003



Lookit these later, self:
Best of freeware as far as alt.comp.freeware is concerned, apparently.

Find nasty ad/spyware installed with Limewire with this, I guess.

posted by ruffin at 9/16/2003 09:17:00 AM
Monday, September 15, 2003



I'm not sure how efficient a use of open source programming resources it is, but the "Sharp Widget Toolkit #WT (SharpWT)" certainly sounds interesting.

The Sharp Widget Toolkit (SharpWT or #WT for short) is a port of the Java SWT (Standard Widget Toolkit) to C# and .NET. The initial porting effort started when the SharpDevelop team wanted to move away from Windows Forms to a different UI toolkit that would allow for portability but still have the native look and feel as well the performance on the platforms it runs on. Thus after some evalution we settled for porting SWT to C# - because SWT is already proven to be a great cross-platform UI toolkit as shown by IBM's Eclipse project."

posted by ruffin at 9/15/2003 03:14:00 PM



Mozilla Firebird 0.6.1 Release Notes and FAQ: "# What can I do to help?

We need all the exposure we can get. Make it your mission to convert 5 friends, family members or coworkers. If you're a student, get it distributed at your college. Submit a story to Slashdot and other news sites about the release. Make some noise on your blog. Mass distribution via the Internet is possible--look at Kazaa. Spread the word!"

Phew. Okay. Done my part.

posted by ruffin at 9/15/2003 10:12:00 AM
Sunday, September 14, 2003



Misunderstanding Micropayments - Scott McCloud

posted by ruffin at 9/14/2003 11:29:00 PM
Thursday, September 11, 2003



Leo's Icon Archive - 10,000 free icons & graphics, caps, comics, buttons, bars,...

posted by ruffin at 9/11/2003 03:45:00 PM



Fun with xcopy on Windows XP:
"First: Don't use single quotes but double quotes. Single quotes are allowed for file names. Then just omit the closing quotes, and XCOPY works. Or put only parts of the target in quotes: xcopy c:\foo c:\blah\'some odd name'\stuff\ works as well."

You apparently actually can use double quotes around the whole path now, but there's some interaction with xcopy that requires you say what the output file format is.

Anyhow, if you get an error about "Invalid number of parameters" with xcopy, check out spaces in dirs first. I'm glad there's a cmd-line in Windows, but sometimes I wonder how well it's maintained/used at MS. Course Win2k's telnet is cmd-line again... that's nice...

posted by ruffin at 9/11/2003 03:27:00 PM



From Mozilla Firebird: Mozilla Firebird FAQ:

"5.3 Will Mozilla Firebird become a bloated mess like the current Mozilla Suite?

No! The project will still be tightly managed, but we think that the increased testing and focus that comes from being the primary mozilla.org application will help Mozilla Firebird improve faster."


Ha. Good luck with that.

I've been lamenting lately that I've never seen an application that's ideally written just like you're supposed to, with logic factored ("normalized") just like it's supposed to, without kludges for important tasks, and without new features having been added in the smartest rather than short-term quickest method.

From the mess that is Furthurnet to the old ASP/vbscript/MSSQL sites I used to make to the innards of the apps that netted my last job's company millions every year -- and yes, even The Digest Handler -- all of them (hopefully; not even sure if some start clean), start out with a clean concept and then sort of accrete guano. It lands on you and sticks and you can't do anything about it really.

Welp, we'll see what I do before version 2.0 and see if I can't make at least the best app I've seen to date when it comes to doing things The Right Way.

posted by ruffin at 9/11/2003 02:01:00 PM
Thursday, September 04, 2003



From Think Secret - Adobe: Apple potential Creative Suite competitor: "'Apple can be unpredictable,' Adobe's plans say, according to a source. 'We will need to keep a close eye on Apple.'"

That and another post on macrumors talking about Apple becoming more focused on software makes me wonder if Apple isn't planning, on some level, to pull a Sega (dropping hardware for software). I wonder if OS X would live long term if Apple went pure software, completely hypothetically speaking, of course.

posted by ruffin at 9/04/2003 01:03:00 PM
Wednesday, September 03, 2003



It's issues like this that let me know that Java's Swing GUI toolkit just isn't programmer friendly, and makes me all the more sure that they've taken much too "Ivory Tower" an approach to creating this particular library in specific and Java in general.

In brief, Swing has a toolbar that is created so that it can easily share actions with quite a bit of code reuse with an entry in your menu bar. This toolbar, with its icons for each acton, can be easily moved by your applications user from the top of the window to reside on either side of your app or at the bottom -- or even float outside of the window just as you'd expect a toolbar from Microsoft Word to behave, as an example.

But can you poll your application to find where the user's moved the toolbar? Technically yes, but practically no. The link posted above, with it's relatively advanced knowledge of the Swing Layout Managers, it apparently how you'd have to do something that anyone writing an app for toolbars would want to know how to do.

Anyhow, quick Swing vent. I truly hope Sun is going to come out with something better, though it's already too late for me. ;^)

posted by ruffin at 9/03/2003 11:55:00 AM

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