Pich, Telefnica und koda

 Uncategorized  Kommentare deaktiviert für Pich, Telefnica und koda
Mrz 232017
 

Die Überschrift hätte auch „Schei? Encoding“ heißen können – ich denke, fast jeder ITler sollte dieses T-Shirt besitzen.

Das Thema Encoding – früher auch als Codepage-Problematik bekannt – verfolgt die IT schon seit der Gründerzeit. Auf den IBM-Großrechnern der Anfangszeit der kommerziellen elektronischen Datenverarbeitung war man noch ganz konsequent – nur Großbuchstaben und Ziffern waren möglich. Noch heute geht das Gerücht, dass die Adressdatenbestände der großen Banken und Versicherungen ausschließlich in Großbuchstaben vorliegen und von cleverer Software „mittendrin“ angepasst wird, bevor der Kunde es schwarz auf weiß auf Papier sieht.

Lange Zeit war in Stein gemeißelt, dass ein Zeichen („Character“) 8 Bit zu haben habe (E-Mail-Transport war sogar nur 7-Bit-sicher). Über Codepages wurde dann jedem Byte ein Zeichen zugeordnet. Bekannteste Vertreter dieser Art sind ISO-8859-1, auch Latin1 genannt, sowie dessen Spezialisierung WINDOWS-1252 (weitestgehend äquivalent zu ISO-8859-15, also mit Eurozeichen). Zu DOS-Zeiten war die Codepage 850 noch vorne dabei, auf dem Großrechner war die Cp273 (EBCDIC) der Standard, später zu IBM-1141 mit dem Eurozeichen erweitert.

Dann trat Unicode auf den Plan. Die Idee: eine Zeichencodierung für alles. Erste seriöse Implementierung war UTF-16, genutzt beispielsweise in den Joliet-Extensions zu ISO9660 (das CD-Image-Format, nicht etwa ein weiteres Encoding!) und in NTFS. 16 Bits pro Zeichen. Java war die erste verbreitete Programmiersprache, die Nägel mit Köpfen machte und dem char-Datentyp 16 Bits spendierte (und es gleich wieder teilweise versaute, weil der Datentyp signed definiert wurde – darauf muss man erst mal kommen. Aber der Datentyp byte ist auch signed, das ist zumindest eine Entschuldigung, dass man nicht alleine blöd war). Irgendwann merkte man: das ist stark suboptimal, weil erstens bei 65536 Zeichen Schluss ist, und zweitens Texte aus dem westlichen Sprachraum doppelt so viele Bits brauchen als bei einer 8-Bit-Codierung. UTF-8 war die Antwort. An UTF-16 wurde zusätzlich eine Erweiterung hingedoktort, so dass inzwischen ein Zeichen auch als 32bit-Wert codiert werden kann. Und weil Informatiker gerne mal Standards ignorieren und ihr eigenes Süppchen kochten, entstand CESU-8, weil es fehlerhafte Konvertierroutinen zwischen UTF-16 und UTF-8 gab. Wurde dann flugs zum eigenen Standard erkoren. Man muss sich manchmal schon schämen für unseren Berufsstand.

Nun ja. Jetzt ist überall UTF-8, sollte man meinen. Die üblichen Linux-Distributionen haben das als System-Encoding, nur das selten genutzte Windows tanzt mit WINDOWS-1252 etwas aus der Reihe. Ein steter Quell der Freude für sorglose Software-Entwickler, die sich unbewusst bei diversen Konvertierungen auf das System-Encoding verlassen. Statt WORA eben WODE (Write Once – Debug Everywhere). Sogar RISC OS hat inzwischen einen Font-Manager, der Unicode-fähig ist, es gibt nur keine Fonts dafür und der Rest des Systems besteht aus hauptsächlich englischen Anwendungen, die selbst von den deutschen Umlauten oft nicht viel halten. Da ist es wieder, das Schämen für den Berufsstand.

Und jetzt der Schwenk zur Überschrift: auch im Jahre 2017 trifft man das Encoding-Problem regelmäßig an. In meinem Fall im Kindle-Abo der Frankfurter Allgemeinen Zeitung. Im Wirtschaftsteil ist offenbar irgendwas grandios schiefgelaufen, und so wurde Ferdinand Piëch zu Herrn Pich, die Telekommunikationsfirma Telefónica zu Telefnica und der Autohersteller Škoda zu koda. Wie man sieht hat es nicht mal für ein Ersatzzeichen gereicht. Gut, bei einem Artikel über VW kann man den fehlenden Buchstaben bei Ferdinand Piëch leicht im Geiste erkennen und ergänzen. Aber bei Personen in Bezug auf weniger bekannte Betriebe kann das schon mal schwieriger werden.

