Sunday, July 14, 2013

My latest programming challenge - Android

Every year I try to learn at least one more programming language or technology. At the moment, discovering the high's and low's of Android development. Everything was going well and then upgraded to Android Studio 0.2. So after modifying my glade.build file so that that the section is equivalent to:
dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
        .... additional classpath's
    }

due to Android Studio 0.2 supporting gradle 0.5.0 or latter, and the previous version of Android Studio using gradle 0.4. I was confronted with this error:
Gradle: 
FAILURE: Could not determine which tasks to execute.
* What went wrong:
Task 'assemble' not found in root project 'XXXXXXXXProject'.
* Try:
Run gradle tasks to get a list of available tasks.

This is due to the earlier Android Studio creating a misconfigured the IDEA file (e.g. the .iml file) where an extra <component name="FacetManager"> XML element is added. The solution is to edit the .iml file and remove the element.

Thursday, March 08, 2012

I am speaking at IIUG 2012 about using Python with Informix

The 2012 IIUG (International Informix User Group) conference will be in San Diego, California from April 22 - 25 2012. All three of my talk proposals have been accepted, and one of these is about using Python with Informix. As well as preparing my presentation, I have been working on a number of Python Open Source projects either adding or improving their support for Informix access. So hopefully around the time of the conference I will be able to release a more complete django-informix and support for Informix in Gerald, a database schema comparison tool.

The abstract of my Python talk is as follows:

Add a Python to your Informix programming toolbox

Python is an open-source, dynamically typed, object-oriented programming
language. It offers an easy learning curve and access to a vast array of libraries
including Informix database access. With implementations available for most
operating systems as well as the versions that run under the Java and .NET
virtual machines, you can add Python to your Informix database administration
and application programming toolbox. The presentation will give an overview of
the Python programming language, discuss the Python DBI and the libraries that
allow access to Informix databases.


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.

Friday, September 03, 2010

SyPy Meetup - CoffeeScript & Test Driven Development

Last night was the September gathering of the Sydney Python Users Group.

