git wazzup

Gepubliceerd op: dinsdag 21 juli 2009 10:03:00
Categorieën: emacs, git, ruby

Het maken van nieuwe takken (branches) heb ik sinds ik git gebruik zo goed als onder een sneltoets zitten. Het is heerlijk om veilig op een tak te zitten knutselen zonder dat je het risico loopt de hele boom om te zagen.

Maar met zoveel takken is het gemakkelijk het overzicht te verliezen. Ik zat dan ook vaak met allerlei git GUI’s te kijken waar al m’n spik splinter nieuwe uitbreidingen uithangen. Tot ik de wazzup functie van Magit tegen kwam, die doet precies wat ik wil: laten zien welke commits uit welke branches er niet in de huidige branch zitten.

Ik zit echter zo vastgeroest aan git.el dat ik wazzup in een klein Ruby scriptje heb gevat:

#!/usr/bin/env ruby

branches = `git branch`.split("\n")
current = branches.grep(/^\*/).first[/[^ *]+/]
branches = branches.map{|v| v[/[^ *]+/]}

(branches - [current]).each do |branch|
  unless (cherries = `git cherry -v #{current} #{branch}`).empty?
    puts "#{branch}\n#{cherries}\n"
  end
end

Output ziet er bijvoorbeeld als volgt uit:

automated-tasks
+ 6ff08f983e4fefec813fb1b0c3fa444abf79d838 added task model
+ 174f42694ac862e37c3b04c03059b7f0c7814239 only allow admin to create/edit task
+ 8a6d5bfa83d8781551e3295a8461009c84e7829a task syntax checking validation
+ 748f08bee98f8902f7948964b833ca08404ce098 drop dead code
+ b84a5382ca0541f712b21dec3215a61f0d29a356 added automation task

sync-service
+ 410ef348e381950ad3bd0c481f9b4e5c09810056 added controller and routes
+ 6804abaf643ec6d2cba54629b5980102776a6d0d enforce POST method on update method

Oh! Cool! Die commits wil ik ook! :)

Reageer ››

Radio 1 (Tour de France!) op Android

Gepubliceerd op: maandag 13 juli 2009 23:37:00
Categorieën: android, wielrennen
Reacties: 3 stuks

Ik word tussen 16u en 18u altijd een beetje rusteloos rond deze tijd van het jaar. Wie gaat er het eerst over de meet en hoe staat het met het klassement?! De NOS heeft het nog niet helemaal begrepen; de Tour 2009 site is veel te lomp voor op een telefoon en eigenlijk wil ik gewoon Radio Tour de France luisteren!

M’n Android telefoon heeft helaas geen FM ontvanger ingebouwd en de Radio 1 live stream is slecht toegankelijk voor mobiele platformen. Na wat onderzoek heb ik dan eindelijk uitgevonden hoe ik de Radio 1 stream op een Android telefoon kan afspelen:

Tada! Radio 1 op je telefoon!

Hup! Lance! Hup!

Reageer ››

Abel van 't Veer

Gepubliceerd op: vrijdag 08 mei 2009 05:21:00
Categorieën: privee
Reacties: 3 stuks

Op maandag 27 april is onze tweede zoon geboren; Abel van 't Veer. Z’n grote broer, moeder en vader zijn apetrots!

Reageer ››

Horkige AdSense advertentie

Gepubliceerd op: woensdag 25 maart 2009 00:30:00
Categorieën: lariekoek
Reacties: 2 stuks

Er staat al een paar weken een vreemde Google Ad op mijn WWR profiel:

Grappig maar wel een beetje ongevoelig van AdSense..

Reageer ››

Android micro minor mode voor Emacs

Gepubliceerd op: zaterdag 21 februari 2009 03:29:00
Categorieën: android, emacs

Gisteren heb ik wat Emacs Lisp expressies aan elkaar geregen tot een minor-mode voor Android applicatie ontwikkeling op Emacs. Deze zeer minimale minor-mode code is beschikbaar via github en is, zoals het hoort bij software, een “work in progress”.

Installatie:


$ cd ~/.emacs.d
$ git clone git://github.com/remvee/android-mode.git

Toevoegen aan ~/.emacs:


