Web Devout tidings


Internet Explorer 8 beta 1

March 6th, 2008 by David Hammond

Microsoft has released the first beta of Internet Explorer 8. I won’t give a final assessment of its standards support and whatnot until the final release, but here are some of my impressions on the beta so far:

  • It’s really really slow. I feel almost like I’m using Amaya. In particular, the Web Devout site is nearly unusable because the heading backgrounds take forever to render (they are just tiled 2×1 alphatransparent PNGs).
  • Switching to IE 7 mode requires a browser restart. That’s a little annoying, especially since it doesn’t gracefully restore your session like Firefox does during addon changes.
  • It broke the Web. I took a run through Alexa’s top 20 sites (cue rant about Alexa’s methodology), and about half the sites had big glaring display glitches. Yahoo is busted up, CNN is bleeding content… even Microsoft’s own Live.com looks like it has seen better days. I predict that the Web is about to have a lot more meta tags.
  • Web Devout’s headings are standing tall, but not very proud. It looks like IE 8 has a problem with negative margins in generated content. In fact, IE 8 seems to have lots of problems with generated content (which I pretty much expected). Other than that, it’s actually making a good effort at rendering Web Devout properly without any IE-specific rules that apply to IE 8. Still not up to scratch with the other browsers, though.
  • IE 8 still fails 9 tests in the brief CSS test suite I made for IE 7 a while ago.
  • Did I mention it’s really slow?

Keeping in mind what IE 7 beta 1 was like, I’m hoping IE 8 will improve a ton before the final release. But for now, the browser is too slow and buggy to actually use, and it doesn’t help web developers much because there will probably be a lot of additional changes before anything in the engine is final. I’ll dive into it more once Microsoft announces that it’s layout-complete.

A cool new CSS reference

February 4th, 2008 by David Hammond

Tommy Olsson and Paul O’Brien have made something I’ve wanted to make for a while but haven’t had time for: a complete, modern CSS reference with in-depth usage information, examples, and compatibility information for more browsers than my standards support resource currently covers. I haven’t read through the whole thing, but what I’ve seen so far has been pretty accurate, including the documentation of some picky bugs that most standards support resources miss.

For a while now, I’ve felt that we’ve needed an accurate, up-to-date reference with more information and better readability than the W3C specs. Aside from the “all rights reserved” licensing, this is very close to the way I would have designed it. Clearly, a lot of work has been put into this.

The pyramids weren’t built in a day

January 15th, 2008 by David Hammond

I have a confession to make: I haven’t actually been working on the new Web Devout that much lately. In my previous post, I mentioned somewhat in passing that I was developing a to-be open source system to power the new Web Devout. That’s what I’ve been busy working on, and for some good reasons. I’m not going to give too many details about the project just yet, but I thought I’d share some of my motivations for it and what I hope to accomplish.

At my job, I have to maintain a lot of different types of web apps. We have three installations of WordPress, about a dozen of Moodle, one of MediaWiki, one of Drupal, Two of Joomla, and other various systems. When a new update comes out for Moodle, I have to manually run the updates for each of the different sites, each of which usually involves a number of steps. It can end up taking several hours out of my day, and the other systems aren’t any better.

Website platforms are too hard to update.

We recently had a meeting to discuss the future of our web development efforts, particularly looking for some way to standardize all of our future endeavors on a single website engine. We looked at WordPress, we looked at Joomla, we looked at Drupal, we looked at a number of other systems, and we concluded that nothing out there could adequately do a good enough job on everything. Each app was good for certain types of sites or users, poor for others, and they would each stretch only so much.

Website platforms aren’t flexible enough.

I built the California Virtual Campus website using WordPress, which really impressed me with its extensibility to handle a site like that. However, as time has gone on and people have requested some changes here, some changes there, it became apparent that although you can build a lot of things on top of its base, it’s hard to remove things that are part of that base. WordPress provides a lot of helpful functions and a solid page management system, but it’s sometimes a little too helpful or a little too solid. In other words, it’s easy to scale a project up from WordPress, but it’s hard to scale a project down from WordPress.

Website platforms have layers that are difficult to remove.

What I want is a website platform that really makes me feel like I’m king. The king shouldn’t have to do the grunt work of manually downloading and installing an update every time a developer forgets that mysql_query($_GET['q']) probably isn’t the wisest thing to do. If the king wants his entertainers to start tending animals instead, they had better do it. And the king’s power shouldn’t be limited to just the living halls of his temples, but also to the underground dungeons, boiler rooms, and warp cores (depending on the era we’re talking about).

The system I’m developing is intended to make you king over your website. With diligence, elegance, common sense, and a striped hat, I hope this project ends up making web development just a little less stressful and a little more empowering.

There is not yet a guestimate on the release date, but it will definitely be free as in beer, free as in freedom, and free as in fat if you so desire.

No, I haven’t been silenced

October 28th, 2007 by David Hammond

I haven’t really added anything to the Web Devout site in a while. In fact, I’ve even fallen behind on the security summary updates for all three browsers. A lot of it is due to my very busy work week, trying to fulfill the “guy who solves all our problems” role for several different projects. But I have been committing my weekends to Web Devout.

