Welcome to RocketMonkeys.com!

This is my personal site, where I store my rants, pictures, and movie reviews. Have a look around, register and leave comments.

Show: all [rants] movies pictures

Page: Previous << 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 >> Next

Stupid, stupid CSS

Posted by james on July 24, 2008

I've been making webpages for so long now, and I remember when I first started learning CSS. At first it seemed confusing; a whole separate and more complicated language for specifying colors, fonts, and sizes for webpages when we already had perfectly fine HTML. Slowly, it started to make sense; it was like a macro language for HTML, except one that actually gave some benefit. Declare a class, make some changes, and every title on your webpage changes color. You could even do layout with it, which was awesome.

But I've since become disenchanted with CSS. It was amazing when all the big browsers started to support the main items, but there's always been compatibility issues. It's gotten to the point where no matter how simple a CSS change is, there's a good chance that it'll break something on your website due to some crazy browser bug. But there's something even worse than bugs; intentional quirks.

CSS has so many strange little quirks that were intentionally put in, it boggles the mind. One annoying one is the box model. So you want a box on the page 500 pixels wide. Easy!
<div style="width:500px;"></div>
So easy! Now add some borders:
<div style="width:500px; border:10px solid black;"></div>
And wait... now it's 520px wide. What happened? The great CSS designers decided that when you wanted to specify the width, you really meant the content. So there's really no way to specify outside width, you have to hack it. How in the world is this useful? It's completely counter intuitive, but worse yet it prevents you from building relatively easy constructs unless you nest block inside block with some crazy CSS to get around this very simple thing.

Next, we have margins. Let's make a box:
<div style="width:200px; height:200px; background:silver;"></div>
Great! It's a 200 x 200 box. Now let's add a smaller box that's 10px away from all edges, which by default should end up in the upper-left side:
<div style="width:200px; height:200px; background:silver;"><div style="margin:10px;"></div></div>
All of the sudden, CSS makes a great "optimization" for you: the margin is removed from the inside box and transferred to the outside box. How... asinine. There are all sorts of explanations that go over why this is "correct", why it's desirable, how to get around it, blah blah blah. The bottom line is that it's behind the scenes magic that CSS does, totally counter intuitive, and hard to work around. You have to introduce all sorts of border, padding, and margin hacks to get around it.

But for a language designed from the outset to make sense, why should we have to *get around* anything?? Many of these Intentional CSS Bugs were justified from the standpoint of a content-oriented, layout agnostic mindset. If text is king, then who cares if you can't specify box widths in pixels... just set a text size and let it wrap! Who cares if you can't float items and center at the same time, or vertically center *anything*, or set margins explicitly. Just let CSS collapse margins as it sees fit, in a way that really only makes sense for a Paragraph-tag-loving non-designer who believes lynx was the climax of browser development.

I'm not a fan of implicit, behind-the-scenes languages. Even when they mean well, what they really are is unpredictable. With a more explicit language, you have to type out a lot more but then the language does what you tell it to! CSS is an implicit language designed by text-loving monkeys, and not the good kind. If you were designing CSS, wouldn't you have said to yourself, "If we do this small and strange optimization, it really only helps a few people and will screw up everyone else. Maybe we should just give people an option to do tricky things if they want to." Instead, we have the giant bag of crap that is CSS.

I think we need a new language. One that doesn't force users into a bunch of buggy tag soup that masquerades as standards-compliant pseudo-semantic-web markup. Let's just make a language that allows you to tell the browser what you want it to do... and it does it! Want a box 500px wide? You got it! Want to add borders inside? Done! Want to add margins? Margins added, with nothing else removed or added unless you tell it to. Let's make an explicit, totally intuitive language that is under the control of the developer, not the language standards body. Developers know what they're trying to build, and just want the tools to build it. Standards bodies should be transparent, and simply give the developers better and cleaner tools, not try to force them into a certain mode of designing and then try to justify their crimes with the omnipresent "Well, no you can't do that. But you really shouldn't be doing that anyway. Why not do this instead?"

