Using the KeePass ssh agent with cygwin windows

http://lechnology.com/software/keeagent/

  • download zip file and extract the KeeAgent.plgx file the directory where your KeePass.exe file resides. Restart KeePass.

  • Add entry to database, set password to the one of the private key, attach private key file, right click, enable as ssh key. and specify which attached file to use (auto selects id_rsa).

  • In Options.KeeAgent, enable cygwin socket and set it to the windows path of your cygwin home .ssh folder plus some name in bash export SSH_AUTH_SOCK=$HOME/.ssh/socket

  • ssh-add -l should output something

Setup Android adb on Windows 7

  • install AdbDriverInstaller.exe to get the ADB USB drivers
  • install the Android SDK
  • download TWRP
  • on your phone go to the developer settings and enable android debugging, to enable the developer settings tap 7 times on the build number check if adb devices works, it should show a list of connected devices, allow the connection from your phone
    $ adb reboot bootloader
    $ fastboot flash recovery <path-to-twrp.img>
    $ fastboot reboot
    $ adb reboot recovery

Working with git-svn

Merging

To handle svn:mergeinfo correctly use the following workflow:

$ git svn clone <url-to-svn-repository>
$ git checkout <svn-branchA>
$ <code code code>
$ git commit
$ git checkout <svn-branchA>
$ git svn rebase
$ git svn dcommit

Now follows the funny part

$ git checkout <svn-branchB>
$ git checkout -b merge_branchA
$ git cherry-pick <commit-ids-on-svn-branchA>
$ git rebase -i <svn-branchB> # to edit the commit message (possibly include svn revision numbers if you like)
$ git checkout <svn-branchB>

Create a merge commit

$ git merge --no-ff merge_branchA -m 'commit message'

git-svn should now update the svn:mergeinfo correctly

$ git svn dcommit

Xen-based Execution Engine

Abstract

In the last few years the remote execution of applications has gained more and more on im- portance. This is due to the fact that paradigms like grid computing have been developed. The computation power that is required by a scientist to execute a complex simulation need not to be locally available anymore. Instead he can submit the simulation to a remote high performance cluster that is provided by an organization that has specialized in providing computation power.

The current developments in the area of hardware virtualization show that current desktop computer systems are powerful enough to execute many different operating systems in parallel. The usage of hardware virtualization imposes only a little overhead.

This work aims at sticking both concepts together to provide a novel execution environment. This environment is going to provide secure remote execution of applications in user-supplied virtual machines. The execution will behave like a batch job — send the execution and input data away and get the results back.

The complete thesis can be found here.

Event-based simulation of middleware platforms

Zusammenfassung

In dieser Arbeit stelle ich eine eventbasierte Simulationsumgebung für Ca- lana vor. Calana ist eine Grid-Scheduler Architektur, die mittels Auktionen die Aufträge an die einzelnen Ressourcen verteilt. Dabei werden die Anbieter der Ressourcen durch Agenten repräsentiert, die während einer Auktion auf die Aufträge bieten können. Ziel dieses Schedulers ist es, die Wünsche der Benutzer zu berücksichtigen. Die Wünsche werden durch Präferenzen realisiert — zum Beispiel die Zeit-Präferenz, die besagt, dass der Auftrag möglichst schnell ausgeführt werden soll.

Als erstes werde ich einen kurzen Überblick über das Grid-Umfeld geben. Dabei spreche ich verschiedene Scheduling-Verfahren (sowohl für Cluster, als auch für Grids) an und werde die verwendeten Präferenzen genauer erläutern. In dieser Arbeit gehe ich von reinen computational Grids aus — in spä- teren Erweiterungen des Simulator können jedoch zusätzliche Komponenten (Netzwerke, Datenbanken, etc.) hinzugefügt werden.

Als nächstes werden das Calana-Protokoll und seine Implementierung in Java ausführlich beschrieben. Mit diversen Experimenten, die sowohl eine kleine Zahl an Anbietern, als auch ein Grid mit 50 Anbietern umfassen, soll gezeigt werden, dass der Scheduler das gestellte Ziel (die Benutzer-Präferenzen zu erfüllen) erreichen kann. Es zeigte sich dabei, dass die Average Response Time für die Benutzer, die schnell ihre Ergebnisse wollen, unabhängig von der Load ist. Die Average Response Time ist in dieser Arbeit die maßgebliche Metrik, um Simulationsläufe zu vergleichen.

Zuletzt stelle ich anhand der Koallokation eine Möglichkeit vor, das System zu erweitern ohne bestehende Teile verändern zu müssen. Dabei zeigt sich der Vorteil des agentenbasierten Ansatzes, da nur ein neuer (jedoch spezieller) Agent dem System hinzugefügt werden musste. Experimente, die mit verschiedenen Anteilen an Koallokation (dem gleichzeitigen Reservieren ver- schiedener Ressourcen) in den Workloads durchgeführt wurden, zeigten, dass auch hier die ART für die Benutzer, die schnell ihre Ergebnisse benötigen, unabhängig war.

The complete bachlor thesis (in German) can be found here.

Referat über Remote-Method-Invocation (RMI)

Verteilte Systeme, die Berechnungen oder ähnliches ausführen, müssen miteinander kommunizieren. Java stellt Sockets für die low-level Kommunikation (TCP, UDP) bereit, dies ist ausgezeichnet für allgemeine Kommunikation, allerdings muss sich die Applikation komplett selbst um den Datenaustausch kümmern.

Um möglichst einfach Prozeduren oder Funktionen auf einem anderen System (Remote Procedure Call (RPC)) ausführen zu können, bietet Java das Konzept der Remote Method Invocation (RMI) an.

Mein Kurz-Referat dazu findet ihr hier.

Zero-Knowledge Verfahren

Zusammenfassung

Dieses Kapitel beschäftigt sich mit den so genannten Zero-Knowledge-Verfahren. Bei diesen Verfahren handelt es sich um eine Form von interaktiven Beweisen, bei denen kein Wissen übertragen wird. Dies ist für die Kryptographie von außerordentlicher Bedeutung, da meist schon normale Passwort-Verfahren das Geheimnis, nämlich das Passwort, übertragen – in verschlüsselter oder unverschlüsselter Form. Ein potentieller Angreifer, das kann dabei auch der Server sein, auf dem man sich einloggen will, könnte sich diesen Umstand zu Nutze machen und in Besitz des Geheimnisses geraten. Das hätte zur Folge, dass sich der Angreifer als jemand anderes ausgeben kann. Diese Schwäche ist natürlich nicht gerade wünschenswert und genau da kommen die “Zero-Knowledge Verfahren” ins Spiel.

The whole essay can be found here.