Older blog entries for markonen (starting at number 19)

2 Sep 2003 (updated 2 Sep 2003 at 19:36 UTC) »

The fact that I haven't really had time to contribute to OSS lately has been bugging me a lot, especially each time I've been writing a diary entry here. Luckily, a solution has presented itself. I hired my company's first employee this week, and he's now working full time on software that will be released under the BSD license. Whee!

Speaking of the license -- I'm currently using the one with the advertising clause. Anyone wanna try and convince me to drop it? For the record, I don't consider GPL compatibility a reason to do so.

sisob: I don't think your premise that users who don't have root privileges don't want to be offered administration options because "they have no way of using them" is really true. In fact, I'm sure that most such users have a resident administrator on site who can be summoned to enter the password to authorize an operation. What you don't want to do is have this relatively common operation require a login/logout cycle.

24 Aug 2003 (updated 24 Aug 2003 at 17:45 UTC) »
mikehearn: a bit of work might be a bit of an understatement. What the free operating systems are missing in comparison to Mac OS X or, say, Windows XP, is fit and finish, lots of it, and getting there is much harder you'd think. These commercial products get to their polished state because putting out a polished product is a key priority at Apple and Microsoft. In pure volunteer efforts, the priorities are often somewhere else.

It's important to note that this is not just an issue of manpower and resources. Be, for example, managed to develop an absolutely fabulous desktop OS that was usable, consistent and beatiful, and they did it with a tiny team. They invested time in polish rather than, say, unix-standard multiuser features, because you need polish to actually sell things.

Companies like Sun, Red Hat and Ximian also want to sell things, which is why it's logical to look to their desktop development efforts for the state of the art on the platform. It's not very encouraging. One only has to take a glimpse at the Mad Hatter screenshots to realize the half-bakedness that abounds; in this case, putting in a branded Mozilla throbber was a priority, everything else could be left to suck as badly as it always has.

17 Aug 2003 (updated 17 Aug 2003 at 21:36 UTC) »

I got another email scam today. This one’s more elaborate than the dime a dozen 419 scams—a trend that’s getting pretty worrying. It faithfully replicates an original Citibank html email, and asks the receiver to confirm their acceptance of new account T&Cs. Click on the link to do so, and you’re taken to a server in China, ready and willing, as I write this, to take your Citibank account details.

I’ve posted a copy of the email on the web and forwarded the link to United States Secret Service via their web form (which I doubt anyone reads). I wonder if I’m supposed to do more? With these things, you tend to figure that at least a million other people have received this, so there’s no reason for you to act. But how true is that assumption?

The Register covers Microsoft’s new Office pricing for Mac today:

Curiously, US reports suggest Microsoft isn’t seeking a formal statement that the buyer is either a student or an education professional, so it’s hard to see why anyone will splash out for the £369/$399 Standard edition

I can see where this is going: “Curiously, Oracle offers all of their database products for download free of charge, so it’s hard to see why anyone will splash out their outrageous license prices.”

Get a grip, guys.

There is one thing that never gets mentioned when people are praising Atkins—it’s really expensive. In a country such as Finland, where all food is insanely priced, it costs an arm and leg to replace all the starch and sugar in your diet with, you know, actual food. If you’re like me, you’re used to stuffing yourself with rice, pasta and potatoes, paying top dollar only for relatively modest amounts of fresh ingredients. The bottom line changes significantly when the fresh things are all you get.

On a related note, I wonder why more restaurants aren’t jumping onto the low-carb bandwagon. It seems to me that their current “light” choices are typically pretty cheap; you can only charge so much for a simple soup or a caesar salad. An 8 oz sirloin steak with a creamy sauce and some steamed veggies is likely to command a much better premium.

I am seriously considering migrating a certain application of mine over to WebObjects. My primary concern at this point is this: all the WO-based web sites I’ve seen have URLs that look like dog vomit. Does someone know if there’s an easy way around that?