Wer auch immer in der Kette von der FAZ über Amazon bis auf meinen Kindle das verbockt hat: Schämt Euch. Obwohl ich als Bewohner einer Straße mit Umlaut natürlich Kummer gewohnt bin – bis auf den Lieferscheinen von Amazon keine merkwürdigen Ersatzzeichen waren, sondern wirklich der richtige Umlaut auftauchte, das hat länger als ein Jahrzehnt gedauert. Ich rechne also mit einer fehlerfreien elektronischen FAZ gegen 2027 auf meinem Kindle. Gut Ding will Weile haben.

Neues vom MIST

 Hardware, Retrogaming  Kommentare deaktiviert für Neues vom MIST
Feb 042017
 

Ich hatte mich schon in früheren Beiträgen (hier, hier und hier). Speziell der Archimedes-Core liegt naturgemäß in meinem Fokus (siehe hier und hier).

Beim Archimedes-Core hat sich leider wenig getan, aber dafür hat sich im Rest der MIST-Welt erheblicher Fortschritt ereignet, über den ich kurz berichten will.

Zum einen gibt es jede Menge neue Cores. Der C16-Core gilt inzwischen als ausgereift und weitgehend komplett. Der VC20 steht nun auch als Core bereit. Und um die Commodore-Fraktion abzurunden, ist ein PET2001-Core gerade in der Mache. Bei den Arcade-Cores gibt es viele Neuzugänge – Galaga ist sicher das Highlight, viele weitere sind in der Pipeline. Bei den Spielkonsolen freuen wir uns auf den Sega MegaDrive (aka Genesis) Core – der macht schon einen guten Eindruck, aber die Soundunterstützung fehlt noch. Unter der Rubrik „Exoten“ würde ich den Mattel-Aquarius-Core einordnen. Die Sinclair-Fraktion freut sich über den Spectrum-128K-Core und den Sam-Coupe-Core. Und noch was aus der Rubrik „Ultra-Exot“: der BK0011M aus Russland, quasi ein PDP11-Clone, gab sein Debüt.

Signifikante Fortschritte gab es beim Amiga-Core (Minimig-Aga) und beim Amstrad CPC-Core, der nun sowohl 60Hz-VGA- als auch 50Hz-TV-Ausgabe beherrscht. Auch der NES-Core hat eine Neuauflage erfahren. Der Atari800-Core kann nun 50Hz-PAL. Der MSX-Core kann auch mit der allerneuesten MIST-Auflage, wo wohl leicht verändertes SDRAM-Timing am Start ist, arbeiten.

Sorgelig hat sich um verbesserte Kompatibilität mit Bildschirmen gekümmert. Viele Cores unterstützen nun den 15kHz-Modus und erlauben eine Videoausgabe nicht nur per RGB für die Scart-Fraktion, sondern auch per YUV (auch als YPbPr oder Komponente bekannt). Das hat einige Vorteile. Während bei RGB via Scart strenggenommen nur PAL klassisch interlaced unterstützt war und die progressive-Ausgabe klassischer Computer und Konsolen mehr aus Versehen bei den typischen Röhrenfernsehern funktioniert hat, ist die progressive Ausgabe beim Komponenten-Signal anständig spezifiziert. Das erhöht die Chance, auch mit modernem Equipment anständige Ergebnisse zu erzielen. Seit der Erfindung von HDMI ist der Komponenteneingang zwar auf dem Rückzug (bei Fernsehern der neuesten Generation fehlt er ebenso wie der Scart-Eingang), aber selbst die neueste Generation AV-Receiver hat immer noch Komponenten-Eingänge an Bord, wenn auch in ständig reduzierter Anzahl.

Die Firmware des MIST wurde ebenfalls verbessert, vor allem die Konfigurationsoptionen zur Zuordnung von Funktionen auf Buttons von USB-Controllern wurden flexibilisiert. Die Repeat-Intervalle für Feuerknöpfe können nun ebenfalls eingestellt werden. Dazu die Unterstützung für die YUV-Ausgabe per mist.ini.

Ich hoffe, ich habe nix vergessen. Ich finde es sehr erfreulich, wie sich die MIST-Community über die Jahre entwickelt hat – zu Anfang lag noch viel Last auf den Schultern des MIST-Erfinders, aber in letzter Zeit gibt es immer mehr Contributers. Es bleibt spannend. Wenn jetzt noch Stephen Leary ein paar seiner geplanten Erweiterungen des Archimedes-Cores nachlegt…

