Freie Software

warning: Creating default object from empty value in /www/htdocs/w0062791/arnebab/modules/taxonomy/taxonomy.pages.inc on line 33.

Manipulation in Fremdbestimmter Kommunikation

Kommentar zum BeHaind Video Soziale Massenmanipulation - Politiker flippt aus - Sailor Moon

Ganz klar, es gibt Manipulation. Und die wird es immer geben, wenn die Kommunikation von anderen kontrolliert wird.

Ich verwende deswegen zusätzlich zu Twitter und G+ auch GNU social und Sone.

Let-Rekursion ist toll!

Ich habe dank Pythonista in Scheme-Land von Let-Rekursion gelesen. Bis vorgestern fand ich sie noch sinnlos kompliziert.

Das hat sich alles geändert, als ich wirklichen Code damit geschrieben habe - zum Beispiel die Fibonacci-Folge (syntax: wisp1 für Guile Scheme2) (eigentlicher Augenöffner):

define : fib n
    let rek : (i 0) (u 1) (v 1)
        if : >= i : - n 2
            . v
            rek (+ i 1) v (+ u v) ; else

Um Let-Rekursion zu beschreiben, werde ich diese Funktion jetzt zu einer Schleife in Python transformieren und mich zu immer eleganteren Formulierungen vortasten, bis ich wieder bei dem gerade gezeigten Code bin; dann aber mit Hintergrundwissen darüber, wodurch er elegant wird, mit dem Verständnis, was genau er tut, und mit einem Gefühl dafür, wie viel diese Eleganz ausmacht - und warum sie erstrebenswert ist.

Spaß mit import from in Python

→ Antwort auf Is it in this case : http://identi.ca/url/75523035 (see : [01:16]1 — Julien-Claude Fagot, die eine Antwort war auf One more reason why you should not use “from bla import foo”: print __import__(obs.__class__.__module__).__file__ — ArneBab

Datei: bla.py

def foo():
    print "bla"

Interaktiver Test:

\>>> import bla
\>>> bla.foo()
bla
\>>> def fu():
...   print "fu"
...
\>>> fu()
fu
\>>> from bla import foo
\>>> foo()
bla
\>>> bla.foo = fu
\>>> bla.foo()
fu
\>>> foo()
bla

Profifrage: Was passiert, wenn du from bla import foo nach bla.foo = fu ausführst?


  1. dsop: if you use 'bla.foo', then yes, you can assign to bla.foo and you'll see the change. If you do 'from bla import foo', then your locally imported 'foo' will not 'see' changes to bla.foo. 

Namespaces in Emacs Lisp - ohne den Interpreter zu ändern

» Adding namespace support to emacs lisp in a macro with just 15 lines of code - it’s things like this which make lisp feel like the mother of all languages.«1

