Vortrag Analogrechner

Am letzten Maifeiertag hatte ich die Möglichkeit, in den Räumlichkeiten des CCC Frankfurt mir einen Vortrag zum Thema Analogrechner anzuhören. Allgemein sind diese in der heutigen Zeit der immer schneller werdenden Digital-Computer nicht so bekannt und verbreitet. Doch das war nicht immer so. Professor Dr. Bernd Ulmann hat es sich zur Passion gemacht, diese in seinem privaten Computer-Museum nicht nur zu sammeln, sondern gibt auch einen praktischen Einblick in diese Geräte, welche auch neben der großen digitalen Konkurrenz in Zukunft ihre Stärken beweisen können. Hier habe ich mal die für mich wesentlichen Stichpunkte seines Vortrages notiert.

  • erleben derzeit eine kleine Renaissance
  • extrem paralellisierbar
  • skalieren sehr gut (wenn ein weiteres Problem dazukommt, wird eine weitere Einheit dazu gestellt, die dieses dann löst => Rechengeschwindigkeit bleibt dieselbe)
  • sehr genaue Fließkommaergebnisse werden in der Praxis oft nicht benötigt -> Analogrechner sind weniger genau, können aber Ergebnisse mit ganzen Zahlen liefern (z.B. sind Ergebnisse mit einem Drittel Hase ja nicht realistisch)
  • wenig Energieverbrauch
  • sehr gute geeignet zur Lösung von Differenzialgleichungen
  • während die Berechnung läuft und das Ergebnis steht, können über Potentiometer die Variablen (Ausgangsbedingungen) verändert werden und das Ergebnis ändert sich instantan (Echtzeitberechnung)
  • benötigt keinen Speicher oder Cache -> somit fallen auch Leitungsverbindungen zu diesen weg, so dass es keine Latenz gibt (Speicher bewegt sich im Nanosekundenbereich und ist somit langsamer als eine CPU)
  • Analogrechner aus dem endenden 19. Jahrhundert wurden bis in die 1960er Jahre eingesetzt, weil Digitalcomputer noch nicht Leistungsfähig waren (z.B.: Tidenberechnung bis zur 10. Partialtide am Hamburger Seefahrtsamt)

Nachteile:

  • Je größer und komplexer das Problem ist, desto mehr Gerätschaft wird gebraucht -> der Platzbedarf für die Machine steigt
  • kann fehlerhafte Ergebnisse, welche auch nicht genau klar abgrenzbar sind, liefern, wenn die elektronischen Bauteile durch Interferenzen gestört werden
  • jeder analoge Rechner wird zur Lösung eines Problems zusammen gestellt und gebaut, ändert sich dieses, muss der Computer aufwendig umgebaut werden

Und auch das Argument, dass heutige Smartphones leistungsfähiger als die Rechner mit denen man zum Mond flog, ist so nicht richtig:

  • der Computer im Raumschiff hat lediglich Programmabläufe während des Fluges gesteuert (z.B.: jetzt für 30 Sekunden dieses und jenes Triebwerk zünden)
  • die Flugbahnberechnungen wurden im Vorfeld der Missionen am Boden von Analogrechnern ermittelt
  • während der scheiternden Apollo 13 Mission konnte so extrem schnell und in Echtzeit die neue korrigierte Flugbahn zur Rückholung der Astronauten berechnet werden
  • man muss mal Nachdenken was passiert, wenn man an sein Smartphone zusätzlich 200 Sensoren, zwei Dutzend Aktoren und Motoren montiert, diese sofort tadellos Funktionieren müssen und von diesem einem Gerät das eigene Leben abhängt
Advertisements

Die Absurdität von Adaptern

In der vorletzten Podcastfolge von c’t-uplink wurde mal wieder mit ein paar Mythen aufgeräumt. Konkret damit, dass man meint alles mit diversen Adaptern, welche im Fachhandel zu erwerben sind, verbinden kann. Das geht, aber nur in einem gewissen Rahmen. So ist es möglich, einen Bildschirm mit DVI-Schnittstelle an einen Grafik-Output mit VGA-Schnittstelle zu betreiben. Aber mit einem weiteren Adapter an diesem wird das zwar mechanisch gehen, aber ob das elektrisch noch funktioniert ist fraglich. So könnte man einen Adapter mit Display-Port mit einem mit DVI verbinden. Diesen an einem mit HDMI. Den wiederum an einem mit DVI, welcher an dem anderen Ende dann VGA hat und diesen wiederum letztendlich an einem mit Cinch/Composite. Mechanisch funktioniert das alles, aber zu einem Ergebnis führt das nicht mehr.
In der c’t-uplink wurde aber ein weiteres Kuriosum gezeigt. Nämlich einen USB 3.0 zu Lüsterklemmen-Adapter. Es gab da wohl einen ernsthaften Spezialfall. Ein Kunde hat, so will es die Geschichte, bei dem Zubehörhersteller nach etwas angefragt, was es wohl für seinen Anwendungszweck auf dem Markt bisher nicht gab. Er wollte nämlich die Signale der Datenleitungen des USB 3.0 abgreifen und analysieren. Das Entwicklungslabor nahm sich der Spezialanfrage an und hatte etwas Individuelles für diesen einen Kunden entwickelt gehabt. Irgendwie muss aber die Marketing-Abteilung des Herstellers etwas über diese Spezialentwicklung mitbekommen haben und war der Meinung, dafür muss es doch einen Markt geben und man müsse da etwas entwerfen, was im größeren Stil zu verkaufen wäre. Nur ob das ganze einen Sinn ergibt und auch funktionieren wird, bleibt fraglich.

USB-Luesterklemme-Adapter

Saubere MacPorts

Nach Jahren der Updaterei und neues Mac OS X Betriebssystem hinüber bügeln, tut es einfach mal gut, alle Programme via MacPorts mal zu deinstallieren und wieder neu zu installieren. Dabei werden automatisch alle Versions-Leichen welche nicht mehr benötigt werden und Bibliotheken die einst mal mit installiert wurden weil ich Programm XY mal kurz ausprobiert habe mit gelöscht.
Anbei eine Liste von Programme, die ich standartmässig auf einem Mac installiere:

sudo port -v -fp uninstall installed && sudo port -v install erlang gnupg irssi mc minicom mtr nmap rtmpdump simh tcpdump tcpflow tmux w3m wget

Danach klappt’s auch wieder mit den Verlinkungen sauber.

Alternative DynDNS-Anbieter

Neulich hatte DynDNS.com seine Policy insoweit umgestellt, dass sie keine kostenlosen Services mehr anbieten, sondern alles nur noch auf Dienstleistungen mit Bezahlung anbieten. Um sich wenigsten eine Subdomain für sein Dynamisches DNS in das eigene heimische Netz für lau zu registrieren, gibt es alternative Anbieter, die wohl durchaus zu empfehlen sind, aber einem auch noch weitere Optionen bieten.

Floppy’s an einem Android

Neulich kam der Joshi mit der Idee es zu versuchen, ob es möglich ist, ein Android-Tablett-Computer mit einem externen Diskettenlaufwerk zu verbinden, um auf die Daten einer 3,5″-Diskette zu zugreifen. Schliesslich besitzen die meisten Android-Geräte einen Mini- oder Micro-USB-Anschluss.
Also habe ich mal mein externes Diskettenlaufwerk mitgebracht. Joshi hat auch noch ein USB-OnTheGo-Kabel mitgebracht, welches nötig ist, damit die mobilen Touch-Geräte als Host-Controller die Peripherie-Geräte anbinden können. Dieses OnTheGo-Kabel dient damit praktisch als Adapter von Mini-USB auf eine normale USB-Buchse Typ A. Das Tablet war ein Nexus-Gerät mit dem CyanogenMod als Betriebssystem.
Nach dem erstmaligen Zusammenschluss der Hardware und einlegen einer Diskette in das Laufwerk, hat das Nexus das Laufwerk direkt als USB-Massenspeicher erkannt. Solch ein Diskettenlaufwerk mit einem Medium, welches maximal eine Speicherkapazität von 1,44 Megabyte besitzt, als Massenspeicher zu bezeichnen, muss mal hier aber wohl als Euphemismus bezeichnen. Die kleinsten USB-Sticks, die man derzeit für Geld im Laden kaufen kann, sind welche mit 2 Gigabyte.