Gedanken zum Thema KI

 Hype  Kommentare deaktiviert für Gedanken zum Thema KI
Feb 032017
 

In letzter Zeit erkenne ich einen gewissen Trend zur positiven bis euphorischen Berichterstattung über die Fortschritte im Bereich KI. Die einen feiern den Sieg eines Computers über menschliche Spieler (egal ob Schach, Go oder Jeopardy). Die anderen prognostizieren, dass in absehbarer Zeit das vollautonom fahrende KfZ unsere Straßen bevölkert. Und es gibt die Sorge, dass „Skynet“ Wirklichkeit wird. Der Pflegeroboter gilt aus Ausweg aus der demographischen Krise (keine Ahnung, was das für eine Krise sein soll, aber das gehört nicht hierher).

Unterm Strich halte ich das alles für Mumpitz – zumindest, wenn man an „Intelligenz“ einen gewissen Anspruch stellt, der über „wir haben es mit massiver Rechenleistung und cleveren Algorithmen für dieses spezielle Problem hinprogrammiert“ hinausgeht.

Betrachten wir doch mal den Status Quo. Wir befinden uns grob 60 Jahre nach den ersten Gehversuchen der KI. Trotz einzelner Erfolge in sehr spezifischen Gebieten – wie oben genannt – sehe ich die Informatik weit weg von einem etwaigen Durchbruch. Die Komplexität von „Intelligenz“ scheint einfach zu – wie soll man sagen – komplex, um es auf bekannte Weise in Algorithmen zu gießen und in Datenbanken zu verwalten.

Gerne lasse ich mich vom Gegenteil überzeugen. Z.B. durch wirklich intelligente, menschlich agierende Gegner in einem Autorennen – darauf warte ich schon seit Pitstop. Z.B. durch eine Spracheingabe, die auch leichtes Nuscheln einwandfrei versteht – auch gerne durch ein bandbreitenbegrenztes Medium wie das Telefon. Oder wie wäre es mit einer Übersetzungssoftware von Deutsch nach Englisch und andersrum, das keine Stilblüten erzeugt sondern einwandfreie Texte?

Und bitte aufhören, Assistenzsysteme im Auto als Vorstufe zum vollautonomen Fahren zu glorifizieren. Ein „Autopilot“, der regelmäßig die Kontrolle an den menschlichen Fahrer abgeben muss, ist noch sehr weit entfernt von dem, was wirklich nützlich ist – denn wenn ich während des Fahrens nicht was anderes machen kann, habe ich allerhöchstens ein Sicherheitsplus und vielleicht ein Komfortplus, aber gegenüber der Vision des vollautonomen Fahrens ist es doch letztlich nur eine minimale Verbesserung gegenüber heute.

Wo sind die guten E-Mail-Clients?

 Software  Kommentare deaktiviert für Wo sind die guten E-Mail-Clients?
Nov 132016
 

Im Moment bin ich auf der Suche nach einem anständigen E-Mail-Client unter Windows. Ich bin mit Thunderbird noch nie warm geworden und halte ihn für überladen, instabil, unintuitiv und unzuverlässig. Outlook 2013 kostet mich gerade den letzten Nerv beim Support eines weitgehend unerfahrenen Computernutzers. Quasi unbedienbar, dazu ein Ressourcenfresser sondergleichen. Wenn man eine Einstellung sucht, vergeht mal gern eine Stunde. Die Suchfunktion kann sich nicht entscheiden, ob sie was findet oder nicht – und diese Entscheidung dauert lang.

Und dann stößt man beim googeln auf Beiträge wie diesen – erster Satz: „Microsofts Outlook gilt als das beste E-Mail-Programm.“ Äh – bei wem? Bei denen, die nur Lotus Notes (heißt jetzt IBM Notes, sieht aber kein Stück besser aus) als Alternative kennen? Und dann werden dort doch tatsächlich Windows Live Mail und Windows Mail als Alternative genannt. Und natürlich Thunderbird. Ansonsten: nix. Wenn man schon keinen Bock auf Recherche hat, sollte man sich doch solche Artikel gleich sparen.

Jetzt könnte man sagen – tja, was liest Du auch IT-Artikel in der WELT? Ich Dummerchen. Mal bei den Experten von CHIP stattdessen nachlesen. Großartig, diese Top 5. Wenigstens bei heise Downloads gibt es in der E-Mail-Rubrik ein paar Kandidaten.

