Older blog entries for steve (starting at number 107)

When Frys was dumping Lego Spybotics hardware a while back for $29, quite a few DRPG people grabbed one or two of them. So we have a whole pile lying around and nobody knows quite what to do with them. The Spybotics brick is a bit more limited than the original RCX brick and, to make matters worse, they come with a Windows-only "visual" programming environment. I've been setting up programming environments on a Linux box at the DPRG Lab for various microcontrollers and wanted to figure out something useful we could do with all our Spybotics bricks.

I had wired my brick up to one of the Linux boxes and started experimenting when Ed Paradis noticed it and we got to talking. It turns out he's been doing some work on robot swarm behaviour using Spybotics robots. He suggested we try Not Quite C. NQC compiles C-like source to the Lego bytecode format used by the RCX and Spybotics bricks. This is cool because you can write code in a familiar language. Ed gave me a copy of v2.5 and I started playing with it. There is also a newer version 3.0 but it's still beta and didn't compile on Linux or OS X. After a little hacking on the makefile and code, I got 3.0 to compile just fine. (patch submitted to the maintainers of course!)

Like most converted toys, the Spybotics units are not exactly ideal for real robotics use. They lack any sort of sensors that would allow odometery and, after a couple of weeks of trying, we could find no way to make them go in a straight line or do any sort of remotely accurate dead reckoning. On the other hand, a minor hardware hack turned the optical serial link used for programming into a tolerable line-following sensor. And the robot-to-robot IR communication makes them a cheap way of playing with swarm behaviours.

I'm told this month's issue of Circuit Cellar includes an article on hacking the I2C bus on the Spybotic's motherboard to allow more sensors. If it's not too much work, this could make them a lot more useful.

Snow! Yes, snow. In Dallas. In February. Very odd. And a nice power failure to go with it. I've been stuck at the office babysitting servers and watching the little LED bar graphs on the UPSs slowly dimish in size. Fortunately, the power is restored now but it made me miss this month's DPRG meeting, which is disappointing because David Hanson of Human Emulation Robotics was the guest speaker. I was looking forward to hearing him and getting a first hand look at K-Bot, the life-like android head that's been making so much news lately.
9 Feb 2004 (updated 9 Feb 2004 at 22:16 UTC) »

The Robotron: 2084 Challenge

John Walti showed up last Wednesday for our Robotron: 2084 tournament. I may have had a slight home field advantange since I'm familiar with the particular quirks of my Robotron, so we played his choice of rules. Difficulty level 7, extra man every 20k points, winner of 2 out of 3 games wins the match. To limit the time, the winner of the first game was defined as the first player to reach 1 million points, the winner of the second would be the first to reach 2 million, etc. We managed to complete two games in under two hours, thanks the point limits. I was quite pleased to win the first two games; the first just barely and the second by a slightly larger margin. It was very tight though and he was ahead of me as often as I was ahead of him.

Trust Metrics from the 17th Century

Last time I was re-reading Heinlein's, The Moon is a Harsh Mistress, I was struct by the possible applications of the rebel's cell organization to the sorts of trust metric systems being played with these days. Then, a few days ago, I ran across a web log entry noting similarities between mod_virgule's trust metrics and those used by a 17th century social network of Dove breeders - right down to a trust metric attack - "The Count of Villechy, in 1889, was expelled from the club for posing as two breeders in an attempt to boost his ranking". The Count's plot failed because of the hand-calculated trust metrics used by the network. Wow, talk about prior art! It's easy to fall into the trap of thinking we've invented something new when it's been done many times before. I wonder if anyone has put together a definitive history of trust metrics?

I'm finally within sight of being mostly caught up on a lot of the work around here. Susan and I managed to find time to make two DSO performances in January. I might even have enough free time to keep my weblog up to date or work on a few non-work-related projects during February.

Work on the DPRG's non-profit status continues. We received our certificate of incorporation from the State of Texas this month. The next step is filing the 501(c)3 application with the IRS. The Tuesday night RBNO meetings at the DPRG World Headquarters (aka the "warehouse") continue to grow in popularity. We now have two live webcams and an IRC channel during the RBNO.

I had to squeeze in a little time during January to open up the Robotron: 2084 cabinet and tune up the joysticks. A fellow VAPS member has challenged me to a game. This is the first time in 15 years or so I'll be playing against another expert level player. In the 80's I don't think anyone could beat me - but I'm a bit rusty these days, so it'll be interesting to see what happens.

I'm thinking about updating the Robotron logic board to the slightly newer blue ROMs from the yellow/orange ROMs I currently use. At one time this would have been a simple matter of going to any of dozens of Internet ftp or web sites that offered the ROM images for download and then burning a new set of EPROMs. But it appears there has been some sort of crack-down on arcade game ROM images online. Several fellow collectors emailed me the ROM images but it's sad that this has gotten so much harder than it use to be.

Another year gone. I've been too busy to think of any New Year's resolutions (much less post any news updates here). Maybe my New Year's resolution will be to take a little more time off this year. The economy seems to be recovering, so we should be able to be a bit more selective about what jobs we take on this year. That would be nice. I did actually take Christmas day and New Year's day off. That's two whole days in as many months...

