(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.

Fork me on GitHub

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.

Ich finde es ja immer wieder schön diverse Netzradios zu hören und mir die Titel / Künstler genauer anzuschauen, die mir da gefallen. Dabei hab ich schon so einige Titel gefunden, die wirklich gut waren. Da ich mir eigentlich immer vorgenommen hab, da mal ausführlich drüber zu bloggen, aber ich das ja eh nicht tue und ich gesagt habe ich poste ab sofort öfter mal kurze Sachen werf ich heute einfach mal wieder mit Links um mich. Müsst ihr halt mal selber stöbern. Ähnliche Beiträge mit Musik über die ich so stolpere werden (hoffentlich) folgen. Viel Spass!

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.

So, mal das Blog aktualisiert und ein neues Theme installiert. Mir gefällt es besser als das Alte und regt mich hoffentlich mehr dazu an, mal über kleinere Sachen zu schreiben.

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 »

Seitdem ich von CouchDB gehört habe, fand ich diese Art der Datenhaltung sehr interessant. Wer das Projekt noch nicht kennt: Daten werden als Dokumente über eine REST/HTTP Schnittstelle in Datenbanken abgelegt. Jedes Dokument besteht aus mehreren Feldern, welche beliebig komplexe (JSON-)Daten beinhalten kann. Das Schöne (oder das Biest): Die Daten sind unstrukturiert; d.h. jedes Dokument kann andere Felder haben als jedes andere. Es gibt kein Schema, welches bestimmte Strukturen in einem Dokument verlangt. Wer dazu wissen will, kann sich ja mal die Einführung anschauen.

Eins der Dinge die mir bisher noch fehlen ist die Möglichkeit des Import und Exports von Daten über die Kommandozeile (oder eine WebGui), weswegen ich mit jetzt mit ein wenig Python selbst geholfen habe.
Read the rest of this entry »