Sunday, May 04, 2008

Young @ Heart

Great flick: http://www.foxsearchlight.com/youngatheart/

The description "comedic tearjerker" fits. A brief review from the Sacramento News and Review's Jim Lane:
"British filmmaker Stephen Walker documents the rehearsal and performance process of the Young@Heart Chorus, a group of 24 seniors (average age 80) who tour the world with a show made up of cover versions of songs by such groups as the Clash (“Should I Stay Or Should I Go?”), the Ramones (“I Wanna Be Sedated”), Coldplay, Talking Heads and others. At first there’s an uneasy sense that Walker may be patronizing these old folks, but no—he plainly loves the group and its patient director Bob Cilman, and by the time they’re all through with us, we do, too. The movie is joyous and brimming with life, but of course, given the subject, the shadow of the Grim Reaper is never far out of camera range, and Walker shows us how they handle that, as well as how they handle the music of Allen Toussaint or Sonic Youth."
At the end of the movie, the credits report that they want to include an emotional performance of U2's One but that they can't gotten permission from the band.

Errata


Hats off to Philippe Deschamp (merci) of the French National Institute for Research in Computer Science and Control and Igor Krassikov (Дякую) for their work on errata submissions to the latest Dragon Book.

I found an error with the book (page 528) and at first I thought the errata failed to list it--but it turns out I failed to see the link to the original errata list, which contains quite a few errors--mostly errors involving missing semi-colons, braces, extra parenthesis, and so forth.

It turns out that editions printed after Spring 2008 no longer contain the bugs on the first errata sheet--one reason that purchasing a new book might make sense, as it took me some time to go through and annotate my copy.

UPDATE: "Claudio on comp.compilers writes "But I would wait for a reprint. The first print of the 2nd edition has way too many mistakes." Yes.

UPDATE: Dr. Ullman, a co-author of the book, granted me credit for reporting an optimization error in Figure 9.9, page 594. Another student identified the error during class--I identified the photocopied handout as the figure from the book, verified the error failed to exist on the errata, and followed-up with Dr. Ullman. In fairness to the identifier, I'm attempting to figure out their name(s) so they might receive due credit.

Saturday, May 03, 2008

Agent Ribbons

Purchased Sacramento-based indie duo Agent Ribbons' first album, "On Time Travel and Romance" this afternoon from R5 Records (former site of Tower Records). Low-fi and creative, we both liked it.

Monday, April 28, 2008

svn commands

Rebuilding my repository tonight on KUbuntu. So I don't forget:

Porting the repository:
  1. svnadmin dump .subversion-repository > repo.dump
  2. cp repo.dump ~
  3. cd ~
  4. svnadmin create .subversion-repository
  5. svnadmin load .subversion-repository <>
To check out the project:
  1. cd ~/src
  2. svn co file:///home/schultkl/.subversion-repository/csc-251

Radio Songs

From somafm.com's Indip Pop Rocks!:
Romford, London-born Imogen Heap's "Closing In" from her 2005 album "Speak for Yourself" on the Megaphonic/RCA/Victor/Sony BMG labels.

New York City-based Asobi Seksu's "Mizu Asobi" from their 2005 album "Citrus" on the Friendly Fire label.

Now defunct Ruston, Louisiana-based Neutral Milk Hotel's "Holland, 1945" from their 1998 album In the "Aeroplane Over the Sea" on the Merge/Blue Rose labels. Great vocals.

OMG

Like, the original OMG?


Note: proper Valspeak ends with rising intonation.

Sunday, April 27, 2008

Tree Container Library and Wubi

Initial compile of the Tree Container Library (TCL, regrettably, for short) fails--I'm running a version of Debian via QEMU that's a bit behind the curve, with gcc 3.3.5.

I hosed my apt repository during a failed upgrade a few months ago (it wanted to upgrade the kernel, I canceled, corruption ensues). So I thought I'd upgrade--I'm testing out Wubi, an installer that works in a similar fashion to QEMU, in that it allocates a block of space for an Ubuntu install (about 7GB). The nice part is that you can dual-boot into either one, and uninstall it like an app if you want.

UPDATE: Never mind--while waiting for Wubi I discovered an alternate tree data class (thanks Kasper Peeters, I appreciate your contribution)--and it's GPL'd.

Saturday, April 26, 2008

Story Arcs

What might a movie about our lives look like?

The thought struck me yesterday as I walked from work to my light-rail station stop. At an intersection, I noticed a trio of teenagers on the opposite side of the street. In the late afternoon sun, one of them had a look of impatience on their face as they waited for the light to change. Perhaps I felt the same emotion--I suddenly felt curiosity about their life, where they came from, where they wanted to go, what lay in store for them in the future--their entire story arc.

The thought stayed with me after passing them and on the journey home--all of the people around me have stories to tell, and stories yet to tell.

I feel the same curiosity when I compare the experiences of my co-workers to my own--where we lived geographically, where we were in our lives. It reminds me of the time I overheard a high-school student wonder aloud where their as-yet-unmet future spouse was, and what he was doing. It's the same thing.

Stepping back from my own life and looking at the big picture helps me evaluate whether I'm where I want to be, and if not, the ability to think about how to get to where I want to be. Looking at others' lives in the same way helps me feel compassion for the burdens that everyone else shoulders.

Monday, April 21, 2008

Hai World

As much as I enjoy learning how to write a compiler for a subset of the Java language, I think I might enjoy writing a LOLCODE compiler more.

Ken Luttke Was Here

Some time ago, Ken Luttke inscribed the message "Ken Luttke was here" into a section of concrete sidewalk I step over on my daily commute. Today it remains, cracked and worn.

What childhood inscriptions might remain as markers of your youth?

Friday, April 18, 2008

Tuesday, April 08, 2008

Excel Saga



Dawn and I currently watch snippets of episodes of Excel Saga when we can--which as of late means during breakfast and maybe dinner.

The above picture depicts Menchi, the pet dog of the eponymous character--Menchi doubles as her emergency food supply (thankfully never yet used), which is why she's so happy to escape when she can.

Weird and silly, absurdist, full of corny drama and cartoon-physics, the theme songs have become a recurring theme in my head this week.

