Archive for the 'opensource' Category
A virtual thought for the day
Last Friday I spent half an hour inside one of our smaller server rooms to fix our development VMWare ESX box. Its called development because its a Dell box and it takes a good five minutes for it to get past the BIOS and SCSI controller load screens. That was the first and last Dell server I think we bought. However what had happened is that the powered had failed the day before and even though we managed to take the machine down, I think the UPS serving that server room had failed after the backup generator also failed which meant that the machine didn’t go down cleanly. However when it came back up it ended up failing and unable to find a root partition. I’ve broken enough Linux boxes to recognize the error and realize the solution is really simple, just fix up the fstab which is all I did and magically the box started working properly. But this lead me to an interesting thought.
Consider an all Microsoft shop who had never considered Linux before but wanted to virtualise their products. The best product to do this from what I can tell is the VMWare ESX platform which is really a small Linux hypervisor and then their own management tools underneath. The aim is that the end user never has to see the Linux back end they only see the graphical tools for Windows like Virtual Control Centre or the web based interfaces. This leads me to the funny thought that a pure MS shop that had perhaps sworn off Linux might be deploying ESX because it is the best option out there (MS hasn’t brought out their solution yet, thats waiting on their Longhorn Server product), an entire Microsoft world virtualized under Linux.
It makes you wonder where the world is heading.
No commentsPlaying with GeoServer, Google Earth and ArcSDE
The other day I sat down for half a day and did some research into GeoServer (http://geoserver.org/) and connecting it to our Corporate GIS data store, which is an ArcSDE system. It took a surprisingly small amount of work to get GeoServer up and running and to get it to produce some simple basic results out of the ArcSDE system.The goal of the exercise was to see if I could get access to the mapping information in a system that wasn’t from ESRI, the makers of ArcSDE and ArcMap. The aim isn’t to replace these products for those who use them already or for those who might use them in the future but to provide a smaller end application of the GIS data that is presently stored in Council’s system. For this I picked Google Earth, Google’s 3D ATLAS application.The first set of sample data that I decided to use with the system was a set called ‘Queensland Towns’ which gave me a general view of the state in a large scale so that I could roughly validate that I hadn’t made too bad a mistake. Thankfully the towns came up roughly where they were supposed to be, though I had to check with the GIS department when Google’s data didn’t quite line up with the points – it turns out that their information is wrong! From here I moved onto something more fine grained: our roads data. For each of the roads in the city we have data for stuff like where they start and finish, the particular speed limit along those roads and what sort of road they are (e.g. is it a major road or just a small suburban road). This put a bit of load on my machine as it generated the points for the data, the record set is far more complex (roads are split up into different segments to allow for multiple speed limits for a single road). However even though it took a while (and it was best to be zoomed in as close as possible to the features to minimize the amount that had to be retreived) the road data lined up with Google’s ortho almost perfectly. The interface to retrieve the information about the points of the feature weren’t the friendliest but I’m sure with a bit of work something like that could be fixed up to make it more useful. On the whole setting everything up and getting some results took a few hours of work (took longer to find the ArcSDE SDK and get it installed properly than anything else) and we’ve got an accessible open result for transferring information.
4 comments64-bit Hell and Eclipse
For many years now I’ve had an AMD box that was capable of running 64-bit. I wouldn’t say I’m an early adopter, it just happened to be capable of 64-bit and it didn’t bother me if it was a feature or not. At the time I tried out the 64-bit builds of Linux and Windows, found Windows woefully equipped to handle 64-bit and Linux a bit better (having all of the source code to recompile and fix things on a new word size does help things).
Fast forward to today and I have (again) a AMD AthlonX2 64-bit box now on my desk and I’m running SLED10 64-bit. To be honest I’m doing better than Helpdesk who has a similar test box and have been trying to get 64-bit Windows XP up and running on the machine. They’re still hunting for drivers for the thing and keep complaining they have to go halfway across the internet to get things. For myself I’ve only downloaded one driver for the ATI graphics card on it, more to get dual head mode working on the graphics card. So I’m up and running and I’m not really noticing any issues with applications. Everything I’ve thrown at this box has been handled perfectly, until I decided to upgrade Eclipse. Eclipse is a strange beast and the build I have is a 32-bit build. It worked fine by default, however the Java version that I have on my desktop is rather ancient (1.4.2, thank you SuSE). This meant that some things didn’t want to work properly. I tried to upgrade to the IBM provided 1.5 release which wanted to be 64-bit. Which is fine, until you realize that the Eclipse build has a 32-bit SWT support layer. Try again! So I ended up downloading the 32bit Linux Java off the Sun website and installing it. That got me up and running with 1.6 and Eclipse started and almost got me to where I wanted to be. Then Eclipse hanged itself. Eclipse does this from time to time, so I just let it sit there and do what ever it
does and it came good. I have a feeling its trying to go to the internet or some other network resource which is taking its sweet time to respond, or for the internet, being blocked by a firewall somewhere.So this brings to light an issue with any system that indulges in dynamic linking. One of the issues here was Eclipse’s SWT library being 32-bit (there are 64-bit builds so that is fixable though I know not how) and at one point using a 64-bit build of Java. Funnily enough this isn’t as big an issue on my platform of choice, Mac OS X. As I pointed out in a Slashdot comment Apple has done a great job of shifting architectures for their operating system and let alone the 32-bit/64-bit transition. They’ve had to move from their original Motorolla m68k powered machines to PowerPC based machines and now from PowerPC on to Intel, and they’ve used emulation both times swapping from the m68k to PPC and then from PPC to Intel to make the transition lighter, and utilizing “Universal Binaries” similar to the “fat binaries” they used previously to get things up and running. The only other element of note is providing the “Classic” interface to ease the transition from the nanokernel that powered Mac OS 9 and earlier to OS X’s new XNU microkernel. The system is in effect emulating a Classic machine, though it isn’t complete. Though of most note Apple announced the toolchain to make the PPC to Intel switch all possible ahead of time and integrated it directly into their primary developer tool, XCode.Perhaps this is why Apple’s transitions are so much smoother than that of either Microsoft or Linux.
Fun with Subversion and Apache
I’ve been having some issues with getting my Subversion repository to play nicely. For some reason it started to randomly attempt to point to a repository called “error” which puzzled me a bit. A mailing list entry has set me up with a solution (http://svn.haxx.se/users/archive-2004-06/1312.shtml) and it appears looking around a bit further and a few other people have had the issue as well. The basic problem is that somewhere the system is throwing an error, it appears a 500 which is an Internal Server Error. But this doesn’t seem to be the base cause since I feel this is actually being generated internally for some reason and bounced around. It happens that the reason why its bouncing here is because of an error directive somewhere is causing an error page to be looked for, and since by default we’re pointing to our errors being at /error, which Subversion tries to find a repository for because “SVNParentPath” is set with the Location set to the root (e.g. “
So the solution from the above as to add a redirect to another virtual host on the server:
RedirectMatch permanent ^/error http://pasamio.com/error
Another solution is to rewrite the ErrorDocument to make it return strings instead of page:
ErrorDocument 400 "400 HTTP BAD REQUEST" ErrorDocument 401 "401 HTTP UNAUTHORIZED" ErrorDocument 403 "403 HTTP FORBIDDEN" ErrorDocument 404 "404 HTTP NOT FOUND" ErrorDocument 405 "405 HTTP METHOD NOT ALLOWED" ErrorDocument 408 "408 HTTP REQUEST TIME OUT" ErrorDocument 410 "410 HTTP GONE" ErrorDocument 411 "411 HTTP LENGTH REQUIRED" ErrorDocument 412 "412 HTTP PRECONDITION FAILED" ErrorDocument 413 "413 HTTP REQUEST ENTITY TOO LARGE" ErrorDocument 414 "414 HTTP REQUEST URI TOO LARGE" ErrorDocument 415 "415 HTTP SERVICE UNAVAILABLE" ErrorDocument 500 "500 HTTP INTERNAL SERVER ERROR" ErrorDocument 501 "501 HTTP NOT IMPLEMENTED" ErrorDocument 502 "502 HTTP BAD GATEWAY" ErrorDocument 503 "503 HTTP SERVICE UNAVAILABLE" ErrorDocument 506 "506 HTTP VARIANT ALSO VARIES"
This also fixes the problems, though in a few more lines. This is perhaps the better solution as it wipes out the old ErrorDocument directives that were giving us some troubles and returns a straight string. The next simplest solution is of course to move the Subversion “SVNParentPath” from the root to its own path underneath the root, which is the solution that most people seem to go in for doing.
No commentsHow it works: 1.0 to 1.5 Migration
This post is going to be a technical post on what goes on behind the scenes of the components. For me this is easier than writing the how to documentation on things but it will give those who are interested the knowledge they need so really it’ll be a how to with technical bits. So without any further ado, here it is!
Read more