Thursday, July 14, 2011

I am speaking at PyCon AU 2011 about CouchDB

The official schedule for PyCon Australia 2011 has been announced (http://pycon-au.org/2011/conference/schedule/). My talk is the first session after the opening keynote and will be an overview of CouchDB and how you can use it with Python.

"CouchDB  (http://couchdb.apache.org/) is an open source, document-oriented NoSQL Database Management Server.It supports queries via views using MapReduce, and replication. The talk will give an overview of CouchDB followed by how to access and manipulate using Python. There are a number of python libraries for accessing couchdb and these will be quickly discussed followed by  how to use one of these libs with a Python web framework. Also there will be an example of using a Python view server in place of the standard Javascript views provided by couchdb."

PyCon Australia is Australia's only conference dedicated exclusively to the Python programming language, and will be held at the Sydney Masonic Center over the weekend of August 20 and 21.

Thursday, May 19, 2011

Python Informix Database Connection Options

I am currently at the International Informix Users Group Conference (http://www.iiug.org/index.php) in Kansas. In the opening keynote by Jerry Keesee, there some discussion about IBM's Open Source Initiatives for Informix. On the accompanying slide, Python and Django were listed. This reminded me that I hadn't taken stock of what the Informix DB connections options were for the Python user lately. A quick "google" produced the following:

Python DB-API (http://www.python.org/dev/peps/pep-0249/) adaptors

  1. InformixDB http://informixdb.sourceforge.net/ The original DBAPI compliant database adaptor that wraps the Informix CliSDK. BSD License.
  2. ibm-db http://code.google.com/p/ibm-db/ IBM sponsored connector that provides Python, Django and SQLAlchemy support for IBM DB2 and Informix. Connects via the IBM DataServer component. Apache 2.0 License.
  3. mxODBC http://www.egenix.com/products/python/mxODBC/ Provides an interface to databases via an ODBC interface so supports Informix via Informix CLiSDK. Commerical License.

I have used both items 1 & 3 and they do work very well. Haven't used ibm-db as our sites normally only have CliSDK installed not IBM DataServer.

My preferred combination for Python Informix database access is using InformixDB in conjunction with SQLAlchemy.  SQLAlchemy allows me to choose how abstracted I want to be with my database, allowing direct SQL thru to utilizing an ORM.

Saturday, January 22, 2011

I finally own a smartphone, and it's not an iPhone

After years of being an outcast amongst my colleagues, happy with a simple mobile phone that just made phone calls, I made the decision to upgrade to a smartphone. Why would I, since I was actually happy with my "no frills" Nokia and it's excellent battery life which makes a smartphone look retarded. At work we are working on making our web applications more mobile friendly, so we needed a range of smartphones to get a "real" feel of usability and performance, especially when utilising HTML bells and whistles.

Since a MacBook Pro is my development platform of choice (with VMWare Fusion allowing me to use Linux and Windows whenever I want to), and that I am a happy iPad user, it would be assumed that I would get an iPhone. Since there was already a glut of iPhones and Blackberries amongst my co-workers, and I have been envious of my Google friends and their Android phones. So a "droid" shopping I went. So what did I get - a powerful HTC or Samsung Galaxy, import a Nexus S? No, I purchased an affordable (AUD299), middle of the range Motorola XT5 running Android Eclair 2.1 Why? As I said previously, we wanted to test "real" usability and performance, and the majority of our users who had Andriod phones would not be running 2.2/2.3 or have the latest 1 GHz processors. As developers we need to remember that our users do not always have the luxury of upgrading when the next great piece of hardware and/or software arrives, and we need to ensure our applications perform well on a wide range of platforms. Certainly we should the extra capabilities of the latest devices, but also ensure a good experience for those users without the extras.

To-date I am very happy with performance of my XT5 and Eclair functionality. Now if I can stop writing little python scripts that do things on my phone, I can get back to testing the application performance.