Search This Blog

Saturday, February 27, 2010

Tablet Computing and the Paperless Office

The new generation of tablet computers seem to be solely marketed towards individual consumers for personal computing tasks and this, to me, seems like a massive missed opportunity for where these sorts of devices could really hold some true value.

I work in Software Design for a company that uses a proprietary build of an off-the-shelf product where the UI is browser-based. All of our documentation is kept either on SharePoint style document sharing sites or are stored on personal network drives to make them accessible from home. Yet, the amount of paper we use in our office is overwhelming.

We are always hearing about the cost of that paper, too. And the cost of the ink for the printers. And the cost for the recycling and destruction of confidential printed docs. And the space needed to store printed documentation for the required 7 years by SOX rules. So why do we do it? We have to. Some times and with some things we just need to have printed documents. Until we began storing test bills on PDF, it was necessary to construct and store huge binders of printed bills for every round of testing. That sucks.

Okay, cool. So now everyone from Apple to Acer are marketing touchscreen web tablets. They desperately want to convince people of their need for these things (partly because people demanded them but...) but can't seem to come up with a good argument besides "you can surf the internets". Okay, so they can do more than that and the marketing is better than that but, come on, e-reader? Emailer? Web surfer? Sounds like a laptop that isn't as useful.

I guess what I'm getting at is that, for most of us, a laptop or desktop at home is too powerful but a tablet is too weak. But in the workplace, our computers don't need to be powerful, our networks do. Picture this, your desktop machine at work is a tablet on a dock. It powers on almost instantly (compared to the 20+ not exaggerating minutes it takes for my bottom-of-the-line Dell desktop to power up), is plenty powerful enough to run browser-based apps, can run an office suite (as has been proven by the iPad coming with iWork but oddly not iHome), and maybe most importantly, is portable. Once your tablet is powered on you could grab it right off the dock and take it to a meeting. In the meeting and need to share a doc? Email it right to their tablets or plug your tablet into the projector or just tell everyone where it is on the SharePoint. Make live updates to the doc based on the meeting discussion. Take your tablet to a colleagues desk for a discussion and use it to take notes. Take it outside and spend time coding in the park on a sunny day.

Could a large corporation, like the one I work for, really implement this kind of system? Probably not. I doubt the idea would make it past IT security and even though it would surely be less expensive than replacing 20,000+ Dell desktops and laptops, I doubt the company would go for that either. But a small start-up could really run with the idea and, if implemented from the beginning, could set a new standard in not only the paperless workplace but in work/life flexibility.

Life Has A Funny Way Of Making Me Look Like A Chump

So, following my little parts rant yesterday regarding how long it takes for parts to be delivered from Hong Kong, I went to the SparkFun website to order another USB cable so I could at least program my Arduino. While I was there I decided to order a Polulu switch (a device the will allow my box to power itself down between uses) and the servo needed to dispense the gift card through the front of the box.

While there I decided that I might as well accept the fact that the parts I'd ordered from SeeedStudio Depot might never arrive and it might behoove me to go ahead and order more buttons as well. Sure, they wouldn't be the shiny silver buttons I'd originally wanted but they'd be buttons. SparkFun had an assortment of colored plastic buttons of the same size and shape I'd wanted. They had six colors and I ordered one of each color, thinking that the red button would turn the box on and the other buttons would be multi-colored and fun looking. Unfortunately, they'd also make Jenn and Brian think a color puzzle of some kind was involved. Hmmm... not ideal but whatever.

Anyway, I ordered all of these parts which did assuage some of the panic of a project missing its deadline, even though I hadn't set any benchmarks or deadlines. This morning, upon returning from brunch with Rachel and her cousin, Elena, I found a little box on my porch... from Hong Kong! Yay! On one hand, I feel like a chump for ordering those extra buttons yesterday. On the other hand, I'm super stoked to have the shiny buttons I'd imagined for the project. It's also great that I've now ordered all of the main components of the project and can begin prototyping on a breadboard. I'll also be able to use the colored buttons for another project (maybe some kind of Mastermind box!) and can even use the red botton as the power button for this project, if I choose. I don't think I will, though. I want this box to look super sophisticated and a plastic red button doesn't speak to that ideal.

I'm totally stoked and can't wait to get started on the hard work of this project!

Thursday, February 25, 2010

Hong Kong = Far Away

I've been really wanting to post a parts list and a build beginning on this blog. Unfortunately, I didn't realize that some of the parts I ordered were coming from Hong Kong. They aren't here yet. There is also the distinct possibility that they were delivered and promptly stolen off of my porch. This has happened a couple of times recently and is kind of maddening. I mean, I don't know if the parts were not shipped or lost in transit or if they're just down at the Ashby Flea Market on some crackhead's table. Still, I don't want to order new parts if I can have the parts I ordered. The worst part is, one of the parts was the cable I need to program the Arduino. Stupid. It costs $2.50 but I think I ordered it from HK to save a couple of nickels. I have buttons in my parts bin but not fancy shiny silvery buttons of wonder. I guess as long as I had that cable I could start to prototype. Off to the internets to order another cable!

Monday, February 8, 2010

Soft Hardware - LilyPad Arduino

When I was initially becoming interested in creating with Arduino, one of the main obstacles for my mind to get motivated was being able to convince myself that I could overcome a complete lack of technical knowledge in regards to circuits and electronics. I was fairly sure I could write some cool code but wasn't sure I'd know what wire to solder to which contact and how to run power through the whole shebang. It turned out that Arduino makes that part as easy as possible too, and isn't nearly as daunting as it seems at first glance.

Reading up on Arduino, I repeatedly came across references to LilyPad Arduino and soft circuitry. I'd tried a soft circuitry project before but I gave up pretty quickly, more due to a lack of continued interest than anything else.

This was my first project:
http://www.etsy.com/view_listing.php?listing_id=34063023

I'd made LED throwies for a number of purposes from lighting up my bicycle to lighting up jack-o-lanterns. Making a simple bracelet seemed like a nice next step and it was, sort of. And it would have worked, in theory, if I'd finished it, which I didn't.

What appeals to me about LilyPad, other than the wear-ability of the projects was the modular design of the components. Sure, you could wire all kinds of sensors and outputs to the adorable LilyPad but you could also just stick to the sensors and outputs designed to go with the board (It's not really a board, per se. It's a felt pad.).

My mind thrills at the potential for projects using these items. Just check out all of the LilyPad stuff available from SparkFun:
LilyPad Arduino on SparkFun

Also check out these links:
LilyPad specs (pretty much the same as Duemilanove or other Arduinos)

Leah Buechley is the creator of LilyPad and just watching a video of one of her projects totally lit a fire under my brain:
Turn Signal Bike Jacket

As someone who really loves riding his bike but is definitely concerned that a human operating a large machine might accidentally (or intentionally!) harm me, this project appealed to me. But one thought led to another and in no time I was envisioning everything from Iron Man Halloween costumes to totally creepily interactive plush dolls. How cool would it be to gut a teddy bear from the store and turn it into a vocalizing, flashing red-eyed, buzzing and shaking, twitter-activated monstrosity? Answer: Very Cool.

Troubleshooting, Problem Solving, Thinking Out Loud

I've been a little disappointed in myself. I'd intended this blog to be a lot more active than it has been so far. I was thinking to myself, "I just haven't had any ideas or thoughts or updates worth posting," which isn't entirely true.

I've been devoting as much brainpower as I can muster to working on the Arduino coding for the 5x5 box. I think I've worked out ways around most of my problems, which are numerous:
  • One problem I've been trying to work out is how to get the system to assign a random number value from 1-5 to each of the buttons as an indicator of a correct press. That is to say, how do I tell the system that I want it to track the order the buttons are pressed and that I want it to determine if that order is correct and that I want that order to be different each time the game is played. I think I've worked my way around this problem. I can't decide if posting a block of Arduino code here is at all interesting to anyone, especially pulled from the larger block of code, thereby losing some context. Basically, what I decided to do was to have the code generate a random number from 1-5 for each variable that I am referring to as "random1-5". Then I've told the code to check that each "random" variable was unique to itself, not having a matching number assigned to another "random". If at least two of the "random"s match, I've told the system to try again. This could work really well or it could have the little microprocessor generating random numbers until it becomes self-aware and really pissed off at my messy coding. I think that what I really need to do is to have it generate a random value for the first "random", generate a random value for the second "random", compare the two and, if they match, have the system try again before moving on. That way it is not asked to generate a whole set of random values that don't match each other by sheer dumb luck.
  • Another problem I'm having is being completely unable to test any of my code on my actual Arduino or any kind of a breadboard rigged prototype. I hate waiting for parts in the mail. Honestly, I have just about all of the parts I need to rig this all up (not the parts I'd want to use in the final product but they'll work) except the USB cable I need to upload the Arduino code to the Arduino board. Frustrating. Note to future self: Seeedstudio is in China. Ordering parts from China takes a long time. I'm itching to post a parts list but I haven't even ordered all of the parts! I'd better get moving on that.
Really, not having the USB cable is my main problem because it keeps me from identifying defects in the system, be they soft or hardware related. I won't know until I tinker and I can't tinker effectively until I get that cable. With my luck lately, it will be delivered and left on my porch and immediately stolen by neighborhood kids (or adults or a kleptomaniac squirrel or a tiny black hole or something). I bet it's something I can by from the Radio Shack down the street and all my waiting for a $2.50 cable is probably not worth my time.

Sunday, January 31, 2010

An Homage to the Frustromantic - The 5x5 Box

I got into doing some very minor electronic tinkering, mostly involving bristlebots and LED throwies, right around the time team lowkey and Desert Taxi were working together to put on the Ghost Patrol game. I wished I had started a lot earlier since a lot of great ideas for GP went either unrealized or were less than fully fulfilled simply because I didn't have the skills to make them happen. Like many tinkerers, I became fascinated with projects based on the Arduino kits and IDE (integrated development environment). Basically, it's a simple microprocessor on an easy to use circuit board with an IDE based on c/c++ but way easier to write. I'd purchased an Arduino with the idea that the purchase would motivate me to learn to use it and to start a project. It didn't. I'm starting to see a pattern in myself. An object at rest...

I was nudged past my project inertia by a few really cool and creative projects that came across my news feed. The first, the Most Useless Machine, got me thinking about boxes whose purpose is initially unknown but which tempt the user into an interaction.

http://blog.makezine.com/archive/2010/01/leave_me_alone_box.html

The second points of inspiration were two projects, one I'd heard about some months back and another recently, that recreated that project. These were locked boxes that would only open at a specific set of GPS coordinates. Both of these projects used Arduino and a few fairly easy to find parts to create a truly compelling interaction with the user.

http://blog.makezine.com/archive/2009/10/gps-enabled_puzzle_box_opens_only_a.html

http://blog.makezine.com/archive/2010/01/the_frustromantic_box_a_reverse_geo.html

Using these devices would force the user to triangulate a location on a map. Even if the user doesn't have experience with this kind of activity, the logic involved is not complicated and the user is compelled to work on the problem for the purpose of getting the box to do or give them something. What's in the box is almost secondary to the box itself which serves as a kind of interactive, fancy gift wrap but also as a gift itself. The experience of opening the gift is a gift.

