Posts

Electronics for beginners: choosing a brain

I work with high schoolers and their teachers, and I often come across questions about how to get started with physical computing. This post is meant to compare some of the most well-known platforms. To begin, understand that the space is broadly separated into microcontrollers and single-board computers, with different strengths and weaknesses. Microcontrollers (MCUs) Microcontrollers are basic, general-purpose processors with limited capabilities compared to single board computers (SBCs). They offer slower processing speeds, smaller storage capacity, and fewer communication options. Unlike SBCs, which run full operating systems, microcontrollers typically execute only one program at a time. Despite these limitations, microcontrollers have several advantages. They are generally more affordable than SBCs, and their simpler architecture makes it easier to understand and control their behavior. Additionally, microcontrollers can begin executing their programs almost immediately after pow...

E-books and e-readers

It's been ages since I've posted, but I thought I'd record my recent experience with e-books and e-readers. As context, I've recently dusted off my original Nook e-reader , and have been trying to get as much of my e-book library on to it as possible. At the same time, I've been researching new e-readers because there have been a number of technology improvements since the release of the first edition Nook. E-books My e-book purchases have come from a number of retailers: Pragmatic Programmers Manning Publications O'Reilly Books Barnes & Noble Nook store Google Play books Amazon Kindle books Of course, the name of the game with e-books these days is DRM: some distributors apply strong DRM, some weak DRM, and some none. Both Kindle and Nook e-books are useless except within their ecosystem. Kindle books can be downloaded with a "Download & transfer via USB" option, but the AZW3 file is encrypted to a specific device. I ...

Buzzing XBees

Image
It's been a while since I've written, but I just have to share my experiences with this. I recently bought a pair of XBee Series 2 radios  along with  XBee Explorer break-out boards . I first heard about these radios in general back in school when I was working with CU's  RECUV  group, and then again in Tom Igoe's excellent book Making Things Talk , and I've been itching to try them out ever since. They're a bit like Wi-Fi or Bluetooth, but seem to lend themselves better to microprocessor projects, generally use less power, and have some unique features that are great for sensor networks. I understand they're also being used for modern home automation products. However, getting these things configured and tested wasn't exactly a walk in the park! As it turns out, I probably should've gotten the Series 1 radios, as they use the simpler 802.15.4 protocol. Series 2 uses the Zigbee protocol, which allows for more advanced network topologies but is als...

My Robot Friend

It's been a bit since I've posted, but fear not! Things are going well, and some exciting things are taking shape! Work is as exciting as ever. There are new challenges almost every day it seems, yet nothing that seems to be impossible. Our systems environment is ever-changing, and the causes and motivations are numerous, but it's all in a day's work. I've also taken it upon myself to start implementing measurable quality metrics in my work, and that has been an interesting journey. I'm starting to learn a number of tools and techniques for automated building, testing, and deployment, and those are skills that should serve me anywhere on any project. Outside work, I got the itch to do some engineering mentoring, and so I got a hold of my local high school. They don't currently have any programs like the old "computer club" that I attended when I was there (it was really just 3 or 4 of us that would hang around in the computer lab after school)....

Ten Years Ago, Today

I was in the 10th grade. The morning started off as any other, with my morning bike to school. My first class was Spanish. There were rumors of confused news reports about a small plane accidentally glancing off of the World Trade Center, but our teacher would allow no distractions. Our class plowed through the planned material. But when I arrived at 2nd period chemistry, it was clear that this was no normal day, no small news story, and no accident. Our chemistry teacher didn't say much, and didn't attempt to teach class. We listened to the radio reports from shocked and confused journalists in New York. We heard that commercial airliners had been hijacked and crashed into the towers and the Pentagon; that both towers had just fallen; that the streets of Manhattan were rivers of dust and ash; that tens of thousands were injured, trapped, or dead. It took time for the magnitude of the reports to crystallize in my head. This had happened on American soil? The shock was profo...

Google Map Maker

Image
For those that don't know, Google Maps just opened up the Google Map Maker web application to allow normal users to enter data into Google Maps. After a review process, those edits can be published into the public Google Maps for the world to see. I was pretty excited when I learned about it in April, and I've been pretty active. Recently I received an e-mail from the Google Map Maker Community Team. Because I'm "one of the top mappers in the United States," they offered to send me a free t-shirt, and invited me to the Google Geo User Summit in Mountain View. I had to regretfully decline the offer to attend the summit, but the t-shirt is pretty awesome. From July 2011 My friends and I were trying to figure out what the map on the front is showing. At first glance, it looks like a map of the world's lights at night , but some major countries, like the US, Canada, UK, France, and Russia are not lit up. So what do the white areas represent? My speculatio...

Graduation Videos

Image
Check these out! Courtesy of Munchkin, thanks friend!

