Categories
Uncategorized

using python to set mp4 tags from a csv file

using python to create the lengthy AtomicParsley calls described in the last post:

#!/usr/bin/python
import csv
import pipes
import StringIO

#metadata.csv has to contain the following rows:
#filename, show, season, episode, title, artwork, description
csvfile='metadata.csv'
csvreader = csv.reader(open(csvfile, 'rbU'), delimiter=',', quotechar='"')

class Command:
	def __init__(self, file):
		self.command = StringIO.StringIO()
		self.command.write('AtomicParsley ')
		self.command.write(pipes.quote(file))
	def addParam(self, key, value):
		self.command.write(' --')
		self.command.write(key)
		self.command.write(' ')
		self.command.write(pipes.quote(value))	
	def toString(self):
		return self.command.getvalue()
	def close(self):
		self.command.close()

def handleFile(row):
	m4vfile = row[0]
	show = row[1]
	season = row[2]
	episode = row[3]
	title = row[4]
	artwork = row[5]
	description = row[6]
	episodeCode = season + '' + str(episode).zfill(2) ##leading zeroes

	command = Command(m4vfile)
	
	command.addParam('artist', show)
	command.addParam('title', title)
	command.addParam('album', show + ', Season ' + season)
	command.addParam('artwork', artwork)
	command.addParam('stik', 'TV Show')
	command.addParam('description', description)
	command.addParam('TVShowName', show)
	command.addParam('TVEpisode', episodeCode)
	command.addParam('TVEpisodeNum', episode)
	command.addParam('TVSeasonNum', season)

	print command.toString()
	command.close()

for row in csvreader:
	handleFile(row)

Categories
Uncategorized

set meta data in MP4 (m4v) files

you can use AtomicParsley, a command line based open source tool to add metadata and artwork to your MPEG-4 files. On OS X you can use macports to install the tool.

example for an AtomicParsley call:
AtomicParsley 'Simpsons - Chili.m4v' --artist Simpsons --title 'Homer and the Chili' --album 'Simpsons, Season 6' --artwork Simpsons.jpg --stik 'TV Show' --TVShowName Simpsons --TVEpisode 605 --TVEpisodeNum 6 --TVSeasonNum 5 --description 'Homer attends a hot chili competition.'

Categories
Uncategorized

convert from AVI to MP4 (M4V)

M4V is just an alias for MP4.
So you can use ffmpeg to copy the audio/video streams in your AVI file to a more recent MP4 container:

ffmpeg -i source.avi -f mp4 -vcodec copy -acodec copy destination.mp4

Categories
Uncategorized

install Sun Java on Ubuntu

add-apt-repository "deb http://archive.canonical.com/ lucid partner"
apt-get update
apt-get install sun-java6-jdk
update-alternatives --config java
Categories
Uncategorized

new Java Decompiler

Everybody working with Java has met JAD some time sooner or later.
Unfortunately JAD is pretty old, has no GUI and cannot handle Java 5/6 bytecode.

Now there’s a new player in town – you can directly open JAR archives in its nice GUI:
http://java.decompiler.free.fr/?q=jdgui

Categories
Uncategorized

Audi/e.solutions on CES 2011, Las Vegas

There are many articles about Audi on CES, I think this is one of the best:
http://www.golem.de/1101/80597.html (german)

By the way: e.solutions is Audi’s joint venture to develop the new MMI infotainment system for the next A3 in 2012.

Categories
Uncategorized

Xmas holiday project: PowerNap

I’ve wanted to implement a fully integrated Java based OSX tool for a while, during Xmas holidays I finally got to it: PowerNap.

PowerNap puts your computer to sleep after a given amount of time. Available for OSX and Windows.


featuring a design from my favourite web specialist :*

Sourcecode also available via GoogleCode.

Categories
Uncategorized

Snap/Align windows on OSX (like Win7 does)

If you miss the Win7 way of aligning windows by pushing WinKey + ArrowKey on OSX, there’s help: https://github.com/fikovnik/ShiftIt

Just press ctrl+alt+cmd and a Arrow key and your windows will be arranged as you are used to.

Best of all: It’s free.

Categories
Uncategorized

php :: check if person is adult


function isAdult($birthyear, $birthmonth, $birthday)
{
$birthdayTime = mktime(0, 0, 0, $birthmonth, $birthday, $birthyear);
$now = time();

$ageSeconds = $now - $birthdayTime;
$years = $ageSeconds / 3600 / 24 / 365.25;

return $years >=18;
}

if(isAdult($year, $month, $day))
{
echo "your adult! feel free to buy guns.";
}
else
{
echo "goto kindergarden!";
}

Categories
Uncategorized

Ubuntu: Add a new swap file

create the new file with your desired size (usually swap file is as big as RAM)
Attention: dd count parameter means number of blocks (thus 4GB = 4 million blocks with blocksize 1K)


SWAPFILE=/home/swap.file
SWAPMEGABYTES=4096

#create the new file
BLOCKCOUNT=$(($SWAPMEGABYTES * 1024))
dd if=/dev/zero of=${SWAPFILE} bs=1024 count=${BLOCKCOUNT}

#format the file with swap file system:
mkswap ${SWAPFILE}

add the new file with type swap to fstab:
vi /etc/fstab

add new entry for swap file:
/path/to/swap.file       none            swap    sw              0       0

remount fstab:
mount -a

activate swap for all entries in fstab:
swapon -a

show if everything worked well and swap space has changed:
free