ubuntuusers.de

13. Februar 2014

Ich habe hier eine kleine NAND Schaltung auf dem Breadboard aufgebaut. Die Schaltung bewirkt im Grunde nur dass die LED im Normalfall leuchtet. Sie geht nur aus wenn beide Taster gleichzeitig gedrückt werden. Die Taster kann man natürlich mit Outputs von anderen Schaltungen belegen und so eine größere Schaltung aufbauen. 😉 Vieleicht werde ich hierzu auch ein PCB Projekt starten. 😉

20140213-121201.jpg

Viel Spaß beim nachbauen. 😉

Electrolysis, kurz: e10s, ist der Name des Mozilla-Projektes, welches Firefox um eine Multi-Prozess-Architektur erweitern soll. Für Nutzer der Nightly-Versionen von Firefox ist es durch einen neuen Tab-Modus ab sofort leichter, Firefox mit und ohne Multi-Prozess-Architektur parallel zu testen.

Electrolysis (e10s) bringt eine Multi-Prozess-Architektur in Firefox, um die Browseroberfläche, Plugins sowie Tabs in jeweils eigenen Prozessen auszuführen. In aller Kürze zusammengefasst soll Firefox damit in erster Linie reaktionsfreudiger, in zweiter Linie stabiler sowie durch Sandboxing sicherer werden. Seit Anfang 2013 arbeitet Mozilla wieder an e10s, nachdem das Thema erstmals 2009 aufkam und das Projekt dann 2011 wieder zurückgestellt worden war.

Seit einiger Zeit kann e10s durch Setzen des about:config-Schalters browser.tabs.remote auf true getestet werden. Um weitere Tester zu erreichen, aber e10s nicht standardmäßig für alle Nutzer der Nightly-Versionen von Firefox aktivieren zu müssen, hat Mozilla folgende Änderung vorgenommen: browser.tabs.remote steht in der Nightly-Version von Firefox nun standardmäßig auf true. Zusätzlich muss der neu eingeführte Schalter browser.tabs.remote.autostart (standardmäßig auf false) ebenfalls auf true gesetzt werden, um Firefox immer im e10s-Modus zu betreiben. In diesem Fall erscheint im Datei-Menü zusätzlich der Eintrag “New In-process Window”, um ein Fenster zu öffnen, welches nicht Gebrauch von separaten Prozessen macht.

Ändert der Nutzer keinen Schalter über about:config und belässt die Standard-Einstellungen, dann ist e10s deaktiviert, kann über das Datei-Menü aber für einzelne Fenster aktiviert werden, indem der neue Eintrag “New OOP Window” ausgewählt wird (OOP = out of process). Dies erinnert vom Prinzip her an die Privaten Fenster, welche ebenfalls einen speziellen Modus für alle Tabs in entsprechendem Fenster aktivieren; in diesem Fall um keine Chronik oder sonstigen Daten dauerhaft zu speichern. Unterstrichene Seitentitel in den Tabs kennzeichnen die OOP-Fenster.

Update 15.02.2014: Mozilla hat den Eintrag “New OOP Window” umbenannt in “New e10s Window”.

Wichtiger Hinweis: Nicht grundlos wird e10s zu diesem Zeitpunkt noch nicht standardmäßig für alle Nutzer der Nightly-Versionen aktiviert. Noch immer funktionieren damit grundlegende Dinge wie die Druckfunktion nicht. Außerdem wird dringend empfohlen, eine Sicherung des Firefox-Profils anzulegen, bevor e10s getestet wird, um möglichen Datenverlusten durch Beschädigungen des Profils vorzubeugen. Dies sollte beim Umgang mit Nightly-Versionen grundsätzlich beachtet werden.

Mozilla wird voraussichtlich diesen Freitag Firefox 27.0.1 veröffentlichen. Das außerplanmäßige Update schließt eine Sicherheitslücke, behebt eine häufige Absturzursache und außerdem einen Berechnungsfehler in der JavaScript-Engine.

Voraussichtlich am Freitag wird Mozilla ein außerplanmäßiges Update für die Desktop-Version von Firefox 27 veröffentlichen. Anlass hierfür ist eine mögliche Absturz-Ursache, welche sich in den ersten Tagen nach Veröffentlichung von Firefox 27 als Top-Crasher herauskristallisiert hat und entgegen erster Annahmen nicht nur in Zusammenhang mit GreaseMonkey, sondern auch ohne jenes Add-on auf Webseiten ausgelöst werden kann.

Das Update behebt weiter eine Sicherheitslücke in der verwendeten libpng-Version 1.6.8, welche DoS-Attacken über manipulierte PNG-Dateien möglich machte. Des Weiteren wurde ein in Firefox 27 eingeführter Fehler in der JavaScript-Engine behoben, welcher zu falschen Ergebnissen der asin()-Funktion führen konnte (der Quelltext des verlinkten Testcases dokumentiert den Fehler).

12. Februar 2014

Dies ist nun schon der 60ste Artikel und so habe ich mir gedacht ein Foto  von ein paar meiner Projekte sind ergeben einen guten 60sten Artikel. 😉 Ich hoffe natürlich euch auch den 120sten und viele weitere Artikel presentieren zu können. Da ich natürlich nicht alle Projekte zeigen kann die ich schon Fabriziert habe sind hier 3 kleine Projekte zu sehen. Die große Lochrasterplatine beherbergt ein kleines Arduino Schield daneben ist ein Blinker mit dem NE555 Timer und darunter ist die FlipFlop schaltung von dem Projekt hier auf dem Blog. 😉

20140212-215327.jpg

Ich hoffe euch gefällt dass Bild. 😉

 

Der Raspberry PI eignet sich nicht nur für Experimente und Spielerein sondern auch als kleiner Computer im Lab. Man kann sogar die Arduino Software nutzen und natürlich hat man auch die Möglichkeit direkt etwas mit den GPIO Pins auszuprobieren. 😉

pstree ist ein Kommando, welches zu den „coreutils“ gehört. Dieses Paket bzw. Kommando-sammlung ist in praktisch jeder Distribution enthalten(Debian/Fedora basierte auf jeden Fall).
Es zeigt Praktischer-weise an, wie ein Prozess der als Daemon gekennzeichnet ist gestartet wurde bzw. was den Dämonen aufgerufen hat.

Damit kann man schnell Konfigurationslücken schließen, beispielsweise wenn man mehrere Prozesse eines Daemonen hat, der normal genau 1x gestartet werden sollte. Man guckt sich den Weg an, sucht sich die entsprechende Config zum Korrigieren raus, und naja: Korrigiert es :-D.

Beispielaufruf:

