Tuesday, April 8, 2008

So it begins!

We have finally finished all of our documents. All that's left is to finish our site, update our documents to reflect any changes we made, test, debug, and ship! Yeah...easier said than done.

Jared, Jason, and to an extent Jonathan are well versed in PHP and how the tools work. Andy seems to have a basic understanding and I think Daniel understands it as well. Me, well, quite frankly, I know absolutely nothing about this. When I joined up I figured all this website stuff would be easy. We would write some HTML, which I knew little of to begin with, and have a fancy website running. Nope. Turns out there are all these tools, modules, scripts, servers, securities and stuff to take care of. There are a lot of tools available to help, but dag-nabbit, still goes over my head.

Through the first part of this project I've managed to keep busy by helping with the documents, but now as we have arrived to actually producing something, I'm a bit nervous. It should be ok though. We have a lot of resources at our disposal not to mention Jared and Jason seem to know what's going on, so I can always ask them. Currently, I have asked the team to assign me the easier stuff that won't be critical or highly depended on. This way I can contribute something but not be a hindrance to the rest of the team.

We'll see what happens, if I can't contribute to the core part, I'll help in other ways. There is still a document to maintain and people to manage... bwahaha :D

Making up for the past... Part II

Since the project has started we have submitted various documents. Following the Requirements document was the Management document. This covered how we would be managing the project - hence the name - and how we would we would schedule our time. Granted a bit of it seemed like fluff - how much experience can we, as 'young' students, claim? Also, our 'team organization' section essentially said that everyone would be doing everything, except for Andy, who's our team leader. But that's the only difference.

For this project/class given the time, to me, is a little silly. However, given a large corporation or development team, this would be invaluable. And it is good practice to see and write a document like this. So, although it seems like I'm complaining a tad bit, I see the value behind it.

ps. I kind of wish I could see if the company I work for has or had a document like this...maybe I should ask them.

Tuesday, April 1, 2008

Making up for the past

It's been over a month since I last posted something, so hopefully I can make up for some of that with a decent review post...


MixCD

The last post I wrote covered what the project I am part of is about. Since then we have written the Requirements Document which detailed the requirements we wish to fulfill by the end of the semester. We defined certain aspects like users and how they would interact with the system, what language we would be using - essentially high level requirements.

As we develop our product - essentially a website - we will look back to this document and see if we have met the requirements. The requirements document is a living thing where it can change and evolve as we progress. However, the closer we get to and manage to meet our requirements the better we are. (Not that change is bad, sometimes requirements can be set to high or low and change may be required.)

Our project is fairly straightforward and easy to implement, I look forward to the finished product and see it in action.

Friday, February 29, 2008

MixCD

I have volunteered to be part of Andy's MixCD project. This seems like an easy enough proje with an interesting goal.

The idea behind the project is to make a website that people use to track Mix CD's they've left lying around for other people to discover. When someone finds the CD they can go to the address trackthismix.com on the CD and see what mix is on there. The person who left the CD can then be notified that their CD had been found. We feel this is an interesting if not entertaining way of sharing music. Not only do we get to see who and where the CD was left, but track it's progress. This is very similar to the Where's George website. There are some complications to it; will people actually burn CD's and be willing to leave them? Will the RIAA decide to sue us?

This project seems fun, but most importantly, easy to do. I'm one for challenges, but when you're in your Senior year in college, easy projects are very tempting. :D

On a side note, I would love to see this project done on Facebook. The reason being, it already has a set userbase and would be easier to spread the word through the website. But right now, we already have our website and we'll be given some freedom with our project.

We'll see where we go from here!

Mindstorm-XO fails

My proposal for this class almost past muster, but didn't make the cut. I'm not too surprised, it is a difficult project and would have taken a lot of work. The project was tied with two other projects - with two other projects having more votes than ours. The vote came down to a secondary vote and MXO only got 3 votes total. Like I said before, I'm ok with the project not being chosen, and frankly, I thought some of the other ones were more interesting than mine. However, I do think Chaz gesture project would have been a lot of fun to do (and useful) and Vince's Karma project also - much to Vince's chagrin.

All posts following this will cover the project I am on...which will be the topic of my next post.

Wednesday, February 13, 2008

I prefer a hefeweizen, but a draft will do

The rough draft has been completed. I'm not completely and totally satisfied with it but, I think it's decent. Prof. Bridges suggests that I make some corrections, add previous work like LabView into the main proposal, and make a more thorough time-line. Easy stuff that can be done rather easily. He also suggested having a back up plan unless we have trouble developing for the XO. Some kind of simple program for High School students or maybe even elementary students. Hopefully it won't come to that and we wont' have to worry about there being too much trouble with the XO.

Here are some excerpts from the draft:

On Motivation (suggested improving this section):
Currently there no is research or development for NXT on the XO. There has been a report that LEGO Education will be working with OLPC in Brazil [link], however, there is no indication – or guarantee – that they will port their current Microsoft Windows and Mac OS X compatible NXT software to the XO. LEGO Mindstorms NXT is an incredibly popular robotics kit with many schools from elementary to Universities utilizing the tools available.
On Background:
The One Laptop per Child (OLPC) association is non-profit organization whose goal is to develop a low-cost laptop – the “$100 Laptop” or XO-1 – to revolutionize how we educate the world’s children. Their goal is to provide children around the world with new opportunities to explore, experiment, and express themselves [link].
Background continued...
LEGO® Mindstorms NXT is a programmable robotics kit released by LEGO. The LEGO Mindstorms NXT software enables a user to program and upload instructions to the NXT – an intelligent computer-controlled LEGO brick and the brain of the Mindstorms robot –via USB or Bluetooth connectivity [link].
Finally, on System Description:
The graphical user interface (GUI) will consist of large, easy to understand icons indicating what the Mindstorm robot will do. This icons will be laid out along one of the borders of the application, while the main window will display how or what the robot will do i.e., a road map, so to speak.
Initially a user can select multiple actions and specify the duration of the actions. For example, a child can select a forward motion and she will be prompted to specify the length of forward motion – either in seconds or distance. The child can then stack the instructions so it can do multiple actions in succession. As the child progresses and learns more about actions, sensors can be added and the child can decide what the robot will do. Continuing the previous example, the child has added a touch or ultrasonic sensor and she can now give the robot instructions to turn 90o whenever it bumps into something or comes within a certain distance of an obstruction.
So where do I go from here? I need to revise my draft so it's a little more coherent. Add some positive spin as per Prof. Bridges suggestions and, well, pray I can make more heads or tails out of this.

I like the idea I've come up with (although, I have to give a lot of credit to Jared Quintana for the original idea, I've essentially run with it). I was a little worried about it when I first wrote my concept paragraph, but now that I've fleshed out more ideas, it's kind of starting to grow on me. I really do wish I could have done some sensor network stuff, but this will be good too. I'll be honest with anyone actually reading this, it would be really cool if this project worked out so well it became part of the main packages or programs for XO. That would be awesome, but I'm certainly not going to hold my breath. (There are other issues with Mindstorms that come into play... i.e. the price.

Thursday, February 7, 2008

A proposal

I finally came up with something to propose, I'm not entirely satisfied with what I went with or with what I wrote, but it may work. Here is what I currently wrote:

LEGO Mindstorms for the One Laptop Per Child Project

I propose developing software that allows LEGO Mindstorms to work with the laptops created through the One Laptop Per Child (OLPC or XO) project. LEGO Mindstorms is a programmable robotics kit released by LEGO. Currently, Mindstorms is only programmable through NXT, software developed by LEGO that only runs on Windows and Macs. This project is aimed at the end-users of the OLPC, primarily children and teachers, so it would remain relatively simple to program and use. Currently there is no software or on going development for LEGO Mindstorms and OLPC although it has been suggested on the OLPC website wiki that a low cost version of LEGO Mindstorms system be built around the XO.
LEGO has various libraries and Software Development Kits (SDK) available on their Mindstorms website. There has also been some work done to make NXT UNIX compatible. The OLPC itself is UNIX compatible; it uses components from Red Hat’s Fedora Core 6 version of the Linux Operating system, so that may ease the development cycle. The biggest challenge for this project would be trying to get the Mindstorms hardware to communicate with the OLPC, however, if the Bluetooth and hardware libraries written by LEGO are thorough enough, it may prove to be simple.

The last line is probably the most telling. If the libraries are well written and easy to add into an implementation then the project will (hopefully) go smoothly. But then one still has to worry how the XO laptop can handle something like this. Well I guess I will soon find out as I am now tasked with doing some in depth research on all of this for the big proposal due Monday.

Another idea I wish I could have proposed was working with sensor networks. Apparently Prof. Bridges has equipment that can take remote measurements. I wanted to do something like this but I didn't have a solid ideas at the time the proposal was due. However, typical for me, the ideas have poured into my head immediately after turning in the proposal up there. Although it's too late to actually submit this idea, I still would like to throw it out there for anyone to read.

The project I thought of was to use a sensor network around the UNM campus to determine how much second hand smoke was in and around the buildings. For the past year or so, there has been a lot of debate about smoking on campus and how close people should smoke to a building. While, I am neutral on the issue, a system detecting second hand smoke, and possibly other types of hazardous gases, will help people make the proper decisions.

The main aspect of the program would be to gather and produce data. Then it would be presented in a beneficial way to the end user. A large portion of the time to develop the system would be spent on a graphical user interface to present this data.
In hindsight, I like this idea a lot more. It would have been a lot better for me since one of the graduate schools I'm looking at, has a program with monitoring ice flows using sensor networks. But, now that I've already turned in the LEGO thing, I'll stick with that and see what the other people have done.