Twittastic

Twittastic, is a Twitter client meant to do it better for most of the users. It’s meant to be simple to use, without sacrificing features. The interface is a cross between a classic IM application and the Twitter webpage itself. Try Twittastic Bleeder now!!!

delegating your OpenID to creativecommons.net

I read Joi’s post on creativecommons.net OpenID and I much liked the idea. After all, if I have to trust someone for my OpenID authentication, CreativeCommons sounds like one of the most trustworthy providers.

However, since now, I used my own domain, “http://vrypan.net/”, as my OpenID. Other OpenID providers give a couple of lines of code that you can embed in any page and delegate the authentication. creativecommons.net doesn’t have instructions on how to do it, but after a couple of tries I ended up (I’m no OpenID expert!) with the following HTML headers I embedded in my homepage; it works!

<meta http-equiv="x-xrds-location" content="https://creativecommons.net/o/xrds/" />
<link rel="openid.server" href="https://creativecommons.net/o/endpoint/" />
<link rel="openid2.provider" href="https://creativecommons.net/o/endpoint/" />
<link rel="openid.delegate" href="https://creativecommons.net/vrypan/" />

Just change “vrypan” with your creativecommons.net username and it should work. Have a look at the html source in vrypan.net to see how to use it.

BTW, the ability to easily delegate your OpenID and change providers any time you like, is one of the coolest things about it!

posting from python to WP

For the last couple of days, I’ve been experimenting with a new format for my podcast. During the day I record little “audionotes” on my mobile phone. At the end of the day I move these .wav files to my MacBook Pro and use a bunch of scripts to automatically paste them together, generate the MP3 file, upload it to Amazon S3, and post a new entry to my greek blog.

To do this, I’ve written a couple of quick’n'dirty scripts in python and bash. Most of the code is ugly, and amy things are hardcoded in there. But I think someone may find them useful.

Here is one of them, post2wordpress.py. It is called from the command line like python post2wordpress.py mymp3file.mp3. It uses eyeD3 to extract some basic info from the MP3 file, and python-blogger to post a new entry to my wordpress blog.

post2wordpress.py

# coding=utf-8

import pyblog
import eyeD3
import fnmatch
import os
import datetime
import sys

blog = pyblog.WordPress('http://vrypan.net/weblog/xmlrpc.php', 
        'username', 'password')

tag = eyeD3.Tag()
if len(sys.argv)>2:
        directory = sys.argv[2]
else:
        directory = './mp3'

f = sys.argv[1]
filename = os.path.join(directory,f)
filesize = float(os.stat(filename).st_size) / 1048576.0;
tag.link(filename,eyeD3.ID3_V2)

size = str(os.stat(filename).st_size)

title = tag.getTitle()
body = 'duration: '+eyeD3.Mp3AudioFile(filename).getPlayTimeString() + '\n'
body = body + 'download: '+f+''
body = body + " [%.2f MB] \n" % filesize
body = body + 'more info...'

data = {
                'title':title,
                'description': body,
                'categories': ['audionotes'],
                'post_status': 'private',
                'custom_fields': [{'value': 'http://audionotes.vrypan.net/'+f+'\n'+size+
                        '\naudio/mpeg', 'key': 'enclosure'}]
                }
blog.new_post(data)

Hackers attack LHC (some more details)

According to the Telegraph, Hackers attacked the LHC.

Since the whole message they left was written in Greek, I feel that I have to explain some of the things written in it:

1. The attack was not an act against LHC or CERN, but just as they write, “they wanted to take advantage of the publicity the LHC would have, to promote their message”.
2. They write that they did not intend to cause any damage to the underlying system or the website, just to promote their message.
3. The main “message”, is nothing radical or extreme. It is more or less an internal debate of the Greek Hacking Scene.
4. The message ends “Dear CERN admins, we have fixed a serious BUG your web page had, to prevent you from becoming Dork and being defaced on a daily basis by wannabe hackers.”
5. They also mention that many sites of the Greek Government are vulnerable to hackers and lack any security measures.

Greek hackers attack an LHC site

Google Maps feature request: add time dimension?

Wouldn’t it be nice if Google added an extra dimension to Google Maps? One that would allow us to “go back in time” and see the previous versions of the maps?

Here is what I have in mind. Say, I want to see how a forest, a city, a glacier, the south pole or my neighborhood has changed over time. I navigate to the map I’m interested in and then, I go back and forth in time (actually, older versions of the same map) by sliding the “time control” much like I would zoom in or out.

I you like the idea, spread it out!

Obama’s experience in politics

How much experience in politics does it take to keep the whole of US media in the dark, regarding your VP candidate name, when every single news network is after this valuable piece of information?

How much experience does it take to pick the right people around you so that your most valuable secrets remain secret?

How much experience in politics does it take to keep the most experienced journalists and reporters where you want? To have journalists wondering, on-air, “how did he manage to do it?”

I really don’t know. But Obama obviously has it.

QR codes from urlBorg

If you need a QR code for a short URL created by urlBorg, just add ‘/qr’ at the end of it!

Here is how it works:
1. The short URL is http://ub0.cc/43/c
2. The QR code image is http://ub0.cc/43/c/qr and you can use it like this
<img src="http://ub0.cc/43/c/qr" />

Voila!

A side note: Since QR codes are expected to be used from a mobile device the link embedded in urlBorg QR codes will actually go to a urlBorg “preview” page (in the above example, http://ub0.cc/43/c/p). This makes it easier for users to use the “mobile version” link of the target page.

IronBolt: a destop app that shortens URLs

Still in alpha, but looks great! Check out more at IronBolt homepage.

how to avoid multiple short URLs in urlBorg API

The urlBorg API will normally create a new short URL each time the ‘create’ method is called. There is a good reason for this, but many devlopers have been asking for a way to reuse already created short URLs.

I just added a new option that is currently only available through the API. Instead of using the ‘create’ method, you can now use the ‘create_or_reuse’ method. ‘create_or_reuse’ will check if the same combination of (api_key, long URL) has already been used and if so will return the short URL from the database instaed of creating a new one -if not, a new one will be created, as usual.

Check out the urlBorg API for details.

drupal + urlBorg

nsyll just released the drupal urlBorg module!