<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet href="http://rothi.twoday.net/rss2html.xsl" type="text/xsl"?>
<rdf:RDF 
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:cc="http://web.resource.org/cc/"
  xmlns="http://purl.org/rss/1.0/"
> 

  <channel rdf:about="http://rothi.twoday.net/">
    <title>Aus dem Leben eines Informatikers</title>
    <link>http://rothi.twoday.net/</link>
    <description></description>
    <dc:publisher>rothi</dc:publisher>
    <dc:creator>rothi</dc:creator>
    <dc:date>2018-02-27T09:13:19Z</dc:date>
    <dc:language>en</dc:language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <sy:updateBase>2000-01-01T00:00:00Z</sy:updateBase>
    
    <image rdf:resource="https://static.twoday.net/icon.gif" />
    <items>
      <rdf:Seq>
            <rdf:li rdf:resource="http://rothi.twoday.net/stories/1022646525/" />
            <rdf:li rdf:resource="http://rothi.twoday.net/stories/1022629937/" />
            <rdf:li rdf:resource="http://rothi.twoday.net/stories/1022629745/" />
            <rdf:li rdf:resource="http://rothi.twoday.net/stories/1022617996/" />
            <rdf:li rdf:resource="http://rothi.twoday.net/stories/1022563950/" />
            <rdf:li rdf:resource="http://rothi.twoday.net/stories/1022560892/" />
            <rdf:li rdf:resource="http://rothi.twoday.net/stories/1022546187/" />
            <rdf:li rdf:resource="http://rothi.twoday.net/stories/1022479842/" />
            <rdf:li rdf:resource="http://rothi.twoday.net/stories/1022467080/" />
            <rdf:li rdf:resource="http://rothi.twoday.net/stories/1022462015/" />
            <rdf:li rdf:resource="http://rothi.twoday.net/stories/1022455293/" />
            <rdf:li rdf:resource="http://rothi.twoday.net/stories/1022386307/" />
            <rdf:li rdf:resource="http://rothi.twoday.net/stories/876866968/" />
            <rdf:li rdf:resource="http://rothi.twoday.net/stories/876866482/" />
            <rdf:li rdf:resource="http://rothi.twoday.net/stories/714906551/" />

      </rdf:Seq>
    </items>
  </channel>

  <image rdf:about="https://static.twoday.net/icon.gif">
    <title>Aus dem Leben eines Informatikers</title>
    <url>https://static.twoday.net/icon.gif</url>
    <link>http://rothi.twoday.net/</link>
  </image>

  <item rdf:about="http://rothi.twoday.net/stories/1022646525/">
    <title>reencode all Files</title>
    <link>http://rothi.twoday.net/stories/1022646525/</link>
    <description>Wer je das Problem hat dass die Videos die die man sich gerade ansehen wollte auf seinem Android device, nicht richtig abspielen könnte zu dem Schluss kommen dass vielleicht ein HD Video nicht das beste ist für ein billiges Handy. Darum hier ein kurzer hack wie man alle videos (in diesem Fall mkv) auf kleinere Auflösung runter codiert:
&lt;pre class=&quot;code&quot;&gt;
for f in *.mkv ; 
do ffmpeg -i &quot;$f&quot; -s 640x480 -b 512k -vcodec mpeg1video -acodec copy &quot;output/$f&quot;
done;
&lt;/pre&gt;</description>
    <dc:creator>rothi</dc:creator>
    <dc:subject>Weisheiten</dc:subject>
    <dc:rights>Copyright &#169; 2018 rothi</dc:rights>
    <dc:date>2018-02-27T09:09:00Z</dc:date>
  </item>
  <item rdf:about="http://rothi.twoday.net/stories/1022629937/">
    <title>a macing</title>
    <link>http://rothi.twoday.net/stories/1022629937/</link>
    <description>When you meet someone, always make sure that it is amazing to meet you not a meeting to mace you. &lt;br /&gt;
