Tuesday, September 30, 2008

pretty pretty iphone


python 1


The Bellic School of Management Training. As in Nico Bellic from GTA IV.



2s complement. For my CSC 111 lab that I'm TAing.

bad code smells

maintainable CSS


Higher-order shell - How UNIX commands in scripts are like higher-order commands in functional languages like Haskell.

By the way, I was volunteering at ICFP 2008 (International Conference in Functional Programming) last week, and got to meet many of the luminaries in functional programming. Some smart people there, let me tell you.


I'm going to be presenting a talk at a workshop coming up:

The Many Faces of Multimedia Semantics
It used to be called Robust Multimedia Learning in Broad Domains.

Monday, September 29, 2008

navaratri 2008

Navaratri One: Kali

Begins tonight. Om Kali Namaha!


I've just switched over to haxe 2.0. It seemed to be quite an easy switch, not much seemed to break, and now I have default arguments in the variable list, which makes porting AS3.0 code so much easier.

Friday, September 26, 2008


Android documentation
Getting started with Android
Android FAQs
Installing the Android SDK - The API is Java
Developing and Debugging Android - You use Eclipse as the SDK
Hello world app with Android

package com.android.hello;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloAndroid extends Activity {
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
TextView tv = new TextView(this);
tv.setText("Hello, Android");

Android uses ALSA for audio
Android media API

Recording audio with Android:

Start recording:

recorder = new MediaRecorder();
ContentValues values = new ContentValues(3);

values.put(MediaStore.MediaColumns.TITLE, SOME_NAME_HERE);
values.put(MediaStore.MediaColumns.TIMESTAMP, System.currentTimeMillis());
values.put(MediaStore.MediaColumns.MIME_TYPE, recorder.getMimeContentType());

ContentResolver contentResolver = new ContentResolver();

Uri base = MediaStore.Audio.INTERNAL_CONTENT_URI;
Uri newUri = contentResolver.insert(base, values);

if (newUri == null) {
// need to handle exception here - we were not able to create a new
// content entry

String path = contentResolver.getDataFilePath(newUri);

// could use setPreviewDisplay() to display a preview to suitable View here



Stop recording


Location-based Service APIs

locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Location location = locationManager.getCurrentLocation("gps");

How to Program Google Android

latex save space

Save space in Latex with some neat tips and tricks.


An interview with Neal Stephenson about his new book, Anathem.

wireframe paper


forty core

IntellaSys just released a 40 core processor.

Tuesday, September 23, 2008

digital filter design software

latex helvetica

I get very bored of Times New Roman in Latex, so to switch things up to Helvetica, just add the following after \documentclass:


And then right after "\begin{document}" go:


Much better.


The general objective of the ENACTIVE Network is the creation of a multidisciplinary research community with the aim of structuring the research on a new generation of human-computer interfaces called Enactive Interfaces.



macosx startup

The things that happen during Mac OSX startup.

Monday, September 22, 2008


Almost time for Maha Navaratri, it starts September 30th. My favorite.


Computers have exquisite ears. A report about the recent ISMIR 2008 (Ninth International Conference on Music Information Retrieval).


Happy Fall Equinox!

Monday, September 22, 2008: Autumnal Equinox 8:44am (PDT)

Friday, September 19, 2008


Yay! It's International Talk like a Pirate Day today.



I wonder what my Erdos number is. I have worked with some math people, so perhaps it's not extremely high.


An interview with Dr. Andrew Schloss a friend and colleague here at UVIC.

metric - dead disco

Wednesday, September 17, 2008


Music + RDF (Resource Description Framework) =dbtune. Very cool.

Monday, September 15, 2008


**NB** : Blogging output has slowed considerably due to me starting my M.Sc. in Computer Science at the University of Victoria.

ruby exec

touch type

Programmers : you need to be able to touch type. It is essential.

8-bit bach



Near Future Laboratory Top 15 Criteria That Define Interactive or New Media Art

The Near Future Laboratory Top-15 Criteria for New or Interactive Media Art are...

15. It doesn't work

14. It doesn't work because you couldn't get a hold of a 220-to-110 volt converter/110-to-220 volt converter/PAL-to-NTSC/NTSC-to-PAL scan converter/serial-to-usb adapter/"dongle" of any sort..and the town you're in is simply not the kind of place that has/cares about such things

13. Your audience looks under/behind your table/pedestal/false wall/drop ceiling or follows wires to find out "where the camera is"

12. Someone either on their blog or across the room is prattling on about the shifting relations between producers and consumers..and mentions your project

11. Your audience "interacts" by clapping/hooting/making bird calls/flapping their arms like a duck or waving their arms wildly while standing in front of a wall onto which is projected squiggly lines

10. Your audience asks amongst themselves, "how does it work?"

9. The exhibition curators insist that you spend hours standing by your own wall text so that you can explain to attendees "how it works"

8. It's just like using your own normal, human, perfectly good eyeballs, only the resolution sucks and the colors are really lousy..plus the heat from the CPU fan is blowing on your forehead which makes you really uncomfortable and schvitz-y

7. Someone in your audience wearing a Crumpler bag, slinging a fancy digital SLR and/or standing with their arms folded smugly says, "Yeah..yeah, I could've done that too..c'mon dude..some Perlin Noise? And Processing/Ruby-on-Rails/AJAX/Blue LEDs/MaxMSP/An Infrared Camera/Lots of Free Time/etc.? Pfft..It's so easy..."

6. Someone in your audience, maybe the same guy with the Crumpler bag and digital SLR excitedly says, "Oh, dude. That should totally be a Facebook app!"

5. It's called a "project" and not a "piece of art"

4. You saw the "project" years ago...and here it is again...now with multi-touch interaction and other fancy digital bells and Web 2.0-y whistles

3. Your audience cups their hands over various proturbances/orifices at or nearby your project attempting to confuse/interact with the camera/sensor/laser beam, even if it uses no such technology

2. There's a noticeable preponderance of smoothly shifting red, green and blue lighting effects

1. People wonder if it wasn't all really done in Photoshop, anyway

3 Bonus Criteria!

0. There are instructions on how to experience the damn thing

-1. You can't "collect" or buy it. Heck, if you did, you'd need to get AppleCare or hire an IT guy in the bargain

-2. Crumpler guy says, "Oh, I thought of that already.."


Johnny Lee: Wii Remote hacks

Foldable Displays (tracked with the Wiimote)

VTS 2nd Generation

Webcam IR Tracking

ir tracking

Tracking fingers with the Wii Remote


Tuesday, September 09, 2008


If you are running a Python interpreter and you change a source file on disk, you need to reload it by doing:


You can also reload all modules with:

for mod in sys.modules.values():

But this is probably the wrong thing to do. Read Reloading Python modules for more info.

Friday, September 05, 2008

javascript tree

A really nice little tree view widget in Javascript. Such a better API than the YUI TreeView widget. I love the YUI, but some of their javascript APIs pretty suck, this one is so nice because you mark up your tree with HTML lists.

Monday, September 01, 2008


Check how your website looks in different browsers with Browsershots.org.


Sequence - provides a unified api for access to sequential data types, like Strings, Arrays, Files, IOs, and Enumerations. Each sequence encapsulates some data and a current position within it. Some operations apply to data at (or relative to) the position, others are independant of position. The api contains operations for moving the position, reading and writing data (with or without moving the position) forward or backward from the current position or anywhere, scanning for patterns (like StringScanner, but it works in Files too, among others), and saving a position that will remain valid even after data is deleted or inserted elsewhere within the sequence.



csc 111 at UVIC.



Info for the OPA 350 op-amp.