Oct 7
Playing 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 commentsOct 6
64-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.
Oct 3
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 commentsOct 3
Two shocks for the day
I’m sitting in my Oracle prac at the moment and I’ve had two shocks: Vista actually fixed a problem with XP and my Business faculty based lecturer is heavily bagging out WebCT and hoping for Moodle to come in. I’m not quite sure where all of this support for Moodle came from in the University but it is exciting…shame it may not happen in my time. The ITS people have been suspicious of the software over WebCT and one of the reasons why WebCT is being scrapped is that it costs money for the Uni and the Uni is running out of money. Interesting times ahead, shame I probably won’t see it come to fruition.
No commentsOct 3
Building a metadata filesystem
As part of my final year of studies at university I’m working on building a metadata filesystem, called “MDFS” or “MetaData FileSystem”. Creative naming don’t you think? The project is using FUSE to create the filesystem interface and PostgreSQL is used to store the data in the back end. Its in its early phases, but you can check it out here at a Trac instance I’ve created: http://mdfs.pasamio.com/.
No commentsSep 6
mod_rewrite equivalent for IIS
I was having a look around for a way to get bulk redirects for IIS. You can specify it one by one but there doesn’t seem to be an easy way to bulk redirect things. However I do seem to have found a page with some alternatives that provide mod_rewrite style solutions (some free, some paid):http://www.petefreitag.com/item/286.cfm Looks interesting enough for those stuck with the limited web server.
2 commentsAug 22
How 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
Jul 8
Feature evolution
I was working on a work project today that involved attempting to build a mail merge from a relational database using Word. To be honest I gave up trying, especially after I saw this: http://msdn2.microsoft.com/en-us/library/aa140197(office.10).aspx
What that page contains is these three facts:
- Wordperfect supported relational mail merging
- Word doesn’t support this.
- Don’t attempt it in Word.
Whilst it doesn’t explicitly say “don’t attempt it in Word” it gives you four options, the first three were really far too time consuming for the project so I tried the fourth option where Word uses a database field object to handle the relational part. Eventually through hacking things a bit and the support of importing the data into Access and creating a few queries in there I managed to get a product. The problem is that this database object seriously limits your flexibility and forces you into a table autoformat. The article comments that you have a lot of flexibility with the all of 5 check boxes and styles it presents for you to customise. The end result ended up that I managed to get my data set out with a whole heap of errors (some do not have valid entries in some other tables which caused Word to popup a warning box for those entries even though errors were supposed to be ignored) to the point that no matter the orientation the table ran across the page. What I really wanted was the equivalent of mysql’s \G command (vertical tabulation).
End result: I wrote something in PHP to output a PDF to do the same trick in less time than I wasted in building the bodgy Word solution. As I comment else where I don’t have Microsoft for doing what they’re doing, I hate Microsoft for doing what they’re doing _badly_. They copied things but they don’t do a good implementation. They copy things and omit useful features (relational mail merges are really the domain of Crystal Reports, and Microsoft is happy for it to be that way) along the way that users had under older packages. This is my gripe that things take a step forward for two step backwards.
4 commentsJun 14
JDiagnostic tech preview released
A lot of emails I get are with regards to deploying JAuthTools and Microsoft Active Directory (AD). AD doesn’t make things easy for users in the LDAP interface: its case sensitive, has everything in capitals, disallows anonymous searching (though users can bind anonymously and see,well, nothing) and has an interesting default layout (e.g. CN=Users instead of OU=Users). By default Joomla! 1.0.x doesn’t have the ability to log items which is a function of the system (e.g. there are very few functions that run purely in the ‘background’) which makes it hard to diagnose things that are going wrong. There is a small tool I use called JLogger which is basically a mambot API loader and a component to view the logs. Its pretty primitive and I haven’t ‘released’ it because it hasn’t had anywhere enough work done on it (it is available via Subversion, zip files together to create installable packages) but it was one of the first step towards diagnostic tools, and this is another step.
Recently I released JDiagnostic, a tech demo of a tool that I hope will evolve into a launching pad for a wide range of useful tools, tests and diagnostics. At present it solves the above stated problem: MSAD integration. Its a step by step wizard configurator for Active Directory, with tests along the way. At the end it configures the LDAP SSI and Joomla! LDAP mambots with as much details as it can (what you’ve supplied) leaving you hopefully with a consistent and working Active Directory setup, without the pain of having to read through logs to see what is happening.
You can check out JDiagnostic on the Pasamio’s Projects FRS page.
7 commentsJun 11
Indexing and Application Launching
Last night I was doing some work and I wanted to do some more research and knew that I had some files on the subject already on my hard drive, but I wanted to see what else was out there. As it happened Google didn’t really turn up much interesting beyond the obligatory Wikipedia article, but Google Desktop Search turned up a direct link to one of my local resources. Doing so saved me from using Spotlight to do the same thing. But that isn’t the only app indexing my hard drive, Quicksilver (my preferred app launcher) also runs in the background check the hard drive for new and interesting files that it can index and add to its database so that when I search for an application all I need to do is type its name and hit enter.
So my Mac has three different indexing tools: Google Desktop Search, Spotlight and Quicksilver. This is in contrast to my work PC (Windows XP) which has Google Desktop Search and Windows Indexing Service (which does poorly on large itemsets such as the contents of your hard drive…most of the useful items I find using this tool is not what I wanted originally but something else thrown up in the list for some reason, completely irrelevant, but interesting to read. There is another tool I use, RockIt Launcher, which is a Quicksilver equivalent for Windows except its catalog is limited in scope and usefulness, plus it has to be manually reindexed.
Linux by comparison seems quite poor, really only having Beagle desktop search, but that would discount the other options available. For example I do a few things differently on this platform: I launch terminals using my function keys (alt-f5 to f12 is bound to local and remote terminals (via ssh)) which means I get access to those applications. alt-f2 brings up the Linux equivalent of the ‘run’ dialog, except with completion. This is my equivalent for Quicksilver as I usually know the app name (as with quicksilver) to launch it. The last app launch/search is the deskbar I have on my lower panel, which has a list of commands run through it (could be desktop search, dictionary or app launch) so I can click that to quickly get to applications or type in the text box to get feature almost identical to Quicksilver. The last app launch point is my ‘drawers’. These are little panels that extend down with Quick Launch icons. They’re grouped so if I’m doing a particular task I know which drawer to go to so that I can launch multiple similar applictions. iIts also handy for eclipse, which has the same name but is three different installs.
So for me, my main use of search is application launching and occaisionally going to find the file I want. Mac has lead the way on the desktop, Google provides another awesome solution, Beagle is very nicely integrated into GNOME and now that Vista has (finally) shipped a few months ago it has search built in. So finally everything is getting indexed, making things easier to find for those of us who have too much information.
2 comments