<?xml version="1.0" encoding="utf-8"?>
        <?xml-stylesheet type="text/css" href="http://sysphere.org/~anrxc/j/styles/feed.css"?>
<rss version="2.0"
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:admin="http://webns.net/mvcb/"
 xmlns:atom="http://www.w3.org/2005/Atom"
>
<channel>
<title>Unknown and partly hidden</title>
<atom:link href="http://sysphere.org/~anrxc/j/rss.xml" rel="self" type="application/rss+xml" />
<link>http://sysphere.org/~anrxc/j</link>
<description>journal of Adrian C. (anrxc)</description>
<dc:language>en-us</dc:language>
<dc:creator>anrxc</dc:creator>
<dc:date>2010-02-19T05:22:01+01:00</dc:date>
<admin:generatorAgent rdf:resource="http://nanoblogger.sourceforge.net" />

<item>
<link>http://sysphere.org/~anrxc/j/archives/2010/02/19/notes_on_alpine_and_topal/index.html</link>
<guid isPermaLink="true">http://sysphere.org/~anrxc/j/archives/2010/02/19/notes_on_alpine_and_topal/index.html</guid>
<title>Notes on Alpine and Topal</title>
<dc:date>2010-02-19T05:21:58+01:00</dc:date>
<dc:creator>anrxc</dc:creator>
<dc:subject> crypto, desktop, work</dc:subject>
<description><![CDATA[<p>

Almost 9 months ago I wrote an article
about <a href="http://sysphere.org/~anrxc/j/archives/2009/06/24/notes_on_alpine_and_gnupg/index.html">Alpine
and GnuPG</a>. That article covers basics of
integrating <a href="http://homepage.ntlworld.com/phil.brooke/topal/">Topal</a>
and <em>Alpine</em>, I'd like to add more notes and talk about some
usage scenarios. But first I should mention that if you are
an <em>Arch Linux</em> user
the <a href="http://aur.archlinux.org/packages.php?ID=34145">topal
package</a> is now available in the <strong>AUR</strong>. I'm the
maintainer and I would appreciate any feedback, so far it got only one
vote and I expect more. <br /><br />

I remember trying to switch to GPG2 back when I was still using
the <em>PinePG</em> filter and it was not as easy as I hoped
for. Official support was not there, and I'm sorry I failed to mention
in my last article that Topal works fine with gpg2. You can set
"<em>gpg-binary=gpg2</em>" in your <em>~/.topal/config</em> file to
switch. Note that the old gpg option
"<em>--no-use-agent/--use-agent</em>" makes no difference, gpg2 always
requires the agent. What this means for you is that gpg2 will try to
start the PIN entry dialog every time it needs the passphrase (even
when you don't use the agent normally), so if you don't
run <strong>X11</strong> set "<em>pinentry-program</em>"
to <em>/usr/bin/pinentry-curses</em> in
your <em>~/.gnupg/gpg-agent.conf</em> file. If you would like to start
using the GnuPG Agent instruct Topal to always connect to it with
"<em>use-agent=3</em>", and read my article on
the <a href="http://sysphere.org/~anrxc/j/archives/2009/05/30/application_of_the_gpg_passphrase_agent/index.html">GnuPG
Passphrase Agent</a>. <br /><br />

Do you remember the big <em>SHA1 scare</em> last year? Many people
generated new keys, and many more dumped SHA1 for good. My article on
<a href="http://sysphere.org/~anrxc/j/archives/2009/05/10/notes_on_the_gnu_privacy_guard/index.html">GnuPG
basics</a> also covered personal cipher options, and forcing stronger
digests. However Topal "<em>gpg-options</em>" setting by default
uses <em>--no-options</em> which instructs gpg2 not to read
your <em>~/.gnupg/gpg.conf</em> file, which then fall-backs to SHA1
for signing. You should remove it in order to use personal digest and
cipher algorithms, and it's also useful because of other options
(like <em>auto-key-retrieve</em> if you want to fetch missing
keys). You will find my own GnuPG configuration files in
my <a href="http://git.sysphere.org/dotfiles/tree/gnupg">dotfiles
repository</a>. <br /><br />

In the past year I wrote
several <a href="http://sysphere.org/~anrxc/j/articles/gnupg/index.html">articles
on GnuPG</a> and they bring a lot of visitors here. Some recurring
Google searches are (more or less) "<em>sharing private keys</em>" and
"<em>splitting gpg keys</em>". There's already a very popular
(although outdated) <a href="http://fortytwo.ch/gpg/subkeys">article
on the subject</a> so head on there. But if you are an <em>Alpine</em>
user read on. General scenario is this: you read your mail on a remote
server, which you can't trust as much as your workstation (or
removable storage). Reading mail on one host, verifying it and sending
from another, maintaining multiple key-rings, or even placing the
primary key on both machines... is tedious and risky. Using subkeys as
explained in that article is one way of solving the problem, but with
Topal you don't need to because of its remote and server mode of
operation. <br /><br />

Each time Topal is invoked you can select the <strong>remote</strong>
mode of operation. In remote mode Topal with connect to your trusted
machine with <strong>SSH</strong>, transfer any files necessary
with <strong>SCP</strong> and then perform the wanted GnuPG action. To
make use of the remote mode on the secure machine you need the SSH
daemon running and Topal started in the server mode ($ <em>topal
-server</em>). To make the whole procedure as transparent as possible
you can
employ <a href="http://sysphere.org/~anrxc/j/archives/2009/05/30/application_of_the_gpg_passphrase_agent/index.html">SSH
public key authentication</a>.

</p>]]></description>

