Sunday, December 23, 2007, 11:43 PM - Travel
Road tripping the west coast in DecemberWednesday night I went into hyper speed running around packing and preparing for my trip up to Washington, and later to Montana. As I got in the zone I didn't realize that all the sudden it was 4 am, and I was planning to get up and leave at 6 am. Clearly driving all day at 80 miles an hour on two hours of sleep is a seriously bad decision, so I crashed and didn't wake up until 10:15 am. As I was putting the final touches in my packing I went to stick my snowboard on my ski rack I noticed that my keys for the rack were of course, missing. After running around like crazy I called Meg over in Marin and she wandered around the driveway and found them. Now it's 11:30 and I meet with Meg to pick up the keys, and grab some deliciously prepared snacks for my trip ahead.
As I cruised North on 80, 505, and finally I5 I was making really good time and had high hopes to comfortably hit Oregon and find a place to crash. I stopped in Weed California to fill up and light up my first Rocky Patel 1990 vintage corona of the trip. Using my iPhone to check the road conditions ahead, everything looked good and I was looking forward to cruising across the state line. Then of course, a mile from the Siskiyou Summit it starts snowing, and traffic starts to slow down. Eventually I find myself sitting for an hour while it's snowing literally feet on the hood of my car. The police come to my window to let me know that they are shutting down the road and sending everyone back to California, GREEEAT!
Back in Weed I find myself struggling to figure out what to do next, do I give up for the day and head back to the sunny Bay Area to hang out for a few days before I try again? Finally I find myself heading down the long and lonely highway 97. About 40 minutes in I find myself in a snow storm, the ground is solid white in every direction I can see and it has been snowing so hard that there isn't a single tire track on the road for me to follow. As the snow fall gets harder, the flakes get bigger and the wind is shoving them right at my face. Finally I have to pull over because it's just impossible for me to navigate the thing, hoping that after a while it will slow up. For a while I was extremely concerned because it took a good 15 minutes before a single vehicle passed me going either way. Right when I'm thinking about pulling out the sleeping bag to nap this situation out a nice big semi with snow gear goes cruising by that I can jump behind and follow all the way to Dorris. Now that I feel like things are back on track and I am cruising along, I run into another backup on 97 where a semi flipped and blocked the entire highway. This forces me to get back on Google Maps (thank god for edge) where I discover CA 161, yes I am still in California after being in the car for 10 hours. This takes me all the way east to the highway 39 intersection which I take North to Klamath Falls.
At this point it's around ~11:45 pm, and I am finally rolling into Klamath Falls and I don't really feel like this is the place I want to hole up. The motel's looks pretty seedy and I am in my prime awakeness hours so I decide to forge on. The ride to Bend feels like it takes absolutely forever, it's 2:00 in the morning and I start going across pass after pass, endless snow, slippery conditions and very few cars around.. but eventually I make it to Bend which is an absolute relief! Now I know you are thinking, "Why doesn't this dummy pull over and go to sleep?". The answer is that I am wide awake after this crazy experience and I am just dying to get this trip over with. The other mistake I made was continually assuming that the worst part is over. As I am cruising through Bend I remember that I ideally I would like to get back to I5, but I do know that going west from here leads right into the mountains and I would like to stay in the low lands as long as I can... and I missed the Salem exit, on to Portland!
Unfortunately I didn't look at the terrain or satellite view which would have shown me that after a misleading low land I head straight for the summit of Mt Hood. Unfortunately I arrive here around 3:30 am. Massive snow starts falling, again I am rethinking this whole decision fortunately another snow scraper cruises by, which I can follow all the way to Portland. This turned out to be a pretty good decision because the Mt Hood roads were really well taken care of since it is indeed ski season and people are cruising up and down the road all day. I don't know about the Salem route but I am pretty happy that I finally made it to Portland. I start to query my brain and body to see if I'm up for another push because I am seeing the Seattle signs and I just want to be a maniac and finish the job... as soon as I saw "Welcome to Washington" the signs of sleep started to weight in heavily as there was no interesting terrain to keep me awake and attentive so I pulled over at a fast food/fueling up area along I5. Now I'm sitting in my car thinking about falling asleep right there in the drivers seat and I realized that I had a car full of blankets, sleeping bags and pillows so I pushed my passenger seat as far forward as it would go and fill the cracks with all the soft bags etc from the back seat. Finally I sprawled out, climbed in the sleeping bag and the next thing I knew people were pulling in to get breakfast at Denny's and it's bright and cold outside. A quick gasoline refill and I am on my way. I make my way to Redmond (via 405, 520 and some of the worst traffic I have ever seen and that takes into consideration Boston and San Francisco) for some chow with my good friends Jeff and Sabrina.
Finally I head to Bellingham for some chow, a nap and some major R&R. I did get to Mt. Baker yesterday for wake boarding as it was the sloppiest rainiest wettest ski conditions I have ever experienced in my life. Hopefully I have only better results to look forward to from here on out.
I have plans to meet up with my buddies from WSU in Seattle for new years that I have been looking forward too for a couple months. Stop by pioneer square for a beverage if you are in the area!
As for what's next -- Meg and I will be leaving Bellingham January 5th and head to Big Sky Montana for a taste of big sky country. We are going to try working in a stop at Schweitzer Mountain, Silver Mountain and Big Mountain on our way. I plan to be working a large piece of the time, but spending the weekends and taking PTO on the unavoidably fantastic powder days over the next month.
If you would like to view our whole route -- Check it out, looks fun huh?
I am really looking forward to all of this, and have been enjoying my family very much. Unfortunately I have to say my heart is with my family on the east coast at the moment as my cousin Josh passed away this week. He was a really caring guy and I looked up to him in a lot of ways, I will miss him very much.
Happy Holidays blog readers, Cheers.




