Android micro minor mode voor Emacs

Gepubliceerd op: 21.II.2009 03:29 CET
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

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

Gepubliceerd op: 18.I.2009 07:23 CET
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: 31.XII.2008 15:00 CET
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!

Emacs setup voor Ruby en Rails

Gepubliceerd op: 24.XI.2008 23:26 CET
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!

Installing CLSQL on OS X

Published at: 22.XI.2008 09:03 CET
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!

Upload Progress met Rails en Mongrel

Gepubliceerd op: 14.X.2008 22:02 CEST
Categorieën: javascript, mongrel, plugin, rails

Upload progress is lastig; aan de server kant bijhouden wat de voortgang is en gerommel met JavaScript om dat dan weer aan de gebruiker te kunnen tonen. Eigenlijk zou een browser dit zelf voor je moeten doen — bij een download kan ik toch ook zien hoe ver ik ben — maar helaas is de realiteit anders. Gebruikers van je applicaties opschepen met een “hangende” browsers als zij een paar fototjes uploaden is natuurlijk geen optie.

Gelukkig ben ik niet de enige met dit probleem en kan ik, omdat ik mijn applicaties met Mongrel deploy, gebruik maken van de Mongrel Upload Progress plugin. Vol enthousiasme heb ik me dan ook op deze plugin gestort maar heb na het lezen van de instructies met een vies gezicht een stapje terug genomen.

Lees verder →

Mac vriendelijke keybindings voor Emacs 22 Carbon

Gepubliceerd op: 11.X.2008 09:02 CEST
Categorieën: emacs, osx

Na begin van het jaar van Textmate weer terug te zijn verhuist naar Vim, ben ik sinds een paar maanden weer helemaal in Emacs gedoken voor al mijn Ruby, Rails, JavaScript, CSS, HTML, Common Lisp, Twitter, Latex en Spreadsheet werk. M’n EEE heeft veel invloed gehad op deze stappen en nu is ook m’n MacBook tot gastheer voor Emacs gemaakt.

Emacs is alles en meer. De langer je ermee werkt, de onhandiger en knulliger de ander applicaties op je computer lijken. Daarnaast begin je als gebruiker steeds minder te begrijpen van de editor war want Emacs is toch helemaal geen editor?!

Maar goed, deze afkeer tegen alles buiten Emacs heeft ook z’n nadelen; uitstapjes van Emacs naar bijvoorbeeld een browser kunnen door sneltoets incompatibiliteit pijnlijk aflopen. De versie die ik heb geïnstalleerd, is de “carbon” variant van MacPorts, een Emacs versie 22 welke netjes geïntegreerd is met OSX. Er is echter een klein detail dat heel vervelend kan uitpakken; de Command-toets (appeltje) is gedefinieerd als de Meta-toets.

In eerste instantie vond ik dat verschrikkelijk handig, m’n vingers kunnen deze toets namelijk gemakkelijk vinden en het is daarom heel natuurlijk om de veel gebruikte Meta-x combinatie te maken. Alleen is de standaard copieëren combinatie van Emacs Meta-w..

Lees verder →

Plugins naar Github

Gepubliceerd op: 3.IX.2008 13:13 CEST
Categorieën: active_form, dutchify, git, plugin, rails
Reacties: 6 stuks

In blinde opruimwoede heb ik m’n huis plugins op GitHub gezet.

  • ActiveForm; zie ook active_form
    ruby script/plugin install git://github.com/remvee/active_form.git
  • Dutchify; zie ook dutchify
    ruby script/plugin install git://github.com/remvee/dutchify.git
  • Labelify; Yet Another Form Builder
    ruby script/plugin install git://github.com/remvee/labelify.git
  • NullableBooleans; boolean attributen gemakkelijker op nil zetten
    ruby script/plugin install git://github.com/remvee/nullable_booleans.git