What's for lunch today?

Everywhere I've worked, a common problem has been that of deciding where to eat lunch. After a while, everyone has tried all possible restaurants and the process of choosing one becomes tedious. "I don't know where I want to eat, where do you want to eat?". Quite a few years ago, I devised the perfect solution to this but only in the last week has that solution been implemented and given a real-world trial. My solution? The Food Wheel. The Food Wheel is a wheel upon which can be placed the names of all the nearby restaurants. Someone spins the wheel. It comes to rest on a restaurant and that's where you eat lunch. Spinning the Food Wheel takes just a fraction of the time taken by the typical "where do eat" discussion.

But until a week ago, my idea was just vapor-ware. Just an idea that got repeated until someone would say, "so, build it already". Last week, Susan took the initiative and turned the Food Wheel into reality. She bought a small lazy-susan (which spawned a few jokes of its own), and used the Dymo labeler, which normally generates little sticky labels for our servers, to put the names of a couple of dozen nearby restaurants on the wheel. And, I'm pleased to report, it actually works. It has been used several times and came up with an acceptable solution every time.

In a strange coincidence, Freshmeat carried an annoucement for a Java applet called "Wheel 'O Yum" this Wednesday which is based on the same idea. It's probably not as much fun as having a physical wheel to spin but it's still pretty cool.

The demise of Red Hat Linux

We've run Red Hat Linux on our servers since version 5. Now we're contemplating what distro to use in the future since Red Hat has announced the end of Red Hat Linux. They will continue to make their high-end Enterprise Linux but it'll cost $1500 - $2500 per server per year. And they're using security updates as a sort of legal loophole that lets them get around the GPL and prevents you from buying one copy of the software and installing it on multiple servers. Supposedly, you can still download the source but if I wanted to compile a whole GNU/Linux system from source, I wouldn't be using a distro like Red Hat in the first place.

I installed Fedora on a test box to evaluate it but it's clearly not intended for serious use in a production environment. It's intended as a bleeding-edge distro for "enthusiasts and developers" only. From what I can tell, it's just a new name for Red Hat's beta distro, Rawhide. Even if someone wanted to use it on a server, it would be impossible - each release is only good for about three months before it's replaced by a new one and support for the old one is dropped. We don't even reboot our servers every three months and I sure don't want to be reinstalling the OS every three months! And then there's the issue of Red Hat trying to trademark the Fedora name and essentially steal it from an existing project.

The only good news on the Red hat front lately is Fedora Legacy, a project that will attempt to offer security patches and support for Red Hat Linux 9 after Red Hat abandons it in April. Looks like we'll stick with that until we can find a new distro. And if some new distro springs up to take it's place, I think they're going to be a lot of takers. I know a lot of folks in the same situation we're in who relied on Red Hat Linux. It's really hard to believe Red Hat did something this stupid. They've effectively found a way to do what none of their competitors had been able to - reduce Red Hat's market share drastically...

mod_virgule and UTF-8 weirdness

I'm seeing more and more UTF-8 related issues pop up in code lately for some reason. Much of the debugging work I've done with the ODP XML dumps has been tracking down illegal XML characters and invalid UTF-8 byte sequences.

Now I've run across a related bug in mod_virgule. The trust metrics on robots.net stopped working a few days ago and today I took some time to track down the reason. It turned out to be an interesting little issue with the way mod_virgule handles the storage of data in the XML database. I've implemented a temprorary work-around that has things working safely again but I think a longer term fix is needed.

I posted to the virgule_dev mailing list about the problem but it's been pretty much dead for the past few months. Basically what happened is a foreign user posted some data to their user profile using a funky non-UTF-8 compatible character set. The result was a corrupt profile.xml file for that user account. That, in turn, led to Apache segfaulting during each subsequent attempt by mod_virgule to process the trust metric. Because of the segfault there was no error reporting to alert anyone of the problem and it took several days before anyone noticed that something was wrong.

The root of the problem seems to be that mod_virgule is simply taking whatever raw data a user puts in a form and passes it directly to xmlSetProp(). This works great as long you only give it valid UTF-8 data but it's not designed to work on anything else. It seems to me that four things need to be done to fix this:

  • Pages need to explicitly specify UTF-8 as the doctype
  • All form data needs to be validated before passing to libxml
  • Invalid data needs to be converted or rejected
  • The trust metric code needs some additional error handling
If anyone has any thoughts on this or has had a similar experience with mod_virgule, I'd be curious to hear about it.

After playing with the VIA Technologies Mini-ITX board for the robots.net review, I decided to buy one and put together a system for NCC to try out as a Linux server. I immediately ran into a problem - it's hard to find anyplace to buy one. We normally buy our hardware through Tech Data, a large national distributor or through ASI, a somewhat smaller distributor that specializes in hardware produced in Asian countries. Neither carries VIA Technologies products. I tried a number of local hardware distributors without luck and finally ended up with the local Frys store as the only option. Frys is fine for some things but it's not a place I like to buy anything mission critical like a server motherboard. But I convinced myself it couldn't be that much of a risk and picked up a Mini-ITX M10000 board at the Irving Frys Wednesday morning.