</item>
<item>
<link>http://sysphere.org/~anrxc/j/archives/2010/02/03/awesome_window_manager_revisited/index.html</link>
<guid isPermaLink="true">http://sysphere.org/~anrxc/j/archives/2010/02/03/awesome_window_manager_revisited/index.html</guid>
<title>Awesome window manager revisited</title>
<dc:date>2010-02-03T19:50:24+01:00</dc:date>
<dc:creator>anrxc</dc:creator>
<dc:subject> desktop, code</dc:subject>
<description><![CDATA[<p>

<img class="left" alt="Awesome Logo"
src="http://sysphere.org/~anrxc/j/images/aw_64_shadow.png" />

One year ago I wrote
a <a href="http://sysphere.org/~anrxc/j/archives/2009/02/01/awesome_window_manager/index.html">small
article</a> about my usage of
the <a href="http://awesome.naquadah.org/">awesome window
manager</a>. Specifics of <em>awesome</em> and benefits of using it
(or tiling window managers in general) I would rather leave for
another article. In this one I'd like to revisit some of my projects
and code related to <em>awesome</em>. Last year I just upgraded from
v2 to v3 which introduced the <b>Lua</b> programming language as a way
of configuring and extending awesome. My goal then was to create an
identical environment as I had with v2. One of the major obstacles was
replacing the <b>Ruby</b> widget library called <em>Amazing</em> with
a Lua one called <em>Wicked</em>. I still remember my first widgets,
knowing very little Lua I had to resort to <b>Awk</b> to grab battery
or mbox information. At the time I just started visiting the
<em>#awesome</em> IRC channel
on <a href="http://www.oftc.net/oftc/">OFTC</a>. I clearly remember
someone saying "<em>it would be nicer if it was in Lua</em>"...
<br /><br />

A year has passed, so what has
changed? <a href="http://sysphere.org/~anrxc/j/archives/2009/07/09/vicious_widgets_for_awesome_wm/index.html">Previously</a>
I wrote about <a href="http://git.sysphere.org/vicious/">vicious</a>,
a modular widget library written in Lua which builds on the
foundations laid down by <em>Wicked</em>. I had certain ideas about
widgets that were not shared by a lot of people, so I had to do it for
myself. Making <em>Wicked</em> modular would have been a big design
change, and on top of that I wasn't confident enough in my Lua so I
decided not to contribute back, but to create a new project. Now I am
very satisfied how it turned out, I'm satisfied with the code and with
contributions of other users. Result is a series of Lua modules that
gather data about your system, basically system monitors like those
provided by <em>Conky</em>... at the moment we use them to
feed <em>awesome</em> widgets but they could be used in other places
just as easy. For example one could use them for populating
the <a href="http://www.modeemi.cs.tut.fi/~tuomov/ion/">Ion window
manager</a> status-bar. I made the project public sometime in June, it
now counts 25+ widget types and gets 10+ downloads daily. It's hard to
make an estimate about the number of actual users, but the code was
downloaded well over 700 times. <br /><br />

Since I published the <em>vicious</em> git repository I wanted to use
the git web interface for more than just those few files, so I put my
<em>awesome</em> configuration in git and started pushing the
changes. This easy access, a lot of custom (and well commented) code
and my solutions to various usability problems quickly made
my <a href="http://git.sysphere.org/awesome-configs/">awesome-configs</a>
repo into a very popular starting point for new awesomers. It gets
almost as much clone requests and downloads as the <em>vicious</em>
repository. My <a href="http://sysphere.org/~anrxc/j/articles/zenburn/index.html">Zenburn
theme</a> also became very popular, in fact so popular that
from <b>v3.4</b> it is a part of the <em>awesome</em>
distribution. That's not all I contributed to the <em>awesome</em>
tree, in recent months I started sending more and more code
contributions... I contributed to other open source projects but I'm
very proud of being a part of this one. It has a lot of users, most of
which are experienced <em>Unix</em> users with an interest in
improving their productivity and desktop usability. As someone said on
IRC just yesterday "<em>awesome is the ultimate sysadmin
console</em>". <br /><br />

One of my modules that is just gaining some attention is
the <a href="http://awesome.naquadah.org/wiki/Scratchpad_manager">Scratchpad
manager</a>. It brings back functionality that was present in v2, but
also expands on it by providing a <em>drop-down applications
manager</em>, contributed by the author
of <em>Wicked</em>. Former <em>Ion</em> users will also be familiar
with the <em>scratch.pad</em> functionality, while
the <em>scratch.drop</em> module allows users to have their favorite
terminal emulator, or application launcher like <em>gmrun</em>, slide
in from a screen edge. Another useful module that can be found in my
repo is
the <a href="http://git.sysphere.org/awesome-configs/tree/osk.lua">On-Screen
Keyboard</a>, initially written by another <em>awesome</em> user,
which I ported to v3.4. You can see it in action
in <a href="http://sysphere.org/gallery/snapshots/oskeyboard">this
screenshot</a>. <br /><br />

Finally let's see what other users have been up to. The author
of <em>Wicked</em>
wrote <a href="http://awesome.naquadah.org/wiki/Eminent">Eminent</a> -
a dynamic tagging library (its functionality will be familiar
to <a href="http://wmii.suckless.org/">WMII</a> users)
and <a href="http://awesome.naquadah.org/wiki/Rodentbane">Rodentbane</a>
- which allows for rapid control of the mouse pointer using only the
keyboard. Other notable modules
are <a href="http://awesome.naquadah.org/wiki/Revelation">Revelation</a>
(implementing <em>OSX</em> like
expose), <a href="http://awesome.naquadah.org/wiki/Shifty">Shifty</a>
(dynamic tagging with advanced client matching)
and <a href="http://awesome.naquadah.org/wiki/Obvious">Obvious</a>
(another widget library). With this I conclude my little tour of
planet <em>awesome</em>.

</p>]]></description>

