Categories
operating system

Installieren

Für mich zur Erinnerung eine Liste der Software, die ich auf das neue System installiert habe:

Sicherheit

  • Vista SP1 + Vista SP2
  • Windows Firewall (auf erweiterte Sicherheit umgestellt, Eingehend/Ausgehend blockiert)
  • die restlichen Windows Updates
  • AVG Free Virenscanner

WWW

System

  • VMWare Player
  • .NET Framework (v3.5 Service Pack 1)
  • Java SDK 6 + JavaFX SDK

Grafik

  • XnView Bildbetrachter
  • Paint.Net einfache Bildbearbeitungs-Software (unterstützt Layer)

Multimedia

Office

Entwicklungs-Tools

  • Notepad++ Texteditor
  • Netbeans (für JavaFX)
Categories
Uncategorized

Meine OpenSource-Projekte

Um meine Programmier-Kenntnisse nicht gänzlich einrosten zu lassen, bastle ich daheim von Zeit zu Zeit an ein paar kleineren Projekten:

  • Video-Explorer – durchsucht Verzeichnisse nach Videos und generiert eine Übersicht als HTML-Seite
  • jSync – synchronisiert zwei Ordner im File-System
  • pocketknife.net – gemischte Library mit nützlichen Dingen für .NET [C#]
Categories
Uncategorized web

Backup

Nach knapp zweieinhalb Jahren mit derselben Vista-Installation wird es für mich nun Zeit, meinem neuen Laptop eine größere Festplatte und ein neues System zu spendieren. Windows 7 ist leider noch nicht als Release verfügbar, also bleibe ich erst mal bei Vista.

Kurze Erinnerung an mich, folgende Dinge beim Backup nicht zu vergessen:

  • E-Mail Kontakte
  • E-Mail Nachrichten (z.B. Windows Mail Ordner o.ä.)
  • Browser Bookmarks
  • SVN Repositories
  • Instant Messenger Histories (evtl.)
Categories
Uncategorized

Infografiken fast wie im richtigen Leben

Dass man viele Dinge des täglichen Lebens in durchaus amüsanten Diagrammen darstellen kann, zeigt Jessica Hagy in ihrem Blog: http://thisisindexed.com/

Categories
Uncategorized

AppleScript experiences

Today I messed around in AppleScript. To be honest, it has not only been a pleasure.

Current working directory

One of the really annoying things I came across: An AppleScript application does not start within its directory, but within ~ (user’s root).
So if you want to do some work in the script’s real current working directory, you have to change there explicitely.
And even that comes with a drawback. You have to manually extract your script’s working directory.
To make the story short – here’s my solution of putting the working directory into a variable:

set pathOfScript to quoted form of (POSIX path of (path to me))
set cwd to do shell script "echo " & pathOfScript & " | sed 's/\\(\\/.*\\/\\)\\(.*\\)/\\1/g' "

Basically this two lines request the posix path to the script (including the script’s filename) and strip the filename using a regexp.
If you wonder about this crazy regular expression – it just selects the text between the first and the last forward slash (/).
It’s just blown up by massive need for escaping backslashes.
Briefly it’s this: search for (/.*/)(.*) and throw away the last group containing the filename.

Displaying a dialog box

Whenever there’s need for debug output and there’s no debugger (like in Apple’s Script Editor) you can always fire up a dialog box:

display dialog "hello world"

Scripting the Terminal

Apple’s shell (called Terminal) is also scriptable by AppleScript. You can e.g. open Terminal and execute a command taken from a variable ‘_cmd’:

set _cmd to "ls"

tell application "Terminal"
  activate
  do script with command _cmd
end tell

My motivation

Why the heck did I use AppleScript in the first place?
Well – I’ve written a Java application (deployed within a JAR file) but unfortunately I didn’t find an easy way to start this application via double click.
Manually entering the Terminal, exploring to the destination path and entering ‘java -cp FirstJar.jar:SecondJar.jar:. my.main.Class” is really annoying.
So now my AppleScript takes following actions:

  1. Open the Terminal
  2. Get the current working directory and change to it (cd …..)
  3. Start Java handing over the correct classpath and program arguments.
Categories
Uncategorized

mode selektor


Modeselektor – Black Block
Hochgeladen von sabotage
Categories
Uncategorized

Die Wurstaffäre

Ingolstadt, 10.2.2009

Flash-News aus der Ingolrockcity-WG:
Insider-Berichten zufolge musste eine minutiös geplante Wurstbrat-Aktion kurzfristig in letzter Minute abgeblasen werden, da das Olivenöl schon bei sonntäglichen Weißbierkaiserschmarrnbrataktivitäten bis auf den letzten Tropfen wegkonsumiert gewesen worden war.
Nachbarn und umläufige Anreiner reagierten bestürzt bis gar nicht auf diesen Vorfall.

UPDATE: Nachdem der Hunger keine weitere Verzögerung mehr zuließ, haben sich die Bewohner der Holzer-WG wagemutig dazu entschlossen, Würschtl ohne Fett in der Teflonpfanne herauszubraten. Saulangweilig.

Categories
Uncategorized

Die Geschichte vom Weißbierkaiserschmarrn

… ist eigentlich gar keine. Aber endlich wars so weit. Das Rezept wurde mir von einem Neo68er zugetragen und am Sonntag endlich in die Tat umgesetzt. Eine wahre Freude.

Categories
development web

My whereabouts (preface to DOM manipulation with Javascript)

Hi there, for a long time I didn’t blog here. That’s partly because in June I changed my working field from pre-development to development for the mass production. This has been a great opportunity – connected with a permanent hiring at my alltime-favourite car company: Audi.

But now I’m enjoying my winter holidays at my parent’s place – and I’ve got time to checkout something that had interested me for quite a time: Javascript. Some years ago I already did take a few steps with JS – but then it wasn’t really comfortable at all.

Now – a few years later, there are interesting libraries available that cover a wide variety of  common tasks – mostly driven by developers from the AJAX movement.
But not only are there some libs – there are great IDEs that allow a fast and efficient development.

After asking a few fellow developers, I decided to try the Eclipse based Aptana IDE together with jQuery – a lightweight library that seemed to suite my needs quite well. I also took a glance at dojo – but the small distribution package of jQuery (one single .js file) was exactly what I was searching for.

Categories
development web

jQuery

As I already told, I’m doing my tests within the Eclipse based Aptana IDE.
During creating the project, you can already decide which Javascript libraries to use (I chose jQuery).

My use case: Filtering the rows of a big HTML table on client side. Of course, this usually calls for a database driven solution, but as a matter of fact I wanted to support the filtering even in offline situations.

Preparing the HTML file

<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="myFilter.js"></script>
<title>My HTML page with client side filtering</title>
...
</html>

myFilter.js

Within myFilter.js we can define our own user functions. By the way: I really love object orientated development – but this time is not the day of OO. So please don’t be disappointed if you’ll see classic procedural style in this blog entry. Maybe some day I’ll find out how to do nice and lean OO within Javascript. 😉

There’s one special callback function that is called from jQuery core after the page has completed loading:

$(document).ready(function(...){});

Within this anonymous method, all the magic is taking place. Within there we’ll even define our own methods, such as

filterTable = function()
{
   //your code goes here
}

Selectors

One of the base concepts of jQuery (next to Chaining) are Selectors. With selectors one defines the subset of the DOM that you want to manipulate, e.g.:

$('#traceTable > tbody > tr')

Selects all rows of the HTML table with the id=’traceTable’.

Chaining

A typical jQuery command is chained. That means that a method call to a jQuery object returns another jQuery object. This may look a  bit weird at first glance, but it’s quite comparable to piping in Unix environments, e.g.:

$('#traceTable > tbody > tr').each(function (i) //execute the function for all <tr> elements of tbody in #traceTable
{
   filterRow($(this), filterText);
});

What you can see here is a combination of several techniques. Both the selector $(‘…’) and the each() function are returning objects of type jQuery. Within each() an anonymous function is called for every element of the selector. Note: In the context of each() there’s also a context change of $(this). It references to the currently traversed element of the selector!