UPDATE, 2008-04-27: Finished it last night, including the "legendary" 26th episode. One of my favorite quotes from the series: "Sounds fishy!" as she interrupts Lord Ilpallazzo's evil half's monologue, then continues to pummel it.





And of course, the Japanese voices with subtitles for the win--no comparison, although the English voices come across acceptably.

Sphygmomanometer

Today's word is: sphygmomanometer.

I enjoyed learning how to use it--pump up to 180 mm Hg, then release pressure slowly until you hear the heart beat in the stethoscope (systolic pressure reading), then continue releasing slowly until you no longer hear the heartbeat (diastolic pressure reading).

Another mystery dispelled.

We're both healthy at ~120/80.

Sunday, April 06, 2008

Flex and Bison

Saturday afternoon and evening I read the 42 pages of the Flex manual.

Today all day I read 82 pages (of 142) of the Bison manual.

It's all making sense.

Tuesday, April 01, 2008

Earth Hour

NPR covered reactions to Earth Hour 2008 on Monday--the first exposure I received to it. We didn't participate this year, but hope to next year if we remember: http://en.wikipedia.org/wiki/Earth_Hour

It sounds pretty cool--Sacramento's not on the list of supporting cities, regrettably.

Monday, March 31, 2008

Healing Hands

Dry air kills my hands--scratches and cracks, and on top of that our cats love to inflict wounds with tooth and claw.

To combat this I discovered that adding moisturizer while my hands are wet works 10x better than adding it when they're dry, sealing in the moisture.

Sunday, March 30, 2008

Radio Songs

Courtesy SomaFM.com:

Saturday, March 29, 2008

Paul Mitchell Partner School

The Winter 2007 10th Anniversary issue of Cut & Dry, some issue of Power and Motor Yacht, and W magazine (fashion)--I found them all in the waiting area of the Sacramento Paul Mitchell Partner School today.

I read a story about a guy who's trying to care about global warming even though he's candid about the fact that he puts hundreds of gallons of fossil fuels into his yacht each year. Another story featured a guy who forgot to align his gears or something and he had to run down to the lower helm but he had forgot to take off the sunscreens from his windows so he couldn't see out and by the way he's adrift and the motor's not working and he's panicking that he's going to hit some Krogen super-yacht in the bay--but he doesn't, because he regains control and makes his way to the fuel dock. The amount of luxury in the yachts for sale blew me away--even though I imagine one might get the same experience retro-fitting a hard-shell camper with luxury gear and installing a hydraulic rocker to simulate the wave-motion. Some of the multiple deck boats had helicopter landing pads--looked pretty iffy to me, landing on a bit of deck the size of a driveway, to tell the truth. They also featured a new yacht-storage facility proposal called Hercules that seemed pretty cool--park your mega-yacht in a temperature and humidity-controlled dry-storage room. I guess if one has the $27 million to spend on a yacht that big, one has enough dough to demand the best storage too.

Most of the magazines featured ads on every facing page--fine by me given I had hours of time to kill. I think the funniest ad I saw was in the yacht mag, with two people sunbathing on the back of a rushing boat--my thought was, "Who's running the boat?"

The Cut & Dry magazine is the quarterly Paul Mitchell mag shipped to Partner Schools and afiliated salons around the world. John Paul DeJoria bills himself in the back as "model philanthropist and expert in the field of helping others." I liked that.

It also listed Linda Flowers' answer to the question, "What's on your iPod's Most Played List? John Legend, The Stranglers, Talking Heads, Maroon Five, Neil Diamond, Jack Johnson and Seals & Croft, to name a few." I wasn't familiar with a few of them so I thought I'd write them down.

The final bit I noted from Cut & Dry stated, "A wise man once said, 'You don't want to die with your secret.'"

What's your secret?

Saturday, March 22, 2008

Anime Runs


Dawn and I have undertaken a run through the anime series Chobits and Noir. The video store which supplied the first episodes in the series lacks the final volumes--so we have to decide whether we want to purchase the final volumes or not.

I like Noir's music--I discovered the series when a Linux installfest installer left a copy of the soundtrack on my PC. The series does suffer a bit from what I call the Airwolf-syndrome (for example, here)--that is, when the music swells, we know our heroes will face a battle and they'll eventually triumph. At least, so far.

Padding out shows happens in any enterprise, it seems--Noir handles it frequently by re-hashing scenes of Mireille's discovery of the murder of her parents. In Chobits, I haven't seen it so much--although the latest episode featured a pop single which padded out the cleaning scene.

Sunday, March 16, 2008

Six Tips For Converting Regular Expressions to Minimized Deterministic Finite Automatons

Here are a few tips to make converting a
  1. regular expression->
  2. non-deterministic finite automaton (NFA) with epsilon transitions->
  3. NFA without epsilon transitions->
  4. deterministic finite automaton (DFA)->
  5. minimized DFA
a bit easier:
  1. Back-transfer accepting states all the way back--don't overlook any epsilon transitions
  2. Verify the NFA works as intended at each step of the process--if something seems amiss, it probably is.
  3. Maintaining neatness and order for lines between states helps minimize confusion.
  4. Grid/graph paper helps with drawing straight lines and uniform circles.
  5. Remove states inaccessible from the Start state only after eliminating all epsilon transitions to and from them.
  6. Use a mechanical pencil and a slab eraser to correct the mistakes
I made every mistake in the book this evening working through the transformation of the regular expression (a+ba)*b* to a minimized DFA--but I don't mind, because my studies represent the time I want to make the mistakes--not during my upcoming midterm.

Hope this helps in some small way.

Friday, March 14, 2008

Radio Songs

Heard this afternoon driving north on a windy, light-dappled off of towering clouds sort of day:
Franklin, Tennessee-based Paramore's "Born for This" from their 2007 album Riot! on the Fueled by Ramen and Atlantic Records label.

Huntington Beach-based The Aquabats!' "Lobster Bucket" from their 1997 album "The Fury of the Aquabats!" on the Goldenvoice Recordings.

Thursday, March 06, 2008

Inter-Public Transit Google Maps

