The Deliverator – Wannabee

So open minded, my thoughts fell out…

Archive for March, 2008

Panic…Don’t Panic…Panic

Posted by Deliverator on 10th March 2008

As Ryan noted earlier today, Silverfir had an attack of the Hiccups. Ryan noticed what appeared to be some sort of file corruption. We had some notices from Silverfir’s RAID controller, a Compaq Smart Array 5302, a few weeks ago that one of the drives in the 14 disk array (which Silverfir uses to store all the websites it hosts) was having problems. At the time, I didn’t worry worry much, as the array was constructed in such a way that two drives could fail at the same time without data loss. In addition. I designated a drive in each array as a hot-spare. Essentially a hot-spare is a drive which is kept unused in reserve so that if a drive fails, the hot-spare can automatically be brought in as a replacement without the server maintainers needing to so much as lift a finger. Still, given the age of the drives in the array and my own real world experience of hard disk failure rates, I was more than a little worried. I headed over to check on the server in person, while Ryan went to work troubleshooting the problem remotely. By the time I got there, Ryan had already dismounted the array and was running a fsck (a type of filesystem integrity check) on the array. The scan found a number of file system issues, most likely due to power failures during disk writes. Silverfir had its own UPS, but it was recently removed do to a dead battery. We never set up UPS monitoring/management agents, so all the UPS was doing was preventing the briefest browouts and power outages from causing problems. Thankfully, Silverfir uses a journaling file system and the file system check was able to repair all the issues with little to no apparent data loss.

On my end, I found no idiot lights or other indications of actual drive failure. None the less, I went to work tarring up important (to me at least) data directories and transferring them over the network to my laptop. While I do occasionally back up my WordPress database, user account home directory and other assorted files, I don’t do it nearly as often as I should or in a real systematic fashion. Silverfir’s users are largely left to back up their own damn data themselves, thank you very much! This is a nice sentiment in theory, but the lack of a locally available backup drive or of a fat pipe for internet based backup has made this problematic.

Silverfir has largely been a stompbox for Ryan and I, and as a result hasn’t exactly received the same diligent administrative attention that we would apply to a “real” server. We have largely just let it coast. I think we are both reaching the point where a little systematic backup and other prophylactic measures would give us both some peace of mind. Towards that end, I installed a PCI->USB 2 adapter card to allow an external hard disk to be hooked up for backup purposes. I am going to purchase a large enough backup drive that we should be able to take quite a few backup points before needing to delete intermediate data points. I will also likely donate a UPS and some other hardware for the good of the order.

Long term, I would like to get Silverfir on some more modern, compact, lower power, quieter server hardware; achieving as much reliability through hardware as possible. I think Ryan on the other hand would just assume move Silverfir onto commodity desktop hardware and achieve peace of mind through virtualization and/or rigorous backup. I think both approaches have their merits, so at some point we will need to have a discussion. For now, I think we are both happy to let the server go back to coasting (once we get the backup drive set up).

Posted in Linux, Rants and Raves, Tech Stuff | No Comments »

The $4 Fisheye Lens

Posted by Deliverator on 6th March 2008

Last week, I used my hacked $30 CVS video cameras in Portland to capture robot’s eye view footage during the FIRST competition. Some of the footage was good and some bad. You can judge for yourself on the new Titan Robotics Youtube Channel. Regardless, I’ve had a lot of fun and the cameras have held up much better than I expected. The robots take quite a beating during the competition, so I’ve never wanted to risk anything more expensive. Still, I would like to get the best possible footage out of the cameras as possible. One issue that is quite evident in the footage is a high degree of shaking, especially from the foward facing of the two cameras. The front camera was mounted (with zip ties no less) to the robot’s flag holder: a glorified piece of thin pvc pipe. For the upcoming Seattle FRC regional, I hope to find a better mounting location/method and reduce the vibration. Another issue that has nagged at me is the narrow field of view. You just don’t see enough of the field to have a good sense of where you are and what is happening during the match. You also don’t often get to see those dramatic moments where a competitors robot is screaming across field and whacks into you. All you see (if anything) is the robot entering into the frame at the last moment and whacking into you, causing a lot of vibration induced distortion. I decided to try and find a way to get a wider view of the field without compromising my no tears if it breaks rule.

One thought I had was to mount multiple cameras on the front of the robot oriented at different angles with overlapping fields of view. I could then take the footage from each of the cameras and digitally combine it to produce a small screen version of the Cinerama effect. I took a stab at this and actually got it to work, but the results weren’t as good as I had hoped and the process of syncing all the footage was somewhat time consuming. I decided to take a different approach and look for a way to get a wider angle out of a single camera. A few minutes searching turned up an article by Hank Dietz from the University of Kentucky that outlined his experiments with inexpensive door peephole viewers for use with inexpensive digital still cameras. His experiments mostly centered around a peephole viewer made by Deltana. I was able to find the exact same viewer (though it was unbranded) at Home Depot for less than $4.

I wasn’t too impressed with the Deltana for this unintended use. The quality of the glass used was very poor and easily acquired scratches. The threading on the two shaft pieces was quite loose and the threading only continues for a short way, making it difficult to adjust the lens in and out to any great extent. The highly polished brass colored metal making up the shaft that the lens elements are mounted within results in lots of internal reflections. All the lens elements are pretty firmly fixed in place, making it difficult to adjust where the image is cast. I was able to influence this somewhat by taking cutting off the end of the tube just short of the first lens element using a dremel with a metal cutting disk attached. The dremel made short work of the tube, but produces a lot of fine metal dust which is difficult to clean off, so I recommend placing some putty or other material inside the tube to keep metal dust from finding its way inside. Dietz in his article used hot glue to afix his lenses to cameras, but robots get hit hard, so I epoxied my modified peephole to the front of one of my CVS cameras and let it dry overnight. The tube size of the Deltana is just right for epoxying to the front of the CVS camera. The Deltana peephole definitely works, but even with the dremel shortened tube, it casts a fairly small image on the imaging sensor. If I were using a higher end digital camera, this wouldn’t be a problem, as even your $100 digicam these days offers 5+ megapixel stills. Unfortunately, the CVS cameras are limited to a max of 640*480. Once cropped down to only the image area, this doesn’t leave a lot of pixels to play with. I decided to go back to the store and see if I could find a better solution.

I ended up finding another peephole for $10. This one had a wider shaft than the Deltana and features much higher quality glass. The rear lens element is held in place against a lip inside the cylinder using a circular clip, which I was easily able to remove. I was also able to remove the front elements. I was able to take some length off the tube using the dremel tool. An enterprising individual with a metal lathe might bore down the inside of the cylinder a bit to produce to allow the rear lens element to be set closer to the front lens elements, producing a still larger image on the image sensor. Because I was able to access the inside of the cylinder with this model, I took some Krylon Ultra Flat Black spray paint and painted the inside of the tube to eliminate reflections. I also decided to ditch the front cap and rear mounting hardware to reduce the size of the total assembly. A couple layers of electrical tape hold everything together quite nicely. This new and improved model produces a much clearer, larger image. Unfortunately, the viewing angle on this one was only 160 vs 200 degrees (claimed, although both look significantly less) on the Deltana. I am going to hold off on epoxying this one to one of my 3 unmodified CVS cameras and see if I can find a wider angle version of the same lens before the next competition.

Here is a picture taken using the $10 modified peephole lens held up to my N95.

Door Viewer Fisheye Lens

Posted in General, Photography | No Comments »

MetaGeek, Hard Not to Love/Hate this Company

Posted by Deliverator on 5th March 2008