&lt;br /&gt;
Or in other words:&lt;br /&gt;
&lt;br /&gt;
Meet amazing men and women not a macing man or woman!</description>
    <dc:creator>rothi</dc:creator>
    <dc:subject>Puns</dc:subject>
    <dc:rights>Copyright &#169; 2017 rothi</dc:rights>
    <dc:date>2017-08-09T13:35:00Z</dc:date>
  </item>
  <item rdf:about="http://rothi.twoday.net/stories/1022629745/">
    <title>gentle restart linux</title>
    <link>http://rothi.twoday.net/stories/1022629745/</link>
    <description>Wenn Linux komplet freezed und nicht mal strg+alt+entf funktioniert gibts folgenden sanften restart mechanismus:&lt;br /&gt;
&lt;br /&gt;
Alt + SysRq (= Print Screen key) und langsam folgendes tippen:&lt;br /&gt;
REISUB&lt;br /&gt;
&lt;br /&gt;
Erklärung kopiert von [1]:    &lt;br /&gt;
R: Switch the keyboard from raw mode to XLATE mode    &lt;br /&gt;
E: Send the SIGTERM signal to all processes except init    &lt;br /&gt;
I: Send the SIGKILL signal to all processes except init    &lt;br /&gt;
S: Sync all mounted filesystems    &lt;br /&gt;
U: Remount all mounted filesystems in read-only mode    &lt;br /&gt;
B: Immediately reboot the system, without unmounting partitions or syncing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] &lt;a href=&quot;http://blog.kember.net/articles/reisub-the-gentle-linux-restart/&quot;&gt;http://blog.kember.net/articles/reisub-the-gentle-linux-restart/&lt;/a&gt;</description>
    <dc:creator>rothi</dc:creator>
    <dc:subject>Weisheiten</dc:subject>
    <dc:rights>Copyright &#169; 2017 rothi</dc:rights>
    <dc:date>2017-08-07T08:30:00Z</dc:date>
  </item>
  <item rdf:about="http://rothi.twoday.net/stories/1022617996/">
    <title>Cream of Tartar in Wien kaufen</title>
    <link>http://rothi.twoday.net/stories/1022617996/</link>
    <description>Es war eine Tortur das Zeug das auch unter dem Namen Weinstein oder Kaliumbitartrat bekannt ist in Wien in die Finger zu bekommen. Die Apotheke die das hätte haben sollen hat das mal grundsätzlich nicht und die Apotheker meinen dass sie zwar was haben das Weinstein ist aber chemisch war es dann wieder was anderes. Die ganzen regulären Geschäfte und Bio-Läden haben wenn es hoch her geht Backpulver auf Weinstein basis, was aber NICHT das selbe ist (Monokaliumtartrat). &lt;br /&gt;