Immediately upon opening the box, I realized I was in trouble. The motherboard was not in an anti-static bag and didn't have the pink anti-static mat under it like the demo we reviewed, it was just lying in the bottom of the cardboard box. It was missing assorted jumpers and a few other parts. And the bottom of the board had several discolored areas of the type caused by severe overheating. I was pretty sure it was toast but connected it to a power supply and monitor to make sure. Yep, it was dead.

Upon further examination, I noticed a couple of square white stickers on the outside of the box that looked like some sort of Frys quality control info. They had handwritten dates and several paragraphs of fine print about manufacturers warranties and such. A couple of lines into the first paragraph of the second sticker was the phrase "this product may have been returned". Yikes. Someone had bought this board, toasted it, returned it to Frys, and they'd put it back out on the shelf with the new products.

Back at Frys, I attempted to return the board and get an actual new, unopened, unreturned, untoasted one. It took a little work to get them to take it back. At first they said I couldn't return it because I hadn't brought back the anti-static bag and the CD (I hadn't even noticed the missing CD until now). I pointed out that it was also missing some jumpers and was completely dead. The Frys' return clerk decided to check another box from the shelf and see what was in it. Interestingly, the box he pulled was missing the CD, the ATX back plate, and the cables. Turns out he did exactly what I did. He grabbed a box from the shelf thinking it was new but it had the well-hidden "this is a defective return product" blurb on it. This convinced him to give me a refund.

I checked the shelf but all four of the remaining M10000 boxes were returns. Yesterday I drove out to the really big Frys in Arlington and they had about ten VIA Mini-ITX boards. I found a total of four M10000 that weren't customer returns and bought one of them. I looked around at some of the other motherboards and it looks like it's SOP for Frys to mix defective customer returns in with new products on the same self. Most reputable stores have a special section where they offer customer returns at a discount.

Anyway, the new board was just like the demo we reviewed; well packed, anti-static bag, all the parts were there, and it fired right up the first time and ran beautifully. In the end, I guess there are two morals to the story. 1) Be careful when buying motherboards at Frys and 2) VIA Technologies needs to work on getting their product into normal distribution channels like Tech Data and ASI.

I've been catching up on my ToDo list the last couple of weeks. Most of it was boring work-related stuff. But among the fun things, I finally got the review of VIA Technologies Mini-ITX board posted on robots.net. The board will now pass on to the DPRG where it will hopefully end up in a robot or be put to some other equally creative use. I liked it so much, I think we may buy a couple of Mini-ITX boxes to try out as Linux servers at NCC. If nothing else, they make a lot less noise than our new Dell 1750 does.

I also managed to put a few more fixes and patches into my fork of the mod_virgule code and released a new version today. The libxml2 patch has been in place since the last release and has working pretty well. I added some minor cosmetic fixes today to make the XML output nicely formatted again. I also incorporated a patch from James Henstridge that add RSS link elements for diaries.

To get away from the computer for a while this afternoon, we went to an exhibit of Martha E. Simkins paintings at the Irving Arts Center.

I seem to have fallen into a groove of only posting news updates once a month so I guess it's about time to sum up the exciting events of September. Let's see...

Susan and I went to the Joan Mitchell exhibit at "The Modern", the new Ft. Worth museum. Mitchell is by no means my favorite artist but it was very interesting that you could look at what appeared to be just a big Jackson-Pollock-like mess of colors on a white background and get the impression of a city or snow-covered trees and then find out 1) that the other people standing around got the same impression and 2) that the fine print on the plaque describing the painting confirmed your impression and she had actually painted what you thought she'd painted. You can find a few samples on Google Image Search.

We also made an early visit to the State Fair of Texas. We usually don't make it until October but managed to get there on Monday, Sep 29th this year. I think that's a first for us. And going on a week day is always considerably less crowded than weekends. All the usual things were seen and done. Eating corn dogs and tornado potatoes, checking out all the new concept cars in the automotive exhibits, watching the bizarre variety of farm animals being prepped for contests, the weird craft exhibits. One of the high points this year has to be the very nice rendition of the USS Enterprise (NCC-1701) created from a toilet seat and assorted plubming components. A few things were missing this year though; no butter sculpture, no shooting Bin Laden with a paintball gun contest. And while we didn't take in the Birds of the World show this year we did check out the nifty Texas Garden Railway that was added to the Texas Discovery Garden Center.

Otherwise, most of my time seems to have been spent on work-related things. I didn't manage to get some time in working on robots.net and the robotics category reorganization project at ODP. The data dumps from ODP have started showing UTF-8 errors again but there's a good chance the source of the errors has been found and will be fixed soon. Meanwhile, the webcam situation at the DPRG lab is improving. We've run a camserv relay live at the last couple of RBNOs with good results. Hopefully we'll have the second camera online soon.

98 older entries...

X
Share this page