MetaGeek makes a neat little gadget called the WiSpy, which is basically a poor man’s spectrum analyzer for the 2.4 ghz band. A spectrum analyzer shows you a realtime graph of radio power vs frequency. Because the 2.4 ghz band is used by a plethora of different consumer wireless devices including 802.11b/g/n WiFi gear, cordless phones, wireless security cameras, baby monitors, wireless home theater speaker systems, microwave ovens, etc., I often encounter interference issues between these disparate devices. The WiSpy has come in particularly handy for me while setting up or troubleshooting wireless networks for clients. I’ve had clients whose wireless networks drop out sporadically. With the help of the WiSpy, I’ve been able to demonstrate to clients in a visually convincing way that they need to get a new phone (or in the case of non spread spectrum devices, change the channel), or that their microwave oven is leaky.

I purchased a WiSpy from Ken from Metrix after seeing him play with one at SWN Hacknight. I paid around $100 for my WiSpy. At the time I purchased mine, there had long been promises of an improved version with an external antenna connector (useful because you can plug in a directional antenna and use it to track down a specific signal source), more rapid frequency hoping, and finer frequency and power discernment, but the company had failed to deliver on their announcements and people were becoming skeptical. The existing WiSpy did what I wanted, so I paid my $100 and was happy to do so. Several people including Rob Flickenger hacked their units to add an external antenna jack. In doing so, they discovered that inside the Wispy’s custom plastic case was a generic, notebook style, wireless mouse dongle. There was even a button on the PCB that one would press to associate it with the non-existent mouse. In essence, version 1 of the WiSpy was $5 of non-custom hardware and the other $95 was going towards the software.

At some point, MetaGeek decided that the WiSpy (which was still the same old mouse dongle + software) was now worth $200. The software, called Chanalyzer has always been a free download from their website for existing owners and has steadily improved over time both in terms of stability and in features. I’ve been using the 3.0 version of the Chanalyzer software for quite some time now with my mouse dongle/WiSpy and the software was finally feeling mature. Metageek finally got around to introducing the long promised version 2 of the WiSpy hardware, which it is calling WiSpy 2.4x. The modest bump in functionality (for most users) on the 2.4x comes with a 4x increase over the WiSpy’s original price to $400. This puts it well outside the geek toy price range and I know this move disappointed a lot of the original WiSpy’s userbase. Now, a lot of WiSpy users are up in arms as the latest versions of Chanalyzer 3.0 no longer supports the version 1.0 Wispy. The way that MetaGeek went about doing this was damn sneaky too. I fired up Chanalyzer today to troubleshoot an interference issue and was greeted with message stating the a new version of the software was available. Upon upgrading, I was locked out of using Chanalyzer with a message stating more or less that Chanalyzer was no longer supporting the original WiSpy, but I could upgrade for a mere $300 if I wanted to continue using Chanalyzer or would have to downgrade to Chanalyzer 2.x if I wanted to keep using my WiSpy.  MetaGeek’s response to one p’d off user was less than helpful. They cite typical hand-wavy difficulties in continuing in supporting a single codebase across multiple hardware platforms going forward…yada yada yada. I can understand that going forward they want to emphasize support on their current product line, but the point is that they already have a 3.0 version which works well with the version 1.0 hardware. To suddenly force WiSpy 1.0 users into either a significant downgrade in functionality or to pay a very heft $300 has all the appearance of a dirty money grab. Pulling the carpet out from under a customer in an extent to further shake their pockets is never a smart move imo and could very easily backfire. The WiSpy 1.0 hardware already functions quite well with several third party software packages. EaKiu for the Mac is particularly impressive. I can very easily see a backlash to MetaGeek’s behavior in the form of one of these software packages going out and simply supporting a commonly available mouse dongle. The equivalent of WiSpy 1.0 hardware for $30 or less combined with free software would satisfy most people’s use cases for the WiSpy and would probably result in a large scale loss of customers for MetaGeek. The only equitable action imo is for MetaGeek to allow WiSpy 1.0 users the option of continuing to use the last compatible build of 3.0 as an unsupported option.

