



Recently, I have been thinking about an old fable. I am sure that is was read to you as a toddler or maybe you read it as a kid. The Tortoise and the Hare is a fable about a hare who challenges a tortoise to a race. The story ends with the slow and steady tortoise beating the hare in the race. One of the interpretation of this story is haste makes waste. I believe this fable has some serious lessons for any one who works with software development.
In college, Computer Science students learn about software development models like Waterfall or Agile Development. The students learn why structure is needed to effectively develop software. They are also taught the downfalls of the lack of structure. I, like may students, learned all of this in college. Recently, this lesson was brought home and I learned first hand why the tortoise is so damn fast.
The hare from the fable has some very appealing attributes on first look. In terms of software development, The hare starts off strong. He produces code sooner and boy can he code. He can also adjust to changes in design and requirements faster. This sounds great doesn’t? I mean who wouldn’t want all of this?
The tortoise on the flip side has to gather requirements and write designs. This is all before coding can even begin. The tortoise has one thing, a process. He knows that following his process will result in a solid product what out anything missed. So he just plugs away, slow and steady.
The devil is in the details. Or so they say. A deeper look at the hare and the flaws become visible. The hare relies on sheer speed. The sheer speed can only continue for a finite amount of time. There is no time for a process or any structure. This means requirements are missed, code is sloppy, and technical dept is being added at a crazy rate. At some point, the hare will hit a wall. This wall has many forms. In my case, the wall is an endless loop of adding and removing requirements and bug fixes.
The tortoise on the other hand is consistent. The code is produced in a consistent manner. The Tortoise’s output is also consistent. Since he has a process, he can accurately estimate when a feature or fix will be completed. In the end, the tortoise will pass by the hare and will do so with a generally better product.
I always knew having a process was needed. Hell, we wouldn’t learn it in college or have people much smarter than me publish books on the subject if it wasn’t important. The thing I didn’t know is the subtleness of the problems that start to creep up. At first it is minor annoyances like having to to fix brittle tests. Before you know it, the Hare will start to cause full blown production problems.
Watch out for the hare. He causes problems.




So back in October I started the process of learning to do development for to android. Sadly, I am here today to admit that went poorly. This is my reflection on why it went badly and how I expect to better next time.
Problem 1: Me. Yup, that is right. The first problem I ran into was me. I have a lot of ideas for applications for Android and in general. The problem isn’t that I jumped right into development, it was when I jumped I landed in a spot that was over my head and that made me instantly frustrated. With in days of installing the tools and SDK my drive had died. I just got over whelmed with all the new that I didn’t take the time to learn.
Solution: While I hate doing the typical “Hello World” type apps, it is a necessary evil. It is the steps needed to ramp up understanding of the environmental. What I was trying to do was not hard but because I didn’t know the basics of Android development, it was difficult to find help. The process isn’t hard and takes a bit of time but ramping up is needed to keep from being overwhelmed.
Problem 2: Holy cow, embedded application development is slow. Let me be clear, development isn’t slow but getting you application to run via emulator or on a device is painful. When it takes a few minute for my application to run, this just kills the fun and drive to continue. Especially when learning. When I was waiting, it was so easy to get side tracked.
Solution: I hear the sdk and emulators are getting better and faster. I am also in needed of a new PC which is pushing 5 years old or at least an upgrade or 2. Other than that, I am not sure what else I can do.
So the biggest problem was me. Once I can get through them, it should be pretty easy to continue. I plan on starting this again as I think there is some positive applications I could contribute to the community. However this is on hold for the moment. Need to get caught up on technologies related to my job, mainly ASP.NET MVC




I recently picked up my first smart phone. After years of wanting to move up to a smartphone but holding off because of price, I finally caved and picked up a HTC Desire. It is running Android 2.1 out of the box. It is a pretty slick phone. So far I have enjoyed my prechuse.
One of the reason I decided to pull the trigger was the idea of creating application for the phone. By day I am a .NET developer. Mainly C#. I was sort of excited to learn a new development environment and langue because I have been in .NET land for so long. I figure it is time to branch out. Yeah java is not much different than .NET but you have to start somewhere.
So I had some time to get the Eclipse IDE setup and ready to go to start my journey. I went to http://developer.android.com and followed the instructions on getting started. I am starting from scratch. The machine (win7) I am working on didn’t even have the Java runtime installed yet. Since I am a novice when it comes to Java and Eclipse, I followed the installation steps for the Android SDK. They seemed straight forward.
First step: Get eclipse. Sounds easy enough. Read through the section for ecplise which stated…
A Java or RCP version of Eclipse is recommended. For Eclipse 3.5, the “Eclipse Classic” version is recommended.
What does that even mean? So I want to the Eclipse site and downloaded the Java version of Eclipse 3.6 and continued to the section to install the Android Develipment Tools (ADT). This is where things get more confusing because I was greated with…
Caution: There are known issues with the ADT plugin running with Eclipse 3.6. Please stay on 3.5 until further notice.
Grrrrrr…. But I just downloaded 3.6.1!! To limit the number of issues I run into I decide to follow what Google recommends and found a copy of Eclipse 3.5. No big deal. I go to run Eclipse and it promptly fails stating it can not find the JVM. At this point I was confused because I had thought that I installed Java at some point in the past. Yeah, I was wrong. Whoops. Over to the Oracle to get the JRE/JDK.
I am running win7 x64 and did what anyone running x64bit OS would do. I download the x64 windows binary. Install Java. Run eclipse. Eclipse fails again. Still stating that it could not find the JVM. Ugh. The message box suggest to add the path to the JVM to my system path. A few clicks later and it should be good to go right? Nope, now Eclipse crashs but with a log/debug message.
At this point I was about ready to give up. That is until it dawned on me. “Hey stupid! You probably can’t run 32bit Eclipse with 64bit JRE!” An uninstall and reinstall of the JRE and eclipse is running!
From here on out everything seem to work correctly. Totally elapsed time: ~2 hours. No really 2 hours.
My enthusiasm has lessened alot because of the frustrating install. I mean I have not even started to write a hello world Android app yet. I am planning on sharing my experience as I go and comparing it to how I view the .NET start up experience.