Google maps can't seem to string together public transit systems, regrettably. I keyed in a trip from downtown to IKEA to see what comes up and Google dumps me north of the Sacramento River and expects me to walk 53 minutes the rest of the way (across the river):

http://maps.google.com/maps?f=d&hl=en&geocode=&saddr=5th+%26+J+St,+Sacramento,+CA+95814&daddr=IKEA+west+sacramneto&date=3%2F6%2F08&time=9:59pm&ttype=dep&sll=38.603457,-121.520634&sspn=0.063051,0.10231&dirflg=r&ie=UTF8&ll=38.593529,-121.52441&spn=0.063059,0.10231&t=h&z=13&start=0

The thing is, both Sacramento Regional Transit and YOLOBUS post their transit data online:

http://iportal.sacrt.com/gtfs/

Without Google Transit I'd have never gotten onboard so readily with taking light rail and buses to and from school. I'm wondering who else out there (and how many) will also come to that realization. My car largely sits idle now.

The SacRT web site has a handy calculator that calculates rough costs savings. For Dawn and I, it's about $3,500 before parking fees. Including the $15/day parking, it comes out to about $7,000 in savings annually, including the cost of monthly RT passes.

Wednesday, March 05, 2008

Monday, March 03, 2008

VIM Color Schemes

As mentioned previously I set my Putty settings to a dark green background with light green foreground.

It's a personal preference sort of thing, but my favorite default VIM color scheme at present is Koehler. Unfortunately, stock Koehler uses darkblue, making text invisible against a dark green background.

To change this, edit file (as root or equivalent):
  • Backup the file: cp /usr/share/vim/vim63/colors/koehler.vim /usr/share/vim/vim63/colors/koehler.vim.bak
  • vim /usr/share/vim/vim63/colors/koehler.vim
  • Run vim command ":%sdarkblue/lightblue/g"
All's good.

Sunday, March 02, 2008

GRE

I'll be taking the GRE this summer to qualify for grad school next spring. As it so happens, Sac State doesn't set a minimum score requirement--they use it as a comparison to the average GRE score of all applicants to determine whether or not to accept the applicant.

Sunday, February 24, 2008

subversion propset automation via auto-props

Found it:

Link: http://svnbook.red-bean.com/en/1.1/ch07.html#svn-ch-7-sect-1.3.2

config on my host currently reads:
...
enable-auto-props = yes

### Section for configuring automatic properties.
### The format of the entries is:
### file-name-pattern = propname[=value][;propname[=value]...]
### The file-name-pattern can contain wildcards (such as '*' and
### '?'). All entries which match will be applied to the file.
### Note that auto-props functionality must be enabled, which
### is typically done by setting the 'enable-auto-props' option.
[auto-props]
*.c = svn:eol-style=native;svn:keywords=Id Date LastChangedDate HeadURL URL Author LastChangedBy Rev Revision
*.cpp = svn:eol-style=native;svn:keywords=Id Date LastChangedDate HeadURL URL Author LastChangedBy Rev Revision
*.h = svn:eol-style=native;svn:keywords=Id Date LastChangedDate HeadURL URL Author LastChangedBy Rev Revision
*.dsp = svn:eol-style=CRLF;svn:keywords=Id Date LastChangedDate HeadURL URL Author LastChangedBy Rev Revision
*.dsw = svn:eol-style=CRLF;svn:keywords=Id Date LastChangedDate HeadURL URL Author LastChangedBy Rev Revision
*.sh = svn:eol-style=native;svn:executable;svn:keywords=Id Date LastChangedDate HeadURL URL Author LastChangedBy Rev Revision
*.txt = svn:eol-style=native;svn:keywords=Id Date LastChangedDate HeadURL URL Author LastChangedBy Rev Revision
*.png = svn:mime-type=image/png
*.jpg = svn:mime-type=image/jpeg
Makefile = svn:eol-style=native;svn:keywords=Id Date LastChangedDate HeadURL URL Author LastChangedBy Rev Revision
Notes:
  • Quotes in file "config" prevented subversion from updating property Id in my test file. For example, this does not work:
    • *.cpp = svn:eol-style=native;svn:keywords="Id ..."
  • Whitespace confuses subversion propset application. For example:
    • This works:
      • $Id$
      • $Id:$
    • This does not work (note the whitespace):
      • $Id : $
  • Steps I applied to test:
    • Add this example header to a dummy file (new.cpp):
      /*******************************************************************************
      * #
      * # Author:
      author
      * #
      * # $Id: $
      * #
      * # *****************************************************************************/
    • svn add new.cpp
      • A new.cpp
    • svn proplist --verbose new.cpp
      • Properties on 'new.cpp':
        svn:keywords : Id Date LastChangedDate HeadURL URL Author LastChangedBy Rev Revision
        svn:eol-style : native
    • svn commit new.cpp -m "Initial revision"
      • Replacing new.cpp
        Transmitting file data .
        Committed revision 11.
    • cat new.cpp
      • /*******************************************************************************
        * #
        * # Author: author
        * #
        * # $Id: new.cpp 11 2008-02-24 19:26:30Z user $
        * #
        * # *****************************************************************************/
      • Italicized items above represent environment-specific text

Friday, February 15, 2008

Level 77


It gets exponentially longer with each level. The top PQ'ers are up to level 92.

This is the only computer game I "play" these days.

Link: http://progressquest.com

Friday Cat Blogging


Kernels once rolled here;
Unpopped, mesmerizing sounds;
Put them back in, please?

Hired

I started a new full-time job on Monday, Feb 4.

Today, I learned there's a form I need to fill out if I want to bring an electric fan into work. A fan! My high hopes for bringing in a new development rig and a compact fridge have met with similar violent ends.

I'm glad I didn't ask before swapping out the stock Cool White fluorescent tubes for Full Spectrum tubes.

On the up side, I'm helping low-income kids, and that feels good.

Shadows

Walking across campus from my compiler class on Thursday, I was struck by the number of shadows I cast as I walked--seven by my count, and perhaps more. I've never noticed before, but it's so obvious. As I walked, they changed direction and opaqueness, as the angle and distance from the light sources changed. It was quiet, save the occasional vehicle, and I felt peaceful.

Tuesday, February 12, 2008

Sealable Plastic Badge Holder

The past two jobs I've worked at require badges (save the jokes, please) for identification.

Stock plastic badge holders provided with the badge open at the top to allow the RFID card to slide in. The unsealable opening at the top eventually lets in dust, dirt, and liquids. The badge ends up looking beat up after a year or two. Replacing the plastic holder helps, but it's a hassle.

It turns out there's a simple solution--purchase a pack of sealable badge holders from an office-supply store. For example, Office Depot, or intuitively enough, badgeholder.com.

Sunday, February 10, 2008

Canon MP160 + Wireless Multifunction Print Server

Wireless multifunction print servers have a few pitfalls--here's what I've been through.

I own a Canon Pixma MP160 multifunction USB 2.0 printer. Originally, I connected it to my laptop's docking station using a GigaWare four-port USB 2.0 hub and shared it on the network from my laptop. The downsides of this configuration:
  • Undocking the laptop removes the printer from the network.
  • Once undocked, other laptops can still print, but they have to have a separate printer driver installed for local rather than remote printing, and they obviously have to hoof it over to the printer.
  • Desktops that rely on the shared printer are out-of-luck.
Obviously a non-optimal solution. A wireless print server, theoretically, would mean all wireless-enabled desktops and laptops can print from wherever they are in the house.

The seed of this idea has been in my head for several months. An opportunity to remedy the situation presented itself while I was shopping at a local tech store two weeks ago. On impulse (in hindsight, a regrettable decision) I purchased a Linksys Wireless G print server. Getting home, I discovered in my ignorance that print server manufacturers typically break down print servers into two sets--those that support multifunction printers and those that don't. The Linksys Wireless G print server doesn't support multifunction printers. Above and beyond that limitation, the installation and configuration process of the Linksys Wireless G proved frustrating:
  • The print server web server crashes if you begin navigating from the home page. To avoid this bug, one has to start navigating the print server's web server from http://*ip*/ps_stat.htm. That's scary quality control.
  • Without knowing this trick, even though you set the local wireless SSID security key, it doesn't take--so it's even worse from the user's point of view, since they think they did everything right.
After researching this on the internet, I decided that I wasn't happy with the bugs and the loss of multifunction printing support for the price, and returned it.

Before I did that, I decided to research wireless multifunction print servers further. My local tech store sells print servers from Hawking, D-Link, Linksys, AirLink, and TrendWare. I ignored the multifunction version from Linksys and decided after reading reviews online that the D-Link Rangebooster G Multifunction print server represented the best bet. I knew from reading their web site that the Canon MP160 wasn't listed as supported under the FAQ, but I decided to take a risk since they only had reviewed HP and Epson. This represented my second learning opportunity.

Last night I hooked it up, and after a quick call to tech support (it needed a static IP to work), got it working. D-Link tech support confirmed that it doesn't work with the MP160 multifunction printer, however. Other than it's failure to work with DHCP, the D-Link seemed like a quality product.

I finally got the idea to just call Canon and ask them point-blank what works with their printers. It turns out that they sell a model called the Silex C-6700WG that works with the Canon printers. Unfortunately, it's $100. *sigh* I guess this is what is meant by vendor lock-in. I haven't decided whether or not to buy it, since in the future I'm hoping to upgrade to a color laser printer

