QR Code Business Card

noctus.net

ねぇ、今日はどこに行こうかな?

Archiv für die Kategorie ‘Unkategorisiert’

Ein Schritt zurück und zwei nach vorn

keine Kommentare

Wenn mir ein Merkmal an PCs wichtig ist, dann ist es schnelle und saubere Wiedergabe von HD-Material. Während 720p überhaupt kein Problem darstellt, gibt es bei 1080p zum Teil drastische Unterschiede.

Abbildung der Grafikkarte ATI Radeon HD4670

ATI Radeon HD4670

Aus diesem Grund tauschte ich dereinst meine eher betagte ATI Radeon 9600 (Chip RV350) gegen eine ATI Radeon HD4670 (Chip RV730), da mir erstere nicht mehr die Performance bot, die ich als Normalzustand voraussetze. Doch von Anfang an sah ich mich Problemen gegenüber gestellt. So war es praktisch an der Tagesordnung, dass der Bildschirm beim Systemstart bei der Aktivierung von KMS schwarz wurde und auch blieb. Dem Festplattengeräusch war zu entnehmen, dass das System und schließlich auch X normal weiter startete, das Bild blieb jedoch unbenutzbar. Die Tastenkombination SysRq+R,S,U,B ging nach kurzer Zeit trotz Verärgerung locker von der Hand, um zumindest das System so sauber wie möglich neu zu starten. Nach 1, maximal 2 Neustarts trat das Problem nicht mehr auf. Die Beziehung zwischen Kalt- und Warmstarts tiefer zu ergründen erschien mir zu müßig.

Ein weiteres Problem stellte der Einsatz von 3D in Form von OpenGL dar: immer wenn ein (vermeintlich) zu großer oder aufwändiger Zeichenkontext auf dem Bildschirm aktiv war, stockte das System kurz und startete urplötzlich und ohne jegliche Meldung neu. Trotz aller Anstrengungen, das Ausschreiben von System-Logs zu erzwingen gelang es mir nicht, auch nur eine Spur eines Hinweises zu finden, wo das Problem liegen könnte. Dieses Problem trat auf mit dem gl-Ausgabetreiber vom mplayer sowie beim Umschalten zwischen einer 3D-Applikation und einem anderen Fenster.

Schließlich das größte Manko: die HD-Wiedergabe von 1080p-Material war – Pardon – unter aller Sau. Der Verlust der Synchronisierung von Audio und Video war keine Seltenheit. Ruckeln und Schlieren (Tearing) an der Tagesordnung. Keine wirklich angenehme Benutzererfahrung, wenn ein Video stockt und bei stärkeren horizontalen Bewegungen quasi auseinander gerissen wird. Und stets droht die Gefahr, dass das System sich mal eben einen Neustart gönnt, wenn man es wagen sollte, den theoretischen Geschwindigkeitsgewinn einer OpenGL-Ausgabe nutzen zu wollen.

Ich spielte schon mit dem Gedanken, mir einen komplett neuen PC mit aktuellen Bauteilen zusammenzusetzen, als mir meine alte Radeon-Karte in den Sinn kam. Ich wollte es auf einen Versuch anlegen …

Abbildung der Grafikkarte ATI Radeon 9600

ATI Radeon 9600

Und ich sollte es nicht bereuen. Sämtliche angesprochenen Probleme sind verschwunden. Es erscheint mir unlogisch, wie eine deutlich ältere Karte mit deutlich weniger Leistung dennoch eine um ein Vielfaches bessere und stabilere Erfahrung bieten kann, aber genau so ist es. Die Wiedergabe von großformatigem HD-Material läuft nun sauber und ohne Probleme, der Systemstart läuft normal durch. Und 3D ist nun – der Leistung der Karte entsprechend – komplikationsfrei möglich.

In diesem Sinne stieß ich kürzlich auch auf eine Lösung für das Tearing-Problem. Durch den Einsatz von Compiz als Window-Manager löst sich das Problem in Luft auf. Dies begründet sich damit, dass Compiz auf OpenGL als Zeichenkontext setzt, wogegen Xfwm4, mein Standard-WM, XRender verwendet. Die für die Vermeidung von Schlieren unbedingt erforderliche VSync-Funktionalität ist dagegen in XRender nicht verfügbar, in der OpenGL-Ausgabe im Grafikkarten-Treiber jedoch standardmäßig aktiviert. Dadurch wird die Synchronisation der Zeichenoperationen mit dem Bildschirm erzwungen, womit eine flüssige Ausgabe erfolgt.

Als Treiber für beide Grafikkarten kam stets der offenen radeon-Treiber zum Einsatz, da das proprietäre Pendant in Form des fglrx-Treibers entweder nicht zur aktuellen X-Version kompatibel war oder schlichtweg nicht funktionierte. Und während die Einführung der Gallium-Architektur für den r600-Treiber aus meiner Sicht nur Nachteile brachte, mauserte sich der r300-Treiber zu einer zuverlässigen und durchaus performanten Möglichkeit, die Radeon 9600 zu betreiben. Alle Unzulänglichkeiten, die mich beim klassischen r300-Treiber zum Wechsel auf meine Radeon HD4670 bewegten sind nun pasé.

Fazit: um meinem Ziel einer angenehmen Wiedergabe von HD-Material näher zu kommen, musste ich einen Schritt zurück tätigen.

Geschrieben von Mathias

19. Januar 2012 um 22:47

Romani ite domum

keine Kommentare

Bei einem kürzlichen Spaziergang fielen uns die künstlerischen Malereien an einer Steinmauer am Elbufer auf:

Offenbar hat sich hier jemand eine Lektion des Lateinunterrichts zu Herzen genommen:

Ist doch gar nicht so schwer. ;-)

Geschrieben von Mathias

22. November 2011 um 23:10

Ibarrrrraki

keine Kommentare

Demjenigen, der vorhat, sich die Japanischen Präfekturen einzuprägen, kann ich folgendes Video wärmstens ans Herz legen:

Ibarrrrrraki!

Geschrieben von Mathias

29. Oktober 2011 um 02:20

Tags: ,

LOL, Internet

keine Kommentare

Ende Juli bestellt und mit einem Termin ca. 2 Wochen darauf angekündigt sollte meine Internetverbindung in meiner neuen Wohnung geschaltet werden. Beim Anbieter fiel unsere Wahl auf Vodafone, da meine Freundin damit schon gute Erfahrung hatte und der Preis stimmte. Ein wenig mehr Unabhängigkeit von Big Pink konnte dabei auch nicht schaden.

Ganz so einfach sollte es am Ende aber doch nicht werden: nachdem mein Anschluss ursprünglich zum 8. September geschaltet werden sollte und ich zuerst gar keine Information seitens Vodafone erhielt, fand ich nach einigen Anrufen und Nachfragen heraus, dass es beim Beantragen meines Anschlusses Probleme mit der WITA-Schnittstelle bei der Telekom gab. Über diese Schnittstelle sollen alternative Anbieter von Internetanschlüssen unkompliziert und ohne bürokratischen Aufwand Anschlüsse für ihre Kunden beantragen können. Sollen. Neben Performanceproblemen und Engpässen soll diese Schnittstelle von generischen und nichtssagenden Fehlermeldungen geplagt sein. Diese können dann auch nur so an den Kunden weitergegeben werden.

So liegt es meist dann auch bei diesem, zu erkunden, was genau überhaupt gerade geschieht. So auch in meinem Fall, da ich praktisch jede Woche bei Vodafone anrief um den aktuellen Stand anzufragen. Ein Telefonat Mitte September sollte mich dann schocken: die Telekom hatte angekündigt, die Probleme mit der Schnittstelle bis zum 2. November zu beheben. Ich sollte also noch mehr als 2 weitere Monate auf meinen regulären Anschluss warten. Da die berühmt-berüchtigte letzte Meile nach wie vor der Telekom gehört, wäre es in diese Fall egal gewesen, bei welchem Anbieter ich bin.

Umso erstaunter war ich dann allerdings, als vergangene Woche ein Schreiben bei mir eintraf, dass mein Anschluss nun doch plötzlich zum 27. September geschaltet werden sollte. Ungläubig fragte ich bei Vodafone nach und erhielt eine Bestätigung. Nicht die letzte, denn es folgten noch 2 SMS und 1 Anruf von Vodafone mit dem Hinweis der Freischaltung. Ich sollte doch darauf achten, an diesem Tag unbedingt zuhause zu sein.

Und tatsächlich erschien der Telekom-Techniker an diesem Tag um 9:30 Uhr und schaltete schnell und unkompliziert die Leitung frei. Er merkte zudem an, dass bedingt durch die Länge der Leitung und den Dämpfungswert nur ein Teil der von mir bestellten 6MBit zur Verfügung stehen würden. Dass ich nicht DSL 16.000 beantragt hatte, wunderte ihn etwas, aber mehr wurde mir von Vodafone nicht angeboten. Und Vodafone sollte richtig vermutet haben.

Denn tatsächlich nutzen kann ich nunmehr lediglich 3,5MBit. Eine Fallback-Lösung laut Telekom-Techniker, den ich kurz nach der Freischaltung anrief. Dieser kam auch nicht umhin, mich sogleich auf die Option von 50MBit per VDSL hinzuweisen. Bei einem Wechsel zur Telekom versteht sich. Ich machte deutlich, dass ich daran kein Interesse habe. Somit obliegt es der Verantwortung von Vodafone, die VDSL-Verbreitung weiter voranzutreiben.

Nun hatte ich also endlich meine reguläre Internetverbindung per DSL, wenn auch nicht berauschend schnell. (In meiner vorherigen Wohnung standen mir 13MBit zur Verfügung). Baulich bedingt musste die EasyBox von Vodafone nun allerdings im Vorsaal (ja, Silli das heißt in unserer Familie so :-P ) stehen. Durch massive Wände und Ecken erhielt ich damit nur eine akzeptable Verbindung, die von Einbrüchen in Geschwindigkeit und Stabilität geplagt waren. Denn für unsere neue Wohnung hatten wir uns vorgenommen, ein wenig Kabelwulst abzubauen. WLAN erschien als das Mittel der Wahl. Und während ich bis zu diesem Zeitpunkt ein vollständiger Laie auf diesem Gebiet war, habe ich mich im Zuge meiner Schaltung bzgl. IEEE 802.11 und seinen verschiedenen Varianten kundig gemacht.

Das Ziel war eine stabile und schnelle Verbindung. Zu diesem Zweck entschied ich mich dann schließlich auch, die EasyBox durch eine Verlängerung des Telefonkabels ins Wohnzimmer zu verlegen. Nach ein wenig eigener Recherche fand ich heraus, dass es vom dafür erforderlichen TAE-Anschluss die Varianten TeleFon und Nebenstelle gibt, wobei für mich die Variante F relevant erschien. Bei einem Abstecher zum örtlichen M&M-Computer-Store wurde mir allerdings zur N-Variante geraten, nachdem ich deutlich machte, dass ich damit einen DSL-Router/Modem anschließen möchte. Wieder zuhause gelang es mir allerdings dann mit Leibeskräften nicht, den Stecker in meine TAE-Buchse zu treiben. Mit den beiden äußeren Anschlüssen gab es jedoch keine Probleme. Am nächsten Tag tauschte ich das N- gegen ein F- Kabel und erreichte damit mein Ziel.

Ein weiser Mann ging eines Tages in sich und verkündete eines Tages: LOL, Internet.

Und damit entlasse ich euch wieder in die Weiten ebendiesen.

Nachtrag: Um das ganze noch zu toppen, erhielt ich vergangenen Freitag von Vodafone eine Benachrichtigung, dass meine Kündigung eingegangen sei und mein Anschluss am 14. Oktober abgeschaltet wird. Nach einem geladenen Gespräch mit einem Vodafone-Mitarbeiter stellte sich heraus, dass Vodafone meine Beschwerde zur schlechten Informationspolitik als Stornierung meines Auftrags verstanden hat. Da diese freie Interpretation nicht auf einem Fehler meinerseits beruht, ermahnte ich den Sachbearbeiter, alle ihm zur Verfügung stehenden Hebel in Bewegung zu setzen, um diesen Unsinn wieder rückgängig zu machen. Warum sollte ich meinen Anschluss kündigen, nachdem er nach ewiger Wartezeit endlich nutzbar geworden ist? Ob Vodafone nun wirklich die „Reklamation der Stornierung“ durchführt, gilt abzuwarten.

Nachtrag zum Nachtrag: Zwischenzeitlich musste ich schon an der Qualifikation der Mitarbeiter bei Vodafone zweifeln, nachdem mich einer von diesen informierte, dass „meine Kündigung“ nicht mehr abwendbar ist. Nach weiteren Telefonaten und dem dezenten Hinweis, dass auf diesem Wege ein bereits geschalteter Anschluss gekündigt würde, war die Stornierung der Kündigung nun plötzlich doch möglich. Sowohl bei der Kundenrückgewinnung als auch im Service-Bereich war man sich einig, dass meine Beschwerde zur schlechten Informationspolitik mitnichten als Kündigung aufgefasst werden kann. Fazit: es bleibt alles wie es ist. Hoffentlich.

Geschrieben von Mathias

30. September 2011 um 23:07

Diplomarbeit: Gegenüberstellung von HTML5 und Adobe Flex

keine Kommentare

Als Abschluss meines Studiums der Medieninformatik wollte ich unbedingt ein praxisrelevantes Thema bearbeiten und dabei den Schwerpunkt auf die praktische Umsetzung legen. Ich bin nun einmal ein Pragmatiker durch und durch, weshalb ich zu viel Theorie schon immer ermüdend fand.

Von der Idee zum konkreten Plan

Nach einigen Vorschlägen meinerseits im Dialog mit der Firma, in der ich die Arbeit anzufertigen wünschte, fanden wir schließlich einen Themenkomplex: HTML5. Diese nahezu generalüberholte Fassung des HTML-Standards bot folgende Eigenschaften:

  • ein umfangreiches Feld für Implementierungen,
  • viele augenscheinlich neue Möglichkeiten,
  • noch vergleichsweise jung,
  • dennoch schon ausreichend verbreitet.

Ein idealer Kandidat also für eine praktische Umsetzung. Um eine gesunde Menge an Funktionen in Form eines Prototypen unter einen Hut zu bringen, musste ich mir nun nur noch die Art der Applikation überlegen. Nach einiger Überlegung schwebte mir eine Medienverwaltung vor, worin Medien verschiedenster Art eingebunden, verwaltet und betrachtet werden sollen.

Um dem ganzen Vorhaben dann noch eine Spur mehr Würze zu verpassen, kam von meiner Professorin der Vorschlag, hier eine Gegenüberstellung von HTML5 und dem Flex-Framework von Adobe einfließen zu lassen. Letzteres ist in Verbindung mit dem Flash-Player als einer der bevorzugten Wege bekannt, reiche Medieninhalte im Web adäquat darzustellen.

Die Arbeit

Nach weiterer Rücksprache mit meiner Professorin erarbeiteten wir schließlich den konkreten Titel meiner Diplomarbeit:

HTML 5

Fx

Gegenüberstellung der Technologien HTML5/JavaScript
und des Flex-Frameworks anhand der
prototypischen Umsetzung einer Medienverwaltung

Ziel der Arbeit war es, durch die Entwicklung eines Prototypen einer Medienverwaltung zum einen in HTML5/JavaScript und zum anderen in Adobe Flex einen Vergleich hinsichtlich der Konzeption und schließlich Nutzbarkeit einzelner Funktionen zu ziehen. Das Ergebnis meiner Arbeit ist nun schließlich in meiner Diplomarbeit zu finden, welche ich hiermit öffentlich verfügbar mache:

Deckblatt der Diplomarbeit

Diplomarbeit im PDF-Format

Erstellt habe ich die Niederschrift übrigens nicht mit LaTeX, auch wenn dies bei vielen üblich ist und im Zuge dieser Arbeit sich das Erlernen dieser Auszeichnungssprache sicher gelohnt hätte. Allerdings wollte ich mir angesichts des straffen Zeitplans nicht auch noch diese Hürde stellen, weshalb ich mich auf das besann, womit ich mich auskenne: OpenOffice/LibreOffice. Da ich darin seit eh und jeh Formatvorlagen verwende, gestaltete sich die konsistente Auszeichnung, Strukturierung und Formatierung der Inhalte recht einfach. Anspruchsvoller dagegen waren die verschiedenen Verzeichnisse. Angefangen von den Anpassungen für das Inhaltsverzeichnis (Beginn bei Überschrift 0, gesonderte Überschriften-Formatvorlagen für Anhang und Folgeseiten) über das Abkürzungsverzeichnis (basierend auf einer externen CSV-Datei, aktualisiert über eine automatische Suche der Begriffe im Dokument) bis hin zum Literaturverzeichnis (über eine externe Datenbank-Datei) habe ich hier wieder viel gelernt. Für die Erstellung des Klassendiagramms ist der Diagramm-Editor Dia zum Einsatz gekommen.

Die Verteidigung

Dazu die Präsentation, welche mir für die Verteidigung als visuelle Stütze diente, daher nur einen kompakter Überblick darstellt:

Präsentation im PDF-Format

Mein Verteidigungstermin war auf den Donnerstag, den 21. Juli 2011 um 11:00 Uhr angesetzt, ich nutzte allerdings die Zeit und betrat den Präsentationsraum in der Z343 der HTW Dresden bereits um 8:30 Uhr. Die verbleibende Zeit verbrachte ich damit, den Laptop aufzubauen, an den Beamer anzuschließen, für optimale Lichtverhältnisse zu sorgen und mir kurzerhand von einem alten Bekannten noch ein paar Lautsprecher zu besorgen. Vor Beginn ging ich noch ein letztes Mal die Präsentation, die Prototypen und zum Teil meine Diplomarbeit durch. Ich fühlte mich ausreichend vorbereitet aber natürlich dennoch unglaublich aufgeregt. Aber wie so üblich bei mir verflog die Aufregung mit Beginn meiner Präsentation. Und da ich entgegen meiner Befürchtung die Zeit so gut füllte, dass am Ende nur noch 5 Minuten übrig waren, kürzte ich zur Demonstration der beiden Prototypen ab.

Im Gutachten meiner Professorin und dem Zweitkontrolleur wurde mir ein hohes Verständnis der Materie und sehr guter Tiefgang bescheinigt. Ebenjener war jedoch auch Grund zur Kritik, da es mir nicht immer gelungen ist, diesen Tiefgang in eine verständliche Form zu bringen, welche die Arbeit zugänglicher gemacht hätte. So bedarf es teilweise schon fortgeschrittener Kenntnisse um meinen Ausführungen folgen zu können. Auch meine Schlussfolgerungen und die Gesamtbewertung von HTML5 und Adobe Flex seien nicht immer angemessen und hätten mit noch mehr Fakten hinterlegt werden sollen.

Im Fragen-Teil der Verteidigung konnte ich viele dieser Kritikpunkte allerdings durch nähere Ausführungen relativieren und damit die Komission überzeugen. Besonders gefreut habe ich mich in diesem Sinne auch über das Vorhaben meiner Professorin, sich mit HTML5 befassen zu wollen und ab nächstes Jahr in ihren Vorlesungen darauf einzugehen.

Die Prototypen

Den Quellcode der Prototypen mache ich hiermit ebenso öffentlich einsehbar:

Abbildung des HTML5-Prototypen

HTML5/JavaScript-Prototyp

Abbildung der Flex-Medienverwaltung

Adobe-Flex-Prototyp

Beide Prototypen sollten über einen Webserver aufgerufen werden, welcher sie über http://localhost verfügbar macht. Dieser Host ist einer der wenigen, von welchem sämtliche Quellen Anfragen akzeptieren. Dies ist generell relevant für den domainübergreifenden Zugriff auf die Quelle „Mikan“ sowie speziell für die Interaktion mit der Quelle „Suika“ per WebSocket in Adobe Flex. In der Arbeit wird dieser Sachverhalt näher erläutert.

Die Quellen

Abschließend noch der Quellcode der mit den Protoypen nutzbaren Quellen:

Apfel

Ringo (PHP)

Erdbeere

Ichigo (PHP & MySQL)

Mandarine

Mikan (PHP)

Wassermelone

Suika (Python)

Für die Quelle „Ringo“ genügt PHP, „Ichigo“ erfordert zusätzlich eine Datenbank für die Auflistung und das Entfernen von Ressourcen. Die Quelle „Mikan“ ist wie in der Arbeit beschrieben über eine feste Adresse im Web abrufbar und benötigt ebenso nur PHP. Für die Quelle Suika ist Python sowie das Twisted-Framework erforderlich. Das verwendete txWebSocket-Modul wird bereits mitgeliefert.

Und ja, die Namen der Quellen entsprechen den japanischen Bezeichnungen von Früchten. ;-)

Schlusswort

Ich wünsche viel Spaß beim Lesen der Arbeit und Ausprobieren der Prototypen. Wenn jemand dadurch etwas Neues lernt oder sich angeregt fühlt, etwas Ähnliches oder Besseres zu entwickeln, fühle ich mich in meinem Vorhaben bestätigt. Ob am Ende ein Umsetzung in HTML5, Adobe Flex oder etwas ganz anderem steht ist dabei gleich. Ich für meinen Teil bin allerdings der festen Überzeugung, dass HTML5 immer mehr an Bedeutung gewinnen wird. Es bildet schon heute die feste Grundlage all meiner Projekte und ich hoffe, dass ich noch mehr Leute dazu bewegen kann, sich damit zu befassen. :-)

Geschrieben von Mathias

23. Juli 2011 um 15:32

Tags: ,

Diplomabschluss

4 Kommentare

Mit dem heutigen Tage ist es endlich vollbracht: ich habe mein Studium der Medieninformatik nach 5 Jahren abgeschlossen. :-D

Beim Gedanken daran, dass ich meinen Abschluss nun geschafft habe und mich nunmehr „Diplominformatiker“ nennen darf, empfinde ich momentan nichts als innere Ruhe. Und fühle mich ein wenig befremdet, die Zeit nach der Arbeit wieder für mich frei zu haben. Aber da als nächstes mein Umzug ansteht, habe ich gleich wieder eine erfreuliche Tätigkeit, mit der ich diesen Freiraum auffüllen kann. ;-)

Sofern meine Professorin ihr Einverständnis gibt, werde ich meine Diplomarbeit hier veröffentlichen.

Geschrieben von Mathias

21. Juli 2011 um 19:09

Tags: ,

日本おめでとう!

keine Kommentare

Mit einem fulminanten Finale hat Japan den Sieg in der Frauen-WM 2011 erlangt. Keiner hat so recht mit diesem Verlauf und diesem Ergebnis gerechnet, aber es ist wohlverdient. :-)

Allerherzlichste Glückwünsche nach Japan!

Möge dieser Sieg weitere Kraft spenden,  die Auswirkungen der Katastrophe vom März zu überwinden.

Geschrieben von Mathias

18. Juli 2011 um 00:07

Tags: ,

Gegen die Langeweile

1 Kommentar

Für alle, die nicht wissen, was sie mit ihrer Zeit anfangen sollen:

Bevorzugt zweimal schauen um auch wirklich alle Feinheiten mitzubekommen. ;-)

Geschrieben von Mathias

8. Juli 2011 um 21:27

Tags: , ,

Extbase: Model-Zugriff in Validatoren

keine Kommentare

Für den Fall, dass die Standard-Validatoren von Extbase oder benutzerdefinierte Validatoren für einzelne Eigenschaften eines Models nicht genügen, gibt es noch die Option eines benutzerdefinierten Validators mit vollem Zugriff auf die neue Instanz eines Models.

Dafür kann man sich eine gänzlich undokumentierte Feinheit des Extbase-Frameworks zunutze machen: standardmäßig wird in einem Standardpfad versucht, einen passenden Validator passend zu einem Model zu finden. Wieder ein Beispiel für „Konvention über Konfiguration“, worauf in Extbase und FLOW3 Wert gelegt wird.

Der besagte Validator wird standardmäßig unter Classes/Domain/Validator/ModelNameValidator.php gesucht. Wie bei allen Extbase-Validatoren üblich ist zur Erfüllung der Schnittstelle Tx_Extbase_Validation_Validator_ValidatorInterface (OOP-Konvention wäre hier eigentlich IValidator) eine Ableitung von Tx_Extbase_Validation_Validator_AbstractValidator empfehlenswert. Dessen isValid-Methode erhält als einziges Argument die betreffende Instanz des Models, womit dann beliebige Überprüfungen vorgenommen werden können. Da hier ein uneingeschränkter Zugriff auf alle Eigenschaften des Models gegeben ist, können so auch komplexe Validierungen mit Abhängigkeiten zwischen Eigenschaften und dergleichen vorgenommen werden.

Der Validator sollte zu guter Letzt wie immer true oder false zurückgeben um über das Ergebnis der Validierung zu informieren und im Fehlerfall zuvor noch eine aussagekräftige Fehlermeldung vermerken. Dies kann entweder über die addError-Methode oder direkt per Manipulation der errors-Eigenschaft geschehen:

