New Discoveries – May 2016

So here I am again. Recently I've been going through some interesting stuff, here are some:

- Architecture can be violent, too. Main target is usually homeless folks apparently, which points to the concept of gentrification. I had no idea why those slightly uncomfortable benches at a park were designed like that.

 Spencer Means / CC BY-SA 2.0

A shot from South Carolina. Violent and definitely not subtle. Credits: Spencer Means / CC BY-SA 2.0


News in Technology

It's been a long time... Today I decided to update my blog once again, with some interesting and new videos. Here we go:

- Google's AI won the series of games against the Go grandmaster:

- Machine learning and computer vision can get really crazy. Here is NeuralTalk (and Walk):

NeuralTalk and Walk from Kyle McDonald on Vimeo.

- This example of 3D face manipulation in videos seems really out of this world:


New Python Script & A Glitch GIF


It's been a while since I've been randomly playing around with code and formats of files, so I thought it's about time for me to do so.

I wanted to buy a LOMO, but since I believe all LOMO machines are offensively expensive, I wanted to buy it second hand. I checked a nation-wide online flea market called and found several posts but none of them was interesting to me. But I wanted to keep a track of them, so I wrote a small script that does the job for me. Instead of visiting the website all the time, I hardcoded the link of the web page to the script and it does the job for me. Here is the code:

import urllib2
file = urllib2.urlopen('')
dload =

searchString = "<strong>60</strong>"

if searchString in dload:
print "HTML File has not changed, still 60 posts."

print 'HTML File appears to have changed, please check: \n                           verkaufen/marktplatz?keyword=lomo&x=0&y=0&sort=4'

This may look silly at first, but that is only because the code is silly. Seriously, I just parse the HTML from the source, and look for a "<strong>60</strong>" which is totally arbitrary, but in this specific case it was the number of posts that are already shown. So if it changes, the code prints "HTML File appears to have changed, please check..." and that's it.

For running it, I just press Windows key + R, then type cmd and hit ENTER. Then go to Python directory and locate the script and run it. That's it. Pretty simple but that was what I needed anyway.

The other one is just a 10-minute fun, so I'll just leave it here. Because it's peanut butter jelly time.


This week’s discoveries

-If you haven't read it, this interview with Bartholomäus Traubeck , who got honorary mentions Ars Electronica PRIX in 2012 with his piece: "Years".

-This video he mentions in the same interview:

-A great guide from Amanda Ghassaei to Max/MSP on Instructables. Max/MSP is very similar to Pure Data (actually Pd is very similar to it, since the same person/people from Max team built Pd later on) but has a better interface imho. An essential tool for creating interactive works and for much more.

-The concept of a Harmonic Table. This attracted my attention, since it would be a great idea for building generative soundscapes and artworks. Coding this structure in Python would be a nice idea, I will keep that in my mind. Why Python? Two reasons, first it is very easy to write and code. Second, you can do lots of stuff inside Python and extend the scope of your code greatly by sending the data to other platforms, frameworks and programs. So go Python!


Click for larger image of "Harmonic Table"


-This guide on encryption by LifeHacker.Don't forget to check the other links in the article if you find it interesting!

This guide on the Virtual Machine concept. What is a Virtual Machine and why use it? Basically it is a software that enables you to use an OS (say Windows) while you are using your current one (say OS X) without needing to restart your system and easily benefit from the use of multiple OS's.


This week’s inspiring (and interesting) discoveries

Let's begin with this week's list of interesting internet discoveries!

-Amazon plans to ship your products before you buy them. Seriously. We were trying to cope with the fact that they are working on airborne deliveries, yet they have another innovation.

-This comic book infographic.

-Winamp being sold to Radionomy. This might mean that Winamp users can continue using Winamp, although I don't really see the point where foobar2000 is a great alternative for listening to music on your OS. (I prefer Clementine while using Linux)

-This great, heart-warming guide on "How to be alone" by Andrea Dorfman and Tanya Davis:

-The greatly inspiring TEDx speech by Lizzie Velasquez on "How you define yourself". As she puts it: "Once labeled, "The Worlds Ugliest Woman," Lizzie decided to turn things around and create her own definitions of what she defines as beauty and happiness". This will bring tears to your eyes:

-The MakerSpace in Georgia Tech. This is exactly the place that I have been recently talking about with a friend of mine, without knowing it already exists. Here is a video:

-Neil Gaiman's commencement speech from 2012:

-The mind-blowing proof that 1+2+3+4+5+... = -1/12. Note: It is said that this result relates with String Theory and it has applications in Physics:

-Lastly, Dave Brubeck and a random violinist improvising together:


The Best Computing Stories of 2013


So here we have it, the MIT Technology Review's "2013: The Best Computing Stories of the Year" by Tom Simonite.  This is a wonderful put-together of the featured news of 2013 about brand new technologies.

What is in there? Well, to sum it up, we have smart watches, ultrasonic sensors to detect and recognize gestures,  beta testing of the iconic Google Glass, a new wearable technology called FIDO which is actually for your beloved pets, 41-Megapixel camera of Nokia Lumia, Apple's new motion sensing chip m7, Motorola's new phone Moto X which is ready for voice commands at all times, helium filled hard drives, Apple using indium gallium zinc oxide transistors in new iPads to increase pixel density, Google's Chromecast streaming service dongle, Google and NASA teaming up to launch a new quantum computing lab, Qualcomm releasing neuro-inspired chips, IBM releasing blueprints of a new computer architecture that works like a human brain and Swiss engineers in a company called iniLabs working on a new digital camera inspired by the human retina.

