House The Homeless /2012
I volunteered my time to work with the London based homeless charity GrowTH. The result was a web application that enabled various independant organisations to work together to house people in a far quicker, more efficient and secure way. A large motivation for the project was to reduce the paperwork overhead and allow easy collection of vital statistics that enable the charity to secure funding.
The application is built using Clojure and App Engine.
After picking up Emacs and learning some Lisp along the way, I begun exploring Scheme, Common Lisp and Clojure. My first Clojure project is a simple hexadecimal guessing game called WhatTheHex.
You'll find it on Github at github.com/schallis/whatthehex.clj
I co-created Paint.ly with the aim of making mobile art social. We built the site from the ground up to work with the devices people are creating art on - tablet computers and mobile phones. We want the people who are driving the digital art revolution to have a place where they can share their work, as well as enjoying the work of their peers. Paint.ly was built using Python, Django, MongoDB (with GridFS for storage), Lamson and HTML5.
MongoEngine is a Document-Object Mapper (think ORM, but for document databases) for working with MongoDB from Python. It uses a simple declarative API, similar to the Django ORM. I contributed the following:
- FileField for storing arbitrary files and metadata in GridFS
- GridFSStorage Django storage backend
- Various bits of documentation
- Web design for mongoengine.org
Final Year Project /2010
During my final year at Leeds University, I undertook a research project in visualisation. My goal was to replicate and verify the results of a 2009 paper by Banks and Beason which introduced a new method for lighting isosurfaces. This new technique allowed for realtime precomputed global illumination (ray traced) by utilising 4D light transport.
The project involved implementing many visualisation algorithms such as Marching Cubes, Shepard Interpolation and an isometric ray tracer. I successfully evaluated the new method and the final paper is available here. I also wrote about the project in this series of journal posts. The code for this project was open-sourced on GitHub and was also used to create these set of album covers for a Japanese indie band.
django-mumblr (or Mumblr) is an open-source blogging application developed to demonstrate integration of Django with MongoDB via the MongoEngine ‘ORM’. I developed Mumblr in collaboration with Harry Marr and also designed the default theme.
Find it on Github at github.com/schallis/django-mumblr
It is often useful to keep code snippets and instructions whenever you solve a problem, particularly if the details were important. Snippets.org is a collection of such pieces of code that have been and will continue to be collected over a period of years in a systems administration and software development context.
It is my hope that this file will evolve and provoke discussion as it is shared so that it may enhance the toolbox of whomever chooses to read it.
Whilst this file can be enjoyed and edited using any text editor, a suitable Emacs setup will expose all interactive elements and enhance its usefulness.
Find it on Github at github.com/schallis/snippets.org
Small bash functions and bookmarklets that I've developed will sometimes be put up on Github as Gists. Current ones include:
- A script to download NASA's Astronomy picture of the day
- A Portable bash function to list process hierarchies
- A quick command-line telephone directory search
- A geoIP bookmarklet
Find them on Github Gists at gist.github.com/schallis/
SpyreCMS is and Content Management Framework we built at Traction Digital to satisfy our clients' needs. It sits upon Spyre – a bespoke WSGI-compliant web framework which we also built.
The aim of Spyre was to make content editing as intuitive as possible to non-technical users whilst retaining the customisation posibilities of other CMSs. We achieved this through a neat widget and plugin architecture which packaged dynamic bits of code into special modules which the user could manipulate via a drag-and-drop/WYSIWYG interface.
Web Design & Development /2007-Present
Through my work at Traction Digital and as a freelancer, I have designed and developed a wide range of websites. My focus is on typography and usability rather that pure graphic design. Examples can be browsed over at Traction Digital.