blaeul.de http://blaeul.de/rss.xml en Bläul.de http://blaeul.de/node/15 <span>Bläul.de</span> <span><span>Bläul</span></span> <span>Sat, 06/30/2012 - 01:36</span> <div></div> Fri, 29 Jun 2012 23:36:41 +0000 Bläul 15 at http://blaeul.de Windows-VM zu Hetzner-VM kopieren http://blaeul.de/content/windows-vm-zu-hetzner-vm-kopieren <span>Windows-VM zu Hetzner-VM kopieren</span> <div></div> <span><span>Bläul</span></span> <span>Sun, 06/30/2019 - 15:20</span> Sun, 30 Jun 2019 13:20:30 +0000 Bläul 28 at http://blaeul.de tmpfs for MySQL in Ubuntu http://blaeul.de/content/tmpfs-mysql-ubuntu <span>tmpfs for MySQL in Ubuntu</span> <div>To speed up local development or continuous integration tests, you can move MySQL to RAM. You will loose all your data on each reboot, as RAM is volatile storage. I tried the following for MySQL on Ubuntu 16 and 18. I wouldn't be surprised if you find it to work just fine in other environments as well. Here are the steps: 1. Add this line to <tt>/etc/fstab</tt>: <pre>tmpfs /var/mysql-tmpfs tmpfs rw,gid=116,uid=110,size=1424M,nr_inodes=50k,mode=0700 0 0</pre> 2. Add these lines to <tt>/etc/apparmor.d/usr.sbin.mysqld</tt>: <pre> /var/mysql-tmpfs/ rwkm, /var/mysql-tmpfs/data/ rwkm, /var/mysql-tmpfs/data/** rwkm, /var/mysql-tmpfs/tmp/ rm, /var/mysql-tmpfs/tmp/** rwkm, </pre> 3. Modify these lines in <tt>/etc/mysql/mysql.conf.d/mysqld.cnf</tt> to read: <pre> datadir = /var/mysql-tmpfs/data tmpdir = /var/mysql-tmpfs/tmp </pre> 4. Execute these commands: <pre> sudo service mysql stop sudo mkdir -p /var/mysql-tmpfs sudo mount -a sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.mysqld sudo cp -rp /var/lib/mysql/data /var/mysql-tmpfs/ sudo mkdir -p /var/mysql-tmpfs/tmp &amp;&amp; sudo chown mysql:mysql -R /var/mysql-tmpfs sudo service mysql start </pre> The last three lines are needed after every reboot, because the machine starts with an empty <tt>/var/mysql-tmpfs</tt> directory. Do tweet me <a href="https://twitter.com/Gogowitsch">@Gogowitsch</a> if you have feedback of any kind.</div> <span><span>Bläul</span></span> <span>Thu, 04/11/2019 - 14:43</span> Thu, 11 Apr 2019 12:43:53 +0000 Bläul 26 at http://blaeul.de SPF-Records mit Icinga überwachen http://blaeul.de/content/spf-records-mit-icinga-%C3%BCberwachen <span>SPF-Records mit Icinga überwachen</span> <div>Alle unsere Webserver sollen in der Lage sein, Mails zu verschicken. Da wir einen SPF-Record veröffentlichen, der als letzten Eintrag ein "Hard Fail" hat, müssen wir aufpassen, dass jeder unserer Server laut SPF-Record vertrauenswürdig ist. Dazu habe ich folgende Icinga 2-Regel geschrieben, sodass alle Hosts mit externer IP-Adresse automatisch einen Service bekommen, der 1x pro Tag den SPF-Record prüft. Wenn wir einen neuen Host anlegen, wird der ebenfalls automatisch geprüft. <!--break--> <pre> apply Service "SPF" { display_name = "SPF-Record für " + host.address check_interval = 24h import "generic-service" check_command = "Bash" vars.command = "dig @8.8.8.8 -t TXT beispielfirma.de +short | grep spf | grep ip4:" + host.address + "/32" assign where (host.address &amp;&amp; (host.address.substr(0, 3) != "127") &amp;&amp; (host.address.substr(0, 7) != "192.168")) } </pre> Die Domain <tt>beispielfirma.de</tt> können Sie durch Ihre Domain ersetzen. Die <tt>8.8.8.8</tt> steht für den DNS-Server von Google - das sorgt dafür, dass Icinga mit wenig Verzögerung nach einer Veränderungen im DNS-Record bemerkt, was es neues gibt - im Gegensatz zu lokalen DNS-Services bei uns im Netzwerk, die die <abbr title="Time to live">TTL</abbr> voll auskosten. Durch die <tt>vars.command</tt>-Zeile kann ich die Befehlszeile auch in der Weboberfläche <a href="https://github.com/Icinga/icingaweb2#icinga-web-2">Icinga Web 2</a> sehen Damit es funktioniert, ist noch dieser Block nötig - er steht bei uns in der <tt>commands.conf</tt>: <pre> object CheckCommand "Bash" { import "plugin-check-command" command = [ "bash", "-c", "$command$" ] } </pre></div> <span><span>Bläul</span></span> <span>Tue, 03/05/2019 - 16:46</span> Tue, 05 Mar 2019 15:46:50 +0000 Bläul 25 at http://blaeul.de root-Rechte unter Ubuntu mit WinSCP http://blaeul.de/node/24 <span>root-Rechte unter Ubuntu mit WinSCP </span> <div>Standardmäßig ist unter Ubuntu der Nutzer <tt>root</tt> nicht zum Einloggen vorgesehen. Daran habe ich nichts geändert. In PuTTY kann ich einfach <tt>sudo</tt> nutzen, doch in WinSCP hat mich weder Google noch die FAQ weitergebracht. Daher habe ich mit <tt>sudo find / | grep sftp-server</tt> die ausführbare Datei ausfindig gemacht: <tt>/usr/lib/openssh/sftp-server</tt> Wie ich unter Ubuntu mit WinSCP <tt>root</tt>-Rechte bekommen habe, ohne mich als <tt>root</tt> einzuloggen: <img src="/sites/blaeul.de/files/sudo zum Auflisten der Dateien_0.png" /> WinSCP kann nicht nur Dateien auflisten, sondern auch ein Terminal starten (Strg + T). Dort ist für <tt>root</tt>-Rechte eine andere Einstellung nötig: <img src="/sites/blaeul.de/files/sudo terminal.png" /> Und voilà: <img src="/sites/blaeul.de/files/whoami.png" /> Für Debian geht glücklicherweise alles genauso.</div> <span><span>Bläul</span></span> <span>Sat, 05/06/2017 - 22:26</span> Sat, 06 May 2017 20:26:20 +0000 Bläul 24 at http://blaeul.de iPad 2-Reparatur http://blaeul.de/content/ipad-2-reparatur <span>iPad 2-Reparatur</span> <div></div> <span><span>Bläul</span></span> <span>Mon, 12/28/2015 - 17:33</span> Mon, 28 Dec 2015 16:33:01 +0000 Bläul 23 at http://blaeul.de Reverting patches http://blaeul.de/content/reverting-patches <span>Reverting patches</span> <div>In the aftermath of a Git problem at work, I wanted to revert changes in PHP source code files. I wanted to re-commit my changes, so I need to change files directly in the checkout first. I'm working under Windows. Here's what I did:<ol><li>Get patch string: Luckily, Tortoise Git offers windows such as Sync, Log and many other offer a context menu item 'Show changes as unified diff'</li><li>Get a bash window. I ususally right-click in Explorer and use 'Git Bash Here'.</li><li>Get the patch utility to listen: typing <tt>patch -R -p 1</tt> followed by Enter means: Wait on stdin for the patch string, ignore the first path segment (which is a informationless a/ and b/ in all repos and all files). My patch.exe comes from Cygwin, whose <tt>bin</tt> folder is on my path variable.</li><li>Revers-Apply the patch: Now paste the whole unified diff from step 1. Press Ctrl + D to tell patch.exe to start working</li></ol> To speed up pasting to the MingW32 (the Git Bash Here window), you can enable the Quick Edit mode from the Properties menu item. Then it will paste with a right mouse click, like in PuTTY.</div> <span><span>Bläul</span></span> <span>Fri, 08/14/2015 - 03:25</span> Fri, 14 Aug 2015 01:25:42 +0000 Bläul 22 at http://blaeul.de LookupCache und mehr als ein Feld in der KeyFields-Eigenschaft vertragen sich nicht. http://blaeul.de/content/lookupcache-und-mehr-als-ein-feld-der-keyfields-eigenschaft-vertragen-sich-nicht <span>LookupCache und mehr als ein Feld in der KeyFields-Eigenschaft vertragen sich nicht.</span> <div></div> <span><span>Bläul</span></span> <span>Fri, 02/22/2013 - 13:46</span> Fri, 22 Feb 2013 12:46:27 +0000 Bläul 21 at http://blaeul.de Youden diagrams for ring trial reports http://blaeul.de/content/youden-diagrams-ring-trial-reports <span>Youden diagrams for ring trial reports</span> <div>One way to improve laboratory performance is the participation in colaborative ring trials. It is recommended, that the organizer sends out more than one sample with differing analyte concentrations. The participating labs then measure the concentration of a number of analytes. Once the data is available to the organizer, he or she can then create correlation plots (Youden plots) of the concetration of 1 sample on the X and concentrations of another sample on the Y axis. <!--break--> This can be done with <a href="http://quodata.de/en/software/for-interlaboratory-tests/prolab.html">software packages like PROLab Smart</a> which are specialised for such data. While such a correlation chart is quickly done in Excel, it get's very cumbersome if the number of analytes and samples is a bit larger - hence the need for specialised software. Another challange is to give the viewer an intuitive feeling whether results are ordinary or need attention. <p>Enter <a href="http://www.iso.org/iso/catalogue_detail.htm?csnumber=35664">ISO 13528</a>. In this standard, the use of ellipses is recommended for that purpose, advise I'll certainly follow in my next report.</p></div> <span><span>Bläul</span></span> <span>Mon, 01/14/2013 - 12:05</span> Mon, 14 Jan 2013 11:05:35 +0000 Bläul 20 at http://blaeul.de Google interpretiert JavaScript http://blaeul.de/content/google-interpretiert-javascript <span>Google interpretiert JavaScript</span> <div>Durch Zufall habe ich bei <a href="https://www.google.de/search?q=%22Die+QuoData+GmbH+bietet+Ihnen+mit+RingDat+ein+zuverl%C3%A4ssiges%22&amp;sugexp=chrome,mod=1&amp;sourceid=chrome&amp;ie=UTF-8">meiner Recherche</a> bemerkt, dass Google in den Suchergebnissen nicht etwa das <tt>&lt;title&gt;</tt>-Tag als Überschrift verwendet, sondern die per JavaScript gesetzte <tt>document.title</tt>-Eigenschaft. Ich bin tief beeindruckt.</div> <span><span>Bläul</span></span> <span>Thu, 09/20/2012 - 20:38</span> Thu, 20 Sep 2012 18:38:00 +0000 Bläul 18 at http://blaeul.de