</item>
<item>
<link>http://sysphere.org/~anrxc/j/archives/2010/01/27/his_last_bow/index.html</link>
<guid isPermaLink="true">http://sysphere.org/~anrxc/j/archives/2010/01/27/his_last_bow/index.html</guid>
<title>His Last Bow</title>
<dc:date>2010-01-27T03:54:05+01:00</dc:date>
<dc:creator>anrxc</dc:creator>
<dc:subject> main, books, media</dc:subject>
<description><![CDATA[<p>

I have seen the <em>Sherlock Holmes</em> reboot. It is a movie that
provides good entertainment; a dark mystery, solid action scenes,
fantastic London scenery and an excellent director. The plot and
characters are no different than anything else coming out of Hollywood
these days, so it is bearable... but when I combine what I just said
with the fact that the story revolves around one of my favorite
characters ever I can't but be disappointed, utterly. <br /><br />

Reinventing, or better said rewiring, the character is acceptable... a
darker Holmes, filthy, unshaven and manic is legitimate. But they had
to poison it with American macho bullshit, which is especially hard to
stand. Holmes even has a women in this story, he who is "<em>not a
whole-souled admirer of womankind</em>", that is just
preposterous. The movie ends by hinting there will be a sequel (they
will milk it dry, no doubt) and I hope it will be better than
this. But now I am certain there will never be a better Holmes than
the role played
by <a href="http://en.wikipedia.org/wiki/Jeremy_Brett">Jeremy
Brett</a> in the 1984 Granada TV series. He is, and will remain
without any doubt, <b>The Holmes</b>. <br /><br />

I love <em>that</em> adaptation, and enjoy watching those episodes, he
adds so much to the character; the short bursts of laughter, the mood
swings and his eccentric hand gestures... Robert Downey Jr. is not
even close. Watching Jeremy Brett play is rewarding, he was Holmes,
truly living the role and completely absorbed in
it. The <em>Wikipedia</em> article explains it all, and sheds more
light on what became of Mr. Brett. Even though Granada filmed a lot of
episodes they did not cover all the stories. Fortunately we can get
them all for free today, on a site
like <a href="http://www.gutenberg.org/browse/authors/d#a69">Project
Gutenberg</a>.

</p>]]></description>

</item>
<item>
<link>http://sysphere.org/~anrxc/j/archives/2009/11/21/wasp/index.html</link>
<guid isPermaLink="true">http://sysphere.org/~anrxc/j/archives/2009/11/21/wasp/index.html</guid>
<title>Wasp</title>
<dc:date>2009-11-21T01:52:37+01:00</dc:date>
<dc:creator>anrxc</dc:creator>
<dc:subject> cyberpunk, books</dc:subject>
<description><![CDATA[<p>

Last year I noticed an interesting cover picture in a bookshop. Girl
sporting a dragon tattoo, on a book that was called exactly the same;
"<a href="http://en.wikipedia.org/wiki/The_Girl_with_the_Dragon_Tattoo">The
Girl with the Dragon Tattoo</a>", by the late Swedish journalist
<a href="http://en.wikipedia.org/wiki/Stieg_Larsson">Stieg
Larsson</a>. I have a thing for dragon tattoos and despite this cheesy
title I got interested. I researched a little on-line and found that
it's a story about a journalist and a female hacker (the tattooed
girl, imagine that), hired to write a biography for an old Swedish
industrialist. Cheesy title and tattooed female hackers sounded too
cheap and I didn't buy in. <br /><br />

In October I noticed that they made a movie based on the book, called
"<em>Men who hate women</em>", which also turned out to be the
original title of the book (that dragon thing was a result of the
English translation). Movie was good, a thriller with dark northern
atmosphere, a detective story and a mystery all in one. I immediately
knew the book is excellent and that I made a mistake. Best selling
book of the decade in Europe, and the whole trilogy (which it is a
part of) an international phenomenon. <br /><br />

The actual story is much more deeper than it can be depicted in just 2
hours of film. It works on so many levels; corporate world and
journalism, serial murders and a dark mystery. Interestingly all that
is only an introduction to a deeper story about the girl with the
dragon tattoo. The second book took a surprising turn for me, I had no
idea the girl will become the center of attention. But let's stay with
the first book a bit more. As much as I liked the book and considered
it a good story there were some small things that almost ruined it for
me. Larsson (being a reputable journalist) paid so much attention to
detail that I can't understand some (what I consider) huge errors in
judgment. To start with the obvious, he nailed the basic tech but when
it came to hacking he had to go out and invent stuff. Some things he
wrote about are much more complicated than what is already out there,
completely unnecessary. In fact I've read an article in a Swedish
newspaper where they asked a security consultant about hacks from all
three books. Guy laughed on some counts. One telephone call and you
could have it all worked out in detail, for the whole series. Then
there is <em>Dragan Armansky</em>: born in Croatia by an Armenian
father and a Bosnian-Muslim mother, somehow ending up with a Serbian
nationality (as registered by the immigration office). What is going
on here, a Korean-Mexican with a French passport would sound more
convincing. <br /><br />

I was glad that things started revolving around <em>the girl</em> in
the second book, titled
"<a href="http://en.wikipedia.org/wiki/The_Girl_Who_Played_with_Fire">Girl
who played with fire</a>". When I least expected it some Russian spies
turned up and again added some (more than) fantastic elements to the
story, but by then I was more or less immune to these mass-market
elements. I kept going because of the girl, which was a fascinating
character. You could object to a lot of things regarding her, but
along with the (sometimes) unconvincing hacking only thing that
bothered me was
her <a href="http://en.wikipedia.org/wiki/Photographic_memory">photographic
memory</a>. It is a myth. Why couldn't she have "<em>extraordinary
memory</em>", which would be plausible for a person with asperger (or
something like the syndrome, which is suggested she has)? Second book
tells us much more about the girl. She is wanted by the police, and
while she hacks their networks to stay one step ahead we get to learn
a lot about her past. Again Larsson's story works on many levels. The
journalist from book one is also back, this time working on a story
about sex trafficking. The end of the book leaves things unresolved
and leaves you desperately wanting more. <br /><br />

<a href="http://en.wikipedia.org/wiki/The_Girl_Who_Kicked_the_Hornets%27_Nest">The
air castle that blew up</a> is the third and final book of the series
(which is also known as the <em>Millennium trilogy</em>). It ties up
all the loose ends from previous books and gives a nice closure, I
consider it a good ending. The girl was a great character and it would
be nice to see here once again, but unfortunately the author died just
as he completed the third book. Last week I watched an interview with
the Croatian publisher of the series. He just got back from Sweden and
said that there are rumors that Larsson wanted to write a bigger
series, some 6 or 7 books. In fact he said that Larsson already had an
outline for the <b>fifth</b> book on his computer. I guess we will
never know, but these books we do have definitely deserve your
attention.

</p>]]></description>

</item>
<item>
<link>http://sysphere.org/~anrxc/j/archives/2009/10/23/filesystem_encryption_6_months_later/index.html</link>
<guid isPermaLink="true">http://sysphere.org/~anrxc/j/archives/2009/10/23/filesystem_encryption_6_months_later/index.html</guid>
<title>Filesystem encryption 6 months later</title>
<dc:date>2009-10-23T22:14:17+01:00</dc:date>
<dc:creator>anrxc</dc:creator>
<dc:subject> crypto</dc:subject>
<description><![CDATA[<p>

Some 6 months ago
<a href="http://sysphere.org/~anrxc/j/archives/2009/03/27/filesystem_encryption_on_linux/index.html">I
wrote</a> about file-system encryption on GNU/Linux and my software of
choice,
<a href="https://launchpad.net/ecryptfs">eCryptfs</a>. The entry was
followed by an
<a href="http://sysphere.org/~anrxc/j/articles/ecryptfs/index.html">article
describing my setup</a>, which I updated today. I learned from my
mistakes and those of others, and the article now introduces a pretty
different setup. Besides these changes I also did minor updates from
time to time, like adding information on <em>two-factor
authentication</em> and <em>tmpfs</em> with the purpose of further
securing your setup. If you by any chance followed my initial article
converting your current setup can be done in minutes. If you haven't
already found your own path to a better practice. <br /><br />

<em>Ubuntu</em> stays the only distribution with a completely
integrated eCryptfs setup. Integration in their last release is
excellent. I spent a lot of time with eCryptfs and Ubuntu developers
and learning from their experience was invaluable. I also saw a lot of
Ubuntu users that loosed their data (by their own fault). Which brings
me to stability and reliability of eCryptfs. <br /><br />

I must say that living with eCryptfs was excellent. It is reliable and
a performance hit was always minimal. At the time I started using it
the only published benchmark was from <em>Phoronix</em>. Results were
pretty good, most of the time performance impact was less
than <em>2%</em>. Last week they published an
<a href="http://www.phoronix.com/scan.php?page=article&item=ubuntu_910_encryption">updated
benchmark</a> and this time results are not looking too good. I can't
say what happened, I never noticed it in my own day to day operation,
but Phoronix is more or less a credible source. It could be worse
though, just days ago <b>LUKS</b> users
were <a href="http://bugs.archlinux.org/task/16735">locked out of
their homes</a>. <br /><br />

<em>Linux Magazine</em> published a big
<a href="http://www.linux-mag.com/id/7568/1/">article on eCryptfs</a>
just yesterday. It was written
by <a href="http://blog.dustinkirkland.com/">Dustin Kirkland</a>,
eCryptfs developer, and it's one of the best on the subject.

</p>]]></description>

</item>
<item>
<link>http://sysphere.org/~anrxc/j/archives/2009/10/21/cloud_atlas_sextet/index.html</link>
<guid isPermaLink="true">http://sysphere.org/~anrxc/j/archives/2009/10/21/cloud_atlas_sextet/index.html</guid>
<title>Cloud Atlas Sextet</title>
<dc:date>2009-10-21T22:34:44+01:00</dc:date>
<dc:creator>anrxc</dc:creator>
<dc:subject> books</dc:subject>
<description><![CDATA[<p>

I didn't write anything for a month. I was reading a lot. I found some
good books but one of them I can't get rid of, I think
about <a href="http://en.wikipedia.org/wiki/Cloud_Atlas_%28novel%29">Cloud
Atlas</a> every day. <br /><br />

This book by <i>David Mitchell</i> is composed of several shorter
stories, all connected by subtle links. None of them were bad, some
were good but some were pure genius. Starting in the 19th
century. Going trough the 20th trough a few stories and then all the
way forward to the end of civilization. Story following the
journalist <i>Luisa Rey</i> was an interesting thriller. Adventures
of <i>Timothy Cavendish</i> had me turning pages in suspense and
laughing like crazy on occasion. The story about <i>Robert
Frobisher</i>, the composer, was beautiful, but the one about clones
in the future superstate of Korea was genius. <br /><br />

I found a copy in the local library after failing to find an e-book in
English. You should invest some time in reading it, even if you don't
like it, it is undeniably an epic novel.

</p>]]></description>

