Posts mit dem Label Computer werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Computer werden angezeigt. Alle Posts anzeigen

Dienstag, Mai 26, 2009

Fernsehen im Netz

Liebes Oberlandesgericht Münster,

könntet Ihr bitte eine Liste mit Links veröffentlichen, unter denen man das Fernsehprogramm der öffentlich-rechtlichen Sender finden kann?
Ich kann nämlich nichts dergleichen finden. Ich habe extra gerade noch einmal gesucht und nach wie vor haben weder ARD noch ZDF Livestreams ihres Programmes. Und damit meine ich keine Clips in "Mediatheken". Videos von ausgewählten alten Sendungen sind kein Fernsehen, sondern Werbung. Das ZDF bezeichnet zwar einige Ihrer Clips als "Livestreams", aber live und aufgezeichnet ist nun einmal nicht das gleiche.

Wofür genau muss man also jetzt die GEZ Gebühren auf Computer bezahlen?
Ich bezahle fürs Fernsehen, aber immer wenn ich TV online sehen will, scheitere ich mangels Verfügbarkeit. Aber irgendwo muss es ja sein, denn sonst könnte die GEZ ja schließlich nicht die Gebühr eintreiben. Wenn Ihr jetzt per Dekret Gebühren durchdrückt, dann will ich auch die bezahlte Leistung sehen. Echte Livestreams rund um die Uhr in voller Auflösung.
Oder muss man die einklagen?

Oder kann ich auch ein paar eigene Videos ins Netz stellen und dann von allen Bundesbürgern mit PC Geld verlangen, weil sie es sich ja "hätten ansehen können"? Dann wären wir wieder quitt.

Donnerstag, September 25, 2008

Ruby

Ich habe jetzt angefangen mir die Programmiersprache Ruby anzusehen.
Koryphäen wie Martin Fowler schwärmen davon. Und das will etwas heißen, denn er hat ein paar wunderbare Bücher über Programmierung geschrieben. Vor allem den Klassiker "
Refactoring: Improving the Design of Existing Code".
Außerdem ist es die Modesprache des Tages.

Und mein erster Eindruck ist: furchtbare Hackersprache. Javascript reloaded.

* Man kann abkürzen wo man will. D.h. Methodenaufrufe brauchen nicht einmal die sonst üblichen Klammern, wenn man keine Parameter hat.
* Membervariabelen werden nicht zwingend deklariert. Sie entstehen quasi bei Benutzung.
* Methodendeklarationen sind arschhäßlich und erinnern mich an 70er Jahre Sprachen. Anstelle von Klammern wird mit "end" gearbeitet. *schauder*
* Überhaupt scheinen die Entwickler eine Allergie gegen Klammern gehabt zu haben, was bei if und ähnlichen Kontrollstrukturen eher zur Verwirrung beiträgt.

Viele Blogs, in denen Ruby gelobt wird, pochen darauf, dass andere Sprachen viel zu unflexibel seien, zu viel Tipparbeit erfordern und den Blick auf das Wesentliche durch zu viel Ballast ("boiler plate code") verschleiern.

Man kann den Code in Ruby zwar durch diverse Umdefinitionen klein halten, aber m.E. leidet die Lesbarkeit sehr darunter. Vermutlich soll der Name von einer gewissen Verwandtschaft mit Perl zeugen. Sozusagen Perl x C++ mit syntaktischen Anlehnungen an Pascal.
Und ich kann mir wirklich nicht vorstellen, wie man da bei einem größeren Projekt noch durchblicken soll. Sobald die ersten Umstrukturierungen kommen, verliert man den Durchblick.

Ich finde Ruby noch unleserlich und verwirrend, aber so ging es mir mit Java 1.1 anfangs auch.
Mal sehen ob sich der Eindruck ändert, wenn ich erst mal etwas damit gemacht habe.

Freitag, Juni 15, 2007

& = und

Jetzt habe ich mal wieder an meinem Templategenerator (genannt DBXML) gebastelt, der aus XML Daten und Templates beliebige andere Textdateien zaubert. In meinem Falle Source Code und SQL Skripte.

Ich wollte einen IF-Tag mit Bedingungsaudrücken haben, der einfache Vergleiche (=, !=), die üblichen logischen Operatoren (&, |, !) und Klammerungen beherrscht. Und in weniger als zwei Stunden hatte ich mir einen Parser für diese Ausdrücke gestrickt, der 1a funktioniert.

Nur, als ich es dann ausprobiert habe, fiel mir auf, dass '&' (logisches Und) in XML ein Sonderzeichen (aka Entity) einleitet. Gna. Daran hätte ich auch früher denken können.
D.h. ich muss meine Bedingungen
derzeit so schreiben:
"${table.name} != definitions & ${column.type} = ID"

Mist, Mist, Mist. Kennt jemand noch ein anderes ASCII Symbol für ein logisches Und?

Dienstag, Juni 12, 2007

Nieder mit den Apachen!

Meine Güte, gehen mir diese Open Source Projekte auf den Keks.
Und mit Open Source meine ich insbesondere Apache. Ich hatte in den letzten Wochen mehrfach das Vergnügen mich in einige dieser Programme einarbeiten zu dürfen.

Mangels brauchbarer Dokumentationen musste ich oft auf kleinste Hinweise in Foren und Newsgroups zurückgreifen.
Und da bekommt man gelegentlich Diskussionen der Entwickler darüber mit, ob man die kurz nach Release als eklatant buggy erkannte neueste Programmversion überhaupt noch mal korrigieren oder gleich einen Versionssprung machen soll (um dann ein Jahr später ein komplett neues verwanztes Produkt zu veröffentlichen). Beides zu tun und Fehlerkorrekturen in beiden Zweigen nachzuziehen - wie es jeder normale Programmierer tun würde - kommt offenbar niemandem in den Sinn.

Die fehlende Dokumentation hat Methode, denn über den Verkauf von Büchern oder PDF Dokumenten macht man das Geld, um die Programmierer bei der Stange zu halten. Genau wie bei Oracle, die früher damit den großen Reibach gemacht haben, dass man sich Consultants bestellen musste, um ihre kryptischen Konfigurationsfeatures zum Laufen zu kriegen. So weit sind also Open Source und Marktführer doch nicht auseinander.

Oder man stößt wieder und wieder auf Bugzilla (den häßlichsten Bugtracker der Welt) und liest als Fehlermeldung genau das Problem, das man selbst mit dem Programm hat. Aber der Fehler war von 2002 und ist immer noch als "neu" und Prio 1 eingestuft. Prio 1 wird sicherlich bald behoben...
Werden die Projektbeteiligten eigentlich dafür bezahlt, auf Fehlermeldungen nicht zu reagieren? Oder besser noch, die Meldung auf "wird nicht behoben" zu setzen?

Bei vielen dieser Projekte bin ich mir sicher, dass ich die Kernfunktionalität in weniger als einer Woche selbst programmieren kann. Absoluter Dreck wie log4j kann nur deswegen nicht durch einen vernünftigen Logger abgelöst werden, weil der Mist in allen Apache Produkten verwendet wird. Gut, so schlimm ist log4j gar nicht. aber es ist auch nicht einmal annähernd gut. Und vor allem war in jeder Firma, in der ich bisher gearbeitet habe, immer der größte Schaumschläger dafür verantwortlich, dass log4j benutzt wurde. Diese Leute werden ca. ein halbes Jahr später gefeuert, aber dann hat man sich mit log4j abgefunden.

Und dann gibt es noch die Projekte, die eine super Website haben, in allen Zeitschriften auf die Titelseite kommen und bei jedem guten Namedropping vertreten sind. Aber wenn man sich dann endlich mühsam eingelesen hat, stellt man fest, dass sie entweder fast nichts können oder eine uralte Idee gerade mal rudimentär verwirklichen.

Zum ausgleichenden Abschluss noch der Hinweis, dass trotz der Hornochsen, die hinter den Programmen stehen, die meisten davon ihren Zweck gut erfüllen (Apache, Tomcat, ant).

Und auch bei "Kaufsoftware" gibt es schwarze Schafe, die bei jeder Abweichung vom goldenen Pfad abstürzen und sich hauptsächlich darin von einem Hobbyprojekt unterscheiden, dass sie durch einen Obfuscator gejagt wurden und mich damit nur daran hindert, den unfähigen Programmieren gezielte Hinweise auf die Problemstellen geben zu können.

Ich hasse andere Menschen.

Montag, September 11, 2006

new String(string) benutzen nur Anfänger?

Kann man sich in Java mit vielen 4 Zeichen langen Strings ein Speicherproblem schaffen?
Klar, wenn man ca. (Speichergröße in Byte / 4) Strings hat.

Weit gefehlt.
Es geht auch anders, wenn man nicht alles über Strings weiß.

