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!

Friday, November 28, 2003



If you're getting error 1053 (iirc) with ArcSDE, the deal where it complains, "the service did not respond to the start request in a timely fashion" or some such, double check your license server settings.

Step one, run the following command at a command prompt (with sample results):

sdeservice -o list

SDE service Information
--------------------------------------------------------------------
Service Name: ArcSde Service(esri_sde)
Service SDEHOME: C:\arcgis\ArcSDE\sqlexe
Service License Server: @BOX1
Service Datasource: SOMEBOX
Service Status: SERVICE_STOPPED


Let's say you don't want to use BOX1 as your license server... fire up regedit and search for the LICENSE_SERVER key. Change its value from @BOX1 to @BOX2 or whatever your license server is. This oughta fix things if your old license server doesn't have the correct information, has moved, or is now, say, behind a firewall. And don't forget to keep the "@" in front of the license manager server's name.

Here endeth the very industry specific lesson.

posted by ruffin at 11/28/2003 08:06:00 PM
Wednesday, November 26, 2003



Give yourself one month a year for project wrap-up. You might not "have time" to document your work when you're looking at delivering it to your client, but good comments and developer documentation is a must when wrapping something up. Make *that* its own project if you don't have time during the project's development itself.

It's understandable if you have to cut corners to make deadlines and, in turn, make money. It's not understandable if you don't plan ahead by setting aside time for cleanup after delivery, and end up having loose ends cost you scads of resources (read: "money") down the road. Believe me, tying up loose ends in all projects before there's a problem, in my experience, is vastly more efficient than waiting until a couple of specific project have a problem -- like a developer leaving or a customer asking for updates/improvements/changes/bug fixes several months or years down the road.

I sometimes wonder if places are more interested in making dough than doing a good job -- which we all know (don't we??) will, in the long run, make you more money. "If it's nasty now and we leave it that way, we can charge more to our trapped customers later!"

posted by ruffin at 11/26/2003 04:20:00 PM



Just so that I can find this later (need to bag a used ethernet adpater for my 1400):

Slots, Ports and Peripherals for the PowerBook 1400
Farallon made the EtherMac PB 1400 Card, and Focus Enhancements made the EtherLAN PB 1440-T.

posted by ruffin at 11/26/2003 09:14:00 AM
Tuesday, November 25, 2003



The following quote (from here) is probably a pretty decent bit of text to slap on the bottom of any contract an employeer of yours gives you regarding intellectual property rights:

Hobby Programming Waiver. The company waives all intellectual property rights to computer programs which (a) the employee produces on [his] own time and initiative with [his] own materials and equipment, and which (b) do not incorporate or contain the company's intellectual property, and which (c) would not appear in the eyes of the company's customers as replacements for, or equivalent alternatives to, any of the company's products or services which the employee helps write during [his] employment with the company, and which (d) the employee does not incorporate or include in work [he] creates for the company.

The only thing I worry about is, "contain the company's intellectual property". There's a temporal aspect to that bit that makes me wonder if you're going to mobius strip yourself into something nasty. "All you write belong to us; you write something at home; your new app includes IP you learned here; your new app belong to us." Hopefully (a) covers that well enough. I think the intent is clear to anyone reasonably well functioning.

posted by ruffin at 11/25/2003 09:11:00 AM
Monday, November 24, 2003



From usenet:

Message 1 in thread
I am new to Visual Basic trying to use the printer object
but there is no print method.

Can anybody tell me why?

Using VB6 SP3


Message 2 in thread
Print is more of a compiler directive than a COM method. It won't show in intellisense... but it's there <g>
btw... you should update to SP5 asap...


Thanks heavens. Good to know.

posted by ruffin at 11/24/2003 03:44:00 PM



To be a good manager (hardly a complete list):

1.) Be willing to turn away money if it means a bad deal.
2.) Treat each customer as a true partner.
3.) Treat each employee as if they were customers, if not better.
4.) Give random perks to employees -- so not an Xmas bonus so much as a random bonus for a good job, or the proverbial free lunch. Doesn't have to be big, just needs to show you're watching.
5.) Be willing to turn away money if it means a bad deal.

posted by ruffin at 11/24/2003 12:13:00 PM
Sunday, November 23, 2003



Sun Developer Network - Forums: "Basically, you need to examine the Element structure of the html yourself and manually handle the form, as far as I can tell. There are several ways to display a URL in a JEditorPane, but the most straight-forward (JEditorPane.setPage(URL url)) doesn't actually store the Element structure anywhere accessible."