(add-to-list 'load-path "~/.emacs.d/android-mode")
(require 'android-mode)

Configureren met: M-x customize-group<RET>android-mode.

Android mode wordt automatisch ingeschakeld als je een bestand of directory opent in een directory met een AndroidManifest.xml bestand. Op dit moment biedt android-mode de volgende bindings:

C-c C-c e
start Emulator op
C-c C-c d
start DDMS op
C-c C-c l
wisselt naar ADB logcat buffer
C-c C-c c
draai ant compile in hoofd directory van applicatie
C-c C-c i
ant install
C-c C-c r
ant reinstall
C-c C-c u
ant uninstall
Reageer ››

(.setText tv "Hello Android from Clojure!")

Gepubliceerd op: zondag 18 januari 2009 07:23:00
Categorieën: android, clojure, java, programming
Reacties: 1 stuk

Ongeduldig heb ik met de Android emulator zitten spelen. M’n dev phone is onderweg en ik kan natuurlijk niet wachten tot ik ermee aan de slag kan.

Aardig aan het Android platform is dat het gebruik maakt van Java. Wat is jammer aan Android is dat het geen gebruik maakt van een JVM maar van de Dalvik VM. Klinkt rampzalig maar valt erg mee, Android blijkt een heel groot deel van het Java Standard Edition class libraries te implementeren. Dat stemt hoopvol en geeft het gevoel dat, in theorie, alle andere JVM talen (zoals Groovy, JRuby, Kawa en Clojure) ook te gebruiken zijn op z’n Android telefoon.

Natuurlijk is het allemaal maar theorie en in wat voor bizarre wereld zouden we leven als dat ook echt zou kunnen?! :) Toch maakte Per Bothner me nieuwsgierig met zijn AndroidHelloScheme post en ben ik aan de slag gegaan om ook een Clojure variant te maken.

Lees verder ››

Voorspoedig MMIX!

Gepubliceerd op: woensdag 31 december 2008 15:00:00
Categorieën: lariekoek

En een vruchtbare recessie gewenst! De voorspellingen zijn dat we het allemaal wat minder druk krijgen. Er zullen minder “ontwikkelingen” zijn om achteraan te rennen en er is geen geld meer om in doodgeboren technologieën te blijven reanimeren.

Dit is dus het moment om op adem te komen en eens om ons heen te kijken wat er in de afgelopen decennia eigenlijk echt op het gebied van software ontwikkeling gebeurd is. Allemaal fantastische ideeën die wachten om gecombineerd te worden. Volgens mij kan het niet anders dan dat het programmeertalen gaat regenen!

Iedereen veel programmeer plezier gewenst in MMIX!

Reageer ››

Emacs setup voor Ruby en Rails

Gepubliceerd op: maandag 24 november 2008 23:26:00
Categorieën: emacs, rails

Gisteren in de kroeg heb ik Sam z’n interesse in Emacs weer wat aangewakkerd. Hij is een van de vele die vanuit het TextMate kamp opzoek zijn naar een krachtigere ontwikkelomgeving. Ik zelf ben een paar maanden geleden van TextMate, via Vim, bij Emacs beland. Het is even wennen en het kost wat tijd om je nieuwe omgeving naar je hand te zetten, maar eenmaal ingericht wil je niet anders meer, ik in ieder geval niet.

Voor Ruby en Rails ontwikkeling heb ik de volgende modules geïnstalleerd:

  • ruby-mode, actief onderhouden door het Ruby core team.
  • emacs-rails, deze “minor-mode” heeft goede navigatie features, maakt het gemakkelijk je tests te draaien, de console op te starten, server etc.
  • iswitch-menu, een goed alternatief voor het popup of tekst menu dat emacs-rails aanbiedt voor navigatie. Een aanrader!
  • rhtml-mode erg goed voor het bewerken van HTML-ERB templates.
  • yaml-mode prima voor het schrijven van YAML files.
  • git, de standaard ondersteuning welke meegeleverd wordt met git zelf.
  • js2-mode, hiermee heb ik een haat-liefde verhouding.
  • haml-mode lijkt goed te werken maar heb ik nog niet veel gebruikt.

De beste bron voor meer informatie over Emacs en bijbehoren, buiten de bijgesloten documentatie natuurlijk, is EmacsWiki. Snuffelen in de configuratie van anderen kan ook; op github zijn een paar dot-emacs repositories te vinden waar je van af kunt kijken.

Dus stroop je mouwen op en plak eigen omgeving in elkaar met een paar druppeltjes Lisp!

Reageer ››

Installing CLSQL on OS X

Published at: Saturday 22 November 2008 09:03:00
Categories: english, lisp, osx

Here’s my recipe to get CLSQL to work on my OS X development environment. I already had SBCL and MySQL 5 installed using MacPorts.

First you need to get the code:


git clone git://git.b9.com/clsql.git

MacPorts hides the MySQL libraries and headers somewhere in /opt so you need to make some tweaks. Change db-mysql/Makefile, by adding:


-I/opt/local/include/mysql5/mysql

to CFLAGS (first appearance) and:


-L/opt/local/lib/mysql5/mysql/

to LDFLAGS (also first appearance). You’re now ready to build the interface. Run make from the clsql directory:


make

This should finish without errors. Now you can install CLSQL with the rest of you ASDF systems (I prefer to keep them in my home location):


cp -rp clsql ~/.sbcl/site
(cd ~/.sbcl/system; ln -s ../site/clsql/*.asd .)

To allow CLSQL to find the mysqlclient library you need to create /etc/clsql-init.lisp:


echo '(clsql:push-library-path #p"/opt/local/lib/mysql5/mysql/")' > /etc/clsql-init.lisp

Finally you can run the included test suite to see if it all works fine. Run the tests (my mysql root user doesn’t have a password on my development machine) as follows:


mysqladmin5 create clsql-test
echo '((:mysql ("localhost" "clsql-test" "root" "")))' > ~/.clsql-test.config
sbcl << EOF
(require 'asdf)
(asdf:oos 'asdf:test-op :clsql)
EOF

Not as easy as installing it on a Debian system (apt-get install cl-sql) but not very hard either.

Happy MySQL hacking with Common Lisp on OS X!

Write a comment ››

Lisp is 50 jaar!

Gepubliceerd op: zondag 19 oktober 2008 15:00:00
Categorieën: events, lariekoek, lisp

Vandaag wordt er gevierd dat Lisp 50 jaar bestaat! Hiep hiep hoera!

Update: Had je erbij willen zijn? Eric was erbij: 13 hours of Lisp.

Update 2: Lispy doet uitgebreid verslag in I, II, III, IV, V, VI delen.

Reageer ››