feed
Miro: 2006 - 23.3.2010
Wed - 24 March - 2010
Es kommt häufig vor, dass Leute Katzen auswählen und mit nach Hause nehmen, doch es kommt eher selten vor, dass sich eine Katze eine Familie auswählt. Doch genau so war es bei Miro, welcher vor ca. 4 Jahren mehr oder weniger zufällig zu unserer Familie aufgenommen wurde.

Er hat uns in all den Jahren sehr viel Vergnügen, Wärme und ab und zu einen Vogel nach Hause gebracht.
Darüberhinaus hatte er auch einen sehr starken Charakter und hat sich oftmals nichts sagen lassen und jeglichen Verfügbaren Platz für sich beansprucht. Doch genau das war es, was wir an ihm so gemocht haben.

Doch leider hat jede noch so schöne Zeit auch mal ein Ende und diese hatte es Heute Morgen, als wir unseren Kater einschläfern lassen mussten, weil er an Blutkrebs leidete.

Es ist wirklich ein grosser Verlust für unsere ganze Familie, aber zum Glück hatten wir die Chance uns bei ihm zu verabschieden, was bei Katzen oftmals nicht der Fall ist.

Doch genug der Worte. Ich möchte ihn in Erinnerung behalten, wie er war, nämlich:

Träge:

picture



Faszinierend:

picture



Graziös:

picture



Verspielt:

picture



Besitzergreifend:

picture



Genau so liebten wir ihn und werden ihn für immer in Erinnerung behalten!
In dem Sinne Ruhe in Frieden Miro. Es war eine grossartige Zeit!
Last Edit: 2010-03-24 00:13:24
1 Kommentar | Kommentieren
Gefällt mir
Musik, Musik, Musik!
Thu - 18 March - 2010
Ja. Heute geht es einmal nicht um irgendwelche technischen Programmiersachen oder Computerzeugs, sondern es geht um etwas, was, denke ich jeder versteht und kennt. Nämlich Musik.

Musik ist ein immer ein treuer Begleiter und kann einem die morgendliche Zugfahrt doch ein wenig versüssen.
Doch ein kleines Problem gibt es da doch mit der Musik. Man mag nicht jeden Tag die gleiche CD (oder woher man halt die Songs hat ) hören. Doch bei täglich 1-2 Stunden Hörgenuss wird die Auswahl doch recht schnell sehr klein. Und wirklich Lust etwas, was man bereits 1000x gehört nochmal einzuschalten habe ich nicht wirklich (und wahrscheinlich geht es den meisten auch so).

Doch es gibt ja diese genialen Onlineradios, welche aber leider unterwegs nicht oder nur beschränkt verfügbar sind (und wenn man nicht gerade ein sehr teures Natelabo für Webzugang hat auch sehr teuer werden kann).

Also bleibt einem nicht viel mehr übrig, als Songs runterzuladen und dann auf den MP3 Player zu kopieren. Und wenn man nicht auf den Filesharing Pfaden wandeln möchte, dann ist auch da die Auswahl eher knapp oder die Suche stellt sich als sehr zeitaufwendig dar.

Doch was wäre ich für ein Unmensch, wenn ich einer solch verzwackte Situation nicht mit einer Lösung kommen könnte.

Der einzige Haken ist, dass ich jetzt nicht für jeden Musikgeschmack etwas anbieten kann, sondern nur für den im Moment von mir favorisierten, nämlich eine Mischung von electronic Dance, Trance, House. Ich bin nämlich schon seit ca. 3/4 Jahr begeisterter Hörer von Tiestos Clublife, einem wöchentlichen Podcast des Niederländischen Radios 538, welches - moderiert von Tiesto persönlich - jede Woche ca. eine Stunde remixes von weniger bekannten DJ's aus der ganzen Welt spielt. Mit dabei auch immer mal wieder ein Original Track von Tiestos eigenen Alben. Für alle, die Tiesto nicht kennen sei gesagt, dass er ein sehr erfolgreicher DJ und Produzent ist und auch ab und an mal was mit Pop Künstlern, wie z.B Nelly Furtado macht[1].

