Linkhub #13

Linkhub #12

Heute mal ein paar mehr Links, da die verschlampten Links aus dem Oktober wieder gefunden habe.

Linkhub #11

  • Client-side error logging
    Genauer geht es in dem Artikel im Opera-Entwicklerbereich um die serverseitige Speicherung (logging) von JavaScript-Fehlern beim Client.
  • Yet another newb guide to git
    Eine umfangreiche Sammlung an Texten, Tutorials und eine kleine Referenz für git.
  • SQLZOO
    Ein interaktives, praktisches Tutorial zum Lernen diverser SQL-Dialekte.
  • 20 All Too Common Coding Pitfalls For Beginners
    Tipps und Hinweise für den Programmier-Anfänger (JavaScript-/PHP) und wie man gewöhnliche Fehler beim Programmieren vermeidet.

yab_navigation_template - A Textpattern navigation template

This is a generic Textpattern template for a section based 3-level navigation and can be used in most navigation modes and styles.

With this template you can easily build complex 3-level navigations as

    * 1. Home
    * 2. Navpoint
          o 2.1 Navpoint
                + 2.1.1 Navpoint
                + 2.1.2 Navpoint
          o 2.2 Navpoint
                + 2.2.1 Navpoint
                + 2.2.2 Navpoint
          o 2.3 Navpoint
                + 2.3.1 Navpoint
                + 2.3.2 Navpoint
          o 2.4 Navpoint
          o 2.5 Navpoint
    * 3. Navpoint
          o 3.1 Navpoint
                + 3.1.1 Navpoint
                + 3.1.2 Navpoint
          o 3.2 Navpoint
                + 3.2.1 Navpoint
                + 3.2.2 Navpoint
          o 3.3 Navpoint
                + 3.3.1 Navpoint
                + 3.3.2 Navpoint
          o 3.4 Navpoint
          o 3.5 Navpoint
    * 4. Navpoint
          o 4.1 Navpoint
                + 4.1.1 Navpoint
                + 4.1.2 Navpoint
          o 4.2 Navpoint
                + 4.2.1 Navpoint
                + 4.2.2 Navpoint
          o 4.3 Navpoint
                + 4.3.1 Navpoint
                + 4.3.2 Navpoint
          o 4.4 Navpoint
          o 4.5 Navpoint
    * 5. Navpoint
    * 6. Navpoint

or a not so complex structures such as

    * 1. Home
    * 2. Navpoint
          o 2.1 Navpoint
                + 2.1.1 Navpoint
                + 2.1.2 Navpoint
    * 3. Navpoint
    * 4. Navpoint

You can grab the template here yab_navigation_template.

Some help and other information you can find on the GitHub repo of this template.

Linkhub #10

Diceware Passwörter mit der Shell generieren

Ich hab mir ein kleines Shellskript geschrieben, dass mir sichere Diceware-Passwörter generiert. Wer nicht weiß, was Diceware ist und warum die relativ sicher sind, dem seien folgende Links ans Herz gelegt:

Das ist natürlich ein typischer Fall von NIH, weil es für die Bash/Shell oder auch online wahrscheinlich hundert andere und gut funktionierende Tools dafür gibt, aber selber programmieren und grübeln macht einfach deutlich mehr Spaß.

Die Benutzung ist relativ einfach:

$ ./roll_password.sh

gibt ein Passwort mit fünf Wörtern (english) aus. Folgende Argumente können mit übergeben werden:

  • -c bestimmt die Anzahl der Wörter, die das Passwort haben soll (standard: 5)
  • -l die minimale Zeichenanzahl des gesamten Passwortes (standard: 14)
  • -w Wortlistendatei aus denen sich das Passwort generieren soll (standard diceware_wordlist_en)

Für Schlüssel-Signierungen und Kryptographie würde ich die generierten Passwörter nicht benutzen, dafür ist die $RANDOM-Umgebungsvariable nicht zufällig genug, aber als Passwörter für typische Online-Dienste sind sie sehr gut geeignet.

Das Skript kann man hier herunterladen. Im Download enthalden sind das Shellskript, die englische und die deutsche Diceware-Wortlistendatei.

roll_password.tar.gz

Und hier noch ein bisschen Skript, für die, die nur daran interessiert sein sollten.

#!/bin/bash
#
# Name: roll_password.sh
# Description: This script rolls a random passphrase based of a wordlist (Diceware).
# Author: Tommy Schmucker
# Created: 2012-06-08
# Modified: 2012-09-25
# Version: 0.2
#

usage()
{
	cat << EOF

This script rolls a random pass phrase based of a wordlist (Diceware).

usage: $0 [-h] [-c number] [-l number] [-w file]

-h Show this message
-c Count of words in the pass phrase
-l Minimun length of the pass phrase
-w Wordlist file

EOF
}

count=5
wordlist=diceware_wordlist_en
min_length=14
phrase=

while getopts "hc:l:w:" option; do
	case $option in
		h)
			usage
			exit 1
			;;
		c)
			count="$OPTARG"
			;;
		l)
			min_length="$OPTARG"
			;;
		w)
			wordlist="$OPTARG"
			;;
		?)
			usage
			exit
			;;
	esac
done

[ -e "$wordlist" ] || { echo "$wordlist does not exists, exiting"; exit 1; }

roll_number()
{
	number=
	for i in `seq 5`; do
		roll=`expr $RANDOM % 6`
		digit[i]=`expr $roll + 1`
		number=$number${digit[i]}
	done
}

get_word()
{
	word=
	roll_number
	word=`cat $wordlist | grep $number | awk '{print $2}'`
}

get_phrase()
{
	for j in `seq $count`; do
		get_word
		if [ $j == 1 ]; then
			phrase="$word"
		else
			phrase="$phrase $word"
		fi
	done
}

get_phrase
length=`echo -e "$phrase\c" | wc -m`

if [ $length -lt $min_length ]; then
	echo $'\n'"Phrase \"$phrase\" is too short ($length chars)."$'\n'"You should run the command again!"$'\n'
else
	echo $'\n'"$phrase"$'\n'
fi

neuere Einträge | ältere Einträge