Elektronikprojekte

Elektronikprojekte

Oder wie man das auch immer nennen möchte

Die meisten Einsteiger assoziieren und suchen sowas mit "Arduino" oder anderen Microcontrollern. Ich bin immer noch in der Erkundungsphase, ein Arduino oder gar ein Raspberry können extrem viel Komplexität abfedern und die notwendige Peripherie/Komponenten auf ein Minimum von Sensoren und Aktoren reduzieren. Und weil ich das tendenziell eher langweilig finde (programmieren kann jeder), suche ich bewusst nach Projekten, die ihren Fokus woanders haben. Was mir bei bisherigen "Top 10 Arduino Projects" immer auf den Zeiger ging, war die bunte Durchmischung von "bringe drei LEDs zum Leuchten", "hacke deinen SmartTV" und "baue deinen eigenen Quadcopter". Ich hoffe, dass ich das besser hinbekomme. Was ich nicht beschreiben werde, sind einzelne elektronische Komponenten. Das ist woanders besser beschrieben. Was ich an Begriffen verwende, sollte wahlweise bekannt oder die Recherche dazu Teil des Projekts sein.

Weiterlesen…

Scrape the web

Scrape the web

Kleine on-the-fly Dokumentation, wie ich einen Webcomic lokal verfügbar mache, um ihn mit einem Bildbetrachter ansehen zu können (rant: weil jemand die Webseite mobile first designed hat und dabei vergaß, dass die Gäste möglicherweise mit einem 27" Bildschirm daher kommen).

Zum Vorgehen

Was

Zunächst müssen wir wissen, was genau wir abziehen möchten. In meinem Fall sind das Bilder (die Comicseiten) und etwas Struktur. Die Cover sind zweitrangig, aber auch nett zu haben.

Weiterlesen…

Spinnendings, ein Zwischenstand?

Was für ein Spinnendings? Achso, ja, fangen wir damit an.

Motivation

Vor ein paar Jahren hat sich irgendwann der Wunsch ergeben, einen achtbeinigen Laufroboter zu programmieren - also der Laufalgorithmus war das, was mich interessiert hat. Von Mechanik war ich zu dem Zeitpunkt noch weit weg. Einen ganzen Simulator zu schreiben war mir zu aufwändig, weswegen ich mich auf fertige Umgebungen wie Scrap Mechanic gestürzt habe - was aber sehr regelmäßig sehr einschränkend (oder kompliziert) war. Kurzum: es gab in der Richtung nichts zu holen.

Weiterhin enttäuschend ist die Auswahl an fertiger Hardware: Hexapods (mit sechs Beinen) gibt es wie Sand am Meer (vergleichsweise), "Spiderbots" mit sechs Beinen ebenso, und extrem wenige Modelle mit acht Beinen. Für einen Batzen Geld bekommt man ein Metallgerüst von Lynxmotion3, was mir aber zu groß und zu teuer war.

Auf dem 35C3 habe ich dann "Projekt Hannah"1 kennengelernt. Selbe Motivation, allerdings mit der konsequenten Umsetzung in Hardware (wenngleich auch ein Simulator parallel entwickelt wurde). Die Vielfalt an 3D-Druckern auf dem Kongress war dann damit zusammen der Auslöser für die Bestellung eines Creality Ender 3 und dem Beschluss, damit einen Körper zu drucken.

Weiterlesen…

projekte

Bevor ich irgendwann vergesse, was ich eigentlich mal irgendwann tun wollte, notier ich das mal hier...und hoffe auf Zeit, wenn die Motivation da ist und umgekehrt. Da wären so verschiedene Projekte, im folgenden:

  • ein kleines Gerät, bevorzugt ARM, welches meinen Router ersetzt und als SIP-Gate dient, um mit Smartphone und PCs an die Haustelefonleitung zu kommen. Pläne dafür gabs schon in Form eines ALIX 2D13, eines Raspberry Pi mit externen USB-Modems und einer Fritzbox, wobei
    • letzteres zwar am kostengünstigsten wäre (weil vorhanden), aber da ein eigenes Linux oder BSD aufzuspielen (bei einer 200Mhz CPU mit 32MB RAM und ~50MB Flash) grenzt schon an Wahnsinn. Das Ding ist auf ADSL und WLAN optimiert und kann kein bisschen mehr vertragen...
    • Raspberry Pi hat eigentlich zu wenig Anschlüsse, aber heute morgen kam auch die Idee, dass man bei sowas auf Konkurrenz zum Pi hoffen kann.
    • ALIX 2D13 kommt mit der gewünschten Ausstattung (abzüglich Telefoniehardware, aber das ist ja bei allen Kandidaten), ist aber auch ziemlich teuer...dafür hat das auch außerordentlich Power unter der Haube. Pläne dazu unter [1]
  • Zweites Projekt, eigentlich älter, ist eine Zusammenstellung von Serverdiensten auf einem debian-System. Mir ging es beim Erstellen des initialen Plans [2] um einen Ersatz für Windows SBS Server. Diese machen ansich gute Arbeit, sind aber meiner Meinung nach schlecht zu administrieren, wenns irgendwo hakt. Vielleicht liegts auch nur an meinem fehlenden MCSE...aber ich bin überzeugt, dass eine Zusammenstellung äquivalenter Dienste unter GNU/debian damit konkurrieren können. Ein wichtiger Punkt bei dem Projekt ist aber, dass ich das System so konzipieren möchte, dass ich keine Ablegerdistribution erstellen will, die nach 1-2 Jahren nicht mehr weitergeführt wird. Das soll auf dem aktuellen stable-System aufbauen und mit Installationsskripten deployt werden. Die müssen natürlich angepasst werden, aber pro Installation sollen nur die Daten fürs Zielsystem angepasst werden. Vom Inhaltlichen verweise ich lieber wieder auf das Dokument [1]. Ich wollte den von unten herauf aufbauen und begann darum mit der Partitionierung, aber die Syntax des parted-Automatismus im debian-installer scheint wohl nicht besonders "stable" im Sinne von debian stable zu sein und tut nicht wirklich das, was die Dokumentation mit ein paar Beispielen zu erklären versucht. Danach ging mir dann auch mal wieder die Zeit flöten...im nächsten Anlauf werde ich das wohl überspringen oder auf FAI oder ähnliches setzen (was ich eigentlich auslassen wollte, um Komplexität einzusparen).

Update: Das mit dem SIP-Gateway wird wohl doch nix. Scheinbar tut ein gewöhnliches Analogmodem nicht den selben Job wie normal eingesetzte Hardware, die jedoch deutlich mehr kostet. Darum lohnt sich das nicht für mich. Ein altes, gebrauchtes Modem hätte ich vermutlich für lau abstauben können...so würde das 50-150€ kosten.

[1] http://blog.aero2k.de/stories/router-planung.html
[2] http://aero2k.de/linux-sbs-features.html

Windows ist doof, Linux funktioniert nicht

Momentan kommen mir im debianforum [1] immer öfter Menschen unter die Nase, die fast, aber nicht ganz auf das Schema linux-ist-nicht-windows [2] passen. Sie wissen, dass Linux anders ist, sie wollen es nicht alle wie Windows bedienen, aber sie haben ihre schlechten Windowsgewohnheiten noch nicht vergessen/abgelegt. Eigentlich schade, denn sie verpassen die Hälfte. Als Hilfesuchende punkten sie auch nicht, denn sie gehen Probleme nach Windows-Art an: Beschreibe das Verhalten, hoffe, dass das jemand kennt und eine Lösung dafür hat. Unter Windows gehts halt nicht anders...hoffentlich ergiebige Fehlermeldung ("Vorgang fehlgeschlagen") mit Vorgeschichte ("Programm XY installiert", "Windows Updates durchgeführt", ..) in Google suchen oder Forum posten und auf Leidensgenossen hoffen, die das Problem gelöst haben.

In den meisten open source Programmen gibt es irgendeine Art von Logging oder (Debug-)Ausgaben. Dazu führt man das Programm auf einem Terminal aus, ruft es anders auf oder schaut in der Logging-Datei der X-Session (ausgehend davon, dass es sich um ein grafisches Programm handelt), in der Regel zu finden in ~/.xsession-errors oder für SLIM in /var/log/slim.log. Dort gibt es dann ganz viele Informationen, die zielführend für eine Lösung sind. Ich behaupte ja nicht, dass da steht "du musst noch libbanana-2.4 installieren", und wenn derjenige mit dem Problem mit den Informationen nichts anfangen kann (weil sie zu technisch sind), dann gibts andere, die es können.

Bis es sich rumgesprochen hat, werd ich wohl öfters darauf hinweisen.

Für die meisten grafischen Programme:
~/.xsession-errors
Für Serverdienste:
/var/log/syslog
Für Kernelfragen und Treiberprobleme:
/var/log/kern.log /var/log/messages

Und die meisten Programme, grafisch als auch nicht grafisch (und letztere besonders) haben eine Ausgabe auf dem Terminal, auf dem sie ausgeführt werden. Es wäre doch durchaus hilfreich, sowohl verursachendes Kommando als auch die Ausgabe dazu (abzüglich empfindlicher Daten, die sind erkennbar als solche zu zensieren) unverfälscht zu sehen.

Und diese Dateien (die in /var/log/ sind übrigens nur als root lesbar, also entweder ein root-Terminal öffnen oder sudo vor den Befehl setzen) werden am besten mit Hilfe von tail -f Datei gelesen (was die Ausgabe weiterlaufen lässt), woraufhin die fehlerverursachende Aktion wiederholt wird oder mit less komplett geöffnet. tail ohne -f zeigt einfach bloß die letzten 10 Zeilen an.

Damit wäre das hoffentlich vom Tisch. Das soll übrigens kein rant sein, sondern ein fester Schubser in die richtige Richtung, in Zukunft selbst Lösungen zu finden. Bei Windows hat man doch auch viel Durchhaltevermögen ;) Und neu installieren muss man bei $linuxdistribution auch nicht sonderlich oft.

