Quellcodeformatierung mit Artistic Style

Zu einem guten Codierstyleguide gehört immer auch eine Formatierungsansage. Es ist deutlich einfacher, fremde Quelltexte zu lesen, wenn diese gleichförmig formatiert sind. Unschön formatierte Sourcecodes gibt es zuhauf. Auch man selber ist nicht immer gefeit, die eigenen Stilvorgaben und Vorlieben auch einzuhalten. Auch wenn man in einem Team gemeinsam Sourcen bearbeitet, kann ein solcher Styleguide helfen. Beim Hatari Projekt ist das z.B. recht uneinheitlich.

Wie genau ein Quellcode nun einzurücken und zu formatieren ist, das bleibt immer eine persönliche Frage, z.B. wie geschweifte Klammern zu setzen sind. Hauptsache, der Stil ist einheitlich.

Dabei helfen natürlich kleine Tools, bessere IDEs wie Code::Blocks oder Eclipse bieten gleich entsprechende Plugins. Häufig rufen diese aber auch nur fertige Tools für die Kommandozeile auf.

Unter Linux kommen direkt 2 Kandidaten infrage:

Ich habe mich für Artistic Style entschieden, da es die von mir genutzten Optionen auf Anhieb anbietet. Ich habe nur ein wenig experimentiert und meine Vorlieben sehen wie folgt aus:


#
# astylerc for Matthias Arndt
#
# history:
# 2011-05-26 initial version
#

# main style:
style=bsd

# indentation with TABS (4 spaces per TAB):
indent=tab

# contents of switch case statements are indented, including the break:
indent-cases

# preprocessor statements that are split are indented:
indent-preprocessor

# loops and if statements are seperated by empty lines:
# (associated block comments are kept)
break-blocks

# parenthesis are padded with spaces:
pad-paren

# unnecessary empty lines are deleted:
delete-empty-lines

Das Ganze kann man nach $HOME/.astylerc speichern und schon braucht man das Tool nicht mehr mit Kommandozeilenparametern zu füttern.

DOs and DO NOTs for developing Embedded Systems software

Zum Thema “Was sollte man tun und was nicht, wenn man Software für Embedded Systems entwirft und usitzt?”habe ich mal einen Artikel zusammegestellt. Dieser Artikel ist natürlich subjektiv, ich bin gerne bereit zu diskutieren. Die meisten Aspekte habe ich aber derweil schon aus verschiedenen Onlinequellen bestätigt bekommen.

http://www.final-memory.org/?page_id=2113

Im Prinzip habe ich dort mal zusammengefasst, was ich alles seit der Universität gelernt habe. Teile davon praktisch im Job, viele andere aber auch fortbildungsmäßig aus dem Netz. Im Vordergrund steht vorallem, fiese Fallen von faul programmierten C zu umgehen. Viele der Regeln und Vorschläge sind auch sprachunabhängig und können natürlich auch auf andere Programmiersprachen angewendet werden.

Ich selber habe viele dieser Regeln früher zum Beispiel nicht beherzigt. Wenn ich die Sourcen zu meiner Diplomarbeit ansehe, dann habe ich viele davon eklatant verletzt. Aber irgendwo will man ja auch einen Lerneffekt erkennen.

Als weitergehende Lektüre kann ich auch das “Embedded C Coding Standard” von Michael Barr empfehlen.

Irgendwann schreibe ich vielleicht auch noch einengrößeren zusammenhängenden Artikel oder auch ein kleines Buch. Die Liste kann sicherlich noch erweitert werden.

Neue Jabberadresse

Wie meine bisherigen Kontakte vermutlich schon mitbekommen haben, ich habe jetzt einen neuen Jabberaccount, der auch ein Primäraccount sein soll. Der alte Account bei jabber.ccc.de bleibt bestehen, wird von mir aber wohl nicht mehr so aktiv genutzt werden.

Atari Jabber Network
Atari Jabber Network

Wer einen sinnvollen Kontaktgrund hat, darf mich gerne in sein Jabberroster aufnehmen. Meine neue Jabber-ID lautet simonsunnyboy -at- atari-jabber.org

Übrigens, jeder der einen Zugang bei Gmail, GMX oder web.de hat, hat schon eine Jabberkennung und kann mit dieser ohne Probleme direkt loschatten.

ICQ betrachte ich in Zukunft als Legacyprotokoll und werde es wohl nur für bestehende Kontakte (weiter)  nutzen.

http://www.atari-jabber.org/

Nochmal SPAM, von der besonders unglaubwürdigen Art

Mal wieder fand ich heute lustigen SPAM in meinem Emailpostfach. Bei dem holperigen Text kann man nur lachen, zumal ich eh Kein Kunde bei der Postbank bin.

Von: Online-Banking <direkt@postbank.de>
An: undisclosed-recipients : ;
Betreff: Sehr geehrter Kunde
Datum: 31.08.2010 03:37:44

Sehr geehrter Kunde,

In einem Projekt, um zu ??berpr??fen personenbezogenen Daten w?hrend unserer Bank erbrachten Leistungen gab es eine Diskrepanz hinsichtlich der pers?nlichen Daten, die Sie bei der Unterzeichnung kontrakt.

Um dieses Problem zu l?sen und zu vermeiden schlie?en Ihren konto, bitte ??berpr??fen und aktualisieren pers?nlichen Daten hier.

? 2010 Deutsche Postbank AG

Spätestens bei dieser schlechten Übersetzung sollte selbst dem dummsten Deppen auffallen, daß diese Email nicht von der echten Postbank stammt. Banken würden solche Daten dazu prinzipiell niemals online abfragen oder generell erfragen. Wer das Kleingedruckte in den Vetrrägen liest, weisst das auch.

Wer darauf reinfällt, ist selber schuld!

Huawei E220 UMTS MINI USB Modem unter Ubuntu Lucid Lynx 10.04 LTS verwenden

Ich war heute mal neugierig und habe mein UMTS Modem mit dem neuen PC ausprobiert. Tatsächlich lief es unter GNOME ohne große Klimmzüge mit Ubuntu Lucid Lynx 10.04 LTS.

Hauptproblem war wieder, Linux dazu zu bewegen, ein Modem statt einem USB Stick zu erkennen. Mittlerweile gibt es dafür Tools. Man muss nur das Tool “USB ModeSwitch” installieren und in einer Konfigurationsdatei etwas anpassen.

Das ist unter http://wiki.ubuntuusers.de/USB_ModeSwitch sehr gut beschrieben und auf das E220 passen die dort beschriebenen Regeln 1:1. Selbst ohne Reboot erkannte der Kernel das Modem beim erneuten Einstecken danach als solches.

Danach erkennt der GNOME Netzwerkmanager das Modem, wenn man unter “Mobiles Breitband” eine neue Verbindung erstellt. Von Hand waren keine Einstellungen nötig, ich habe “E-Plus” als Provider ausgewählt. Danach fragte der Netzwerkmanager nur noch nach der PIN (keine Basteleien mehr nötig) und erstaunlicherweise war ich nach nur 2 Versuchen (ich erinnere mich mit Grausen an den Februar oder März) online.

Tatsächlich schreibe ich diesen Artikel gerade über die UMTS Verbindung, auch wenn ich auf Anhieb den Unterschied zum Breitband via Kabelanschluß merke. Aber immerhin online sein, wenn die Breitbandverbindung ausfällt oder z.B. schon in die neue Wohnung verlegt wurde.

Seit März übrigens das erste Mal wieder, daß ich die UMTS Verbindung insgesamt in Betrieb nehme.

Schon wieder SPAM….

Mal wieder aus der SPAM Box. Ich zitiere mal wieder verbatim, damit der Sinn (?) erhalten bleibt.


Von: admin@cbrnknowledge.com
Reply-to: admin@cbrnknowledge.com
An: Matthias Arndt
Betreff: Matthias edit biography
Datum: 21.07.2010 22:02:23

C O N T I N E N T A L   B R O A D C A S T I N G  N E T W O R K  I N C.
If you do not wish to be notified Unsubscribe me from this list

Matthias,

It is my pleasure and with great distinction that I inform you that as of July 21, 2010, you are requested to appear in our upcoming release of the 2011 directory showcasing the WHO’S WHO of Worldclass business leaders.

Our forum is renowned by professionals and executives who express continuous knowledge, experience and achievement in their occupation industry or profession.

On behalf of our members and staff, we wish you continued success.

view profile:

http://www.Matthias.Arndt.cbrnknowledge.com

After you emend your profile, find out Who’s Missing.

William Whitaker
Vice President Research Division

Continental Broadcasting Network
Who’s Who World Class Alliance
23 Briaroot Drive
Smithtown, NY 11787

T h i s  i s  a n  a d v e r t i s e m e n t


Was zum Geier will der mir verkaufen? Zur not auch wieder nur die Emailadresse abgraben, aber rein inhaltlich macht der SPAM nicht mal Sinn. Nur weil ich eine Webseite betreibe, habe ich nicht automatisch ein Geschäft, geschweige denn ein internationales.

Neues aus der SPAM Box

Als ich eben meine morgendliche Email abrief, fand ich folgende Mail in meinem SPAM-Ordner.


From: “medicine convention” <mail@conferencemedic.com>
To: “Matthias Arndt”
Subject: Jerusalem convention
Date: Sat, 17 Jul 2010 08:41:00 +0300

Ankuendigung fuer Aerzte, Therapeuten und Krankenpfleger,

Wir moechten Ihnen die Internationale Konferenz ueber integrative Medizin in Jerusalem
(Oktober 2010) bekanntmachen.

