Kabelgewirr

B. war zwischendurch da und hat schon die meisten Kabel in der Wand mit einem Klecks Gips befestigt. Der ganze Stolz des Hausherren ist die 8er Dosenecke mit 3x Strom, Lautsprecher vorn, center, hinten, 2x LAN und 1x HDMI. Zum Glück steht kleiner Schrank davor, so dass Gästen der Anblick erspart bleibt.

In Ermangelung tauglicher HDMI-Dosen wurde kurzerhand ein normales Kabel mit fertig konfektionierten Steckern in die Wand gegipst. Ob es eine schlaue Idee war, das billigste no-name-Kabel von Amazon zu nehmen, wird sich rausstellen, wenn der noch zu kaufende Beamer an der Decke erstmalig ausprobiert wird.
Topchecker-M.: das Kabel über allen anderen in die Wand gelegt, so dass man es im Notfall einfach wieder rausreißen kann.

Nachmieter gesucht: 3 Zimmer in der Potsdamer City

Wir suchen ab September 2012 einen Nachmieter für unsere Wohnung in der Potsdamer Innenstadt (Charlottenstraße / Wilhelm-Staab-Straße). Die Wohnung ist super, wird uns aber mit drei Kindern langsam zu klein 🙂

Update (8.8.2012): für die Wohnung ist ein Nachmieter gefunden.

  • 73 m^2
  • 792€ Warmmiete
  • 3. Etage unterm Dach
  • 3 Zimmer, großer Flur
  • WG-tauglich
  • ruhige Innenhof-Lage
  • großer Balkon von jedem Zimmer zugänglich
  • Bad mit Fenster, Badewanne
  • optional: Tiefgaragenstellplatz im Haus (+42 Euro)
  • optional: kostenloser Internetzugang über Freifunk Potsdam

Wer Interesse hat oder jemanden kennt, der jemanden kennt, einfach Bescheid geben.

Himmelfahrt

Was bisher geschah: Anfang Mai wurde von Zp.die Mauer an Hauswirtschaftsraum und Bad eingesetzt. M. und B. verkabeln Spielzimmer und Wohnzimmer.

Zm. macht zwischendurch mal einen Baustellengroßputz und entfernt die fiesen fünffach verklebten Tapetenschichten im zukünftigen Spielzimmer. Ganz große Leistung!

Dieses verlängerte Wochenende nun weitere Verkabelung. größere Einkäufe (Fenster für Schlafzimmer, Recherche zu Badeinrichtung etc.).

Anfang den Boden zu entkeimen – eine sehr fiese Arbeit. Beste Tat des Tages (Freitag): Zp haut die ekelhaften Matratzen in den Hof, anschließend werden sie in die Müllverbrennungsanlage gefahren.

Die alte Balkontür wird entfernt und das Türloch hochgemauert. Einbau und Austausch von Fenstern im Kinderschlafzimmer, Ex-Balkonzimmer und Schlafzimmer.

T. übt mit  Topfbürste an der Flex die alten Fenster abzuschleifen.

Im Schlafzimmer eine böse Überraschung: Beim Ausbau des alten Fensters stellt sich heraus, daß die Vorbesitzer schlauerweise einen tragenden Balken zersägten, um eben dieses Fenster einzubauen. Zp ersinnt eine ausgefeilte Stützkonstruktion, die noch ihrer Umsetzung harrt.

Pfingsten geht es weiter…

Die zukünftige Küche

Mauern, Elektrokram

Langsam wächst die Außenmauer hinter Hauswirtschaftsraum und Bad. Heute mit Hilfe von B. die ersten Elektroleitungen verlegt.

Grundstein am 28.04. gelegt

Am nächsten Tag schon viel höher…

Schicke Kabelkanäle hat M. da gefräst…

Nachwuchsmaurer

Fundament

fundament im gässchen  betoniert- rechtes regenwetter hat teilweise den beton verdünnt

Frohe Ostern

Einiges geschafft am Osterwochenende: Abflußleitung hinter dem Haus verlegt und eingesandet sowie erste Betonschicht verfüllt.

Innen mit Tapetenkratzerei weitergemacht, die vielen Schichten im Wohnzimmer sind hartnäckig.

Noch ätzender ist allerdings die Schaumstofftapete im Kinderzimmer. Melle tobt sich zwischendurch an Tür, hölzerner Verkleidung und Fußleisten aus.

Gründonnerstag Besuch von Elektrikermeister B., welcher wortreich sämtliche Installationsalternativen erklärt. Läuft.

 

Abriß VI

Er ist weg! Nix mehr zu sehen vom Vorbau, welcher – wie man nun, da er weg ist, erstmal so richtig merkt – doch ganz schön Licht und Raum weggenommen hat. Der Betonboden,  zuletzt vor 40 Jahren gesichtet, sieht prima aus. Nur die oberste Treppenstufe ist ein bisschen angeknackst, ist aber nach Z.s Meinung reparabel.

Hinter dem Haus hat Z. noch den zukünftigen Entwässerungsgraben ausgehoben und dabei etliche Monsterblöcke gespalten. Der zweite Container ist nun auch fast voll.

Vom Warmwerden

Eins ist mal klar: der kommende Winter wird nix für Feiglinge. Die Kombination aus Ofenheizung (mit Elektro-Backup) und praktisch ungedämmten Wänden wird sicher einige Male zum Zähneklappern führen. Jedenfalls sollten schon mal erste Vorbereitungen getroffen werden:

  • Tantchen I. um Familienvorrat Stricksocken bitten
  • mit Fleeceklamotten eindecken
  • Wärmflaschen durchzählen
  • Bettdecken verdoppeln
  • und ganz wichtig: Kohlen ranschaffen

Anruf beim Landhandel ergab: Sommerpreise für lose Kohlen 197 € / t, gebündelt oder gesackt 5,60 € / 25 kg, plus 25 € Transport. Bestellung bis Ende Mai, Abholung/Lieferung bis Ende Juli. Na dann.

Denken übrigens darüber nach, das Bad doch mit Fußbodenheizung auszustatten. Wär sicher ein enormer Komfortgewinn.

Abriß V

Mit Hilfe des 25kg-Boschhammers machte Z. dem Betonfußboden des ehemaligen Vorbaus sowie den obersten beiden Hohlblockreihen den Garaus. Die Füllmasse, roter Sand, war allerdings mit etlichen großen und kleinen Steinen versetzt.  Das erschwert die Schaufelei ganz schön. Nicht zu bremsen ist allerdings M., der mit viel Schwung den Sand  in (ungefähre) Richtung der Schubkarre feuerte. Stundenlang.

Abriß IV

Komplettes Abstützen der hinteren Hauswand.

Abtragen der Mauer, beim Verfüllen der Überreste in den Container erhebliche Staubentwicklung. Schlägt auf den Familienfrieden, ob es auch den Land- bzw. Nachbarschaftsfrieden beeinträchtigt läßt sich noch nicht feststellen.

Abtragen der restlichen Vorbau-Plattform erweist sich als ziemlich schwierig, jedenfalls mit den vorhandenen Gerätschaften.

Sonntag nachmittag geht es der Rigipswand im zukünftigen Schlafzimmer an den Kragen. Es ist auf einmal doppelt so groß.

Interessante Fundstücke:

  

Zur Entspannung: Einzeichnen der Kücheneinrichtung für die Steckdosenkalkulation.

Abriß III

Weiter geht es mit den Abrißarbeiten: hintere Hauswand abgetragen und Bad entkernt, wiederum mit tatkräftiger Unterstützung von W.

M. nimmt sich die feineren Arbeiten vor, namentlich Entfernung der Deckenpaneele in Kinder- und Wohnzimmer sowie sämtlicher Steckdosen und Lichtschalter.

Anhänger

Um für sämtliche Be- und Entsorgungsfälle, die ja zwangsläufig bei einer derartigen Bauaktion anfallen, gerüstet zu sein, kauft Z. kurz entschlossen einen Anhänger. Dieser wird heute in Werneck abgeholt. Sehr lustige Fuhre, Z. und T. sowie die drei Zwerge, auf dem Rückweg noch ein kurzer Abstecher in den Baumarkt Mellrichstadt.

Kleiner Wermutstropfen: Es stellte sich, leider erst abends, heraus daß das Stützrad des Anhängers defekt war. Stand sogar drauf.

Abriß II

Zweite große Abrißaktion, welcher der Vorbau und der hintere Anbau zum Opfer fielen. Freitag innerhalb von drei Stunden letzteres erledigt.

Samstag früh im dichten Nebel spektakulärer Kraneinsatz um Betondachplatte des Vorbaus in den Container zu befördern.

Vorbildliche Teamarbeit zwischen Z. und W. um den Vorbau bis auf die Grundmauern abzuknabbern.

Besondere Vorkommnisse: Zusammenbruch des Schleppdachs mit Z. obendrauf. Zusammenbruch eines Steinabsatzes, ebenfalls mit Z. obendrauf. Stuntquote für das Wochenende mehr als erfüllt.

Abriß I

Das Häuschen ist schon ein bisschen speziell. Es gibt nicht nur ein außen liegendes, aber unbenutztes, Klo, sondern auch ein innen liegendes, welches über keinen Wasserzugang verfügt. Ein Geheimraum ohne Zugang, welcher einstmals einen Öltank beherbergte, fügt sich zwischen Bad und Außenwand ein.

Jedenfalls fängt Z. schon einmal an, den Innenklobunker zu entfernen.

An one finger rotation gesture recognizer

Last year we developed the Raumfeld iPhone App. The goal was to build something that could replace our native controller completely. The main design feature of the native controller is the massive volume knob. Of course we wanted to have something similar in our App, so the designer created the volume screen with a big knob, as shown in the right picture.

To create a volume control, we needed a way to detect if the user performs a rotation gesture on the knob image. There is no default UIGestureRecognizer that detects such a gesture, so we had to implement a custom gesture recognizer. It was surprisingly easy – to be honest, the hardest part was to do the math right.

To track the finger movement, we need to check for every touch event, whether it is within the defined area. The gesture is rotating, so there is a center point m, the radius a which defines the minimum distance from m and the radius b which defines the maximum distance from m. Finally we need to calculate the angle ? between the startpoint and the current finger position (relative to m).

For the first check, we calculate the distance d from the center and make sure, that a < d < b is true.

/** Calculates the distance between point1 and point 2. */
CGFloat distanceBetweenPoints(CGPoint point1, CGPoint point2)
{
    CGFloat dx = point1.x - point2.x;
    CGFloat dy = point1.y - point2.y;
    return sqrt(dx*dx + dy*dy);
}

The rotation angle is the angle between the two lines a and b. The arc tangent function atan() is the key:

/** The method is a bit too generic - in our case both lines share the same start point. */
CGFloat angleBetweenLinesInDegrees(CGPoint beginLineA,
                                   CGPoint endLineA,
                                   CGPoint beginLineB,
                                   CGPoint endLineB)
{
    CGFloat a = endLineA.x - beginLineA.x;
    CGFloat b = endLineA.y - beginLineA.y;
    CGFloat c = endLineB.x - beginLineB.x;
    CGFloat d = endLineB.y - beginLineB.y;
 
    CGFloat atanA = atan2(a, b);
    CGFloat atanB = atan2(c, d);
 
    // convert radiants to degrees
    return (atanA - atanB) * 180 / M_PI;
}

Ok, that was the hard part 🙂 To implement a custom gesture recognizer, let’s have a look at the UIGestureRecognizer API docs, especially the subclassing notes. We just need to overwrite five methods

- (void)reset;
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;

The key is touchMoved:withEvent: This method checks the distance of the touch event from the center point. If the touch is within the valid area, the angle between the start point and the current touch position is calculated. The result is sent to the delegate object of our class.

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    [super touchesMoved:touches withEvent:event];
 
    if (self.state == UIGestureRecognizerStateFailed) return;
 
    CGPoint nowPoint  = [[touches anyObject] locationInView: self.view];
    CGPoint prevPoint = [[touches anyObject] previousLocationInView: self.view];
 
    // make sure the new point is within the area
    CGFloat distance = distanceBetweenPoints(midPoint, nowPoint);
    if (   innerRadius < = distance
        && distance    <= outerRadius)
    {
        // calculate rotation angle between two points
        CGFloat angle = angleBetweenLinesInDegrees(midPoint, prevPoint, midPoint, nowPoint);
 
        // fix value, if the 12 o'clock position is between prevPoint and nowPoint
        if (angle > 180)
        {
            angle -= 360;
        }
        else if (angle < -180)
        {
            angle += 360;
        }
 
        // sum up single steps
        cumulatedAngle += angle;
 
        // call delegate
        if ([target respondsToSelector: @selector(rotation:)])
        {
            [target rotation:angle];
        }
    }
    else
    {
        // finger moved outside the area
        self.state = UIGestureRecognizerStateFailed;
    }
}

