I am giving a lecture today at the British Columbia Institute of Technology (BCIT) on data visualization which is pretty cool.
The slides can be found here: Lecture Slides
And some additional resources here: Data Visualization Resources
I am giving a lecture today at the British Columbia Institute of Technology (BCIT) on data visualization which is pretty cool.
The slides can be found here: Lecture Slides
And some additional resources here: Data Visualization Resources
I have always had a passion for design. In my own home I will only eat with certain cutlery and will only drink out of certain glasses. At restaurants I ask for my wine in a rocks glass and I carry with me a small number of fetish items each and every day. And if this is not enough to convince you take a look at the book ends I have been packing around with me since I was a child… I latched onto these things when I was about 5 years old and have had them with me ever since.

What I am trying to speak to is design as a form of innovation. Low cost high performance hardware exists in abundance and despite the fact that there are millions of software developers out there banging out apps almost nobody is breaking new ground in computer science (excluding of course the well funded labs of places like Google and academia). The point I am trying to make is that the only difference between calculator app number one and calculator app number two is the design. The design is what defines the aesthetics, usability and user experience… a major reason why calculator app number one sells over a million copies and calculator app number two never sells fifty.
And when I speak of applying design as an art and craft towards software development I am not just talking about creating nicer graphics or slicker drop-down menus – I puke into my mouth a little bit every time I visit another web 2.0 website that looks like every other one – I am talking about trying to envision new ways that people can interface with these beautiful machines.
With the rise of the touch screen, mobile computing, visual recognition, artificial intelligence and machine learning the possibilities of what can be built are only limited by passion and imagination – as I suppose they always have been – technology has become the hunting ground of the artists and innovators.
Some of my experiments in software with design are as follows. The first is a touch screen lighting control I made for my good friends at Urban Visuals that is used for an installation they built in the Keefer Hotel.


This idea is very early in formation and I hope to have time to develop it further in the future.
The following is a series of photos describing an adult themed children’s book I created for my wife during 2008. I am currently working on another similarly themed project and hope to have the time to complete it soon. I hope you enjoy what you see.





me and you, achoo


dedicated to the woman i love and the donkey inside: christopher erhard luft – december 25/08


it was day like any other, the cars puffed and polluted.


the people slaved, their souls diluted.


from afar and through the air a bird landed without a care.


the bird carried a friend, a rhino-virus that would see the world END!


amongst the people could be heard a dry whining wheeze, lots of coughing and the occasional sneeze.


two young lovers who first kissed on a beach decided it was time to get out of harms reach.


having planned and prepared neither was scared, into the wilderness is where they would dare.


chaos ran rampant, the cities were on fire. they wondered if they would make it… the situation was dire.


they packer their bags and said “fuck the bills it’s just you and me baby, lets head for the hills.”


they set out on their boat passing jellies and whales. they were glad to be afloat as history wrote this tale.


through all of their trials and tribulations they made it. Yahoo! me and you…
(It would appear I am missing a photo…)

ACHOO!

A project I have been working on part-time for the last year has recently been launched. The project involved building an eReader application for Sangari Global Education through a company called 8 Leaf Digital Productions. The basic idea was to take a large body of content, with associated resources, already in existence and deliver this data to eReader tablets with the available content to the user being dictated by access levels. Working with Ryan Nadel from 8 Leaf Digital we designed the system and started down the bumpy road of turning an idea into reality.
The content we had to work with was in the familiar form of books containing chapters. We shifted our thinking a little and tried not to worry about the books and turned chapters into lessons. With this new paradigm we were free to group sets of lessons together in order to create units which were the substitute for the idea of a book.
My role in the project (outside of architecture) was around third party integration, data processing and the construction of a API that the accompanying Android application could communicate with to download various resources. A good friend of mine, Geoff Spears, was brought into the project quite late and did an amazing job of delivering a robust Android application to consume the data – many of the challenges I faced on this project were alleviated by having Geoff join the team.
Throughout the project, as is the case when building anything new, we faced a few challenges and as a result came up with some innovative solutions. I thought this would be a good place to talk about those challenges and their solutions.
The data processing for the Sangari project was originally supposed to be done through a GUI with associations between data packages being made by a human operator. The larger idea being that an administrator could login to the web application, upload some data and then use the tools we built to process that data. There were some issues around communication on the project and when we did finally receive the data to be processed we realized that it was far too complex to be processed by a human and a bulk uploading system had to be implemented. With looming deadlines and a large body of data to process I tried to think about ways in which I could make this task easier on myself.
The JDBC backed paradigm that I had already developed for this project with presented some real challenges when we were faced with late changes to the data model. The number of data objects we had grew by three fold and the idea of writing boiler plate JDBC code for all of these objects made my stomach curl. It is a pain to do this stuff the first time around let alone having to go back and do it all again.
I started looking at the relationships between the data objects we were processing and noticed a pattern. The data could be related in an n-tree type of manner; however, because the project was being developed with what I would call an uber-agile methodology I was trying to make sure we did not have too many constraints in the way we put it together. I wanted to make sure we had the flexibility down the road to make associations across any of the objects and not introduce any duplication.
I broke everything down so that each data object held an individual piece of data. Along with the primary piece of data each table also included a auto generated ID for the primary key and time stamps for when it was created and last updated. This increased the number of objects we were dealing with but it did allow for me to handle each object in a generic manner. All the data was related using join tables which gave me the relational flexibility without data duplication that I was looking for. The real beauty that came out of this was that I was able to write a small set of methods that could handle all these data objects and their relationships regardless of their type.
Without flooding this blog with too much code and still giving you an idea of the type of flexibility this scenario gave me look at the following method I used for inserting a join between two tables. There is more logic around how I decided to make a join happen but this method covers the underlying principle… no matter what data field we were processing I could use the same generic methods to handle the communication with the database. The strings passed in were used for the name of the table and the main data field. The individual IDs were returned form the database after the represented objects were inserted.

