NuGet Paketverwaltung

Paketmanager: erst denken, dann tippen

Paketverwaltungen oder -manager sind längst nicht mehr nur Bestandteil von Betriebssystemen, sondern finden sich seit längerem auch im Zusammenhang mit Entwicklungsumgebungen bzw. Programmier- und Scriptsprachen wieder. Beispiele sind Composer für PHP, NuGet für .NET oder npm für JavaScript.

Die Hauptaufgabe der Paketverwaltungen ist das unkomplizierte Einbinden von Bibliotheken in Softwareprojekte. Angefangen bei der Suche in einem zentralen Register nach benötigten Bibliotheken oder Funktionen, sorgt der Paketmanager auch meist für die richtige Integration der einzelnen Bestandteile in das bestehende Projekt. Zudem lädt ein Paketmanager automatisch andere Pakete nach, auf denen das gewünschte Paket aufbaut.
Es gibt nicht wenige Pakete die ein Dutzend oder mehr Abhängigkeiten – sog. Dependencies – zu andern Paketquellen haben.

Ein weiterer Vorteil der Paketmanager ist die einfache Aktualisierung von verwendeten Paketen und deren Dependencies. Statt die verschiedenen Quellen der einzelnen Projekte nach Updates und Patches zu durchsuchen, erledigt die Paketverwaltung diesen Job zentral.

Insbesondere in großen Bibliotheken und Frameworks sind die Abhängigkeiten zu anderen Projekten teilweise unübersichtlich. Daraus ergeben sich Probleme und Gefahren, die sich jede_r Entwickelr_in oder Projektleiter_in bewusst machen sollte.

Ungesehener Code

Neben den vielen Abstraktionsebenen durch verschiedene Frameworks in modernen Softwareprojekten bringen die Dependencies weiteren Quellcode mit sich, der, streng genommen, von den Projektbeteiligten vor der Integration auditiert werden müsste. Das gleiche gilt für alle Updates dieser Pakete.

In den meisten Fällen handelt es sich bei den Paketquellen um Open-Source Projekte, so dass auf einen Codereview-Prozess der Community gehofft werden kann. Letztendlich ist jedoch jeder selbst für den ausgeführten Code in seinen Projekten verantwortlich.

Abhängigkeit

Ein weiters Problem wird bereits durch das Wort Dependencies selbst benannt: Was passiert bspw. wenn grundlegende Paketquellen von jetzt auf gleich verschwinden?

So geschehen im März 2016, als das Paket left-pad von seinem Entwickler aus der Paketverwaltung npm für JavaScript gelöscht wurde. Tausende Projekte und Frameworks, darunter Node.js und Babel, ließen sich nach einem Update der Paketquellen nicht mehr nutzen.
Der Grund für die Depublizierung war eine namenrechtliche Auseinandersetzung zu einer anderen Paketquelle (kik) des Entwicklers und dem Unternehmen hinter dem gleichnamigen IM.

Typosquatting

Neben den infrastrukturellen Risiken der Paketverwaltungen bietet deren Funktionsweise jedoch auch Schwachstellen für aktive Angriffe.
Ein gezieltes Szenario, der zumeist mit einem CLI zu bedienenden Paketmanager, wäre mit der sog. Typosquatting Methode denkbar.

Typosquatting (zu engl.: squat = besetztes Haus, dt. Lehnübertragung: Tippfehlerdomain) ist eine Form von Cybersquatting, die darauf beruht, dass eine Person einen Uniform Resource Identifier (URI, also die Adresse der Website) in einem Webbrowser versehentlich falsch eintippt und dann auf eine alternative Seite geführt wird, die dem Typosquatter gehört.

Nikolai Philipp Tschacher hat sich in seiner Bachelor Thesis mit genau diesem Thema auseinandergesetzt und untersucht, wie erfolgreich ein Übertragung des Typosquatting Angriffs auf populäre Paketmanager ist.

Dabei hat er nach einer Möglichkeit gesucht, bereits während der Installation eines Pakets, Code auf dem jeweiligen System ausführen zu können. Seine Betrachtung beschränkte sich auf die Paketmanager PyPi für Python, npm für JavaScript und rubygems.org für Ruby.

Der ausgeführte Code lieferte Informationen über das jeweilige System und die zur Installation des Pakets verwendeten Benutzerrechte an einen Webserver der Universität Hamburg zurück.

Das Ergebnis nach 214 erstellten und veröffentlichten Pakete mit ähnlichen Namen von populären Paketquellen ist erstaunlich bis beunruhigend.

Insgesamt kamen 45.334 HTTP Requests von 17.289 eindeutigen Hosts zusammen. Das bedeutet, dass der in den Paketen eingeschleuste Code auf über 17.000 Systemen innerhalb des etwa zwei monatigen Versuchs ausgeführt wurde.
Davon wurden 43,6% der Installationen mit Administrationsrechten ausgeführt. Ein Großteil der Hosts wurde mit Linux betrieben (8.614), gefolgt von Windows (6174) und OS X (4.758).

Gesunder Menschenverstand

Paketmanager bieten einen hohen Komfort für Softwareentickler_innen und die Nutzung von bestehenden Bibliotheken bedeutet für das einzelne Projekt meist einen nicht unerheblichen Zeitgewinn. Außerdem ist die Devise, dass Rad nicht ständig neu erfinden zu wollen, nicht grundsätzlich verwerflich.

Es sollte jedoch die Frage erlaubt sein, welchen Mehrwert eine Bibliothek wie bspw. das genannte left-pad Paket, das im wesentlichen eine Zeichenkette mit Leerzeichen auf eine bestimmte Länge auffüllt, im Verhältnis zu den angeführten Risikofaktoren bietet.

Dependencies erhöhen ohne Zweifel die Komplexität von Softwareprojekten. Grundsätzlich empfiehlt es sich natürlich, die Abhängigkeiten in Applikationen so gering wie möglich zu halten.
Zudem schadet ein regelmäßiger Blick in den eingebundenen Code sicher nicht. Informationen über die Community hinter den jeweiligen Paketquellen und deren Aktivität lassen sich bei Open-Source Projekten relativ einfach finden.

Im Zweifel ist der gesunde Menschenverstand auch in dieser Angelegenheit der beste Ratgeber.


caniuse.com

Wer in Sachen Webentwicklung oder -design unterwegs ist, wird häufig vor die Frage gestellt, von welchem Browser dieser CSS Selektor oder jenes HTML5 Element denn nun unter welchen Bedingungen unterstützt wird.

Die Antwort auf diese Fragen liefert caniuse.com; und zwar in einer Ausführlichkeit, die nichts zu wünschen übrig lässt. Neben der Auflistung aller gängigen Desktop- und Mobile-Browser in sämtlichen Versionen und deren Kompatibilität zu der ausgewählten Frontend-Webtechnologie, finden sich auf der Seite viele weiterführende Links und Informationen. Dort werden bspw. alle bekannten Bugs und Einschränkungen der jeweiligen Funktion gesammelt und beschrieben. Zudem wird der Status zur Umsetzungen in den einzelnen Browsern vermerkt.

Die Daten werden hauptsächlich durch die Webentwickler Community zusammengetragen. Außerdem hat Alexis Deveria, der Betreiber von caniuse.com, eine Testseite erstellt, mit welcher sich die verschiedenen Funktionen im eigenen Browser testen lassen.

Die Seite ist insgesamt gut strukturiert, responsive und dank des umfangreichen Einsatzes von JavaScript sehr flott. Zur Nützlichkeit der Seite muss ich wohl keine weiteren Worte verlieren. Wer den Macher unterstützen möchte, kann dies via Flattr tun oder sich am Zusammentragen der Informationen im entsprechenden GitHub Repository beteiligen.


