2009

Dez. 3, 2009

metrische Zeit

Zeitangaben haben ein grosses Problem: Sie entsprechen so ganz und gar nicht den SI-Einheiten.
  • Ein Jahr hat 365(.25) Tage
  • Ein Monat hat mal 28, mal 30, mal 31 Tage
  • Ein Tag hat 24 Stunden
  • Eine Stunde hat 60 Minuten, eine Minute hat 60 Sekunden
  • Immerhin alles unter Sekunde wird in SI-Einheiten zu Sekunde (Milli-, Nano-, Pico-, etc.) gerechnet.
Für den Zeitraum eines Tages gibt es schon eine gute Alterantive: Beats. Nach der Swatch-Internetzeit hat ein Tag 1000 Beats. Da ein Tag 1440 Minuten hat, ist ein Beat also 1,4 Minuten, also 86 Sekunden lang. Damit ist ein Millibeat 0,0014 Minuten oder 0.0864 Sekunden lang, also etwas weniger als eine Zehntelsekunde.

Damit kann man rechnen, das Problem scheint geloest.

Schwieriger wird es bei den Tagen die ein Jahr hat. Die Länge eines Tages ist festgelegt durch eine Umdrehung der Erde, und die Anzahl der Tage eines Jahres durch einen Umlauf der Erde um die Sonne. Wuerde man die Länge eines Tages anders definieren, dann wären Tag- und Nachtzeiten nicht mehr konstant, sondern würden wandern, sodass es an manchen Tagen um Mitternacht hell ist und dafür Mittags der Mond scheint. Das klingt nach keiner so guten Idee. Mehr dazu gleich.

Erst einmal die nächste verbesserbare Einheit: Monate. Das Monatssystem ist total unsinnig mit den verschieden vielen Tagen und wandernden Wochentagen (in zwei aufeinanderfolgenden Jahren hat der gleiche Tag einen anderen Wochentag, aber auch in zwei aufeinanderfolgenden Monaten (ausser Februar/März in nicht-Schaltjahren)).

Eine Idee die naheliegt ist Mond-Monate zu verwenden. Wenn man sagt ein Mond-Monat hat 28 Tage, dann fallen die Wochentage auf die gleichen Tage in unterschiedlichen Monaten. Allerdings ist ein Mond-Monat tatsächlich nur 27,3217 Tage lang, weswegen mit dieser Einheit dann die Mondphase jeden Monat um einen Tag ungenau geht und somit "wandert". Und 13 Monate sind auch keine gute Zahl um damit zu rechnen.

Ein alternatives System ist der Diskordische Kalender. Dieser definiert 5 Jahreszeiten mit jeweils 73 Tagen. Dadurch dass gleichzeitig nur 5 Wochentage verwendet werden, fällt auch hier immer der gleiche Wochentag auf den gleichene Tag. Da der Schalttag alle 4 Jahre keinen Wochentag hat, passt das sogar in Schaltjahren. Mit 5 Monaten kann man schon besser rechnen, aber 73 Tage sind doch eine etwas ungünstige Zahl, zudem es auch noch eine Primzahl ist, also nicht gleichmässig aufgeteilt werden kann.

Da liegt nahe, die Zahl der Umdrehungstage pro Umlaufjahr zu aendern. Schön wäre eine Zahl wie 100 oder 1000 Tage pro Jahr. Dazu ist es noetig, die Erde auf eine nähere byw. fernere Bahn zu bringen um diese Werte zu ändern. Dabei darf man jedoch nicht nur an Datumsfragen denken, da durch die veränderte Entfernung sich auch das Klima ändern wird.

Beide Zahlen sind leider utopisch, da es dann hier empfindlich zu kalt bzw. zu warm würde. Da wir allerdings etwas Klimaerwaermung haben, ist die sinnvollere Richtung etwas Abkühlung, damit könnte man die Erde in eine sonnenfernere Bahn bringen, in der sie dann eine Umlaufzeit von 500 Tagen hat. Das würde das rechnen erleichtern (mit 1000 rechnen und durch 2 teilen), und die Klimaerwärmung wäre endlich besiegt.

Mit dieser schönen Zahl kann man dann Mond-unabhängig z.B. 10 50-Tage Monate verwenden, oder aber 20 25-Tage Monate. 5 100-Tage Jahreszeiten sind auch praktisch zum rechnen, damit lassen sich Gehaltsabrechnungen und Ähnliches auch mit weniger Mathematik bewältigen.

Um das zu schaffen, sollte man also in Erwägung ziehen einen erneuten World-Jump-Day zu veranstalten. Um von einer Umlaufzeit von 365 Tagen auf eine von 500 Tagen zu kommen, müssen diesmal dann aber auch wirklich alle Menschen mitmachen.

Kategorien Allgemeines Fun
Tagged Jahr Mond Monat Tag diskordischer Kalender Internetzeit Beats Si-Einheiten metrisch praktisch albern
Mobil qrcode zeigen

0 Kommentare

Nov. 19, 2009

Bash-Prompt

Mal ein neuer Post zu praktischen Bash-Prompts, nachdem ich den alten doch wieder um einiges überarbeitet habe.

Ziele:

  • Übersichtlichkeit
  • Möglichst lange Eingabezeilen ohne Umbruch
  • Prompt soll auf verschiedenen Hosts unterscheidbar sein
  • Der Prompt soll möglichst informativ sein.
Lösung:
  • Zweizeiliger Prompt, eine Zeile mit vielen Informationen, eine mit nur einem > und der Eingabe dahinter.
  • Username und Hostname Farbkodiert, geschieht automatisch ueber eine Hashing-Funktion
  • Zeitausgabe ermöglicht es einfach zu sehen wann der Befehl beendet wurde, und damit auch wie lange er gebraucht hat.
  • Smiley in der Ausgabe zeigt ob der Befehl korrekt gelaufen ist (Return Code 0 = kein Fehler)
Um Farben aus hostname/username zu generieren, kann man einfach md5sum als hash-Funktion nutzen, und dann das erste Byte der md5summe ansehen. Das tut die Funktion hashcolor in meiner .bashrc. Dabei habe ich mir noch die Freiheit genommen, die Farben so zu sortieren, dass der Text  "root" eine Rote Farbe bekommt.

die Umgebungsvariable PROMPT_COMMAND darf einen Befehl enthalten, der ist in dem Falle die Funktion Prompt, welche auf der Linux-Konsole nur setps1 aufruft um den Prompt zu ändern, und in X-Terminals aber auch settitle und mittels Escape-Code den Titel des Fensters auf das letzte genutzte Kommando zu setyen.

Der Prompt sieht bei mir jetzt so aus:

12:59:56 :-) username@hostname:~

>

Die .bashrc dazu:
# If running interactively, then:
if [ "$PS1" ]; then
    ## aendert den xterm-Titel in das zuletzt benutzte Kommando usw.
    xtitle() {
        echo -ne "\033]0;[$(history 1 | cut -b 8-30)] $USER@$HOSTNAME:$PWD\007";
    }
    setps1() {
        if [ $? -eq 0 ];then smiley=":-)"; else smiley=":-(";fi
        export PS1="\t $smiley \[`hashcolor $USER`\]\u\[$grey\]@\[`hashcolor $HOSTNAME`\]\H\[$grey\]:\[$yellow\]\w\n\[$normal\]> "
    }
    if [ "${TERM}" != "linux" ]; then
        prompt() {
            setps1
            xtitle
        }
    else
        prompt() {
            setps1
        }
    fi
    PROMPT_COMMAND='prompt'
fi

normal='\e[0m' black='\e[0;30m' bblack='\e[1;30m' red='\e[0;31m' bred='\e[1;31m' green='\e[0;32m' bgreen='\e[1;32m' yellow='\e[0;33m' byellow='\e[1;33m' blue='\e[0;34m' bblue='\e[1;34m' purple='\e[0;35m' bpurple='\e[1;35m' blue2='\e[0;36m' bblue2='\e[1;36m' white='\e[0;37m' bwhite='\e[1;37m' grey='\e[0;39m' bgrey='\e[1;39m'

bgnorm='\e[0;0m' bgblack='\e[0;40m' bgred='\e[0;41m' bggreen='\e[0;42m' bgyellow='\e[0;43m' bgblue='\e[0;44m' bgpurple='\e[0;45m' bgblue2='\e[0;46m' bggrey='\e[0;47m'

function hashcolor { case $(echo $1|md5sum|cut -b 1) in 0)echo -en $red;; 1)echo -en $bblue;; 2)echo -en $green;; 3)echo -en $bgrey;; 4)echo -en $yellow;; 5)echo -en $byellow;; 6)echo -en $blue;; 7)echo -en $bred;; 8)echo -en $purple;; 9)echo -en $bpurple;; a)echo -en $blue2;; b)echo -en $bblue2;; c)echo -en $grey;; d)echo -en $bgreen;; e)echo -en $white;; f)echo -en $bwhite;; esac }

Die interessanten Manpages zu dem Thema sind:
  • man console_codes erklärt die Escape Codes z.B. für Farben oder auch um den Titel eines X-Terminals zu ändern.
  • man bash erklärt, dass man Farbcodes in \[...\] einschliessen sollte, damit sie den Zeilenumbruch im Prompt nicht kaputt machen.

Kategorien Software Linux
Tagged Bash Prompt color farben
Mobil qrcode zeigen

3 Kommentare

Nov. 1, 2009

Halloween Google

Die robots.txt von Google sieht gerade interessant aus:

User-agent: Kids Disallow: /tricks Allow: /treats

Kategorien Allgemeines
Tagged Google Halloween robots.txt
Mobil qrcode zeigen

0 Kommentare

Okt. 30, 2009

Finger weg von Ubuntu One?

Dass es gefährlich ist private Daten unverschlüsselt auf fremden Servern zu lagern, sollte einem zwar klar sein, aber für manche Daten reicht diese Sicherheit ja vielleicht. Aber Ubuntu One hat eine ähnliche Klausel wie ICQ in ihren "Terms and Conditions":
9. Collection and use of your data. We may collect certain non-personally-identifiable information, which is located on your computer. The information collected may include statistics relating to how often data is transferred, and performance metrics in relation to software and configuration. You agree this information may be retained and used by Canonical.
Ähnlich wie im Falle ICQ kann man argumentieren "ja die meinen ja nur Statistiken ...", rechtlich jedoch akzeptiert man dass alle Daten die einen nicht persönlich identifizieren von Canoncial gesammelt und benutzt werden dürfen. Also Rat für alle die ihre Daten nicht Canoncial schenken möchten: Finger weg von Ubuntu One!

Ach ja, nur damit es erwähnt ist, sie lassen sich natürlich auch zusichern, dass sie die Nutzerdaten an die Polizei weitergeben dürfen, wenn sie gesetzlich dazu verpflichtet sind. Da wird man aber kaum einen Anbieter finden, der keine solche Klausel hat.

Kategorien Linux Sicherheit Datenschutz
Tagged Daten Ubuntu One Terms Conditions persönliche collect personally-identifiable
Mobil qrcode zeigen

0 Kommentare

Okt. 18, 2009

Ganz komischer Xorg Fehler

Vielleicht weiß ja jemand die Antwort, der Fehler ist sehr seltsam. Also ich kann in Browsern (Firefox, Opera nicht aber Konqueror) keine Zeichen mit AltGr eingeben, in anderen Programmen als den Beiden aber schon. Das wäre ja halb so komisch, und vielleicht ein Fehler in der xorg.conf bzw. der Tastaturconfig von KDE(4), aber ich habe zusätzlich noch einen Effekt:

Ich nutze Fokus-folgt-der-Maus. Wenn ich ein Fenster im Vordergrund vor dem Browser habe, welches den Fokus momentan hat, und der Mauszeiger befindet sich über dem Browser, kann ich in dem Fenster tippen, aber keine Zeichen die AltGr als Taste benötigen. befindet sich der Mauszeiger über dem Fenster mit Fokus, kann ich ganz normal alle Zeichen tippen.

Weiß irgendwer, was das für ein komischer Fehler sein kann?

Kategorien OpenSource Linux
Tagged Browser Opera Firefox Fehler Xorg komisch
Mobil qrcode zeigen

2 Kommentare

Mai 3, 2009

Aktion gegen Internetausdrucker

Unter www.politiker-stopp.de findet sich Code um seine Seite gegen Internet-Ausdrucker zu schützen. Einfach mal die Druck-Vorschau auf der politiker-stoppseite ansehen :-).