So why haven’t there been any changes on the site? Well, changes are happening, but they’re happening somewhere else. A couple of weeks ago, I was given a powerful new server, all to myself, with tons of bandwidth to spare. Because this is the first time I actually have full administrative control over the server, and I can actually use recent versions of PHP and whatnot, I’ve decided it’s time to give several sections of the site some much-needed backend love (nmiaow). And while I was at it, I went ahead and started rewriting the entire site from scratch, based around a new modular homegrown infrastructure that will make future development a lot cleaner. I’m designing it with the idea that I’ll eventually open source it for other people to use. This rewrite will also give me a chance to implement an OpenID-based user account system seamlessly with all services on this site, and I hope to develop an early working version of my long-planned public bug tracking system by the time the new site goes public.

For those of you just tuning in, I want to make a single public bug reporting and tracking system for all versions of all web browsers, with focus on simplicity and ease of use (as opposed to, well, Bugzilla). Well-confirmed bugs will be automatically put into a table structure similar to the current web browser standards support resource. I hope it to be entirely user-driven, with little to no editorial oversight needed. We’ll see how well that goes. ;)

I’m still a long way off before I have something to show you, but hopefully it will be worth it.

How to: Enable edge mouse wheel rotate in Gutsy

October 19th, 2007 by David Hammond

Update: It seems this solution only works until you log out, and it has to be applied again. At the bottom I’ve written a script to do this automatically.

When I upgraded to Ubuntu Gutsy (7.10), there was one thing that annoyed me about its version of Compiz Fusion: I’m used to rotating my desktop cube (well, octagonal prism for me) by moving my mouse cursor near the screen edge and rotating the mouse wheel, but that no longer seems to work.

In the past, you’d enable this through the CompizConfig Settings Manager by going to Rotate Cube → Actions → General → Rotate Left / Rotate Right, enabling all edges, and setting button 4 for left and button 5 for right. But that doesn’t work in this version, because the Rotate Left and Rotate Right settings are bound to the general Gnome keyboard shortcuts (that’s what the blue text in the Name column means). So you can change the settings, and it doesn’t give you any errors, but it just doesn’t do anything.

But fear not! The problem is that the settings manager just isn’t bothering to change the Compiz Fusion gconf entry when you change it. So the solution is to just go in and change it yourself. Here are the steps:

(First of all, keep in mind that this issue and solution are only for people using the Rotate Cube plugin, which isn’t enabled in Ubuntu Gutsy’s default profiles. If you aren’t using the Rotate Cube plugin, this probably won’t interest you.)

  1. You’ll need the Configuration Editor. Although this application doesn’t appear in your menus, it should be installed on your system by default. In case it isn’t, you can install it by going to Applications → Add/Remove… → System Tools → gconf-editor; or if you prefer a command line, typing “sudo apt-get install gconf-editor” in a terminal.

  2. Press Alt+F2 to bring up the Run dialog, and type “gconf-editor” to bring up the Configuration Editor.

  3. In the Configuration Editor, navigate to / → apps → compiz → plugins → rotate → allscreens → options.

  4. Double-click on rotate_left_edge (not rotate_flip_left_edge). Add the following values: Top, TopRight, Right, BottomRight, Bottom, BottomLeft, Left, and TopLeft. Press OK.

  5. Double-click on rotate_left_edgebutton, change the value to 4, and press OK.

  6. Double-click on rotate_right_edge and add the same values as in step 4. Press OK.

  7. Double-click on rotate_right_edgebutton, change the value to 5, and press OK.

  8. Close the Configuration Editor.

That should be it. Now when you rotate your mouse wheel near the edge of the screen, it will rotate your desktop.

Update: As it turns out, the above solution is only a temporary fix. Once you log out, Compiz seems to forget the setting. Below is a workaround script that you can set to automatically run at the start of each session:

#!/bin/bash
sleep 5
gconftool --type=list --list-type=string --set \
	/apps/compiz/plugins/rotate/allscreens/options/rotate_left_edge \
	[Top,TopRight,Right,BottomRight,Bottom,BottomLeft,Left,TopLeft]
gconftool --type=left --list-type=string --set \
	/apps/compiz/plugins/rotate/allscreens/options/rotate_right_edge \
	[Top,TopRight,Right,BottomRight,Bottom,BottomLeft,Left,TopLeft]
gconftool --type=int --set \
	/apps/compiz/plugins/rotate/allscreens/options/rotate_left_edgebutton 4
gconftool --type=int --set \
	/apps/compiz/plugins/rotate/allscreens/options/rotate_right_edgebutton 5
  1. Paste the above into a text editor and save the file as /home/<username>/bin/enable-edge-mousewheel.sh (substituting <username> for your account username).

  2. Open your home directory, then the bin directory. Right-click on the newly created file and click Properties. Click on the Permissions tab and check the box next to Execute. Close the dialog.

  3. Click on your System panel menu, then go to Preferences and Sessions.

  4. Click the Add button. For Name, put “Enable Edge Mouse Wheel“. For Command, put “/home/<username>/bin/enable-edge-mousewheel.sh“. Click OK.

  5. Close the windows.