# Image-a-Day

- Date: 2009-01-01
- Categories: project, software, website
- Tags: ritual, diary, collage, sharing
- Image: https://www.ryankelln.com/img/image-a-day.jpg

Ongoing project where each participant shares an image with every other every day. In 2009 I added code to a software program that "collages" information from my day, including photos, text, website browsing history, music I listened to, number of key presses and mouse clicks, etc. It transforms this information into a single image that is then posted onto a website.

![Month view on the Image-A-Day website](https://www.ryankelln.com/img/image-a-day/month-view.jpg)

This work came out of desire to challenge myself to create art every day for a year. I wanted to write software but I also wanted a project that my friends and family could join. Thus was born the Image-A-Day Journal: a website where participants could upload and share an image every day. The only rule was that you had to upload an image each day.

My software became a "collager": I "feed" it images and text from my day and it manipulates and positions them. I eventually added a number of features that collaged additional details about my day: websites I visited, number of key presses and mouse clicks, music I listened to, news and weather, etc. Through the medium of digital collage this information is shared with the other members of the project.

![Example of an automatically generated collage](https://www.ryankelln.com/img/image-a-day/example-small.jpg)

This project explores how people change as their lives become more documented and as they participate and share in artistic practice every day.

## Collager Features

Currently implemented features:

### IMAGES

* Process images (jpg, png)
    * Thanks to Python Imaging Library
* Detect common colours in images and set border, text, and background gradient from these
* Smart image scaling to adapt to different sized images
* Smart image scaling to adapt to number of images to collage and their relative sizes
* Place "recurring" images behind today's unique images

### TEXT

* Process text files
* Process html files
    * Thanks to [Beautiful Soup](http://www.crummy.com/software/BeautifulSoup/)
* Find common words in text
    * Thanks to the [Natural Language Toolkit (nltk)](http://www.nltk.org/)
* Find titles in text

### TRACKING

* Track websites visited and extract common words (from Firefox)
* Track songs listened to and display names and images of albums (from Last.FM)
    * Thanks to [python-lastfm](http://code.google.com/p/python-lastfm/)
* Track tasks completed (from RememberTheMilk.com)
    * Thanks to Sridhar Ratnakumar and his [pyrtm library](http://bitbucket.org/srid/pyrtm/)
* Track time spent on computer
    * Thanks to [Project Hamster](http://projecthamster.wordpress.com/)
* Track number of mouse clicks and key presses
    * Thanks to [Workrave](http://www.workrave.org/)
* News headlines (from Google News)
    * Thanks to the [Universal Feed Parser](http://www.feedparser.org/)
* Current weather (Yahoo weather or Google weather)
    * Thanks to the [Python Weather API](http://code.google.com/p/python-weather-api/)
* Take a snapshot from webcam each time the software is run
    * Thanks to Fredrik Portström and the [python-v3l2-capture project](https://launchpad.net/python-v4l2-capture)
* Display time that final run of software started (to encourage me to go to bed earlier)

### MISCELLANEOUS

* Display code changes in spiral path around border (from git)
* Display how much time taken working on today's code
* Display how much time taken executing/processing today's collage
* Plot a line graph of tasks completed, mouse clicks and key presses

![Collager software features after one year](https://www.ryankelln.com/img/image-a-day/feature-diagram.png)

Web page: https://www.ryankelln.com/project/image-a-day/
