In brief; We got up at 5:00 am MST this morning, and after a lot of gate-waiting, tarmac-waiting, customs waiting, and circling the aiport to land waiting, we arrived in Boston via Ottawa, at 8:30 EST. Looooooong day. Our room at the Holiday Inn Express here in Cambridge is quite nice, especially considering the sweet employee rate Christine got us. We’re travel-weary so it’s early to bed tonight and early to rise tomorrow to do some exploring before the MPrize dinner in the evening.
I’ve been following the Canadian political drama of late with typical morbid train-wreck-style fascination.
<sardonic_elitism>
The media game and political spin cyclone is its own form of insipid entertainment. We watch the manipulators at work with full understanding of what they are up to, and feel sad that it works to sway the masses of suffragable uninformed mouth-breathers. </sardonic_elitism>
<soapbox>
I’d like to remind y’all that there’s a very viable alternative to the big parties, if you’d like to take a break from strategic voting games, that is. Being a god-damned-liberal-tree-hugger, I find the green party is well in line with my pragmatic sensibilities. Reading over their platform, their major selling points are to reform the political process (proportional representation), cut taxes, and invest in green practices. They also have some intertesting more minor ideas such as pushing for more open source projects in government IT, more active democratic participation via the web, and other clues that they are quite progressive and in line with my core values.
I think, unfortunately, a good chunk of canadians believe the green party is the same as the marijuana party, or that the green party is obsessed with tree-hugging and nothing else.
Regardless of your ideological slant, you should take the time to sign the petition to get the Greens in the debate and television coverage. Last election they got 4.29% of the vote. They are a national party with candidates in every riding, and yet seem to be ignored by all the media and blocked from participating in any debates. Essentially our media has complete control over their fate with voters. This kind of abuse of power hurts any viable party and we should express outrage.
</soapbox>
<self_deprecating>
But what do I know, I’m just a damned tree hugging techno-geek.
</self_deprecating>
- Yogourt (120)
- Mandarin Orange (50)
- 3 cups Coffee (7)
Lunch:
- Smoothy (350)
- Cottage Cheese (100)
- Mandarin Orange (50)
- Turkey, Cheese, Salad, Whole-wheat wrap (350)
Dinner:
- Slow-roasted Veggies (Yam, Beets, Cauliflower, Carrots, Potatoes, Onions) (400)
Snacks:
- Mixed Nuts (160)
- Nature Valley Fruit & Nut bar (140)
- Chicken Noodle Cup of Soup (52)
Ye Grande Total: 1779 Calories
Yep. Christine & I are flying all the way to Boston for dinner next week. We’re attending a special dinner hosted at MIT for the most serious of the MPrize donors. Both Aubrey de Grey and Ray Kurzweil will be speaking at the dinner. We look forward to hanging out with them and the many other very forward thinking individuals that will be attending.
I wasn’t planning on going, but then I discovered I had exactly enough air-miles to get two tickets, and when I checked for availability, for the first time in eight years, I actually was able to cash in my airmiles for tickets. A true miracle.
We’re very excited to be going. We did add an extra day to the trip to kick around Boston and check out the sights before flying home on Saturday.
Ok, I’ve decided you folks out there can have a peek at the CRON-o-Meter, version 0.1. Yes, that’s right 0.1, as in not even half-baked. Yes, expect: bugs, incorrect data, loss of data, display glitches, usability problems, and gobs of missing functionality. Most importantly, don’t expect any data you enter to work in future versions.
Nevertheless, the USDA food search works, the food and recipe editor works reasonably well. You can track your nutrition for the day, and even track your weight, BP, and tempterature (although there are no graphs yet so it is not very usefull).
Download: Windows Version or Mac OS X Version
Note: For both Windows and Mac OS X users, you’ll need the latest version of Java (1.5) installed: Download Java for Windows, Download Mac OS X JDK1.5r3
Tomorrow marks my 27th voyage around the sun. As is customary on this strange planet, my co-workers surprised me at lunch today with a gift. It’s something I’ve been asking for for years. When people ask me for impossible things, or “wouldn’t it be nice” features for the software, I can often be heard asking loudly, nay, demanding that I WANT A PONY.
On more than one occasion it had been threatened that I’d better be careful what I wish for. Well today my dreams came true.
It was a good day in many respects. I clobbered b money at foozball, and won our afternoon inter-office poker tournament. And I got a pony. I still want my wowwipop.
Good to Great: Why Some Companies Make the Leap… and Others Don’t
by Jim Collins
An inspiring study on the common factors shared by companies that made the transition from merely average normal companies to great companies. When the transition is made it is like the rocket boosters have been lit. The study finds these companies shine because of a few common factors:
They all have rational non-ego-centric leaders that make the tough decisions with little regard for personal gain. They have high employee standards, feeling it’s better to suffer understaffed for a while, or grow slower, rather than hire mediocre employees. With too many mediocre employees the company can never be great. The company executes a strong focus on the core, which is the thing it can be best in the world at doing. It stops doing anything outside of its focus area. The work culture is highly disciplined, results oriented, and pragmatically embraces technology to accelerate progress. It builds momentum off of being consistent to its core prowess.
The Singularity Is Near : When Humans Transcend Biology
by Ray Kurzweil
As a Computer Scientist, one becomes intimate with exponential growth, in many forms. I’m no stranger to the idea of the Technological Singularity as I’ve been avidly exposed to transhumanist philosophy and Hard Science Fiction. So really, there were few new ideas in this book for me. That doesn’t mean a good preaching-to-the-choir-book can’t be good fun now and then. I would certainly recommend this book to family and friends (and even a few strangers, if they can read english) if their curiosity is aroused to understand where technology is really headed.
To the uninitiated, Kurzweil may sound downright loony in his predictions, but the man has done his homework. Even if his timelines are over-optimistic, I think that barring major global catastrophes, much of what is predicted in this book shall come to pass in some form, if not by 2047, then perhaps no more a few decades more. Such is the nature of exponential growth in the ability for this universe to organize information. Plotting the time-line of the big bang, the earlist single-celled life on earth, multi-cellular life, the cambrian explosion (body plans & vision), mammals, homonids, homo sapiens, human civilization, the industrial revolution, the computer revolution, the internet revolution, and you will see a exponential curve. Each successive new ‘technology’ or organization of information provides a more powerful system to drive the growth and creation of its successor, such that the successor is an order of magnitude more powerful and is created and order of magnitude faster than the preceding technology.
These changes used to take billions, then hundreds of millions of years, then millions of years, thousands of years, and so on. We are now experiencing multiple technological revolutions within a single generation. Kurzweil predicts that next few revolutions now underway will churn within mere decades, and eventually within years. There may come a day sometime mid-century, when the rate of change will be so great the world will appear to change over night. The Singularity. But it doesn’t stop there.
Hold on to your hats. The merged-man-machine transcendance will continue to grow exponentially, transforming the matter of the solar system, the galaxy, and the universe into computational, sentient, substrate. Perhaps the Bible has it backwards: Out of chaos comes man, and man creates God in his own image. Stick that in your pipe and smoke it.
For a quick & free overview of these [heretical] ideas, see an older essay by Kurzweil on the topic.
Saw Nine Inch Nails last night (the With Teeth Tour). Booyeah. NIN was my favorite band in high school, so it was a treat. Mind you, I’ve not cared much for anything since The Downward Spiral. Trent looked funny with a buzz-cut. He’s getting old.
The opener was a Toronto two-man band called Death From Above 1979, with the drummer doing vocals, and the guitarist also working in the occasional keyboards — very cool sound and entertaining to watch. I was quite impressed. I had not heard their stuff before, but I’ll definately be shopping for a few tracks on iTunes.
The feature opening act was Queens of the Stone Age, a pretty decent band but nothing that excites me too much. The best part of their show was when the front-man stopped the show to smack-talk a heckler for a few minutes.
Middle of the NIN show, it got shut-down for 10 minutes by the Rexall security folks because the front crowd barricade had been destroyed (let me tell you it was hard to breathe down there in the thick of the crush). We all backed up two feet and let them repair the barricade, like good little Canadians.
Q: How do you get 100 Canadians out of a swimming pool?
A: Say “Hey you Canadians, get out of the pool”.
There’s been just a huge amount of new scientific results pouring in on the effects of CR. Recently, there’s been studies showing that CR helps prevent and slow Alzheimer’s and also various Cancers. And today a promising study showing that Restricting Diet May Reverse Early-stage Parkinson’s. It just keeps seeming like this lifestyle is getting smarter and smarter 🙂
So o’er this weekend I got frustrated with the cron-o-meter development and ripped it apart and threw away the SQL database backend. It really appears, on first blush, to be they type of application born to be a classical database app. However, I couldn’t shake the feeling that using a database wasn’t doing anything other than ‘feeling like the proper way to do it’ and beyond warm software engineering fuzzies, was getting in the way more than anything. So I went back to custom file I/O.
The USDA food database in our old SQL DB took up over 30mb, and took several seconds to initialize and load. I replaced it with with 6500 XML files in a ZIP file, plus a simple index file for searching. This custom ‘database’ loads the index in a split-second, and weighs in at only 4.5mb. And it’s all implemented in about two pages of very easy to read Java code. It took weeks to design and implement the SQL database system and write all the support code to integrate it into the program. It took about 2 hours to write the simple custom solution.
In my Comp Sci. degree, the discussions of Software Engineering is always to design things as abstract and generalized as possible. It is stressed over and over again. We never covered the less obvious evils of over-abstracting and over-generalizing. You end up with a lot of complexity in a general system that handles problems you don’t need a solution for. You often end up having to conform your problems into the proper shape to fit the general solver, like round pegs in square holes. For instance, using a relational database metaphor in the program forced a lot of database specific issues and design considerations. With the SQL database gone, things can be written more naturally.
A general solution can’t make domain specific assumptions or optimizations. A specific solution will always beat the pants of off the general one. Darse has a lot of good anecdotes about this in AI. Perhaps some day he’ll regail us with tales of tic-tac-toe, or Sokoban….
As a lazy coder, it’s always so tempting to write generalized solutions to problems. If you can write something once and then you might be able to use it over and over again for many different problems. However, we get into that habit such that we try and generalize everything, often without thinking if it’s truly needed. If writing 3 specific solutions takes 2 hours each, then why spend 10 hours writing the general solution if in all likelyhood, you’ll only ever need to solve 3 or 4 instances of the problem? Well for one, it’s usually a lot more satisfying to write the general solution. It takes creativity writing highly specific solvers can be very creative too, but the redundancies of writing the same type of things over and over can become dull.
I really enjoyed trying to engineer the crap out of cronometer (and much credit is due to Chris, who is far more adept at proper “Software Engineering” than I). But this weekend I reached a turning point where I just really wanted to finish and use the tool, not just tinker with cool libraries and architectures. Now, it may be me that has the problem in feeling hindered by these constraints. But at the end of the day, the productivity of the coder is really all that matters. It doesn’t matter how ‘proper’ something is if it doesn’t actually boost productivity in practice.
I guess I’m starting to more clearly see this issue now in all coding I do, especially at work. Every day I’m making tough decisions on how to approach a problem, and often the question is to take the aesthetic route or the pragmatic route. Today, while looking over our Poker Server code, I really wanted to refactor it, wrap it in pink ribbons and make it pretty. But after discussing it with Scott, I realized that doing so was unlikely to actually help anything, other than make it look more textbook, and would take more development time to produce than it would ever save down the road.
The big realization is that Generality does not equate to Simplicity. Specific solutions can be far simpler to create, understand, maintain, and debug. If something is easier to work with and understand, then it has lowered the complexity of the project. The Simpler something is, the less chances there are that something can go wrong, or that it will be misused. Achieving simplicity in a complicated domain is far harder that achieving complexity. It is a balancing act of making intelligent choices between general and specific solutions on a case-by-base basis.
Amen.
Yesterday evening, J came over and we set up his tools in my garage and began goofing around with amateur carpentry.
The stairs to the basement lead from the kitchen area. With the basement door open, it blocks access through the hall way into the living room, and also lets the ruccus of my basement den (computer games, TV, loud obnoxious music) up the stairs. But, we can’t keep this door closed because Vega, our darling cat would not be able to get down to her litterbox and would end up crapping in our bed or something.
So that being the case, the plan is to build a little cat door so we can keep it closed and kitty can still crap freely. I’m thinking about a little beaded curtain instead of a flap, but that wouldn’t be too sound proof. But, OH the GLAMOUR!
So last night we got as far as cutting the hole, and cutting the oak trim to size Well, we’re not sure about how good we did for the sizing…we’ll see when we try the next step which is to attach the frame.
The Hole with oak top ledge inserted
The Oak Trim, cut and Laquered
And yes, I wrote this blog entry while waiting for my mega-muffins to bake.