2009-07-03

A Quick Break Point

Due to issues with the remote work situation and the limitations of my contract, I've left my job which I've had for the last year on positive terms.   Now that I'm in New Zealand and with a lot of free time, what will I do?  I'm contemplating school.  Once upon a time, up until June 9th, 2009, German citizens (yay, me?) qualified for domestic tuition rates for Masters here.  That was until June 9th.  The government decided that the additional students that might draw were not worth the reduced tuition income, and have opted to cancel.   So, I am now contemplating school a little less.  Too many options now :)

While working, there's been a lot of fun and important work postponed due to time constraints, so I've started tackling that now.  There's a bunch of new bugs in Redhat and GNOME's bugzilla now filed.  I've cleared out some reading queues and cleaned up my inbox.  A large foreboding mountain of papers to my right has been re-organised and some of it dealt with.  Progress!

DJAqua

My Rhythmbox plugin, DJAqua, that announces a track's artist and title before and after play has had an annoying bug for a while: it froze Rhythmbox.  I've now narrowed down the cause to Speech Dispatcher's involvement.  It's only when functions passed to Speech Dispatcher as callbacks try to adjust Rhythmbox's volume that Rhythmbox freezes.  Python threading issues?  I'm not quite sure.  I've come up with a slightly less ideal solution, though.  I still want Rhythmbox's volume to lower when Speech Dispatcher is reading out the text for the track's artist and title, and for it to be restored afterwards.  Unable to rely on Speech Dispatcher's callbacks when speech begins (to lower) and ends (to restore the volume), I now lower it when I send the command to speak, and schedule the restoration with an estimate of how long the announcement will take. 

Here's part of the neat part.  Originally, I was just going to guess it would take 6 or 7 seconds (based on informal timings) to read it out, but that really won't work when the title and artist are longer than usual or shorter than usual.  So, I did the intelligent thing.  I collected some sample data on how long it took for 11 random samples to be spoken, and how many characters were in those samples.  I then analysed the number of characters per second and found that the average was consistently around 15 with a few outliers.  So, now it expects the speech to take (# of characters to be spoken / 15) seconds, and it works very well.  Yay.  This lets me ignore Speech Dispatcher's other race condition which sometimes prevents the callback from being called when speech begins.

I've filed a bug with Redhat for the issue of Begin not being emitted, and a bug with GNOME for Rhythmbox's UI freezing due to the plugin:
I know I need to pursue this better with Speech Dispatcher.  I wrote them about the first bug and they are vaguely aware of the problem but didn't have a solution at the time.  Then I disappeared due to work business.

So, yah, now DJAqua doesn't freeze.  If you want to hear what track is playing and its artist, and you have a working installation of Speech Dispatcher (in Fedora 10, I had a bunch of other issues that don't seem to be problems in Fedora 11, regarding Pulse Audio and stuff), please try it out.  I actually have to move the new code to its gitorious repository, ah well.


Phone Number Portability

Having grown up with super-portable e-mail addresses, the fragile connection between a mailing address and a phone number to a person seems utterly ridiculous to me.  Clearly, people should specify that mail should go to me and not some building, and that a phone call should to me and not some randomly assigned phone number. 

Consequently, I use my father's mailing address all the time.  It adds almost a week or two of latency for a lot of mail, but it ensures it will get to me now and in the future.  As a co-op student, I moved way too much to keep track of who has what address and to try to update them all.  Regarding phone numbers, I've been grateful to have my Vonage phone number for so long.  Of course, it fails in being regional to Guelph, but that's alright for me.  I end up getting a local number wherever I go, but that's often split with others, so the cost isn't doubled. 

The future will be better.

For example, people in the future won't, when moving into a new home, end up with a recycled phone number that once belonged to an automotive shop, who continues to receive daily calls to the number.  Internet listings are in part to blame, particularly ones to which you cannot contact to request the now residential number be removed :(  Hehe. 

Celebration of Freedom

While my work was not slave labour (though the remote work environment, given the time difference, left me feeling isolated as though I lived in a closet), it is always pleasant to celebrate change and free time.   Of course, with unemployment comes economy, so homemade cupcakes and half-price arcade fun it was!  I have my girlfriend to thank for both.  Hurrah for her!

The influx of self-directed time has led me to review all my pending goals and tasks, to reorganise them and to start milling through them.  Some are as common as "Clean this room!"  or "Pad the doorway to prevent the slamming noise".  Others are "save the world" and "figure out what I want to do for the next year, the next three years, where I want to be, the value of people and time with them, etc.  I sometimes wish I had a wise sensei like Splinter from Teenage Mutant Ninja Turtles or Enho from The Twelve Kingdoms to offer some advice. 

Debugging, problem solving, and mail notification