HTTP jetzt auch einfach mit S

Für den gemeinen Datenreisenden gibt es wohl kaum eine Maßnahme, die dessen Privatsphäre müheloser stärkt, als beim Abrufen von Webinhalten dem Protokollbezeichner HTTP ein kleines S zur Seite zu stellen.

Mit der Verwendung des Protokolls HTTPS ist nämlich sichergestellt, dass Daten abhörsicher zwischen dem Webserver und dem Endgerät des Nutzers übertragen werden.

Was für den Verbraucher so einfach funktioniert, bedeutete für den Inhalteanbieter jedoch bislang einen gewissen Aufwand und/oder war mit Kosten verbunden.
HTTPS basiert auf SSL bzw. TLS und ist damit den asymmetrischen Kryptosystemen zuzuordnen. Damit eine Webseite also via HTTPS erreichbar ist, muss ein kryptographisches Schlüsselpaar – im Idealfall von dessen Urheber – generiert und auf dem betreffenden Webserver konfiguriert bzw. hinterlegt werden.

Passkontrolle

Das Erzeugen und Hinterlegen von kryptographischen Schlüsseln ist uneingeschränkt jeder Person oder Maschine mit entsprechenden Kenntnissen bzw. Anweisungen, Berechtigungen und Werkzeugen möglichen. Um diesem Problem, also die Frage nach Authentizität und Integrität des öffentlichen Schlüssels, zu begegnen, wurde das Konzept der CA s entwickelt. Bestimmte zentrale Stellen sollen durch eine digitale Signierung des öffentlichen Schlüssels mit Hilfe ihrer Root-Zertifikate durchführen. Diese Dienstleistungen erbringen CAs in der Regel auf Nachweis der Identität des Schlüsselinhabers und gegen Geld. Die öffentlichen Schlüssel der CAs wiederum werden als Bestandteil der meisten Webbrowser von den Herstellern verwaltet und mit ausgeliefert.

Webseiten, deren öffentlicher Schlüssel für eine HTTPS Verbindung nicht von einer offiziellen CA signiert wurde, rufen normalerweise im Browser des Besuchers eine Warnmeldung hervor. Dies bedeutet nicht, dass die Verbindung weniger gut verschlüsselt ist, jedoch ist die Authentizität und Integrität des Schlüssels nicht bestätigt. Auf den durchschnittlichen Facetuber wirkt ein solcher Warnhinweis oft abschreckend und stört die User Experience.

Über die Effektivität und die daraus folgende Frage nach der Sinnhaftigkeit von CAs kann und sollte an anderer Stelle diskutiert werden.

Game changer

Grundsätzlich sollte es jedem Datenanbieter und jedem Datenkonsumenten daran gelegen sein, möglichst viel der verursachten Datenströme im WWW gegen einfaches Mitlesen zu schützen. Es soll Akteure abseits der genannten Interessengruppen geben, die da anderer Ansicht sind. Diese möchte ich an dieser Stelle jedoch bewusst vernachlässigen.

Das Projekt Let’s Encrypt der ISRG hat sich eine möglichst starke Verbreitung von HTTPS zum Ziel gesetzt. Zum einen wollen die Beteiligten das Erstellen von kryptographischen Schlüsseln und das entsprechende Konfigurieren der Webservers vereinfachen. Zum anderen soll Let’s Encrypt auch als offiziell anerkannte CA fungieren und die generierten öffentlichen Schlüssel signieren. Die dafür notwendigen Werkzeuge sollen open source sein und der gesamte Prozess von der Entwicklung der Software bis hin zur Signierung der Schlüssel transparent gestaltet und auditiert werden.

Los geht’s