Es handelt sich um ein Treffen medizinischer Fachleute aus aller Welt, das sich mit Mitteln und Wegen beschaeftigt, die wissenschaftlichen  Prinzipien moderner Medizin mit den holisitischen Prinzipien alternativer  Medizin zu vereinen.

Weitere Details und Anmeldeformulare finden Sie auf der Internetseite der Konferenz: conferencemedic.com/de

Fuer weitere Fragen stehen wir Ihnen gerne zur Verfuegung,

Avraham Fried

Director

The Jerusalem International Conference on Integrative Medicine

Sollten Sie nicht zu den medizinischen Berufen gehoeren, so entschuldigen Sie uns bitte, und klicken hier um Ihre Adresse zu entfernen.


Das Thema ist so hanebüchen, daß der Zweck sofort klar ist. Die Email soll Benutzer dazu bringen, auf den “Unsubscribe” Link zu klicken und somit die eigene Emailadresse zu bestätigen, damit noch mehr SPAM verschickt werden kann.

Das schlimme ist, SPAM ist nicht mal mehr nervtötend, sondern gehört schon so zum Alltag. Traurig eiegentlich :(

Joystickkalibrierung unter Linux automatisieren

Seit Jahren habe ich Joysticks und Joypads wenn nötig unter Linux immer von Hand kalibriert, aber nie die Einstellung dauerhaft fixiert.

Tatsächlich bringt das Kommandozeilentool jscal alles nötige mit. Ich las unter http://www.averyjparker.com/2005/12/29/joystick-calibration-under-linux/ einen schönen Artikel darüber und möchte ihn hiermit verkürzt eindeutschen.

Das Vorgehen ist wie folgt:

  1. Joystick oder Joypad mit jscal kalibrieren: jscal -c /dev/input/js0
    Das Devicefile sollte natürlich jeweils angepasst werden.
  2. Die Kalibrierung prüfen, z.B. mit MAME oder MESS
  3. Die Kalibrierungsdaten abspeichern: jscal -p /dev/input/js0 >calibrate-joystick.sh
    Dieses Kommando erzeugt einen Aufruf von jscal, der die Daten wiederherstellt.
  4. Im Prinzip reicht es, dieses Shellskript ausführbar zu machen, also #!/bin/sh Header davor und chmod +x
  5. Zum Schluss das Skript in die eigene Autostarsequenz einhängen, entweder system global oder so wie ich ganz banal in den GNOME Autostart rein.

Danach sollte bei jedem Start das Pad oder der Joystick ordentlich kalibriert sein.

Frohes Daddeln :)

Mein erstes Routerabenteuer: a-quip A/WLAN-4

Erstmalig brauche ich im Leben einen klassischen Router. In Clausthal im Studentenwohnheim war es nicht erlaubt, einen Router zur Teilung der IP zu betreiben, das UMTS, was ich bis vor 2,5 Monaten im Betrieb hatte, machte es nicht sinnvoll und davor hatte ich daheim nie Breitband.

Kabel BW macht es möglich und nun habe ich seit Mitte März qualitativ hochwertiges Breitbandinternet im Haus. Natürlich wollte ich auch meine Ataris entgültig mit der Welt vernetzen, und nicht nur lokal mit dem regulären PC. Ergo muss endlich doch eine Routerlösung daher.

Vorigen Samstag ging ich daher shoppen und kaufte einen Router, der zunächst alles zu halten schien, was er versprach. Ich hatte mir im MediaMarkt einen günstigen a-quip A/WLAN-4 Router gekauft.

Anstöpseln und grundlegend konfigurieren ging auch ganz leicht. Per Default war ein sinniges Subnetz eingestellt und er erkannte auch automatisch meine über DHCP angebundene Internetverbindung. Das Problem kam dann im 30 Minuten Takt. Bei ICQ und Skype war plötzlich die Verbindung weg und wieder da. Im IRC konnte  ich dies durch ominöse Reconnects beobachten. Was war los?

Der Router kam offenbar nicht mit den DHCP-Einstellungen des Providers zurecht. Er machte brav einen Refresh und damit praktisch einen Neustart, obwohl sich zugeteilte IP und andere Verbindungsdaten nicht geändert hatten. Gehe ich da von zuviel Intelligenz im Gerät aus?

Jedenfalls konnte ich das Problem dann sogar auch über Nacht im Routerlog beobachten, zu einem Zeitpunkt, wo keinerlei Rechner im LAN aktiv waren. Damit konnte es nur am Router liegen.

Lars riet mir zu einem Firmwareupgrade. Das hat mir aber nicht geholfen. Das Problem blieb bestehen. Da meine Supportanfragen ins Leere liefen, bin ich ehrlich enttäuscht. Das Gerät kommt wenn irgendmöglich zurück und wird gegen ein Exemplar getauscht, welches offiziell mit Kabel BW zusammenarbeiten kann.

Testverdikt für a-quip A/WLAN-4: mangelhaft