Posted: June 13th, 2012 | Author: win | Filed under: Uncategorized | 1 Comment »
I spent last weekend participating in Oakland’s Cleanweb Hackathon. As part of a four-person team, I helped to develop an interactive control application for use with solar power systems. I spent most of my time on the laptop playing with Python code, but still managed to keep it real by macgyvering the power switch on a small fan using an almond and some packing tape.
This was my first organized programming meet-up. I had no idea what to expect collaborating with two other people who I’d never met, but our team turned out to be amazing. While some other teams were experiencing 3am burn-out and yelling at each other, our group stayed cool and focused. I felt that everyone in our team expressed respect, communicated effectively, and worked extremely hard.
In the end, we were able to demo our application without problems, and we earned the second-place prize for best technical achievement. Two points for team Kijani Grows Solar!
Article on Oakland North:
Photos on Flickr:
Posted: December 23rd, 2011 | Author: win | Filed under: Code, Linux | Tags: audio, MPD, music, opengl | No Comments »
Delta VU is a simple audio visualization tool designed to monitor the audio signal level being output by MPD.
According to their project home page, “Music Player Daemon (MPD) is a flexible, powerful, server-side application for playing music. Through plugins and libraries it can play a variety of sound files while being controlled by its network protocol.” MPD has no visualization capability on its own, but provides access to audio being played using a FIFO buffer mounted in filespace. Delta VU reads this buffer and displays the data as an animated VU-style graph that follows the volume of whatever is being played.
- Nifty VU-style level meter displayed using OpenGL/SDL
- Configurable color schemes
Delta VU has been tested on Debian Linux (32 and 64 bit versions) and is available as source code only.
Click here to go to the Delta VU project page on GitHub.
Posted: December 19th, 2011 | Author: win | Filed under: Linux, Notes | Tags: custom, customize, emacs, MPD, terminal, x | 1 Comment »
Added the following to ~/.xmodmaprc to swap the functionality of the left control key and the caps-lock key:
! Swap Caps_Lock and Control_L
remove Lock = Caps_Lock
remove Control = Control_L
keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
add Lock = Caps_Lock
add Control = Control_L
Load the above with the following command (which I put in my ~/.config/openbox/autostart.sh):
Posted: March 8th, 2011 | Author: win | Filed under: Linux, Tools and Gadgets | Tags: electric vehicle, EV, microcontroller | No Comments »
In my spare time, I’ve been working on an embedded system to provide instrumentation and accessory control (indication lamps, turn signal flashers, head lamp relay control, etc.) for use in hobbyist electric vehicles (EVs). Most of my work so far has been focused on implementation of system logic in a simulation environment (desktop Linux).
I’ve written a few tools that simulate some of the hardware that will be present in the target system. I have pulse generators for system timing and a speedometer sensor, a LCD simulator (simple serial 4×20), and a GTK+ GUI to simulate the relay output state and collect contact input from the user. This system is implemented as C code in anticipation of maintaining a build tree that will cross-compile to a ARMv7 MCU.
In case you were wondering, the vehicle silhouette displayed in the GUI shown above is original artwork I created; it was inspired by a Mazda Miata. It is rendered as batch of hard-coded Cairo API calls.
Click here to go to the EVAC project page on GitHub.
Posted: March 7th, 2011 | Author: win | Filed under: LD48 | No Comments »
A silly combination of code for a class project, and LD48 scrap code. I will call this, Burger Harrier. Pre-rendered, cell-shaded model of a cheeseburger flying over a faux-3D landscape. Coded in C with SFML. I guess the idea here was that I’d make a Space Harrier clone, but this went in to the scrap heap.