Corran Webster

Code

I’ve been writing code since I was a teenager, but since I discovered Python, I’ve used it in most of my projects. I occasionally write in C or JavaScript where it is called for. In the dark and distant past, I’ve coded in Pascal, HyperTalk and various dialects of Basic.

Projects

TraitsUI and Pyface (2014)

Python library

TraitsUI and Pyface are rapid GUI application development libraries for Python built on top of Traits. The libraries can use PySide, PyQt or WxPython as the underlying GUI toolkit.

NanoHack! (2011)

JavaScript mini-game

From BoingBoing came TinyHack, a world of adventure in 81 pixels! Now experience NanoHack: the same world of adventure but in HTML5 and JavaScript!

W Widgets Documentation (2005)

Python library documenation

W Widgets was a GUI toolkit for Python on the Mac classic OS written by Just van Rossum. It was used to implement the IDE for MacPython back in the 1.x and early 2.x days.

I would have said that this was of little use 20 years later, but in early 2023 I saw a Mastodon client written using W Widgets, so presumably there is still a (likely very small) audience for this!

Presentations

Interactive Visualization Widgets Using Chaco and Enable - SciPy 2012, Austin - 2012-07-19

Interactivity is an important part of computer visualization of data, but all too often the user interfaces to control the visualization are far from optimal. This talk will show how you can use the Enable and the Chaco to build interactive visualization widgets which give much better user feedback than sliders or text fields.

Chaco is an open-source interactive 2D plotting library that is part of the Enthought tool-suite, which is in turn built upon the Enable interactive 2D drawing library that are compatible with PyQt, WxPython, Pyglet and VTK. These libraries are written in Python and are key tools that Enthought uses to deliver scientific applications to our clients.

This talk will show how to use these tools to build UI widgets that can be used to control visualizations interactively. Rather than building a complex, monolithic control, the approach that we will demonstrate builds the control our of many smaller interactions, each controlling a small piece of the overall state of a visualization, with a high level of reusability.

As a simple but useful case-study, we'll show how we built an interactive histogram widget that can be use to adjust the brightness, contrast, gamma and other attributes of an image in real-time. We'll also discuss some of the tricks we used to keep the user interactions responsive in the face of having to visualize larger images.

Introduction to Traits - PyCon 2010, Atlanta - 2010-02-17

The Traits project allows you to simply add validation, initialization, delegation, notification and a graphical user interface to Python object attributes. In this tutorial we will explore the Traits toolset and learn how to dramatically reduce the amount of boilerplate code you write, do rapid GUI application development, and understand the ideas which underly other parts of the Enthought Tool Suite (such as Mayavi and Chaco plotting toolkits).