And talking about free education…

In the last post I talked briefly about Udacity, a free educational platform that offers university lecturers in (for now) Computer Science. Taking a couple of their courses led me to research a bit more about other initiatives related to free higher education. I’ve come across, and experimented with the following:

  • Udacity. Founded by Sebastian Thrun, David Stavens, and Mike Sokolsky earlier this year as for-profit online educational institution. As I said in my previous post, try it now!!! I found out about it through reddit before its launch and so far I’m about to finish my second programme there. CS101: Building a Search Engine is the perfect introduction to Computer Science and the Python language. Anyone remotely interested in coding, with no foundations in CS should take it. CS253: Web Application Engineering is the logical continuation to the latter. Taught by Reddit founder Steve Huffman, it takes you through the use of Google App Engine in order to create a blog completely from scratch.
  • Coursera. Coursera seems like an initiative from several top-notch universities in the US (including Princeton, Stanford, UPenn, UC Berkeley…) to ‘democratise’ a bit their courses. I have mixed feelings about this one. The courses all look very good and niche. I just enrolled in their Software Engineering for SaaS class, and so far it looks like Coursera is the most similar thing to university for free one will get in the Internet. However (and this might be just a feeling of mine), it looks a bit weird that in the front page they throw at you all the logos of the participant universities, but as soon as one enters a class, the instructors spend half of the introduction video making perfectly clear that this isn’t valid towards an academic qualification, that the course has no relation whatsoever with the university the instructors are coming from, and that no acknowledgements from the university will be given at all on completion of the course. So I got kind of an elitist vibe from that, which I didn’t really like. I’ll probably make another post when I have spent more time at the website.
  • The Khan Academy. This one looks very different to the two I’ve just mentioned. The Khan Academy is a non-profit organization that doesn’t aim to substitute university, but to constitute a place where anyone can receive a world-calss education in almost any matter, for free. And so far I’ve been really impressed by it. The range of levels of its classes are so broad they would suit from a 9 years old home schooler, to a postgraduate. I really recommend you guys to take a look and play with it’s assessment activities and watch some of their video lectures. It’s a really amazing website.
And these are so far the sites I’ve been visiting to for the las couple of weeks. I want to make another post on the monetization and business models of these services. It’s especially interesting the one of Udacity, but more on that later.

Now, enough of educational stuff. Here’s a video of Ari Gold teaching us how to bitch slap someone. Good stuff.

Real time things and stuff

For the last few weeks I’ve been focusing myself on improving my coding skills. That very much involved getting rid of Processing for a while, and learning some ‘more serious’ languages like Python. And some pretty amazing site called Udacity helped a lot. It’s the future of education (at least Wired says so), and it’s good. Try it now.

And Python is a lovely little programming language. During the last bit of this year in my university programme, we started playing with some real time data. We created a machine that would make a water pump (taken from a printer) work whenever it was raining in London. Gathering RT data seemed surprisingly easy, so I begun, while following CS101 at Udacity, developing a script in Python that parsed San Francisco’s tram system departures information, to make a real time, moving map of the positions of all the trams of the network. I won’t go into much detail and I reserve the intricacies of it for another post, another day.

This is a really, really shitty version of it. You’ll notice that after a while the trams start sailing onto SF bay. That’s because I still haven’t figured out a way of updating the data without using any libraries for Processing (in this example I’m using nothing but Processing.js). So suggestions are welcome. Here is a video of a much nicer render:

Anyway, I’d like to write more often. I always say that.

 

Introducing The Chromatic London Underground Map

I had been thinking about a way to represent the Tube network in some kind of Venn diagram for a while. I found out that in order to do so, some really weird shapes had to be involved, turning the map into a horrible mess (I’ll upload the results of that some time).

