Wednesday, October 5, 2011

Crazy Enough to Change the World

I don't like the iPhone, but I owned and used a iPhone 3G for two years. I don't like Macs, but I grew up using one and own one now. As a technologist I dislike the technical foundation that the products are built on. There are so many small things that drive me crazy as a developer.

None of the technical considerations mattered to Steve Jobs. It was never about the technology, it was always about the people. He realized that it wasn't about the megahertz or mega pixels, it was how it worked and how it looked.  Technology was only the enabler. Steve Jobs raised the bar for everyone creating products and at the same time moved society forward.

Apple was an experiment in what would happen if you actually had one person that was willing to make the final decision. He may not have always been correct, but he thought he was and stood behind his decisions.

The question I ask myself and I believe everyone should ask is, "By doing this am I making the world a better place?" You really can't know the actual answer to the question till after the fact. Mr. Jobs, the answer for you is yes.

Wednesday, September 14, 2011

The Age of the Operating System

What is the biggest challenge in computing?  Depending on who you ask and when you ask the question the answers will be dramatically different.  The biggest challenge often provides the gateway to the next breakthrough in computing.  While the iPad has created a new market that it proceeded to take all of the market share, I do not believe this form factor provides the biggest challenge even though manufactures of Android tablets are acting like it is.  Apple is promoting the three form factor sizes that they sell.  However, this is a dramatic oversimplification.

Macbook, iPad, iPhone

Reality is that we are living in a world where screens come in every shape and size.  The world is not divided into a 3.5 inch, 9.7 inch, and 15 inch buckets.  We have screens that range in size from 2 inches all the way up to 65 inches and beyond.

The real challenge is the operating system.  Specifically, the visual interface of the operating system.  In my mind there are three major competitors that are all working towards the same goal.  Apple's iOS, Google's Android, and Microsoft's Windows are all heading the same direction: a unified interface.

Build - Windows 8 Preview [25]

We are not there yet.  For Apple, Mac OSX Lion has an iOS like interface (that I find more annoying than useful) and the iPad has a larger screen that has become very popular.  For Android, Ice Cream Sandwich will unify the the Gingerbread / Honeycomb differences for the phone / table interfaces.  For Microsoft, Windows Mobile Phone 7 and Windows 8 have a unified interface with the Metro design.  Lets not forget the Apple TV, the Google TV, and the Microsoft Xbox all have interfaces for large devices provided by the corresponding companies.

The problem is that the same interface that works on a phone, on a computer, and on a television has not yet been invented.  Some people think it does not exist.  As a developer, I do not necessarily want an interface that is the same, I just want to build it out of the same building blocks.  This way I can write an application once and have it run anywhere.  As a consumer, I want my data and accounts to be portable.  My experience developing applications has taught me that I am horrible at creating interfaces.  I am suited for database and object oriented design, but my GUIs are hideous and hard to use.

My prediction is that Apple, Google, and Microsoft will each provide a solution for a unified operating system that works on every size screen within the next few years.  We are already almost there already!

My least favorite of the approaches is that taken by Apple.  The closed system approach that targets a "single" device has major benefits, but is not capable of innovation in a vacuum.  The iOS platform has pushed computing into new areas and created new opportunities for the average person to integrate technology into their lives.  My favorite approach is the open source one provided by Google's Android.  Even though Android is not developed in the open and the code is licensed Apache 2.0 instead of GPLv3, the balance still favors freedom.  The biggest downside is also the freedom provided by the system.  The combination of phones, tables, and TVs all running Android is mainly complicated by Chrome OS.  The real competitor to keep your eye on is Microsoft. While their phone solution may not be taking off, the market power of Windows combined with Xbox makes this not only the platform of the past, but the likely platform of the future.

While I am currently developing native apps for Windows, Android, and now even iOS, the universal platform is still the web.  While Chrome and Chrome OS are designed to push the limits of the web while providing improvements to security and an overall simplified experience, I do not see native applications going anywhere.  The scifi interfaces of the future are quickly approaching and it will be the next generation operating systems that make them a reality.

I believe the end result will be a way for a developer to write a single application that runs on devices of all shapes and sizes on a single platform.  It may be the open Android, the proprietary Windows, or the locked down iOS, but hopefully all three. The big trend seems to be moving towards simplification.  In the end though, I still only want a heads up display with augmented reality, but that is another issue all together.

Sunday, September 11, 2011

Stargate Cake

The credit for creating this awesome Stargate cake goes to Cassie. It was made for Steven's birthday, but it was so amazing I couldn't resist sharing the construction process.

Stargate Cake 1

Stargate Cake 2

Stargate Cake 3

Stargate Cake 4

Stargate Cake 5

Stargate Cake 6

Stargate Cake 7

Monday, September 5, 2011

My TWiT Birthday

