If you’re wondering why the CCacheServer daemon, that caches in memory Kerberos tickets obtained via kinit(1) is NOT starting .. that’s because of a strange bug regarding the LimitLoadToSessionType specified into the agent .plist, located into /System/Library/LaunchAgents/edu.mit.kerberos.CCacheServer.plist on OSX 10.5 systems.

You simply have to comment out these two lines:

<key>LimitLoadToSessionType</key>
<string>Background</string>

And either

launchctl load /System/Library/LaunchAgents/edu.mit.kerberos.CCacheServer.plist

or reboot your system ;).

CCacheServer will then be instantiated when you do a kinit:

$ kinit
Please enter the password for vjt@DOMAIN.LOCAL:

$ klist
Kerberos 5 ticket cache: 'API:Initial default ccache'
Default principal: vjt@DOMAIN.LOCAL

Valid Starting     Expires            Service Principal
11/12/08 20:59:35  11/13/08 06:59:14  krbtgt/DOMAIN.LOCAL@DOMAIN.LOCAL
    renew until 11/19/08 20:59:35

The bug is strange because the LimitLoadToSessionType key actually should instruct launchd to automatically start up the daemon and run it once for every logged in user, when kinit asks its services. But, if the key is set in the .plist, a launchctl load on it fails with “nothing found to load”. Weird!

If you use github-provided lighthouse integration, from the “Admin” pages of your git repository, you may have stumbled upon on a glitch: every changeset on lighthouse appears as done by the lighthouse user that configured the integration on github.

This happens because lighthouse uses the API token to link changeset authors to LH users, and that’s not good when you’re not alone committing :-).

A simple solution is to use a post-commit hook, as described here, but that’s not satisfactory because it means that every time you issue git commit on your console, the commit message will go public, and if you --amend or reset --soft the index you’ll have to browse to lighthouse and delete the changeset.

A much smarter solution is to push all changed revs when pushing them to github: I modified the original post-commit hook and installed it alongside the git command in $(dirname which git)/git-lh.

This gives me a new git lh command that fetches the current HEAD revision from github using refs/heads/master and POSTs every changeset between that rev and the current tip in the working tree to lighthouse.

So, if you issue git lh before issuing git push, every change you’re pushing to github will go to lighthouse, too.

UPDATE: A simple bash script like:

#!/bin/bash
git lh && git push

saved as git-lh-push saves you from typing two commands when you want to push :).

Have fun!

References:

the git-lh script on github

“Quando ti sembra di avere troppe cose da gestire nella vita, quando 24 ore in un giorno non sono abbastanza, ricordati del vaso della Maionese e dei due bicchieri di vino…”

Un professore stava davanti alla sua classe di filosofia e aveva davanti alcuni oggetti.

Quando la classe incominciò a zittirsi, prese un grande barattolo di maionese vuoto e lo iniziò a riempire di palline da golf. Chiese poi agli studenti se il barattolo fosse pieno e costoro risposero che lo fosse.

Il professore allora prese un barattolo di ghiaia e la rovesciò nel barattolo di maionese. Lo scosse leggermente e i sassolini si posizionarono negli spazi vuoti, tra le palline da golf. Chiese di nuovo agli studenti se il barattolo fosse pieno e questi concordarono che lo fosse.

Il professore prese allora una scatola di sabbia e la rovesciò, aggiungendola nel barattolo; ovviamente la sabbia si sparse ovunque all’interno. Chiese ancora una voltase il barattolo fosse pieno e gli studenti risposero con un unanime “Sì!”.

Il professore estrasse quindi due bicchieri di vino da sotto la cattedra e aggiunse il loro intero contenuto nel barattolo, andando così effettivamente a riempire gli spazi vuoti nella sabbia. Gli studenti risero.