Unbenannt

Wie sich später aber heraus stellte, war die eine Diskette des ersten Versuch bereits defekt, denn das Android versuchte allzeit den Datenträger mit einem FAT32-Dateisystem neu zu formatieren.
Mit einer anderen Diskette hatte es dann schliesslich geklappt. Das Betriebssystem erkannte das Medium und über den eigenen Dateimanager konnte man auf die Dateien zugreifen. Beweis dafür, dass Android sogar noch das alte FAT12-Dateisystem beherrscht. Anders als vermutet muss ausserdem im Kernel des Android wahrscheinlich kein Treibermodul für Floppy enthalten sein, da das Gerät logischerweise ja über USB-Massenspeicher angesprochen wird. Allerdings konnte man noch nicht auf eine Diskette schreiben, da offensichtlich für die Möglichkeit allgemein auf USB-Massenspeicher ausserhalb eines Android-Gerät die Schreibzugriffe fehlen. Hier muss wahrscheinlich das Gerät gerootet werden.
Es ergab sich aber noch ein anderer Nebeneffekt. Da auf einer weiteren Diskette, welche tatsächlich noch funktionierte, MIDI-Dateien gespeichert waren, stand natürlich der Versuch im Raum, diese zu öffnen. Auch dies klappte. Erkenntnis: Der Standartmedienplayer Apollo des CyanogenMod kann auch noch MIDI-Dateien abspielen.

Unbenannt

Die Essenz aus diesem kleinen Versuch ist, dass man auf die alten Daten von den kleinen 3,5″-Floppy’s auch mit den modernen smarten Geräten zugreifen kann.

Die Wolke in der eigenen Hand

Seit der iTunes-Version 11.2 und iOS 7.0.3 hat nun Apple das vollzogen, wovon ich nie gedacht hätte, dass es passieren würde. Man kann die Kalender- und Kontaktdaten nun nicht mehr lokal über WiFi oder USB zwischen Computer und iPhone/iPad synchronisieren. Stattdessen braucht man dazu seine Apple-ID um das über die iCloud abzugleichen. Aber die iCloud kommt für mich nicht in Frage, da die Daten nichts auf fremden Servern zu suchen haben, die zu allen Überfluss auch noch im Ausland stehen. Ich weis schliesslich nicht, ob sie dort auch verschlüsselt abgelegt werden und muss eventuell davon ausgehen, dass irgendwelche staatlichen Behörden auf diese Server zugriff haben. Deswegen habe ich nun beschlossen, einen meiner Raspberry Pi’s dazu zu nutzen und auf ihn ownClod installieren, der sicher in meiner eigenen Wohnung steht. Mit ihm werde ich meine Kalender- und Kontaktdaten über mein lokales Netz austauschen, währenddessen die Bilder-, Audio- und Applikationen sowieso ich über USB synchronisiere.

Raspberry Pi zur Verwendung für die ownCloud

Raspberry Pi zur Verwendung für die ownCloud

Anbei ein kleiner Workaround zur Installation von ownCloud.

Ich entscheide mich hierbei für den Webserver nginx, der wohl etwas Ressourcen schonender als der Apache-Webserver ist und flüssiger läuft.