I don't want to do that instead. I don't want collapsed margins, buggy box models, lame standards non-compliance or CSS3 + HTML5 + Tag Soup 6. I want explicit, intuitive web language (EIWL). Maybe I should just do everything in Flash instead...

Goodbye Hostmonster

Posted by james on July 11, 2008

I used to use HostMonster for my website hosting for quite a while. I chose them because they had tons of features that I never used (Ruby, Perl, SSH, etc) and were pretty cheap (something like $5/mo if you sign up for 2 years). They've been barely adequate at times, and bad at others. Most of the problems stem from completely unprofessional server maintenance and unhelpful tech support.

But for the past few months, I've been on Godaddy for hosting. While I do have complaints about them, they're still tons better than HostMonster was.

Servers have gone done often for no reason at all for small periods throughout the day (15 minutes here, a couple hours there). Longer outages usually prompt me to contact their tech support, at which point they claim that they've checked and nothing is wrong until I prove that something is happening on the server, at which point they usually state that "an admin is working on that server". Then there are the random server config changes that break my site every once in a while. They also lost *everything* for a few days, then restored the whole server from backups.

So in the end they were frustrating to deal with, and my older simpler host <a href="http://www.e-rice.net/">e-rice</a> was much, much better. Their prices were lower, they offered the basics (no fancy ruby, etc), and the server admin was personally available usually within a 4 hour time window. Amazing service, great prices... just a great cheap host. Those are hard to find, even harder to trust. I'd recommend anyone starting out to use e-rice, then move up to a larger host when the time comes. Most websites will never need more.

With my new host, Godaddy, I already had my domain names through them. They had a ton of space and enough features (python, ruby, jsp, etc) with a decent price. I was a little wary since I heard some mediocre things about them, but decided to try it anyway. Their uptime has been great so far, no outages that I can recall (unlike HostMonster, which was down at least once a day). My biggest complaint with Godaddy is their crazy burdensome admin interfaces. I must log into the main godaddy.com website, then click on my hosting accounts, then click on the hosting account I want, then "manage hosting account", then I get into a second hosting admin panel. From there, I must click on the task I want, the specific database I want, then "open manager", and I get a third admin panel (phpmyadmin).

I have to do this every time, there's no way to directly log into the hosting panel without going through the main site first. That means if my login times out, I have to repeat the process. And while the admin panels are a bit slow and annoying, the phpmyadmin is incredibly slow and takes 30 seconds or more to load up. I may start installing phpmyadmin on my own site and avoiding use of their built-in versions.

Besides the admin section nightmare, goddady has been good so far. They have some funny quircks with .htaccess files and similar, but nothing that's caused too much trouble so far.

So goodbye hostmonster. You've been adequate at times, and a thorn in my side at others.

Skype hates Windmill

Posted by james on July 2, 2008

We've been using Windmill for browser UI testing, and recently I ran into a problem.; I installed skype on my machine, which by default installs a firefox plugin. The next time you startup firefox, it loads a "Thank you for installing skype" page instead of whatever you were trying to reach. This happens once for each profile, including new profiles.

Windmill creates a new temporary profile each time it tests, and then loads up the testing page to start testing. However, now instead of loading the windmill testing page, it loads the skype page which screws up teh whole testing process. You can't change the profile since it's created fresh each time windmill tests. You can't avoid the initial skype page, since that always loads once for each new profile.

The only solution I can see is to delete the skype firefox extension. But since the extension is installed for firefox globally and not in an individual profile, you have to delete it in the main firefox folder. By default, it's:
C:\Program Files\Mozilla\Firefox\extensions\{B13721C7-F507-4982-B2E5-502A71474FED}
Delete that folder to prevent the plugin from installing for new profiles. This will allow Windmill to run normally.

Page: Previous << 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 >> Next