“Ora”, disse il professore non appena la risata si fu placata, “voglio che consideriate questo barattolo come la vostra Vita. Le palle da golf sono le cose importanti: la vostra famiglia, i vostri bambini, la vostra salute, i vostri amici e le vostre Passioni; le cose per cui, se anche tutto il resto andasse perduto e solo queste rimanessero, la vostra vita continuerebbe ad essere piena. I sassolini sono le altre cose che hanno importanza, come il vostro lavoro, la casa, la macchina… La sabbia è tutto il resto: le piccole cose.

Se voi mettete nel barattolo la sabbia per prima, non ci sarà spazio per la ghiaia e nemmeno per le palle da golf.

Lo stesso vale per la vita: se spendete tutto il vostro tempo e le vostre energie dietro le piccole cose, non avrete più spazio per le cose che sono importanti per voi.

Prestate attenzione alle cose che sono indispensabili per la vostra felicità: giocate con i vostri bambini, godetevi la famiglia ed i genitori finché ci sono; portate il vostro compagno/a fuori a cena… E non solo nelle occasioni importanti! Dedicatevi a ciò che amate e alle passioni, tanto ci sarà sempre tempo per pulire la casa o fissare gli appuntamenti. Prendetevi cura per prima cosa delle palle da golf, le cose che contano davvero. Fissate le priorità…

Il resto è solo sabbia.

Uno degli studenti alzò la mano e chiese cosa rappresentasse il vino. Il professore sorrise: “Sono felice che tu l’abbia chiesto. Serve solo per mostrarvi che non importa quanto piena possa sembrare la vostra vita: ci sarà sempre spazio per un paio di bicchieri di vino con un amico.”


English version

When things in your life seem almost too much to handle, when 24 hours in a day are not enough, remember the mayonnaise jar and the 2 glasses of wine.

A professor stood before his philosophy class and had some items in front of him. When the class began, he wordlessly picked up a very large and empty mayonnaise jar and proceeded to fill it with golf balls. He then asked the students if the jar was full. They agreed that it was.

The professor then picked up a box of pebbles and poured them into the jar. He shook the jar lightly. The pebbles rolled into the open areas between the golf balls. He then asked the students again if the jar was full. They agreed it was.

The professor next picked up a box of sand and poured it into the jar. Of course, the sand filled up everything else. He asked once more if the jar was full. The students responded with a unanimous “yes!”

The professor then produced two glasses of wine from under the table and poured the entire contents into the jar effectively filling the empty space between the sand. The students laughed.

“Now,” said the professor as the laughter subsided, “I want you to recognize that this jar represents your life. The golf balls are the important things – your family, your children, your health, your friends and your favorite passions – and if everything else was lost and only they remained, your life would still be full. The pebbles are the other things that matter like your job, your house and your car.”

“The sand is everything else – the small stuff.”

“If you put the sand into the jar first,” he continued, “there is no room for the pebbles or the golf balls. The same goes for life. If you spend all your time and energy on the small stuff you will never have room for the things that are important to you.”

Pay attention to the things that are critical to your happiness. Spend time with your children. Spend time with your parents. Visit with grandparents.

Take time to get medical checkups. Take your spouse out to dinner. Play another 18. There will always be time to clean the house and fix the disposal.

Take care of the golf balls first – the things that really matter.

Set your priorities. The rest is just sand.

One of the students raised her hand and inquired what the wine represented.

The professor smiled and said, “I’m glad you asked.”

“The wine just shows you that no matter how full your life may seem, there’s always room for a couple of glasses of wine with a friend.”


Share and enjoy.

The best blog post I've ever wrote

- 1 min read
javascript, klingon, javascript, javascript, IE, IE, IE, sucks, optimize, optimize,
user experience, web2.0, harnessing collective intelligence, love, hate, sex, ruby,
rails, rails, rails, admin, REST, javascript, javascript, IE IE IE SUCKS, premature
optimization, assets, google API, love, love, hate, hate, air, trips, hide, toggle,
show, ryan, twenty-three times the pain, javascript, IE, ruby, rails, CSS, spacing,
position:absolute, love, love, love, love, too much, too much, too much.

number 42.