Monday, August 20, 2007

"When I am taller ..."

My three year old daughter Aravis and I were sitting on the couch together. I asked her if she thought she would ever get "holes in her ears" (as she calls it) so that she could wear earrings. She responded, "When I get taller, I'll have brown hair and get married in the temple and get holes in my ears so I can wear pink earrings." That sounds like a well considered life plan.

Saturday, August 18, 2007

Annual Report: Reserve Savings


Everybody should have some reserve savings for the metaphorical
rainy day. How are the family and I doing on this worthwhile goal? As
I mentioned in my post about a life events timeline this data would be
interesting to see next to a list of significant life events to help pinpoint
cause-effect relationships. After doing annual reports for a few years, one
should be able to spot seasonal trends and better plan for them.



What I want is a graph of reserve savings showing the balance throughout the
year normalized against the balance at the start of the year. This won't
reveal to all the world exactly how much savings we have, but will show
how we did at building on (or burning up) the reserve.



The data is easy enough to get. E*Trade stores a list of all the
transactions for our money market fund and displays them in a table like a
checkbook register. Unfortunately, they only export the data in Quicken and Microsoft Money formats, neither of which include the balance data.
With a bit of Perl and some pedestrian Excel goodness, it all becomes a
beautiful graph. You'll have to wait for the report to actually see it of
course.



Monday, August 13, 2007

Annual Report: Life Events Timeline


Timeline widgets are great for seeing events
and how they relate to each other temporally. Synchronized graphs such as
those used in financial
charts
and by Google
Trends
further show temporal
relationships and even hint at cause-effect relationships between events.



I've thought of several graphs for the annual
report
that would
have a chronological
X-axis and some
piece of data on the Y-axis. It would be interesting to put a timeline of
significant life events at the bottom of a page with all those graphs. The
X-axis would be synchronised across the graphs so that I could easily see how
the birth of a child affected my reserve savings or effective tax rate.



It should be easy enough to find data for the timeline from my own memory of life events such as getting married, children's birthdays, moving to a new house, starting a new job, etc.



Wednesday, August 01, 2007

"I've attached ..."


If I could have back the time I've spent resending emails when I forgot to
actually attach email attachments, I could spend less time sleeping and eating
and more time doing necessary stuff (thanks TanookiTravis). I need my email
client to ask me something like this: "You're trying to send an email in which
you say 'I've attached the report', but there is nothing attached to the email.
Are you sure you want to continue sending?"



KMail
has this feature. Has anyone already implemented it for
mutt?



Monday, July 30, 2007

Annual Report: Hours Worked Graph


In honor of the fun idea from Feltron Seven to publish personal annual
reports
, I'm tentatively planning on creating my own report for 2007. I
don't want to spend much (if any) time collecting data, so this annual report
also serves as an experiment in locating data recorded about me and
aggregating it in a useful, queryable fashion.



This is the first post, in a five-month (crossing my fingers) series preparing
for my future report. The purpose is to help me flesh out ideas for content
and some techniques for creating it. As a convenient by product, these posts
will also serve as a handy scratch paper to remind me of good ideas when it
comes time to actually write the report. Each entry in this series will be
tagged with the label annual report, so they'll be easy to find later.



Now on to the first idea. Following on the heels of my recent post about
programmer context switching, and stealing Feltron's good ideas
with graphs of work and vacation, I want to include a graph showing the hours
I've worked. The graph will be a stacked, bar graph where the total bar height
indicates the number of hours I worked during each week of the year. There
will be pieces in each stack: context switching time and productive time. This
one graph should nicely highlight seasonal fluctuations in my workload and help
me see whether my efforts have reduced the overhead cost of context switching.



The data should be easy to find. I need to query my time clock database for
the total hours per week. The best bet would be to convert each data point
into RDF something like:



y2007:week_1 work:total_hours "38" .
y2007:week_2 work:total_hours "42" .
...


I'll get into my reasons for tentatively choosing RDF in another post, but
in this case, it might be easier to just generate the graph directly. Time
will tell.



Context Switching


I'm working on a difficult programming task when the phone rings, "Oh, hi. I'm
doing well ..." Then when I'm done with the call, I inevitably ask myself,
"Now where was I?" When performing a mental task, one's mind has to hold
certain information (context). If that context is lost somehow, it must be
regained before continuing. The phone ringing required me to switch contexts
and then reestablish the former context when the call was done. The act of
reestablishing context is an overhead cost for mental work. Bryan Dollery
estimates the cost of a context switch at around 10 minutes. That's 10
minutes of wasted effort.



For business purposes, I keep track of which tasks I'm working on throughout
the day. Anytime there's a context switch that lasts longer than a couple
minutes, I record the changed focus so that I can bill my clients correctly. I
wrote a quick report against my time tracking application. Assuming that
reestablishing context takes about 5 minutes, here are my results for June
2007:



Total Duration         : 8998 min
Unique Tasks : 80
Context Switches : 219
Average Focus Duration : 41 min
Time Spent Switching : 1095 min
Switching % : 12%


During June, about 12% of every workday was wasted to context switching. In
any job, there is a certain amount of overhead, but this seems like an easy one
to reduce. Fortunately, most of that overhead is caused by one client, so I
just need to find a way to manage them more effectively.



Thursday, July 05, 2007

Apprenticed Trades


Too bad so many people think that a university education is mandatory after
high school. If my children show little interest in university studies, I'll
counsel them towards apprenticed trades like plumbing and electrical work.



We had a plumber and his apprentice show up today to fix some plumbing issues.
The plumber billed $67/hour and his apprentice billed $37/hour (including two
hours of drive time). I wish I made that kind of money while I was in school.
Are there many situations better than having someone pay you to learn a
valuable skill?



On top of the high wages, these two plumbers were scheduled two weeks out. The
wages and the backlog are the market trying to persuade people into this field.
Maybe it's a Wyoming boom-effect, but a young kid needs a serious reason not to
go into one of these two fields. After apprenticeship, you could live just
about anywhere you want, set your own hours and earn a comfortable living,
leaving you plenty of time for family and hobbies. The only cost is facing a
stigma about not attending university.



I'm all for less stigma and more heeding the market.