A good few weeks ago I had the chance to work with Florian owner of Wehr Catering based here in Berlin. It was a great opportunity for me to use what I have learned about food photoshoot. It was not a perfect session. I tried flash but abandoned it for the light given by the kitchen and a bright kitchen it was. The biggest thing I can take from this shoot is to remain flexible and keep track of the chef. Don’t forget you need to shoot him/her making the food!
Anyways below are some collages I have made for Florian:
posted in design, learning, photography, projects ¦ Leave a comment
It’s about time I wrote something different, so I thought I would do a little thing on photography.
I love camera’s and I love pictures. But I only like to share those moments that are important to me or rather moments that have an artistic value. I don’t share often on social media and here is why.
I have seen many of times on facebook some one starts posting pictures from a night out or a holiday. 20 pictures just flood your stream until facebook is smart enough to group them and if your like me, you have friends that you watch so your phone will ping when they make a post.
A few nights ago it happened… My wifes phone went *PING*, a minute later *PING*. 2 minutes later *PING PING PING*. I wondered if she was just playing super mario or something with so much noise. After asking her about it we found out a friend she follows posted 20 pics from her night out.
When this has happened to me I found that usually the worst pictures are posted. Normally cell phone pics that are just a waste of space and hardly memory building. But this I don’t grudge people. I use my cell phone or tablet too. But its the fact that poor pictures are putting me off from looking at the rest. Maybe some nice pictures buried in the upload.
So what do I do with lots of pictures? I collage them. Meaning I scale my pictures down to a maximum of 10 in a set. Then I collage them in a style I like and maybe highlighting what was important in each picture. Then I post once on facebook the final image. That’s it… Just once! I don’t spam friends streams and I don’t bury any pictures in my upload. My friend will then see everything in one click about what was good about the event.
Here are some recent examples I have made:
The 1st is a collection of pictures I took of my wife making blueberry rolls for a friends birthday. You can see all the images in one go and your not bored clicking through the album.
Under that there is a collection of pictures from the Allied museum here in Berlin. I took a lot of photos that day and quite a few where good. But in the end making the collage got me to stop and think about what was really really worth showing. So again I am not boring anyone with millions of clicks through an album. I show them the best bits and hope they enjoy looking at them.
I wont explain how to make collages. There are ooodles of software out there from photoshop to my personal favorite Pixlr on my tablet.
Just check it out and remember: When your taking photos you want them to be seen. Making that as easy and the least boring is the most important thing.
posted in design, learning, life, photography ¦ Leave a comment
If any of you guys follow my tutorial on installing flask on a raspberry pi with the latest install of wheezy then I am sorry. It turned out that using the virtualenv file I recommended generated some pip errors when creating the virtualenv. This stopped the tutorial in its tracks!
So forget downloading any virtualenv file and if you try and follow framework tutorials they might tell you to use easy_install to install virtualenv… Don’t…
Install using the python package like this:
$ apt-get install python-virtualenv
Thats it… Nothing more than that!
posted in learning, projects, Python, raspberry pi ¦ Leave a comment
posted in life, productivity ¦ Leave a comment
I thought I would start off with some tutorials on python using my raspberry pi. I should mention I am far from an expert on the Raspberry Pi, flask or even python. I am just learning and these are my notes (in tutorial form) up here for everyone to see. My hope is that that anyone correcting my python will better my own coding, and help others too.
First up we are going to start with setting up flask on a standard Raspbian install.
I am going to assume that you have a raspberry pi with the latest version of Raspbain installed. If your not make sure you have python 2.7 or better installed on your system at the very least.
Ok here we go!
We will install flask using a virtual environment. This is so that your main Python installation is not affected by any of the extensions or flask itself in the event anything goes wrong. This is only my preference to work this way. I could also add that you don’t need to have root access to get this running!
So to start you want to make a folder to house your website/app. Open up the terminal window, choose where you want to store it. My example will be in ‘/home/pi/website’
Now download the virtualenv.py and put it within your new folder ‘/home/pi/website/’
Install the python virtualenv package
apt-get install python-virtualenv
Move into that website folder if you have not already done so.
Next create the virtual environment by entering the following command:
This will create a complete Python environment inside a folder called flask! Closer and closer to having our site done!
There are 2 ways to do things now. You can either activate the virtual environment and then run the next commands without the path names (which I don’t like to do). Or you can instead just invoke the interpreter you want by typing the pathname. The benefit of invoking the interpreter is that if you have more than one environment running you don’t have to keep activating and deactivating when working on more than one project.
So finally lets download and install flask
flask/bin/pip install flask
Assuming everything is ok you can just go ahead and remove the ‘virtualenv.py’ file now we won’t need it anymore.
“Hello, World” in Flask
Now you have a project folder ‘website’ and you have a sub-folder with flask and a Python interpreter. We can now get started with a Hello World. Just to prove its all working.
Within your website folder lets start making some folders.
mkdir app mkdir app/static mkdir app/templates mkdir tmp
The templates sub-folder is for templates… ok self explanatory.
Why make all this… Well later when I give more tutorials you will want to have these folders in place and ready to use.
We need to create a init script in our app folder ‘app/__init__.py’ which will create the application object (class of Flask) and then will import the views module (going to take care of that in a moment)
from flask import Flask app = Flask(__name__) from app import views
The views are handlers that respond to requests from web browsers. In Flask views are written as Python functions.
Each view function will be mapped to one or more requested URLs.
So lets write the views function ‘app/views.py’:
from app import app @app.route('/') @app.route('/index') def index(): return "Hello, World!"
There it is hello world! But we are not done yet. This view is just returning a string that will be displayed in the web browser.
The two lines @app.route(‘/’) and @app.route(‘/index’) are route decorators to create mappings from the URLs ‘/’ and ‘/index’ to the function below it.
Finally we want to get this serving to the web so we need a script to get the development web server running.
We need to make the file run.py in the website folder ‘website/run.py’
#!flask/bin/python from app import app app.run(debug = True, host="0.0.0.0")
The script will import the app variable from our app package and then invokes its run method to start the server.
Remember that the app variable has to hold the Flask instance we created before.
The ‘host=0.0.0.0′ is optional. Basically if you don’t have it flask will only accept requests from localhost or 127.0.0.1 (basically the browser on the raspberry pi itself) having the 0.0.0.0 will mean that flask will accept any request from anywhere. This is better to have if you are running the pi as a headless system and you want to test on another computer.
Just before we can run the app we need to indicate that this is an executable file:
chmod a+x run.py
Then the script can simply be executed as follows:
You will see that the server is now running and listening on port 5000. Now you can fire up your web browser and enter the following URL (changing the IP to your raspberry pi’s IP):
YEAH!!! You did it! Hello World!
Remember those route mappings from before? This means that after the port number you can enter ‘/index’ and you should also get to your hallo world page, neat huh!
Then when your done mucking around with the server you you can just hit Ctrl-C to stop it.
Whats awesome about this setup is that you can leave the server running and just simply edit any file and it will reload live to the server.. so make a change and hit refresh and you should see the change. But with one exception…. Exceptions… If you code something wrong and save it, when flask takes the new version of the file and reads it. It might crash.
Next time I want to start on some basic templating with Bootstrap and Jinja2
See you later!
posted in learning, projects, Python, raspberry pi ¦ Leave a comment
I wanted to let you in on a long term project I have been working on. At my work we have this bot running on an IRC channel that is allowing the developers to get reports on builds in progress. Also if we had any errors on our test etc. There was also a frontend website that spins around giving anyone watching realtime information on our project status. The whole system is called Rosie!
Inspired by this and jarvis from iron man movies. I set about making my own bot for my home system.
The essentals of the bot is to be able to issue commands over IRC that would either goto my XBMC raspberry pi or my other pi which I use for experiments like this and also music center.
If your using bitbucket you can request access by going here: https://bitbucket.org/theladdie/robinbot
More information coming soon!
posted in learning, projects, raspberry pi ¦ Leave a comment
I am back from the land of not blogging!!! I know it sucks you come along, sign up to the RSS feed and nothing happens. No content nadda! It is always an issue for me when work is overtaking everything I forget about the little things. Those things that are important but arnt that important if you know what I mean.
So I want to start blogging again so lets see how I get on.
Quick update on the projects:
- Project: RasPi Arcade – Scrapped due to Pimoroni’s Picade
- Project: Tasty Test System – Back burnner right now. I am not liking how the system turned out so I am waiting for inspriation to strike
I need to get back on the wagon so I hope work stress does not overwhelm me again.
posted in learning, life, projects, tasty test ¦ Leave a comment
I have been dropping a lot in terms of projects and side things in order to refocus my efforts on some of the main things and also more important things.
As part of my growing at work I am going to put a little more work in TTS in order to have it in a releasable state. Unfortunately it will be tailored for the company I work for just now. I am hoping that later I will be able to release another version that suits the general QA lackey
More news when it comes
posted in projects, QA, tasty test ¦ Leave a comment
I have neglected the blog for a while now. I never really seemed to understand the concept of baby steps. Too many projects, too many ideas and too many things to do! I could not see the Forrest for the trees.
So I am looking back and checking what a can and can’t do.
After I have cleared my list, I want to return to the blog and fix the broken links and maybe clear up what I wanna do here… Finally…
Talk again soon
posted in life, productivity, projects ¦ Leave a comment
Short post to say I am super excited about the new version of ‘Raspbian’ for the raspberry pi!!!
Raspbain if you have not already guessed is a version of the debian linux operating system specifically designed to run on the pi.
I am downloading as I type… SD Card is ready and waiting
posted in Uncategorized ¦ Leave a comment