Exploring Google App Engine with Restlet and Objectify

Warning: this post is excessively geeky for my usual audience. Non-programmers, feel free to skip. I've been doing a little more exploration with Google App Engine. I've used it before, first for my Weasley Clock, and also for one of my classes, Object-Oriented Analysis and Design. In that OOAD class, my team and I had a short amount of time to build an Android app backed by a RESTful web service on GAE. We ended up using JAX-RS/Jersey as a RESTful framework, JAX-B for server-side XML serialization, and JDO for the datastore API. Then on the Android client, we used the Apache HTTP client and SAX parsers. That worked out alright, but recently I've wanted to explore what other options are out there. I've been interested in  Restlet  for a while; in OOAD, I explored that first before moving to JAX-RS. It seems to be a pretty comprehensive solution. They provide both server and client libraries for many platforms, with flexible configuration for many needs, such as filt...

Hit the Ground Running

Image
My time between finishing school and starting work was relaxing, but too short, of course. I did keep myself busy with projects, planning for our first camping trip of the season, and preparing for work. I was able to get some stepping motors to ressurrect the Wesley clock. I finished all of the software last summer, but still haven't gotten around to building the darn thing! I started work the week before Memorial Day, so it was a fairly relaxing time to come in. So far I like the people, and the work is interesting. My co-workers are a pretty tight-knit group and have some nice traditions. "The Phat Club" is an agreement among about a dozen people to bring in breakfast for everyone else once a week on a rotating basis. Every day at a certain time, everyone who isn't busy with something will take a short walk down to the "snack room" to stretch our legs and shoot the breeze. Some of us even took an afternoon off to see a Rockies game. That was a lot of fu...

On Endings and Beginnings

I forgot to mention a couple of other interesting notes concerning graduation and the like. The most exciting news is that I've transferred out of active drilling status in the Army Reserve and into the Individual Ready Reserve, otherwise known as inactive reserve. That mean's I'm essentially out of the Army; they can still call me up if I'm needed, but the circumstances would have to be extraordinary. I don't have to go to monthly drills, I just go for a once-a-year "muster" to make sure I'm still alive. I have to say, it's bittersweet leaving the Army. I really enjoy doing my job there, and I enjoy the camaraderie. If I were keeping myself in better shape and moving forward in my military career, I would have a strong reason to stay. But on the other hand, it's really the right thing for me right now. My entire life is changing; I'm moving from primarily being a student to the working world. My situation in the Army was also supposed to...

Alma Mater

Apologies for the late post, but I've been a madman up until last week. After spring break, I had to kick all three of my class projects into high gear. In senior project, I had been spinning my wheels on a particular problem, and finally called in our Google sponsor, Scott, to help me out. We and the rest of the team had a couple of late-night hackathon sessions, and really made some huge progress. After Scott showed me how to incorporate my own PaintWeb tools the right way and started me on a selection system, I was able to make some nice enhancements to our 2D canvas and toolset. In the end, we handed off a senior project that I'm proud to put my name on, and proud that AgentSheets will carry forward. In Object-Oriented Analysis and Design, our group wrapped up our design and did our three week-long iterations of development, and ended up with a decent proof-of-concept; an Android app for managing chores, along with a RESTful web service backend. We had planned a lot...

The Internet Game

I've been thinking about how to teach fairly young kids about how the Internet works, and I've come up with a game. I think this would be appropriate for 3rd to 5th grade or so. I call it "The Internet Game." Begin by separating about a third of the class to be "computers," then the rest are "routers." (This could also be half and half, which would make it easy for the two groups to switch roles after a while.) The computers get into a large circle, with the routers all standing inside. The computers get to write simple "packets" on index cards, addressed with To, From, and Message. These packets have to be sent to other computers. These could be free-form, write messages to whoever you want; or there could be a rule that you must send a message back, which would simulate a client/server request and response. The routers must pass the packets so that the packets get closer to their destinations. The routers aren't allowed to move ...

Release Mode

School is in full tilt, with no sign of letting up through Spring Break. In senior project, we're now into what we software engineers call "Release Mode." We're coming up to The Big Deadline, and we're churning out code and documentation as quickly as we can. We have a number of big features in Volumizer that are still not quite the way we want, but we don't have time to really do all of them justice. It's not for lack of trying, mind you; I don't function as well without sleep as some of my fellow students, but I haven't been getting my full, comfy 8 hours a night for the past couple of weeks either. I get up, start working on this or that project, maybe go to class, program more, and roll into bed. There's just too little time left to make any more huge changes. We tested with users, found our weak spots, and we'd be golden with two or three months more. But that's the breaks, I guess. Software has one distinct similarity to fine ar...

Pet Pictures

Image
I present you with some shameless animal pictures: Apollo really enjoyed the mud pit at the dog park. Until he got home, that is. Marley thought my drink was delicioso! A pile of sleepy. Can you tell that these two like each other? Al hasn't been posing for as many photos, but worry not, he's still stalking around the house.

Hyperconnectivity

Image
My wife says I have a problem. She may be right. During tonight's project to get all of my electronics charged and software updated, I discovered that I've collected an astounding array of "computers" in the last few years. When I think about it, I use all of these on a somewhat regular basis, because they all have their particular niche. From left to right:  HP Pavilion dv9700 gaming laptop (dual-boot Win7/Ubuntu) Barnes & Noble nook e-reader (Android) custom-bui lt gaming desktop (Win7) (same screen) VNC session to media server in living room (Ubuntu) G1 smartphone ( Android) Apple Macbook 13" mid-2010 model (OSX Snow Leopard) Asus Eee PC netbook (Ubuntu netbook edition)

Beginning of the End

I'm finally into my last semester at CU. I've been working toward my BS in Computer Science for a total of six and a half years now, and I will finally have my piece of paper in a couple of months. It's a great feeling to be this close, and yet somehow I've avoided catching Senioritis, that contagious feeling of apathy that sometimes hits high school and college students towards the end of their studies. I think the things that are really keeping me grounded are a) our senior project, which has been interesting and challenging, and b) the fact that I have a job waiting for me. My team's senior project, Volumizer , has seen some fairly major progress in the last two months. We've swapped out our rudimentary, homebrew 2D canvas for an open source solution called PaintWeb , and that gives us a lot more tools and functionality. The downside is that trying to interface with PaintWeb is a little difficult for what we're trying to do with it. It's very tightl...

Tiny Speck of Light at the End of the Tunnel

My most exciting news to report is that I've received and accepted a job offer at Northrop Grumman! I've been interviewing pretty hard for the last couple of months, and Northrop Grumman gave me a great offer on a great-looking job. Once I graduate from CU next May, I'll start working in their Information Systems division, writing, maintaining and supporting software for national defense systems. I don't know exactly what the job will entail and what sort of systems I'll be working on because the details are classified (and even if I knew I wouldn't broadcast them here), but one of the engineers interviewing me assured me that "it's just data." I'm really glad that the interviewing process is done for now, that I know what I'm doing after I graduate, and that I have a great job at a great company waiting for me! Now all I have to do is graduate. I'm not expecting that to be really difficult, but I do have to keep working at a steady p...

Life with Mac

As you probably read in my previous post, I just bought a new MacBook. I've been slowly getting used to its quirks, and to the Mac "way of thinking," for lack of a better term. I've learned a lot, and I thought it might be useful to share some of my experiences. First, one of the most important discoveries I've made. Tonight I transferred my music collection on to the Mac. I've used iTunes before and I'm happy enough to just stay with that, but I was having issues at first. Most of my MP3 files were imported into the library just fine, but some failed to show up. I tried all sorts of things: the import tool, double clicking, clicking and dragging. Snow Leopard's built-in audio preview was able to play them, but iTunes refused to acknowledge the existence of these certain files. After looking around for a while, I learned that this might happen if the MP3 file's headers were a little  corrupted; the files would play in most players, but not iTunes...

Senior project, and the job hunt

Perhaps its time to change the title of my blog once again; it started out as Chris' Almost-Daily Updates, has now moved to Chris' Weekly Updates, and is probably more accurately described now as Chris' Monthly Updates. But I digress. I've officially gotten back into my busy mode of living. I'm constantly switching tasks, but only occasionally do those tasks include taking the dog for a walk or to the dog park, or playing computer games, or cleaning the house. Mostly my time is being occupied by homework and job searching. Homework this semester has taken the rhythm of focusing on one project for one class for a few days solid, turning that in, then focusing on something different. It's a little hectic doing this because it constantly feels like I'm working on things at the last minute. I'm probably still spending an appropriate amount of time on each assignment, but its always close to the deadline. Senior project has been going well so far; I reall...

Senior Project

It's official, senior project has begun. The professor, Bruce Sanders, just finalized teams and projects. It's been a bit of a bumpy ride for me, getting through this process. Two weeks ago, I thought I had everything laid out. I had a project lined up, working for the startup that I interviewed with over the summer, with the other student they had considered hiring, plus whoever we could find for our team of 4 to 5. Unfortunately, at the last minute, we gained too many people for the team. Our extras just happened to be all of her friends. I guess the kind way of saying it is that she found people that she knew she could work with. The unkind way of saying it is that even though we were basically equals, she still decided she had the authority to kick me off in favor of her friends. It's too bad, because I was really looking forward to that project. But the good news is that I think I've a good team and project. I'll be working with one guy I've worked with b...