I'd intended to simply copy the Frustromatic Box using the Arduino I already owned. Sitting on the couch one night, thinking about creating a cool wedding gift for my friends, Brian and Jenn (who I hope aren't reading this blog)(I'd wanted to recreate The Most Useless Machine for my friend, David's birthday but just didn't have the time and technical skills), an idea occurred to me. What if I could create a box that required the user to solve a deceptively simple puzzle to open the box and get the gift out? I'm pretty bad at coming up with puzzles, as anyone who worked with me on GP will attest, but this one occurred to me in a real ah-ha moment; the box would have six buttons and an LCD screen on top of it. One button would be separate from the rest and would serve as the on/initialize button. Five buttons in a row would serve as the puzzle input. All the user would have to do would be to turn the box on and then press the five buttons in a pre-determined order within a small number of attempts and with the puzzle resetting the order if the attempts failed. The interface would be easily deduced by the user and would be frustrating as well as frustratingly simple.

I drew this "technical" diagram to begin:

I surprised myself a little with how excited I was (and am!) about this project and I dove right in, trying to teach myself to program in the Arduino IDE by reading online documentation at the Arduino website and reading others' sketches from their projects. This taught me one important thing, I was in over my head. I had never programmed in any language before, not really (I'd goofed around with html and had done some stuff in basic on my C64 as a kid), and didn't understand a lot of the basics. So I ordered the Getting Started With Arduino book from the Maker Shed and most of the parts I imagined I would need.

I already had the Arduino but had failed to order the USB cable to actually upload sketches to it. I ordered the cable, the buttons and the LCD. I figured I could pick up a servo at any hobby shop when I needed it. I didn't get the LED lit buttons because they were considerably more expensive and I thought that the unlit buttons, providing less feedback, might be more mysterious.

So far, the only thing that's come in the mail is the book and yesterday I read it pretty much cover to cover twice and started to really work on my Arduino sketch.

I also know next to nothing about woodworking but I want this box to look really polished and beautiful, something you'd keep on your coffee table as a fun game even after it had been opened, something that would be a cool conversation piece. My younger brother, Dan, is a natural born, as well as highly educated and trained, engineer and I kind of just assumed he'd have these tools and this know how. Normally I'd got to Brian and Jenn for this kind of help but since this was to be their wedding gift, that wouldn't work. I'd mentioned some of my ideas to Dan a week earlier and when I emailed him for help he practically jumped at the opportunity to delve into the project with me, offering up his tools, his expertise, his time, and a copy of AutoCAD. Engineers love AutoCAD. Dan works for AutoDesk and has offered me AutoCAD to play around with before but I'd never had any need. Even now it seems silly to model a box in such a powerful program but I figure this is an opportunity to teach myself AutoCAD as well. Sure, this project may not be that complex but if its successful I could easily see myself wanting to tackle much more complex future projects.

As I work on this project, I will post more descriptions of what I'm doing, how I'm succeeding and failing and my open-source plans, schematics and Arduino sketches. I'm calling this project the 5x5 Box for a couple of reasons. One, the user will have 5 attempts to press the 5 buttons in the correct order before the device resets. Two, "five by five" in radio communications lingo means "I understand you perfectly" and that seems kind of fitting for an interactive little box that is easy to understand but (hopefully) hard to open.

Inaugural Blogural

I stubbed out this blog a while ago and then never used it. I'd intended it to be a sort of television commercial as well as television show review blog. Unfortunately (or perhaps fortunately), after a long day of work I just didn't have the motivation to sit down and actually type out my rants. Rants on how some commercials not only fail to entice me to buy the advertised product but sometimes make me want to stop watching the show the the commercial is attached to, just to get away from the idiocy-induced nausea (I'm looking at you, Old Spice commercial where the dude forces a piece of paper into a woman's mouth with his tongue) went unwritten.

Recently, though, as I've wanted to better document projects I'm working on and have wanted a webspace to serve as a bit of a thought repository, the idea of having a blog has again become appealing. Rather than start a new blog, which would require thinking up a new blog title which could take untold amounts of time, thought, effort; I've decided to just use this blog for whatever I feel like, possibly even commercial commentary.

Let's do this!