Hier im Blog wird der Code sicher nie integriert, da einige der Artikel es vielleicht wert sind ausgedruckt zu werden. Aber trotzdem eine lustige Aktion.

Allerdings könnte es sein, dass einige der Politiker mit alten Rechnern surfen, deren Browser noch kein (print-)CSS können. Das wäre natürlich eine (illegale?) Umgehung des Druck-Schutzes!

Kategorien
Tagged Aktionen HTML Web Internetausdrucker Internet-Ausdrucker Politiker-Stopp Drucken CSS Stoppseite
Mobil qrcode zeigen

0 Kommentare

April 16, 2009

Paxle Suchframework released

Paxle ist ein komplettes, modulares Suchframework auf OSGi-Basis, bei dem alle funktionalen Komponenten sauber voneinander getrennt sind und deshalb einzeln ersetzt werden können. Metasuchfähigkeit ist über die Definition mehrerer Suchprovider möglich. Zusätzlich zur Anbindung externer Quellen enthält Paxle auch einen Suchprovider der eine durch Crawling des Internets erzeugte lokale Datenbank auf dem Computer des Nutzers abfragt. Die Datenbankerstellung ist ebenfalls von Paxle abgedeckt, allerdings lassen sich auch andere DBs mit Paxle betreiben. Paxle hat eine wenig restriktive Lizenz und ist Open-Source-Software im Sinne der OSI und FSF.

Kategorien Software OpenSource
Tagged Suchmaschine Suchmaschinen Paxle
Mobil qrcode zeigen

1 Kommentar

Feb. 25, 2009

exceptions.TypeError: Error when calling the metaclass bases

Wenn Python diesen komischen Fehler anzeigt, heißt das oft dass man versucht ein Modul (statt einer Klasse) zu instanziieren.

Kategorien Software Kurz bemerkt
Tagged Python metaclass TypeError
Mobil qrcode zeigen

0 Kommentare

Feb. 24, 2009

.ape / .cue Dateien konvertieren

APE ist das Monkey's Audio Format, ein verlustfreier Audiocodec. Abgesehen davon kennt natürlich kaum ein Player das Format. Man kann die Dateien aber unter Linux mit den Programmen mplayer, bchunk, lame relativ einfach konvertieren: mplayer -vo null -vc null -ao pcm:fast *ape;bchunk -w audiodump.wav *.cue track;rm audiodump.wav;for i in *.wav;do lame --preset extreme $i;done;rm *.wav Im Detail: mplayer -vo null -vc null -ao pcm:fast *.ape Spielt die .ape Datei quasi ab und speichert das Ergebnis in audiodump.wav. bchunk -w audiodump.wav *.cue track trennt audiodump.wav an den Stellen die in der .cue Datei stehen, und nennt die Ergebnisse trackXY.wav. Mit -w schreibt es zusätzlich Wave-Header. rm audiodump.wav Entfernt audiodump.wav damit es nicht auch (als Ganzes) nochmal kodiert wird. for i in *.wav;do lame --preset extreme $i;done Kodiert die .wav in .mp3 mit sehr guter Qualität. rm *.wav Entfernt die übrig gebliebenen .wav Dateien.

Die Commandline geht davon aus, dass sich im Verzeichnis nur eine .ape und eine .cue Datei befinden, und dann funktioniert der Befehl ohne die Namen zu kennen. Befinden sich mehrere im aktuellem Ordner, funktionieren die Anweisungen nicht, weil zum Beispiel der erste audiodump.wav durch den zweiten direkt überschrieben wird.

Kategorien Software Linux
Tagged APE CUE konvertieren
Mobil qrcode zeigen

3 Kommentare

Feb. 19, 2009

Wie man Wikipedia wirklich ärgert

XKCD beweist, dass man Ereignisse schaffen kann, über die Wikipedia nicht neutral berichten kann. Aber so ist das ganze halb so witzig, weil die Miesepeter von Admins den Artikel einfach löschen und sperren werden, so wie man das kennt.

Variante: 3. Option einführen: wenn in einer Woche KEIN Artikel existiert, dann bekommt Wikipedia das Geld. Damit ist auch eine Artikelsperre nicht mehr neutral.

Kategorien
Tagged Wikipedia XKCD Neutralität
Mobil qrcode zeigen

0 Kommentare