It’s All in There Somewhere

I want a place to stash stuff on the web. I want to be able to find it later without remembering where I put it. I want it to be relatively secure from other people’s prying eyes but it would be nice if I could make certain things accessible to anyone or at least to people to whom I had given explicit permission for access.

I want to be able to stash anything from a short text note to a complete document, a simple URL to an entire web site, a few random values to an entire database. I want it to be accessible from my desktop, my laptop, my tablet, my phone, or any of the numerous, internet connected gadgets that are cropping up all over the place.

I’d like to be able to get a readable representation of the items in the stash using a web browser. This may (or may not) require a web application to massage the items into a readable form.

This post began when I sat trying to figure out where to stash a reference to a web site that I was interested in along with some brief notes about it. This comes up more often than I would have expected and I have tried many different solutions for it.

The first, most obvious solution was bookmarks. The problem with bookmarks is that they are browser dependent and require that you either use a browser that maintains a central registry of your bookmarks or that you copy your bookmarks manually from platform to platform. The central registry approach requires that you trust the operator of the registry, usually not a problem for me but definitely a problem for some of my more paranoid acquaintances.

Another problem with bookmarks is finding stuff that you bookmarked later. None of the bookmark schemes has a particularly good search mechanism. Perhaps I gave up on them before they implemented something useful but I have this huge ball-of-mud collection of bookmarks that I  have been collecting for ages and I have all but stopped adding to it because I can’t find anything when I look for it and I can’t trust that the link will still be active if I do find it. Bookmarks also ignore the aspect of wanting to store documents and other data in the repository.

An approach that addresses that last objection is to store notes on Dropbox or one of the other network file systems. That has (at least) two problems. First, you have to be able to access the service from everywhere. My employer views these stores as potential data leaks for corporate espionage and blocks them with our firewall. This would probably be true of any service that provided the features that I am looking for. Second, storage is less than half the problem. Finding the data is the harder part. Rendering it in a readable fashion can be challenging as well.

Then there are the online notebook applications like Evernote. They are pretty close to what I’m wanting but they are also kind of pricey. I suppose a business model that meets my requirements while not costing an arm and a leg is another requirement. I should look at Evernote closely and see where it falls short.

Perhaps I just need to go start hacking away and see what I can come up with. If it is useful for me, it will be useful for other people. And I’ll learn a lot about myself and the way I use the computer along the way.


Web Development is Just Plain Fun!

I’ve been reading a good book lately. It’s called RESTful Web Services and it’s by Leonard Richardson and Sam Ruby, O’Reilly Media, Inc, May 8, 2007, ISBN 0-596-52926-0. It got me past an old obstacle that I basically ignored when I initially encountered it, which is how to access the web through a proxy from Ruby. I updated my Rails homepage, a private affair intended to give me quick access to a number of links that I access frequently. While I was at it, I figured out how to display the RSS feed of this blog in the center column of the homepage.

So, how does this make me feel? Totally empowered and back on my game. I haven’t done any web development in so long that I was beginning to think I wouldn’t be able to catch up with all the new developments. I guess I knew better deep down but it was still exhilarating to finally update my homepage after literally years of not changing anything on it but the content.

I also started looking in to Amazon Web Services but that’s a topic for another post.

Powered by ScribeFire.

Adventures in Robot Building

It’s all about learning, right? I’ve been building a robot from scratch, as you may know if you’ve read some of my previous posts. I started out with only a vague idea of what I wanted to do. I started by saving the miniature balsa crates that the grocery store sells tangerines in. That is a good size for a robot, I thought to myself.

Then I discovered the Arduino. I knew immediately that I wanted the robot to have an Arduino for a brain. Next, I bought a dual gear motor kit and some wheels. I assembled the kit and discovered that it wasn’t going to mount very easily on my tangerine crate. So, I thought about it a while and discovered that if I took the crate entirely apart (it was only stapled together), the side panel was exactly the right size to mount my wheel assembly on.

Originally, I wanted to build a robot with wheels front and back. My BOEbot uses a rear roller for stability instead of having two sets of wheels so I wanted to try something different. After some more thought, I decided to compromise and buy an omni-directional caster for the stability point of my robot. By this point, I had mounted the wheels on one end of the side panel and the caster on the other. I had also purchased an H-bridge motor driver shield to control the wheels (shields are the daughter boards that plug on top of the Arduino so conveniently).

The motor shield came as a kit and I assembled it per the instructions. Try as I might, I never got it to spin my motors. I spent several afternoons troubleshooting the problem and decided that I probably burned out one of the chips on the motor shield. I decided that I should have installed a socket instead of soldering the chip directly to the board as the kit instructed. So, I ordered some replacement chips for the board and proceeded to try to desolder the chip in question. That was harder than it sounded. I haven’t yet managed to desolder the chip in question.

While I was ordering the replacement chips, I discovered an already assembled H-bridge controller that cost less than half what I paid for the motor shield kit. The mini-controller wasn’t as capable as my motor shield but it was adequate for driving the two motors on my robot. All it required was that you solder two, eight pin headers to either side of the board. I was sold. If I could repair the motor shield, I could use the little controller board for another project. If I didn’t get the motor shield fixed, I would still be able to get my robot rolling on it’s own power with the new controller. That was the plan anyway.

When the parts came in, I soldered the headers to the board and plugged it in to the solderless bread board to give it a try. I wired it up and checked my wiring several times. I wrote the code for the Arduino to control the new board. I plugged it all in and uploaded the code and nothing happened.

I spent most of the evening troubleshooting. I still haven’t figured out what is wrong. I will give it another try this weekend. I still have several things I can try. I suppose it wouldn’t be nearly as much fun if it wasn’t so challenging. And like I said at the beginning of this post, it’s all about learning, right?

Powered by ScribeFire.

Arduino Mania Strikes Elkton

It all started innocently enough. I had $50 worth of Amazon gift certificates so I bought an Arduino Duemilanove from Hacktronics with part of the money. It came and I was thrilled to start blinking LEDs with it right out of the box. I wrote a little program that flashed “SOS” in Morse code. My wife said, “That’s kind of depressing.” So I changed it so that it sent “LOVE” in Morse code instead.

I don’t know why I am so surprised when things work the way they are supposed to. I think it probably goes back to all the times I built electronics kits and had to troubleshoot them for days to get them to work (if they ever worked at all). In any case, the bug had bit me. I started scouring the Internet for Arduino based projects.

One of the reasons that I was drawn to the Arduino in the first place was the concept of shields. Understand that this was not a new concept to me. The robots at work had been expanded through the addition of daughter cards that plugged into the motherboard. But the Arduino had dozens of shields that interfaced to all kinds of interesting hardware. And the best thing of all was that they were affordable on my next to non-existent budget.

I decided that I was going to build a robot from scratch. I had built a BOEbot and I still love to tinker with it but I had the urge to create a unique robot that was my design from the ground up. Oh, alright. I intended to assemble it from parts but I intended to build many of the boards as kits and assemble all the various pieces to make a unique final product. And what is really exciting is that it wasn’t just possible, it was down right easy.

I decided to build my robot around a chassis consisting of a Clementine tangerine crate that I had saved. I decided to use Google SketchUp to build a scale 3D drawing of the crate so that I could better visualize how I planned to transform it into a robotic vehicle. I managed to draw the crate itself fairly quickly but I’m still working on drawing the rest of the parts of the robot.

I drew up a prioritized list of parts that I thought I would need for the robot. At the top of the list was a Proto Shield. A Proto Shield is a board that has many uses but is often used as a place to mount a mini breadboard for experimenting with various hardware interfaces. The other major item on the list was a Motor Shield. The Motor Shield that I bought has connectors for 2 PWM servos and can control up to 4 bi-directional DC motors.

While I waited for my new hardware to come in, I decided to play with the hardware that I already had. I took one of the Infra-red receivers that came with my BOEbot and an old Sony CD player remote that I found laying around (the CD player had gone to hardware heaven years ago) and decided to see if I could get them to work together using the Arduino as the controller for the IR receiver. I got the circuit hooked up pretty quickly. Note: when building a circuit on a breadboard of one battery operated robot for control by another battery operated device, make sure you use a common ground. I eventually decided to just use the USB power from the Arduino.

Now I was ready for software. I Googled Arduino and IR and found RTFA‘s video on YouTube. I followed the link to his site and downloaded his code as a starting point. I hacked it to work with the particular remote that I was using and before my Proto Shield had even arrived I had created my first Arduino based hardware hack.

Then the hardware arrived. As I was soldering the power plug on the end of the wires coming out of the  9 volt battery holder with switch that I had bought, I decided that I was going to need a better soldering iron than the little pencil style iron that I had used for 30+ years.

The two criteria that I had were that it had to have a switch so that I didn’t have to bend over to plug it in and unplug it every time I used it and it had to have a shielded stand so that I could safely set it down while it was hot. The next day, I want to my friendly neighborhood Radio Shack and decided that the difference in price between the iron that met my minimal requirements and one that was variable digitally temperature controlled was small enough that I couldn’t justify not buying the fancy one.

It took me two evenings working about an hour an evening to assemble and test the Proto Shield. It took about 5 minutes to move the IR receiver circuit over to the Proto Shield and get it working.

Stay tuned. More mania is on the way.