target needs to implement some kind of protocol to allow the gesture recognizer notification of movements:

@protocol OneFingerRotationGestureRecognizerDelegate <nsobject>
@optional
/** A rotation gesture is in progress, the frist argument is the rotation-angle in degrees. */
- (void) rotation: (CGFloat) angle;
/** The gesture is finished, the first argument is the total rotation-angle. */
- (void) finalAngle: (CGFloat) angle;
@end
</nsobject>

And that’s the whole magic. To use the gesture recognizer, create an image of a rotating control and add a gesture recognizer to your view:

// calculate center and radius of the control
CGPoint midPoint = CGPointMake(image.frame.origin.x + image.frame.size.width / 2,
                               image.frame.origin.y + image.frame.size.height / 2);
CGFloat outRadius = image.frame.size.width / 2;
 
// outRadius / 3 is arbitrary, just choose something >> 0 to avoid strange 
// effects when touching the control near of it's center
gestureRecognizer = [[OneFingerRotationGestureRecognizer alloc] initWithMidPoint: midPoint
                                                            innerRadius: outRadius / 3 
                                                            outerRadius: outRadius
                                                                 target: self];
[someView addGestureRecognizer: gestureRecognizer];

As soon as a gesture is detected, the delegate method is called and you can rotate the image according to the angle:

- (void) rotation: (CGFloat) angle
{
    // calculate rotation angle
    imageAngle += angle;
    if (imageAngle > 360)
        imageAngle -= 360;
    else if (imageAngle < -360)
        imageAngle += 360;
 
    // rotate image and update text field
    image.transform = CGAffineTransformMakeRotation(imageAngle *  M_PI / 180);
    textDisplay.text = [NSString stringWithFormat: @"\u03b1 = %.2f", imageAngle];
}

I’ve created a sample project on github, feel free to play with. Also make sure to read Ole Begemanns article about the UX details on gesture recognition.

Los geht’s…

Ist man erstmal Mitte dreissig und haben sich so zwei, drei Kinder angesammelt kommt einem früher oder später die Idee: ein eigenes Haus muss her! Also fangen wir mal an, mit einer kleinen, (arg) renovierungsbedürftigen Doppelhaushälfte auf dem Dorf. Der Fischhütte.

Namensschilder für Polizisten: potentiell tödliche Waffen!!!1!!

Nein, ernsthaft. Wenn jetzt alle Polizisten in Berlin ein Namensschild tragen, kann jeder dahergelaufene Gelegenheitsmörder dem Polizisten das Namensschild entreißen und damit ein Massaker anrichten. Bodo Pfalzgraf, Vorsitzender der deutschen Polizeigewerkschaft demonstriert die von den Namensschildern ausgehende Gefahr an einem Eisbein.

Die Plastikteile könnten den Polizisten entrissen und als lebensbedrohliche Waffe eingesetzt werden.

Große Sprüche auch von Rainer Wendt:

Die Zwangskennzeichnung ist ein gigantischer Misstrauensbeweis in unsere Polizei“, sagt Rainer Wendt, Bundesvorsitzender der Gewerkschaft. Das Vertrauensverhältnis der Bürger in die Polizei sei hervorragend, die individuelle Kennzeichnung daher überflüssig.

Richtig! Es ist ja noch NIE vorgekommen, dass die Polizei versehentlich Demonstranten mit verprügelt hat. Nie! NIE! Ehrenwort! Die Leidtragenden sind letztendlich die armen Polizisten:

Einige Kollegen hätten sich beim Anschnallen im Auto an den Kanten in den Arm geritzt.

Ich muss mir erstmal ein Taschentuch holen… schnüff..