Exciting, huh? Gives us something else to look forward for the future. Wish you all a happy new year!


A Guide for Creating Basic Geometric Illustrations

Processing Icon

Hey all,

Apart from sound design & field recording for a short movie project, I've taken part in another exhibition at a local bar (called Arkaoda) in Kadikoy, Istanbul. Lately I've been lurking around and wanted to create something graphical for myself. It is pretty basic, but it looks nice and it forms a good basis for further development ideas.

In this project, I wanted to create some colorful geometric graphics with Processing platform. I didn't have anything in my mind in particular, so in the end the project had the feature to change the visuals at each mouse click. Think of this as a little push if you want to start with a new project but can't do it. Just play with the code, add stuff, delete stuff, change stuff... Use the empty draw function for example.

The code is here:

/* A pretty basic code for creating randomly generated triangles with random colors.
*  Deniz Saglam, 2013

float alpha = 0.0;
int triangle_count = 40;

void setup()
size(600, 480); //size of canvas, initially 600 x 480. play around with this to see the difference.
background(200); //canvas background
color c = color (0, 0, 0);
for (int iter = 0; iter < triangle_count; iter++) {
alpha = random(100.0, 255.0);
c = color(random(255.0), random(255.0), random(255.0)); //a random color is generated for filling the triangles at each iteration
fill(c, alpha); //triangles are actually filled with the previously generated color, and have an alpha (transparency) value

//this next line can be edited for different visuals.
triangle(random(height), random(height), random(height + height * 0.24), random(height) + random(height + height * 0.24), random(width), random(width + width * 0.133)); //create a new triangle at each iteration

void draw() {

void mouseClicked() {
print("Mouse is clicked. \n");
color c4 = color(random(50.0, 155.0), random(50.0, 155.0), random(50.0, 155.0)); //create new color for background
background(c4); //new random background is colored
color c = color (0, 0, 0);
for (int iter = 0; iter < triangle_count; iter++) {
c = color(random(255.0), random(255.0), random(255.0));
fill(c, random(100.0, 255.0)); // fill the triangles

//this next line can be edited for different visuals.
triangle(random(height), random(height), random(height + height * 0.24), random(height) + random(height + height * 0.24), random(width), random(width + width * 0.133));



openFrameworks Installation Tutorial


Hey all,

I wanted to give openFrameworks a try after reaching to Processing environment's limits at certain points. I decided that I want to be able to be familiar with another environment where I can build apps that are faster. This C++ framework seems to be a good solution for my problem.

Now, if you want to get started with openFrameworks, this tutorial is definitely for you. I probably spent way more time than the average just to run the first example. Not because it's hard, but a slight distraction causes you to go over the steps from the beginning. So, hope this helps.

1) Assuming you haven't done anything by now, go to , click on "Download the binary release" and choose the right environment for you. I have Windows 8, so in this case I had to download "codeblocks-12.11mingw-setup.exe". After downloading it, simply run the installer and next it all the way to the end.

2) Now you will download openFrameworks. Visit and download openFrameworks for Code::Blocks in Windows. Then unzip the downloaded file and extract it to your Desktop. This folder will contain all the necessary stuff for openFrameworks. Simply create a directory at a handy place (I use C:\openFrameworks). Then, copy and paste all the files from the folder at your desktop into this newly created handy folder. We're almost there.

3) Now visit and follow the instructions.

4) You should have everything settled by now if you've followed the instructions carefully. Now you can go to in order to read the first steps tutorial. I have one more thing to mention: If you want to run an example as it is done in this last link, please don't forget to open the workspace file instead of the project file. Otherwise you will get errors since some parts will be missing. This means, open Code::Blocks, click on File-> Import Project -> Dev-C++project.. and then go to the right directory of the example folder (i.e. C:\OpenFrameworks\examples\graphics\graphicsExample) and select All files instead of the Bloodshed Dev-C++, and then select graphics example workspace file. Run the code and you're good to go.

I hope this helps, since I wouldn't want anyone else to spend meaningless time as I did in the beginning. Also, I want to thank Andrew McWilliams for his post, this tutorial bases mostly on his introduction except a few details.


‘Project Genesis’ @ Ars Electronica Center


It was very fortunate of me to be able to take part in this exhibition, which is about how synthetical biology, which also focuses on the virtual life that is created in laboratory environment, can affect our future lives.

Our project is about saving digital data into DNA, which enables all of us to save our data for thousands of years, whereas the lifespan of a common harddisk drive is only couple of years. Also this allows us to carry our data at all times, since large stacks of information can be stored in a tablespoon full of DNA. Although the current drawback is cost, it is known that the first transistors were impractically expensive and this might point out that at a certain point in future, we might be able to use DNA as a new medium to save our data. All this process bases on the algorithm of George Church, a molecular biology professor at Harvard Medical School.

My part in this exhibition was to code this algorithm with a GUI in Processing environment and to create a bundle experience for visitors, to type in whatever they like and to print this data out in binary and DNA strings, printed onto a paper.

If you happen to visit the exhibition, please do consider to contribute to our DNA wall, which consists of strings of information that is printed by previous visitors, who sticked their information onto this wall. Collaborative memory!

Now it's time to chill and lean back for a while...


ReHearSal featured on ID-Mag


It's always enjoyable to see your work getting featured somewhere. My friends and I worked on this project for couple of months and I'm glad to see it is appreciated.

The link on ID-Mag's website can be directly reached from here.