That about wraps it up in the hate department. On the love side, MetaGeek recently released a free utility called Inssider (not a misspelling) which is a slick wireless network detection utility. It is obviously designed as a replacement to Netstumbler on the Windows platform.  Netstumbler has not seen a new release in a long time and doesn’t work with a lot of the newer Wifi cards or on Vista. The release of a viable alternative on the Windows platform is welcome news indeed. Inssider is not yet up to par with Kismet in a lot of ways, but the two aren’t really direct competitors and will probably both find their uses. It is pretty hard to complain about free, anyways (although I usually find a way).

Posted in Rants and Raves, Tech Stuff, Wireless | 2 Comments »

Home Again

Posted by Deliverator on 1st March 2008

Arrived home safe, but absolutely dead on my feet. I am soo tired I am literally having trouble standing and might just fall asleep in my computer chair (I unfortunately arrived home to some work that cannot wait). Oh so worth it though:

Titan Robotics Team Photo - Portland 2008

Posted in General, Titan Robotics Club | 1 Comment »

2008 FIRST Portland Regional – Day 3

Posted by Deliverator on 1st March 2008

Today is the final day of competition here in Portland. Everyone is pretty tired after a couple hard days and sleepless nights, but everyone is in good cheer and looking forward to the day’s events.


  1. Titan Robotics now has its own Youtube Channel, appropriately named TitanRobotics, complete with trimmed versions of yesterday’s Robocam videos.
  2. The TRC won its first match of the day and lost the second. One more qualifying match before Alliance selection and the playoffs.
  3. In the final qualifying match of the day, the TRC’s alliance defeated its opponent to claim the #7 seed. The TRC finishes the qualifying matches having won 7 matches and lost 1, although our official record only reflects 6 and 1 as we were chosen as a “filler bot” for one of those matches (mentioned yesterday). Alliance selection is occurring now!
  4. The top seeded alliances basically picked each other, moving us up to 5th seed from 7th. After a poor showing by STAMP in picking a team number that didn’t exist, TRC 492 ended up forming an alliance with teams 1983 and 2130. Everyone is now breaking for a quick lunch and discussion of strategy with our alliance partners followed immediately by the playoff matches. The top 3 seeds are going to be very, very tough this year. Teams 368, 2046 and 100 in particular have built absolutely outstanding robots and are partnered with strong alliance partners. Our best shot at winning imo is to simply out drive our opponents and keep them away from the two trackballs, which they need to utilize in order to outscore us. If we can keep the balls on the ground and away from our opponents, the game reduces to one of laps and penalties. If we can drive fast, defensively and penalty free, we have a shot.
  5. The drive team did an excellent job of keeping the opponents away from their trackballs in our first quarterfinal match. This left our alliance partners free to score and thanks to some severe penalties against the other side, we won our first match 38-0. The playoffs are double elimination, so we will be facing the same alliance again shortly.
  6. We were declared the winner in quarterfinal match two and we were busy celebrating when 15 minutes later the arena announcer reversed the ruling and declared the other team the winner due to a mis-reporting of penalties. Rather than going on to the semi-finals, Alliance 5 will have to play a run-off match to decide the winner.
  7. Alliance 5 was eliminated in the tie-breaker match. Our partner 1983 broke down prior to the match and team 835 was automatically brought in to fill the space. 835 is not a hurdler, which didn’t fit well with our overall strategy. On top of that, our bot would not move an inch until about halfway through the match. Play was suspended for quite a while a few matches prior due to a field malfunction and I am unsure whether the same issue cropped up here. Between the match result reversal and the inability to effectively compete in the tie-breaker, it was a disheartening way to end a tournament. I was very pleased with the way the drive team made the best of the robot’s capabilities and played some awfully scrappy matches to get this far. We will be back again in the not to distant future for the Microsoft sponsored Seattle regional.

Posted in Titan Robotics Club | No Comments »