Archive for April, 2008

Upgrading

Ubuntu Hardy Heron is out! [ Features | Download ]

If I disappear for a while, something probably didn’t go smoothly. I almost expect a problem with my wireless drivers… :/

*click*

Update: As I anticipated, my desktop had (and is still having) some troubles with the wireless. I’m currently able to connect to the Internet… but barely. I have an RaLink 2500 PCI card. For the previous version of Ubuntu (Gutsy) I was using the CVS version of this driver, because the one included in Gutsy was broken. This driver is being combined with a few other drivers and being rewritten as a unified driver, the rt2x00 driver. The good news is that this unified driver have been included in the kernel and they’re actively developed. The bad news is that (for me) they barely function. I tried using the windows driver through ndiswrapper, but that didn’t seem to work. I tried compiling the old CVS drivers again, and they don’t seem to work any more. So I’m back to the included driver in Hardy that limps along….

On the laptop side of things, everything went peachy… until I decided to try the binary NVIDIA drivers again (to play with 3D things). That was utter fail, and I remembered why I disabled them. But then.. my sound stopped working….? huh?

Temptation to do a fresh install rising.

Update 2: I’m not going to hold my breath on my desktop’s connection, but it seems to be doing better. Also, I solved the sound problem on my laptop. And I set up my tablet. Whoo!

Watching and Reading

(Online) Comics I’ve been reading

  • Butternut Squash – Start at the beginning. Polished style. Crude humour. Hilarious. (Thanks for pointing this out, Jon!)
  • Kukuburi – Start at the beginning. Elaborate style. Adventure. Bit of a slow start. Actually the plot’s still unravelling, but the art is pretty and the story is getting interesting. (By the same guy as BNS.)
  • Octopus Pie – Start at the beginning. Well written. Funny. Simple style.
  • Basic Instructions – Start Anywhere. Sterile “instruction manual illustration” style. *gasp!* Kinda wordy, but has its moments.

Some fascinating TED videos I’ve been watching

Some books I’ve been reading

  • Python – Essential Reference by David Beasley: This book is exactly what it says; an essential reference. The first section is an incredibly concise introduction to Python and should be read by everyone. The rest is nice to scan over to see what’s available and keep as a reference. I’d compare it to the K&R C programming book. This book is meant for programmers.
  • The Design of Everyday Things by Donald Norman: Pretty much considered required reading material for usability folk. Well written, lots of examples, and often entertaining.
  • Character Design for Mobile Devices by NFGMan: I’ve looked at every beautiful, full-colour page. Some great pixel art and history in here. But I’ve read almost nothing. I didn’t really get it to read, I guess. Makes my desk look h-a-w-t.

Whistler

Been to Whistler? Check. (It’s about time!) And I must say, it was absolutely amazing…. I wasn’t prepared for the size of it – I knew it was big, but it is massive. I guess it’s hard to realize without actually being there. I must return many more times, next year. 🙂 If anybody else is interested, we should get an Edge card together and make it affordable. I went by myself because my friends are lame. Yeah, that’s right, you heard me. 😛

Crazy Spring Weather

A couple nights ago, on April 18 (!!!!), it started snowing in Deep Cove. This is NOT normal Spring weather! It’s even more strange because Deep Cove was the only place to get dumped on so bad, even compared to places right next to (and higher than) us! Anyway, it started as hail, then became snow, then became a mixture of rain and snow – which became really heavy. This new and sudden weight caused lots of trees and branches around us to fall. One of them fell onto our deck.

With all these trees falling down, the natural progression would be power outages. Along with the thunder and lightning, there were also a couple loud hums followed by the sky glowing an electric blue (an overloaded power transformer?). I couldn’t find any news items on this, yet – maybe on Monday. By this time, I was already soaking wet from using a handsaw to cut the branch fallen branch and shovelling the snow off our driveway, so I grabbed a flashlight and went for a walk. I frequently heard cracking as trees or branches were falling. The loud humming noise was coming from what I assume is a substation on the other side of Myrtle Park. Eventually, the power came back on, so I went home, had a hot shower, and went to sleep (was planning on heading to Whistler, bright and early).

