Pavol Rusnak #cypherpunk #hacker #openhw #privacy #bitcoin #newmediaart

Daisy Plasmoid - A dock for KDE 4

From time to time I use Mac OS X and I really like the application management with its dock. I came across several different implementations for KDE 4, but they were usually too immature and not very pretty. I was very surprised when I finally found a decent implementation called Daisy. I immediately dropped the default KDE taskbar and started to use Daisy in conjunction with desktop effects “Box Switch” and “Present Windows” a.k.a Exposé. You can look at my setup here (only bottom 64 pixels are shown, the rest is usually occupied with maximized application):

daisytray

Daisy detects running instances of applications by Window Class, so it doesn’t try to start another instance, it rather activates the already running one. The experience is very similar to the Mac OS X one, but still, there are three problems:

  • I still have to use the panel for Battery Monitor and Device Notifier widgets
    • Daisy could act as a host for other widgets and show them as icons
  • Applications started manually (e.g. with KRunner) do not appear in the dock
    • Daisy could act as a taskbar and show icons of all running windows
  • Applications like instant messengers or IRC clients use tray for notifications
    • Daisy could act as a tray and replace the launcher icon with the one added to tray by application after its start (so it will flash in the dock)

Once these three points are met, Daisy will become a complete counterpart of Mac OS X dock. I’ve already written these suggestions to Lechio (upstream developer), but I’m not sure if this is the direction he wants to go and whether it is possible to do without any extra hacks at the KDE/Plasma side. (I’m sure that Lechio will accept any help :-) ) Anyway, have a look at the project page, KDE-Look page or try the plasmoid from the Build Service. The package is called plasmoid-daisy and is present in KDE:KDE4:Community project.

openSUSE users collage

Today I stumbled upon blogpost by Andreas Gohr called identi.ca Mosaic. He took 30.000 avatars of identi.ca users and created a mosaic from them using the metapixel software. What a great idea! How about doing something similar for openSUSE folks?

We hadn’t metapixel packaged in openSUSE, so I created the package in Contrib repository. Then I started collecting the avatars of openSUSE users. I searched both twitter and identi.ca for messages containing “opensuse” and added the authors’ avatars to the pool. Identi.ca also has groups, so all members of openSUSE group ended there as well. Facebook contains both openSUSE group and openSUSE page so I grabbed all avatars I found there too. At the end I was able to collect 3760 avatars of people using or interested in openSUSE!

I started experimenting with metapixel, but because I still had 10 times less images available than Andreas, I was not able to produce very good results. Fortunately, I discovered -c option, which tries to create a collage instead of a mosaic, which looks much better. (Mosaic has photos arranged in a rectangular grid, while collage does not.) After some fiddling I was able to create the following pictures. I hope you like them! :-) (use right click and “Save as” when downloading hi-res images)

opensuse-users-collage-1024

hi-res: 6000x3754

opensuse-users-collage-2-1024

hi-res: 6000x3750

If you’d like to play with the parameters I give you the tarballed avatars (6 MiB), original images (1 MiB) and the command lines I used to produce the image:

tar xfj opensuse-users.tar.bz2
tar xfj collage-sources.tar.bz2
mkdir ./opensuse-users-ready
metapixel-prepare --width=48 --height=48 ./opensuse-users ./opensuse-users-ready
metapixel -c -l ./opensuse-users-ready -w 48 -h 48 -m wavelet -d 500 -e global --metapixel opensuse-logo-6000.png opensuse-users-collage.png
metapixel -c -l ./opensuse-users-ready -w 48 -h 48 -m wavelet -d 300 -e global --metapixel chameleon.jpg opensuse-users-collage-2.png

Enjoy! (Don’t forget to install metapixel package from Contrib.)

Update: Lubomir Rintel tried to do a similar collage for Fedora users, check his version.

Hackweek: Game Store

hackweek4

This week we had Hack Week event when everyone was welcome to use Innovation time on FOSS projects or even start the new one! I spent most of the time on hacking the Game Store, which I introduced in my previous blogpost. The package is now ready for you in the Build Service.

