Parsing timestamps from Apache log files in Python

Timestamps in Apache access log files have, by default, the format

27/Oct/2013:06:33:40 +0100

This can not be parsed in Python using the strptime() function from the time/datetime modules because there is no %z placeholder in strptime() to match the timezone (only %Z). Also, using the parse() function from dateutil.parser does not work, because it fails to recognize the format and it is non-trivial to give a simple format string.

After looking for the "best" solution now for quite a while, here is probably the most elegant way to do it:

>>> from dateutil.parser ...

Read on


Welches Ziel hat Angela Merkel in der NSA-Affäre?

Seit Juni wird Deutschland von den Enthüllungen Edward Snowdens umgetrieben. Die deutsche Bundeskanzlerin hat sich dazu in den ersten Monaten fast gar nicht geäußert und ihre Minister vorgeschickt, die Affäre kleinzureden, zu beschwichtigen und sich von einem amerikanischen Geheimdienst, der das eigene Parlament belügt, mündlich und schriftlich versichern zu lassen, dass es gar keinen Grundrechtsbruch gibt.

Was soll sie auch anderes tun?

  • Über die Spionage unserer eigenen Geheimdienste weiß ich wenig, aber irgendetwas wird ein Bundesnachrichtendienst, der diesen Namen verdient, im Ausland wohl auch tun. Um da nicht von den amerikanischen Partnern zurecht der Heuchelei bezichtigt zu werden, sollte man ...

Read on


Kundenservice bei Fonic

Gerade bin ich für einige Monate in Japan, aber die Servicewüste Deutschland verfolgt mich bis hierher. Eigentlich wollte ich nur gelegentlich mit meinem deutschen Handy, das ich mit einer Fonic-SIM-Karte benutze, SMS in Japan empfangen – das hat auch einen guten Monat lang geklappt. Danach habe ich allerdings von einen Tag auf den anderen keinen Netzzugang mehr bekommen.

Die Kommunikation mit Fonic über diesen sehr einfachen Sachverhalt zieht sich inzwischen über mehr als zwei Monate hin und ist prototypisch dafür, wie man als Kunde mit Standardfloskeln, die nichts mit dem Problem zu tun haben, abgespeist wird und wie wenig sich das ...

Read on


Prism und Tempora – „Neuland“?

Durch Deutschland geht gerade ein Sturm der Empörung über unsere angelsächsischen Verbündeten, vornehmlich wegen Prism und Tempora. Ein paar Anmerkungen dazu:

  • Falls Tempora tatsächlich das gesamte Internet abfangen und speichern sollte, ist das die Voraussetzung, von der man beim Design sämtlicher sicherer Internetprotokolle ausgeht und ausgehen muss. Beispielsweise hat der (exakte) Suchbegrif „insecure networks such as the internet“ schon 297.000 Ergebnisse.

    Protokolle wie SSL (bekannt von Online-Banking, Facebook, Twitter, Google und eigentlich allen seriösen Webseiten mit User-Login) sind so entworfen, dass jemand, der den kompletten Netzwerkverkehr mitlesen und sogar manipulieren kann, den Klartext nicht abhören kann. Insofern sollte – unter ...

Read on


The Wave Dash in Japanese Punctuation

While trying to copy a printed vocabulary list into LibreOffice, I stumbled over a rather wide tilde character that was used as a placeholder as in

~を楽しむ

which means “to enjoy something” (namely, the thing represented by the tilde). Now I had quite a hard time typing “~” using Anthy under Ubuntu Linux and dug a bit into what this tilde character actually is.

Apparently, in Japanese punctuation the so-called “wave dash” (〜, U+301C) is used for ranges (5時〜6時, from 5 o'clock to 6 o'clock) or in places where in Western languages the colon, dash or brackets would ...

Read on


How to typeset Japanese using (Xe)LaTeX

Typing Japanese on a Western keyboard is rather easy to setup, be it on Linux, Mac OS or Windows. One can usually type the Romaji version, such as “kyou”, and will obtain “きょう” if the input method is set up properly. Katakana/Kanji versions can usually be obtained by hitting the [Space] key multiple times, and small letters (e.g., “small tsu”) by prefixing them with “l” (lowercase “L”); for example, type “pa-teli-[SPACE]” to get “パーティー”. But how is it possible to typeset Japanese text with TeX?

Using XeTeX/XeLaTeX, which supports UTF-8 input encoding and OpenType fonts, it ...

Read on


Getting Started with Hoisted and Telegram

Telegram is a project by David Pollak, the creator of the Lift web framework, that provides hosting for websites using the Hoisted Content Management System. Hoisted takes a set of input files in HTML, XML, Markdown, RTF …, plus (optionally) an HTML template, and transforms them into a static website. Telegram is basically “Hoisted as a Service”, publishing your website at https://yourname.telegr.am (or a custom domain), and is able to get the input files from Github or Dropbox, i.e., when you push to Github or save a file in a Dropbox folder, the website is re-deployed.

A ...

Read on


An extended CRUD interface for Lift/MongoDB object reference fields

In a previous blog post, I explained the straight-forward way to generate a CRUD interface in Lift for MongoDB's reference fields. The approach described there, using a simple multiselect list, is very easy to realize, but the situation is a bit different when the list of objects that can be referenced is becoming larger and larger, since Lift needs to

  • load all of those items from the database,
  • assign unique IDs to them and keep them in memory, and
  • transfer the complete information to the browser.

A more “scalable” way to realize the same interface is provided by select2 ...

Read on


A simple CRUD interface for Lift/MongoDB object reference fields

While Lift provides a nice CRUD interface for simple data types such as Strings and Booleans, there is no out-of-the-box interface to work with reference fields, e.g., the ObjectIdRefListField in Record's MongoDB package. A nice way to integrate such an interface into the existing CRUD framework is to override the toForm method of ObjectIdRefListField. Thus, I created a trait One2ManyCRUD (which should actually be called Many2ManyCRUD, but I guess since I store the “many” references with the “one” object I'm editing, this is ok...) that can be mixed into the ObjectIdRefListField:

where the options function should return ...

Read on


friendica: Ein verteiltes soziales Netzwerk

Wie kürzlich in einem Artikel von Sascha Lobo beschrieben, liegt ein Problem der zunehmenden Nutzung von Facebook für Kommunikation nicht nur im Datenschutz, – wer hat Zugriff auf meine Daten und was macht er damit? – sondern auch in der Datenverfügbarkeit – wer stellt die Erreichbarkeit meiner Daten sicher? Wer heute das Aufwachsen seiner Kinder in Fotos bei Facebook dokumentiert, riskiert, dass diese Dokumentation von heute auf morgen dem eigenen Zugriff entzogen sein kann. Doch was sind die Alternativen?

Ein Ansatz, der Allmacht von Facebook entgegenzuwirken, sind sogenannte verteilte oder dezentrale soziale Netzwerke (siehe dazu auch den ausführlichen Artikel in der englischen ...

Read on


Seite 1 von 5 1 2 3 4 5 »