Christoph http://christoph-polcin.com/ first-name@family-name.de Christoph Polcin tag:christoph-polcin.com,2011-06-11:/atom/ http://christoph-polcin.com/favicon.ico http://christoph-polcin.com/feed-logo.png 2015-03-19T10:00:00Z acrylamid Chemnitzer Linux-Tage 2015 mit Gentoo tag:christoph-polcin.com,2015-03-19:/2015/03/19/chemnitzer-linux-tage-2015-mit-gentoo-linux 2015-03-19T10:00:00Z Christoph http://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 script tag:christoph-polcin.com,2014-10-05:/2014/10/05/pdf-attatch-files-script 2014-10-05T14:40:00Z Christoph http://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 class="c">#!/bin/sh</span> <span class="c"># http://christoph-polcin.com/</span> <span class="nv">TMP</span><span class="o">=</span>/tmp <span class="o">[</span> <span class="nv">$# </span>-lt 1 <span class="o">]</span> <span class="o">&amp;&amp;</span> <span class="se">\</span> <span class="nb">echo</span> <span class="s2">&quot;usage: $(basename $0) input_file [output.pdf]&quot;</span> <span class="o">&amp;&amp;</span> <span class="se">\</span> <span class="nb">exit </span>1 <span class="o">[</span> ! -f <span class="s2">&quot;$1&quot;</span> <span class="o">]</span> <span class="o">&amp;&amp;</span> <span class="se">\</span> <span class="nb">echo</span> <span class="s2">&quot;input file not found: $1&quot;</span> <span class="o">&amp;&amp;</span> <span class="se">\</span> <span class="nb">exit </span>1 <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">&quot;$IN&quot;</span> | sed <span class="s1">&#39;s/\.[^\.]*$//&#39;</span><span class="k">)</span> <span class="k">if</span> <span class="o">[</span> <span class="nv">$# </span>-gt 1 <span class="o">]</span>; <span class="k">then</span> <span class="k"> </span><span class="nv">OUT</span><span class="o">=</span><span class="nv">$2</span> <span class="k">else</span> <span class="k"> </span><span class="nv">OUT</span><span class="o">=</span>./<span class="k">${</span><span class="nv">NAME</span><span class="k">}</span>.pdf <span class="k">fi</span> <span class="o">[</span> -e <span class="s2">&quot;$OUT&quot;</span> <span class="o">]</span> <span class="o">&amp;&amp;</span> <span class="se">\</span> <span class="nb">echo</span> <span class="s2">&quot;output already exists: $OUT&quot;</span> <span class="o">&amp;&amp;</span> <span class="se">\</span> <span class="nb">exit </span>1 <span class="k">if </span>which libreoffice &gt;/dev/null; <span class="k">then</span> <span class="k"> </span><span class="nv">CONVERTER</span><span class="o">=</span>libreoffice <span class="k">else</span> <span class="k"> </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">&quot;$IN&quot;</span> | sed <span class="s1">&#39;s/^.*\.//;s/.*/\L&amp;/&#39;</span><span class="k">)</span> <span class="k">case</span> <span class="s2">&quot;$EXT&quot;</span> in pdf<span class="o">)</span> <span class="nb">echo</span> <span class="s2">&quot;inputfile is already a pdf: $IN&quot;</span> <span class="nb">exit </span>1 ;; docx|rtf|txt<span class="o">)</span> <span class="nv">$CONVERTER</span> --convert-to odt --headless --outdir <span class="k">${</span><span class="nv">TMP</span><span class="k">}</span> <span class="s2">&quot;$IN&quot;</span> <span class="nv">IN</span><span class="o">=</span><span class="k">${</span><span class="nv">TMP</span><span class="k">}</span>/<span class="k">${</span><span class="nv">NAME</span><span class="k">}</span>.odt ;; *<span class="o">)</span> ;; <span class="k">esac</span>; <span class="nv">$CONVERTER</span> --convert-to pdf --headless --outdir <span class="k">${</span><span class="nv">TMP</span><span class="k">}</span> <span class="s2">&quot;$IN&quot;</span> pdftk <span class="s2">&quot;${TMP}/${NAME}.pdf&quot;</span> <span class="se">\</span> attach_files <span class="s2">&quot;$IN&quot;</span> topage end <span class="se">\</span> output <span class="s2">&quot;$OUT&quot;</span> rm -f <span class="s2">&quot;${TMP}/${NAME}.pdf&quot;</span> <span class="nb">echo </span>output: <span class="k">${</span><span class="nv">OUT</span><span class="k">}</span> </pre></div> </td></tr></table> My Libreoffice Concatenate Cells Macro tag:christoph-polcin.com,2014-09-30:/2014/09/30/libreoffice-concatenate-cells-macro 2014-09-30T17:40:00Z Christoph http://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 &gt; Macros &gt; Organize Macros &gt; 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 class="n">REM</span> <span class="o">*****</span> <span class="n">BASIC</span> <span class="o">*****</span> <span class="n">Sub</span> <span class="n">Main</span> <span class="n">End</span> <span class="n">Sub</span> <span class="n">Function</span> <span class="n">MyConcat</span><span class="p">(</span><span class="n">arr</span><span class="p">(),</span> <span class="n">Optional</span> <span class="n">sep</span> <span class="n">as</span> <span class="n">String</span><span class="p">)</span> <span class="n">as</span> <span class="n">String</span> <span class="n">Dim</span> <span class="n">i</span> <span class="n">as</span> <span class="n">String</span> <span class="n">Dim</span> <span class="n">r</span> <span class="n">as</span> <span class="n">String</span> <span class="n">Dim</span> <span class="n">s</span> <span class="n">as</span> <span class="n">String</span> <span class="n">If</span> <span class="n">Not</span> <span class="n">IsMissing</span> <span class="p">(</span><span class="n">sep</span><span class="p">)</span> <span class="n">Then</span> <span class="n">s</span> <span class="o">=</span> <span class="n">sep</span> <span class="n">Else</span> <span class="n">s</span> <span class="o">=</span> <span class="s">&quot;, &quot;</span> <span class="n">EndIf</span> <span class="n">r</span> <span class="o">=</span> <span class="s">&quot;&quot;</span> <span class="n">For</span> <span class="n">Each</span> <span class="n">i</span> <span class="n">In</span> <span class="n">arr</span><span class="p">()</span> <span class="n">If</span> <span class="n">i</span> <span class="o">&lt;&gt;</span> <span class="s">&quot;&quot;</span> <span class="n">Then</span> <span class="n">r</span> <span class="o">=</span> <span class="n">r</span> <span class="o">&amp;</span> <span class="n">i</span> <span class="o">&amp;</span> <span class="n">s</span> <span class="n">EndIf</span> <span class="n">Next</span> <span class="n">i</span> <span class="n">If</span> <span class="n">Len</span><span class="p">(</span><span class="n">r</span><span class="p">)</span> <span class="o">&gt;</span> <span class="n">Len</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="n">Then</span> <span class="n">r</span> <span class="o">=</span> <span class="n">Left</span><span class="p">(</span><span class="n">r</span><span class="p">,</span> <span class="n">Len</span><span class="p">(</span><span class="n">r</span><span class="p">)</span><span class="o">-</span><span class="n">Len</span><span class="p">(</span><span class="n">s</span><span class="p">))</span> <span class="n">EndIf</span> <span class="n">MyConcat</span> <span class="o">=</span> <span class="n">r</span> <span class="n">End</span> <span class="n">Function</span> </pre></div> WRTNode Ausgepackt tag:christoph-polcin.com,2014-09-18:/2014/09/18/wrtnode-unboxing 2014-09-18T18:01:00Z Christoph http://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="http://christoph-polcin.com/images/2014-wrtnode/00-wrtnode.jpg" class="thumb first "> <img src="http://christoph-polcin.com/images/2014-wrtnode/thumbs/00-wrtnode.jpg" alt="00-wrtnode.jpg"/> </a><a href="http://christoph-polcin.com/images/2014-wrtnode/01-wrtnode.jpg" class="thumb "> <img src="http://christoph-polcin.com/images/2014-wrtnode/thumbs/01-wrtnode.jpg" alt="01-wrtnode.jpg"/> </a><a href="http://christoph-polcin.com/images/2014-wrtnode/02-wrtnode.jpg" class="thumb last"> <img src="http://christoph-polcin.com/images/2014-wrtnode/thumbs/02-wrtnode.jpg" alt="02-wrtnode.jpg"/> </a> </figure> DIY Kinderherd tag:christoph-polcin.com,2014-09-13:/2014/09/13/diy-kinderherd 2014-09-13T16:25:00Z Christoph http://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="http://christoph-polcin.com/images/2014-diy-kinderherd/00-diy-kinderherd.jpg" class="thumb first "> <img src="http://christoph-polcin.com/images/2014-diy-kinderherd/thumbs/00-diy-kinderherd.jpg" alt="00-diy-kinderherd.jpg"/> </a><a href="http://christoph-polcin.com/images/2014-diy-kinderherd/01-diy-kinderherd.jpg" class="thumb "> <img src="http://christoph-polcin.com/images/2014-diy-kinderherd/thumbs/01-diy-kinderherd.jpg" alt="01-diy-kinderherd.jpg"/> </a><a href="http://christoph-polcin.com/images/2014-diy-kinderherd/02-diy-kinderherd.jpg" class="thumb last"> <img src="http://christoph-polcin.com/images/2014-diy-kinderherd/thumbs/02-diy-kinderherd.jpg" alt="02-diy-kinderherd.jpg"/> </a> </figure> Fluff Fest 2014 tag:christoph-polcin.com,2014-07-27:/2014/07/27/fluff-fest-2014 2014-07-27T22:59:00Z Christoph http://christoph-polcin.com/ first-name@family-name.de <figure class="gallery"> <a href="http://christoph-polcin.com/images/2014-fluff-fest/00-laa-aeroklub-rokycany.jpg" class="thumb first "> <img src="http://christoph-polcin.com/images/2014-fluff-fest/thumbs/00-laa-aeroklub-rokycany.jpg" alt="00-laa-aeroklub-rokycany.jpg"/> </a><a href="http://christoph-polcin.com/images/2014-fluff-fest/01-vestiges.jpg" class="thumb "> <img src="http://christoph-polcin.com/images/2014-fluff-fest/thumbs/01-vestiges.jpg" alt="01-vestiges.jpg"/> </a><a href="http://christoph-polcin.com/images/2014-fluff-fest/02-lawine.jpg" class="thumb last"> <img src="http://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 Milch tag:christoph-polcin.com,2014-05-25:/2014/05/25/sag-nein-zu-milch 2014-05-25T22:55:00Z Christoph http://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="http://christoph-polcin.com/images/2014/sag-nein-zu-milch.jpg" title="Sag NEIN zu Milch Aktion"/></a></p> Sieg der Vernunft tag:christoph-polcin.com,2014-04-27:/2014/04/27/sa-und-so-rennrad-verboten 2014-04-27T21:00:00Z Christoph http://christoph-polcin.com/ first-name@family-name.de <p><img alt="Rennrad verboten" src="http://christoph-polcin.com/images/2014/sa-so-rennrad-verboten.jpg" title="Sa + So Rennrad verboten"/></p> Offene Standards tag:christoph-polcin.com,2014-03-26:/2014/03/26/document-freedom-day 2014-03-25T23:01:00Z Christoph http://christoph-polcin.com/ first-name@family-name.de <p><a href="http://documentfreedom.org/" title="Document Freedom Day"><img alt="#DOCUMENT FREEDOM DAY" src="http://christoph-polcin.com/images/2014/2014-03-26-we-cannot-read-your-documents.png" title="#DOCUMENT FREEDOM DAY"/></a></p> Chemnitzer Linux-Tage mit Gentoo tag:christoph-polcin.com,2014-03-21:/2014/03/21/chemnitzer-linux-tage-mit-gentoo-linux 2014-03-21T09:15:00Z Christoph http://christoph-polcin.com/ first-name@family-name.de <p>Die Chemnitzer Linux-Tage (am 15. &amp; 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 &amp; 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 &amp; 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="http://christoph-polcin.com/images/2014-gentoo-clt/01-gentoo-stand-clt-2014.jpg" class="thumb first "> <img src="http://christoph-polcin.com/images/2014-gentoo-clt/thumbs/01-gentoo-stand-clt-2014.jpg" alt="01-gentoo-stand-clt-2014.jpg"/> </a><a href="http://christoph-polcin.com/images/2014-gentoo-clt/02-gentoo-arm-still-compiling.jpg" class="thumb "> <img src="http://christoph-polcin.com/images/2014-gentoo-clt/thumbs/02-gentoo-arm-still-compiling.jpg" alt="02-gentoo-arm-still-compiling.jpg"/> </a><a href="http://christoph-polcin.com/images/2014-gentoo-clt/03-gentoo-uclibc-on-cubieboard2.jpg" class="thumb last"> <img src="http://christoph-polcin.com/images/2014-gentoo-clt/thumbs/03-gentoo-uclibc-on-cubieboard2.jpg" alt="03-gentoo-uclibc-on-cubieboard2.jpg"/> </a> </figure> Cool Emerge tag:christoph-polcin.com,2013-06-22:/2013/06/22/cool-emerge 2013-06-22T21:15:00Z Christoph http://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&amp;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&amp;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 class="c">#!/usr/bin/env bash</span> <span class="k">if</span> <span class="o">[[</span> <span class="k">${</span><span class="nv">EBUILD_PHASE</span><span class="k">}</span> <span class="o">==</span> <span class="s2">&quot;setup&quot;</span> <span class="o">]]</span>; <span class="k">then</span> <span class="k"> </span><span class="nb">echo </span>level full-speed &gt; /proc/acpi/ibm/fan <span class="k">fi</span> <span class="k">if</span> <span class="o">[[</span> <span class="k">${</span><span class="nv">EBUILD_PHASE</span><span class="k">}</span> <span class="o">==</span> <span class="s2">&quot;preinst&quot;</span> <span class="o">]]</span>; <span class="k">then</span> <span class="k"> </span><span class="nb">echo </span>level auto &gt; /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-Keyring tag:christoph-polcin.com,2013-03-30:/2013/03/30/my-easter-hack-ssh-keyring 2013-03-30T21:15:00Z Christoph http://christoph-polcin.com/ first-name@family-name.de <p><a href="https://git.christoph-polcin.com/ssh-keyring/"><img alt="#SSH-Keyring" src="http://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 Kopflos tag:christoph-polcin.com,2013-03-29:/2013/03/29/headless-cardinal 2013-03-29T19:15:00Z Christoph http://christoph-polcin.com/ first-name@family-name.de <figure class="gallery"> <a href="http://christoph-polcin.com/images/food/2013-headless-cardinal/cardinal-00.jpg" class="thumb first "> <img src="http://christoph-polcin.com/images/food/2013-headless-cardinal/thumbs/cardinal-00.jpg" alt="cardinal-00.jpg"/> </a><a href="http://christoph-polcin.com/images/food/2013-headless-cardinal/cardinal-01.jpg" class="thumb "> <img src="http://christoph-polcin.com/images/food/2013-headless-cardinal/thumbs/cardinal-01.jpg" alt="cardinal-01.jpg"/> </a><a href="http://christoph-polcin.com/images/food/2013-headless-cardinal/cardinal-02.jpg" class="thumb last"> <img src="http://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 &amp; lecker!</p> Doom Over Leipzig tag:christoph-polcin.com,2013-03-23:/2013/03/23/doom-over-leipzig-2013 2013-03-23T19:00:00Z Christoph http://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="http://christoph-polcin.com/images/shots/2013-doom-over-leipzig/00-zatokrev.jpg" class="thumb first "> <img src="http://christoph-polcin.com/images/shots/2013-doom-over-leipzig/thumbs/00-zatokrev.jpg" alt="00-zatokrev.jpg"/> </a><a href="http://christoph-polcin.com/images/shots/2013-doom-over-leipzig/01-zatokrev.jpg" class="thumb "> <img src="http://christoph-polcin.com/images/shots/2013-doom-over-leipzig/thumbs/01-zatokrev.jpg" alt="01-zatokrev.jpg"/> </a><a href="http://christoph-polcin.com/images/shots/2013-doom-over-leipzig/02-zatokrev.jpg" class="thumb "> <img src="http://christoph-polcin.com/images/shots/2013-doom-over-leipzig/thumbs/02-zatokrev.jpg" alt="02-zatokrev.jpg"/> </a><a href="http://christoph-polcin.com/images/shots/2013-doom-over-leipzig/03-lento.jpg" class="thumb "> <img src="http://christoph-polcin.com/images/shots/2013-doom-over-leipzig/thumbs/03-lento.jpg" alt="03-lento.jpg"/> </a><a href="http://christoph-polcin.com/images/shots/2013-doom-over-leipzig/04-lento.jpg" class="thumb "> <img src="http://christoph-polcin.com/images/shots/2013-doom-over-leipzig/thumbs/04-lento.jpg" alt="04-lento.jpg"/> </a><a href="http://christoph-polcin.com/images/shots/2013-doom-over-leipzig/05-lento.jpg" class="thumb "> <img src="http://christoph-polcin.com/images/shots/2013-doom-over-leipzig/thumbs/05-lento.jpg" alt="05-lento.jpg"/> </a><a href="http://christoph-polcin.com/images/shots/2013-doom-over-leipzig/06-heirs.jpg" class="thumb "> <img src="http://christoph-polcin.com/images/shots/2013-doom-over-leipzig/thumbs/06-heirs.jpg" alt="06-heirs.jpg"/> </a><a href="http://christoph-polcin.com/images/shots/2013-doom-over-leipzig/07-heirs.jpg" class="thumb "> <img src="http://christoph-polcin.com/images/shots/2013-doom-over-leipzig/thumbs/07-heirs.jpg" alt="07-heirs.jpg"/> </a><a href="http://christoph-polcin.com/images/shots/2013-doom-over-leipzig/08-heirs.jpg" class="thumb last"> <img src="http://christoph-polcin.com/images/shots/2013-doom-over-leipzig/thumbs/08-heirs.jpg" alt="08-heirs.jpg"/> </a> </figure> EARTHSHIP & PLANKS & OBELYSKKH tag:christoph-polcin.com,2013-02-15:/2013/02/15/obelyskkh+planks+earthship 2013-02-15T19:00:00Z Christoph http://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="http://christoph-polcin.com/images/shots/2013-south-of-mainstream/9328-earthship-0.jpg" class="thumb first "> <img src="http://christoph-polcin.com/images/shots/2013-south-of-mainstream/thumbs/9328-earthship-0.jpg" alt="9328-earthship-0.jpg"/> </a><a href="http://christoph-polcin.com/images/shots/2013-south-of-mainstream/9347-earthship-1.jpg" class="thumb "> <img src="http://christoph-polcin.com/images/shots/2013-south-of-mainstream/thumbs/9347-earthship-1.jpg" alt="9347-earthship-1.jpg"/> </a><a href="http://christoph-polcin.com/images/shots/2013-south-of-mainstream/9375-planks-0.jpg" class="thumb "> <img src="http://christoph-polcin.com/images/shots/2013-south-of-mainstream/thumbs/9375-planks-0.jpg" alt="9375-planks-0.jpg"/> </a><a href="http://christoph-polcin.com/images/shots/2013-south-of-mainstream/9403-planks-1.jpg" class="thumb "> <img src="http://christoph-polcin.com/images/shots/2013-south-of-mainstream/thumbs/9403-planks-1.jpg" alt="9403-planks-1.jpg"/> </a><a href="http://christoph-polcin.com/images/shots/2013-south-of-mainstream/9421-obelyskkh-0.jpg" class="thumb "> <img src="http://christoph-polcin.com/images/shots/2013-south-of-mainstream/thumbs/9421-obelyskkh-0.jpg" alt="9421-obelyskkh-0.jpg"/> </a><a href="http://christoph-polcin.com/images/shots/2013-south-of-mainstream/9440-obelyskkh-1.jpg" class="thumb last"> <img src="http://christoph-polcin.com/images/shots/2013-south-of-mainstream/thumbs/9440-obelyskkh-1.jpg" alt="9440-obelyskkh-1.jpg"/> </a> </figure> I Love Free Software tag:christoph-polcin.com,2013-02-14:/2013/02/14/i-love-free-software 2013-02-13T23:01:00Z Christoph http://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="http://christoph-polcin.com/images/2013/02-14-ilovefs.png" title="#I LOVE FREE SOFTWARE"/></a></p> Ein Certificate Signing Request mit OpenSSL erstellen tag:christoph-polcin.com,2013-02-09:/2013/02/09/certificate-signing-request-mit-openssl-erstellen 2013-02-09T01:16:00Z Christoph http://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 class="n">openssl</span> <span class="n">req</span> <span class="o">-</span><span class="n">nodes</span> <span class="o">-</span><span class="n">new</span> \ <span class="o">-</span><span class="n">newkey</span> <span class="n">rsa</span><span class="o">:</span><span class="mi">4096</span> <span class="o">-</span><span class="n">keyout</span> <span class="n">domain</span><span class="p">.</span><span class="n">tld</span><span class="p">.</span><span class="n">key</span> \ <span class="o">-</span><span class="n">out</span> <span class="n">donain</span><span class="p">.</span><span class="n">tld</span><span class="p">.</span><span class="n">csr</span> </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 class="n">curl</span> <span class="n">https</span><span class="o">:</span><span class="c1">//www.cacert.org/certs/root.crt -o CACert_root.crt</span> <span class="n">curl</span> <span class="n">https</span><span class="o">:</span><span class="c1">//www.cacert.org/certs/class3.crt -o CACert_class3.crt</span> <span class="n">openssl</span> <span class="n">verify</span> <span class="o">-</span><span class="n">CAfile</span> <span class="n">CACert_root</span><span class="p">.</span><span class="n">crt</span> \ <span class="o">-</span><span class="n">untrusted</span> <span class="n">CACert_class3</span><span class="p">.</span><span class="n">crt</span> \ <span class="n">domain</span><span class="p">.</span><span class="n">tld</span><span class="p">.</span><span class="n">crt</span> </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 class="n">openssl</span> <span class="n">x509</span> <span class="o">-</span><span class="n">req</span> <span class="o">-</span><span class="n">days</span> <span class="mi">365</span> \ <span class="o">-</span><span class="n">in</span> <span class="n">domain</span><span class="p">.</span><span class="n">tld</span><span class="p">.</span><span class="n">csr</span> \ <span class="o">-</span><span class="n">signkey</span> <span class="n">domain</span><span class="p">.</span><span class="n">tld</span><span class="p">.</span><span class="n">key</span> \ <span class="o">-</span><span class="n">out</span> <span class="n">domain</span><span class="p">.</span><span class="n">tldcrt</span> </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 class="n">openssl</span> <span class="n">rsa</span> <span class="o">-</span><span class="n">in</span> <span class="n">domain</span><span class="p">.</span><span class="n">tld</span><span class="p">.</span><span class="n">key</span> <span class="o">-</span><span class="n">out</span> <span class="n">domain</span><span class="p">.</span><span class="n">tld</span><span class="p">.</span><span class="n">key</span><span class="p">.</span><span class="n">decrypt</span> </pre></div> <p>Die Konfiguration des Webservers muss wie folgt angepasst werden:</p> <div class="highlight"><pre><span class="nt">&lt;VirtualHost</span> <span class="err">_default_:443</span><span class="nt">&gt;</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">&lt;/VirtualHost&gt;</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 images tag:christoph-polcin.com,2013-01-31:/2013/01/31/resize-and-watermark-your-images 2013-01-31T22:45:00Z Christoph http://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 &amp;&amp; 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 class="c">#!/bin/sh</span> <span class="c"># www.christoph-polcin.com</span> <span class="o">[</span> <span class="nv">$# </span>!<span class="o">=</span> <span class="s2">&quot;2&quot;</span> <span class="o">]</span> <span class="o">&amp;&amp;</span> <span class="se">\</span> <span class="nb">echo</span> <span class="s2">&quot;usage: downscale &lt;source&gt; &lt;destination&gt;&quot;</span> <span class="o">&amp;&amp;</span> <span class="nb">exit </span>1 <span class="nv">WATERMARK</span><span class="o">=</span><span class="s1">&#39;WWW.CHRISTOPH-POLCIN.COM&#39;</span> <span class="c"># get from http://fontzone.net/font-details/Agency+FB/</span> <span class="nv">FONT</span><span class="o">=</span><span class="s1">&#39;AgencyFB-Bold&#39;</span> <span class="c"># get from http://www.fontsquirrel.com/fonts/download/roboto</span> <span class="c">#FONT=&#39;Roboto-Thin&#39;</span> <span class="nv">FONTSIZE</span><span class="o">=</span>72 <span class="nv">COLOR</span><span class="o">=</span><span class="s1">&#39;#999999AA&#39;</span> <span class="nv">MAX_W</span><span class="o">=</span>1280 <span class="nv">MAX_H</span><span class="o">=</span>896 <span class="nv">QUALITY</span><span class="o">=</span>85 <span class="nb">echo</span> <span class="s2">&quot;converting $1&quot;</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">&quot;${WATERMARK}&quot;</span> <span class="se">\</span> -gravity SouthWest -annotate +60+20 <span class="s2">&quot;${WATERMARK}&quot;</span> <span class="se">\</span> -resize <span class="s2">&quot;${MAX_W}x${MAX_H}&gt;&quot;</span> <span class="se">\</span> -quality <span class="nv">$QUALITY</span> <span class="se">\</span> <span class="s2">&quot;$1&quot;</span> <span class="s2">&quot;$2&quot;</span> </pre></div> </td></tr></table> Uberspace Und Dein Firefox Sync Server tag:christoph-polcin.com,2012-12-31:/2012/12/31/firefox-minimal-weave-auf-uberspace 2012-12-31T21:58:00Z Christoph http://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>&lt;XXX&gt;</code> anpassen</h4> <!-- language: lang-sh --> <div class="highlight"><pre><span class="nx">mkdir</span> <span class="na">-p</span> <span class="err">~</span><span class="p">/</span><span class="nx">bin</span> <span class="err">~</span><span class="p">/</span><span class="nx">lib</span><span class="p">/</span><span class="nx">python2.7</span> <span class="nx">easy_install</span><span class="o">-</span><span class="mf">2.7</span> <span class="na">-U</span> <span class="nx">pip</span> <span class="nx">pip</span> <span class="nb">install</span> <span class="nx">virtualenv</span> <span class="nx">virtualenv</span> <span class="err">~</span><span class="p">/</span><span class="nx">venv</span><span class="p">/</span><span class="nx">weave</span><span class="na">-minimal</span> <span class="nb">source</span> <span class="err">~</span><span class="p">/</span><span class="nx">venv</span><span class="p">/</span><span class="nx">weave</span><span class="na">-minimal</span><span class="p">/</span><span class="nx">bin</span><span class="p">/</span><span class="nx">activate</span> <span class="nx">pip</span> <span class="nb">install</span> <span class="nx">https</span><span class="p">:</span><span class="c1">//github.com/posativ/weave-minimal/tarball/master</span> <span class="nx">deactivate</span> <span class="nx">ln</span> <span class="na">-s</span> <span class="err">~</span><span class="p">/</span><span class="nx">venv</span><span class="p">/</span><span class="nx">weave</span><span class="na">-minimal</span><span class="p">/</span><span class="nx">bin</span><span class="p">/</span><span class="nx">weave</span><span class="na">-minimal</span> <span class="err">~</span><span class="p">/</span><span class="nx">bin</span><span class="p">/</span><span class="nx">weave</span><span class="na">-minimal</span> <span class="nx">mkdir</span> <span class="err">~</span><span class="p">/</span><span class="nx">.weave</span><span class="na">-data</span> <span class="nb">chmod</span> <span class="mi">700</span> <span class="err">~</span><span class="p">/</span><span class="nx">.weave</span><span class="na">-data</span> <span class="nx">uberspace</span><span class="na">-setup-svscan</span> <span class="nx">mkdir</span> <span class="err">~</span><span class="p">/</span><span class="nx">etc</span><span class="p">/</span><span class="nb">run</span><span class="na">-weave-minimal</span> <span class="err">#</span> <span class="nx">checkt</span> <span class="nx">die</span> <span class="nx">weave</span><span class="na">-minimal</span> <span class="nx">Argumente</span> <span class="nx">eurer</span> <span class="nx">verwendeten</span> <span class="nb">Version</span> <span class="err">#</span> <span class="nx">ggf.</span> <span class="nx">anpassen</span> <span class="nx">cat</span> <span class="o">&lt;&lt;</span><span class="nx">__EOF__</span> <span class="o">&gt;</span> <span class="err">~</span><span class="p">/</span><span class="nx">etc</span><span class="p">/</span><span class="nb">run</span><span class="na">-weave-minimal</span><span class="p">/</span><span class="nb">run</span> <span class="err">#</span><span class="o">!/</span><span class="nx">bin</span><span class="p">/</span><span class="nx">sh</span> <span class="nx">exec</span> <span class="err">~</span><span class="p">/</span><span class="nx">bin</span><span class="p">/</span><span class="nx">weave</span><span class="na">-minimal</span> <span class="o">\</span> <span class="o">--</span><span class="kd">data</span><span class="na">-dir</span><span class="o">=</span><span class="err">~</span><span class="p">/</span><span class="nx">.weave</span><span class="na">-data</span> <span class="o">\</span> <span class="o">--</span><span class="n">prefix</span><span class="o">=/</span> <span class="o">\</span> <span class="o">--</span><span class="nb">port</span> <span class="o">&lt;</span><span class="nb">PORT</span><span class="o">&gt;</span> <span class="o">\</span> <span class="o">--</span><span class="nx">enable</span><span class="na">-registration</span> <span class="mi">2</span><span class="o">&gt;&amp;</span><span class="mi">1</span> <span class="nx">__EOF__</span> <span class="nb">chmod</span> <span class="mi">700</span> <span class="na">-R</span> <span class="err">~</span><span class="p">/</span><span class="nx">etc</span><span class="p">/</span><span class="nb">run</span><span class="na">-weave-minimal</span><span class="o">/</span> <span class="nx">ln</span> <span class="na">-s</span> <span class="err">~</span><span class="p">/</span><span class="nx">etc</span><span class="p">/</span><span class="nb">run</span><span class="na">-weave-minimal</span> <span class="err">~</span><span class="p">/</span><span class="nx">service</span><span class="p">/</span><span class="nx">weave</span><span class="na">-minimal</span> <span class="err">#</span> <span class="nx">Verzeichnis</span> <span class="nx">zuvor</span> <span class="nx">anlegen</span> <span class="nx">cat</span> <span class="o">&lt;&lt;</span><span class="nx">__EOF__</span> <span class="o">&gt;</span> <span class="p">/</span><span class="nb">var</span><span class="p">/</span><span class="nx">www</span><span class="p">/</span><span class="nx">virtual</span><span class="o">/&lt;</span><span class="nb">USER</span><span class="o">&gt;/&lt;</span><span class="nx">SUBDOMAIN</span><span class="o">&gt;</span><span class="nx">.</span><span class="o">&lt;</span><span class="nx">DOMAIN</span><span class="o">&gt;/</span><span class="bp">.</span><span class="nx">htaccess</span> <span class="nx">RewriteEngine</span> <span class="k">On</span> <span class="nx">RewriteRule</span> <span class="p">(</span><span class="nx">.</span><span class="o">*</span><span class="p">)</span> <span class="nx">http</span><span class="p">:</span><span class="c1">//localhost:&lt;PORT&gt;/$1 [P]</span> <span class="nx">__EOF__</span> <span class="err">#</span> <span class="nx">Dienst</span> <span class="nx">starten</span> <span class="nx">svc</span> <span class="na">-u</span> <span class="nx">service</span><span class="p">/</span><span class="nx">weave</span><span class="na">-minimal</span> </pre></div> <p><strong>Firefox starten</strong> und <code>https://&lt;SUBDOMAIN&gt;.&lt;DOMAIN&gt;.&lt;TLD&gt;/</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 class="n">svc</span> <span class="o">-</span><span class="n">d</span> <span class="n">service</span><span class="o">/</span><span class="n">weave</span><span class="o">-</span><span class="n">minimal</span> <span class="err">$</span><span class="n">EDITOR</span> <span class="n">service</span><span class="o">/</span><span class="n">weave</span><span class="o">-</span><span class="n">minimal</span><span class="o">/</span><span class="n">run</span> <span class="cp"># und --enable-registration entfernen</span> <span class="n">svc</span> <span class="o">-</span><span class="n">u</span> <span class="n">service</span><span class="o">/</span><span class="n">weave</span><span class="o">-</span><span class="n">minimal</span> </pre></div> <h4>Updates, Updates, Updates</h4> <!-- language: lang-sh --> <div class="highlight"><pre><span class="n">svc</span> <span class="o">-</span><span class="n">d</span> <span class="n">service</span><span class="o">/</span><span class="n">weave</span><span class="o">-</span><span class="n">minimal</span> <span class="n">source</span> <span class="o">~/</span><span class="n">venv</span><span class="o">/</span><span class="n">weave</span><span class="o">-</span><span class="n">minimal</span><span class="o">/</span><span class="n">bin</span><span class="o">/</span><span class="n">activate</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">-</span><span class="n">U</span> <span class="n">https</span><span class="o">:</span><span class="c1">//github.com/posativ/weave-minimal/tarball/master</span> <span class="n">deactivate</span> <span class="n">svc</span> <span class="o">-</span><span class="n">u</span> <span class="n">service</span><span class="o">/</span><span class="n">weave</span><span class="o">-</span><span class="n">minimal</span> </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 Milk tag:christoph-polcin.com,2012-06-05:/2012/06/05/wolves-in-the-throne-room-and-harvey-milk 2012-06-05T22:59:00Z Christoph http://christoph-polcin.com/ first-name@family-name.de <p><a href="http://www.wittr.com/">Wolves In The Throne Room</a> &amp; <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="http://christoph-polcin.com/images/shots/2012-wolves_in_the_throne_room-harvey_milk/00-harvey_milk.jpg" class="thumb first "> <img src="http://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="http://christoph-polcin.com/images/shots/2012-wolves_in_the_throne_room-harvey_milk/01-harvey_milk.jpg" class="thumb "> <img src="http://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="http://christoph-polcin.com/images/shots/2012-wolves_in_the_throne_room-harvey_milk/02-harvey_milk.jpg" class="thumb "> <img src="http://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="http://christoph-polcin.com/images/shots/2012-wolves_in_the_throne_room-harvey_milk/03-wolves_in_the_throne_room.jpg" class="thumb "> <img src="http://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="http://christoph-polcin.com/images/shots/2012-wolves_in_the_throne_room-harvey_milk/04-wolves_in_the_throne_room.jpg" class="thumb "> <img src="http://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="http://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="http://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> Start SSH-Agent Shell Script tag:christoph-polcin.com,2012-05-13:/2012/05/13/start-ssh-agent-shell-script 2012-05-13T08:49:00Z Christoph http://christoph-polcin.com/ first-name@family-name.de <p>a very simple <a href="http://www.funtoo.org/wiki/Keychain" title="Keychain helps you to manage ssh and GPG keys in a convenient and secure manner.">keychain</a> replacement script to manage your SSH and GPG keys. <!-- break --></p> <p>Replace <code>__USER__</code>and <code>__KEYS__</code>.</p> <!-- language: 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</pre></div></td><td class="code"><div class="highlight"><pre><span class="c">#!/bin/sh</span> <span class="c"># www.christoph-polcin.com</span> <span class="c"># absolute path to your private keys dir</span> <span class="nv">SSH_KEY_HOME</span><span class="o">=</span><span class="s2">&quot;/home/__USER__/.ssh&quot;</span> <span class="c"># private keys, space separated</span> <span class="nv">SSH_KEYS</span><span class="o">=</span><span class="s2">&quot;__KEYS__&quot;</span> <span class="nv">AGENT_FILE</span><span class="o">=</span><span class="s2">&quot;${SSH_KEY_HOME}/.ssh-agent.sh&quot;</span> <span class="o">[[</span> -e <span class="s2">&quot;$AGENT_FILE&quot;</span> <span class="o">]]</span> <span class="o">&amp;&amp;</span> <span class="nb">eval</span> <span class="sb">`</span>cat <span class="s2">&quot;$AGENT_FILE&quot;</span><span class="sb">`</span> <span class="o">[[</span> -z <span class="nv">$SSH_AGENT_PID</span> <span class="o">||</span> <span class="se">\</span> <span class="s2">&quot;$(ps x | grep &quot;</span>ssh-agent<span class="s2">&quot; | grep -c $SSH_AGENT_PID)&quot;</span> -lt <span class="s1">&#39;1&#39;</span> <span class="o">]]</span> <span class="se">\</span> <span class="o">&amp;&amp;</span> <span class="o">{</span> <span class="se">\</span> ssh-agent -s &gt; <span class="s2">&quot;$AGENT_FILE&quot;</span>; <span class="se">\</span> <span class="nb">eval</span> <span class="sb">`</span>cat <span class="s2">&quot;$AGENT_FILE&quot;</span><span class="sb">`</span>; <span class="se">\</span> <span class="k">for </span>key in <span class="nv">$SSH_KEYS</span>; <span class="k">do </span>ssh-add <span class="s2">&quot;${SSH_KEY_HOME}/${key}&quot;</span>; <span class="k">done</span>; <span class="se">\</span> <span class="o">}</span> </pre></div> </td></tr></table> Black Shape Of Nexus & beehoover tag:christoph-polcin.com,2012-04-21:/2012/04/21/black-shape-of-nexus-and-beehoover 2012-04-21T19:30:00Z Christoph http://christoph-polcin.com/ first-name@family-name.de <p><a href="http://www.blackshapeofnexus.com/">Black Shape Of Nexus (BSON)</a> &amp; <a href="http://beehoover.bandcamp.com/">beehoover</a> im <a href="http://www.dasnexus.de/" title="Das Nexus Braunschweig">Nexus</a> <!-- break --></p> <figure class="gallery"> <a href="http://christoph-polcin.com/images/shots/2012-bson-beehover/01-beehoover.jpg" class="thumb first "> <img src="http://christoph-polcin.com/images/shots/2012-bson-beehover/thumbs/01-beehoover.jpg" alt="01-beehoover.jpg"/> </a><a href="http://christoph-polcin.com/images/shots/2012-bson-beehover/02-beehoover.jpg" class="thumb "> <img src="http://christoph-polcin.com/images/shots/2012-bson-beehover/thumbs/02-beehoover.jpg" alt="02-beehoover.jpg"/> </a><a href="http://christoph-polcin.com/images/shots/2012-bson-beehover/03-beehoover.jpg" class="thumb "> <img src="http://christoph-polcin.com/images/shots/2012-bson-beehover/thumbs/03-beehoover.jpg" alt="03-beehoover.jpg"/> </a><a href="http://christoph-polcin.com/images/shots/2012-bson-beehover/04-black-shape-of-nexus.jpg" class="thumb "> <img src="http://christoph-polcin.com/images/shots/2012-bson-beehover/thumbs/04-black-shape-of-nexus.jpg" alt="04-black-shape-of-nexus.jpg"/> </a><a href="http://christoph-polcin.com/images/shots/2012-bson-beehover/05-black-shape-of-nexus.jpg" class="thumb "> <img src="http://christoph-polcin.com/images/shots/2012-bson-beehover/thumbs/05-black-shape-of-nexus.jpg" alt="05-black-shape-of-nexus.jpg"/> </a><a href="http://christoph-polcin.com/images/shots/2012-bson-beehover/06-black-shape-of-nexus.jpg" class="thumb last"> <img src="http://christoph-polcin.com/images/shots/2012-bson-beehover/thumbs/06-black-shape-of-nexus.jpg" alt="06-black-shape-of-nexus.jpg"/> </a> </figure> Change PDF Resolution tag:christoph-polcin.com,2012-04-11:/2012/04/11/change-pdf-resolution 2012-04-11T19:56:00Z Christoph http://christoph-polcin.com/ first-name@family-name.de <p>Get <a href="http://www.ghostscript.com/" title="Ghostscript Homepage">Ghostscript</a> and replace &lt;DPI&gt;</p> <div class="highlight"><pre><span class="nx">gs</span> <span class="na">-sDEVICE</span><span class="o">=</span><span class="nx">pdfwrite</span> <span class="o">\</span> <span class="na">-dCompatibilityLevel</span><span class="o">=</span><span class="mf">1.4</span> <span class="o">\</span> <span class="na">-dPDFSETTINGS</span><span class="o">=/</span><span class="nx">screen</span> <span class="o">\</span> <span class="na">-dNOPAUSE</span> <span class="na">-dQUIET</span> <span class="na">-dBATCH</span> <span class="o">\</span> <span class="na">-sOutputFile</span><span class="o">=</span><span class="nx">out.pdf</span> <span class="o">\</span> <span class="na">-r</span><span class="o">&lt;</span><span class="nx">DPI</span><span class="o">&gt;</span> <span class="o">\</span> <span class="k">in</span><span class="bp">.</span><span class="nx">pdf</span> </pre></div> Elektronische Gesundheitskarte tag:christoph-polcin.com,2012-03-20:/2012/03/20/elektronische-gesundheitskarte-nein-danke 2012-03-20T21:07:00Z Christoph http://christoph-polcin.com/ first-name@family-name.de <p>Auch meine Krankenkasse forderte ein Foto an, um mir meine neue EGK / e-Card zügig zur Verfügung zu stellen. Damit <em>ICH</em> von der ersten Stunde an profitieren kann - <strong>Nein Danke!</strong></p> <p>Es folgen ein paar lesenswerte Artikel zum Thema:</p> <ul> <li><a href="http://netzpolitik.org/2012/wie-man-keine-elektronische-gesundheitskarte-bekommt/">Wie man keine elektronische Gesundheitskarte bekommt</a>.</li> <li><a href="http://www.ccc.de/updates/2008/egk-verzoegern?language=de">Elektronische Gesundheitskarte: Bitte nicht lächeln</a>.</li> <li><a href="http://www.krankenkassen-direkt.de/news/news.pl?val=1332280529&amp;news=219640778">Anforderung biometrischer Fotos für E-Card zweifelhaft</a>.</li> <li><a href="http://stoppt-die-e-card.de/index.php?/pages/patinfo1.html">Aktion: Stoppt die e-Card!</a>.</li> <li><a href="http://www.krankenkassen-direkt.de/news/news.pl?val=1332280529&amp;news=213468556">eGK: Wie sicher sind künftig medizinische Daten.</a>.</li> <li><a href="http://www.freie-aerzteschaft.de/content/articles/1021/1223/1194/index.html?catid=1194&amp;artid=69962&amp;topid=1223&amp;nosum=1">Patientenverfügung zum Datenschutz</a>.</li> </ul> uberspace X uberspace tag:christoph-polcin.com,2012-03-12:/2012/03/12/uberspace-x-uberspace 2012-03-12T21:17:00Z Christoph http://christoph-polcin.com/ first-name@family-name.de <p>Neulich Au&szlig;erirdische entdeckt - <a href="https://uberspace.de" title="uberspace.de">uberspace.de</a> ein Web-Hosting Anbieter der anderen Art. Es folgt mein Eindruck vom Ihrem System. Ich muss sagen, dass Ganze hat mich umgehauen! Noch nie habe ich eine so konsistente und umfangreiche Konfiguration erlebt. Mit Abstand!</p> <p>Eine durchdachte <a href="https://uberspace.de/dokuwiki/philosophy:datacontrol">Datei- und Rechte</a>- sowie <a href="https://uberspace.de/dokuwiki/mail">E-Mail-Verwaltung</a>, einfach geniale Interpreter Verwaltung (<a href="https://uberspace.de/dokuwiki/development:php">PHP</a>, <a href="https://uberspace.de/dokuwiki/development:python">Python</a>), eine eigene php.ini, pear module zum selbst installieren, Unterstützung von <a href="https://uberspace.de/dokuwiki/development:gcc">GCC</a>, <a href="https://uberspace.de/dokuwiki/development:ruby">ruby</a>, <a href="https://uberspace.de/dokuwiki/development:nodejs">node.js</a>, <a href="https://uberspace.de/dokuwiki/webserver:cgi">CGI</a> &amp; <a href="https://uberspace.de/dokuwiki/webserver:fastcgi">FastCGI</a>, <a href="https://uberspace.de/dokuwiki/webserver:suexec">suEXEC</a>, <a href="https://uberspace.de/dokuwiki/webserver:error_log">error_logs</a>, <a href="https://uberspace.de/dokuwiki/database:couchdb">Couch-</a> und <a href="https://uberspace.de/dokuwiki/database:mongodb">MongoDB</a>, <a href="https://uberspace.de/dokuwiki/system:runwhen">runwhen</a>, <a href="https://uberspace.de/dokuwiki/system:daemontools">deamontools</a>, <a href="https://uberspace.de/dokuwiki/cool:twofactorauth">Zwei-Faktor-Authentifizierung</a>, <a href="https://uberspace.de/dokuwiki/development:git">GIT</a>, <a href="https://uberspace.de/dokuwiki/development:mercurial">Mercurial</a> und ein <a href="https://uberspace.de/dokuwiki/cool">Dutzend cooler Sachen</a> die ohne Hacks laufen. UberKompetenter und schneller Support. Und &uuml;ber den <a href="https://uberspace.de/prices">Preis l&auml;&szlig;t's sich reden</a>.</p> <p><a href="https://uberspace.de/dokuwiki/philosophy">Ihre Philosophie</a>, <a href="http://christoph-polcin.com/">mein Uberspace</a>, ... zum duchdrehen. Danke!</p>