<?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>The Zash Blag &#187; bash</title>
	<atom:link href="http://blag.zash.se/tag/bash/feed/" rel="self" type="application/rss+xml" />
	<link>http://blag.zash.se</link>
	<description>Åt helvete med hela skiten.</description>
	<lastBuildDate>Tue, 31 Aug 2010 12:27:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>My first prosody module!</title>
		<link>http://blag.zash.se/2010/07/my-first-prosody-module/</link>
		<comments>http://blag.zash.se/2010/07/my-first-prosody-module/#comments</comments>
		<pubDate>Sat, 24 Jul 2010 12:35:43 +0000</pubDate>
		<dc:creator>zash</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[minimalism]]></category>
		<category><![CDATA[prosody]]></category>
		<category><![CDATA[xmpp]]></category>

		<guid isPermaLink="false">http://blag.zash.se/?p=270</guid>
		<description><![CDATA[I have recently written two XMPP related things. The first is a prosody module called mod&#95;post&#95;msg which accepts messages in a HTTP POST, using HTTP authentication. It was inspired by this ejabberd module by skeltoac, but it takes full stanzas, whereas mine just takes a plain text message body. The second is a sendxmpp like [...]]]></description>
			<content:encoded><![CDATA[<p>I have recently written two <a href="http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol">XMPP</a> related things. The first is a <a href="http://prosody.im/">prosody</a> <a href="http://code.google.com/p/prosody-modules/w/list">module</a> called <a href="http://code.google.com/p/prosody-modules/source/browse/mod_post_msg/mod_post_msg.lua"><strong>mod&#95;post&#95;msg</strong></a> which accepts messages in a <a href="http://en.wikipedia.org/wiki/POST_%28HTTP%29">HTTP POST</a>, using <a href="http://en.wikipedia.org/wiki/Basic_access_authentication">HTTP authentication</a>. It was inspired by <a href="http://github.com/skeltoac/http_message">this ejabberd module by skeltoac</a>, but it takes full stanzas, whereas mine just takes a plain text message body.</p>

<p>The second is a <a href="http://www.djcbsoftware.nl/code/sendxmpp/">sendxmpp</a> like Bash script based on cURL which works with the module. It is supposed to work like sendxmpp, but doesn&#8217;t support all of it&#8217;s options. You can <a href="http://github.com/Zash/BinDotFiles/blob/master/bin/sendxmpp-curl">get <strong>sendxmpp-curl</strong> here</a>.</p>

<p>This allows you to post simple XMPP messages from CLI (like sendxmpp), with less round trips than a full XMPP session would require <em>(At least I hope so)</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blag.zash.se/2010/07/my-first-prosody-module/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rösträkning med Bash</title>
		<link>http://blag.zash.se/2010/01/votecounter-sh/</link>
		<comments>http://blag.zash.se/2010/01/votecounter-sh/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 02:45:14 +0000</pubDate>
		<dc:creator>zash</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[piratpartiet]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[val]]></category>

		<guid isPermaLink="false">http://blag.zash.se/?p=211</guid>
		<description><![CDATA[Piratpartiets primärval är avslutat. 1300 röster registrerades av partiets ca 48 tusen medlemmar, dvs ca 2.7%. Grattis till Norrbotten som hade överlägset högst valdeltagande Här är ett stycke Bash-magi som ger dig en votes.txt med antal röster och på vem, sorterad fallande efter antal röster. Paketen curl, grep, sed och coreutils behövs om de inte [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.piratpartiet.se">Piratpartiets</a> <a href="http://ungpirat.blogspot.com/2010/01/piratpartiets-primarval-slutar-ikvall.html">primärval</a> <a href="http://www.piratpartiet.se/nyheter/piratpartiets_primarval_ar_avslutat">är avslutat</a>. <a href="http://data.piratpartiet.se/Data/DisplayInternalPollVotes.aspx?PollId=2">1300 röster</a> registrerades av partiets <a href="http://www.piratpartiet.se/storlek">ca 48 tusen</a> medlemmar, dvs ca 2.7%.</p>

<p><strong>Grattis till Norrbotten</strong> <a href="http://osmidigt.bloggaren.eu/?p=654">som hade</a> <a href="http://data.piratpartiet.se/Charts/InternalPollTurnoutPerCircuit.aspx">överlägset högst valdeltagande</a></p>

<p>Här är ett stycke Bash-magi som ger dig en <code>votes.txt</code> med antal röster och på vem, sorterad fallande efter antal röster. Paketen <a href="apt:curl"><code>curl</code></a>, <a href="apt:grep"><code>grep</code></a>, <a href="apt:sed"><code>sed</code></a> och <a href="apt:coreutils"><code>coreutils</code></a> behövs om de inte är installerade, iaf i <a href="http://www.ubuntu.com/">Ubuntu</a> och förmodligen de flesta <a href="http://debian.org/">Debian</a>-baserade <a href="http://distrowatch.com/">distributionerna</a>.</p>

<p><strong>Notera</strong> att detta endast visar hur många röster som <a href="http://www.piratpartiet.se/primarvalskandidater">kandidaterna</a> fått.</p>

<pre><code>#!/bin/bash

curl -s "http://data.piratpartiet.se/Data/DisplayInternalPollVotes.aspx?PollId=2" |
    sed -r 's/\s$|^\s*//g' | # tar bort blanktecken
    grep -E '^[A-Z0-9]{12}\b' | # endast röster
    sed -r 's/^[A-Z0-9]{12}\s*//' | # ta bort röst-id
    sed -r 's/\s+/\n/g' | # dela upp i en kandidat per rad
    grep -E '^[0-9]' | # tar bort tomma rader
    sort | uniq -c | sort -nr &gt; votes.txt # räkna och sortera

# Detta hämtar och byter ut medlems-nr mot namn.
curl -s "http://www.piratpartiet.se/primarvalskandidater" |
    grep -Eo '&lt;span[^&gt;]*SpanCandidateName[^&gt;]*&gt;[^&lt;]*' | cut -d\&gt; -f2 |
    sed -r 's/^(.*)\s+\(#([0-9]+)\)$/sed -i "s,\\b\2\\$,\1," votes.txt;/' | sh
</code></pre>

<p>De faktiska ska som jag förstått det viktas efter hur högt man placerat kandidater, <a href="http://www.skivadlime.se/2010/01/primarvalsrostande/">eventuell kvotering samt</a> hur fördelningen mellan distrikt ser ut. Så, <abbr title="2010-01-18T16:00:00+0100">16:00 idag</abbr> presenteras de färdiga listorna. Frågan är; <a href="http://jimmycallin.se/2010/01/lat-18-januari-bli-nytandning-vad-ska-du-gora-for-piratpartiet/">vad gör vi nu?</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blag.zash.se/2010/01/votecounter-sh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Påminn folk om att rösta</title>
		<link>http://blag.zash.se/2009/06/paminn-folk-om-att-rosta/</link>
		<comments>http://blag.zash.se/2009/06/paminn-folk-om-att-rosta/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 20:09:13 +0000</pubDate>
		<dc:creator>zash</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[eu]]></category>
		<category><![CDATA[evolution]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[val]]></category>

		<guid isPermaLink="false">http://blag.zash.se/?p=61</guid>
		<description><![CDATA[Här är lite bash-magi för dem som har sin adressbok i Evolution.]]></description>
			<content:encoded><![CDATA[<p><a href="http://pastebin.com/f627dcedf">Här är lite bash-magi</a> för dem som har sin adressbok i <a href="http://www.gnome.org/projects/evolution/">Evolution</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blag.zash.se/2009/06/paminn-folk-om-att-rosta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