I've been a fan of TWiT for about 6 years now. As a long time fan, my girlfriend decided to get me a TWiT brick for my birthday. It is a contribution to help build the new TWiT studio, but I get a brick with "UnitVectorY Jared Hatfield" in the lobby of the TWiT brick house.

To top things off she even made me an awesome TWiT themed birthday cake!

IMG_7973

IMG_7971

You can see in the above pictures the Certificate of Appreciation that I received (my replica brick AKA paperweight is still in the mail), my awesome birthday cake that includes the TWiT logo and reads "Happy Birthday to My TWiT", and my Chromebook showing the TWiT website.

Saturday, August 20, 2011

Programming for XML: The Easy Way

I really like XML. It is really amazing what you can do with it. All you have to do is define a structure and then create a document that follows that structure. You can mix and match attributes and elements in individual tags or in lists of tags. The real power of XML is not in the static documents, but in having it be interpreted in running applications.

While I use a lot of programming languages on a regular basis, one of my favorites is C#. One of the reasons C# is so easy to use is because of the built in ability to serialize and deserialize objects directly to XML.  This ability is made possible by the XmlSerializer class. With simple annotations you can directly map the objects into the XML structure. The power of this approach is that you can build individual objects that represent each part of the XML and then load the entire document into memory with a single operation.


Java does not provide this functionality out of the box, but Simple XML provides a very small library that allows for an almost identical approach to be used in Java.


With the appropriate calls, the above code could easily read in and produce the following XML document:


While there are some differences between the C# approach and the Simple XML implementation, they are minor. Other than the minor syntax differences, they two handle arrays of objects slightly different. The biggest difference is the default behavior related to unexpected XML attributes and elements. C# is very forgiving and will be able to handle missing and extra elements and attributes without throwing an exception. However, it will throw an exception if there is a type mismatch such as trying to load a string into an integer. The Simple XML framework uses a strict parsing by default and the application will throw an exception if unexpected elements or attributes are encountered. Luckily there is a parameter that can override this behavior. The main reason I have encountered this requirement is to maintain backward compatibility as an XML schema changes over time.

My real complaint is the way the iPhone (Objective-C) deals with XML parsing. While there is no lack of parsing libraries on the iPhone, none of them use the object annotation approaches that I described above. This boils down to the different approach Objective-C uses with regard to syntax and the way objects are defined.

One of the projects I am currently working on requires that I port over several application libraries that has already been written in both C# and Java to Objective-C so it can run on the iPhone. While I have managed to avoid writing complex XML parsers up till now, it seems unavoidable at this point.

With respect to the iPhone, there is a built in plist parsers. Alternatively, JSON provides another means for document communication that would be somewhat easier. In the end I will have to live with my previous decision related to application architecture and choose an XML parsing engine and write the necessary code.

Monday, June 13, 2011

My History with Tablet Computing and my Views on the Future

In high school, more than anything I wanted a Tablet PC.  Yes, one running Windows XP with a stylus that everyone seems to hate so very much now.  I ended up getting one, a Toshiba M405, which was the first in a string of Tablet PC purchases.  Speed School started a Tablet PC program the year I entered and I was very involved in making it successful.  I co-founded the Student Tablet User Group and created software that was specifically designed to work with digital ink content.  I also managed to have a class project focused on handwriting recognition and my thesis was based on algorithmic organization of digital ink.  Not all of my work was based around pen enabled input.  My capstone project was a touch enabled card game engine that was built on top of Microsoft Surface technologies.

At this point, I have four Tablet PCs which are essentially being used as Laptops.  Thanks to Google, I now have a Galaxy Tab 10.1 running Honeycomb 3.1.  In the past, I was not a huge fan of Java development, specifically Eclipse, but that has since changed.  My use of AppEngine as a web based development platform along with Android application development and some other small side projects, it has become one of my most used programming languages.  PHP and C# are still used for many of my projects, but Java provides unmatched flexibility.

The past is always interesting to talk about, but my real concern now is the future.  The success of the iPad can not be viewed as a bad thing for the general public, but personally I am not a fan.  While I realize that for some people the iPad provides the integrated experience they want, it will always be lacking in certain areas.  The best explanation that I have heard is that it takes a day to master the use of an iPad while you will still be learning how to use an Android tablet even after weeks of use.  I agree with that statement and must assert that it is a good thing.  Android provides a flexible and open architecture that allows for a more dynamic computing experience.

The real issue to me from a productivity standpoint can be best summarized in a single question.  Can it run Eclipse?  I think this is a good benchmark to determine the level of productivity that you can have on a device.  Since Eclipse is based on Java, it can in theory run anywhere.  The complexity and scale of Eclipse makes it a sizable application that can run slow even on modern computers.  Eclipse will never run on the iPad.  The real question for me is not if it will run on an Android Tablet, but will it run on the Chrome Book that I am expecting in the mail soon.  The core issue here is productivity and the question can be re-framed.  Does a "windows" based computing environment provide the most productive computing environment?  I would argue that for certain tasks the command line is the most productive.  Just as the command line is still a tool of power users a, windowed environment may turn into the same type of tool.

