fake's blog

everything fake

OS X Snow Leopard, Bootcamp 3.0 and mounted Mac partitions

In case you - like me - are unhappy about bootcamp 3.0, shipped with mac os x 10.6 "snow leopard", mounting your mac partitions read only in windows and assignig them drive letters, here's a heads up:

DO NOT TRY TO REMOVE THESE DRIVE LETTERS using the "Computer Management -> Disk Management -> Remove drive letter" way.

Windows re-sets the partition's type if you choose this option, and the EFI Bios of your mac will no longer regard the partitions as bootable. Even if you re-add drive letters, the partition type will still be MSDATA. Yes, windows really sucks big time.

having tried quite a few tricks, i have to say: it's not easy to get out of this trap. Simply changing back the partition type is not the way to go, as the GUID partition table is way more complex than i thought.

You will have to dump the partition contents using dd into partitions with a correct GPT, while being extremely careful about the /dev/disk assignments - these change from boot to boot! Another tip: The "dd" shipped on the OS X boot cd is horribly slow (and the dvd drive keeps spinning all the time), it ran at about 17MB/s for me. Take the time to install rEFIt using the rescue system, and boot an ubuntu livecd. The dd in ubuntu ran at 95MB/s. Saves you a few hours.

If you need assistance, please comment on this entry, i will try to help you - but be warned: this procedure requires console-fu.

openfire 3.6 and lotus domino/notes ldap

i just found the time to finally get the 3.6.4 openfire working with my company's notes ldap server again. here is the new patch to the sources, it's a -p1 (when in the untared openfire_src dir) unified diff.

one hunk of my old patch was merged it seems (though no one even commented on that post, hence the blog post this time), but additional fixing was necessary so the setup tool does disable DN enclosing by default, which breaks authentication in the case of lotus notes. the no-base-dn fix (which is in fact a workaround for the broken notes ldap, but i stopped argueing a while ago) is also updated.

after installation and setup, if your admin users were found and added but you're still unable to log in, you will need to set the following properties, either in your sql database or in the embedded database script file while openfire is stopped:

ldap.encloseDNs = false
ldap.encloseGroupDN = false
ldap.encloseUserDN = false

That way, the DN enclosing will also be switched off after installation. Start up openfire and you're good to go.

Another property of interest for lotus domino ldap users is "ldap.override.avatar", it will enable the display and transmission of user icons. yay... technology just can't be stopped ;-)

multitouch table first test run

yesterday we did a first test run of the meta-lab.de ftir multitouch table, see for yourself:

Server-side caching php twitter widget

i was looking for a server-side twitter widget displaying a few tweets for the nachtwerk-online.de page, and i did not find an out-of-the-box solution. the twitter widget on my blog is a javascript client-side thingy. having some php experience i hacked this up (note you need the code below too, for the "niceTimeDiff"-method):

<?php
// load the tweets
// uses a cache to easen on the twitter server.
$twitter_cache_file='/path/to/some/writable/file/twitter_cache.xml';
$mtime= null;
if(file_exists($twitter_cache_file)){
    $mtime=filemtime($twitter_cache_file);
}
if($mtime== null ||(time()-$mtime)>(9*60)){// 9 minutes or older?
    $url=sprintf("http://twitter.com/statuses/user_timeline/%s.xml?count=%d","Nachtwerk_IN",5);// load 5 tweets
    $content=@file_get_contents($url);
    if(strlen($content)>0){
        $cache_static=fopen($twitter_cache_file,'wb');
        fwrite($cache_static,$content);
        fclose($cache_static);
    }
}
$tcontent=@file_get_contents($twitter_cache_file);
$all_tweets=array();
if(strlen($tcontent)>0){
    $parsed=new SimpleXMLElement($tcontent);
    foreach($parsedas$status){
        $message=preg_replace("/http:\/\/(.*?)\/[^]*/",'\\0',$status->text);
        $message=ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a href=\"\\0\" rel=\"nofollow\">\\0</a>",$message);
        $tweet=array();
        $tweet['timeDiff']= niceTimeDiff($status->created_at);
        $tweet['message']=$message;
        $all_tweets[]=$tweet;
    }
}
?>

Of course you will want to replace "Nachtwerk_IN" by your twitter id, and the 5 after it by the nr. of tweets you want to load. The file pointed to by $twitter_cache_file needs to be writable.

urls will be links. the method "niceTimeDiff" is written like this:

<?php
function niceTimeDiff($ref_date){
    $now=mktime();
    $other=strtotime($ref_date);
    $diffmsecs=$now-$other;
    $days=$diffmsecs/(60*60*24);
    $hours=$diffmsecs/(60*60);
    $minutes=$diffmsecs/(60);
    $secs=$diffmsecs/1;
    $ret="";
    if($days>1)$ret.=round($days)." days";
    elseif($hours>1)$ret.=round($hours)." hours";
    elseif($minutes>1)$ret.=round($minutes)." minutes";
    elseif($secs>1)$ret.=round($secs)." seconds";
    return$ret." ago";
}
?>

Using this code, you will end up with an array called $all_tweets, containing assoziative arrays with 'message' and 'timeDiff' keys. Twitter will be checked every 9 minutes tops.

Wenn einer eine Demo macht...

... dann kann er was lernen.

Vor gut einem Jahr haben Sanni und ich die Demo gegen die Vorratsdatenspeicherung in Ingolstadt organisiert. Dabei haben wir ein paar Fehler gemacht:

  • Gegen die Sonne laufen, nicht mit der Sonne
    Mehrere Fotografen haben uns im Anschluss an die Demo darauf hingewiesen, dass das bei Demos so üblich ist wegen der Fotos. Macht auch total Sinn, und es is eigentlich meist egal ob man von A nach B oder von B nach A läuft...
  • Megaphone, etc
    Da wir beide keine großen Freunde lauten Krachs sind, haben wir schon bei der Anmeldung gesagt, dass wir keine Megaphone, etc einsetzen wollen. Das ist schlecht - bei einer Demo geht es darum, Aufmerksamkeit auf das Thema zu lenken, für das demonstriert wird. Da muss es laut zugehen! Pfeifen, Ratschen, Megaphone... Hauptsache laut! Solche Demos sind eh so schnell wieder vorbei, dass es keinen wirklich "nervt".
  • Leute einstimmen
    Ebenso wichtig ist es, die Mitziehenden zum Skandieren zu animieren. Überlegt euch vorher einige gute Sprüche, und probt sie in der Gruppe auf Rhythmus und Verständlichkeit. Dann am besten vor dem Abmarsch der Demo mit der Menge einmal durchprobieren. Es gibt nix Blöderes, als einen schweigenden Trauermarsch. Plant Abwechslung ein, und probt das auch mal in "Echtzeit" - reichen die Sprüche? Werden sie fad? Sagt ihr immer wieder das Gleiche?
  • Plakate + Transparente lange vorher vorbereiten
    Wir hatten für die Planung und Umsetzung der gesamten Sache nur 2 Wochen Zeit. Die Plakate haben wir 2 Tage vor Ende gemalt, und einen Tag vor Ende erst geklebt (weil wir da erst die Plakatständer bekommen hatten).

    Auch die Transparente entstanden am Vorabend. Das ist schlecht. Transparente sollten genau wie Plakate gut aussehen - und nicht nach einer 68er-Studentenspontandemo (wobei, klar, das is cool, spricht aber viele Leute falsch an). Macht die Transparente ruhig Wochen vorher - und macht viele. Die Erfahrung zeigt, dass niemand sowas mitnimmt zu einer Demo, der nicht schon in einer Gruppe organisiert ist. Schneidet euch Schablonen bloß net aus labbrigem Papier, sondern aus dickerem Karton. Einmal schöne Schablonen geschnitten, gehen viele Transparente ratzfatz.

    Für die Plakate hatten wir Vordrucke vom AK Vorrat, wo unten Platz war für die spezielle Demo. Bei den A3-Dingern konnte man das noch schön draufdrucken, aber bei den Riesenteilen für Plakatständer ging das dann nicht mehr - also: Eine Version mit schönen TZ-Schablonen vorgezeichnet, unteren Teil abkopiert, von unten an einen Glastisch gepappt und dann durchgepaust. So sieht es zumindest noch einigermaßen brauchbar aus.

    Auch wichtig: Beim Kleistern der Plakate, die PLAKATE mit Kleister bestreichen, NICHT die Plakatständer! Sonst wellen sich die Dinger so auf...
  • Verstärker? Strom!
    Wenn ihr für irgendwelche Reden einen Verstärker braucht, denkt daran, die Anwohner *vor* der Demo zu fragen, ob ihr euch irgendwo einstöpseln dürft. Wir hatten das erst am Vormittag gemacht, und von einigen Ladenbesitzern gut eine vor die Nase bekommen von wegen "na, sowas mach ma ned". Glücklicherweise haben wir dann den äußerst freundlichen amerikanischen Uhrmacher in Ingolstadt kennengelernt, dem es die reinste Freude war, uns Strom zur Verfügung zu stellen (und der auch mitmarschiert ist). Danke!
  • Was passiert an dem Tag noch?
    Gut, bei uns war der Tag fest vorgegeben, aber wir wären voll reingerannt: Es war ein gaaanz wichtiges lokales Fußballturnier, da wollten natürlich alle hin. Sowas weiß ja kein normaler Geek ;-) Also: vorher ein bisschen rumfragen und auf lokalen Webseiten checken, was an welchem geplanten möglichen Tag los ist.
