• Shortcuts : 'n' next unread feed - 'p' previous unread feed • Styles : 1 2
Arrow New window YaBlo
aA :  -   + pdf Infos Unsubscribe

» Publishers, Monetize your RSS feeds with FeedShow:  More infos  (Show/Hide Ads)


Date: Sunday, 14 Apr 2013 11:44
Author: "trenc"
Send by mail Print  Save  Delicious 
Date: Wednesday, 03 Apr 2013 08:49

Pond in Flora Cologne/Teich in Flora Köln. Tommy Schmucker 2013-04-01. [CC BY-SA 3.0]

Author: "trenc"
Send by mail Print  Save  Delicious 
Date: Monday, 04 Mar 2013 09:45
Author: "trenc"
Send by mail Print  Save  Delicious 
Date: Sunday, 03 Feb 2013 10:20

Abtei Maria Laach/Maria Laach Abbey. Tommy Schmucker 18/08/2012. [CC BY-SA 3.0]

Author: "trenc"
Send by mail Print  Save  Delicious 
Date: Tuesday, 22 Jan 2013 14:32
Author: "trenc"
Send by mail Print  Save  Delicious 
Date: Saturday, 15 Dec 2012 11:10

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

Author: "trenc"
Send by mail Print  Save  Delicious 
Date: Sunday, 18 Nov 2012 10:20
  • 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.
Author: "trenc"
Send by mail Print  Save  Delicious 
Date: Sunday, 21 Oct 2012 10:21

Hafen Koeln-Niehl/Docks Cologne-Niehl. Tommy Schmucker 12/08/2012. [CC BY-SA 3.0]

Author: "trenc"
Send by mail Print  Save  Delicious 
Date: Friday, 12 Oct 2012 12:33

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.

Author: "Trencavel"
Send by mail Print  Save  Delicious 
Date: Sunday, 07 Oct 2012 08:46
Author: "Trencavel"
Send by mail Print  Save  Delicious 
Date: Thursday, 27 Sep 2012 12:30

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
Author: "Trencavel"
Send by mail Print  Save  Delicious 
Date: Thursday, 20 Sep 2012 10:01
Author: "Trencavel"
Send by mail Print  Save  Delicious 
Date: Sunday, 09 Sep 2012 10:47

Barley/Gerste. Tommy Schmucker 12/08/2012. [CC BY-SA 3.0]

Author: "Trencavel"
Send by mail Print  Save  Delicious 
Date: Tuesday, 21 Aug 2012 15:21

Mann kennst es ja aus verschiedenen jQuery-Plugins. Argumente werden als Objekt in entsprechender Notation an eine Funktion übergeben und überschreiben dabei Default-Werte. Das ist schick und hat einige Vorteile:

  • jedes Argument bekommt einen Namen und ist damit selbsterklärend
  • die Reihenfolge ist dabei vollkommen egal genauso wie, das Auslassen von Argumenten
  • sieht schick aus und ist einfach zu pflegen

Wie macht man das nun für eigene framework-unabhängige Funktionen. Ungefähr so:

var welcome = function(options) {
	// default settings
	var defaults = {
		'name'     : 'World',
		'greeting' : 'Hello'
	};
	// set options
	var o = {};
	if (typeof options !== 'undefined') {
		o = options;
	}
	for (var i in defaults) {
		if (typeof o[i] === 'undefined') {
			o[i] = defaults[i];
		}
	}
	// your function logic
	var text = o.greeting + ', ' + o.name + '!';
	console.log(text);
}

welcome({'name': 'Tommy'}); // Hello, Tommy!

welcome({
	'name': 'Tommy',
	'greeting': 'Hi'
} // Hi, Tommy! 

Ich führe hier noch eine zusätzliche Variable o ein und kopiere das options-Objekt hinein. Das braucht es normalerweise nicht. Ich finde es nur schick, wenn man sieht, was in der Funktion namentlich übergeben wird (nämlich Optionen options) und im Nachhinein kürze ich das nur zu o ab. So muss ich nicht jedes mal options ausschreiben.

Author: "Trencavel"
Send by mail Print  Save  Delicious 
Date: Thursday, 16 Aug 2012 11:53

Cactus/Kaktus. Tommy Schmucker 12/08/2012. [CC BY-SA 3.0]

Author: "Trencavel"
Send by mail Print  Save  Delicious 
Date: Friday, 10 Aug 2012 15:43

Cologne/Köln. Tommy Schmucker 08/08/2012. [CC BY-SA 3.0]

Author: "Trencavel"
Send by mail Print  Save  Delicious 
Cartwheel   New window
Date: Sunday, 05 Aug 2012 12:16

Cartwheel. Tommy Schmucker 04/08/2012. [CC BY-SA 3.0]

Author: "Trencavel"
Send by mail Print  Save  Delicious 
Date: Saturday, 04 Aug 2012 10:57
Author: "Trencavel"
Send by mail Print  Save  Delicious 
Date: Monday, 30 Jul 2012 11:49

Police Car. Tommy Schmucker 29/07/2012. [CC BY-SA 3.0]

Author: "Trencavel"
Send by mail Print  Save  Delicious 
Date: Sunday, 15 Jul 2012 10:34

Die Methode indexOf() für das Array-Objekt ist erst seit Ende 2009 standardisiert. Bis dahin war die Methode auch noch nicht im Internet Explorer (hier IE 8) implementiert; in fast allen anderen Browsern schon. Die Methode kann man jedoch nachträglich selbst in sein Script einfügen um, die Funktionalität auch für den Internet Explorer <= 8 zu gewährleisten.

if (!Array.prototype.indexOf) {
	Array.prototype.indexOf = function (searchElement /*, fromIndex */ ) {
		"use strict";
		if (this == null) {
			throw new TypeError();
		}
		var t = Object(this);
		var len = t.length >>> 0;
		if (len === 0) {
			return -1;
		}
		var n = 0;
		if (arguments.length > 0) {
			n = Number(arguments[1]);
			if (n != n) { // shortcut for verifying if it's NaN
				n = 0;
			} else if (n != 0 && n != Infinity && n != -Infinity) {
				n = (n > 0 || -1) * Math.floor(Math.abs(n));
			}
		}
		if (n >= len) {
			return -1;
		}
		var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0);
		for (; k < len; k++) {
			if (k in t && t[k] === searchElement) {
				return k;
			}
		}
	return -1;
	}
}

(via)

Author: "Trencavel"
Send by mail Print  Save  Delicious 
Next page
» You can also retrieve older items : Read
» © All content and copyrights belong to their respective authors.«
» © FeedShow - Online RSS Feeds Reader