Google App Engine: Import CSV to Datastore

Processing CSV Data with the Google App Engine is a two-step process. First, you need to upload the data and store it in the blob store. Then you retrieve the file and process the information and save it to the Datastore(Database). You can process the CSV data with the standard python tools from the CSV-module, however, instead of parsing a file you must parse a BlobReader.

import csv
import webapp2
from google.appengine.ext import blobstore
from google.appengine.ext.webapp import blobstore_handlers
from google.appengine.ext import db

class MainHandler(webapp2.RequestHandler):
    def get(self):
        upload_url = blobstore.create_upload_url('/upload')

        html_string = """
         <form action="%s" method="POST" enctype="multipart/form-data">
        Upload File:
        <input type="file" name="file"> <br>
        <input type="submit" name="submit" value="Submit">
        </form>""" % upload_url


class UploadHandler(blobstore_handlers.BlobstoreUploadHandler):
    def post(self):
        upload_files = self.get_uploads('file')  # 'file' is file upload field in the form
        blob_info = upload_files[0]

        blobstore.delete(blob_info.key())  # optional: delete file after import

def process_csv(blob_info):
    blob_reader = blobstore.BlobReader(blob_info.key())
    reader = csv.reader(blob_reader, delimiter=';')
    for row in reader:
        date, data, value = row
        entry = EntriesDB(date=date, data=data, value=int(value))

class EntriesDB(db.Model):
    date = db.DateProperty()
    data = db.StringProperty()
    value = db.IntegerProperty()

app = webapp2.WSGIApplication([
    ('/', MainHandler),
    ('/upload', UploadHandler)
], debug=True)

Windows: Password Recovery

Sometimes you run into the problem that someone has forgotten their password for their home PC. As a good friend you are going to help them recover their password. Preparation

  1. Go over to and download a Live CD with tables  (either for XP or Vista/7)
  2. Burn the CD with imgburn or create a USB-Boot disk with Universal Usb Installer

Password Recovery

  1. Start the computer by booting from the USB-stick/CD
  2. Ophcrack will launch immediately and try to crack the password by brute force
  3. If it does not work, click on the button “tables”
  4. Now click on the button “Install” and navigate to the tables directory on the CD or USB-drive (something like /media/usb-drive/tables)
  5. Enable the tables, it is going to take a while to load them into RAM
  6. Retry to crack the password.

Finishing up

Write down the password, restart the computer and log in. Change the password to something that a human being can remember.

SteamOS: Beta

Valve has released a beta version of their OS. Hyped as the “killer app” for Linux and many hoped it will be the replacement for Windows. In reality, SteamOS is not going to be the Windows Desktop replacement OS. It is going to be an OS to be used with your TV and game-pad. Exactly like Valve has originally advertised the system, an OS for a “steam machine”; a computer controlled primarily by a game controller. The system is designed to compete with other consoles like the XBox or Playstation. The system is now in its beta state. Mostly Linux enthusiasts and hardware distributors are probably interested in the system. The OS will be delivered to the majority of users on a pre-installed “steam machine”. Most Users will never have to interact with the underlying Linux environment and the computer will only be used for gaming purposes. However, time will tell how this development will affect the overall perception and acceptance of the Linux platform. Hardware developers like Nvidia and AMD have already announced a better driver support for the Linux platform. Hopefully, major software developers will follow suit. System Requirements From the official site the hardware requirements are as follows:

  • Intel or AMD 64-bit capable processor
  • 4GB or more memory
  • 500GB or larger disk
  • NVIDIA graphics card (AMD and Intel graphics support coming soon)
  • UEFI boot support
  • USB port for installation

Oddly the requirements stated is the need for a 500GB disk. However, after installation the OS requires only around 2.7GB, making the installation on a smaller disk is technically possible. Valve has not yet said anything more specific why 500GB is needed. It looks like the requirements are more of a guideline for a suitable gaming system. Installation There are two ways of installing the OS either restoring an existing image or doing a clean install.  Many users were reporting issues with the restore method as well as the requirement of a 1TB disk to restore the image. Thus it is easier to do a clean install.

Clean Install

  1. Prepare a disk, the installation will automatically partition your drive, no matter what the previous system is installed. (= everything is going to be deleted)
  2. Download the installation files from
  3. Extract the zip file to an USB-disk (formatted as FAT32)
  4. Boot the system from the USB-disk and follow the automatic installation setup

First Start

  1. Select the Gnome Desktop
  2. Log on as user “steam”, password: “steam”
  3. Log on as user “desktop”, password: “desktop”

Initial Impression

Sadly the Steam Interface never loaded on my system. I did not spend a lot of time on tinkering around with it, as it is currently in the state of preview/beta software. I hope Valve gets a lot of feedback and can fix these issues. However most of the experience is positive, the install procedure was smooth and automated and you did not have to know anything about computers to get it running except how to “boot from USB-stick”. Mostly user-friendly, however, they currently have not put a lot of work into their installer and a couple of more options would be nice.


Sadly I can’t say a lot about the new OS – it is beta software and I could not get it to work with my PC – However, it is going to be an interesting development to watch in the next couple of years.

Official Links