Seit Oktober 2015 ist Let’s Encrypt eine offizielle CA und durch die Signierung des eigenen Root-Zertifikats (sog. Cross-Sign) durch die bereits anerkannte CA IdenTrust SSL als »vertrauenswürdig« eingestuft.
IdenTrust SSL ist den Browsern bereits bekannt, so dass alle von Let’s Encrypt signierten Schlüssel auch akzeptiert werden.
Darauf hin wurden die ersten Schlüssel mit den auf GitHub hinterlegten Tools für ausgewählte Webseiten generiert und signiert. Seit 03.12.2015 läuft nun die öffentliche Beta-Phase. Das für Dezember 2015 angekündigte Ergebnis eines unabhängigen Audits steht allerdings noch aus.

Einschränkungen

Bislang lassen sich keine Wildcard-Zertifikate erstellen. Jede Subdomain muss daher noch explizit im Zertifikat unter Subject Alternative Names vermerkt werden.
Das Zertifikat ist zur Zeit 90 Tage lang gültig. Angedacht ist hier eine Reduzierung der Gültigkeit auf 30 Tage. Eine Erneuerung mit Hilfe der in Python geschriebenen Tools ist jedoch ohne Weiteres und unkompliziert möglich. Durch die geringe Gültigkeit verspricht man sich einen einfacheren Umgang mit unberechtigt erstellten und signierten Zertifikaten.
Damit der gesamte Prozess möglichst automatisiert ablaufen kann, hat sich Let’s Encrypt ein Protokoll namens ACME ausgedacht. Dieses liegt der IETF bereits als Internet Draft vor.

In eigener Sache

Da mein Webhoster Uberspace die Anforderungen von Let’s Encrypt bereits erfüllt, habe ich für diese Seite bereits Schlüssel und Zertifikat erstellt und eingebunden. Auch alle Assets werden nun via HTTPS ausgeliefert.

Ohne in den Erstellungsprozess eingegriffen zu haben, bringt die Konfiguration des Webservers im SSL Server Test von QUALYS SSL LABS das zweitbeste Ergebnis A.
Hauptsächlich die auf Seiten des Browsers erforderliche Unterstützung von SNI wird bemängelt. Die Shared Hosting Umgebung meiner Webseite macht diese TLS Erweiterung jedoch erforderlich.
Außerdem erreicht das Ergebnis in Sachen Schlüssellänge nicht die volle Punktzahl.

Die Handhabung des Tools ist, auch dank der Vorkonfiguration des Webhosters, erstaunlich einfach und die gesamte Umstellung hat nur wenige Minuten Zeit in Anspruch genommen. Doch wie immer gilt: Automatisierung und mehr verschlüsselter Datenverkehr ist gut, Kontrolle und Verstehen ist besser.

tl;dr

Mehr Verschlüsselung ist mehr gut. Das gilt vor allem für Datenströme die, wie es häufig im WWW der Fall ist, öffentlich einsehbar sind. Um als Webseitenbetreiber dem Nutzer eine gesicherte Verbindung mittels HTTPS anbieten zu können, musste bisher Zeit und Geld investiert werden.

Let’s Encrypt bringt seit 2015 Bewegung in das Verschlüsselungs-Spiel, in dem das Projekt zum Einen ein einfach zu bedienendes Tool zur Erzeugung der notwendigen kryptographischen Schlüssel und das Konfigurieren des Webservers bereit stellt. Und zum Anderen, in der Rolle als autorisierte CA, die Vertrauenswürdigkeit des öffentlichen Schlüssels bekräftigt.

Eine kleine Webseite, wie diese es ist, lässt sich so in wenigen Minuten für den verschlüsselten Aufruf vorbereiten.


Eine Tastatur fürs Leben?!

Eine Tastatur fürs Leben?!

Neulich habe ich auf Twitter genörgelt, es wäre schwierig eine solide mechanische Tastatur ohne irgendwelches Gaming-Klim-Bim zu finden. Das stimmt so nicht ganz. Allerdings ist die Auswahl sehr begrenzt.

Aber der Reihe nach…

Vorgeschichte

Seit einiger Zeit nutze ich eine Apple Bluetooth Tastatur (ohne Nummernblock) als Teil meines privaten Computersetups. Richtig anfreunden konnte ich mich mit dem Tastenbrett nie wirklich. Ein wohliges Tippgefühl, sollte es so etwas geben, wollte sich zu keinem Zeitpunkt einstellen. Zum einen geben die Tasten für mich kein ausreichendes Feedback während des Schreibens. Zum Anderen fühlen sich die Tasten etwas klapprig an. Außerdem habe ich gemerkt, dass ich, zu Ungunsten des kompakten und minimalistischen Layouts, auf keinen Fall auf einen Nummernblock verzichten möchte.

Nach einer der letzten ausgedehnten Tipp-Marathons war dann endgültig klar: Es muss eine andere Tastatur her.

Nerdprobleme

Schnell erinnerte ich mich an einige Modelle der Firma Cherry, mit denen ich in der Vergangenheit gute Erfahrungen gesammelt hatte. Nach nur wenigen Minuten des Suchens stößt man beim Thema Tastatur schnell auf den Begriff mechanische Schalter. Genauso schnell stellt man aber auch fest, dass es hier, wie sollte es auch anders sein, um eine Glaubensfrage der verschiedenen Modelle und Varianten geht. Der gemeine Nerd kennt das Problem nur zu gut: Nur mal eben kurz über ein Thema informieren und ehe man sich versieht, schlägt man sich durch das Dickicht der meinungsstarken Empfehlungen und vermeintlich objektiven Testberichte. Allein über die verschiedenen mechanischen Schalter lässt sich ein tagesfüllendes Programm aus YouTube-Rezensionen und Forenbeiträge zusammenstellen.

Anforderungen

Die Anforderungen an eine Tastatur sind natürlich sehr individuell. Es gibt an sich kein Richtig oder Falsch. Empfehlungen lassen sich daher auch schlecht aussprechen. Allerdings lassen sich die verschiedenen Eigenschaften und Bedürfnisse einigermaßen objektiv zusammenfassen. Daher versuche ich an dieser Stelle einmal meine Anforderungen an ein Tastenbrett zu formuliert:

Eine Tastatur fürs Leben also.

Schalterparade

Vorab möchte ich ein paar Worte zu den 79 bis 112 Herzstücken einer jeden mechanischen Tastatur, den Schaltern, verlieren. Dabei soll es an dieser Stelle keine umfangreiche Zusammenfassung zu allen am Markt verfügbaren Schaltern geben. Für mich lag das Interesse von Anfang an eher auf der traditionellen Cherry MX-Reihe. Durch das gewünschte taktile Feedback scheiden einige Modellvarianten grundsätzlich aus. Übrig bleiben für mich daher folgende Ausführungen:

Der MX-Blue Schalter ist das wohl bekannteste und verbreitetste Modell. Neben der angesprochenen taktilen gibt der Schalter beim Betätigen auch eine akustische Rückmeldung. Dadurch wird die Geräuschkulisse bei Schnellschreibern sehr laut. Für Großraumbüros und bei empfindlichen Arbeitskollegen oder Mitbewohnern ist dieser Schalter wohl nicht der Richtige. Das Aktivierungsgewicht, welches nötig ist um einen Schalter auszulösen, beträgt hier 50g.

Genau wie der MX-Blue Taster zählt der MX-Brown zu den ältesten und damit erprobtesten Produkte von Cherry. Entgegen der blauen Variante fehlt es diesem Schalter an akustischem Feedback. Das Aktivierungsgewicht beträgt hier etwa 45g. Über die taktile Rückmeldung verfügen jedoch beide Schalter. Dadurch ist das Geklapper erheblich leiser. Jedoch bietet auch diese Variante kein geräuschloses Tippen. Das ganze Konzept der mechanischen Tastatur beruht, wie der Namen schon aussagt, auf dem Einsatz von beweglichen Teilen. Das anschlagen der Tasten auf dem Tastensockel verursacht, je nach Druck, ebenfalls ein nicht zu verachtendes Klacken.

Die MX-Clear Variante verhält sich ähnlich der MX-Brown Linie. Die Modelle unterscheiden sich im Wesentlichen durch das Aktivierungsgewicht, welches bei den MX-Clear etwas höher liegt. Zur Aktivierung der Schalter ist ein Druck von 55g notwendig. Hier ist anzumerken, dass die MX-Clear Schalter relativ selten in der freien Wildbahn anzutreffen sind.

Die MX-Green Reihe der Cherry Schalter fordert einen sehr hohen Aktivierungsdruck von 80g ein und ist ansonsten identisch zur MX-Blue Baureihe. Diese Schalter eignen sich wohl eher für die grobmotorischen Hacker mit Hang zur sportlichen Verausgabung an der Tastatur.

Meine Wahl fällt auf die MX-Brown Baureihe. Gerne hätte ich auf die MX-Blue Variante zurückgegriffen, allerdings scheint die damit einhergehende Geräuschentwicklung nicht unbedingt sozialverträglich zu sein.

Wer wirklich sicher gehen will, den richtigen Schalter für sich zu finden, sollte seine Favoriten testen. Entweder im Elektronikmarkt des geringsten Misstrauens oder mit Hilfe von Schalter-Sets, die sich über verschiedene Quellen beziehen lassen.

Marktübersicht

Auf Informationsbeschaffung und Anforderungsdefinition folgt dann, wie im BWL Handbuch zu lesen, immer die Marktanalyse.

Es gibt einige Hersteller die den Markt für mechanische Tastaturen bedienen. Viele davon mit Hauptaugenmerk auf die Gaming-Szene. Ausladende Plastikbomber mit LED-Kirmes unter den Tasten sind da keine Seltenheit. Zudem verfügen diese Modelle oft über programmierbare Zusatztasten. Deren Nutzung und Konfiguration setzt allerdings eine, oftmals nur für Windows-Systeme bereitgestellte Software auf dem PC voraus.

Das von mir präferierte Einsatzgebiet beschränkt sich, neben der normalen Bedienung des Betriebssystems, fast ausschließlich auf das Erfassen von Fließ- und Quelltext. Für mich sind damit die Tastaturen mit Gaming-Fokus uninteressant.

Übrig bleiben, nach kurzer Recherche, einige wenige Modelle und noch weniger Hersteller. Folgende Tastaturen kamen für mich in die engere Auswahl:

Grundsätzlich handelt es sich bei all den aufgezählten Klimperkästen um hochpreisige und hochwertige Peripherie. Ich behaupte an dieser Stelle, dass man mit keinem der genannten Modelle etwas falsch machen kann. Jedoch lässt der Preisbereich von 130 EUR und aufwärts auch einiges von den Produkten erwarten.

Den Das Keyboard Modellen wird in den verschiedenen Testberichten im direkten Vergleich die etwas schlechtere Verarbeitung nachgesagt. Ich selbst kann dies nicht beurteilen, da ich noch keines der Modelle des Herstellers ausprobiert habe. Zu guter letzt haben mich auch die umfangreiche Personalisierungsmöglichkeiten von WASD Keyboards überzeugt. Dazu gleich mehr.

Von den beiden angebotenen Modellen scheidet für mich die CODE Tastatur aus, da diese über kein ISO/IEC 9995-2:2009 Layout verfügt, sondern ausschließlich im US-International Layout angeboten wird.

Bei dem Modell V2 von WASD Keyboards bleibt dem potentiellen Käufer die Wahl zwischen den beiden Belegungen. Darüber hinaus lassen sich auch die gewünschten Schalter frei wählen. Wem das noch nicht reicht, kann die Tastenkappen der gesamten Tastatur individuell gestalten. Das Angebot reicht von blanko Tastenkappen über farbliche Hervorhebung einzelner Tasten bis hin zum Bedrucken der gesamten Tastenoberflächen mit eigenen Bildern.

