Talks in 2012

Application of Python in Google App Engine for Transportation Partnership (Edmund Chan)

The places and distance data in Google Maps presents an interesting opportunity for companies to identify new business opportunities, outsource deliveries, or partner companies on different delivery routes. To enable this capability, a web application was developed for a large MNC to identify partners for long delivery routes with spare truck capacity. Possible partners for new businesses outsource deliveries or partner on routes were analysed using current route distance, and synergized delivery distance approach. Further application of this web application includes mapping delivery routes for multiple vehicles on different days for delivery streamlining opportunities. Demographic information can also be over-laid with location information for product/outlet performance measurement. More ideas and application development capabilities are sought. The programming language used in this application is Python. Google Map web services and some light HTML were also used in this web application, along with Google App Engine’s high replication database on email alerts.

Choice of one or more category tag : transportation, Google Maps, Google App Engine
Level : Beginner / Intermediate
Speaker Profile : Senior Manager, Centre of Innovation for Supply Chain Management, Republic Polytechnic

A Facets Trilogy : The Tool Framework, Animation System and MongoDB OML (David C. Morrill)

Facets is a model-driven reactive programming environment for Python which provides a number of interesting component subsytems and layers. In this extended presentation we'll be focusing on three specific parts of the Facets package : The Tool Framework, The Animation System, The MongoDB OML.

The Tool Framework : The Facets tool framework provides a form of "dataflow programming" with an interesting twist. In many dataflow programming environments, the user creates boxes representing processes or computations and connects them with arrows that show the flow of data from one box to another. The resulting abstract network defines a new process, component or tool whose effects are usually viewed separately from the dataflow itself. The Facets tool framework takes a similar approach but instead of connecting abstract black box components, the user adds a series of visual UI components or "tools" and connects them using "invisible" wires to create a new composite tool. The component tools and connections are always live, so the user works in a WYSIWYG environment where the dataflow IS the tool being constructed. The tool framework also has the property that the user can "freeze" the current set of components and connections at any time to create a stand-alone Python module, making it easy to share tools with other users if desired. In this portion of the talk we'll explore the Facets tool framework by building several composite tools interactively and then exporting the resulting tools as stand-alone Python modules that can be invoked from the command line.

The Animation System : Facets defines a programming environment where components or models react to changes in their own state or in the state of other models. The animation system extends this core capability by providing a simple and uniform mechanism for programmatically changing one or more parts of any model's state over time. Taken together, Facets reactive and animation capabilities form a potent means for creating more responsive and friendly user interfaces. In this part of the talk we'll focus on the low-level mechanisms Facets provides for animating object state, such as animate_facet, Paths and Tweeners, and follow that up with some simple examples and demos of the animation system in action using the tool framework.

The MongoDB OML: The Facets reactive programming environment is a system for creating highly interactive model-driven applications. MongoDB is one of the most popular of the new generation of "document centric" NoSQL databases. The Facets MongoDB OML (Object Mapping Layer) is their beautiful love child which provides a nearly transparent mapping of the Facets model-centric programming style onto a document-centric MongoDB database. In this final section of the talk we'll start by briefly discussing the model-based Facets programming style and the minimal set of extensions that the MongoDB OML adds to that. From there we'll continue with a more concrete discussion of using the MongoDB OML for a simple document indexing application consisting of a command line tool for indexing documents and adding them to a MongoDB database, and a GUI tool for interactively using the index data stored in the database. We'll then finish up with a quick demonstration using both the command line and GUI tools for interacting with the document index database. Familiarity with MongoDB is not a prerequisite for understanding this portion of the talk.

Choice of one or more category tags : Programming Tools, GUI Programming
Level : Intermediate
Speaker Profile : David has been using Python professionally for over 11 years, mainly in the areas of creating GUI tool frameworks, scientific and network security applications and web/database programming. Currently he spends most of his time working on the Facets reactive programming environment, more information for which can be found at http://dmorrill.com/facets/users_guide.

Bento, A Pythonic Packaging System for Python Software (David Cournapeau)

Packaging has become a sore point within the python community for some time. While distutils and its derivative such as setuptools and distribute have been a tremendous improvement over the previous state of python packaging, they are somewhat too inflexible, and not built with extensibility in mind. They are also difficult to integrate with most native packaging solutions (linux rpm and deb distribution format, etc...). Bento (’lunchbox’ in Japanese) is a packaging solution designed to solve those issues. Bento is already used as an official alternative build system for packages such as NumPy, SciPy and scikits image. I will first make a quick summary of the current packaging landscape in the python ecosystem, and give a few use cases that highlight their limitations. I will describe the main features of Bento. Each of the presented features will be done through actual code examples, which will be available throughout the presentation. The presented features will be:

  • declarative package description: basic syntax, simple and flexible addition of data files, extra distribution files
  • command line interface
  • extensibility through hook file: how to create new command in 3 lines of code, integration with 3rd-party build tools
  • interoperability and conversion: converting setup.py to bento format, integration with pip, easy_install and virtualenv
  • making your life easier with package metadata templates


I will highlight a few advanced bento use cases from the NumPy bento scripts:

  • complex C extensions integration
  • using a 3rd-party build tool for parallel compilation and reliable partial builds


Bento code may be found on github:


Choice of one or more category tag : Packaging
Level : Intermediate
Speaker Profile : David Cournapeau is currently working as a scientific software engineer at Enthought Ltd in Cambridge, UK. He was formerly working for Silveregg, Japan, a company specialized in web-recommendation in the Japanese market. David Cournapeau has been using python for more than 7 years, especially in the areas of machine learning and general scientific programming. He is one of the core contributor to NumPy and SciPy, and started what would become the scikits-learn package.

Comparison of Python Web Application Frameworks (Senthil Kumaran)

This talk is a run through comparison of various web application frameworks such a Pyramid, Django, web2py, web.py, Flask. Why these exists and what differentiates these. What are common underlying architecture between these frameworks. How is community structured and major web applications deployed in the real world.

Choice of one or more category tag : Web applications
Level : Intermediate
Speaker Profile : Software Developer

Computational Neuroscience in Python (Alexandre Gravier)

This talk relates to my recent research work in computational neuroscience using Python. I show some of the tools currently available to build simulations of networks of biological neurons with Python, in comparison to other simulators where modeling and simulation are done by other means than Python code. I present my work on creating a cognitive-level computational task development framework (PyCogMo) that is built upon existing Python scientific libraries (PyNN, SimPy) and aims at addressing some of their limitations. In particular, current Python tools do not allow for the simulation of long tasks that involve several stages of learning and testing. I show how PyCogMo remedies to this, highlight some interesting implementation details, and give short practical examples of models developed using PyCogMo. If time allows, I conclude by reiterating the principles of scientific inquiry and the reasons why open platforms and interoperable technologies are necessary to scientific progress, and why Python could be its lingua franca.

Choice of one or more category tag: Python in Science; Scientific Python Libraries
Level : Intermediate
Speaker Profile : Software engineer interested in intelligent systems, modeling, simulation, philosophy. Master's in AI, experience in robotics at LAAS/CNRS and SWE at Google. Now doing PhD in NTU, Singapore. One year of Python 2 experience. The PyCogMo framework, that I present in this talk, is my first Python project. Past programming experience includes Common Lisp, Java, Clojure, Objective Caml.

Developing Python Applications and Analyzing Big Data in the Cloud (Chris Boesch)

As a university professor and professional trainer, I frequently teach people using a variety of hardware systems and operating systems. When teaching a class of 40+ individuals, at least one participant will usually have issues configuring their systems with the appropriate drivers, runtimes or libraries to perform the tasks for the session. Because of this, I increasingly have students develop applications and work through data analysis assignments completely in the cloud using platforms such as CoderBuddy and PiCloud. These two platforms provide students with most of the tools the they need to build and deploy applications, and to analyze data in the cloud with no need to locally install software. In this talk, I will walk through a few examples of labs that students work through and share examples of the code, applications, and analysis that result.

Level : Beginner
Speaker Profile : Associate Professor of Information Systems (Practice) at Singapore Management University

FOSSEE: Pythonizing the Indian Engineering Education (Primal Pappachan and Parth Buch)

Promoting FOSS (Free and Open Source Software), for Scientific and Engineering education is the main objective of the Free and Open source Software in Engineering and Education(FOSSEE) project at IIT Bombay. The Python team at IIT Bombay, advocates the use of Python, one of the major FOSS tools which is very popular and also easily available. The long term goal is to see Python as a widely used programming language and also as a part of the curriculum at various institutes and universities across India. The major projects undertaken by FOSSEE python team towards this goal include: (1) Software Development for Engineers and Scientists(SDES) - A one semester course aimed at non-computer science students with contents based on FOSS tools suchs as Bash, Python, (2) Spoken Tutorial(ST)s - Short screen-casts which can be used for self learning. (3) Textbook Companion Project - The aim of the project is to create a repository of reference material in the form of solved problems for Scientific Computing with Open Source tools. This talk will brief about various achievements, difficulties faced and the future goals of the Project. A detailed description about various projects can be seen in this presentation.

Choice of one or more category tag : Education
Level : Beginner
Speaker Profile : Primal Pappachan, Research Assistant in FOSSEE Project at IIT Bombay Parth Buch, Research Assistant in FOSSEE Project at IIT Bombay

Fun with Iterators and Generators (Malcolm Tredinnick)

Custom iterators and generators are often an under-appreciated and not particularly well understood area of Python. This talk will give an idea of some useful applications of these two related areas.

Level : Beginner to Intermediate
Speaker Profile : Malcolm is a software developer, a member of the Python Software Foundation and a core developer at Django.

Functional programming in Python for the Uninitiated (Gavin Bong)

Although Python is not a functional programming language per se, one can program “functionally” by using core language constructs with the help of the functools & itertools modules. The goal of this talk to introduce functional programming (henceforth referred to as FP) concepts and map them to Python. Functions as first class objects is the most fundamental property for an FP language. Without delving too much into the mathematical theory, we will dive first into closures and anonymous functions. And Python with lexical closures support (despite its crippled lambdas) fits snugly in the FP camp. Next we discuss the difference between partial & total functions and investigate function currying. This will segue into the topic of higher order functions. The bread and butter data structure for FP languages is the sequence. We learn how sequences are functionally manipulated and how Python stacks up in this area. We discuss lazy sequences, immutability and tail recursion optimization.

Choice of one or more category tag : Functional Programming, Functions, Haskell
Level : Beginner
Speaker Profile : I have a decade of experience in the IT industry. Languages I have worked with in my career: C, C++, Perl, Java, Javascript, Python.

‘FUSE'ing Python for Rapid Development of Storage Efficient File-System (Chetan Giridhar, Vishal Kanaujia)

Contrary to classical kernel residing file-systems in *NIX, FUSE is an API to develop file systems in user space. This talk details internals of FUSE, developing your own file-system with Python-FUSE, followed by creative application of Python-FUSE based file system. File system is a core element of a computer system. Traditionally, file-systems reside in the kernel space and have been a territory of kernel developers. That resulted in development of file systems complex, time-consuming and error-prone. Python-FUSE allows developers to implement a file system in user space, efficiently and rapidly with simple-to-use Python-FUSE bindings. This talk focuses on ‘FUSE’ing Python to write your own storage efficient file-system.

Speaker Profile : Chetan is Python developer and Tech enthusiast. He has delivered talks on Python programming at international conferences like PyCon India, SciPy India 2011 and in research institutes at Bangalore. Chetan has written articles on Agile development model and on Python in international magazines such as Agilerecord, Linux For You. He has been a core developer at Open Source Projects in Python.