( 3 / 85 )
Friday, December 7, 2007, 02:36 AM - General
Over the past month Mikeal and I have been cranking away at a couple projects we dreamed up and finally this week we are live, but still bug fixing. In the past I have used my blog to rant about my open source programming discoveries, and various other specifically technical issues. I have also used t0asted to rate and rank the cigars that I smoke occasionally, this will no longer be happening. As you can see on the right side links pane there are two new links at the bottom. The first is called 'Steal This Code', and has the goal of creating a collective place for all the people we know using their blog as a vent for their technology excitement. Obviously we don't expect everyone we know in tech to post all of their technical posts to Steal This Code, but there is certainly a type of entry that fits really well on the site. If you go read the site you will see what I am talking about. The second is Cigar Sessions, and is aimed at creating a community forum for people to post about their cigar smoking experiences. In addition to my occasional review of a stogie there is talk of recording a smoking session at a local cigar shop on video or audio format, or at least a cut version as a form of entertainment... you never know what you'll hear when you get a bunch of people in a room smoking cigars.
The next site launch in our iterative creative process is about a month and a half off and will be catering to a very different crowd, the spirit tasting connoisseurs. I won't give away too many more details than that, but there is a hole in the online spirit tasting world and we intend to fill it.
On another note, I had a fantastic Halloween and Thanksgiving and now that my blog entries are geared towards my more personal happenings you will be seeing some interesting activity out of me in the near future. We had a fantastic thanksgiving at my new house, the cats and dogs had a chance to stare at each other and the food was delicious. I want to thank everyone for such a fantastic and loving time.
My plans are now confirmed for January, as soon as I get all the loose ends tied up in Bellingham after New Years I am heading off to Whitefish Montana to ski Big Mountain and breathe the fresh mountain air. I visited Whitefish for one weekend in college my freshman year and I am really looking forward to returning back there to clear my mind and get some serious time pounding the powder. If you haven't been to Big Mountain, it's big and cold and has some of the best terrain I skied!
This entry is feeling a bit scattered, but I'm going to leave it that way because it is a direct representation of how my brain feels at the moment. So many projects, so little time!
Ahh, and I forgot to mention that we released Cosmo .10, and are days away from releasing Windmill 0.3 which is really exciting because we finally had a chance to implement some of the missing features keeping us from the big time!
If you haven't been keeping up on the Windmill blog, there was a Windmill task added to the Google Highly Open Participation Project and we were lucky enough to have a participant record a nice little Screen Cast Introduction to Windmill. This is something I have wanted to get to for a few months and just haven't so I appreciate the contribution and encourage anyone who has no idea what all this Windmill talk is about, to go check it out.
Alright, I think now that the ideas are finally flowing I am going to bow out and head to bed early.. these 3 AM mornings are starting to catch up with me.
Cheers!
Tuesday, November 13, 2007, 05:33 AM - Technology
Over the last few weeks I have been dreaming up a great idea for a Web 2ish mash-up project. Unfortunately I don't really know very many people other than me that would actually use it, but I think I'm going to build it anyways in the time that I should probably be sleeping or doing pretty much anything else in the world besides sitting at a computer... I know you want to know what it is, but I am not going to tell you. My eager audience will have to wait until I have some sort of prototype online before I am going to spill the beans.However this much I am willing to give up; on my way to stage one of the development process I discovered that apparently the entire world thinks that it's dirt easy to create your own Google Maps, I disagree. Google has provided a very nice and simple Javascript API to interact with the mapping service, but that wasn't the part I found frustrating. Additionally mapki has provided a "Step by Step" set of Instructions to make it even clearer how to use the Javascript API. The part that hung me up was taking these high resolution, giant images of mine and easily cutting them into Google Maps usable pieces.
The first thing I tried is the following Web Site, this timed out every time I tried it.. and provided me with a bunch of data that I didn't fully understand and didn't feel that I really needed to understand to accomplish my goal. As the combination of this and the Command Line Cutter I wound up with a tmp directory full of files without extensions, and two hours of monkeying around with ImageMagick modules. After editing the bash file and alternating png compressors I finally gave up and moved to the ruby side. Ym4R Tools looked promising, but required me to install RMagick and still I had to comma delimit all kinds of numbers from the atlas.free.fr site as arguments to make this script do anything. I finally found myself with 5 gigs of mostly black images, not totally sure if it had done what it was supposed to and even more confused about what to do with this whole mess of files after it finally stopped running.
At this point I felt like giving up, not completely because of the technical frustrations but because after one spends so long trying to accomplish the first task in a large list of tasks to complete a project it sort of seems hopeless. As I sat and watched Weeds, Journey Man, Metalocalypse and many episodes of Family Guy I started thinking about this situation and how bizarre it is that this seemingly simple and common task didn't yield a more straight forward out of the box, satisfying solution that would give me instant gratification encouraging me to move the the next step in my project.
Working in Open Source and dealing with relatively strange and complex problems all day long I was surprised that in all of the hugs amounts of projects that popped up on my Google search, none really gave me what I wanted until somehow I wound up at the Holy Grail of exactly what I wanted, and it's project page is in ASP, and the app is written in Java. I have never heard of 'The Centre for Advanced Spatial Analysis (CASA)' or the University Collage London, but I thank you immensely for this software called The Google Maps Image Cutter. The simplicity here is refreshing, who said that JAVA GUI apps were useless (you know who you are.)... this one hit a home run with me today.
This amazing JAVA based GUI application, allows you to open the image you would like to GoogleMapperIze, drag a scroll bar to configure the zoom levels and quickly generate all the images you need in one directory. Not only that but it also generates you an HTML page with all of the Javascript source to instantly see the thing working. And to take you one step closer to serving your custom map to the whole world, they even leave you a place holder to insert your GMaps API Key to get you live.
Granted, the naming convention they used for the generated Images makes absolutely no sense and is pretty hard to follow and the algorithm used for computing the filenames being served is pretty a bit ugly, the thing just WORKS. And this will be providing me all kinds of progress, but mostly that immediate gratification needed to drive me on to the next task.
Thank you Internets, you magnificent series of tubes, I shall now bobsled off into the night.
2:36 AM, over and out.
Friday, October 26, 2007, 05:01 PM - Web
We have had a couple weeks discovering interesting problems in Javascript, and one that I had been seeing for a long time but finally had a chance to dig into a couple weeks ago before the Windmill 2.0 release was a problem in Safari 2 with Math.random().This first showed it's gnarly teeth in an algorithm I had written to generate a random user every time you ran a test suite, so I didn't have to think about conflicting users and I didn't want to remove the user at the end of every test run because it is important for us to grow that database and see how it performs.
Here's the code that enabled the problem:
var getRandomKey = function () {
var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz';
var len = 16;
var str = '';
for (var i = 0; i < len; i++) {
var rnum = Math.floor(Math.random() * chars.length);
str += chars.substring(rnum, rnum + 1);
}
return str;
};
(excerpt from fleegix_js/trunk/plugins/hash.js)
This worked great on every browser except Safari, where I had to delete my user from the last session every time I ran the test suite. The Math.random() in Safari uses the same starting point and same algorithm to generate the random number used, so that each time you start your browser and generate a Math.random() you get the same value, not very random is it?
Our solution to this problem is demonstrated below, you make want to tweak it even more dependent on your requirements.
var getRandomKey = function () {
var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz';
var len = 16;
var str = '';
var mls = new Date().getTime();
for (var i = 0; i < len; i++) {
// In Safari 2 Math.random returns the same random
// sequence after firing up the browser -- return
// something randomish
if (navigator.userAgent.indexOf('Safari/41') > -1) {
rnum = (((mls / (i + 1)) + mls) % chars.length);
}
else {
var rnum = (Math.random() * chars.length);
}
rnum = Math.floor(rnum);
str += chars.substring(rnum, rnum + 1);
}
return str;
};
My original fix was to simply rip a piece of Date().getTime() and append it to the string in Safari, but mde's implementation above is a bit more elegant and generates a string of the same length for every browser.
A week later we were investigating a bug in the Cosmo UI breaking intermittently in Safari which finally brought us right back to this bug. Over time Safari users were generating event's in the DB and the code to do this obviously used Math.random() as part of the algorithm to generate the event's ID, as these were propagated to the DOM when building the UI to display these events we wound up with multiple events with the same ID which caused some serious problems.
Hope this helps someone out there with their terrible Safari bug they haven't figured out yet!
Wednesday, October 17, 2007, 03:31 PM - QA
Yesterday we pushed out the 0.2 release of Windmill to the eagerly awaiting world of QA. (If you want it installing while you read on, 'easy_install windmill')For those of you who aren’t familiar with Windmill, it is a framework we have built at OSAF for automating tests against our Web Calendar User Interface. In other words, it’s a slick way to save yourself some time by creating tests that will insure the quality of your web page as you are developing them. We at OSAF have some very advanced needs for the project, so the more you use it, the more you will discover all of the other features that make it as impressive as it is.
A few months ago Windmill became an official OSAF project and has been gaining steam every since. After a long period of working out glaring adoption blockers we came out of stealth mode to present at OSCON in Portland and are now actively building our community.
We have made the setup process as easy and well documented as we possibly can, and encourage anyone interested to install windmill and give it a try. We do our very best to respond to all outside feedback, and make ourselves available in the IRC channel (#windmill on Freenode) to solve all your Windmill issues. OSAF takes openness in it's projects very seriously and we are committed to making the project easy for you to get involved, and encourage outside contributors and feedback.
This release includes many new features and bug fixes:
- Windmill Unit Tests, for all your future contributors out there to make sure you didn't break anything!
- Browser launcher support for Safari and Firefox Linux, no more manual proxy configuration.
- Lots of performance and stability improvement, say goodbye to those t-box hangs.
- The assertion explorer tool, now point and click to create your assertions.
- Javascript tests, write tests in Javascript to test deep down in that app's source.
- Commenting in all of the test files, including JSON.
- Windmill support for testing against localhost
- Fully functional WIndmill Integrated Development Environment in all the browsers.
- Controller additions of many wait and assert functions, get better control of your tests.
- Convenience features including automatically giving you the correct focus when working in the IDE, smarter logic in the DOM Explorer.
- DOM serialization, you can now pause your tests and get the state of your page on command.
- Cross domain, frame and window recording and testing
- And much more...
Any documentation you may need is available at our website, http://windmill.osafoundation.org and if you find any areas that could use improvement we encourage you to signup and add to the WIKI.
Other documents you may want to jump to:
- Windmill Mailing List
- The Windmill Book Index
- Installing Windmill
- Logged tickets
- Source Repository
Back Next

Avatar





