Posts tagged with 'Text'

Sandman Chronicles #65

  • Posted on April 25, 2014 at 10:16 am

Came across my copy of The Sandman Chronicles by Neil Gaiman . Browsed a bit. If you never read it, you really should. Found a quote from #65. It is from Rose Walker.

Have you ever been in love? Horrible, isn’t it? It makes you so vulnerable. It opens your chest and it opens up your heart and it means that someone can get inside you and mess you up. You build up all these defenses. You build up this whole armor, for years, so nothing can hurt you, then one stupid person, no different from any other stupid person, wanders into your stupid life… You give them a piece of you. They don’t ask for it. They do something dumb one day like kiss you, or smile at you, and then your life isn’t your own anymore. Love takes hostages. It gets inside you. It eats you out and leaves you crying in the darkness, so a simple phrase like “maybe we should just be friends” or “how very perceptive” turns into a glass splinter working its way into your heart. It hurts. Not just in the imagination. Not just in the mind. It’s a soul-hurt, a body-hurt, a real gets-inside-you-and-rips-you-apart pain. Nothing should be able to do that. Especially not love. I hate love.

  • Comments are off for Sandman Chronicles #65
  • Filed under

About these Junk E-Mails

  • Posted on March 4, 2013 at 4:12 pm

Please refrain from sending me e-mails that have only HTML content. I prefer to read your message, and if you are incapable of expressing yourself in text, then I really don’t care what you have to say. HTML-only e-mails will be deleted without notice. Have a nice day!

  • Comments are off for About these Junk E-Mails
  • Filed under

Characters

  • Posted on July 13, 2012 at 8:50 pm

I use LaTeX for over 20 years now. I have no need for crappy office software. I skipped Microsoft Office, Word Perfect, Open Office and everything similar. However everything has its limits. I am trying to write a document that requires a couple of exotic language fragments (actually it’s only a collection of examples for homograph attacks). So the main text is German, then there’s some Arabic, Hebrew, Chinese, Japanese, Hindi and possibly Korean. This means using Unicode text, which is no problem. Up until now I used LaTeX and the beamer class template. Due to better Unicode handling I switched to XeLaTeX, which required to rearrange my \usepackage statements. German, Arabic and Hebrew co-exist now. Now I am trying to get Chinese text displayed correctly. When using LaTeX I did this by means of the CJK package (but only with a Japanese word). Worked fine. Now I am using xeCJK which is basically the same, and I’m getting blanks instead of Chinese characters. I am half-way through the fonts on my system, still trying to find a nice combination.

It’s probably easier to include homograph attacks in Tengwar. Illustrating the ancient spear phishing attacks  of Middle Earth, now there’s an interesting topic.

In Your Own Words!

  • Posted on July 10, 2012 at 5:16 pm

A lot of people, including me, are fond of quoting song lyrics, TV shows, films, books, graphic novels, pieces of poetry and the random rambling of celebrities and their counterparts. Search engines, fortune cookie databases and online collections facilitate to maintain your own personal library of words and phrases you are fond of. There’s nothing wrong with this – until you use someone else’s words to express yourself. That’s when things go wrong.

If you use a quote you will most probably miss the context. „Yippee-ki-yay, motherfucker.“ was used by John McClane fighting his way out of a building captured by criminals. If you use it on Twitter, as your ring tone or in an e-mail, the context is definitely different (and arguably wrong). Song lyrics are worse. Take the song „The Riddle“ by Nik Kershaw for example. I liked the song back when it was in the charts. I instantly loved the lyrics. The trouble is that they weren’t supposed to make any sense. In this case you cannot even hope to get the context right, because there is no correct situation. Of course, you can always find phrases that match a certain situation and describe it well. This belief is widespread in religious circles where quotations of the Bible, the Qur’an and other writings, holy or otherwise, run rampant. Too bad „Personal Jesus“ by Depeche Mode isn’t about religious at all. No cookie for you.

 There’s really nothing wrong with borrowing someone else’s words. Just make sure you use your own when expressing important things. And in case you read someone using quotations, be careful. It’s either out of context, right on topic, smoke and mirrors, or something completely different.

Acer Lumiread E-Book-Reader

  • Posted on December 30, 2010 at 2:04 pm

Die letzte Weihnachtspost ist gestern endlich aus dem vereisten Deutschland angekommen. Ich habe mir den Acer Lumiread E-Book-Reader bestellt, den mir der hiesige österreichische Buchhandel übrigens nicht verkaufen wollte (ja, wieso sollte man auch Kunden etwas verkaufen wollen, bringt ja doch nur Geld ein). Bisher bin ich sehr begeistert von dem Gerät. Das Display hat elektronische Tinte, an deren Darstellungsschärfe man sich schneiden kann. Ja, man benötigt daher Licht zum Lesen, aber das war schon immer so. Von Haus aus kommt der Reader mit 1 GB Speicher mit, was für meine Zwecke im Moment völlig ausreicht. Man kann eine Micro-SD Karte nachrüsten, wenn es nicht mehr genug ist. Im Gegensatz zu Apples NaziPad läßt sich der Lumiread als USB-Speicher ansprechen und per beliebigem Dateimanager laden und entladen. Man darf das Gerät daher auch mit GNU/Linux betreiben (der Lumiread wird übrigens auch mit GNU/Linux betrieben).