Vishal Kanaujia is a Python developer and technology enthusiast. He has delivered talks and written articles on Python. He was a speaker at Pycon India, 2011 and SciPy, India 2011. Vishal has extensive experience with system software including Linux kernel, file systems, compiler optimization, profling, and dynamic performance analysis. He shares his thoughts, opinion and knowledge through blog (http://freethreads.wordpress.com), technical papers, and articles with international magazines including ‘Linux for You’ and ‘Agile Record’.

High-Speed Data Shredding using Python (David Leong & Eugene Yeo)

In recent years, backup, restore and data migration are common topics found in data storage. However, there’s hardly anybody mention about safe data deletion. Although current Linux utility tools gives most users more than enough security and data protections, we had developed a cross-platform standalone application that could expunge all confidential data stored in flash drive or hard disk. The data shredding software is written in Python, and it could overwrite existing data using user-defined wipe algorithm, which includes a selection of military-grade procedures proposed by information security specialists. The application operates with no limitations to the capacity of the storage media connected to the computer system, it can rapidly and securely erase any magnetic mediums or solid-state memories found in the computer or embedded system. Not only does the software comply with the IEEE T10/T13 specifications, it also binds to the number of connectivity limited by the SAS/SATA buses.

Choice of one or more category tag : IT Security Application, GUI & Systems Programming
Level : Intermediate
Speaker Profile : Academic Staff & Student from School of Infocomm, Republic Polytechnic

Machine Learning for Computer Vision Applications (Tran Duc-Hieu)

A Computer Vision (CV) application is a combination of many research domains such as Image Processing, Imaging, Statistics, Mathematics, etc. Almost talks about CV libraries in Python focus on the techniques of Image Processing and Imaging (i.e., how to retrieve images from a camera, how to apply Image Processing operators such as blurring, morphological operators, etc.) This talk focuses on the Artificial Intelligence (AI) domain of a CV application and it contains two main parts. The rst part briefly introduces Machine Learning (ML) algorithms and their important roles in modern AI, especially in CV. This part provides an intuitive understanding of ML: what it is, how it works, etc. A short introduction to CV libraries in Python, such as OpenCV and pygame, is also presented. The second part of the talk introduces several popular ML libraries in Python, such as scikit-learn and mlpy, and how to apply them to CV. This part also demonstrates how to integrate vision features, such as object edges and colors, to a ML algorithm to form a CV framework. Finally, the talk shows some CV applications, such as Object Recognition or Human Action Recognition in video sequences.

Choice of one or more category tag : Python Libraries and Extensions, Scientific Applications, Python in Education, Science and Maths.
Level : Intermediate.
Speaker Profile : PhD candidate in Computer Vision at Nanyang Technological University, Singapore

Maps of Imaginary Lands (Malcolm Tredinnick)

How to create maps of fictional places, or alternate maps of real places and display them on the web (or otherwise) using Python. A tour through the various layers of the mapping stack from data creation to serving map tiles to browsing around an area.

Level : Beginner to Intermediate
Speaker Profile : Malcolm is a software developer, a member of the Python Software Foundation and a core developer at Django.

MongoDB with Python (Mathias Stearn)

MongoDB -- from "humongous" -- is an open source, NoSQL, document-oriented database. Trading off a few traditional features of databases (notably joins and transactions) in order to achieve much better performance, MongoDB is fast, scalable, and designed for web development. The goal of the MongoDB project is to bridge the gap between key-value stores (which are fast and highly scalable) and traditional RDBMS systems (which provide rich queries and deep functionality). In this talk, we'll provide a brief introduction to working with MongoDB and Python. This talk will cover the basics from installing pymongo and connecting to mongod to creating, inserting, querying for, and updating documents. We will also briefly touch on aggregation, geospatial indexes, GridFS and running database commands.

Choice of one or more category tag : MongoDB, MySQL, databases
Level : Intermediate
Speaker Profile : Mathias Stearn (mathias@10gen.com) is a Software Engineer at 10gen, the MongoDB company. He works on the core MongoDB server and maintains the C++ language driver. Previously, he worked at FactSet where he used MongoDB in a log analysis application. He has a degree in Computer Science from the University of Maryland.

Personalized Digital Diary & Assistance Application using Scripting Layer for Android (SL4A) (Aung Aung Phyo Wai)

Due to growing aging population and changing life style in urban environment, old folks may go out alone and face difficulties unaware of their family while they are outside of their home. So, continuous and automated observation is important to ensure safety of such elderly all the time. With widespread availability of gadgets like smart phone, those requirements can be fulfilled. Especially, the growing use of Android-based smart phone empowered developers to implement various health monitoring and well-being management applications leveraging on available sensing, processing and actuation functionalities. We demonstrate the use of Python for Android (Py4A) with Scripting Layer forAndroid (SL4A) to develop application for recording image diary and monitoring safety of users using Android smart phone. In this talk, we illustrate how information from various sensors can be acquired to monitor and track user’s location and situation as well as interact with user through multimodal user interfaces. Moreover, we present how simple and easy with Python for developing personal digital diary by uploading taken photos periodically to Facebook as well as in-situ assistance by making automated phone call or sending SMS to their family members or care givers.

Choice of one or more category tag : Business & Scientific Applications
Difficulty Level : Beginner
Speaker Profile : Senior Research Engineer, Institute for Infocomm Research (A*STAR)

Python and Side Effects Houdini (Nelson Lim)

Python has gained much popularity and inroads in the Visual Effects and Computer Graphics Industry over the years. There is a definite trend of major visual effects and animation tools moving towards python as the preferred scripting language of choice. Side Effects Houdini is fast becoming the most popular tool amongst Effects and Simulations Technical Directors in the industry to create particles, explosions, dust and fluid effects. It's node base workflow, Digital Asset Technology and ease of reuse allows many tasks usually exclusive for programmers to be created by artists. This will be a first look at Python scripting in Houdini. We will be looking at an introduction into Houdini as well as Python's recent history in houdini. We'll explore the different ways in which Python is being used in Houdini as well as the different approaches to Python scripting in Houdini. Finally we'll work on a simple example to build a Houdini digital asset using Python.

Choice of one or more category tag : Python in VFX
Level : Beginner
Speaker Profile : Assistant Technical Director Industrial Light and Magic (I will be presenting this as an individual and will not be representing my company)

Python DB API for HANA Database (Chanyoung Kwon)

SAP Labs Korea is involved with the creation of a new database. The project name is HANA and the presenter was involved with the Python DB API for the HANA database. Whilst the API is used internally for now, it is expected to be made available world-wide soon. This presentation will include:

  • Introduction of Python DB API 2.0
  • Python code review of HANA Python DB API
  • C-Extension code review of HANA Python DB API
  • What was difficult.

Choice of one or more category tag : Extension
Level : Intermediate
Speaker Profile : Software Engineer / Programmer from Seoul Korea, Working for SAP Labs Korea

Python/Django Web development for PHP Developers (Mohd Kamal Bin Mustafa)

As someone who comes from a PHP background as web developer and now assisting new hires in adapting to Python/Django web development, I’d often see some obstacles for them to grasp the concept and differences between PHP and Python/Django. In this presentation, I’ll try to provide some insight on this differences and subtlety from 2 points of views which are (i) Components and (ii) Execution model
Components

  • Cover parts of the framework that involves:
  • Generating response.
  • Data persistence - Database/Storage/ORM.
  • Input validation - forms handling.
  • Template.
  • Code structure.

Execution model
PHP follow the CGI model where the application is created for each incoming request and then destroyed at the end of request. Python/Django follows an application server model where the application keeps running in long running process and then incoming requests handled by spawning new thread or subprocess. This is one of the hurdles faced by PHP developers where certain concept that were easy in PHP such as the use of $_GLOBALS is not possible in Python.

Choice of one or more category tag : Django, PHP, Apache, CGI, WSGI.
Level : Beginner.
Speaker Profile : Web Developer using PHP/Python, Lead Engineer at Marimore Engineering Sdn. Bhd.

Real Time Web with Tornado Web (Kan Jia)

Python has become the major language of the web and in the web world, people need not only web render, but also perform real time push. WSGI is not ready for realtime. Sites like Facebook, Gmail, Weibo, Kaixin001 are all equipped with realtime push, for chat, notification, etc. Kaixin001 was also called as QQ 2.0 because of its use of real time technology. FriendFeed's tornado has become the engineers' best friends now, in real time web.

Choice of one or more category tag : Real-Time Web Framework
Level : Intermediate
Speaker Profile : VP Engineer of MatchMove Games

Relational Database Access with Python sans ORM (Mark Rees)

For some Python programmers, their only exposure to accessing relational data is via a object relational mapper (ORM). As powerful is the concept of mapping objects to data, sometimes it is much simpler to manipulate your relational data using SQL. This talk will be about using the DB-API, Python’s standard mechanism for accessing relational databases. The talk will discuss the DB-API 2.0 standard (PEP 249), and describe with simple code examples how easy it to use even with a limited knowledge of SQL. This will be followed by a quick review of some of the DB-API implementations for different databases including MySQL, PostgreSQL, Oracle and IBM Informix. The talk will also look at some Python Open Source tools that build on the DB-API and make database manipulation and management a little easier :

  • Gerald - A Python schema comparison tool
  • SQLPython - a command-line interface to relational databases.
  • Spring Python Database Templates

Choice of one or more category tag : Databases, cpython, jython
Level : Beginner / Immediate
Speaker Profile : Over his 25+ years as a programmer, Mark has programmed in many languages, but has the most fun programming in Python which he has been using since 1997 aka Python 1.4. He is a contributor to a number of Python Open Source projects including Informix database adapters for some Python Web frameworks. His current day job is Chief Technology Officer for Century Software (M) Sdn Bhd, a Malaysian software solutions company that uses Python & Open Source software in many of itʼs offerings. He has spoken at a number of Open Source conferences about Python including PyCon APAC 2011.

'Siri' in Python (George Loo)

Speech recognition technology is a branch of Artificial Intelligence (AI) that aims to provide a more natural interface to computer devices. What is more natural than talking to the computer in English and getting a useful response? 'Siri' on the Apple iPhone 4S is a cloud based speech recognizer that has its lineage from the Macintosh 'Casper' speech recognizer pioneered by Dr Kai Fu Lee (Head of Apple Speech Technology Group in the 1990s). This talk will give the audience an insight into speech recognition technology in general, its terminology and theory. Python has all the libraries necessary to make a speech recognition engine. The twin pipelines of user training of such a system and its real-time use will be explained. The pipeline starts from microphone audio capture to DSP processing with numpy, to acoustic and language modelling to response output using python text-to-speech library. Existing Python Speech recognition libraries will also be mentioned. The social implications of such technology will be discussed as well. Speech recognition works well in certain situations where the user understands the capabilities and limitations.

Choice of one or more category tag : Business and Scientific Applications
Level : Beginner
Speaker Profile : Director of R&D, Asia Radio 2000 Pte Ltd. George was a member of the Apple-ISS, Apple R&D centre in Singapore from 1993-1997. They developed the world's first large vocabulary Chinese Dictation system. The Chinese Dictation Kit won the Singapore National Technology Award 1996 and COMDEX (USA) Best of the Show & Best of the Best Awards 1996.

Test Driven Development for Small Django Projects (Martin Brochhaus)

I have created about 10 Django based websites and web applications, almost all of them in a test driven manner. Even though Django provides great facilities to help with test driven development, a new developer will most certainly reach a point where he asks himself: “How do I test this?!”. I will explain:

  • fundamentals of Python’s unittest module
  • how to call the Django test suite
  • how to run all tests continuously on each file save
  • how to structure tests for a medium sized Django project
  • how to create database fixtures for your tests (json files vs. fixtures generated by code)
  • how to use Mock to further isolate test cases
  • how to test various components of a typical Django app, like Models, Forms, Views
  • how to test various common events like rendering of a template, sending of an email, correct redirection of a view, raising of exceptions, existence of context variables, handling of a signal
  • how to write reusable Django apps in a test driven manner
  • how to use Selenium to test your UI
  • how to run your unit tests on Travis CI

I imagine this as a hands on talk where I would gradually explain everything while developing a small Django project, which will use a reusable app which I will host on github and test on Travis CI. I am currently working on a medium sized Django project that faces performance problems when it comes to testing.

Choice of one or more category tag : python, django, TDD, selenium
Level : Beginner, Intermediate
Speaker Profile : Doing web development as a hobby since 1996; Degree in Business Informatics (University of Applied Science, Gergisch Gladbach, Germany); Worked 6 years as C# (.NET) web developer for Corporate Financial Controlling at Bayer AG, Germany; Worked 2 years as Python web developer for ProUnix Germany; Doing freelance web development for worldwide contractors since 2002; Founded web development agency Bitmazk Pte. Ltd. in Singapore in 2011; Expert knowledge as a full stack web developer: Apache, HTML, CSS, JS, MySQL, Python, Django (+ ecosystem), maintainer of django-shop, contributor to django-cms, django-shop, Pelican, Fabric

The Pikos Profiling Toolkit (Simon Jagoe)

The complexity of large software systems can easily mask subtle performance and memory issues. A number of Python utilities, such as cProfile in the standard library, exist to investigate performance problems in Python applications. Memory issues are more difficult to find before they become critical. When faced with memory issues, libraries such as Heapy and Meliae help, but you must know where to look. Heapy is a very good detailed analysis tool if you know where the problem occurs. Mileai also includes statistical memory monitoring functionality. However, it is difficult to apply these utilities when the application consumes several gigabytes of memory, as is often the case in scientific applications. Pikos provides a framework to simplify non-invasive monitoring of long-running processes. Using this framework we can create a full memory-usage profile of a long-running process. This profile points to the area in the application in which a memory leak is present. Such information can guide detailed tools such as Heapy or Mileai to find the actual source of memory consumption. Aims of Pikos are:

  • To provide a tool to identify problematic areas of an application that need improvement.
  • Use functionality provided by existing tools rather than replacing them.
  • Provide effective memory profiling throughout Python

Pikos started as an internal project at Enthought Ltd out of direct need for these tools to solve real problems with scientific software dealing with calculations on large Numpy arrays. Using the profilers and monitoring tools included with Pikos, we were able to solve severe memory leaks caused by inefficient use of Numpy arrays. Future development of Pikos will include making use of existing profiling tools such as cProfile and line_profiler to provide an integrated profiling tool.

Choice of one or more category tag : Python Libraries; Profiling; Memory Profiling
Level : Intermediate
Speaker Profile : Simon Jagoe is a Scientific Software Engineer at Enthought Ltd, UK. He has over four years of Python experience in scientific software fields.

The VIP Shell: A Visual Interactive Python Shell (David C. Morrill)

The VIP Shell is an interesting new Python shell that takes a visual and object-oriented design approach. All interactions with the shell result in the creation of one or more objects: Commands, Results, StdOut, StdErr, Exceptions, etc. Each object has its own visual representation and characteristics. Objects are organized into a history stack, where objects can be hidden, re-shown, moved, deleted and re-executed. The history stack objects also support a "level of detail" concept which allows the amount of information shown for an item to be dialed up or down as desired.

The shell is completely extensible and includes a number of other higher-level items such as Directories, Python source files, and so on. There are even history items which can display arbitrary UI views embedded within the shell. All history items also have contextual tool bars which appear on mouse-over and which can perform tasks such as showing the Python source files implementing a particular Result object for example.

The shell also includes an extensible set of "shell commands" which can be freely intermixed with normal Python code in the same text buffer. An example of a shell command would be "/pp" which "profiles" the following Python code and "prints" the results to a StdOut item that is added to the history stack.

The talk will attempt to highlight many of the most interesting features of the VIPShell described here through a series of interactive demonstrations.

Choice of one or more category tag : Programming Tools, GUI Programming
Level : Intermediate
Speaker Profile : David has been using Python professionally for over 11 years, mainly in the areas of creating GUI tool frameworks, scientific and network security applications and web/database programming. Currently he spends most of his time working on the Facets reactive programming environment, of which the VIP shell is a component, and for which more information can be found at http://dmorrill.com/facets/users_guide.

Using Google App Engine to Back Web Applications (Owen Jones)

Using Python on Google App Engine, you have powerful, scalable infrastructure that can be used to back various web and mobile applications. App Engine provides several distinct advantages, such as Task Queues, the High Replication Datastore, direct access to several APIs and the System Status Dashboard. During this talk I’ll discuss why App Engine is a good choice for hosting modern web applications, how to get started writing an application on App Engine and some of the power features and techniques that you can use while developing on App Engine. I’ll discuss new features that have become available with on App Engine with Python 2.7 and also cover the often miss-understood Datastore and other options for storing data. I’ll also demonstrate the use of task queues for executing background work. I hope that participants will leave with the knowledge and motivation to host their own applications on App Engine.

Choice of one or more category tag : Web Programming
Level : Beginner / Intermediate
Speaker Profile : Customer Solutions Engineer, Google Singapore

Using Open Source Tools (Python based and Others) to Create Computing Instructional Content (Simon Lau)

This talk will present how to use scons (a Python build system) to create computing instructional content as output. Traditionally, preparing instructional content with multiple input materials, like embedded code listing, resizing images, embedded uml diagrams, is very difficult to coordinate. Changes in the input materials like code typos or diagram changes will require multiple steps to consolidate. Version control will be difficult due to the binary nature of the source files. In addition, creating multiple output formats like Word docs, PDF or HTML is problematic due to the need to synchronise content in tandem. Using a build system (scons), together with other open source tools like mercurial, pandoc, Python Image Library (PIL), pygments, plantuml etc. will help overcome these issues. These tools allow a single source in pandoc markdown format to serve as the authoritative source to generate multiple formats like Word, PDF Slides (using beamer), PDF (using latex), HTML Slides (Slidy, DZSlides, or S5) or even EPUB.

Choice of one or more category tag : Education
Level : Beginner
Speaker Profile : Academic Staff at Republic Polytechnic

Vim as a Python IDE (Martin Brochhaus)

When learning a new programming language it is of great help when you have an IDE that provides tools for code completion and intellisense, for quick navigation between files and most importantly for stepping through code with a debugger. For this reason many novice developers rely on full blown IDEs like Visual Studio or Eclipse. These in turn need high end hardware, sometimes high license fees and ideally a dual monitor setup. All this for learning a new language or for changing a few text files for a medium sized Django project. There is a better alternative. I will explain:

  • the basics of the Vim editor
  • how to enhance the .vimrc file in order make life easier for people used to “normal” IDEs
  • how to easily install a handful of plugins that will turn Vim into a full blown IDE
  • how to effectively use these new features (by demonstration)
  • how to set breakpoints in the code and use ipython and ipdb for debugging
  • how to use GNU screen to further boost productivity and even do pair programming

Live demonstration in the terminal will show that Vim can indeed be used by normal humans.

Choice of one or more category tag: vim, IDE, ipdb, ipython, debugging
Level: Beginner
Speaker Profile : Doing web development as a hobby since 1996; Degree in Business Informatics (University of Applied Science, Gergisch Gladbach, Germany); Worked 6 years as C# (.NET) web developer for Corporate Financial Controlling at Bayer AG, Germany; Worked 2 years as Python web developer for ProUnix Germany; Doing freelance web development for worldwide contractors since 2002; Founded web development agency Bitmazk Pte. Ltd. in Singapore in 2011; Expert knowledge as a full stack web developer: Apache, HTML, CSS, JS, MySQL, Python, Django (+ ecosystem), maintainer of django-shop, contributor to django-cms, django-shop, Pelican, Fabric

Website Monitoring with Distributed Messages/Tasks Processing (AMQP & RabbitMQ) on Django (Rahmat Ramadhan Irianto)

The presenter developed a website monitoring app using Django as a web framework and Mongodb as a database engine and using AMQ & RabbitMQ for distributed messages / task processing. Website monitoring provides page change monitoring and notification services to internet users worldwide. Website monitoring will create a change log for the page and alert user by email when it detects a change in the page text. Website monitoring use Advance Message Queue Protocol (RabbitMQ & carrot) for the task scheduling system and the website backend uses an asynchronous tasking process. As we know, Django is synchronous or we usually say blocking. This means each request will not be returned until all processing (e.g., of a view) is complete. It's the expected behavior and usually required in web applications, but there are times when you need tasks to run in the background (immediately, deferred, or periodically) without blocking. In this talk, I will introduce you to :

  • How django can be asynchronous which gives the impression of a web application that finishes a request as soon as possible, even though a task is running in the background,
  • Update the page incrementally using AJAX.
  • Executing tasks asynchronously and using retries to make sure they are completed successfully.
  • Scheduling periodic tasks.
  • Parallel execution and etc

Libraries used : pymongo, carrot (amqp lib), difflib, beautifulsoup, Django-piston and etc
Front-end : Jquery + Ajax
Database : MongoDB

Choice of one or more category tag : Web Programming (Django)
Level : Intermediate
Speaker Profile : Open Source Software Developer using Django & Python ( http://defpy-labs.appspot.com)