Die wenigsten können behaupten, dass sie Radio von einem weltberühmten DJ zusammengestellt hören. Ich kanns.

Der Podcast kann über iTunes kostenlos aboniert werden und man hat dann jede Woche eine Stunde neuen, frischen Sound.
Der Podcast ist auch für dijenigen verfügbar, die kein iTunes benutzen möchten, nämlich hier. Die sind allerdings nicht immer auf dem neusten Stand, aber ein grosser Vorteil ist, dass auch die älteren Folgen noch verfügbar sind.

Natürlich wäre es ziemlich schach bei einem solchen Blogeintrag, wenn ich nicht auch gleich ein paar meiner Lieblingssongs vorstelle:

DJ Tiesto - Tales From the South
Medina - You and I (Svenstrup & Vendelboe Remix)
Lost Witness - Happiness Happening
DJ Tiësto - Traffic
DJ Tiësto - Everything
DJ Tiësto - Moonlight Party
DJ Tiësto - Adagio for strings
DJ Tiësto feat Andain - Beautiful Things
System F - Out Of The Blue
Rafael Frost - Black Box
...

Wie man sieht könnte ich noch einiges länger weiter machen, aber ich denke die Richtung ist klar. Ich hoffe ich konnte dem einen oder anderen den Podcast schmackhaft machen.

Falls du einen anderen (besseren?) Podcast kennst, dann hinterlass doch einen Kommentar und lass und teil haben!

btw:
Falls jemand Tickets für ein Konzert von Tiesto hat und damit nichts anzufangen weiss. Ich wüsste da etwas.
Last Edit: 2010-03-18 01:12:36
Keine Kommentare | Kommentieren
Gefällt mir
[Metaprogrammierung] - Römische ZahlenJemand mag diesen Artikel.
Wed - 24 February - 2010
Aus irgendeinem Grund dachte ich Heute Morgen im Zug beim Weg an die ETH an römische Zahlen und welche Möglichkeiten man so hat diese in die uns bekannteren Ziffern umwandeln kann. Ich bin relativ schnell zum Schluss gekommen, dass es wohl sehr einfach ist und habe mir dann natürlich überlegt, ob man da mit Templatemetaprogrammierung ebenfalls so leicht auf eine Lösung kommt.
Auf der Heimfahrt am Nachmittag dann habe ich im Zug angefangen und ein erstaunlich einfache Lösung gefunden (und das trotz der beiden Mädchen, welche neben mir gesessen sind und probiert haben sich zu schminken und Haare zu schneiden.. Als die einte dann angefangen hat in dem holprigen Zug mit einer riesen Schere die Augenbrauen der Freundin zu stutzen konnte ich mir ein schmunzeln und ein kleines Flashback an Final Destination nicht verkneifen.. ).

Aber genug abgeschweift. Das Ziel war, dass man römische Zahlen im Code hinschreiben kann und dann zur Kompilierungszeit der genaue Wert da steht:
  1. roman::X::L::I::I::value; // XLLI = 42


Ich rede jetzt nicht lange um den heissen Brei, sondern zeige kurz und schmerzlos den Code, mit dem das möglich ist:
  1. #define evaluate(va,v,s) (va+v-((v>s)?2*s:0))
  2.  
  3. template<int va = 0, int s = 0>
  4. struct roman_t
  5. {
  6. typedef roman_t<va+1, 1> I;
  7. typedef roman_t<evaluate(va,5,s),5> V;
  8. typedef roman_t<evaluate(va,10,s),10> X;
  9. typedef roman_t<evaluate(va,50,s),50> L;
  10. typedef roman_t<evaluate(va,100,s),100> C;
  11. typedef roman_t<evaluate(va,500,s),500> D;
  12. typedef roman_t<evaluate(va,1000,s),1000> M;
  13. typedef roman_t<evaluate(va,4,s),4> IV;
  14. typedef roman_t<evaluate(va,6,s),6> VI;
  15.  
  16. enum { value = va };
  17. };
  18. typedef roman_t<> roman;


Die letzten beiden typedefs wären nicht nötig, aber weil sie häufig benutzt werden, habe ich sie auch noch rein gepackt. Die einfache Umrechnung (ohne Substraktionsregel) ist viel einfacher, da sie lediglich die Zahlen addieren muss. Da wir aber natürlich mit der Substraktionsregel römische Zahlen definieren wollen, braucht man natürlich noch die Zahl vom letzten Schritt ( template Parameter s). Danach wird der Compiler ein wenig als Taschenrechner missbraucht um die konstante Berechnungen durchzuführen (in dem makro), um zu testen, ob die Substraktionsregel angewandt werden soll, oder nicht.

Nun können wir wie gewünscht römische Ziffern ohne schlechtes Gewissen in unseren Programmen benutzen. Und Dank der Substraktionsregel kann man einiges an Tipparbeit sparen, wie man hier gut sieht:
  1. roman::M:: D::C::C::C::C::L::X::X::X::V::I::I::I::I::value;
  2. roman::M::C::M::L::X::X::X::I::X::value;


Na, wer errät jetzt was das für eine Zahl ist und für welches historische Ereignis sie steht?
Last Edit: 2010-02-24 21:43:54
5 Kommentare | Kommentieren
Gefällt mir
RSA-Kryptosystem - Kurzgefasst
Sun - 21 February - 2010
Aufgrund einer Frage in einem Forum habe ich einen kleinen Artikel über die Funktionsweise des RSA Kryptosystemes geschrieben. Und den möchte ich meinen regelmässigen Lesern natürlich nicht vorenthalten.

Idealerweise sollte für das Verstehen des Artikels das rechnen mit dem Modulo Operator bekannt sein. Der Begriff einer Gruppe ist vor allem wichtig für die Beweisbarkeit des Theorems und des Verfahrens, spielt aber weniger eine Rolle für das alleinige Verständniss.

Als erstes brauchen wir ein Theorem, welches ich jetzt einfach mal in den Raum stellen muss, weil ich sonst weiter in die Theorie gehen müsste.

Theorem
Man hat G, eine endliche Gruppe und ein Element e, welches relativ Prim ist zu picture (der Ordnung der Gruppe; Anzahl Elemente in der Gruppe).
Wenn wir jetzt eine Zahl y, wie folgt berechnen:

picture

Dann kann die e'te Wurzel von y (Element von G), also x (Element von G) kann einfach berechnet werden mit:

picture
wobei d das multiplikative Inverse von e modulo picture ist.

Wenn wir also picture kennen, dann können wir d mit dem extended Euclidean algortihm berechnen. Ohne picture zu kennen ist nicht bekannt, wie man d berechnen kann. Das ist der Knackpunkt der Geschichte und was das ganze "sicher" macht.