Simply use the following One Click Install files (openSUSE 11.0, openSUSE 11.1 and openSUSE Factory) or add the games repository and install the gamestore package manually. Game Store uses this repository to download the games, so you should stay subscribed to it after the installation too.

As a bonus I created a very simple One Click Install files catalog which imitates the Game Store look. It is available at gamestore.gk2.sk.

The screenshots for both versions (left Qt, right web) are here so you get the idea how it looks, but the best thing is to try it on your own! :-)

gamestore-qt

gamestore-web

Big thanks go to randy-sk who helped me with harvesting of icons and screenshots of the games. I am already looking for your feedback! :-)

Game Store

I was adding some new packages to our games repository in openSUSE Build Service, when I realized that we have over 150 games at this one centralized place! Wouldn’t it be great if there was an application which would allow users to browse through games, filter them by genres or names, view the screenshots and read the information about the games? Players usings Windows can already use “Games for Windows” or “Steam” from Valve, but they also have to pay for the majority of the games. All games in our repository are free and just one click away! I started to hack an application with pretty concrete idea in my mind. You can look at the result of my efforts below (left Games for Windows, right Game Store):

games_for_windows

gamestore

As you can see, Game Store is at the moment quite immature Qt application (actually it is my first Qt app, so my Qt skills suck pretty much right now :-) ), but it is already able to load locally stored XML together with game icons, screenshots and descriptions. User can install new games (using our great One Click Install feature) and launch the installed ones. Later I want to add the ability to synchronize your games settings (configuration + saved games) with Game Store server, so you can have these on any computer and the server could create a hi-score charts for every supported game. There is a long way ahead to go, but I wanted to approach you very early, so you could be involved too. Even if you don’t speak C++ or Qt, you can help us with filling the missing descriptions, gathering game icons and screenshots. Just read the GameStore wiki page to get the idea what needs to be done or clone the git repo and start hacking right away! :-)

Thank you and I hope that GameStore will be a great addition to other openSUSE applications and tools we already have!

Update: See the next blogpost for more information.

Wireshark 1.2.0 with GeoIP support hits openSUSE Factory

A few days ago, the new stable 1.2 branch of Wireshark, the network protocol analyzer, was released to public. It contains many new features that has been added since 1.0. The most vivid are:

  • Wireshark now contains a nice new start page (Picture 1)
  • Display filters now do auto-completion (Picture 2)
  • Wireshark can lookup in GeoIP databases and also use OpenStreetMap (Picture 3)

wireshark-start

wireshark-autocomplete

wireshark-map

The release contains also a lot of bugfixes, support for the new protocols and the new capture files. You can find more info in the release notes.

If you want to test GeoIP/OpenStreetMap integration in Wireshark, just follow these steps:

  1. install the latest wireshark and GeoIP packages from Factory: zypper install wireshark GeoIP libGeoIP1
  2. run the utility which was recently added to GeoIP package by Ludwig Nussel: geoip-fetch -a This will fetch the latest GeoIP data files including the GeoIPCity, which is 44MB large, so we don’t keep it in the package, but is necessary for this feature of wireshark.
  3. run wireshark and enable GeoIP: Edit -> Preferences -> Protocols -> IP -> check Enable GeoIP lookups
  4. trace some network traffic (probably the best is to access various websites in your browser)
  5. pick some packet and expand Internet Protocol from dissector, you will see a line similar to this one: [Destination GeoIP: Mountain View, CA, AS15169, 37.419201, -122.057404]
  6. go to Statistics -> Endpoints -> select IPv4 tab
  7. you’ll see IPv4 endpoints with Countries, Cities, Providers and Latitude/Longitude
  8. press Map button at the bottom of the dialog window
  9. browser with OpenStreetMap and embedded Endpoints will open (see Picture 3)
  10. you can also use new packet filters starting with the ip.geoip prefix (see Picture 2)