Latest Publications

How time flies

It’s so great to be able to run again. Just 9 months ago I needed help walking more than 10 feet.

Things to do in Oklahoma

I’m in Oklahoma City for work, again.  It’s a little less exciting than LA,  and the food is definitely not as good as the food in LA is, but it’s not all bad.  It’s nice not to have traffic, ever.  It would be nice for my 6 mile drive to work not to take 45+ minutes…

Another good thing about having all of this free time is that I have a chance to do some hacking!  A few weeks ago I started reading up on how to make a packet dissector for Wireshark.  Wireshark has some fantastic documentation, and the biggest barrier to entry I think is just the fact that there is so much written.  I’ve worked my way through a couple of 1000+ line documents and believe I have a solid handle on how it all works.  My other work in the open source world has definitely made it much easier.  For example, I’m already familiar with autotools and GObject libraries.  That said, however, I’m not so good at C programming, yet.  I’ve spent most of my free time hacking in C# (w/ mono) or Vala (a C# like language developed to be a better fit with the GObject type system).  I really enjoy getting back into C, though.  I’ve done a bit of C programming for embedded systems, but always wished I could do more.

On the topic of Wireshark, that software really is amazing.  It’s so great to see such well written software representing the open source community.

I also haven’t blogged about Docky yet. I’ve spent a lot of my free time there. I’ll have to explain more soon.

Do development meeting

Recently we, the GNOME Do developers, held a meeting to discuss our goals for the project.  Development has slowed to a crawl over the last few months so the purpose of this meeting was to determine where we should be taking the project, and how to get development rolling again.  I was able to rescue most of the log of the meeting from my xchat logs, and I’ve cleaned it up and am posting it here now, for all to see.

Unfortunately the first few minutes of the meeting were not present in my log.  We started a little late and the only thing that’s missing in this log is the decision to change the name of the project from “GNOME Do”, to just “Do”.

Note that all times shown below are UTC.

8:17:28 PM <cszikszoy_> (how is this going to work? Is someone updating the wave with our decisions here?)
8:17:36 PM *lamalex  will
8:17:38 PM <RAOF> I’m on it.
8:17:42 PM <lamalex> or RAOFcan
8:17:45 PM <lamalex> RAOF, take care of wave
8:18:03 PM <lamalex> I’ll take care of the GNOME Do -> transition
8:18:05 PM <cszikszoy_> next: move away from
8:18:08 PM <djsiegel> lamalex: ok, thank you
8:18:09 PM <cszikszoy_> this is an easy one
8:18:18 PM <djsiegel> #1 what domain name do we use?


GNOME Do plugin usage poll

I wanted to get an indication of which plugins everyone uses, so I made this poll.  Please vote for each plugin that you actively use.  Also, if you have any comments or suggestions, feel free to post below!

Which GNOME Do plugins do you use?

View Results

Loading ... Loading ...

RemindMe Plugin included in Do 0.8.2

Set small reminders with Do

Set small reminders with Do

With the recent launch of GNOME Do 0.8.2, a plugin I wrote called RemindMe was released as well.  This small plugin allows you to set small reminders for yourself, by simply typing the reminder and a time.  You can set two types of reminders, a count down timer, like in the example image.  Or you can set a reminder for a specific time.  I’ve tried to make the plugin be extremely flexible with the time strings, so both AM/PM and 24 hour times are accepted and spaces are ignored.

By default, all reminders are allowed to be snoozed.  When the time is up, you will be presented with a small notification containing your reminder, and a button to snooze.   You can also create reminders where snooze is not allowed.

For more information about how to use the plugin, please see the wiki page where I’ve described in detail how to use the plugin.

The beauty of descriptive error messages

Recently I’ve been doing some contracting work for a friend.  The project is pretty simple, but it gives me a reason to finally play with Mono’s sqlite database engine.  It’s actually really cool, and I’m very happy to say that it works extremely well on Windows + Visual Studio.  Normally my IDE of choice is MonoDevelop, but the project requires me to read information from an excel spreadsheet, which is not a very easy thing to do if you don’t actually have Microsoft Excel installed on your computer.  But anyways, it’s no problem, that’s where VirtualBox comes to the rescue.

But, that’s not really the point of this whole message.  The point of this entire post is to let people know how important it is to write descriptive error messages.  I was doing some stuff with a few records, and kept getting this exception:

SQL logic error or missing database

I was a bit confused by that.  I checked the actual database, and it was still there.  Sql logic error?  Where is the logic error in “INSERT INTO ….”?  After a bit of searching, I found out that sqlite actually uses this error message for just about everything!  The problem with my code is I was trying to insert records into the table that already had a record with the same primary key.  So, why can’t they write that instead of something so generic it could really mean just about anything?

It’s a happy day in GNOME-Do land! 0.8.0 Released!

Quite a pleasant sight for Do lovers!

Quite a pleasant sight for Do lovers!

Well, today’s finally the day;  After weeks of alpha testing and months hard work, GNOME Do 0.8.0 is released!  This is another monumental release for an amazingly useful application.  GNOME Do has increasingly become the cornerstone of my linux desktop experience.  From time to time I even catch myself stopping to think about how I would have done that if Do wasn’t just a “super-space” away.  Sufficed to say, “Longer than I care to think about”, is the answer I usually come to with regards to that question.

First of all, before I go any further, I’d just like to personally thank everyone involved with the project.  Everyone that’s helped in some minute way to make Do what it is today deserves thanks.  Some of these people include: David Siegel, who started Do as a college project, Jason Smith, who is largely responsible for “Docky”, Alex Launi, for some great work on the new plugin API and some of the most useful Do plugins around, Peng, for some more great plugins, and for helping me with some c# code I was writing for a plugin, and Cimi and Kalle for translations and much new insight.  There’s so many more people associated with this great application, it’s hard to thank everyone!

Much more information can be read here, the release notes on the Do website.

Now, it’d be wrong to talk about such a great application, and not show off any pretty pictures, so I’ll show some screenshots of Do here.  Some screenshots include things that I’m working on currently, and aren’t yet released.  Enjoy!


Another PulseAudio Gotcha — problems with hostnames, zeroconf, and RTP streams

I’m very happy to say that I’ve finally got my PulseAudio setup working.  Technically, it was “working” before, but I could never get any of the network functionality to work.  Using PADevChooser, I could “see” other hosts with PA installed under the server menu, but I could never move streams to other hosts across the networks.  Also, the RTP sink would never quite work.  On some computers it wouldn’t even loopback to the local speakers.  Something was obviously wrong.

Howto: Fix low system volume on Ubuntu 8.10 Intrepid

I recently installed Ubuntu 8.10 (the Intrepid Ibex) on my laptop.  I’m happy to say that the upgrade process from 8.04 to 8.10 went very well.  When I first installed 8.04 I created a separate partition for /home (there’s a great howto guide here).  This made the upgrade process so incredibly painless.

After spending some time reinstalling some programs, I discovered that PulseAudio finally worked on my laptop.  Even though Pulse was included in 8.04, it didn’t work on my laptop and I had to switch everything back to ALSA.  I played around with Pulse for a couple of minutes, setting everything up and then I started to notice something strange.  Even though my system volume was turned up to 100%, everything still seemed too quiet.  I tried changing the device in System > Preferences > Sound, but nothing seemed to help.

Running alsamixer in terminal only showed one mixer track — as it should if PulseAudio was enabled, and this read 100%.  After quite a bit of searching I found out what was wrong.  It turned out that one of the tracks (front) on the alsa hardware mixer was turned down to about 50%.  There’s no way to see this through the gui.  The only way to fix this is to run alsamixer in a terminal like this:

$ alsamixer -D hw:0

This will bring up a bunch of bars representing all of the mixer tracks available on the hardware device.  After turning all of these up to 100% and exiting alsamixer (press ESC), everything was working perfectly again.

Hopefully this will save someone stuck in a similar situation from a few hours of headbanging.

GNOME Do VirtualBox Plugin

I’ve been meaning to write about this for a while, but just now made the time to actually do it.  I’ve been following the development of GNOME Do for a while now.  After playing with it for a while and learning how fast and easily things can be done with GNOME Do, I decided that I should write a plugin for the project.

I’ve been using VirtualBox a lot recently, mostly for programming and testing applications on different platforms, without actually having to restart my laptop.  After I saw that there was no VirtualBox plugin, I thought that this would be the perfect plugin to write.

After a couple weeks I have built a nice, stable GNOME Do plugin for managing VirtualBox virtual machines.  The plugin allows GNOME Do to perform actions on your saved virtual machines.  The plugin will index the current state of your VM and only allow you to perform relevant actions as well.  For example, if you have a VM that’s currently powered off, the only actions Do will show you are to either turn on the VM or revert to a saved state (if there is one).  For VM’s that are currently running, you can pause, turn off, save state, or take a snapshot.  Dynamic modifier items also allow you to start a VM in either headless mode, or GUI mode.

I’ve made a small YouTube video showing the various actions that are exposed to GNOME Do through this plugin.