Unsere Plattform für Ideen, Austausch, Sammlung und Dokumentation von Elektronikprojekten und diversen anderen interessanten Dingen... Arduino, Raspberry Pi, Robotik, etc.
Freitag, 4. März 2016
Maker Story Parodie
Samstag, 20. Februar 2016
Vimwiki - Personal Wiki in Vim
Ein Vim sie zu knechten
Vim ist einer der besten Texteditoren, die ich kenne. Zwar fragt sich der VIM-Neuling anfänglich, ob er bei einer Computer-Variante von "Verstehen Sie Spaß" gelandet ist, aber nach einer kurzen Eingewöhnungszeit stellt man dann erstaunt fest, dass man in diesem Editor extrem effizient arbeiten kann, sobald man mal eine paar grundlegende Konzepte und Befehle verinnerlicht hat. Aus diesem Grunde verwende ich ihn seit vielen Jahren für eigentlich alles, was mit Text zu tun hat: Programmieren, Texte schreiben (z.B. in LaTeX) config Files anpassen etc.
Was einen guten Editor ausmacht ist aber nicht nur sein Interface, sondern vor allem, dass man ihn den persönlichen Bedürfnissen anpassen kann. Faustregel bei der Editor-Wahl: Wenn sich das Ding nicht gut konfigurieren lässt und es Erweiterungen nicht unterstützt – Finger weg. Vim lässt sich durch Plugins erweitern, die man entweder in Vimscript schreiben kann, oder aber auch in Python. Ähnliches gilt für den Erzrivalen Emacs, nur dass hier LISP das Mittel der Wahl ist.
Aber wieso mache ich so viel Aufhebens um einen Texteditor? Weil Textfiles unglaublich praktisch sind. Das wird nun vielen Leuten komisch vorkommen und so mancher hat heute gar keine Ahnung mehr, was ich mit Textfile überhaupt meine, wo doch jede Software inzwischen ein neues Dateiformat definiert, das zu allen anderen inkompatibel ist. Ist ja auch viel besser für den Hersteller, wenn ein Wechsel zur Konkurrenz durch die Unverträglichkeit der Dateien erschwert wird.
Aber eigentlich verwende ich stinknormale Textfiles andauernd – z.B. für
- ToDo Listen
- Notizen
- Mitschriften aus Meetings
- Meinen Wunschzettel
- Readme Files für Programme
- Readme Files für Folder in meinem Dateisystem
- ...
Das ist praktisch, denn es ist kinderleicht ein Textfile zu editieren, man kann es sehr effizient durchsuchen – im Editor oder z.B. mit grep, ich kann es mit diff mit einer anderen Version vergleichen, alle Versionierungssysteme kommen damit klar, es ist schlank, es funktioniert problemlos unter LINUX, Windows, Mac, Android, iOS, DOS, CPM, OS/2, dem Betriebssystem von HAL9000 und überhaupt überall.
Mit anderen Worten es ist ein extrem einfaches und deshalb mächtiges Dateiformat.
Ein Vim sie zu finden
Zahlreiche Textfiles finden sich verstreut auf meinem Computer – ich organisiere sie so gut ich kann durch sinnvolle Ordnerstruktur. Im Großen und Ganzen klappt das gut. Manchmal denke ich mir aber, es wäre nett, wenn ich auch ein tool hätte, das bestimmte Dokumente stärker zusammenhält und verlinkt. Z.B. meine ToDos, Meetingnotizen und kleinere Texte in denen ich meine Gedanken ordne, Konzepte erarbeite etc. Ich hatte in der Vergangenheit schon gelegentlich verschiedene GUI Tools ausprobiert, die versprachen, meine Produktivität zu steigern, das Denken zu fördern, Verbindungen zu managen und den Weltfrieden herbeizuführen. Lange Rede kurzer Sinn – nach einer, meist kurzen, Testphase war ich zurück bei Textfiles in Folders, ggf. mit begleitenden Medien und Dokumenten, wie Photos, PDFs etc.
Warum? Weil alle diese vermeintlichen Produktivitätsbooster irgendwie unbequem zu bedienen waren, nur auf einer oder wenigen Plattformen funktionierten, untereinander vollkommen inkompatibel waren und einfach nervten.
Kürzlich bin ich nun auf etwas sehr angenehmes gestoßen: vimwiki. Das ist exakt, was der Name suggeriert: eine Implementierung eines Wiki Systems als Vim-Plugin. Wikis wurden ursprünglich erfunden, um es dem weniger HTML-erleuchteten Bürger zu ermöglichen, effizient kleine Webseiten zu erstellen, sie untereinander zu verlinken und auf diese Weise eine Menge wertvolle Information organisiert zu kriegen. Wikipedia ist das Vorzeigekind der Familie. Aber es muss nicht gleich ein Lexikon sein – ein Wiki ist auch unglaublich nützlich, um seine eigenen Gedanken Festzuhalten und Informationen, die man von irgendwo her hat zu organisieren. In der Tat waren auch veritable Wiki System unter den oben verworfenen Lösungen – sie waren einfach Overkill für das, was ich haben wollte.
Vimwiki implementiert nun ein minimalistisches Wiki. Die Syntax erinnert an Markdown, ist aber nicht exakt die gleiche, was aber echt wurscht ist. Und so habe ich angefangen, mir ein persönliches Wiki zu bauen und es füllt sich stetig:
- Todo Liste (eigentlich mehrere, nach Kontext geordnet)
- Lösungen zu schwierigen Computer-Problemen, die ich nicht verlieren möchte
- Bookmarks mit ausführlichen Kommentaren für mich selbst
- Ideen für Bastelprojekte und Blog Beiträge
- Outlines für längere Texte, an denen ich arbeite
- Planung unserer Urlaubstermine
- Skizzen für Blogbeiträge
- Ideen und Notizen zu Dingen, die gerade lerne oder lernen möchte
- Meine Wunschliste
- Geschenkideen für andere
- und vieles mehr
Das Ergebnis besteht aus einer Vielzahl von Textfiles im vimwiki Markup, die in einem speziellen wiki Ordner liegen und untereinander durch Hyperlinks verbunden sind. Öffne ich das Ganze in Vim fühlt es sich an, wie Websurfen mit einem Text-basierten Browser (lynx/w3m o.ä.). Ich kann von meiner Hauptseite aus wie im Flug durch diverse Links navigieren, bis ich im Zieldokument ankomme. Innerhalb der Dokumente kann ich dann mit den gewohnten Vim Befehlen arbeiten und das Syntaxhighlighting machte es leicht, die Dokumentenstruktur zu erfassen.
Vimwiki kennt mehrere Levels von Überschriften, geordnete und ungeordnete Listen, die sich auch schachteln lassen, Links nach außen (auf Files, Webseiten, Bilder, etc.). Simple Textauszeichnungen, wie fett oder kursiv fehlen ebenfalls nicht.
Ein Vim sie ins Dunkel zu treiben und ewig zu binden
Und natürlich lässt sich das Ganze (oder einzelne Dateien) auch leicht in HTML verwandeln. wozu das nützlich ist? Zum Beispiel, um sein Wiki in aufgehübschter Form zu durchforsten, oder es anderen lesend zur Verfügung zu stellen.
Oder zum bloggen -- dieser Post wurde komplett in vimwiki geschrieben, nach HTML konvertiert und auf blogspot kopiert...
Sonntag, 14. Februar 2016
Code snippet beautification in vim
Nun bin ich ein alter VIM user, denn in meinen Augen ist das der beste Editor der Welt und mithilfe diverser Plugins kann man ihm ungeahnte neue Trick beibringen. Einige erstaunliche Sachen kann er aber auch schon ohne solche Erweiterungen. Dazu gehört ein sehr hilfreiches Syntax-Highlighting für ziemliche alle Programmiersprachen, die es so gibt. Und wie es der Zufall so will bringt vim auch einen html Konverter mit! Um den aufzurufen gibt man einfach im Kommandozeilen Modus folgendes ein:
:TOhtml
Das Ergebnis landet in einem neuen Buffer und kann von dort als html File gespeichert oder eben in den Blog kopiert werden – zumindest der Teil zwischen den body tags. Probieren wir das also mal aus mit einem code snippet für die Collatz conjecture. Das sieht dann so aus:
def collatz(number): path = [number] while number != 1: if even(number): number /= 2 else: number = number * 3 + 1 path.append(number) return(path)
Die Formatierung passt schon, aber Syntax-Highlighting wäre toll. Der Grund das es fehlt ist, dass vim per default CSS verwendet, was aber problematisch ist, wenn man nur das snippet kopiert. Man kann das aber auch abschalten, und zwar so:
:let html_use_css=0
Und dann wären Zeilennummern noch schön. Also:
:set number
Das Ergebnis gefällt mit schon sehr gut:
19 def collatz(number):
20 path = [number]
21 while number != 1:
22 if even(number):
23 number /= 2
24 else:
25 number = number * 3 + 1
26 path.append(number)
27 return(path)
Die Zeilennummern gehen bei 19 los, weil das die Zeile im Original File war. Wenn ich für das Snippet lieber bei 1 starten möchte dann muss ich vorher eben noch das Snippet in ein eigenes File tun - auch kein Akt. Und wenn einem das Farbschema nicht gefällt gibt es natürlich diverse zur Auswahl. z.B.:
:colorscheme delek
und man bekommt dies (diesmal mit Nummerierung bei 1 startend):
1 def collatz(number):
2 path = [number]
3 while number != 1:
4 if even(number):
5 number /= 2
6 else:
7 number = number * 3 + 1
8 path.append(number)
9 return(path)
Freitag, 29. Januar 2016
Gedankenstürme - oder doch Nachwirkungen der MakeMunich?
Dann folgte das Übliche: ersten Roboter aufbauen, Software runterladen und spielen. Mein 7-jähriger Sohn hatte mindestens genauso viel Spaß wie ich. muss ihm nur noch klarmachen, dass es MEIN Mindstorms ist ;-). Ich erspare hier die langweilige Auflistung des Lieferumgfangs, der Leistungsdaten, etc. Das wurde im Netz bereits zur Genüge behandelt.Gesagt sei nur, das Ding ist echt geil :-). Auch ohne Computer lässt sich das Ding rudimentär über den Brick direkt programmieren bzw. mit der Infrarotfernsteuerung oder über Bluetooth und Android/iOS App fernsteuern - was allein für Jüngere schon ziemlich Laune macht.
Aber mein Sohn will natürlich gleich was eigenes bauen, und zwar einen Drachen. Den hat er auch im Kopf geplant und den Oberteil mit Flügeln selbst konstruiert. Das Ding ist echt cool geworden.
Ich bin nun für die Beine und das Laufen verantwortlich, hab dafür aber nur mehr einen mittleren Motor zur Verfügung, hmmm. Die beiden großen brauchen wir für die Flügel ;-). Aber mit etwas Geschick und Inspirationssuche bei diversen Onlinequellen, hab ich eine "lauffähige Lösung" gebaut (Video als Beweis, dass das Ding echt läuft). Natürlich reicht das meinem Sohn nicht, er will auch rückwärts und lenken können - das geht halt mit einem Motor schwer. Daher hab ich gleich einen zweiten bestellt - der kommt morgen ;-).
Übrigens: die ganze Firmware des auf Linux basierenden EV3-Bricks ist quelloffen und auf der Lego Seite zum Download verfügbar. Zusätzlich verschiedenste SDKs für neue Sensoren, Firmware und Kommunkation. Auch die Hardware ist komplett offen, alle Schältplane, sogar die Ladeschaltung des Akku! Das gibt es bei so einem Produkt selten, macht es aber extrem attraktiv für Hacker.
Echt kein Mist: Gist
Das Ding ist selbsterklärend, es gilt nur zu beachten, dass man einen Github-Account benötigt, wenn man Gists hinterher nochmal editieren möchte. Auch bekommt man beim initialen Befüllen kein on-the-fly Syntax-Highlighting und Einrücken. Daher zuerst eingeloggt den leeren Gist mit der entsprechenden Dateierweiterung speichern und gleich wieder zum Editieren öffnen. Dann gibt's on-the-fly Formatierung und Einfärbung.
3-Servo Zweifüßer Teil #1: Mechanik
Als nächstes werden auf zwei Standardservos (ich verwende RS-2 von Modelcraft vom Völkner bzw. Conrad) Holzstückchen mit Heißkleber aufgeklebt, wie auf den folgenden Bildern zu sehen. Die Servohalterungen werden mit eine Feile abgeflacht, sodass sie mit dem Holzplättchen plan abschließen.
Die beiden Flächen die sich auf dem Bild unter diesem Absatz berühren, müssen gut gegeneinander gleiten können und werden mit einer Feile zu diesem Zweck entsprechend behandelt.
Nun werden 3 Stücke mit genau Servolänge (inkl der angeklebten Holzplättchen) abgesägt und eines der länge nach halbiert.
Die 4 enstandenen Stücke werden folgendermaßen mit ein wenig Heißkleber aufeinandergeklebt, um die folgende Bohrung zu erleichtern.
Nun brauchen wir ein reines Längs-Servohorn. Da bei meinen nur Kreuzhörner dabei waren, hab ich diese mit der Zange zurechtgeknipst. Weiters habe ich die Oberseite des Horns plan geschliffen.
Das Servohorn kommt jetzt auch mit Heißkleber auf den "Holzstapel".
Jetzt folgen die versprochenen Löcher ;-).
Danach das ganze wieder in seine Einzelteile brechen und somit haben wir alle Teile beieinander und können bald mit der Montage beginnen.
Sonntag, 17. Januar 2016
Make Munich 2016
Es gab unendlich viel zu sehen und ich kann unmöglich alles vorstellen, aber ein paar Impressionen sollen gezeigt werden:
| Mr. Beam – ein low-power, low-cost Lasercutter |
| Analoger Synthesizer |
| Ein riesiger 3D-Drucker aus dem Maker Space Garching der TUM |
| Ein High-Tech Gewächshaus |
| Raspberry-Pi gesteuertes Auto |
| Dieses Gerät fabriziert 3D-Drucker-Filament aus Plastikgranulat |
| Optische Bank aus Lego |
| Tanzender Roboter, Smartphone gesteuert. |
| Diese Dame macht Werbung für Arduino. |
| Rubik's Cube solver aus Lego Technik |
| Uranglasmurmeln - hier zu einem geheimnisvoll blinkenden Anhänger verarbeitet. |
| Der Koffer für den James-Bond Bösewicht in Dir... |
| Teslaspule am Heise Stand |
| Amateurfunker zeigen tolle Analogtechnik. |
| Dieser Herr (Jan Hasenbalg) hat die "Isomatte der Zukunft" anzubieten: lässt sich in verschiedene Fomen biegen, zu Clustern verbinden etc. |
| Robo-Cup |
| Zuri von Zoobotics: Tolle Quatro- und Hexapod Roboter Kits. |
| Viele Fablabs und Makerspaces waren da. Hier mal ,ganz lokalpatriotisch, einer aus der Oberpfalz. |
| Hacklace |
| Lustiges Kunstprojekt: "Safe Coffee". Die Überwachungskanmeras sind garkeine mehr, sondern spenden Kaffee. Und da zapfe ich mir doch gleich mal einen. |
| Ein Bild vom Selfie-Bot. |





