Learning Python

This month I strongly considered taking a full-time position with Keane IT Services (which was recently acquired by NTT Data). Unfortunately, it turned out that role wasn’t a good fit for where I’m at professionally and the responsibilities I have for my family (but it looks like another opportunity I received might be a better fit). As part of the position, I would have needed to beef up my Python skills since one of their client’s Remote Monitoring systems uses it heavily. Not being sure of which version of Python they use, I followed the advice on the official Python site and started with the latest and greatest – version 3.2 – which represents the future of the language.
While learning, I also wanted to make a short course for my wife, because if I could teach her the basics then it would be the perfect proof that I had a handle on the core of the language. Together we successfully walked through the basics of mathematics, string operations, lists, returning values, running a program and packaging a module. I had done some things in Python before but they were mostly around debugging or updating a small section of someone else’s code (i.e. tweaked a Message consumer here, structured a SOAP call there).
Learning from existing code is definitely always the quickest way to learn for me though. To this end, Dive Into Python 3 is hands down one of the best resources other than the Python documentation or official tutorial itself, since it provides code samples. In honesty what helped me most though, was probably the free course offered by Google, which I essentially simplified and repackaged when teaching my wife at home.
After going through the course and feeling a bit confident, I was ready for my first real Python 3.2 program (other than the typical command-line testing and Hello World app). For this I decided to update the Yahoo! Weather Python SDK from 2.x to 3.x and create a Python 3 module for accessing Yahoo! Weather and wrapping their XML Web Services as JSON for consumption by a client. For the client itself, I could have easily written most of the parsing code (if not everything) in my usual manner of using client-side code (i.e. JavaScript) as much as possible then interacting with external Web Services via a server-side proxy, but just for fun and completeness of doing it all server-side I did it all Python style, including outputting the HTML to display the weather report. That way, you can interact with the “index.py” file directly from the browser as a CGI script within Apache that accepts user input via GET submitted from its form, or, interactively via the URL (the URL hacking took a bit of time to get my head around in Python).
Read the rest of this entry »
BC$ = Behavior, Content, Money

The goal of the BC$ project is to raise awareness and make changes with respect to the three pillars of information freedom - Behavior (pursuit of interests and passions), Content (sharing/exchanging ideas in various formats), Money (fairness and accessibility) - bringing to light the fact that:
1. We regularly hand over our browser histories, search histories and daily online activities to companies that want our money, or, to benefit from our use of their services with lucrative ad deals or sales of personal information.
2. We create and/or consume interesting content on their services, but we aren't adequately rewarded for our creative efforts or loyalty.
3. We pay money to be connected online (and possibly also over mobile), yet we lose both time and money by allowing companies to market to us with unsolicited advertisements, irrelevant product offers and unfairly structured service pricing plans.