Penner easing for c++

September 24th, 2007 español

As I said last week, I’m also using robert penner’s easing equations in openFrameworks, so I’ve ported them to c++.

This has been relatively straightforward, but, as with the actionscript to java conversion, I’ve run into some nuances between languages and I’ve definitely learned the hard way (read “wasting some hours of my life”) why pre and post increment operators can be evil.

Grab them here

For usage, you can have a look at the openFrameworks app provided. If you want to have a quick glance at the types of movement, see the easing applet (p5 version).

Being this a programming exercise, it will have improvable things for sure. I’m thinking of some, but if you know anything, please let me know.

tags:

taking notes about what you are listening to on last.fm: the hacky way

September 17th, 2007 español

Some time ago, I wondered how could I take some notes about the music I was listening to.

After having a look at the last.fm player source code* I instantly saw what a stupid thing I had suggested. In no way I’d be able to figure out that bunch of c++ classes (not that it made any sense to try, just to implement such a simple thing).

I thought of some other alternatives, mostly involving desktop widgets, but as far as I could see, none of the options could cover both my local music and the last.fm player (for when I’m listening to radio). I gave up the idea.

But one day, while sending a recommendation to a friend via the player I realized that I could write some text in that text box. Could I send recommendations to myself? Yes. And how could I take those recommendations out of last.fm? Luckily, they offer an rss feed for manual recommendations in their web services.

auto recommendation on last.fm

So I hacked together some code that parsed my recommendations and sent the ones with my username to my helipad notebook (not public, so I don’t have much to show). I set up a cron job and… You can see that I still use it in my rss feed.

The code is so trivial (and so tied to helipad in my case) that I’m sure you can do it better quickly, but in case you are interested, I could try to clean some of the php mess and send it upon request.

Although they are kind of personal, I’ve been thinking of publishing the notes directly here, since the rss feed is public anyway (and explicit sharing can improve your personal content, I think)

As a side note, I think last.fm could get some value of implementing such a thing. On one hand users could get some sort of musical microblogging, like a contextual twitter. On the other hand, since the info is always from last.fm, it could really enrich artists, songs and album pages, and more seamlesly than the current shoutbox, in my humble opinion.

* yes, I learned how to use subversion. Now I can’t live without it.

tags:

penner’s easing equations processing library

September 16th, 2007 español

Being an actionscript head, I’ve frequently used rober penner’s easing equations in processing*. To avoid copy/paste each time I’ve packed them as a processing library.

While I was at it, I discovered a couple of implementations (1, 2), but I was almost done, and wanted to learn how to make processing libraries anyway.

So in the hope that it is useful to somebody, here it is:
http://jesusgollonet.com/processing/pennerEasing/

*I’m also using them in openFrameworks, so I’ve begun porting them to c++ too. They’ll be here when I’m done.

tags:

actionscript 3 syntax highlighting for jEdit

August 28th, 2007 español

Still happily living on jEdit for most of my scripting. I haven’t found an actionscript 3 edit mode, so I’ve made one. It is based on the original actionscript.xml and the Flash CS3 AsColorSyntax_3.xml file so it should have everything you can see colored on the IDE.

This edit mode doesn’t have any as2 specific keywords, so if you have to work on as2 don’t delete the original. Otherwise, you can just replace your original actionscript.xml file (you’ll find it problably in “c:\program files\jEdit\modes” if you’re on win xp) with this one. Make a backup of the original, just in case.

Grab the actionscript 3 edit mode for jEdit

tags:

php and mysql in different time zones

April 13th, 2007 español

Just a quick code tip for working with dates in mysql and php.

I’m building a script to regularly mirror my last.fm recent tracks to a mysql database of my own. I’m interested in experimenting with daily and hourly statistics.

One problem that has taken me some head scratching has been the fact that the last.fm recentracks web service gives me the date a given track was played in a timestamp of my current timezone (+02:00 , Europe/Paris, as I’ve just learnt), but my web server is on a different timezone (-05:00, America/Los_Angeles), so when I try to insert a date in the database, even though I’m giving it a timestamp, it gets interpreted as being 7 hours less than it actually is. So a track played at let’s say 31 Mar 2007, 23:55 would be stored as having been played at 31 Mar 2007, 16:55. Not good.

Not wanting to fiddle with configurations or anything beyond my knowledge, I discovered that I could set the timezone in both php and mysql for a given script or db query.

Setting the timezone in php

If you want to know which timezone your server is in, you can guess it with


date_default_timezone_get();

Which should give you a string like “America/Los_Angeles” or any other of the supported timezones list

If it is different than your desired timezone, look for the one you want in the list and before doing any time operation, call:


// set your timezone as gmt +02:00
date_default_timezone_set("Europe/Paris");

From then on, all your php code should understand timestamps and dates in that timezone.

Then for mysql use CONVERT_TZ

Even though it is corrected in php, you’ll have to do it also when inserting information on you mysql db, because it will interpret timestamps again in its time zone. You can guess which is it by having a look at the system time zone variable.

In my case, after trying some hacky alternatives I discovered CONVERT_TZ in one of the latest comments in this post

From the mysql manual


CONVERT_TZ(dt,from_tz,to_tz)

CONVERT_TZ() converts a datetime value dt from the time zone given by from_tz to the time zone given by to_tz and returns the resulting value.

You have to pass it the timestamp, current timezone (’SYSTEM’ is the server time zone) and target timezone and it happily converts between them.

So now my query would look like this:


$query = "INSERT INTO recenttracks (artist, name, url, date, type)
	VALUES ( '$lastFmTrack->artist',
	'$lastFmTrack->name',
	'$lastFmTrack->url',
	CONVERT_TZ(FROM_UNIXTIME(’$lastFmTrack->playDate’), ‘SYSTEM’, ‘+02:00′), 
	‘$lastFmTrack->type’)”;


Basically that’s it. Hope it is useful for someone.

Mind you, I’m nothing of an expert in php or mysql, this is just a method which worked for me. Corrections are welcome.

tags:

synesthesia

February 23rd, 2007 español

The books are to music what retrovisor is to design.

And I love both

tags:

emulating toshio iwai

February 11th, 2007 español

This is an attempt at emulating a simple but beautiful piece that toshio iwai showed at the last ars electronica. Basically a video is divided into different portions and each of them is delayed by a certain amount of frames.

Thanks to the magic of openframeworks, it is realtime video.

versioning-toshio-1

versioning-toshio-2

versioning-toshio-3

More explanations, some code and a video coming soon.

tags: