Welcome to the adventure

New home page - CSS designer must be a hard occupation

Saturday July 29, 2006

I felt the urge to fool around with image design and CSS after reading an artsy CSS book, and a new design for my home page is what I came up with. It scales with font and window size (a rareity on the web today - go on, try it!). It’s a fixed-width collapsable design where the background and columns maintain their relations to each other even as the window gets very narrow.

The design took forever. CSS positioning in a lot of ways sucks; if I could just “anchor” a box to the edge of an element like you can with most GUI builders, that would be great. Instead I have to worry about how the content is going to flow, and ensure that the layout uses that to get the positioning I want.

Internet Explorer probably causes web developers thousands of dollars of lost productivity each month. I’ve delt with its idiosyncracies before, so I like to think I’m fairly good about hacking around its display problems, but this layout took me 4 hours to get it to correctly show in IE. That’s horrendous. All in all IE required 12 special rules to accomodate its weird display behavior, although 3 of them were to support transparent png images. The worst of it is I had to modify the document itself and change the way I presented things to make the design feasible in IE.

I don’t see how CSS designers can deal with the constraints of faulty implementations every day. People who make complex layouts regularly or work on web 2.0 products must have an imense amount of patience. You learn how to do something the right way (standards-compliant), and then must learn 3 confounding workarounds for different browsers, some of which alter your presentation strategies completely. IE 5 and 6 are the big problems and both impose so many artificial constraints on what you can do that I wish MS would force upgrade everyone to IE 7 (which they may just do!).

Word of the day - apologia

Thursday July 27, 2006

Dictionary.com’s word of the day today is apologia! Weird.

Apologia:
Apologia is from the Greek word meaning “a spoken or written defense,” from apologos, “a story,” from apo- + logos, “speech.”

Picked it up using this handy applet ;-)

Web Hosting research - Xen Linux VPS

Tuesday July 25, 2006

I’ve been hosting stuff for about 8 years, and I’ve had about that many hosts. I usually put many sites on one server and like to use the server for development, source code hosting, web services and other general tasks. Seems like the best way to have “full control” over everything is to run your own machine.

Closest thing to that currently is to get a virtual private server (kind of like VMWare) run by a hosting company. That way, you can ssh into your virtual server and do whatever the heck you want with it, including reinstalling the OS and setting up software that requires root privileges.

I use Ubuntu on all of my desktops, so why should I be forced to use something else for my web host? Thankfully some VPS hosts are offering a good selection of OS choices, many of which include Ubuntu Dapper.

My requirements are this: reliability (most important), fast (which means Xen virtualization technology, not Virtuosso), Ubuntu OS, and enough RAM and disk space to do interesting things. Satisfy those and the lowest price wins.

I wish there was a search engine that you could plug in your requirements to, and that would recommend the best service and show you all recent relevant feedback. Hearing second-hand from a blog is the next best thing, so here’s what my research has yielded.

UnixShell

Run by a “guy who knows what he’s doing,” this is the most popular Xen-based VPS host out there. He also runs the non-Xen based hosting company, Tektonic. As of writing, they’re so over-booked with orders that they’re not taking new ones. That is annoying and scary, because they may lose quality due to growing pains. However, it’s refreshing to see a host that will not sacrifice service because there are so many new orders, and will refuse orders and grow slowly so they don’t lose quality.

Certainly one of the cheapest out there with the minimum plan coming in at $8 a month.

I’ve been watching this company for a long time to see when their order volume would fall and they’d start accepting new orders. Hasn’t happened yet, so I’m going with another provider, but most people on web hosting talk seem to be enthralled by their overall service.

VPSLand

Nice looking site, good plans, and they offer both Unix and Windows hosting. Their minimum Xen Linux plan is $10 a month. Unfortunately they’ve earned the reputation of having generally the worst support in the VPS industry, but if you don’t need support, the boxes apparently run ok. I’m staying away from this one.

Xelhosting

