<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Daniel Lange's blog (Entries tagged as script)</title>
    <link>http://daniel-lange.com/</link>
    <description>Life, IT, Managers, Cars...</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.5.3 - http://www.s9y.org/</generator>
    <pubDate>Tue, 18 May 2010 22:38:43 GMT</pubDate>

    <image>
        <url>http://daniel-lange.com/templates/bulletproof/img/s9y_banner_small.png</url>
        <title>RSS: Daniel Lange's blog - Life, IT, Managers, Cars...</title>
        <link>http://daniel-lange.com/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Keeping IRC nicks active</title>
    <link>http://daniel-lange.com/archives/54-Keeping-IRC-nicks-active.html</link>
            <category>IRC</category>
    
    <comments>http://daniel-lange.com/archives/54-Keeping-IRC-nicks-active.html#comments</comments>
    <wfw:comment>http://daniel-lange.com/wfwcomment.php?cid=54</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://daniel-lange.com/rss.php?version=2.0&amp;type=comments&amp;cid=54</wfw:commentRss>
    

    <author>nospam@example.com (Daniel Lange)</author>
    <content:encoded>
    &lt;p&gt;Typical IRC services usually allow you to register with nickserv and link a number of nicks to a personal account. It&#039;s quite common to have nick, nick_ and nick__ as many IRC clients auto-append underscores if the primary nickname is already in use when connecting. Obviously you can set these alternate nicknames to almost anything you like in a decent client.&lt;/p&gt;

&lt;p&gt;Some folks also group a &quot;vanity&quot; nickname or two for whatever reason. To keep these active, people do the &quot;nick shuffle&quot; (/nick newnick, /nick oldnick) all the time:&lt;/p&gt;

&lt;p&gt;&lt;!-- s9ymdb:530 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;967&quot; height=&quot;79&quot; src=&quot;http://daniel-lange.com/uploads/entries/100309_freenode_nick_shuffle.png&quot;  alt=&quot;nick shuffle on freenode&quot; /&gt;&lt;/p&gt;

&lt;p&gt;People who forget the occasional nick shuffle may end up losing a grouped nick because it became inactive. While freenode staff try to contact people before dropping linked nicks, there are occasional prunes of &quot;old data&quot; from the services database. And then nobody can really ask upfront.&lt;/p&gt;

&lt;p&gt;So before the next big purge comes up, I wrote a small bash script that logs into a nickserv account and cycles through the linked nicks.
A few friends and me have used it successfully for many months now.&lt;/p&gt;

&lt;p&gt;Grab a copy of &lt;a href=&quot;http://daniel-lange.com/software/keepnick&quot; title=&quot;keepnick bash script&quot;&gt;keepnick (2.4kB)&lt;/a&gt; and drop it into /usr/local/bin.&lt;/p&gt;

&lt;p&gt;Keepnick expects to have an accountname, the corresponding password and then a sequence of linked nicks given on its command line.&lt;/p&gt;

&lt;p&gt;Something like&lt;/p&gt;

&lt;div class=&quot;bash geshi&quot; style=&quot;text-align: left&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;local&lt;span style=&quot;color: #000000;&quot;&gt;/&lt;/span&gt;bin keepnick accountname passw0rd linked_nick linked_nick_ vanity_nick MyOtherNick&lt;/div&gt;

&lt;p&gt;should work.&lt;/p&gt;

&lt;p&gt;For regular use, you need to set up a cron job to call keepnick e.g. every week. So put something like the following script into &lt;code&gt;/etc/cron.weekly/keepnicks_irc&lt;/code&gt; or create a corresponding crontab entry for &lt;code&gt;keepnicks_irc&lt;/code&gt; if you do not have the convenient cron.* directories set up:&lt;/p&gt;

&lt;div class=&quot;bash geshi&quot; style=&quot;text-align: left&quot;&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;# run keepnick for user(s) irc account(s)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;# intended to be run from cron, e.g. through /etc/cron.weekly&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;#&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #007800;&quot;&gt;KEEPNICK&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;/usr/local/bin/keepnick&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;# better safe than sorry&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #007800;&quot;&gt;PATH&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;export&lt;/span&gt; PATH&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #007800;&quot;&gt;$KEEPNICK&lt;/span&gt; accountname1 passw0rd1 linked_nick1 linked_nick1_ linked_nick1__&lt;br /&gt;&lt;span style=&quot;color: #007800;&quot;&gt;$KEEPNICK&lt;/span&gt; accountname2 passw0rd2 linked_nick1 linked_nick2_ linked_nick2__&lt;br /&gt;&amp;#160;&lt;/div&gt;