So why does it seem so hard to get printing right for multifunction printers? The answer seems to be (from TrendNet's now defunct page):
Printers that host multiple functions, such as faxing and scanning, use different communication standards to complete respective tasks. Traditional print servers are unable to interface with multi-function printers due to the use of different communication standards within one device. The result is that many multi-function printers are not currently linked to a home or office network.
So there you have it--multifunction print servers need to be fluent in fax, scanner, copier and printer standards--and apparently the communication pipeline of printer-driver<->print-server<->printer is pretty fragile.

Saturday, February 09, 2008

1,415

My spam folder currently contains 1,415 spam e-mails, all received in the last 30 days.

On average:
  • 354 per week
  • 47 per day
  • 2 per hour
To get silly:
  • 0.033 per minute
  • 0.00055 per second
I'm curious how typical this is....

Saturday, February 02, 2008

Friday, February 01, 2008

Radio Songs

Heard on the radio:
Vacaville, CA-based Papa Roach's "...To Be Loved" from their 2006 album The Paramour Sessions on the Geffen Records label. Video.

Chamorro Pride

Saw this phrase on a license-plate frame yesterday on the way to class.

Apparently, the Chamorro are the indigenous people of the Mariana Islands, which include the American territory of Guam and the United States Commonwealth of the Northern Mariana Islands in Micronesia.

Friday, January 11, 2008

Friday Cat Blogging

Putty Settings

Bright green text on a dark-green background with a nice fixed-width six-point text:
  • Font: Terminal, 6-point
  • Default Foreground Color="0,255,0"
  • Default Bold Foreground="255,255,255"
  • Default Background="0,55,0"
  • Default Bold Background="85,85,85"
  • Lines of scrollback: 9999
  • Rows: 100
  • Columns: 100
UPDATE: On KUbuntu, I'm using font Monospace Regular 10 pt.

Friday, December 21, 2007

Saturday, December 15, 2007

Yoshi


This evening we welcomed a second kitten into our home. Yoshi is a 10-week old marmalade tabby we adopted from Happy Tails. Yoshi is a polydactyl cat, which means he has more than the usual number of toes on both of his front paws due to a cat body type genetic mutation. The more than usual number of toes are harmless.

Our resident kitten, eight-month-old Yuki, hasn't fully accepted Yoshi yet. He growls and hisses, which is normal (according to the information sheet given to us).

UPDATE: All seems well--after watching our neighbor play with Yoshi for some time, Yuki's temperament seems to have transformed from defensive aggressiveness to playful. They chased each other all over the house, with Yoshi finally hiding under our bed to take a nap. Yoshi's playfulness seemed unphased by Yuki's hissing and growling, like a branch bending in the wind and then springing back. It seems obvious to us by his reaction that Yuki's never been in a home with other cats. His origin remains a mystery, but it's equally obvious that he was raised in a loving home.

UPDATE: Day Two--Yuki continues to hiss, one or two almost inaudible growls. Yuki wants to play--he lies on his back and looks at Yoshi.

UPDATE: Day Three--Yuki continues to hiss at times, then hides from Yoshi in a large box, in a drawer, or behind a curtain. We think he's overwhelmed with Yoshi's energy and needs some peace and safety to de-stress. This evening they played together and they're both sitting with us in the office sleeping.

Friday, December 14, 2007

Tuesday, December 11, 2007

By Joel Hodgson

Cruising the Flickr account of an ILM'er 90 minutes to the west who got a chance to see the worldwide premier of Cinematic Titanic and shoot pics of the cast party afterward, I found this image:



The hilarious bit about Joel's autograph on the book is that Mike Nelson wrote the book and seems to point to the words "By Joel Hodgson." I'm assuming Joel didn't write that--or did he?

California State Personnel Board Written Exam: Associate Programmer Analyst (Specialist)

This afternoon, on my way to the California State Personnel Board Testing Center to take the written exam for the Associate Programmer Analyst (Specialist) position, I watched ice fly off the top of a semi-trailer heading westward toward San Francisco. The sheets of ice, formed during transport through the snow-covered Sierra Nevada mountains, had melted in the warm Central Valley sunshine. Now, with every incline or bump, the sheets broke off, arced into the 65-mph winds, then dashed against the road, shattering into thousands of sparkling shards that rattled in my car's wheel wells as I drove over them. Vehicles in adjoining lanes cautiously passed the trailer as best they could.

I managed to avoid the ice and arrive early, parking at the Westfield Plaza East parking garage, eating a light lunch, reading a book to pass the time, and then walking to the Center. I waited outside with 20 other applicants as maintenance staff cleaned windows. At 12:00, a proctor unlocked the door and we filed in, taking our assigned computers (Dell Optiplex GX260's). At precisely 12:15, the proctor began reading the instructions for the exam. At 12:23, we began the three-hour computer-based, multiple-choice test.

The test consisted of 100 questions divided into three sections, each question paired with four multiple-choice answers. The software is a kiosk-style (menu-less) web browser window. The first section discussed IT questions; the second project management and database questions; the third logic and situational questions. You may check a box next to each question to indicate you'd like to review it after completing. At the end of the exam, the software generates links to these questions and those the candidate left blank. A candidate can submit the test for instant grading at any time.

Test topics included: PERT charts, Gantt charts, critical paths, flat files, primary & foreign keys, logic puzzles, algorithm-evaluation, situational questions, a customer-service question, number sequence puzzles, logical database views, batch processing, real-time processing, parallel processing, multitasking, transaction processing, transactions, records, tables, logical operators, relational operators, system development life cycle models (for example, waterfall, spiral), and so forth, and so forth.

Observations:
  • The software provides a final grade--no answers, no statistics. You pass or you fail (70% cut-off).
  • Don't be late--the proctor turned away one candidate who arrived at 12:30 due to parking problems.
  • The proctor has no experience with the test material to clarify questions.
  • Cameras record the candidates. No cheating.
  • The proctor allowed me to keep a closed-container of water and a Clif Bar on the desk.
  • No keyboard necessary--you're instructed to set it on top of the computer case
  • You'll need the candidate ID number issued to you to log-in to the software.
  • Overwhelmingly male population. Out of 20, perhaps 5 women.
  • One tip: Spinners at the Westfield Plaza Mall near the Center offers parking validation if you buy a coffee.
  • I finished in approximately two hours, and spent the remaining 60 minutes reviewing questions I failed to answer or marked for review. I then went through the entire test again one final time.
  • The software presents a one-page candidate satisfaction survey at the end to obtain feedback prior to showing your grade.
  • The exam software worked well--no bugs.
Opinions/reactions:
  • A question on flat-files? Domo arigato Mr. Roboto! Take me back to the 80's.
  • Coming from a computer science background I felt rusty on some of the business analyst terminology.
  • The design of the web exam software seems like a throwback to the HTML of the mid-nineties. Solidly functional, but dated.
  • I mis-interpreted the equality operator ('=') as the assignment operator and botched a question. x_x Too much reading of C code.
  • I felt disappointment at not having the option to see which questions I missed--I'd appreciate more transparency. A few questions I had down to one of two choices and I'd like to know what the answers were. Especially the answers to the situational questions, which seem subjective. A call to the Exam Questions line (916-653-1705) revealed, It's a standard exam and we don't allow answer inspections for that.
  • The URL http://www.spb.ca.gov/employment/eligible_list_disclosure.cfm on the printed results sheet given to me after the test doesn't work. The URL appears to be http://www.spb.ca.gov/jobs/exams/eligible_list_disclosure.htm.
The State ranks people based on their scores, and hires primarily out of the top three ranks.

To my surprise, I discovered that due to extra points given to veterans or career state employees. The percentages needed to reach the top two ranks are 110% and 105%! Third-rank is 100%, with each rank decreasing by 5%--fourth rank, 95%, fifth rank, 90%, and so forth. x_xI didn't achieve the perfect score necessary to reach third rank, but I'm quite content with the result I achieved.

It appears upon review that the printed results sheet given to me after the test contains a table which indicates rank one and two as 110% and 105%, but in reality rank one seems to be 95%+, rank two seems to be 90%+, and rank three 85%+.

Wishing you success on the exam.

Monday, December 10, 2007

Quidquid latine dictum sit, altum viditur

Another signature seen on comp.programming this evening:
Quidquid latine dictum sit, altum viditur
Translation: Anything in Latin sounds profound

1-800-DEV-NULL

E-mail signature seen on comp.programming:
How's my programming?
Call: 1-800-DEV-NULL

Friday, December 07, 2007

Friday Cat Blogging


Yuki's ears perk up
Birds sing sweetly from high above
Will they come to earth?

David Gustafson, Artist

David Gustafson, one of my former house-mates, has created a new web site to showcase his art:

http://davidgustafsonartist.com/

A long-time resident of Sacramento, California, David moved to Portland, Oregon in early 2007.

I felt a tinge of nostalgia seeing familiar objects in his new residence--a wall hanging, pottery, rugs, and a fern consistently on its last legs of life.

Wishing you success and peace, David.

Thursday, December 06, 2007

DawnHustig.surname();

In the event that we get married in the future, Dawn and I have discussed what to do about surnames. Here's a solution that we came up which randomizes which surname to use:

char * DawnHustigSurname::getSurname(void)
{
  int coin_flip=rand()%2;
  int surnameSize=0;
  delete surname;
  if (coin_flip)
  {
    surnameSize=sizeof("Hustig");
    surname = new char[surnameSize+1];
    strncpy(surname,"Hustig",surnameSize);
    surname[surnameSize]="\0";
  }
  else
  {
    surnameSize=sizeof("Schultz");
    surname = new char[surnameSize+1];
    strncpy(surname,"Schultz",surnameSize);
    surname[surnameSize]="\0";
  }
  return surname;
}

Signature:
  DawnHustig.getSurname();

Silliness aside, the dilemma we face is that Hustig isn't a very common last name, so there's some desire on Dawn's part to retain it. No existing solutions that I've seen for retaining surnames seems to work once one takes into consideration what children will do when they marry. For example, it might put a child with surname Schultz-Hustig in a bind when they marry--which surname to retain? People seem to accept the existing system because it's good enough, even though it has flaws (in my opinion).

Saturday, December 01, 2007

California Resident

Dawn submitted paperwork at American River College a few weeks back declaring resident status, and yesterday she signed up for Spring classes. Total charge for 14 credits? $250. :)

Friday, November 30, 2007

Friday Cat Blogging



Soft whispers of peace
The cat, long soundly asleep
Dreams of a new friend

Monday, November 26, 2007

Ututo

My first blog post from Ututo.

¡Mi primer poste del blog de Ututo! Woo-hoo!

Bison Americanus


An inside joke. Tim Cummings, this one's for you, wherever you are.

Saturday, November 24, 2007

Radio Song

Decatur, Illinois-born Alison Kraus's Sister Rosetta Goes Before Us from her 2007 album Raising Sand (with Robert Plant) on the Rounder Records label. Video.

Thursday, November 22, 2007

Meat-Free Haggis!

I've often felt skeptical about foods marketed to vegetarians that look and taste like meat, but this one takes the cake--meat-free haggis! Truth truly is stranger than fiction.

Sacramento-Area Restaurants Open on Thanksgiving

Dawn and I have attended these restaurants' Thanksgiving-day meals in the past:
Other possibilities we haven't visited:
Sacramento Magazine's picks.

Happy Thanksgiving!

Wednesday, November 21, 2007

Fixing P1443


Above: 1996 Ford Escort 1.9L Evaporative Emissions Purge Valve

Several small wins today culminated in a successful replacement of a part that may or may not have contributed to my car exhibiting the P1443 Check Engine code:
  • Found the service information for the $25 purge valve part that I researched in my car's service manual. The Helm service manual contains 3,000 pages--it's 3 inches thick and measures a foot on each side. Ford organizes their service manual index by sub-system (for example, Engine, Electrical, Exhaust), which rules out a simple alphabetical search. I finally found it under the Evaporative Emissions (EVAP) section, which makes sense, retrospectively.
  • Purchased the part: Brought the service manual with me to NAPA Auto Parts and showed them the part. It turns out I needn't have done that--they have a computer that can look up parts based on the car's year/make/model/engine. They had the appropriate part in stock and I purchased it for $26.
  • Found the location of the part in the engine compartment. It turns out that the service information for the purge valve states that the part lies beneath another part, the engine air cleaner part. It doesn't list what page the engine air cleaner part is on though. So it's back to the index--is engine air cleaner under Engine? No. Several iterations of this later I discover it under another sub-system whose name escapes me. Perfect. I can't see the part yet, but I know it's under the box containing the air filter, something I have some experience with.
  • Removed the engine air cleaner part. The engine air cleaner connects to the chassis with two bolts and a retaining nut. It turns out the retaining nut had rusted a bit, and as I loosened it, it made a noise that sounded like something bad was about to happen. I used WD-40 on the bolts and retaining nut to see if it might help. After I removed the other two bolts, I returned to the retaining nut and decided it was now or never, and continued to hear the strange, staccato metal-on-metal noise as I loosened it with a great deal of force. After a few iterations of this it began loosening smoothly--success! The air cleaner removed, I found the purge valve part easily.
  • Removed the purge valve. Removing the vacuum tubing from the purge valve represented a new experience for me, and I ended up using pliers to do it since I couldn't get my hands in the right position. A moment of panic struck me as I tore the tubing on one side as I removed it from the purge valve. After a moment of thought, I realized there was enough slack in the vacuum tubing that I might remedy the situation by trimming off the torn section. Whew.
  • Installed the purge valve. No problem
  • Put everything back together again. No problems.
Whether removing the battery ground cable cleared the code, or whether replacing the evaporative emissions purge valve fixed the problem, the Check Engine light no longer displays.

I'll know for sure in another couple weeks whether the fix worked. Until then, everything's running as it did before replacing the part.

For those of you wondering what this little part does--it's part of a sub-system that traps the fuel vapor from the car's gas tank and delivers it to the engine where it's burned off. The valve opens and shuts to allow vapors through. There's another part, the EVAP cannister, that's filled with charcoal that sits between the purge valve and the fuel tank and acts like a odor filter (I think?) . The final part in the sub-system is the EVAP sensor--that's the sensor that trips the Check Engine light when things get out of balance--a plugged/crimped vacuum tube, a faulty purge valve, or a faulty EVAP cannister. Fascinating stuff.

Sunday, November 18, 2007

Fixing netselect-apt

netselect-apt efficiently chooses the fastest download mirror for Debian packages out of a list of several hundred mirrors worldwide.

Unfortunately, I noticed after installing a new version of Debian Etch that netselect-apt failed with the message:

netselect was unable to find a mirror, this probably means that
you are behind a firewall and it is blocking traceroute.

It turns out netselect-apt::run_netselect() produces this error when it fails to parse the HTML of the Debian worldwide mirror sites page at http://www.debian.org/mirror/mirrors_full. This page no longer contains \n\n delimiters.

Last week, I resolved the problem by modifying run_netselect() to use "<br><br>" instead (highlighted):

run_netselect()
{
        SEARCH="$1"
    PROTO="$2"
    netselect -v -s 1 $(cat "$infile" \
        | perl -n -e '
            $/="<br><br>";
            while(<>){
              next if $_ !~ /Site:/;
              if( m@'"$SEARCH"':.*<a href="('"$PROTO"'://.*?)">@i ){
                    print("$1\n");
              }
            }') \
        | awk '{print $2}'
}


I also removed the check for Archive Architectures, since the phrase no longer appears on the page.

Also, I noticed after patching netselect-apt that running netselect-apt occasionally fails due to negative values for netselect field host->num_out, but this is a bug for the netselect package, not netselect-apt .

Friday, November 16, 2007

Wednesday, November 14, 2007

export EDITOR="vim"

Another shell customization--I noticed that my fresh install of Debian etch changed the default editor to nano even after I run the command set -o vi. The fix is the title of this post, via: http://wlug.org.nz/BashNotes.

$/="\n\n";

It took me a while to refresh my memory of Perl to the point where I identified what the title of this post does.

Tuesday, November 13, 2007

BMR

del.icio.us linked to an article on healthy living today, which linked to a Basal Metabolic Rate calculator.

My results:
1.725




Very Active Hard exercise or sports 6-7
3,246 (BMR) 3,119 (RMR)
days a week

Saturday, November 10, 2007

Dvorak Zine Comic


Boing Boing linked to a Dvorak Zine comic today. I've used the Dvorak keyboard layout since 2002. Here's how my personal experience compares to claims in the Dvorak Zine Comic:
  1. It takes 52 hours to retrain
    1. Mostly true--it took me about three eight-hour days, only 24 working hours, before I felt comfortable using Dvorak. I don't remember how long it took to reach my previous typing speed.
  2. 50% increased accuracy
    1. Somewhat true--although I doubt I've increased by 50%, and I have no data to back this up, I think I'm somewhat more accurate with Dvorak.
  3. 20% increased typing speed
    1. Somewhat true--I'm a bit faster now compared to QWERTY. I typed pretty fast with QWERTY though.
  4. Increased comfort and decreased likelihood of Repetitive Stress Injury (RSI)
    1. True--Again anecdotal, but I think I've had fewer RSI issues since I adopted Dvorak.
Your mileage may vary--for me, the main advantages came with increased comfort and reduced RSI, something critical for someone spending 8-10 hours per day writing software.

Some tips if you're willing and able to learn Dvorak:
  • Commit to at least three days of learning Dvorak. It will try your patience while you retrain your muscle memory. Emotions may include frustration and fatigue.
  • Use Dvorak at home and at work while learning. I've found attempting to use different keyboard layouts during the initial phase counter-productive.
  • On Windows: Ctrl-Shift to switch between QWERTY and Dvorak. This isn't well publicized, regrettably.
  • Expect to regress to hunt and peck on QWERTY keyboards you encounter in the wild after retraining. E.g., the public library, your friend's home, your significant other's PC, your co-worker's PC, your college computer lab. This is the biggest negative for me. I find I use Dvorak 99% of the time on a computer I have administrative control over, and these 1% cases don't matter much--again, your mileage may vary.
I learned something I didn't know from reading the comic this evening: on Linux, the command to set the keyboard map is: setxkbmap dvorak. Cool!
UPDATE: What I didn't realize until I read through the comments on Boing Boing was how defensive people seem to feel about QWERTY versus Dvorak, probably because they feel judged.

I think until keyboards come with letters that can be easily changed, QWERTY's here to stay.

Wednesday, November 07, 2007

#include

E-mail signature, seen on NANOG: ^_^

||| email - #include "useless_vendor_certifications.h" |||

Tuesday, November 06, 2007

Perplexed

Dawn's: ^_^

P1443

One of the joys of driving a 10+ years old Ford Escort LX is that it provides a new learning opportunity every few months.

On Saturday, the Check Engine light came on. This afternoon, I stopped at Napa Auto Parts and purchased a code reader, which returned P1443: Evaporative Emission Control System Control Valve.

One source says nine times out of ten it's a loose gas cap. Another source says it's a $25 purge valve part, and an easy fix. Another: purge flow sensor, canister purge solenoid, or the vacuum lines. Another: damaged/blocked hose(s) between the EVAP canister, purge control valve, purge flow sensor, and intake manifold; a damaged purge control valve or purge flow sensor; or a damaged EVAP canister (least likely cause unless the canister has been cracked or smashed).

P1443 - Very Small Or No Purge Flow Condition.
A fuel tank pressure change greater than a minus (-) 7 inches of H2 O in 30 seconds has occurred with purge (fuel vapor) flow less than 0.02 pounds per minute.
Possible causes:
1)Blocked fuel vapor hose between EVAP canister purge valve and FTP sensor.
2)Blocked fuel vapor hose between EVAP canister purge valve and engine intake manifold.
3)Blocked vacuum hose between EVAP canister purge valve-solenoid and engine intake manifold.
4)EVAP canister purge valve stuck closed (mechanically).
Check for blockages between the fuel tank, EVAP canister purge valve and engine intake manifold. Check obstructions in the EVAP canister purge valve diaphragm and ports.