Mail Notification by Jean-Yves Lefort has a bug.  I reported it a couple years ago, but it remains.  The CPU seemingly random takes 100% while it continually claims it cannot connect to the IMAP server, which is true, but I don't know why.  It is probably triggered when I resume from suspend, or when I am disconnected and reconnect, or when the hour turns.  I don't know. 

I don't really know how to debug the 100% CPU activity.  I'm going between ltrace, sysprof, and gdb and learning a bit about each.  I think I'd really like to use Linux Trace Toolkit, but it's not as trivial to setup, it seems, requiring a kernel patch.  Or maybe I'm just confused.  Anyway, whenever it comes out, I quickly quit what I'm doing and think about how I can figure out what's going on.  I am sure victory is within my grasp.


0 comments:

Post a Comment

Labels

#Microblog #General friends gnome google #School blogger linux school food web fedora life music bugs guelph technology #GNOME development kendo kosmokaryote ta vegan cell phones firefox open source computers internet picasaweb skedge speech Flesherton android birthday future git happy iaido jodo nlp security sleep vegetarianism winter work dad evolution gxml libgdata nature pidgin reading speechdispatcher stress vancouver christmas genderguesser liv phone travel ubuntu vala wind mobile #Development acer blogging canada dreams fun gitorious nightmares snow video writing xorg Nintendo ai anime baking cake cold cookies css djaqua family gdom german gseta halloween new years new zealand night people rhythmbox tablet x11 New York Toronto animal welfare art autumn bc books breath of fire II cat chocolate comments communication conversation dataloss duplicity environment flight gdata greyhound gtk home humanity laptop love math money morning movies nz pizza poverty programming psychology rain responsibility shopping sick tea the legend of zelda uoguelph vonage Hugo Nexus One Sudbury adventure age animals apple audible bash busy computer science data loss emacs encryption failure fedora 12 fedora 16 galaxy nexus germany gnome blog goals green health icarus im japan java laundry libxml2 magic mail mail-notification materialism memory muffins nerdfighteria netflix pets photography play politics privacy python quiet thrill receipts research rogers skating sound soy milk space sports stars style sushi synergy transit university value village video games weather web development webschwerver xml yojimbo Blassreiter CIS*2750 CIS*6890 Dutch Blitz Electric Networked Vehicle Empathy John Green Lord of the Rings OCUS Scott Pilgrim Thanksgiving The Frames Trick or Eat US animalia arboretum argument backup bad movies banana beard belladonna beta birds blogs brain breakfast browsers bus business calm catastrophe chat childhood clock colour confidence context cooking corporations cottage cthulhu culture dbus decay depth design discomfort dns dodgeball emusic energy english enhanced history evil exercise exhausted facebook fail feelings ferry film free friend fruit games gardening ghetto ghosts gmail google reader google wave google+ green roofs gsoc hair heat hungry ice cream imaqua instant messaging intelligence interest internet explorer japanese javascript joy knowledge language light loss lost macbook meaning melancholy memories mom namespaces neural networks news nintendo 3ds oceans oh the humanity pain past patches perl philanthropy pie pirates politeness preupgrade productivity pulseaudio purple quidditch recipes redundancy rpm rss rsync sadness science seasons senility sentimental sewing sharing sheep silicon motion sleep deprivation sleeping in smells software songs ssh star wars summer technical communication and research methods telephone test time time and space tired tragedy upgrade urban ecosystems via vihart vlogbrothers voice walking warmth water wave web design wild wireless wonder world youtube yum zellers #Wishlist 1602 1984 24fps 404 API All My Children Argentina Avatar: The Last Airbender Businesses CIS*6050 Christopher Plummer Claymore Con-G Creatures Darker than Black David Attenborough Dear Wendy Docking Station Dollhouse Dunedin Elliott Brood England Europe February Fergus Final Fantasy IX GNOME 3 HTC Hank Green I believe in a thing called love Ireland JRR Tolkien Melodies of Life Montréal Mother Mother Neil Gaiman Network Manager New York Philharmonic Nintendorks Norns North Korea NotesFromNewYork Ontario Orphen Oscars PEAP Pete Peterson Planet Fedora Questionable Content SIM Wireless Samsung Santa Claus Sauble Beach Snakes and Lattes Star Trek Steve Grand The Darkness The Hobbit The Stand Tianjin Tolkien UK Wolves in the Wall WordPerfect abrt advertisement aeroport airport express ajax al gore alarm clock aldiko algonquin alien alone ambition amusing amy winfrey angry birds anhosting anime north anon anxiety apology arcade ask assignments association analysis asynchronous ati automarker autonomous automobiles avatars awesome backtrack3 backyard bounty bandwidth banks baseball bathroom bats battery beaches beauty bed bees beetles bellaqua berlin bertrand russell bill gates biometrics black and white blockbuster bloomberg blue bohemian bonds book border boredom branding buffy buses buttons c# c++ cafe calligraphy camera cancer candy cards careless cars cast causality cbc celebrate certainty cgi challenger chaos theory charity charm cheap cherry blossoms chickens china chopsticks christianity chrome cities clarity classes clean cleaning clorox clorox green works cloud clubs cname codeviz coins comfort community compassion competence competition compiler compliments concert conservation consumption contagion contributing convenience convention cookie copyright corpses country court crafts crashes crates creative commons creativity criminals crosscanada cry cryptic csh cult current tv customer service cvs dance dark themes data mining databases death debug symbols debugging decor democracy desktop desktop summit despair digimon digital receipts disabilities disaster dispute dissection kit diy doubt dpkg drab dragon drano drano prevention drawing dress dtwydt dust dynamic typing e-mail earth earth day easy eating ebooks ecards economy editors education eeetop eggs el paso elections electronic receipts email enchant enterprising environmental science symposium eog epiphany eplugin equality equipment errors ether evoaqua expectations exploring ext3 extortion faery fest falafel fall familiarity fan favicon fears fedora 11 feed me fibonacci fiction file systems fire fireworks fish flexibility focus fonts forceps forgottotagit fork formal fortunate frameworks freedom freezing french fries friend's wedding fspot full moon funny furniture game boards garden gay rights gdb geek gifts gimp gio globalnewtgames glory gloves glue gm gnome keyring go ninja go goodbye goodfella's google books google talk government gp2x grad gratitude grey county groceries groups guerilla gardening guts habits haircut hal harry potter hdtv heart break help hewlett packard hijinx history holidays homelessness homework homosexuality horatio hornblower horror hot house howl hp hp lovecraft html humblebundle humour hyrule i am a carpet ibm thinkpad x41 ice ice cream sandwich ill inadequacy inconvenience industry information ink innovation integration interlocutor internet tv io irish it it is indigo jabber james bond jedi jobs julie thiel justice kayak kernel keyboard killme kinder kirby kiva knife knots koodo labels labs landau sacamoto languages late laurena law learning letstrace letter writing letters libnotify librpm libxml lilo limericks limits linksys live wallpapers livejournal loans local local food local install losher lyrics mac mini madness majesty malaria mario marketing martial arts massages matrices meat in vitro medicine meow metacity metadata microfinancing micropayments microsoft microwaves milk mind mindhacks missed the boat missing mold monitors monologue mood moon mosquitoes moss motivation mozilla mtp muffin muffinfilms mundane murder mushroom soup mystery nameservers nasa national treasure nausicaa navigating neighbours netgear network new users next year ninja turtles ninjas nodelist nointernet noise noisy non-root normality nostalgia notebooks notification-daemon novels november fair nuclear war numbers obscure obsolescence ocz olap olive open formats open music open souce open standards optimism orcas orchestra oreo oreos oscar otr overheat packing pan panda pants paper papers patience pattern recognition peanut butter pen pence pender penguins penmanship perfection performance personal pet rocks peterborough philosophy php pickman's model picnik pidgin plugins pintsize pizza hut planning plans plants pleasant plushies podcast pomplamoose positions posse power ppc practise premier preparation pressure private processes progress promise pumpkin pumpkin pie purchases qt quote rad radeon randall munroe raop rats reagan reality refactoring reflection refrigerators release religion resumes reuters rhino rhps road trips roar rot rtm sad salsa samurai sand scary scary movies scheduling schneier schwarting scp script seals search secrets self-interest self-navigating car senescence sensitivity sessions setbuilder sftp shame sheepo pistachio sherlock holmes ships shogun shoulder bag sigh sim city simafort simple sincerity skill skunks sky slackware slashdot sliver smiling snowboarding social society soft someonesmotherwantstoadoptme song sorrow soup sparklers speech dispatcher spellchecking spies spilt milk splendid splinter sshd stanley park starving steampunk storage streamlines stupid sucks sun super mario super mario land 3d surprise surrender survival skills suspense sweet swimming swings swords symphony tabs tasks technocracy teddy bears temperature term termcap testing tests texting the duke the fault in our stars the hulk the onion themes theory thingsidon'twanttodo thinking thought thoughts thrift stores tim mcgraw tim tams timber timbre time management time travel tin tin tools touch screen touchpack tour tourniquet trac tracker tradition trailer translation trees treestyle view trivia trouble truth turtles tv tx2500 tx2617 ugly logos un dinaru underwold unemployment united states updates upgrades uploading urban agriculture usb utopia vampires vanilla ice vday veggie challenge velociraptors velvet burger version control vi violin vlog voip waf waffles wahoo wanting waste web hosting webcomic webfonts webkit weekend weird werewolves what a wonderful town whic are also lazer powered white spot wifi wii wikisource williams wings wizard wordplay working writing voice xenophobia xephyr xkcd xmpp yoga youth z-index zoo

Blog Archive

About Me

My Photo
I am aeronautical, vanship-style.  I am olympic and mythical.  I rest on my laurels.