</item>
<item>
<link>http://sysphere.org/~anrxc/j/archives/2009/09/17/notes_on_lighttpd_and_git/index.html</link>
<guid isPermaLink="true">http://sysphere.org/~anrxc/j/archives/2009/09/17/notes_on_lighttpd_and_git/index.html</guid>
<title>Notes on lighttpd and git</title>
<dc:date>2009-09-17T21:59:45+01:00</dc:date>
<dc:creator>anrxc</dc:creator>
<dc:subject> desktop, work, code</dc:subject>
<description><![CDATA[<p>

Much to my
surprise 
<a href="http://sysphere.org/~anrxc/j/archives/2009/08/14/vicious_widgets_for_awesome_wm_2_0/index.html">vicious</a>
became very popular in just over a month. About a dozen people grab
the code every day, and they should be able to preview the repo and
browse trough it - so I decided to serve it
with <a href="http://hjemli.net/git/cgit/about/">cgit</a>, a fast web
interface for <em>git</em>. Connecting it to <em>lighttpd</em>
revealed some quirks, so I'll describe my setup in short. <br /><br />

On my web server all web sites are served from "<em>/var/www</em>" so
when building cgit I decided to install it in
"<em>/var/www/cgit</em>":
<blockquote>
$ make CGIT_SCRIPT_PATH=/var/www/cgit
</blockquote>

Cgit binary, default css style sheet and logo will be stored there,
configuration file is "<em>/etc/cgitrc</em>" and cache (if enabled
later) is stored in "<em>/var/cache/cgit</em>". <br /><br />

After creating a new sub-domain I proceeded to configure lighttpd.
<pre>
# {{{ git.webhost.tld
$HTTP["host"] == "git.webhost.tld" {
  server.document-root = "/var/www/cgit"
  index-file.names     = ( "cgit.cgi" )
  cgi.assign           = ( "cgit.cgi" => "/var/www/cgit/cgit.cgi" )
  url.rewrite-once     = (
    "^/([^?/]+/[^?]*)?(?:\?(.*))?$"   => "/cgit.cgi?url=$1&$2",
)}
# }}}
</pre>

Before restarting lighttpd I did some quick changes on the
default <em>cgitrc</em>. Since web sites are stored in
"<em>/var/www</em>" I decided to keep public git repos in
"<em>/var/git</em>" (as you might notice from the example repo
below). Here are only the most relevant parts. Pay attention to
the <em>virtual-root</em> which, together with the above rewrite line,
fixes the cgit cache - otherwise it would constantly serve one and the
same page.
<pre>
# URL used as root for all cgit links
#   - fixes caching with the above rewrite
virtual-root=/

# Specify some default clone prefixes
#   - repos are served only trough http
clone-prefix=http://git.sysphere.org

# Specify the css url
css=/cgit.css

# Use a custom logo
logo=http://sysphere.org/images/cgit.png

# Set a custom footer message instead of default "generated by..."
footer=footer.html

## List of repositories
repo.url=myproject
repo.path=/var/git/myproject.git
repo.desc=my project that does something interesting
repo.owner=user
repo.readme=README.html
</pre>

Serving it this way, beside the cache problem, had other quirks. The
png logo cgit tried to serve as yet another repo. I had to link to it
directly. The css file on the other hand was OK, custom footer
too. <br /><br /><br />

Since I'm talking about git again I'll add a few notes on top of my
<a href="http://sysphere.org/~anrxc/j/archives/2009/08/23/notes_on_dotfiles_and_git/index.html">previous
article</a> about it. For years I've been sharing my <em>dotfiles</em>
trough a simple directory index, the most popular of them I would
convert to HTML. I was getting tired of the whole process (even though
<em>Emacs</em> makes it a bit easier with <em>htmlize</em>
and <em>scpaste</em>), and now that I'm keeping my dotfiles in git
anyway I decided to make that repo public too. <br /><br />

If you read my previous article it is evident that my dotfiles repo
could be full of sensitive information, for example a lot of dotfiles
contain passwords these days. Once you get that information in there,
and publish it (i.e. by mistake) it is hard to get it out. I thought
about it for a few days and tried a few approaches. Maybe it would be
best to strip all sensitive information and keep a separate repo. But
that would require twice as much work, provided I was willing to stay
on top of it. <br /><br />

Long story short, I eventually created a new branch
called <em>public</em> in my <em>dotfiles.git</em> repo. I push only
the public branch to the server and of course I'm careful that it
stays clean of all sensitive data. When something changes
in <em>master</em>, and it's worth publishing, I
only <em>cherry-pick</em> specific commits.

</p>]]></description>

