iPhones bei O2 Germany?

written by Martin Häcker on

Gerade hat mich meine "Tarifberaterin" angerufen und mich darauf hingewiesen das ich meinen Vertrag erneuern könne.

Auf meine Frage wie es denn da mit den iPhones aussieht erhielt ich dann eine ĂĽberraschende Antwort:

"Ja klar, das dauert aber noch bis zum 11. bis die auf den Markt kommen, in welchem von diesen drei geschäften möchten sie den Vertrag denn dann abschließen?"

Doh.

Also entweder:

  • Sie will mich verarschen, damit ich doch einen Tarif ĂĽber sie AbschlieĂźe
  • Sie war völlig Dämlich und hat nicht verstanden das O2 keine iPhones hat
  • O2 hat einen Deal, den sie jetzt ausgeplaudert hat.

Letzteres kann ich mir aber nur sehr schwer vorstellen - denn diese Neuigkeit wäre ja der Vollhammer für die Telekom. Bleibt eigentlich nur noch Möglichkeit eins und zwei.

Ersteres fände ich reichlich geschmacklos - vor allem, was soll dann danach kommen?

Bleibt eigentlich nur noch Möglichkeit zwei. Dagegen spricht allerdings das sie doch sehr überzeugt und resolut klang und auch offenbar diese eindeutige Liste von drei Geschäften in Berlin hatte wo das gehen wird.

Hmm....

Brainworks in presentation

written by Martin Häcker on

Garr Raynolds spricht mal wieder. Seinen Blog verfolge ich ja schon lange - und habe ihn noch nie sprechen hören.

Daher war ich auch am Anfang etwas enttäuscht, da er (IMO) viel besser Schreibt als er spricht. Aber er kommt rein und hält letztlich eine sehr gute Präsentation - mit dem Thema wie man präsentieren soll (nach ihm).

Den Vortrag kann ich daher nur empfehlen.

p.s.: By the way: Durch den Vortrag bin ich auch auf Brain Rules ein Buch von John Medina gestoĂźen, der aus der Sicht eines Molekularbiologen beschreibt was wir ĂĽber das Gehirn wissen und wie wir uns demnach verhalten sollen.

Good stuff. (Buch gerade bestellt)

Hacking TracBlog

written by Martin Häcker on

Well, wir sind weiter gekommen. Man kann sogar schon posten.

Vor allem aber, haben wir eine recht vollständige Testsuite. Und dazu gehören auch funktionale Tests mit Twill.

Die finde ich vom Ablauf her noch reichlich krude und aufwendig, aber ein Anfang ist gemacht.

Wer schon mal einen Blick werfen will, darf das gerne tun. :-)

iTunes - ohne SchlĂĽssel?

written by Martin Häcker on

Ist ja nicht so einfach. Die verschiedenen Versuche waren immer mit nur kurzen Halbwertszeiten gesegnet.

Aber Reqiem ist ganz Nett. Schöne C-Implementierung, verteilt über viele Torrents und mit einer Homepage die in Freenet gehostet wird (1) kann man sich echte Chancen ausrechnen das es mal bestand haben wird.

Zumindest von einer technischen Seite aus.

Davon abgesehen finde ich den Sourcecode aber auch Schick. :-)

(1) Reqiem Homepage: freenet:USK@GSQgFDoeQUG0cSkbUVYYkB-ssqEEavRdo-RDVEAm0jk,rVvV3LjSZq3UNdGJrrup~~ZBPq4ohBhJeKkREXDLULw,AQACAAE/requiem/-1/

Censorship sells

written by Martin Häcker on

and how it does!

Via Rivva (genaues Post weiĂź ich nicht mehr)

Outteach

written by Martin Häcker on

Ich mag es wie Kathy Sierry bloggt. Immer hat sie den Fokus darauf das Benutzer von Software (oder von irgend etwas) dadurch mehr schaffen können.

Das ist der richtige Ansatz.

Zusammengefasst ist dieser Grundsatz vielleicht in dem Zitat: "Outteach not outspend".

Ich bin noch am Ăśberlegen wie das auf Novamedia anzuwenden ist - aber

Stop Shopping!

written by Martin Häcker on

Bloggalujah to ya all!

Now Introducing: Reverend Billy and the Church of Stop Shopping

Und darĂĽber gibts auch eine Dokumentation, die ich mir gerade angesehen habe. GroĂźartig.

Politik und Unterhaltung und auch noch Spiritualität - alles zusammen. Großartig.

Kritische Anmerkungen:

  • Wie ginge es unserer Wirtschaft, wenn tatsächlich niemand mehr ausgäbe als er hat?
  • Wo und fĂĽr wie viel Geld wĂĽrden die Menschen Arbeiten wenn sie keinen Job bei Nike, Wallmart, etc. hätten? (siehe WP: Sweatshop)

Super film.

p.s.: Einige der Songs von der Truppe gibt es hier und noch ein paar sachen hier.

Kommunikationsstrukturen

written by Martin Häcker on

Wohin fĂĽhrt es, wenn in einer Firma keine geordneten Kommunikationsstrukturen existieren?

Richtig, es wird weniger kommuniziert.

Na hat Captain Obvious bei euch auch eingeschlagen?

Ich finde es ja hochspannend, dass Kommunikation so ein Problem ist.

Open Source Projekte lösen das in der Regel so, dass die Mailingliste die ständige und ausdauernde Besprechung ist, in die alle Vorschläge kommuniziert und diskutiert werden. Passt die Kommunikation nicht, wird das Projekt entweder geforkt (wenn es anderen Personen wichtig ist) oder aber das Projekt schläft ein und hört auf. (War also doch nicht soo wichtig)

In Firmen werden gerne agile Methoden eingesetzt um das Problem zu lösen, da diese immer darum kreisen die Arbeit die passiert transparent zu machen und die Kommunikation der Teilnehmer zu erweitern.

Ob das jetzt ein Stand-Up-Meeting oder das Daily-Scrum oder das was weiß ich was ist - immer geht es darum das man regelmäßig kommuniziert.

Wichtig.

Und jetzt zur nächsten Lektion: Wie kriegt man so eine Kommunikationsstruktur in eine Firma hinein die dass (noch) nicht macht?

Warum kann man…

written by Martin Häcker on

… eine Wurzel berechnen indem man einen float einfach um ein Bit nach rechts schiftet?

float InvSqrt(float x)
{
    float xhalf = 0.5f*x; 
    int i = *(int*)&x; // get bits for floating value
    i = 0x5f3759df - (i>>1); // gives initial guess y0
    x = *(float*)&i; // convert bits back to float
    x = x*(1.5f-xhalf*x*x); // Newton step, repeating increases accuracy
    return x;
}

Chris Lomont sich das mal angesehen und seine Erklärung hab ich verstanden.

Was diese Stelle tut:

int i = *(int*)&x; // get bits for floating value
    i = 0x5f3759df - (i>>1); // gives initial guess y0
    x = *(float*)&i; // convert bits back to float

Ist total cool. das Bitmuster des floats wird einfach als long interpretiert - was nichts weiter bedeutet, als das die Teile des Floats, Vorzeichen, Mantisse und Exponent jetzt halt nebeneinander in einem Bitfeld liegen. Wenn man dieses Bitfeld jetzt nach rechts schiftet dann hat man das effektiv eben auch mit jedem der Bitfelder gemacht. Wenn man dann dieses Bitmuster noch etwas manipuliert, indem man es mit einer Korrekturkonstante vermurkst die die Fehler durch das hereinschiften von werten aus der Mantisse in den Exponent minimieren, dann hat man eine tolle Annäherung.

Und diese Annäherung erlaubt es mit nur einem Schritt nach Newton zu einer sehr guten Näherung an die Quadratwurzel zu kommen.

Rockig.

Vor allem finde ich es cool, wie die Hacker hinter diesem Algorithmus ihn gefunden haben. Das konnten sie nämlich nur machen, weil sie genau wussten wie ein float tatsächlich implementiert ist - einem Wissen das die meisten Hacker heute nur noch theoretisch haben - aber nicht so genau das sie dieses Format auch mal so ohne weiteres für so einen fiesen Trick missbrauchen können.

In diesem Sinne: Aus der Geschichte lässt sich viel lernen. :-)

Was macht dieser Code

written by Martin Häcker on

Aus dem Q3 Source Code:

float Q_rsqrt( float number )
{
  long i;
  float x2, y;
  const float threehalfs = 1.5F;

  x2 = number * 0.5F;
  y  = number;
  i  = * ( long * ) &y;  // evil floating point bit level hacking
  i  = 0x5f3759df - ( i >> 1 ); // what the fuck?
  y  = * ( float * ) &i;
  y  = y * ( threehalfs - ( x2 * y * y ) ); // 1st iteration
  // y  = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed

  #ifndef Q3_VM
  #ifdef __linux__
    assert( !isnan(y) ); // bk010122 - FPE?
  #endif
  #endif
  return y;
}

Was macht das und wieso funktioniert es?

(Für all zu ungeduldige: Auflösung)

Was ich besonders spannend finde, ist die Geschichte mit der es entstanden ist. (Und die Fortsetzung)

Total cool.

(via: Einen Podcast von Ryan 'icculus' Gordon [etwa ab min. 30])