Saturday, December 4, 2010

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 pace. Next week is the last week of class for the fall semester. Most of my classes are wrapping up a few last homework assignments. In senior project we're going to give an extensive, hour-long presentation to our sponsors covering our progress through the semester and the current state of the project. For our group, I'm happy to report that our progress has been substantial, especially over the last two or three weeks. You can even start to see the fruits of our labor: go check it out at Volumizer! The purpose is to be able to create simple 3D models by taking 2D images and blowing them up like a balloon, and to make that a fun, social experience. We plan to do a lot more with it, but the basic picture editor, 3D viewer and social features are working! It's been very exciting to see the pieces come together.

Sunday, October 24, 2010

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. I also found a tool to fix the offending files: MP3 Scan+Repair for OSX. The really good news was that it was dead simple to use: I just dragged my entire music folder into the app, hit scan, and it told me everything that wasn't quite right. Another few clicks, and all of the bad files were rebuilt and playing in iTunes! It's still a little annoying that iTunes is that picky about files, and doesn't warn you when it's ignoring files like that.

Besides that, I've found a decent set of applications for daily stuff. Many of the programs I'm used to, like FileZillaGoogle Chrome, and Microsoft Office have Mac versions. For other things, I've found some nice replacements. The sales guy recommended Fraise (French for Strawberry) for editing code, and that's quite nice. The fact that the underlying kernel is BSD is great, because it acts a lot like Linux, which I'm very comfortable using. That provides a lot of under-the-hood power. There are even ports for Wine and Unison, so I can use some of my Windows-only programs and sync files with my server.

I've been playing around with dual-booting Ubuntu Linux as well. My first attempt was a total failure, which forced me to reinstall everything from scratch. However, after I found the rEFIt boot loader, I had better success. As it turns out, Ubuntu has pretty good support for running on Mac hardware. On the other hand, I probably won't use it all that much, as I haven't found many tasks that I can't accomplish with OSX. I have to say, I'm impressed.

Tuesday, October 19, 2010

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 really did find a great team. The five of us have been consistently working together, communicating well, and hitting deadlines. We're at somewhat different skill levels, but we've been specializing to compensate. We have one guy who's been focusing on the WebGL pieces, which is nearly incomprehensible to the rest of us. I'm sure we'll all get better at it, but I imagine he'll really be the expert by the time we're finished. I've been taking on pieces that make us more efficient and effective as a team; I've been writing documentation for the version control system we're using, and I'm currently setting up our testing and deployment automation.

As for the job hunt, I've been searching for a job to step into once I graduate in May. I spent about two weeks straight in a business suit. A few weeks ago was the Fall Career Fair here at CU, and I met many employers there. I've had a few on-campus screening interviews, as well as a couple of on-site technical interviews. In fact, last Thursday I got to fly out to Boise, Idaho for an on-site interview with Clearwater Analytics. They are a company that specializes in financial analytics for corporations. In particular, many of their clients are technology companies. I think I did pretty well in the interviews there, but I'm still waiting to hear back from them. While I was in Boise, I took some pictures of the downtown area; you can check them out here. I've also been looking for part-time work here in Colorado, so hopefully something there will pan out soon.

One last bit worth mentioning. A couple of weeks ago, I got my GI Bill tuition money. Since my university bill had already been mostly paid off with grants, I went on a bit of a shopping spree. Last week, I decided that it was time to invest in an e-book reader. Since Ashley and my friends have already done their research and bought the same device, I followed suit and got the Barnes and Noble nook. It reads the majority of e-book formats available today, and many books can be "loaned" to friends who also have the nook; they get the ability to read that title for 2 weeks, while you're locked out of reading it. It was great for the airports last week, and I suspect I'll get a lot more use out of it.

My second big purchase was Friday night. Long story short, I decided it was time to break my old prejudices and buy a Mac. I've been using a combination of Windows and Linux for years, so this was a bit of a stretch for me. I ended up buying the absolute cheapest Mac laptop I could find, a 13" MacBook. So far I'm pretty impressed. It does everything I need it to do, which prevents me from carrying both my netbook for taking notes and my monstrous 17" HP gaming laptop for working on 3D programs in senior project. I'm still not a total convert, but I am really glad I bought a Mac, and I'm getting more comfortable with the OS, the multi-touch gestures and the keyboard shortcuts. I'm now firmly convinced that Macs are useful even to people who aren't pretentious snobs with goatees, aspiring to be independent film screenwriters (though I haven't really thought that way in a long time).

