Technical challenges of creating the TILO platform

Tools & Methods:

  • Git: Source Code Management (and improved development workflow).
  • Uptime Robot: Realtime website status notification.
  • LogMeIn and iTeleport: Remote computer management.
  • OAuth: Authentication method to protect your API.

General Insights:
TILO has been in development for almost a year and has been in planning for almost 2 years. Although TILO is now quite an elegant efficient solution it has gone through a number of iterations, and some of those were not very pretty and were awkward to work with.

Despite the additional year of planning before development began we didn’t fully understand how it would be embraced and used until we had a version installed. We learnt more in the first 2 weeks that TILO was installed than the 3 months of development that preceded it.

Our first mistake was because we had such ambitious plans for TILO we tried to implement them all straight away. We also had a very enthusiastic client that was keen to suggest new functionality which we enthusiastically added to our feature request list. We quickly ended up with a product that was feature rich but bloated as a result.

At one point development ground to a complete halt, we were pushing new features that could couldn’t be supported by the foundation we’d hastily put in place with no clear purpose, as a result functionality was inter locked and subtle changes had an impact in multiple locations. Added to that our live and development platforms were too closely linked, a bug in the code on our development platform could leak over to the live. It was around this time we knew we needed to slow down and take a more measured long term approach to our code.

This sounds like a disaster but it wasn’t actually that bad, we just knew we couldn’t continue with our current approach. We had all the features we wanted, it just wasn’t held together very well. We needed a new ethos to adding functionality to TILO. We decided that:

TILO should only manage basic CMS functionality. All additional functionality should be added as stand alone modules that interact with TILO through a simple API.

We started using OAuth and exposed a simple API that could be used to command TILO to:

  1.  Trigger templates
  2.  Interact with the database

With this simple approach we realised that not only could we re-write our bloated CMS as independent third party modules, but other developers/artists could contribute their own modules and tools. As an added bonus, by re-building our CMS using the API we were effectively testing it for other developers and providing working examples. This got our development team quite excited, bless them, they don’t get out much.

Whilst we were reviewing our processes and workflow we also implemented:

Git Integrated Workflow:
Previously Git had only been used for version control. To speed up our workflow and improve stability we added Git to our server and used it with scripts to stop/update and restart our applications as updates were pushed to it. This was integrated with test scripts so updates would only be applied if all tests were passed. This removed human error from the process and the number of bugs reported by the client dropped significantly.

Independent application instances:
Initially we had a single instance of TILO running that was designed to handle all clients. Big mistake. It meant that to update one client we had to update them all. Using Git we set up a script for each client that would checkout a specific version of TILO, test it, and then upload it to it’s own instance on the server. The server is now running multiple versions of TILO and also has an instance used just for testing, they each hang off their own subdomain so can be individually addressed.

TILO is now running very well and our development team get a lot more sleep as a result.

 


Rhythmanalysis – work life balance

A short piece about a research project I was involved with, comparing the biometric measures of workers in the digital industries with a more traditional industry

At the start of the project a central theme brought us all together. We all became keenly aware within our separate areas, (Art, academia, creative industry and arts organisation) that over time our working and personal lives have merged. This was polarised most clearly when compared with the traditional 8 hours work, 8 hours play and 8 hours sleep model – mentioned frequently across the different projects within Time & Motion: Redefining Working Life.

Our thoughts quickly turned to how these changing working methods could be affecting our health and natural rhythms, then to how the tools required to measure and monitor these rhythms are increasingly to be found in cheap consumer products and apps

This led to the central core of our research in comparing the biological rhythms of workers in the digital industries to those in a more traditional workplace. What really struck me was how outdated the legislation behind our 40-hour week is becoming. Can we draw any comparisons between workers rights, successfully fought for during the industrial revolution and the changing working practices of the digital revolution?

The main difference is that it is no longer obvious when and where we are working and it is the individual rather than the state whom now makes this value judgment. “I must finish that report before i go to bed!”

We are fortunate that the same technology behind our new rhythms and behavioural patterns can also be used to test their physiological affects. So for me the big questions that Rhythmanalysis raises is.