// 1) addError()
$this->addError('Descriptive error message', 0000000000); // Hier sollte 0000000000 eine eindeutige Nummer sein
 
// 2) errors
$this->errors[] = new Tx_Extbase_Validation_Error('Descriptive error message', 0000000000); // Siehe oben

Letztere Variante bietet die Möglichkeit, manuell Instanzen von Tx_Extbase_Validation_PropertyError einzufügen. Dadurch können bestehende, auf Model-Eigenschaften optimierte, Partials für die Ausgabe von Validierungsfehlern ohne Anpassung verwendet werden. Dazu hängt man die eigentlichen Fehlermeldungen an eine Fake-Eigenschaft:

// Container für gruppierte Fehlermeldungen über eine Fake-Eigenschaft anlegen
if (!isset($this->errors['fakeProperty']) {
 
  $this->errors['fakeProperty'] = new Tx_Extbase_Validation_PropertyError('fakeProperty');
}
 
// Eigentliche Fehlermeldungen an den Container anhängen
$this->errors['fakeProperty']->addErrors(array(
  new Tx_Extbase_Validation_Error('Descriptive error message', 0000000000); // See above
));

Da dieser Validator allgemein für das Model gilt, wird er immer dann zur Rate gezogen, wenn eine neue Instanz des Models im Zuge einer Aktion angelegt werden soll. Wahlweise kann man dies allerdings auch manuell für die gewünschten Aktionen eines Controllers über die  @validate …Validator.php DocComment-Notation erfolgen. Allerdings sollte man dann darauf achten, dass der Validator nicht der oben beschriebenen Pfad-Konvention folgt. Andernfalls wird der Validator wie gehabt immer aufgerufen, @dontvalidate einmal ausgenommen. Auf diese Weise können der Zielaktion auch beliebige weitere Validatoren hinzugefügt werden, welche jeweils den gleichen Zugriff auf das Model haben.

Geschrieben von Mathias

16. Mai 2011 um 21:31

Tags: , , ,

Mingetty und systemd

keine Kommentare

Das von systemd standardmäßig für das Öffnen virtueller Terminals genutzte agetty verfügt verglichen mit mingetty nur über einen sehr beschränkten Funktionsumfang. So ist gerade die Option --autologin von mingetty interessant, wenn man beim Start des Systems automatisch einen Nutzer ohne manuelle Eingaben anmelden möchte. Unter SysVinit ist hierfür folgender Eintrag in der /etc/inittab erforderlich:

1:2345:respawn:/sbin/mingetty --autologin USER tty1

Die Konfiguration unter systemd gestaltet sich dagegen komplett anders, ermöglicht aber eine nicht minder flexible Anpassung:

  1. Die Datei /lib/systemd/system/getty@.service nach /etc/systemd/system kopieren
  2. Die Datei /etc/systemd/system/getty@.service editieren und in der Sektion [Service] die Option ExecStart wie folgt ändern:
    ExecStart=-/sbin/mingetty --autologin USER %I
  3. Ändern des Standard-Symlinks für die Startdefinition des getty-Dienstes auf tty1 (analog für die anderen virtuellen Terminals):
    ln -sf /etc/systemd/system/getty@.service \
    /etc/systemd/system/getty.target.wants/getty@tty1.service

Hiernach kann der Dienst neu gestartet werden. Eine laufende X-Sitzung wird damit allerings auch beendet:

systemctl restart getty@tty1.service

Ab diesem Zeitpunkt wird bei jedem Systemstart der per USER spezifierte Nutzer automatisch angemeldet. Als kleiner Bonus noch eine mögliche Vorgehensweise, um dabei auch automatisch den X-Server zu starten:

if [ -z "$DISPLAY" -a $(tty) = /dev/tty1 ]; then
  startx
fi

Hier wird geprüft, ob noch kein X-Server gestartet wurde (die Umgebungsvariable $DISPLAY ist andernfalls gesetzt) und ob wir uns gerade auf tty1 befinden, von wo aus üblicherweise der erste X-Server gestartet wird. Einzutragen ist das ganze in die ~/.bash_profile, nicht in die ~/.bashrc.

Geschrieben von Mathias

13. Mai 2011 um 22:58

Tags: ,