Ich find User-Ideen groĂźartig

written by Martin Häcker on

Einfach mal kreativ mit der Techik umgehen. Mal probieren und testen und dann die Erfahrung austauschen.

Image (via)

Unglaublich ĂĽber sowas einfach herzuziehen. Einfach die eingebaute Kamera als Spiegel verwenden. Zum Beispiel damit.

If you want to count on it - pirate it

written by Martin Häcker on

XKCD hats erwischt.

Image

Das Gedicht zum Bankendomino

written by Martin Häcker on

(via Fefe, von Brokerz)

Wenn die Börsenkurse fallen,
regt sich Kummer fast bei allen,
aber manche blĂĽhen auf:
Ihr Rezept heiĂźt Leerverkauf.
Keck verhökern diese Knaben
Dinge, die sie gar nicht haben,
treten selbst den Absturz los,
den sie brauchen - echt famos!

Leichter noch bei solchen Taten
tun sie sich mit Derivaten:
Wenn Papier den Wert frisiert,
wird die Wirkung potenziert.

Wenn in Folge Banken krachen,
haben Sparer nichts zu lachen,
und die Hypothek aufs Haus
heiĂźt, Bewohner mĂĽssen raus.

Trifft's hingegen groĂźe Banken,
kommt die ganze Welt ins Wanken -
auch die Spekulantenbrut
zittert jetzt um Hab und Gut!

Soll man das System gefährden?
Da muss eingeschritten werden:
Der Gewinn, der bleibt privat,
die Verluste kauft der Staat.

Dazu braucht der Staat Kredite,
und das bringt erneut Profite,
hat man doch in jenem Land
die Regierung in der Hand.

FĂĽr die Zechen dieser Frechen
hat der Kleine Mann zu blechen
und - das ist das Feine ja -
nicht nur in Amerika!

Und wenn Kurse wieder steigen,
fängt von vorne an der Reigen -
ist halt Umverteilung pur,
stets in eine Richtung nur.

Aber sollten sich die Massen
das mal nimmer bieten lassen,
ist der Ausweg längst bedacht:
Dann wird bisschen Krieg gemacht.

Regexe updated

written by Martin Häcker on

Hab ich mir doch gedacht, nur matching von regexen auf ganzen Strings ist doch langweilig - also hab ich noch containsRegex: hinzugefĂĽgt um etwas mehr komfort zu haben.

Da dachte ich ja zuerst dass ein Regex wie dieser hier eigentlich nicht funktionieren dürfte: .*^a angewandt auf "aaa" - aber interessanterweise funktioniert das ohne Probleme. Muss ich wohl noch etwas an meinen Regex-Verständnis feilen.

Ah well.

[source:/open-source/SimpleRegexSupport/trunk/RegexTest.m Code hier]

Wie kriegt man eigentlich mit was sich im Linux Kernel so tut?

written by Martin Häcker on

SchlieĂźlich gibt es dort nicht so ausgezeichnete release notes wie man sie von Eclipse, Gnome oder Ubuntu kennt.

Die Antwort ist ĂĽberraschenderweise: Heise lesen. Und sogar optional auch auf englisch.

Cocoa hat ja Regex Support

written by Martin Häcker on

Ăśberraschend.

Das der so vollständig ist, hätte ich nicht erwartet. Aber in der Tat, ICU-Regexe in ihrer ganzen Pracht. Völlig ohne eine neue externe Dependency.

Laut der Dokumentation sollte das sogar in 10.4 schon funktionieren - mit dem einen Caveat, dass multiline Support dort wohl von Hand eingeschaltet werden muss (via (?m))

Sowas wird da möglich:

if ([@"aaa" matchesRegex:@"a{3}"])
    NSLog(@"gotcha");

// other examples
[@"argh fnord argh" matchesRegex:@".*\\bfnord\\b.*"];
[@"aaa" matchesRegex:@"\\w{3}"];

Und das mit extrem wenig Aufwand:

@interface NSString (SimpleRegexMatching)
- (BOOL) matchesRegex:(NSString *)aRegex;
@end

@implementation NSString (SimpleRegexMatching)
- (BOOL) matchesRegex:(NSString *)aRegex;
{
    id predicate = [NSPredicate predicateWithFormat:@"self matches %@", aRegex];
    return [predicate evaluateWithObject:self];
}
@end

Ich bin beeindruckt.

[source:/open-source/SimpleRegexSupport/trunk/RegexTest.m Code hier]

Die gegenwärtige Finanzkrise ist...

written by Martin Häcker on

... eigentlich einfach zu verstehen.

Zum weglegen. :)

Darfs noch etwas mehr AtommĂĽll sein?

written by Martin Häcker on

Gerne auch Freihaus...

Extra 3 hat es mal wieder genagelt.

:-)

Aus einem Variablen-Namen einen String machen

written by Martin Häcker on

Braucht man manchmal fĂĽr Bindings. Gleichzeitig will ich aber nicht ĂĽberall die namen meiner Variablen als Strings hinterlegen - schon alleine damit ich beim Refactorn auch alle Namen erwische.

Also den Macro-Prozessor zur Rettung:

#define NSStringize(aVariableName) @#aVariableName

::

macht aus einer beliebigen expression einen String @:: und das @ davor macht aus einem constanten c-string einen ObjC-NSString.

Und das problem ist gelöst. :)

_HiStOrY_V2_

written by Martin Häcker on

Mit ein bisschen Hilfe von meinen Freunden...

Heute hab ich mal wieder die aktuelle Version von Bazaar (1.7.1) ausprobiert. Soweit ganz schnuckelig. Sogar der SVN Checkout von [svn://svn.adiumx.com/adium/trunk Adium] hat hervorragend geklappt.

Ich muss sagen, beeindruckend.

Nur mit dem Plugin bzrtools hatte ich Schwierigkeiten, denn die darin enthaltene shell (ein geiles feature) zu benutzen brachte bzr reproduzierbar zum Absturz. :-(

Stellt sich mit hilfe von #bazaar und nach einigen Detours ĂĽber den Python Debugger (nice!) und dtruss (nice!) heraus dass es an der libreadline liegt.

Die hat sich nämlich geändert und erwartet inzwischen am Anfang eines History-Files als allererste Zeile diesen eintrag: _HiStOrYV2.

Na toll. Und ansonsten stürzt das Programm einfach ab. Also wer sich das ausgedacht hat, der gehört aber auch echt erschossen. Wenigstens die Fehlermeldung hätte vernünftig sein können. Grumpf.