[Be el o ge]

random stuff about web application development … and more :-]

[Be el o ge]

Entries Tagged as 'Programming'

Commit Trick with Tortoise SVN

November 16th, 2009 · No Comments

If you have a really big SVN repository with thousands of files and a rather deep folder hierarchy, opening the Tortoise SVN commit dialog from the root of the hierarchy can take a little while. Waiting sucks but splitting up the commit in multiple commits just for not to wait sucks almost more.
A colleague of mine eventually got so annoyed about slow opening commit dialog’s that he found a way around:

  • Open the commit dialog not at the root but somewhere deep down the hierarchy. This should be pretty fast
  • Browse to the other folders with un-commited files and drag-and-drop them into the commit dialog.
  • That’s it, commit your files.

Sometimes the really helpful things are also the really easy things!

If you have a lot of files to commit you still might be faster opening the commit dialog from the root, but if you have just a handful of files and you know the files, above method will be faster.

[Read more →]

Tags: Programming

How to be a Program Manager

March 15th, 2009 · 2 Comments

Good reading: How to be a Program Manager

[Read more →]

Tags: Programming · Usability

OpenOffice: Verknüpfte SUMIF-Funktionen

April 5th, 2008 · No Comments

Ich habe mir heute ein einfaches Haushaltsbuch in OpenOffice angelegt. Keine große Sache, lediglich eine Kleinigkeit hat etwas Zeit in Anspruch genommen.

Angenommen man hat folgende Tabelle:

Spreadsheet

Nun wollte ich gerne für die Auswertung eine Funktion die automatisch für den jeweiligen Monat und den jeweiligen Posten die Summe erstellt. Für eine Bedingung kann man die Funktion SUMMEWENN (bzw. SUMIF) verwenden. Was ich brauchte war jedoch eine verknüpfte Bedingung und genau das lässt sich mit SUMIF nicht realisieren.

Erfolg hat man hingegen hiermit (Formel aus B11):
=SUMMENPRODUKT((MONAT(A3:A7)=MONAT(B9))*(B3:B7=A11)*(C3:C7))

Zunächst werden die beiden Bedingungen angegeben, am Ende erfolgt dann die Angabe der Zellen die zur Bildung der Summe verwendet werden sollen.
Die erste Bedingung überprüft, ob der Monat der Zellen A3 bis A7 mit dem in B9 (Januar 2008) angegebenen Monat übereinstimmt. Die zweite Bedingung überprüft anschließend, ob der Posten aus A11 (Lebensmittel) mit dem Posten aus den Zellen B3 bis B7 übereinstimmt. B11 zeigt zeigt nun den erwarteten Wert 175,00 EUR an.

[Read more →]

Tags: Programming

Shuffle Algorithm

March 20th, 2008 · No Comments

This is excellent.

Update
and this is too!

[Read more →]

Tags: Cryptography · Programming

IE Developer Toolbar

February 1st, 2008 · No Comments

Für den Firefox gibt es das leistungsfähige Plugin Firebug für Webentwickler. Möchte man Webseiten im IE7 debuggen hilft die IE Developer Toolbar. Nicht so leistungsfähig wie Firebug, aber besser als nichts.

[Read more →]

Tags: Extensions · Internet Explorer · Programming

hexToByte – update

April 30th, 2007 · No Comments

Benutzt man BouncyCastle als Security Provider in Java, kann man einfach diese Funktion verwenden.

org.bouncycastle.util.encoders.Hex.decode(hexStr)

[Read more →]

Tags: Cryptography · Java · Programming

hexToByte

April 29th, 2007 · No Comments