&lt;p&gt;You should see keepnick in action now every week like this:&lt;/p&gt;

&lt;p&gt;&lt;!-- s9ymdb:529 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;758&quot; height=&quot;68&quot;  src=&quot;http://daniel-lange.com/uploads/entries/100306_keepnick_in_action.png&quot;  alt=&quot;keepnick in action&quot; /&gt;&lt;/p&gt;

&lt;p&gt;What happens here is that the IRC services package tells you, keepnick has just authenticated to your account and will now shuffle through all nicks you asked it to.
The big advantage is that is does this outside of channels, so not annoying any users. The cron job should make sure you don&#039;t forget the nick shuffle anymore.&lt;/p&gt;

&lt;h2&gt;Making sure your bash supports network connections&lt;/h2&gt;

&lt;p&gt;Stock bash will support network connections but on Debian and old (=pre-karmic) Ubuntu that capability was disabled at compile time.&lt;/p&gt;

&lt;p&gt;If you need to check whether your bash is compiled with network support, type &lt;code&gt;cat &amp;lt; /dev/tcp/time.nist.gov/13&lt;/code&gt; into a bash terminal.&lt;/p&gt;

&lt;p&gt;In case that gives you a &lt;a href=&quot;http://www.nist.gov/physlab/div847/grp40/its.cfm&quot; title=&quot;NIST Internet time service&quot;&gt;RFC-867 time string&lt;/a&gt;, you&#039;re all fine.
If not, re-compile your bash with &lt;code&gt;--enable-net-redirections&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Now for something more advanced (but entirely optional):&lt;/p&gt;
 &lt;br /&gt;&lt;a href=&quot;http://daniel-lange.com/archives/54-Keeping-IRC-nicks-active.html#extended&quot;&gt;Continue reading &quot;Keeping IRC nicks active&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 18 May 2010 23:50:00 +0200</pubDate>
    <guid isPermaLink="false">http://daniel-lange.com/archives/54-guid.html</guid>
    <category>account</category>
<category>active</category>
<category>bash</category>
<category>cron</category>
<category>freenode</category>
<category>irc</category>
<category>network</category>
<category>nick</category>
<category>script</category>

</item>
<item>
    <title>zip2dir (expand a zip to a directory of the same name)</title>
    <link>http://daniel-lange.com/archives/47-zip2dir-expand-a-zip-to-a-directory-of-the-same-name.html</link>
            <category>IT</category>
    
    <comments>http://daniel-lange.com/archives/47-zip2dir-expand-a-zip-to-a-directory-of-the-same-name.html#comments</comments>
    <wfw:comment>http://daniel-lange.com/wfwcomment.php?cid=47</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://daniel-lange.com/rss.php?version=2.0&amp;type=comments&amp;cid=47</wfw:commentRss>
    

    <author>nospam@example.com (Daniel Lange)</author>
    <content:encoded>
    &lt;p&gt;I needed to expand a lot of jars (Java zips) and other zips of various names into directories of the same name for each file.
With 6,239 files of which some are jars, some other zips and many xml and other filetypes all not properly identified by a file extension, this gets a bit too much to do manually.&lt;/p&gt;

&lt;p&gt;So:&lt;br /&gt;
Finding candidates for these is easy with &lt;code&gt;find . -type f&lt;/code&gt;.&lt;br /&gt;
The file is most probably a zip archive if the first two characters are &quot;PK&quot;, good old &lt;a href=&quot;http://en.wikipedia.org/wiki/Phil_Katz&quot; title=&quot;Wikipedia: Phil Katz - the inventor of .zip&quot; target=&quot;_blank&quot;&gt;Phil Katz&#039;&lt;/a&gt; signature. A friendly &lt;code&gt;head -c 2&lt;/code&gt; checks that.&lt;br /&gt;
All combined with some rudimentary error checking:&lt;/p&gt;

&lt;div class=&quot;bash geshi&quot; style=&quot;text-align: left&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;# There is little data security here, so know what you&#039;re doing.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;# All risks in using this code are yours. It moves and deletes files quite stupidly.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;# (c) Daniel Lange, 2009, v0.01, released into the public domain&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;$#&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-ne&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt; ; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;then&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Error: $0 expects exactly one argument, a (fully qualified) path/to/a/zipfile&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;exit&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;fi&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;!&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-r&lt;/span&gt; $&lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt; ; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;then&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Error: file does not exist or no read permission on $1&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;exit&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;2&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;fi&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;!&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-w&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #007800;&quot;&gt;$(dirname $1)&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt; ; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;then&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Error: cannot write to directory of $1&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;exit&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;3&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;fi&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #007800;&quot;&gt;$(head -c 2 $1)&lt;/span&gt;&amp;quot;&lt;/span&gt; == &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;PK&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt; ; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;then&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;mv&lt;/span&gt; $&lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt; $1.tmp&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;mkdir&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-p&lt;/span&gt; $&lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;unzip&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-d&lt;/span&gt; $&lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt; $1.tmp&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;rm&lt;/span&gt; $1.tmp&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;else&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;$1 is not a zipfile&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;fi&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;

&lt;p&gt;Download available &lt;a href=&quot;http://daniel-lange.com/software/zip2dir&quot; title=&quot;zip2dir download&quot;&gt;here (1KB)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Typical usage:&lt;/p&gt;

&lt;div class=&quot;bash geshi&quot; style=&quot;text-align: left&quot;&gt;&amp;#160;&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;find&lt;/span&gt; . &lt;span style=&quot;color: #660033;&quot;&gt;-type&lt;/span&gt; f &lt;span style=&quot;color: #660033;&quot;&gt;-print0&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;|&lt;/span&gt;&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;xargs&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;--null&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-n&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt; zip2dir&lt;/div&gt;

&lt;p&gt;This will expand all zips under the current directory.&lt;br /&gt;
Leave the &lt;code&gt;zip2dir&lt;/code&gt; out for a dry run (xargs will just print to the tty then). Look at the &lt;code&gt;-exec&lt;/code&gt; switch when digging around a bit more into what &lt;code&gt;find&lt;/code&gt; can do for you.&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Thu, 30 Jul 2009 23:51:40 +0200</pubDate>
    <guid isPermaLink="false">http://daniel-lange.com/archives/47-guid.html</guid>
    <category>bash</category>
<category>decompress</category>
<category>directory</category>
<category>expand</category>
<category>script</category>
<category>unzip</category>
<category>zip</category>

</item>
<item>
    <title>Updated Greasemonkey script for Xing</title>
    <link>http://daniel-lange.com/archives/26-Updated-Greasemonkey-script-for-Xing.html</link>
            <category>Private</category>
    
    <comments>http://daniel-lange.com/archives/26-Updated-Greasemonkey-script-for-Xing.html#comments</comments>
    <wfw:comment>http://daniel-lange.com/wfwcomment.php?cid=26</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://daniel-lange.com/rss.php?version=2.0&amp;type=comments&amp;cid=26</wfw:commentRss>
    

    <author>nospam@example.com (Daniel Lange)</author>
    <content:encoded>
    &lt;p&gt;Xing has just updated it&#039;s image-thumbnails naming &amp;quot;algorithm&amp;quot; once again:&lt;/p&gt;

&lt;p&gt;You&#039;ll now find thumbnails named &lt;font face=&quot;courier new,courier,monospace&quot;&gt;/2f1127fe2.3144098_s2&lt;b&gt;,2&lt;/b&gt;.jpg&lt;/font&gt;, so including another component like &amp;lt;comma&amp;gt;&amp;lt;digit&amp;gt; added to the name. Thus the Greasemonkey script linked from my article &lt;a title=&quot;Daniel&#039;s blog: Greasemonkey to enlarge Xing pictures&quot; href=&quot;http://daniel-lange.com/archives/24-Greasemonkey-to-enlarge-Xing-pictures.html&quot;&gt;Greasemonkey to enlarge Xing pictures&lt;/a&gt; needs to have it&#039;s main regex amended:&lt;/p&gt;

&lt;p&gt;Change \_s(1|2|3)?\. to read \_s(1|2|3)?(,\d)?\. in three places in the script.&lt;/p&gt;

&lt;p&gt;Or download an updated version &lt;a title=&quot;Updated Greasemonkey script to enlarge Xing pictures&quot; href=&quot;http://daniel-lange.com/software/openbcuserimagesmouseove.user.js&quot;&gt;here&lt;/a&gt;. I hope &amp;quot;louis&amp;quot; will update the version hosted at userscripts.org, too.&lt;/p&gt;

&lt;h2&gt;Update&lt;/h2&gt;

&lt;p&gt;02.05.2008 As Xing adds multi-digit numbers to the thumbnails now (like /7553bd445.4550412_s2&lt;b&gt;,10&lt;/b&gt;.jpg), you need to replace \d with \d+ in the above regex. The linked Greasemonkey script is updated.&lt;/p&gt;