To be continued

Foliage on Our Property

Asian Pear Tree (fruit: mid-August to late-September)
Apricot Tree (fruit: late-spring to summer)
Kumquat Tree (fruit: late-Autumn to mid-Winter)
Rosemary
Catalpa Tree
Honeysuckle vines
California Laurel
Oleander
Rhododendron
Periwinkle (Vinca)
Fruitless Mulberry

In our neighboring yard:
Mimosa Tree
Alstroemeria (Peruvian Lily)
Almond Tree (2)
Norway Maple Tree

This scratches the surface--our neighbor cultivates many plants native to California. I'll add to the list as I learn more.

Sunday, November 04, 2007

Apple Hill Harvest Run





Dawn and I ran in the Apple Hill Harvest Run on Sunday. Lots of fun!

The best part (of course) is the apple pie and other treats to eat in the surrounding area after the event. ;)

Results:
Male 30 to 39
Place Name City Age Overall Time Pace
65 Kevin Schultz Sacramento CA 30 503 1:54:40.0 13:29/M

Wednesday, October 24, 2007

Found: Cat

Two completely different responses to us attempting to locate the cat's owner.

First, a woman and her boyfriend called us today in response to the found cat ad we placed in the Sacramento Bee. Dawn fielded the first call as I brushed my teeth, and informed her that the cat was a he and not a she as the woman claimed. End of call.

