July 26, 2004


"Honey, do your horse"

We went out for drinks last Friday, people from work, and I brought my wife. Near the end of the evening after many drinks, Sue said "Honey, do your horse." Intrigued, or perhaps confused, people began looking at me extpectantly. I felt the pressure to perform, and tried to relax. The key to doing a good horse, and I can't emphasize this enough, is that you must be totally relaxed. This leads to a kind of serious look on your face, which leads people to believe you take this seriously, and that somehow makes it funnier. So it starts with a deep breath, a high-pitched wheezing, followed by a stuttering neighing sound, and finally the flapping lips part. If you're standing, throw in a clawing motion with one leg, like you're making a line in the dirt. For some reason they found this hilarious. Glasses were removed, to wipe the tears. "Again!" they cried. All in all, a fun evening, made just a little more memorable by a farm animal imitation. The next day, the team had a project meeting. The atmosphere was more relaxed and enjoyable, even though it was still work. When the conversation turned to Friday's night out, it was agreed that what people remembered most was my wife's plea to do my horse. We're definitely going out again with these people, and I'll be ready. I'm working on my goose.

Posted by randy at 04:07 PM


I, Robot movie

I, Randy, saw i,robot this weekend, and I have to say that even having really wanted to like it, I was dissapointed. There's something about the computer-generated graphics that is still not as thrilling or interesting as real actors. It reminded me of Attack of the Clones, which had so much CGI in it I felt like I was watching a cartoon. I liked the Audi, a futurized TT2000. I liked the demolition bot. But the spider-man gymnastics of the robots just seemed way too out there. As I watched it I just kept thinking of all these other movies, like Terminator when the broken, red-glowing evil robot is limping towards the good guy, apparently unstoppable. I guess there was no suspense for me, because aside from the mystery of who was behind the murder and revolution, most everything else was predictable. And even the mystery of who was the mastermind, for some reason, didn't hold any intrigue for me, because there wasn't any character development aside from Will's character. I'll give it two stars out of four.

Posted by randy at 04:04 PM

July 20, 2004


Firefox tuning

I just did some tweaking of my Firefox web browser, and it definitely seems snappier after the changes. People have measured a 25-30% speed increase by making these tweaks to various network parameters in the configuration. I've posted my user.js file here for you to plagiarize if you like. I have to give full credit for this file to "laszlo" from the Mozillazine forums. Thanks laszlo! I should also mention that I highly recommend the Noia2f skin, and for extensions, I use Googlebar, and WebDeveloper. I haven't even begun to explore all of the handy extensions that are now available. By the way, this post is my first attempt at using Ecto 0.4, a windows client for Moveable Type, and I have to say it's definitely not ready for prime time. It locks up and does weird things, so I'm finishing this entry in the normal web interface. To use this file, copy and paste it into a new text file, and save it as user.js. Then move it to your Firefox profiles folder.
user_pref("browser.blink_allowed", true);
user_pref("browser.cache.memory.capacity", 65536);
user_pref("browser.cache.disk_cache_ssl", true);
user_pref("browser.chrome.load_toolbar_icons", 2);
user_pref("browser.display.enable_marquee", true);
user_pref("browser.display.screen_resolution", 81);
user_pref("browser.display.show_image_placeholders", false);
user_pref("browser.related.enabled", false);
user_pref("browser.urlbar.clickSelectsAll", true);
user_pref("browser.xul.error_pages.enabled", true);
user_pref("clipboard.autocopy", true);
user_pref("content.interrupt.parsing", true);
user_pref("content.max.tokenizing.time", 2250000);
user_pref("content.maxtextrun", 8191);
user_pref("content.notify.backoffcount", 5);
user_pref("content.notify.interval", 750000);
user_pref("content.notify.ontimer", true);
user_pref("content.switch.threshold", 750000);
user_pref("dom.allow_scripts_to_close_windows", false);
user_pref("dom.disable_image_src_set", false);
user_pref("dom.disable_open_click_delay", 1000);
user_pref("dom.disable_open_during_load", true);
user_pref("dom.disable_window_flip", true);
user_pref("dom.disable_window_move_resize", true);
user_pref("dom.disable_window_open_feature.close", true);
user_pref("dom.disable_window_open_feature.directories", false);
user_pref("dom.disable_window_open_feature.location", false);
user_pref("dom.disable_window_open_feature.menubar", true);
user_pref("dom.disable_window_open_feature.minimizable", true);
user_pref("dom.disable_window_open_feature.personalbar", true);
user_pref("dom.disable_window_open_feature.resizable", true);
user_pref("dom.disable_window_open_feature.scrollbars", true);
user_pref("dom.disable_window_open_feature.status", true);
user_pref("dom.disable_window_open_feature.titlebar", true);
user_pref("dom.disable_window_open_feature.toolbar", true);
user_pref("dom.disable_window_status_change", true);
user_pref("editor.singleLine.pasteNewlines", 0);
user_pref("inspector.blink.border-color", "#CC0000")
user_pref("inspector.blink.border-width", 1);
user_pref("inspector.blink.duration", 2000);
user_pref("inspector.blink.invert", false);
user_pref("inspector.blink.on", true);
user_pref("inspector.blink.speed", 200);
user_pref("inspector.dom.showAnon", true);
user_pref("inspector.dom.showWhitespaceNodes", true);
user_pref("layout.word_select.eat_space_to_next_word", false);
user_pref("layout.word_select.stop_at_punctuation", false);
user_pref("layout.xml.prettyprint", true);
user_pref("middlemouse.contentLoadURL", false);
user_pref("middlemouse.paste", true);
user_pref("middlemouse.scrollbarPosition", true);
user_pref("mousewheel.withcontrolkey.action", 1);
user_pref("mousewheel.withnokey.numlines", 10);
user_pref("mousewheel.withnokey.sysnumlines", false);
user_pref("mousewheel.withshiftkey.action", 3);
user_pref("network.http.max-connections", 32);
user_pref("network.http.max-connections-per-server", 8);
user_pref("network.http.max-persistent-connections-per-proxy", 8);
user_pref("network.http.max-persistent-connections-per-server", 4);
user_pref("network.http.pipelining", true);
user_pref("network.http.pipelining.maxrequests", 8);
user_pref("network.http.proxy.pipelining", true);
user_pref("nglayout.initialpaint.delay", 750);
user_pref("plugin.expose_full_path", true);
user_pref("plugin.scan.Acrobat", "6.0");
user_pref("security.warn_entering_secure", false);
user_pref("security.warn_entering_weak", true);
user_pref("security.warn_leaving_secure", false);
user_pref("security.warn_submit_insecure", false);
user_pref("security.warn_viewing_mixed", false);
user_pref("signed.applets.codebase_principal_support", true);
user_pref("ui.submenuDelay", 50);
user_pref("ui.textSelectBackground", "darkblue");
user_pref("ui.textSelectBackgroundAttention", "lightgreen");
user_pref("ui.textSelectForeground", "white");
Happy browsing!
Posted by randy at 10:13 AM | TrackBack

July 15, 2004


Website facelift

Well, I'm finally basically done giving my robotics site a major facelift (actually a complete re-write). I tried to keep it very simple and clean, using style sheets and minimal graphics. I posted all my robot pics and some new ones, and lots of new pieces of code in the code library section. I also added a section on consulting. Let me know what you think! It's here, at http://randy.gamages.com.

Posted by randy at 05:57 PM


Cool new robot

Here's a site in Korea, a company called Wowrobot. It's a robot that's pretty much all servos, and looks kinda like my Vito robot, but with way cooler programming. The link is here. There is a video half-way down the page that is amazing. I think robots this size and with this kind of capability are going to become much more popular in the next 2 years.

Posted by randy at 03:35 PM

July 07, 2004


Firefighting Update

It was a sad day when, two days before the Firefighting contest, I realized that I was no closer to finding a fixing a bad bug in my firmware. It was doing a sudden twirling motion, for no apparent reason, in the middle of its run. The evening turned from sad to tragic when, while troubleshooting on a table three feet high in the concrete basement (can you see where this is going?), it went into its twirling routine and spiraled right off the table, down onto the floor. Robo-guts everywhere. It was all I could do to calmly turn off the power switch and head upstairs to think about my next move. I had been hunting this bug for the better part of a week, and I finally had to admit that it had won. I would not be competing this year.

At the show, my wife and I had a great time volunteering for the contest and manning our Gamatronix booth, with no time to compete in the contest anyway. I made some good contacts while we were there, and I'm ready for next year.

As it turned out, fixing the bot was a 15 minute job, mostly involving replacing all the broken plastic stand-offs that hold the different layers together. But when I powered it up again, one of the motors was running in a very jerky, intermittant way that was a show-stopper, bug or no bug. This turned out to be fixed by replacing the motor - the shaft/encoder coupling was apparently damaged in the fall.

As for the killer bug, that too was a simple fix, as most bugs are once you find them. I was glad for it in the end, because this wasn't a bug in my fire-fighting code, it was a bug in the Gamoto firmware, a particularly nasty one that was hard to repeat, and that really needed to be fixed before my customers ran into it. So I guess you could say there's a reason for everything.

As a last note, I posted a video of Espresso running through the maze, in the firefighting section of my site. It's at the bottom of the last page, and it's a big file - I'll try to post some smaller ones.

Posted by randy at 03:04 PM