Beispiel
Machen wir mal ein kleines Beispiel, damit wir uns etwas darunter vorstellen können.
Wir nehmen jetzt mal die Gruppe picture (Menge der Zahlen 1 - 10, welche relativ Prim zu 11 sind, also: picture. picture ist in dem Falle 10. Jetzt müssen wir für e eine Zahl nehmen, welche relativ Prim zu picture ist. Nehmen wir mal 3.

Wir errechnen jetzt kurz d. Wegen der Bedingung

picture

erhalten wir die Gleichung: (R steht für den Rest bzgl. der Division der kleinen Zahl)

picture

Also ist d offensichtlich 7.


Wenn wir jetzt eine Zahl aus der Menge nehmen und das y errechnen haben wir z.B das hier:

picture

Wir prüfen kurz nach, ob das stimmt:

picture

Wunderbar. Das Theorem scheint zu stimmen. (Der Beweis wäre nicht so aufwendig, aber er verlangt eine Menge vorranige Definitionen, Theoreme und Beweise, darum erspare ich mir das jetzt mal)

Vom Theorem zu RSA
Der Trick liegt jetzt, wie bei dem Theorem angetönt dort, dass man ohne die Ordnung der Gruppe zu kennen man kein Inverses von e berechnen kann. Nun kommt das Problem, dass der Gegenüber natürlich wissen muss, aus welchen Zahlen er seine Nachricht wählen darf, weil sonst die Umkehrung natürlich nicht funktioniert. Nun haben die 3 Leute, nach denen das Verfahren benannt ist vorgeschlagen für die Gruppe die Klasse picture zu nehmen, wo picture, also das Produkt von 2 genug grossen Primzahlen ist. Die Ordnung ist dann bestimmt durch picture. Man muss also eine Primfaktorenzerlegung machen, was bekannterweise sehr schwer ist, wenn man an die Ordnung kommen möchte. Anderseits kann man eine Nachricht Verschlüsseln ohne die Ordnung zu kennen, sondern lediglich in welcher Gruppe wir sind (picture natürlich).

Nun nach dem bekannten Schema geht man so vor:
Alice:
Generiert Primzahlen p und q und macht dann gleich

picture
und
picture

Alice wählt ein e und berechnet d so dass:
picture

Alice sendet nun n und e über einen öffentlichen Kanal Bob zu, welcher dann eine Nachricht m aus picture wählt und den Rest zu n von picture wählt:
picture
Dieses y wird dann wieder Alice zurückgeschickt und Alice kann dann mit dem d ganz einfach die Nachricht erhalten, indem sie den Rest zu n von picture errechnet:
picture

m ist dann wieder die Nachricht, die von Bob gewählt wurde.

Ein Angreifer sieht also lediglich n und e durch die Gegend schwirren, aber um das y, dass er ebenfalls sehen kann entschlüssel kann, müsste er eine Primfaktorenzerlegung von n machen, was natürlich bei grossen Zahlen bekannterweise sehr schwer ist.

Zu sagen ist, dass eben die Primzahlen genügend gross gewählt werden müssen, weil man sonst einfach alles ausprobieren kann und das der Kanal zwar öffentlich, aber authentisch sein muss, weil sonst die Gefahr einer Man-in-the-middle Attacke besteht.

Wer sich für die exakten Hintergründe interessiert, dem seie Algebra, Zahlentheorie und modulare Arithmetik der höheren Stufe ans Herzen gelegt.
Last Edit: 2010-02-21 22:22:29
Keine Kommentare | Kommentieren
Gefällt mir
Backups leicht gemacht - Teil 1
Mon - 08 February - 2010
Lange hats gedauert, doch nun endlich habe ich es doch geschafft den Artikel über Backuping fertig zu stellen und vor allem in rauf zu laden.

Backups, das leidige Thema der Informatik. Vielfach wird die Datensicherung unterschätzt und oftmals gar nichts dafür unternommen, weil die Unordentlichkeit, welche, zugegebenermasse nicht nur vom User kommt einfach ein grosses Hindernis darstellt.

Warum tun wir es nicht?
Ein grosses Problem der Backups ist bestimmt der Mensch. Man ist einfach zu faul sich etwas anständiges einzurichten, um die Daten zu sichern. Warum auch? Die Daten gehen ja nicht einfach so verloren..
Ich weiss, wovon ich rede, da ich es eben auch viel zu lange vor mich hingeschoben habe einmal etwas anständiges einzurichten. Mehr als sporadische Kopien auf die externe HD und ein paar gebrannten CD's habe ich nie wirklich gemacht. Aber das ist jetzt vorbei. Wie ich das im Detail gelöst habe, werde ich später noch erläutern.

Aber nicht nur der Mensch ist ein Hindernis seine Daten anständig zu verwalten. Da spielt das Betriebssystem, sowie auch die installierten Programme eine wichtige Rolle. Viele Programme sind, was den Ort der Installation und der Anwendungsdaten, wie Profile anbelangt sehr eigenemächtig und eine Bündelung ist unmöglich.

Warum sollten wir es tun?
Ich denke, dass jeder weiss, warum man seine Daten sichern sollte. Meist ist es ja so, dass, wenn etwas kaputt geht, dann ist es die Festplatte, denn mechanische Teile sind nunmal fehleranfälliger, als rein elektronische. Und wie schnell ist ein Notebook auf den Boden gefallen, oder (und das sollte seltener passieren) ein Getränke über den PC geschüttet. Der rein finanzielle Schaden ist zwar meist hoch, allerdings nicht das schlimmste, da in den Daten oft sehr viel Arbeit steckt. Und wie schön ist es dann zu wissen, dass man ein (zumindest mehr oder weniger) aktuelles Backup irgendwo hat?

Wie sollte man es tun?
Das wohl wichtigste Kriterium eines Backup Systems ist es, dass es vollautomatisch ist. Man möchte einfach nicht jeden Tag dran denken müssen seine Daten zu sichern, oder auch nur ein Programm dazu zu starten. Auf die Dauer macht man das einfach nicht mehr. Ein weiteres, wichtiges Bestandteil ist die Regelmässigkeit. Es bringt nicht viel, wenn man zwar ein voll automatisches Backupsystem hat, welches aber lediglich alle 6 Monate die Daten sichert. In dieser Zeit kann sehr viel passiert sein und man hat mit diesen Daten dann nicht sehr viel gewonnen. Wie oft die Daten dann gesichert werden hängen bestimmt von der Wichtigkeit der Daten ab und wie oft sie geändert werden.

Eine Lösung?
Die perfekte Lösung gibt es natürlich nicht, da jeder andere Daten und von anderen Wichtigkeiten hat. Auch andere spezielle Anforderungen können nicht generell abgedeckt werden. Ich kann aber mal aufzeigen, wie ich es bei mir eingerichtet habe. Es ist mehrfach redundant, automatisch und verteilt.

Die Umgebung besteht aus einer externen Festplatte, einer Workstation (in meinem Fall ein Notebook) und dann zusätzlich noch beliebig viele andere Clients, an denen ich tätig bin. Die externe Harddisk sieht so aus:

  • Filme
  • Musik
  • Daten (mobile, static )

In erster Linie enthält der static Order alle Daten, die keine Filme oder Musik sind. Also auch Projekte, Papers, Downloads usw. Dann verschiebe ich aber dijenigen Dinge, wie aktuelle Projekte, Materialien, die ich immer mal wieder brauche in den mobil Ordner. Dann wird dafür gesorgt, dass diese beiden Ordner mit der Arbeitsstation gespiegelt werden. Ich benutze dazu das Freewareprogramm Synctoy von Microsoft. (ein paar Tipps dazu weiter unten)
Nun haben wir also die ganzen Daten gespiegelt. Doch was ist mit dem ominösen mobile Ordner? Wie der Name andeutet, möchte ich diese Daten immer dabei haben, egal, wo ich bin und an welchem PC ich sitze. Also wird dieser Ordnern mit Dropbox synchronisiert. Und ich kann jetzt an beliebig vielen Clients mit meinen aktuellen Daten arbeiten und sie sind immer aktuell und gesichert. Dazu kann ich ebenfalls auf alle meine wichtigen Daten mit meinem iPhone zugreifen, weil Dropbox ebenfalls einen iPhone Client hat, welcher allerdings die Daten on the fly runterlädt, wenn sie benötigt werden.

Filme und Musik müssen nicht gesichert werden. Die kann man meiner Meinung nach ruhig irgendwo zentral lagern und/oder sich ein paar DVD's brennen.
Nun synchron gehalten wird das ganze Stufenweise. Die oft benutzen Sachen befinden sich ja im mobile Ordner, welcher (bei Internetanschluss) in Echtzeit synchronisiert wird. Täglich wird dann der mobile Ordner auf die externe Festplatte gespiegelt. Und jede Woche wird dann der komplette Daten Ordner synchronisiert.

Vorteile/Nachteile
Vorteil von diesem System ist, dass es kaum Zeit für mich in Anspruch nimmt. Alles, was ich zu tun habe ist täglich meine HD anzuschalten und eine Meldung zu quitieren. Dazu kommt noch, dass wichtige Daten mehrmals in sehr aktuellem Zustand vorhanden sind (externe HD, Workstation, Server von Dropbox und unter Umständen auf noch mehr Clients). Falls etwas ausfällt habe ich so die Möglichkeit an 2 oder mehr Orten die Daten wieder zu holen. Nachteile sehe ich gross keine, ausser, dass die externe HD kein richtiges Systembackup enthält, sondern ja nur ein inkrementelles Dateisystem darstellt. Für private Angelegenheiten denke ich aber, dass das mehr als genügt.
Last Edit: 2010-02-08 19:59:47
3 Kommentare | Kommentieren
Gefällt mir
Seite: 1 | 2 | 3 | [4] | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19
2 Kommentare | KommentierenLast Edit: 2008-09-17 20:35:41
Login
Neuste Kommentare:
emescipsy
&#1053;&#1072;&#1076;&#1086;&#1077;&#1083; &#1089;&#1082;&#1091;&#1095;&#1085;&#1099;&#1081; &#1076;&#1080;&#1079;&#1072;&#1081;&#1085; &#1089;&#1074;&#1086;&#1077;&#1075;&#1086; &#1076;&#1077;&#1074;&#1072;&#1081;&#1089;&#1072;?
&#1057;&#1091;&#1087;&#1077;&#1088; &#1082;&#1088;&#1091;&#1090;&#1099;&#1077; &#1085;&#1072;&#1082;&#1083;&#1077;&#1081;&#1082;&#1080; &#1076;&#1083;&#1103;... >>
Directivityl

&#1059;&#1076;&#1080;&#1074;&#1080;&#1090;&#1077;&#1083;&#1100;&#1085;&#1099;&#1081; &#1087;&#1072;&#1088;&#1072;&#1076;&#1086;&#1082;&#1089; &#1085;&#1072;&#1073;&#1083;&#1102;&#1076;&#1072;&#1077;&#1090;&#1089;&#1103; &#1074; &#1085;&#1072;&#1096;&#1077;&#1084; &#1075;&#1086;&#1089;&#1091;&#1076;&#1072;&#1088;&#1089;&#1090;&#1074;&#1077; "&#1059;&#1082;&#1088;&#1072;&#1080;&#1085;&#1072;". &#1042;... >>
BlummaAnymn
&#1050;&#1072;&#1095;&#1077;&#1089;&#1090;&#1074;&#1077;&#1085;&#1085;&#1099;&#1077; &#1087;&#1088;&#1086;&#1075;&#1086;&#1085;&#1099; &#1061;&#1088;&#1091;&#1084;&#1077;&#1088;&#1086;&#1084;
&#1044;&#1086;&#1073;&#1088;&#1086;&#1075;&#1086; &#1074;&#1088;&#1077;&#1084;&#1077;&#1085;&#1080; &#1089;&#1091;&#1090;&#1086;&#1082;, &#1091;&#1074;&#1072;&#1078;&#1072;&#1077;&#1084;&#1099;&#1077; &#1075;&#1086;&#1089;&#1087;&#1086;&#1076;&#1072;,
&#1087;&#1088;&#1077;&#1076;&#1083;&#1072;&#1075;&#1072;&#1102;... >>
SpeteAntizper
Also other drugs like Viagra performance on the enzyme... >>
Era4
Namibia|Walvis... >>
Beliebteste Artikel:
(35) Ajax Action und beliebteste Artikel >>
(25) Let there be likes! >>
(9) [C++] - Static Initialization >>
(4) BIRD - BASTLI Interactive RGB Dancefloor >>
(4) Und ewig grüsst der Stack >>