Ein Beispiel, das uns ca. 3 Manntage Forschungsarbeit gekostet hat:
Man importiert eine mehrere GB große Datei Zeile für Zeile, parst die Zeilen in die Datenbank und merkt sich nur die 4 Zeichen langen Kennziffern der Zeilen, damit man doppelte Aktionen vermeiden kann.

Was gibt es da über Strings zu wissen? Und wo soll der Speicher verloren gehen, wenn man die Zeile nur innerhalb der Schleife kennt?

Ein String ist ein Objekt, das seinen Text als Auszug aus einem char[] speichert. Wenn man jetzt die ca. 2 KB langen Zeilen der Importdatei
mit substring() zerlegt, werden die Substrings nicht mit einem neuen char[] erzeugt, sondern zeigen auf den gleichen Array mit einem entsprechenden Offset. Eine super Idee, um Speichermüll zu vermeiden.
Aber wenn man - wie wir - einen der Substrings dauerhaft im Speicher hält (Map, etc.), behält man auch dauerhaft den dahinter hängenden char[]. Und das führt zu 2KB unnötigem Speicherverbrauch pro Zeile.

Die Lösung des Problems sieht dann aus wie Anfängercode:
String kennziffer = new String(zeile.substring(0,4));
Durch new String() wird tatsächlich auch ein neuer char[] für die 4 Zeichen erzeugt und schon hat man keine Probleme mehr.

new String(string) ist normalerweise vollkommen nutzlos, weil Strings unveränderlich sind, und sollte aus Speichergründen nicht verwendet werden. Aber wenn man große Strings mit substring() zerlegt, sollte man es in Erwägung ziehen.

Mittwoch, Juni 28, 2006

Dokumente stapeln wie in echt

Großartige Ideen für einen organischen Desktop.
Man kann die Dokumente stapeln, verwuscheln und durchblättern. Die Dokumente benehmen sich dabei, als hätten sie wirklich Masse. Soll heissen, wenn man mit einem Dokument in ein anderes wemst, rutscht das andere ein Stück beiseite.
Will haben!

Natürlich ist es bisher nur ein Prototyp, d.h. ein Programm, das so tut als wäre es ein Desktop.
Aber sobald das für Linux zu haben ist, werde ich mir endlich den Server aufsetzen, von dem ich seit vier Jahren rede.

Sonntag, Juni 18, 2006

Das richtige Rollenspiel für mich

Endlich habe ich das richtige Spiel für mich gefunden.
Ich bin ja ein großer Freund von Rollenspielen. Da verbringt man Stunden damit, seinen Charakter von einem Level zum nächsten zu bringen, indem man Monster umknüppelt. Das macht Spaß. Und die Zeit ist ja nicht verloren, denn es entwickelt sich ja schließlich etwas.
Nur wird es nach einiger Zeit immer langweiliger, weil die Abläufe ständig gleich sind und man irgendwann immer weitere Wege gehen muss, um noch Gegner zu finden, die einen weiter bringen.

Aber jetzt hat mich ein Artikel bei BoingBoing auf Progress Quest gebracht.
Bei diesem Rollenspiel hat man die Lösung für obige Probleme gefunden, ohne den Spaß zu verderben. Der Charakter kämpft von ganz alleine und wenn er die Taschen voll hat, geht er zum Markt und vertickt die gesammelten Monsterinnereien, um sich dafür bessere Ausrüstung zu kaufen. Und nebenbei werden noch Quests erledigt.
Dementsprechend besteht die Tastenübersicht auch nur aus einer einzigen Zeile (für Alt-F4).

Also zieht mein Charakter jetzt bewaffnet mit einem Mülltonnendeckel und einem spitzen Stock duch die Wälder und entwickelt sich fort, während ich mir ein Bier holen oder bügeln kann.
Stundenlanges Spielvergnügen!

Mittwoch, Mai 31, 2006

genuine Lektion

Heute früh habe ich das "Genuine Advantage-Gültigkeitsprüfungstool" Update von Windows schnöde ausgeschlagen.
Beschreibungstext: "Mit dem Windows Genuine Advantage-Gültigkeitsprüfungstool können Sie feststellen, ob es sich bei Ihrer Microsoft Windows-Kopie um ein Original handelt." Andernfalls werden einem Vorschläge unterbreitet, wie man Windows erwerben kann.
Kurz gesagt, "bitte erlauben Sie uns zu prüfen, ob Sie ihre Lizenzkeys von cracks.am gezogen haben - wir hätten das auch schon längst für Sie getan, wenn es in der EU legal wäre."
Aber solche Schnüffeltools sind mir suspekt. Das brauche ich nicht und will auch nicht mehr daran erinnert werden.

