Archives for category: IT

The newer versions of docker (currently 0.6.2) no longer have a Makefile to build the current version, so the way to a local docker binary for Mac OS X wasn’t obvious for me. But it ain’t that hard:

If you now run your new docker command, you should get an error about docker being unable to connect to a socket at /var/run/docker.sock:

The problem is obvious: you don’t have a local docker daemon running.

I assume you followed the vagrant guide at docker.io and have your VirtualBox VM with docker running. We need to modify this VM a bit, so our local docker client can reach the docker server inside it.

  1. Modify the Vagrantfile and add the following line inside the Vagrant::Config.run block (e.g. before the end in line 44): config.vm.forward_port 4243, 4243 (My Vagrantfile).
  2. Inside the VM, edit the /etc/init/docker file and add the argument -H tcp://0.0.0.0:4243, so the daemon listens on all network devices.
  3. Now reboot the VM with vagrant reload (in your docker project folder), so both previous changes take effect.
  4. In your local shell, alias the docker command to use the network as well: alias docker='docker -H tcp://127.0.0.1:4243/'. You may want to add this line to you .bashrc or something similar.

When you now enter docker version you should see something like this (note the server version):

Done! You are good to go. Have fun with Docker!

!!! A word of warning: This changes allows anyone to send your docker daemon commands and control it! You should make sure the VM is only reachable from your local machine. !!!

(This was also posted on Coderwall.com)

Fork me on GitHub

(I wrote this as a protip on Coderwall)

Compiling your go code into a binary is pretty simple:

$ go install <package>

This will build the binary for your current OS and architecture. But compiling binaries for other operating systems and even architectures is also possible. You just need to modify a few environment variables:

  • GOARCH – the architecture, e.g. amd64, 386 or arm
  • GOOS – the operating system – linux, darwin or windows

Building the compiler first …

You can take a look at the output of go env to see what your current configuration looks like. But to actually cross compile, you need to first build the compilers.

With Mac OS / Homebrew, just install go with --cross-compile-common or --cross-compile-all. See the recipe for details.

If you have installed Go from source, just set the variables and call ./all.bash in the src folder for each GOARCH/GOOS combination you need.

This guide might help if you are totally lost.

Building your project …

Back to our project. Similar to building the compiler you just need to modify the environment variables and call go build as before. Go will now create a subfolder in ./bin/ matching your os/arch combination. Here you will find your crosscompiled binary. Obvisouly you can also pass in the varis in one line:

$ GOARCH=arm GOOS=linux go build helloworld

PS: If you want to crosscompile for ARM v5/v6 CPU (e.g. for the raspberry pi), you need to set GOARM=5 to use different set of operations for floating point math.

Damit ich die Links nicht ewig in meinen Tabs offenhalten muss:

Mit dem QuickTime Player kann man auch Videos von seinem Mac aufnehmen. Yeah! :)
via: http://osxdaily.com/2010/11/16/screen-recorder-mac/

Use-Case: GIFs für PullRequests machen: http://alias.sh/convert-video-gif

Falls wer einen Ersatz für Google Wave sucht, was leider seit Anfang des Jahres auf Read-Only steht, kann sich mal mein Wobble Projekt auf Github anschauen.

Wir nutzen es zur Zeit in einer kleinen Runden mit ungefähr 20 Personen und sehr zufrieden. Natürlich gibt es noch einige Ecken und Kanten, aber daran arbeiten ich noch. Wer mal reinschnuppern will, kann dies unter wobble.moinz.de tun.

Eins der Features vom Web2.0 ist ja angeblich das Zusammenwachsen der unterschiedlichen Dienste. Twitter oder Qype machen es ja vor wie einfach sowas gehen kann. Egal in welcher Programmiersprache, heute kann man sehr einfach die meisten dieser APIs auslesen (JSON machts möglich). Da ich immer wieder über neue Dienste stoße, die solche Schnittstellen anbieten, will ich diese hier einfach mal sammeln. Vielleicht fällt mir (oder euch) dann mal was tolles ein, was man damit basteln kann. Falls ihr eigene Vorschläge habt, her damit.

Offene APIs

Kostenlose / Keine Anmeldung

  • Digg – was ist das eigentlich genau?
  • Facebook
  • Golem.de – Video und Artikels
  • Google Chart API – Hält keine eigenen Daten vor, sondern generiert nur aus der URL ein Bild, trotzdem toll
  • Identi.ca – Micro Blogging Dienst wie Twitter
  • Opencaching.de – Deutsches Geocaching Portal
  • Qype – Bewertung und Kommentieren von Kneipen, Geschäften usw.
  • Twitter – Micro Blogging Dienst
  • World of Warcraft – Zugriff auf die öffentlichen Daten der Charaktere (XML)
  • YouTube – Videodaten, der Player und Widgets
  • Yuml.me – Erzeugt UML Diagramme aus der URL