So I decided, more for aesthethical reasons than anything, to make a Tube map out of the intersections between the colours of the lines when their opacity is set at 50%. Inspiration came from this post from CASA’s kick-ass researcher Oliver O’Brien about the colours used in the network. I ended up with this map that, although doesn’t really correspond to reality, ended up being a nice piece of graphics and an alternative way of seeing the network (which was the ultimate goal of the experiment).

So here it is: The Chromatic London Underground Map

You can buy the A2 signed and numbered poster in the shop for £14.99. If you have any comments, or have spotted any of the millions of mistakes there must be, leave a comment or drop me an email.

Real time!!! (kinda)

Curiously enough, it took much less time than what I thought to turn this thing into a pseudo-real time interface. Here it is:

Visualization of coffee bag production from Francisco Dans on Vimeo.

The green dots indicate that a coffee bean bag has been produced within the last few seconds. Cool, right?

Obviously it’s not real time data. I took the total coffee production per country figures, and spread the production through the year for each country. Every time the current time coincides with the time in which a bag is expected to be produced by a country, the red light turns green (sorry about the dodgy explanation. I don’t want to get too technical, but the map function has a great deal of responsibility on this).

Finally, success!!

My first visualization of data in Processing

Finally corrected the error!

It took me getting rid of the cartesian coordinates and inputting them manually in the dataset in the Processing format, in order to make it work. I really improve my skills on integrating script, as in larger datasets I might not be able to change stuff without losing loads of time. The result (rather simple, but, continuing from the coffee bean meter, it’s a step-by-step process), is a world map that shows the distribution of coffee production, where the larger the circle, the bigger the production:

I still find it impossible to embed the applets to the blog, so I’ll just carry on posting screenshots and maybe some pictures of my notes. I’ll probably put the code somewhere as well.

Next phase: real time simulation (combining both of the programs I’ve made so far).

Stuck

It had to happen at some point. I have no idea of what to do at this point. My only hope is to ask Pete or somebody in the staff about this. I am basically incapable of translating the map’s cartesian coordinates, which are stored in a file, to the coordinate system of Processing.

I’ll update if I happen to find a solution…

 

 

 

 

 

 

 

 

Beans of coffee being produced this year

Following up from the previous post, the Processing application I wrote is the first step towards making a semi-decent visualization of coffee production in the world. As I failed miserably to embed the applet in the blog, I’ll just drop a screenshot of it:

Based on data from the International Coffee Organisation, the application displays in real time the number of coffee beans produced this year in the world. The next step is doing this in a map, which is going to give me an incredible amount of headaches, I’m sure.

By the way, to the programmers in the room: is there any elegant way to get rid of the decimal zeroes in really large floats like this? I wasted too much time trying to figure that out.

Here are also some sketches I made to design the app. Obviously this is really basic programming stuff and some of you may even wonder why would I write down such obvious things, but for me it was a great way of structuring what to do.

 

Testing a plugin for embedding Processing applets

Continuing with the coffee project I’ve been doing a couple of scripts (remotely) related to the brief of the project. After exporting a more or less finished version of the work, the problem was to efficiently embed it in the Junction (such a cool name for a blog; my future children are sooooo lucky…). Fortunately there’s some guy out there that already thought about that and designed a plug-in for WordPress to include Processing sketches inside posts. Here’s the test:

Not working. That was surprising.

EDIT: Moving on. I’ve already wasted too much time in this bloody piece of shit.

I think

There is a point in every to-be-programmer learning curve in which they feel comfortable with the very basics of the language and the methodology (i.e. writing algorithms, creating loops quickly, finally being able to stand arrays, using APIs…), so they feel like they can write basically anything that comes to their mind.

I think I’m at that stage at the moment learning Processing, and it’s quite a satisfying thing to know how to deconstruct something into steps and transfer it into code. But then reality hits me when it comes to compiling the program. When you start seeing errors everywhere -and not the ‘maybe I missed a semicolon’ kind of error; logical, ‘everything goes well according to the console’ errors, that’s when the whole situation starts to get frustrating, ending up in me swearing and closing Processing.