Das Gerät ist WLAN-fähig. WEP, WPA und WPA2 funktionieren tadellos. WPA Enterprise wird auf den ersten Blick nicht unterstützt. Man kann damit im Internet e-Books einkaufen oder auch nur selbst nach Inhalten schauen. Mit an Bord ist ein Opera Browser, der alles darstellt, was man so üblicherweise im Web findet. Es gibt sogar eine intelligent download Funktion, mit der man Webseiten und Dokumente für späteres Lesen abspeichern kann. Das halte ich für sehr sinnvoll. Unterstützt werden übrigens die Dateiformate (nach Endung) ePub, PDF, MOBI, CHM, HTML, TXT, DOC, DOCX, RTF, JPG, PNG, BMP, GIF, TIFF, MP3, AAC und WMA. Man kann also auch Audiodateien anhören (dafür gibt es einen Kopfhörerstecker).

Die typischen DIN A4 formatierten PDF Dateien lassen sich nicht gut lesen, weil die Zoomstufen nicht immer die ganze Seite erfassen. Das ist übrigens genau der Grund, warum ich gerne einen A4 Reader hätte, den aber niemand baut. Wäre ja auch zu praktisch. Formate mit Fließtext sind besser geeignet. Ansonsten bin ich sehr zufrieden mit dem Reader.

  • Comments are off for Acer Lumiread E-Book-Reader
  • Filed under

Text Decoding – Progressing

  • Posted on June 13, 2010 at 9:27 pm

The new document class takes form. I now have a prototype that can extract meta information from the filesystem (not that hard), detect/guess the encoding in case of pure text files (with the help of the ICU library), strip markup language (by replacing all tags) and detect/convert PDF documents (with the help of the PoDoFo PDF library). Converting HTML to text is a bit of a hack in C++. Maybe it is easier to use XSLT and let a XML library do the transformation as a whole. In theory HTML was built for this. However I still need to strip the tags of unknown XML documents in case someone wants to index XML stuff.

I forgot to extract the meta information from the HTML header. RegEx++; Dublin Core or non-standard tags, that is the question.

  • Comments are off for Text Decoding - Progressing
  • Filed under

Schneemann gefunden!

  • Posted on June 3, 2010 at 7:01 pm

Ich habe schon seit über 5 Jahren alle meine Workstations und Server per Default auf UTF-8 konfiguriert. Meine kompletten Desktops verwenden UTF-8 in der Ein- und Ausgabe. Trotzdem habe ich bis heute den Schneemann verpaßt:


lynx@nightfall:~/ unicode ☃
U+2603 SNOWMAN
UTF-8: e2 98 83 UTF-16BE: 2603 Decimal: ☃

Category: So (Symbol, Other)
Bidi: ON (Other Neutrals)
lynx@nightfall:~/$

Klar sind es zuviele Zeichen, um alle zu kennen, aber jetzt steht Herden von Schneemännern nichts mehr im Weg. ☺

Texthaufen, Code und Regen

  • Posted on May 30, 2010 at 3:40 pm

Der Mai verging schneller als geplant. Ich habe daher nicht so viel vom Regen mitbekommen wie andere. Abgesehen davon war das der angenehmste Mai seit langem. Wer die Kühle der hessischen Wälder kennt, der wird vom Wüstenklima in Wien sehr unangenehm überrascht. Ich ziehe satte 17°C allem über 25°C jederzeit vor. Leider stehen für nächste Woche 30°C an…

Der Code zum Indizieren von Texthaufen ist gewachsen und wurde mit Korpi von 60000+ Dokumenten getestet. Die Erkenntnisse haben zur Beseitigung einiger Bugs geführt. Alle, die bisher dachten, daß der Unrat auf Dateiservern aus wohldefinierten und zugänglichen Dokumenten besteht, sollten diese Einstellung dringend hinterfragen. Dateiformate wie PDF, ODT, ODP oder ODS sind sehr gut zugänglich und meisten auch in eine indizierbare Form wandelbar. Dicht gefolgt ist dann XLS und PostScript®. Bei DOC kann es schon passieren, daß es statt DOC ein Text in RTF ist, aber die Dateierweiterung das nicht anzeigt. Dann gibt es noch DOC Dateien, die per Cut & Paste mit Text in einer seltsamen Kodierung gefüllt wurden. Es resultiert nach Normalisierung ein Text, der sich nicht in UTF-8 konvertieren läßt. Überhaupt ist die Kodierung ein großes Problem, da TXT und HTM(L) Dateien die verwendete Kodierung selten bis nie angeben. Genau aus diesem Grund haben Webbrowser Code an Bord, der Kodierungen errät.

Dateiformate sind das nächste Problem. Der Indexer wandelt alle interessanten Dokumente in reinen Text, da nur dieser indiziert wird. Es gibt nicht für alle Formate kommandozeilenbasierte Konverter. OOXML fällt mir spontan ein, dicht gefolgt von proprietären e-Book-Formaten. Solche Formate fallen derzeit durch den Rost.

Hört ihr Leut’ und laßt euch sagen, Textformate lassen mich verzagen. Bisher sind PDF, PostScript® und die OpenOffice Formate meine Favoriten.

Textabenteuer

  • Posted on May 18, 2010 at 1:31 pm

Der Mai ist dichter gepackt als ich dachte. Vorletzte Woche habe ich bei den Wiener Linuxwochen im Alten Rathaus verbracht. GNU/Linux gepaart mit barocker Architektur sieht man nicht alle Tage. Aus Denkmalschutzgründen gab es daher nur ein Funknetzwerk. Jetzt widme ich mich wieder anderen Problemen und viel Text – in Form von Code und eigentlichem Text. Ich teste CLucene und den PostgreSQL Textindizierer an Dokumenten aus dem „echten” Leben. Die Fragen, die sich dabei aufwerfen, sind schwieriger zu beantworten als es die Dokumentation erahnen läßt.

Zuerst muß man mal auf den eigentlich Text kommen. Es gibt einen Haufen von Dokumentformaten – .doc, .pdf, .odt, .html, .xml, .rtf, .odp, .xls, .txt, .ps, … . Diese muß man zuerst normalisieren bevor man sie indizieren kann. Man benötigt den puren Text, die einzelnen Worte, und sonst nichts. Obendrein sollte die Kodierung der Zeichen einheitlich sein. Es bietet sich UTF-8 an, also muß man ausreichend Konverter haben. Da einige der Dokumentenformate proprietär oder einfach nur schlecht entworfen sind, ist das keine triviale Aufgabe. Ich habe genug Konverter gefunden, aber einige sind besser als andere. Die Tests an den Dokumentensammlungen werden zeigen wie gut sie wirklich sind.

Dann kommt die Sprache. Das Indizieren von Text reduziert die darin vorkommenden Worte auf ihre Stammform und entfernt Stopworte. Beides hängt von der Sprache des Dokuments ab. Nun wird die Sprache leider nicht in allen Formaten als Metainformation mitgegeben. Man muß sie also ermitteln. Dazu kann man sich der Publikation N-Gram-Based Text Categorization bedienen bzw. eine ihrer Implementationen bemühen. Was passiert mit Texten gemischter Sprache?

Die Liste ist lang. Der Code ist C++, und mir fehlt eine schöne, erweiterbare Klasse, die Dokumente einliest, sie in UTF-8 und puren Text normalisiert sowie einige Metainformationen ausliest. Bisher habe ich nichts gefunden, was ich verwenden möchte. Ich werde es selbst mal versuchen. HTML und XML kann ich schon normalisieren. Für PDF empfehle ich die exzellente PoDoFo Bibliothek (die Spenden von mir bekommen wird). Für den Rest suche ich noch.

Apropos Worte: Kennt wer die Sprache Yup’ik? Sie wird von sehr wenigen Inuit in Alaska und dergleichen gesprochen. Dort gibt es Worte, die andere Sprachen in Sätze fassen würden. Beispielsweise heißt Kaipiallrulliniuk soviel wie: „The two of them were apparently really hungry.” Faszinierend.

Seriously Debugging the Text Indexer Code

  • Posted on February 28, 2010 at 4:55 pm

After feeling like wading in honey during the past weeks I finally get around to squash some bugs in my text indexer code. The first one was the obligatory use of a null pointer in rare cases. I know, this should never happen. Found it, squashed it. Won’t happen again (I am pretty confident about this).

The next problem was a wrong string comparison when dealing with file extensions. Ignoring the “.” leads to match of “ps” and “props”. The latter is no PostScript® file and cannot be indexed (well, it can be, but it shouldn’t). “.” are from now on never ignored.

The test data consists of 3755 files. After filtering 648 documents remain (file extensions .doc, .htm, .html, .odp, .ods, .odt, .ps, .pdf, .php, .rtf, .txt, .xml, .xls). The results are indexed by means of the PostgreSQL text index function. The resulting database has a table size of 488 kiB (23 MiB documents, 19 MiB text index). Indexing works fairly well so far. The database should be more than sufficient for testing the front end. I’ll probably have a go at the content of the two Cryptome.org DVDs I ordered a couple of weeks ago. Both DVDs contain 42914 files in 1106 directories. The total size is over 8 GiB. Maybe I publish the front end URL to the indexed Cryptome data. Let’s see.

  • Comments are off for Seriously Debugging the Text Indexer Code
  • Filed under

