<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Euge.de &#8211; make with the reading &#187; perl</title>
	<atom:link href="http://www.euge.de/tag/perl/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.euge.de</link>
	<description>A blog about art, artists and other unimportant stuff, yet made for enjoying.</description>
	<lastBuildDate>Mon, 07 Feb 2011 01:44:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Coiffeur 2 &#8212; Making you even prettier&#160;now</title>
		<link>http://www.euge.de/2009/08/coiffeur-2-making-you-even-prettier-now/</link>
		<comments>http://www.euge.de/2009/08/coiffeur-2-making-you-even-prettier-now/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 21:49:35 +0000</pubDate>
		<dc:creator>Eugê</dc:creator>
				<category><![CDATA[Interaktion]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Studium]]></category>
		<category><![CDATA[Typografie]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[fonts]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[visualization]]></category>
		<category><![CDATA[web2.0]]></category>

		<guid isPermaLink="false">http://www.euge.de/?p=553</guid>
		<description><![CDATA[Ich habe Coiffeur erweitert, ein computerlinguistisches Tool, um Texte zu analysieren. Das Originalprogramm konnte bestimmen, wie oft im Text welches Wort vorkommt. Daraus hat es dann den Type-Token-Quotienten errechnet. Klingt erstmal nicht besonders beeindruckend. Aber das coole an dem Programm ist, dass es mit English sehr gut zurecht kommt. Dort gibt es Konstrukte wie I&#8217;m [...]]]></description>
			<content:encoded><![CDATA[<p>
Ich habe <em>Coiffeur</em> erweitert, ein computerlinguistisches Tool, um Texte zu analysieren. Das Originalprogramm konnte bestimmen, wie oft im Text welches Wort vorkommt. Daraus hat es dann den Type-Token-Quotienten errechnet. Klingt erstmal nicht besonders beeindruckend. Aber das coole an dem Programm ist, dass es mit English sehr gut zurecht kommt. Dort gibt es Konstrukte wie <em>I&#8217;m</em> f&#252;r <em>I am</em>. Und <em>Coiffeur </em>hat das richtig gez&#228;hlt, das Wort wird wie 2 Worte behandelt und f&#252;r jedes Teilwort werden entsprechend die Z&#228;hler erh&#246;ht. Dabei wird die Kontraktion <em>&#8216;m</em> aufge&#246;lst und der Wert f&#252;r <em>am</em> erh&#246;ht.
</p>

<p>
Das neue Programm kann alles, was <em>Coiffeur</em> schon konnte. Und nat&#252;rlich kann es noch viel mehr.
Extra f&#252;r Gedichte und andere kurze Texte kann der Benutzer einfache Wortlisten erstellen, wie <em>Nomen (Haus, Frau, Mann)</em>. Diese werden dann auf den Text angewendet, so bekommt jedes Vorkommen von <em>Haus, Frau</em> oder <em>Mann</em> die Klasse <em>Nomen</em> in der Ausgabe, etwa so:
</p>


<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Nomen&quot;</span>&gt;</span>Haus<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span></pre></div></div>




<h3>Erfolge</h3>

<p>
<a href="http://www.euge.de/todesfuge/">Das Ergebnis</a> kann sich durchaus sehen lassen. Ich habe die <em>Todesfuge</em> von Paul Celan analysiert, ein Gedicht, das mir sehr gef&#228;llt und sich gut f&#252;r eine vielschichtige visuelle Pr&#228;sentation eignet. In der Pr&#228;sentation kann man viel machen, es l&#228;uft alles rund, sieht sch&#246;n bunt aus und bietet viele Infos.
</p>

<p>
Ich habe einige neue CSS-Schmankerl ausprobiert. Die wichtigste ist sicherlich die Einbindung von Fonts auf der Webseite mit der @font-face-Regel. Da konnte ich <q><a href="http://www.typeoff.de/?p=617">Axel</a></q> testen, eine eng laufende Schrift und nicht allt&#228;gliche Schrift, bei der der Einsatz f&#252;r Webseiten ausdr&#252;cklich erlaubt ist. Dadurch, dass sie eng l&#228;uft, konnte ich die Schriftgr&#246;&#223;e f&#252;r gute Lesbarkeit relativ gro&#223; einstellen.
</p>

<p>
Wenn das Browserfenster zu klein ist, gibt es Zeilenumbr&#252;che, die ein Gedicht schnell durcheinander bringen k&#246;nnen. Dann wei&#223; man nicht, ob eine neue Zeile beginnt oder die letzte wegen der Breite umgebrochen wurde. Ich habe das Problem dadurch gel&#246;st, dass jede Zeile einen negativen Einzug hat, so steht der Text nach einem Umbruch automatisch weiter rechts als die echten Zeilenanf&#228;nge.
</p>

<p>
In modernen Browsern taucht das Problem der fehlerhaften Zeilenzuordnung m&#246;glicherweise gar nicht auf, die Zeilen werden durch CSS Counter automatisch nummeriert. Diese habe ich auf <a href="http://www.javascriptkit.com/dhtmltutors/cssgenerate5.shtml">JavaScript Kit</a> kennengelernt. Allerdings unterst&#252;tzen nicht alle Browser CSS Counter, deshalb ist der Zeileneinzug trotzdem praktisch (siehe Abbildung).
</p>


<img src="http://www.euge.de/blog/wp-content/uploads/zeilenumbruch.png" alt="Zeilenumbr&#252;che" title="Zeilenumbr&#252;che" width="424" height="212" class="aligncenter size-full" />

<h3>Probleme</h3>

<p>
Probleme gab es mit CSS, ich habe zuerst das Layout nur mit Firefox getestet, es lief nat&#252;rlich alles gut. Dann hab ich das im Internet Explorer (7) ge&#246;ffnet und &hellip; <br />
Sah schon anders aus. Also gut, alles reparieren, damit auch IE alles sauber zeigt. Klappt. Nur noch einmal kurz im Firefox checken &hellip;
</p>

<p>
So ging es dann eine Zeit lang hin und her, bis ich ein Design hatte, was in beiden Browsern zumindest keine Probleme macht. Und das ist jetzt leider eine Minimall&#246;sung geworden. Es sollte m&#246;glich sein, dass sich die beiden Styleauswahl-Leisten nebeneinander anordnen, aber irgendein Browser hat dann immer irgendwas bl&#246;des gemacht. Und durch dieses Hickhack ist die Stylesheet-Datei recht unordentlich geworden, die k&#246;nnte man noch aufr&#228;umen.<br />
Ich war aber irgendwann einfach zufrieden, dass es zumindest so angezeigt wird und wollte es mein Gl&#252;ck nicht mehr herausfordern.
</p>


<p>
Auch mit dem Programm gab es Probleme. <em>Coiffeur</em> hatte ich ohne Funktionen geschrieben (die kannte ich damals noch nicht f&#252;r Perl), es bestand alles aus vielen ineinander verschachtelten Schleifen, was sehr un&#252;bersichtlich ist, wenn man nach einem Jahr sich wieder dran setzt. Die wichtigsten Funktionen sind jetzt auch als Funktionen umgesetzt, so konnte ich nach und nach immer besser arbeiten.
</p>

<p>
Es gab dann teilweise noch Probleme, die ich mir nicht erkl&#228;ren konnte, nachdem ich den Quelltext zig-mal durchgesehen habe. Das war schon zum Schluss des Projekts, wo ich noch Englische Texte mit Kontraktionen getestet habe. Im Originalprogramm hat noch alles funktioniert und klappte jetzt nicht mehr, obwohl ich eigentlich nur die Ausgabe ver&#228;ndert habe und nicht das Z&#228;hlen von Types oder Tokens.
</p>

<p>
Es lag wohl daran, dass ich die Dateien in Windows editiert habe und sie dann in einer virtuellen Linux-Maschine laufen lie&#223;. Und weil beide Systeme Zeilenumbr&#252;che anders kodieren, gab es bei Kontraktionen und anderen ausgew&#228;hlten W&#246;rtern Leerzeichen am Ende des Wortes. Damit konnten sie nicht richtig gez&#228;hlt werden, &#8220;<em>&#8216;m</em>&#8221; ist nicht das gleiche wie &#8220;<em>&#8216;m&nbsp;</em>&#8221; (mit Leerzeichen).<br />
Lektion gelernt &mdash; ab jetzt wird jeder Input erstmal gereinigt.
</p>

<h3>Ergebnis</h3>

<p>
Trotz allem bin ich sehr zufrieden, die Seite sieht gut aus und funktioniert genauso, wie ich es haben wollte.
Auch das neue <em>Coiffeur 2</em> hat alle Features, die ich einbauen wollte, es kamen im Verlauf der Entwicklung noch einige praktische Funktionen hinzu, wie z.B. dass man in den Wortlisten auch mehrere W&#246;rter angeben kann, z.B. die Metapher <em>spielt mit den Schlangen</em>. W&#252;rde man die Worte daf&#252;r einzeln eintragen, g&#228;be es viele <q>False Positives</q>, da die einzelnen Worte in anderen Kontexten auftauchen. So ist es viel komfortabler und einfacher f&#252;r den Benutzer (war aber nicht ganz trivial f&#252;r den Programmierer).
</p>


<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">Metapher1 (schwarze milch der frühe)
Metapher2 (spielt mit den schlangen)
Metapher3 (Grab in den Lüften, Grab in der Luft, Grab in den Wolken)</pre></div></div>




<p>
Deshalb: <a href="http://www.euge.de/todesfuge/">guck es dir an</a>, <a href="http://shorty.euge.de/program/coiffeur2/">teste das Programm</a>, <a href="http://shorty.euge.de/coiffeur2/termpaper/">lies den Text der Arbeit</a> und <a href="http://www.euge.de/2009/08/coiffeur-2-making-you-even-prettier-now/#respond">kommentiere hier</a>!
</p>]]></content:encoded>
			<wfw:commentRss>http://www.euge.de/2009/08/coiffeur-2-making-you-even-prettier-now/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

