Christophhttps://christoph-polcin.com/first-name@family-name.deChristoph Polcintag:christoph-polcin.com,2011-06-11:/atom/https://christoph-polcin.com/favicon.icohttps://christoph-polcin.com/feed-logo.png2017-11-25T21:00:00ZacrylamidPagantag:christoph-polcin.com,2017-11-25:/2017/11/25/pagan2017-11-25T21:00:00ZChristophhttps://christoph-polcin.com/first-name@family-name.de<p><a href="https://christoph-polcin.com/sketches/20171125-pagan.jpg"><img alt="Pagan" src="https://christoph-polcin.com/sketches/thumbs/20171125-pagan.jpg" title="Strum"/></a></p>
<p><center>Here we dance on the grave<br>
of the nothingness they've created:<br>
There is no evil nor good.<br>
Better back in chains than being saved.<br>
<br>
Inspired by <a href="https://magdalenemagdalene.bandcamp.com/track/pagan">Magdalene - Sail with the tide</a>
</center></p>Kleinzschocher ist schraegtag:christoph-polcin.com,2017-11-23:/2017/11/23/kleinzschocher-ist-schraeg2017-11-23T21:00:00ZChristophhttps://christoph-polcin.com/first-name@family-name.de<p><center><a href="https://christoph-polcin.com/sketches/20171123-kleinzschocher_ist_schraeg.jpg"><img alt="Kleinzschocher ist schraeg" src="https://christoph-polcin.com/sketches/thumbs/20171123-kleinzschocher_ist_schraeg.jpg" title="Kleinzschocher ist Schraeg"/></a></center></p>Sturmtag:christoph-polcin.com,2017-11-22:/2017/11/22/sturm2017-11-22T21:00:00ZChristophhttps://christoph-polcin.com/first-name@family-name.de<p><a href="https://christoph-polcin.com/sketches/20171122-sturm.jpg"><img alt="Sturm" src="https://christoph-polcin.com/sketches/thumbs/20171122-sturm.jpg" title="Strum"/></a></p>Heiszelufttag:christoph-polcin.com,2017-11-20:/2017/11/20/heiszeluft2017-11-20T21:00:00ZChristophhttps://christoph-polcin.com/first-name@family-name.de<p><center><a href="https://christoph-polcin.com/sketches/20171120-heiszeluft.jpg"><img alt="Heiszeluft" src="https://christoph-polcin.com/sketches/thumbs/20171120-heiszeluft.jpg" title="Heiszeluft"/></a></center></p>Gefangentag:christoph-polcin.com,2017-11-18:/2017/11/18/gefangen2017-11-18T21:05:00ZChristophhttps://christoph-polcin.com/first-name@family-name.de<p><a href="https://christoph-polcin.com/sketches/20171118-gefangen.jpg"><img alt="Gefangen" src="https://christoph-polcin.com/sketches/thumbs/20171118-gefangen.jpg" title="Gefangen"/></a></p>Chemnitzer Linux-Tage 2015 mit Gentootag:christoph-polcin.com,2015-03-19:/2015/03/19/chemnitzer-linux-tage-2015-mit-gentoo-linux2015-03-19T09:00:00ZChristophhttps://christoph-polcin.com/first-name@family-name.de<p><a href="http://gentoo.org/" title="gentoo linux">Gentoo Linux</a> ist bei den <a href="https://chemnitzer.linux-tage.de/2015/de" title="Chemnitzer Linux-Tage 2015">Chemnitzer Linux-Tagen</a> am Samstag 21. und
Sonntag 22. März 2015 mit einem Stand vertreten. Es gibt unter anderem
Gentoo-T-Shirts, Lanyards und Buttons zum selbst kompilieren.</p>
<p>Wir freuen uns euch zu sehen.</p>My PDF attach_files scripttag:christoph-polcin.com,2014-10-05:/2014/10/05/pdf-attatch-files-script2014-10-05T13:40:00ZChristophhttps://christoph-polcin.com/first-name@family-name.de<p><a href="http://en.wikipedia.org/wiki/Portable_Document_Format">pdftk</a> is a awesome toolkit to modify <a href="http://en.wikipedia.org/wiki/Portable_Document_Format">PDF</a> files. The shell script below
converts a input file to a PDF file with the help of Open- or LibreOffice and
attaches the source to the end of the output file. It does an additional
convertion if the input file is a <code>docx</code>, <code>rft</code> or <code>txt</code> file.</p>
<!-- highlight: lang-sh -->
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><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</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="ch">#!/bin/sh</span>
<span class="c1"># http://christoph-polcin.com/</span>
<span class="nv">TMP</span><span class="o">=</span>/tmp
<span class="o">[</span> <span class="nv">$#</span> -lt <span class="m">1</span> <span class="o">]</span> <span class="o">&&</span> <span class="se">\</span>
<span class="nb">echo</span> <span class="s2">"usage: </span><span class="k">$(</span>basename <span class="nv">$0</span><span class="k">)</span><span class="s2"> input_file [output.pdf]"</span> <span class="o">&&</span> <span class="se">\</span>
<span class="nb">exit</span> <span class="m">1</span>
<span class="o">[</span> ! -f <span class="s2">"</span><span class="nv">$1</span><span class="s2">"</span> <span class="o">]</span> <span class="o">&&</span> <span class="se">\</span>
<span class="nb">echo</span> <span class="s2">"input file not found: </span><span class="nv">$1</span><span class="s2">"</span> <span class="o">&&</span> <span class="se">\</span>
<span class="nb">exit</span> <span class="m">1</span>
<span class="nv">IN</span><span class="o">=</span><span class="nv">$1</span>
<span class="nv">NAME</span><span class="o">=</span><span class="k">$(</span><span class="nb">echo</span> -n <span class="s2">"</span><span class="nv">$IN</span><span class="s2">"</span> <span class="p">|</span> sed <span class="s1">'s/\.[^\.]*$//'</span><span class="k">)</span>
<span class="k">if</span> <span class="o">[</span> <span class="nv">$#</span> -gt <span class="m">1</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
<span class="nv">OUT</span><span class="o">=</span><span class="nv">$2</span>
<span class="k">else</span>
<span class="nv">OUT</span><span class="o">=</span>./<span class="si">${</span><span class="nv">NAME</span><span class="si">}</span>.pdf
<span class="k">fi</span>
<span class="o">[</span> -e <span class="s2">"</span><span class="nv">$OUT</span><span class="s2">"</span> <span class="o">]</span> <span class="o">&&</span> <span class="se">\</span>
<span class="nb">echo</span> <span class="s2">"output already exists: </span><span class="nv">$OUT</span><span class="s2">"</span> <span class="o">&&</span> <span class="se">\</span>
<span class="nb">exit</span> <span class="m">1</span>
<span class="k">if</span> which libreoffice >/dev/null<span class="p">;</span> <span class="k">then</span>
<span class="nv">CONVERTER</span><span class="o">=</span>libreoffice
<span class="k">else</span>
<span class="nv">CONVERTER</span><span class="o">=</span>openoffice
<span class="k">fi</span>
<span class="nv">EXT</span><span class="o">=</span><span class="k">$(</span><span class="nb">echo</span> -n <span class="s2">"</span><span class="nv">$IN</span><span class="s2">"</span> <span class="p">|</span> sed <span class="s1">'s/^.*\.//;s/.*/\L&/'</span><span class="k">)</span>
<span class="k">case</span> <span class="s2">"</span><span class="nv">$EXT</span><span class="s2">"</span> in
pdf<span class="o">)</span>
<span class="nb">echo</span> <span class="s2">"inputfile is already a pdf: </span><span class="nv">$IN</span><span class="s2">"</span>
<span class="nb">exit</span> <span class="m">1</span>
<span class="p">;;</span>
docx<span class="p">|</span>rtf<span class="p">|</span>txt<span class="o">)</span>
<span class="nv">$CONVERTER</span> --convert-to odt --headless --outdir <span class="si">${</span><span class="nv">TMP</span><span class="si">}</span> <span class="s2">"</span><span class="nv">$IN</span><span class="s2">"</span>
<span class="nv">IN</span><span class="o">=</span><span class="si">${</span><span class="nv">TMP</span><span class="si">}</span>/<span class="si">${</span><span class="nv">NAME</span><span class="si">}</span>.odt
<span class="p">;;</span>
*<span class="o">)</span>
<span class="p">;;</span>
<span class="k">esac</span><span class="p">;</span>
<span class="nv">$CONVERTER</span> --convert-to pdf --headless --outdir <span class="si">${</span><span class="nv">TMP</span><span class="si">}</span> <span class="s2">"</span><span class="nv">$IN</span><span class="s2">"</span>
pdftk <span class="s2">"</span><span class="si">${</span><span class="nv">TMP</span><span class="si">}</span><span class="s2">/</span><span class="si">${</span><span class="nv">NAME</span><span class="si">}</span><span class="s2">.pdf"</span> <span class="se">\</span>
attach_files <span class="s2">"</span><span class="nv">$IN</span><span class="s2">"</span> topage end <span class="se">\</span>
output <span class="s2">"</span><span class="nv">$OUT</span><span class="s2">"</span>
rm -f <span class="s2">"</span><span class="si">${</span><span class="nv">TMP</span><span class="si">}</span><span class="s2">/</span><span class="si">${</span><span class="nv">NAME</span><span class="si">}</span><span class="s2">.pdf"</span>
<span class="nb">echo</span> output: <span class="si">${</span><span class="nv">OUT</span><span class="si">}</span>
</pre></div>
</td></tr></table>My Libreoffice Concatenate Cells Macrotag:christoph-polcin.com,2014-09-30:/2014/09/30/libreoffice-concatenate-cells-macro2014-09-30T16:40:00ZChristophhttps://christoph-polcin.com/first-name@family-name.de<p><a href="http://www.libreoffice.org/">LibreOffice</a> is a modern heavyweight, formerly <a href="http://www.openoffice.org/">OpenOffice</a>. The
built-in <code>CONCATENATE</code> function accepts only single cells as arguments but not
a range of cells. This has always bugged me. To concatenate a range of cells
you must create a macro, which does the work for you. Afterwards you can use
the function across your document. <a href="http://www.pitonyak.org/">Andrew Pitonyak</a> has written a
nice and profound <a href="http://www.pitonyak.org/oo.php">macro documentation</a> for OpenOffice, which is
available as <a href="http://www.hentzenwerke.com/catalog/oome.htm">book</a> too. These docs will also work for LibreOffice.
Likewise, the <a href="http://www.libreoffice.org/get-help/documentation/">official documentation</a> is a good starting point.</p>
<p>To create custom macros you need to open a document and execute
<code>Tool > Macros > Organize Macros > LibreOffice Basic</code> from the application
menu. Select your document, create a new module and paste the snippet. Save
the document and close the window. Now you can use <code>=MyConcat($A1:$A99, "; ")</code>
or <code>=MyConcat($A1:$F1)</code> to concatenate a range of cells.</p>
<!-- highlight: lang-basic -->
<div class="highlight"><pre><span></span>REM ***** BASIC *****
Sub Main
End Sub
Function MyConcat(arr(), Optional sep as String) as String
Dim i as String
Dim r as String
Dim s as String
If Not IsMissing (sep) Then
s = sep
Else
s = ", "
EndIf
r = ""
For Each i In arr()
If i <> "" Then
r = r & i & s
EndIf
Next i
If Len(r) > Len(s) Then
r = Left(r, Len(r)-Len(s))
EndIf
MyConcat = r
End Function
</pre></div>WRTNode Ausgepackttag:christoph-polcin.com,2014-09-18:/2014/09/18/wrtnode-unboxing2014-09-18T17:01:00ZChristophhttps://christoph-polcin.com/first-name@family-name.de<p>Endlich etwas Zeit gefunden, um den kleinen <a href="http://wrtnode.com/">WRTnode</a> zumindest einmal
auszupacken. Für 25$ gibts ein Hacker freundliches <a href="http://www.anz.ru/files/mediatek/MT7620_Datasheet.pdf">MIPS</a> Board mit 600 Mhz,
512Mb RAM, WLAN 802.11n, 23 GPIO-Ports, sowie JTAG, SPI, I2C, Uart Lite und USB
2.0 HOST Schnittstelle. <a href="https://github.com/WRTnode">Quellcode</a> und <a href="http://cn.wrtnode.com/w/wp-content/uploads/2014/05/WRTnode_sch_v01.pdf">Schaltbild</a> stehen frei zur Verfügung. U-Boot
und ein angepasstes <a href="https://openwrt.org/">Open Wrt</a> Linux mit einem 3.10er Kernel treiben die
4.5 x 5.0 cm Platine an. Das <a href="http://wiki.wrtnode.com/">Wiki</a> ist ein guter Startpunkt.</p>
<figure class="gallery">
<a href="https://christoph-polcin.com/images/2014-wrtnode/00-wrtnode.jpg" class="thumb first ">
<img src="https://christoph-polcin.com/images/2014-wrtnode/thumbs/00-wrtnode.jpg" alt="00-wrtnode.jpg"/>
</a><a href="https://christoph-polcin.com/images/2014-wrtnode/01-wrtnode.jpg" class="thumb ">
<img src="https://christoph-polcin.com/images/2014-wrtnode/thumbs/01-wrtnode.jpg" alt="01-wrtnode.jpg"/>
</a><a href="https://christoph-polcin.com/images/2014-wrtnode/02-wrtnode.jpg" class="thumb last">
<img src="https://christoph-polcin.com/images/2014-wrtnode/thumbs/02-wrtnode.jpg" alt="02-wrtnode.jpg"/>
</a>
</figure>DIY Kinderherdtag:christoph-polcin.com,2014-09-13:/2014/09/13/diy-kinderherd2014-09-13T15:25:00ZChristophhttps://christoph-polcin.com/first-name@family-name.de<p>Eine Holzkiste, Schaniere, Schrauben, Farbe, Holzreste, Drehregler vom
Schrottcontainer, Werkzeug und ein wenig Zeit.</p>
<figure class="gallery">
<a href="https://christoph-polcin.com/images/2014-diy-kinderherd/00-diy-kinderherd.jpg" class="thumb first ">
<img src="https://christoph-polcin.com/images/2014-diy-kinderherd/thumbs/00-diy-kinderherd.jpg" alt="00-diy-kinderherd.jpg"/>
</a><a href="https://christoph-polcin.com/images/2014-diy-kinderherd/01-diy-kinderherd.jpg" class="thumb ">
<img src="https://christoph-polcin.com/images/2014-diy-kinderherd/thumbs/01-diy-kinderherd.jpg" alt="01-diy-kinderherd.jpg"/>
</a><a href="https://christoph-polcin.com/images/2014-diy-kinderherd/02-diy-kinderherd.jpg" class="thumb last">
<img src="https://christoph-polcin.com/images/2014-diy-kinderherd/thumbs/02-diy-kinderherd.jpg" alt="02-diy-kinderherd.jpg"/>
</a>
</figure>Fluff Fest 2014tag:christoph-polcin.com,2014-07-27:/2014/07/27/fluff-fest-20142014-07-27T21:59:00ZChristophhttps://christoph-polcin.com/first-name@family-name.de<figure class="gallery">
<a href="https://christoph-polcin.com/images/2014-fluff-fest/00-laa-aeroklub-rokycany.jpg" class="thumb first ">
<img src="https://christoph-polcin.com/images/2014-fluff-fest/thumbs/00-laa-aeroklub-rokycany.jpg" alt="00-laa-aeroklub-rokycany.jpg"/>
</a><a href="https://christoph-polcin.com/images/2014-fluff-fest/01-vestiges.jpg" class="thumb ">
<img src="https://christoph-polcin.com/images/2014-fluff-fest/thumbs/01-vestiges.jpg" alt="01-vestiges.jpg"/>
</a><a href="https://christoph-polcin.com/images/2014-fluff-fest/02-lawine.jpg" class="thumb last">
<img src="https://christoph-polcin.com/images/2014-fluff-fest/thumbs/02-lawine.jpg" alt="02-lawine.jpg"/>
</a>
</figure>
<p>just awesome!</p>Aktion Sag NEIN zu Milchtag:christoph-polcin.com,2014-05-25:/2014/05/25/sag-nein-zu-milch2014-05-25T21:55:00ZChristophhttps://christoph-polcin.com/first-name@family-name.de<p>Zum <a href="http://www.connewitzerstrassenfest.de/" title="Webseite Connewitzer Straßenfest">Connewitzer Straßenfest</a> am 25. Mai in Leipzig,
boten lokale Tierrechts Organisationen gemeinsam einen sehr
gut gelungenen Infostand an. Verwöhnt wurden Interessenten
mit <em>Milchreis</em> und <em>Milchshakes</em>. Unschlagbar köstlich
und gegen Spende! Impressionen und Bilder findet Ihr unter anderem im
<a href="http://bueleti.de/blog/2014/5/26/aktion-sag-nein-zu-milch" title="Bündnis Leipziger Tierrechtler - Aktion Sag NEIN zu Milch">Bündnis Blog</a>.</p>
<p><a href="http://bueleti.de/blog/2014/5/26/aktion-sag-nein-zu-milch" title="Bündnis Leipziger Tierrechtler - Aktion Sag NEIN zu Milch"><img alt="Sag NEIN zu Milch Aktion" src="https://christoph-polcin.com/images/2014/sag-nein-zu-milch.jpg" title="Sag NEIN zu Milch Aktion"/></a></p>Sieg der Vernunfttag:christoph-polcin.com,2014-04-27:/2014/04/27/sa-und-so-rennrad-verboten2014-04-27T20:00:00ZChristophhttps://christoph-polcin.com/first-name@family-name.de<p><img alt="Rennrad verboten" src="https://christoph-polcin.com/images/2014/sa-so-rennrad-verboten.jpg" title="Sa + So Rennrad verboten"/></p>Offene Standardstag:christoph-polcin.com,2014-03-26:/2014/03/26/document-freedom-day2014-03-25T22:01:00ZChristophhttps://christoph-polcin.com/first-name@family-name.de<p><a href="http://documentfreedom.org/" title="Document Freedom Day"><img alt="#DOCUMENT FREEDOM DAY" src="https://christoph-polcin.com/images/2014/2014-03-26-we-cannot-read-your-documents.png" title="#DOCUMENT FREEDOM DAY"/></a></p>Chemnitzer Linux-Tage mit Gentootag:christoph-polcin.com,2014-03-21:/2014/03/21/chemnitzer-linux-tage-mit-gentoo-linux2014-03-21T08:15:00ZChristophhttps://christoph-polcin.com/first-name@family-name.de<p>Die Chemnitzer Linux-Tage (am 15. & 16. März) kurz <a href="http://chemnitzer.linux-tage.de/2014/" title="Chemnitzer Linux-Tage">CLT</a>, feierten dieses
Jahr ihren 16. Geburtstag und luden unter dem Motto <em>Vertrauen ist …?</em> herzlich
ein.<br />
Neben einem beachtlichen <a href="http://chemnitzer.linux-tage.de/2014/de/vortraege/plan">Vortrags</a>- und <a href="http://chemnitzer.linux-tage.de/2014/de/vortraege/workshops">Workshop</a>-Programm gab es die
Möglichkeit nette Leute aus der Linux & Unix Gemeinschaft persönlich näher
kennenzulernen. Allein letzteres ist bereits einen Besuch wert.</p>
<p><a href="http://posativ.org/" title="Martin Zimmermann">Martin</a> und ich nutzten die <a href="http://chemnitzer.linux-tage.de/2014/" title="Chemnitzer Linux-Tage">CLT</a>, um unsere lieblings Linux Distribution
<a href="http://gentoo.org/" title="gentoo linux">gentoo linux</a> zu präsentieren. Unsere Parole: <strong>Vertrauen ist gut, Kompilieren
besser!</strong> Mit selbst gebackenen Keksen, Gummitieren, T-Shirts und Flyern
standen wir Frage & Antwort bereit.<br />
Unerwartet war die Nachfrage beachtlich groß. Vom <em>Erstkontakt mit gentoo</em>
bis hin zu <em>konkreten Problemen</em> (bereits vor der offiziellen Eröffnung) war
alles vertreten. Für den Großteil der Interessenten war <a href="http://gentoo.org/" title="gentoo linux">gentoo linux</a> ein
Begriff. Nahezu alle hatten bereits mit <em>mehr oder weniger Erfolg</em> eine
Installation absolviert. Anhand einer kleinen Umfrage stellte sich herraus,
dass <a href="http://gentoo.org/" title="gentoo linux">gentoo linux</a> auf mehreren Geräten gleichzeitig und mehr als
zufriedenstellend zum Einsatz kommt.</p>
<p>Zu Demozwecken hatte ich mein <a href="http://cubieboard.org/tag/cubieboard2/">cubieboard2</a> mit dabei. Aufgrund mangelnder
Zeit war es mit einem <a href="http://cubian.org/">cubian</a> bespielt und sollte zum <a href="http://chemnitzer.linux-tage.de/2014/" title="Chemnitzer Linux-Tage">CLT</a> ein frisches
<a href="http://gentoo.org/" title="gentoo linux">gentoo linux</a> mit <a href="http://www.uclibc.org/" title="micro C-Standard-Bibliothek">uclibc</a> und <a href="http://de.wikipedia.org/wiki/Btrfs" title="B-tree FS">btrfs</a> Funktionalität erhalten.<br />
Der große Ansturm allerdings hielt mich von der notwendigen Konfiguration ab,
sodass der <em>erste</em> Bootvorgang zum Sonntag Nachmittag erfolgte, aufgrund
zweier Patzer jedoch auf Anhieb mißglückte: 1. fehlender btrfs Support im
Kernel und 2. ein vom 3.4er Kernel nicht unterstütztes btrfs Feature (meinem
Minimalismuswahn geschuldet). Wie ärgerlich … (Anleitung folgt)</p>
<p>Herzlichen Dank an <a href="http://posativ.org/" title="Martin Zimmermann">Martin</a>, Haldor Zaake-Hertling, den <a href="https://www.gentoo-ev.org/" title="Förderverein Gentoo e.V.">Förderverein Gentoo
e.V.</a> und an das gesamte <a href="http://chemnitzer.linux-tage.de/2014/de/info/about/">CLT Team</a>.</p>
<p>Fazit: <strong>Pflichtprogramm für Open Source Freunde!</strong></p>
<figure class="gallery">
<a href="https://christoph-polcin.com/images/2014-gentoo-clt/01-gentoo-stand-clt-2014.jpg" class="thumb first ">
<img src="https://christoph-polcin.com/images/2014-gentoo-clt/thumbs/01-gentoo-stand-clt-2014.jpg" alt="01-gentoo-stand-clt-2014.jpg"/>
</a><a href="https://christoph-polcin.com/images/2014-gentoo-clt/02-gentoo-arm-still-compiling.jpg" class="thumb ">
<img src="https://christoph-polcin.com/images/2014-gentoo-clt/thumbs/02-gentoo-arm-still-compiling.jpg" alt="02-gentoo-arm-still-compiling.jpg"/>
</a><a href="https://christoph-polcin.com/images/2014-gentoo-clt/03-gentoo-uclibc-on-cubieboard2.jpg" class="thumb last">
<img src="https://christoph-polcin.com/images/2014-gentoo-clt/thumbs/03-gentoo-uclibc-on-cubieboard2.jpg" alt="03-gentoo-uclibc-on-cubieboard2.jpg"/>
</a>
</figure>Cool Emergetag:christoph-polcin.com,2013-06-22:/2013/06/22/cool-emerge2013-06-22T20:15:00ZChristophhttps://christoph-polcin.com/first-name@family-name.de<p>Es waren bereits gefühlte 40° Raumtemperatur als die anstehende Systemaktualisierung
startete, <a href="http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=1#doc_chap3_sect5"><code>emerge -uD @world</code></a> und einen Kaffee bitte. Kurze Zeit später - mein Notebook
regelrecht am kochen, der Lüfter - strikt nach Richtlinie - lautlos. Zuviel des Guten!
Doch zum Glück besteht die Möglichkeit eigene Befehle bei jeder Paket-Aktualisierung ausführen
zu lassen, dank <a href="http://www.gentoo.org/doc/en/handbook/handbook-amd64.xml?part=3&chap=6#doc_chap3">portage hooks</a>.</p>
<p>Und hier das Script <code>/etc/portage/bashrc</code>, welches die Lüftergeschwindigkeit während der
Aktualisierung anpasst.</p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4
5
6
7
8
9</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="ch">#!/usr/bin/env bash</span>
<span class="k">if</span> <span class="o">[[</span> <span class="si">${</span><span class="nv">EBUILD_PHASE</span><span class="si">}</span> <span class="o">==</span> <span class="s2">"setup"</span> <span class="o">]]</span><span class="p">;</span> <span class="k">then</span>
<span class="nb">echo</span> level full-speed > /proc/acpi/ibm/fan
<span class="k">fi</span>
<span class="k">if</span> <span class="o">[[</span> <span class="si">${</span><span class="nv">EBUILD_PHASE</span><span class="si">}</span> <span class="o">==</span> <span class="s2">"preinst"</span> <span class="o">]]</span><span class="p">;</span> <span class="k">then</span>
<span class="nb">echo</span> level auto > /proc/acpi/ibm/fan
<span class="k">fi</span>
</pre></div>
</td></tr></table>
<p>Kühle Sache <a href="http://www.gentoo.org/">Gentoo</a>.</p>My Easter Hack - SSH-Keyringtag:christoph-polcin.com,2013-03-30:/2013/03/30/my-easter-hack-ssh-keyring2013-03-30T20:15:00ZChristophhttps://christoph-polcin.com/first-name@family-name.de<p><a href="https://git.christoph-polcin.com/ssh-keyring/"><img alt="#SSH-Keyring" src="https://christoph-polcin.com/images/2013/03-30-my-easter-hack-ssk-keyring.jpg" title="SSH-Keyring"/></a></p>
<p>I was bored with feeding my <a href="http://en.wikipedia.org/wiki/Ssh-agent">SSH-Agent</a> with plenty passphrases.
<a href="https://live.gnome.org/GnomeKeyring">Gnome-Keyring</a> and friends just displeases me because of all
their dependencies.</p>
<p>I would love to have a slimy, gui-less keyring which fits well
into my environment and toolchain.
But it seems to me that I / We've still got a long way to go.
My Easter-Hack-Project <a href="https://git.christoph-polcin.com/ssh-keyring/">SSH-Keyring</a> (<a href="https://github.com/chripo/ssh-keyring">github-mirror</a>) tries to
solve a nibble in a hackish way.
Code reviews and suggestions are welcome.</p>Kardinal Kopflostag:christoph-polcin.com,2013-03-29:/2013/03/29/headless-cardinal2013-03-29T18:15:00ZChristophhttps://christoph-polcin.com/first-name@family-name.de<figure class="gallery">
<a href="https://christoph-polcin.com/images/food/2013-headless-cardinal/cardinal-00.jpg" class="thumb first ">
<img src="https://christoph-polcin.com/images/food/2013-headless-cardinal/thumbs/cardinal-00.jpg" alt="cardinal-00.jpg"/>
</a><a href="https://christoph-polcin.com/images/food/2013-headless-cardinal/cardinal-01.jpg" class="thumb ">
<img src="https://christoph-polcin.com/images/food/2013-headless-cardinal/thumbs/cardinal-01.jpg" alt="cardinal-01.jpg"/>
</a><a href="https://christoph-polcin.com/images/food/2013-headless-cardinal/cardinal-02.jpg" class="thumb last">
<img src="https://christoph-polcin.com/images/food/2013-headless-cardinal/thumbs/cardinal-02.jpg" alt="cardinal-02.jpg"/>
</a>
</figure>
<p>Motto ist Programm - Mein kulinarischer Beitrag zum Fest.<br />
Wie immer blutfrei & lecker!</p>Doom Over Leipzigtag:christoph-polcin.com,2013-03-23:/2013/03/23/doom-over-leipzig-20132013-03-23T18:00:00ZChristophhttps://christoph-polcin.com/first-name@family-name.de<p><a href="http://www.doomoverleipzig.org/" title="Doom Over Leipzig">Doom Over Leipzig</a> mit <a href="http://hexisband.bandcamp.com/" title="Hexis auf Bandcamp.com">Hexis</a>, <a href="http://zatokrev.bandcamp.com/" title="Zatokrev auf Bandcamp.com">Zatokrev</a>, <a href="http://www.last.fm/music/Lento" title="Lenot auf Last.fm">Lento</a>, <a href="http://heirs.bandcamp.com/" title="Heirs auf Bandcamp.com">Heirs</a> und <a href="http://bosskonline.com/" title="BOSSK Homepage">BOSSK</a> im
<a href="http://utconnewitz.de/" title="UT Connewitz Homepage">UT Connewitz</a>.</p>
<figure class="gallery">
<a href="https://christoph-polcin.com/images/shots/2013-doom-over-leipzig/00-zatokrev.jpg" class="thumb first ">
<img src="https://christoph-polcin.com/images/shots/2013-doom-over-leipzig/thumbs/00-zatokrev.jpg" alt="00-zatokrev.jpg"/>
</a><a href="https://christoph-polcin.com/images/shots/2013-doom-over-leipzig/01-zatokrev.jpg" class="thumb ">
<img src="https://christoph-polcin.com/images/shots/2013-doom-over-leipzig/thumbs/01-zatokrev.jpg" alt="01-zatokrev.jpg"/>
</a><a href="https://christoph-polcin.com/images/shots/2013-doom-over-leipzig/02-zatokrev.jpg" class="thumb ">
<img src="https://christoph-polcin.com/images/shots/2013-doom-over-leipzig/thumbs/02-zatokrev.jpg" alt="02-zatokrev.jpg"/>
</a><a href="https://christoph-polcin.com/images/shots/2013-doom-over-leipzig/03-lento.jpg" class="thumb ">
<img src="https://christoph-polcin.com/images/shots/2013-doom-over-leipzig/thumbs/03-lento.jpg" alt="03-lento.jpg"/>
</a><a href="https://christoph-polcin.com/images/shots/2013-doom-over-leipzig/04-lento.jpg" class="thumb ">
<img src="https://christoph-polcin.com/images/shots/2013-doom-over-leipzig/thumbs/04-lento.jpg" alt="04-lento.jpg"/>
</a><a href="https://christoph-polcin.com/images/shots/2013-doom-over-leipzig/05-lento.jpg" class="thumb ">
<img src="https://christoph-polcin.com/images/shots/2013-doom-over-leipzig/thumbs/05-lento.jpg" alt="05-lento.jpg"/>
</a><a href="https://christoph-polcin.com/images/shots/2013-doom-over-leipzig/06-heirs.jpg" class="thumb ">
<img src="https://christoph-polcin.com/images/shots/2013-doom-over-leipzig/thumbs/06-heirs.jpg" alt="06-heirs.jpg"/>
</a><a href="https://christoph-polcin.com/images/shots/2013-doom-over-leipzig/07-heirs.jpg" class="thumb ">
<img src="https://christoph-polcin.com/images/shots/2013-doom-over-leipzig/thumbs/07-heirs.jpg" alt="07-heirs.jpg"/>
</a><a href="https://christoph-polcin.com/images/shots/2013-doom-over-leipzig/08-heirs.jpg" class="thumb last">
<img src="https://christoph-polcin.com/images/shots/2013-doom-over-leipzig/thumbs/08-heirs.jpg" alt="08-heirs.jpg"/>
</a>
</figure>EARTHSHIP & PLANKS & OBELYSKKHtag:christoph-polcin.com,2013-02-15:/2013/02/15/obelyskkh+planks+earthship2013-02-15T18:00:00ZChristophhttps://christoph-polcin.com/first-name@family-name.de<p><a href="http://www.southofmainstream.de/" title="South Of Mainstream Homepage">South Of Mainstream</a> mit <a href="http://www.myspace.com/wearetheearthship" title="Earthship auf myspace.com">Earthship</a>, <a href="http://planks.bandcamp.com/" title="Planks auf Bandcamp.com">Planks</a>, <a href="http://obelyskkh.bandcamp.com/" title="Obelyskkh auf Bandcamp.com">Obelyskkh</a>, und <a href="http://www.connyochs.com/" title="Conny Ochs Homepage">Conny Ochs</a> im
<a href="http://utconnewitz.de/" title="UT Connewitz Homepage">UT Connewitz</a>.</p>
<figure class="gallery">
<a href="https://christoph-polcin.com/images/shots/2013-south-of-mainstream/9328-earthship-0.jpg" class="thumb first ">
<img src="https://christoph-polcin.com/images/shots/2013-south-of-mainstream/thumbs/9328-earthship-0.jpg" alt="9328-earthship-0.jpg"/>
</a><a href="https://christoph-polcin.com/images/shots/2013-south-of-mainstream/9347-earthship-1.jpg" class="thumb ">
<img src="https://christoph-polcin.com/images/shots/2013-south-of-mainstream/thumbs/9347-earthship-1.jpg" alt="9347-earthship-1.jpg"/>
</a><a href="https://christoph-polcin.com/images/shots/2013-south-of-mainstream/9375-planks-0.jpg" class="thumb ">
<img src="https://christoph-polcin.com/images/shots/2013-south-of-mainstream/thumbs/9375-planks-0.jpg" alt="9375-planks-0.jpg"/>
</a><a href="https://christoph-polcin.com/images/shots/2013-south-of-mainstream/9403-planks-1.jpg" class="thumb ">
<img src="https://christoph-polcin.com/images/shots/2013-south-of-mainstream/thumbs/9403-planks-1.jpg" alt="9403-planks-1.jpg"/>
</a><a href="https://christoph-polcin.com/images/shots/2013-south-of-mainstream/9421-obelyskkh-0.jpg" class="thumb ">
<img src="https://christoph-polcin.com/images/shots/2013-south-of-mainstream/thumbs/9421-obelyskkh-0.jpg" alt="9421-obelyskkh-0.jpg"/>
</a><a href="https://christoph-polcin.com/images/shots/2013-south-of-mainstream/9440-obelyskkh-1.jpg" class="thumb last">
<img src="https://christoph-polcin.com/images/shots/2013-south-of-mainstream/thumbs/9440-obelyskkh-1.jpg" alt="9440-obelyskkh-1.jpg"/>
</a>
</figure>I Love Free Softwaretag:christoph-polcin.com,2013-02-14:/2013/02/14/i-love-free-software2013-02-13T22:01:00ZChristophhttps://christoph-polcin.com/first-name@family-name.de<p><a href="http://fsfe.org/campaigns/ilovefs/ilovefs.html" title="fsfe #I LOVE FREE SOFTWARE"><img alt="#ILOVEFS" src="https://christoph-polcin.com/images/2013/02-14-ilovefs.png" title="#I LOVE FREE SOFTWARE"/></a></p>Ein Certificate Signing Request mit OpenSSL erstellentag:christoph-polcin.com,2013-02-09:/2013/02/09/certificate-signing-request-mit-openssl-erstellen2013-02-09T00:16:00ZChristophhttps://christoph-polcin.com/first-name@family-name.de<p>Um für die eigene Internetpräsenz bzw. Domain ein signiertes Zertifikat
zu erhalten wird eine so genannte <em>Zertifikatsregistrierungsanforderung</em>
/ <em>Certificate Signing Request</em> <a href="https://en.wikipedia.org/wiki/Certificate_signing_request">CSR</a> benötigt.
Diese kann mit Hilfe von <a href="http://www.openssl.org/">OpenSSL</a> wie folgt erzeugt werden:</p>
<div class="highlight"><pre><span></span>openssl req -nodes -new \
-newkey rsa:4096 -keyout domain.tld.key \
-out donain.tld.csr
</pre></div>
<!-- more -->
<p>Der Kommandozeilenbefehl generiert nach Eingabe notwendiger Daten
einen 4096-Bit staken RSA Schlüssel den <code>key</code> und das benötigte
<code>CSR</code>, welches an die Registrierung- / Zertifizierungsstelle
weitergeleitet werden muss. Im Falle von <a href="http://www.cacert.org/">CACert.org</a> ist
lediglich das Eintragen des <em>Common Name</em> notwendig da die
restlichen Informationen nicht berücksichtigt werden. Um ein
<a href="http://kb.psw.net/questions/12/">Wildcard-Zertifikat</a> zu erhalten muss <em>Common Name</em> die eigene
Domain im folgenden Format enthalten <code>*.domain.tld</code>, sonst wird die
konkrete Domain angegeben. Für das Übermitteln des CSR gibt es im
CACert-Nutzerbereich ein Eingabeformular. Im nächsten Schritt steht
das von der Zertifizierungsstelle signierte Zertifikat, oft codiert
im Base64 Format, zur Verfügung und muss in eine Datei zum Beispiel
<em>domain.tld.crt</em> eingefügt werden.
Die digitale Signatur kann wie folgt an Hand der öffentlichen
Schlüssel der Zertifizierungsstelle überprüft werden.</p>
<div class="highlight"><pre><span></span>curl https://www.cacert.org/certs/root.crt -o CACert_root.crt
curl https://www.cacert.org/certs/class3.crt -o CACert_class3.crt
openssl verify -CAfile CACert_root.crt \
-untrusted CACert_class3.crt \
domain.tld.crt
</pre></div>
<p>Reicht für den Einsatz ein <em>Selbst-Signiertes Zertifikat</em>
(Self-Signed Certificate) aus kann es unter Angabe des Verfallsdatums
in Tagen wie folgt erstellt werden:</p>
<div class="highlight"><pre><span></span>openssl x509 -req -days 365 \
-in domain.tld.csr \
-signkey domain.tld.key \
-out domain.tldcrt
</pre></div>
<p>Nun muss das signierte Zertifikat, der private Schlüssel und ggf. der
öffentlichen Schlüssel der Zertifizierungsstelle über eine sicheren
Kanal auf den eigenen Webserver übertragen werden.
Der <a href="http://httpd.apache.org/">Apache Webserver</a> verlangt den privaten Schlüssel in einer
unverschlüsselt Form. Dabei hilft der folgend Befehl:</p>
<div class="highlight"><pre><span></span>openssl rsa -in domain.tld.key -out domain.tld.key.decrypt
</pre></div>
<p>Die Konfiguration des Webservers muss wie folgt angepasst werden:</p>
<div class="highlight"><pre><span></span><span class="nt"><VirtualHost</span> <span class="err">_default_:443</span><span class="nt">></span>
DocumentRoot /var/www/htdocs
ServerName www.domain.tld
SSLEngine on
SSLCertificateFile /path/to/domain.tld.crt
SSLCertificateKeyFile /path/to/domain.tld.key.decrypt
SSLCertificateChainFile /path/to/CACert_class3.crt
<span class="nt"></VirtualHost></span>
</pre></div>
<p>Nun steht einer <em>sicheren</em> Datenübertragung nichts im Wege.
Der private Schlüssel sollte an einem ebenfalls sicheren Ort
gut aufbewahrt werden.</p>
<!-- vim: set spell spelllang=de_de: -->resize & watermark your imagestag:christoph-polcin.com,2013-01-31:/2013/01/31/resize-and-watermark-your-images2013-01-31T21:45:00ZChristophhttps://christoph-polcin.com/first-name@family-name.de<p>If You looking for a smart gui-less way to resize and watermark your images then
try out <a href="http://www.imagemagick.org/script/index.php">ImageMagick</a>. Use the following shell script to wrap and simplify the call.
Copy it into your <code>~/bin</code> folder an adjust the variables at the top.
Execute it with a source image and destination path as arguments.</p>
<p>Some helpful hints:</p>
<ul>
<li>To get a list of available fonts use:<br />
<code>convert -list font</code></li>
<li>For details and tweaks visit <a href="http://www.imagemagick.org/script/index.php">ImageMagick</a></li>
<li>For batch processing images use this snippet (sh):<br />
<code>mkdir foo && for i in *.jpg; do downscale "$i" "foo/$i"; done</code></li>
</ul>
<p>Copy to <code>~/bin/downscale</code></p>
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><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</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="ch">#!/bin/sh</span>
<span class="c1"># www.christoph-polcin.com</span>
<span class="o">[</span> <span class="nv">$#</span> !<span class="o">=</span> <span class="s2">"2"</span> <span class="o">]</span> <span class="o">&&</span> <span class="se">\</span>
<span class="nb">echo</span> <span class="s2">"usage: downscale <source> <destination>"</span> <span class="o">&&</span> <span class="nb">exit</span> <span class="m">1</span>
<span class="nv">WATERMARK</span><span class="o">=</span><span class="s1">'WWW.CHRISTOPH-POLCIN.COM'</span>
<span class="c1"># get from http://fontzone.net/font-details/Agency+FB/</span>
<span class="nv">FONT</span><span class="o">=</span><span class="s1">'AgencyFB-Bold'</span>
<span class="c1"># get from http://www.fontsquirrel.com/fonts/download/roboto</span>
<span class="c1">#FONT='Roboto-Thin'</span>
<span class="nv">FONTSIZE</span><span class="o">=</span><span class="m">72</span>
<span class="nv">COLOR</span><span class="o">=</span><span class="s1">'#999999AA'</span>
<span class="nv">MAX_W</span><span class="o">=</span><span class="m">1280</span>
<span class="nv">MAX_H</span><span class="o">=</span><span class="m">896</span>
<span class="nv">QUALITY</span><span class="o">=</span><span class="m">85</span>
<span class="nb">echo</span> <span class="s2">"converting </span><span class="nv">$1</span><span class="s2">"</span>
convert <span class="se">\</span>
-flatten <span class="se">\</span>
-alpha On <span class="se">\</span>
-font <span class="nv">$FONT</span> <span class="se">\</span>
-pointsize <span class="nv">$FONTSIZE</span> <span class="se">\</span>
-fill <span class="nv">$COLOR</span> <span class="se">\</span>
-gravity NorthEast -annotate +60+20 <span class="s2">"</span><span class="si">${</span><span class="nv">WATERMARK</span><span class="si">}</span><span class="s2">"</span> <span class="se">\</span>
-gravity SouthWest -annotate +60+20 <span class="s2">"</span><span class="si">${</span><span class="nv">WATERMARK</span><span class="si">}</span><span class="s2">"</span> <span class="se">\</span>
-resize <span class="s2">"</span><span class="si">${</span><span class="nv">MAX_W</span><span class="si">}</span><span class="s2">x</span><span class="si">${</span><span class="nv">MAX_H</span><span class="si">}</span><span class="s2">>"</span> <span class="se">\</span>
-quality <span class="nv">$QUALITY</span> <span class="se">\</span>
<span class="s2">"</span><span class="nv">$1</span><span class="s2">"</span> <span class="s2">"</span><span class="nv">$2</span><span class="s2">"</span>
</pre></div>
</td></tr></table>Uberspace Und Dein Firefox Sync Servertag:christoph-polcin.com,2012-12-31:/2012/12/31/firefox-minimal-weave-auf-uberspace2012-12-31T20:58:00ZChristophhttps://christoph-polcin.com/first-name@family-name.de<p>Für Alle die auf Ihrem <a href="https://uberspace.de" title="Uberspace.de ist deine Plattform für den Betrieb von Websites und Mail.">uberspace</a> einen eigenen <a href="https://github.com/posativ/weave-minimal" title="lightweight firefox weave/sync server">minimalen Firefox Sync Server</a> früher <a href="https://wiki.mozilla.org/Firefox_Sync" title="Mozilla Firefox Sync Wiki">Weave Server</a> betreiben wollen, gibt es hier eine kurze Anleitung.
<!-- break --></p>
<p>Hilfreiche Informationen findet Ihr unter:</p>
<ul>
<li><a href="http://uberspace.de/dokuwiki/development:python">Uberspace:Wiki:Development:Python</a></li>
<li><a href="http://uberspace.de/dokuwiki/system:daemontools">Uberspace:Wiki:System:Daemontools</a></li>
<li><a href="http://simononsoftware.com/virtualenv-tutorial/">Pyton Virutalenv Tutorial</a></li>
</ul>
<h4>Und so geht's, <code><XXX></code> anpassen</h4>
<!-- language: lang-sh -->
<div class="highlight"><pre><span></span>mkdir -p ~/bin ~/lib/python2.7
easy_install-2.7 -U pip
pip install virtualenv
virtualenv ~/venv/weave-minimal
source ~/venv/weave-minimal/bin/activate
pip install https://github.com/posativ/weave-minimal/tarball/master
deactivate
ln -s ~/venv/weave-minimal/bin/weave-minimal ~/bin/weave-minimal
mkdir ~/.weave-data
chmod 700 ~/.weave-data
uberspace-setup-svscan
mkdir ~/etc/run-weave-minimal
# checkt die weave-minimal Argumente eurer verwendeten Version
# ggf. anpassen
cat <<__EOF__ > ~/etc/run-weave-minimal/run
#!/bin/sh
exec ~/bin/weave-minimal \
--data-dir=~/.weave-data \
--prefix=/ \
--port <PORT> \
--enable-registration 2>&1
__EOF__
chmod 700 -R ~/etc/run-weave-minimal/
ln -s ~/etc/run-weave-minimal ~/service/weave-minimal
# Verzeichnis zuvor anlegen
cat <<__EOF__ > /var/www/virtual/<USER>/<SUBDOMAIN>.<DOMAIN>/.htaccess
RewriteEngine On
RewriteRule (.*) http://localhost:<PORT>/$1 [P]
__EOF__
# Dienst starten
svc -u service/weave-minimal
</pre></div>
<p><strong>Firefox starten</strong> und <code>https://<SUBDOMAIN>.<DOMAIN>.<TLD>/</code> ansurfen, Zertifikat akzeptieren, Firefox Sync einrichten unter Verwendung der eigenen URI.</p>
<h4>Um die Registrierung für weitere Nutzer zu deaktivieren</h4>
<!-- language: lang-sh -->
<div class="highlight"><pre><span></span>svc -d service/weave-minimal
$EDITOR service/weave-minimal/run
# und --enable-registration entfernen
svc -u service/weave-minimal
</pre></div>
<h4>Updates, Updates, Updates</h4>
<!-- language: lang-sh -->
<div class="highlight"><pre><span></span>svc -d service/weave-minimal
source ~/venv/weave-minimal/bin/activate
pip install -U https://github.com/posativ/weave-minimal/tarball/master
deactivate
svc -u service/weave-minimal
</pre></div>
<p>Ist schon eine tolle sache! Vielen Dank an <a href="http://posativ.org/">posativ</a> und <a href="https://uberspace.de" title="Uberspace.de ist deine Plattform für den Betrieb von Websites und Mail.">Uberspace</a>!!<br />
In diesem Sinne einen Guten Rutsch!</p>Wolves In The Throne Room & Harey Milktag:christoph-polcin.com,2012-06-05:/2012/06/05/wolves-in-the-throne-room-and-harvey-milk2012-06-05T21:59:00ZChristophhttps://christoph-polcin.com/first-name@family-name.de<p><a href="http://www.wittr.com/">Wolves In The Throne Room</a> & <a href="http://www.harveymilktheband.com/">Harvey Milk</a>
im <a href="http://www.utconnewitz.de/">UT Connewitz</a>
<!-- break --></p>
<figure class="gallery">
<a href="https://christoph-polcin.com/images/shots/2012-wolves_in_the_throne_room-harvey_milk/00-harvey_milk.jpg" class="thumb first ">
<img src="https://christoph-polcin.com/images/shots/2012-wolves_in_the_throne_room-harvey_milk/thumbs/00-harvey_milk.jpg" alt="00-harvey_milk.jpg"/>
</a><a href="https://christoph-polcin.com/images/shots/2012-wolves_in_the_throne_room-harvey_milk/01-harvey_milk.jpg" class="thumb ">
<img src="https://christoph-polcin.com/images/shots/2012-wolves_in_the_throne_room-harvey_milk/thumbs/01-harvey_milk.jpg" alt="01-harvey_milk.jpg"/>
</a><a href="https://christoph-polcin.com/images/shots/2012-wolves_in_the_throne_room-harvey_milk/02-harvey_milk.jpg" class="thumb ">
<img src="https://christoph-polcin.com/images/shots/2012-wolves_in_the_throne_room-harvey_milk/thumbs/02-harvey_milk.jpg" alt="02-harvey_milk.jpg"/>
</a><a href="https://christoph-polcin.com/images/shots/2012-wolves_in_the_throne_room-harvey_milk/03-wolves_in_the_throne_room.jpg" class="thumb ">
<img src="https://christoph-polcin.com/images/shots/2012-wolves_in_the_throne_room-harvey_milk/thumbs/03-wolves_in_the_throne_room.jpg" alt="03-wolves_in_the_throne_room.jpg"/>
</a><a href="https://christoph-polcin.com/images/shots/2012-wolves_in_the_throne_room-harvey_milk/04-wolves_in_the_throne_room.jpg" class="thumb ">
<img src="https://christoph-polcin.com/images/shots/2012-wolves_in_the_throne_room-harvey_milk/thumbs/04-wolves_in_the_throne_room.jpg" alt="04-wolves_in_the_throne_room.jpg"/>
</a><a href="https://christoph-polcin.com/images/shots/2012-wolves_in_the_throne_room-harvey_milk/05-wolves_in_the_throne_room.jpg" class="thumb last">
<img src="https://christoph-polcin.com/images/shots/2012-wolves_in_the_throne_room-harvey_milk/thumbs/05-wolves_in_the_throne_room.jpg" alt="05-wolves_in_the_throne_room.jpg"/>
</a>
</figure>