As technology allows us to profile and monitor our health, wellbeing and productivity in real-time and at an individual and corporate level, is new legislation necessary for the state to protect workers and provide for a non-linear and healthy work – life balance?


Tilo Development summary

The brief for TILO is quite broad and requires the use of a number of technologies. As lead developer I’m currently researching and using:

  • NodeJS – Online data services
  • Scala – Digital Signage Platform
  • C++ – Creating Rich Interactive Content
  • HTML + Javascript – Mobile Web Apps
  • Raspberry Pi/Beaglebone – Creating Remote Sensors and Actuators

The internet is now a very powerful tool. Even for simple web apps I’m now looking at leveraging:

  • Social Network APIs – sharing content and streamlining sign in forms
  • AWS S3 – uploading and sharing large media files
  • Mobile Phone App APIs – more apps are sharing information (e.g. ‘Move’ for iOS and Android, pull information about users activity)
  • SMS and Voice APIs – send and receive text messages (e.g. respond to queries or notify members) or provide an intelligent automated telephone system
  • Connected Devices – use services like Xively.com to share information between connected sensors and devices

Doing any of these from scratch would be a huge drain on my time, a resource I can’t afford to squander. Instead these platforms and services provide an easy jump off point meaning I get to do more interesting creative work sooner. On going, the Third Party maintains and manages their service requiring only occasional input from myself, automatically scaling as my demands on the service grow.


Drawing a Fbo with Alpha Blending Enabled

I’ve wasted a couple of weeks trying to find the solution to this one, but as is sometimes the problem when searching online it’s often difficult to get the exact mix of keywords right before you start to yield any valid leads.

I was working with OpenFrameWorks on an application that generated a series of animated tiles. Because each tile needed to be individually rendered and masked I need to use a Fbo to render it off stage and then blend them all together as part of a final step. This was all working well until I tried to render some text into the Fbo. The Anti-Aliasing was terrible, something I initially put down to the font.

After a lot of testing I discovered that the Alpha channel in the Fbo was being treated in a very odd manor. As an example, if I filled a Fbo with a solid black color, then drew some white text I’d expect to have a texture that was completely solid (no transparency) with the white text anti aliased onto the black background. Drawing straight to stage without the Fbo indicated this was correct.

If I then took this Fbo and drew it to stage which had been filled red I would get a black background and white text (as expected) but instead the antialiasing around the text appeared as a blurry red edge. After a lot of testing I came to the conclusion that the alpha channel was being used to acheive the anti-aliasing around the text allowing the red background to show through.

I finally found this thread on the OpenFrameWorks Forum: https://forum.openframeworks.cc/index.php/topic,1643.0.html

It was the recommended solution by ‘blainer_s’ that worked for me:

void testApp::setup(){  
    image.loadImage("myPng.png");  
    //image is an ofImage, myPng.png is an image i created in photoshop real quick for testing  
    texture.allocate(ofGetWidth(), ofGetHeight(), true);  
    //texture is my ofxFBOTexture  
}  
  
//--------------------------------------------------------------  
void testApp::update(){}  
  
//--------------------------------------------------------------  
void testApp::draw(){  
      
    texture.begin();  
  
    ofEnableAlphaBlending();  
  
    image.draw(0, 0);  
  
    ofDisableAlphaBlending();  
      
    texture.end();  
      
    glEnable(GL_BLEND);  
    glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);   
  
    //This is what is normally called with ofEnableAlphaBlending  
    //glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);  
  
    //if you have changed your blend equation, uncomment to return to default  
    //glBlendEquation(GL_FUNC_ADD);  
          
    texture.draw(0,0);  
  
    glDisable(GL_BLEND);  
}  

The important step being to change the blend function like so.

glEnable(GL_BLEND);  
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);   
//return to normal using
//glBlendEquation(GL_FUNC_ADD);

Artistic approach to a commercial brief

Can ‘suits’ and ‘creatives’ come together in a meeting of minds?

