• Happy Coding

Archive for June, 2006

Hiding sensitive data

Interesting article about how you can hide sensitive data on your computer.

Sensationalism aside, sometimes you have a folder of data that you really don’t want someone to see or use on your computer. This could be financial data, old email, files you shouldn’t have, or, well, porn. Whatever it is, and we’re not judging, you need a way to keep others out of it and so I’ll run over some tips and tricks for keeping prying eyes from poking around.

Sharing your user-accounts with google

See Account Authentication Proxy for Web-Based Applications.

Managing your identity

I just thought about identity-management on the internet and build the following figure:
your internet identity
It shows your identity as a person (including realname etc.) and connects different partial-identities to it.
A partial-identity is a subset of your whole identity-information. You create such subsets with nearly every service you use on the internet.
For example by using a social bookmark service, your partial-identity is the information about your preferred bookmarks.
Such subsets of your identity are not very delicate if you can’t connect them to your whole identity. If you are able to connect them, the information from the partial-identity become authentic. And thats a problem for your privacy.
So the best way to protect your identity is to avoid information which can connect the subsets among each other. And also avoid information which can directly map a subset to your identity. You can use for example different email-addresses for each service.

Kollaborative 3D-Applikationen

Gerade das Croquet Project entdeckt. Anscheinend ein neues System mit einem passenden SDK dazu, mit dem man Multiuser-Anwendungen schreiben kann, die dann auch noch in einer 3D-Welt ablaufen. Erinnert ein wenig an die SecondLife-Plattform.

An application written using the Croquet SDK is automatically collaborative between people. Users can see each other and what they are doing in real- time. The result of their work is immediately available to other users. Neither the users nor the programmer needs to do anything special to make this happen.

Social Phishing

Schon etwas älter, aber immer noch hochaktuell: ein kleines Szenario, wie soziale Netze manipulativ genutzt werden könnten.

Social Pishing, so das Gedankenexperiment würde ein wenig mehr Vorbereitung brauchen, aber die Effekte wären durchschlagender. Denn soziale Duftmarken im Netz zu hinterlassen, ist weitaus anerkannter als noch Mitte der 90er. Damit auch glaubwürdiger.

Beispiele für die Visualisierung von Graphen

Wer gerade davor steht einen Graphen visuell darzustellen, kann sich hier inspirieren lassen.

URIs for eternity

It is the the duty of a Webmaster to allocate URIs which you will be able to stand by in 2 years, in 20 years, in 200 years. This needs thought, and organization, and commitment.

see W3C’s “Cool URIs don’t change“.

Adding an iTunes-control to the NSStatusBar

I played a little bit with Cocoa and as a little testing-project i wanted to integrate a drop-down menu to the NSStatusBar for controlling the iTunes-application. Its not finished yet and i dont know if i’ll work on it in the next time. But it works for the three functions “play/pause”, “previous song” and “next song”. And this after only some minutes of work. :)

So, thats what i did:

First step: Create the NSMenu for the statusbar using the Interface Builder

After that: Make the connections for the Menu Items

Thirdly: Create the Header File

@interface TunesControl : NSObject
{
	IBOutlet NSMenu *tunesMenu;
}
- (IBAction)nextSong:(id)sender;
- (IBAction)previousSong:(id)sender;
- (IBAction)playPause:(id)sender;
@end

Finally the Implementation File: I use NSAppleScript to control iTunes. And i created the menu in the NSStatusBar using an icon as NSStatusItem and the NSMenu from the Interface Builder.

@implementation TunesControl
- (IBAction)nextSong:(id)sender {
	NSAppleScript *script = [[NSAppleScript alloc]
	initWithSource:@"tell application \"iTunes\"nnext tracknend tell"];
	[script executeAndReturnError:nil];
}

- (IBAction)previousSong:(id)sender {
	NSAppleScript *script = [[NSAppleScript alloc]
	initWithSource:@"tell application \"iTunes\"nprevious tracknend tell"];
	[script executeAndReturnError:nil];
}

- (IBAction)playPause:(id)sender {
	NSAppleScript *script = [[NSAppleScript alloc]
	initWithSource:@"tell application \"iTunes\"nplaypausenend tell"];
	[script executeAndReturnError:nil];
}