As you can see by the following entity relationship diagram the data model I ended up with was moderately complex with only ‘has a’ dependencies. After processing the data for the project this small set of methods I had written inserted approximately 80K separate pieces of data without any errors and a similar set of methods was used for updating and extraction. Although this design could do little to alleviate the complexity of processing the data it did make the job of interacting with the database less tedious and provided me with a lot of flexibility in how I could treat the data as the project evolved.

Another major problem we faced as we plodded forward working on this project revolved around native PDF processing on the Android tablet. There was very little native PDF support on the Android platform and the PDF render time was unacceptably slow. To get around this problem we decided to pre-process the PDFs and turn each page into a PNG. All the meta data normally stored with the PDF for that page, along with extra data created by our process, was included with the PNGs representing a chapter as a JSON file that mapped said PNGs to the relevant data. The resulting group of PNGs and JSON file was then zipped up and delivered to the reader via an API. A multi-threaded downloader on the client allows for a fairly seamless experience when browsing the content. So far the reader has been distributed to 1000+ teachers without any major issues.

The following is a piece I wrote for a second year art class back in University. There is a certain naivety to the piece that brings a smile to my face; regardless, I still think there is something to explore here.
The human understanding of the universe has increased dramatically through out the last 200 years. Art in its current incarnation is a tool that continually eases the shift of paradigms through culture by bringing concepts and issues of importance to the front of the collective consciousness. Throughout the 20th century various art forms, most notably cubism and futurism, have explored objects in relation to time and space. This new way of thinking was brought about by the advent of sequential photography and film. Artists like Picasso and Duchamp used these ideas to change the way humanity understands the universe. Time and space became malleable objects to be manipulated and explored. With the widespread distribution of scientific knowledge and computational power the populace is primed for a paradigm shift in the way it understands the universe. Art will be the catalyst for this shift in thinking, and it will best be induced by exploring an objects relationship with respect to other objects as opposed to the environment, or a static time line.
The human experience is exactly that and as such subject to the limits of human senses and perceptions. It is only by the grace of human kinds ability for intelligent, rational, and imaginative thinking that the essence of the universe can begin to be deconstructed. Through the work of Einstein humanity learned that time is relative, then Schrödinger (and his cat) showed us that by observation alone an objects course in the universe is altered, and as a result inexplicably tied to that which observes it. Most recently Wolfram, who would have you believe that his work has no basis in previous thinking (one needs to merely glance at the work of Conway, Mandelbrot, or Julia to know this is not true), explores ideas of emergent properties and self-organization through simple rules based in computation. What we have learned from science is that the universe is an infinite set of systems within systems with nothing existing in isolation. The first law of thermodynamics tells us that energy can neither be created or destroyed; energy can only change form. Every action echoes throughout time and space for eternity.
The theme for art being produced should enforce ideas about the unique human position in time and space. The only point of reference for an individual’s existence is another human being. People need to be reminded about the insignificance of their existence compared to the scope and breadth of the universe. The universe is believed to be 13.7 billion light years across and contain about 7 X 1022 stars. The goal of this ideology is not to devalue human life, or make light of existence, but rather to emphasis the uniqueness and value of each and every individual life on the planet. This should be reflected in art and the goal of art should be to make people aware of their mortality.
Religion was a useful tool in the development of modern civilization; however, it has become a dangerous and outdated entity and must be removed as such from the collective consciousness. Religion is at the heart of every major conflict that has ever taken place in the history of humanity and continues to fill that role today. It becomes increasingly difficult for a society to justify the oppression and exploitation of another without the idea of divine right. Conversely, it is difficult for a people to be exploited and oppressed when the idea of equality and mortality exists. Through the conscious effort of comprehending non-existence the value of human life may increase.
In the absence of the concept of god(s) we are not left with Existentialism or Nihilism as our only alternative. By rationally deconstructing the purpose of life we can come to some realization about the meaning of life. The purpose of all life is to reproduce. All organisms, by design, exist for the sole purpose of passing their genetic information forward through time. From the perspective of the genetic material it does not matter if an individual organism survives to pass on its unique encoding but rather that the species as a whole continues its journey through time. Natural selection has led to the evolution of complex life forms that are capable of controlling determining factors in their environment. A by-product of human kinds ability to alter its environment is the unsustainable strain on the planets resources as the population grows out of proportion. Human beings need to realize that the long-range survival of the species is of the highest priority and the responsibility of every living person on the planet. The consumeristic nature of modern society must be altered so that the individual sees their self-interests in the health and well-being of the planet as a whole. The purpose of life gives it meaning.
Being unique in our position in time and space the individual experience at any one given moment in time is not reproducible. The goals of contemporary art should be to bring about peak experiences by exploring this fact in reality. The experience of a piece of art should reflect that irreplaceable moment in which it is being experienced. It should re-enforce the insignificance, fragility, and the importance of the individual. The viewer(s) and the artwork as distinct objects interacting for a unique moment in time.