Aber was sind denn nun die Alternativen? Pegasus Mail, das ich schon unter Windows 3.11 nicht leiden mochte? Opera Mail? Foxmail? Mailbird? eM Client, der in der freien Variante ganze zwei E-Mail-Accounts verwalten kann? Columba – immerhin in Java programmiert und Open Source, d.h. ich könnte realistischerweise eigene Anpassungen vornehmen – dessen letztes Release aus 2007 stammt? Ich ertappe mich kurz beim Gedanken, mutt oder elm unter Cygwin zu installieren. Wenn schon Retro, dann richtig.

Oder was anderes Radikales – mein aus RISC OS-Zeiten liebgewonnenes Messenger Pro in der Windows-Variante kaufen? Hatte ich schon mal in 2002, als Mark Sawle intellegit gründete und Gemini als Messenger Pro-Portierung auf Windows veröffentlichte. Bin ich unter Windows nie mit warm geworden, warum weiß ich eigentlich nicht. Inzwischen ist R-Comp auch der Vertrieb für die Windows-Version, und damit ist es traditionell fast unmöglich, Näheres über die Software herauszufinden, ohne direkt Kontakt aufzunehmen oder die Software einfach zu kaufen. Einfach kaufen? Tja, die R-Comp-Shopseite ist legendär…man kommt über den „Order now!“-Knopf auf eine selten hässliche Zwischenseite, wo einem erklärt wird, dass man doch besser die !Shop-Applikation verwenden soll. Gilt natürlich nur für RISC OS, und der arme Windows-Nutzer clickt vor lauter Verwirrung auf den „secure ordering site“-Link. Ist man clever genug, findet man hier raus, dass es offenbar eine „basic“-Version und eine „full“-Version gibt. Was mag wohl der Unterschied zwischen beiden sein? Auch konsequent: Preise nur in UKP.

Immerhin: für drei Screenshots und ein paar warme Worte hat es gereicht. Liebe Freunde von der Insel: das wird dieser Software (höchstwahrscheinlich) nicht gerecht. Der arme Mark. Nur wer die Original-Intellegit-Seite kennt, kann das Handbuch studieren oder eine etwas ausführlichere Featurebeschreibung lesen. Man kann auch eine Trial-Version herunterl…nein, man kann nur seine E-Mail-Adresse in ein Formularfeld eingeben und eine Trial-Version anfordern. Die 90er feiern ihr Revival.

Wer den ultimativen E-Mail-Client für Windows kennt, immer her mit den Infos. Am besten per E-Mail.

Die guten Erinnerungen an Ada

 Ada  Kommentare deaktiviert für Die guten Erinnerungen an Ada
Okt 222016
 

Meine Programmierlaufbahn begann mit einem Schneider CPC 464 und dem eingebauten Locomotive BASIC 1.0. Ich hangelte mich am (durchaus ansprechenden) Handbuch entlang durch die Untiefen der Sprache. In ganz jungen Jahren und Mitte der 80er fand man das irgendwie alles cool und hat wenig hinterfragt, aber die Tatsache, dass man Zeilennummern verwenden musste und es als einziges Strukturierungsmittel GOTO und GOSUB gab, fand ich damals schon nicht gut. Auch wenn ich noch nicht ahnte, wieviel besser man es machen kann.

Mit den Zwischenstationen Logo, Z80-Assembler, Turbo Pascal, BBC BASIC, ARM-Assembler, C, Modula-2, HP-PA-RISC-Assembler und LISP lernte ich dann Ada kennen. Damals noch in der Variante Ada 83, also erst mal objektbasiert und nicht objektorientiert. Es war wie eine Erleuchtung. Endlich eine Sprache, die einfach alles konnte. Und in schöner Syntax verpackt. Die nicht nur auf ein paar guten Ideen basierte, wo man dann so eine Restsprache drumrum gestrickt hat. Wo schon bei liebevollen Details im Typsystem klar wird: da haben schlaue Köpfe lange gehirnt. Dazu das wunderbare „Language Reference Manual“, wo eben die definitiven Antworten drin stehen. Und das „Rationale“, wo man nachlesen konnte, warum was wie umgesetzt wurde. Und Ada 95 verstärkte diesen großartigen Eindruck noch.

Nun bin ich gestern auf einen Artikel namens „A Random Walk Through Ada“ von David Given gestoßen, der mich wieder an viel erinnert hat, was ich an Ada so alles großartig fand und finde. Leider habe ich die Weiterentwicklungen Ada 2005 und Ada 2012 nicht mehr im Detail verfolgt, weil sich die IT-Industrie ja entschieden hatte, irgendwelche anderen Sprachen zu favorisieren.

Der Artikel ist absolut lesenswert und erklärt schön, was an Ada so liebenswert ist. Eine Warnung allerdings: man wird sich dann zukünftig bei der Beschäftigung mit den diversen neuen Sprachen, die jedes Jahr aufpoppen, immer fragen, warum deren Erfinder die vielen guten Ideen der Vergangenheit schlicht ignorieren. Das scheint mir generell so eine Art Krankheit der IT zu sein: das ständige Bedürfnis, das Rad neu zu erfinden. Ohne dabei ein besseres Rad zu erschaffen, sondern nur ein anderes.

Nur eine minimale Unschärfe des Artikels will ich kritisieren: zwar ist die Container-Bibliothek, die es seit Ada 2005 in den Standard geschafft hat (und die es unter dem schönen Namen „Charles“ auch für Ada 95 gibt), nach der STL von C++ modelliert worden, aber der Autor von Charles, Matthew Heaney, ist keineswegs auch der Autor der C++-STL – die haben wir vielmehr den Herren Stepanov und Lee zu verdanken. Stepanov selbst begann seine Experimente mit generischen Containerbibliotheken allerdings mit Ada (damals noch Ada 83), vielleicht daher die Verwechslung.

Die Idiotie nachträglicher Änderungen an altgedienten Schnittstellen

 Hardware  Kommentare deaktiviert für Die Idiotie nachträglicher Änderungen an altgedienten Schnittstellen
Sep 042016
 

Update – siehe unten

Ich beschäftige mich derzeit mit allerlei Retro-Hardware in Vorbereitung auf die Classic Computing 2016, wie man auf dem Nachbarblog nachlesen kann. Also Floppylaufwerke, viel zu kleine IDE- und SCSI-Festplatten (Megabytes statt Gigabytes), alte Rechner als Festplatten noch Sonderausstattung waren.

Dabei ist mir eine besondere Idiotie der IT-Industrie sauer aufgestoßen. Es geht um die gute alte IDE-Schnittstelle. Früher war alles bestens: 40pin Wannenstecker am Controller und am Device, verbunden per 40pin-Flachbandkabel mit 40pin-Pfostenstecker. Verpolsicher wurde es gemacht durch die klassische „Nase“ am Stecker und einer entsprechenden Nut an der Wanne. So weit, so prima. Alle waren glücklich.

Irgendwann kam jemand auf die Idee, die Verpolungssicherheit per Nase-Nut könnte eventuell nicht ausreichend sein (und tatsächlich gab es einige Ultra-Billigheimer-Kabel, die doch tatsächlich die Nase einsparten) und führte ein zusätzliches Merkmal ein: das fehlende Loch an Pin 20 des Pfostensteckers, und damit korrespondierend der fehlende Pin in der Wanne.

Jedem Durchschnittsdummen sollte sofort klar sein: eine derartige Inkompatibilität kann nur zu Problemen führen. Während der fehlende Pin in der Wanne logischerweise nie zum Problem wird, macht das nicht-Loch nur Scherereien. Kabel passen nicht mehr in die Wanne, und wenn man nicht aufpasst, ruiniert man sich schnell mal die Hauptplatine. Aktuell habe ich hier ein Mainboard eines Microdigital Omega, der Ultra-ATA unterstützt, aber alle Pins in der Wanne bestückt hat. Ersatzkabel finden? Fehlanzeige. Pin abtrennen scheint die einzige Möglichkeit zu sein. Macht keinen Spaß bei wertvoller alter Hardware. Bei einem CF-IDE-Adapter dasselbe Problem. Gut, es geht auch noch schlechter: ein SD-IDE-Adapter hat nur eine doppelte Stiftleiste ohne Wanne, dafür mit allen Pins – wie man da die Polung herausfinden soll, bleibt im Dunkel. Vorsichtshalber wurde auch jegliche hilfreiche Beschriftung wie „Pin 1“ weggelassen.

Ebenfalls dämlich: das nicht-Loch an einem Noname-IDE-Flash-Modul. Schon die Tatsache, hier die weibliche statt der männlichen Steckerseite zu verbauen, ist besonders dämlich – somit taugt das Modul nicht als Drop-In für ein altes Laufwerk, sondern man muss noch einen Gender Changer dazwischen hängen. Oder das Modul direkt in die IDE-Buchse auf dem Mainboard reinstecken – klar, so ein kleines Flash-Modul hat als Zielgerätschaft ja keinesfalls altgediente Hardware, die mit modernen großen Platten nix anfangen kann. Und natürlich belegt man gerne mit einem Device einen IDE-Strang, der prima zwei Devices betreiben könnte. Aber gut, dann hätte man ja noch einen wertvollen Jumper vorsehen müssen für die Master-Slave-CS-Einstellung.

Und übrigens: Molex-Stecker und -Buchsen für die Laufwerksstromversorgung sind das Allerletzte.

Update – in der ersten Version dieses Artikels wurde den Transcend-IDE-Flash-Modulen unterstellt, ein nicht-Loch im weiblichen Stecker zu haben und keine Master-Slave-CS-Umschaltung zu unterstützen. Ersteres war falsch, zweiteres teilweise falsch – Master-Slave geht per kleinem Schalter, CS aber nicht (was vergleichsweise aber ein unbedeutendes Problem ist). Ich hatte das verwechselt mit einem Noname-Flash-Modul. Sorry, Transcend.

ARM-Missverständnisse

 Hardware  Kommentare deaktiviert für ARM-Missverständnisse
Jul 232016
 

Durch die möglicherweise anstehende Übernahme von ARM Ltd., Macher der allseits beliebten ARM-Prozessoren (oder eher: des lizenzierbaren „Materials“, aus dem ein Lizenznehmer dann den Prozessor machen kann), liest man wieder vermehrt von den Gründen, warum ARM es eigentlich als einzige alternative Prozessorarchitektur geschafft hat, x86 die Stirn zu bieten. Wir gedenken für einen Moment PowerPC, MIPS und SPARC als „zwar noch nicht tot, aber eher wenig verbreitet“ und ignorieren sie ab sofort. Ein kurzes Gedenken an den Alpha ist natürlich auch zulässig.

Oft ist zu lesen, das Tolle an den ARM-Prozessoren sei, dass sie so stromsparend sind. Das ist zwar irgendwie richtig, reicht aber als Erklärung nicht aus. Eine Menge Prozessoren (oder Prozessorarchitekturen) sind stromsparend und könnten relativ problemlos nach unten skalieren – denn viele ARM-Prozessoren, die sehr leistungsfähig sind (man denke an die diversen Cortex-A15-Implementierungen), sind auch nicht so richtig stromsparend. Viele Intel-Prozessoren, die sehr leistungsfähig sind, sind verhältnismäßig stromsparend. In punkto „Effizienz“ hat ARM also nicht wirklich eine magische Technologie entwickelt, die der Konkurrenz voraus ist.

Nein, die Gründe für die ARM-Dominanz sind woanders zu suchen – und bis sie sich etabliert hatte, hat es ja auch eine ganze Zeit gedauert. ARMs entscheidender Vorteil, der meines Erachtens auch die Basis für den erfolgreichen Abwehrkampf gegen Intels Eindringen in die Welt der „mobile chips“ war, ist das preiswerte, flexible Lizenzierungsverfahren. Ein Intel-Chip kommt aus einer Intel-Fabrik und enthält die Komponenten, die Intel dafür vorgesehen hat. Ein ARM-Chip kommt aus irgendeiner Fabrik und enthält die Komponenten, die der Lizenznehmer dafür vorgesehen hat. Die Lizenznehmer konkurrieren untereinander, sind ganz nah bei ihren Kunden, bauen teilweise spezifische Lösungen, die dann unerwartet bei anderen Kunden auch beliebt werden. Durch die niedrigen Lizenzgebühren braucht man keine Millionenstückzahlen, um Gewinne einzufahren – das erleichtert das Experimentieren, Versuch und Irrtum, kurze Verbesserungszyklen. Es hat sich ein riesiges Ökosystem entwickelt, wo praktisch jeder „seinen“ Chip finden kann. Oder er baut ihn gleich selbst (siehe als herausragende Beispiele Apple und Samsung, oder früher DEC mit dem StrongARM). Ethernet, Wifi, Bluetooth, S-ATA, LTE, USB, Grafik, Flash-RAM – der Variantenreichtum ist unerschöpflich, und alles kann strom- und kostensparend auf einem einzigen Chip vereinigt implementiert sein. Und der Wechsel des Lieferanten ist auch einfach.

Am Ende ist es vielleicht der Kampf zwischen Marktwirtschaft (ARM und Alternativen, Lizenznehmer, Auftragsfertiger) und Zentralverwaltungswirtschaft aka Planwirtschaft (Quasi-Monopolist Intel). Es dauert, es geht auf und ab, aber am Ende ist der Sieger eindeutig. Selbst wenn der Verlierer am Anfang des Kampfes gewaltigen Vorsprung hatte.

Wird sich an der ARM-Dominanz etwas ändern durch den Verkauf an Softbank? Man wird sehen. Glaskugeln sind gerade Mangelware.

GNAT GPL 2016 verfügbar

 Ada  Kommentare deaktiviert für GNAT GPL 2016 verfügbar
Jun 112016
 

Vor einigen Tagen hat AdaCore die Verfügbarkeit von GNAT GPL 2016 angekündigt. Die 2016er Variante steht in den Geschmacksrichtungen Linux-x86-64bit, Windows-x86-32bit, Mac OS X-x86-64bit, RPi2-32bit (Linux-hosted, und zwar x86-64-Linux) und ARM ELF (Windows- oder Linux-hosted) zum Download bereit.

GNAT kann natürlich Ada 2012 compilieren, aber auch die älteren Standards Ada 2005 und Ada 95 werden weiterhin verstanden. Neue Versionen von GtkAda, Win32Ada und GPS, der GNAT-IDE, runden die Sache ab. Basis ist GCC 4.9. Merkwürdig: die GNAT GPL-Seite erzählt immer noch Geschichten von der Vorversion.

Die älteren Versionen stehen weiterhin auch zum Download bereit. Besonders schade finde ich, dass das JVM-Target offenbar ins Hintertreffen geraten ist, die letzte Version die das Compilieren von JVM-tauglichen Class-Dateien aus Ada-Sourcen unterstützt hat, war GNAT GPL 2013. Ich hatte ein schönes Beispiel am Start, um eine Swing-GUI in Ada an den Start zu bringen, darüber wollte ich immer mal bloggen…aber mit so einer alten GNAT-Version macht das ja keinen Spaß.

Pyra-Vorbestellung möglich

 Hardware  Kommentare deaktiviert für Pyra-Vorbestellung möglich
Mai 262016
 

Ich bin etwas spät dran, weil Vorbestellungen schon seit Anfang Mai möglich sind. Irgendwie ist das aber an mir vorbeigegangen. Also besser spät als nie.

Was ist denn nun überhaupt eine Pyra? Im Prinzip eine OpenPandora in schöner und besser und schneller und überhaupt.

OK, aber was ist jetzt eine OpenPandora? Geistige Vorgängersysteme waren portable Spielkonsolen in der Tradition von Atari Lynx oder Sega GameGear, aber ganz auf der Idee offener Systeme basierend: GP32 (2001), GP2X (2005) und GP2X Wiz (2009), allesamt von der südkoreanischen Firma Game Park/GamePark Holdings entwickelt. Linux-basiert, mit einem ARM als Herz, Grunddesign mit Pad links, Bildschirm in der Mitte, Knöpfe rechts. Da die Systeme softwaretechnisch vollständig offen waren, waren sie der Traum für die „Homebrew“-Szene. Dementsprechend viele, meist freie Software entstand deshalb für diese Handhelds. Der Markt für native Spiele war eher klein, aber es gab eine Menge Emulatoren für den Spielspaß unterwegs, vom C64 bis zum CPC konnte zumindest aus der 8bit-Welt praktisch alles emuliert werden, das GP2X Wiz mit einem 533 MHz ARM9 hatte sogar genug Saft für die 16bit-Spielkonsolen. Die OpenPandora war dann quasi der inoffizielle Nachfolger der Game Park-Handhelds, die nicht nur den Handheld-Spielekonsole-Charakter abdecken sollte, sondern ein vollständiges portables Linux-System mit integrierter Tastatur.

Die OpenPandora – manchmal auch kurz Pandora genannt – basiert hardwaretechnisch auf einem BeagleBoard-ähnlichen Design, also ARMv7 TI OMAP 3 mit bis zu 1 GHz Taktfrequenz. Verpackt in ein klappbares Gehäuse – im weitesten Sinne ähnlich einem Nintendo DS – mit einem Sack voll Schnittstellen von 2 SD-Cards bis zu USB. Auf der einen Seite dank der Tastatur eine Art Mini-PC, auf der anderen Seite aber auch als Handheld-Spielkonsole positioniert dank entsprechenden Controller-Elementen vom 8-Wege-Pad bis zu Schultertasten. Ein 4,3″-Touchscreen mit 800×480 Bildpunkten sorgt für ein klares Bild. Es gab eine Menge Probleme und Verzögerungen bei Herstellung und Auslieferung, grob ab 2010 war die OpenPandora endlich in Stückzahlen erhältlich.

