Webcrawling with NodeJS

Posted by & filed under Allgemein.

Read more on "Webcrawling with NodeJS" »

In december 2011, the social network EPOS4 announced the end of their services on 1.1.2012. At this time, I was very interested in webcrawling. I decided to try crawling some from this community.

In three weeks, I developed three working webcrawler:

  • Status-Message Crawler
  • Profile-Statistics Crawler
  • Profile-Image Crawler

I used NodeJS with node-htmlparser and node-soupselect to parse the response data and DateJS to parse bad formatted date values. It was very helpful, that EPOS4 gave their users ascending numbers as ID’s and also for the pagination from the page with all status-messages. After parsing the data, i saved it with node-mongodb-native into a MongoDB. Many users on EPOS4 hasn’t a profile image. I checked each image, if it’s the default image until saving it on my harddrive.

After many hours of crawling, I had ~ 150 MB of (~650k) status messages, ~25 MB of (~50k) profile statistics and a lot of profile-images.

Two month later, I build a small interface with NodeJS, Socket.IO and jQuery Templates to visualize the data from the MongoDB. It works very fine and the guys from Uberspace helped me to setting it up on their servers.

This prototype is not public, because of copyright by EPOS4. So i provide only a screenshot:

 

I did also some analytics with the status messages. E.g. which words often used in the status messages. For this case I build an MongoDB-JSON to “real JSON” converter and analytics script, both with NodeJS. More about the script in this blogentry.

Es hat sich “ausgetigert”

Posted by & filed under Allgemein.

Read more on "Es hat sich “ausgetigert”" »

Heute, 20. April 2012, gegen 16:30 Uhr waren meine Freundin und ich in der Hartlauer Filiale auf der Äußeren Mariahilferstraße. Wir hatten vor zwei Handys zu kaufen und warteten ein paar Minuten. Es war kein Mitarbeiter zu sehen. Daraufhin setzte sich meine Freundin auf die hölzerne Ablage vor einer Handyvitrine. Während wir auf einen Kundenbetreuer warteten, erklärte ich ihr die Funktionen der verschiedenen Handymodelle.

Nun erschien ein Angestellter und forderte meine Freundin in einem zutiefst unfreundlichen Ton dazu auf, aufzustehen. Meine Freundin stand sofort auf und versuchte, sich zu verteidigen, da sie in keiner Weise irgendetwas mutwillig kaputt machen wollte. Ihr war nicht bewusst, dass das Hinsetzten vor der Handyvitrine unerwünscht war.Daraufhin wurde der Ton des Mitarbeiters aggressiver und er und teilte ihr mit „er würde auch nicht bei ihr zuhause auf einem Kasten sitzen“.

Ich war so entsetzt, dass ich meine Freundin an der Hand nahm, und sofort mit ihr Richtung Ausgang zusteuerte. Bevor wir beim Ausgang angekommen waren, hielt uns der Mitarbeiter symbolisch die Tür auf und teilte uns mit, dass wir verschwinden sollten. Ich machte ihn darauf aufmerksam, dass man mit Kunden nicht so unfreundlich umgehen kann, woraufhin er uns nach draußen folgte und uns zu beschimpfen anfing. Nun versuchte meine Freundin sich zu verteidigen, in einem mittlerweile auch nicht mehr sonderlich freundlichem Ton.

Nach dem Wortgefecht ging der Angestellte ins Geschäft zurück und wir gingen weiter. Etwa einen halben Kilometer später, hörten wir Schreie hinter uns. Der Mitarbeiter verfolgte uns. Er schrie uns an mit „er hätte sich uns gemerkt“, beschimpfte mich mit „welche depperte Freundin ich hätte“. Erst nach einigen Minuten konnte ich ihn dazu bewegen, zu gehen.

Ich habe noch nie derartiges in einem Fachgeschäft erlebt.

mongoexport JSON to real JSON Converter

Posted by & filed under JavaScript, Tools.

Read more on "mongoexport JSON to real JSON Converter" »

I had a problem with parsing a JSON exported from MongoDB with mongoexport. This JSON is a text-document with Objects seperated by breaking spaces (/n). So i had to convert this JSON to a correctly JSON-Array.

I released this converter written in NodeJS with MIT-Licence on Github.

Download, use it, fork it!

https://github.com/tiefenb/MongoExport-to-JSON

Absichtliche Fehler in Google Maps

Posted by & filed under netzkultur.

Read more on "Absichtliche Fehler in Google Maps" »

Mir sind schon länger zwei Fehler auf Google Maps ein Dorn im Auge.
Konkret um diesen und jenen.

Wer aus dieser Umgebung ist, weiß dass Mautern und Waldviertel hier an der falschen Stelle sind. Ich habe dieses Problem schon ein paar mal bei Google gemeldet – leider ohne Verbesserung.

Ein Grund warum es so viele Geisterstädte und Fehler in Google Maps gibt:
Kartenbetreiber bauen absichtlich Fehler in Karten ein, um vorzubeugen, dass andere diese nicht einfach kopieren.
Sind nämlich diese absichtlichen und dokumentierten Fehler in anderen Karten an der selben Stelle, wissen die ursprünglichen Ersteller der Karten, dass dies ihr eigenes Werk ist und können rechtliche Schritte einleiten gegen den Kartendieb.

Ich schätze Google wird erst Fehler ausbessern, wenn viele Menschen den gleichen Fehler melden…