Xen Linux hosting starting from $16. Their plans are not very attractive - you only get 128MB of ram for $16. Other than that, people seem to like them. Lots of distros to choose from; I considered this company for a long time.

ServerAxis

Reputed to have the best packages, best servers and loads of uptime. Ah, reliability is king! Only general complaint is the absence of a low-cost package (minimum is $30) and the support is “ok” (not vpsland bad, but expect to wait 1-4hrs for support emails). Their packages are a good value - at $30 you get a 0.5GB of guaranteed RAM and 20GB of disk space.

Update:

SliceHost

Newer host at the time of writing. Their website is sharp, well articulated, and their plans look good. SliceHost charges $38 for a plan equivalent to the $30 ServerAxis plan, but to their credit, they offer a mid-range $20 plan, successfully hitting the sweet price point for trying a new host.

And did I mention they look dang sharp? Check out their public blog, forum, and wiki. They’re very transparent — I love that.

They support Ubuntu & Gentoo among other distros. If anyone gives them a try, feel free to leave comments.

I decided to go with ServerAxis. I would have liked something in the $20 range, but if they’re as reliable as people say they are, it would be worth the premium. I’ll post my experiences with them later.

Why dinner is the thief of productivity

Monday July 24, 2006

It happens to all of us. We’re working hard, hacking away on that glue module at blinding speeds, and it hits you: your stomach sends an asynchronous hunger request to your brain, with a TTL value of 60 minutes. Discard or buffer the request at your own peril.

I always try to ignore it, but then my productivity starts to fall as my brain cells are spent servicing damage reports from my intenstine, usually along the lines of “your stomach has begun eating itself.”

Fine, I’ll give in to this unstoppable (for now!) biological demand and get some food in me. Order pizza, or chinese? Delivery makes me feel like crap afterward. I’ll just whip something up. Alas, the kitchen is empty as usual, because the things I like to eat go bad after just a few days and I never want to restock the stuff. The only choice is to make a journey to the dreaded food repository down the way…

I live near quite possibly the worst grocery store on the eastern seaboard; this is the biggest reason I regularly go hungry. I would rather buy groceries from a child on the side of the road who’s inventory is limited to sardines that’ve baked in the sun all day and stale saltine crackers.

I hear Shopper’s Food Warehouse is pretty bad in general, but ours has creative management that makes it the quintessence of inefficiency. It’s confoundingly split into two sections, seperated by a long narrow hallway. The hallway is a bottleneck for cart traffic, and makes “backtracking” from the regular section to the fruits and vegetables section a costly trek. Forget an ingredient? Your best bet is to just come back another day, because you’d double your trip time if you navigated back to the sealed-off vegetable fruit section.

One thing I can admire about this store is the precision of their staffing algorithm. The lines are very consistent at all hours of the day and night. Unfortunately, they supply exactly two less cashiers than they need at any given time (staff = required(n) - 2, where n is the number of shoppers), which means you’re waiting 15 minutes to check out even at 4AM! It’s unavoidable. Their throughput is insidiously designed to clog just enough (so they can save on cashiers) that you don’t drop your groceries and walk to another store. Mere consumers cannot defend against the diabolical brilliance of this business.

By the time I get home, I’ve spent 60 minutes at the grocery store and 30 minutes before that wrestling with my hunger, so now I’ve been out of the game for 90 minutes. Add cooking and eating to make it 2-2.5 hours. That is a high price to pay for some dang dinner, but a nap inevitably follows (a must for avoiding an irritable demeanor) which steals another hour.

This is why dinner is the thief of productivity.

The solution? I think it’s clear. We design some kind of wireless food distribution channel with high enough bandwidth to satisfy hunger requests on demand.

Chalk illusions

Monday July 24, 2006

Drawing illusions this realistic should be illegal.

GNOME Word of the Day 0.2

Monday July 24, 2006

New version of this applet. Now it sits in your panel area and has other nice features:

panel.png

iconview.png

dialog.png

See more details at the project page.

Emerald Isle vacation

Saturday July 22, 2006

Just got back from Emerald Isle, North Carolina with my pastor’s family. What a great trip!

David modified some nerf guns that we used to battle with all week. His insatiable desire to modify his own gun to propel foam darts beyond reasonable velocities and inflict potentially mortal pain on his enemies was a bit disturbing.

001b.jpg

We took lots of pictures…
012b.jpg

… Laid around
014b.jpg

… Played golf
075b.jpg

… read a ton
081b.jpg

… and unfailingly broke out into wrestling matches. Sometimes the seatless floor of a van is just not big enough for three guys. The loser in this match was propelled from the rear exit of the van while crossing a bridge at 50mph. The remaining two thankfully had enough room to be comfortable for the rest of the trip.

285b.jpg

The place we stayed at had a hot tub which we abused by spending way too much time in it. Dan and I on many nights stayed in the hot tub from 2-6am talking. That thing was great.

291b.jpg

We also had to conduct (unlicensed) surgery on Pat’s foot. Removing the pebble from his toe predictably attracted the attention of everyone in the apartment and even some neighbors.
020b.jpg 016b.jpg

Dave went on a drinking binge; here he is completely wasted after downing two diet cokes.
071b.jpg

Acrobatic challenges were issued often,
278b.jpg

and we successfully bested the elements on numerous occasions. Here we are pushing forward into vicious winds that earlier had carried away 2 small children and someone’s goat.

315b.jpg

Adding extra style sheets to master pages in asp.net

Saturday July 15, 2006

If you use master pages (basically templates) for pages, you can’t add additional style sheets to the header on a .aspx page that derives from the master template. The master template writes the header once and for all, and you can only modify it through code. Apparently .net beta 2 used to have a property on master pages that you could modify called LinkedStyleSheets, but it’s gone in the currently release.

So you have two options. One, as shown by Ted Pattison, is to do it at runtime:

HtmlLink link1 = new HtmlLink();
link1.Href = "JungleLove.css";
link1.Attributes["text"] = "text/css";
link1.Attributes["rel"] = "stylesheet";

this.Header.AddParsedSubObject(link1);

That requires you editing the code behind file for a page (page.aspx.cs) and adding that HtmlLink in the Page_Load method. Not exactly great content/presentation seperation.

Another option is to add a reference to the style sheet from within CSS. This is also kind of ugly but is considerably better than the first alternative:

<style>
@import url(styleSheet1.css);
@import url(styleSheet2.css);
</style>

You can put that on each .aspx page to import extra style sheets in addition to the ones included by the master page template.

An ideal fix would be to have a property in the <%@Page%> directive, something like this:

<%@Page MasterPageFile="Main.master" Title="page title" CodeFile="MyPage.aspx.cs" Inherits="MyPage" Language="C#" StyleSheets=”one.css;two.css” %>

That would probably be the cleanest way to get the master page’s style sheets in addition to any extra ones the specific page wants, and get them linked from the <head> section of the document.

Wish I could try Parallels

Wednesday July 12, 2006

I do development on Linux and Windows, but I’ve always wanted to run some of the Mac hardware (Mac Mini & the Macbooks). I’m a huge fan of VMWare for deployment testing and general OS usage (I use windows and Linux on my laptop simultaneously), but I’d like to try Parallels after reading this excellent (as always) article about it at Ars. Great topic sentence:

“Move over emulation, virtualization is in and it’s hotter than two Jessica Albas wresting the devil himself in a pit of molten steel.”

Elegant design - Last FM

Tuesday July 11, 2006

Once in awhile you’re browsing the web, and the design of a site just strikes you. It doesn’t happen often, but when it does it’s because a designer did something truly unique, creative, and usable. The Last Exit project page (a last.fm player for GNOME) should be a lesson to all of us in simplicity and usability, while maintaining a sense of flare.