P.S. Along those lines, check out the MacBook Wheel as reported by The Onion. "I'll buy almost anything if it's shiny and made by Apple."

Friday, September 3, 2010

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 before, and along with the other three, it seems like we'll work well together. We're working on a portion of AgentCubes, a programming "language" that Prof. Alex Repenning created. It's a fairly simple environment where icons and objects on the "stage" are programmed with behaviors, and can then interact. Prof. Repenning uses it to teach computer science to non-computer-science folks, like middle school students and high school teachers. AgentSheets was the original version, and was all 2D; AgentCubes is the attempt to bring it into 3D in order to make it more fun and compelling. It has a feature, called Inflatable Icons, that takes 2D images and "inflates" them like balloons to easily create 3D models. Our team's job is going to be making that work on the internet, with the help of the emerging WebGL standard. With WebGL, it's going to be possible to make 3D games and displays and embed them within websites. It's been possible before with some obscure, proprietary tools, but WebGL promises to be an open standard, a huge step forward.

My other classes are going pretty well so far. My stats class is the class I've been dreaming about ever since I came to CU; it's actually applied! We're using a professional computer program on real industry data sets. Every other math class I've taken that had Applied in the title turned out to be a huge disappointment. The professor, Jeffrey Luftig, has a couple of decades of experience as an industry statistician, and really seems to know what he's talking about. It helps that he's also a riot!

Saturday, August 21, 2010

Back to School... last time for a while?

I've purchased my books, packed my pencils, and updated my Ubuntu software. It's time to head back to school again, for what should be my last fall semester, at least for a while. I should be graduating in May, and I don't plan to go back and earn my Master's degree immediately. For the next few months, I'll be working on computer science senior project, network systems, statistics, and just for fun (and to fulfill natural science requirements), astronomy.

I'm really looking forward to senior project. It's a chance to finally work on a substantial piece of software, not just little toy examples and homework assignments that get tossed away after a week. I've had friends go through senior project before, and a couple of them suggested that doing a thesis instead would be less of a pain. While I value their warning, and believe that it probably would be less annoying to do a thesis on my own, I can't help but think that the project is going to be valuable experience in more than just coding and writing academic papers. For senior project, I'll have to work on a team, and we'll be asked to write corporate documentation and give presentations to our real-world business customers. Not only that, but our team will have to learn how to work together, brainstorm together without bickering, divvy up work efficiently, and integrate the pieces back together, which is no small feat. I think it's going to be an excellent learning experience, even if it turns out to be a pain in the ass.

From Arduino Projects
I do have something to show for my free time this summer; my Arduino Weasley Clock is actually pretty far along. The diagram above shows the whole layout of the finished product. I've written the webapp on Google App Engine (lower-right) which talks to Google Latitude (lower left), gets latitude/longitude information, and translates those into meaningful locations like Home and Work. I've also got the Arduino (top right) talking to that webapp through the XPort serial-to-Ethernet module, so the Arduino can ask where we are and get an answer back! The last step, and the most challenging for me, is to figure out how to hook up a couple of stepper motors into a disassembled clock. It's still pretty exciting how far I've brought this project, though.

Last but not least, the back concrete porch on our house was just re-poured. The old one was probably original and about 30 or 40 years old, and sinking badly on one side. Worse, it was taking a piece of the roof with it. That won't be a problem for much longer, because the old porch was taken out at the beginning of the week, and a new one poured yesterday. It's very exciting, because we had the main level dropped down much closer to the level of the yard, and steps put in near the door, so it won't be so difficult to climb into the house anymore.

Monday, July 26, 2010

Summer Class Ends, Job Begins?

Last Thursday was my last day of class for the summer, and I'm glad to be finished with this Matrix Methods and Applications class. I was really looking forward to the applications, but it turned out to be all methods. Once again, I've learned a lot of math techniques and I'm left with no idea when they're useful. Brilliant. I don't have my grade back, but I'm pretty sure I passed at least.