Auf dem Server werden also folgende Komponenten zur ownCloud mit installiert:

  • nginx Webserver
  • PHP5
  • SQLite (Datenbank auf Dateibasis)
  • sowie diverse Pakete zum Performancegewinn

Nachdem man sich via http://www.raspbian.org/RaspbianInstaller mit den Raspbian-Installer ein Debian Weezy Grundsystem installiert hat, installiert man sich mit raspi-config ein sehr praktisches Konfigurationswerkzeug, um auf dem System ein paar grundlegende Einstellungen für das Gerät vorzunehmen.

sudo apt-get install raspi-config

sudo raspi-config

  1. change_locale zu „en_US.UTF-8“ für das komplette System (Ansonsten meckert ownCloud, dass es zu Fehlern bei Dateinamen mit Sonderzeichen kommen kann)
  2. memory_split auf „16“ MB einstellen. Dies ist die kleinst mögliche Einstellung. Die GPU bekommt somit 16MB.
  3. overclock auf „Medium“ 4. „Finish“ und danach die Frage nach dem Reboot mit „Yes“ beantworten.

Paketlisten aktualisieren

sudo apt-get update
sudo apt-get upgrade

Benutzer erstellen

sudo groupadd www-data
sudo usermod -a -G www-data www-data

Installation der Pakete

sudo apt-get install nginx openssl ssl-cert php5-cli php5-sqlite php5-gd php5-curl php5-common php5-cgi sqlite php-pear php-apc curl libapr1 libtool curl libcurl4-openssl-dev php-xml-parser php5 php5-dev php5-gd php5-fpm memcached php5-memcache varnish

SSL Zertifikat erstellen (gültig für 1 Jahr)

sudo openssl req $@ -new -x509 -days 365 -nodes -out /etc/nginx/cert.pem -keyout /etc/nginx/cert.key
sudo chmod 600 /etc/nginx/cert.pem
sudo chmod 600 /etc/nginx/cert.key

nginx Webserver konfigurieren

sudo nano /etc/nginx/sites-available/default

Hier löscht man den kompletten Inhalt und fügt stattdessen den unten stehenden ein.
Darauf achten, dass man die IP-Adresse „192.168.XXX.XXX“ mit der des Raspberry Pi ersetzt.

server {
listen 80;
server_name 192.168.XXX.XXX;
rewrite ^ https://$server_name$request_uri? permanent; # enforce https
}

server {
listen 443 ssl;
server_name 192.168.XXX.XXX;
ssl_certificate /etc/nginx/cert.pem;
ssl_certificate_key /etc/nginx/cert.key;
root /var/www;
index index.php;
client_max_body_size 1000M; # set maximum upload size
fastcgi_buffers 64 4K;

location ~ ^/owncloud/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}

location / {
try_files $uri $uri/ index.php;
}

location @webdav {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS on;
include fastcgi_params;
}

location ~ ^(?<script_name>.+?\.php)(?<path_info>/.*)?$ {
try_files $script_name = 404;
include fastcgi_params;
fastcgi_param PATH_INFO $path_info;
fastcgi_param HTTPS on;
fastcgi_pass 127.0.0.1:9000;
}
}

Danach in folgender Datei die Werte „upload_max_filesize“ sowie „post_max_size“ auf 1000M setzen.

sudo nano /etc/php5/fpm/php.ini

upload_max_filesize = 1000M
post_max_size = 1000M

Am Ende der Datei noch folgendes einfügen:

upload_tmp_dir = /srv/http/owncloud/data

Als nächstes muss folgender Ordner mit den dazugehörigen Rechten erstellt werden

sudo mkdir -p /srv/http/owncloud/data
sudo chown www-data:www-data /srv/http/owncloud/data

PHP konfigurieren

sudo nano /etc/php5/fpm/pool.d/www.conf

Hier ändert man folgende Zeile von:

listen = /var/run/php5-fpm.sock

zu

listen = 127.0.0.1:9000