Thirty seconds later, the woman calls back, claiming that her boyfriend thought it was a he while she thought it was a she, and so can they please see the cat in person?

Dawn hands the phone over to me and I talk with her for a while, requesting her to describe specific markings on the cat she lost so I can feel confident that I'm a) not wasting our time meeting in person, and b) not giving the cat to someone who's not the owner.

The back and forth between the two people isn't encouraging. Their cat has four white feet, it likes to sit in people's laps a lot, it sneezes a lot, it's sweet, it's not active, it's 1-2 months old. I tell them this cat doesn't sneeze, ever. Oh, it didn't sneeze that often, every once in a while. I tell them that this cat is active. It doesn't phase them--can't we just meet you in person to see the cat? I ask them to describe distinguish markings on the tail. It might have a bit of white on the tip (it doesn't). I ask them if they have photographs of their cat to share. Photographs! she exclaims, It's only two months old! What day did you lose the cat? Maybe 1-2 weeks ago. Can't we see the cat? *sigh*

She's hysterical that we're not caving in to her (now apparent) demands to show her the cat. I go back to talking with the boyfriend, tell him we'll call him back because I have to take Dawn to class, get his number, and hang-up.

During Dawn's class, I talk with a friend who has significant experience taking care of cats and she lets me know how large a 1-2 month old cat is--it's obvious our cat's not their cat, it's much larger.