I got a new wireless router, a Linksys WRT54G, on Friday. It was the combination of Linksys’s cheap price, four 10/100 switch ports and the ability to act as a real (non-NAT) router that sealed the deal. (Being the total Applehead that I am, Apple’s Airport Extreme base station would have been the natural choice for me. It offers none of these things, however.)

The only trouble with my shiny new router is that it does not work very well. Apparently, when you switch from the gateway mode to router mode, the router forgets to turn off the very NAT-geared firewall. So, the box routes just fine—unless you need to allow incoming connections of any kind.

I went to the Linksys site to see if a firmware upgrade would solve this. They did have fresh upgrades to the WRT54G, and not just bugfixes either: the latest one added support for WPA and the final 802.11g standard, for example. But nothing about the router mode. It was around this point that I found this curious link.

Yes, unbeknownst to me, I had brought a Linux box into the house!

After the initial shock such a discovery can cause to a BSD guy, I realized that there’s probably an upside to this—perhaps I could fix the router issue! And as if on cue, Google directed me to the Wiki maintained by the SeattleWireless folks. Apparently, it was discovered only yesterday that you can execute arbitrary code via the router's web interface to ping.

So, today I just pinged

`/usr/sbin/iptables --flush FORWARD`
and now have a working router. Which is nice.
pjf: none of the tickets issued by IATA member airlines are transferrable. All tickets are, per IATA regulations, personal. If a ticket is refundable or endorsable, however, you can use the value of the ticket to pay for a new one. This is called reissuing a ticket. Airlines usually charge a fee in the $50-100 range for reissues. Scalping does not exist on this market because as you reissue, you tap into the same seat inventory and fare rules as everyone else. This means that holding a ticket does not give you any advantage over just paying for the new one in cash.

Pre-9/11, you weren't legally required to produce identification on domestic flights within the United States. This enabled a big secondary market for non-changeable, non-refundable tickets to exist. Since then, government regulations have plugged this loophole. Civil liberties activists are challenging the constitutionality of the current ID requirements, however.

slamb: check out Apple’s own HeaderDoc.

PostgreSQL’s SERIAL column type is a textbook example of a leaky abstraction. And a very leaky abstraction at that. On the surface, it appears to be remarkably close to other RDMBS’ native SERIAL types or even to MySQL’s auto_increment feature. Add a table, insert some rows, and witness each getting a neat serial number automatically. Great. Go any further than this, though, and everything falls apart.

If you’re a web monkey like me, you’ve probably come this far working on your personal account. But now you want the web server and its application-specific PostgreSQL user to insert data to your shiny new serial-wieldin’ table. And this is where things break down: Inserting a row to the table without specifying a value for the serial column requires a specific access privilege you’ve never heard of. This is because creating a table with a serial column in PostgreSQL implicitly creates a sequence associated with that column. It also implies that the default value for the serial column is the nextval of the sequence, and accessing that nextval is a privilege-requiring operation.

In other words, you have to manually GRANT access to a sequence you did not create and probably don’t know the name of. Similarly, the automatically created sequence does not disappear if you drop the table. If you want to create the table again, you first have to drop the unknown-to-you, not-created-by-you sequence manually.

Oftentimes the abstractions we put in to make users’ lives easier leak so much as to make them completely useless. The SERIAL column was put in to enable people use sequences without knowing about them. But if people ever drop the table or want other users to insert data into it, they have to learn about sequences anyway. But that's not all; they also get bitchslapped by the system for thinking that they could wiggle their way out of learning SQL basics.

I believe that this feature in PostgreSQL does about 30% of the work of a useful, opaque SERIAL column. But I don’t understand why this code is in the tree: the 30% of a feature is not, in itself, useful to anyone.

Okay, I take that back. I understand why it is in the tree. It probably went in there as soon as it didn’t bust the compile or the unit tests—just like every other piece of code in every other open source program.

10 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!