$# pstree
init─┬─NetworkManager─┬─dhclient
     │                └─3*[{NetworkManager}]
     ├─acpi_fakekeyd
     ├─acpid
     ├─apache2───5*[apache2]
     ├─atd
     ├─avahi-autoipd───avahi-autoipd
     ├─avahi-daemon───avahi-daemon
     ├─bluetoothd
     ├─console-kit-dae───64*[{console-kit-dae}]
     ├─cron
     ├─cupsd
     ├─2*[dbus-daemon]
     ├─dbus-launch
     ├─dhclient
     ├─exim4
     ├─gconfd-2
     ├─gdomap
     ├─4*[getty]
     ├─login───bash
     ├─login───xstart───startx───xinit─┬─Xorg
     │                                 └─i3───trayion_exec
     ├─lpd
     ├─modem-manager
     ├─mpd───4*[{mpd}]
     ├─ntpd
     ├─polkitd───{polkitd}
     ├─rpc.idmapd
     ├─rpc.statd
     ├─rpcbind
     ├─rsyslogd───3*[{rsyslogd}]
     ├─sh───i3bar───sh───i3status
     ├─sh───x-terminal-emul─┬─bash───pstree
     │                      ├─bash───weechat───{weechat}
     │                      ├─bash───firefox───37*[{firefox}]
     │                      └─x-terminal-emul
     ├─sshd
     ├─systemd-logind
     ├─timidity
     ├─udevd
     └─2*[xsel

Noch so ein “Klassiker” , mit dem man herausfinden kann, wie ein Befehl (samt Optionen) gestart wurde ist der Blick in das /proc Verzeichnis.

Dazu braucht man nur die Prozess-ID pid. Sagen wir (Beispiel) die pid ist 343 und das ist der dbus-daemon: Hier der Befehl samt Rückgabe:

$# cat /proc/343/cmdline

/usr/bin/dbus-daemon–system–address=systemd:–nofork–nopidfile–systemd-activation

Die Leerzeichen “unterschlägt” der Blick hinein, aber die Optionen kann man auch so erkennen.(Ab „Klassiker“ von Netz10)

Mozilla denkt darüber nach, künftig beim Öffnen eines neuen Tabs Werbung einzublenden. Nach Ubuntu mit seiner Amazon-Werbung in der Dash-Suche wäre dies nun die zweite große Anwendung, die die Linuxnutzer mit sichtbarer Werbung beglückt.

Die Überschrift ist selbstverständlich reißerisch – und falsch. Denn Firefox ist schon lange kein erkennbares Produkt einer nichtkommerziellen Organisation mehr. Schon seit 2005 wird Firefox nicht mehr von der Mozilla-Stiftung entwickelt, sondern von der Mozilla Corporation, einem steuerpflichtigen Tochterunternehmen der Stiftung. Während die Stiftung als Non-Profit-Organisation firmiert, agiert die Corporation gewinnorientiert.

Korrekter wäre daher gewesen: „Firefox wird kommerzieller“. Doch auch das stimmt nicht, denn kommerzielle Elemente finden sich aktuell schon zur Genüge im Browser – seien es die Facebookschnittstelle oder die voreingestellten Suchmaschinen des Suchfeldes, für deren Vorhandensein Geld an Mozilla fließt.


Über das Firefox-Suchfeld wird ordentlich Provision fällig

Trotzdem gehen viele immer noch davon aus, Firefox und Mozilla seien das Produkt einiger Enthusiasten, die den Browser für Luft und Liebe der Welt zur Verfügung stellen. Doch freie Software bedeutet eben nicht zwangsläufig Nichtkommerzialität. Selbst im „Mozilla-Manifest“, der Selbstverpflichtung der Mozilla-Stiftung, ist Nichtkommerzialität nicht das entscheidende Merkmal, sondern die richtige Abwägung zwischen kommerziellen und gemeinschaftlichen Interessen.

Die Einblendung von Werbung ist daher zu begrüßen, denn sie bringt die bislang versteckte, indirekte Finanzierung über Suchmaschinenverträge stärker in den Fokus des Nutzers. Sie bedeutet zudem auch mehr Unabhängigkeit vom Hauptfinanzier Google, denn so können auch Geldmittel akquiriert werden, die nicht mit Suchmaschinenanbietern zusammenhängen. Google Chrome wird immer stärker im Netz (nicht nur durch Mundpropaganda, sondern durch andauernde Werbekampagnen, die Google offline wie online streut), auch deshalb ist Mozilla gut beraten, sich langfristig weitere Geldquellen zu erschließen.

Firefox ist auf stabile Einnahmen angewiesen – denn was passiert, wenn ein Produkt nicht mehr profitabel ist, hat man an Thunderbird gesehen, das nun „ausentwickelt“ auf dem Abstellgleis steht. Werbungsverächter hingegen müssen sich nicht fürchten – wenn die Funktion nicht direkt in Firefox deaktivierbar sein sollte, wird aller Wahrscheinlichkeit nach kurz darauf eine Erweiterung zur Verfügung stehen, die die Werbung wieder entfernt.

Mozilla ist im Kern eine gemeinnützige Stiftung, doch auch diese braucht Geld. Die Anschubfinanzierung, die der ehemalige Geldgeber AOL Mozilla bescherte, ist über 10 Jahre alt, und AOL ohnehin längst raus aus dem Browsergeschäft. Denn ursprünglich sollte Mozilla einmal die technische Basis des AOL-Browsers Netscape sicherstellen. Doch Netscape ist schon längst Geschichte, Firefox trägt sich seitdem um seiner selbst willen. Das kostet Geld. Browsertechnologieentwicklung ist komplex und finanziert sich nicht von selbst. Dezente Werbung da, wo sie nicht stört, ist neben Kooperationen und Spenden für Mozilla der wohl einzig gangbare Weg – und wohl auch ohne Alternative. Einen komplett kostenlosen Browser inklusive eigener Technik anzubieten, das kann sich aktuell nur noch Google leisten – und selbst dieser macht nicht zu knapp Werbung für die googleeigenen Dienste.


Ständig sichtbares, großflächiges Werbebanner mit wechselnden Inhalten in Opera 7

Nicht ohne Grund wird Opera kürzlich die Entwicklung seiner eigenen Technik aufgegeben und auf Webkit/Bling gewechselt haben – mit dem Ergebnis, dass es Opera seitdem nicht mehr für Linux gibt. Ironischerweise war es auch Opera, der als einziger Browser je Werbung einblendete (die störenden Werbebanner direkt im Browser-Interface sollten zum Kauf des Programms animieren). Wie viele Leute bereit waren, für einen Browser zu bezahlen, wenn genug vermeintlich kostenlose Alternativen bereitstehen, durfte ebenfalls Opera erleben. Als letzter der großen Bezahlbrowser stellte er mit Opera 8.5 komplett auf ein provisionsbasiertes Modell um. Mehr Reichweite durch kostenlose Verteilung versprach mehr Provision durch Suchanfragen im Suchfeld als das Festhalten am Bezahl- und Werbemodell.

So weit wie damals in Opera wird es mit Firefox nicht kommen. Als Open-Source-Anwendung würde Mozilla sofort einen Fork riskieren, würde Werbung im Browser zu aufdringlich werden. Mozilla muss einen Spagat schaffen, Werbung im Browser anzuzeigen, die beim regulären Surfen aber nicht stört. Die Umsetzung in der Schnellwahl/beim Öffnen eines neuen Tabs erscheint dafür wie prädestiniert. Da zudem die Werbung nur angezeigt wird, solange noch kein eigener Verlauf erstellt ist, der die Flächen beansprucht, verschwindet die Werbung sogar im laufenden Betrieb.

Button zum Ausblenden der SchnellauswahlInteressant dürfte allerdings werden, ob sich die Schnellwahlansicht in neuen Tabs auch in Zukunft noch standardmäßig so einfach wird deaktivieren lassen – im Moment reicht ein Klick auf ein Symbol in der oberen rechten Ecke der Seite.

Werbung in dieser Form ist unaufdringlich und nötig – und ehrlicher als das Verwerten von Nutzerdaten im Hintergrund, was ebenfalls angedacht ist. Dennoch ist der geplante Schritt von Mozilla eine Zäsur: offensichtliche Werbung hat es bislang in Mozilla-Produkten nicht gegeben – mit Ausnahme von Thunderbird, wo einem seit einiger Zeit bei der Einrichtung von Mailkonten amerikanische Mailprovider vorgeschlagen werden. Firefox verliert nichtsdestoweniger damit wieder ein Stückchen mehr von seinem Saubermann-Image. Harcore-Werbungsverweigerer werden vielleicht in Zukunft zwei Erweiterungen benötigen: Neben Adblock Plus für die Werbung auf Webseiten nun auch noch eine für die Werbung in Firefox selbst.

Ich habe gerade ein Paket für mein Lab erhalten. Der Inhalt sind ca. 200 Dioden. 😉 Ich habe sie letztens günstig im Internet gesehen und mir gedacht da ich eh noch Dioden brauche schlage ich zu und kaufe welche. 🙂 Mal sehen was ich damit so für Schaltungen bauen werde.

20140212-140333.jpg

Hier noch ein Foto vom Inhalt des Paketes. 😉

Ich habe vor ein paar Tagen mein original Victorinox Taschenmesser im Elektrodesign und mein original Victorinox Umhänge-band erhalten. Dass Taschenmesser hat eine sehr gute Qualität genauso wie dass Umhänge-band. 🙂 Dass Messer hat als Design einen Schaltkreis was sehr passend ist. 😉 Dass Taschenmesser ist eine Spezial Edition vom Classic 2012 und heißt Elektro Love.

20140212-135158.jpg

Falls jemand einen Link braucht nutzt die Kommentarfunktion oder schreibt eine Email. 😉

Mozilla zeigt beim Öffnen eines neuen leeren Tabs standardmäßig eine Seite mit Vorschaubildern der am meisten genutzten Seiten an. Für neue Nutzer erscheint diese Seite überwiegend mit leeren Kacheln. Mozilla plant, diese Seite mit teilweise gesponserten Kacheln vorzubelegen.

Wer zum ersten Mal Firefox startet oder Firefox mit einem frischen Profil benutzt, dem wird auffallen, dass auf der Seite, welche beim Öffnen eines neuen leeren Tabs erscheint, eine Kachel vordefiniert ist und die übrigen acht leer sind. Im Laufe der Zeit erscheinen hier Vorschaubilder zu den Webseiten, welche der Benutzer am häufigsten benutzt.

Mozilla plant, diese Kacheln mit Seiten vorzubelegen, welche teilweise gesponsert sind. Konkret soll es drei Kacheln von Webseiten aus dem Mozilla-Ökosystem geben, drei populäre Webseiten abhängig vom geographischen Standort und drei Webseiten, welche dafür bezahlen und von Mozilla ausgesucht werden. Die Partner in folgendem Mockup repräsentieren nicht die tatsächlichen Partner, sondern sind lediglich ein Beispiel dafür, wie das Vorhaben aussehen kann. Die Gespräche mit möglichen Partnern beginnen erst jetzt.

Stop! Werbung in Firefox – wie kann Mozilla nur?

Einige werden jetzt etwas denken wie: Werbung in Firefox? Wie kann Mozilla das tun? Wie ist das mit der Mission von Mozilla vereinbar? Tatsächlich ist das alles gar nicht mal im Ansatz so furchtbar wie es für den einen oder anderen klingen mag. Immerhin betrifft das lediglich neue Nutzer, die Vorschaubilder in vorhandenen Profilen werden nicht überschrieben. Wie das erste Bild in diesem Artikel zeigt, ist die First Run Experience für neue Firefox-Nutzer derzeit ziemlich bescheiden, eine Seite mit acht leeren Kacheln und der Nutzer hat zu diesem Zeitpunkt nicht wirklich eine Vorstellung davon, wofür diese Seite gut sein soll. Durch die Vorbelegung mit Seiten bekommt der Nutzer eine Idee von der Funktion dieser Seite und gleichzeitig ein paar Anhaltspunkte für Webseiten, die er möglicherweise nutzen möchte. Und wer Firefox nutzt, weil er Mozilla vertraut, der sollte Mozilla auch vertrauen, dass die Partner sehr sorgfältig ausgewählt werden. Ein Nachteil für die Nutzer entsteht dadurch keinesfalls.

Der Nutzer ist selbstverständlich in der Lage, diese Kacheln zu entfernen bzw. diese mit anderen Seiten zu überschreiben, so dass es sich dabei wirklich nur um Vorschläge für neue Firefox-Nutzer handelt. Ähnliches kennen übrigens auch Opera-Nutzer. Und wenn man einmal überlegt, dass längst auch Lesezeichen und Suchmaschinen vordefiniert werden, dann ist das Vordefinieren von Vorschaukacheln nicht wirklich etwas anderes.

Mehr Unabhängigkeit von Google

Dazu kommt, dass Mozilla derzeit 90 Prozent seiner Einnahmen von Google erhält. Gerade diejenigen Nutzer, welche mehr Unabhängigkeit von Google fordern, sollten diesen Schritt begrüßen, denn wer nach mehr Unabhängigkeit verlangt, der muss Mozilla auch die Möglichkeit zugestehen, neue Einnahmequellen zu erschließen. Man kann nicht auf der einen Seite sagen, dass ein so großer Anteil Googles am Sponsoring bedenklich sei, auf der anderen Seite aber kritisieren, wenn Mozilla versucht, anderen Partnern lukrative Möglichkeiten einer Partnerschaft zu geben. Hier gilt: Wer A sagt, der muss auch B sagen. Fest steht: Mozilla benötigt nun einmal viel Geld für die Entwicklung großartiger Produkte und die Umsetzung der Mozilla-Mission, ein offenes Web für alle zu schaffen und zu erhalten.

Im Übrigen läuft der Suchmaschinen-Vertrag mit Google am Ende dieses Jahres aus und muss neu verhandelt werden. Man kann also nicht automatisch davon ausgehen, dass Mozilla auch in Zukunft Einnahmen in dieser Höhe erhalten wird, das wird die Zukunft erst zeigen. Wenn man Mozillas Finanzbericht gründlich liest, dann wird man außerdem feststellen, dass Mozilla im Jahr 2012 Ausgaben von über 200 Millionen Dollar hatte. Ausgaben, die 2013 und in Zukunft nur unwahrscheinlich geringer ausfallen werden. Das dürfte unterstreichen, wieso auch ein Open Source-Projekt wie Firefox Einnahmen generieren muss.

Ich habe jetzt eine kleine Liste zusammengestellt die den Einstieg in die Elektronik bestens abdeckt. In den nächsten Tagen bestelle ich alles und sobald dass Paket ankommt zeige ich hier ausführlich was alles drin ist und warum jeder Gegenstand auf der Liste ist. 😉 Der Preis liegt mit ca. 115 Euro (Die Versandkosten sind schon mitgezählt) auf einem Niveau dass sich auch Schüler nach etwas sparen leisten können. Die Liste wird dann ihre eigene Seite bekommen die ich dann hier auch nochmal vorstelle. 😉
Falls ihr noch Fragen habt könnt ihr sie gerne per Kommentar oder Email stellen. 🙂

11. Februar 2014

Zu Beginn meiner Linux-Karriere habe ich Kanotix und Knoppix verwendet. Nach der Einstellung von Kanotix habe ich auf Kubuntu 7.04 (Feisty Fawn) gewechselt. Bis auf die Drucker-Misere in Gutsy Gibbon (7.10) war ich an sich mit Kubuntu immer recht zufrieden. Bis auf einzelne Nachwehen nach einer Neuinstallation (Upgrade hat so gut wie nie reibungslos funktioniert und hat meistens unschöne Nebenwirkungen mitgebracht) gab es nicht auszusetzen. Bis auf Canonicals scheinbares Ziel ein eigenes Ubuntu-Ökosystem zu schaffen, welches von dem von Linux unabhängig ist gibt es also keinen Grund zu wechseln. Dass Ubuntu auf Debian Sid basiert ist in meinem Fall auch kein Argument, da ich auch bei Debian das Unstable-Repository einbinden würde um etwas neuere Software zu erhalten. Warum also auf Debian umsteigen?

Ein technisches Argument gibt es hier nicht. Sowohl privat als auch im Auftrag meiner Arbeitsstelle möchte ich jeweils einen Server aufbauen. Zu Hause soll er verschiedene Aufgaben übernehmen. Unter anderem soll er als Testmaschine für Webentwicklung herhalten. Daneben sollen ein Web-, File-, Datenbank- und Mail-Server und der Blog darauf laufen. Realisiert soll das Stück für Stück werden um zu testen, welche Lasten der Server aushält. In der Arbeit soll nur eine Datenbank mit zugehörigem webbasierten Frontend laufen. Außerdem soll es möglich sein Backups der Arbeitsmaschinen zu machen. Der Mail-Server fällt also weg.

Für den Betrieb eines Servers sind Debian, CentOS und SuSE beliebte Distributionen. Ich fühle mich in der Debian-Welt sehr wohl und möchte daher die Server mit diesem System laufen lassen. Zuvor hatte ich keine Erfahrung mit dem “echten” Debian. Eben nur mit Distributionen, die zumeist auf Debian Sid basieren. Diese Erfahrung möchte ich mir jetzt holen. Meinen Heim-Server habe ich bereits mit Debian 7.3 bespielt um eine Server-Installation zu testen und dem Gerät einen Testlauf zu gönnen. Der Arbeits-Server ist bereits zusammengebaut und wartet an sich nur mehr auf die Installation.

Das Wintersemester ist vorbei. Also hielt ich es für höchste Zeit mein Arbeitsgerät frisch aufzusetzen und Debian eine Chance zu geben. Es gab mehrere Probleme, die mal mehr mal weniger mit Debian zu tun hatten. Keines davon hat mich bis jetzt aber aufgehalten oder abgeschreckt. Beginnen wir doch am Anfang …

Die Installation

Die Installation von Debian ist recht einfach … wenn man mal bis dahin kommt. Das erste Problem gab es, weil ein Teil meiner Hardware bereits Alterserscheinungen zeigt. So wollte mein DVD-RW-Laufwerk nicht von der Installations-DVD booten … Egal welche Boot-Reihenfolge ich in meinem BIOS einstellte, die DVD wurde ignoriert. Dabei hatte ich Kubuntu 13.04 auch noch von DVD installiert. Auch eine Installations-CD hat nicht funktioniert. Ok, dachte ich mir, es gibt ja die Möglichkeit das ISO-Image auf einen USB-Stick zu spielen und das System darüber zu installieren.

Gesagt getan: gparted auf den Stick losgelassen und die 4GB mit FAT32 formatiert. Die Labels lba und boot zugewiesen und fertig. Den USB-Startmedienhersteller aufgerufen, das Image und den Datenträger ausgewählt und “Los” gedrückt. 97% … 98% … 99% … FEHLER! Das Programm hat sich am Versionierungsstring verschluckt: GNU/Linux. Am Schrägstrich … Wenn ich in diesem Leben also noch ein Debian installieren wollte, dann war mir klar: ich muss das ISO entpacken, den Schrägstrich elimieren, das ISO wieder packen … und hoffentlich funktioniert dann alles. Zum ISO entpacken verwendete ich das Programm uck-remaster-unpack-iso, welches sich im Paket uck (Ubuntu Customization Kit) befindet. Dieses erstellt einen Ordner unter $HOME/temp, in welchen es die Dateien aus dem ISO schreibt.

Im versteckten Verzeichnis .disk findet man eine Datei mit dem Namen info. In dieser Datei befindet sich der Versionierungsstring. Hier habe ich den Schrägstrich gelöscht. Danach wird mit uck-remaster-pack-iso ein neues ISO geschnürt. Dieses liegt dann im Verzeichnis $HOME/temp/remaster-new-files. Nach dieser kleinen Änderung lies sich das Image erfolgreich auf den USB-Stick schreiben. Einen kurzen Neustart später akzeptierte mein Gerät den Stick als Boot-Medium und es konnte losgehen.

Die Installation – Jetzt wirklich

Das Debian-Installationsmenü bootet. Hier hat man die Auswahl zwischen einer normalen Installation, einer Experten-Installation (mehr Konfigurationsmöglichkeiten während der Installation) und beidem als graphische Version, die aber keinen nennenswerten Vorteil (Mausunterstützung) bei der Installation bietet. Nach ein paar Grundeinstellungen und der Einteilung der Festplatten wird das Grundsystem installiert. Danach bekommt man die Möglichkeit mehrere vordefinierte Gesamtpakete zu installieren. Hier kann man auswählen ob man eine graphische Oberfläche wünscht (und welche), ob man einen Print-, Mail-, SSH-, Web-, Datenbank- und/oder File-Server installieren möchte. Als Datenbank wird PostgreSQL verwendet, welches in Debian Wheezy in der Version 9.1 vorliegt. Der Web-Server ist Apache2.2.

Nach längerem Herunterladen der neuen Pakete und der Installation derselben ist das System benutzbar. Ich installierte mir einen KDE, einen SSH-, Web- und Datenbank-Server um lokal entwickeln zu können. Nach dem ersten Start des neuen Systems werden erstmal die unvermeidlichen Updates eingespielt. Danach habe ich einen Haufen Standardsoftware installiert (g++, gparted, firefox (iceweasel), thunderbird (icedove)). Um auszuprobieren, wie es sich damit arbeitet habe ich auch das Unstable-Repository aktiviert und alle Pakte aktualisiert. Das ging überaschend schmerzlos von statten, wobei der Einsatz von Debian Sid immer auf eigene Gefahr passiert.

Zuletzt wollte ich noch meinen WLAN-Chip zum Laufen bekommen. Mit dem Befehl
# lshw -C network
erhält man eine Übersicht über die verfügbare Netzwerk-Hardware. Ich haben einen Broadcom Chip (BCM4313), welcher vom Treiber brcmsmac unterstützt wird. Da der unter Ubuntu praktische jockey zum Installieren von proprietären Treibern unter Debian nicht zur Verfügung steht müssen die fraglichen Pakete manuell installiert werden. Dazu muss man das non-free Repository Debians aktivieren. Nach einem Update der Paketquellen konnte ich das Paket firmware-brcm80211 installieren. Danach noch den Treiber per modprobe laden und schon funkt der Chip nach Leibeskräften:
# modprobe -r brcmsmac
# modprobe brcmsmac

Für diesen Chip wie für viele weitere findet man Anleitungen im Debian Wiki.

Fazit

Im Großen und Ganzen bin ich sehr zufrieden mit Debian. Es benötigt etwas mehr Arbeit am Anfang, sobald es aber läuft ist es genauso pflegeleicht wie Ubuntu. Kleinere Macken muss ich noch angehen. So wird ein Tippen auf das Touchpad ignoriert. Da es recht unbequem ist immer die Maus-Tasten drücken zu müssen werde ich mir das noch ansehen. Audio und Video funktionieren out-of-the-box (wobei VLC etwas Überredung brauchte um Videos abzuspielen; der Dragon Player (Standard KDE Video Player) funktionierte aber von Anfang an). Dass Amarok seine Lautstärke ändert, wenn ich über die Medientasten die Systemlautstärke ändere ist nervig. Das muss ich Amarok noch abgewöhnen.

Debian kam mir früher immer wie ein System vor, welches nur Experten einsetzen sollten und wenn ich genug Erfahrung gesammelt habe würde ich es auch irgendwann mal einsetzen … irgendwann. Im Grunde ist in der Verwendung aber kein Unterschied zu einem Ubuntu/Fedora/SuSE/Gentoo/Arch feststellbar. Natürlich passieren hier viele unterschiedliche Dinge unter der Haube. Sobald das System aber läuft, verschwindet dieser Unterschied fast zur Gänze.

Eine Gute Alternative zu Ubuntu ist natürlich noch Linux Mint. Leuten, die aus welchem Grund auch immer von Ubuntu weg wollen, kann ich aber auch Debian bestens empfehlen. Es gibt viele Anleitungen und Problemlösungen für Debian im Netz. Außerdem funktioniert auch ein Großteil der Anleitungen im guten alten Ubuntuusers Wiki mit Debian.

Wenn du dich mit dem Gedanken spielst ein Debian aufzusetzen, dann lies dir am Besten den einleitenden Artikel auf dem Debian Wiki durch: Debian für Einsteiger. (Vielen Dank an Marcus Moeller für den Link.)

[UPDATE]

Eine kleine Konfiguration mit dem Programm synaptiks später reagiert das Touchpad auch auf Tippen. Die entsprechenden Eingaben waren einfach deaktiviert.

=-=-=-=-=
Powered by Blogilo


Einsortiert unter:Debian, Free Software/Open Source, GNU/Linux, KDE, Ubuntuusers

Zu Beginn meiner Linux-Karriere habe ich Kanotix und Knoppix verwendet. Nach der Einstellung von Kanotix habe ich auf Kubuntu 7.04 (Feisty Fawn) gewechselt. Bis auf die Drucker-Misere in Gutsy Gibbon (7.10) war ich an sich mit Kubuntu immer recht zufrieden. Bis auf einzelne Nachwehen nach einer Neuinstallation (Upgrade hat so gut wie nie reibungslos funktioniert und hat meistens unschöne Nebenwirkungen mitgebracht) gab es nicht auszusetzen. Bis auf Canonicals scheinbares Ziel ein eigenes Ubuntu-Ökosystem zu schaffen, welches von dem von Linux unabhängig ist gibt es also keinen Grund zu wechseln. Dass Ubuntu auf Debian Sid basiert ist in meinem Fall auch kein Argument, da ich auch bei Debian das Unstable-Repository einbinden würde um etwas neuere Software zu erhalten. Warum also auf Debian umsteigen?

Ein technisches Argument gibt es hier nicht. Sowohl privat als auch im Auftrag meiner Arbeitsstelle möchte ich jeweils einen Server aufbauen. Zu Hause soll er verschiedene Aufgaben übernehmen. Unter anderem soll er als Testmaschine für Webentwicklung herhalten. Daneben sollen ein Web-, File-, Datenbank- und Mail-Server und der Blog darauf laufen. Realisiert soll das Stück für Stück werden um zu testen, welche Lasten der Server aushält. In der Arbeit soll nur eine Datenbank mit zugehörigem webbasierten Frontend laufen. Außerdem soll es möglich sein Backups der Arbeitsmaschinen zu machen. Der Mail-Server fällt also weg.

Für den Betrieb eines Servers sind Debian, CentOS und SuSE beliebte Distributionen. Ich fühle mich in der Debian-Welt sehr wohl und möchte daher die Server mit diesem System laufen lassen. Zuvor hatte ich keine Erfahrung mit dem „echten“ Debian. Eben nur mit Distributionen, die zumeist auf Debian Sid basieren. Diese Erfahrung möchte ich mir jetzt holen. Meinen Heim-Server habe ich bereits mit Debian 7.3 bespielt um eine Server-Installation zu testen und dem Gerät einen Testlauf zu gönnen. Der Arbeits-Server ist bereits zusammengebaut und wartet an sich nur mehr auf die Installation.

Das Wintersemester ist vorbei. Also hielt ich es für höchste Zeit mein Arbeitsgerät frisch aufzusetzen und Debian eine Chance zu geben. Es gab mehrere Probleme, die mal mehr mal weniger mit Debian zu tun hatten. Keines davon hat mich bis jetzt aber aufgehalten oder abgeschreckt. Beginnen wir doch am Anfang …

Die Installation

Die Installation von Debian ist recht einfach … wenn man mal bis dahin kommt. Das erste Problem gab es, weil ein Teil meiner Hardware bereits Alterserscheinungen zeigt. So wollte mein DVD-RW-Laufwerk nicht von der Installations-DVD booten … Egal welche Boot-Reihenfolge ich in meinem BIOS einstellte, die DVD wurde ignoriert. Dabei hatte ich Kubuntu 13.04 auch noch von DVD installiert. Auch eine Installations-CD hat nicht funktioniert. Ok, dachte ich mir, es gibt ja die Möglichkeit das ISO-Image auf einen USB-Stick zu spielen und das System darüber zu installieren.

Gesagt getan: gparted auf den Stick losgelassen und die 4GB mit FAT32 formatiert. Die Labels lba und boot zugewiesen und fertig. Den USB-Startmedienhersteller aufgerufen, das Image und den Datenträger ausgewählt und „Los“ gedrückt. 97% … 98% … 99% … FEHLER! Das Programm hat sich am Versionierungsstring verschluckt: GNU/Linux. Am Schrägstrich … Wenn ich in diesem Leben also noch ein Debian installieren wollte, dann war mir klar: ich muss das ISO entpacken, den Schrägstrich elimieren, das ISO wieder packen … und hoffentlich funktioniert dann alles. Zum ISO entpacken verwendete ich das Programm uck-remaster-unpack-iso, welches sich im Paket uck (Ubuntu Customization Kit) befindet. Dieses erstellt einen Ordner unter $HOME/temp, in welchen es die Dateien aus dem ISO schreibt.

Im versteckten Verzeichnis .disk findet man eine Datei mit dem Namen info. In dieser Datei befindet sich der Versionierungsstring. Hier habe ich den Schrägstrich gelöscht. Danach wird mit uck-remaster-pack-iso ein neues ISO geschnürt. Dieses liegt dann im Verzeichnis $HOME/temp/remaster-new-files. Nach dieser kleinen Änderung lies sich das Image erfolgreich auf den USB-Stick schreiben. Einen kurzen Neustart später akzeptierte mein Gerät den Stick als Boot-Medium und es konnte losgehen.

Die Installation – Jetzt wirklich

Das Debian-Installationsmenü bootet. Hier hat man die Auswahl zwischen einer normalen Installation, einer Experten-Installation (mehr Konfigurationsmöglichkeiten während der Installation) und beidem als graphische Version, die aber keinen nennenswerten Vorteil (Mausunterstützung) bei der Installation bietet. Nach ein paar Grundeinstellungen und der Einteilung der Festplatten wird das Grundsystem installiert. Danach bekommt man die Möglichkeit mehrere vordefinierte Gesamtpakete zu installieren. Hier kann man auswählen ob man eine graphische Oberfläche wünscht (und welche), ob man einen Print-, Mail-, SSH-, Web-, Datenbank- und/oder File-Server installieren möchte. Als Datenbank wird PostgreSQL verwendet, welches in Debian Wheezy in der Version 9.1 vorliegt. Der Web-Server ist Apache2.2.

Nach längerem Herunterladen der neuen Pakete und der Installation derselben ist das System benutzbar. Ich installierte mir einen KDE, einen SSH-, Web- und Datenbank-Server um lokal entwickeln zu können. Nach dem ersten Start des neuen Systems werden erstmal die unvermeidlichen Updates eingespielt. Danach habe ich einen Haufen Standardsoftware installiert (g++, gparted, firefox (iceweasel), thunderbird (icedove)). Um auszuprobieren, wie es sich damit arbeitet habe ich auch das Unstable-Repository aktiviert und alle Pakte aktualisiert. Das ging überaschend schmerzlos von statten, wobei der Einsatz von Debian Sid immer auf eigene Gefahr passiert.

Zuletzt wollte ich noch meinen WLAN-Chip zum Laufen bekommen. Mit dem Befehl
# lshw -C network
erhält man eine Übersicht über die verfügbare Netzwerk-Hardware. Ich haben einen Broadcom Chip (BCM4313), welcher vom Treiber brcmsmac unterstützt wird. Da der unter Ubuntu praktische jockey zum Installieren von proprietären Treibern unter Debian nicht zur Verfügung steht müssen die fraglichen Pakete manuell installiert werden. Dazu muss man das non-free Repository Debians aktivieren. Nach einem Update der Paketquellen konnte ich das Paket firmware-brcm80211 installieren. Danach noch den Treiber per modprobe laden und schon funkt der Chip nach Leibeskräften:
# modprobe -r brcmsmac
# modprobe brcmsmac

Für diesen Chip wie für viele weitere findet man Anleitungen im Debian Wiki.

Fazit

Im Großen und Ganzen bin ich sehr zufrieden mit Debian. Es benötigt etwas mehr Arbeit am Anfang, sobald es aber läuft ist es genauso pflegeleicht wie Ubuntu. Kleinere Macken muss ich noch angehen. So wird ein Tippen auf das Touchpad ignoriert. Da es recht unbequem ist immer die Maus-Tasten drücken zu müssen werde ich mir das noch ansehen. Audio und Video funktionieren out-of-the-box (wobei VLC etwas Überredung brauchte um Videos abzuspielen; der Dragon Player (Standard KDE Video Player) funktionierte aber von Anfang an). Dass Amarok seine Lautstärke ändert, wenn ich über die Medientasten die Systemlautstärke ändere ist nervig. Das muss ich Amarok noch abgewöhnen.

Debian kam mir früher immer wie ein System vor, welches nur Experten einsetzen sollten und wenn ich genug Erfahrung gesammelt habe würde ich es auch irgendwann mal einsetzen … irgendwann. Im Grunde ist in der Verwendung aber kein Unterschied zu einem Ubuntu/Fedora/SuSE/Gentoo/Arch feststellbar. Natürlich passieren hier viele unterschiedliche Dinge unter der Haube. Sobald das System aber läuft, verschwindet dieser Unterschied fast zur Gänze.

Eine Gute Alternative zu Ubuntu ist natürlich noch Linux Mint. Leuten, die aus welchem Grund auch immer von Ubuntu weg wollen, kann ich aber auch Debian bestens empfehlen. Es gibt viele Anleitungen und Problemlösungen für Debian im Netz. Außerdem funktioniert auch ein Großteil der Anleitungen im guten alten Ubuntuusers Wiki mit Debian.

Wenn du dich mit dem Gedanken spielst ein Debian aufzusetzen, dann lies dir am Besten den einleitenden Artikel auf dem Debian Wiki durch: Debian für Einsteiger. (Vielen Dank an Marcus Moeller für den Link.)

[UPDATE]

Eine kleine Konfiguration mit dem Programm synaptiks später reagiert das Touchpad auch auf Tippen. Die entsprechenden Eingaben waren einfach deaktiviert.

=-=-=-=-=
Powered by Blogilo

Ich hatte schon lange vor mir endlich mal einen RC Helikopter zu kaufen jedoch ist mir bereits klar dass ich mich sehr genau umschauen und beraten lassen muss damit ich nicht irgendwas kaufe dass nächste Woche kaputt ist. Damit Neueinsteiger wie ich dann auch hier von meinen Erfahrungen und die Ergebnisse meiner Recherchen profitieren kann schreibe ich hier über alles was ich so Herauszufinden kann. Nachdem ich gerade kurz auf der Conrad Webseite vorbei geschaut habe setze ich mir vorerst eine Preispanne von ca. 100 Euro. 😉 Wobei ich natürlich die Preisspanne natürlich nach gründlicher Recherche und Beratung anheben kann. 😉 Dass ich jetzt aber nicht von diesen kleine Dingern rede die man bei jedem Spielzeugladen kriegt ist klar. 🙂 Ich hoffe ihr seit genauso gespannt wie ich jetzt. 😉

Mozilla plant die Einführung eines neuen Entwicklungsmodells für Firefox. Ziel ist eine bessere Priorisierung, Kommunikation sowie Fokussierung der Bemühungen, um Firefox weiterzuentwickeln. Am Releasemodell selbst wird sich nichts ändern.

Mozilla ändert sein Entwicklungsmodell für Firefox, hält am Releasemodell allerdings fest. Konkret bedeutet dies, dass es weiter alle sechs Wochen neue Versionen von Firefox geben wird, die sechs Wochen aktiver Entwicklung in mozilla-central, also den Nightly-Builds von Firefox, werden dabei in dreimal zwei Wochen für das Core-Desktop-Team aufgeteilt. Es gibt, wie man es von agilen Entwicklungsmethoden her kennt, einen Product-Backlog, welcher alle mit Prioritäten versehenen Bugs beinhaltet, an denen das Core-Team und die Community in dieser Zeit potentiell arbeiten soll. Die Verwaltung und Priorisierung des Backlogs erfolgt durch das Desktop Firefox Leadership Team. In jedem dieser Zwei-Wochen-Zyklen wählen die Teammitglieder die Bugs aus, von denen sie erwarten, in diesem Entwicklungszyklus zu arbeiten. Regelmäßige Planungs- und Status-Meetings begleiten den Prozess. Beginnen wird Mozilla mit dem neuen Entwicklungsmodell in der Woche des 17. Februar mit einem Teil der Teammitglieder und es dann möglicherweise auf das gesamte Core-Team ausweiten.

 

Ich möchte euch wieder eine Seite im Internet kurz vorstellen. Diesmal geht es um Fritzing welche sich in mehreren Seiten unterteilt. Hauptthema ist natürlich dass Programm Fritzing welches von denen dort entwickelt wird. Fritzing ist eine Elektronik Software in der der Nutzer Schaltungen und PCBs entwerfen kann. Fritzing bietet mit dem Fritzing Fab auch eine Möglichkeit PCBs herstellen zu lassen an die auch gleich in die Software integriert ist. Natürlich gibt es dort auch ein Forum, reichlich Infos und eine Projekt Seite in der ihr eure Projekte die ihr mit Fritzing entworfen habt vorstellen könnt. Über den Shop könnt ihr Kits und ein paar andere Dinge einkaufen wobei die Kits natürlich von denen zusammengestellt worden sind. Die Bücher/Prospekte in den Kits sind natürlich auch von denen. Bevor ihr jetzt gleich ein Kit kauft könnt ihr euch erst einmal die Experimente mit den Kits in der Software anschauen. 😉 Viel Spaß beim Experimentieren. 😉

Ich habe heute ein paar Änderungen an dem Theme hier vollzogen. Die Änderungen sind zwar klein jedoch fand ich dass sie zum Blog passen. 😉 Wer noch ein paar Anregungen oder sich an den Änderungen stört kann dies gerne per Kommentar mitteilen. 🙂 Ich hoffe euch gefallen die kleinen Änderungen. 😉

10. Februar 2014

Mozilla arbeitet an einer neuen Engine, welche auf den Namen Servo hört und in der sich ebenfalls noch in Entwicklung befindlichen Programmiersprache Rust geschrieben wird. Bis zur Fertigstellung wird es allerdings noch mindestens zwei Jahre dauern.

Mit Servo arbeitet Mozilla bereits seit vergangenem Jahr an einer komplett neuen Engine, welche moderne Hardware optimal nutzt und frei von Altlasten und Schwachstellen der aktuellen Gecko-Engine ist. Servo wird nicht etwa in C++, sondern in Mozillas eigener Sprache Rust geschrieben, welche bereits seit mehreren Jahren in Entwicklung ist und einige der Nachteile von C++ kompensieren soll. Einer der Vorteile von Rust ist, dass es für die Unterstützung mehrerer Prozessorkerne prädestiniert ist. Außerdem ist Rust standardmäßig sicher, was einen Großteil von Speicherfehlern verhindert und die Engine weniger anfällig für Abstürze und Sicherheitsprobleme macht.

Bis Servo in den Browser integriert und von Endnutzern genutzt werden kann, wird es allerdings noch mindestens zwei Jahre dauern. Das berichtet Golem.de unter Berufung auf Josh Matthews von Mozilla. Zumindest möchte man Servo in diesem Jahr soweit haben, dass mit dem Dogfooding begonnen werden könne, also dem breiteren Einsatz innerhalb von Mozilla.

Die Projekte Rust und Servo werden von Samsung unterstützt. Deren Ziel ist es, die Servo-Engine für ARM-CPUs und damit den Einsatz auf Smartphones zu portieren. Samsung soll im vergangenen Jahr 20 Mitarbeiter für die Entwicklung an Rust abgestellt haben.

TrueCrypt ist hoffentlich jedem Leser ein Begriff, daher verzichte ich auf eine detaillierte Vorstellung. Bei Bedarf kann man den entsprechenden Artikel im ubuntuusers-Wiki nachlesen.

Beim Nutzen der Container ist mir jetzt aber ein Problem bei der Nutzung auf mehreren Computern aufgefallen, auf das ich im Folgenden eingehen möchte.

Fehlende Rechte auf anderen Computern

Ein TrueCrypt-Container enthält ein eigenes Dateisystem wie eine Festplatte oder ein USB-Stick auch. Dieses wird bei der Erstellung festgelegt, kann aber auch nachträglich formatiert werden. Da ich nur Linux nutze, entschied ich mich für ext4. In diesem Fall problematisch ist, dass ext4 die bekannten Unix-Rechte unterstützt, wodurch ich beim Öffnen des Containers an einem anderen System Rechteprobleme erhielt:

  • An Computer 1 habe ich die UID 1000 und alle Dateien im TrueCrypt-Container gehören dem User 1001, also mir.
  • An Computer 2 habe ich die UID 1001, aber alle Dateien im TrueCrypt-Container gehören dem User 1001, also erhalte ich eine Fehlermeldung, wenn ich auf die Dateien zugreifen will, da dieser Nutzer keine Zugriffsrechte besitzt.


Und schon habe ich den Salat. Durch verschiedene User-IDs auf den verschiedenen Geräten gehören mir die Dateien mal, mal nicht. Und wenn ich mich als Eigentümer auf dem einen Gerät eintrage, funktioniert es wieder nicht auf dem anderen Gerät.

Quick and dirty: 777?

Die einfachste Lösung für dieses Problem ist die Zuweisung der Rechte für alle. Wenn ich nun jedem Nutzer die kompletten Rechte an den Dateien im Container zuweise, habe ich an jedem Gerät genug Rechte und keinerlei Probleme mit Lese- oder Schreibzugriffen. Die Zuweisung der Rechte in der Form 777 (siehe Tabelle Rechtezuweisung) ist in der Konsole mit einem Befehl erledigt. Die Lösung gefällt mir aber nicht besonders gut, denn nun kann jeder andere zu dieser Zeit eingeloggte Nutzer auch auf den eingehängten Container zugreifen – soweit ich weiß gibt es seitens TrueCrypt da keinen Schutzmechanismus.

Nutzer- und Gruppenrechte nutzen

Meine bisherige Lösung war es, die Eigentümer-Gruppe zu nutzen. In meinem konkreten Fall ist es immer so, dass mein Benutzer entweder der zuerst oder als zweites angelegte Nutzer im System ist, also immer entweder die UserID 1000 oder 1001 hat. Ich habe somit den Eigentümer der Dateien als den Benutzer 1000 festgelegt, die Gruppe aber als 1001 und in dieser Gruppe ist der Nutzer 1001 Mit der Rechtezuweisung 770 kann jetzt sowohl der Benutzer 1000 als auch 1001 auf die Dateien zugreifen, jeder andere aber nicht (im Gegensatz zu der vorherigen Idee mit allen Rechten).

Natürlich ist auch diese Idee nicht perfekt, denn wenn ich auf dem einen System Nutzer 1000 bin, kann der auf diesem System vorhandene Nutzer 1001 auch auf die Daten zugreifen – sofern es ihn gibt.

Gibt es einen besseren Weg, wie beispielsweise in der fstab einen Besitzer zuzuweisen?

9. Februar 2014

Donnerstag, 06.02.2014

Impact Maps und Story Maps

Am nächsten Morgen ging es mit dem Vortrag „Impact Maps und Story Maps: liefern was wirklich zählt“ von Christian Hassa weiter.

Er stellte eine Möglichkeit vor, dass das Backlog eines Projekts nicht überquillt. Hier nannte Impact Maps, die sichtbar machen sollen, welche Auswirkung ein bestimmtes Feature hat und was man dafür liefern muss. Daneben stellte er noch Story Maps vor, die auch irgendwas können.

Mir war der Vortrag leider viel zu hoch. Wer noch nicht mit User Stories im agilen Umfeld arbeitet, konnte mit dem Vortrag leider nichts anfangen.

Continuous Documentation statt Endless Specification

Der zweite Vortrag „Continuous Documentation statt Endless Specification - den Fokus auf nachhaltige Artefakte legen“ von Susanne Mühlbauer war da schon etwas besser, aber auf ähnlichem Niveau.

Die Referentin stellte zur Diskussion, ob es sinnvoll sei, dass man an vielen Stellen im Projekt mehrfach das Gleiche auf andere Art und Weise dokumentiert. Sie hält Prozess- und Projektdaten (Besprechungsprotokolle, Zwischenergebnisse etc.) für weniger wert als den entstandenen Code oder Designbeschreibung. Dieser Output könnte dann bei einem iterativen Verfahren wie Scrum wieder in die Anforderungsdokumentation wandern, um die Spezifikation zu verbessern.

Als Beispiele für solchen nachhaltigen Artefakte, die man aufheben sollte, zählt Mühlbauer Motivationen und Entscheidungen sowie der grobe Überblick über das Thema. Ebenso ist oft ein Benutzerhandbuch notwendig. Auch beschrieben werden sollten die Schnittstellen und nicht-funktionale Anforderungen, ebenso wie die Testfälle.

Architekt zu werden scheint nicht schwer, Architekt zu sein dagegen sehr

Siemens-Mitarbeiter Michael Stal sprach dann aus, was alle Software-Architekten denken: „Architekt zu werden scheint nicht schwer, Architekt zu sein dagegen sehr“.

Die Architektur ist das Rückgrat des Systems und so sind auch die Architekten wichtig, die dieses pflegen. Oft sind Architekten aber „nur“ normale Entwickler, die dazu ernannt wurden, aber keinerlei sonstigen Erfahrungen dafür mitbringen. Ein Problem ist dabei sicher auch, dass Architekten in manchen Prozessen einfach kein Platz zugeordnet wird.

Am Beispiel der Siemens AG stellte Stal dann die verschiedenen Architekten-Anforderungen und dessen Verantwortungen vor. Neben Design Skills benötigen sie Erfahrung im Requirement Engineering und Teststrategien. Vor allem die Soft Skills sah Stal als extrem wichtig an. Ebenso sollten auch Architekten noch implementieren – etwas, was sehr oft nicht mehr der Fall ist.

Zusätzlich sollte man als Architekt (und in meinen Augen auch allgemein) nicht alles bis ins kleinste Detail vorab spezifizieren, designen und berechnen, sondern lieber einfach etwas ausprobieren und dann nachjustieren, wenn es nicht stimmt. Das erfordert aber Mut.

Gut fand ich auch den Hinweis, dass man als Architekt auf ein guten Ausgleich zwischen Arbeits- und Privatleben achten sollte. Mehr als 40 Stunden kann ein Mensch auf die Dauer in einer Woche nicht sinnvoll arbeiten ohne sich kaputt zu machen bzw. ohne dass die Qualität leidet.

Keynote: An Agile Challenge

Die Keynote „An Agile Challenge: Munich Germany Takes On The Columbus Ohio USA Agile Benchmark Study“ war in meinen Augen dann eher wenig erwähnenswert.

Es wurden nur Ergebnisse von ein paar europäischen Firmen vorrgestellt, die an einer Agile-Benchmark-Studie teilgenommen hatten.

Über Freud und Leid der Entwickler beim Schätzen ihrer Aufgaben

Der Vortrag „'Och, nicht schon wieder ...!'; - Über Freud und Leid der Entwickler beim Schätzen ihrer Aufgaben...“ war eigentlich weniger Vortrag als Erfahrungsaustausch.

Die beiden Referenten Paul Herwarth von Bittenfeld und Joachim Seibert teilten den Raum in zwei Gruppen auf, die wiederum in drei Teilgruppen geteilt wurden. Diese drei Teilgruppen sammelten sich dann um drei Fragen an drei Tischen. Jeder sollte sich mit den anderen austauschen und aufschreiben, was 1. die Motivation für Schätzungen ist, 2. welche Störungen es gibt, die Schätzungen zunichte machen können, und 3. welche gute Erfahrungen mit Schätzen gemacht wurde. Die Teilgruppen wanderten dann zum nächsten Tisch weiter und am Ende wurden die erarbeiteten Ergebnisse vorgestellt.

Das ganze bezog sich natürlich auf das Abschätzen in Scrum-Projekten, sodass ich nicht direkt mitreden konnte, dennoch kam Einiges zusammen. Vor allem aus dem Scrum-Umfeld konnte ich so ein paar Begriffe wie „Planning Poker“ oder „Magic Estimation“ aufgreifen (hier grob erklärt).

Mir hat die Veranstaltung sehr gut gefallen, weil man so einmal mit seinen Tischnachbarn ins Gespräch kam und sich austauschen konnte. Dazu im Fazit mehr …

Keynote: Software Design in the 21st Century

Danach trat Martin Fowler mit seiner Keynote „Software Design in the 21st Century“ an. Martin Fowler ist kein Unbekannter in der Software-Welt und hatte/hat einen großen Einfluss auf die Entwicklung im Bereich Software-Architektur, Refactoring und Extreme Programming.

Dementsprechend habe ich mich auch auf seinen Vortrag gefreut, der zweigeteilt war. Der erste Teil beschäftigte sich mit den verschiedenen Arten des Refactorings. Neben Test-Driven-Development-Refactoring nannte er auch noch Little-Pickup-Refactoring, Comprehension-Refactoring, Preparatory-Refactoring, Planned Refactoring (im Backlog) und Long-Term-Refactoring.

Martin Fowler zum Thema Refactoring.
Martin Fowler zum Thema Refactoring.

Die guten Gründe, die für Refactoring sprechen, sind: Qualität, sauberer Code, Professionalität und dass es einfach das Richtige ist. Diese Gründe sollte man aber gegenüber den Geldgebern/Projektleitern nie nennen. Besser wäre es, wenn man „Okönomie“ als Grund angibt: Man kann nach dem Refactoring mehr und schneller liefern.

Der zweite Teil befasste sich weniger mit normalen Software-Themen, sondern griff die Nachricht der Keynote von Constanze Kurz vom Vortag mit auf. Fowler betonte, dass wir Entwickler nicht bloß „Code monkeys“ seien, sondern unser Gehirn einschalten sollten. Wir sollten das Richtige und Moralische während unser Arbeit tun. Dazu zählt auch die Privatsphäre der Nutzer zu schützen.

Er verwies dabei auch auf den kommenden Dienstag. Am 11. Februar 2014 ist der Tag, an dem wir zurückschlagen: The Day We Fight Back – Against Mass Surveillance. Martin Fowler rief jeden dazu auf, teilzunehmen, was ich nur unterstützen kann.

Ich hätte nicht mit so einem kritischen Thema auf der OOP gerechnet, bin deswegen aber umso mehr begeistert gewesen. Auch heise hat darüber berichtet.

Agile Softwarearchitektur - 5 Dinge die vom Hype bleiben

Im vorletzten Vortrag ging es um das Thema „Agile Softwarearchitektur - 5 Dinge die vom Hype bleiben“. Stefan Toth erzählte, wie Softwarearchitektur in die agile Welt passt.

Es sind dabei vor allem fünf Dinge, die bleiben: Schlanke Vorarbeit (d.h. nicht totdesignen, bevor man anfängt zu kodieren), gemeinsame Architekturarbeit aller Beteiligten/Entwickler, Architekturanforderungen müssen festgehalten sein, Architektur und Entwicklung verzahnen (iterativ mit Metriken und Tests verifizieren und korrigieren) und Reflexion der Architektur.

Insgesamt war es ein guter und interessanter Vortrag, der dabei half, das Thema Softwarearchitektur im agilen Umfeld korrekt einzuordnen.

SOLID Deconstruction

Den Abschluss – und mein Highlight – bildete der Vortrag SOLID Deconstruction von Kevlin Henney. Ich habe Henney bereits auf der OOP 2012 gehört und freute mich daher auf ihn. Grund war und ist, dass man in seinen Vorträgen Tränen lacht und trotzdem etwas lernt.

Henney nahm die SOLID-Prinzipien auseinander und erklärte zu jedem Prinzip, wo es herkam und was es ursprünglich bedeutete und wieso wir es in der heutigen Zeit manchmal falsch anwenden bzw. falsch verstehen.

Interessant war auch sein Verweis auf das Dreyfus-Modell zum Erwerb von Fähigkeiten, was den Menschen in fünf Typen unterteilt, wie er etwas lernt und aufnimmt. Dementsprechend sollte man auch mit den SOLID-Prinzipien umgehen.

Der Vortrag war wie erwartet sehr erheiternd. Kleinere Anekdoten und ein sehr lockerer Vortragsstil reißen einen einfach mit. Zusätzlich habe ich einiges über SOLID gelernt und kann die Prinzipien (bzw. Henney nennt es lieber Pattern) besser anwenden.

Fazit

Die OOP war wieder sehr gut und ich kann es eigentlich nur jedem empfehlen, der die Möglichkeit hat, dort hinzugehen, es mindestens einmal zu versuchen. Das Programm ist so riesig, dass für jeden etwas dabei ist. Daneben kann man auch viele Kontakte knüpfen …

… wenn die Raumgröße nicht wäre. In jedem Vortrag gab es das gleiche Bild: Zwischen je zwei Zuhörern war ein Platz frei. Immer! Ausnahme: Zwei Entwickler kamen gemeinsam durch die Tür herein und gehörten zusammen. Auch während der Pausen blieben die meisten (wenn sie nicht Teil einer Gruppe waren) für sich. Ich bin unsicher, wieso das so war, aber es fanden so nur wenige Gespräche statt. Einzig bei den Gruppenarbeiten in den Vorträgen (was bei mir nur zwei waren), wurde das Eis gebrochen und die Gespräche fingen an.

Interessant waren auch die Ausstellungen im unteren Bereich der Halle. Siemens stellte beispielsweise ein 1:2-Modell des Mars Rover aus. Und beim Carl-Hanser-Verlag konnte ich mit den Leuten reden, deren Bücher ich ab und zu lese.

Das Mars-Rover-Modell am Siemens-Stand.
Das Mars-Rover-Modell am Siemens-Stand.

Bilder gibt es im Übrigen beim Veranstalter, wer ein paar Impressionen sehen will.

Jedes Jahr findet in München die OOP statt, eine Messe, auf der viel über Software-Architektur, Agilität und Management gesprochen wird. Dieses Jahr waren mehr als 150 Referenten vor Ort und haben über 1800 Konferenz-Teilnehmer unterhalten. Mich am Mittwoch und Donnerstag ebenfalls.

Eingang zur Messe.
Eingang zur Messe.

Mittwoch, 05.02.2014

OOA, IOC, ROI, SQL - Was passt nicht?

Der erste Vortrag war „OOA, IOC, ROI, SQL - Was passt nicht? Eine Erzählung von Betriebswirtschaft und Software-Entwicklung“. Hier ging es speziell um den Return of Invest (ROI), für den sich das Management in einer Firma meist interessiert.

Anhand eines Beispiel, bei dem es darum ging, ob man ein Stück Code mit einer Factory und DIP refaktorisiert, wollte Michael Mahlberg zeigen, ob es sich lohnt, dies so umzusetzen. Wichtig für ihn war, nicht die absoluten Zahlen zu sehen, sondern immer die Investierung betrachtet über die Zeit (also inkl. Zinssatz). Ich gebe zu, dass ich das nicht alles verstanden habe.

In kleinen Gruppenarbeiten sollten dann andere Fälle wie „Make or Buy“, „Serviceaustausch“ oder „Flat-File vs. Datenbank” besprochen werden. Da wir viel zu viele Teilnehmer waren (ca. 50) teilten sich diese also auf drei Gruppen auf, in der aber nur wenige etwas zum Ergebnis beitrugen. Heraus kam auf alle Fälle, dass es wesentlich leichter ist, die Kostenseite für eine Software-Änderung aufzuschreiben als die Nutzenseite.

Architectural Refactoring

Der zweite Vortrag war „Architectural Refactoring - agile Umsetzung von Modernisierungsentscheidungen“. Unter Architectural Refactoring versteht Referent Olaf Zimmermann, dass man eine zuvor getroffene architekturelle Entscheidung ändert.

In der Regel ist dies nicht einfach, da es mit einer Strukturänderung im Design, Neuimplementierung und Dokumentation verbunden ist. Oftmals liegen vorher getroffenen Entscheidungen nicht einmal vor, was die Sache noch mehr erschwert.

Als Beispiel hat er ein Y-Template vorgestellt, mit dem man festhalten kann, welcher Anwendungsfall unter bestimmten nicht-funktionalen Anforderungen zu einer Entscheidung führt und andere Entscheidungen weglässt, sodass ein bestimmtes Ziel erreicht wird unter Beachtung ggf. negativer Konsequenzen. Festgehalten werden soll das Ganz durch das „ARC Metamodel“, was aber derzeit noch entwickelt wird.

Keynote: Agile Skalierung – Prinzipien statt Blaupause

Die Keynote „Agile Skalierung – Prinzipien statt Blaupause“ von Stefan Roock und Hennig Wolf war sehr interessant.

Die beiden Trainer von it-agile zeigten als Beispiel, dass ein agiles Pilotprojekt auf eine ganze Firma ausgewälzt werden soll. Hier hilft dann keine generische Blaupause, nach der alles umgestellt wird. Ein Überstülpen eines neuen agilen Entwicklungsprozesses von oben bringt nichts, sondern der Kulturwandel muss von unten, von den Mitarbeitern kommen. Verschiedene Prinzipien wie direkte Kommunikation, kein Zielzustand vorgeben sowie beobachten und anpassen sind dabei ganz wichtig, damit so eine Änderung ein Erfolg wird.

Imposing Rule-Based Architecture on Legacy Systems

Der Vortrag „Imposing Rule-Based Architecture on Legacy Systems“ von Michael Feathers sollte den Umgang mit Legacy-Systemen zeigen.

Neben der Darstellung einer einfachen Struktur stellte er einige Mittel vor, wie man Verletzungen der Architekturregeln darstellen kann. Zusätzlich war es wichtig, den Fortschritt wie auch immer zu messen.

Ein schönes Zitat von Kent Beck im Vortrag war: „Wenn du dein System nicht mit vier Objekten oder weniger beschreiben kannst, hast Du keine Architektur.” Das kann man als übertrieben ansehen, aber es soll klar machen, dass jede Art von Architektur zumindest als grobes Konzept leicht verständlich sein muss. (Als Beispiel hat Michael Feathers im Übrigen das Testframework JUnit mit nur zwei Klassen beschrieben.)

Die Vortragsfolien sind leider nicht so gut, da diese oft nur die Überschrift enthalten und der Rest auf der Tonspur kam, was die Zusammenfassung auch etwas erschwert.

Keynote: Mastering the Internet

Überrascht hat mich die Keynote „Mastering the Internet“ von Constanze Kurz. Die Sprecherin des Chaos Computer Club ist vielen sicher bekannt, man würde sie aber nicht auf OOP erwarten.

Das Thema ihres Vortrags war recht aktuell, da es um die Enthüllung von Edward Snowden ging, vor allem eben Prism und die anderen Überwachungsaktivitäten des us-amerikanischen und britischen Geheimdienstes.

Als Open-Source-Aktivist (und Mitglied bei der EFF und FSFE) bin ich dem Thema sehr verbunden und habe mich gefreut, dass Constanze Kurz das den OOP-Teilnehmern noch einmal klar gemacht hat. Interessanterweise blieb sie nicht die einzige …

CCC-Sprecherin Constanze Kurz.
CCC-Sprecherin Constanze Kurz.

Modernisierung von zentralen Frameworks

Anatole Tresch von der Schweizer Bank Credit Suisse zeigte im Vortrag „Modernisierung von zentralen Frameworks - ein Erfahrungsbereicht“, wie einen Java-Framework, was in der Bank benutzt wird, in mehreren Jahren modernisiert wurde.

Grund für die Modernisierung (Refactoring) waren die üblichen Probleme wie erhöhte Wartungszeit und eine zu komplexe API. Das mittelgroße System mit 17.000 Codezeilen hatte Zyklen, eine hohe Kopplung und zahlreiche große Klassen. Als Ziele gab man sich vor robust zu sein, die Wartbarkeit und Laufzeit sollte verbessert werden, daneben wollte man aber auch kompatibel bleiben.

Hier sollte jedem klar sein, dass das eigentlich nicht alles machbar ist. Angeblich wurde aber eine Performancesteigerung von Faktor 100 herausgeholt. Gleichzeitig wurde das System entkoppelt und vereinfacht, was ich mir nicht so richtig vorstellen kann. Kompatibel ist man aber nicht geblieben, was aber kein Problem war, da die Kunden ja wiederum in der Bank saßen und man so direkten Kontakt zu ihnen halten konnte.

What If? - An Exploration of What's Possible, What's Not and Why?

In der Abendschule von 18:30 Uhr bis 20 Uhr gab es dann den letzten Vortrag „What If? - An Exploration of What's Possible, What's Not and Why?“ von David Hussmann. Einige Vorträge gibt es auch auf seiner Firmen-Webseite Devjam.

Sehr unterhaltsam hat David Hussmann erklärt, dass die Leitsprüche „certification over education“ und „process over product“ eher schaden als nützen. Die Änderungen müssen aus dem Team heraus kommen und von ihm angenommen werden. Zusätzlich muss Platz für Anpassungen und Veränderungen sein.

Das heißt, wenn der Prozess nicht passt, egal ob Scrum, Kanban oder was anderes, dann muss man ihn anpassen. Und wenn man dann eben eben nicht mehr nach Lehrbuch arbeitet, dann ist das einfach so. Wenn es dem Team und dem Projekt hilft, ist das in Ordnung.

Mir hat an dem Vortrag gefallen, dass eben nicht so sehr auf Regeln gepocht wird. An vielen Stellen hört man immer wieder: „Was, ihr macht Scrum und habt kein ordentliches Backlog? Wie könnt ihr nur?“ Ich hoffe, dass sich dieses Denken der Freiheit und Anpassbarkeit noch weiter herumspricht.

Etwas enttäuscht war ich nur von dem Begriff Abendschule (Night school). Ich hatte mir darunter eine lockerere Atmosphäre und Gespräche vorgestellt. Effektiv war es aber wie die normalen Vorträge – nur eben spät abends … und recht teuer.

Eines der nervigsten Bastelthemen die mich jemals beschäftigt haben war die Konfiguration dieses Laptops für den Linuxbetrieb. Die Installation von Debian verlief problemlos – das Thinkpad wollte jedoch auf Gedeih und Verderb nicht mit mehreren Displays arbeiten. In dem Thinkpad arbeiten 2 Grafikkarten, eine von Intel und eine NVIDIA Optimus. Da mir das Umschalten mit Bumblebee zu umständlich war habe ich im BIOS die NVIDIA Karte als Default ausgewählt – siehe Screenshots und den proprietären NVIDIA Treiber installiert.

Diese Konfiguration läuft jedoch nur bedingt – ab und an bootet das System und manchmal leider nicht. Das Stichwort lautet waiting for /dev to be fully populated. Die Lösung ist dieses Problems ist absolut logisch und selbst für den Laien verständlich – im BIOS einfach die Virtualisierung deaktivieren und alles ist gut.

Auf discrete Graphics umstellen Auf discrete Graphics umstellen Virtualisierung deaktivieren Virtualisierung deaktivieren

Da ich die letzten 12 Monate wenig Zeit und noch mehr Arbeit hatte begleitete mich dieses Problem wirklich sehr lange – zeitweise mußte ich sogar einen sehr bizarren KDE Klon zum Arbeiten verwenden.

Die Früchte dieser merkwürdigen Konfigurationsarbeit sehen dann so aus:

 

4 mal Slayer

 

2 Displays sind via DisplayPort angeschlossen und eines über VGA. Einen sinnvollen Verwendungszweck habe ich für soviele Displays noch nicht gefunden. Aber auf 3 Screens läßt sich wunderbar Java schreiben:)

