Blog

  • Bringing GIS to the masses.

    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

    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”.

    XKCD Comic about Python
    XKCD Comic about Python

    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.

    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.

  • Heading to Hackfest

    On the weekend of November 7th, I shall be in beautiful Quebec City for Hackfest, a bilingual hacker con. In exchange for five books and a banner on the Rice Tea website, they will waive the entry fee and provide me a table to sell the book.

    It’ll be the first time that I sell the book publicly like that, so I’m really curious to see how it will all go down.

    In other news, I’ve been hearing lots of positive comments about Daemon lately, a techno-thriller by author Daniel Suarez. He originally started self-publishing the work as well, and I aim to replicate his success. In any case, I’m thinking of picking up his book from Chapters.

  • What’s New Baboo

    What’s new in my world:

    • I’ve lost 10 pounds since August 3rd. Progress has stymied lately, but I aim to lose another 20.
    • I’ve lost my appetite for video games. I don’t own a television or pay for cable, and books have come to fill the void. I usually read two hours a night now, if I’m not out fulfilling some sort of commitment.
    • I’ve finished one book by the name of Nickel and Dimed, which covers the situation of the working poor in the United States, but is evidently just as applicable to Canada. I also just finished off Appetite for Self-Destruction: The Spectacular Crash of the Record Industry in the Digital Age. The title is a little misleading, as the book is in fact a dry historical account of the record industry from the end of the Disco era onwards. It is, however, full of interesting tidbits – such as the explanation for the surge of boy bands in the late nineties.
    • Interest for my own book, Rice Tea, has picked up a tad. It’s being mentioned on a few free ebook sites, which has led to my first actual donation.