</item>
<item>
<link>http://sysphere.org/~anrxc/j/archives/2009/08/23/notes_on_dotfiles_and_git/index.html</link>
<guid isPermaLink="true">http://sysphere.org/~anrxc/j/archives/2009/08/23/notes_on_dotfiles_and_git/index.html</guid>
<title>Notes on dotfiles and git</title>
<dc:date>2009-08-23T02:23:22+01:00</dc:date>
<dc:creator>anrxc</dc:creator>
<dc:subject> desktop, work, code</dc:subject>
<description><![CDATA[<p>

Most applications I use daily are running on my workstation and all
dotfiles are written, edited and kept there. From the workstation they
are distributed to other machines. What usually happens is that I do
massive syncing and then neglect remote systems, sometimes even for
months. I'm always trying to improve my environment so often I would
end up with completely different working environments. I needed a
better solution and <a href="http://git-scm.com/">git</a> seemed
perfect for the job. I guess other <b>distributed</b> version control
systems would be just as good but I was already familiar with git. I
won't cover the actual git commands, by this
point <a href="http://book.git-scm.com/">tutorials</a> are just about
everywhere, I will rather explain my work-flow. <br /><br />

There are many approaches, most popular seem to be; keeping your
dotfiles in a repo and symlinking them back to <em>$HOME</em> or
keeping your whole <em>$HOME</em> in git and ignoring mostly
everything. Some people also use a bit of trickery to change the git
work tree while keeping the repo in another directory and some employ
specific tools
like <a href="http://git-home.chezwam.org/">git-home</a>.

After reviewing all the popular solutions I decided to go with another
approach. I created a repo in the "<em>~/dotfiles.git</em>" directory
and copied all important dotfiles there. I then use a script
called <a href="http://sysphere.org/~anrxc/local/scr/sources/gitup.sh">gitup</a>
that for each file (or directory) in the current directory checks if
there is a dotfile with the same name in <em>$HOME</em>. If the file
exists and it changed the script copies it over. An acquaintance uses
this approach to easily share his dotfiles
via <a href="">github</a>. It seemed cleaner than symlinks to me, but
it does require more work. <br /><br />

I do all modifications on the actual files and later
use <em>gitup</em> to get the repo up to date. After I commit they can
be distributed further. When I'm setting up a new machine, or an
account, I <em>clone</em> the workstation repo directly. Afterwords I
can <em>push</em> from the workstation or <em>pull</em> from remote
machines when a change happens. Workstation has only the <em>master
branch</em> but each remote machine is different and some need to have
specific local changes. When that happens I create a new
local <em>branch</em> and do my changes there. Most of the time I
"live" in the local <em>branch</em>, when something eventually changes
in <em>master</em> I <em>rebase</em> it. Whole setup requires some
work and it's not perfect, but it certainly beats everything else I
tried.

</p>]]></description>

</item>
<item>
<link>http://sysphere.org/~anrxc/j/archives/2009/08/15/notes_on_alpine_and_crm114/index.html</link>
<guid isPermaLink="true">http://sysphere.org/~anrxc/j/archives/2009/08/15/notes_on_alpine_and_crm114/index.html</guid>
<title>Notes on Alpine and CRM114</title>
<dc:date>2009-08-15T04:53:08+01:00</dc:date>
<dc:creator>anrxc</dc:creator>
<dc:subject> code</dc:subject>
<description><![CDATA[<p>

When I wrote about my
<a href="http://sysphere.org/~anrxc/j/archives/2009/04/22/personal_e-mail_solution/index.html">personal
e-mail solution</a> I mentioned
that <a href="http://crm114.sourceforge.net">CRM114 Discriminator</a>
can be used as a (solid) SPAM filter. I've been using it for about 3
years now, and it served me well. I must admit I never achieved the
unbelievable <em>99.9%</em> accuracy they claim but it is a good
solution nonetheless. It is fast, lightweight, scalable and
flexible. <br /><br />

I use <em>procmail</em> which pipes all e-mail trough crm114, it is
installed system wide, but I keep all "<em>*.crm</em>" and
"<em>*.css</em>" files in the "<em>~/.crm114</em>" directory. If you
decide to try it you should know that it's very well documented, and
the HOWTO document in particular will get you started in no
time. There is no need for me to describe the installation and setup
process here. What I will talk about is using crm114 together with
<a href="http://sysphere.org/~anrxc/j/archives/2009/04/23/notes_on_alpine/index.html">Alpine</a>.
<br /><br />

With the recent "<em>BlameThorstenAndJenny</em>" release the format of
<em>.css</em> files has changed for the first time since I've been
using it. I decided to rebuild them from scratch. The old ones were
not giving perfect results, as I said, and hopefully I can do a better
job this time around. Since I get huge amounts of SPAM daily, the
first day was a little scary but I managed to get on top of it
quickly. I decided not to use <em>mailtrainer.crm</em>, which can be
used to train huge amounts of e-mail at once. Instead I rewrote some
of my old scripts and did it "manually". The first few batches of SPAM
and HAM that I received I trained with
my <a href="http://sysphere.org/~anrxc/local/scr/sources/alpine-crmtrain.sh">crmtrain</a>
script. I used the <b>Export</b> function in Alpine to export each
wrongly classified (or unsure) e-mail to the "<em>~/spam</em>"
directory and the script took it from there. <br /><br />

Now that things have slowed down I use two scripts to train the filter
directly from Alpine. I use the <b>Pipe</b> function in Alpine to pipe
each wrongly classified (or unsure) e-mail to the respective
script. The <a href="http://sysphere.org/~anrxc/local/scr/sources/alpine-crmspam.sh">crmspam</a>
script trains SPAM,
while <a href="http://sysphere.org/~anrxc/local/scr/sources/alpine-crmham.sh">crmham</a>
does so for HAM e-mail. I saw that <em>mutt</em> users have a similar
setup where they send each e-mail back to them selves, but this time
telling the filter how to flag it correctly. Only piping it, while
stripping the old CRM114 headers, seems a bit faster and simpler.

</p>]]></description>

