Konkordanzen direkt aus PDF-Dokumenten erstellen?

Während meiner Arbeit als wissenschaftliche Hilfskraft hatte ich u.a. die Aufgabe, nach Programmen zu suchen, die gegebene Texte analysieren können. Die Suche ergab zwar einige gute Programme, allerdings konnten diese keine PDF Dokumente verarbeiten und waren somit für die Analyse von wissenschaftlichen “Papers” ungeeignet, falls man vorher nicht umständlich das PDF in eine Textdatei wandeln will.

Da diese Konkordanzanalyse (siehe Wikipedia) auf einem Apple Rechner durchgeführt werden soll, bin ich momentan dabei, ein eigenes Tool zu entwickeln. Die folgenden Kernfunktionen stehen im Mittelpunkt:

  • Suche nach Stichwörtern mit anschließender Darstellung des Kontex (KWIC)
  • Grafische Darstellung der Fundstellen im Dokument (Konkordanz-Plot)
  • Erstellung einer Liste der meist verwendeten Wörter
  • Analyse von Kollokationen für bestimmte Ausdrücke
  • Intuitive Bedienbarkeit und direkte Navigation im PDF Dokument

Der folgende Screenshot zeigt den Reiter der “KWIC-Search” Funktion (Suche nach dem Wort “vpn”):

[Howto] Samba Performance unter Mac OSX erhöhen

Um eine bessere Geschwindigkeit unter OSX beim Zugriff auf Samba Shares zu bekommen bedarf es bloß einer kleinen Änderung in den Systemeinstellungen, welche sich ganz leicht im Terminal durchführen lässt. Der Wert von net.inet.tcp.delayed_ack (Verzögerung von TCP ACKs) steht standardmäßig auf 3 und kann mit folgendem Kommando auf 0 gesetzt werden:

sudo sysctl -w net.inet.tcp.delayed_ack=0

Das brachte auf meinem MacBook Pro eine Steigerung des Datendurchsatzes von mehr als 50%. Diese Änderung ist allerdings nicht persistent, und nach einem Neustart wieder auf dem Standardwert von 3. Um eine persistente Änderung vorzunehmen muss die Datei /etc/sysctl.conf editiert, bzw. erstmal erstellt werden. Erstellen kann man die Datei mittels

sudo touch /etc/sysctl.conf

Anschließend kann man sie editieren z.B. mittels

sudo vim /etc/sysctl.conf

Dort muss – analog zu oben – folgender Eintrag rein:

net.inet.tcp.delayed_ack=0

Überprüfen lässt sich der Wert nach einem Neustart mit dem Kommando

sysctl net.inet.tcp.delayed_ack
(Ausgabe sollte sein: net.inet.tcp.delayed_ack: 0)

Have fun!

Tags: ,

categories Apple, Howto

[Howto] Mit Windows 7 auf Samba-Shares zugreifen

Windows7 versucht sich gegen einen Samba Server mittels NTLM2 zu authentifizieren. Dies unterstützt beispielsweise ein Samba Server unter Ubuntu noch nicht. Aus diesem Grund muss man im Windows7 die LAN Manager Authentifizierungsparameter ändern.

Dazu sind via Start > Ausführen “secpol.msc” die lokalen Sicherheitsrichtlinien anzupassen.

Unter Lokale Richtlinien und Sicherheitsoptionen findet man den Eintrag Netzwerksicherheit: LAN Manager-Authentifizierungsebene. Durch einen Doppelclick darauf lassen sich die Einstellungen ändern in: LM-und NTLM-Antworten senden. Das wars auch schon. Nun kann man mittels “Netzlaufwerk verbinden” einen Samba-Share einhängen, z.B.: \\ubuntu-kiste\share\musik

[EDIT:] Eventuell noch unter Netzwerksicherheit: Minimale Sitzungssicherheit für NTLM-SSP-basierte Clients einen Haken setzen bei 128Bit-Verschlüsselung erfordern.

Getestet mit Samba unter Ubuntu 9.10

[TeXShop] pdfTeX (pdflatex) Warnungen ignorieren

Bei der Arbeit mit LaTeX ist man ja bekanntlich für jeden guten Hinweis dankbar. Heute gibt’s mal was für alle, die unter OSX mit TeXShop arbeiten. Da ich unter anderem auch viel Linux nutze und mir deswegen die Entwicklung mit Kile gut bekannt ist, möchte ich hier beschreiben, wie man diese lästigen Warnungen während des Compilierens des TeX Dokumentes deaktivieren, oder zumindest soweit unterdrücken kann, dass man sie nicht mit Tastendruck überspringen muss. Unter Ubuntu ist im Kile diese Option standardmäßig aktiviert, im TeXShop fehlt sie allerdings.

Damit pdflatex nur bei einem Fehler stoppt muss man lediglich dem Aufruf von pdflatex einen zusätzlichen Parameter mitgeben. Diese Einstellungen werden unter Einstellungen -> Programme -> pdfTeX vorgenommen. Im unteren der beiden Eingabefelder bei pdflatex ergänzt man einfach den Parameter “-interaction=nonstopmode”

Ab jetzt sollte das Bauen der PDF-Datei um einiges komfortabler von statten gehen ;)

Twitter-Kalender 2010 zu gewinnen!

Die Online-Druckerei (www.druckerei.de) verlost für das Jahr 2010 ein paar richtig schicke Kalender fürs Büro oder zu Hause. Als Blogger kann man sich dabei ganze 3 Exemplare sichern. Jeder Andere kann einfach einen Tweet absetzen und damit an einer Verlosung des Kalenders teilnehmen. Einfach folgendes twittern:

Ich möchte einen Twitter-Wandkalender 2010 von @druckerei_de bekommen. Zur Aktion von www.druckerei.de -> http://bit.ly/4vTob5

Ich möchte natürlich unbedingt 3 dieser Kalender haben und deswegen mach ich bei der coolen Aktion mit :)

kalender2010_twitter

[Howto] openSUSE Systemmails über bestehendes E-Mail Konto (GMX) versenden

In diesem Artikel möchte ich kurz beschreiben, wie es auf einem frisch aufgesetzten openSUSE Server (getestet mit 10.3 und aktuell mit 11.1 und 11.2) möglich ist, E-Mails über einen bestehenden E-Mail Account bei einem Provider wie GMX zu versenden. Dazu ist es nicht notwendig, dass der Server eine feste IP oder ähnliches hat. Ganz normaler DSL Zugang genügt.

servermail

Wie sind die einzelnen Schritte (Kurzform)?

  1. Einige Konfigurationsdateien editieren
  2. Die Konfigurationsdateien in eine Datenbank umwandeln
  3. Ein Skript erstellen, welches eine E-Mail versendet
  4. Skript per Cronjob ausführen lassen – Post vom Server ;)

Zuerst wird die wichtigste Datei editiert: /etc/postfix/main.cf

inet_protocols = all
biff = no
mail_spool_directory = /var/mail
canonical_maps = hash:/etc/postfix/canonical
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_alias_domains = hash:/etc/postfix/virtual
relocated_maps = hash:/etc/postfix/relocated
transport_maps = hash:/etc/postfix/transport
sender_canonical_maps = hash:/etc/postfix/sender_canonical
masquerade_exceptions = root
masquerade_classes = envelope_sender, header_sender, header_recipient
myhostname = localhost
delay_warning_time = 1h
message_strip_characters = \0
program_directory = /usr/lib/postfix
inet_interfaces = localhost
masquerade_domains =
mydestination = $myhostname
defer_transports =
mynetworks_style = subnet
disable_dns_lookups = no
mailbox_command =
mailbox_transport =
strict_8bitmime = no
disable_mime_output_conversion = no
smtpd_sender_restrictions = hash:/etc/postfix/access
smtpd_client_restrictions =
smtpd_helo_required = no
smtp_helo_name = localhost
smtpd_helo_restrictions =
strict_rfc821_envelopes = no
smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtpd_sasl_auth_enable = no
smtp_sasl_security_options = noanonymous
smtpd_use_tls = no
smtp_use_tls = no
alias_maps = hash:/etc/aliases
mailbox_size_limit = 0
message_size_limit = 10240000
inet_protocols = all
biff = no
mail_spool_directory = /var/mail
canonical_maps = hash:/etc/postfix/canonical
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_alias_domains = hash:/etc/postfix/virtual
relocated_maps = hash:/etc/postfix/relocated
transport_maps = hash:/etc/postfix/transport
sender_canonical_maps = hash:/etc/postfix/sender_canonical
masquerade_exceptions = root
masquerade_classes = envelope_sender, header_sender, header_recipient
myhostname = localhost
delay_warning_time = 1h
message_strip_characters = \0
program_directory = /usr/lib/postfix
inet_interfaces = localhost
masquerade_domains =
mydestination = $myhostname
defer_transports =
mynetworks_style = subnet
disable_dns_lookups = no
mailbox_command =
mailbox_transport =
strict_8bitmime = no
disable_mime_output_conversion = no
smtpd_sender_restrictions = hash:/etc/postfix/access
smtpd_client_restrictions =
smtpd_helo_required = no
smtp_helo_name = localhost
smtpd_helo_restrictions =
strict_rfc821_envelopes = no
smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtpd_sasl_auth_enable = no
smtp_sasl_security_options = noanonymous
smtpd_use_tls = no
smtp_use_tls = no
alias_maps = hash:/etc/aliases
mailbox_size_limit = 0
message_size_limit = 10240000

Jetzt die Datei /etc/postfix/sasl_passwd editieren:

[mail.gmx.net]:25 deine.email@gmx.de:DEIN_PASSWORT

Dann noch das Mapping der User in /etc/postfix/canonical

root deine.email@gmx.de
root@localhost deine.email@gmx.de
root@rechnername deine.email@gmx.de

Diese beiden Dateien müssen in eine DB umgewandelt werden mittels

# postmap /etc/postfix/sasl_passwd

und

# postmap /etc/postfix/canonical

Falls man logs versenden will, kann man noch die /etc/aliases anpassen um die jeweiligen Benutzer auf root zu mappen.

Das Shellskript email.sh

Mit den jetzigen Einstellungen ist es bereits möglich eine E-Mail von der Kommandozeile zu verschicken. Da das natürlich niemand machen will, hab ich hier noch ein Shellskript für euch (in email.sh umbenennen und ausführbar machen mittels chmod +x email.sh), was ich mir mal geschrieben habe. Zu dem Skript gehört noch eine Textdatei mit allen Empfängern (einer pro Zeile), die im Header des Skripts angegeben wird. (Skript muss noch auf euch angepasst werden)

Shellskript als Cronjob eintragen in /etc/crontab (z.B. jeden Tag um 10:00 Uhr)

1       10      *       *       *       root /root/email.sh > /dev/null

Das wars. Falls irgendwas nicht klappt, schreibt mich an ;)

[Howto] STRG+ALT+BACKSPACE in Ubuntu aktivieren

Manche wünschen sich die gute alte Tastenkombi zurück um den X-Server neu zu starten. Dazu einfach eine Konsole öffnen und die Datei /etc/X11/xorg.conf editieren:

$ sudo vim /etc/X11/xorg.conf

dort einfügen:

Section "ServerFlags"
Option "DontZap" "false"
EndSection

anschließend abspeichern und den XServer neu starten. (Oder einfach abmelden/anmelden)

Tipps für Leute die nicht mit vim umgehen können:
Sobald vim offen ist, einfach “i” drücken. Damit seid ihr im Editier-Modus. Dann ganz runter ans Ende der Datei scrollen und den Code einfügen. Jetzt ESC drücken um wieder aus dem Editier-Modus rauszukommen. Abschließend speichern und vim schließen mittels “:wq” (Doppelpunkt eintippen, gefolgt von wq und Enter drücken).

