Archive for the ‘Software’ Category.

CyanogenMod on ASUS Transformer Infinity using Fedora 19

Today I decided to finally make the jump and install CyanogenMod on my ASUS Transformer Infinity.

It turned out to be really easy. I needed some Android tools (adb and fastboot) which are available in the Fedora repositories

sudo yum install android-tools

I made sure to take a backup of all the data I had on the tablet first (books, comics, pdfs, sound files, etc.).

Make sure that “USB debugging” is enabled on the device. On Android 4.2 and newer this requires going to “Settings/About tablet” and tapping “Build number” 7 times (I kid you not). This will cause “Settings/Developer options” to magically appear and “USB debugging” can now be enabled.

When rebooting into the ClockworkMod Recovery (by choosing the “RCK” icon on the boot screen) I had to go into the “Mounts and storage” menu and “mount /data” to be able to make backups and find the zip files.

Then I just followed the official CyanogenMod installation instructions. Remember to download the Google Apps as well to get Play Store, etc.

And that’s it.

A small python script

Recently I changed from using Secrets on my Android phone to using KeePassDroid for storing my passwords. The point of this change was that KeePass is also available for Linux (called KeePassX) and I can now sync my passwords between my desktop and my phone using Dropbox.

However I had to migrate my passwords from Secrets to KeePassX. Luckily Secrets can export to CSV and KeePassX can import XML. So Python to the rescue.

Here is the small Python program I made in case anyone on the Internet should be interested (does anyone know of a nice code syntax highlighter plugin for wordpress?):

import csv
from xml.dom.minidom import Document

doc = Document()
db = doc.createElement("database")
doc.appendChild(db)

group = doc.createElement("group")
db.appendChild(group)

gtitle = doc.createElement("title")
gtitle.appendChild(doc.createTextNode("Imported from Secrets"))
group.appendChild(gtitle)


row_reader = csv.reader(open("secrets.csv", "rb"))
row_reader.next() # skip the header
for row in row_reader:
 e = doc.createElement("entry")
 group.appendChild(e)

 # "Description","Id","PIN","Email","Notes"
 # to
 # <title></title>
 # <username></username>
 # <password></password>
 # <comment></comment>

 etitle = doc.createElement("title")
 e.appendChild(etitle)
 etitle.appendChild(doc.createTextNode(row[0]))

 euser = doc.createElement("username")
 e.appendChild(euser)
 euser.appendChild(doc.createTextNode(row[1]))

 epass = doc.createElement("password")
 e.appendChild(epass)
 epass.appendChild(doc.createTextNode(row[2]))

 ecomment = doc.createElement("comment")
 e.appendChild(ecomment)
 ecomment.appendChild(doc.createTextNode(row[4]))
 

xml_out = open("converted.xml", "w")
s = doc.toxml()
xml_out.write(s)
xml_out.close()

Previews Reader 0.5.2

A minor feature release.

The parser has (once again) been updated to understand the new order list format. The downloader has been updated to handle the new date format used in the new releases list.

Now go download it.

Refimon

Developers at Refind (of which I am one) have created a small server monitoring tool in Python called Refimon. It has been released as open source (GPLv3) and you can get it at the Refimon launchpad page.

Previews Reader 0.5.1

Only minor features in this release.

The parser has been updated to understand the new order list format, and a simple heuristic has been added for marking first issues. This is used when there is no newseries file.

Now go download it.

Previews Reader 0.5.0

A part of this release is just another round of updated urls for the different download locations. The more interesting part is that it is now possible to export the order list to PDF and CSV. The PDF export requires the python-reportlab module and the code for this feature was contributed by Carsten – thanks a lot for taking the time to write a patch.

Now go download it.

Python Clutter examples

I have long been wanting to try out Clutter, but I have been unable to find some really nice Python examples – everything seems to be in C.

So I decided to try to convert the examples given at the Clutter Foo presentation at GUADEC 2007 to Python. The C code I have based my Python examples around can be found here.

An invaluable resource while figuring stuff out has been the Clutter Reference Manual.

The examples have only been tested with pyclutter 0.6.0.

To get them to run properly on my machine with an Intel graphics card I had to

export CLUTTER_VBLANK=none

before running the programs.

Example code

actor-demo-1
actor-demo-2
behave-demo-1
effect-demo-1
timeline-demo-1

The examples all require an image – feel free to use this one:

Update: I just discovered the PyClutter Reference Manual. Helps a lot.

yum repository updated to Fedora 9

Even though Fedora 9 isn’t officially out yet I have updated my yum repository to include rpms for it. Currently the packages are built on rawhide but if needed they will be rebuilt once the final release it out.

Please note that the name of the repo file has been changed to krakoa-9.repo.

Previews Reader 0.4.5

New release of Previews Reader. This is pretty much just another round of updated urls for the different download locations. Go download it.

BackupFiller 0.2

Released a new version of BackupFiller. This is a minor bugfix release that decreases the sizes for CD and DVD to better make sure the end results will actually fit on the media.