Webserver und PHP neustarten

sudo /etc/init.d/php5-fpm restart
sudo /etc/init.d/nginx restart

ownCloud installieren
Als letztes wird ownCloud installiert. Folgende Befehle müssen abgearbeitet werden.

wget http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/Release.key
apt-key add - < Release.key echo 'deb http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/ /' >> /etc/apt/sources.list.d/owncloud.list
apt-get update
apt-get install owncloud

Nun lässt sich der Server im lokalen Netz aufrufen. In meinem Fall ist das https://192.168.1.104/owncloud. Als letztes muss nur noch ein Administratorkennwort und ein Benutzername festgelegt werden. Somit ist die Installation vollends abgeschlossen.

Der schnellste Weg, Adressbücher und Kalender in die eigene Wolke zu laden, führt über die Webanwendung von Owncloud, die Dateien im VCF- und ICS-Format importieren kann.

Bei Adressbüchern (.vcf) klappte der Import im Versuch allerdings nicht immer reibungslos. Bei einem Adressbuch, in dessen Feldern Doppelpunkte vorkamen, brach der Import leider ab. Im Zweifel muss man vor dem Import noch an den Daten feilen. Auch Gruppen ließen sich nicht importieren, da ownCloud sie als regulären Adressbuch-Eintrag interpretierte. Ein Fehler, der hoffentlich bald behoben wird.

Weiterführender Link

Von Datenträgern und mit Lochkarten betriebenen Waschmaschine

Nicht all zu selten kommt es in meiner Peer-Group zu einer Diskussion über alte Speichermedien. Dann kommt es auch schnell zu den Aussagen, wer mit welchen Medium seine Computerkarriere begonnen hat. Es fallen dann Sätze wie: „Mein erster PC besaß nur eine zwei Gigabyte große Festplatte.“ oder „Ich habe meine Daten auf eine Datasette einst speichern müssen.“ Je nach Alter und vielleicht dem Einstiegsalter hat also jeder etwas andere Erfahrungen.

Der erste PC, der bei uns zu Hause stand, hatte anno 1991 auch nur eine 50 Megabyte große Festplatte und besaß sowohl ein 3,5 als auch ein Diskettenlaufwerk für die etwas wabbeligeren 5,25 Zoll großen Disketten. Aber meine eigene Computerkarriere begann schliesslich schon vorher mit dem DDR-Heimcomputer KC 85/4 von Robotron. Da wir mit beginnenden Besitz des Gerätes allerdings keinen Radiorekorder hatten, mit dem die Programme auf eine Kompaktaudiokasette als Datasette gespeichert werden können, mussten als Dauerspeicher die netten alten 7 Zoll Tonbänder herhalten. Da die zugehörigen Tonbandgeräte üblicherweise im Hausgebrauch für den senkrechten Betrieb gebaut wurden, hatte dies ein bisschen den Charme von Rechenzentren der 1960er und ’70er Jahre, wo große Magnetbänder im professionellen EDV-Betrieb üblich waren.

Eine etwas andere Begegnung hatte ich dann während meiner Ausbildung. Im zweiten Lehrjahr absolvierte ich in einem Betrieb mein Praktikum, wo ich gelegentlich große Filtersäcke mit einer auch ziemlich großen Industriewaschmachine waschen musste. Aber in Gegensatz zu den üblichen Waschmaschinen, bei denen man das Waschprogramm mit Druckknöpfen und Drehwählern einstellte, musste man das bei dieser mit Lochkarten machen. Die Karten bestanden allerdings nicht wie aus der EDV bekannt, aus Karton oder Pappe, da diese natürlich in einer feuchten Umgebung relativ schnell durchgeweicht gewesen wären. Sondern bestanden aus einem etwas weichen und flexiblen Kunststoff, damit sie auch nicht so schnell durchbrechen konnten. Das ganze war circa im Jahre 2001/2002.