Category: Snippets


Intents auf Android testen

January 26th, 2012 — 3:22pm

Mit der adb shell ist es einfach möglich das Handling von Intents zu testen … sehr praktisch, wenn man z.B. in der App normalerweise einen QR-Code-Scanner verwendet, um eine URL zu erhalten.

Das Kommando

adb shell am start -a android.intent.action.VIEW -d 'http://www.google.de'

öffnet z.B. den Browser.

Comment » | Snippets

Logrotate-Config für VHosts automatisch erstellen

December 11th, 2011 — 5:10pm

Mit diesem Script erzeuge ich für alle Virtuellen-Hosts eines Apache2-Webservers eine Konfiguration für Logrotate.

Hierzu lese ich die VHost-Konfigurationen in /data/sites ein und parse daraus die Pfade zu den Logfiles.

Anschließend erzeuge ich mit Hilfe eines Templates die eigentliche Konfigurations-Datei im logrotate.d-Ordner.

logrotate-config.sh

#!/bin/bash

CONFDIR=/data/sites/
TEMPLATE=/data/sites/logrotate.conf.template
OUTFILE=/etc/logrotate.d/`hostname`-apache

echo "# DO NOT EDIT!" > $OUTFILE
echo "# automatically generated by $0 on `date`" >> $OUTFILE
echo "" >> $OUTFILE

for i in `cat $CONFDIR/*.conf | grep -i -E "(Transfer|Error|Custom)Log" | awk '{ print $2; }' | sort | uniq`
do
echo -n "$i " >> $OUTFILE
done;

echo $OUTFILE
cat $TEMPLATE >> $OUTFILE
cat $OUTFILE

/data/sites/logrotate.conf.template

{
missingok
notifempty
sharedscripts
postrotate
/etc/init.d/apache2 reload > /dev/null 2>&1 || true
endscript
rotate 9999999
}

Comment » | Snippets

Hübsche Dummy-Bilder erzeugen

July 11th, 2011 — 5:12pm

Der Dummy-Image-Generator erzeugt auf Wunsch die passenden Bilder. Wenn man aber auch mal lokal ein paar Dateien braucht, um z.B. einen Uploader oder eine Galerie zu testen, kann man sich mit ein paar Zeilen Python schnell ein paar Testbilder erzeugen:

from itertools import cycle
from urllib.request import urlretrieve

words = cycle("Lorem ipsum dolor sit amet consectetur adipiscing elit Etiam
sit amet tortor velit id consectetur ipsum Morbi id nulla diam sit amet".split(" "))

colors = cycle(["1b9e77","d95f02","7570b3","e7298a",
"66a61e","e6ab02","a6761d","666666","a6cee3","1f78b4",
"b2df8a","33a02c","fb9a99","e31a1c","fdbf6f","ff7f0",
"cab2d6","6a3d9a","ffff99","b15928"])

for i in range(10):
    word = next(words)
    url = "http://dummyimage.com/1280x1024/%s/000000.jpg&text=%s"
        % (next(colors), word)
    print(urlretrieve(url, "%s.jpg" % word))

Comment » | Snippets

Schneller Syntax-Check für modifizierte PHP-Dateien

January 20th, 2011 — 6:44pm

Ja, manchmal muss man halt via SSH auf Maschinen rumhacken, auf denen es kein vernünftiges Error-Reporting gibt. Und wenn dann die Seite weiß bleibt, hilft dieses Kommando, um heraus zur finden, welche der Dateien man zerschossen hat:

svn status | grep "\.php$" | grep "^M" | awk '{ print $2; }' | xargs -i php -l {}

Das svn status am Anfang verrät schon, zumindest über eine SVN working copy zu verfügen ist dabei äußerst hilfreich.

Die Alternative dazu, ohne SVN ist

find ./ -type f -name "*.php" | xargs -i php -l {}

was aber natürlich sehr viel langsamer ist.

Comment » | Snippets, Technik

Unicode Cheat Sheet

November 16th, 2010 — 11:05am
BLACK HEART SUIT
· U+00B7 MIDDLE DOT aka middot
© COPYRIGHT SIGN
U+2714 HEAVY CHECK MARK
HEAVY BALLOT X
LEFTWARDS ARROW
UPWARDS ARROW
RIGHTWARDS ARROW
HEAVY ROUND-TIPPED RIGHTWARDS ARROW
HEAVY WIDE-HEADED RIGHTWARDS ARROW
DOWNWARDS ARROW
Typografische Anführungszeichen links
DOUBLE LOW-9 QUOTATION MARK
Typografische Anführungszeichen rechts
LEFT DOUBLE QUOTATION MARK
« LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
» RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
SUPERSCRIPT ZERO
¹ SUPERSCRIPT ONE
² SUPERSCRIPT TWO
³ SUPERSCRIPT THREE
SUPERSCRIPT FOUR
SUPERSCRIPT FIVE
SUPERSCRIPT SIX
SUPERSCRIPT SEVEN
SUPERSCRIPT EIGHT
SUPERSCRIPT NINE
Warning
Average
○◔◑◕● Harvey Balls

2 comments » | Snippets

Bash: Absoluten Pfad des aktuellen Scripts auslesen

June 18th, 2010 — 1:08pm

Oft ruft man Bash-Scripte ja mit relativen Pfaden auf:

$ ./util.sh

Dieses kleine Snippet liefert einem in diesem Fall den absoluten Pfad zum aktuellen Script.

#!/bin/bash
MYDIR="`cd $0; pwd`"
echo $MYDIR

Möchte man den absoluten Pfad zu einem Verzeichnis weiter oben, nimmt man dieses Snippet:

#!/bin/bash
MYDIR=`dirname $0`
PARENT="`cd $MYDIR/../; pwd`"

1 comment » | Snippets

JAXP DOM: Whitespace aus XML entfernen

June 16th, 2010 — 12:41pm

In Java 1.6 gibt es einen Bug im Dom-XML-Parser, der Whitespaces trotz aktiviertem Hinweis nicht entfernt.

DocumentBuilderFactory domBuilderFactory = DocumentBuilderFactory.newInstance();
domBuilderFactory.setIgnoringElementContentWhitespace(true);

Abhilfe schafft da diese Methode:

/**
 * Entfernt whitespace aus dem Document
 *
 * @see http://forums.java.net/jive/thread.jspa?messageID=345459
 * @param e
 */
private static void removeWhitespaceNodes(Element e) {
    NodeList children = e.getChildNodes();
    for (int i = children.getLength() - 1; i >= 0; i--) {
        Node child = children.item(i);
        if (child instanceof Text && ((Text) child).getData().trim().length() == 0) {
            e.removeChild(child);
        } else if (child instanceof Element) {
            removeWhitespaceNodes((Element) child);
        }
    }
}

1 comment » | Snippets

Passwörter für SSH-Keys in der Konsole merken

May 15th, 2010 — 12:54pm

Um sich die wiederkehrende Passwort-Abfragen für SSH-Keys auf der Konsole zu sparen, führt man folgende Kommandos aus:

eval "$(/usr/bin/ssh-agent -s)"
ssh-add -L

Das startet den SSh-Key-Agent und damit ist das Passwort des Keys für die aktuelle Sitzung gespeichert und wird nicht mehr abgefragt.

Comment » | Snippets

Alle ISO-Dateien in einem Verzeichnis nach UTF-8 konvertieren

May 13th, 2010 — 12:50pm

Dieses Bash-Script konvertiert alle Nicht-UTF-8-Dateien in einem Verzeichnis und in allen Unterverzeichnissen nach UTF-8.

find ./ -type f -name "*.php" | xargs file | grep ISO-8859 | awk '{print substr( $1, 0, length($1) - 1); }' | xargs -i recode ISO-8859-1..UTF-8 {}

Comment » | Snippets

Niedrigen Speicherplatz mit Bash überprüfen und per Mail warnen

May 12th, 2010 — 12:00pm

Dieses kleine Bash-Script, versendet als Cronjob eingetragen, E-Mails an den root-User, wenn der Plattenplatz auf allen gemounteten /dev/hd*-Platten weniger als 1 GB beträgt.

for i in `df | grep "/dev/hd" | grep -e "[a-z]$" | awk '{ print $4; }'`; do if [[ $i -gt 999999 ]]; then df -h | mail root -s "Low diskspace warning for `hostname -f`"; break; fi; done

Comment » | Snippets

Back to top