&lt;p /&gt;
 
    </content:encoded>

    <pubDate>Sat, 05 Apr 2008 23:45:37 +0200</pubDate>
    <guid isPermaLink="false">http://daniel-lange.com/archives/26-guid.html</guid>
    <category>firefox</category>
<category>greasemonkey</category>
<category>script</category>
<category>updated</category>
<category>xing</category>

</item>
<item>
    <title>Greasemonkey to enlarge Xing pictures</title>
    <link>http://daniel-lange.com/archives/24-Greasemonkey-to-enlarge-Xing-pictures.html</link>
            <category>Private</category>
    
    <comments>http://daniel-lange.com/archives/24-Greasemonkey-to-enlarge-Xing-pictures.html#comments</comments>
    <wfw:comment>http://daniel-lange.com/wfwcomment.php?cid=24</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://daniel-lange.com/rss.php?version=2.0&amp;type=comments&amp;cid=24</wfw:commentRss>
    

    <author>nospam@example.com (Daniel Lange)</author>
    <content:encoded>
    &lt;p&gt;I use &lt;a title=&quot;Xing social networking site&quot; target=&quot;_blank&quot; href=&quot;http://www.xing.com/&quot;&gt;Xing&lt;/a&gt; to manage some of my business contacts and even some friends have profiles there as well.&lt;/p&gt;

&lt;p&gt;The default size of contact&#039;s pictures displayed on one&#039;s Xing homepage is 18x24px. On a higher dpi screens, you can thus barely recognize the person shown. As there are multiple sizes of all images available, it&#039;s pretty easy to just take (for example)&lt;font face=&quot;courier new,courier,monospace&quot;&gt; http://www.xing.com/img/users/d/f/1/f34814409.5648827_s1.jpg&lt;/font&gt;, remove the&lt;font face=&quot;courier new,courier,monospace&quot;&gt; _s1&lt;/font&gt; and see a 140x185px version of the picture.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://addons.mozilla.org/de/firefox/addon/748&quot; target=&quot;_blank&quot; title=&quot;Greasemonkey firefox extension&quot;&gt;Greasemonkey&lt;/a&gt;, a Firefox extension to run user specified scripts on selected pages that you visit, can automate this with a nice script from user louis to download &lt;a href=&quot;http://userscripts.org/scripts/show/6173&quot; target=&quot;_blank&quot; title=&quot;Greasemonkey script to show Xing images in large on mouse-over&quot;&gt;here&lt;/a&gt;. Or my updated version &lt;a title=&quot;Greasemonkey script to show Xing images in large on mouse-over (updated version)&quot; href=&quot;http://daniel-lange.com/software/openbcuserimagesmouseove.user.js&quot;&gt;here&lt;/a&gt;.*&lt;/p&gt;

&lt;p /&gt;

&lt;p align=&quot;baseline&quot; /&gt;

&lt;p&gt;&lt;img vspace=&quot;0&quot; hspace=&quot;0&quot; border=&quot;1&quot; align=&quot;absmiddle&quot; alt=&quot;Greasemonkey on Xing&quot; src=&quot;http://daniel-lange.com/uploads/entries/080227_Xing_Greasemonkey.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;
So, everytime I now hover my mouse over a tiny Xing thumbnail, it will show the &amp;quot;full resolution&amp;quot; version of the image. Simple, efficient.&lt;/p&gt;

&lt;h2&gt;Update&lt;/h2&gt;

&lt;p&gt;* Xing &lt;a title=&quot;Daniel&#039;s blog: Updated Greasemonkey script for Xing&quot; href=&quot;http://daniel-lange.com/archives/26-Updated-Greasemonkey-script-for-Xing.html&quot;&gt;changed it&#039;s image naming scheme a bit&lt;/a&gt;, so one needs an updated Greasemonkey script for all images to work again. Link inserted into the article text (&amp;quot;Or my updated version &lt;a title=&quot;Greasemonkey script to show Xing images in large on mouse-over (updated version)&quot; href=&quot;https://daniel-lange.com/software/openbcuserimagesmouseove.user.js&quot;&gt;here&lt;/a&gt;.&amp;quot;)&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Wed, 27 Feb 2008 23:30:00 +0100</pubDate>
    <guid isPermaLink="false">http://daniel-lange.com/archives/24-guid.html</guid>
    <category>firefox</category>
<category>greasemonkey</category>
<category>script</category>
<category>updated</category>
<category>xing</category>

</item>

</channel>
</rss>