It was a pretty random night. Blogged about it with Twitter a little.

Tweet

I signed up for Twitter. If you ever wanted to know what I had for breakfast, now you can! Yay. I also updated my blog’s sidebar with custom widgets; something I’ve been meaning to do for a while. I broke up the standard “Meta” widget into a Subscribe and an Admin/Login widget, and shoved the admin/login right below the Pages. I also made a replacement tag cloud widget that can specify the maximum number of tags to include… I’m not sure why the standard widget (which defaults to 45, and gets quite big) wasn’t created with that option. Also, taking Twitter’s motto to heart, I added my new Twitter feed as “Sutff I’m Doing” using a standard RSS widget. I might have to modify that widget to strip off my username from every post, though… it bothers me. And I should do something with the search….. I just haven’t figured out what. Anyway, I think it looks much nicer now.

I’m sure widgets probably already exist to do what I want, but I wanted to play around with WordPress and PHP a little. ^.^ Being neither a WordPress nor a PHP person, How to Create WordPress Widgets and WordPress Widgets with Control Panels were very helpful.

Open Web Vancouver 2008

I’m going. If you see me there, please say ‘hi’ and offer me a job. 😉 (Preferably, one that requires a brain.) I look like this (when playing video poker in Vegas):

Oh! It was a hard choice, but I purchased a pyrate shirt. Yeah. 🙂

Snakes in an Office

I’ve mentioned before that my job (whose contract is almost up) doesn’t require programming. But that doesn’t mean that programming is not useful. When I first got my laptop, I asked the tech guy about the process of installing new software. It went something like this:

  1. Write a formal request for the software you would like installed and submit it to the tech support department.
  2. Wait for review and approval.
  3. Wait for them to install it.

A pretty standard (and painful) process in large organizations, unfortunately. I asked him, “So if I want to install Python I just submit one of these requests?”

Insead of answering my question, he asked me one in return. “What would you want to install Python for?!” I think he actually spat and curled his lips at the thought.

“I don’t know… writing basic scripts.” I really didn’t know what at the time, but I knew it would be useful. And I wanted to use it.

He proceeded to look at me as if I had suggested bathing in tomato sauce as a remedy for headaches.

So I was under the impression that I couldn’t install new software and didn’t want to bother going through all that formal cock holding; I went without my Firefox, my Python. I’ve since discovered that I can install things. (Sorta.)

Anyway, I was using Python at work today, and I just love it. Previously, I had been fumbling around with VBA in Excel and Word. I had a button set up in Word that would run a macro/VBA to export the form’s contents to a CSV file in a particular folder. I could open a Word document anywhere, press the export button, and the CSV would be created/overwritten in that folder. Then I had a button set up in Excel to run a macro that would import all CSV files in that folder as rows in the spreadsheet. (This was actually really useful, and if you have to deal with a lot of similar tasks in Office, use VBA and macros.) There was an inconsistency in the number of rows I had in my spreadsheet and the number of docs I had… so I wanted to compare the exported CSVs with the available DOCs.

Enter, the Python interpreter (great for little tasks and as a substitute shell on windows).

The word documents were in a bunch of different folders (for various reasons) but once I had a variable, originals, containing a list of all the documents, and a variable, exported, containing a list of all the CSV, files, I was rolling.


>>> len(originals), len(exported)
(198,200) # Hmmmm, looks like a job for sets!
>>> s1,s2 = (set(originals), set(exported))
>>> len(s1.difference(s2))
398
>>> # What the...
...
>>> originals
['doc1.doc', 'doc2.doc', ...., 'doc200.doc']
>>> exported
['doc1.txt', 'doc2.txt', ..., 'doc200.txt']
>>> # Oh yeah, different extensions. Duh...
... # Bus leaves SOON!
... # Need to quickly strip the extensions and rebuild the sets....
...
>>> s1,s2 = ( set([s[:-4] for s in s1]), set([s[:-4] for s in s2]) )
>>> s1
['doc1', 'doc2', ... , 'doc200']
>>> # Cool
...
>>> s1.difference(s2)
(['doc38', 'doc72'])

AHA!! Caught my bus. Python is great. 😀