I decided to try out Google Analytics over the weekend. My web host’s web stats leave something to be desired. Since Google already knows everything about me and my site already, I figure it was a safe things to do. With a WordPress blog, it is very easy to set up. Here are the steps.
It literally took five minutes to set up. Google Analytics has some very cool features. For example, it keeps track of return visitors vs new visitors. It is pretty neat.
Google Analytics comes with a free side effect! The stat tracking requires the client to have JavaScript execution enabled. What this means is that clients without JavaScript enabled do not get tracked. So if you have a lot of users that disabled JavaScript, this could be back. However there is a an upside, Spam bots do not run JavaScript! I know this because Google Analytics only tracked me for the first day that I had it installed. However during that same time frame I had ~20 spam comments caught. I am happy about this because I get a more accurate view of the visitors to the blog.
Tony.




So I was getting my oil changed today. While I waited I took advantage of the free WiFi. I had to download Adobe Reader because of the new install of Windows 7. Below is a screenshot of one of the new features of the task bar. It appears applications can change the button on the task bar. The screenshot is of the progress bar for a download in IE8. I think it is pretty cool and will be more useful than flashing that task bar buttons to get my attention.





Stack Overflow is a Q&A wiki site for programmers. People can post questions, answer questions, and search for questions. Question and Answers get voted up or down based on what the community thinks of them. As people ask and answer questions, karma is gained. As karma is gained by a user they can do more on the site like editing, voting up, and voting down.
The site is fairly popular among developers. The 100,000 question was recently asked with many added everyday. The community looks to be pretty strong and oddly mature. I say oddly mature because it is the Internet after all.
Stack Overflow is programmer crack. I find myself setting at the questions page hitting refresh over and over again waiting for new questions to be asked. Its fun to see what roadblocks other programmers are stack at. It is also a good feeling to get voted up on question and/or answers on the site. The ultimate joy is when your question is accepted as the answer. It some how validates you as a programmer when one of your questions get marked as an answer or is up voted. Stack Overflow addicting nature is what keeps me coming back day after day to see what has been posted.
Stack Overflow is currently working out great for many people. Questions (depending on complexity) will have answers or suggestions shortly after posting because the community seems eager to help. And yes the answers are normally helpful in someway, shape, or form. In the end Stack Overflow comes highly recommended from this developer.
Tony.




using System; class HelloWorld { public static int Main(String[] args) { Console.WriteLine("Hello, World!"); } }
Hello! Yes I am yet another person with yet another blog. I have gained much knowledge during my life as a professional geek and now I have an outlet to pass on my opinions and know how to anyone that is willing to read.
Now that I have typed a little about why I started this blog, I guess it is time tell a little about myself. I am Software Engineer with a BS in Computer Science. My wife, if asked, well say that I am a professional geek and she would be correct. I love technology, always have. I like to learn as much as I can. While my severe Dyslexia slows my learning a bit, it does not seem to affect my ability to be a developer. Because of the Dyslexia, don’t be surprised to misspellings or ramblings. The picture at the top of the site is my dog. The picture has become known as RawrDog. As proof to my geekyness, my dog’s name is nOOBert. Yes that is his name and yes that is how it is spelt. I am sure there will be some posts about him sooner or later.
My goal with Geek With Opinions is to be an outlet to share what I learn, my experiences and opinions. I also hope this will help with my English skills as English as taken a back seat to the other languages that I work with during my day to day life. C# has become my primary langue.
Hello and Welcome to my piece of the internet
Tony


More Options ...
Categories
Tag Cloud
Blog RSS
Comments RSS

Void « Default
Life
Earth
Wind
Water
Fire
Light 