The battle lines have finally been drawn. Microsoft has thrown Windows 7 into the ring, Apple OSX, and the final contender has been Linux with its army of open source developers. I will coincide the point that companies have supported Linux, but this has been centered around the server market. In that case a robust system that includes a combination of Windows Server and Linux based systems, along with other systems. The consolidation of this market is highly unlikely in the near future. Additionally, I feel this aspect of computing has little influence on the future of computing, it has become a transparent layer confined to the inner workings of data centers.
The point of interest is the desktop, but the battle may have already moved to a new front. While Microsoft and Apple fight for the desktop, Google has hoisted the flag of Linux in order to take over the internet. Immediately after Google Chrome launched, a new web browser by Google that this blog post is being typed in, I conjectured that Chrome was designed to be an operating system. Anyone familiar with how operating systems are composed would likely have reached the same conclusion. The architecture was simply too complex for an ordinary web browser.
What does it mean now that Google has entered the operating system market with Chrome OS? Not much at the moment, but there are some long term consequences. The trajectory of Windows and OSX moving forward are in the same direction. While they differ in some major aspects, they are only a few degrees apart. Even Ubuntu is on the same path as Microsoft and Apple, but Chrome OS has taken off in an entirely new direction. Think of it like everyone is trying to colonize Mars by building bigger and bigger ships, but Google just sent a tiny one man rocket to Pluto.
Chrome OS seems to have a major shortcoming in that it does not support any native Linux applications, even though it would be technically possible to run them. Why make such an anti-geek decision? The answer is not clear at the moment, but a few things can be guessed at. First, the system will be easy to use and target the average consumer. Taking the Apple approach of tightly coupling the hardware to the software will make the experience very pleasant. They are taking a Microsoft approach by providing a platform that developers can build applications on that will reach many millions of people. Restricting Chrome OS to only a web browser may not work at this point in time, but as we move to a more cloud based society, this may become the best option for security and sustainability.
The general trend at the moment is towards more centralized computing power. This pendulum has moved back and forth over the years, but with ubiquitous network access it may find itself stuck at the centralized computing position in the near future. While it is not possible to perform high definition video editing entirely in the browser now, nothing is stopping someone from making a method for doing this type of work. Think of even the most complicated applications, PhotoShop, AutoCad, Mathmaticca, these could all be rendered in the browser in some method. While a high power server will need to stand behind these applications, the front end does not require much processing power. I can not think of a single application that could not run by having a very stripped down, browser based interface into a system that stands behind it. Companies are already working on this with video games that require high frame rates and quick response times. While for consumers it makes sense for companies like Google, Microsoft, and Yahoo to provide the processing power, companies could run their own local services that they manage to insure uptime and responsiveness.
What is the conclusion to reach here? The point to take away is that we do not know what the future will hold for technology. While I support the improvements that Microsoft has made with Windows 7 and find some of their applications, such as OneNote, to be central to my daily productivity, the next big thing is still out of focus. Chrome OS is focusing on Netbooks today, but this is only the beginning. However, I can imagine a world where all of our devices run a front end platform that is simple a window into the internet. It does not matter who made the window or how it works, by this point in time the web will become the universal human language. My hope, my dream is that this arrives in such a fashion that is open and free. Will Google deliver on these dreams, I can not say. However, it appears that the move is towards the centralization of computing and the ramifications of this have yet to be felt.
Tuesday, December 15, 2009
What operating system will I end up using tomorrow?
Saturday, December 12, 2009
Preserving the History of Engineers' Days
As the Director of Administration for Speed School Student Council one of my main responsibilities is to "keep all Speed Student Council records other than financial." In this modern age of technology, this is coming up with a system to use modern technology in such a way that it will not be lost to history. This has primarily materialized in how I manage the Student Council website (http://speedcouncil.org). Specifically, the main records that SSSC produces are meeting minutes. At the moment, I am using Google Docs to manage these documents and it is working out nicely for the generation of new content.
While I still want to tackle the issue of all of the old meeting minutes, I have been actively uncovering historical records in another area. Engineers' Days, now known as Engineering Exposition, is a long standing tradition at Speed School. My new mission has been digitizing the past programs from the events and posting them on http://engineering-expo.com.
I have been scanning in the collection of old programs that have survived the years in the council office. The oldest program that survived was from 1975. However, even older programs dating back to the 1930's have survived in the University Archives.
What I have been doing is scanning in the programs and creating PDF versions of the paper programs. This is a good first step, but how is it possible to preserve these records online without trusting that some service is around years from now. The approach I have taken is somewhat complicated, but it seems to be working.
The new E-Expo website is hosted using an install of MediaWiki that allows for very simple editing. The PDF files can be easily uploaded to the wiki and made available on the internet. However, the level of accessibility is somewhat limited. Google has made available Google docs Viewer which translates any PDF or PowerPoint into an HTML iFrame. This way the actual PDF is hosted by SSSC, but an easy way of viewing the document is provided by Google.
Here is the 1975 Program for Engineers' Days:
All of the programs and information about each of the past events is available under Past Events on the E-Expo website.
Moving forward I still need to find a way to get digital copies of the programs that are located in the University Archives. Because the library charges to scan in these documents there is no means for getting digital copies of these materials at the moment.
Additionally, even with the programs hosted on council's website, they may not survive the test of time and technology. One method of preserving these records may be to release them under a Creative Commons license and publish them to the Internet Archive.
This task has taken up quite a bit of my time, but I feel that preserving this history is well worth all of the work that it takes.
Wednesday, November 11, 2009
Horrible Turn
When it comes to the future of the entertainment industry, Dr. Horrible's Sing Along Blog was years ahead of its time. To this date, the only music I have purchased on iTunes was the soundtrack to Dr. Horrible. When looking at the entertainment industry, more money does not mean better quality. It is only appropriate that this short film has prompted a follow up project.
It was Dr. Horrible on Twitter who tipped me off to the unauthorized prequel of the amazing internet musical. Horrible Turn is a fan made short movie that explores the high school lives of our favorite characters of the sing along blog.
The movie is a filled with nonstop allusions that will make any Dr. Horrible fan smile. There are enough that the movie is worth a second look just to catch all of them. Not only does the film build the foundation for the main characters quirks, but it explains how Billy transitioned to Dr. Horrible and how Captain Hammer became... well Hammer he was never a very nice guy.
It is worth watching after the credits as there is a ballad to Captain Hammer from an unexpected character. It is probably the best song in the entire movie. At the very end there is a blooper reel that is just incredible and really makes the move truly wonderful.
Horrible Turn from Horrible Turn on Vimeo.
To everyone that worked on the move, great job! I really enjoyed it.
Is there such a thing as too much Google?
With the introduction of the Google Accounts Dashboard I have a better idea of just how many Google products I use on a regular basis. I'll attempt to list most of them and just how I use each of the products. I realize this list is not comprehensive; because I am sure there is some Google Product that I am using that I was not able to remember.
Gmail: I used Gmail constantly throughout the day. Probably the most important of all of the Google products that I use since I have so many email accounts leading to the same inbox.
Google Contacts: Historically, Contacts has been an awful product. However, with the synchronization with my iPhone contacts, this has become my central place for all of my contact information. Since it bridges multiple Google products, my motivation of keeping this up to date and comprehensive has more than doubled.
Google Calendar: It took me a long time to convert to using Google Calendar. The main thing I was missing was the colors for different events within a single calendar. Also, the ability to keep a calendar and contacts in the same place made Outlook hard to walk away from. Now I have multiple calendars shared with various people and groups. Like most Google products, the collaboration really makes this product more useful than it would be in a vacuum.
Google Tasks: This product is so tightly integrated into Calendar it almost doesn't qualify as a separate tool. This is my first semester using Google Tasks, and as a product it just isn't there yet. However, it is improving so quickly, it is fine to use. Many of the features that I wanted it to have when I started using it have been slowly introduced. The main thing I would like to see is tighter integration with the iPhone.
Google Sync: This is essentially Exchange support for email, contacts, and calendar. I only use the sync with my contacts and calendar on my iPhone, but it is absolutely life changing. This sync has made the usefulness of Calendar and Contacts much more than it was before it was syncing with my phone. I have tried using the push email, but it does horrible things to my battery life on my iPhone.
Google Docs: While it will never replace Microsoft Office, especially OneNote, Google Docs are very important when it comes to anything collaborative. When working in a group on a school project, the first place I turn to is Google Docs.
Google Talk: This product is very interesting; I use it primarily because I am always inside of Gmail. My preferred chat client is Skype. The main reason I am not thrilled with Google Talk is because the desktop client is just annoying. The fact I cannot guarantee encryption is enough for me to just stay away from it everywhere except for within Gmail.
Google Voice: I am very new to Google Voice and do not use it on a regular basis. It is the number that I give out on my business cards, and I have my voice mail being sent to the account, but most people have my existing cell phone number. The product itself if very exciting and the future is something that may change the way I use my phone. It will take me years to transition to fully using Google Voice.
Google Reader: While I have almost 100 feeds in my reader, at time I find it hard to keep up with it. I go through phases of using it on a daily basis and not using it for weeks. While it is a useful product, I don't find myself using it unless I have the free time and need a distraction.
Google Alerts: Since I only use Alerts through Google Reader, I don't feel like I use it very often. Almost all of my alerts are feeds in Google Reader and they are almost all vanity alerts about myself or sites that I manage. It is a useful product, but sometimes it just returns garbage.
Blogger: This one is a little obvious. This blog post is hosted via Blogger. At this time this is the only blog that I have through Blogger. While it is tempting at times to switch to some other product such as Square Space, the price tag of free is hard to beat.
Feedburner: In the same category as Blogger, my feeds for my blog and several of other feeds that I have are run through Feedburner. It is a nice service and gives useful information and control over any feed. However, the fact that it is owned by Google really doesn't affect me.
YouTube: YouTube is an interesting for me, I do not use my personal YouTube account very often, but I use the account set up for STUG for posting Tablet Tips quite a bit more. Aside from watching a lot of content hosted on YouTube, it is my preferred place to host video. Google is definitely pulling the internet along with providing essentially unlimited video hosting via YouTube.
Google Wave: This is a very new product from Google and I am still learning how to use it. Since only a few of my friends have accounts I have not had the opportunity to use it as extensively as I would like. However, I do have a class project that I am able to use Wave with so that will be my first venture into the product. My opinion is that Wave will help shape the future of the internet and is the model that will be adopted that will replace the static page.
Google Finance: I have my portfolio included as part of Google Finance, but I find it hard to update and not very useful. When I am looking up information, this is the first place I'll turn, but as for maintaining a useful reflection of my portfolio, it is lacking. Overall, a useful product for information, but it is not worth keeping portfolio information here. My brokerage account provides me with more than enough data and information in a guaranteed accurate format.
Google Analytics: For tracking all of the visits to the websites I manage, Analytics is my first and only choice. It simply works. There are plug-ins for Drupal and MediaWiki, the two many CMS that I use on my sites. The historical data collected by Analytics is very useful, bit the number of visits I get to my sites are still very modest.
AdSense: To be honest, I am not sure why I use AdSense. I have not made any significant amount of money the entire time I have had ads on my Blog. I now have ads on my personal website as well. I have this aspiration that my site will become wildly popular and it will actually cover the hosting fees, but that day has yet to come. Overall, it is an interesting product and the ads are not intrusive enough for me to remove. I will keep them mainly because they make my site feel more connect to the rest of the internet.
Google Webmaster Tools: This product provides information that is much more interesting that anything Google Analytics provides. On the sites where I am trying to show up in search results, having an insight to how Google actually sees my sites is priceless. I can also learn interesting trends about who is linking to certain pages and what search terms are bringing people too me in a way that Analytics doesn't provide.
Google Groups: This product is mostly useful for school and SSSC. I use Groups for archiving all of the emails sent out over the SSSC list and it works as intended well. For the Freshman Council's, I set them up with a Google Group so they can be more independent and not depend on someone else for communications. Overall, the product does its main job well. However, I would like to see some expanded APIs and a better SPAM filter.
Google Maps: This was a product that I almost forgot to include. Since Maps is not as tied to an account it doesn't feel as integrated as many other Google Products. When I need directions or am looking up information about a location, Google Maps is typically the first place I'll look. However, I will often turn to Live Maps for their Birds Eye View which gives much more detail than can be found on the satellite or street view images from Google.
Picassa Web: This is a product that I rarely use, Flickr is my primary image host / storage for web based pictures. The integration with other Google products has made it almost impossible for me to avoid Picassa entirely, but when I need to do something with pictures, my Flickr Pro account is my first choice.
Google Code: I have only started using Google Code a few months ago and have found it to be very useful. The interface and tools have the Google look and feel which makes them very easy to use. However, there are limitations to the product that make it still feel very young. Unlike many other Google products that simply do not place caps on your usage, the limits on Code make me nervous. There are multiple small projects that I would like to publish, but with the limit of 25 projects that you can create I feel like I should save them for more important things. It is reassuring to see Google contributing back to the open source community.
Google Chrome: This is the only client side Google application that I use. Google Chrome has essentially become my primary browser because it is so fast. I still use Firefox, just not as regularly. Chrome is simply an amazing browser that is forcing all of the other browser companies to double down on their efforts at paving the way to the future of the web. If only this would motivate Microsoft to update IE to be a modern browser.
Monday, November 2, 2009
What is Wrong with Windows 7?
I am very, very disappointed in Windows 7. As an early adopter, I was not able to have an enjoyable beta experience. Unfortunately, experience has remained the same through the release candidate and the final version.
I'll document why Windows 7 is such a bad operating system and an even worse Microsoft product:
Windows simply will not crash or cause me any major problems. It simply works! This is simply unacceptable from a Microsoft product. Consumers have come to expect a certain quality of service, and this product is not delivering.
In Microsoft's defense, I have had a few problems. There were some missing drivers during the early part of the beta, but these did not really affect me in any noticeable way. However, on a fresh install Windows 7 manages to find all of the drivers I need using Windows Update, installing them without any need for intervention. I enjoyed searching obscure manufacturer sites for mislabeled drivers. What am I going to do with all of this free time you have given to me?
I have had some programs lock up, but it would be hard to blame Windows 7 on this, they probably would have locked up if I was running Windows Vista or XP. When something does crash, it simply re-launches itself in the exact state I left it in. This is definitely not an optimal waste of my time.
Recently I did have a standby session crash (this is when your computer is in standby and it shuts down improperly and reboots. However, this has only happened once in Windows 7, I would have at least experienced this 2 or 3 times in Vista. It even sent an error report on the problem back to your home base so you can analyze the problem. If you know about the problem then it will be easier for you to fix! Not cool...
Fortunately, there are still the occasional wireless problems, but like Vista they can be automatically fixed by selecting "Troubleshoot problems." It seems that this works a higher percentage of the time than it did under Vista. Again, this is another instance of Microsoft going in the wrong direction. I would recommend you simply change this button to bring up a progress bar that simply never stops loading, similar to how it functioned under Windows Vista.
The only thing I have to look forward to is a beta release of Windows 8, which will hopefully be a buggy product that causes lots of problems with existing software. Even more exciting, it may not work with existing drivers! However, with this release being a year or two away, I do not know what I will do until then. I'll just have to rough it out using Windows 7 until some buggier product is made available.
Thursday, October 29, 2009
What to do with Google Wave
I was lucky enough to receive a developer's account for Google Wave really early in its pre-pre-launch time window. Unfortunately, Google Wave is basically useless if you are all along. It feels something like having a laptop without an Internet connection. What are you going to do? Play solitaire! Now comes the pre-launch, Google Wave preview, when people are able to invite others. I now have several people in my contacts list that have Google Wave accounts so I have played with it a bit, but not usefully yet.
To really understand what Google Wave is all about, you need to use it to accomplish something. The necessity of accomplishing some task and the coincidence the person you are working with has an account has not crossed paths yet in my life. I know people with accounts, but have not found some useful way of using Wave yet.
This is not to understate the fact that I have come up with some interesting ways of using Wave, I have just not had the time to implement any of them yet. The biggest use I can think of is using it as the back end for a content management system. This is definitely not an intended use and a lot of work would need to be done to interface Wave with a functioning website.
Another way I hope to use Wave is as a real time collaboration platform for some of my class work. I currently use Google Docs for many of my classes where I work on a team. The near real time functionality of Google Docs is nice, but it is not perfect. There is a delay and it can cause problems. With Wave, two people can literally be editing the same sentence.
At this point in time I really do not have that much to say about Google Wave. I recognize it as a very important platform that will help drive the Internet forward, but is Wave too early? Will people be able to find ways of using it? Most other Google products are simply better versions of tools that are available from many other companies. What makes Google special is that it keeps things simple while providing innovative features, think Gmail.
Google Wave is very exciting and I hope slowly integrate into my daily Internet connected life.
Monday, October 26, 2009
Fujitsu T5010: First Impressions
To start off this review, I will make it clear that I did not purchase my Fujitsu T5010. I won it at the WIPTE 2009 conference in a drawing. I have had about 2 days to play with it, and have not used it to take notes in class yet, but I have a good feel for the device.
I was initially disappointed that it did not ship with Windows 7. Since it shipped before the Windows 7 launch date, I should have expected it to have Vista. There was a lot of pre-installed software included on the computer and the first boot took a very, very long time. The bells and whistles that Fujitsu included in their Vista build really seemed to slow the system down and were just not to my liking. Luckily I have a lot of copies of Windows 7, so after a few hours of playing, I installed Windows 7 Home Premium. However, this should not be held against Fujitsu since all of the manufactures do the same thing. My preference is to run a clean copy of Windows, the way Microsoft intended.
My biggest disappointment is the lack of Microsoft Surface applications. However, this is Microsoft at fault here. At this point in time, only OEM's are able to pre-install them on computers, meaning I will need to wait for them to be released to the public before I can use them. The screen on the T5010 supports both Wacom pen input and two points of capacitive touch. The screen behaves very nicely switching between the inputs, although the tip of the pen does not feel very good on the screen and needs to be broken in some. Both Paint and IE8 support multi-touch, so I have played with it a bit and enjoyed the experience so far. The touch is not as accurate as I would like, but I think most of this is how the software is handling the input.
The overall size of the computer is far larger that I would prefer. This is primarily due to the fact it includes a built in optical drive. While my Toshiba M405 included a built in optical drive, the T5010 has a slightly larger screen and the overall bulk is what I would consider the maximum size that a student would want to carry around. While I know many people who carry around 15 inch and even 17 inch computers, the biggest I would recommend is 13 inches. Compared to my HP EliteBook 2730p, the T5010 looks massive.
My experience installing Windows 7 was fairly smooth with no major problems. However, unlike my experience installing Windows 7 on HP computers, the drivers were not automatically found by Windows Update. However, the drivers for Windows 7 were available on Fujitsu's website for download. This is fine for a computer geek, but someone less technical may have some problems.
Overall, the T5010 is a very feature rich Tablet PC. With both pen and touch inputs, a built in optical drive, built in webcam, and some other interesting features, it is very versatile computer. The main thing that stands out is the fact the screen can rotate in either direction. While this isn't really a major productivity booster, it is interesting that they managed to make a hinge that can go either direction. It seems that it will hold up over time, but that takes time and abuse to really make a judgement.
I am going to finish setting up the computer over the next few days so I can use it to take notes in my classes and will give it a chance. However, the fact it is so much larger than my HP Tablet PC, I will likely not change my primary computer. Thanks to Live Mesh using more than one computer is not a problem. It is nice to have a 'reserve' Tablet PC, and with Mesh syncing all of my files, I will probably end up leaving my HP in my backpack when I get home work just use the Fujitsu at my desk.
Sunday, October 25, 2009
Velociraptor!
Friday, October 23, 2009
Engineering Students and Competent Computer Management
As a Computer Engineering & Computer Science major I have a lot of experience keeping a computer up and running smoothly. Actually, I have quite a few personal computers that I keep up and running. So do almost all of my classmates in my major. I keep my antivirus up to date, expect the monthly updates for Windows, avoid creepy / dangerous software, and backup regularly.
Sunday, October 18, 2009
Tablet PC Manufacturer Breakdown
This is just a summary of my experiences with various Tablet PC manufacturers. My first Tablet PC was a Toshiba and my girlfriend used a Gateway Tablet PC for several years. I have since moved on to an HP Tablet PC and my girlfriend is currently using a Lenovo Tablet PC. Additionally, I recently won a Fujitsu Tablet PC at WIPTE 2009, but it is in the mail and I do not have much experience with Fujitsu yet. The last manufacturer I will talk about is Dell, while I do not have experiences using one personally, I have experience supporting students who own a Dell Tablet PC.
Wednesday, October 14, 2009
Attending WIPTE 2009 at Virginia Tech
This past Monday and Tuesday WIPTE 2009 was held at Virginia Tech. I attended WIPTE last year, but only for one day and not the entire conference. Since Virginia Tech is 6 hours away from Louisville I ended up attending for both days. The conference was a lot of fun and there were a number of presentations that were related to the work I have been working on.
Friday, September 11, 2009
An Open Source Semester
This semester I have already expressed that I am swamped with school/work, but so far have been having fun. As a small distraction I have a few interesting facts to share. I have determined that on a weekly basis I will be coding in five programming languages. They are:
- PHP for Student Council's Website and any other web code I decide I "need" to write
- C# for my CECS 550 project and the DPX software I am developing
- Java for my CES 220 class
- Assembly language for my ECE 412 class
- Objective C for my work on the iPhone
At this moment, I have three projects that I am working on that are hosted on Google Code. They are:
There are a few other large pieces of software that I have written that I am thinking about releasing open source. The one that it at the top of my list is my Alien Defense game that I wrote for my object oriented class last fall. While it isn't a very fun game, it is almost complete. At the very least it is playable, just not fun. With a lot of re-factoring and some time dedicated to balancing the game difficulty is needed, it would be a fun game if it was finished.
As for SCM, I have a dedicated computer that I have off site and always running that I have set up CVSNT on. However, I do not know if that is the SCM software I will end up using. SVN is probably a better choice. I have tried using GIT, but the lack of integration into some IDEs have kept me away from it. Since my biggest projects are already in an SVN hosted by Google, I will not be rushing to find a solution for myself.
Even though I have a lot of work to do, I am excited to be contributing to open source projects. While these projects are ones that I have started, in the future I will probably try to find some other projects to contribute to.
Saturday, September 5, 2009
Speed School Student Council Reboot
I will admit this semester seems a little bit different. Part of it may be the fact I am spread so thin between everything I am doing or it might be the fact I haven't been in classes all year (I've been on co-op). It could be the newly remodeled Duthie Center of Engineering, formerly the Kersey Library, providing a new social space for Speed School Students. Whatever it is, there is a new motivation behind a lot of the work I have been doing these past few weeks.
As for SSSC, planning for E-Expo has already started. It hasn't ramped up yet, but that time will come sooner than anyone will expect. The plans are to have a bigger, better, and more involved E-Expo this year, but everything at the moment is still up in the air. We will see where the pieces fall, but hopefully I will be able to assist in making it an overwhelming success.
As for my involvement on SSSC, I have had this master plan that I hatched shortly after being elected. When I was giving my speech on why I should be chosen for the position, I stated that I wanted to make council more transparent, specifically with attendance records. Well, that is something that is really geeky and might not be the most logical place to start if you want to make an impact on council. However, I had a plan. Let me explain...
In the summer semester when I was on co-op and therefore no homework, spent a few weeks and countless hours developing a system to manage council. My position as Director of Administration means I'm in charge of all records non financial. I had already managed to improve the way the website was updated and organized the meeting minutes into a little better, but I made a promise to fix attendance.
I developed a robust database that was able to hold all of the required information. I then proceeded to code a management interface in PHP that would be used by the DOA, in this case myself, to perform all of the management tasks. This included adding new members, adding meetings, taking attendance at meetings, adding committees, adding members to committees, adding achievements, awarding members with achievements, and updating and deleting the various types of records where appropriate. It was quite a programming feat for one person. I have since open sourced everything and you can find it at http://code.google.com/p/student-council-attendance/
The next step in the process was making all of this information available on council's website. I wrote all of the "reports" that take the information stored in the database and presents it in a nice format. I then wrote a bit of PHP that can bridge the gap between the Drupal CMS used on Council's website and this new PHP web application I developed from scratch. At this point, my master project was complete! http://www.speedcouncil.org
My Plan
Now that the back story is out of the way I can explain my plan. The basic concept is a system of social rewards and punishments. With attendance records being displayed very publicly on the website, those members that fall into bad standing will be highlighted. In contrast, members with perfect attendance are highlighted on the home page. During meeting, attendance is displayed on the projector so everyone can see who is present and who is absent. All of this weights into a social equation that places pressure on members to be more involved.
However, attendance is simply not enough. Members need to know how to be involved. This is where committees come in. Every member is required to serve on a committee. Members who are not serving on a committee are highlighted and in turn may be pressured to join a committee by their peers who are serving in a committee. However, this is mostly a negative social reinforcement and needs to be balanced out.
Achievements provide the strong, but intangible, positive social reinforcement to balance out the other negatives weights in the system. Achievements are simply badges that are displayed on members profile pages. They can be awarded for a variety of tasks that need to be accomplished by council. Members who have earned achievements since the previous council meeting are highlighted for their accomplishments. This allows, at a glance, for anyone to see who is more involved.
While the underlying system is very geeky and complicated, I enjoy my PHP and MySQL craziness, its overall aims are social. The goal is to jump start council involvement. Similar web based efforts have been made in the past, but in my opinion lost track of the social aspects involved in productivity.
This entire system is especially focused on the underclassmen who are only starting to get involved. My hope is to create a sense of transparency in how council operates and instill self pride in members of council and their accomplishments. Time will tell if my effort was worth it and my approach was justified.
Sunday, August 30, 2009
New Semester, New Challenges
The first week of the fall semester is over and I am definitely in for an exciting semester. I have more classes, extracurriculars, and work than I can even list, but not more than I can handle. This will probably be my only weekend where I actually have some time to relax.
There are only two classes (I suspect) I have that will have a large amount of homework in. This isn't to say that my other classes won't keep me busy, it is just a matter of magnitude. Those are ECE 412 Computer Interfaces (which is being renamed Microcontrollers) and CECS 550 Software Engineering. 412 will require about 20 hours a week in open lab when it gets going full speed. However, the difficulty of this class isn't the reason for the amount of time dedicated to this class, it is simply that the labs are very long. In the end this class will be very rewarding since it is the first time I will have programmed in assembly language. 550 will be interesting because it is a capstone class where we are required to develop a complicated piece of software in a team. Tentatively, my group is planning on developing a piece of software that will allow for the creation of student seating charts. While this isn't very glamorous it will definitely be challenging.
As for other things that will keep me busy, Speed School Student Council is high on that list. I am still the Director of Administration and as such have lots of paperwork (actually everything is digital) and other logistical concerns that keep me busy. Luckily I was able to accomplish a lot this past summer by improving the website so I should not be overloaded with council tasks.
I will continue to work part time for GE. I'll be doing the same thing I was doing at the end of my last co-op so it won't be that stressful. Actually, a lot of what I'll be doing is documentation, so that will interesting.
Lastly, I will be helping out in the calculus classes. This also ties into the work I'll be doing with STUG this semester. There is a brand new group of wide eyed freshmen with new Tablet PCs and lots of questions and confusion. I'm doing my part to help make things move smoothly. I will also be publishing new episodes of Tablet Tips when I find the time. I will also be continuing work on the DyKnow Panel extractor software that I wrote last fall. I will also be presenting the paper I co-authored on that topic at WIPTE 2009. I am also working on a web based version of this tool. The web based version will be more of a guilty distraction from everything else I need to do.
That about covers it for the beginning of my semester. Hopefully I'll be able to keep up my weekly habit of blogging. I didn't have anything interesting to blog about this week. Hopefully that will change very soon as I start to do some interesting things.
Saturday, August 22, 2009
YubiKey, Authenticate Me Please
I enjoy really geeky gadgets and potentially one of the geekiest things I have purchased lately was a YubiKey from Yubico.
For someone not very technical it might be a little hard to understand what a YubiKey actually does. From a security standpoint it is quite simple, it authenticates you. It looks like a very thin flash drive with a button on top. When plugged into any computer it acts like a USB keyboard. This means it works on anything with a USB port that supports a keyboard.
The point of having a YubiKey is to have a one time password. Just like the name implies, a one time password is a password that only works once. Evey time you click the button on the YubiKey generates a unique password that will only be valid once.
How a YubiKey Works
Stored inside of the YubiKey and on the server that authenticates the YubiKey is a secret key that uses strong AES 128 encryption to encrypt the message, OTP, that is sent to the server. The encrypted message is encoded in mod-hex (32 characters long) using an alphabet that is common to all keyboards. It actually doesn't use the letters, rather it works at the lowest level using scan codes that are common across all keyboard.
The actual message that is encrypted is broken down as follows:
- Private identity (6 bytes) - Uniquely identifies the YubiKey
- Usage counter - Increments every time the YubiKey is used. Insures every OTP is unique
- Timer field - (24 bits) - Initialized with random number which then counts up using an 8 Hz timer
- Random number (16 bits) - Initizlized with a random number
- Checksum - CRC16 Checksum of all of the fields
All of this information is encrypted to authenticate that you have the encryption key that was used to encrypt the message. The security of the entire system is based on the ability to keep the encryption key private and the inherent security of AES encryption.
What I've Done with my YubiKey
I have left my YubiKey authentication in the hands of Yubico so I am able to log into the Yubico wiki and forums in one click. I have also played with authenticating my own PHP web applications. It is a fairly simple process to run a client authentication on a web server.
Yubico is very open source with their product and provides authentication server and authentication client for many different languages and platforms. This includes my favorite language on the web, PHP. The authentication process is rather simple using the Standalone Yubico PHP class linked to from the Yubico web services clients page on their site.
The amazing part of the system is that you do not need a user name or password to log in if you want to use single factor authentication. It is for sake or argument, impossible for anyone to generate a valid OTP without having my Yubikey or the private encryption key which is kept secret. This means all I have to do to log into my own site is plug my YubiKey into my computer and press the button.
I have only played around with this authentication so far, but will hopefully be adding MediWiki YubiKey authentication to https://www.jaredhatfield.com/ soon.
Another Cool Feature
While the entire point of a YubiKey is to have a one time password, it has another functionality where you can store a static password in the device that it will simply type in on demand. With the added feature of having each YubiKey have two modes that it can operate in depending on how long you press the button (OTP + OTP, OTP + Static, Static + Static) I will be playing with this feature very soon.
This means you do not have to remember a very long password and can simply have a YubiKey type it in for you. This is very useful when you look at having long wireless encryption passwords or passwords used on encrypted drives or file containers.
I will continue to play and post on this topic when I have made more progress.
Sunday, August 16, 2009
UofL Cardinal PixelBlock
PixelBlocks are small interlocking blocks, similar to Legos in shape, but very different in function. These small colored blocks interlock on their edges and using different colors you can make pictures. While it is really common to make video game characters out of them, think 8 bit Mario, I decided to make a University of Louisville Cardinal head. I used something of a template, a blown up image where the pixels were easily visible, but much of the design was freehanded so some artistic liberty was taken in the final product.
I managed to frame my PixelBlock creation in an adjustable depth shadow box so it is now hanging proudly on the wall in my living room.
Thursday, August 13, 2009
Why an Apple Tablet is Bad News
With all of the tech pundits and blogs covering the rumored Apple Tablet, I can help myself but join in on the conversation.
I) My Background
Full disclosure, I spent my entire high school career wishing I had a Tablet PC. Now that I am in college, I am on my 2nd Tablet PC and am loving it. My program, The Speed School of Engineering at the University of Louisville requires all incoming students to purchase a Tablet PC for use in the class room. As for my credentials: I publish a podcast about Tablet PC's (STUG); I presented a poster on students educating students about Tablet PC's at WIPTE (A Student Driven Initiative to Increasing the Effectiveness of Tablet Based Learning Programs); I am currently working on getting a paper published about use of an automated software tool, that I wrote, in the grading student work submitted from Tablet PCs; I will be working for the Engineering Fundamentals department for a 2nd semester this fall helping calculus students during class time with their Tablet PCs. That all being said should establish my credibility on this subject.
When it comes to Apple, they do not subscribe to the oft quoted motto of Google, "do no evil." Quite to the contrary, Apple tends to be closed, restrictive, secretive, and overbearing. I'll leave that argument and discussion for another time. That said, I grew up using a Mac, but switched to PCs in middle school. I purchased an iPhone last summer and have been overall pleased with the experience, but I still see myself enjoying an Android phone more once the platform has matured a little more. I even have developed simple iPhone apps for my employer, so my experience using a Mac has been renewed recently.
II) The Apple Tablet
Now that all of the prefacing is out of the way, lets focus on the possibility of an Apple Tablet taking an optimistic approach:
The Form Factor
What will an Apple Tablet look like? Most people are guessing it will look like an over sized iPod Touch. This makes sense. It would not be hard to imagine the cross breeding between an iPod Touch and a MacBook Air producing a Tablet like product. My guess would be a 10 inch screen. This product will obviously be very thin, support multi-touch gestures, and focus heavily on internet and multi media. It may have some type of 3G support, but that isn't something I'll focus on. It will almost definitely have some sort of solid state drive for storage. It will likely boast amazing battery life, but actual performance, similar to the iPhone, will depend on how you use it.
The Operating System
While the actual implementation of the operating system is guaranteed to be a surprise, there are a few things that can be conjectured about. It will definitely be a variant on OS X similar to the approach that the iPhone has taken. It will likely have an interface that takes the best parts of the dock and springboard and blends them together. It may support existing iPhone applications, but with a change in form factor / screen resolution this is difficult to say. There will likely be no physical keyboard and will rely entirely on a on screen keyboard similar, but larger than the iPhone's. There probably will be some type of market place for distributing Apps, but this is also hard to guess about. The Mac is a relatively open platform while the iPhone is locked down very heavily. The Tablet may fall at one extreme or the other, but my guess is that it will be somewhere in the middle having a locked down distribution and media system but will still allow you to run existing Mac applications that support the platform.
What will it be used for?
There will be a major focus placed on multi media and video. Some people are predicting it will be a high definition media player for video. Other people have outlined a possible system where music booklets are included as part of albums for easy browsing. Even more optimistic people have guessed that it will be a color e-book reader. No matter what the Apple Tablet turns out to be, it will likely make major strides to revolutionize the industries it touches. The typical person using an Apple Tablet will still be an Apple early adopter. The users will be in air planes, on couches in living rooms, and college students distracting themselves from their studies. Business uses don't seem promising until the reality distortion field reaches the intensity similar to that of the iPhone, which is about 1 to 2 years.
III) Why this is all terrible news!
It is hard to decide where to even start. I'll focus first on the coverage and comparison to the existing Tablet PC market. Most people covering this story, specifically Leo Laporte, have written off the Microsoft Tablet PC platform entirely. Most reporters still hold to the idea of the Tablet PC that ran Windows XP, was slow, and had sub-par hardware. This is not the modern day Tablet PC. The slate Tablet form factor has all but vanished and has been replaced with convertible Tablets.
When it comes to the Microsoft Tablet operating system, it is Windows! Now the people on MacBreak Weekly laughed at the idea of using Windows on a Tablet saying they had to touch small buttons with a plastic pen. They were comparing the experience to that of an iPhone. A Tablet is a full computer, the iPhone is a phone, granted a feature ritch phone, but it would be hard to have that as your only device.
When it comes to Tablet PCs the rule of thumb is if you don't have a Wacom digitizer you wasted your money. The same people that complain about using a digital pen on a Tablet PC will profess the quality of a Wacom Tablet for use with PhotoShop. With a Wacom pen, a Tablet PC becomes a piece of paper that comes to life. Its accuracy and reliability can vary from manufacturer to manufacturer, but it isn't hard to find a good experience. For students, they need only look to OneNote to find the killer app for Tablet PCs. This note taking software enables searching of had written, typed, and scanned notes, revolutionary for students who are accustomed to carrying multiple notebooks.
How does this all relate to the Apple Tablet? How does a modern Tablet PC relate to the Apple Tablet? It is simple, they don't relate at all! The problem is everyone makes the comparison, which is only logical. That said, I dare someone to use an Apple Tablet as their only device and take pages and pages of classroom notes on it. I dare someone to have their primary computer not have a physical keyboard. I'm typing this blog post on my Tablet PC, using its build in, physical, keyboard! I understand these products are targeting different markets. Windows 7 has revolutionary Tablet PC by making the integration transparent with the operating system.
Students who have seen the light are hard to convince to go back to pen and paper. However, I have seen the other side of this problem as well. I know how hard it is to convince someone that a Tablet PC isn't a novelty. I know how hard it is to convince a student to go paperless. However, I will resign the fact that the Tablet PC is a niche product. Most people won't need the added features. I'll admit that being on co-op I have rarely used my Tablet PC in Tablet mode. However, when I go back to class it will be in Tablet mode most of the day as I take notes and do homework. The niche for the Tablet PC is education, and moving forward the paperless classroom will adopt Tablet PCs more and more.
Lastly, and selfishly, it will be hard to convince students entering Speed School that the Apple Tablet isn't really a Tablet PC and is just a toy. In the end the Apple Tablet will be a toy. It will be hard to do work on a slate Tablet. It was hard to do work on slate Tablets when they were common and running Windows, and they will be hard to do work on, but maybe fun to play multi touch games on, when they are running OS X.
Will I buy an Apple Tablet? Probably not. Will it change the industry? You bet! Will it change the industry for the better? My bet is no.
When Apple actually announces a product, we will have a better idea of its impact on the market.
Thursday, August 6, 2009
Old Louisville Flood Flood Damage
Louisville Kentucky received 6 inches of rain in under 75 minutes on August 4, 2009. I managed to stay safe and dry at work during the storms and my apartment and car made it through with no damage. To make up for that fact I ended up walking all the way from my apartment to UofL and back taking pictures of some of the damage along the way. This was with Cassie, Steven, & Alex.
Here are the top 5 highlights of the adventure:
5) Car tied to tree with garden hose
Not sure what this person was trying to accomplish, but it must have worked because their car didn't float away.
4) Rows of water damaged cars
On 3rd street the most impressive part was the the cars that had their trunks float and forced their back wheels up onto the curb.
The waterline was also visible half way up the doors of many cars.
3) Water being pumped out of UofL basements
There were 9 buildings that were reportedly having water pumped out of them. We didn't see that many but there were pumps running in quite a few buildings when we were there.
2) The mud outside of the Houchens building and in the underpass
It was the smell that really was the worst part. This area was under several feet of water with most of it making it into the basement. This was a really impressive sight on the news.
1) The massive flood at the underpass next to Speed School
We spent most of our time looking at the lake that had formed next to Speed School.
I feel sorry for the person who managed to get their car stuck in the massive amount of water. If I knew how it ended up getting stuck there I might not feel sorry for the person.
This view really give prospective on how much water there actually was left remaining even hours after the water has receded everywhere else.
The traffic lights in the intersection were acting rather crazy. This picture really does't convey what was really happening. All of the lights were on flickering really quickly. They would occasionally change behavior, but it was hard to track what it was actually doing.
Luckily there is a pumping station at this corner!
While the MSD and city said all of their pumps were operational, I'm not sure what their explanation is for this corner.
Luckily they have the sense to warn people that this intersection might flood. At least the car that was stuck was not driving in the direction where they could see this sign. That would make an even more awesome picture.
For all of the pictures I took during our trek to look at the flood damage can be found in my Flickr set on Louisville Flood 8-4-09.
Saturday, August 1, 2009
Upgrades to SpeedCouncil.org - The Database
Speed School Student Council has consumed more of my time than I should probably admit. Most of my time has been dedicated to a major overhaul of council's website: http://speedcouncil.org Therefore, I feel it is appropriate to discuss all of what I've been working on.
My efforts have been focused on bringing a rich array of content to the website that focuses on the members. The original problem that I was attempting to solve was implementing an accurate way to track member attendance. The old way of tracking attendance was using an Excel document, but I moved to Google Docs to allow for collaboration. However, this solution still was limited by the constraints. A normalized database structure was needed to accurately track member attendance. At the same time it would be possible to make membership and attendance records easily available online.
The entire system is based around members. Each member has a position and a default status. Their position along with their status determine their voting rights along with some other important information.
Attendance records are organized by semesters then by actual meetings. Each meeting has an associated type which in turn has specified positions that are required to attend each type of meeting. In order to track attendance records which tie a meeting, a member, a members current position, and their attendance status together. In this way, as a member changes positions during their course of involvement on the council, the position they held during a specific meeting is still tracked. In turn, the quorum for each meeting is tracked independently and can vary based on when members are elected mid-semester or even if a student on co-op shows up to a meeting.
Committees are another aspect of the council that can now be managed. Committees are easier to manage than attendance because they do not require historical data, rather they are a snapshot of the current status. Committees have a chairperson and then members. Members are tracked by tying together a distinct committee with a distinct member resulting in a record which represents committee involvement.
To help promote involvement, achievements were also added to the website. Taking a page out of the gaming world, achievements promote council involvement by tracking and displaying the accomplishments of members. Achievements are broken down into categories and have associated titles, descriptions, and images. In addition, achievements can be progressive requiring a number of tasks to be completed to earn the achievement. The earned achievements tie together distinct achievements with members, but also track the progress of the achievement.
At this point in time I have not open sourced all of my code. It would be something I would like to do, but at this point in time too much of the application is hard coded for the requirements of SSSC. Making it generic would dramatically increase the complexity, so this will likely not be done in the short term.
That covers the basic of the database without going into the specific structure. There is quite a bit more information that I can share about all of the work I have done, but for now the easiest way to get an idea of what I've done is to simply visit SSSC's website and look at the members, committees, and achievements.
Sunday, July 26, 2009
Irrationality & Freaks: A Book Recommendation
A typical book in my Audible library focus on technical / geeky topics or science fiction of some sort. My past two selections have been outside of that realm, but firmly within my area of interest. They have focused on human behavior.
a
It might be logical to conclude my fascination with the behavior of people is rooted in my lack of understanding. I'm not the most talkative person in a social situation; I often attribute this to my lack of interest in sports. However, I do enjoy looking at the world around me and analyzing everything. I can't help myself. It is the part of me that needs to understand, categorize, and model everything that drives the world around me.
The two books that I have recently read (listened to if you want to be technical) are:
- Predictably Irrational: The Hidden Forces That Shape Our Decisions Unabridged By Dan Ariely Narrated by Simon Jones (Audible)
- Freakonomics: Revised Edition Unabridged By Steven D. Levitt and Stephen J. Dubner Narrated by Stephen J. Dubner (Audible)
While my favorite of the two is Predictably Irrational, I thoroughly enjoyed both. They both consist of a random collection of examples, studies, anecdotes, and conclusions. I am constantly trying to remind myself of the lessons about behavior that are found in both of books. Applying these models of the world to the actions we take every day and in understanding the actions other people take will subtlety change the way I look at the world.
I find the topics of "The true cost of Free" and the analysis of social norms vs. economic norms discussed in Predictably Irrational especially interesting and can find examples in my own life. These are especially appropriate when it comes to looking at my own shopping behaviors and the way people interact in the work place.
One example that I find very appropriate is the willingness for people to keep doors open even once they realize they are no longer beneficial to do so:
More video demonstrations from Predictably Irrational at their website
As for Freakonomics, I really enjoyed the topics of understanding how parenting affects a child's success. To sum it up in my own words, it isn't so much about how good of a parent you are, it is more about how good of a person you are. The following section on names was even more interesting especially when it comes to looking at your friends and family.
Both books have associated blogs which (while I do not frequent) have provided very interesting reading after having finished the books: Predictably Irrational Blog & Freakonomics Blog
Sunday, July 19, 2009
A New Look for JaredHatfield.com
I wrote a custom PHP script for the first version of my personal home page on the Internet. It collected several RSS feeds from social media sites and displayed them in one location. The page simply collected all of my posts from my blog, Twitter, Digg, and YouTube. While this page served its function, technically, it was riddled with problems.
Saturday, July 18, 2009
My New Commitment to Blogging
I realize that I have not been the most consistent blogger on the internet. However, I often have things that I would like to publish. There are interesting items in the news, various projects I am working on, or simply ideas that I would like to share.
My new goal is to post at least one blog post every week. I'm going to try and be consistent, schedule some time to sit down and publish something no matter what. While it may be short and simply mention a few things, if I fall into a habit the probability that I start producing better and better posts goes up and up.
I have several other goals that all revolve around my web presence. I started on my personal home page a while ago https://jaredhatfield.com/ but never really finished. It doesn't look very good, is very slow to load because it is not optimized correctly to load in the remote feeds it uses, and needs to completely changed. This is definitely on my to-do-list, but finding the time is always difficult.
My other big project is posting things on JCode (https://www.jaredhatfield.com/code/wiki/Main_Page), my personal Wiki where I planned on posting things about projects that I have worked on. This is something of a companion site to my blog. More specific details and actual code will be posted on the Wiki while time specific progress will be posted on my blog.
The main project I have been working on lately is a method for tracking members, attendance, committees, and achievements for Speed School Student Council. I wrote a custom PHP application and designed a normalized table structure to store all of the information. The bulk of the work went into writing a management console that myself or future DOAs will use. The front end is at http://speedcouncil.org and is purely informational. This will likely be my first major post to JCode describing how I designed everything including table structure and some clever security features that I designed.
That is it for now. I haven't decided which day I'll try to post on yet, but at the very least I will be attempting to post every week, it is on my calendar.
Sunday, April 19, 2009
Thunder Over Louisville 2009
The weather was a beautiful for Thunder this year, a stark contrast from last year. Overall, it was an amazing day!
I ended up taking a total of 731 pictures which totaled around 2.3 GB of data. Needless to say, I spent a better part of today uploading all of those pictures.
Thunder Over Louisville 2009 (Flickr)
Thunder Over Louisville 2009 - Album 1 of 13
Thunder Over Louisville 2009 - Album 2 of 13
Thunder Over Louisville 2009 - Album 3 of 13
Thunder Over Louisville 2009 - Album 4 of 13
Thunder Over Louisville 2009 - Album 5 of 13
Thunder Over Louisville 2009 - Album 6 of 13
Thunder Over Louisville 2009 - Album 7 of 13
Thunder Over Louisville 2009 - Album 8 of 13
Thunder Over Louisville 2009 - Album 9 of 13
Thunder Over Louisville 2009 - Album 10 of 13
Thunder Over Louisville 2009 - Album 11 of 13
Thunder Over Louisville 2009 - Album 12 of 13
Thunder Over Louisville 2009 - Album 13 of 13
No, this picture doesn't need to be rotated, the helicopter was upside down!
Velociraptors!