- (void)awakeFromNib {
	NSStatusBar *statusBar = [NSStatusBar systemStatusBar];
	NSStatusItem *statusItem = [statusBar statusItemWithLength:NSVariableStatusItemLength];
	NSImage *itemImage = [[NSImage alloc]
	initWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"icon" ofType:@"png"]];
	[statusItem retain];

	[statusItem setImage: itemImage];
	[statusItem setHighlightMode:YES];
	[statusItem setMenu:tunesMenu];
}
@end

RDF zur Beschreibung von Open Source Projekten

Ein kompaktes RDF-Vokabular zur Beschreibung von Open Source Projekten: DOAP (Description of a Project).

Die DOAP-Beschreibung zum DOAP-Projekt gibt es z.B. hier.

Die dazu passende Grafik gibt es auch:

Social Networking mal anders betrachtet

Eben durch Zufall hier entdeckt. Social Networking mal aus einem anderen Blickwinkel betrachtet. Aber trauriger Weise ist viel Wahres dabei. ;)

Video ansehen…

Web 3.0 — the end of creativity?

Just read an article about Web 3.0. It describes the development of Web 1.0 to Web 2.0. And it creates a vision of the next step: Web 3.0.
One aspect of this future-web:

[...] that there are no Web sites. Existing Web sites are no longer meant for human eyes. They act as indexes to the information, which is accessible via XML request.

It would be very sad, if everyone only consumes information over XML-feeds using special applications on its personal computer. The information would “lost its soul” if we rip it from its environment – the website.
So many people – especially bloggers – invest so much time in creating these environment. It would be a shame to ignore this. We would step back to 1980 where every site looks similar.

Automatisierter Datenschutz mit P3P

Wer kennt es nicht? Man geht auf eine Webseite und muss dort persönliche Daten eingeben. Aber wer liest sich schon immer die Datenschutz (Privacy) Richtlinien der Seite durch und entscheidet dann aufgrund dessen was er an Informationen herausgibt? Richtig, fast niemand.
Aber wäre es nicht schön, wenn z.B. der Browser den Benutzer automatisch darauf hinweisen würde, was dieser am besten preisgeben sollte und was nicht?
Und genau hierfür braucht man standardisierte Angaben zu den Datenschutz-Richtlinien einer Webseite. So können diese automatisiert verarbeitet und interpretiert werden.
Hier setzt das “Platform for Privacy Preferences Project (P3P) vom W3C an und definiert das entsprechende Format für diese Angaben. Format ist XML und es gibt sogar ein RDF-Schema dafür.
Das werde ich auf jeden Fall mal weiterverfolgen.

5-Minuten-Mashing

Schöne neue Mashup-Welt!
Die wird sich nun auch bei IBM groß auf die Fahne geschrieben. So besagt es anscheinend eine keynote von Rod Smith:

BM’s so-called “Enterprise Mashup” breaks down the barriers of traditional application development and provides a framework that uses Web services and wiki technology to allow people to create a customized application in less than five minutes. [...]
IBM’s Enterprise Mashup blends external information and web services (e.g., news feeds, weather reports, maps, traffic conditions and more) with enterprise content and services, instantly “mashing” them together to create a fast, flexible and affordable application for specific business needs.

IBM liegt also mal wieder voll im Trend. ;)

Google Web Toolkit for AJAX

Just read. A toolkit for developing AJAX-applications. Runs under Java. Given to us by the friendly Google-guys. ;)

Second Life und Flickr

Matt Biddulph hat ein kleines Add-On für die Welt von “Second Life” geschrieben. Es erlaubt die Einbindung eines virtuellen Bildschirms, der Bilder aus dem Flickr-System anzeigen kann.
Ehrlich gesagt, weiß ich nicht einmal genau was “Second Life” überhaupt ist, aber es sieht vielversprechend aus und ich steige wohl auch bald in diese virtuelle Realität ein. ;)

Von Adressen zu Geo-Koordinaten

Durch das Stöbern nach der Google Maps API bin ich auf diesen Eintrag gestossen und hab erfahren, dass die API seit Neuestem die Möglichkeit bietet, aus Adressen die Geo-Koordinaten (Längen-/Breitengrad) zu bestimmen.

Mit Javascript erreicht man dieses durch das GClientGeocoder-Objekt und die Methode getLatLng.
Google zeigt einen vollständigen Beispielcode.

Unter der dazu passenden Testseite kann man das ganze dann gleich mal ausprobieren.
Eine Eingabe wie z.B. “Theresienwiese, Munich, Germany” liefert die Koordinaten vom Google-Server zurück und setzt gleich den Marker an der richtigen Stelle auf der Karte.
Schöne Sache.