Software Development

I'm a software developer, or programmer, by trade. I primarily code web sites or web applications using the Java programming language. I like Java the best because it takes care of a lot of busy work that comes up when programming and it is entirely embraced by the Open Source (OS) community. I use a ton of OS projects to help build my applications, both professionally and personally. If you have any questions about any of my articles below, please feel free to contact me at dev@ebessette.com.

Articles


My Favorite OS Projects

Spring
The Spring Framework is an AMAZING project. If you developing Jave web applications, then you HAVE to check it out. The main benefit is the Inversion of Control and Dependency Injection capabilities it has. Check out the documentation for more on these topics, but they can solve a ton of problems that are typical for J2EE applications.

Hibernate
Hibernate is a Object Relational (OR) framework.  It takes a lot of the work out of converting data from a relational database to objects in your code.  For simple retrievals, you don't have to write any SQL.  It will also save the objects to the database and any sub objects.  This is very helpful, but it also boosts performance by caching search results and lazy loading.

Google Web Toolkit
Google does is again with the Google Web Toolkit (GWT). GWT allows you, the programmer, to write AJAX web applications in Java, then compile them into Javascript. This means that you'll have all the compile time checking, debugging, and other Java capabilities when creating a AJAX application. For any of you who have tried to create a complex AJAX application directly in Javascript, you know what a nightmare it is. GWT is the answer and is only getting better.

Android
Android is an open source mobile operating system (OS).  The API is in Java, making creating applications very easy.  The OS is broken up in to some very simple components.  Activities are the applications that can display something to the user.  Services are background processes.  Intents are messages to do something.  And Content Providers give a standard way to access any type of information.  You can override the standard Intents, for example, a common intent is to call a phone number and you can create a new appication that handles that type of intent, overriding the default application.