posted by ruffin at 11/23/2003 12:51:00 PM
Thursday, November 20, 2003



It'd been so long that I'd worked in places that didn't even show the symptoms of good programming practices that I got to the point I figured that seeing the symptoms meant that the practices were going on. I am, unfortunately, not entirely correct. I keep telling myself I'm much to rigid in what I want to see done in my programming environment, but the more I read about and experience projects with missed deadlines, etc, the more I know being rigid from planning to coding to testing, review, & deployment really does pay off once you're over the learning speedbump (curve is overused, I'm afraid).

posted by ruffin at 11/20/2003 10:48:00 AM



Dummies' Guide To UNIX "find" command:

find . -name "*.txt"

Tough, ain't it? Recurse from home dir on down for all files ending in .txt. Go.

[Update: It's been pointed out to me by a non-*NIX dummy -- why they're reading the Dummies' Guide to UNIX "find", I have no idea -- that the above call is likely case sensitive. He also provided a case insensitive alternative, which is debatably more useful and more dummy-friendly. You'll have to figure that out on your own, though it might be...
find . -iname "*.txt"]

Labels: ,


posted by ruffin at 11/20/2003 10:20:00 AM
Wednesday, November 19, 2003



Welp, I believe this gets rid of the last reason you'd need to actually own a Windows machine. With RDC for Mac, you can use terminal services to connect to your Win2k, 2k3, NT, or XP Pro server as if you were sitting down at the keyboard from your Mac, anywhere on the 'Net.

No, it's not a good replacement for Visual Basic programmers or gamers, etc, but when it comes to programming, now you can hack on your Mac with SMB or the like and access any Windows-only server admin tools using RDC.

And yes, I realize it was released in March of this year. I'm a little slow getting up to speed on this one. But wow, neat.

posted by ruffin at 11/19/2003 06:33:00 PM
Tuesday, November 18, 2003



It's always nice to see somebody able to make a buck off of an open source codebase.

MyEclipse is an innovative approach to offering affordable tools for Java and J2EE developers. For a $29.95 annual membership...

At the same time, the clock's ticking, ain't it? This Eclipse add-on (which adds good JSP support, which is lacking in Eclipse right now, but not in Netbeans, which has its own faults) fills a very obvious niche. I have to think Eclipse will be adding that kind of support in the near future, and then, even at $30/yr, MyEclipse is going to have to have done quite a bit of innovating.

posted by ruffin at 11/18/2003 10:12:00 AM
Monday, November 17, 2003



Finally, a somewhat worthy open source project maintained by Yours Truly. I've done a number of ArcIMS sites, and have been working on and off (more like "nagging") for nearly three years to get the government entity that funded the code's creation to turn the code loose into the open source world, providing good passive partnerships with anyone who can put the code to good use.

Anyhow, here's the incredibly plain web site for the project:
Open ActiveX ArcIMS Template

Knock yourselves out, if you need "a pre-built, modular, generic, reusable codebase for use with ESRI's ArcIMS version 3+ Internet Mapping Server's ActiveX Connector, created with dhtml, ASP 3, and vbscript for use on Microsoft IIS." It is nice to see code out there to potentially do some good rather than rust (har har) on a server somewhere, benefitting no[programmer]body.

posted by ruffin at 11/17/2003 05:45:00 PM



If your code isn't self-explanatory, it's bad code -- and "your code" includes comments. As soon as it's quicker to ask you how your code works than to learn it from having the code in front of them, you can bet you've still got work to do. Now sure, a good code overview from the original author is almost always better than jumping in cold, even when you do have copious docs, but I think you see my point. If you're pulling some globally scoped varable from an object to another one that aren't linked in any particular way that can be easily shown programatically, you've lost a good chunk of one of the keys of good code: maintainability.

posted by ruffin at 11/17/2003 03:48:00 PM



Here's an interesting OpenP2P.com: "Interview with LimeWire COO Greg Bildson [Nov. 14, 2003]":
LR: What about iTunes and Buymusic.com? What do you think of them?

GB: They're steps in the right direction, but they're still radically overpriced. In the digital age, there's no reason for a song to cost 99 cents; it should be five cents. Another issue is that the Microsoft DRM looks to be too restrictive. Judging by the trend of recent PC pay-per-download sites that all use Microsoft DRM, handing another monopoly to Microsoft doesn't seem like a smart move.


