Older blog entries for markonen (starting at number 18)

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.

4 Jul 2003 (updated 4 Jul 2003 at 03:02 UTC) »

Greetings from Juneau, Alaska, where the 4th of July fireworks will begin in a few hours.

Juneau is the biggest small town I’ve ever seen. My cab drove from the international airport on an impeccable four-lane highway that had plenty of room for six lanes. It had some traffic, too, which is pretty impressive if you consider that Juneau has no road connection to anywhere. I guess these folks wouldn’t feel American enough without their trucks and SUVs!

There are some huge government buildings as well, and, thanks to the US system of network television, a couple of local TV channels. 200-meter cruise ships line the shore. There are so many that some have to anchor farther away on the bay. There are tons of bars, and from what I saw of the night life yesterday, it doesn’t disappoint.

So what’s the population? 29,755.

I’m staying at the Westmark Baranof, which apparently is the choice of Beltway drones and the oil or mining experts who have business in the state capital. That explains why the hotel has high speed Internet access—something that hotels in the much bigger Anchorage don’t necessarily have. The implementation is a bit peculiar, though, since it works with cable modems straight off the local cable company’s network. It’s plenty fast; the only fly in the ointment is that the cable modem channels overlap with the hotel’s pay-tv system. After 4 PM, the porn channels take precedence and the management doesn’t guarantee a working Internet connection.

Oh well, I guess it would’ve been redundant anyway.

I actually figured out what it would take to wire all of the 196 rooms here with Ethernet to overcome this problem. What you want to do is reuse the phone lines to each room—physically rewiring 196 rooms with CAT 5 would be insanely expensive. The product of choice in a scenario like this is Cisco’s Long Range Ethernet, which I’m told can get a 15Mbps full-duplex connection over barbed wire of all things. At least the Westin St. Francis in San Francisco seems to be happy with LRE over decades-old phone lines.

Here’s how it works: First you buy as many 24-port LRE versions of Catalyst 2950 switches as you need. Here you’d need eight to cover 192 rooms. Then you link the Catalysts’ Gigabit Ethernet uplink ports to a central switch. I would choose the Catalyst 4908G-L3. It’s very fast, relatively inexpensive, and the L3 features will be the foundation of your billing system (you can easily get people to pay $14.95 per night for Internet access). Then, you need four 48-port POTS splitters. They allow you to run the regular phone lines on the same cables as your Ethernet. Finally, you install $120 Cisco 575 boxes in each room. They have two RJ11 connectors (one for the uplink and one for the phone) and a single RJ45 for the Ethernet. Total cost, with installation, would probably be in the ballpark of $350 per room.

You have some choice regarding the billing mechanism, but most people would redirect all traffic to a web site where the user agrees to be billed. The site would then alter the ACL on the central switch via SNMP to remove the redirect and open up internet access for the user’s switch port. Additionally, you should probably block IP traffic with addresses outside your netblock. At the Starwood properties I’ve stayed at in the past weeks, someone would always have Internet Connection Sharing on, messing up things. In the best case, they would allow other people to piggyback on their connection, separating you from that revenue. In the worst case, their DHCP servers would conflict with the real one in interesting ways, preventing people from connecting at all and causing you a support nightmare.

9 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!