Die WASD Keyboards V2 Tastatur erlaubt dem Nutzer, genau wie das CODE Modell, über DIP-Schalter auf der Unterseite, verschiedene Modi einzustellen. Darüber lässt sich bspw. zwischen Windows und Mac Layout umschalten. Darüber hinaus lassen sich noch das Dvorak oder Colemak Tastenlayout konfigurieren. Auch die Funktion der OS Tasten kann aktiviert oder deaktiviert werden.

Beschaffung

Die Tastaturen von WASD Keyboards lassen sich bislang nur direkt aus den USA beziehen.
Die Bestellung gestaltete sich in meinem Fall einfacher als gedacht. Bezahlt werden kann mit PayPal und die Lieferung erfolgt mit FedEx bzw. UPS, ohne Probleme auch an eine deutsche Anschrift. Alles in allem lag der Einkaufspreis bei umgerechnet etwa 185 EUR. Der Preis variiert je nach ausgewähltem Schalter-Typ und welche Sonderwünsche sonst noch konfiguriert werden.

Erster Eindruck

Mit etwas mehr als einer Woche Lieferzeit trudelte die Tastatur, schneller als gedacht, ein. Geliefert wird das Hackbrett in einem soliden Karton mit dem nötigsten aber hochwertigen Zubehör.

Tastatur

Die Tastatur wird mit einem abnehmbaren, 1,8m langen Micro-USB auf USB Typ A Kabel und einem PS/2 Adapter geliefert. Außerdem enthält der Lieferumfang einen Tastenabzieher und eine kleine Übersicht der verschiedenen DIP-Schalter Einstellungen.

Lieferumfang: Tastatur, Kabel, Adapter, Tastenabziehen und DIP-Schalter Plan
Tastatur

Das relativ hohe Gewicht von 1098g und vier zbw. sechs großflächige Gummistreifen auf der Unterseite sorgen für ein absolut rutschfreies Arbeiten, selbst bei engagierter Texteingaben. Über zwei kleine Kunststofffüße lässt sich der Winkel der Tastatur erhöhen. Dabei liegt die Peripherie dann allerdings nur noch auf zwei der Grummistreifen auf. Insgesamt steht das Keyboard dadurch aber immer noch ausreichend solide, auch auf glatten Oberflächen.

Tastatur

Das Gehäuse ist aus ABS gefertigt und sauber verarbeitet. Ungleiches Spaltmaß oder Knarz-Geräusche unter Druck sucht man hier vergebens. Ebenfalls positiv fällt die hohe Verwindungssteife der Tastatur auf. Das Gehäuse kommt ohne Aufdrucke oder Logos daher und trägt damit zum minimalistischen Gesamteindruck bei. Lediglich ein Aufkleber auf der Unterseite der Tastatur verrät den Hersteller und die Modellbezeichnung. Die Abmessungen der Tastatur betragen 445mm x 142mm x 30mm.

Linke Seite der Tastatur
Vorderseite der Tastatur

Die Tastenkappen sind ebenfalls aus ABS hergestellt und machen einen ebenso soliden Eindruck wie der Rest.

Cherry MX-Brown Schalter
Tastenkappen

Das mitgelieferte Kabel ist ausreichend lang und lässt sich über die Fünf-Wege-Kabelführungen auf der Unterseite der Tastatur bequem verlegen. Über USB angeschlossen ist es möglich, sechs Tastendrücke auf einmal zu verarbeiten. Die PS/2 Schnittstelle ermöglicht die Registrierung von theoretisch unbegrenzten zeitgleichen Tastendrücken.

Unterseite der Tastatur
Gummistreifen und Kunststofffüße

