The need to code "something completely different" made me do Background Shuffler - a beautiful background changer for Gnome. I wanted to extend the UNIX philosophy to desktop applications so Background Shuffler only changes your background. It does not make coffee.
So I spent a few days hacking and with the help of great tools and libraries like Quickly and appindicator I managed to build this nifty little program that I'm using all the time now.
Features:
handle all through the indicator icon. No mysterious script running in the background, retain complete control over your desktop at all times
make the backgrounds change as quickly or slowly as you like
integrates with F-Spot, so search for certain tags or ratings
optionally specify a folder that will be searched with photos
But I guess screenshots explain a thousand words.
It runs in your indicator area! A more ubuntu-dark-stylish icon should added at some point.
School is out so I have a bit more time on my hands now. I've been slacking in my own field as my time has been consumed by random mexican studies and other stuff. To make up for that I started experimenting with Equalizer, and today I managed to get a simple OpenGL-thing rolling.
See the video. It's dead simple and currently running on my Asus eee 1000HE (hence the slowness!), but it could easily be running on 4 separate computers connected to projectors (for instance).
Did my first Openframeworks sketch to show something during a 20min speech in Spanish that I gave about Medialab and TaiK in general. Took me around one day to make it and it was fun. Performance is much better than with processing (have done a similar thing w/ it too) and coding in C++ isn't such a big pain.
calmate
I've also started working more and more on WELP - the Wellbeing Profile service that is based on the Koulun hyvinvointiprofiili -concept we built years ago. We're currently looking for funding, but the current lack of it won't stop the development process..
Regarding México, I've taken salsa clases (just came back from one), continued other studies (art, history, politics and literature of Mexico ,and fotography). Today I'm off to a rock concert and next week is the 'puente' (=bridge=free days from school) due to the Méxican día de la independencia. We're going to Oaxaca. Can't wait!
Silently we (me and Jari Suominen from Medialab) released PENALTI - a fun ball racing game that uses the accelerometer available on many symbian (s60) phones. The idea started from mlab's Rapid Mobile Prototyping workshop and was fueled by Nokia Forum Game Development challenge.
We did a few days of intensive coding and submitted our game. Didn't win the whole thing, but we were the best in TaiK (dunno, if anyone else participated :) ). Prize? A Nokia 5800 phone. Suits me fine, since my trustworthy ericsson is falling apart and the N95's from mlab don't suit my style. I'll just use it until I get my hands on an android phone..
Thanks to the symbian effort of making installations as hard as possible, you'll need to do some work to get penalti working. Mostly just installing a few extra applications. Get the game and the instructions from the site.
After a few days of tinkering and a few days of waiting for the right parts to arrive I've finally managed to connect an Arduino board to a Nokia N800 internet tablet. First steps towards the Mlab robot.. I was really happy to find out how hackable the internet tablets are! Although there are numerous tutorials around the web, I'll put a short description of what I did before I forget:
Steps to connect N800 to Arduino
update N800 to OS2008
install rootsh to gain super-user access
install USB Control (enable Chinook Extras repository)
enable host mode through usb control
get a female type A-female type A USB connector. You might need to solder your USB-USBmini cable a bit if it's only slave mode. I bought one cheap from and it seems to work both ways out of the box. I guess you can also use an external power source if you don't want to solder your cable(?).
get PySerial and install it. You can also just copy the python module from some *nix computer (I just copied mine from my linux box)
run this:
import serial
ser = serial.Serial('/dev/ttyUSB0', 9600)
while 1:
print ser.readline()
you should see whatever your arduino chip is printing.
Voilá! You have a connected a very flexible development board with a very hacker friendly, touchscreen enabled linux computer! Think of the possibilities :)
So the Helsinki Medialab demoday came and went. It was great. Again a chance to see loads of mlabbers in one place and a variety of inspiring projects.
This time I had something to show as well. A simple idea based on photo compositions. In short I created scripts that downloaded all the mlabber photos from the net, analyzed them and created copies of them by composing all the images together. Then I created a Processing visualization using some of the OpenGL stuff it provides. Below is my image composed.
Me made out of 1024 mlabbers
I also wanted to play around with electronics. Had a very hard time trying to think of a clever way of using them with this composition project and in the end didn't come up with one. Instead decided to create a simple UI to the visualization.
The end result was the magical milk can. Rotating the can controls the rotation of the images, moving your hand towards the bottom of the can makes the images fly faster. Simple, useless, confusing but a lot of fun to create and use.
Piece by piece I've been improving my home setup consisting of a laptop(mac), desktop(linux) and small server(fit-pc w/ linux). I'm fairly happy with what I've got now. Not only does the small server run '''trac/svn/lighttpd+php''' for development, it also serves as a backup server through a few '''rsync''' scripts running over ssh and a torrent downloader via '''rtorrent'''.
Once the linux wlan drivers support master mode, I can also use the box as a WLAN access point, getting rid of one more appliance.
One very pleasant thing I just accomplished was setting Pulseaudio to run as a server. Now I can either play music via MPD or stream it directly from my desktop (and it's dead simple - I just pick the output sink with a few clicks). Reminds me of the streaming support in apple airport stations, which I always thought was cool. Of course Pulseaudio does this and a lot, lot more.
Now I'm just waiting for the Android phones to hit Finland.. then my - by then self-aware - home audio system will be complete (except for obvious bits, like good speakers and a decent amplifier)..
Ordered myself a fit-pc from Compulabs from the States. Thanks to the weak dollar it was more cheaper to order it from there than from Sweden. I was first excited about getting myself a Bubba server, which would have been nicer since the shop which makes them is Swedish but technically Bubba is missing a lot of the things that fit-pc has, while consuming more power in the process (not a lot though).
Now I need to come up with a purpose for my fit-pc :). I guess I'll cram a 250GB HDD into it, install gentoo (need performance) and tweak it to run as a wifi-router/backup-server/web-photo-server/automatic-backupper/audio-player/bittorrent-downloader -mean-machine. It's claimed to be powerful enough to play basic divx-clips, but I'm not planning on putting myth or anything on it.
Long time since last post.. things have accumulated in such fashion that I'll have to do this one braindump.
First off if someone was wondering the weird Turkish pages that replaced all index-pages on sokkelo, the reason was that our webhosting provider was hacked by some Turkish script-kiddies (damn kids). Apparently they got in via a hole in their software (not a direct attack against sokkelo). Luckily only index-files needed replacing.
Secondly I've posted my first processing experiments here in case someone is interested. The sketch in question takes photos via the webcam and allows you to draw over them with a laser pointer (or mouse, if you can't project the image anywhere). Kinda works like the Graffiti Research Labs Laser Tag system except we don't do perspective correction and they don't do photos. The thing was used in our official MLAB-party that kicks off our studies in HelsinkiMediaLab. Our Flickr MLAB-feed is now cluttered with "art" created by people at the party (we had automatic flickr uploading through a python script).
Here's one work just as an example. Download the sketch here. Let's say it's licensed under GPL.
I've finally managed to integrate "Kassi" - my new blog engine that is already in use at kommari.net - on my own pages. This will give me the opportunity to easily upload photos and text written in Markup.
The main motivation to get this working as fast as possible was my trip to Hong Kong, Malaysia and Cambodia that begins tomorrow at 3AM. Hopefully I'll be able to send photos and write something during the adventure.
Just testing image submission
[EDIT] Oh yeah.. forgot to mention that the pages themselves got a facelift as well. [/EDIT]
My sister wanted a blog and me being what I am, didn't even consider using a something solid and ready like wordpress, but instead used the opportunity as an excuse to build a new improved blog system.
Codenamed "Kassi", the new blog system combines some new things I've wanted to have in KISSblog. First of, it's tag-based so classifying posts is a lot more flexible. Secondly it's based on the idea of *pieces*. All posts are a collection of pieces and those pieces might be text, markup, images, videos, etc.
Backend code is written in PHP5 and database connections are made via Adodb so the system should support a wide range of different databases.
The whole system still relies on the same principle as KISSblog, where you need to build your own display code in PHP to get the posts visible on your page. I see homepages as something very personally styled and don't see an idea in creating a default blog page at this point.
There is an integrated AJAX-powered and scriptaculous animated frontend for posting however, so using the system just involves putting the libs in place and placing a foreach-print somewhere on your own page.
I'll create a release of some sort once I've imported my own blog to the new system. Still considering releasing the software under the name Kassit instead of ''Kassi'', which would be a bit more fun for those who understand Finnish :)
I've spend some time lately looking into the source code of Screenlets - one of the many desktop widget/desklet/gadget -solutions available on Linux these days.
At first I was a bit skeptical because screenlets are just basically small python classes based on the Screenlet-superclass. Compared to the easy XML-syntax of gDesklets or the syntax that SuperKaramba uses this solution might be a bit harder to use for widget developers. However I've come to the conclusion that the idea might not be a bad one after all.
Python is a very easy language to use and by removing the additional step of converting the widget-markup into python code, the application becomes more stable and faster on startup. Of course this makes it harder to keep malicious widgets out because all screenlets have access to all the python modules, but on the other hand it does not limit the screenlet-developers.
I'm anxious to see where this project goes.. currently it seems a bit closed (no SVN, no real website) and the code needs some improvement and additional features (I already tried to help w/ a patch). I'd start thinking about a solid API at this point so that screenlet-developers could work in peace.
If there would finally be a great, cross-desktop, free widget engine. Time will tell..
Did the mistake of checking my new pages through IE and noticed how messed up they were... After a bit of tweaking I got them working ok. Thanks to the excellent IEs4Linux-project I did not have to enter window$ to fix the issues.
I found a nice snippet for fast IE-detection and used that to disable decorative png-pictures that are relying on transparency. I also had to make the side menu's position "absolute", because "fixed" just does not work on IE<7.
Unfortunately the gallery won't work nicely with IE6. It does however work on IE5.5. I guess they just broke the overflow-property at some point :-P .
While attending a lecture today, I got the idea for a very simple video player that uses the Gstreamer framework. I know Totem, but I was thinking about something more like Mplayer, but with Gstreamer as the backend..
Could be a nice idea for a small project.. perhaps I'll write one at some point. The basic requirements would be:
Use playbin inside gstreamer to play all media files gst supports
When the user clicks on a video clip, only a window playing it will appear. Nothing else. This is the thing I love about mplayer!
OSD-support for displaying status, volume, etc. (like mplayer). BUT perhaps with interactive OSD elements like buttons.
A context menu that appears on right click. This should be the only toolkit dependable part (Qt, GTK, etc.).
If the user does not supply a target clip, the window will play a non-intrusive, but cool usage-video (like tips on a black background).
Interested? Wanna help? Contact me -> lauri at sokkelo dot net
building the DD desklet. It is quite complete now, but a few last moment interface changes are still not implemented
continuing on the DD control which is now capable of parsing display files and seeking for installed desklets.
This week I'll...
continue on the DD control. A lot of work still remains (network transparency, installing, activating, etc.). I'll see how much I can accomplish since the 040 prototype is still quite useless.
finish off the DD desklet.
That should make it possible to release a test-version for the stable gD by the end of the week. All the features (like "groups") are not available since the old 0.35 version of gD does not support them.
Just spent a few hours trying to debug a site in windows. The site in question is this - a simple site using a few of the KISS-libs. On firefox there were no problems. Even the javascript console was quiet. BUT looking at the page with IE (the one that comes with XPSP2) the pages were totally blank.
After I found out it was about the JS in the page, I tried getting Javascript debugging to work in IE according to some instructions found from a msdn-blog.. didn't work.. finally through painful trial and error I found that the problem was that...
IE can't handle script elements that don't have a separate closing tag :-P . So you can't use <script src="blaa.js" />. Instead you have to use
<script src="blaa.js"> </script>.. and this is the browser with the biggest marketshare.. oh please..
Added KISSsmilies to the ever-growing KISS libraries. It will convert all "ASCII-smileys" into image-elements. Just like this :) :-D 8-) .. Ooooh :-o ! This just opens new worlds ;) !
.. and everything is done via javascript, so the work of conversion is done by your computer, oh gracious viewer :) .
Bought a new(used) phone from huuto.net. The model is Sony Ericsson k750i. My first non-Nokia phone and I have to say I'm quite pleased. Don't even need windows for importing mp3s into it, it shows up nicely as a remote card reader on my Ubuntu Dapper.
The only problem is syncing with Evolution, which is currently impossible(?). I hope this gets fixed, as it would be very nice to share the calendar and tasks between the laptop and the phone.
And in other news: I got into the COSS kesäkoodi final (google summer of code kinda thing)! The final will take place next Tuesday in Helsinki. I hope I'll get the job (and good luck to the other contestants).
I don't know why, but the only constant seems to be change when it comes to my homepages. I just needed an excuse. This time it was all the hassle with summer jobs. "I need to update my home pages so that I can get a job for the summer".. Yeah.. right.. Anyway here it is. Lauri.sokkelo.net version XXX. At least the header changes randomly now :).
Yesterday I finished the last bits of Pet Hotel - the client management system for pet hotels. Programming GTK with Python was fun and fast compared to doing Java or Win.Forms stuff.
I'll make a webpage for the program and put it there (it's GPL). Don't think it'll help a lot of ppl, because it's designed for such a specific purpose, but just in case...
We did a new contract with Opetushallitus and continued work on Koulun Hyvinvointiprofiili. We decided to go more pro this time and I installed Subversion and created a repository for the project. I also changed from using Bluefish into using Eclipse with phpEclipse. Bluefish is an brilliant editor, but I just wanted to try Eclipse for a change (and this far eclipse seems even better).
PetHotelCMS is a Client Management System I'm making for a pet hotel. It's quite simple but has a few nice / advanced features such as a client - server -architechture that allows multiple clients to access and modify the client database. Currently the database is MySQL but using any other DBAPI2.0 compliant db should be no problem.
..and it's a python project. The client will be implemented on python and gtk (once i manage to desing the interface), so it's linux only.