&lt;br /&gt;
Ich will ja nicht backen sondern entweder Eiweis stabilisieren oder karamellisierten Zucker am kristallisieren hindern.&lt;br /&gt;
&lt;br /&gt;
Meine Erlösung kam dann durch den Vorschlag in die Tortenwelt zu gehen (http://www.tortenwelt.at).&lt;br /&gt;
&lt;br /&gt;
Der gesuchte Artikel ist zwar nicht auf der Homepage auffindbar, ABER im Geschäfft wird er geführt. Ich hatte dann an dem Tag nochmals Glück weil ich das letzte Döschen dass an dem Tag dort noch lagernd war gekauft habe und nicht nochmal hinfahren musste weil es erst erneut geliefert werden würde.</description>
    <dc:creator>rothi</dc:creator>
    <dc:subject>Weisheiten</dc:subject>
    <dc:rights>Copyright &#169; 2017 rothi</dc:rights>
    <dc:date>2017-05-14T20:58:00Z</dc:date>
  </item>
  <item rdf:about="http://rothi.twoday.net/stories/1022563950/">
    <title>Screen detach</title>
    <link>http://rothi.twoday.net/stories/1022563950/</link>
    <description>ctrl+a d for detach&lt;br /&gt;
screen -r for resume</description>
    <dc:creator>rothi</dc:creator>
    <dc:subject>Weisheiten</dc:subject>
    <dc:rights>Copyright &#169; 2016 rothi</dc:rights>
    <dc:date>2016-05-04T16:45:00Z</dc:date>
  </item>
  <item rdf:about="http://rothi.twoday.net/stories/1022560892/">
    <title>Erdbeben</title>
    <link>http://rothi.twoday.net/stories/1022560892/</link>
    <description>Heute 25.04.2016 wieder mal ein Erdbeben:&lt;br /&gt;
&lt;table&gt;&lt;tr&gt;&lt;td&gt;2016-04-25&lt;/td&gt;&lt;td&gt;10:28:23&lt;/td&gt;&lt;td&gt; 	3.9&lt;/td&gt;&lt;td&gt; 	48.09°N&lt;/td&gt;&lt;td&gt; 	16.21°E &lt;/td&gt;&lt;td&gt;	10 	A &lt;/td&gt;&lt;td&gt;Austria&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;a href=&quot;http://geofon.gfz-potsdam.de/eqinfo/list.php&quot;&gt;http://geofon.gfz-potsdam.de/eqinfo/list.php&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Dank der UTC Zeit in Kombination mit Sommerzeit stimmt die Uhrzeit um 2 Stunden nicht, es ist bei uns lokal 12:28:23 gewesen, aber ja es was doch merklich.</description>
    <dc:creator>rothi</dc:creator>
    <dc:subject>Artenschutz</dc:subject>
    <dc:rights>Copyright &#169; 2016 rothi</dc:rights>
    <dc:date>2016-04-25T10:33:00Z</dc:date>
  </item>
  <item rdf:about="http://rothi.twoday.net/stories/1022546187/">
    <title>Hashes für einen ganzen Verzeichnissbaum</title>
    <link>http://rothi.twoday.net/stories/1022546187/</link>
    <description>Praktisch wenn man wissen will ob sich einzelne Dateien verändert haben werden.&lt;br /&gt;
Warum die Vorzukunft: klarerweise muss man vor der Veränderung einmal den Hash berechnen und dann nachher nochmal und die beiden Ergebnisse (z.B. mit diff vergleichen).

&lt;pre class=&quot;code&quot;&gt;
find . -type f -exec sha256sum  {} \; &gt; ../sha256sums.txt
&lt;/pre&gt;

Special Thanks to M.K. for that.</description>
    <dc:creator>rothi</dc:creator>
    <dc:subject>Weisheiten</dc:subject>
    <dc:rights>Copyright &#169; 2016 rothi</dc:rights>
    <dc:date>2016-02-12T10:18:00Z</dc:date>
  </item>
  <item rdf:about="http://rothi.twoday.net/stories/1022479842/">
    <title>Libreoffice Support für owncloud</title>
    <link>http://rothi.twoday.net/stories/1022479842/</link>
    <description>Am Server
&lt;pre class=&quot;code&quot;&gt;
sudo apt-get install libreoffice-base-core libreoffice-common libreoffice-core libreoffice-emailmerge libreoffice-math libreoffice-style-human libreoffice-writer uno-libs3 ure
&lt;/pre&gt;

Im Admin bereich noch umstellen auf Local und geht schon.</description>
    <dc:creator>rothi</dc:creator>
    
    <dc:rights>Copyright &#169; 2015 rothi</dc:rights>
    <dc:date>2015-10-13T12:02:00Z</dc:date>
  </item>
  <item rdf:about="http://rothi.twoday.net/stories/1022467080/">
    <title>Prozessbaum</title>
    <link>http://rothi.twoday.net/stories/1022467080/</link>
    <description>ps -o pid,sess,cmd afx</description>
    <dc:creator>rothi</dc:creator>
    <dc:subject>Weisheiten</dc:subject>
    <dc:rights>Copyright &#169; 2015 rothi</dc:rights>
    <dc:date>2015-08-14T07:51:00Z</dc:date>
  </item>
  <item rdf:about="http://rothi.twoday.net/stories/1022462015/">
    <title>typo3 formhandler CSRF-Token</title>
    <link>http://rothi.twoday.net/stories/1022462015/</link>
    <description>Der Formhandler hat (zumindest soweite ich feststellen konnte in seiner aktuellen Version) keinen funktionierenden Schutz gegen XSS-Angriffe. Das heißt natürlich dass ein User der angemeldet ist auf böse Dinge klicken kann die über JS die Formhandler-Forms antriggern können. Und je nachdem was das für Formulare sind kann das schon blöd sein wenn zum Beispiel sämtliche Userdaten des Users mit Blödsinn überschrieben wird.&lt;br /&gt;
&lt;br /&gt;
Ich hab mir dafür jetzt eine kleine Lösung verfasst die wie folgt aufgebaut ist:&lt;br /&gt;
&lt;br /&gt;
1. Klasse PreProzessor Klasse zur Tokengenerierung&lt;br /&gt;
2. Templateanpassung mit hidden field für den Token&lt;br /&gt;
3. ErrorCheck für den Token&lt;br /&gt;
&lt;br /&gt;
Zuvor muss man sich entscheiden ob man die Sourcen als Extension einbindet oder via Typoscript nachläd.&lt;br /&gt;
Ich hab mich für das nachladen entschieden:

&lt;pre class=&quot;code&quot;&gt;
plugin.Tx_Formhandler.settings.additionalIncludePaths.1=pfad/zum/code
&lt;/pre&gt;

In diesem Ordner liegen 2 Dateien:&lt;br /&gt;
1. Tx_Formhandler_PreProcessor_CSRFPreProcessor.php&lt;br /&gt;
2. Tx_Formhandler_ErrorCheck_CSRF.php&lt;br /&gt;
&lt;br /&gt;
Tx_Formhandler_PreProcessor_CSRFPreProcessor.php:
&lt;pre class=&quot;code&quot;&gt;
&lt;?php

class Tx_Formhandler_PreProcessor_CSRFPreProcessor extends Tx_Formhandler_AbstractPreProcessor {
        /**
         * The main method called by the controller
         *
         * @return array The probably modified GET/POST parameters
         */
        public function process() {
                $min=pow(10,7);
                $this-&gt;gp[&apos;csrf_token&apos;] = rand($min,$min*10-1);
                $this-&gt;globals-&gt;getSession()-&gt;set(&apos;csrf_token&apos;,  $this-&gt;gp[&apos;csrf_token&apos;] );
                return $this-&gt;gp;
        }
}
?&gt;
&lt;/pre&gt;

Tx_Formhandler_ErrorCheck_CSRF.php:
&lt;pre class=&quot;code&quot;&gt;
&lt;?php
class Tx_Formhandler_ErrorCheck_CSRF extends Tx_Formhandler_AbstractErrorCheck {
        public function check()
        {
                $checkFailed=&apos;&apos;;
                $csrftoken = $this-&gt;globals-&gt;getSession()-&gt;get(&apos;csrf_token&apos;);
                if($csrftoken != $this-&gt;gp[&apos;csrf_token&apos;])
                        $checkFailed = &apos;CSRF-Token invalid!&apos;;
                return $checkFailed;
        }
}

?&gt;
&lt;/pre&gt;

Im TS den PreProcessor als solchen einbinden.
&lt;pre class=&quot;code&quot;&gt;
plugin.Tx_Formhandler{
  settings.predef.myForm {
    preProcessors.1.class = Tx_Formhandler_PreProcessor_CSRFPreProcessor
}
&lt;/pre&gt;

Im TS die Validierung machen (im multiStepFall für alle Steps einbinden):
&lt;pre class=&quot;code&quot;&gt;
plugin.Tx_Formhandler{
  settings.predef.myForm {
    1 {
      validators.1.class = Validator_Default
      validators.1.config.fieldConf {
        first_name.errorCheck.1 = required
        #beispiel feld
        csrf_token.errorCheck.1 = required
        csrf_token.errorCheck.2 = CSRF
        #das CSRF ergibt sich automatisch durch den Klassennamen
      }
  }
}
&lt;/pre&gt;

Im Templatefile muss jetzt noch gleich nach dem hidden fields marker ein input element für den Token eingefügt werden:

&lt;pre class=&quot;code&quot;&gt;
###HIDDEN_FIELDS### 
&lt;input type=&quot;hidden&quot; value=&quot;###value_csrf_token###&quot; name=&quot;###formValuesPrefix###[csrf_token]&quot; &gt;&lt;/input &gt;
&lt;/pre&gt;</description>
    <dc:creator>rothi</dc:creator>
    <dc:subject>typo3</dc:subject>
    <dc:rights>Copyright &#169; 2015 rothi</dc:rights>
    <dc:date>2015-07-22T14:18:00Z</dc:date>
  </item>
  <item rdf:about="http://rothi.twoday.net/stories/1022455293/">
    <title>noscript und Bürgerkarte</title>
    <link>http://rothi.twoday.net/stories/1022455293/</link>
    <description>In Österreiche kann man eine Bürgerkarte oder Handysignatur bekommen um damit seine E-Government services zu nutzen.&lt;br /&gt;
Die Bürgerkarte wird in die E-Card integriert und benötigt einen Kartenleser. Die Handysignatur benötigt klarer weise eine gültige Telefonnummer unter der es möglich ist SMS zu empfangen.&lt;br /&gt;
&lt;br /&gt;
Jetzt ist man sich doch der Gefahren des Internets bewusst und hat im Browser seines Vertrauens Plugins installiert die den Browser und das zugehörige System davor schützen soll. In meinem Fall ist das unter anderen NoScript, eine Extension die zum einen JavaScript blockiert das wild auf den Seiten wuchert. Nicht alles davon ist für die Funktion der Websites notwendig, sondern ist lediglich zur Datensammlung für dritte da (Google, facebook, etc.). Von schädigendem Code hab ich jetzt noch garnicht geredet. Außerdem verhindert NoScript dass Scripte über verschiedene Domänen (Beispiele für Domänen: orf.at, cdu.de) läuft das Schlagwort hier ist CrossSiteScripting XSS.  Kurz gesagt, NoScript schützt meinen Browser.&lt;br /&gt;
&lt;br /&gt;
Jetzt kann es aber sein dass man genau so ein CrossSiteScripting benötigt weil man ein Service von einem Drittanbieter mit verwendet wenn man ein Service einer Seite nutzt. Beispielsweise ein Anmelde- oder Authentifizierungsservice.&lt;br /&gt;
&lt;br /&gt;
NoScript hat verhindert das ich das Authentifizierungsservice von a-trust verwenden kann.&lt;br /&gt;
&lt;br /&gt;
Deshalb muss man, wenn man Bürgerkarte oder Handysignatur auf anderen Seiten als Finanzonline verwenden will in den NoScript-Options -&gt; Advanced -&gt; XSS die folgenden 2 Zeilen am begin des großen Textfeldes einfügen:&lt;br /&gt;
&lt;br /&gt;
^https?://www\.a-trust\.at.*&lt;br /&gt;
^https?://www\.egov-service\.at.*&lt;br /&gt;
&lt;br /&gt;
Damit weiß NoScript dass es diese Seiten zulassen soll.</description>
    <dc:creator>rothi</dc:creator>
    <dc:subject>Weisheiten</dc:subject>
    <dc:rights>Copyright &#169; 2015 rothi</dc:rights>
    <dc:date>2015-07-01T08:23:00Z</dc:date>
  </item>
  <item rdf:about="http://rothi.twoday.net/stories/1022386307/">
    <title>modprobe</title>
    <link>http://rothi.twoday.net/stories/1022386307/</link>
    <description>sudo rmmod iwldvm&lt;br /&gt;
sudo modprobe iwldvm&lt;br /&gt;
&lt;br /&gt;
wobei iwldvm ein kernel modul ist (mein Netzwerk manager)&lt;br /&gt;
Gut zu wissen wie man den Netzwerktreiber neustartet.</description>
    <dc:creator>rothi</dc:creator>
    <dc:subject>Weisheiten</dc:subject>
    <dc:rights>Copyright &#169; 2015 rothi</dc:rights>
    <dc:date>2015-01-12T13:36:00Z</dc:date>
  </item>
  <item rdf:about="http://rothi.twoday.net/stories/876866968/">
    <title>userFunc geht nicht...</title>
    <link>http://rothi.twoday.net/stories/876866968/</link>
    <description>Ja warum geht sie denn nicht?&lt;br /&gt;
ganz klar... (aber nicht intuitiv!) der Klassenname muss mit &quot;user&quot; beginnen.&lt;br /&gt;
&lt;br /&gt;
FALSCH:&lt;br /&gt;
class myClass { &lt;br /&gt;
function myFunc($content,$conf){return &quot;HelloWorld&quot;;}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
RICHTIG:&lt;br /&gt;
class usermyClass { &lt;br /&gt;
function myFunc($content,$conf){return &quot;HelloWorld&quot;;}&lt;br /&gt;
}</description>
    <dc:creator>rothi</dc:creator>
    <dc:subject>typo3</dc:subject>
    <dc:rights>Copyright &#169; 2014 rothi</dc:rights>
    <dc:date>2014-05-14T15:22:00Z</dc:date>
  </item>
  <item rdf:about="http://rothi.twoday.net/stories/876866482/">
    <title>Typo3 tx_sv_authbase enableFields</title>
    <link>http://rothi.twoday.net/stories/876866482/</link>
    <description>Für alle die das schon mal gebraucht hätten, das Equivalent zu enableFields im authbase lautet wie folgt:
&lt;pre class=&quot;code&quot;&gt;
$fromTable = &apos;fe_users&apos;;
$authInfo = $this-&gt;pObj-&gt;getAuthInfoArray();
$res = $GLOBALS[&apos;TYPO3_DB&apos;]-&gt;exec_SELECTquery( 
            &apos;*&apos;, 
            $fromTable, 
            &apos;1 &apos;.$authInfo[&apos;db_user&apos;][&apos;enable_clause&apos;],
            &apos;&apos;, 
            &apos;&apos;, 
            &apos;&apos; 
        );
&lt;/pre&gt;</description>
    <dc:creator>rothi</dc:creator>
    <dc:subject>typo3</dc:subject>
    <dc:rights>Copyright &#169; 2014 rothi</dc:rights>
    <dc:date>2014-05-13T10:48:00Z</dc:date>
  </item>
  <item rdf:about="http://rothi.twoday.net/stories/714906551/">
    <title>Gestern Abend ging es noch...</title>
    <link>http://rothi.twoday.net/stories/714906551/</link>
    <description>Für die Fälle wo etwas &quot;gestern Abend noch ging&quot; und sich keiner erklären kann wieso heute nix mehr geht. Hier find für Files mit changedate innerhalb der letzen 24 Stunden:&lt;br /&gt;
&lt;br /&gt;
find /directory_path -mtime -1 -ls</description>
    <dc:creator>rothi</dc:creator>
    <dc:subject>Weisheiten</dc:subject>
    <dc:rights>Copyright &#169; 2014 rothi</dc:rights>
    <dc:date>2014-03-05T13:48:00Z</dc:date>
  </item>


<textinput rdf:about="http://rothi.twoday.net/search">
   <title>find</title>
   <description>Search this site:</description>
   <name>q</name>
   <link>http://rothi.twoday.net/search</link>
</textinput>


</rdf:RDF>
