Bookmarklet: Copy URL and title

My bookmarklet “Copy URL and title” will save you from having to copy/paste twice. To use it: Drag the previous link to your bookmark bar, rename as desired, and click on it.

Update 2011-01-07: Improved version

Offline arbeiten mit Firefox

Link: RSS unplugged - Wie man seine Feeds auch offline lesen kann Es sind ein paar ganz nette universell interessante Firefox-Plugins dabei.


Generate emails with mailto URLs and Python

Scenario: You want to send several emails where only small things change. This sounds like a job for a mail merge program. But if you use mailto: links and Python, you get a nice shell-based solution. This combination also has the advantage of opening each generated email in your email client so that you can take one last look before sending it.

mailto: URL syntax

"mailto:" recipients ( "?" key "=" value ("&" key "=" value)* )?
Open mailto URLs with Python

    from urllib import quote
    import webbrowser

    def mailto(recipients, subject, body):
        "recipients: string with comma-separated emails (no spaces!)"
        webbrowser.open("mailto:%s?subject=%s&body=%s" %
            (recipients, quote(subject), quote(body)))

    body_template = """Hello %(name)s!

    How are you?"""

    def gen(email, name):
        mailto(email, "Hi!", body_template % locals())

    gen("joe@example.com", "Joe")
    gen("jane@example.com,jill@example.com", "Jane and Jill")
Related: Flattr


Advanced HTML forms

The tutorial “Creating accessible Web forms” shows how much is already possible with HTML forms (even without XForms).


incsync – incremental backups with rsync on Unix

Time Machine was always a bit troublesome for me on Mac OS X, so I did some research about how to do incremental backups with open source software. The result is the script presented in this post.


JavaScript is becoming a nice language

Apart from impressive speed improvements via Google Chrome's V8 or Firefox's TraceMonkey, I had forgotten that new versions of JavaScript had some really nice language features (I still hope that optional types make it into ECMAScript 4). The article “Pythonic Javascript, it's Python with braces!” reminded me.

What's new in client-side Java?

Client-side Java's evolutionary leap” gives a great overview of interesting things that happened for client-side Java in 2008. Recommended additional reading: