data.hackr

ein kleines blog ueber small data


Analogue Sequencer

beat box

^ nett und daten einmal anders: eine art turntable-basierter analoger sequencer

(via)

☍ 10.09.2014 # music

Random Walk

mixed recovery

^ The Upshot mit einer Mischung aus Visualisierungen und Storytelling: How the Recession Reshaped the Economy, in 255 Charts

☍ 22.08.2014 /via @nytimes # visualisation economy

Net Neutrality Comments

fcc cloud

^ die FCC hat die mehr als eine Million Kommentare (größtenteils) gegen die Abschaffung der Netzneutralität praktischerweise veröffentlicht, die ersten Auswertungen und Visualisierungen gibt es auch schon.

#nts: bei gelegenheit auch ein bisschen damit herumspielen

☍ 15.08.2014 /via @techdirt # opendata visualisation

Iconv

apropos pandoc : ein problem, über das man beim fröhlichen konvertieren eher früher als später stolpern wird, sind charakter-encodings, die dann irgendwelche fehler produzieren.

apple hat zum glück ein eingebautes tool namens iconv mit dem man die input-files zunächst auf utf-8 normalisieren kann, was dann oft das problem behebt.

iconv -f iso-8859-1 -t utf-8 test.xml > test.utf-8.xml

konvertiert zb ein iso-8859-1 dokument in ein utf-8, im xml-file sollte man dann auch in der deklaration das encoding entsprechend anpassen.

bonustipp: iconv konvertiert anscheinend nur, wenn es etwas zu konvertieren gibt; dokumente, die zb in us-ascii herumliegen, bleiben unberührt, weil us-ascii ein subset von utf-8 sind. wenn man also nach einem

file -I test.utf-8.xml

test.utf-8.xml: application/xml; charset=utf-8

sehen will, dann muss man das dokument vor dem konvertieren mit einem umlaut oder so befüllen, den man danach wieder entfernen kann.

☍ 05.08.2014 # osx utils cli

Sips