The future will be in the clouds, probably more than anyone expects.  It seems silly to have so much computing power in your pocket (considering battery life) when it could simply be offloaded to another location (that includes an AC adapter).  The devices that we use in our day-to-day lives will simply turn into I/O devices, providing screens and various means of input (keyboards, touch, pen, and voice).  From this respect I think the "windows" interface has only a few years left (I'll pick the arbitrary number of 4) before the vast majority of computing is performed using other interface constructs.  The concept of the traditional window simply does not scale properly to the dozens of screens we are surrounded with.

Mobile phones have introduces the concept of the "app" which is best described as an application that has full screen interfaces that provide a focused computing experience.  While this is a useful construct, I do not believe it is the most ideal.  Personally I am waiting for an immersive augmented reality heads up display to become my primary interface into the digital world.  This concept strays far from the slate based tablets that are rapidly growing in popularity.  Android is the most likely platform to embrace all forms of input (keyboards, touch, pen, and voice), which puts it in the best position for the future.  Android also provides a highly flexible way to have the same application target multiple computing interfaces and hardware types.  Windows also has all of theses features and Windows 8 may extends Microsoft's dominance for another 10 years.  Apple will continue its success, but based on their approach can not change the world by themselves.

The real trick to become the next paradigm in computing is to become transparent.  In the future, it will seem silly to say, "I'm going to go use the computer" because there will be dozens of computers around you at all times.  I'm already surrounded by half a dozed computing devices and this number will only increase.  The future I want to see will be ruled by open source and therefore ruled by no single individual or company.  The question about tablet computing and the future is the wrong question.  There will simply be computing and the entire range of devices must be supported and integrated using the cloud.

Monday, June 6, 2011

Building an Android Application in One Week

While I have decided to keep Track and Field Clipboard closed source, I will reveal a little bit about how I created it. I keep all of my source code for all of my projects in a Subversion repository. Since I always strive to create the highest qualify software, this is definitely a powerful tool. It also provides a great way to keep backups of my code secure. As a data geek, I also appreciate all of the information that is captured by using a version control system. I used StatSVN to generate a report based on the repository.

As you can see from the chart below, I began coding on Monday May 30,2011. The majority of the code was written in the first three days of the project. This work mostly consisted of building the model that was use to represent the field events and participants. This code would have likely taken longer to create if I did not include the Simple XML third party library. Unlike the XML serialization capabilities built into .NET and C#, Java has no built in way to quickly and easily serialize objects into XML. While I could have used binary serialization, that had the possibility of causing problems in the future.


Using the Simple library was so quick and easy, I will likely use it in some other Java based applications that require some trivial XML parsing capabilities. The most attractive feature of Simple is the fact that it is very small. The APK for Track and Field Clipboard is only 156k, which has the library bundled with it. Other libraries were in the multiple megabyte range by themselves.

Android provides a variety of ways to store data persistently. I settled on using files and not an SQLite database to dramatically simplify the process. The process involves writing and reading the serialized object's XML to and from a file. Initial testing on this approach was very promising. The file was read using an AsyncTask and then the appropriate Activity was launched. Since all of the manipulations to the object were being performed in a single activity, this approach worked perfectly. When the activity was paused, another AsyncTask was dispatched to save the object back to the file so nothing would be lost. While I did have some performance issues, it turned out those were primarily cause by having the debugger attached to my device.


The weekly activity graph for this project is very interesting since the project is only a week old. The number of commits peaked and then fell indicating that the application was starting to stabilize. Since the project was a straight forward application there were very few stumbling blocks that I encountered during the process.


At the moment, I am currently between the end of my college career and the start of my first full time job. This means I have had several weeks (and still have several weeks more) where I can decided how to spend my time. Unlike many geeks, I am not a night person. I tend to wake up fairly early and do not stay up late into the morning hours. I have code commits as early as 9 AM and they only go as late as 2 PM. The drop in the number of commits in the later hours is likely when I was hungry and tended to take a break from coding. My lunch breaks were obviously much shorter. The graph reveals my peek productivity times: after lunch and before I go to bed.


This is obviously a very new project and I am confident that there are still a number of bugs in the code. There are also some simple features that did not make it into the initial release. Spending the past week creating this application has been my form of relaxing. Learning how to write an application that targets Honeycomb was definitely worth my time and effort.

Sunday, June 5, 2011

Introducing Track and Field Clipboard

It is a fairly simple idea and I had even talked about it before, but this past week I decided to actually build it. As someone who has been around Track and Field meets since I was very young, it was a perfect opportunity for me to build an application for an Android Honeycomb tablet. The basic idea is to replace the clipboard, paper, and pencil used to record scores for field events with a tablet.


When Google gave a Samsung Galaxy Tab 10.1 to everyone attending Google IO (including myself) there was a less than subtle nudge to "go forth and create apps." Not wanting to spend all of my time playing Angry Birds and now Plants vs Zombies, I decided to actually build a fully functional and useful application.

While I have one other application on the market and another long term project that has an Android component, I wanted to specifically focus on Honeycomb. While the application I build could have targeted phones, that was not my goal. The use case for a small screen is far less attractive, but the biggest motivation for only focusing on Honeycomb was simply to learn some of the new APIs and methodologies. I have spent some time working with the compatibility API for fragments and developing a pure Honeycomb application seemed like a more enjoyable activity.


Now a little bit about the application itself. I finally settled on the name Track and Field Clipboard for the application. Breaking with my long tradition of open sourcing my side projects, I have decided to keep this application close source. However, it is available for free on the Android Market. There is the possibility of me adding some advanced features in a paid version of the application if it gains some adoption.

The application is designed to be very easy to use. You create an event, add participants, and then record marks. The field events that are supported include Discus, Shot Put, Javelin, Long Jump, and Triple Jump. High Jump and Pole Vault are not supported since the rules for those competitions are significantly different and more complex.

The main benefit of using this application as opposed to an analog piece of paper is the automation that it provides. If the competition has flights, the athletes that qualify for the finals along with the order is automatically determined. Each participants best mark is highlighted to provide an accurate summary of the results at the current moment. Additionally, each participants current place is also available along with a view that summarizes the results. After you have finished with the event, the results can be emailed.

My goal here is to have this application just be slightly ahead of its time. There is not a large adoption of Android Tablet users at track meets yet, but with some luck that may change in the next year.

I need to thank Cassie for her help with the graphics (as always). I also need to thank my father for helping me work out some of the details to make sure they matched what would be expected by the user. He also served as my first actual user at the Bluegrass State Games yesterday.

In the end, my goal is to help bring technology into a new area and provide a good user experience. Hopefully I can find some users. More likely, I hope some users can find my app.

Thursday, May 12, 2011

San Francisco Vacation

IMG_0101

Amazing! The trip was simply amazing. While the conference was only two days, we decided to make a vacation out of it by dedicating two days to travel, one day for sight seeing, and two days for the conference. Before leaving, we purchased tickets to visit Alcatraz Island. That was a good decision. We walked from our hotel to the port and then spent a few hours on the island.

IMG_0117

IMG_6999

IMG_0155

IMG_0175

After leaving the island we headed to Pier 39. It was a popular tourist attraction, but was very enjoyable to visit. It was not too crowded and the shops and stores were nice. I was a major fan of the left handed store and ended up getting a t-shirt.

IMG_7160

IMG_7191

Using the public transportation to get around the city was very affordable and we had no problems. I will be posting some more pictures in the next few days. I will also write a recap of what I learned from the conference itself.

Sunday, May 8, 2011

Getting Ready for Google IO 2011

My decision to go to Google IO was based on two factors, time and money. Right now, after I have finished classes but before I start my full time job. I have lots of time. The main problem is I have no money. I made the decision to find some way to make it work and now I'm here! This is definitely a great way to celebrate the end of my college career.

The conference does not start until Tuesday, but I'm already really excited. Tomorrow will be dedicated to sight seeing and I plan on taking lots of pictures.

Profile

Wednesday, April 20, 2011

Defending my Thesis

After months and months of work, I can finally see the light at the end of the tunnel. I defended my thesis Clustering Digital Ink Content to Assist with the Grading of Student Work today. The work that I have done that is based on DyKnow provided me an excellent starting point for my thesis. My open source DyKnow Panel eXtractor project, specifically the DPX Answers application was what I used for my thesis. While the majority of what I implemented for my thesis is available as part of the open source project, the exception is the clustering algorithm I designed.



I recorded my defense, but unfortunately it seems that there were a few problems and there are a few missing minutes between the clips. The majority of my presentation was recorded and the missing bits are not terribly important.



Almost there!

Friday, April 15, 2011

NAESC 2011 Council Presentation - Out in the Open: Council Transparency

Speed School Student Council presentation given by Jared Hatfield at the NAESC 2011 National Conference on the subject of council transparency.



Part 1 of 2



Part 2 of 2

NAESC 2011 Council Presentation - Getting Freshman Involved: Freshman Council

Speed School Student Council presentation given by Jared Hatfield at the NAESC 2011 National Conference on the subject of how to run an effective Freshman Council.



Part 1: The Presentation



Part 2: Question and Answers

Monday, April 4, 2011

My Fight for Transparency in Student Government


transparent (comparative more transparentsuperlative most transparent)
  1. (of a material or object) See-throughclear; having the property that light passes through it almost undisturbed, such that one can see through it clearly.
    The waters of the lake were transparent until the factory dumped wastes there.

  2. (of a system or organization) Openpublic; having the property that theories and practices are publicly visible, thereby reducing the chance of corruption.

  3. Obvious; readily apparenteasy to see or understand.
    His reasons for the decision were transparent.


http://en.wiktionary.org/wiki/transparent

Transparency is such a simple word, but its consequences can be very profound.  I was elected as Speed School Student Council Vice President in spring of 2010 and took office as an SGA senator in fall of 2010.  One of my first actions as a senator was to co-author and help pass Resolution Sunshine, a resolution whose name was inspired by the Sunlight Foundation.  The goal of this resolution was to require SGA to post their documents so that all students could have free and open access to them on the Internet.  My previous experience with SSSC had shown that this is possible, and as Director of Administration I personally scanned and posted minutes dating back all the way to 1948.

In the end, my goal to improve transparency in SGA was not as successful as I would have liked after working from inside of the system.  I believe that the apathy that everyone talks about when referring to student government arises from the fact that they do not understand how the system can benefit them personally.  The biggest problem is the separation of students that work inside of student government and the rest of the student body.  The goal of transparency is to break down that wall that separates these two groups.

I am idealist.  I believe that you should take the good with the bad. The most important thing that makes transparency succeed is that both the good and the bad are available equally.  While you may be tempted to hide the bad and promote the good, that is not part of how an effective government should work at any level.  To make real progress, you take the measure of the good against the bad and judge the net outcome of the system.

One of my latest projects is UofL SGA Transparency, a blog that I started to provide easy access to all of the SGA documentation and videos I could find.  While most of this material is already available in some form, my goal was to make it easy to browse and view.  I'm drawing from multiple sources and posting documents that are trapped behind the password protected Blackboard system.  A single source of information that will not be deleted when an administration turns over has yet to be achieved.

When I recorded the SGA 2011 Presidential Debate, I didn't expect to cause any trouble.  With resources like YouTube available, it is trivial to record and post videos online.  But after posting a link to the videos on SGA's official Facebook Page, it was taken down following a request from the SGA Supreme Court.  As the elections played out and things started to get complicated, I decided to record the March 8, 2011 Senate Meeting using a combination of my new webcamJustin.TV and YouTube.  What I did not expect was to be personally threatened during the meeting for recording this open meeting.  Continuing champion transparency, I also recorded the following SGA Senate Meeting held on March 22, 2011 and plan on recording and posting all of the remaining SGA meeting for the semester.

There is something greater than getting the outcome that you specifically want from a government, and that is the system itself.  I fight for the system, I fight for my fellow students, and I fight for my own rights.  With graduation just over a month away, I will be leaving UofL.  This situation has provided me an opportunity to fight for what I believe in without my actions appearing to be self interested or having the outcomes affect any personal aspirations for SGA that I may have.  I honestly want a better system of student government at UofL.

My parents told me you should always leave a place in a better condition than you found it.  After this semester, I hope SGA will be better for all of the students at UofL.

Sunday, March 20, 2011

DPX-Tools Version 0.3.5.0 Released

I typically would not announce a release of a new version of my DPX-Tools software, but this version is somewhat special.  This update really only includes changes to the DPX Answers application.  This application is what I used for my masters thesis.  While I have not quite finished my thesis yet, I'm definitely in the home stretch, I have finished all of the coding.  This latest release of my set of tools that are able to open and interpret files created by DyKnow Vision includes a new ability.  The application can now automatically analyze and cluster student answers.


I will preface this by saying my actual thesis is a method for clustering student answers that is not actually included in this latest release and I have not released the source code for this application.  I developed my thesis closed source and have not yet decided what I will do with the code after this semester has concluded.  To explain how this was accomplished, I'll provide some context.  When you launch DPX Answers, it searches for DLL files that include classes that implement the IClusterAlgorithm interface.  This interface along with other functionality that DPX Answers depends on is implemented in the ClusterLibraryCore.dll and GradeLibrary.dll files that are included with DPX Answers.  These files are closed source as well, but my intention was to release these files under an Apache 2.0 license.  The classes in these files provide the buffer between the open source GPL code that makes up DPX-Tools and the closed source algorithm that I wrote for my thesis.  Since I personally wrote all of the code I do not have anything to worry about with mixing open and close source code, but I still want to make sure this code is not encumbered.  This is my first attempt at a plugin architecture for a desktop application, but things seem to work as advertised.

After the application launches, if it is able to identify a clustering library this it loads into memory.  When a file is opened, after the contents of the Answer Boxes have been interpreted using handwriting recognition, the clustering algorithm will merge together what it thinks are identical or near identical answers.  The goal here is to reduce the overall amount of effort required by the person grading the student responses.

From a technical standpoint I am very proud of the design of DPX Answers.  The application is highly multi-threaded, since processing the the Answer Boxes is a CPU intensive activity.  Worker queues are used to perform handwriting recognition and the Dispatcher is used to maintain the GUI interface.  This application is the most complicated desktop application I have written to date.  While I was having problems with major memory leaks for a time because of some GUI elements, I believe I ended up with a simple, but functional application that focuses on a very specific problem.

Overall I am very pleased with where I landed with my thesis.  I will be spending the next few weeks putting the final touches on my thesis and preparing for my defense.  It is almost impossible for me to calculate how much time I have spent working on the code that makes up DPX-Tools.  The DPXReader library, which is able to open a DyKnow file and render the ink content, took me hundreds of hours to develop along with the various applications that utilize its functionality.  As I finish my degree at UofL, I will no longer be using DyKnow Vision.  I have worked very hard developing this software and hope that someone else will find this code base and the applications useful.

Saturday, February 12, 2011

An Electronic Currency

My two favorite books of all time are Daemon and Freedom written by Daniel Suarez.  These books portray a future society that is controlled by a computer daemon or background process that essentially takes over the entire world.  Its goal is not malicious, at least from my prospective, and the desired outcome is a decentralized, robust, sustainable, high-tech society.  There is a large amount of technology described in the book that is just now becoming available to consumers.  My personal favorite is a wearable augmented reality heads up display, but that is another topic.


In the books, the Darknet is the decentralized network that allows for communication and is supported by an underground economy.  While it is evident that aspects of this theoretical system are integrated into our own lives, Facebook is everywhere, these systems are still centralized.  One of the core components of the Darknet technology was there is no single point of failure.  A extended blackout on the west cost or a severe fire in Facebooks data center would take the service offline for an extended period of time.  I believe we need to transition away from centralized control and move to more distributed, robust systems, but this is also a topic for another time.

One part of this imaginary world that is central in the political and corporate opinions expressed in the books is the Darknet credits or currency.  This alternative currency is favored highly over the American dollar after hyper inflation takes hold and drives the prices of good steadily upward.  A system similar to the Darknet credit is already available in real life, it is called a Bitcoin.  Unlike standard cash, a Bitcoin is a distributed peer-to-peer network based economy that is cryptographically secure.  For the sake of my argument here, it is safe to assume that there is a limited supply of Bitcoins that are currently being created, but there is an eventual maximum, so the supply is limited.  The transactions in the system are secure and can not simply be rolled back by a bank.  The movement of funds is secure so you can not simply copy and paste digital dollars to generate more money for yourself.  It is a secure, safe, and anonymous way to move digital money.

The implications of such a system strike at the foundational structure of our society and the world economy.  Right now it is possible to exchange Bitcoins for US dollars and the exchange rate hovers around a 1-to-1 exchange.  However, if Bitcoins begin to gain wide spread adoption it is possible that this conversion rate will increase over time. An economy like this can exist as long as people are willing to use the currency in exchange for goods and services.  The gold standard was based on a scarce finite supply.  Like gold, a Bitcoin is a scarce resource that has a well defined finite supply so its value can be calculated and anticipated. Unlike a physical object, a Bitcoin can be divided as small as 0.00000001 and a total of 21,000,000 Bitcoins will be in circulation when the system is finished generating Bitcoins making the overall supply sufficient for a global economy.

The EFF now accepts donations in the form of Bitcoins.  While this is technically a trivial process, it is significant in so far as Bitcoin transactions are essentially anonymous.  With the source of the money not able to be verified, new set of problems and concerns arise.  However, Bitcoins eliminate some major problems we have with our current economy.  The biggest problem is obviously the debt.  The United States faces crushing debt and if this situation is not resolved within the short term, it will destabilize the economy.  Would the total collapse of the economy be the downfall of society as we know it?  I doubt it will come to that.  While I'm not trying to predict the coming Apocalypse, in the case of economic failure, Bitcoins are an attractive alternative to the US dollar.  While my employer is not likely going to pay me with Bitcoins and I can not yet purchase a cheeseburger with a Bitcoin, electronic currency has some major benefits over the cash and credit cards we have grown accustomed to using.

The big picture here is that the world is changing very rapidly and electronic currencies are unavoidable.  A peer-to-peer system is much more robust than a centralized system, but governments and corporations have just concern to be scared if this starts to gain wide spread adoption.  The Internet has made the world flat and a currency that is not tied to a nation state or outdated and defective financial policies is very attractive.  Maybe one day I will be able to purchase a cheeseburger off of the 0.99 Bitcoin menu, but in my mind I will be making that purchase with a Darknet credit.

Tuesday, February 8, 2011

Attending Google I/O 2011

When I first had the idea that I could attend Google I/O this year, I looked up how fast tickets sold out in 2010. It took over a month. This year, it sold out in less than an hour. What happened is Google's conference registration server (it was not actually a Google server) was overloaded with all of the people that were trying to grab one of these coveted tickets. Somehow, after a very stressful period where it seemed like I had missed the registration window, I managed to dig into my browser history and complete the registration process. One student ticket to Google I/O 2011!

I have watched almost every video from the previous two conferences so I have a fairly good idea what to expect. This conference will definitely be an awesome experience along with my first time in California. I am most excited to learn about the new developments with Android now that it is on phones, tablets, and TVs. While the tickets probably sold out so quickly because of the two free phones that attendees received last year, I'm not attending because of the possibility of free stuff. While I would be thrilled to be provided an Android tablet, especially since I can no longer afford to buy one, I'm not going to make any assumptions.

Having developed applications for Android and Google App Engine, it will be awesome to be around other developers and see what other people are doing. I may even get to meet some of the Internet celebrities that I have been following for so many years.

Favorite Super Bowl 2011 Commercials

There were two really good commercials last night. First "The Force," a Volkswagen commercial, definitely won the cute award. The combination of Star Wars, a cute kid, and cars just struck the perfect balance. Well done!






The other really good commercial was for the Xoom. Understanding the context of the 1984 Apple commercial and the mindless sheep that Apple consumers flocking together made it the perfect attack on the computing giant. I'm definitely a huge fan of Android, not only because of the operating system, but more so because of the open philosophy. The Xoom is definitely set to take the iPad 2 on in a head to head battle with consumers. The most important thing this commercial did was try to get the population to break free of the stranglehold Apple has on the consumers and the so called "cool" gadgets. For people like me who have moved past Apple, this won't make much of a difference, hopefully it made a few people take another look around before purchasing their next consumer electronics device. Big brother is watching!




The biggest failure of the night was definitely Groupon. I'm not going to embed the commercials because I'm no longer a fan of the service and actually unsubscribed before making my first purchase. Now, I understand that Groupon supports the charities that they poked fun at, but that misses the point. I'm sure the $3,000,000 that went to each of the several commercials that they paid for would be better spent directly by those charities. Lets assume Groupon spent $9,000,000 on commercials, to result in the equivalent donations assuming each person only donates $15, that would require 600,000 people to join Groupon. Clearly the benefit here is primarily for Groupon especially with an impending IPO.

The problem is more than just financial, it is rooted in human behavior. My interpretation and personal approach of philanthropic activities, such as donations, is that it is not a direct benefit to the person that is giving. I do not make micro loans on Kiva to have any direct benefit to me, it benefits others and I hope eventually the world in general by bring people out of poverty. If I received a, quite literally, free lunch every time I made a donation then it in some way lessens the donation. This is definitely not a rational approach to charity, but who ever said that humans were rational. While Groupon may have been trying to do good, they missed the fact that you shouldn't mix capitalism and charity in such a confusing way. The causes that Groupon highlighted are very serious problems that are facing the world and humanity, we should be focusing on those, not on Groupon's success as a company.

Saturday, February 5, 2011

My Brand New (Slightly Defective) Desktop Computer

My last desktop was nothing impressive. Actually, it was showing its age and I was already planning on building a new desktop in a few months. The Pentium D with only 2 GB of RAM and a modest graphics card was running along smoothly until the power supply decided to give out. After replacing the power supply, the capacitors on the motherboard decided it would be a good time to burn out.  I actually built my last desktop to be replaced, not upgraded.  So, I decided to take browse around Newegg and this is what I ended up with:

Including a new optical drive (my old DVD burner only had a PATA connection), I ended up costing around $475.95.  My goal was to say under $500 and I managed to do that while still ending up with a powerful desktop.

Two days after placing the order that Intel announced that the Sandy Bridge chipset was defective!  That explains why I can't link to my motherboard on Newegg because it was pulled down and can no longer be purchased.  The flaw only deals with 4 out of the 6 SATA ports on the board.  My computer is up and running, I'm just slightly restricted on how I can use it until there is a replacement motherboard available in April.  Serious defects aside, I'm very happy with my new desktop.


While the built in Windows 7 benchmark does not give too much context, this is definitely the fastest computer that I own, no contest.  Overall I'm very happy with my new setup and there have been no problems so far.

The biggest complaint that I currently have is my hard drive situation.  All of the data from my old desktop is sitting on a 1.5 TB drive that is about 2/3 full.  I'm using a 320 GB drive in my desktop now and have things back to a somewhat functional order.  Normally I would just add the old drive as a secondary drive, but with those dead SATA ports that would translate to no optical drive or an optical drive connected to a defective port.  Ideally I would just swap the drives, but that requires a third drive to temporarily store all of my data on during the transition.  I still haven't decided how to solve this problem.

The biggest change that resulted from my new desktop is that my Windows Media Center that uses the USB over the air TV tuner and is connected to my Xbox has moved off of one of my old laptops.  This has resulted in a few improvements, but the biggest one would be additional storage space once I figure out how to improve my hard drive situation.  The quad core i5 with 8 GB of RAM does not even notice the media center running in the background.

While I'm quite happy with my new setup, it is only the first half of my upgrade.  My current plan is, once I can afford it, to finish the upgrade.  The missing components would be a new case, a bigger power supply, and additional 8 GB of RAM, and a graphics card.  I'm not a PC gamer, but I can still appreciate some of the benefits of a high quality graphics card.  This series of updates would end up costing around $500 bring the total cost of my desktop to approximately $1000.

While I wish I could have waited a few months to upgrade my computer, it is nice to have my workspace back up and running so I can continue making progress on my thesis.  Even though I have my laptop, the power of a desktop and the large screens definitely make it easier for me to make progress.

Tuesday, January 18, 2011

ShouldISkipClass.com has a new look!

This isn't breaking news, I actually completed these updates at the end of last semester, but I thought it was still worth posting an update.

ShouldISkipClass.com is a very simple website that I made on a whim that displays random reasons why you should or shouldn't skip class. There is an option on the page for users to submit new reasons of their own. If I think they are good enough I will add them to the rotation.


This website was getting quite a few hits when I first launched it last semester, but the interest dropped off during the winter break. Now that school is back in session, if you like this site, share it with your friend!

Thursday, January 13, 2011

Motorola Xoom

I'm a huge fan of Tablet PCs, but I've not been very excited about slates. The iPad in particular is a device that I am not a huge fan of, but I do recognize its usefulness. Lets start with a little history lesson.



A little more about the Xoom, but mostly PR and not much about how it actually works. Still a fairly awesome video. This product definitely looks exciting.



What I'm really excited about is Android 3.0 and this gives you a better idea of what all the fuss is about.



With my college career coming to an end, making the move from a pen enabled Tablet PC to a touch based Android slate may be a logical next step. While I'm excited about Android development for the phone, the real potential is in developing applications specifically designed for slates. While Microsoft has had technology available for years, at the moment I find the Android approach more attractive.

Wednesday, January 12, 2011

A Real Life HUD: The Vuzix Raptyr

The one gadget that I want above all others and it is very simple, but extremely powerful.  All of these monitors and screens and gadgets in our life could be replaced with the single gadget that would rule them all, a wearable HUD.  Personally, I'm not interested in the hardware as long as it works, but once it is out there it will be impossible to prevent me from developing software for a functional HUD.

There have been some baby steps towards creating a HUD, but it looks like some major progress was announced at CES 2011.  The Raptyr glasses by Vuzix won the CES Innovation Award.


The details seem to be sparse, but they are see through and seem to be exactly what I am looking for, or at least an early model.  Hopefully more details including price become available later this year.  I would be partial to an Android based interface since I already have an Android phone and experience developing on that platform.  The important part of the augmented reality component would be overlaying information on real world objects.  While truly accurately versions of a HUD overlay is still years away, I'm excited to see the progress that some companies are making.
Raptyr is the world’s first sunglass style  Video Eyewear that is designed specifically for the wide variety of Augmented Reality  applications  that are in development  for consumer, commercial, medical, educational, gaming and defense markets. It provides a natural and easy to use interface to applications and  it  is a very powerful  platform that offers a personalized and mobile home-theatre experience that enables digital content to be mixed into a real worldview. Today Raptyr is compatible only with  devices with VGA and USB  interfaces. Future enhancements to the product will include HDMI compatibility and connectivity for mobile devices such as the iPhone and Android phones.  Initial markets for Raptyr will be commercial and research applications.  As enhancements are made to Raptyr and as sales volumes increase, the company expects  consumer applications to become available.

The real inspiration for a HUD comes from the books Daemon and Freedom.  Hopefully we are only a few years away from a fully wearable computer system.

Monday, January 10, 2011

One Last Semester

It seems strange to say it, but my college career is almost over. One last semester before I get my masters degree and it is going to be a crazy one. I have a long list of things that need to be accomplished before May 2011 and graduation gets here. I'm only taking two classes, so my course load shouldn't be that bad, but that isn't what is going to keep me busy. This semester I will be finishing my thesis which will be keeping me very, very busy. The goal is to improve my DPX Answers application to perform some type of automated clustering to assist with the grading process. I am also going to be teaching Java this semester which I am hoping will be lots of fun. This is something that I definitely wanted to do it shouldn't add too much stress to my workload. One of the biggest sources of stress this semester will likely be the planning and execution of E-Expo 2011. My plan is to stay on top of everything and get things done early, but things don't always go according to plan. Hopefully SGA don't take up too much of my time, luckily I enjoy serving on the Senate a little more than I should.

My last winter break was fun while it lasted. Back to work! (Actually, back to school. Work doesn't start until after I finish with school.)