2006-05-25

Theming is my actual pleasure

Xfwm4

I did some theming around the original theme of Xfce 4.4.

All I wanted was the title bar to be a bit smaller. I managed to reduce it from 6 pixels. Then I simplified the buttons. The work was quite long with redundant actions, well it is what it is. Now I have my theme :)

I posted my modifications at Xfce-look.org.

ajaxMP

I also did a theme for ajaxMP a little time ago which is based on Xfce-dawn theme (which is my current theme moreover). ajaxMP is a web interface for Music Daemon Player. I already mentionned it in the post "My current apps".

I am also working on a web design in black for a french rap production. They have very good instrumentals and I am sure the CD they are producting will kick ass. However I prefer good old Pink Floyd at this time.

Cheers.

2006-05-22

Feed2rss filter in Python

Hello,

As I am trying to get used to snownews I ran into the need to convert atoms(?) from Blogger.com in rss(?). Why? because snownews only supports RSS. I was telling to myself "YZAH, I'm gonna try out Ruby" but after 2 minutes I (re)turned to Python :)

Feedparser is excellent and is available for Python as for Ruby. It can handle any types of feeds and you will be able to output the information as you want.

The script I wrote can be used by two ways.
  • You can choose between giving it a URL:
    feed2rss.py http://mmassonnet.blogspot.com/atom.xml
  • or passing it the content of a feed through a pipe:
    curl -s http://mmassonnet.blogspot.com/atom.xml|feed2rss.py

#!/usr/bin/env python
#-*- coding: utf-8 -*-
# Parses an atom file and generates an RSS1.0
# Author: Mike Massonnet (mmassonnet) <mmassonnet at gmail dot com>
# License: GNU General Public License 2 and above
# (cf. http://www.gnu.org/licenses/gpl.html)
from feedparser import parse
import sys

if not len (sys.argv) > 1 and sys.stdin.isatty ():
sys.stderr.write ('Usage: '+sys.argv[0]+' <url>\n')
sys.exit (-1)

if sys.stdin.isatty ():
d = parse (sys.argv[1])
else:
d = parse (sys.stdin)

if d.bozo:
sys.stderr.write ('Bad URL\n')
sys.exit (-2)
print '<?xml version="1.0" encoding="utf-8" ?>\n' '<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"\n' ' xmlns:dc="http://purl.org/dc/elements/1.1/"\n' ' xmlns:admin="http://webns.net/mvcb/"\n' ' xmlns:content="http://purl.org/rss/1.0/modules/content/"\n' ' xmlns:cc="http://web.resource.org/cc/"\n' ' xmlns="http://purl.org/rss/1.0/">\n' ' <channel rdf:about="'+d.feed.title_detail.base+'">\n' ' <title>'+d.feed.title+'</title>\n' ' <link>'+d.feed.link+'</link>\n' ' <description>'+d.feed.subtitle+'</description>\n' ' <dc:language>'+d.feed.title_detail.language+'</dc:language>\n' ' <dc:creator>'+d.entries[0].author+'</dc:creator>\n' ' <dc:date>'+d.feed.modified+'</dc:date>\n' ' <admin:generatorAgent rdf:resource="'+d.feed.generator_detail.href+'"/>\n' ' <items>\n' ' <rdf:Seq>\n'
for entry in d.entries:
print ' <rdf:li rdf:resource="'+entry.link+'"/>\n'
print ' </rdf:Seq>\n' ' </items>\n' ' </channel>\n'
for entry in d.entries:
print ' <item rdf:about="'+entry.link+'">\n' ' <title>'+entry.title+'</title>\n' ' <link>'+entry.link+'</link>\n' ' <description><![CDATA['+entry.content[0].value+']]></description>\n' ' <dc:date>'+entry.updated+'</dc:date>\n' ' </item>\n'
print '</rdf:RDF>\n'

Now when I add an atom feed into snownews I apply this filter and that's all folks ;)

2006-05-17

My current apps

Hi,

I am gonna show you my more commons applications. This will include: desktop environment, email client, chat, music, browser, news aggregator, file manager and other thingies.

Desktop Environment


It is Xfce! No you didn't guess it? even with all my Xfce related links? :-) Well I like it. I am currently using the svn version which is gonna be the next stable release, version 4.4. This also means that the svn won't see new features which could broke the code before the release.

See here how to install from svn or get the 4.4Beta1. The Beta 1 will also be available in Debian/Sid as soon as some libs get out from the NEW state.

I have a moveable panel with worspace margins. If I am missing a workspace I just type ALT+Insert. At the opposite I type ALT+Delete ;) There are nice plugins for the panel. I am using the window list plugin to not feed my display with a large panel and buttons of applications on it. I have a clipboard manager for the default and primary clipboard. There is a box execution which does autocompletion and history: verve. There is also a systray box and clock plugins. Furthermore there are monitoring plugins for network (netload), system (systemload and cpugraph) and sound (xfce4-mixer).

Email Client


I am completely amazed with Sylpheed-Claws 2.2. It does the GNUPG signatures and encryptions. It supports filtering and, something new I learned from it, treatments on folders when you enter them, for instance it is very useful to move old emails into archives. It has a systray icon and I have setup a `playsound new_mail.ogg` when I get new emails. You can read the different parts (mime types) of an email just by clicking on buttons on the side (useful for HTML docs or attached patches). I like it, actually it is ass-kicking!

Chat (IRC, Jabber)


irssi and Gajim are my all and one at the moment.

irssi always fits into a screen, and if it is not running, this is my command line: screen -S irssi irssi, and next I will be able to detach, attach, reattach, multiple attach it in any Terminal I want. Recently I received a nice screenrc from omp. With this configuration I am able to see the numbers with names of the windows at the bottom (this rocks!). In irssi you can easily add a server or a channel to auto join, an alias or set the layout. Just type /help for this commands, or better, just type /help ;) My preferred theme is madcow.

Gajim is a very good client for Jabber. It supports avatars and tabbed window chat (you can detach them of course). The file transfer works fine. Its interface is fancy and simple. For creating or adding accounts it has a three steps wizard. Oh, and maybe the most interesting aspect, it uses dbus and has a gajim-remote python script so you can command it from your own scripts.

Web Browser


As a browser of today which supports CSS, HTML, Javascript, DOM, and all the latest stuff for the web, I use Firefox. It has some very useful extensions: CustomizeGoogle, Adblock, Gmail Notifier, NoScript, Add N Edit Cookies, Web Developer, Live HTTP Headers, del.icio.us, Parent folder.

Another nice graphic browser is the one from Gnome: Epiphany. Its engine is also Gecko. However it is slow in rendering big documents (like 20 pages).

Next comes Dillo. It is my first choice because it shows up very quickly and doesn't support CSS, so you just have to scroll to the text and read it black on white :) It supports bookmarks in a nice way.

Then comes the text browsers: links (it has a graphic mode in X11 as in frame-buffer) and lynx. links supports Javascript while lynx doesn't... that's a point enough for me to have both :o)

News Aggregator


Liferea is a nice shot. You can add virtual folders to match strings on the whole news. It is very nifty to filter out topics you want to read ;)

snownews is an alternative for console-addicted.

File Manager


I'm using Thunar for a while now. It is really nice for managing images and launching videos. I have some customized actions for file types and directories (i.e. for music folders, images, opening a Terminal or archives).

It supports: mouse gesture, thumbnails, multiple views (Icon, Tree and Compact), bulk renamer for simply rename multiple files, file alteration monitor (Gamin or FAM), plugins, ...

And everything goes faster ;)

Music


The last month I tried Rhythmbox from Gnome and I didn't ended up with it. I just don't remember exactly why but I think it was because of its interface and it was the first time I saw a player without "Stop" (you will understand later ;).

Next I tried Musid Player Daemon (MPD in short). It is very attractive. It is launched as a service at boot time just after I mount my LVM devices, and starts playing. YAY, you don't need Xorg! There are many clients for MPD. For example mpc is a command line tool, fantastic for scripts. Then there is ncmpc which is a ncurses interface to control your music. Next there is gmpc, it is a simple GTK+ interface with plugins like covers, lyrics or OSD. Finally you can have web based clients. I tried ajaxmp for a better experience. It supports drag'n'drop and all possible MPD stuff. A must when you are not working on your usual desktop environment :)

As of today, I'm using Quod Libet for less than a week ago. I tried it and directly understood that this is the Multimedia Music Media Player For Lot Of Music player I want :) I didn't use all of its possibilities and features yet but it manages a collection, just like Rhythmbox and MPD, shows covers, fetches lyrics, make notations, looks pretty good, has no "Stop" button (I'm used to it now:), does cool things like playing random albums, has a lot of views and has a lot of plugins. It is promising :) Its OSD just rocks bottom. I can flood IRC with `quodlibet --print-playing` . It is definitely the coolest music player I ever had.

Id3 tags can be edited rather with EasyTAG (MP3, MP2, MP4/AAC, FLAC, Ogg Vorbis, MusePack and Monkey's Audio files), Quod Libet (Ex Falso) or a plugin for Thunar.

For console-addicted I can list: mpg123, ogg123 and mp3blaster (OSS driver) which provides a nice id3 tag viewer tool: mp3tag. playsound from the libsdl-sound package is also fine.

Thingies (rather unclassed)


Here I am gonna list some useful tools very quickly just to name them and to conclude with a nice paragraph ;)

Evince and xpdf are cool pdf viewers. Stardict is a cool dictionnary. GNU people are cool, don't hit them with stupid questions, RTFM instead. A hacked Terminal is worth a try, personnaly I changed the alpha color value from #aaa to #ccc because this way I can read something. XMoto is a funny and simple game but Noiz2sa is a must game. lftp is a good ftp client which looks like a shell. gcolor2 is a cool color selector. mplayer, VLC and Totem are good video players. Vim is useful. K3B, Gnomebaker and Xfburn can all burn CDs and DVDs. Pan and tin are for USENET. The GIMP can do cool stuff while GQview is a nice image explorer. Devil's Pie is a good window matching utility. Inkscape can do some complete vector graphics. MOC is yet another good audio player for the console. htop is a nice process explorer.

In conclusion


As you can read I cover most of all my needs with Xfce4.4. I don't wan't a desktop dependant environment especially like GNOME or KDE. Both are making good stuff but I find them quite heavy.
If you are looking for a more lightweight environment I suggest you Openbox ;)

2006-05-09

Be welcome on my blog.

I am trying to get more and more involved in Information Technologies especially around Unix systems. I don't care about languages like C#, .NET, ASP or Basic (brrr) because they are not free and therefore it can't be good for information. I do care about Python, PHP, Shell scripts, a bit of Perl and a bit Java. I know some HTML, CSS, Javascript and SQL. I like very much programming in C where GTK+ is a fine toolkit.

When I find something new and I enjoy it, I just open my blog and share it ;)

You should also have a look at my old blog.

Cheers,
Mike.