wSIS – Wall Spatial Information System

On May 29, 2009, in wSIS, by kris

During this past summer I was lucky enough to have the chance of working with one of my professors to build a "simple GIS-like application." In a nutshell, a GIS (Geographic Information System) is a broad term that encompasses systems capable of storing, visualizing, and analyzing spatial data. Typically, we see them used for maps, as the word "geographic" in GIS implies, but there’s no reason to believe that they couldn’t be useful for analyzing other spatial things. Things like how bacteria move around on a petri dish for instance.

I picked the name (wSIS) for several reasons. The "wall" portion of the name refers to the fact that it is supposed to run on the video wall at JMU. This has not come to being yet. The remainder of the name, SIS, was chosen for two reasons. First to correct the misnomer that geographic information systems are somehow intrinsically "geographic." As far as I can tell they are spatial analysis systems. Second, I didn’t want to hint to the users that my application was somehow a full-blown GIS (it was developed in 3 months by an inexperienced sophomore!).

To make the project more than plain application development, I researched and experimented with multi-threading. wSIS stores all of the feature data in a quadtree. This has become the basis for my honors thesis, so I’ll have to write more about it later. For what it’s worth, tests I ran showed a 40-50% speed up in quadtree creation.

Screenshots are available here.

Features:

  • Written in Java 6
  • Reads ESRI Shapefiles (.shp)
  • Reads attribute files (.csv)
  • Draws features based on attributes (choropleth)
  • Ability to chose between several map projections
  • Simple analysis (add up the population along a road)
  • Analysis plugins written in Python
  • Saves map details (theme/zoom/projection/data) in custom XML schema
  • Reads these XML files
  • Supports printing maps
Tagged with:
 

Hard Drive Benchmarking

On May 23, 2009, in Little Projects, by kris

I was looking for a quick and dirty way to benchmark hard drives this morning and I stumbled upon iozone. It was way sweeter and more elaborate than I could have ever dreamed!

Here’s a quick and dirty jump-start guide for Ubuntu 9.04:
cd ~
sudo apt-get install gnuplot iozone3
cp -R /usr/share/doc/iozone3/examples ./iozone
cd iozone
uncompress gnu3d.dem
# The following command runs the benchmark and will take a while to complete
iozone -a > mybenchmark.txt
chmod u+x Generate_Graphs
./Generate_Graphs mybenchmark.txt

This will start gnuplot and display a graph that can be rotated. Closing it will open the next one in the sequence. The script also generates a bunch of postscript versions of the graphs.

To get a bunch of png images make a script called topng.sh.

File topng.sh:
#!/bin/bash
newFileName=`basename $1`
newFileName=`echo $newFileName | sed s/.ps/.png/`

echo $newFileName
ps2png $1 ./pngs/$newFileName

Then execute:
find -name "*.png" -exec ./topng.sh {} ;

Here are the resulting benchmarks:

Samsung 250GB Benchmark

Graphs generated by gnuplot and IOZone.

13 Photos

If you’re looking for a little more thorough description of IOZone and what the benchmarks really mean, someone else has already written it.

Tagged with:
 

My Blog’s New Home

On May 22, 2009, in Little Projects, by kris

The Hardware

I just built a MicroATX system for my blog, and other projects, to live on.

The specs:

  • Kingston 4GB (2 x 2GB) 240-Pin DDR2 SDRAM DDR2 800
  • Intel Pentium E5200 Wolfdale 2.5GHz 2MB L2 Cache
  • Gigabyte GA-G31M-ES2L LGA 775 Intel G31 Micro ATX Intel Motherboard
  • Apevia X-QPACK-NW-BK/420 Black Case
  • Random Samsung 250GB Hard Drive

Here are a couple of shots from the full gallery:

 

The Software

I’ve traditionally always had some kind of built-from-scratch blog growing up, but lately I’ve been experimenting with various blogs.  At first I was restricted to blog software written in ASP.net because my hosting was on a Windows machine, but now my blog has moved to my machine!  On Windows, I was using Subtext. It wasn’t bad, and it got the job done. There were a fair amount of themes available, which was important because I didn’t want to invest myself in a particular project by writing my own theme.  It was pretty unpolished though, primarily the Admin interface.  It seemed to have gaps of missing features (and it was homely).

With the luxury of running my own server, it was logical to try WordPress.  It’s better in every dimension.  There’s a massive userbase which means several things: it can be coaxed to do anything, millions of plugins, lots of support, and it’s easy to google solutions to any problem you run into.

With WordPress up and running, my first priority was to find a good theme and photo gallery.  The theme was easy to find, but finding a good photo gallery was a journey.  For the photo gallery I tried the following plugins: photoJAR, Lightbox 2, WPG2, and NextGEN.  They were all impossible or unreasonably difficult to customize the way I wanted except for NextGEN. For tweaking I recommend looking at the NextGEN Gallery.

Tagged with: