الأحد، 15 مارس 2009

Python for shell scripting

Shell scripting is the ultimate experience of unorthodoxy: Everything that one has learned with “proper” programming languages is done differently (well, unless you are into Perl, you naughty little hacker). If you are looking for pain relief, the following article can help:

Python for Bash scripters: A well-kept secret

الثلاثاء، 10 مارس 2009

A projected user interface for portable devices

Pattie Maes & Pranav Mistry: Unveiling the “Sixth Sense,” game-changing wearable tech
A nice demo of a device that uses a projector and image recognition to project its user interface onto external objects. This is an interesting contribution to exploring the extremes of immersive user interface on one hand and external user interfaces on the other hand.

Update: More user interface ideas:

David Merrill: Siftables, the toy blocks that think

السبت، 7 مارس 2009

Remove white space around PDF graphics with pdfcrop

Matthias Hölzl pointed out pdfcrop to me. It is very useful in the following scenario: You want to include a PDF graphic in your LaTeX document. But the application at hand only exports complete pages as PDF (or you print to PostScript and convert the PostScript to PDF). What pdfcrop does is that it removes any whitespace around a graphic, reducing the bounding box to the actual content. If you are using TeX Live then pdfcrop is already installed on your computer, because it comes standard with that LaTeX distribution.



Flattr

الجمعة، 13 فبراير 2009

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


#!/usr/bin/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