Later this evening, we call them back after running errands. They're not home. I leave them a message letting them know that the cat we have can't possibly be their cat because it's obviously not 1-2 months old, and we're not interested in showing them the cat.

We leave to go to the gym and when we return we find a message on our machine from this woman stating, Hi, this is --- responding to your call about the cat. I don't care about you adopting the cat, I just need to know where it is! I don't know what planet you're from, but when you put an ad in the paper that describes my cat perfectly.... and then it cuts off, end of message.

Ok, obviously I'm not calling her back, ever. Yeesh!

This is the text of the ad in the paper: Found: Cat gray and white, near --- and ---. . Yep. Perfectly, just like the five million other gray and white cats in California.

Second, we saw a lost cat paper pie plate ad on a pole near our house and called the number. The man who answered the phone was the nicest guy, humorous, and after a few questions it was obvious it wasn't his cat that we had found. $50 reward if you do find it! he said. Complete 180-degree response from our encounter above.

Friday, October 19, 2007

Kitten

A cat literally walked into our arms two nights ago. We've wanted to adopt two cats since we moved into our duplex so this represented a bit of an early surprise for us.

We arrived home from the gym at 00:10 on Thursday. Remembering our landlord's encounter with a friendly kitten earlier in the day, we walked to the end of the driveway in search of it. Finding nothing, we walked back to where we had left our gym bags on the front walk. We continued talking as we walked toward the front door when we thought we heard a mew. We stopped, and I walked back toward our garage, calling out to any potential kitten. Mew. Mew. Was the sound coming from our backyard? I opened the gate and out trotted a kitten, maybe four months old. Dawn and I stood still as it walked around us, peering into the bushes, sitting on it's haunches. We whispered to it, and it padded to us. Dawn picked it up and held it, and we scratched it's white coat. It ground it's nose into Dawn's arm for warmth.

Dawn took the cat inside and I went off in search of cat litter and a litter box. Wal-Mart: closed. Where in the world to find cat litter after midnight? I began heading toward a 24-hour pharmacy in our old neighborhood. After a few blocks, I passed an all-night emergency pet clinic. Doubling back, I parked, walked into the security entrance, and got the information I needed from the attendants on duty. About 45 minutes later, I returned home from a closer 24-hour pharmacy with the litter and box.

After putting out water, cat food, and litter in the box, I searched for lost cat ads in the local zip code at five online sites, posting a found cat ad at each. I searched for what to do when you find a stray cat. It had no collar, it was healthy, friendly and not feral. We determined it was either lost or abandoned. The lack of collar indicated the latter.

It was about 3AM when we finally fell asleep. My first bit of late-night parenting. The kitten climbed into bed and slept between us.

It's been several days since posting the ads (including the Sacramento Bee and Craigslist) and flyers on our street. No word yet, so we're beginning to gear up for adopting the kitten, which includes a visit to the vet next week.

Friday, October 12, 2007

Best Kitchen Equipment

My grandma gave me a book entitled, Perfect Vegetables in August--a bunch of crazy and brilliant people cooked vegetables in every conceivable way to discover the best (and often, the most efficient) ways to prepare them.

In subsections throughout the book, they list their favorite kitchen equipment (listing here for convenience):

KYDS Song

East London/Essex-based Bloc Party's She's Hearing Voices from their 2004 EP Banquet on the V2/Dim Mak Records labels. Video.

Hanging Flower Baskets

Ideas for flowers from Windmill Nursery in Carmichael:
  • Cape Daisy 'Soprano' Compact Purple
  • Diascia
  • Nemesia
  • Bacoba
  • Pansys
  • Dichondra Silver Falls
  • Million Bells
  • Dianthis
  • Sedum Angelina
One example by Andrew, the owner.

We also enjoyed the Blue Glorybower tree, Arabian lilac, Ruby Sky Cornflower, and Big Sky Cornflower.

Also: Cape Daisy Lemon Symphony/Orange Symphony/Soprano White; Evergold ($6); Festival Grass ($25)

Blog Archive