In addition to MeYOuandUs I also work part-time as a creative consultant for digital agency Amaze. So I like to dream that occasionally the two arenas can come together, and that there is a common ground that allows for artistic authorship and vision combined with a tangible benefit for a commercial partner or client.

Over the years, creativity in digital media has become more and more of a democratic process with input from information architects, strategists, analytic consultants, user and client workshops. Creativity and design should in theory be based on a top-down, empirical and measurable return on investment. This is a positive and necessary step back to the older days of relying on the instincts of a single creative.

I am a strong advocate of design based on research, prototyping and testing. At the same time, I also treasure the ‘big idea’. The single precise vision that comes from an individual pondering on a line of thought, even better if that line of thought isn’t following a client brief but on something more universal or existential.

Focus on small things

The preamble behind this thought piece is a presentation I gave at a client workshop showcasing the creativity of my agency, Amaze. This provided me with an opportunity to promote my thoughts on the business benefits of an artistic approach to marketing, branding and PR and how art can have a place at a deep level within a business.

In a nutshell, the proposition in my talk was that small initiatives, if rooted in a simple artistic idea, can have an effect greatly disproportionate to the effort.

Rory Sutherland explained at TED how simple (and cheap) ideas are often the most effective
I started off with an excerpt from a TED talk given by Rory Sutherland. He spoke about Virgin Upper Class and two beautiful silver aeroplane salt and pepper dispensers. He pointed out that the universal response to such items is, “ooh I could pilfer those” – until you turn them over and engraved under each one are the words… “stolen from Virgin Upper Class”.

Another example is a lift in a Swedish hotel that has the normal lift buttons but when you press them they play different music.

In the elevator at Stockholm’s Lydmar hotel, by choosing your floor, you set the music genre
The point of these examples is that from a branding perspective, comparatively inexpensive simple ideas live long in the memory – much more than the millions of pounds businesses spend making themselves identical to their competitors.

Bottom-up approach

The other key element that I focus on in my own practice is a ‘bottom-up’ approach, adding some theatre to the most basic human interaction. My catchphrase in my experiments with public art is: “Never underestimate the supposedly reserved British public, who happily express themselves when given the opportunity”. It’s not easy getting the balance between forcing a message or conceit onto an unsuspecting person and creating an enjoyable or thought-provoking diversion and counterpoint to their normal day.

I think another cornerstone to the experience is originality, in the sense that you remove as much reference point to the interaction and the context. So it could be an unoriginal idea presented in a completely original context or vice versa. The key is to disarm the participant, to clear the decks of preconceptions and allow the idea to be approached at face value.

Conclusion

I’m looking to highlight the obvious elements within an art practice that bring depth and integrity to work, mostly authorship and independence. This is in the hope that the artist will bring fresh eyes and a very individual lens to a project, will take more risks and more personal responsibility and become less embedded in a corporate process.

Originally published on creativebloq

 


Brazil residency

So how did i get here, a 5 week residencyPere Maguella, Brazil?
Originally this project was based around a reworking of Handprint (a previous project of mine), which after months of dialogue had finally been approved and contracted as a major commission. I was consulted on the potential to extend Handprint, working with an established Brazilian artist to create a dual installation in UK and Brazil.

The real start of this project was six days of workshops split between Liverpool and London in November, where a number of artists and organisations came together to try and plan the project. We quickly realised Handprint was too defined a project for a genuine collaboration, so after a lot of discussion and brainstorming “Humble Market’ was born.

What I love about this project is that it is a genuine collaboration between new media Artists (me and Jimi) and contemporary dramatists/ performers (Jade and Jorge from Zecura Ura). And the key to all of us is placing the audience/participant at the centre of the work.

“Humble Market” will start as the summer exhibition in FACT before expanding into more of a performance piece in Preston for the NW Cultural Olympiad finale. It will then hopefully become a catalyst/platform for more collaboration between UK and Brazilian artists leading up to the 2016 games in Rio.

The first few weeks were spent really trying to nail the core idea behind “Humble Market” so we can apply it to the formats we have been developing.

We also spent four days working over the carnival period (not in Rio but the town I am staying in), filming from a car in the main drag out of all the windows as the carnival pours past.