</item>
<item>
<link>http://sysphere.org/~anrxc/j/archives/2009/08/14/vicious_widgets_for_awesome_wm_2_0/index.html</link>
<guid isPermaLink="true">http://sysphere.org/~anrxc/j/archives/2009/08/14/vicious_widgets_for_awesome_wm_2_0/index.html</guid>
<title>Vicious widgets for awesome WM 2.0</title>
<dc:date>2009-08-14T23:53:40+01:00</dc:date>
<dc:creator>anrxc</dc:creator>
<dc:subject> desktop, code</dc:subject>
<description><![CDATA[<p>

It's been a month since
my <a href="http://sysphere.org/~anrxc/j/archives/2009/07/09/vicious_widgets_for_awesome_wm/index.html">announcement
of the vicious library</a>. I kept my self busy and there
are <b>24</b> widgets in there now... and I'm all out. I went over
those from the <em>Todo</em> list and even over
the <em>Wishlist</em>. Last changes were dedicated to some cleanup and
I removed <em>padding</em> completely. I have no use for it and if you
do I'm sure you'll manage to reuse the old code. If you used it only
in a widget or two think about using "<em>string.format</em>"
instead. More and more people requested the tarball every day and
users started sending me e-mail. After a while I gave up and
put <a href="http://sysphere.org/~anrxc/local/scr/sources/vicious/">vicious
in git</a> due to popular demand. I serve a <em>bare</em> repo over
http now. First, an updated summary: <br />

<pre>
* Original code modularized
* Widgets ported from Wicked:
  - CPU, Date, FS, MEM, MPD, NET, Uptime
* Widgets written for Vicious:
  - Battery, Battery (acpitool), CPU Information, CPU Frequency,
    Disk I/O, Entropy, HDD Temperature, Mbox, Mbox Count, Maildir,
    Org-Mode, Pacman, Sysload, Thermal, Volume, Weather, Wireless
</pre>

However, as removal of padding shows, I am still writing this
primarily for my self. There could be more major changes in vicious
soon, or maybe none at all since I'm not very pleased with the
direction of <em>awesome 3.4</em>. I'm waiting to see how things will
work out. Some parts of vicious will need to be completely rewritten
in case I do switch. I also had other important decisions to make,
while writing all these widgets, especially about using libraries that
are not in the standard <em>Lua</em> distribution. For example, mail
widgets for counting messages in both
<em>mbox</em> and <em>maildir</em> folders could <b>really</b> benefit
from the <em>LuaFileSytstem</em> library. But I decided against it for
the time being. However the next development cycle, for <b>3.4</b>,
could include them. <br /><br />

In the last article I mentioned the <em>obvious</em> project, another
modular widget library. They have a very different design, as
mentioned, they <b>handle all errors</b>, format the output, setup
buttons and timers, progress-bars and graphs... The project saw some
major development recently and unfortunately they kept making it more
complex going to the opposite extreme of vicious. Recently one vicious
user reported a problem with the <em>cpufreq</em> module. It turns out
his hardware does not support voltage scaling, yet I bundled it
together with frequency scaling. We had a short discussion and I told
him that: "<em>with vicious I am giving each user only the framework
to create his own stable configuration</em>".

</p>]]></description>

</item>
</channel>
</rss>