A couple of weeks ago, Ashley and I and some friends took a camping trip up to Kelly Dahl campground near Nederland. We did a lot of catching up, and a little hiking and geocaching. You can check out our photos on Picasa. We took Apollo, and he had a blast.

It was great to get outdoors and remember that I can tear myself away from computers when I need to. I spend a lot of my time using my computers. Even when I go out around town, I have my G1, which has more processing power than our family's first computer, and constantly keeps me connected to the internet. When I think about it, I realize that my children will probably never know a life without computers or the internet; it will always be a part of their lives, and probably a daily part, at least as soon as they start learning to read. Will they know how to moderate themselves? Will they know how to get away? Only if I teach them, I guess.

Anyway, I've had a couple of "interviews" for programming gigs, though neither of them was a formal interview. One of them is a short-term contract that involves revamping a website with educational programs; the other is a startup company in Boulder that has a great idea for a new website. I don't know if either gig will hire me at this point, but I'm still crossing my fingers!

Monday, July 5, 2010

Intro to Arduino

In other news, I've been bitten by a curiosity for electronics, robotics, and "physical computing." A while ago I discovered a microcontroller platform called Arduino, and finally decided to try it out! I ordered a kit from the Maker Shed, their Advanced Arduino Starter Kit, and have been trying a few simple things. The kit contains a book, Making Things Talk by Tom Igoe, which contains a lot of projects that demonstrate how systems of electronics communicate. I've built a rudimentary version of the first project, called Monski Pong, using the parts from the kit. The microcontroller acts as a joystick that controls a game of Pong on the computer.

From Arduino Projects

The book actually calls for two flex resistors that get sewn into a plush monkey, but the kit didn't come with those parts. Actually, the kit didn't come with parts to complete any of the projects in the book. It's a little strange, but this kit wasn't really designed as a step-by-step introduction, but more like a sandbox "go have fun" experience, with the book thrown in as ideas for next steps. It seems a little bizarre, and the only problem I have with the kit.

Going forward, have a couple of projects I'd like to try and build. First, I'm inspired by John McKerrell and Ed Parsons to build a Weasley Clock. If you're familiar with the Harry Potter series, you might remember that the Weasley family has a clock-type object that doesn't tell time; it tells where each of the family members are located, using places like Home, School, Work, Garden, Lost, and Mortal Peril. I don't have magic to drive my own version, but I do have Google Latitude, a service that runs on my phone. Latitude publishes my location to friends that I approve to see it, and can tell me when I'm unexpectedly nearby one of them. Using that information, I could hack together a system that checks with Latitude, then updates the position of hands on a reworked clock. Sounds pretty neat, huh? I've got some other ideas, but I think I'll stick with one at a time for now!

Dog Days of Summer

Once again, I've neglected posting for a while, but I've certainly been busy. The end of the spring semester was hectic as usual, but I feel pretty good about my performance. I was able to scrape decent grades in 4 classes, but unfortunately I couldn't keep up in my probability class and failed it. That seems to be the norm when I take math classes; so far, I've had to take every college math class twice in order to pass. It's not great, but I'll manage. In fact, that probability class is not required for my Computer Science major, only the Applied Math minor I'm going to try and scrape out.

After the end of the spring semester, I took some time to visit with family and friends. I wasn't able to find an internship immediately, but that's not such a bad thing. I think I should try to enjoy what should be my last summer before I enter the workforce full time.

After a couple weeks of relaxing, I started back at school for summer classes. I initially started with two classes; Matrix Methods and Applications, and Computer Graphics. Matrix methods is required for my major, and computer graphics was going to be just for fun. After a couple of days, I decided to drop computer graphics to focus on the math class. I realize that I normally have trouble with math classes, so it makes sense to spend more energy concentrating on that class.

The other reason I dropped the computer graphics class is that I wasn't impressed by the teacher's style. He hates Java and loves global variables. Since I just finished Software Engineering Methods and Tools, I've just learned more modern techniques, and the code from his examples had several bad "smells." Basically, I think his coding style and language preferences haven't changed in 15 years. I anticipated being forced to decide between learning bad habits to please the teacher, or doing it the way I think is right and risking being marked off, and I really didn't want to make that choice.

For the Army, I took a week-long trip a few weeks ago for a computer security class. The goal was to become CompTIA Security+ certified, and I passed with flying colors! That certification should help me doing my network administration job for the Army.

Tuesday, April 27, 2010

Furry New Family Member

Alright, it's been a while since I've posted, but you can be sure I've been busy! School and my new workout regimen have been going pretty well. I've been falling short of perfect in both arenas, but I'm maintaining a good pace on both.

Over spring break last month, I had my good buddy William Holliday visit from North Carolina. I met William when we were both in Iraq, and it was great to see him again and show him around my beloved home state. I still have to figure out when I'm going to visit him.

Last weekend I had Army drill down at Ft. Carson. We stayed down at a little corner called Camp Red Devil, far from main post, which was a first for me. Our living arrangements were shacks covered in sheet metal, with cots to sleep in. Once you get past that little annoyance, though, it was a fun, productive weekend. I got to practice some of my radio skills for a change. We set up several radios, an OE-254 antenna, and tried to set up a retransmission site. I have some pictures up at Picasa, check them out!

The day after I got back from drill was a special occasion, the second wedding anniversary for Ashley and I! We decided to go to dinner, but got sidetracked at the Humane Society of Boulder Valley. My gift for this anniversary was to finally agree to adopt a dog. We looked at three, and loved them all, but one captured our hearts. He came with the name Austin, but we've decided to name him Apollo. He's a terrier/pit bull mix, and somewhere around 3 months old. He's a little shy and unsure of himself, but we hope to raise and train him to be a little more outgoing and friendly with people and other dogs. Our cats are divided about our new family member; Marley is pretty neutral and mostly ignores the dog, but Al is pretty unhappy. I think Al will get over himself eventually.

Looking forward, I have a couple days left of classes, a drill weekend (in the Army's typical horrible timing), and final exams. I have a lot to do in the next week, so wish me luck!

Wednesday, March 3, 2010

Gettin' in shape

It's been over a month since my last update, so I suppose it's time. We're about half-way through the semester at school, and I'm staying afloat for the most part. I do need to spend more time concentrating on my probability class, but everything else seems to be going well.

I've been pushing harder on my physical fitness in the last couple of weeks; I'm actually getting to the gym, and I'm spending some quality time while I'm there. I've hired a personal trainer, and she's been helping to get me in the weight room. On my own, I've been focusing on improving my cardiovascular fitness and endurance while running, as well as trying to burn off a few pounds. When I got home last June, I was just below my Army-mandated maximum weight, but I've gained about 20 lbs. since then.

In other news, our friend Chris is having serious medical issues. He's been in and out of the hospital in the past few weeks. He's going through some pretty serious treatment at the moment, and we're all really worried about his health. If you can spare a prayer, please say one for him.

Saturday, January 16, 2010

Great start to another semester

I've made it through the first week of this spring semester, and I'm no worse for the wear. I'm really enjoying my classes so far. I'm taking the second semester of Humanities for Engineers, which is going to be divided into two "landscapes" for the semester. For the first part, we'll be covering some of the classics: the Iliad, the Odyssey, and the Aneid. That should be interesting. The math class I'm taking is probability. The professor's accent is very thick Asian, but he's a great teacher, and I think I'll enjoy the class.

I have three computer science courses. The class on game programming will be much less pure entertainment than it sounds like; it's focused on designing and prototyping educational games. We're using a program called AgentSheets to do our games, and it's pretty awful to install and limited in it's uses. However, it is good for getting something working quickly, and it's simple enough that anyone can use it. On the other hand, my class on Software Engineering Methods and Tools should be extremely good. We'll be learning many of the tools, procedures, and methodologies used in industry today, and it's taught by one of the best professors I've had at CU so far, Amer Diwan. The last class I'm taking is User-Centered Design, which promises to be very good. We'll be looking at how to make software and all technology easier to use for more people, even those with disabilities.

These classes should be a whole lot more practical than last semester's classes, so I'm excited about that. I just have to keep up with the workload, and I'm slowly learning how to do manage my time better. Maybe I'll even have enough time to start attending events at the local ACM chapter. The university's chapter of the Association of Computing Machinery is a little like a computer club, but they do programming contests, job fairs, Tech Talk lectures by professionals, and a lot of other stuff that could help me build a network of colleagues and boost my skills. It sure can't hurt!