So you're a CIO and you have several projects to deliver. The only problem is that you've had your budgets slashed.
What is a CIO to do....
Well I don't know if anyone has noticed but one of the coolest recession friendly enterprise software stacks around is being offered by that company we all love to hate: Sun Microsystems.
Consider this:
Sun has a really cool application server which is fully buzzword compliant in the form of Glassfish. Besides the fact that its pretty scalable with old Grizzly, it comes with a rock solid ESB and messaging system, A decent compatible web service stack, and on top of that it is dead simple to administer. And then of course lets not forget the awesomeness that is Glassfish 3.0.
Now Java and JEE can be a little heavyweight, but that's no problem, Sun supports Ruby and Ruby on Rails and has a Ruby interpreter that really rocks in the form of JRuby, and the best part is that you can run it on said application server. And If Ruby is not too your taste, don't forget Groovy and Grails, and soon Python with Django, and if you really want to go exotic there is Scala and Lift. All using it's battle tested core runtime environment otherwise known as Hotpsot.
Of course now you need to save your precious data in a database. Databases of course tend to be notoriously recession unfriendly. Once again Sun provides a proven lightweight solution in the form of MySQL.
Finally no system is complete without a little bit of User interface. Sun provides a good web stack with Glassfish, however you wanna got fat. No problem, JavaFX now provides a good fat solution.
So now you have all the libraries and runtimes, what about an IDE. Once again we have Netbeans, an increasingly one stop shop for doing development, besides doing Java and C++ it does Ruby, Groovy, Scala, JavaScript, PHP and it's newest addition: JavaFX, all with a simple easy interface and allows you to get up and running very quickly.
It's also worth mentioning that Sun also offers a slew of other tools, everything from a continuous integration server in Hudson to an identify management system in the form of OpenSSO, and countless other products.
Once you have all that together, you need an OS to run it all on. Once again you have the increasingly interesting looking OpenSolaris, or it's commercial brother Solaris, which once it's all said and done, is still one of the best OSes on the planet.
Now what is really cool about this whole stack is that everthing I've mentioned here is either open source or free, with support contracts available. If you wanted you could download all individual components and not cost to you, that's right no cost. How recession friendly is that.
But wait there's more, since you've saved all this money on software, why not look at some of Sun's hardware, which includes everything from fast Opteron servers to those Sparc boxes with like a gazillion CPU cores. Then of course there are those Jaw dropping ZFS based Open Storage systems.
So there you have it: If you need to get some bang for your buck, have a look at Sun: your one stop shop for all things EIS.
There is unfortunately one small little caveat...
Sun either isn't interested in dishing out it's kool aid, or is trying too, but no one seems to understand where to get some.
My employer recently bought a whole stack of stuff, and based on what they where looking for a stack like the one I presented here would have appealed to them. All Sun would have had to do, is bundle it up under the banner of a product suite and do some old fashioned selling.
The worst part is that I don't think the Sun people understand what they have. When you watch a Sun presentation you get bombarded with Sun's entire portfolio of products, the only problem is that they present them as a mass jumble of vaguely related products which simply overloads the presentee with information. There's no common theme to say: this is the value proposition we are giving to you.
Now I don't represent Sun in any capacity, but I would find it incredibly sad to see a company that does so much cool stuff fold, and see all this cool stuff potentially disappear.
Showing posts with label misc. Show all posts
Showing posts with label misc. Show all posts
Saturday, December 20, 2008
Tuesday, August 5, 2008
Running your physical Windows XP partition as a VM using Virtualbox on Ubuntu.
Ok, so you've just installed your shiny new Hardy Heron OS but you still have all those pesky Windows apps you need to run.
Currently you're dual booting, but that sucks.
No worries, the latest version of Virtualbox allows to wrap an existing physical partition as a virtual machine.
Here's how to do it.
1. Install Virtualbox
Firstly; do not install the Virtual box which comes standard in the Ubuntu repositories. In order to support this functionality you have to download the closed source version from Sun. BTW I give Kudos to Sun for being .deb friendly.
2. Setup your permissions.
After you've installed virtualbox you will need to assign your user to certain groups in order to access the physical partition and virtualbox for that matter.
The commands are as follows:
- "sudo usermod -a -G disk"
- "sudo usermod -a -G vboxusers"
You will need to log out of your terminal and then log back in for the changes to take effect.
3. Prep your Windows installation.
Since Virtualbox imposes a Virtual hardware environment to the guest operating system, Windows is going to try install all the new drivers for Virtualbox's virtual hardware environment. This is a problem if you wish to boot back into that Windows partition. For this reason you have to create two separate hardware profiles in Windows; one to run physically and one to run as a guest operating system. This can be done under System Properties > Hardware > Hardware profiles.
Next you have to run a utility called MergeIDE which you can get here. As it turns out Windows writes some registry information about your physical IDE controller into the registry. MergeIDE does some funky rewiring of the registry in order to get around this so that you can "move" your Windows installation onto another hardware environment.
4. Create a virtual hard disk for Virtualbox (VMDK file).
The first thing you need to do is determine which partition your MBR (master boot record) lives on. You can determine this using fdisk or checking your Grub settings.
Finally when you have all this information you create the VMDK file using the command:
VBoxManage internalcommands createrawvmdk -filename [Absolute_Path_to_output_File] -rawdisk /dev/sda -register
You then start Virtualbox, create a new Virtual machine and select this created VMDK file as the hard disk for this VM.
5. Modifying your VM settings for Windows.
In the settings for your virtual machine, under "general" you need to enable the IO APIC and VT-x/AMD-V options in the "advanced" tab.
6. Fixing the licensing issues.
The Windows XP volume license registers your license key against the BIOS for that machine. When Virtualbox loads your guest operating system it presents virtual BIOS information to that OS, which obviously invalidates the license you currently have installed for XP since from it's point of view it's now on a different machine.
In order to fix this you have to modify the settings of your VM config file in order to report your physical BIOS information.
First you have to get the information using the dmidecode command. To get the DMI bios information and the the DMI system information run: dmidecode -t0 and dmidecode -t1 respectively.
You then have to append this information as a set of key-value pairs to your virtual machine settings. A list of all the variables can be found in section 9.13 of the VirtualBox user guide.
The user guide explains how to do this using the "VboxManage" command I found it easier to add the variables myself to the config file of your VM which can be found at ~/.VirtualBox/Machines/My_Windows_Machine/My_Windows_Machine.xml and can be added under the <ExtraDataItems> element.
And that should be it, now you can fire it up!
Some final information.
When you start the virtual machine it will effectively start the same boot loader you normally use for the dual boot system. Under no circumstances boot into the same OS you are currently running. If you do this I can guarantee you a world of pain.
Performance is not fantastic. This seems to mostly stem from lack of decent graphics acceleration. I upped the Video memory and turned off all visual effects in Windows which helped however if you know a way to improve graphics performance, let me know.
Currently you're dual booting, but that sucks.
No worries, the latest version of Virtualbox allows to wrap an existing physical partition as a virtual machine.
Here's how to do it.
1. Install Virtualbox
Firstly; do not install the Virtual box which comes standard in the Ubuntu repositories. In order to support this functionality you have to download the closed source version from Sun. BTW I give Kudos to Sun for being .deb friendly.
2. Setup your permissions.
After you've installed virtualbox you will need to assign your user to certain groups in order to access the physical partition and virtualbox for that matter.
The commands are as follows:
- "sudo usermod -a -G disk
- "sudo usermod -a -G vboxusers
You will need to log out of your terminal and then log back in for the changes to take effect.
3. Prep your Windows installation.
Since Virtualbox imposes a Virtual hardware environment to the guest operating system, Windows is going to try install all the new drivers for Virtualbox's virtual hardware environment. This is a problem if you wish to boot back into that Windows partition. For this reason you have to create two separate hardware profiles in Windows; one to run physically and one to run as a guest operating system. This can be done under System Properties > Hardware > Hardware profiles.
Next you have to run a utility called MergeIDE which you can get here. As it turns out Windows writes some registry information about your physical IDE controller into the registry. MergeIDE does some funky rewiring of the registry in order to get around this so that you can "move" your Windows installation onto another hardware environment.
4. Create a virtual hard disk for Virtualbox (VMDK file).
The first thing you need to do is determine which partition your MBR (master boot record) lives on. You can determine this using fdisk or checking your Grub settings.
Finally when you have all this information you create the VMDK file using the command:
VBoxManage internalcommands createrawvmdk -filename [Absolute_Path_to_output_File] -rawdisk /dev/sda -register
You then start Virtualbox, create a new Virtual machine and select this created VMDK file as the hard disk for this VM.
5. Modifying your VM settings for Windows.
In the settings for your virtual machine, under "general" you need to enable the IO APIC and VT-x/AMD-V options in the "advanced" tab.
6. Fixing the licensing issues.
The Windows XP volume license registers your license key against the BIOS for that machine. When Virtualbox loads your guest operating system it presents virtual BIOS information to that OS, which obviously invalidates the license you currently have installed for XP since from it's point of view it's now on a different machine.
In order to fix this you have to modify the settings of your VM config file in order to report your physical BIOS information.
First you have to get the information using the dmidecode command. To get the DMI bios information and the the DMI system information run: dmidecode -t0 and dmidecode -t1 respectively.
You then have to append this information as a set of key-value pairs to your virtual machine settings. A list of all the variables can be found in section 9.13 of the VirtualBox user guide.
The user guide explains how to do this using the "VboxManage" command I found it easier to add the variables myself to the config file of your VM which can be found at ~/.VirtualBox/Machines/My_Windows_Machine/My_Windows_Machine.xml and can be added under the <ExtraDataItems> element.
And that should be it, now you can fire it up!
Some final information.
Monday, June 16, 2008
The Asus eeePC. What does it's success mean for developers?
It's been a while since I last blogged, mostly because I've had quite a lot of - shock horror - work to do and just haven't had the time to do any blogging.
However things are quieting down and I'm back to see how many people I can annoy :-)
Anyway, I bought an Asus eeePC for my wife this weekend.
Her needs are very simple; she has a corporate application she needs to run (written in a 4GL called Magic) and she needs to be very mobile.
The Asus eeePC is pretty much perfect for her. The one caveat however is that her corporate application needs Windows. So after much googling I created a stripped down version of Windows XP using a utility called NtLite and managed to cram both Windows XP and her required application into the eeePC's little 2GB flash drive, with a decent amount of space to spare.
The eeePC really is a sweet little machine, besides the fact you can't but help smile when you see this little machine you realise quickly that it could so easily fulfill so many applications.
As I was trying to overcome some of the of the shortcomings of the machine it made me think about about some of the implications for me as a developer if the UMPC market segment takes off and I have to ensure that apps run on this class of computer.
There are a couple things I suddenly need to think about:
My company has standardised on 1024 x 768 as the standard screen size for all applications, this is going to cause a stir when somebody important tries to use the system via their UMPC.
Desktop apps suddenly need to be a little leaner than they have been in the last couple of years, on the 2GB machine, 100MB is a lot, this of course includes data. Gigs and Gigs of hard disk space are suddenly a luxury.
Referring to the previous point, it's also important to make the data more portable, embedded databases are useful but having to make the user perform some complex mount operation in order to run their database off a USB disk is no good.
If Linux ends up dominating this segment, then you can no longer say that the target OS on the desktop is going to be Windows (Not that, that ever bothered a Javaphile like me).
UMPCs are aimed primarily for Web access, this means the browser, JavaScript: say hello to your new, um, "female dog".
I actually question the value of RIA platforms here, if JavaScript/HTML is sufficient for 95% of my applications, and is the lowest common denominator anyway, do I really want the extra overhead of a RIA runtime?
However things are quieting down and I'm back to see how many people I can annoy :-)
Anyway, I bought an Asus eeePC for my wife this weekend.
Her needs are very simple; she has a corporate application she needs to run (written in a 4GL called Magic) and she needs to be very mobile.
The Asus eeePC is pretty much perfect for her. The one caveat however is that her corporate application needs Windows. So after much googling I created a stripped down version of Windows XP using a utility called NtLite and managed to cram both Windows XP and her required application into the eeePC's little 2GB flash drive, with a decent amount of space to spare.
The eeePC really is a sweet little machine, besides the fact you can't but help smile when you see this little machine you realise quickly that it could so easily fulfill so many applications.
As I was trying to overcome some of the of the shortcomings of the machine it made me think about about some of the implications for me as a developer if the UMPC market segment takes off and I have to ensure that apps run on this class of computer.
There are a couple things I suddenly need to think about:
Subscribe to:
Posts (Atom)