The meeting started with a lightning talk about CoffeeScript (http://jashkenas.github.com/coffee-script/) which is a little language that compiles into Javascript. CoffeeScript borrows some of it's syntax from Ruby, Haml and Python. The javascript it generates uses only the good parts.

Then Vaughan Allan (@vornstar) gave a presentation on TDD with Python. It was a good introduction of what TDD is and the benefits. Slides are here. Dylan Jay followed this with a case study on how he used TDD for Google App Engine project. Q&A became a vibrant discussion about the pros and cons of TDD, best practices etc which proved to me how valuable the monthly meetups are.

Thanks to Google for the venue, food and drink.

Thursday, June 17, 2010

Malaysian Open Source Conference 2010

In Kuala Lumpur, Malaysia from June 29 - July 1 there will be the second Malaysian Open Source Conference. This conference is organised and run by OSDC.my. The conference has three tracks:
  • Business - Presentations to introduce Government and Business to Open Source.
  • Developer - Modelled on OSDC, presentations by Open Source developers for developers.
  • Community - Presentations for users of Open Source software.
There are also tutorials, BOF's and user group meetups. The tentative schedule can be viewed here.

The Open Source community continues to grow in Malaysia, and last year's conference was excellent, so I have no hesitation in recommending this event.

Tuesday, May 12, 2009

MSC Malaysia OSCONF 2009

In Kuala Lumpur, Malaysia from May 31 - June 3 there will be the inaugural MSC Malaysia OSCONF. This conference is designed to bring together Government, Business, Open Source Developer and User communities to showcase and expand Open Source's contribution to the IT industry and socio-economy. The conference program consists of a one day hackathon, followed by the three day main conference. The main conference has three tracks:
  • Executive Download - Panels and presentations to introduce Government and Business to Open Source.
  • Developer - Modelled on OSDC, presentations by Open Source developers for developers.
  • Community - Presentations for users of Open Source software.
The tentative schedule can be viewed here. There is a broad range of international and Malaysian speakers.

As a developer who spends some time each year in Malaysia, and has seen some of the interesting things the Open Source community is doing there, I would recommend this event as a great reason to visit Malaysia.

Tuesday, September 30, 2008

OSDC 2008 Earlybird Registration is now open!

Earlybird Registration for The Open Source Developers' Conference 2008 is now open.

OSDC 2008 is a conference run by open source developers, for developers and business people. It covers numerous programming languages across a rangeof operating systems, and related topics such as business processes, licensing, and strategy. Talks vary from introductory pieces through to the deeply technical. This year we have an exciting selection of presenters andkeynote speakers including:

* Larry Wall, the creator of Perl
* Chris DiBona, Open Source Progams Manager for Google
* Andrew Tridgell, Founder, Samba Team
* Anthony Baxter, Python Evangelist
* Pia Waugh, Consultant, Waugh Partners

Check out the draft program: http://www.osdc.com.au/2008/papers/

Please visit http://www.osdc.com.au/2008/registration/ to register.
Earlybird registration closes 27th October, 2008.

For more information about this event, please visit: http://www.osdc.com.au/.

Thursday, May 15, 2008

OSDC 2008 - Sydney - Call for Papers

The Open Source Developers' Conference 2008 is a conference run by open source developers, for developers and business people. It covers numerous programming languages across a range of operating systems, and related topics such as business processes, licensing, and strategy. Talks vary from introductory pieces through to the deeply technical. It is a great opportunity to meet, share, and learn with like-minded individuals.

This year, the conference will be held in Sydney, Australia during
the first week of December (1st - 5th). If you are an Open Source
maintainer, developer or user, the organising committee would
encourage you to submit a talk proposal on open source tools,
solutions, languages or technologies you are working with.

For more details and to submit your proposal(s), goto:
http://osdc.com.au/2008/papers/cfp.html

If you have any questions or require assistance with your
submission, please don't hesitate to ask!

We recognise the importance of Open Source
in providing a medium for collaboration between individuals,
researchers, business and government. In recognition of this and
ensure a high standard of presentations, we intend to peer-review
all submitted papers.

OSDC 2008 Sydney (Australia) - Key Program Dates:

30 Jun - Initial proposals (short abstract) due
21 Jul - Proposal acceptance
15 Sep - Accepted paper submissions
13 Oct - Reviews completed
27 Oct - Final paper submission cutoff

For all information, contacts and updates, see the OSDC conference
web site at http://osdc.com.au/2008/

Also if you are interested in sponsoring, please see:
http://www.osdc.com.au/2008/sponsors/opportunities.html

OSDC 2006

Friday, March 07, 2008

Silverlight 2 SDK, Mac OS X and Mono

John Lam has posted two introductory articles [1],[2] that use the Dynamic Silverlight SDK . It came as no surprise that only Microsoft operating systems are officially supported for the SDK. So after downloading and installing it onto a VMWare image running one of the supported operating systems, I decided to try installing it on my Macbook Pro. I copied the SDK directory structure across, installed the Mono 1.2.6 for OSX, and John's demos. Then in a terminal session, started chirod, the SDK local web server in the flickr_start root directory.

mono ~/Silverlight/v2.0/Tools/Chiron/Chiron.exe /b

and was presented with the following:

Microsoft(R) Silverlight(TM) Development Utility. Version 1.0.0.0
Copyright (c) Microsoft Corporation. All rights reserved.

Chiron serving '/Users/mark/swdev/demos/flickr_start' as http://localhost:2060/
mono(2077,0xa000d000) malloc: *** Deallocation of a pointer not malloced: 0x14f5b4; This could be a double free(), or free() called with the middle of an allocated block; Try setting environment variable MallocHelp to see tools to help debug
23:44:00 200 2,340 /index.html
23:44:00 200 2,397 /assets/stylesheets/error.css
23:44:01 200 552,610 /app.xap


The error didn't affect the functionality of the Silverlight demo.



I then tried the flickr_end demo and discovered what error messages look like under the SDK environment.



This error also occurs under Windows so it would appear that John is using a newer version of Silverlight 2 and/or IronPython that handles the line of python code.

Anyway it looks like I will be able to use my Mac environment for Dynamic Silverlight development.

Monday, February 04, 2008

Google Code SVN interface improvements

I use Google Code Project Hosting for a number of my open source projects. It gave me a common place to store my code under subversion and the integrated wiki allowed easy creation of on-line documentation. The web interface to subversion was rather limited only showing the current version of the repository. So I have tended to use the subversion tools on my computer for viewing revisions etc. In the last couple of weeks I have been working on a new release of my ISAPI handler for WSGI (isapi_wsgi) and was surprised this morning to see the SVN web interface has changed dramatically and for the better.

Now when you access the subversion repository via the Source tab, you goto the Checkout view. This initially looks like the old view, until you notice that the Browse link has moved to a sub-menu and there is a new Changes link. If you select the Browse link, an explorer style interface is displayed. From this you can navigate around the repository. If you select a file, it is displayed with the code syntax coloured, with panels for the details of the last change, revision history and file info. This is a massive improvement over what was there before. Selecting the Changes link shows a view of the revision history. Viewing a revision allows access to either a nice colour diff view or side by side view.

So a big thank you to the Google Code Project hosting team for the improvements.

Wednesday, November 28, 2007

My OSDC 2007 talks

Today I gave my two talks at OSDC.

This morning I gave a talk on web testing using twill and selenium remote control. A pdf of the slides can be downloaded:

Testing Web Applications with Scripting Languages

And this afternoon I spoke about Moonlight, the Mono implementation of Silverlight.

Moonlight - Shiny, Pretty Things with XML?

I had intended to blog about the various OSDC sessions I have attended, but thanks to the lazy web, Alan Green has already done it for me

Wednesday, October 31, 2007

A sneak peek at mod_wsgi 1.2

Errata: Opps, the title should be "A sneak peek at mod_wsgi 2.0"

Today Graham Dumpleton announced the first release candidate of mod_wsgi 2.0. mod_wsgi is a simple to use Apache module which can host any Python application which supports the Python WSGI interface. The new features added are:
  • 'Process' option for WSGIReloadMechanism to make it easier to restart an application running in a mod_wsgi daemon process when code changes are made. When this option is enabled, you only need to touch the WSGI script file and the application to be reloaded.
  • Ability to hook into the Apache 2.2 auth provider mechanism
  • Support for Python virtual environments
  • Provision of hooks to be able to work with the internal Apache APIs.
Read the changes document for more information.

If you are in Sydney, Australia on Thursday 1 October you could find out more by attending the SyPy meetup where Graham will be talking about mod_wsgi. Details can be found here.