Pages

September 25, 2008

How Did I Get Started In Software Development?

I am following the lead of many other software development blogs and answering the following survey questions that have been floating from blog to blog for a while now. Here we go...


How old were you when you started programming?
I think the first time I remember writing a program was in the 6th grade. I took a class where we did some programming in BASIC, but I didn't get hard core into programming until I was 18 in college. So I guess you could say I got a late start.

How did you get started in programming?
Going into college I thought I would give the Computer Science and Engineering department a try. I was intrigued at the thought of writing software so I took a leap of faith and it worked out for me.

What was your first language?
My first language was C. I learned it in my introductory programming course at University of Texas -Arlington. I think I just showed my youth there...

What was the first real program you wrote?
Hmm... I wrote many small Hello World programs as I learned C and C++, but the first meaningful program I ever wrote was in my second year of college. I had to write a program that was a discrete event simulation of the checkout process at a local Costco. I had to model the entire process and help determine the ideal number of checkout lines that should be open during peak hours. That was the first time I got the light bulb moment in my head and thought I might be pretty good at this.

*Side note* Obviously my results were never passed on to Costco or any other wholesale store as the lines are always so unbearable...

What languages have you used since you started programming?
Wow, I've used C, C++, VB, Perl, Java, C#, and even a little Groovy. I've somehow seemed to find myself in a position where people ask me if I can do something for them in another language and I can't make myself say no. I see the language being used as more of a tool because the actual business logic is the same regardless of the language used.

What was your first professional programming gig?
When I was in college I got hired to work in the IT department for the Army Corps of Engineers. I was able to work on some of the business applications they used in-house to work with data in databases. They were nothing big, just your basic CRUD applications.

If you knew then what you know now, would you have started programming?
Yes, I would still have gone into the software field. I just would have started my own company a long, long time ago. I think that would have saved me a lot of stress and put a lot more $$$ in my tiny pockets. ;-)

If there is one thing you learned along the way that you would tell new developers, what would it be?
Get the GoF design patterns book fast and learn it. This advice could have saved me a lot of time spent on refactoring and rework in the beginning of my career.

What’s the most fun you’ve ever had… programming?
That would be my senior design project back in my years as an undergraduate. We designed and built an automated baby monitoring device that included a motion pad, and A/V that could be automatically streamed to a remote computer if predefined settings were met. Those late nights in the lab only reinforced my love for this field.

That was a lot of fun. We often forget about those times when we are first introduced to something we enjoy and love. I know I had forgotten about a lot of things like that lately. I am slowly finding my way back to that and with that new ideas are coming. I am sure I will be sharing some of them soon. Stay tuned...

August 26, 2008

Why I Love Java Way More Than .NET

So tonight I just spent two hours trying to add a simple library to a .NET project so I can simply cast an ActiveReport object as the child class my team uses to represent reports. The library could be added to the project very easily, but when I would try to build I would get an error stating that the referenced library did not have a "strong name," meaning the library had not been signed. So I changed the library to digitally sign itself when it was built and then did a new build of the project... Same error this time, but for another library that was being referenced in the referenced library. As I daisy-chained my way through all the libraries, updating them to have a digital signature I began to wish that I was back working on a Java project.

In Java, all you need to do is set your classpath to include all the libraries you need. There is no need to sign your libraries and I am very thankful for that. I have got to find a way to do more Java development at work because dealing with all this .NET mess is starting to drive me crazy.

July 29, 2008

Bringing Java to the .NET world

I was killing some time the other day when I stumbled across a pretty interesting open source project named ikvm. With ikvm, you can take Java byte code and convert it into the .NET CIL (.NET code all compiles down to CIL. Yes, Microsoft stole the idea from Java, haha). This means that all of the nice open source Java libraries we use can be converted by ikvm and used in .NET applications.

ikvm is fairly simple to use as well.

You want to convert an executable jar to a Windows application?
ikvmc -target:exe application.jar

Output: application.exe, a Windows console app
Note: GUI applications should use 'winexe' for the target.

You want to convert a library? Easy.
ikvmc -target:library awesomeLibrary.jar

Output: awesomeLibrary.dll


You can even use ikvm to run Java programs as it is basically a .NET implementation of the JVM.

I found all this pretty amazing since there are products on the market right now that charge in the thousands of dollars to do what this project does for free. I tell you, this new age of open source development is kicking ass!! This project brought us that much closer to having .NET and Java code coexisting and playing nice with each other.

July 9, 2008

Drools, You Found Me Too Late!!!

Tonight I went to my local Java User Group meeting and the topic was the use of Rules Engines to handle business rules execution, more specifically Drools. Well as I sat there and saw how simple it was to move the business rules out of the main program logic and pass the buck to the engine I had a flashback to my senior design class in undergrad.

My senior design project was a baby monitoring device that extended on the popular Angel Care baby monitor. We added the ability to stream audio and video from the baby to any computer on the local network in addition to the lack of breathing/movement alerts the monitor sends. Well as you can imagine, there were all kinds of if/else statement logic throughout the code to handle the many different scenarios. Basically, our code was ugly and hard to read. If we had been able to use an engine like Drools we could have moved all this logic into external rule files and loaded them in at run time and had nice, readable source code. Also, it would have been a lot easier to update the rules when we found errors (of course we found tons... it was our first real hardware/software engineering adventure after all).

So I will be adding Drools to my list of things to research and learn. I am already envisioning a use for it on the job if I can get enough people to buy in and get on the band wagon.

July 4, 2008

I Am "Android"-ing

So I have been working through the Google Android tutorial and I have it actually working somewhat. I'm starting to understand the mechanics of it all and how one would create an application with the various screens that are needed. Once I get the tutorial completely finished and have a better understanding I will probably start creating a small app of my own to get some more experience. Either way, I have learned a lot about developing an Android app in the past week and I look forward to learning more.