Der Beitrag Mehrere Bildschirme mit dem Thinkpad W530 erschien zuerst auf Unerklärliches am Rande.

Eines der nervigsten Bastelthemen die mich jemals beschäftigt haben war die Konfiguration dieses Laptops für den Linuxbetrieb. Die Installation von Debian verlief problemlos – das Thinkpad wollte jedoch auf Gedeih und Verderb nicht mit mehreren Displays arbeiten. In dem Thinkpad arbeiten 2 Grafikkarten, eine von Intel und eine NVIDIA Optimus. Da mir das Umschalten mit Bumblebee zu umständlich war habe ich im BIOS die NVIDIA Karte als Default ausgewählt – siehe Screenshots und den proprietären NVIDIA Treiber installiert.

Diese Konfiguration läuft jedoch nur bedingt – ab und an bootet das System und manchmal leider nicht. Das Stichwort lautet waiting for /dev to be fully populated. Die Lösung ist dieses Problems ist absolut logisch und selbst für den Laien verständlich – im BIOS einfach die Virtualisierung deaktivieren und alles ist gut.

Auf discrete Graphics umstellen Auf discrete Graphics umstellen Virtualisierung deaktivieren Virtualisierung deaktivieren

Da ich die letzten 12 Monate wenig Zeit und noch mehr Arbeit hatte begleitete mich dieses Problem wirklich sehr lange – zeitweise mußte ich sogar einen sehr bizarren KDE Klon zum Arbeiten verwenden.

Die Früchte dieser merkwürdigen Konfigurationsarbeit sehen dann so aus:

 

4 mal Slayer

 

2 Displays sind via DisplayPort angeschlossen und eines über VGA. Einen sinnvollen Verwendungszweck habe ich für soviele Displays noch nicht gefunden. Aber auf 3 Screens läßt sich wunderbar Java schreiben:)

Der Beitrag Mehrere Bildschirme mit dem Thinkpad W530 erschien zuerst auf Unerklärliches am Rande.