Web Devout tidings


Archive for the 'Miscellaneous' Category

KABOOM! goes my laptop

Saturday, March 28th, 2009

Okay, it wasn’t quite that dramatic, but the graphics card on my Windows laptop putzed out today (just as Michael Scott was sneaking back into the building), and I won’t be able to get it fixed/replaced until at least next week. That means I’m not going to have any IE 8 standards support updates this weekend. I still have my Linux desktop computer, so I’ll use this time to work on the information for other browsers instead.

A cool new CSS reference

Monday, February 4th, 2008

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

Tuesday, January 15th, 2008

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.

How to: Enable edge mouse wheel rotate in Gutsy

Friday, October 19th, 2007

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.

How to: Upload PNG, GIF, or BMP to Picasa Web Albums

Thursday, July 12th, 2007

After a few months of searching, I’ve finally figured out how to upload PNG, GIF, and BMP files to Picasa Web Albums without them being converted into JPEG. Here’s what to do:

  1. If you don’t already have one, sign up for a Blogger account at http://www.blogger.com/

  2. Create a new blog. The title will be the name of the album you want to make on Picasa Web Albums. You have to use Blog*Spot for the hosting, and you should pick a Blog*Spot address that no one else is likely to want (some random keyboard mashing will be fine). You’ll never need to actually visit this address.

    Warning: If an album of the same name already exists in your Picasa Web Albums account, they will *not* merge. You will end up having two albums of the same name (but different URL), which you probably don’t want. Take this into account before picking the blog name.

  3. Once your blog is set up, go to the “Create Post” page in Blogger.

  4. Click on the “Add Image” icon just above the post entry field. This will open an “Upload Images” window.

  5. Click on “Browse” and select the image you want to upload. This may be a JPEG (JPG), GIF, BMP, or PNG up to 8 MB in size.

  6. If you want to add multiple images at once, click on “Add another image”. A maximum of 5 images may be uploaded at once.

  7. Once you’re ready to upload, click the “Upload Image” button.

  8. After it’s finished uploading, optionally give the post a title (today’s date or something, just to identify the image upload session), save the draft, and leave Blogger. The post body may be blank and you don’t need to actually publish the post, but there has to at least be a draft saved or else the images will be lost.

  9. Go to your Picasa Web Albums account. If all went well, you should have a new album with a little Blogger logo in the bottom-left corner. If the album isn’t there, try waiting a few minutes and refresh. If it still isn’t there, you should recheck the steps above.

  10. To make the album public, open the album page in Picasa Web Albums, click on Edit Album Properties in the left sidebar, and set it to Public.

For these Blogger albums, you’ll always have to use Blogger to upload images; the regular Picasa Web Albums interface won’t let you upload images into those albums. But you can view them normally, set captions, comments, etc. The images retain the full pixel-precise quality and filesize of the original images, and you can manually download them in their original PNG/GIF/BMP formats.

It would be nice if Picasa Web Albums would allow us to simply upload PNG/GIF/BMP images from the regular upload interface, but this will have to do for now.