Hauptverantwortlich für das Tippgefühl sind die mechanischen Schalter. Hier profitiert der Nutzer von der langjährigen Erfahrung der Firma Cherry. Das Tippen auf dem WASD Keyboard V2 ist bei einem Umstieg von einer sehr flachen Apple Tastatur etwas gewöhnungsbedürftig. Die Wege, die von den Fingern zurückgelegt werden müssen, sind durch die hohen Tastenkappen etwas länger. Das Muskelgedächtnis ist allerdings schnell umgewöhnt und schon nach kurzer Zeit möchte ich nicht mehr zurück wechseln.

Ich habe mich für eine Version ohne Tastenbeschriftung entschieden. Ich war anfangs etwas unsicher, ob das zu einem Problem werden könnte. Allerdings verschwanden die Bedenken schon nach kurzer Nutzung. Als kleine Hilfestellung sind die reinen Sondertasten auf meiner Tastatur farblich abgesetzt. Allerdings wäre auch dies nicht nötig gewesen. Durch die fehlende Beschriftung ist der Gesamteindruck natürlich noch minimalistischer als ohnehin schon. Aber auch hier sind die Geschmäcker natürlich verschieden.

Tastatur
Tastatur
Tastatur

Der Status der Num Lock- , Caps Lock- und Scroll Lock-Taste wird über drei rote, unbeschriftete LEDs über dem Nummernblock angezeigt.

Abschließend kann ich das WASD Keyboards V2 bedenkenlos weiterempfehlen. Auch wenn die Anschaffung nicht ganz günstig ist. Ich denke damit das Tastaturen-Problem für mich ein für alle mal geklärt zu haben. Eine Tastatur fürs Leben also.

tl;dr

Wer Wert auf ein gutes Tippgefühl auf einer Tastatur legt, kommt um ein mechanische Modell kaum herum. Die Auswahl hält sich, die Gaming-Geräte mal außen vor gelassen, in Grenzen. Da die Anforderungen an eine Tastatur sehr individuell sind, kann eigentlich keine pauschale Empfehlung gegeben werden. Jeder der Wert auf gute Verarbeitung und Individualisierbarkeit legt, sollte sich allerdings mal das Angebot von WASD Keyboards anschauen.


Rubber Duck Debugging

Gummientendebugger

Oft sind es die unkonventionellen Mittel, die uns helfen unsere Aufgaben und Probleme zu lösen. Insbesondere dann, wenn man so richtig auf dem Schlauch steht. Bei Softwareentwicklern kann das debuggen von Code so ein klassischer Fall von den Wald vor lauter Bäumen nicht sehen sein.

Der Wald und die Bäume

Die Aufgabenstellung ist klar, die Lösung fest im Blick und dennoch verweigern die getippten Befehlszeilen die Ausgabe des erwarteten Ergebnisses. Auch das zehnte Überarbeiten jeder einzelnen Zeile sorgt nicht für einen zufriedenstellenden Output. In solchen Situationen hilft es oft, eine weitere Person an dem Problem teilhaben zu lassen. Dabei ist es nicht wichtig ob diese Person programmieren kann oder nicht. Sobald man laut über die zu erwartende Funktionalität spricht und danach Zeile für Zeile die Handlungsanweisungen erläutert, stellt sich früher oder später ein Moment der Erleuchtung ein. Das einfache in Worte fassen von Logik bringt dabei oft die Differenz zwischen dem Soll und Ist zu Tage.

Ersatz

Was aber tun, wenn kein humanoider Debugging-Partner greifbar ist? Die Antwort ist schnell gefunden: Rubber Duck Debugging.

Zugegeben

Die Vorstellung, einer Gummiente seinen Sourcecode zu erklären, mag etwas verstörend sein. Letztendlich geht es aber nur darum, seine Gedanken in Sprache oder auch Text zu übersetzen, um einzelne Details bewusster wahrzunehmen. Dadurch werden automatisch andere Gedankenwege verfolgt und so die festgefahrene Denkweise gelöst. Funktioniert.

tl;dr

Ein nerviger Bug lässt sich mal wieder nicht finden? Vielleicht hilft es, einer Gummiente das Problem zu erklären.