Genug der Historie. Der Nachfolger der OpenPandora ist die Pyra. OMAP5 statt OMAP3, also 1,5 GHz Cortex-A15 Dual-Core statt maximal 1 GHz Cortex-A8 Single-Core. Über den groben Daumen gepeilt bedeutet das eine etwa um Faktor 5 erhöhte Rechenleistung. 2 bis 4 GB Hauptspeicher sind verbaut, dazu aktuelle Schnittstellen wie HDMI, eSATA und USB3. Das Display ist nun 5″ groß und schafft die 720p-HD-Auflösung. Kontakt nach außen gibt es via WiFi und Bluetooth, optional gibt es auch ein UMTS/LTE-Modul inklusive der gängigen Smartphone-Sensorik von GPS über Höhenmesser bis zum Gyro-Sensor. 32GB Flash ist eingebaut, damit man auch ohne eingesteckte SD(XC)-Karte das System seiner Wahl booten kann. Es steckt ein 6000mAh-Akku drin, der ausgetauscht werden kann. Die Tastatur hat eine Hintergrundbeleuchtung spendiert bekommen.

Eine weitere Besonderheit: das Hardware-Design ist modular. So leben CPU und RAM auf einem separat tauschbaren Board, was zukünftige Updates ermöglicht. Inwiefern dieses Szenario realistisch ist, insbesondere nachdem TI die OMAP-Reihe nicht mehr fortführt, sei dahingestellt – ich habe es noch nie für eine gute Idee gehalten, auf spätere Updates zu hoffen. Man kauft am besten das, was existiert, und nicht die Hoffnung auf etwas eventuell irgendwann existierendes.

Wer ist nun Zielgruppe der Pyra? Schwer zu sagen. Sie ist portabler als ein kleines Netbook. Aber auch deutlich dicker als ein Smartphone oder von mir aus eine PS Vita. Aber die hat halt auch eine vollständige Tastatur, die – ich nehme mal meine OpenPandora als Benchmark – durchaus benutzbar ist. Sie ist nicht ganz preiswert, mit 4 GB RAM und mit 3G/4G-Modul liegt man doch schon bei 750€. 2 GB ohne Mobile-Modul liegt bei 600€. Also doch eher unterm Strich ein Liebhaberstück. Damit bin ich Zielgruppe. Hurra! Zumal RISC OS auf der OpenPandora problemlos lief und die Pyra dank HDMI-Out und USB ja sowohl als stationäres als auch mobiles System dienen könnte.

Hier unter pyra-handheld.com gibt es die volle Info-Dröhnung und Details zur Vorbestellung.

Swing-Rätsel – JTree-Zeilenhöhe

 Java, Swing  Kommentare deaktiviert für Swing-Rätsel – JTree-Zeilenhöhe
Apr 112016
 

Manchmal hat man Probleme schon vor so langer Zeit gelöst, dass man sich bei erneutem Auftreten nicht mehr dran erinnert. Weder an das Problem, noch an die Lösung.

Es geht um Java Swing. Die Basics. Man nehme einen JTree. Da gibt es eine Methode namens „setRowHeight“ wo man die zu rendernde Zeilenhöhe setzen kann. Wie so oft gibt es hier auch eine „magic number“, die besonderes Verhalten aktiviert. Hier ist es die 0 (oder negative Werte) – damit instruiert man den Tree, doch bitte den Renderer zu fragen, wie hoch die Zeile denn nun wirklich werden soll. Man sollte meinen, dass das auch ein wirklich guter Default wäre.

Nun gibt es ja in Swing zwei Varianten, wie so ein Default in Aktion tritt. Entweder simple Hartcodierung, oder durch die UI-Defaults des aktiven Look&Feel. Wer weiß auswendig, wie der hartcodierte Wert ist und welches der Standard-Look&Feels dann welchen Wert setzt? Bonuspunkte für denjenigen, der das auch noch schlüssig erklären kann.

Amüsante Randnotiz (Achtung, Spoiler! Teile der Antwort auf obige Frage inside!): hier ein Bug aus Zeiten von Java 1.4 (gab es das wirklich schon 2002?), der sich ebenfalls mit diesem Problem befasst.