Limewire is possibly the best client-side app written in Java, bar none. Present company excepted. Or not. At any rate, it seems to be a pretty smart bunch of people, though the ad/spy/whateverIcan'tquiteremember-ware that Limewire has now isn't so snazzy. A good read.

posted by ruffin at 11/17/2003 12:21:00 PM



This article looks nice:
Charon Internet - ASP.NET: "Create an SMTP mailserver for ASP.NET"

There's no reason you can't do whatever you'd like with .NET, almost in spite of the fact that there are so many Wizards, shared libs, etc, that try to do even the simplest thing for you. The above article shows how to talk SMTP to an SMTP server, which is perhaps one of the simplest useful things you can do with TCP/IP. Heck, most SMTP servers, as was pointed out to me a while back, will walk you through sending mail with them:

help

214-This server supports the following commands:
214 HELO EHLO STARTTLS RCPT DATA RSET MAIL QUIT HELP AUTH TURN ETRN BDAT VRFY
rcpt
503 5.5.2 Need Mail From: first


Anyhow, it's nice to see someone rolling their own SMTP connection with what's often an overly automated tech (rather, a tech where people use overly automated solutions).

posted by ruffin at 11/17/2003 11:47:00 AM
Friday, November 14, 2003



OS9Forever.com Home

posted by ruffin at 11/14/2003 01:08:00 PM
Thursday, November 13, 2003



For whoever came to the site looking for a Hotmail Popper review, it works quite well in my experience. Hotmail Popper is an app for Windows that allows you to point any POP3-compliant mail handler at the Hotmail Popper "server" and read Hotmail as if it were a POP3 server itself. That is, Hotmail Popper talks WedDAV and your client o' choice only has to talk POP3. Very nice. It also does SMTP for sending email via your Hotmail account.

posted by ruffin at 11/13/2003 11:50:00 AM
Wednesday, November 12, 2003



It's somewhat unfortunate that the following quote, from here, sums up the feelings of many companies.

Might I please kindly request in advance that you do not suggest using Linux instead of Windows 2003. Yes, I concede that Linux is 'more secure,' but not when I'm the one pushing the buttons. Last time a flaw was discovered in Windows, it took me two clicks to patch it. Last time a flaw was discovered in SSH, it took me four hours of compiling and messing around to patch it. I apologize but I don't have the skilz to keep a Linux box secure, so please, let's talk about how to make this particular configuration reliable, not about whether Linux is a better OS than Windows.

Even more importantly, it's time Linux lubbers stepped up and made Linux easier to use in practice than Windows. This is a pretty Herculean effort, however. In many ways, what's going on in Linux really is (ie, doesn't just seem to be) more esoteric. You can eliminate a lot of overhead in "slick" (read "easy to follow GUI") when you substitute esoteric cmd-line know-how.

I'd say that OS X is helping get rid of that, but too many helper apps that overlay a GUI onto cmd lines are written in Objective C or REALbasic to be much help to a Linux hacker. The apps simply don't port. If anyone reading cares and has the option, try writing your OS X helpers in Java or at least code the backend in as much ANSI C as you can stand so that anyone can lay a quick GTK+ GUI on top. (Note that I'm not advocating much X11-based jive for OS X; usually that means you've eleminated 90% of your OS X user base, and then you're almost by defn not shooting for the people who say things like what's quoted, above)

posted by ruffin at 11/12/2003 03:51:00 PM



Want to set the ForeColor of a CommandButton in Visual Basic 6? Go here. No? Don't know where to send you then.

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



So I'm writing a label in VB6 that'll allow you to rotate the text that's displayed there. It's a UserControl with API calls like mad. I'd like to open source it.

Now my company's still going to use this in a product (as in the company I work for, not the one I own).

I could LGPL it and use it in our software or I could GPL the code, give it more security from competing with our software, so to speak, and never allow anyone else to check in any code. Then, since I'm the only copyright owner (well, the company is), we can still roll it into any of our apps without worrying about it.

The GPL route seems unethical on some level. I'm not sure why.

posted by ruffin at 11/12/2003 02:20:00 PM



Wow, look, a $49 product that lets you skin your VB 6 apps. I guess that's good. I'd kinda hoped Java would give me the same thing for free with Swing, but with the LGPL & Java scare, I've more recently backed back off of my best free option.

posted by ruffin at 11/12/2003 10:53:00 AM
Tuesday, November 11, 2003



iTunes is still missing a few "make a buck" features that I think would be as well received by customers as Google adwords. One is a link from artists in your playlist to the iTunes Music Store. You'd only have the link if there were selections available, and it'd be pretty unobtrusive. It's also missing quite a bit in the way of, "If you're library looks like/contains Artist X, you'd probably enjoy a quick listen to Artist Y." Free lower-quality mp3s and other advert-style jive would further help online music supplant not just CDs, but radio (the traditional "try before you buy") as well.

Can you imagine how record/CD companies would act if there'd been no radio to this point and someone invented it today? Wonder how those royalities would play out? Good luck with that one...

Oh, and Apple, please fix the iTunes skipping bug when I alt-tab between apps in Windows.

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



I'm often surprised how many tools there are out there for Java that are Clover: Code this detailed:

Clover is a code coverage analysis tool. It discovers sections of code that are not being adequately exercised by your unit tests. Clover reports its findings in multiple formats for easy use by the whole team at the project level down to each line of source code.

I believe this has something to do with what kinds of apps are created with Java -- critical, high volume apps written by pretty woofin'-big companies. These are the only places where you'll find enough staff/resources to do this kind of testing, as well as enough of risk if the code breaks to make it worthwhile, I assume.

The computer development ecosystem is a strange one I haven't nearly come close to figuring out, except to say that if you're creating an app like mine, you're supposed to use Objective-C or Visual Basic, not Java. *sigh*

posted by ruffin at 11/11/2003 02:02:00 PM



It's about time I put my foot down. Programmers that say not to use While... Wend loops in VB6 are smoking the wacky weed. (here's one example, "The antiquated While..Wend loop shall not be used". Reminds me of when Joel Spolsky says, "As if source code rusted")

Look, the only advantage to using Do While... Loop is that you can break out of the loop prematurely. That's a bad coding practice, people. If I'm eying code at the bottom of the loop, debugging something sufficiently long, I might miss that you've Exit Do'd somewhere above. One might complain that loops shouldn't include something quite so big. Then just substitute a function call in the loop that I'm debugging and missing that exit in the loop instead.

The point is that exiting a loop in some random place is every bit as confusing as a GOTO; it breaks an easy, logical flow. I should be able to glance at a loop and reasonably assume that each operation on the same level of whitespace is executed. Logical flow is also a reason why you should never put Dim's (VB's method of declaring variables) mid-method. I shouldn't have to fish through your method's code to see what kind of object "tempX" is. Which is even more reason why you should use some sort of naming convention that explains what each variable is. Now I don't even have to glance at the declarations section to see what's going on in a line of code. And, of course, as implied above, whitespace should be used to show when branches can be taken and what level of code belongs where.

To sum:
1.) While... Wend encourages good programming practices. Use it. Have a really good reason when you don't.
2.) Don't use Goto. (For PolCorrect people: "Do use alternatives to Goto")
3.) Don't exit loops prematurely (there is an exception that proves the rule. I might talk about it later) (PC People: "Do complete each loop in its entirety, using If's to section logic within")
4.) Declare variables at the top of a method unless it's, for some screwed up reason, impossible.
5.) Use a naming convention that allows you to know what each variable's object type is at a glance.
6.) Use "hierarchical whitespace", daggummit.
7.) Getting me to talk about one "good" programming practice will, if I'm not careful, unleash hours of rules/Don't's.
8.) Summing is fun.

Labels:


posted by ruffin at 11/11/2003 10:20:00 AM
Monday, November 10, 2003



linux.oreillynet.com: GBA Programming with DevKit Advance [Nov. 06, 2003]: "So he decided to gather together the best tools available for GBA development on the PC and make them available on Mac OS X."

posted by ruffin at 11/10/2003 09:58:00 AM



Just in case you're wondering, iTunes on XP Pro with a 2.20 P4 processor rips tunes about as quickly as my 1 GHz G4 in my iMac. Sure, there are more variables you might want to factor, but this somewhat goes to show just how specialized Apple hardware is to do what Apple needs it to do.

No, I really don't miss skipping on the G5 just yet. The flatscreen included in the price has a lot to do with that.

posted by ruffin at 11/10/2003 09:45:00 AM
Friday, November 07, 2003



Here's some potential good news on the Java IDE "War" front:

'The rap on Java is that it's been too hard for folks, but [so far] nobody's written the right kind of tool,' he said.

Meanwhile, a Sun spokesman said Sun has included the Sun ONE Application Framework, formerly known by the codename JATO, in its Sun Java Studio Standard 5.1, which began shipping at the end of October. 'It allows you to create and use components in a model view controller or pattern-driven development' scheme, the spokesman said.

Java Studio is based on Sun's open-source NetBeans technology.


I'd recently given up on Netbeans, which was holding on by a thread on my Mac box until I upgraded and, for whatever reason that didn't hold true on the old iBook, Eclipse starting running more quickly than Netbeans on every platform I use. I've since started taking another look, as Eclipse's JSP support isn't as nice and straightforward as I'd like.

Anyhow, the new product from Sun sounds interesting, and overlaps with something I was thinking today -- I make some apps in VB simply because the VB6 IDE's design enables me to do so more quickly than I could in Java.

posted by ruffin at 11/07/2003 05:11:00 PM



Hrm. Looks like there's another reason some *NIXes might not quite be ready for the desktop...

My goals were simple: to drop a disc into the laptop's CD tray, type a command, and walk away until the rip finished. It can't be that hard; people barely capable of booting their computers can do it. It certainly wouldn't be worth a column.

Thus began a week-long saga of trying to rip CDs on FreeBSD.

posted by ruffin at 11/07/2003 03:43:00 PM
Thursday, November 06, 2003



It's somewhat depressing to see someone describing the place of code review like Make this:

Once the tools have made code-checking a relatively simple task, you can make code review a regular activity and not something to be done at the end of a project, when deadlines are already making life miserable.

Hey, if your deadlines are making you so miserable that you can't get in significant code review, and now are using "automated code beautifiers" in place of human ones, your issue isn't code review at all. It's your manager (and likely your manager's manager and your manager's manager's boss and ultimately the CEO, depending on who you ask -- and even the CEO will likely blame stockholders/company owners, etc) that needs the work. Stop patching their inability to do their job by working harder, and get everyone working smarter.

Using tools for review is still better than nothing at all by a long shot, but the description by the author above is a cultural problem, not a technical one.

posted by ruffin at 11/06/2003 09:42:00 AM
Wednesday, November 05, 2003



If a company can't show you a running version of any app not only that they've developed (and still support) but also that they're developing, don't work there. Heard of daily builds? You need them. You need that overhead in place already to ensure that you've got a mature, robust development process in place.

And if you find yourself someplace that doesn't happen now, start it. It's a lot of overhead, sure, but it's really a requirement for a workplace that's not going to stick you with horrible to handle "legacy" work (eg, "Coder X left the company and the project's yours now." Without the symptoms of a mature coding process evident, you could end up with the dreaded worst case here -- code that Coder X could upgrade in an hour but that'll take you three weeks just to begin to understand. Why does this happen? Coders without processes tend to create cyborgs, not maintainable code. This is due to a number of reasons: laziness, perceived job security (I'm the only one that can do this), lack of skill, etc.)

At any rate, you've been warned.

Labels:


posted by ruffin at 11/05/2003 05:31:00 PM



I'm beginning to think something like "Gel, a freeware Java and JSP IDE that runs natively on Windows" might be the way to go with Java IDEs. It's not like Eclipse is slow on Windows, but even there Eclipse is noticibly less responsive than native apps. Perhaps it's the size of the app -- all that Eclipse is trying to do -- but I suspect even with SWT you've got minor speed issues.

Curiously, .NET apps have a similar issue with slowdown. Perhaps it's b/c n essentially equals 1 for me right now and #develop is just poorly written, but so far the whole virtual machine route seems to include, almost by definition, a ton of overhead.

posted by ruffin at 11/05/2003 03:29:00 PM
Tuesday, November 04, 2003



Go learn to automatically generate pronouncable, common-wordless passwords now, why don't ya?

posted by ruffin at 11/04/2003 05:25:00 PM



I wonder if the fact that the Web Matrix's built-in web server uses the same port as Tomcat (Java powered web server for JSP) is a coincidence.

How long before we see Apple become exclusively a software company? iTunes has a few rough edges (alt-tabbing between apps and opening a few windows at once causes it to skip for me), but I like it and have seen most comments about it on the Net ending up being quite positive. People like Apple apps. And without iLife, why use Mac OS at all (unless you're a zealot of one sort or another, like me)?

posted by ruffin at 11/04/2003 01:07: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.