Closed APIs

Nur nach Anmeldung + Zahlung einer (monatlichen) Gebühr

  • Eve-Online – Zugriff auf die eigenen Transaktionen, Inventar, Skills usw. (XML)

P.S.: ProgrammableWeb scheint eine solche Sammlung bereits zu haben, man kann sich dort sogar bei API Änderungen informieren lassen. Praktisch!

Achja, falls wer Google Wave hat: Meine ID ist draicderitervrel AT googlewave.com

Wer wie wir einen alten Rechner als Server abgestellt hat installiert doch gerne mal allerlei Anwendungen die dauerhaft oder zumindest ständig für alle verfügbar sein sollen. Bei uns ist dies unter anderem ein Musikplayer (MPD) der bei Besuch im Wohnzimmer für ein wenig Atmosphäre sorgt. Zu den diversen Webinterfaces verliert man, zumindest ich immer mal wieder die URL, so dass man regelmäßig auf dem Server selbst nachschauen muss was man da eingestellt hat.

Bonjour to the Rescue!

Mit dem Avahi Dämon lassen sich ganz einfach URLs über Bonjour verteilen. Der Safari greift diese von alleine auf, für den Firefox gibt es ein Plugin: Bonjour Foxy. In sofern sollte sich das URLs raussuchen erledigt haben.

Einer der wenigen Dinge die mich am Mac nerven ist die Tatsache, dass viele Programme mit Gewalt am Anfang als Administrator installiert und betrieben werden wollen. Dabei ist dies in vielen Fällen gar nicht nötig. Wer auf dem Mac seine Programme nicht für alle Benutzer installieren will, leg sich einfach einen Applications-Ordner im Benutzerordner an und speichert seine Programme dort. Der Vorteil liegt darin, dass man sich dann nur um das Sichern des Benutzerordners kümmern muss; die Programme die man nutzt werden mitgesichert. Bei einer Neuinstallation muss ich nur den Benutzerordner wiederherstellen und ich kann weiterarbeiten.

Aber zum eigentlichen Thema: Als Entwickler nutze ich auch MySQL und das Standardverhalten die Daten unter /var/ abzulegen finde ich ein wenig störend, da ich zum Nutzen von MySql Administrationsprivilegien brauche und die Daten aus oben genannten Gründen nicht in meinem Benutzerordner liegen. Man kann MySql allerdings auch recht einfach unter dem eigenen Benutzer starten.

Read the rest of this entry »

Ich wollte nur kurz drauf hinweise, das man auf movies.msn.com eine kleine Auswahl an ältere Filmen kostenlos, ohne Anmeldung, allerdings mit (sehr kurzen) Werbeunterbrechungen anschauen kann. Sehr interessant. Das ganze läuft auch problemlos auf meinem Mac mit dem Firefox. Das versteh ich unter Video-On-Demand ;)

[via]

Irgendwie begegnet mir dieses Thema in letzter Zeit immer öfters. Beim Anschauen von Ewiki ist mir Textile und Markdown (PHP) begegnet: Einfache PHP Klassen, mit der man aus Text entsprechende HTML Seiten generieren kann. Sowas ist ja durchaus nicht nur für Wikis sondern z.B. bei Projekten für das generieren von Dokumentation interessant: Bei Maven wird dieses Prozedere zum generieren der Projektdokumentation genutzt. Da ich aber Maven ansonsten nicht mag, habe ich durchaus einige Zeit damit verbracht ein Standalone-Tool zum generieren solcher Seiten zu suchen. Docbook mit seinen XML Dateien ist mir irgendwie zu aufgeblasen, wobei ich dies aber nicht wirklich genauer angeschaut habe.

AsciiDocs andererseits bietet zumindest auf den ersten Blick das was ich will:

  • Kein aufgeblasenes XML Format
  • Die Quelldateien sind auch so gut zu lesen
  • Sieht ganz ansehlich aus ohne das man selbst in Stylesheets rumfummeln muss
  • Generiert die HTML Dateien mit einem einfachen Aufruf: asciidoc <file>

Schön wäre natürlich noch die generierung eines PDFs, wie Maven dies heute schon kann. Ich werde mal schauen wie weit ich damit komme und dann weiteres davon berichten.

Was mich nur irgendwie stört: Wieso muss jeder sein eigenes Format erfinden? Reicht ein Standardformat mit verschiedenen Extensions nicht aus? Evtl sollte man dafür mal eine RFC schreiben ;)

Via