(eher eine #nts aber vl. interessiert das einen von euch und es ist in jedem fall gut zu wissen, dass es sowas gibt):

sips ist eine art universelles konversions- und manipulationstool für bilddateien, das mit jedem mac kommt. wer also ein bild in etwa jpg, gif oder png herumliegen hat, der kann es mit sips vergrössern, verkleinern, croppen, drehen, usw. im terminal:

sips -z 155 250 beta.png

^ erzeugt etwa die übersichtlichen screenshots fürs momb

sips -Z 400 squirrel.png

^ stutzt ein bild auf die grossartige, hier benutzte grösse zusammen, usw.

praktisch sind auch noch:

sips -r 90 bild.png

^ dreht ein bild um 90°

sips -p 75 400 icon.png

^ füllt ein bild bis zur angegebenen grösse aus.

☍ 04.08.2014 # sips cli osx

Pandoc

(eher eine #nts aber vl. interessiert das einen von euch und es ist in jedem fall gut zu wissen, dass es sowas gibt):

pandoc ist eine art universeller konvertierer zwischen allen gängigen markup formaten. wer also ein dokument in etwa docbook, latex, markdown oder textile herumliegen hat, der kann es mit pandoc in jedes andere strukturierte format aber auch in html, txt, pdf oder epub konvertieren, wobei die auszeichnungsinformationen und links wo möglich erhalten bleiben.

(wie man es installiert steht hier, das mit dem basictex steht eh dabei, man braucht nicht das 2,5gb tex)

pandoc -s -S input.ext -o output.ext

^ wenn die filename extension stimmt, reicht das üblicherweise zum konvertieren aus, zb

pandoc -s -S test.md -o test.textile
pandoc -s -S test.md -o test.pdf
pandoc -s -S test.textile -o test.html

mit -f format resp -t format kann man die formate ggf. noch spezifizieren.

beim zielformat pdf ist vl. noch gut zu wissen, dass man mit

pandoc -s -S test.textile -H margins.sty -o test.pdf

formatierungsoptionen aus dem file margins.sty einlesen kann.

\usepackage[vmargin=1in,hmargin=1in]{geometry}

und inline kann man mit \newpage einen seitenumbruch angeben.

☍ 04.08.2014 # pandoc utils cli

AWS-CLI

mehr der dokumentarischen vollständigkeit halber (siehe grunt ):

amazon offeriert für die webservices ein CLI, siehe aws-befehlszeilenschnittstelle

kann man mit pip resp. brew

pip install awscli
brew install awscli

installieren und funktioniert nach einem

aws configure

wo man den key und die region angibt auch sofort und soweit ich sehe auch weitestgehend erwartbar.

how are you

aws s3 sync --acl public-read hackr s3://hackr/

^ wenn man also etwa schon ein s3 bucket angelegt und ‘static website hosting’ enabled hat, dann kann man mit einer zeile ein lokales verzeichnis mit s3 syncen und von dort aus als statische webseite betreiben.

☍ 29.07.2014 # aws cli

Grunt

apache pig

der dokumentarischen vollständigkeit halber:

hatte im rahmen von dem semibigdata-kurs der university of washington auf coursera gestern und heute das erste mal handkontakt mit ec2 resp. elastic mapreduce (amazon’s infrastruktur für mapreduce/hadoop).

vorbereitend muss man

(a) ein account anlegen, da beginnt man hier und klickt sich durch (man kann ein bestehendes amazon account verwenden, man muss aber auch für den free tier eine kreditkarte angeben und eine telefonnummer via pin verifizieren).

(b) für jede aws-zone, die man verwenden möchte, ein key pair für ssh generieren. den privaten key bewahrt man als keyname.pem lokal irgendwo auf.

zum anlegen eines clusters für elastic mapreduce

(1) geht man dann zur management console,
(2) klickt auf ‘create cluster’ und ändert dort ggf. die defaults (wenn man nicht weiß, was man tut, lässt man sie am besten wie sie sind)
(3) definiert unter ‘hardware configuration’ die art und anzahl an ec2 instanzen, die man gerne hätte (einen master node + x core oder task nodes)
(4) verbindet unter ‘security and access’ den oben generierten key
(5) klickt nochmal auf ‘create cluster’ und wartet, bis sich auf der nächsten seite der status von ‘starting’ in ‘running’ ändert. dort sieht man neben ‘master public dns’ dann auch die adresse vom cluster (in richtung ec2-xxx-xxx-xxx-xxx.yyy.compute.amazonaws.com).

und 5 minuten später hat man einen laufenden cluster mit bis zu 20 nodes. mit

ssh -o "ServerAliveInterval 10" -i keyname.pem ec2-xxx-xxx-xxx-xxx.yyy.compute.amazonaws.com

kann man dann ein terminal zum cluster öffnen, mit

ssh -L 9100:localhost:9100 -L 9101:localhost:9101 -i keyname.pem hadoop@ec2-xxx-xxx-xxx-xxx.yyy.compute.amazonaws.com

kann man den cluster und die laufenden hadoop jobs im lokalen browser der wahl monitoren.

mit dem ‘terminate’ button in der ‘management console’ kann man den cluster dann wieder terminieren, abgerechnet wird nach angebrochener stunde der eingesetzten instanzen, siehe die preisliste (nur als ballpark: mit 5-10 euro kann man schon einen cluster mit grösserer hardware starten und locker ein TB prozessieren, einen 10-node cluster mit kleinsten maschinen kann man schon für 15c/h betreiben).

unterm strich schon irre, wie leicht es also auch für administrative dummies ist, die finger auf rechenkapazitäten zu bekommen, vor allem wenn man die daten schon irgendwie in S3 hat, die scheinen mir der grösste flaschenhals zu sein; das terminal muss man allerdings wohl trotzdem gesehen haben und an pig als abstraktion für hadoop muss man sich wohl heranarbeiten.

nts ein paar gängige commands rund um hadoop/pig:

hadoop fs -mkdir /user/hadoop

legt auf dem cluster das verzeichnis für das HDFS file system an.

hadoop fs -getmerge /user/hadoop/job1 job1

merg’t und kopiert das ergebnis eines mapreduce jobs ins lokale verzeichnis des clusters.

scp -o "ServerAliveInterval 10" -i keyname.pem hadoop@ec2-xxx-xxx-xxx-xxx.yyy.compute.amazonaws.com:/home/hadoop/job1 .

kopiert dieses file dann auf den eigenen rechner.

pig
grunt>

mit pig kommt man ins pig prompt grunt.

grunt> raw = LOAD 's3n://uw-cse-344-oregon.aws.amazon.com/btc-2010-chunk-000' USING TextLoader as (line:chararray);

^ die zu prozessierenden daten kann man zb direkt aus S3 laden

wget http://uw-cse-344-oregon.aws.amazon.com.s3.amazonaws.com/btc-2010-chunk-000
hadoop fs -copyFromLocal btc-2010-chunk-000 /user/hadoop/btc-2010-chunk-000
pig
grunt> raw = LOAD '/user/hadoop/btc-2010-chunk-000' USING TextLoader as (line:chararray);

^ oder man importiert sie zuerst ins HDFS.

grunt> store hadoop_object into '/user/hadoop/job1' using PigStorage();

speichert das ergebnis im HDFS.

wenn man auf S3 ein bucket angelegt hat, kann man das ergebnis des hadoop jobs auch direkt in S3 schreiben (was natürlich nützlich ist, wenn man cluster nach bedarf startet und stoppt):

grunt> store hadoop_object into 's3n://bucketname/job1';

☍ 27.07.2014 # aws hadoop s3

Correctiv

correctiv

^ untested: correctiv (Recherchen für die Gesellschaft) – möchte anscheinend eine Art semidatengetriebes Journalismusprojekt werden.

☍ 24.07.2014 # germany journalism

Insights into the #WorldCup

mittlerweile schon wieder devoha: ein paar Visualisierungen der WM Dataflows von Google und Twitter:

google data

» die WM in Suchen bei Google

» die WM in Google Trends

twitter data

» die WM als globale Konversation bei Twitter

» die WM als Einsichten von Twitter

» das Raunen und Rauschen des Finales

facebook data

Bonuslink: Facebook hat die Migrationen der Fans visualisiert:

» Support Flow

» World Cup Fan Migration

☍ 15.07.2014 # wc2014 data visualisation

5000 km

5000 km

(siehe 3000km, 1000km, 750 km, siehe auch hackr_fitbit)

☍ 13.07.2014 # fitbit quantifiedself

Most Beautiful Route

yahoo route

^ yahoo maps vl. bald mit der option auf schöne (und nicht nur schnelle) routen.

☍ 10.07.2014 # yahoo maps

580,166 TPM

580,166 TPM

^ der dokumentarischen voha: twitter hat gestern nach dem 5:0 von ger vs. bra mit 580k tweets/min einen neuen rekord aufgestellt (dürfte am so wohl noch überboten werden).

☍ 09.07.2014 # wc2014 twitter stats

Field Guide

A field guide to Twitter Platform objects

^ irgw. recht nett gemacht: A field guide to Twitter Platform objects

☍ 09.07.2014 # twitter api

Mo Beta Data Portal

gleich zwei neue open data portale in beta:

OECD Data Portal

^ eines von der OECD: OECD Data Portal

ODP

^ und eines für Österreich: Open Data Portal Österreich (vl. ein bisschen weniger anspruchsvoll, aber mit tollen datensätzen wie den lottozahlen oder den auszeichungen der brau union)

☍ 04.07.2014 # data austria