Und ein letzter Hinweis: solange man nichts gekauft oder bezahlt hat, gibt es auch keinen "Anspruch". Das schließt auch "schließlich ist das doch ein Hilfeforum, ihr müsst mir helfen" ein. Das ist Freizeit, die wir "opfern", meist, weil es uns Spaß macht zu helfen oder wir dabei selbst noch lernen (gemeinsames Problemlösen). Entsprechend schwach ist die Motivation, eine nur schwach oder garnicht recherchierte Frage zu beantworten oder "Hausaufgaben" zu erledigen, die man wahlweise schnell zusammengesucht oder nachgelesen hat. Da hagelts dann schnell ein genervtes RTFM.

Update: falsche Datei angegeben, danke an up ausm dfde

[1] http://debianforum.de
[2] http://www.felix-schwarz.name/files/opensource/articles/Linux_ist_nicht_Windows/

Neue Blogsoftware

Blogwechsel. Drupal hat auf irgendeine vermutlich winzige Änderung in der PHP-Konfiguration (welche auch immer das war) empfindlich reagiert und bei meinem enormen Durchsatz von Blogposts wäre eine statisch generierte Seite doch garnicht so verkehrt...

Wie auch immer, here it is. Meine alten Beiträge werde ich vielleicht noch importieren. Bislang gefällt mir das hier soweit ganz gut.

Oh, und nein, der Umstieg auf python hat gaaarnichts mit den zig PHP-Rants zu tun :D

proxytool

"Proxy Tool" ist ein Firefox-Addon, welches sich unten rechts im Browser als Eingabefeld und Indikatorbutton platziert. Von da an macht es die Proxy-Einstellungen schnell und einfach zugänglich.

Es beherbergt bereits eine Liste freier Proxies (von http://proxylist.co/) und kann auch eine eigene Liste vorhalten. Unterstützt werden HTTP(S), SOCKS4 und SOCKS5-Proxies, also eigentlich alles, was es so gibt. Ein Klick auf besagten Button färbt ihn von rot zu grün und damit ist der Proxy aktiv. Außerdem lassen sich über das Kontextmenü Referrer, Browser Agent und Cookies bearbeiten/entfernen, womit man eigentlich schon ne ganze Menge Zeug an einer Stelle bekommt.

Link zum Addon: https://addons.mozilla.org/de/firefox/addon/proxy-tool/

requestpolicy

RequestPolicy ist eine Whitelist-Lösung für Firefox. Whitelist bedeutet hier, dass Daten nur von der Domain im Adressfeld geladen werden (und Subdomains). Somit werden Werbeanzeigen blockiert und der Seitenaufbau beschleunigt.

Selbst Webseiten wie das frühere kino.to und ähnliche Seiten bleiben auf diese Art nahezu werbefrei. Adblock wird eigentlich nicht mehr wirklich benötigt, aber man kann es aktiviert lassen, um lokale Werbung anhand des Dateinamens zu blockieren, denn dafür ist RequestPolicy nicht gedacht. Der Nachteil an der Geschichte: auch legitime Inhalte und Weiterleitungen werden desöfteren blockiert, welche man dann freischalten muss.

Regeln zum Freischalten sehen so aus:

  • Quelle → *
  • Quelle → Ziel
  • * → Ziel

Also beispielsweise von amazon.de nach amazon.com, facebook.com nach akamaihd.net (deren Inhalte werden von dieser Domain geliefert) oder die übliche cdn-Domain für statische Inhalte (myspacecdn.com, gstatic.com). Ich habe zB auch generelle Anfragen nach youtube.com aktiviert gehabt, aber dann kurzfristig wieder deaktiviert, weil es mich dann doch genervt hat. Aktive erlaubte Ziele sind bei mir noch zB blogger.com, googleapis.com und recaptcha.net, da diese Anfragen in der Regel erwünscht sind (und es ist äußerst doof, ein Captcha nicht zu sehen ;) ).

Falls erwünscht, werde ich meine (dezent gefilterte) Einstellungen für die Nachwelt exportieren, aber ich empfehle einen frischen Start damit. Es lohnt sich definitiv.

Nachtrag: Ich habe völlig vergessen zu erwähnen, dass sämtliche Regeln auch temporär erstellt werden können. Einen Screenshot davon solls auch geben, siehe [1]. Damit kann man im Zweifelsfall erstmal testen, was man freischalten will.

[1] http://www.jellyneo.net/images/articles/accountsafety_requestpolicy4.png