Who are you?

  • Posted on December 19, 2009 at 12:19 pm

Do you know the most difficult question in the Universe? Well, have you ever ask someone who she or he is? I do not speak about the superficial information like name, appearance or accents. Who are you as a being? What is driving you? What is your set of rules you go by? What do you like, what do not like, what’s important to you? What’s your point of view and why? How did your experiences shape your opinions? What does it take to piss you off? Where are your limits? Do you believe in tea pots or gods?

A being is mightily complex. Any simple answer to the question „Who are you?” is a lie at worst or the start of a very, very long story at best. There is no easy way of getting to know someone. It takes months, years and often a whole lifetime. And you need more than words. You also need deeds and observation and patience. Not everyone speaks through the mouth. Some express themselves in countless of other ways. That means that the question can even be answered by not talking at all, too.

I was wrong. „Who are you?” is a lot easier to answer than „Who were you?”. If you cannot ask anymore, then it gets really hard. Archaeology and forensics can never replace the language of the living. So you use it while you can.

Fiction Design – Autoren aufgepaßt!

  • Posted on August 21, 2009 at 12:17 pm

Design steckt in sehr vielen Kreationen. Die meisten Lebewesen denken beim Erschaffen. Die Natur braucht das nicht, sie läßt denken. Programmierer denken oft erst nach der Beta Release. Autoren (und -innen klarerweise) stehen bei dieser Verzögerung den Codern in nichts nach. George Lucas illustriert das in Stars Wars sehr schön. Ich gehe mal einige Punkte durch, die John Scalzi aufgefallen sind.

  • R2-D2 piepst schön. Das gibt dem Charakter eine Besonderheit. Allerdings dürften Sprachchips eigentlich nicht sehr teuer sein. Sie sollten jedenfalls weniger kosten als Jump Jets, Periskop, Taser und Ölkanone.
  • Hat schon mal wer gefochten? Hat das jemand mal mit Besenstielen oder Stöcken gemacht? Hat sich jemand dabei mal die Hand verletzt? Die meisten Schwerter haben deswegen einen Handschutz. Die eigene Klinge an der des Gegners bis zur Griffhand entlangleiten zu lassen ist nämlich recht leicht. Es sollte bei Lichtsäbeln noch viel einfacher sein.
  • Im Star Wars Rollenspiel gibt es Blasterscharfschützengewehre. Die haben den Vorteil, daß man den Blasterschuß laut und deutlich hört, noch dazu sieht man ihn hell leuchten. Da er so langsam ist, kann man obendrein die Position des Schützen ohne Brille sehr leicht bestimmten. Praktisch. Wieso will man noch gleich Blaster einsetzen, wenn die Ziele ohnehin keine Rüstung tragen (oder eine, die man leicht durchschlägt)?
  • Todesstern – spricht für sich. Das ist Pfusch am Bau pur. Merke: Beim Bau des dritten Todessterns unbedingt die Bauaufsicht kontaktieren.
  • Schon mal eine Herde Sarlaacs gesehen, die den Futtertieren nachziehen? Schwierig.

Etwas Design könnte manchen Geschichten nicht schaden. Ich lesen gerade The Eyre Affair von Jasper Fforde. Sehr schöne Geschichte, mit sehr gut durchdachter alternativer Geschichtsentwicklung (150+ Jahre Krimkrieg, geglückte Operation Seelöwe, Zeppeline, etc.). Wäre Acheron Hades Imperator geworden, dann hätte die Rebellenallianz nicht den Hauch einer Chance gehabt – es sei denn sie hätten rechtzeitig eine Princess Thursday Next gefunden.

The Joy of Automatic Publishing

  • Posted on July 3, 2009 at 11:09 am

A lot of web sites and news channels run through automatic publishing tools that tweak the content or the layout, insert advertising and do all kinds of stuff. I am a regular The Register® reader and enjoy their RSS feed during lunch breaks. Now look at this:

‘Good news for net users A federal judge on Thursday tentatively overturned convictions against a mother accused of using MySpace to bully a 13-year-old girl who went on to hang herself to death.…The power of collaboration within unified communications ‘

The last sentence after the “…” was inserted as advertising. The original article has a link there. It seems the power of collaboration within unified communications is capable of creating a lot of problems – provided you remove the tiny little dots in between. Couple this with the fact that most modern readers are unable to break the mental Twitter barrier of 140 characters when reading text. Communication 2.0 is really asking for trouble.

Top