(defmacro namespace (prefix &rest sexps)
  (let* ((naive-dfs-map
          (lambda (fun tree)
            (mapcar (lambda (n) (if (listp n) (funcall naive-dfs-map fun n)
                                  (funcall fun n))) tree)))
         (to-rewrite (loop for sexp in sexps
                           when (member (car sexp)
                                        '(defvar defmacro defun))
                           collect (cadr sexp)))
         (fixed-sexps (funcall naive-dfs-map
                               (lambda (n) (if (member n to-rewrite)
                                               (intern
                                                (format "%s-%s" prefix n)) n))
                               sexps)))
    `(progn ,@fixed-sexps)))
(provide 'namespace)
(require 'namespace)
(namespace foo
           (defun bar ()
             "bar")
           (defun foo (s)
               "foo"))
(foo-foo (foo-bar))

Disclaimer: This code is not perfect. It will likely fail in unpredictable ways, and the number of not supported corner-cases is probably huge - and unknown. But (and that’s the relevant result) you can do this right. Rainer Joswig gives pointers for that on Stackoverflow: “What you actually need is a so-called code-walker”. Also he shows examples where the code breaks.

(Der Hauptteil dieses Codes stammt von vpit3833 und konr und ich darf ihn verwenden. Er funktioniert dank einer Korrektur von Stefan. Er ist nicht perfekt, aber da er mir v.a. dazu dienen soll, meine eigenen Codeschnipsel besser zu organisieren, sollte ich das verschmerzen können)

Der Code mag schwer lesbar sein, hat aber riesige Implikationen: Du als einfacher Endnutzer des Lisp-Interpreters kannst Namespace-Support hinzufügen, ohne dass die Hauptentwickler dafür irgendetwas machen müssen.


  1. Der Code stammt größtenteils aus einer Diskussion auf Stackoverflow

Freie Software kann Geld bringen

→ Kommentar zum Artikel Open Source ist tot von Stefan Wienströer, in dem er sich über anmaßende Benutzer beklagt, die von ihm gratis Telefonsupport fordern….

Hi Stefan,

Lass dich bitte von so ein paar Idioten nicht unterkriegen. Wenn ich ein Programm geschrieben hätte, das so viele Leute toll finden, dass sogar Leute dabei sind, die Telefonsupport wollen, würde ich einfach antworten: „Du willst Telefonsupport? Kein Ding: 20€ die Stunde, dann machen wir das.

Iteratoren als Filter

Für meine Plotroutinen brauche ich oft Funktionen, die eine Liste an Messwerten durchgehen und nur diejenigen zurückgeben, die einem bestimmten Kriterium entsprechen. Wenn dabei die Anzahl der Messwerte in die Millionen geht, kann alleine schon die Liste der ungefilterten Messwerte den Arbeitsspeicher des Rechners sprengen.

Ich könnte jetzt einfach eine Funktion schreiben, die alle Werte liest, filtert und nur die Relevanten zurückgibt.

Das könnte dann etwa so aussehen:

Der Flattr-Knopf ist freie Software!

Der Flattr-Knopf ist freie Software! Wie es dazu kam:

Vor 2 Monaten habe ich in der Flattr-Gruppe gesagt, dass es für mich ein Problem ist, dass die Flattr-Knöpfe keine freie Software sind, und gefragt, ob jemand eine freie Alternative kennt.

Paper zu Org-Mode für „reproducible research“

Ich bin gerade auf das Paper hier gestoßen:

A Multi-Language Computing Environment for Literate Programming and Reproducible Research” (PDF)

Es beschreibt schön, was mit emacs org-mode möglich ist. Dazu gehören so spannende Punkte wie im Dokument mitgelieferter Quellcode, dessen Ergebnisse automatisch eingebunden werden, so dass die Dokumente aktuell bleiben können.

Kinder mit OLPC sind fast ein halbes Jahr weiter in ihrer kognitiven Entwicklung

Kommentar zu Keine guten Noten für Schulcomputer aus der taz.

Die Studie zum Erfolg des OLPC bescheinigt, dass Kinder mit OLPC intelligenter und sprachgewandter sind als Kinder ohne OLPC. Sie sind ihren Altersgenossen fast ein halbes Jahr vorraus. Und das nach 15 Monaten. Das heißt sie haben sich in 15 Monaten so weit entwickelt wie andere in 20 Monaten!

Verschlüsselte E-Mails an die Taz schicken?

Sehr geehrte Taz-Redaktion,

Update: Ja, geht! Einfach den entsprechenden Redakteur direkt anschreiben. Sie haben individuelle GnuPG Schlüssel.

Nachdem nun herausgekommen ist, dass letztes Jahr über 30 Millionen E-Mails abgehört wurden und dafür vermutlich fast alle E-Mails nach Schlüsselwörtern durchsucht wurden, würde mich interessieren, ob es möglich ist, Ihnen E-Mails verschlüsselt zu schicken, so dass diese nicht von Fremden gelesen werden können.

Wrapup: Make Sone scale - fast, anonymous, decentral microblogging over freenet

Sone1 allows fast, identi.ca-style microblogging in Freenet. This is my wrapup on a discussion on the steps to take until Sone can become an integral part of Freenet.

Current state

  • Is close to realtime.

  • Downloads all IDs and all their posts and replies → polling which won’t scale; short term local breakage.

  • Uploads all posts on every update → Can displace lots of content. Effective Size: X*M, X = revisions which did not drop out, M = total number of your messages. Long term self-DDoS of freenet.


  1. You can find Sone in Freenet using the key USK@nwa8lHa271k2QvJ8aa0Ov7IHAV-DFOCFgmDt3X6BpCI,DuQSUZiI~agF8c-6tjsFFGuZ8eICrzWCILB60nT8KKo,AQACAAE/sone/38/ 

Meine Neo-Tastatur - Mit GNU, Plussy und Infinite Hands

Dank dem GNU Head redrawn und Neo-Tastatur.de habe ich eine Tastatur, die meine Begeisterung für freie Software zeigt: Mit GNU, Plussy und Infinite Hands. Außerdem enthält sie die für wissenschaftliches Schreiben praktischen mathematischen und griechischen Zeichen, die Neo bietet. Aber genug geschrieben: Geben wir der Tastatur das Rampenlicht, das sie verdient ;-)

Tastatur

E-Mail mit Emacs: web.de

Das hier funktioniert seit dem Wechsel von web.de auf nur-SSL für mich nicht mehr. Ich habe noch nicht herausgefunden warum. Mein Bug-Report dazu.

Die Einrichtung von Emacs zum Verschicken von E-Mails hat mich etwas Zeit gekostet.

Mit Pulseaudio Toneingabe und -ausgabe gleichzeitig aufnehmen (unter GNU/Linux)

→ als Antwort für PiHalbe geschreiben: „wie kann man an einem Rechner einfach von Skype/mumble/… aufnehmen?“.

Zum Aufnehmen: pulseaudio, parecord. Gilt aber nicht als einfach :)

pactl list | grep -A2 'Quelle #' | grep 'Name:$' | cut -d" " -f2

oder besser:

LANG=C pactl list | grep -A2 'Source #' | grep 'Name:$' | cut -d" " -f2

Das gibt dir deine Geräte.

Bei mir gibt es das:

Sone: Pseudonymes Microblogging über Freenet

Sone ermöglicht identi.ca / twitter-ähnliche Kurznachrichten über Freenet. Damit bietet es vollständig anonymes und skalierendes Microbloggen. Es ist noch im Beta-Stadium, funktioniert für mich aber bereits sehr gut.

„Frei“, „Free“, „Libre“ Akronym

In identi.ca und twitter haben tzk, jargon, freezombie, chaosstar666, akfoerster und ich Akronyme zu dem „Frei“ in Freier Software für verschiedene Sprachen gesucht. Was wir bisher haben:

  • Frei, Robust, Ethisch und Innovativ”
  • Free, Reliable, Ethical and Efficient“

Freenet

“When free speech dies, we need a place to organize”

Freenet is a censorship resistant, distributed p2p-publishing platform.

GNU/Linux gewinnt gegenüber Windows und MacOSX an Marktanteil

→ Kommentar zu Das gescheiterte Linux-Projekt.

Mal mit Zahlen: Das ist wohl die Quelle: OS market share.

  • July 2010: Linux 0.93%

Erweitern wir mal die Statistik auf die Zeit seit August 2008:

  • August 2008: 0,82%
  • August 2009: 0,94%
  • July 2010: 0.93%

Absolut 0.1% mehr als 2008. Anders gesagt: Eine Zunahme um 12% in zwei Jahren.

Und wenn wir uns mal nicht July anschauen (in dem viele Deutsche Urlaub haben – und hier gibt es viele GNU/Linux Nutzer), sondern Mai, dann sind es dieses Jahr schon 1,13%.

Allerdings ist in den gleichen Zahlen auch ein Java ME mit 0,7% im August 2010 und ein iPhone mit 1,2%, was darauf hindeutet, dass die Gesamtzahl der Geräte, die genutzt werden, deutlich steigt.

Weltenwald-theme under AGPL (Drupal)

After the last round of polishing, I decided to publish my theme under AGPLv3. Reason: If you use AGPL code and people access it over a network, you have to offer them the code. Which I hereby do ;)
That’s the only way to make sure that website code stays free.

It’s still for Drupal 5, because I didn’t get around to port it, and it has some ugly hacks, but it should be fully functional.

Just untar it in any Drupal 5 install.

tar xjf weltenwald-theme-2010-08-05_r1.tar.bz2

Inhalte der Öffentlich Rechtlichen unter freie Lizenzen stellen

→ zu Depublizieren aus dem Tagesschau Blog. Sollte der Beitrag nicht mehr existieren, dann wurde er bereits depubliziert.

Ich möchte mich der Anfrage anschließen, alle Inhalte, für die Sie ausreichend Rechte haben, unter freie Lizenzen zu stellen.

Lizenzen, die sich eignen:

ARD muss löschen ⇒ Alle Rezepte runterladen

Nachdem nun die ARD ihre Artikel löschen muss und bereits 80% der Rezepte gelöscht wurden, speichere ich jetzt alle ihre Rezepte auf meinem eigenen Rechner.

Da ich das mit den anderen bisher nicht gemacht habe, nutze ich wget, um das für die noch existierenden nachzuholen. Ich vermute, dass du das auch machen willst, so dass dir die Rezepte, für die du GEZ gezahlt hast, nicht gestohlen werden können.

Deshalb ist hier mein wget-Aufruf:

No, it ain’t “forever” (GNU Hurd code_swarm from 1991 to 2010)

If the video doesn’t show, you can also download it as Ogg Theora & Vorbis “.ogv” or find it on youtube.

Freenet-Project als Sicherheit für Informanten

→ Kommentar zu Journalismus: Chancen für Mistkratzer von DRadio Wissen.

Um die eigenen Informanten online wirklich zu schützen, können Journalisten mit ihnen über das Freenet-Project kommunizieren.

Dort kann niemand wissen, wer etwas bestimmtes geschrieben oder gelesen hat, aber es ist gesichert, dass die Veröffentlichende immer die gleiche ist.

Und entsprechend können Journalisten die Identität einer Informantin einmal offline prüfen und dann über Freenet in Kontakt bleiben.

KDE 4.5 rc1 Bildschirmfoto mit Infos zum Selbermachen

Und mal wieder ist es Zeit für einen Screenshot, diesmal von KDE SC 4.5 release candidate 1:

KDE 4.5 RC1 screenshot

Klick einfach auf das Bild, um es in voller Größe und Schönheit zu sehen :)

Im Gegensatz zu meinem Screenshot von KDE 4.3.3 nutze ich diesmal fast nur Standardeinstellungen, weil ich wieder stärker sehen will, wie sich das Standard-KDE entwickelt.

Peinliche Situation: „Warum ist der Rechner so lahm!?!“

Eine wirklich wirklich peinliche Situation…lies’ selbst:

„Verdammt, warum ist das so langsam? habe ich irgendwo im Code was zerschossen?“

(suchen, suchen, 
 am Kopf kratzen, 
 weitersuchen) 

„Selbst das Bauen dauert ewig. Läuft da gerade ein anderer teurer Prozess?“

(`top`)

Emacs

Emacs ist ein freies Textbearbeitungsprogramm, das sowohl in der Konsole als auch mit grafischer Oberfläche genutzt werden kann, weitreichende Anpassung via Lisp ermöglicht1 (lisp lernen) und am Anfang der freie Software Bewegung stand (info).


  1. Das beinhaltet Dinge wie ein Mailprogramm oder Webbrowser, transparentes bearbeiten von verschlüsselten Dateien (wie in meinem Tagebuch), Integration von Versionsverwaltungssystemen, Hervorhebung und Vervollständigung von Quellcode und vieles mehr; alles vom Benutzer aktivierbar (teils über die zahlreichen Erweiterungen im Emacs-Wiki), wenn er es braucht, und trotzdem relativ schlank (im Vergleich zu vielen heutigen Texteditoren), 

Emacs als Tagebuch

Ich verwende nun seit einiger Zeit Emacs als Tagebuchprogramm. Mit ihm komme ich zum ersten Mal wirklich zum schreiben.

Der Aufruf bei mir ist schlicht

tagebuch

Den Grund, dass es für mich mit Emacs funktioniert, sehe ich darin, dass er mir genau das bietet, was ich brauche – und dabei verdammt schnell ist. Was ich brauche:

  • Verschlüsselung ohne Aufwand (epa-file integriert transparentes GnuPG, also wirklich sichere Verschlüsselung).

  • Sofort schreiben können (ist direkt bei der Zeile, bei der ich aufgehört habe).

  • Schnell. Ich will nicht warten müssen, bevor ich tippen kann (geht über eine eigene Initfile, die Codevervollständigung und so rauslässt).

  • Datum zum Eintrag (geht dank miniscript über „M-x datum“).

  • (Auch) Auf der (Text-)Konsole. Wenn ich am Systembasteln bin, will ich trotzdem Schreiben können.

  • Optional Versionsverwaltung (nur für backups; wenn es ein Mercurial repository gibt, speichere ich einen Schnappschuss via C-x v v).

Darum Emacs: Markdown mode

Ich könnte vieles sagen, das ich an Emacs toll finde, aber ich werde mich hier auf ein einziges Bild beschränken:

Emacs mit Markdown mode

Emacs mit Markdown Mode (und visual-line-mode); nur eine seiner kleineren Stärken, aber die, die mich heute gepackt hat.

Inhalt abgleichen