[Update: oder mal ALT-GR+Drucken+k probieren]

[Howto] Twitter Status in Wordpress Theme einbinden

Die meisten Blogger die ich kenne, sind auch gleichzeitig sehr aktive Twitter-Nutzer. Aus diesem Grund wäre es doch schön, wenn man seine aktuellen Tweets nicht nur in der Sidebar einblenden, sondern sie auch direkt ins Layout des Wordpress Theme integrieren könnte. Ein Beispiel wie soetwas aussehen kann, ist das momentane Theme von aptgetupdate.de.

Möglich macht dies das einfache Plugin “Twitter Sharts”, welches man mittels der Installationsfunktion direkt im Wordpress Backend installieren kann:

twitter-sharts

Nach der Installation kann man im Menü Einstellungen > Twitter Sharts noch seinen Twitter Benutzernamen einstellen (Ein Passwort wird nicht benötigt). Wichtig für die Funktion des Plugins ist die aktivierte PHP Option “PHP url_fopen” (um die XML-Datei vom Twitter Server zu laden). Meistens lassen sich solche Parameter über die Admin-Oberfläche des Webspace Providers einrichten.

Anschließend kann man durch den Aufruf von

<?php echo getTwitterStatus(DEIN_TWITTER_USERNAME); ?>

irgendwo im Theme (beispielsweise in der header.php)  den aktuellen Twitter Status einblenden.

Polizei 2.0: Unbegründete Gewalt gegen Demonstrierende

Gestern kam es bei der Demo “Freiheit statt Angst” in Berlin zu unbegründeten Übergriffen der Polizei auf friedliche Demonstranten. Der bereits bekannte Prügeltrupp “22xx” wurde dabei jedoch von anderen Teilnehmern der Demo auf einem 720p Video festgehalten.

Dieses Video gibt es auch in voller Auflösung (237 MB) auf den Servern des CCC zum Download.

Twitter mal anders!

Der Microblogging Dienst Twitter ist ja in aller Munde und das nicht zuletzt weil er eben so unkompliziert und simpel ist. Unzählige Clients existieren für alle erdenklichen Plattformen. Aber wie kann man über ein paar kleine Umwege den Twitter Dienst für seine eigenen Zwecke “missbrauchen”? Vor kurzer Zeit wurden Botnetze entdeckt, die über einen Twitter-Account kommunizierten. Weil diese Botnetze einen illegalen Hintergrund hatten wurden die Accounts natürlich umgehend stillgelegt. Man kann allerdings auch nette (legale) Sachen mit Twitter machen, vorallem wenn man Linux oder OSX benutzt.

twitter_chaos

Der Twitter Status lässt sich durch das bloße Aufrufen einer speziell generierten URL ändern. Sehr komfortabel geht das mit dem Programm curl, welches für viele Plattformen verfügbar ist. Das folgende Beispiel zeigt, wie man zum Beispiel Twitter nutzen kann, anstatt sich einen dyndns Account anzulegen. Dieses Bash Skript mittels Cronjob aufgerufen kann einmal am Tag die globale IP eines Servers twittern, der zum Beispiel hinter einem DSL Router mit dynamischer IP steht.

#!/bin/bash
#
# globale IP rausfinden
#
IP=$(wget http://checkip.dyndns.org/ -q -O - | grep -Eo '([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}')
#
# Twittern mittels CURL
#
curl -u USERNAME:PASSWORT -d status="http://$IP" http://twitter.com/statuses/update.xml

Ubuntu-Nutzer müssen ggf. noch curl installieren: sudo apt-get install curl
Ein sofortiger Test auf der Kommandozeile lässt sich zum Beispiel so durchführen:

curl -u USERNAME:PASSWORT -d status="Ich hab curl benutzt!" http://twitter.com/statuses/update.xml

Quake Live für Linux!

Endlich ist es da in der Beta Version: Das im Browser spielbare Quake Live, ein Quake 3 Arena ähnlicher Multiplayer-Shooter, läuft via Plugin. Ich habs im Firefox getestet und war mit der Leistung sehr zufrieden. Meine Konfig ist ein Q6600 mit einer GF8800 Grafikkarte. Andere Blogs berichten aber, dass das Spiel sogar auf Atom Netbooks läuft wenn man die Details ein wenig herabsetzt. Alles in allem ein guter Fortschritt für Gaming unter Linux!

quake_live

Am besten gleich mal ausprobieren unter http://www.quakelive.com/

Opera 10 schafft den ACID3 Test!

Nachdem ich grad den neuen Opera 10 beta heruntergeladen hatte um ihn mir mal etwas genauer anzuschauen, war ich sofort begeistert. Die Seite, die ich als erstes sehen wollte war natürlich der ACID3-Test. Dieser Test prüft Browser auf auf ihre Konformität zu den Standards des World Wide Web Consortiums (W3C). Und siehe da: 100%

opera10_acid3

Damit reiht sich nun neben Apples Safari auch ein OpenSource Vertreter in die Riege der W3C konformen Browser ein.

Was bringt Googles Chrome OS für die Linux Welt?

Erst vor kurzem wurde im Google Blog darüber berichtet: Nachdem der Suchmaschinenriese sich nun auch in den Browsermarkt gedrängt hat, soll ein gleichnamiges Betriebssystem folgen. “Chrome OS” – Aufbauend auf einem Linux Kernel wird laut Google ein OpenSource Betriebssystem entstehen, was vorrangig für Netbooks entwickelt wird. Damit soll die “Internettauglichkeit” existierender Systeme erhöht werden, denn laut Google stammen diese aus einer “Zeit, in der es kein Web gab”.

chrome-icon

Welche Auswirkungen könnte diese Entwicklung aber auf die Linux Community haben? Ein neues Google Projekt mit einem Pinguin im Innersten? Ich denke durch einen so großen Mitstreiter auf dem Markt der quelloffenen Betriebssysteme kann sich die Entwicklung nur zugunsten von Linux auswirken. Hardwaretreiber sollten irgendwann gleichermaßen für Linux, wie auch für andere Systeme angeboten werden. NVIDIA machts vor, zugegeben mit proprietären Teibern, aber wenigstens laufen diese problemlos. Ich hoffe, dass die Linux Community stark von dem Know-How der Google Entwickler profitiert und auch die letzten unzufriedenen Microsoft Nutzer endlich bei dem Betriebssystem ihrer Wahl landen, ganz egal welches es sein wird…

Tags: ,

categories Linux

Schwanzvergleich: Wie lang ist der Penis eures Rechners?

Es ist ja allseits bekannt, dass sich vorallem Männer gerne an materiellen Dingen messen. Frauen sind aber trotzdem nicht aus diesem großen Schwanzvergleich ausgeschlossen. Das folgende Kommandozeilenskript für Linux, berechnet aus diversen Merkmalen des Rechners (CPU, RAM, Festplatten) eine virtuelle Schwanzlänge in cm und gibt diese aus. Logischerweise, je länger desto besser:

penisskript

Wie siehts aus meine Herren?

Download: penis.sh

Kostenlose Klingeltöne fürs iPhone zum downloaden

Ok, da mich in letzter Zeit viele Leute angesprochen haben (mein Gott, auf einmal hat JEDER ein iPhone), wo man Klingeltöne fürs iPhone bekommt, möchte ich mal auf die Website audiko.net verweisen. Ich selbst bin auch erst durch einen Artikel vom Tom darauf gestoßen. Auf dieser Seite kann man nach allem Möglichen suchen und findet auch wirklich viele Ringtones, die man dann direkt im m4r-Format downloaden kann.

audiko

Danach einfach im iTunes hinzufügen und mit dem iPhone synchronisieren. Fertig.

Linux ist sexy! -- by Pinguinblog.de