My inane life… in glorious details!
Archive for October, 2009
Bringing GIS to the masses.
Oct 14th
So with Rice Tea now done, it’s time to start on my next project. It’s a piece of software this time; one which aims to bring GIS to the masses.
The idea is this: you’re a high school kid, or a university kid, or a worker in an office – and you need to produce a map. If you’re not in a field that’s familiar with geomatics software, what are you going to use? Photoshop. The Gimp. MS Paint. A screendump of Google Earth.
And your map will still look shitty. It won’t have a North Arrow, a legend, or a map border. You won’t be able to combine datasets, or plot on XY data. That’s where my software comes in: it gives an easy way to create maps, for non-GIS people.
The focus will be on making map-making easy and accessible to audiences, much in the same way that Excel has made tabulating data accessible to audiences. That’s where it differentiates itself from other free products such as the excellent MapMaker and GRASS.
The program will be both free as in speech, and free as in beer.
Python is awesome
Oct 9th
In the last year, I’ve had the pleasure to program substantial amounts in C, C++, Python, Ruby, ASP (VBScript), and PHP. I’ve also used Microsoft Visual C++ and Qt as graphical frameworks.
By far, the most pleasant languages to work in have been Python. I love it for its utter simplicity and flexibility: it can make ordinarily large tasks two lines of code. Do you want to open a binary file and extract packets of little-endian unsigned four byte integers and character arrays? Two lines of code. I kid you not. Do you want to talk to a serial device? Use “import serial”.
My initial gripe with the language was the use of whitespace to delimit what was meant to be inside a function/loop. Coming from C, which does not care about whitespace, it was a little offputting. But you get used to it, and frankly whitespace, which inherently enforces proper code indentation, makes more sense from a usability standpoint than concluding statements with a semi-colon.
My other gripe with Python proved to be unfounded: speed. Python implementations interprets code – you do not compile it. Not only that, but Python was much more abstracted from the hardware than C, further hindering speed by the extra code it added in the background. As it turns out, computers are so fast these days that such differences really amount to nothing noticeable. I had Python running for real-time applications without a hitch. For most applications, it’s plenty fast.
If you want to create a GUI, Python has three options of note: TkInter, wxPython, and PyQt. Personally, I recommend TkInter. It comes with the Windows Python install, has the most documentation out there, and can pull off some things (ie. invoke a dialog to save a file) in a single line of text. Furthermore, the code is cross-compatible: your GUI code on Windows will work just as well on Linux – without recoding anything. On the downside, like the other frameworks for Python, creating a full-fledged GUI requires a fair amount of code. This is where Python starts to look less like… Python… and more like C++/Qt or C/GTK+.
All in all, Python and its modules are a wonderful asset to quickly and painlessly develop applications.
Greyhound makes me buy my tickets – twice.
Oct 4th
So I planned to drop in Montreal for a quick one-day jaunt this weekend. I bought my tickets online, and presented myself at the Greyhound bus station at about 6:40am (departure: 7:00am).
Ideally, I’d pick up the tickets, be on my way, and that’s that. Unfortunately, the poor decision process of one employee did not make it so. I went into the line to pick up my tickets. The one employee working the desk was on the phone, while the person that she was attending waited. From what I could understand, this guy had American tickets that weren’t valid to go out east.
He wouldn’t take no for an answer, and she kept trying to call new numbers. At this point, she should have perhaps quickly processed a few people before returning to him. But she didn’t. So I waited. At 6:57am she was still on the phone. I said fuck it – and went and bought a one way ticket at an electronic station there. So not only did I buy the return trip tickets online, but now I had bought an extra ticket to get to Montreal. Sucks, but shit happens I thought.
The day in Montreal was nice. The person I went there to meet was a no-show due to a mishap, but I hooked up with a good friend of mine and had some excellent dim sum.
When it came time to go back I went to the bus terminal in Montreal, and presented them my papers to get the ticket. They refused them, stating I needed to have picked up the tickets from Ottawa. They said the paperwork stated so. I checked – it didn’t. It said I could pick it up at a Greyhound station, and I assumed that since it was online, it meant any station – just like airline tickets. I explained to them the situation, but they didn’t care. They told me that I had to buy the ticket to get back a second time. Oh and no, I could not speak to a manager.
This really pissed me off. On the way there – okay – it sucks that I had to buy a ticket a second time, but I could deal with that. But that they refused my ticket back – and told me to buy it again – that really upset me.
This was a no-win situation. Even had I waited for that worker in Ottawa to finish her business, and miss my bus in the process, then that initial ticket to go there would have been invalidated (only good for that one time according to staff.)
So thank you Greyhound, for telling me to buy my tickets twice.

Recent Comments