Leben++

It's never too late to get a life!

Using grep on files with no newlines

I had a big, automatically-generated HTML file without newlines and wanted to see all occurences of a certain image name. Using grep my_image.png just outputs the whole file - not useful! While writing the question to the unix section of StackExchange, I found a way to do it with grep:

 grep -oE ".{30}my_image.{30}"

This command yielded the desired result: Each occurence on a spearate line, with 30 characters before and after.

Zend_Form zweispaltig mit CSS formatieren

In der Standardeinstellung verpackt Zend_Form Eingabefelder und ihre Beschriftungen in einer HTML-Definitionsliste. Ob das nun semantisch ist oder nicht, darüber kann man sich so trefflich streiten wie darüber, was der bessere Editor oder das bessere Betriebssystem ist. Viel interessanter ist die Frage, wie man die DT und DD Elemente so mit CSS formatiert, dass dabei ein zweispaltiges Formular herauskommt.

Setting defaults on Zend_Form from an object

The setDefaults method from Zend_Form expects an array, but sometimes you have an object with getter and setter methods you want to use as default. In this case, you can use a PHP ReflectionObject to extend Zend_Form like this:

Wie ich meiner Mutter Framework-Programmierung erklärt habe

Zur Zeit setze ich ein neues Projekt mit Ruby on Rails um. Ich bin etwas aus der Übung und verbringe viel Zeit mit googeln. Als ich diesen Umstand meiner Mutter gegenüber erwähnte, hörte ich ein verständisloses "Aber ich dachte, Du kannst programmieren?" Da war es Zeit für eine Analogie aus dem Bauwesen:

Better usability when switching between detail and list views

You can enhance the usability of your web page or application when redirecting from a detail view back to a list view by scrolling the list to the entry that was just edited. This is done with a fragment identifier in the URL, also called "anchor" and a matching id in each of the entries in the list.

jEdit Syntax highlighting for Asterisk AEL files

These days I'm doing some Asterisk work, creating AEL dial plan scripts for call center agents: Logging in and out, checking if the hotlines are staffed before allowing a pause, logging agent events to a separate logfile. For the scripts I'm using my favourite cross-platform editor jEdit. At the moment, jEdit has no syntax highlighting for AEL files, so I put one together myself. For a while, the file was hosted on snippets.dzone.com but since I improved on it, I'd rather host it on GitHub for easier download and modification.

Pádraic Brady kündigt neue HTML-Filter-Bibliothek für PHP 5.3 an.

Was tun, wenn der Kunde auf einen WYSIWYG Editor für die Benutzereingaben besteht? Der leidgeprüfte Webentwickler denkt hier sofort an das, was nicht nur für Fox Mulder gilt: "Vertraue niemandem!" Von Benutzern eingegebenes HTML zerschießt das schöne Layout oder enthält sogar <script>-Tags und präparierte Bilder, die Malware auf dem Rechner des nichtsahneden Besuchers installieren. Also greift er zu strip_tags und ein paar regulären Ausdrücken und das Unheil nimmt seinen Lauf. Denn strip_tags und reguläre Ausdrücke können einfach nicht die gesamte Bandbreite an Boshaftigkeit des Internet filtern.

Visually debugging XSL-FO stylesheets

When developing XSL-FO stylesheets sooner or later you will see something that doesn't look as intended: It has the wrong margin, padding, line height, floats in the wrong place, etc. If you have no visual debugging tool, the quickest way to check for errors is setting a border or background attribute on the element in question.

Export your database schema for a PHPUnit database test case

The PHPUnit database test case allows to create before- and after-states of your database in XML or CSV files. Writing those files can be tedious if you need to describe your complete database schema from scratch and its not a very DRY approach. Fortunately the PHPUnit classes for XML files have methods to persist the database schema. I have written a small shell script for generating the PHPUnit XML schema files from an existing database.

Der obligatorische erste Eintrag

Und wieder hat das Web ein Blog mehr. Doch dieses Blog wird die RSS-Reader dieser Welt nicht mit Content zuballern, sondern nur sporadisch den einen oder anderen Artikel über Programmierthemen veröffentlichen.

Das Blog startet so minimalistisch wie möglich. Eine Suche und Kategorienübersicht lohnen sich erst, wenn es mehr Inhalte gibt. Wer Features vermisst, der darf in die Kommentare schreiben.

Viel Spaß!

Inhalt abgleichen