Get Your Free Oracle

February 17th, 2009

I’ve been a database developer for 25 years going back to my first database — INFO on Prime mini-computers.  Prime and INFO have both come and gone and Oracle has come and remains one of the kings of the hill.   Oracle remains my favorite database to work with.   I far prefer PL/Sql to Sql Server’s T-SQL as a programming language.   I also prefer free when I can get it — which is how I came to know and love MySql.

For the last six years I had been working in one of America’s largest corporations and they had an enterprise license for Oracle and I’m claiming that as my excuse for missing the release of FREE Oracle in Feb. of 2006.  it’s called Oracle XE and is a feature full version of Oracle 10g with a few limitations (which I’ll get to).   Oracle XE home page.

The limitations are as follows:  uses only 1 cpu, 1gig ram, and stores only 4gig of data.   For development purposes, that’s plenty.   It’s also plenty for a lot of small business uses and it’s completely fine to use it that way.   Oracle wants to get people started on Oracle and then upgrade when their needs call for more.  All you develop will work unmodified on Oracle’s other editions.

Consider my most recent use.   We have a client with an Oracle warehouse.   We want to develop software that will work with the warehouse but don’t want to mess with their data during our development.   I installed Oracle XE on one of our servers — and then copied the tables and a subset of the data from their warehouse.   I used the free Oracle Sql Developer tool (more on this in another article) to make quick work of the task.

I have a copy of Oracle XE installed on my own sytem as well.  I copy our dev database to my local database nightly.   Every once in awhile we have network issues — but that never keeps me from developing as I can always work on my local copy.   If I want to try something but not affect the rest of the team, I can do it on my local copy of Oracle.

Lots of us work in large corporate environments where there’s a DBA team that jealously (and smartly) guards access to the database.   With Oracle XE, developers can bring down data and have full rights to their Oracle.   This allows them to learn and practice on Oracle without fear of bringing any harm to the company data or angering the DBA Lord’s ;)

There has been plenty of times when my business users have wanted to have a local copy of data that they can query and analyze to their hearts content.  I used to pull down the data to Access or Excel — both of which have their own limitations.   Now I can have them install Oracle XE and bring down up to 4 gig of data — and it’s a breeze to do compared to going from Oracle to another type of storage.

College students or professionals wanting to learn Oracle — can now do so by installing their own copy for free.   No need to be a DBA — the install is simple and works straight out of the box.

Check it out!

Developing in the virtual machine era

December 9th, 2008

What can you get for $700 these days?   Quite a lot, as I just did with the Systemax Beast IV.  $699 for an AMD Quad Penom 9550 with 8gig ram and a terabyte hard drive running Vista 64.   The “dream” in this system is that it is a power system that was priced like a low end commodity computer.   Sure, there are no premium components but this machine has launched me into the “virtual computing” arena.

I’ve been using VMWare player and server for the last couple years to play around with linux.   It’s so much nicer than installing dual boot or setting up an old computer just to play with linux.

I’ve also used VMWare converter to make virtual machines out of my existing computers when I first get a new one.   While I always welcome a new computer, it’s a real pain to not be able to get any work done while I spend days reinstalling and reconfiguring my software.   With VMWare converter (a free download) I make a virtual machine that’s an exact copy of my old computer.   I copy the vm to the new computer and I can run my old machine complete with all the software already installed and setup.   I can get my work done and take my time installing and configuring the new system.

My dual core machines with 2 gig of ram are more than powerful enough to get decent performance running a single windows or linux virtual machine — but when you want 2gig for your base windows, and then you want to run windows virtual machines and give them 2gigs — you get constrained real fast.   That’s where my new “Beast” comes in.   At the $700 — it’s a great price with plenty of memory and cpu power to run mutiple virtual machines and have them all perform as well as if you were native on a regular computer.

I’m starting on a new project and we wanted to get going even before we had everything tied down.  We knew a good deal of the database was settled so I decided to get a head start.   While I await getting the real DBA’s involved in setting up our real dev/test/prod environments — I went ahead and setup an Oracle VM on my Beast.   Oracle has a free “Express Edition” that is limited only to 1 cpu and 4gig of data — plenty for my needs in development.   Plenty for a lot of small business and charitable uses as well.

I setup another virtual machine to install Eclipse/Jboss and my database development tools on.   It’s really a shock to be developing on such a clean system as these are the only apps installed on the virtual machines.  The performance is indistinguishable from what I’m used to with a dedicated machine.

The next step is to network them.   They really do behave just like real machines on the network.   If you are dealing with linux vm’s, you use Samba — and for windows, you do what you normally do.   Let me save you a hour or so and let you know you want to set the VM network to “Bridged” not “NAT” if you want the vm’s to behave as if they were separate computers.