Manchmal ist es schon erstaunlich wie lange man sich manchmal an den simpelsten Funktionen aufhalten kann. Aber “Konvertierungen” vom einen Datentyp in einen anderen sind mitunder schonmal trickreich.
Ich wollte einen String der Bytes als hexadezimalen Wert in der Form “abcde01″ repräsentiert in ein Byte-Array umwandeln. Zwei hexadezimale Ziffern stehen jeweils für ein Byte.
Umgesetzt habe ich das folgendermaßen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
  private byte [] hexToByte(String hexStr)
  throws NumberFormatException {
    byte bArray[] = null;
    try {
      if (hexStr.length() < 2)
        throw new NumberFormatException(" Not long enough." +
            "At least two digits!");
      if (hexStr.length() % 2 != 0)
        throw new NumberFormatException(" Must be even.");
      // remove blanks
      hexStr.trim();
      int lengthOfKey = hexStr.length() / 2;
      bArray= new byte[lengthOfKey];
      for(int i=0; i &lt; lengthOfKey; i++) {
        int actValue = Integer.parseInt(hexStr.substring(2*i,2*i+2), 16); 
        bArray[i] = (byte) actValue;
      }  
    } catch (NumberFormatException e) {
      throw new NumberFormatException("Can't convert key hex value to byte " + 
          "array.\nReason: " + e.getMessage());
    }
    return bArray;
  }

Hintergrund ist folgender: Im KVA Praktikum sollten wir ein Programm schreiben, das für eine Eingabedatei und einen Schlüssel in oben beschriebener hexadezimaler Schreibweise einen MAC für die Datei berechnet.
Daher auch die verschiedenen Exceptions, die ausgelöst werden, wenn der String nicht mindestens zwei Zeichen hat und die Länge eine gerade Zahl ist.

[Read more →]

Tags: Java · Programming

Google Maps API

June 4th, 2006 · 1 Comment

Um Kartenmaterial von Google Maps auf der eigenen Webseite zu integrieren stellt Google eine API zu Verfügung. Damit kann man allerlei nützliche Sachen machen. Wer sich dafür interessiert, sollte sich mal die Dokumentation zur API anschauen. Eine Schwierigkeit besteht allerdings darin das verschiedene Methoden der API geografische Koordinaten verlangen. So z.B. die Methode setCenter in diesem Beispiel:

map.setCenter(new GLatLng(37.4419, -122.1419), 13);

Der Methode wird ein Objekt GLatLng übergeben, welches die Koordinaten enthält. Die “13″ als zweiter Parameter steht für den Zoomfaktor der Karte. Die Angabe einer Adresse ist nicht möglich. Nur wer weiß schon welchen Breiten- und Längengrad eine bestimmte Adresse hat? Die Zuordnung einer Adresse zu einem Breiten- (Latitude) und Längengrad (Longitude) nennt man Geocoding und ist ausdrücklich nicht in der API enthalten.

Im Web gibt es zwar eine handvoll Seiten die genau dieses Geocoding übernehmen. Sie funktionieren jedoch außerhalb der USA entweder garnicht oder nur schlecht und man muss manuell Hand anlegen und das ist manchmal etwas mühsam. Viel einfacher ist es da einfach Google Maps selbst zu benutzen. Und das geht so:

  • Angenommen man möchte die geografischen Korrdinaten von Hölderlinstr. 3 Gebäudeteil E herausfinden. Man lädt Google Maps, gibt die Adresse ein und lässt suchen.
  • Jetzt einen Doppelklick auf das E Gebäude und die Karte wird darauf zentriert.
  • Rechts oben findet sich ein Link “Link zu dieser Seite”. Dieser Link enthält alle notwendigen Informationen. In diesem Beispiel sieht er so aus:
  • http://maps.google.de/maps?f=q&hl=de&q=H%C3%B6lderlinstr.+3,+Siegen&
    ll=50.905597,8.029654&spn=0.002453,0.006781&t=h&om=1
  • Hinter der Angabe ll= verbergen sich die geografischen Koordinaten.
    Breitengrad = 50.905597
    Längengrad = 8.029654
Vielleicht ist das ja nützlich für den ein oder anderen ;)

[Read more →]

Tags: Programming · Web