Posts

Showing posts from 2010

Keyboard issues with GNOME on a PowerBook G4 running OpenBSD

While setting up OpenBSD on my PowerBook, I ran across a problem with GNOME. My mouse would work fine but the moment I tried to type something, key presses would not register and mouse clicks would no longer work. The caps lock lights still worked and I could ssh to the machine so it was not locked up. Restarting X with Ctrl-Alt-Backspace seemed to be the only way out. The problem was the same if GNOME was started from GDM or from startx. FVWM from startx worked fine, so it wasn't a hardware issue.
After much searching I finally stumbled upon a thread from OpenBSD's misc@ email list that matched my problem:
OpenBSD 4.6, powerpc, KDE, Gnome, XFCE play nicely?
The next email in the thread mentioned problems with XDM, and I too was also experiencing problems with GDM.
The third email pointed me to the right location for the solution, "the second parapgraph of /usr/X11R6/README" which states: To use xdm from rc.conf, it is necessary to disable /dev/ttyC0 in /etc/ttys, change t…

Drobo and a Asus RT-N16 running DD-WRT

Here are some tips on getting a Drobo (tested with a 1st Generation Drobo) working with an Asus RT-N16 running DD-WRT.

DD-WRT's notes on the Asus RT-N16
First off, BACKUP your data on the Drobo. You'll probably need to change the partitions and reformat your Drobo.
It looks like DD-WRT 24 does not support GUID Partition Tables (GPT) which means you need to use a MBR partition table and you LUN size will be limited to 2TB. This was not really a problem in my case since the 1st Generation Drobo is restricted to a 2TB LUN.
I think the standard Drobo tools will use a GPT. To check if your Drobo has a GPT just run fdisk on the drobo
$ sudo fdisk -clu /dev/sdc
WARNING: GPT (GUID Partition Table) detected on '/dev/sdc'! The util fdisk doesn't support GPT. Use GNU Parted.
Disk /dev/sdc: 2199.0 GB, 2199023185920 bytes
87 heads, 57 sectors/track, 866095 cylinders, total 4294967160 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

WOFF?!

During my recent forays into web development I'm learning about using other fonts. It seems that Web Open Font Format (WOFF) may be the way to incorporate a font on a web page.
Support for WOFF: Several font foundries approve of the formatFirefox (3.6) supports itChrome is investigating support, star the issue to vote for itInternet Explorer might support it (@1:21)Safari and Opera: I wasn't able to find any solid info
Existing TrueType/OpenType fonts can be converted to WOFF with these programs. Arch Linux users can install these programs using my AUR package.

Label Sphere v2

A reader pointed out that my Label Sphere wasn't working as advertised. I took a look at both our blogs and they both looked fine, then I realized it must be a browser issue. I looked again with Firefox and sure enough the labels were all stacked on each other at the bottom of the gadget. I made the mistake of only testing in one browser (Google Chrome).
The issue with Firefox was that the label container was collapsing, then JavaScript got a very small height for the container which resulted in a very small sphere. To keep the container from collapsing I added the following to the style of the container (as stated in the link):
overflow: hidden;
width: 100%;

For the sake of completeness I checked the Label Sphere using IE8 on my gf's computer (the only IE I can get on Arch Linux is IE6 and I've decided I don't want to support IE6) and sure enough IE8 had a JavaScript error about "Object doesn't support this property or method". This error occurred while…

Global Temperature Change Map

Image
My first project with Google App Engine was a Google Map that displayed temperature data for a given date. I used monthly grid data provided by NOAA. With this data the Earth is divided up into 5x5 degree grids for a total of 2592 grids. I wrote a simple Perl script to parse the NOAA data, find the min and max temperatures, generalize each temperature point into a scale of 1 (min) to 9 (max), calculate the latitude and longitude for each corner of the grid, and write a CSV file suitable for upload to the datastore.
For the backend I wrote a Python script that created a kml of the data for the requested date. In the kml, each temperature range is a separate Placemark, and within each Placemark are GPolygons representing the grid data.
The frontend used JavaScript and jQuery to load the kml as a GGeoXml. There was also a play button that steps through all the available dates.
Unfortunately only 1 GPolygon for each Placemark would load. So I re-wrote the Perl script to output encoded p…

Label Sphere

My first Google Gadget is at the top of the left column of my blog. I've seen label clouds around and they all used flash so I decided to write one in JavaScript. I figured it would be a good learning experience. This gadget uses JavaScript and jQuery to rotate divs around a single point. Depth is represented by changing the font size and opacity. You can add my gadget to your blogger layout by adding a new gadget and searching for either "Alex Dioso" or "Label Sphere".

I've also updated my .vimrc for use with JavaScript.

Perl on Google App Engine

I recently started using Google App Engine and I have to say that I like it. The only thing I would change is support for other languages, namely Perl. I don't mind learning Python, but since I already know Perl it would be nice to be able to use it.

If anyone else is interested in using Perl on Google App Engine please Starissue #34 (do not reply to the issue with a "me too" or "+1", it just clutters everyone's inbox). You'll have to be logged into your Google account to do this.
There is also a Google Code project working on getting Perl ready for use in Google App Engine.

Template.pm

I've been trying to write my Perl scripts as modulinos (described in Mastering Perl), the basic idea being that runnable scripts written as modules can be used by later scripts. So far it has been working out well.

Here is my Template.pm

subroutine.pl

isc_license.pl

The ISC License that I use for some of my Perl scripts: isc_license.pl

.vimrc

My .vimrc

(Note that there are control characters in the last few lines)

.perltidyrc

.perlcriticrc

Archiving Ideas

Project management with Google Wave
Project Ideas can be archived with an "Archived" tag or if there are too many tags in use a "Completed" tag will work. This will keep the Ideas search smaller and limited to current Ideas. Current Ideas search: tag:Project Name, Idea, -Completed Old Ideas search: tag:Project Name, Idea, Completed

Separating Ideas and Tasks

To separate Ideas from Tasks just use an "Idea" tag or a "Task" tag. Project tasks would be sorted with:
tag:Project Name, Task, -Completed Project ideas would be sorted with:
tag:Project Name, Idea Project management with Google Wave

Finding unread tasks

To find all unread tasks (eg: all unread waves) use the following search: is:unread Project management with Google Wave

Finding tasks that don't have a project

To find all tasks that don't have a project (eg: all waves that don't have a tag) use the following search-has:tag Project management with Google Wave

Using Google Wave for basic project management

I recently got an account on Google Wave and I think it has promise. What interests me most is the possibility for project management. Previously I was using ThinkingRock which is a great application and has tons of features. However I didn't use most of the features and I wanted to share projects, to-do lists, etc with other people. I then started to move my projects to Google Tasks with hopes that it would allow sharing similar to Google Calendar's sharing.

When I got my Google Wave account I was glad to find out it has the ability to selectively share a wave with another person (isn't that the whole point behind Google Wave?). I looked for some sort of project management or to-do plugin but I realized that Google Wave provides everything I need without plugins. Granted I'm using a very small subset of project management ideas but it works well enough for me.

My setup is as follows:New projects are identified by a specific tagEach task is represented by a waveNew…