Nach einem Tag harter Arbeit, ohne meine halbfertigen Änderungen ins Versionierungssystem einspielen zu können, ist mir zum ersten mal Windows XP abgeraucht. Und zwar mit allem was dazu gehört.
Erst hat sich meine IDE überraschend geschlossen. Dann kam die freundliche Mahnung, ich solle mal chkdsk laufen lassen. Bevor ich etwas unternehmen konnte, hatte mein Rechner aber das Heft schon selbst in die Hand genommen und sich erst mal neu gestartet. Nach chkdsk und Neuanmeldung gab es dann die Meldung "Unbekannter Prozedureinsprung in User32.dll". (Für die Mac User: die Datei User32.dll spielt eine relativ zentrale Rolle im Betriebssystem.)
Dementsprechend war der Systemstart auch nicht wirklich bis zum Desktop vorgedrungen und ich konnte nur noch unseren Systemadministrator rufen.

Nach mehreren Versuchen das System wiederherzustellen, reparieren, neu installieren oder wenigstens zu löschen mit einer ganzen Palette verschiedener Blue Screen Fehler als Resultat, habe ich dann meine Festplatte ausgebaut, um wenigstens die Daten zu retten.
Tja, morgen kommt der Reparaturfritze.

Zuhause habe ich dann das "genuine advantage" Update dann umgehend ausgeführt.

Mittwoch, März 29, 2006

City of Tuttle

Ich bin gerade auf diesen Link gestossen:

CentOS vs City of Tuttle

Es macht einen wirklich sprachlos. Das schreckliche daran ist, daß dieser Jerry A. Taylor seinen Job vermutlich genau deswegen hat, weil er andere Leute durch seine rüde, impertinente Art dazu bringt, seine Arbeit für ihn zu erledigen. eMails lesen und verstehen ist ja hingegen nicht seine Stärke.

Ich mag besonders seinen Hang zu Ausrufungszeichen, den man Gott sei Dank bei unseren städtischen Angestellten normalerweise nicht findet.

Freitag, März 17, 2006

Das beste Spiel aller Zeiten

Es gab eine Zeit, da bestanden die Möglichkeiten eines Programmierers aus einem Assembler und äh, und das war's. Jedes Pixel musste von Hand gesetzt werden. Hochsprachen waren nur für akademische Vorführungen geeignet und um die Kisten an den ambitionierten Heimanwender zu verkaufen, aber jedenfalls nicht zur Spieleprogrammierung.

M.U.L.E.M.U.L.E. ist eine Wirtschaftssimulation, wenn man es unbedingt einordnen will. Aber da 1983 noch jedes Pixel kostbar war, wurde es auf das Nötigste reduziert. Gleichzeitig ist es ein echtes Mehrspielerspiel. Man muss miteinander oder eben gegeneinander handeln, was man zuvor erzeugt hat. Und es ist ein Actionspiel, denn wenn man den Muli nicht schnell genug zur Farm geschleift hat, war der ganze Zug für die Katz'. All das war nicht unbedingt neu, aber die Kombination war goldrichtig. Von der Ankunft auf dem Planeten "Irata" (ich bin etwas langsam und habe erst vor ein paar Jahren gemerkt, wieso der so heißt) über die Steptanztrophäen bis zum System von Angebot und Nachfrage - ein Spiel das durch seine Genialität überzeugt hat und von vielen Fans auch heute immer noch gerne gespielt wird.

Heute kriegt man Wirtschaftssimulationen wortwörtlich im Dutzend nachgeschmissen. Aber die heutigen Simulationen basieren allesamt eher auf Kaiser oder Civilisation. Micromanagement und zahllose Aus- und Anbauten, bei denen man den Überblick verliert. M.U.L.E. war etwas anderes. Es war so perfekt, daß sich nie jemand getraut hat, es verbessern zu wollen.

Wie M.U.L.E. heute aussehen würde, will ich gar nicht wissen. Denn jede Veränderung würde die schlichte Brillianz dieses kleinen Meisterwerkes verwischen.

Unfassbar, aber irgendwie auch unvermeidlich: Es gibt eine ziemlich originalgetreue Windowsumsetzung mit Netzwerkunterstützung. (Genaugenommen ein Atari-Emulator.) Nix wie hin!