<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-566377799608126043</id><updated>2011-07-08T03:47:11.280-07:00</updated><category term='mail'/><category term='lighttpd'/><category term='tv series'/><category term='synaptics'/><category term='gentoo'/><category term='layman'/><category term='ebay'/><category term='fingerprint'/><category term='asus'/><category term='acpi'/><category term='postfix'/><category term='dsdt'/><category term='lyrics'/><category term='mutt'/><category term='smile'/><category term='mouse'/><category term='social networking'/><category term='nokia'/><category term='git'/><category term='lazyweb'/><category term='torrent'/><category term='mpd'/><category term='irc'/><category term='rtorrent'/><category term='tvrss'/><category term='livecd'/><category term='cron'/><category term='mini itx'/><category term='laptop'/><category term='hibernate'/><category term='virtualbox'/><category term='artwork'/><category term='p2p'/><category term='wvdial'/><category term='php'/><category term='howto'/><category term='quassel'/><category term='port forwarding'/><category term='webcam'/><category term='irssi'/><category term='ssh'/><category term='music'/><category term='transmission'/><category term='overlay'/><category term='hal'/><category term='networking'/><category term='xorg'/><category term='bluetooth'/><category term='imap'/><category term='twitter'/><category term='slideshow'/><category term='mailx'/><category term='ebuild'/><category term='server'/><category term='manslide'/><category term='offlineimap'/><category term='msmtp'/><category term='gmail'/><category term='google'/><title type='text'>TopperH</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://topperh.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://topperh.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>TopperH</name><uri>http://www.blogger.com/profile/07104966396121305324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-566377799608126043.post-3309844642059287079</id><published>2009-10-25T03:35:00.000-07:00</published><updated>2009-10-25T03:39:26.046-07:00</updated><title type='text'>Moving the blog</title><content type='html'>This blog will soon move to http://topperh.blackmamba.kicks-ass.org/&lt;br /&gt;&lt;br /&gt;It will not be a blogger's blog anymore and I will use &lt;a href="http://github.com/mojombo/jekyll"&gt;jekyll &lt;/a&gt;to generate the pages and &lt;a href="http://disqus.com/"&gt;disqus&lt;/a&gt; for the comments.&lt;br /&gt;&lt;br /&gt;It's in very "work in progress" status, anyway, any feedback is welcome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/566377799608126043-3309844642059287079?l=topperh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://topperh.blogspot.com/feeds/3309844642059287079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=566377799608126043&amp;postID=3309844642059287079' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/3309844642059287079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/3309844642059287079'/><link rel='alternate' type='text/html' href='http://topperh.blogspot.com/2009/10/moving-blog.html' title='Moving the blog'/><author><name>TopperH</name><uri>http://www.blogger.com/profile/07104966396121305324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-566377799608126043.post-8898987671248018447</id><published>2009-06-10T07:15:00.000-07:00</published><updated>2009-06-10T07:19:21.563-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='overlay'/><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='layman'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='ebuild'/><title type='text'>Managing layman overlays my way</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://layman.sourceforge.net'&gt;Layman&lt;/a&gt; makes overlay management easy in gentoo, specially  if you want to keep track of many different overlays, using different vcs.&lt;br/&gt;&lt;br/&gt;On the other hand it may also create some problems, the thing that annoys me the most is when I want to install a single package from an overlay layman forces me to install the whole overlay.&lt;br/&gt;Running ~arch, in the next @world update, it will probably want to update other packages that I don't need to be updated. Portage doesn't provide yet per-overlay mask (I heard paludis does, but haven't tried).&lt;br/&gt;&lt;br/&gt;Having many packages in overlays for only a few installed will also considerably slow down some portage operations, may lead to duplicated eclasses, and  will make gentoo housekeeping harder. There is also to consider that there are many poorly mantained and/ord bleeding edge and/or experimental overlays that will pull in your tree a considerable amount of crap.&lt;br/&gt;&lt;br/&gt;This is my approach: I don't add the "source /usr/local/portage/layman/make.conf" line in my make.conf and I symlink from layman's directories only the directories (directories, not single ebuilds) that I need in a local overlay.&lt;br/&gt;&lt;br/&gt;This way portage ignores the existence of the layman tree and sees only a clean and small local overlay. I am able to update layman daily, but only upgrades related to the packages I need will be seen by portage.&lt;br/&gt;&lt;br/&gt;Here are the steps to take, assuming you have a working local overlay in /usr/local/portage, to install for example "app-backup/luckybackup" from the sunrise overlay.&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;emerge -av layman&lt;br/&gt;echo "#source /usr/local/portage/layman/make.conf" &amp;gt;&amp;gt; /etc/make.conf&lt;br/&gt;layman -a sunrise&lt;br/&gt;mkdir /usr/local/portage/app-backup&lt;br/&gt;ln -s /usr/local/portage/layman/sunrise/app-backup/luckybackup /usr/local/portage/app-backup/&lt;br/&gt;emerge -av luckybackup&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;The reason why I added the line (even if commented) in make.conf is that I might need to uncomment someday. For example when a package has many dependencies on the same overlay. Temoprary removing the comment and doing "emerge -pv package" will give me the exact list of packages who need to be linked in my local overlay.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/566377799608126043-8898987671248018447?l=topperh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://topperh.blogspot.com/feeds/8898987671248018447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=566377799608126043&amp;postID=8898987671248018447' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/8898987671248018447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/8898987671248018447'/><link rel='alternate' type='text/html' href='http://topperh.blogspot.com/2009/06/managing-layman-overlays-my-way.html' title='Managing layman overlays my way'/><author><name>TopperH</name><uri>http://www.blogger.com/profile/07104966396121305324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-566377799608126043.post-3507169621808565941</id><published>2009-04-03T08:56:00.000-07:00</published><updated>2009-04-03T09:13:16.345-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='irc'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='irssi'/><title type='text'>Get remote irssi notifications without X forwarding</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;I was looking for a simple method to have irssi highlight notifications on my local machine while having irssi running on my remote server.&lt;br /&gt;&lt;br /&gt;Googoling a bit I found that most methods require X forwarding (and libnotify installed on the server), or screen attached in a terminal in the local machine.&lt;br /&gt;&lt;br /&gt;My server has no X, so I'm not going to install libnotify and its dependencies on it, and I don't want to have an irssi terminal open, unless I need it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://thorstenl.blogspot.com/2007/01/thls-irssi-notification-script.html"&gt;Here&lt;/a&gt; I found a nice solution:&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_5a79Jj3-w7E/SdY1GsdrnqI/AAAAAAAADGQ/9xqV-CvjByQ/s1600-h/2009-04-03-165858_1280x800_scrot.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 200px;" src="http://2.bp.blogspot.com/_5a79Jj3-w7E/SdY1GsdrnqI/AAAAAAAADGQ/9xqV-CvjByQ/s320/2009-04-03-165858_1280x800_scrot.png" alt="" id="BLOGGER_PHOTO_ID_5320498398915960482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Server side:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;I assume sshd is working on server machine and there is key authentication, so no password is required)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;wget http://www.leemhuis.info/files/fnotify/fnotify&lt;br /&gt;cp fnotify ~/.irssi/scripts/fnotify.pl&lt;br /&gt;cd ~/.irssi/scripts&lt;br /&gt;ln -s fnotify.pl autostart/&lt;br /&gt;touch ~/irssi/fnotify&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;then I reload irssi or I type "/RUN fnotify.pl" inside irssi (I do this step just the first time, then it will be done automatically at irssi startup).&lt;br /&gt;&lt;br /&gt;From now, every higlighted message will be logged in this file.&lt;br /&gt;&lt;br /&gt;On client side I cd my favourite bin directory (foe me is ~/scripts, but can also be /usr/local/bin) and create a file called irssi-notification.sh:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;ssh &lt;span style="color: rgb(255, 0, 0);"&gt;user@host&lt;/span&gt; tail -F ~/.irssi/fnotify | sed -u 's/[&amp;lt;@&amp;amp;]//g' |while read heading message&lt;br /&gt;do notify-send -i gtk-dialog-info -t 300000 -- "${heading}" "${message}"&lt;br /&gt;done&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Change the red part with your username and host for the server machine and chmod +x the file.&lt;br /&gt;&lt;br /&gt;Make sure x11-libs/libnotify is installed in your sistem (I think that some distro call this package libnotify-bin... don't ask me, debian and ubuntu like to have things complicated).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now run the file and notifications will appear.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie"&gt;&lt;img src="http://img.zemanta.com/pixy.gif?x-id=1681eaca-0eda-8e2c-a29d-8b2dfe7ddc26" class="zemanta-pixie-img" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/566377799608126043-3507169621808565941?l=topperh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://topperh.blogspot.com/feeds/3507169621808565941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=566377799608126043&amp;postID=3507169621808565941' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/3507169621808565941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/3507169621808565941'/><link rel='alternate' type='text/html' href='http://topperh.blogspot.com/2009/04/get-remote-irssi-notifications-without.html' title='Get remote irssi notifications without X forwarding'/><author><name>TopperH</name><uri>http://www.blogger.com/profile/07104966396121305324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_5a79Jj3-w7E/SdY1GsdrnqI/AAAAAAAADGQ/9xqV-CvjByQ/s72-c/2009-04-03-165858_1280x800_scrot.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-566377799608126043.post-6810218587798142455</id><published>2009-03-30T07:42:00.000-07:00</published><updated>2009-03-30T10:21:11.777-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='artwork'/><title type='text'>Gentoo releases, my point of view</title><content type='html'>This entry follows up this &lt;a style="" href="http://blog.jolexa.net/2009/02/25/gentoo-yearly-releases-help-or-hurt-gentoo/"&gt;nice article by Jeremy Olexa (darkside)&lt;/a&gt; and the relative comments.&lt;br /&gt;&lt;br /&gt;I'm not a developer and I don't know much about the technical stuff that my idea involves, it's just a personal and different approach on the question that Jeremy asks.&lt;br /&gt;&lt;br /&gt;Reading the article and the comments it looks like PR and advertising are the main issues. I couldn't agree more. When a distro comes out with a new version, popular sites (slashdot, distrowatch...) write an article, popular bloggers try the distro and write their opinion, other bloggers publish screenshots... A lot of buzz is generated, and people are aware that the new distro is out.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Gentoo is always up to date&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Gentoo is a rolling release distro, it never needs upgrades, but just updates. The installation in my workstation (made in 2006) is as much up-to-date as the shiny new install on my laptop. That's gentoo magic, you sync, you emerge world, and have every day the latest and greatest.&lt;br /&gt;Most people don't realise that, and this is why all the "gentoo is dead" thing grows.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Installation media&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So, when is it that I have a new gentoo release? Maybe when a new installation media is out?&lt;br /&gt;Well, I used just once the minimal gentoo cd to actually do an installation, then I realised that there are better ways to install gentoo. I think gentoo could invest less manpower on installation media releases. What we need is a very minimal cd, with basic tools for networking and partitioning (lvm and raid), that is updated not more than every 12-18 months, and, a very clear and complete chapter in the handbook, explaining how gentoo can be built using livecds like systemrescucd, knoppix, sabayon, or even ubuntu, and how is possible for people coming from other distros to install gentoo in a partition without leaving the environment they are are familiar with.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;So, what makes a new release?&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;If I look other people workstations I can most of times tell at first sight whether they are using Ubuntu, Windows XP, Suse, OSX... The fact is that a lot of people don't care too much about theming their desktops, they just keep the vanilla install as it is.&lt;br /&gt;&lt;br /&gt;Let's be honest: I'm sure Ubuntu developers did a lot of background work, but, what comes out from the press for the next release? "A new notification style, and a shining new color theme" Wow... those guys are great in PR stuff.&lt;br /&gt;&lt;br /&gt;Gentoo doesn't have a consistent artwork theme, and if I publish a post of my desktop today I will look more or less the same as my desktop 2 years ago.&lt;span style="font-weight: bold;"&gt; &lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;So, here comes my suggestion:&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt; &lt;/span&gt;a new gentoo release every time a new artwork theme is ready. I'm not kidding, let's see how it should work...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;How it works&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The gentoo artwork team provides consistent themes and wallpapers for the most popular DEs, login managers, toolkits, framebuffer and grub. (Sabayon guys are really good in it: from the moment you boot, till the moment you are into the graphical environment the transition looks really smooth). All those themes will be shipped in a package called media-gfx/gentoo-artwork and versioned like gentoo releases (2009.0, 2010.1 ecc.). Those packages will be slotted.&lt;br /&gt;&lt;br /&gt;This package will have an USE flag for all the packages we have a theme for. For example "grub framebuffer xdm gdm kdm slim gnome xfce kdm openbox wallpaper", and according with the selected ones the relevant parts will be extracted.&lt;br /&gt;&lt;br /&gt;The extracted themes will be named according to version (gtk-theme-gentoo-2009.0, gtk-theme-gentoo-2010.1) and with a symlink (gtk-theme-gentoo-default) that will be managed by an eselect module.&lt;br /&gt;&lt;br /&gt;Assuming I have a default installation with no personal customizations, when a new version of gentoo-artwork comes out all I have to do is "eselect gentoo-artwork set n" and tah-dah, my whole gentoo changes shape and I'm ready to publish screenshots of my new gentoo in this blog.&lt;br /&gt;&lt;br /&gt;Of course, if this new artwork comes along with a new major version of portage, or a new stabilized gcc, I will have something more to blog about :P&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;What else?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Gentoo is all about choices, so, if I want to keep the current behaviour all I have to to is add a "-gentoo-artork" USE in my make.conf.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;My 2 cents...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/566377799608126043-6810218587798142455?l=topperh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://topperh.blogspot.com/feeds/6810218587798142455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=566377799608126043&amp;postID=6810218587798142455' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/6810218587798142455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/6810218587798142455'/><link rel='alternate' type='text/html' href='http://topperh.blogspot.com/2009/03/gentoo-releases-my-point-of-view.html' title='Gentoo releases, my point of view'/><author><name>TopperH</name><uri>http://www.blogger.com/profile/07104966396121305324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-566377799608126043.post-1780482618575707816</id><published>2009-02-19T09:59:00.000-08:00</published><updated>2009-02-19T10:02:23.979-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='server'/><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='irc'/><category scheme='http://www.blogger.com/atom/ns#' term='irssi'/><category scheme='http://www.blogger.com/atom/ns#' term='quassel'/><title type='text'>Irssi init script (and I don't use quassel anymore)</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I've been a &lt;a href='http://quassel-irc.org/' target='_blank'&gt;quassel&lt;/a&gt; user since the time it joined the gentoo tree.&lt;br/&gt;&lt;br/&gt;I really like the idea wich it is built on, and I find it a great replacement for &lt;a href='http://www.gnu.org/software/screen/'&gt;screen&lt;/a&gt; + &lt;a href='http://irssi.org/'&gt;irssi&lt;/a&gt;. For those who don't know the quassel core can be built on a server machine (that stays on irc 24/7) and the client part can be built in the machines you use to actually chat on irc.&lt;br/&gt;&lt;br/&gt;The main quassel isssue is that, being based on qt, is not really portable. Yes, I know qt is said to work on a lot of platforms (windows, unix, mac...), but is not as easy as having putty.exe on a usb stick. The other problem is that having to install qt on an headless server, just for irc, is quite an overkill.&lt;br/&gt;&lt;br/&gt;By the way, I wanted to use quassel anyway, so I installed qt on my headless mini-itx (it took me a while to figure out why emerge was pulling in tons of X related stuff, then I figured it was the qt3support USE flag).&lt;br/&gt;&lt;br/&gt;On client side, the useless abilty to show web pages previews, pulled in packages like qt-webkit and qt-phonon. This has already been discussed in &lt;a href='http://blog.flameeyes.eu/2009/02/12/sorry-sput-but-quassel-has-to-go-from-my-systems'&gt;Diego's post&lt;/a&gt;, and came out to be a non issue, since it is due to bad downstream packaging, and will be solved in next release. &lt;br/&gt;&lt;br/&gt;Anyway since a couple of days quasselcore is randomly crashing two, three times a day, and this is really pissing me off. I have no idea why this happens and I don't have the skills to investigate it, so I decided to step back to irssi and to put quassel in standby to see where future development is going.&lt;br/&gt;&lt;br/&gt;To make irssi really behave like a daemon I need an init script to make it start. The &lt;a href='http://www.gentoo-wiki.info/Irssi/init_script'&gt;gentoo wiki provides one&lt;/a&gt;, but it doesn't look really elegant since it uses su, it doesn't define the user in a separate file etc.&lt;br/&gt;&lt;br/&gt;Here is mine:&lt;br/&gt;&lt;br/&gt;/etc/init.d/irssi&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;#!/sbin/runscript&lt;br/&gt;&lt;br/&gt;depend() {&lt;br/&gt;        use net.*&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;start() {&lt;br/&gt;        ebegin "Starting irssi"&lt;br/&gt;        start-stop-daemon --start --chuid $USER \&lt;br/&gt;        --env TERM="xterm" \&lt;br/&gt;        --env HOME="/home/$USER" \&lt;br/&gt;        --exec /usr/bin/screen -- -dmS irssi /usr/bin/irssi&lt;br/&gt;        eend $?&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;stop() {&lt;br/&gt;        ebegin "Stopping irssi"&lt;br/&gt;        start-stop-daemon --stop --signal 2 --name irssi&lt;br/&gt;        eend $?&lt;br/&gt;}&lt;br/&gt;&lt;/blockquote&gt;/etc/conf.d/irssi&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;USER="andrea"&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;Of course the /etc/init.d/irssi needs to be made executable and added to the default runlevel.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/566377799608126043-1780482618575707816?l=topperh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://topperh.blogspot.com/feeds/1780482618575707816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=566377799608126043&amp;postID=1780482618575707816' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/1780482618575707816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/1780482618575707816'/><link rel='alternate' type='text/html' href='http://topperh.blogspot.com/2009/02/irssi-init-script-and-i-don-use-quassel.html' title='Irssi init script (and I don&amp;#39;t use quassel anymore)'/><author><name>TopperH</name><uri>http://www.blogger.com/profile/07104966396121305324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-566377799608126043.post-3230816204992686250</id><published>2009-02-05T04:44:00.000-08:00</published><updated>2009-02-05T04:45:26.222-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='hal'/><category scheme='http://www.blogger.com/atom/ns#' term='xorg'/><title type='text'>Xorg and hal... Removing my xorg.conf</title><content type='html'>As easy as the title says: emerged x11-base/xorg-server-1.5.3-r1 with the "hal" USE flag enabled, removed my /etc/X11/xorg.conf and everything works like a charm!&lt;br /&gt;&lt;br /&gt;Direct rendering works, fonts are ok, screen resolution is perfect...&lt;br /&gt;&lt;br /&gt;I still have to look into advanced synaptics touchpad settings, like mouse speed, scrolldown etc, by the way the touchpad works out of the box.&lt;br /&gt;&lt;br /&gt;I'm really happy that I don't have to bother anymore setting up xorg.conf, so thank you X devlopers for making it possible, and thank you gentoo developers for making it available on my  system and for making the transition so painless.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;P.S. No, I don't use proprietary video drivers, as I have an Intel card, this is probably the reason all this was so easy for me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/566377799608126043-3230816204992686250?l=topperh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://topperh.blogspot.com/feeds/3230816204992686250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=566377799608126043&amp;postID=3230816204992686250' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/3230816204992686250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/3230816204992686250'/><link rel='alternate' type='text/html' href='http://topperh.blogspot.com/2009/02/xorg-and-hal-removing-my-xorgconf.html' title='Xorg and hal... Removing my xorg.conf'/><author><name>TopperH</name><uri>http://www.blogger.com/profile/07104966396121305324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-566377799608126043.post-1688557855440692053</id><published>2009-01-15T12:44:00.000-08:00</published><updated>2009-01-15T12:46:59.850-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='acpi'/><category scheme='http://www.blogger.com/atom/ns#' term='laptop'/><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='dsdt'/><category scheme='http://www.blogger.com/atom/ns#' term='asus'/><title type='text'>DSDT on my ASUS F3E (mostly) fixed</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Since I have &lt;a href='http://topperh.blogspot.com/2008/05/asus-pro60eseries-gentoo-love.html' target='_blank'&gt;my asus F3E&lt;/a&gt; laptop brightness keys (fn + F5 and fn + F6) never worked. I had to workaround this issue manually editing the value in  /sys/class/backlight/asus-laptop/brightness (provided by asus-laptop kernel module).&lt;br/&gt;&lt;br/&gt;Of course I had a script for doing so, but I cuold not assign it to its own key because fn+F5 and fn+F6 were not producing any acpi event.&lt;br/&gt;&lt;br/&gt;Investigating on the problem I had a look on my &lt;a href='http://www.lesswatts.org/projects/acpi/overridingDSDT.php'&gt;dsdt&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;cat /sys/firmware/acpi/tables/DSDT &amp;gt; dsdt.dat&lt;br/&gt;iasl -d dsdt.dat&lt;br/&gt;iasl -tc dsdt.dsl&lt;/blockquote&gt;&lt;br/&gt;&lt;br/&gt;Here I found some errors:&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;Intel ACPI Component Architecture&lt;br/&gt;ASL Optimizing Compiler version 20080701 [Jan 14 2009]&lt;br/&gt;Copyright (C) 2000 - 2008 Intel Corporation&lt;br/&gt;Supports ACPI Specification Revision 3.0a&lt;br/&gt;&lt;br/&gt;dsdt.dsl.old  4565:                 Method (OGCD, 0, NotSerialized)&lt;br/&gt;Warning  1086 -                                ^ Not all control paths return a value (OGCD)&lt;br/&gt;&lt;br/&gt;dsdt.dsl.old  4618:                 Method (OGCA, 0, NotSerialized)&lt;br/&gt;Warning  1086 -                                ^ Not all control paths return a value (OGCA)&lt;br/&gt;&lt;br/&gt;dsdt.dsl.old  6782:             Acquire (MUTE, 0x03E8)&lt;br/&gt;Warning  1103 -                                     ^ Possible operator timeout is ignored&lt;br/&gt;&lt;br/&gt;dsdt.dsl.old  6796:             Acquire (MUTE, 0x03E8)&lt;br/&gt;Warning  1103 -                                     ^ Possible operator timeout is ignored&lt;br/&gt;&lt;br/&gt;dsdt.dsl.old  6811:             Acquire (MUTE, 0x03E8)&lt;br/&gt;Warning  1103 -                                     ^ Possible operator timeout is ignored&lt;br/&gt;&lt;br/&gt;dsdt.dsl.old  6826:             Acquire (MUTE, 0x0FFF)&lt;br/&gt;Warning  1103 -                                     ^ Possible operator timeout is ignored&lt;br/&gt;&lt;br/&gt;dsdt.dsl.old  6840:             Acquire (MUTE, 0x03E8)&lt;br/&gt;Warning  1103 -                                     ^ Possible operator timeout is ignored&lt;br/&gt;&lt;br/&gt;dsdt.dsl.old  6855:             Acquire (MUTE, 0x03E8)&lt;br/&gt;Warning  1103 -                                     ^ Possible operator timeout is ignored&lt;br/&gt;&lt;br/&gt;dsdt.dsl.old  6870:             Acquire (MUTE, 0x03E8)&lt;br/&gt;Warning  1103 -                                     ^ Possible operator timeout is ignored&lt;br/&gt;&lt;br/&gt;dsdt.dsl.old  9254:                     And (CTRL, 0x1E)&lt;br/&gt;Warning  1104 -                                 ^ Result is not used, operator has no effect&lt;br/&gt;&lt;br/&gt;dsdt.dsl.old 13901:             Method (_DSM, 4, NotSerialized)&lt;br/&gt;Warning  1086 -                            ^ Not all control paths return a value (_DSM)&lt;br/&gt;&lt;br/&gt;dsdt.dsl.old 13901:             Method (_DSM, 4, NotSerialized)&lt;br/&gt;Warning  1079 -                            ^ Reserved method must return a value (_DSM)&lt;br/&gt;&lt;br/&gt;dsdt.dsl.old 13907:                         Name (_T_0, Zero)&lt;br/&gt;Error    4081 -                 Use of reserved word ^  (_T_0)&lt;br/&gt;&lt;br/&gt;dsdt.dsl.old 13943:                         Name (_T_1, Zero)&lt;br/&gt;Error    4081 -                 Use of reserved word ^  (_T_1)&lt;br/&gt;&lt;br/&gt;ASL Input:  dsdt.dsl.old - 14099 lines, 404107 bytes, 6700 keywords&lt;br/&gt;Compilation complete. 2 Errors, 12 Warnings, 0 Remarks, 35 Optimizations&lt;/blockquote&gt;&lt;br/&gt;&lt;br/&gt;I havent investigated the warnings (maybe I'll do that another time) but I tried to solve the errors changing _T_0 and _T_1 with T_0 and T_1.&lt;br/&gt;It looks like a name cannot start with underscore.&lt;br/&gt;&lt;br/&gt;The recompiled dsdt works fine and now I have brightness keys working.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/566377799608126043-1688557855440692053?l=topperh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://topperh.blogspot.com/feeds/1688557855440692053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=566377799608126043&amp;postID=1688557855440692053' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/1688557855440692053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/1688557855440692053'/><link rel='alternate' type='text/html' href='http://topperh.blogspot.com/2009/01/dsdt-on-my-asus-f3e-mostly-fixed.html' title='DSDT on my ASUS F3E (mostly) fixed'/><author><name>TopperH</name><uri>http://www.blogger.com/profile/07104966396121305324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-566377799608126043.post-337677835002493430</id><published>2008-12-12T09:15:00.000-08:00</published><updated>2008-12-12T10:04:51.334-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mpd'/><category scheme='http://www.blogger.com/atom/ns#' term='lyrics'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Current mpd song's lyric on console</title><content type='html'>I always listen to music while working, and I use &lt;a href="http://www.musicpd.org"&gt;mpd&lt;/a&gt;. I prefer it over other players because it just stays out of the way.&lt;br /&gt;&lt;br /&gt;As English is not my native language it sometimes happen that I want to read current song's lyrics. Of course an option would be to fire up &lt;a href="http://www.musicpd.org/?page=ncmp"&gt;ncmpc&lt;/a&gt; or &lt;a href="http://sonata.berlios.de/"&gt;sonata&lt;/a&gt; but, as I said before, I prefer things that stay out of my way.&lt;br /&gt;&lt;br /&gt;REQUIREMENTS: mpd, mpc, python, &lt;a href="http://id3lib.sourceforge.net/"&gt;id3lib&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I put in my ~/scripts directory this python script from Max Kellermann &lt;max&gt;  (this script is also contained in the ncmpc package). It's called ~/scripts/leoslyrics.py&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;#!/usr/bin/python&lt;br /&gt;#&lt;br /&gt;# Load lyrics from leoslyrics.com&lt;br /&gt;#&lt;br /&gt;# Author: Max Kellermann &lt;max&gt;&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;from sys import argv, exit&lt;br /&gt;from urllib import urlencode, urlopen&lt;br /&gt;from xml.sax import make_parser, SAXException&lt;br /&gt;from xml.sax.handler import ContentHandler&lt;br /&gt;&lt;br /&gt;class SearchContentHandler(ContentHandler):&lt;br /&gt;    def __init__(self):&lt;br /&gt;        self.code = None&lt;br /&gt;        self.hid = None&lt;br /&gt;&lt;br /&gt;    def startElement(self, name, attrs):&lt;br /&gt;        if name == 'response':&lt;br /&gt;            self.code = int(attrs['code'])&lt;br /&gt;        elif name == 'result':&lt;br /&gt;            if self.hid is None or attrs['exactMatch'] == 'true':&lt;br /&gt;                self.hid = attrs['hid']&lt;br /&gt;&lt;br /&gt;def search(artist, title):&lt;br /&gt;    query = urlencode({'auth': 'ncmpc',&lt;br /&gt;                       'artist': artist,&lt;br /&gt;                       'songtitle': title})&lt;br /&gt;    url = "http://api.leoslyrics.com/api_search.php?" + query&lt;br /&gt;    f = urlopen(url)&lt;br /&gt;    handler = SearchContentHandler()&lt;br /&gt;    parser = make_parser()&lt;br /&gt;    parser.setContentHandler(handler)&lt;br /&gt;    parser.parse(f)&lt;br /&gt;    return handler.hid&lt;br /&gt;&lt;br /&gt;class LyricsContentHandler(ContentHandler):&lt;br /&gt;    def __init__(self):&lt;br /&gt;        self.code = None&lt;br /&gt;        self.is_text = False&lt;br /&gt;        self.text = None&lt;br /&gt;&lt;br /&gt;    def startElement(self, name, attrs):&lt;br /&gt;        if name == 'text':&lt;br /&gt;            self.text = ''&lt;br /&gt;            self.is_text = True&lt;br /&gt;        else:&lt;br /&gt;            self.is_text = False&lt;br /&gt;&lt;br /&gt;    def characters(self, chars):&lt;br /&gt;        if self.is_text:&lt;br /&gt;            self.text += chars&lt;br /&gt;&lt;br /&gt;def lyrics(hid):&lt;br /&gt;    query = urlencode({'auth': 'ncmpc',&lt;br /&gt;                       'hid': hid})&lt;br /&gt;    url = "http://api.leoslyrics.com/api_lyrics.php?" + query&lt;br /&gt;    f = urlopen(url)&lt;br /&gt;    handler = LyricsContentHandler()&lt;br /&gt;    parser = make_parser()&lt;br /&gt;    parser.setContentHandler(handler)&lt;br /&gt;    parser.parse(f)&lt;br /&gt;    return handler.text&lt;br /&gt;&lt;br /&gt;hid = search(argv[1], argv[2])&lt;br /&gt;if hid is None:&lt;br /&gt;    exit(2)&lt;br /&gt;print lyrics(hid).encode('utf-8')&lt;/blockquote&gt;&lt;br /&gt;Then I wrote this simple shell script, called ~/scripts/lyrics.sh&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;#! /bin/sh&lt;br /&gt;### Change this with your mpd root&lt;br /&gt;MUSICROOT="~/Music"&lt;br /&gt;MPCINFO=`mpc | head -n 1`&lt;br /&gt;MUSICPATH=$MUSICROOT/$MPCINFO&lt;br /&gt;ARTIST=`id3info "$MUSICPATH" | grep TPE1 | cut -d: -f2` &lt;br /&gt;TITLE=`id3info "$MUSICPATH" | grep TIT2 | cut -d: -f2`            &lt;br /&gt;echo $TITLE by $ARTIST&lt;br /&gt;echo Loading lyrics...&lt;br /&gt;./leoslyrics.py $ARTIST $TITLE | less&lt;/blockquote&gt;Then I gave the execution rights to the script and... abracadabra...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_5a79Jj3-w7E/SUKdCa4vgHI/AAAAAAAADFo/enwLmMYlyBM/s1600-h/lyrics.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 224px;" src="http://1.bp.blogspot.com/_5a79Jj3-w7E/SUKdCa4vgHI/AAAAAAAADFo/enwLmMYlyBM/s320/lyrics.png" alt="" id="BLOGGER_PHOTO_ID_5278954378134257778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Now I can see current song's lyrics wherever I have an open terminal, or even inside a vim session.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/566377799608126043-337677835002493430?l=topperh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://topperh.blogspot.com/feeds/337677835002493430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=566377799608126043&amp;postID=337677835002493430' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/337677835002493430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/337677835002493430'/><link rel='alternate' type='text/html' href='http://topperh.blogspot.com/2008/12/current-mpd-songs-lyric-on-console.html' title='Current mpd song&apos;s lyric on console'/><author><name>TopperH</name><uri>http://www.blogger.com/profile/07104966396121305324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_5a79Jj3-w7E/SUKdCa4vgHI/AAAAAAAADFo/enwLmMYlyBM/s72-c/lyrics.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-566377799608126043.post-5119515775736619797</id><published>2008-12-02T05:50:00.000-08:00</published><updated>2008-12-11T06:43:14.781-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='tvrss'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='tv series'/><category scheme='http://www.blogger.com/atom/ns#' term='transmission'/><category scheme='http://www.blogger.com/atom/ns#' term='torrent'/><title type='text'>Automatic TV series download --- Part 2 --- An alternative way</title><content type='html'>I posted &lt;a href="http://topperh.blogspot.com/2008/10/automatic-tv-series-download-using.html"&gt;before &lt;/a&gt;about automatic TV series download.&lt;br /&gt;Since my old home server passed away, and I'm building a &lt;a href="http://topperh.blogspot.com/2008/11/dear-lazyweb.html"&gt;new one&lt;/a&gt; from scratch, I was looking for a better way to do this.&lt;br /&gt;&lt;br /&gt;This morning on #gentoo-it (freenode) earcar pointed me out that &lt;a href="http://www.transmissionbt.com/"&gt;transmission&lt;/a&gt; has a built in web interface (no webserver required), can run on low resources, and has very few dependencies.&lt;br /&gt;&lt;br /&gt;Unfortunatly it lacks the "folder watch" feature, that made me choose &lt;a href="http://libtorrent.rakshasa.no/"&gt;rtorrent&lt;/a&gt; for the previous howto. BTW, it's pretty easy to implement it with a script and a cron job.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;INSTALLING TRANSMISSION&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;As today (december 2nd 2008) the portage version of transmission is a little bit out of date, it might work for the scope of this howto too, but I'm not sure.&lt;br /&gt;I installed version 1.40 on my own local overlay.&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;If you are not familiar with local overlays read &lt;a href="http://www.gentoo-wiki.info/Local_Portage_Overlay"&gt;here&lt;/a&gt;, personally I don't use layman for this scope,  just added PORTDIR_OVERLAY in my /etc/make.conf.&lt;br /&gt;&lt;br /&gt;The ebuild can be found in &lt;a href="http://bugs.gentoo.org/attachment.cgi?id=172796"&gt;gentoo's bugzilla&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CREATING THE INIT SCRIPT&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;The&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;package doesn't come with an init script but fortunatly someone added it in &lt;a href="http://bugs.gentoo.org/show_bug.cgi?id=246557"&gt;gentoo's bugzilla&lt;/a&gt;.&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;/etc/init.d/transmission&lt;br /&gt;&lt;blockquote&gt;#!/sbin/runscript&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;# DO NOT EDIT!&lt;br /&gt;# ------------&lt;br /&gt;# All configurable options are set in /etc/conf.d/transmission&lt;br /&gt;&lt;br /&gt;NAME=transmission-daemon&lt;br /&gt;declare -a OPTIONS&lt;br /&gt;OPTIONS+=" -a ${TR_ACL:=+127.0.0.1}"&lt;br /&gt;if [ -z "$TR_BLOCK" -o "$TR_BLOCK" = "no" ]; then&lt;br /&gt;OPTIONS+=" -B"&lt;br /&gt;else&lt;br /&gt;OPTIONS+=" -b"&lt;br /&gt;fi&lt;br /&gt;OPTIONS+=" -g ${TR_HOME:-/var/transmission/config}"&lt;br /&gt;OPTIONS+=" -p ${CTL_PORT:-9091}"&lt;br /&gt;if [ -z "$REMOTE_USER" -o -z "$REMOTE_PASS" ]; then&lt;br /&gt;OPTIONS+=" -T"&lt;br /&gt;else&lt;br /&gt;OPTIONS+=" -t"&lt;br /&gt;OPTIONS+=" -u $REMOTE_USER"&lt;br /&gt;OPTIONS+=" -v $REMOTE_PASS"&lt;br /&gt;fi&lt;br /&gt;OPTIONS+=" -w ${TR_DOWNLOAD:-/var/transmission/downloads}"&lt;br /&gt;declare -a EXTRA_OPT&lt;br /&gt;if [ -z "$TR_UP_SPEED" -o "$TR_UP_SPEED" = "unlimited" ]; then&lt;br /&gt;EXTRA_OPT+=" -U"&lt;br /&gt;else&lt;br /&gt;EXTRA_OPT+=" -u $TR_UP_SPEED"&lt;br /&gt;fi&lt;br /&gt;if [ -z "$TR_DN_SPEED" -o "$TR_DN_SPEED" = "unlimited" ]; then&lt;br /&gt;EXTRA_OPT+=" -D"&lt;br /&gt;else&lt;br /&gt;EXTRA_OPT+=" -d $TR_DN_SPEED"&lt;br /&gt;fi&lt;br /&gt;if [ -z "$TR_PX" -o "$TR_PX" = "no" ]; then&lt;br /&gt;EXTRA_OPT+=" -X"&lt;br /&gt;else&lt;br /&gt;EXTRA_OPT+=" -x"&lt;br /&gt;fi&lt;br /&gt;if [ -z "$TR_PMAP" -o "$TR_PMAP" = "no" ]; then&lt;br /&gt;EXTRA_OPT+=" -M"&lt;br /&gt;else&lt;br /&gt;EXTRA_OPT+=" -m"&lt;br /&gt;fi&lt;br /&gt;if [ -z "$TR_ENCRYPT" -o "$TR_ENCRYPT" = "tolerated" ]; then&lt;br /&gt;EXTRA_OPT+=" -et"&lt;br /&gt;elif [ "$TR_ENCRYPT" = "prefered" ]; then&lt;br /&gt;EXTRA_OPT+=" -ep"&lt;br /&gt;elif [ "$TR_ENCRYPT" = "required" ]; then&lt;br /&gt;EXTRA_OPT+=" -er"&lt;br /&gt;else&lt;br /&gt;EXTRA_OPT+=" -et"&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;depend() {&lt;br /&gt;need net&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;start() {&lt;br /&gt;ebegin "Starting transmission daemon"&lt;br /&gt;start-stop-daemon --start --quiet \&lt;br /&gt;   --chuid ${TR_USERNAME:-nobody} \&lt;br /&gt;   --exec /usr/bin/transmission-daemon -- ${OPTIONS[@]}&lt;br /&gt;sleep 2&lt;br /&gt;transmission-remote ${CTL_PORT:-9091} \&lt;br /&gt;   ${REMOTE_PASS:+-n $REMOTE_USER:$REMOTE_PASS} \&lt;br /&gt;   --port ${TR_PORT:-54318} ${EXTRA_OPT[@]} &gt; /dev/null&lt;br /&gt;eend $?&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;stop() {&lt;br /&gt;ebegin "Stopping transmission daemon"&lt;br /&gt;start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 \&lt;br /&gt;   --name $NAME&lt;br /&gt;eend $?&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# vim: set ft=gentoo-init-d ts=3 sw=3 et:&lt;/blockquote&gt;/etc/conf.d/transmission&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;# For information on options, see the transmission-daemon(1) man page.&lt;br /&gt;#&lt;br /&gt;# The commented variables in this file are the defaults that are used&lt;br /&gt;# in the init-script.  You don't need to uncomment them except to&lt;br /&gt;# customize them to different values.&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;# ----- MAIN CONFIGURATION -----&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;# The folder where Transmission stores its config and .torrent files&lt;br /&gt;TR_HOME=/home/andrea/transmission/config     &lt;span style="color: rgb(255, 0, 0);"&gt;### EDIT THIS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;# The folder where Transmission stores downloads&lt;br /&gt;TR_DOWNLOAD=/home/andrea/transmission/downloads   &lt;span style="color: rgb(255, 0, 0);"&gt;### EDIT T&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;HIS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;# The port Transmission uses to connect to other peers&lt;br /&gt;# TR_PORT=54318&lt;br /&gt;&lt;br /&gt;# The name of the user that runs transmission-daemon and owns the files&lt;br /&gt;TR_USERNAME=andrea    &lt;span style="color: rgb(255, 0, 0);"&gt;### EDIT THIS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;# Login credentials for the Web- and the RPC-interface&lt;br /&gt;# - default: leaveve commented/empty to disable access authentication&lt;br /&gt;REMOTE_USER="andrea"   &lt;span style="color: rgb(255, 0, 0);"&gt;### EDIT THIS&lt;/span&gt;&lt;br /&gt;REMOTE_PASS="very secure password"  &lt;span style="color: rgb(255, 0, 0);"&gt;### EDIT THIS&lt;/span&gt;&lt;br /&gt;# - alternative: set a user name and password&lt;br /&gt;#REMOTE_USER=admin&lt;br /&gt;#REMOTE_PASS=password&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;# ----- ADVANCED OPTIONS -----&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;# Acces control lists&lt;br /&gt;# (machines/networks allowed/denied to control transmission -- comma separated)&lt;br /&gt;# TR_ACL="+127.0.0.1"&lt;br /&gt;&lt;br /&gt;# Enable use of block lists&lt;br /&gt;# (read the Wiki about what else needs to be done)&lt;br /&gt;# TR_BLOCK=no&lt;br /&gt;&lt;br /&gt;# Control port used&lt;br /&gt;# only privileged users can use ports &lt; ctl_port="9091" tr_up_speed="20" style="color: rgb(255, 0, 0);"&gt;### YOU MIGHT WANT TO EDIT THIS&lt;/span&gt;&lt;br /&gt;TR_DN_SPEED=200   &lt;span style="color: rgb(255, 0, 0);"&gt;### YOU MIGHT WANT TO EDIT THIS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;# Peer exchange&lt;br /&gt;# TR_PX=no&lt;br /&gt;&lt;br /&gt;# Port mapping using NAT/UPnP&lt;br /&gt;# TR_PMAP=no&lt;br /&gt;&lt;br /&gt;# Encryption&lt;br /&gt;# Any of :&lt;br /&gt;# TR_ENCRYPT=tolerated&lt;br /&gt;TR_ENCRYPT=prefered   &lt;span style="color: rgb(255, 0, 0);"&gt;### YOU MIGHT WANT TO EDIT THIS&lt;/span&gt;&lt;br /&gt;# TR_ENCRYPT=required&lt;/blockquote&gt;Make sure to create the needed directories, and that the user you choose has write permissions on them.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;TEST TRANSMISSION&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Run the init script, "/etc/init.d/transmission start" and point a browser to http://my.host/:9091 (that will be localhost or 127.0.0.1 if you run the browser from the same machine).&lt;br /&gt;&lt;br /&gt;You will be asked for username and password (the one you provided in the config file) and will be able to upload torrent files.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;INSTALLING PYTVSHOWS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[EDIT] Thanks to &lt;a href="http://jolexa.wordpress.com"&gt;Jeremy Olexa aka Darkside&lt;/a&gt;,  net-misc/pytvshows is now in portage tree, so you can safely skip this part and just emerge it. [/EDIT]&lt;br /&gt;&lt;br /&gt;There are many scripts to automate the download of tv series, btw I like &lt;a href="http://sourceforge.net/projects/pytvshows/"&gt;pytvshows&lt;/a&gt;, because it just does what it's intented to do: read a config file, grab the new episodes from &lt;a href="http://tvrss.net/"&gt;tvrss&lt;/a&gt;, and downloads the torrents in a given folder, that is, in our case, the folder our script will watch.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;$ mkdir tmp&lt;br /&gt;$ mkdir scripts&lt;br /&gt;$ cd tmp&lt;br /&gt;$ wget http://ovh.dl.sourceforge.net/sourceforge/pytvshows/pytvshows-0.2.tar.gz&lt;br /&gt;$ tar xvzf pytvshows-0.2.tar.gz&lt;br /&gt;$ cd pytvshows-0.2&lt;br /&gt;$ python setup.py build&lt;br /&gt;$ cp build/scripts-2.5/pytvshows ~/scripts/&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Now we create and edit ~/.pytvshows.cfg with the exact names (like in tvrss.net) of our favourite series:&lt;br /&gt;&lt;blockquote&gt;[Lost]&lt;br /&gt;&lt;br /&gt;[Heroes]&lt;br /&gt;&lt;br /&gt;[24]&lt;br /&gt;&lt;br /&gt;[The+Sarah+Connor+Cronichles]&lt;br /&gt;&lt;br /&gt;[Fringe]&lt;/blockquote&gt;Don't forget the "+" instead of spaces.&lt;br /&gt;Now we launch manually the script (only for the first time),&lt;br /&gt;&lt;blockquote&gt;$ mkdir ~/transmission/watch&lt;br /&gt;$ ~/scripts/pytvshows -o ~/transmission/watch&lt;/blockquote&gt;&lt;br /&gt;and see what happened in our config file...&lt;br /&gt;The script assumes that you have alredy seen all the episodes broadcasted until today and just wanna download the ones coming next. To change this behavior just change the number of the episode to the first one you want to download -1, for example if I want to download from the third episode of Fringe till today I change its config like this:&lt;br /&gt;&lt;blockquote&gt;[Fringe]&lt;br /&gt;episode = 2&lt;br /&gt;season = 1&lt;br /&gt;show_type = seasonepisode&lt;br /&gt;human_name = Fringe&lt;br /&gt;time = 2008-10-15 05:20:06&lt;/blockquote&gt;If I want all the episodes I change the "episode" value to 0.&lt;br /&gt;Launching the script again will now fulfill our ~/transmission/watch/ folder with Fringe's latest episodes torrents.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CREATING THE SCRIPT&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;We want to tell transmission that we have now new torrents and we want to download them, here is a little script that I called ~/scripts/autodownoad.sh&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;for file in ~/transmission/watch/*.torrent&lt;br /&gt;&lt;br /&gt;do&lt;br /&gt;if [ "$file" = "~/transmission/watch/*.torrent" ]; then&lt;br /&gt;echo "No torrent in watchdir."&lt;br /&gt;else&lt;br /&gt;echo "$file" added to queue.&lt;br /&gt;/usr/bin/transmission-remote -a "$file" -n user:password    &lt;span style="color: rgb(255, 0, 0);"&gt;### EDIT THIS&lt;/span&gt;&lt;br /&gt;rm "$file"&lt;br /&gt;fi&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;exit 0&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;Let's test it:&lt;br /&gt;&lt;blockquote&gt;~/scripts/autodownload.sh&lt;/blockquote&gt;Now fire up again your browser in your transmission page... You should see the new episodes downloading.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5a79Jj3-w7E/STVRClBKrzI/AAAAAAAADFg/NnGs1yYaixY/s1600-h/ScreenshotTransmission.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 200px;" src="http://4.bp.blogspot.com/_5a79Jj3-w7E/STVRClBKrzI/AAAAAAAADFg/NnGs1yYaixY/s320/ScreenshotTransmission.png" alt="" id="BLOGGER_PHOTO_ID_5275211643272998706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;AUTOMATING IT ALL&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;You will need a cron daemon that support per-user cron tabs, such as vixie cron. As regular user run "crontab -e" and add the following lines:&lt;br /&gt;&lt;blockquote&gt;05,35 * * * * ~/scripts/pytvshows -o ~/transmission/watch/&lt;br /&gt;08,58 * * * * ~/scripts/autodownload.sh&lt;/blockquote&gt;Every 30 minutes, pytvshows will search for new episodes of your favourite tv series, and right after, transmission will download them.&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/566377799608126043-5119515775736619797?l=topperh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://topperh.blogspot.com/feeds/5119515775736619797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=566377799608126043&amp;postID=5119515775736619797' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/5119515775736619797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/5119515775736619797'/><link rel='alternate' type='text/html' href='http://topperh.blogspot.com/2008/12/automatic-tv-series-download-part-2.html' title='Automatic TV series download --- Part 2 --- An alternative way'/><author><name>TopperH</name><uri>http://www.blogger.com/profile/07104966396121305324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5a79Jj3-w7E/STVRClBKrzI/AAAAAAAADFg/NnGs1yYaixY/s72-c/ScreenshotTransmission.png' height='72' width='72'/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-566377799608126043.post-6346573532745744467</id><published>2008-11-18T05:03:00.000-08:00</published><updated>2008-11-18T05:10:17.643-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='social networking'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><title type='text'>Surrender</title><content type='html'>Yes, I surrendered to social networking...&lt;br /&gt;&lt;br /&gt;I never had Myspace, Facebook, Flickr...&lt;br /&gt;&lt;br /&gt;But twitter looks so cool, so: http://twitter.com/TopperH&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/566377799608126043-6346573532745744467?l=topperh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://topperh.blogspot.com/feeds/6346573532745744467/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=566377799608126043&amp;postID=6346573532745744467' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/6346573532745744467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/6346573532745744467'/><link rel='alternate' type='text/html' href='http://topperh.blogspot.com/2008/11/surrender.html' title='Surrender'/><author><name>TopperH</name><uri>http://www.blogger.com/profile/07104966396121305324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-566377799608126043.post-2270837223869459533</id><published>2008-11-14T03:06:00.000-08:00</published><updated>2008-11-14T03:48:23.524-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ebay'/><category scheme='http://www.blogger.com/atom/ns#' term='lazyweb'/><category scheme='http://www.blogger.com/atom/ns#' term='mini itx'/><category scheme='http://www.blogger.com/atom/ns#' term='livecd'/><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><title type='text'>Dear lazyweb...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://i24.ebayimg.com/03/i/001/19/e0/bc39_1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 400px;" src="http://i24.ebayimg.com/03/i/001/19/e0/bc39_1.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The laptop I used as my home server passed away yesterday and needs to be replaced.&lt;br /&gt;&lt;br /&gt;I bought &lt;a href="http://cgi.ebay.it/ws/eBayISAPI.dll?ViewItem&amp;amp;ssPageName=STRK:MEWNX:IT&amp;amp;item=280282897816"&gt;this&lt;/a&gt; on ebay and it is going to arrive me on tuesday/wednesday.&lt;br /&gt;&lt;br /&gt;Of course I'm going to install gentoo.&lt;br /&gt;&lt;br /&gt;I don't have a monitor to attach on it (it's gonna be an headless server), so I asked the seller to setup the bios for cd boot.&lt;br /&gt;&lt;br /&gt;I will do all the installation via ssh but I know for sure that both the gentoo livecd and systemrescuecd need user interaction to have ssh up and running (you have to setup a root password).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Probably there will be no problem to it blind:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;insert the cd&lt;/li&gt;&lt;li&gt;power the machine on&lt;/li&gt;&lt;li&gt;wait for a while&lt;/li&gt;&lt;li&gt;type "passwd" "******" "******"&lt;/li&gt;&lt;li&gt;type "/etc/init.d/sshd restart"&lt;/li&gt;&lt;/ol&gt;But I guess if there is a live distro that has a fixed root password and starts ssh and dhcp by itself.&lt;br /&gt;I've been told on irc that xbox's distros can do that, but I don't think I will be able to chroot in an x86_64 enviroment from that...&lt;br /&gt;&lt;br /&gt;Does anybody have a better idea?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/566377799608126043-2270837223869459533?l=topperh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://topperh.blogspot.com/feeds/2270837223869459533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=566377799608126043&amp;postID=2270837223869459533' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/2270837223869459533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/2270837223869459533'/><link rel='alternate' type='text/html' href='http://topperh.blogspot.com/2008/11/dear-lazyweb.html' title='Dear lazyweb...'/><author><name>TopperH</name><uri>http://www.blogger.com/profile/07104966396121305324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-566377799608126043.post-2517527219648091307</id><published>2008-10-24T09:31:00.000-07:00</published><updated>2008-10-24T10:28:14.273-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='offlineimap'/><category scheme='http://www.blogger.com/atom/ns#' term='mutt'/><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='msmtp'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='gmail'/><category scheme='http://www.blogger.com/atom/ns#' term='mail'/><category scheme='http://www.blogger.com/atom/ns#' term='imap'/><title type='text'>A better way to use mutt + gMail's IMAP</title><content type='html'>Imap is cool and gMail's imap is really cool. It allows users to have their mail clients syncronyzed and always up to date. The only issue with imap is speed.&lt;br /&gt;On slow connections messages take some time to load, and attachments too. Evolution and kmail can use "offline imap" fetching locally all the messages and giving you a fast response.&lt;br /&gt;&lt;br /&gt;Unfortunatly I don't feel confortable with neither of those clients, the only one I find really usable (I'm a mailing lists addicted) is mutt.&lt;br /&gt;&lt;br /&gt;Mutt has imap support and can cache the headers of the messages, and the alredy read messages in local files, but that's not enough. Fetching messages still slow.&lt;br /&gt;&lt;br /&gt;The idea is to reproduce the behavior of kmail or evoultion "offline imap" in mutt.&lt;br /&gt;&lt;a href="http://software.complete.org/software/projects/show/offlineimap"&gt;Offlineimap&lt;/a&gt; can do what I'm looking for:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;# emerge -av offlineimap&lt;br /&gt;&lt;/blockquote&gt;Now we need to configure offlineimap for gmail, the file to edit is ~/.offlineimaprc:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;[general]&lt;br /&gt;accounts = ANameOfChoice&lt;br /&gt;&lt;br /&gt;# Gives you a nice blinky output on the console so you know what's happening.&lt;br /&gt;# ui = Curses.Blinkenlights&lt;br /&gt;&lt;br /&gt;# If uncommented, this would show nothing at all. Great for cronjobs or background-processes&lt;br /&gt;ui = Noninteractive.Quiet&lt;br /&gt;&lt;br /&gt;[Account ANameOfChoice]&lt;br /&gt;localrepository = mylocal&lt;br /&gt;# Profile-Name for the remote Mails for a given Account&lt;br /&gt;remoterepository = Gmail&lt;br /&gt;&lt;br /&gt;[Repository mylocal]&lt;br /&gt;# Way of storing Mails locally. Only Maildir is currently supported&lt;br /&gt;type = Maildir&lt;br /&gt;&lt;br /&gt;# Place where the synced Mails should be&lt;br /&gt;localfolders = ~/Mail&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# fetches your mails every 5 Minutes&lt;br /&gt;autorefresh = 5&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[Repository Gmail]&lt;br /&gt;&lt;br /&gt;type = Gmail&lt;br /&gt;&lt;br /&gt;# Specify the Gmail user name. This is the only mandatory parameter.&lt;br /&gt;&lt;br /&gt;remoteuser = myusername@gmail.com&lt;br /&gt;remotepass = mypassword&lt;br /&gt;&lt;br /&gt;# Deleting a message from a Gmail folder via the IMAP interface will&lt;br /&gt;# just remove that folder's label from the message: the message will&lt;br /&gt;# continue to exist in the '[Gmail]/All Mail' folder.  If `realdelete`&lt;br /&gt;# is set to `True`, then deleted messages will really be deleted&lt;br /&gt;# during `offlineimap` sync, by moving them to the '[Gmail]/Trash'&lt;br /&gt;# folder.  BEWARE: this will deleted a messages from *all folders* it&lt;br /&gt;# belongs to!&lt;br /&gt;#&lt;br /&gt;# See http://mail.google.com/support/bin/answer.py?answer=77657&amp;amp;topic=12815&lt;br /&gt;# See http://mail.google.com/support/bin/answer.py?answer=77657&amp;amp;topic=12815&lt;br /&gt;&lt;br /&gt;realdelete = no&lt;br /&gt;&lt;br /&gt;# The trash folder name may be different from [Gmail]/Trash&lt;br /&gt;# for example on german googlemail, this setting should be&lt;br /&gt;#&lt;br /&gt;# trashfolder = [Google Mail]/Papierkorb&lt;br /&gt;#&lt;br /&gt;# The same is valid for the spam folder&lt;br /&gt;#&lt;br /&gt;# spamfolder = [Google Mail]/Spam&lt;/blockquote&gt;We don't want other users to know our password, so:&lt;br /&gt;&lt;blockquote&gt;$ chmod 600 ~/.offlineimaprc&lt;br /&gt;$ mkdir   ~/Mail&lt;br /&gt;&lt;/blockquote&gt;For mail sending I use &lt;a href="http://msmtp.sourceforge.net/"&gt;msmtp&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;#emerge -av msmtmp&lt;/blockquote&gt;&lt;br /&gt;You can still use ssmtp (gentoo's default) or postfix or whatever, but you can't have two sendmail programs installed at the same time.&lt;br /&gt;&lt;br /&gt;My ~/.msmtprc looks like this:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;account default&lt;br /&gt;host smtp.gmail.com&lt;br /&gt;port 587&lt;br /&gt;protocol smtp&lt;br /&gt;auth on&lt;br /&gt;from username@gmail.com&lt;br /&gt;user username@gmail.com&lt;br /&gt;password mypassword&lt;br /&gt;tls on&lt;br /&gt;tls_starttls on&lt;/blockquote&gt;&lt;br /&gt;Again I don't like people to read my password:&lt;br /&gt;&lt;blockquote&gt;$ chmod 600 ~/.msmtprc&lt;/blockquote&gt;&lt;br /&gt;The first time offlineimap is launched can take a lot of time, specially if you keep ALL your mail since 1999 stored in your gmail account, so we will start it manually&lt;br /&gt;&lt;blockquote&gt;$ offlineimap&lt;/blockquote&gt;&lt;br /&gt;Once done we can create a cron job to sync our folder every 10 minutes:&lt;br /&gt;&lt;blockquote&gt;$ crontab -e&lt;br /&gt;&lt;br /&gt;*/10 * * * * /usr/bin/offlineimap&lt;/blockquote&gt;You will need a cron daemon that supports users crontabs, such as vixie-cron.&lt;br /&gt;&lt;br /&gt;And here is part of my ~/.mutt/muttrc&lt;br /&gt;&lt;blockquote&gt;## ~/.mutt/muttrc&lt;br /&gt;set mbox_type=Maildir&lt;br /&gt;set folder=$HOME/Mail&lt;br /&gt;set spoolfile=+inbox&lt;br /&gt;set header_cache=~/.hcache&lt;br /&gt;set sendmail="/usr/bin/msmtp"&lt;br /&gt;set edit_headers=yes&lt;br /&gt;set record=+SENT&lt;br /&gt;set postponed=+DRAFTS&lt;br /&gt;mailboxes +INBOX&lt;br /&gt;set pager_context=1&lt;br /&gt;set pager_index_lines=6                 #show a mini-index in pager&lt;br /&gt;set menu_scroll&lt;br /&gt;set pgp_verify_sig=yes                   #dont show pgp in pager&lt;br /&gt;set status_on_top                       #put status line at top&lt;br /&gt;set sort=threads                        #sort by message threads in index&lt;br /&gt;set from=username@gmail.com&lt;br /&gt;set realname="My Name"&lt;br /&gt;set reverse_name=yes&lt;br /&gt;set reverse_realname=no&lt;br /&gt;set certificate_file=~/.mutt/certificates&lt;br /&gt;set move=no&lt;br /&gt;set delete=yes&lt;br /&gt;set include&lt;br /&gt;set reply_to&lt;br /&gt;set abort_nosubject=no&lt;br /&gt;set hdr_format="%4C %Z %{%m/%d} %-15.15F (%4c) %s" # format of the index&lt;br /&gt;hdr_order From: Date: User-Agent: X-Mailer To: Cc: Reply-To: Subject:&lt;br /&gt;ignore *&lt;br /&gt;unignore From: Date: User-Agent: X-Mailer To: Cc: Reply-To: Subject:&lt;br /&gt;my_hdr Reply-To:&lt;br /&gt;&lt;br /&gt;set editor="vim"&lt;br /&gt;set alias_file=~/.mutt/mail_aliases&lt;br /&gt;#source ~/.mutt/mail_aliases&lt;br /&gt;source ~/.mutt/gpg.rc&lt;br /&gt;&lt;br /&gt;###&lt;br /&gt;send-hook . 'set signature=~/.signature'&lt;/blockquote&gt;&lt;br /&gt;That should make the trick :)&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/566377799608126043-2517527219648091307?l=topperh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://topperh.blogspot.com/feeds/2517527219648091307/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=566377799608126043&amp;postID=2517527219648091307' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/2517527219648091307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/2517527219648091307'/><link rel='alternate' type='text/html' href='http://topperh.blogspot.com/2008/10/better-way-to-use-mutt-gmails-imap.html' title='A better way to use mutt + gMail&apos;s IMAP'/><author><name>TopperH</name><uri>http://www.blogger.com/profile/07104966396121305324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-566377799608126043.post-5752490051789780069</id><published>2008-10-21T03:41:00.000-07:00</published><updated>2008-12-11T21:57:33.695-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='server'/><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='lighttpd'/><category scheme='http://www.blogger.com/atom/ns#' term='rtorrent'/><category scheme='http://www.blogger.com/atom/ns#' term='p2p'/><category scheme='http://www.blogger.com/atom/ns#' term='tv series'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='torrent'/><title type='text'>Automatic TV series download, using rtorrent and a nice web interface.</title><content type='html'>This howto helps to set up a linux box that automatically downloads your favourite tv series episodes as soon as they come out.&lt;br /&gt;&lt;br /&gt;EDIT: another version of this howto can be found &lt;a href="http://topperh.blogspot.com/2008/12/automatic-tv-series-download-part-2.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The box can be controlled remotely or locally via a nice web interface.&lt;br /&gt;&lt;br /&gt;What do we need:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A working unix box with a webserver up and running (for this howto I assume &lt;a href="http://www.gentoo.org/"&gt;gentoo&lt;/a&gt; with &lt;a href="http://www.lighttpd.net/"&gt;lighttpd&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;&lt;a href="http://xmlrpc-c.sourceforge.net/"&gt;Xmlrpc-c&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://libtorrent.rakshasa.no/"&gt;Rtorrent&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.wtorrent-project.org/trac/"&gt;Wtorrent&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://sourceforge.net/projects/pytvshows/"&gt;Pytvshows&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://dtach.sourceforge.net/"&gt;Dtach&lt;/a&gt;&lt;/li&gt;&lt;li&gt;A cron daemon that supports users crontab (for example &lt;a href="ftp://ftp.isc.org/isc/cron/"&gt;vixie-cron&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A web browser (only on the client)&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;CONFIGURING THE WEB SERVER&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Skip this part if you are a real geek and don't need a web ui for rtorrent&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Php must be installed with the most common use flags (and some unusual like pdo, cgi, xml, sqlite and curl), here are mine:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Installed versions:  5.2.6-r7(5)(09:55:18 PM 10/20/2008)(berkdb bzip2 cgi cjk cli curl crypt ctype exif gdbm iconv imap mysql mysqli ncurses nls pcre pdo posix postgres readline reflection session spell spl sqlite ssl truetype unicode xml zlib -adabas -apache2 -bcmath -birdstep -calendar -cdb -concurrentmodphp -curlwrappers -db2 -dbase -dbmaker -debug -discard-path -doc -empress -empress-bcs -esoob -fastbuild -fdftk -filter -firebird -flatfile -force-cgi-redirect -frontbase -ftp -gd -gd-external -gmp -hash -inifile -interbase -iodbc -ipv6 -java-external -json -kerberos -kolab -ldap -ldap-sasl -libedit -mcve -mhash -msql -mssql -oci8 -oci8-instant-client -odbc -pcntl -pic -qdbm -recode -sapdb -sharedext -sharedmem -simplexml -snmp -soap -sockets -solid -suhosin -sybase -sybase-ct -sysvipc -threads -tidy -tokenizer -wddx -xmlreader -xmlrpc -xmlwriter -xpm -xsl -yaz -zip -zip-external)&lt;/blockquote&gt;And for lighty:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt; Installed versions:  1.4.20(11:14:49 PM 10/17/2008)(bzip2 fam fastcgi gdbm mysql pcre php ssl -doc -ipv6 -ldap -lua -memcache -minimal -rrdtool -test -webdav -xattr)&lt;/blockquote&gt;The minimal use flag MUST be turned off, because it triggers scgi, that we require.&lt;br /&gt;&lt;br /&gt;Time to put the hands in  /etc/lighttpd/lighttpd.conf ... In the modules section we add this line:&lt;br /&gt;&lt;blockquote&gt;"mod_scgi",&lt;/blockquote&gt;then we put this at the end of the file:&lt;br /&gt;&lt;blockquote&gt;scgi.server = (&lt;br /&gt;"/RPC2" =&gt; # RT_DIR&lt;br /&gt;( "127.0.0.1" =&gt;&lt;br /&gt;  (&lt;br /&gt;      "host" =&gt; "127.0.0.1", # Ip where rtorrent is listening&lt;br /&gt;      "port" =&gt; 5000, # Port specified in .rtorrent.rc&lt;br /&gt;      "check-local" =&gt; "disable"&lt;br /&gt;       )&lt;br /&gt;     )&lt;br /&gt;)&lt;/blockquote&gt;&lt;a href="http://www.wtorrent-project.org/trac/wiki/wTorrentInstall"&gt;Here&lt;/a&gt; there are some hints if you want to set up auth for accesing the /RPC2 location and for configuring &lt;a href="http://www.apache.org/"&gt;apache&lt;/a&gt; instead of lighttpd.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;INSTALLING RTORRENT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now it's time to install rtorrent with xmlrpc support, in gentoo it's quite straightforward:&lt;br /&gt;&lt;blockquote&gt;#echo net-p2p/rtorrent xmlrpc &gt;&gt; /etc/portage/package.use&lt;br /&gt;#emerge -av rtorrent&lt;/blockquote&gt;&lt;span style="font-style: italic;"&gt;(xmlrpc support is only requred if you plan to use the web interface, so, real geeks can skip this useflag too)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I like to have all my stuff in a certain order so I created a dedicated rtorrent user with its own home folder, but you can do it as your own everyday user too&lt;br /&gt;&lt;blockquote&gt;# useradd -m -G users,cron torrent&lt;br /&gt;# su torrent&lt;br /&gt;$ cd&lt;br /&gt;$ mkdir Downloads&lt;br /&gt;$ mkdir TorrentsToWatch&lt;br /&gt;$ bzcat /usr/share/doc/rtorrent-0.8.2-r5/rtorrent.rc.bz2 &gt; .rtorrent.rc&lt;br /&gt;&lt;/blockquote&gt;Now we edit the file we just created (/home/torrent/.rtorrent.rc) following the hints in the comments. Here are the mandatory parts:&lt;br /&gt;&lt;blockquote&gt;# Default directory to save the downloaded torrents.&lt;br /&gt;directory = /home/torrent/Downloads&lt;br /&gt;&lt;br /&gt;# Watch a directory for new torrents, and stop those that have been&lt;br /&gt;# deleted.&lt;br /&gt;schedule = watch_directory,5,5,load_start=/home/torrent/TorrentsToWatch/*.torrent&lt;br /&gt;&lt;br /&gt;# Scgi port&lt;br /&gt;scgi_port = 127.0.0.1:5000&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-style: italic;"&gt;(scgi port is only needed for web interface users)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;CREATING AN INIT SCRIPT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now we log out and log back in as root to create a rtorrent init script (we also need dtach, so we can follow the rtorrent process in a console or via ssh in case something goes wrong with the web interface).&lt;br /&gt;&lt;blockquote&gt;# emerge -av app-misc/dtach&lt;br /&gt;&lt;/blockquote&gt;[EDIT] There is a bug &lt;a href="https://bugs.gentoo.org/250578"&gt;here&lt;/a&gt; with up-to-date rtorrent init scripts [EDIT]&lt;br /&gt;And create the /etc/init.d/rtorrentd file with this content:&lt;br /&gt;&lt;blockquote&gt;depend() {&lt;br /&gt;    use net.*&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;start() {&lt;br /&gt;    ebegin "Starting rtorrent"&lt;br /&gt;    start-stop-daemon --start --chuid $USER \&lt;br /&gt;        --env TERM="xterm" \&lt;br /&gt;        --env HOME="/home/$USER" \&lt;br /&gt;        --exec /usr/bin/dtach -- -n $SOCKET /usr/bin/rtorrent&lt;br /&gt;    eend $?&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;stop() {&lt;br /&gt;    ebegin "Stopping rtorrent"&lt;br /&gt;    start-stop-daemon --stop --signal 2 --name rtorrent&lt;br /&gt;    eend $?&lt;br /&gt;}&lt;/blockquote&gt;And its configuration file, /etc/conf.d/rtorrentd&lt;br /&gt;&lt;blockquote&gt;USER="torrent"&lt;br /&gt;SOCKET="/tmp/rtorrent.dtach"&lt;/blockquote&gt;Now we launch the init script and we check if  rtorrent works correctly:&lt;br /&gt;&lt;blockquote&gt;#/etc/init.d/rtorrentd start&lt;br /&gt;# dtach -a /tmp/rtorrent.dtach&lt;/blockquote&gt;You need to press "ctrl+\" to detach the attached screen.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;INSTALLING PYTVSHOWS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[EDIT] Thanks to &lt;a href="http://jolexa.wordpress.com/"&gt;Jeremy Olexa aka Darkside&lt;/a&gt;,  net-misc/pytvshows is now in portage tree, so you can safely skip this part and just emerge it. [/EDIT]&lt;br /&gt;&lt;br /&gt;There are many scripts to automate the download of tv series, btw I like &lt;a href="http://sourceforge.net/projects/pytvshows/"&gt;pytvshows&lt;/a&gt;, because it just does what it's intented to do: read a config file, grab the new episodes from &lt;a href="http://tvrss.net/"&gt;tvrss&lt;/a&gt;, and downloads the torrents in a given folder, that is, in our case, the folder rtorrent is watching.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;# su torrent&lt;br /&gt;$ mkdir tmp&lt;br /&gt;$ cd tmp&lt;br /&gt;$ wget http://ovh.dl.sourceforge.net/sourceforge/pytvshows/pytvshows-0.2.tar.gz&lt;br /&gt;$ tar xvzf pytvshows-0.2.tar.gz&lt;br /&gt;$ cd pytvshows-0.2&lt;br /&gt;$ python setup.py build&lt;br /&gt;$ cp build/scripts-2.5/pytvshows ~/&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Now we create and edit /home/torrent/.pytvshows.cfg with the exact names (like in tvrss.net) of our favourite series:&lt;br /&gt;&lt;blockquote&gt;[Lost]&lt;br /&gt;&lt;br /&gt;[Heroes]&lt;br /&gt;&lt;br /&gt;[24]&lt;br /&gt;&lt;br /&gt;[The+Sarah+Connor+Cronichles]&lt;br /&gt;&lt;br /&gt;[Fringe]&lt;/blockquote&gt;Don't forget the "+" instead of spaces.&lt;br /&gt;Now we launch manually the script (only for the first time),&lt;br /&gt;&lt;blockquote&gt;$ ~/pytvshows -o ~/TorrentsToWatch/&lt;/blockquote&gt;&lt;br /&gt;and see what happened in our config file...&lt;br /&gt;The script assumes that you have alredy seen all the episodes broadcasted until today and just wanna download the ones coming next. To change this behavior just change the number of the episode to the first one you want to download -1, for example if I want to download from the third episode of Fringe till today I change its config like this:&lt;br /&gt;&lt;blockquote&gt;[Fringe]&lt;br /&gt;episode = 2&lt;br /&gt;season = 1&lt;br /&gt;show_type = seasonepisode&lt;br /&gt;human_name = Fringe&lt;br /&gt;time = 2008-10-15 05:20:06&lt;/blockquote&gt;If I want all the episodes I change the "episode" value to 0.&lt;br /&gt;Launching the script again will now fulfill our ~/TorrentsToWatch/ folder with Fringe's latest episodes torrents.&lt;br /&gt;If our rtorrent init script is still running rtorrent will be automagicaly alredy downloading Fringe :)&lt;br /&gt;Check it with this command:&lt;br /&gt;&lt;blockquote&gt;$ dtach -a /tmp/rtorrent.dtach&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;AUTOMATING THINGS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The scope of this howto is to download episodes as soon as they are out with no need of interaction... This is where a cron job comes useful:&lt;br /&gt;&lt;blockquote&gt;#su torrent&lt;br /&gt;$crontab -e&lt;/blockquote&gt;&lt;br /&gt;and we add this line to the cron jobs:&lt;br /&gt;&lt;blockquote&gt;19,49 * * * *  ~/pytvshows -o ~/TorrentsToWatch/&lt;/blockquote&gt;&lt;br /&gt;Now the script will check every 30 minutes for new episodes and add the torrents in the rtorrent watched folder.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;INSTALLING A WEB UI&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There are many rtorrent grapihcal clients listed in &lt;a href="http://libtorrent.rakshasa.no/wiki/UtilsList"&gt;this page&lt;/a&gt;, the reasons why I've chosen &lt;a href="http://www.wtorrent-project.org/trac/"&gt;wtorrent&lt;/a&gt; are the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I alredy have a web server installed&lt;/li&gt;&lt;li&gt;It's php, so it's not consuming resources while I'm not using it&lt;/li&gt;&lt;li&gt;It's simple and clean&lt;/li&gt;&lt;li&gt;It works&lt;/li&gt;&lt;/ul&gt;Get the latest wtorrent form the &lt;a href="http://www.wtorrent-project.org/trac/"&gt;project page&lt;/a&gt; and extract it in your web root:&lt;br /&gt;&lt;blockquote&gt;#cd /var/www/localhost/htdocs&lt;br /&gt;#tar -zxvf /path/to/wtorrent-alpha*.tar.gz&lt;/blockquote&gt;&lt;br /&gt;Now we create the file wtorrent/conf/user.conf.php&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;br /&gt;And point a web browser to http://my.host/wtorrent/install.php to test the configuration, then create a user with a strong password and logout.&lt;br /&gt;&lt;br /&gt;Now it's time to remove the install.php file and point our web browser to http://my.host/wtorrent/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Have fun :D&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/566377799608126043-5752490051789780069?l=topperh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://topperh.blogspot.com/feeds/5752490051789780069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=566377799608126043&amp;postID=5752490051789780069' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/5752490051789780069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/5752490051789780069'/><link rel='alternate' type='text/html' href='http://topperh.blogspot.com/2008/10/automatic-tv-series-download-using.html' title='Automatic TV series download, using rtorrent and a nice web interface.'/><author><name>TopperH</name><uri>http://www.blogger.com/profile/07104966396121305324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-566377799608126043.post-8690049552420044589</id><published>2008-09-22T09:14:00.000-07:00</published><updated>2008-09-22T09:40:03.046-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='laptop'/><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Keeping a hostname even when not on lan</title><content type='html'>I use to connect to my home server from my laptop, from my LAN when I'm at home and from the internet when I'm not.&lt;br /&gt;&lt;br /&gt;My server has a static ip address in my lan (192.168.1.5) and a dyndns name on the internet.&lt;br /&gt;&lt;br /&gt;The server's hostname is "fandango" and the dyndns name is something like "fandango.foo.bar".&lt;br /&gt;&lt;br /&gt;I had this line in my /etc/hosts:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;192.168.1.5             fandango&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This configuration was a pain in the ass because from home I had to "ssh TopperH@fandango", while from the outside I had to "ssh TopperH@fandango.foo.bar". I also had double passwords saved in my web browser, double quassel configuration ecc.&lt;br /&gt;&lt;br /&gt;The idea is to always relate to my server as "fandango", wether at home or not, so I made two scripts and created a postup in my /etc/conf.d/net.&lt;br /&gt;&lt;br /&gt;/root/scripts/hosts.world&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;#!/bin/bash&lt;br /&gt;MYFILE='/etc/hosts.backup'&lt;br /&gt;OLDHOST=`grep fandango $MYFILE | awk '{ print $1 }'`&lt;br /&gt;NEWHOST=`host fandangofoo.bar | gawk '{print $4}'`&lt;br /&gt;sed s/$OLDHOST/$NEWHOST/ $MYFILE &gt; /etc/hosts&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/root/scripts/hosts.home&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;MYFILE='/etc/hosts.backup'&lt;br /&gt;OLDHOST=`grep fandango $MYFILE | awk '{ print $1 }'`&lt;br /&gt;NEWHOST=192.168.1.5&lt;br /&gt;sed s/$OLDHOST/$NEWHOST/ $MYFILE &gt; /etc/hosts&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;/etc/conf.d/net&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;[snip]&lt;br /&gt;postup() {&lt;br /&gt;        if [[ ${IFACE} == "ppp1" ]] ; then&lt;br /&gt;                /root/scripts/hosts.home&lt;br /&gt;        elif [[ ${IFACE} == "ppp2" ]] ; then&lt;br /&gt;                /root/scripts/hosts.world&lt;br /&gt;        fi&lt;br /&gt;return 0&lt;br /&gt;}&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I'm sure there are more elegant ways to achieve the same results, and comments are welcome... By the way it just works :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/566377799608126043-8690049552420044589?l=topperh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://topperh.blogspot.com/feeds/8690049552420044589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=566377799608126043&amp;postID=8690049552420044589' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/8690049552420044589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/8690049552420044589'/><link rel='alternate' type='text/html' href='http://topperh.blogspot.com/2008/09/keeping-hostname-even-when-not-on-lan.html' title='Keeping a hostname even when not on lan'/><author><name>TopperH</name><uri>http://www.blogger.com/profile/07104966396121305324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-566377799608126043.post-155004852567589277</id><published>2008-09-19T21:46:00.000-07:00</published><updated>2008-09-20T05:17:06.949-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='gmail'/><category scheme='http://www.blogger.com/atom/ns#' term='mail'/><category scheme='http://www.blogger.com/atom/ns#' term='mailx'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='postfix'/><title type='text'>Forwarding local mail to Gmail using postfix</title><content type='html'>On my workstation I have postfix set up to delivery local mail to a maildir in my $HOME, so that I can read it using my mail client of choice.&lt;br /&gt;&lt;br /&gt;I also have a server and I often forget to ssh in it and open mutt to read the emails that the system (mostly cron) sends me.&lt;br /&gt;&lt;br /&gt;I know there are simple ways to be notified every time  I open a console, for example this:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;echo "MAILCHECK=30" &gt;&gt; ~/.bashrc&lt;br /&gt;echo 'MAILPATH=~/.maildir/new?"You have a new mail. Read it with 'mutt'."' &gt;&gt; ~/.bashrc&lt;/blockquote&gt;But as long as the server works fine I don't need to login that often.&lt;br /&gt;&lt;br /&gt;So, why not sending all the local mail to my gmail account, so that I can read it wherever I am, even on my BlackBerry? &lt;a href="http://www.darryl.cain.com.au/postfix/"&gt;Here&lt;/a&gt; I found a nice howto.&lt;br /&gt;&lt;br /&gt;First of all I need postfix set up:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;# emerge -C ssmtp&lt;br /&gt;# echo mail-mta/postfix mbox pam sasl ssl &gt;&gt; /etc/portage/package.use&lt;br /&gt;# emerge postfix&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Once is emerged I edit /etc/postfix/main.cf being careful to change XXX with something meaningful:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;inet_interfaces = 127.0.0.1&lt;br /&gt;relayhost = [smtp.gmail.com]:587 &lt;br /&gt;smtp_use_tls = yes&lt;br /&gt;smtp_tls_CAfile = /etc/postfix/cacert.pem&lt;br /&gt;smtp_tls_cert_file = /etc/postfix/XXX-cert.pem&lt;br /&gt;smtp_tls_key_file = /etc/postfix/XXX-key.pem&lt;br /&gt;smtp_tls_session_cache_database = btree:/var/run/smtp_tls_session_cache  smtp_sasl_auth_enable = yes&lt;br /&gt;smtp_sasl_password_maps = hash:/etc/postfix/saslpass&lt;br /&gt;smtpd_sasl_local_domain = $myhostname&lt;br /&gt;smtp_sasl_security_options = noanonymous &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Then, according to &lt;a href="http://souptonuts.sourceforge.net/postfix_tutorial.html"&gt;this tutorial&lt;/a&gt; I create the tls certificate:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;# /etc/ssl/misc/CA.pl -newca&lt;br /&gt;# openssl req -new -nodes -subj '/CN=domain.com/O=Name/C=US/ST=State/L=Location/emailAddress=user@gmail.com' -keyout XXX-key.pem -out XXX-req.pem -days 3650 &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Domain, name, country, state, location and email address must be substituted and remembered, to be used in next step (once again XXX must be filled as above):&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;# openssl ca -out XXX-cert.pem -infiles XXX-req.pem&lt;br /&gt;# cp demoCA/cacert.pem XXX-key.pem XXX-cert.pem /etc/postfix&lt;br /&gt;# chmod 644 /etc/postfix/XXX-cert.pem /etc/postfix/cacert.pem&lt;br /&gt;# chmod 400 /etc/postfix/XXX-key.pem&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Now I edit the /etx/postfix/saslpass using my gmail username and password:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;[smtp.gmail.com]:587 user@gmail.com:password&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;and I create the associated hash file:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;# cd /etc/postfix&lt;br /&gt;# postmap saslpass&lt;br /&gt;# chmod 600 saslpass&lt;br /&gt;# chmod 644 saslpass.db&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Now, as regular user, specify the local forward:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;$ echo 'user@gmail.com' &gt; ~/.forward&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I also set up local aliases in /etc/mail/aliases:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;root:               username&lt;br /&gt;operator:           username&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Postfix needs a few commands before being started:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;# postfix upgrade-configuration&lt;br /&gt;# postfix check&lt;br /&gt;# newaliases&lt;br /&gt;# /etc/init.d/postfix start&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Now all my local emails should be sent to my gmail account, let's see if thigs are working:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;# emerge -av mail-client/mailx&lt;br /&gt;$ andrea@fandango ~ $ mail root&lt;br /&gt;Subject: postfix works?&lt;br /&gt;Yes it does!!!&lt;br /&gt;Cc:&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This is the output of /var/log/messages&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Sep 20 13:58:40 fandango postfix/pickup[23235]: 3F61AF066C: uid=1000 from=&lt;andrea&gt;&lt;br /&gt;Sep 20 13:58:40 fandango postfix/cleanup[23243]: 3F61AF066C: message-id=&lt;20080920115840.3f61af066c@localhost&gt;&lt;br /&gt;Sep 20 13:58:40 fandango postfix/qmgr[23239]: 3F61AF066C: from=&lt;andrea@localhost.localdomain&gt;, size=339, nrcpt=1 (queue active)&lt;br /&gt;Sep 20 13:58:40 fandango postfix/cleanup[23243]: 41AAEF066B: message-id=&lt;20080920115840.3f61af066c@localhost&gt;&lt;br /&gt;Sep 20 13:58:40 fandango postfix/qmgr[23239]: 41AAEF066B: from=&lt;andrea@localhost.localdomain&gt;, size=471, nrcpt=1 (queue active)&lt;br /&gt;Sep 20 13:58:40 fandango postfix/qmgr[23239]: 3F61AF066C: removed&lt;br /&gt;Sep 20 13:58:40 fandango postfix/local[23245]: 3F61AF066C: to=&lt;root@localhost.localdomain&gt;, orig_to=&lt;root&gt;, relay=local, delay=0.01, delays=0.01/0/0/0, dsn=2.0.0, status=sent (forwarded as 41AAEF066B)&lt;br /&gt;Sep 20 13:58:43 fandango postfix/qmgr[23239]: 41AAEF066B: removed&lt;br /&gt;Sep 20 13:58:43 fandango postfix/smtp[23246]: 41AAEF066B: to=&lt;momesso.andrea@gmail.com&gt;, orig_to=&lt;root&gt;, relay=smtp.gmail.com[72.14.221.109]:587, delay=3.3, delays=0/0/1.4/1.9, dsn=2.0.0, status=sent (250 2.0.0 OK 1221912634 12sm2163798fgg.0)&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/566377799608126043-155004852567589277?l=topperh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://topperh.blogspot.com/feeds/155004852567589277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=566377799608126043&amp;postID=155004852567589277' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/155004852567589277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/155004852567589277'/><link rel='alternate' type='text/html' href='http://topperh.blogspot.com/2008/09/forwarding-local-mail-to-gmail-using.html' title='Forwarding local mail to Gmail using postfix'/><author><name>TopperH</name><uri>http://www.blogger.com/profile/07104966396121305324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-566377799608126043.post-1657427223678444987</id><published>2008-08-26T09:11:00.000-07:00</published><updated>2008-08-26T11:07:00.685-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><category scheme='http://www.blogger.com/atom/ns#' term='port forwarding'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualbox'/><category scheme='http://www.blogger.com/atom/ns#' term='xorg'/><title type='text'>Forwarding VirtualBox guest apps on host's X server</title><content type='html'>&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;SCENARIO:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;My host machine runs a stable amd64 Gentoo and Virtualbox. My guest operating system is again gentoo (this time a bleeding edge unstable ~x86 with evil overlays), but every X11 capable guest should work.&lt;/p&gt;&lt;p&gt;The guest machine network uses NAT, so there's nothing to configure, just dhcp and internet works.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;GOAL:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Have guest apps to look native on my host DE, using systray, being able to copy/paste, while still running on a protected enviroment.&lt;/p&gt;&lt;p&gt;No need to run session managers (xdm) in the guest machine, neither to configure Xorg or to install VirtualBox Guest Additions.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;HOWTO:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;NAT doesn't allow host to ssh in guest, but there's a workaround:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;$ VBoxManage setextradata &lt;guestname&gt; "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2222&lt;br /&gt;$ VBoxManage setextradata &lt;guestname&gt; "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22&lt;br /&gt;$ VBoxManage setextradata &lt;guestname&gt; "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP&lt;/guestname&gt;&lt;/guestname&gt;&lt;/guestname&gt;&lt;/blockquote&gt;&lt;guestname&gt;&lt;guestname&gt;&lt;guestname&gt;&lt;/guestname&gt;&lt;/guestname&gt;&lt;/guestname&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Read &lt;a href="http://mydebian.blogdns.org/?p=148"&gt;here&lt;/a&gt; to find how to undo those steps.&lt;/p&gt;&lt;p&gt;The guest now must be shut down (a simple reboot will not work).&lt;/p&gt;&lt;p&gt;Now the host machine can ssh into guest using this command:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;$ ssh -p 2222 &lt;username&gt;"user"@localhost&lt;/username&gt;&lt;/blockquote&gt;&lt;username&gt;&lt;/username&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;On the host machine we uncomment/edit those lines in /etc/ssh/ssh_config&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;ForwardAgent yes&lt;br /&gt;ForwardX11 yes&lt;/blockquote&gt;On the guest machine we uncomment/edit this line in /etc/ssh/sshd_config&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;X11Forwarding yes&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Remaining in the guest machine we reload the ssh revice:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;# /etc/init.d/sshd reload&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Now we run (from the host) a little test to see if everything works fine:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;$ ssh -p 2222 &lt;user&gt;"user"@localhost -YC xclock&lt;/user&gt;&lt;/blockquote&gt;&lt;user&gt;&lt;/user&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;If it complains about wrong autenthication remove from the guest ~/.Xauthority and try again.&lt;/p&gt;&lt;p&gt;Now we make things nicer:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;$ echo "alias runguest='ssh -p 2222 &lt;user&gt;"user"@localhost -YC '" &gt;&gt; .bashrc&lt;/user&gt;&lt;/blockquote&gt;&lt;user&gt;&lt;/user&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Now we can open a terminal and:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;$ runguest firefox&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Cool, isn't it?&lt;/p&gt;&lt;p&gt;&lt;strong&gt;DEAR LAZYWEB:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;One of the nicest features of VirtualBox is the ability to "hibernate" the guest "saving the machine state". Can anybody find a way to ctrl-z a forwarded app, suspend the Virtual Machine and then foreground it once resumed the VM?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/566377799608126043-1657427223678444987?l=topperh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://topperh.blogspot.com/feeds/1657427223678444987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=566377799608126043&amp;postID=1657427223678444987' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/1657427223678444987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/1657427223678444987'/><link rel='alternate' type='text/html' href='http://topperh.blogspot.com/2008/08/forwarding-virtualbox-guest-apps-on.html' title='Forwarding VirtualBox guest apps on host&apos;s X server'/><author><name>TopperH</name><uri>http://www.blogger.com/profile/07104966396121305324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-566377799608126043.post-4390878323358623430</id><published>2008-07-31T01:48:00.000-07:00</published><updated>2008-07-31T08:57:11.354-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='hal'/><category scheme='http://www.blogger.com/atom/ns#' term='xorg'/><title type='text'>Xorg-server with hal support and keybord layout</title><content type='html'>Recent version of xorg-server (1.4.2) can be compiled with the "hal" use flag, since I have this flag globally enabled, I got my package compiled this way.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.flameeyes.eu/"&gt;Flameeyes&lt;/a&gt; told me on irc that the hal support is useless in most desktop systems and may cause some problems, by the way I encountered only one major issue: the keyboard layout setting in /etc/X11/xorg.conf is ignored.&lt;br /&gt;&lt;br /&gt;This happens because now it is up to hal to take care of it, so I had to create a file called /etc/hal/fdi/policy/10-x11-input.fdi&lt;br /&gt;&lt;br /&gt;http://rafb.net/p/pkcBG846.html&lt;br /&gt;&lt;br /&gt;(I had to uplad the content of the file to nopaste since blogger's wysiwyg editor seems to have some problems handling xml tags)&lt;br /&gt;&lt;br /&gt;After reloading hal and restarting X, I had my Italian keyboard layout back.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/566377799608126043-4390878323358623430?l=topperh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://topperh.blogspot.com/feeds/4390878323358623430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=566377799608126043&amp;postID=4390878323358623430' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/4390878323358623430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/4390878323358623430'/><link rel='alternate' type='text/html' href='http://topperh.blogspot.com/2008/07/xorg-server-with-hal-support-and.html' title='Xorg-server with hal support and keybord layout'/><author><name>TopperH</name><uri>http://www.blogger.com/profile/07104966396121305324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-566377799608126043.post-2024389258291440703</id><published>2008-07-17T09:37:00.000-07:00</published><updated>2008-07-17T10:50:55.614-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='cron'/><title type='text'>/etc revision control with git</title><content type='html'>After reading &lt;a href="http://http//ciaranm.wordpress.com/2008/07/16/hot-fresh-shiny-config-files/"&gt;this&lt;/a&gt; article I tough that having all of my config files under revision control would be a nice idea.&lt;br /&gt;&lt;br /&gt;Since geeks seem to love git, I googled a bit and found some interesting howtos:&lt;br /&gt;&lt;a href="http://www.jukie.net/%7Ebart/blog/20070312134706"&gt;Bart's Blog&lt;/a&gt;&lt;br /&gt;&lt;a href="http://http//bryan-murdock.blogspot.com/2007/07/put-etc-under-revision-control-with-git.html"&gt;Cyclopedia Square&lt;/a&gt;&lt;br /&gt;&lt;a href="http://http//en.opensuse.org/Track_changes_in_%27/etc%27_with_git"&gt;OpenSuse&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;First thing to do is to install git, in gentoo this step comes pretty simple:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;# emerge -av dev-util/git&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Then tell git something about me (this step is optional):&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;font-family:'Times New Roman';font-size:16;"  &gt;&lt;/span&gt;&lt;blockquote&gt;$ git config --global user.name "Your Name Comes Here"&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;font-family:'Times New Roman';font-size:16;"  &gt;&lt;/span&gt;&lt;br /&gt;$ git config --global user.email you@yourdomain.example.com&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Create the new repo (a .git folder)&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;# cd /etc&lt;br /&gt;# git init .&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Now, create a new (and useful) file inside the git controlled folder:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;# vim /etc/cron.hourly/hourly_etc_git&lt;br /&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;MYDATE=`date`&lt;br /&gt;echo "etc_git - $MYDATE" | tee -a /var/log/etc_git.log&lt;br /&gt;pushd /etc&lt;br /&gt;git add . | tee -a /var/log/etc_git.log&lt;br /&gt;git commit -m"$MYDATE" | tee -a /var/log/etc_git.log&lt;br /&gt;popd&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;And register the changes:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;# cd /etc&lt;br /&gt;# git add .&lt;br /&gt;#git commit -m"Initial /etc commit"&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;There are some files I don't want to be tracked by git:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;# vim /etc/.gitignore&lt;br /&gt;&lt;br /&gt;mtab&lt;br /&gt;ld.so.cache&lt;br /&gt;asound.state&lt;br /&gt;resolv*&lt;br /&gt;adjtime&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Assuming cron is up and running the /etc folder will be checked every hour.&lt;br /&gt;&lt;br /&gt;To see the last 3 changes:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;# git whatchanged -3&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;To see the complete log with all the diffs:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;# git-log -p&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;And finally the one I like best, it gives an overview of the changes made in each step:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;# git-log --stat --summary&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(255, 255, 255); font-style: normal; font-variant: normal; font-weight: bold; letter-spacing: normal; line-height: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;font-family:'Lucida Grande';font-size:26;"  &gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/566377799608126043-2024389258291440703?l=topperh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://topperh.blogspot.com/feeds/2024389258291440703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=566377799608126043&amp;postID=2024389258291440703' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/2024389258291440703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/2024389258291440703'/><link rel='alternate' type='text/html' href='http://topperh.blogspot.com/2008/07/etc-revision-control-with-git.html' title='/etc revision control with git'/><author><name>TopperH</name><uri>http://www.blogger.com/profile/07104966396121305324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-566377799608126043.post-7007034859662593337</id><published>2008-07-03T22:02:00.000-07:00</published><updated>2008-07-04T00:29:59.063-07:00</updated><title type='text'>Encrypting home partition</title><content type='html'>Following this &lt;a href="http://wael.nasreddine.com/2008/07/03/securing-your-contents.html/3"&gt;howto&lt;/a&gt; I encrypted my /home using AES with a 256-bit key.&lt;br /&gt;&lt;br /&gt;Edit: there was also &lt;a href="http://blog.pioto.org/articles/2007/12/15/encrypting-your-home"&gt;this&lt;/a&gt; very good howto, but the link seems to be down.&lt;br /&gt;&lt;br /&gt;First of all I needed to recompile my kernel to have appropriate support:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;CONFIG_DM_CRYPT=y&lt;br /&gt;CONFIG_CRYPTO_CBC=y&lt;br /&gt;CONFIG_CRYPTO_SHA256=y&lt;br /&gt;CONFIG_CRYPTO_AES=y&lt;br /&gt;CONFIG_CRYPTO_AES_X86_64=y&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;I also needed a free partition for my home (in my case /dev/sda4), and emerged some stuff:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;#emerge -av sys-fs/cryptsetup&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Let's begin with encryption:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;#cryptsetup luksFormat -c aes-cbc-essiv:sha256 /dev/sda4&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I usually have my home folder and all sensitive data in an ext3 partition, so:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;#mke2fs -j /dev/mapper/secure-home&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Make a temporary mount point and mount:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;#mkdir /mnt/secure-home&lt;br /&gt;#mount /dev/mapper/secure-home /mnt/secure-home&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Now I could have synced all my data from the old home with rsync in this way:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;#rsync -tarv /home/* /mnt/secure-home&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;But I had a lot of cruft in my home dir, so I decided to selectively copy by hand what I need and start up with a brand new home, backing up the old one inside a backup dir in the encrypted partition:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;#mkdir /mnt/secure-home/backup&lt;br /&gt;#rsync -tarv /home/* /mnt/secure-home/backup&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The /etc/fstab needs some mods:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;  /dev/mapper/secure-home /home ext3 noatime&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;And so does the /etc/conf.d/dmcrypt:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;  ## /home with passphrase&lt;br /&gt;target=secure-home&lt;br /&gt;source='/dev/sda4'&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Now it's time to remove the old home (mine was in the / partition so I only needed to rm it)&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;#rm -rf /home/*&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;At reboot I've been asked for my password and everything works fine, with no visible slowdowns.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/566377799608126043-7007034859662593337?l=topperh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://topperh.blogspot.com/feeds/7007034859662593337/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=566377799608126043&amp;postID=7007034859662593337' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/7007034859662593337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/7007034859662593337'/><link rel='alternate' type='text/html' href='http://topperh.blogspot.com/2008/07/encrypting-home-partition.html' title='Encrypting home partition'/><author><name>TopperH</name><uri>http://www.blogger.com/profile/07104966396121305324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-566377799608126043.post-729503075301840968</id><published>2008-07-02T11:02:00.000-07:00</published><updated>2008-07-02T11:16:03.969-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hibernate'/><category scheme='http://www.blogger.com/atom/ns#' term='laptop'/><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><title type='text'>A smarter way to hibernate</title><content type='html'>While I like the way linux handles memory caches, it can become a pain in the ass when you need to hibernate (suspend to disk) your laptop.&lt;br /&gt;&lt;br /&gt;The memory cache size grows the more you work and tends to fulfill all your free ram. While this is good because it speeds up your system while doing repetitive jobs it can consistently increase the hibernate time.&lt;br /&gt;&lt;br /&gt;Along with that it writes and reads lots of data every time you hibernate/resume stressing your disks.&lt;br /&gt;&lt;br /&gt;For example my new laptop has 3gb of ram and sometimes the hibernate process has to write on the swap partition more than one gb.&lt;br /&gt;&lt;br /&gt;I wrote a little script that (hopefully) safely wipes the memory cache and hibernates my machine.&lt;br /&gt;&lt;br /&gt;I called it /usr/local/sbin/freeze.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;#! /bin/sh&lt;br /&gt;sync&lt;br /&gt;echo 1 &gt; /proc/sys/vm/drop_caches&lt;br /&gt;sync&lt;br /&gt;hibernate&lt;br /&gt;&lt;/blockquote&gt;I'm using this instead of hibernate since a couple of days and haven't encountered any issues yet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/566377799608126043-729503075301840968?l=topperh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://topperh.blogspot.com/feeds/729503075301840968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=566377799608126043&amp;postID=729503075301840968' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/729503075301840968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/729503075301840968'/><link rel='alternate' type='text/html' href='http://topperh.blogspot.com/2008/07/smarter-way-to-hibernate.html' title='A smarter way to hibernate'/><author><name>TopperH</name><uri>http://www.blogger.com/profile/07104966396121305324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-566377799608126043.post-5420566241400301994</id><published>2008-06-30T21:46:00.000-07:00</published><updated>2008-07-01T06:39:24.719-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='manslide'/><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='ebuild'/><category scheme='http://www.blogger.com/atom/ns#' term='slideshow'/><category scheme='http://www.blogger.com/atom/ns#' term='smile'/><title type='text'>Ebuild for SMILE</title><content type='html'>I needed a slideshow application to make a dvd of my daughter's pictures for my grandparents. I always knew, even if never tried that there is an app called "manslide" to do it.&lt;br /&gt;&lt;br /&gt;After some google searches I found out that this app is broken and unmanteined, and the kde-apps page has been removed.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.kde-apps.org/content/show.php/SMILE?content=83276"&gt;Smile&lt;/a&gt; (Slideshow Maker In linux Enviroment) seems to be a nice qt4 rewrite of manslide. I haven't been able to find an ebuild for it, neither in bugzilla or in some overlays, so I wrote one by myself. I've never been good in writing ebuilds, btw this one just works:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;# Copyright 1999-2008 Gentoo Foundation&lt;/div&gt;&lt;div&gt;# Distributed under the terms of the GNU General Public License v2&lt;/div&gt;&lt;div&gt;# $Header: $&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;inherit eutils qt4&lt;/div&gt;&lt;div&gt;DESCRIPTION="Slideshow Maker In Linux Environement"&lt;/div&gt;&lt;div&gt;HOMEPAGE="http://www.kde-apps.org/content/show.php/SMILE?content=83276"&lt;/div&gt;&lt;div&gt;SRC_URI="http://www.mandrivalinux-online.eu/manslide/${P}.tar.gz"&lt;/div&gt;&lt;div&gt;SLOT="0"&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;LICENSE="GPL-2"&lt;/div&gt;&lt;div&gt;KEYWORDS="~amd64"&lt;/div&gt;&lt;div&gt;IUSE=""&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;DEPEND="&gt;=media-sound/sox-14.0.1&lt;/div&gt;&lt;div&gt;        media-video/mplayer&lt;/div&gt;&lt;div&gt;        ( $(qt4_min_version 4.2.0) )&lt;/div&gt;&lt;div&gt;        "&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;RDEPEND="${DEPEND}"&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;src_compile() {&lt;/div&gt;&lt;div&gt;        cd smile &amp;amp;&amp;amp; eqmake4 smile.pro&lt;/div&gt;&lt;div&gt;        emake || die&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;src_install() {&lt;/div&gt;&lt;div&gt;        dodir /usr/bin&lt;/div&gt;&lt;div&gt;        exeinto /usr/bin&lt;/div&gt;&lt;div&gt;        doexe smile/smile&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;        make_desktop_entry Smile Smile smile  "Qt;AUdioVideo;Video"&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/566377799608126043-5420566241400301994?l=topperh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://topperh.blogspot.com/feeds/5420566241400301994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=566377799608126043&amp;postID=5420566241400301994' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/5420566241400301994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/5420566241400301994'/><link rel='alternate' type='text/html' href='http://topperh.blogspot.com/2008/06/ebuild-for-smile.html' title='Ebuild for SMILE'/><author><name>TopperH</name><uri>http://www.blogger.com/profile/07104966396121305324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-566377799608126043.post-3153606287332688612</id><published>2008-06-20T09:22:00.000-07:00</published><updated>2008-06-20T13:18:27.543-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='fingerprint'/><title type='text'>Howto: AuthenTec AES1610 Fingerprint reader and gentoo</title><content type='html'>My &lt;a href="http://topperh.blogspot.com/2008/05/asus-pro60eseries-gentoo-love.html"&gt;laptop&lt;/a&gt; comes with a fingerprint reader that can be used for authentication:&lt;br /&gt;&lt;blockquote&gt;Bus 006 Device 007: ID 08ff:1600 AuthenTec, Inc.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;There is a project called &lt;a href="http://www.reactivated.net/fprint/wiki/Libfprint"&gt;fprint&lt;/a&gt; that allows users to use it under linux. There is not yet an ebuilt for it in the portage tree, but I found it in an overlay.&lt;br /&gt;&lt;br /&gt;The main issue I found is that libfprint does not compile with gcc-4.1.2 (which is currently stable for gentoo amd64) because of an "-fgnu89-inline" error.&lt;br /&gt;This option is not yet implemented in 4.1.2 so I decided to switch to gcc-4.3.1.&lt;br /&gt;&lt;br /&gt;I assume layman is installed and working, otherwise take a look &lt;a href="http://www.gentoo.org/proj/en/overlays/userguide.xml"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;# layman -a wschlich-testing&lt;br /&gt;# echo =app-misc/fprint_demo-0.4 &gt;&gt; /etc/portage/package.keywords/general&lt;br /&gt;# echo =media-libs/libfprint-0.0.6 &gt;&gt; /etc/portage/package.keywords/general&lt;br /&gt;# echo =sys-auth/pam_fprint-0.2 &gt;&gt; /etc/portage/package.keywords/general&lt;br /&gt;# emerge -av fprint_demo pam_fprint&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;and now, as a regular user under X:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;$ fprint_demo&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;In the enroll tab enroll the right index finger moving it smoothly . Than test it in the verify tab. It will take dozens of tries before getting a correct match, this is why we are going to use the usual password method if the match fails.&lt;br /&gt;&lt;br /&gt;Now we have to edit the /etc/pam.d/system-auth file inserting this line:&lt;br /&gt;&lt;blockquote&gt;auth       sufficient   pam_fprint.so&lt;/blockquote&gt;&lt;br /&gt;before this one:&lt;br /&gt;&lt;blockquote&gt;auth       sufficient   pam_unix.so try_first_pass likeauth nullok&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/566377799608126043-3153606287332688612?l=topperh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://topperh.blogspot.com/feeds/3153606287332688612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=566377799608126043&amp;postID=3153606287332688612' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/3153606287332688612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/3153606287332688612'/><link rel='alternate' type='text/html' href='http://topperh.blogspot.com/2008/06/howto-authentek-aes1610-fingerprint.html' title='Howto: AuthenTec AES1610 Fingerprint reader and gentoo'/><author><name>TopperH</name><uri>http://www.blogger.com/profile/07104966396121305324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-566377799608126043.post-3217110234082673997</id><published>2008-06-14T06:59:00.000-07:00</published><updated>2008-06-14T07:13:32.727-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='mouse'/><category scheme='http://www.blogger.com/atom/ns#' term='xorg'/><category scheme='http://www.blogger.com/atom/ns#' term='synaptics'/><title type='text'>Howto synaptics touchpad and usb mouse work together in gentoo</title><content type='html'>First of all event interface must be enabled in kernel:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Device Drivers  ---&gt;&lt;br /&gt;    Input device support  ---&gt;&lt;br /&gt;        &lt;*&gt;   Event interface &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Then xorg-server must be compiled with the "evdev" USE:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;#echo 'INPUT_DEVICES="evdev keyboard mouse synaptics"' &gt;&gt; /etc/make.conf&lt;br /&gt;#emerge -av1 xorg-server&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Here is the relevant part of the /etc/X11/xorg.conf file:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;Section "ServerLayout"&lt;/div&gt;&lt;div&gt;[...]&lt;/div&gt;&lt;div&gt;        InputDevice    "Mouse0" "AlwaysCore"&lt;/div&gt;&lt;div&gt;        InputDevice "TouchPad" "SendCoreEvents"&lt;br /&gt;&lt;/div&gt;&lt;div&gt;EndSection&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;Section "InputDevice"&lt;/div&gt;&lt;div&gt;        Identifier  "Mouse0"&lt;/div&gt;&lt;div&gt;        Driver      "mouse"&lt;/div&gt;&lt;div&gt;        Option      "Protocol" "auto"&lt;/div&gt;&lt;div&gt;        Option      "ZAxisMapping" "4 5 6 7"&lt;/div&gt;&lt;div&gt;EndSection&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Section "InputDevice"&lt;/div&gt;&lt;div&gt;        Driver      "synaptics"&lt;/div&gt;&lt;div&gt;        Identifier  "TouchPad"&lt;/div&gt;&lt;div&gt;        Option      "SendCoreEvents"&lt;/div&gt;&lt;div&gt;        Option      "Protocol" "auto-dev"&lt;/div&gt;&lt;div&gt;        Option      "SHMConfig" "on"&lt;/div&gt;&lt;div&gt;EndSection&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;What made the trick was to put the USB mouse in "AlwaysCore" and the touchpad in "SendCoreEvents"&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/566377799608126043-3217110234082673997?l=topperh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://topperh.blogspot.com/feeds/3217110234082673997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=566377799608126043&amp;postID=3217110234082673997' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/3217110234082673997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/3217110234082673997'/><link rel='alternate' type='text/html' href='http://topperh.blogspot.com/2008/06/howto-synaptics-touchpad-and-usb-mouse.html' title='Howto synaptics touchpad and usb mouse work together in gentoo'/><author><name>TopperH</name><uri>http://www.blogger.com/profile/07104966396121305324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-566377799608126043.post-2637715228476775031</id><published>2008-05-29T04:14:00.000-07:00</published><updated>2008-05-29T04:33:21.917-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webcam'/><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='asus'/><title type='text'>Chicony Electronics UVC embedded webcam on Asus PRO60E + gentoo</title><content type='html'>Setting up the embedded 1.3 megapixel webcam on my notebook was pretty easy:&lt;br /&gt;&lt;blockquote&gt;#lsusb&lt;br /&gt;Bus 002 Device 002: ID 04f2:b029 Chicony Electronics Co., Ltd&lt;/blockquote&gt;I found out this to be an UVC (USB Video Class device) and at the time I'm writing there's not a kernel module for it.&lt;br /&gt;BTW there is a project to handle support for such devices: &lt;a href="http://linux-uvc.berlios.de/"&gt;linux-ucv&lt;/a&gt;&lt;br /&gt;The gentoo tree provides an ebuild (that is currently ~amd64 keyworded):&lt;br /&gt;&lt;blockquote&gt;[D] media-video/linux-uvc&lt;br /&gt;     Available versions:  ~*0.1.0_pre100 ~*0.1.0_pre126 ~*0.1.0_pre157 ~*0.1.0_pre173 {isight kernel_linux}&lt;br /&gt;     Installed versions:  0.1.0_pre173(18:42:13 05/28/08)(kernel_linux)&lt;br /&gt;     Homepage:            http://linux-uvc.berlios.de/&lt;br /&gt;     Description:         Linux driver and user-space tools for USB Video Class devices.&lt;br /&gt;&lt;/blockquote&gt;I just needed to emerge it to have the uvcvideo module compiled and ready to be modprobed.&lt;br /&gt;Of course v4l support must be compiled in kernel (or as a module):&lt;br /&gt;&lt;blockquote&gt;revolver ~ # lsmod | grep uvcv&lt;br /&gt;uvcvideo               44932  0&lt;br /&gt;compat_ioctl32          8064  1 uvcvideo&lt;br /&gt;videodev               31424  2 uvcvideo,compat_ioctl32&lt;br /&gt;v4l1_compat            11524  2 uvcvideo,videodev&lt;br /&gt;&lt;/blockquote&gt;I tested the cam with kopete and works fine!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/566377799608126043-2637715228476775031?l=topperh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://topperh.blogspot.com/feeds/2637715228476775031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=566377799608126043&amp;postID=2637715228476775031' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/2637715228476775031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/2637715228476775031'/><link rel='alternate' type='text/html' href='http://topperh.blogspot.com/2008/05/chicony-electronics-uvc-embedded-webcam.html' title='Chicony Electronics UVC embedded webcam on Asus PRO60E + gentoo'/><author><name>TopperH</name><uri>http://www.blogger.com/profile/07104966396121305324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-566377799608126043.post-966562528425358983</id><published>2008-05-23T05:55:00.000-07:00</published><updated>2008-06-20T10:38:14.278-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='laptop'/><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='asus'/><title type='text'>Asus PRO60Eseries + Gentoo = LOVE</title><content type='html'>&lt;span style="font-weight: bold;"&gt;OVERVIEW:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;CPU : Duo T7250&lt;br /&gt;DISPLAY: 13.3" WXGA&lt;br /&gt;WIRELESS: 802.11abgn + Bluetooth&lt;br /&gt;HD: 250GB&lt;br /&gt;RAM: 3GB&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://i21.ebayimg.com/01/i/000/ee/51/ce68_1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://i21.ebayimg.com/01/i/000/ee/51/ce68_1.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://i21.ebayimg.com/08/i/000/ee/51/9f64_1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://i21.ebayimg.com/08/i/000/ee/51/9f64_1.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;blockquote&gt;revolver ~ # lspci&lt;br /&gt;00:00.0 Host bridge: Intel Corporation Mobile Memory Controller Hub (rev 03)&lt;br /&gt;00:02.0 VGA compatible controller: Intel Corporation Mobile Integrated Graphics Controller (rev 03)&lt;br /&gt;00:02.1 Display controller: Intel Corporation Mobile Integrated Graphics Controller (rev 03)&lt;br /&gt;00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Contoller #4 (rev 03)&lt;br /&gt;00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 03)&lt;br /&gt;00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 03)&lt;br /&gt;00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)&lt;br /&gt;00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 03)&lt;br /&gt;00:1c.1 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 2 (rev 03)&lt;br /&gt;00:1c.2 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 3 (rev 03)&lt;br /&gt;00:1c.3 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 4 (rev 03)&lt;br /&gt;00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 03)&lt;br /&gt;00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 03)&lt;br /&gt;00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 03)&lt;br /&gt;00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 03)&lt;br /&gt;00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f3)&lt;br /&gt;00:1f.0 ISA bridge: Intel Corporation Mobile LPC Interface Controller (rev 03)&lt;br /&gt;00:1f.1 IDE interface: Intel Corporation Mobile IDE Controller (rev 03)&lt;br /&gt;00:1f.2 SATA controller: Intel Corporation Mobile SATA AHCI Controller (rev 03)&lt;br /&gt;01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)&lt;br /&gt;02:00.0 Network controller: Intel Corporation Unknown device 4229 (rev 61)&lt;br /&gt;05:00.0 SATA controller: JMicron Technologies, Inc. JMicron 20360/20363 AHCI Controller (rev 02)&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;What does not work:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The fingerprint reader (Bus 006 Device 002: ID 08ff:1600 AuthenTec, Inc.) &lt;a href="http://topperh.blogspot.com/2008/06/howto-authentek-aes1610-fingerprint.html"&gt;[EDIT now it works]&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The LCD backlight controls (CONFIG_ASUS_LAPTOP=Y doesn't help and acpi4asus doesn't compile)&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;What needs workarounds:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;ALSA&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)&lt;br /&gt;I needed to add "options snd-hda-intel model=lenovo" to /etc/modules.d/alsa and update modules.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;What I have not tried yet:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Integrated 1.3 megapixels webcam (I don't really need a webcam)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;[edit] now it works, see &lt;a href="http://topperh.blogspot.com/2008/05/chicony-electronics-uvc-embedded-webcam.html"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;revolver# uname -snrv&lt;br /&gt;Linux revolver 2.6.25-tuxonice-r4 #4 SMP PREEMPT Thu May 22 16:04:52&lt;br /&gt;&lt;br /&gt;revolver ~ # eselect profile show&lt;br /&gt;Current make.profile symlink&lt;br /&gt;/usr/portage/profiles/default/linux/amd64/2008.0/desktop&lt;br /&gt;&lt;br /&gt;&lt;a href="http://rafb.net/p/XTX9bl60.html"&gt;Kernel config&lt;/a&gt;&lt;br /&gt;&lt;a href="http://rafb.net/p/5oVnHW76.html"&gt;make.conf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/566377799608126043-966562528425358983?l=topperh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://topperh.blogspot.com/feeds/966562528425358983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=566377799608126043&amp;postID=966562528425358983' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/966562528425358983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/966562528425358983'/><link rel='alternate' type='text/html' href='http://topperh.blogspot.com/2008/05/asus-pro60eseries-gentoo-love.html' title='Asus PRO60Eseries + Gentoo = LOVE'/><author><name>TopperH</name><uri>http://www.blogger.com/profile/07104966396121305324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-566377799608126043.post-7918612063655882690</id><published>2008-05-22T22:08:00.000-07:00</published><updated>2008-05-23T03:17:14.780-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='bluetooth'/><category scheme='http://www.blogger.com/atom/ns#' term='nokia'/><category scheme='http://www.blogger.com/atom/ns#' term='wvdial'/><title type='text'>Gentoo init script for GPRS dialout connections</title><content type='html'>&lt;p&gt;&lt;/p&gt;So I decided to get rid of wvdial and to use the powerful gentoo init scripts to estabilish a dialup connection with my Nokia cell phone via bluetooth.&lt;br /&gt;Of course the bluetooth connection is already up 'n running and works fine on /dev/rfcomm0 (I might blog about obtaining it another time).&lt;br /&gt;Here's the /etc/conf.d/net relevant part:&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;config_ppp2=( "ppp" )&lt;br /&gt;link_ppp2="/dev/rfcomm0"&lt;br /&gt;username_ppp2='wind'&lt;br /&gt;password_ppp2='wind'&lt;br /&gt;pppd_ppp2=(&lt;br /&gt;       "noauth"&lt;br /&gt;       "defaultroute"&lt;br /&gt;       "usepeerdns"&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;phone_number_ppp2=( "*99***1#" )&lt;br /&gt;&lt;br /&gt;chat_ppp2=('ABORT' 'BUSY'&lt;br /&gt;      'ABORT' 'ERROR'&lt;br /&gt;      'ABORT' 'NO ANSWER'&lt;br /&gt;      'ABORT' 'NO CARRIER'&lt;br /&gt;      'ABORT' 'NO DIALTONE'&lt;br /&gt;      'ABORT' 'Invalid Login'&lt;br /&gt;      'ABORT' 'Login incorrect'&lt;br /&gt;      'TIMEOUT' '5'&lt;br /&gt;      '' 'ATZ'&lt;br /&gt;      'OK' 'AT+CGDCONT=1,"ip","internet.wind","",0,0'&lt;br /&gt;      'OK' 'ATDT\T'&lt;br /&gt;      'TIMEOUT' '60'&lt;br /&gt;      'CONNECT' ''&lt;br /&gt;      'TIMEOUT' '5'&lt;br /&gt;      '~--' ''&lt;br /&gt;)&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This works for the Italian operator wind, btw, changhing the IP, phone number, username and password should work for all.&lt;p&gt;&lt;/p&gt;&lt;p&gt;Let's make the symlink:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;#cd /etc/init.d&lt;br /&gt;#ln -s net.lo net.ppp2&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;And see if it works:&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;#/etc/init.d/net.ppp2 start&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/566377799608126043-7918612063655882690?l=topperh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://topperh.blogspot.com/feeds/7918612063655882690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=566377799608126043&amp;postID=7918612063655882690' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/7918612063655882690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/566377799608126043/posts/default/7918612063655882690'/><link rel='alternate' type='text/html' href='http://topperh.blogspot.com/2008/05/gentoo-init-script-for-gprs-dialout.html' title='Gentoo init script for GPRS dialout connections'/><author><name>TopperH</name><uri>http://www.blogger.com/profile/07104966396121305324</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry></feed>
