September 30, 1999:

Creating simple Linux programs in assembly turns out to be easier than I had thought. It helps that the C calling conventions are used pretty rigorously by the standard C library. All parameters are passed on the stack, and no item passed on the stack is other than 32 bits in size. Anything that won't fit in 32 bits is passed by reference.

One sneaky trick I've been using is writing C programs that call library functions, and then using a complicated invocation of GCC that spits out a merged file of C source and assembly language source. (The gcc compiler actually generates assembly source first, which it then pipes to gas, the GNU assembler, for object code generation.) Then I just pick the listing apart and look to see what line of source cooks down to what sequence of assembly instructions. They're in that stupid ATT mnemonic format, but if you know the x86 pretty well you can work it out to an Intel equivalent. Here's the command line for that trick:

gcc -c -g -Wa,-alh,-L source.c

This just sends the merged file to stdout, so you have to redirect it to a disk file.
September 29, 1999:
I bought a copy of NetObjects Fusion 4.0, and so far it has been extremely disappointing. First of all, there's a problem with Visio 5.0 (which I also own and use) in that Visio registers the name of its Help file in the registry, and it conflicts with the name of the Help file that Fusion uses. Why this should be so is obscure; apparently the registry entry that Visio plants overrides the fact that Fusion is looking for its help file in its local directory. I don't blame Visio but Microsoft, who set up the stupid registry machinery anyway, which seems to be mostly trouble. But worse, the publishing mechanism for Fusion (which transfers generated HTML and other content assets to the server site) is FTP only and simply doesn't work for me. So I have to generate the site and use O'Reilly's free utility UpLink to transfer the HTML etc. to my server directory. Arrgh.
September 28, 1999:
It's official: Borland has announced that all of their RAD products are being ported to Linux. JBuilder will be first (supposedly in Q1 2000), followed by Delphi and C++Builder midyear. Because all components are intended to be identical to their Windows counterparts, applications that do no under-the-table platform-specific stuff (like direct Win32API calls) will drop in and recompile. The product suite's code name is Kylix, and not much else is currently known. Needless to say, I'll report anything that I hear!
September 27, 1999:

In researching how to write assembly language programs for Linux (as part of updating my book Assembly Language Step by Step) I was unprepared for the hostility many Unix people have to the idea itself. Most of the people I've asked about it respond with that time-honored weasel-question, "Why would you want to do that?" The psychology is a little hard to figure, unless they're petrified of becoming too tied to a single hardware architecture.

It's doubly ironic because a significant chunk of Linux is written in x86 assembly. The int $80 gate for system calls is little-known and discouraged—you're supposed to make all calls through the standard C library. It makes me wonder if, just as the entrance of AOL subscribers to the Internet changed the whole psychology of the Internet, will the entrance of DOS/Windows people to Linux en masse change the psychology of Linux? Say what you will about the AOL throngs, the Unix culture is in many respects fundamentally wrong ("Ease of use is for lusers!") and needs to be turned inside out for the sake of its own survival.
September 24, 1999:
Ever since I installed DynIP on my Chicago machine (which as a side benefit synchronizes your system clock to one of the many time servers connecting to the Net) I've been meaning to find (or build) a utility that will do the time synch thing without the IP redirection. Found a good one: Dimension4 from Thinking Man Software. It's free, simple, and does one thing well, which is the mark of a good utility. It installs as a tray applet and can be set to check for time at startup or at whatever interval you require. Love it! http://www.thinkman.com/~thinkman/dimension4/index.htm
September 23, 1999:
Although I downloaded and installed the DOS version of FreePascal 32 when I first heard of it, I didn't have a lot of time to play at the time and didn't print anything but the user manual to help me install it. Well, last night I printed out the full documentation set from the downloadable PDFs and cruised through it—and was so thrown back in my chair I went back, downloaded the Red Hat RPM binaries and installed them. This is an incredible piece of work, coming as it does with a WinSock library, clones of virtually all BP7 standard units (including Turbo Vision, egad) and the beginnings of a Delphi-style component architecture. I drug out a few of my ancient BP7 programs and recompiled them, with so little tinkering required that I have to say it's as close to drop-in portability as I ever expected to find across two operating systems as different as DOS and Linux. If you're a Pascal guy and haven't given Linux a shot because you think it's inescapably a C world, well, think again. FreePascal is truly free, covered by the GPL and LGPL: http://gd.tuwien.ac.at/languages/pascal/fpc/www/
September 22, 1999:
Borland has posted the results of their Delphi for Linux survey, which was intended to familiarize the company with the potential audience for a Linux port of Delphi. It's a must-read for anybody who (likes me) cherishes Pascal and likes to create software as quickly as possible. http://www.borland.com/linux/survey/ Note well that the responses depart radically from the longstanding conventional wisdom about Unix programmers and programming. The guys don't want to screw around with command lines, they don't hate Windows and don't intend to drop development for Windows, and quite a few intend to sell their Linux products through traditional commercial software channels. The Unix culture is changing. Having Delphi for Linux would change it a lot. Let's watch, and cross our fingers.
September 21, 1999:
OpenAvenue is a new Internet portal dedicated to hosting open-source project sites. It's a collaboration with LinuxBox, which had earlier been the de facto host of choice for open source projects. The projects hosted there comprise quite a list; you should go over and poke around a little bit. The list includes Bluefish, Ishmail, ICQnix, Xitami, Pyrite, Glacier, and many others. The most interesting item I found was wxStudio, an IDE for development with wxWindows, which is a cross-platform C++ GUI application framework for Windows and Linux. http://wxstudio.linuxbox.com/ While just getting started, wxStudio looks like it has a lot of promise. Then again, I said that about Megido, which doesn't seem to have changed much in the last six months, and lives on a server that's down as much as up.
September 20, 1999:
Here's a very neat idea that I'm itching to try: The Atomz search engine service. What it is is a search engine that you can add to your own Web sites, be they personal pages or titanic commercial enterprises. You add the Atomz icon and a few lines of HTML to your site, and people can use the Atomz engine hosted on the Atomz site to search the pages within your site. For sites with fewer than 500 HTML pages and 5,000 searchers per month, the service is free. Over that, you get charged—so for things on the scale of what I might ever do, it's a free service. The fees start at $75 a year and are graduated by number of pages and number of searches. www.atomz.com.
September 17, 1999:
I've established a set of personal guidelines for dealing with eBay. Actually, it's more or less one single major guideline: Decide what you want to pay for an item, and make that figure your maximum bid. Then assume, once you get the email telling you that someone topped your bid, that you've lost the item. Once you start to bid, you're no longer purchasing; you're gambling, and you can only lose. There are a number of areas where you're unlikely to get any kind of deal—the buying fever in collectibles, for example, is insane—so look elsewhere. I never buy anything over $100. And I decide what I want before I enter the site. It works for me. Maybe it'll work for you.
September 16, 1999:
Delphi 5 arrived today, and was installed in, oh, several nanoseconds. (Having a Dell Dimension V400 helps—that's the rippinest machine ever to grace my desk.) Much of the new muscle this time lies in its Internet features, primarily on the server side. Supposedly you can create a Delphi form (within some modest limitations) and Delphi can convert it to something you can post on the Web. This intrigues me and I hope to try it as soon as I figure it out. (Sigh—dontcha miss paper documentation?) It would be very cool to create the Aardmarks system in Delphi from top to bottom. I'll report on other aspects of the new system as I use them.
September 15, 1999:

Microsoft just bought Visio for well over a billion dollars. This is interesting, because Visio is kind of an anomaly: It's a radically different piece of software that its creators got right the first time, and it's head and shoulders above nearly everything else I've ever used in terms of overall quality and reliability. (Visio is a graphics program that gives you a multitude of little vector-based symbols and lets you drag them to a drawing and connect them in many interesting ways.)

It was great as V1.0 in 1993, and it's only gotten better since then. Microsoft intends to integrate it more tightly with Office. This wouldn't be bad, assuming MS doesn't give it some kind of spin that makes it harder to use Visio with other office suites (assuming there are any other office suites in a year or so) and things like PageMaker and Quark. But I remain slightly uncomfortable with the notion that all good things eventually end up getting owned by Microsoft. That way lies trouble. I wish I could clearly define just what kind of trouble.
September 14, 1999:
IBM has apparently beat Dell to the punch with a Linux laptop. It's always puzzled me why we haven't seen Linux on laps heretofore, but what it comes down to is some very specialized hardware (battery management, PCMCIA, etc.) that Linux hasn't traditionally had to deal with. IBM bit the bullet and created its own drivers for its own hardware, and now you can get an IBM system with Red Hat preinstalled. Dell's apparently hot on IBM's heels, and all of this is a good thing. GNOME is catching up to KDE in a big way. I'm going to be installing the newest Red Hat on my little Linux system (a Compaq DeskPro small footprint desktop) shortly, and I'll be having more to say on Linux's visual prospects at that time. Stay tuned.
September 13, 1999:
I hadn't thought much about this, but you've probably encountered supermarkets that give you discounts if you have a "club card" carrying a bar code that they scan before your groceries. The chains are evidently accumulating vast databases of customer preferences: Who bought Cheerios, who bought Cap'n Crunch, who bought portobello mushrooms, who bought Ultra Brite, who bought Jim Beam, who bought condoms…hmmm. I'm not one to get terribly upset about this sort of thing, but then again, I'm happily monogamous, don't drink much, don't read Soldier of Fortune magazine—and have no desire whatsoever to run for office or any position of public responsibility in the crosshairs of our poisonous political system. Being dull has its advantages in the privacy wars...but I'll go on record as not wanting one of those club cards.
September 10, 1999:
We got past All Nines Day, as I heard someone call it, and if anything anywhere failed, I didn't hear about it. This isn't keeping the freeze-dried food companies from filling my mailbox with spam quoting FEMA's statement that if the world doesn't in fact end on January 1, freeze dried food is still a tasty snack and keeps for a long time.
September 9, 1999:
Well, it's 9/9/99—Baby Y2K, as the doomsayers have called it. (In Olden Tymes, Ye Olde Hackerres would encode sentinel values, invalid values or uninitialized values as "99," especially in FORTRAN—so a date containing nothing but 9's might be construed as a bad value. But at least it's not dividing by zero.) I've been monitoring the news this morning and haven't heard of any national collapses or riots in the streets. I'll bet some old FORTRAN code crashed somewhere, though it may be some days before the reports trickle out into the news. Forgive me if I'm not chewing my nails.
September 8, 1999:

Red Hat's IPO, now only a few weeks old, has already made paper billionaires of two of its principals—and multimillionaires of several others. But the real winners, as always, are the institutional investors who grabbed all the shares. The stock currently sits at $129, up from the IPO price of $14. I tried to buy stock at the IPO, but didn't get any—nor did any individual investor I've heard of outside the reserve block that Red Hat held back for Linux contributors. Institutions got all the rest—and I suspect some of them have begun to sell, recouping a great deal of "free money."

This whole system seems wrong to me. I have often wondered why IPOs can't be auctions, with the runup occurring before the actual sale of the shares—thus giving the company itself the benefit of the runup, not the bored robber barons who buy IPOs from their privileged positions in the financial markets and then sell them a few days later. This sort of thing is what gives liberals support among the general public against big business. The deck is stacked against ordinary investors. Heavily. And this is yet another of a multitude of examples. Nobody but Red Hat and bankers got any Red Hat IPO shares. And that's simply not right.
September 7, 1999:
Got a new product here called Visual Capture, which may be the ultimate in screen capture utilities. It eliminates the "checkerboard" artifacts (generally on scroll bars) that I've struggled with from time to time, and can be configured to capture the full screen, regions, windows, menus, and objects. Nice documentation, and in nearly all respects it's beautifully done. Also interesting about the product is its packaging, which appears to be adapted from the packaging used for DVD's in the entertainment industry. It's a slim, hard black plastic folder that opens up with the CD mounted on the right and a small booklet on the left. It's very compact and it'll be interesting to see if software retailers open up their shelves to the new form factors like this one. I'm getting pretty tired of opening up monster cardboard boxes and finding nothing more than a jewel case! Anyway: Visual Capture; $99 from Advanced Firmware Development. www.advfirmware.com.
September 6, 1999:
Microsoft's in a bad spot. Canadians digging through the binaries of Windows found the embedded string "NSA Key" and claimed that Microsoft had built a back door into Windows allowing easy network access to US government spooks. Microsoft says that's not what the string indicates—that it's only there to verify compliance with US export controls. I tend to agree with Microsoft: If such a top-secret back door were real, would they hang a sign on it that says (in plain English) "NSA Key?" That would be mighty dumb. The problem, of course, is that Microsoft can't prove that the back door isn't there, and enough people (rightly) distrust the US government sufficiently to believe the worst. The only thing Microsoft can possibly do to disprove the back door conspiracy theory is make the full source code of Windows available. Windows doesn't have to be free as a consequence. Source code is protected under copyright. And it's up to them to weigh whether whatever trade secrets are present in Windows outweigh the redemption of a good reputation. Like I said, a bad spot—and it couldn't have happened to a nicer bunch of guys, heh-heh.
September 3, 1999:

Not sure how I missed it, because it lives right here in my own back yard, but there it is: The Icon programming language. It's free, source code is available, and it's been implemented on all modern versions of Windows as well as Unix, including Linux. Icon (which is not an acronym) is a pseudocode compiler and interpreter, in the fashion of UCSD Pascal and Java. The interpreter is called the executor, and it's the equivalent of the Java virtual machine. There are two environments: A simple editor/workbench for writing code, and an interface builder for creating GUI forms.

As a language it resembles Perl in what it does, but it's much more structured than Perl and looks a lot more like something partway between C and Pascal. It's heavy on string processing power, but also has mature libraries for graphics and many other things. An extension exists for OOP, but most people use it "straight." I find Icon code way easier to read than Perl, largely because it's not as condensed. (Perl at its worst begins to look like APL without the Greek.) If you're trained in Pascal or C and want to write X11 apps quickly for Linux, this might be worth looking at, as I think it's less of an intellectual stretch than moving from there to Perl/tk or TCL/tk. The home page at the University of Arizona in Tucson is http://www.cs.arizona.edu/icon/index.htm. Binaries, source, and some superb documentation in three forms (PS, PFD, and HTML) are available free for the downloading.
September 2, 1999:
As software becomes more and more mature, I ponder whether there will ever be a strong market in used software. I have often wanted to play around with page layout-but not so much that I'm willing to pay for a brand new copy of Adobe Pagemaker. On the other hand, I'd be happy to play with a version two or three back, if I could find one that ran well under Windows NT. I failed to find an organized market in used software on the Web, which suggests that the big software companies have actively suppressed such a market, which could definitely crimp the demand for new software. I see used software at hamfests (now generalized technology fleamarkets and not merely ham radio anymore) but that's about it. Don't suggest e-Bay. I would only sell there. I don't buy there. Is there an online flea market specializing in used software? Do drop a note and let me know.