Weiters gab es ein paar Themen, wo wir das Gefühl hatten, dass wir es gut gemacht haben:
  • Anmeldung, Kooperation mit der Exekutive
    Der erste Schritt bei der Planung einer Demo sollte die Anmeldung beim Ordnungsamt sein. Sie können euch eine Demo nicht verbieten oder so, und in unserem Fall waren sie sogar sehr hilfreich und freundlich. Seid kompromissbereit - aber nicht zu sehr. Ihr wollt Aufmerksamkeit, die kriegt ihr nicht, wenn ihr in Vorort XYZ von der Ampel bis zum Zebrastreifen lauft. Und ganz wichtig: Besucht das Amt persönlich!

    Die lassen euch einen Zettel ausfüllen, auf Grund dessen sich dann in den nächsten Tagen jemand von der Polizei (Nummer: unterdrückt *g*) bei der eingetragenen Kontaktperson meldet. Seid ehrlich und realistisch, was eure erwarteten Besucherzahlen angeht, dann ist das eigentlich kein Problem. In unserem Fall war der Beamte sogar sehr nett und scherzte "eigentlich wäre er ja für mehr Überwachung, aber jeder soll ja seine Meinung vertreten dürfen" ;-)
  • Infostand
    Das gilt insbesondere für Demos, bei denen die Aufschriften auf den Transparenten die meisten Bürger eher verwirren (Meine Daten gehören mir? Ja, eh, nicht? Oder wie?) oder allgemein komplexerer Natur sind. Macht einen Infostand, der vor, während und nach der Demo besetzt bleibt. So können Passanten, die den Zug zufällig sehen, sich nachher Informieren, worum es da ging - ohne einen von diesen "Anarchisten" ansprechen zu müssen ;-)
  • Pressearbeit
    Schreibt eigene Pressemitteilungen (wir sind mit 2 Wochen vorher, 2 Tagen vorher und einem Nachbericht gut gefahren) und schickt sie vor allem auch an regionale Zeitung/Radio/Fernsehen. Ruft dort an, wenn keine Rückmeldung kommt und fragt nach Veröffentlichung. Wir haben den Donaukurier direkt nach Unterstützung gefragt und haben offene Türen eingerannt. Dank der Ankündigung (plus Kurzmeldung) in der Zeitung (DK ist super!) wurde auch bei Radio IN halbstündig ein Hinweis gesendet. Und durch INTV haben wir ein schönes Video mit Eindrücken der Demo bekommen. Der DK druckte dann tags drauf einen sehr guten Bericht (das mit dem "Hammer" ignorieren wir mal *g*).
  • Parteien ins Boot holen
    Sprecht *alle* Parteien an - auch die, von denen ihr glaubt zu wissen, dass sie gegen euch sind. Wenn sie auf Emails nicht reagieren, ist auch ein kurzer Anruf sinnvoll. Lasst entweder alle oder keine Parteivertreter eine kurze Begrüßungsrede halten. Wir hatten gar nicht an Reden gedacht und wurden am Abend vorher erst danach gefragt. Etwas kurzfristig natürlich, um das noch mit allen Parteien zu klären. Thomas Thöne von der SPD war dann fast schon empört, dass er nicht gefragt wurde, und kam während der Begrüßungsreden auf mich zu, weil er auch was sagen wollte... (Wir hatten ihn eigentlich schon angeschrieben, irgendwie muss die Mail verloren gegangen sein). Sorry an der Stelle auch nochmal an Andreas Popp von den Piraten!

    Alle Parteien, die teilnahmen, waren sehr hilfsbereit und engagiert, dennoch muss ich die Grünen besonders hervorheben. Von ihnen bekamen wir kurzfristig, unbürokratisch und ohne großen Hickhack eine ganze Menge Plakatständer (ja, irgendwoher muss man die Dinger nehmen!) und die Verstärker/Mikrogeschichte für die Begrüßung. Außerdem haben sie das auch mit dem Ordnungsamt gedeichselt, dass wir die Plakate noch aufstellen durften (das kostet nochmal eine Kleinigkeit) - an dieser Stelle nochmals Danke!!
Ich hätte mir so eine Liste gewünscht, als es in die Planung ging. Vielleicht hilft's ja jemandem ...


Danke nochmal an alle unsere Freunde und Mitstreiter, die uns so wundervoll unterstützt haben und bis in die Nacht Plakate gemalt und Transparente gesprüht haben. Ihr seid Klasse!

- page 1 of 12