Let’s say my next project is using sql server and not oracle.   No problem.  I can shut down the oracle vm and create a new Sql server vm.   No more having to put all this stuff on my computer and contending for resources.   No more suffering the poor performace of a computer where you’ve loaded and unloaded countless software programs.   I just ran one of those registry cleaning tools on my laptop and it found over 7,000 registry enteries that are no longer being used.   Developers have wiped and reinstalled windows for years in order to get that fresh restart to restore their systems performance.   By using VM’s — you get a fresh system whenever you need it.

There are two other very nice advantages.   I set up a nightly backup of my virtual machines.   If my computer suffers a failure, I can copy the vm’s to another machine and be up and running in no time.  All my software already installed and ready to go.   My backup drive is an external usb hard drive — which I can take with me when I travel to run all my VM’s from my laptop.

There are many other advantages and uses for vm’s and I’m sure I’ll write more about them in the future.   I’m so thrilled with the advantages of programming in virtual machines that I finally spent the money to buy VMWare Workstation.  You can use the free vmware server instead and I highly recommend taking it for a spin.

What kind of witch are you?

December 5th, 2008

Well….it took all of two posts for me to decide I needed to change the name of my blog.   Yes, I develop in java — and yes, I plan to write a fair amount on that topic — but no, I’m not just a java programmer and I have lots of things I want to talk about that have nothing to do with java.

It reminds me of a recent job interview (where I did get the offer).   The hiring manager was looking at my resume and asked “are you a java programmer or an oracle programmer”?   It struck me like the scene from the Wizard of Oz where Dorothy was asked “are you a good witch or a bad witch”.   Unlike Dorothy, I’m not going to say “I’m not a programmer at all”.   For I am a java programmer and I am an Oracle programmer — but neither label describes me.

I’ve been developing software professionally for 24 years.   I’ve developed in languages that don’t exist anymore.  I will be developing tomorrow in languages that don’t exist today.   So what am I….what do I consider myself?   I develop software — I’m a software developer.

I can promote myself and my company — I can bring in business.   But I’m not just a salesman.  I can talk to the business clients who have a need and help them understand how we can bring technology to bear to solve that need.   But I’m not just a business analyst.   I can take the business requirements and develop a solution, choosing the appropriate technologies and strategies.   But I’m not just a technical architect.   I can design data models for data marts or transactional systems but I’m not just a data modeler.  I can create all the tables, stored procedures, views, and triggers — but I’m not just a DBA (well, I’m not a dba at all, but a database developer).   I can develop the logic whether it’s in pl/sql or t-sql in the database or in java in the middleware….but I’m not just the one or the other.   The web is the latest “front end” I’ve developed in — via HTML, javascript, ajax, jsp, asp, php, or cold fusion — but I’m not just a web developer.   I can test with the best but I’m not just a tester.

What am I?   I’m a Software Developer.  Technologies come and go.   Just having freshly gone through the job search process for the first time in six years….I was struck by how many employers are look for a “java programmer” or “an oracle programmer” — or even much more specific than that (java with beehive and tivoli on sun systems…).   Some, however, the kind that were most interested in me — were looking for software developers.   The person whom projects depend on.   The guy that can “get it done”.   The girl who’s value isn’t in what she did last year but what she can do this year as business and technology both change at such a rapid pace.

What you will find on this blog are the writings of someone who is deeply involved with and interested in — software development.

Writing better java code

November 13th, 2008

We all want to write better code.   We all appreciate tools that make writing better code easier.   And we all want what we want free of charge.   So, what does the world of opensource have avaliable to help us java coders write better code?

The good folks at Java-Source.net have compiled a nice page showing many of the choices.   I used that as my starting point, surfed around a bit, and decided that three tools work very nicely:  PMD, CheckStyles and FindBugs.   I found this article by Frank Kelly very helpful.

All three tools work as Eclipse pluggins which is important to me as MyEclipse is my IDE of choice.  They install using the Eclipse software update (under the Help menu).   See their sites for more details.   Once you have the pluggins installed, you go to your project properties and make each one active.   Your project will rebuild, and from then on, ever time you save, you’ll see a list of warnings about your code.   Right out of the box you’ll have a great set of rules applied to your code that will have you writing better code in no time.   Each of them are customizable.   You can turn off rules that you don’t care to follow and add rules of your own.

I’ve created an Intro to PMD and Checkstyles Screencast so you can see them in action.

Read the rest of this entry »

One more java blog

November 13th, 2008

What does the world need?   Why one more java blog of course!   :)

I figure it’s time to start giving back.   I’ve been developing software for 24 years and have seen a lot in my day.   Nothing compares to the power of the internet.   Whenever I need to know or learn something, it’s off to google I go and there is a wealth of information — most all of it provided for free by folks sharing what they’ve learned (or created).

This blog just represents my efforts to give back as well.   If I’m able to shorten someone else’s learning curve as others have shortened mine — then I’ll have considered myself succsessful.

Leebase