<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ADI64 feat. n0stradamus &#187; Allgemein</title>
	<atom:link href="http://adrian.holfter.de/blog/category/allgemein/feed/" rel="self" type="application/rss+xml" />
	<link>http://adrian.holfter.de/blog</link>
	<description>Reiche Eltern für alle!</description>
	<lastBuildDate>Wed, 16 May 2012 09:13:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>teach the old Nokia 5800 some new tricks</title>
		<link>http://adrian.holfter.de/blog/en/2012/02/nokia-5800-neue-tricks-beibringen/</link>
		<comments>http://adrian.holfter.de/blog/en/2012/02/nokia-5800-neue-tricks-beibringen/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 21:30:59 +0000</pubDate>
		<dc:creator>Markus</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[5800]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[do it yourself]]></category>
		<category><![CDATA[frisch]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[s60v5]]></category>
		<category><![CDATA[symbian]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://adrian.holfter.de/blog/?p=738</guid>
		<description><![CDATA[Sorry, this entry is only available in Deutsch.]]></description>
			<content:encoded><![CDATA[<p>Sorry, this entry is only available in <a href="http://adrian.holfter.de/blog/category/allgemein/feed/">Deutsch</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrian.holfter.de/blog/en/2012/02/nokia-5800-neue-tricks-beibringen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Black March</title>
		<link>http://adrian.holfter.de/blog/en/2012/02/schwarzer-marz/</link>
		<comments>http://adrian.holfter.de/blog/en/2012/02/schwarzer-marz/#comments</comments>
		<pubDate>Sat, 11 Feb 2012 13:05:30 +0000</pubDate>
		<dc:creator>n0stradamus</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://adrian.holfter.de/blog/?p=732</guid>
		<description><![CDATA[The movement has its own web presence by now: *click*]]></description>
			<content:encoded><![CDATA[<p>The movement has its own web presence by now:<a href="http://black-march.com/"> *click*</a></p>
]]></content:encoded>
			<wfw:commentRss>http://adrian.holfter.de/blog/en/2012/02/schwarzer-marz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>(Deutsch) ACTA in plain Deutsch</title>
		<link>http://adrian.holfter.de/blog/en/2012/02/acta-in-plain-deutsch/</link>
		<comments>http://adrian.holfter.de/blog/en/2012/02/acta-in-plain-deutsch/#comments</comments>
		<pubDate>Fri, 10 Feb 2012 11:01:15 +0000</pubDate>
		<dc:creator>ADI64</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[ACTA]]></category>
		<category><![CDATA[Demonstration]]></category>
		<category><![CDATA[internet]]></category>

		<guid isPermaLink="false">http://adrian.holfter.de/blog/?p=728</guid>
		<description><![CDATA[Sorry, this entry is only available in Deutsch.]]></description>
			<content:encoded><![CDATA[<p>Sorry, this entry is only available in <a href="http://adrian.holfter.de/blog/category/allgemein/feed/">Deutsch</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrian.holfter.de/blog/en/2012/02/acta-in-plain-deutsch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>(Deutsch) das ist echt bitter</title>
		<link>http://adrian.holfter.de/blog/en/2012/01/das-ist-echt-bitter/</link>
		<comments>http://adrian.holfter.de/blog/en/2012/01/das-ist-echt-bitter/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 22:46:31 +0000</pubDate>
		<dc:creator>Markus</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[adware]]></category>
		<category><![CDATA[bing]]></category>
		<category><![CDATA[directx]]></category>
		<category><![CDATA[facepalm]]></category>
		<category><![CDATA[installer]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[uncool]]></category>
		<category><![CDATA[verschimmelt]]></category>
		<category><![CDATA[what where they thinking]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[wtf]]></category>

		<guid isPermaLink="false">http://adrian.holfter.de/blog/?p=719</guid>
		<description><![CDATA[Sorry, this entry is only available in Deutsch.]]></description>
			<content:encoded><![CDATA[<p>Sorry, this entry is only available in <a href="http://adrian.holfter.de/blog/category/allgemein/feed/">Deutsch</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrian.holfter.de/blog/en/2012/01/das-ist-echt-bitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solved: Broadcom BCM4306 + ndiswrapper</title>
		<link>http://adrian.holfter.de/blog/en/2011/12/english-solved-broadcom-bcm4306-ndiswrapper/</link>
		<comments>http://adrian.holfter.de/blog/en/2011/12/english-solved-broadcom-bcm4306-ndiswrapper/#comments</comments>
		<pubDate>Sat, 31 Dec 2011 12:46:28 +0000</pubDate>
		<dc:creator>ADI64</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Archlinux]]></category>
		<category><![CDATA[b43legacy]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ndiswrapper]]></category>

		<guid isPermaLink="false">http://adrian.holfter.de/blog/?p=707</guid>
		<description><![CDATA[My Arch Linux desktop system uses a Belkin F5D7000 wifi card which caused some trouble lately. So, what are we talking about when I say Belkin F5D7000? That&#8217;s what lspci -vnn tells me about it: 03:06.0 Network controller [0280]: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller [14e4:4320] (rev 02) Subsystem: Belkin F5D7000 v1000 Wireless G [...]]]></description>
			<content:encoded><![CDATA[<p>My Arch Linux desktop system uses a Belkin F5D7000 wifi card which caused some trouble lately.<br />
So, what are we talking about when I say Belkin F5D7000? That&#8217;s what<em> lspci -vnn</em> tells me about it:</p>
<blockquote><p>03:06.0 Network controller [0280]: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller [14e4:4320] (rev 02)<br />
Subsystem: Belkin F5D7000 v1000 Wireless G Desktop Card [1799:7000]</p></blockquote>
<p>Some years ago, this card was working perfectly fine with the <em>bcm43xx</em> module. However, this module became deprecated and got replaced by the <em>b43</em> and <em>b43legacy</em> modules. My card now had to use the b43legacy module and that&#8217;s where the problems started:<br />
The connection speed was very slow and the connection dropped every few minutes. Trying to download a larger file became a pain. <em>dmesg</em> was full of these messages:</p>
<blockquote><p>b43legacy-phy0 ERROR: PHY transmission error</p></blockquote>
<p>Pasting that into google showed me that I was not alone with these issues, the only fix that seemed to work was dropping the b43legacy module and using ndiswrapper with a windows driver file. It took me some while to find a 64bit Windows driver file for that specific card <em>[contact me if you can't find one]</em> because it&#8217;s quite outdated, but I finally got one.</p>
<p>So I went ahead, installed ndiswrapper and the driver for it&#8230;</p>
<blockquote><p>adi64@tux ~ % sudo ndiswrapper -l<br />
bcmwl5 : driver installed<br />
device (14E4:4320) present</p></blockquote>
<p>&#8230;but wlan0 wouldn&#8217;t show up, despite the fact that ndiswrapper found the device:</p>
<blockquote><p>adi64@tux ~ % sudo rmmod b43legacy<br />
adi64@tux ~ % sudo modprobe ndiswrapper<br />
adi64@tux ~ % iwconfig<br />
lo        no wireless extensions.</p>
<p>eth0      no wireless extensions.</p></blockquote>
<p>There were no errors or any debug info from ndiswrapper in either dmesg or /proc/net/ndiswrapper/debug.</p>
<p>After googling the hell out of keywords like <em>b43legacy</em>, <em>bcm4306</em>, <em>ndiswrapper</em> etc. I found the <a href="http://ubuntuforums.org/showthread.php?p=5561757">Comprehensive ndiswrapper troubleshooting guide</a> on the Ubuntu forums which finally helped.<br />
In a nutshell: The <em>ssb</em> module claimed the device although being unable to do anything with it, therefore <em>ndiswrapper</em> couldn&#8217;t take control of the device.</p>
<p>Knowing this, the solution is simple. You need to blacklist the <em>b43legacy</em> and <em>ssb</em> modules and tell the kernel to load the ndiswrapper module.<br />
I opened up the new file<em> /etc/modprobe.d/b43legacy_blacklist.conf </em>and pasted in the following<em>:<br />
</em></p>
<blockquote><p>blacklist b43legacy<br />
blacklist ssb</p></blockquote>
<p>Then I added <em>ndiswrapper</em> to my MODULES Array in <em>/etc/rc.conf</em>.<br />
Doing a reboot and BAM! The card was working fine. Note however that you won&#8217;t be able to do things like Monitor Mode etc. with ndiswrapper as device driver.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrian.holfter.de/blog/en/2011/12/english-solved-broadcom-bcm4306-ndiswrapper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>go-preload benchmark</title>
		<link>http://adrian.holfter.de/blog/en/2011/11/english-go-preload-benchmark/</link>
		<comments>http://adrian.holfter.de/blog/en/2011/11/english-go-preload-benchmark/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 00:35:00 +0000</pubDate>
		<dc:creator>Markus</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Archlinux]]></category>
		<category><![CDATA[benchmark]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[precache]]></category>
		<category><![CDATA[preload]]></category>
		<category><![CDATA[speed]]></category>

		<guid isPermaLink="false">http://adrian.holfter.de/blog/?p=701</guid>
		<description><![CDATA[I&#8217;ve just tried out go-preload on Arch Linux. However, it does not really seem to speed up things. Here are my three benchmarks: application (preloaded/non-preloaded) codeblocks (16s/18s) keepass (5s/5s) opera-next (6s/8s) &#160; I&#8217;ve noticed that it makes a huge difference whether you start codeblocks for the first time on a freshly rebooted linux or not [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just tried out <a href="http://forums.gentoo.org/viewtopic-t-622085-highlight-preload.html" target="_blank">go-preload</a> on Arch Linux. However, it does not really seem to speed up things. Here are my three benchmarks:</p>
<p><em>application (preloaded/non-preloaded)</em></p>
<p>codeblocks (16s/18s)</p>
<p>keepass (5s/5s)</p>
<p>opera-next (6s/8s)</p>
<p>&nbsp;</p>
<p>I&#8217;ve noticed that it makes a huge difference whether you start codeblocks for the first time on a freshly rebooted linux or not (no matter if you use any extra preload software): Starting it the second time takes only about 7 seconds on my system. So for the above test values, I have always restarted my machine.</p>
<p>Conclusion: not worth it :p</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://adrian.holfter.de/blog/en/2011/11/english-go-preload-benchmark/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reconnect Script For Level One WBR-6600</title>
		<link>http://adrian.holfter.de/blog/en/2011/11/wbr6600-reconnect/</link>
		<comments>http://adrian.holfter.de/blog/en/2011/11/wbr6600-reconnect/#comments</comments>
		<pubDate>Fri, 11 Nov 2011 16:28:04 +0000</pubDate>
		<dc:creator>Markus</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[autoit]]></category>
		<category><![CDATA[do it yourself]]></category>
		<category><![CDATA[gpl]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[reconnect]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[wbr6600]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://adrian.holfter.de/blog/?p=672</guid>
		<description><![CDATA[Here&#8217;s a little script I wrote for a not so ordinary router, the WBR-6600. Compared to others, its main difference is that it only accepts connection change requests, when you add your login ID as GET parameter. The login ID gets assigned every time you login and thus it is always different. AFAIK most other [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a little script I wrote for a not so ordinary router, the WBR-6600.</p>
<p>Compared to others, its main difference is that it only accepts connection change requests, when you add your login ID as GET parameter. The login ID gets assigned every time you login and thus it is always different. AFAIK most other routers handle sessions via cookies, so for those reconnect scripts can easily be made from within <a href="http://jdownloader.org" target="_blank">JDownloader</a> for example.</p>
<p>Anyway, if you happen to own one of these little machines, feel free to use my reconnect script. I wrote it in <a href="http://www.autoitscript.com/" target="_blank">AutoIT3</a>, source license is <a href="http://en.wikipedia.org/wiki/Gpl3">GPLv3</a>.</p>
<p>On first start a .ini file gets generated and opened, where you can type in the login information. It will also open if the script can&#8217;t login (but never more than one window).</p>
<p>I think other Level One routers may either work without or with little hacking of this script. So users with similar routers might enjoy to  make it work with their routers. If you do so, please share your results in the comments.</p>
<p>Enjoy <img src='http://adrian.holfter.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>PS: The configuration file gets written to the same path as the program is in, so make sure you put it somewhere with write access (C:\Users\you\Apps\reconnect for example).</p>
<p>Download:</p>
<ul>
<li><a href="http://adrian.holfter.de/blog/wp-content/uploads/2011/11/1.0.zip">1.0</a></li>
<li><a href="http://adrian.holfter.de/blog/wp-content/uploads/2011/11/source-1.0.zip">source-1.0</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://adrian.holfter.de/blog/en/2011/11/wbr6600-reconnect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Command-line contact management</title>
		<link>http://adrian.holfter.de/blog/en/2011/08/command-line-contact-management/</link>
		<comments>http://adrian.holfter.de/blog/en/2011/08/command-line-contact-management/#comments</comments>
		<pubDate>Sun, 14 Aug 2011 20:41:57 +0000</pubDate>
		<dc:creator>n0stradamus</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://adrian.holfter.de/blog/?p=639</guid>
		<description><![CDATA[For those who like using the commandline interface and like to have access to their contacts outside the X Server, abook is a good option if you like a ncurses-based program. Alternatively you could let a few scripts do the work. These will be presented in this article. The work shown in this article builds [...]]]></description>
			<content:encoded><![CDATA[<p>For those who like using the commandline interface and like to have access to their contacts outside the X Server, <strong>abook</strong> is a good option if you like a ncurses-based program. Alternatively you could let a few scripts do the work. These will be presented in this article.<br />
<span id="more-639"></span></p>
<p>The work shown in this article builds up on the ideas on article in the <a href="http://www.linux.com/archive/articles/57894" target="_blank">linux.com archives</a>. Please have a look there, otherwise the stuff presented here will be useless for you.</p>
<h3>mutt alias</h3>
<p><strong>abook</strong> offers an option for generating mutt aliases from its contact database. Fortunately, a little shell magic is able to help:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #666666; font-style: italic;"># File: cbook2alias.sh</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># where did you save your contacts file?</span>
<span style="color: #007800;">CBOOK_DIR</span>=~<span style="color: #000000; font-weight: bold;">/</span>.cbook
&nbsp;
<span style="color: #007800;">MAIL_LIST</span>=<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #ff0000;">'^Email:'</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$CBOOK_DIR</span>&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">egrep</span> <span style="color: #660033;">-o</span> <span style="color: #ff0000;">'[^ ]+$'</span><span style="color: #000000; font-weight: bold;">`</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #007800;">INFO_LIST</span>=<span style="color: #ff0000;">&quot;&quot;</span>
<span style="color: #007800;">NAME</span>=<span style="color: #ff0000;">&quot;&quot;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">for</span> ADDRESS <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #800000;">${MAIL_LIST[*]}</span>; <span style="color: #000000; font-weight: bold;">do</span>
  <span style="color: #007800;">INFO_LIST</span>=<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'BEGIN { RS = &quot;###&quot;; FS = &quot;Email: &quot; } ($2 ~ &quot;'</span><span style="color: #007800;">$ADDRESS</span><span style="color: #ff0000;">'&quot;) { print $1 }'</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$CBOOK_DIR</span>&quot;</span><span style="color: #000000; font-weight: bold;">`</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
  <span style="color: #007800;">NAME</span>=<span style="color: #800000;">${INFO_LIST[0]:0:1}</span>
  <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;alias <span style="color: #007800;">${NAME,}</span><span style="color: #007800;">${INFO_LIST[1],,}</span> &lt;<span style="color: #007800;">$ADDRESS</span>&gt;&quot;</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></td></tr></table></div>

<p><strong>Example:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># File: ~/.cbook</span>
Ron Wesley
The Burrow
<span style="color: #000000;">1337</span> Somewhere
Email: ron<span style="color: #000000; font-weight: bold;">@</span>weasley.hog
Birthday: 12.12.9000
<span style="color: #666666; font-style: italic;">###</span></pre></div></div>

<p><code>$ ./cbook2alias.sh<br />
alias rweasley &#60;ron@weasley.hog&#62;</code><br />
As you can see, the first name is shortened to its beginning letter and prepended to the last name. A small modification in line can undo this:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>13
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">NAME</span>=<span style="color: #800000;">${INFO_LIST[0]}</span></pre></td></tr></table></div>

<p><code>$ ./cbook2alias.sh<br />
alias ronweasley &#60;ron@weasley.hog&#62;</code></p>
<h3>Birthdays</h3>
<p>Some birthdays are made to forget. To avoid those peculiar moments, one can use a script to generate a list of birthdays to come from the contacts file:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash </span>
<span style="color: #666666; font-style: italic;"># File: cbook_birthdays.sh</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Variables</span>
<span style="color: #007800;">CBOOK_DIR</span>=~<span style="color: #000000; font-weight: bold;">/</span>.cbook
&nbsp;
<span style="color: #666666; font-style: italic;"># This var  holds a list of all the birthdays in the contacts file</span>
<span style="color: #007800;">BD_LIST</span>=<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #ff0000;">'^Birthday:'</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$CBOOK_DIR</span>&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">egrep</span> <span style="color: #660033;">-o</span> <span style="color: #ff0000;">'[^ ]+$'</span><span style="color: #000000; font-weight: bold;">`</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #666666; font-style: italic;"># This var will hold a list of information for the person corresponding to a birthday in BD_LIST</span>
<span style="color: #007800;">INFO_LIST</span>=<span style="color: #ff0000;">&quot;&quot;</span>
<span style="color: #666666; font-style: italic;"># The persons name</span>
<span style="color: #007800;">NAME</span>=<span style="color: #ff0000;">&quot;&quot;</span>
<span style="color: #666666; font-style: italic;"># The flag that is relevant for output</span>
<span style="color: #007800;">ONE_MONTH_FLAG</span>=<span style="color: #c20cb9; font-weight: bold;">false</span>
<span style="color: #666666; font-style: italic;"># Current date and delimiter</span>
<span style="color: #007800;">CUR_DAY</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">date</span> +<span style="color: #ff0000;">&quot;%d&quot;</span><span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #007800;">CUR_MONTH</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">date</span> +<span style="color: #ff0000;">&quot;%m&quot;</span><span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #007800;">CUR_YEAR</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">date</span> +<span style="color: #ff0000;">&quot;%Y&quot;</span><span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #666666; font-style: italic;"># Birthday segment indices, delimiter and format</span>
<span style="color: #007800;">BD_DAY</span>=<span style="color: #000000;">2</span>
<span style="color: #007800;">BD_MONTH</span>=<span style="color: #000000;">1</span>
<span style="color: #007800;">BD_YEAR</span>=<span style="color: #000000;">0</span>
<span style="color: #007800;">DELIM</span>=<span style="color: #ff0000;">&quot;.&quot;</span>
<span style="color: #007800;">FMT</span>=<span style="color: #ff0000;">&quot;ymd&quot;</span>
<span style="color: #666666; font-style: italic;"># helper variables</span>
<span style="color: #007800;">TEMP</span>=<span style="color: #ff0000;">&quot;&quot;</span>
<span style="color: #007800;">NUM</span>=<span style="color: #000000;">0</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Functions</span>
<span style="color: #000000; font-weight: bold;">function</span> print_usage <span style="color: #7a0874; font-weight: bold;">&#123;</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Usage: <span style="color: #780078;">`basename $0`</span> [Options]&quot;</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Description:&quot;</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;This script helps you remember birthdays. You can pass it&quot;</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;some options concerning the date format. Then you&quot;</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;will get to see a list of birthdays to come for this year.&quot;</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Options:&quot;</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;-m&quot;</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\t</span> print only the birthdays for this month (the ones that are to come&quot;</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;-f &lt;FORMAT&gt;&quot;</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\t</span> the date format, choose one of [dmy,mdy,ymd]&quot;</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\t</span> d for day, m for month, y for year&quot;</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;-d &lt;DELIMITER&gt;&quot;</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\t</span> the date delimiter&quot;</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;-h, --help&quot;</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\t</span> display this message&quot;</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Argument parsing</span>
<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #c20cb9; font-weight: bold;">true</span>; <span style="color: #000000; font-weight: bold;">do</span>
    <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #ff0000;">&quot;$1&quot;</span> <span style="color: #000000; font-weight: bold;">in</span>
        <span style="color: #660033;">-h</span> <span style="color: #000000; font-weight: bold;">|</span> --help<span style="color: #7a0874; font-weight: bold;">&#41;</span>
               print_usage
                <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span>
                <span style="color: #000000; font-weight: bold;">;;</span>
        -m<span style="color: #7a0874; font-weight: bold;">&#41;</span>
                <span style="color: #007800;">ONE_MONTH_FLAG</span>=<span style="color: #c20cb9; font-weight: bold;">true</span>
                <span style="color: #7a0874; font-weight: bold;">shift</span>
                <span style="color: #000000; font-weight: bold;">;;</span>
        -f<span style="color: #7a0874; font-weight: bold;">&#41;</span>
                <span style="color: #666666; font-style: italic;"># The date format of the birthday</span>
                <span style="color: #007800;">FMT</span>=<span style="color: #ff0000;">&quot;$2&quot;</span>
                <span style="color: #7a0874; font-weight: bold;">shift</span> <span style="color: #000000;">2</span>
                <span style="color: #000000; font-weight: bold;">;;</span>
        -d<span style="color: #7a0874; font-weight: bold;">&#41;</span>
                <span style="color: #666666; font-style: italic;"># The date delimiter</span>
                <span style="color: #007800;">DELIM</span>=<span style="color: #ff0000;">&quot;$2&quot;</span>
                <span style="color: #7a0874; font-weight: bold;">shift</span> <span style="color: #000000;">2</span>
                <span style="color: #000000; font-weight: bold;">;;</span>
         <span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">shift</span>; <span style="color: #7a0874; font-weight: bold;">break</span>
                <span style="color: #000000; font-weight: bold;">;;</span>
    <span style="color: #000000; font-weight: bold;">esac</span>
<span style="color: #000000; font-weight: bold;">done</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#===============</span>
<span style="color: #666666; font-style: italic;"># The main work</span>
<span style="color: #666666; font-style: italic;">#===============</span>
&nbsp;
&nbsp;
<span style="color: #666666; font-style: italic;"># find out the date segment indices</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$FMT</span>&quot;</span> <span style="color: #000000; font-weight: bold;">!</span>= <span style="color: #ff0000;">&quot;ymd&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
    <span style="color: #007800;">TEMP</span>=<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000; font-weight: bold;">`</span><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$FMT</span> <span style="color: #000000; font-weight: bold;">|</span> fold -w1<span style="color: #000000; font-weight: bold;">`</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
    <span style="color: #007800;">NUM</span>=<span style="color: #000000;">0</span>
    <span style="color: #000000; font-weight: bold;">while</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$NUM</span> <span style="color: #660033;">-lt</span> <span style="color: #800000;">${#TEMP[*]}</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">do</span>
        <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${TEMP[$NUM]}</span>&quot;</span> <span style="color: #000000; font-weight: bold;">in</span>
            d<span style="color: #7a0874; font-weight: bold;">&#41;</span>
                <span style="color: #007800;">BD_DAY</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">$NUM</span>&quot;</span><span style="color: #000000; font-weight: bold;">;;</span>
            m<span style="color: #7a0874; font-weight: bold;">&#41;</span>
                <span style="color: #007800;">BD_MONTH</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">$NUM</span>&quot;</span><span style="color: #000000; font-weight: bold;">;;</span>
            y<span style="color: #7a0874; font-weight: bold;">&#41;</span>
                <span style="color: #007800;">BD_YEAR</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">$NUM</span>&quot;</span><span style="color: #000000; font-weight: bold;">;;</span>
            <span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
                <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;OMG! Error!&quot;</span>
                <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">2</span>
        <span style="color: #000000; font-weight: bold;">esac</span>
        <span style="color: #007800;">NUM</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #007800;">$NUM</span>+<span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
    <span style="color: #000000; font-weight: bold;">done</span>
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">for</span> BDAY <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #800000;">${BD_LIST[*]}</span>; <span style="color: #000000; font-weight: bold;">do</span>
        <span style="color: #007800;">INFO_LIST</span>=<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'BEGIN { RS = &quot;###&quot;; FS = &quot;Birthday: &quot; } ($2 ~ &quot;'</span><span style="color: #007800;">$BDAY</span><span style="color: #ff0000;">'&quot;) { print $1 }'</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$CBOOK_DIR</span>&quot;</span><span style="color: #000000; font-weight: bold;">`</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
        <span style="color: #007800;">NAME</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">${INFO_LIST[0]}</span> <span style="color: #007800;">${INFO_LIST[1]}</span>&quot;</span>
        <span style="color: #666666; font-style: italic;"># Decide wether the birthday has already taken place</span>
        <span style="color: #007800;">TEMP</span>=<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000; font-weight: bold;">`</span><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$BDAY</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">tr</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$DELIM</span>&quot;</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #000000; font-weight: bold;">`</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;"># Print the month-only birthdays first</span>
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$CUR_MONTH</span> <span style="color: #660033;">-eq</span> <span style="color: #800000;">${TEMP[$BD_MONTH]}</span> <span style="color: #660033;">-a</span> <span style="color: #007800;">$ONE_MONTH_FLAG</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
                <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$CUR_DAY</span> <span style="color: #660033;">-le</span> <span style="color: #800000;">${TEMP[$BD_DAY]}</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
                        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$BDAY</span><span style="color: #000099; font-weight: bold;">\t</span><span style="color: #007800;">$NAME</span>(<span style="color: #007800;">$(($CUR_YEAR - ${TEMP[$BD_YEAR]})</span>))&quot;</span>
                <span style="color: #000000; font-weight: bold;">fi</span>
        <span style="color: #000000; font-weight: bold;">elif</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$CUR_MONTH</span> <span style="color: #660033;">-le</span> <span style="color: #800000;">${TEMP[$BD_MONTH]}</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
                <span style="color: #666666; font-style: italic;"># if were in here, it is this month or some month in the future</span>
                <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$CUR_DAY</span> <span style="color: #660033;">-le</span> <span style="color: #800000;">${TEMP[$BD_DAY]}</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
                        <span style="color: #666666; font-style: italic;"># if we're here, it has not yet passed</span>
                        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$BDAY</span><span style="color: #000099; font-weight: bold;">\t</span><span style="color: #007800;">$NAME</span>(<span style="color: #007800;">$(($CUR_YEAR - ${TEMP[$BD_YEAR]})</span>))&quot;</span>
                <span style="color: #000000; font-weight: bold;">fi</span>
        <span style="color: #000000; font-weight: bold;">fi</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></td></tr></table></div>

<p><strong>Example</strong><br />
Using the contacts file from above:<br />
<code>$ date +%Y<br />
2011<br />
$ ./cbook_birthdays.sh -f dmy<br />
12.12.9000       Ron Weasley(-6989)</code></p>
<h3>Advantages</h3>
<p>Using small scripts there are virtually no limits to what format you can transform your contacts file. Of course, that means work and a little headache, but that doesn&#8217;t mean it can&#8217;t be done <img src='http://adrian.holfter.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>This article is not cast in stone. The scripts will be developed a little further in the future, so you might want to check out my repo on <a href="https://github.com/n0stradamus/CLI-contact-management-scripts" title="github">github</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrian.holfter.de/blog/en/2011/08/command-line-contact-management/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>(Deutsch) 29. Bundeswettbewerb Informatik &#8211; 2. Runde</title>
		<link>http://adrian.holfter.de/blog/en/2011/07/29-bundeswettbewerb-informatik-2-runde/</link>
		<comments>http://adrian.holfter.de/blog/en/2011/07/29-bundeswettbewerb-informatik-2-runde/#comments</comments>
		<pubDate>Sun, 03 Jul 2011 15:19:31 +0000</pubDate>
		<dc:creator>ADI64</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[29]]></category>
		<category><![CDATA[bundeswettbewerb informatik]]></category>
		<category><![CDATA[bwinf]]></category>
		<category><![CDATA[C++]]></category>

		<guid isPermaLink="false">http://adrian.holfter.de/blog/?p=626</guid>
		<description><![CDATA[Sorry, this entry is only available in Deutsch.]]></description>
			<content:encoded><![CDATA[<p>Sorry, this entry is only available in <a href="http://adrian.holfter.de/blog/category/allgemein/feed/">Deutsch</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://adrian.holfter.de/blog/en/2011/07/29-bundeswettbewerb-informatik-2-runde/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Combine Virtual DJ and foobar2000</title>
		<link>http://adrian.holfter.de/blog/en/2011/05/virtual-dj-mit-foobar2000-kombinieren/</link>
		<comments>http://adrian.holfter.de/blog/en/2011/05/virtual-dj-mit-foobar2000-kombinieren/#comments</comments>
		<pubDate>Tue, 10 May 2011 22:00:51 +0000</pubDate>
		<dc:creator>Markus</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[do it yourself]]></category>
		<category><![CDATA[fb2k]]></category>
		<category><![CDATA[flac]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[ogg]]></category>
		<category><![CDATA[skin]]></category>
		<category><![CDATA[virtual dj]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[workaround]]></category>

		<guid isPermaLink="false">http://adrian.holfter.de/blog/?p=594</guid>
		<description><![CDATA[There&#8217;s that great freeware music player called foobar2000. I really use it a lot to, play music, rate music, sort music, apply good ID3 tags and so on. Sadly there&#8217;s no (official) linux version of it, so this post will be all about windows. You might be able to run both Virtual DJ and foobar2000 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://adrian.holfter.de/blog/wp-content/uploads/2011/05/fb2k_virtualdj.jpg"><img class="aligncenter" src="http://adrian.holfter.de/blog/wp-content/uploads/2011/05/fb2k_virtualdj-300x240.jpg" alt="" width="300" height="240" /></a></p>
<p>There&#8217;s that great freeware music player called <a title="fb2k homepage" href="http://www.foobar2000.org/" target="_blank">foobar2000</a>. I really use it a lot to, play music, rate music, sort music, apply good ID3 tags and so on. Sadly there&#8217;s no (official) linux version of it, so this post will be all about windows. You might be able to run both Virtual DJ and foobar2000 with wine though.</p>
<p>Anyway, my preferred DJ mix tool is Virtual DJ. Foobar can only do very basic crossfades which mostly sound acceptable, if you set the crossfade duration to 20 seconds and activate the skip silence DSP. However, if you would like to pump some good beats while changing the tracks at your party, you are better off using a real mixing software. Here&#8217;s where Virtual DJ comes in. Its transitions can sound waaaay better than these automated crossfades.</p>
<p>The only downside is, that it comes with a very bad music browser interface: It can not recognize tags of ogg and flac files, the search is very limited and it does not support custom tags on files, where it does actually scan them. Lately I found out that it is possible to drop songs directly on a deck from any application. Wohoo, that&#8217;s fucking awesome!</p>
<p>So let&#8217;s see, we&#8217;ve got a crappy music browser, which we want to replace with foobar. The only thing you are required to get exactly that is editing your preferred VDJ skin.</p>
<p>As they are zip compressed xml files, stored in <em>My Documents\VirtualDJ\Skins</em>, you need to unpack your favorite one and open it up in an editor.</p>
<p>Somewhere in the first line, you&#8217;ll see the height of the skin. Change it to what you like (type in some less value), rename and repack the zip file and you are ready to go. For performance reasons, you might want to delete the the <em>&lt;browser&gt;&#8230;&lt;/browser&gt;</em> stuff.</p>
<p>I recommend to set foobar2000&#8242;s output to your headphones, because then you have yet another deck for previews. (yes, there are more than 2 possible with virtual dj too, but they do not really sync well)</p>
<p>Oh and here are some foobar2000 plugins you might want to use with this combination:</p>
<ul>
<li><a href="http://www.hydrogenaudio.org/forums/index.php?showtopic=77143" target="_blank">foo_bpm</a> shows the beats per minute</li>
<li><a href="http://www.foobar2000.org/components/view/foo_wave_seekbar" target="_blank">foo_wave_seekbar</a> shows a waveform seekbar like on the Virtual DJ decks</li>
<li><a href="http://www.hydrogenaudio.org/forums/index.php?showtopic=59187" target="_blank">ratings</a></li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://adrian.holfter.de/blog/en/2011/05/virtual-dj-mit-foobar2000-kombinieren/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

