• Coding,  Open Source,  Random,  Uncategorized

    The Black Triangle

    Stuart Langridge on Planet Ubuntu posted about this story a while back, and its a something that’s happened to me a lot of times over my career. The Black Triangle The tl;dr is that a complex, extremely flexible system, well built system often takes a long time to put together, and the first fruit of the labor is often something seemingly simple to do from the perspective of someone else. However, the complex underpinnings of the well designed system allow the project to grow by leaps and bounds once that first black triangle is shown on the screen! That ‘black triangle’ one of the coolest parts of being an engineer.…

  • Open Source,  Random,  Ubuntu

    Irssi OSD notifications

    I wanted irssi to ping me using Ubuntu/Gnome’s on screen notification system, but didn’t want to dig into irssi’s code… what is one to do? Cobble scripts together of course! Here’s how I got it done: Download this irssi plugin: fnotify.pl This script will update a text file  (~/.irssi/fnotify) with a new line every time you are pinged Put fnotify.pl in ~/.irssi/scripts autorun this script by executing: ln -s ~/.irssi/scripts/fnotify.pl ~/.irssi/scripts/autorun/fnotify.pl start irssi, and run: /hilight -nick {your_nick} /save When someone pings you, check the ~/.irssi/fnotify file for that ping, it should be there Download my script below (call it lastline_notify) and run it like this: ./lastline_notify ~/.irssi/fnotify & disown…

  • Hardware,  Random

    Legos and Turing machines

    Jeroen and Davy over at legoturingmachine made a pretty cool little turing machine to honor Turing‘s centennial birthday. I thought I’d repost! Check out the video: LEGO Turing Machine from ecalpemos on Vimeo. Pretty cool way to honor the theoretical basis for all modern computing!

  • Random,  Ubuntu

    Gnome notifications from your Terminal!

    Its pretty easy to get your terminal to notify you using Gnome’s libnotify system and a short python script. Python’s pynotify package (available as Debian/Ubuntu package: python-notify) I use this short script occasionally to notify me when a long compile is done like this: [code lang=”bash”] make && echo "Done compiling!" | notifier [/code] Short python script in my $PATH called “notifier” [code lang=”python”] #!/usr/bin/python import pynotify import sys pynotify.init("Quick Notify") input = sys.stdin.readline() msg = pynotify.Notification("Shell Notification:", input) msg.show() [/code]

  • Coding,  Hardware,  Random

    Android ARM inline assembly

    If you happen to want to write some inline assembly in Android, its just about as easy as you’d expect! See the code snippet below for a simple example of how to add two numbers in assembly on ARM. Download code with Android makefile [code lang=”c”] include "stdio.h" static inline int add(int a, int b) { int sum; __asm__ __volatile ("add %[c][/c], %[a], %[b]" : [c][/c] "=r" (sum) /* one output */ : [a] "r" (a), [b] "r" (b) /* two inputs */ : /*code does not clobber*/ ); return sum; } int main(int argc, char ** argv) { printf("sum is %in", add(4,222)); return 0; } [/code] If you run…

  • Uncategorized

    The Cupholder Problem

    There’s a little story I always think about when designing or modifying an established, well entrenched API, and it goes like this: Back a few decades ago, no cars had cupholders. A team of engineers were given the task to add a few cupholders to the new car model, so they went down to their local convenience store (like 7-11) and bought all the varieties of cups that the store had. They then analyzed the cups and designed a cupholder for the car that would work with all the different sizes of cups, and put it in their new car. Fast forward a few decades, and all the cars had cupholders. The convenience store…

  • Coding,  Hardware,  Open Source

    Installing the blob on your Pandaboard for Android

    The Pandaboard by Texas Instruments is a pretty good, mostly open source little development board with one teensy problem…. the blobbbbbbbbb (illustrated by Hermes Conrad to the left…) If you’ve followed this blog post from last week, you have an image that was built from source, and is identical to the images that linaro produces. However, you still have to go and install the binary drivers provided by TI to get things like graphics acceleration working. I’ve been using a script by vishalbhoj from linaro here. Pretty much, if you read it, it just has a download location, and then conveinently installs the download to the proper partition on the…

  • Open Source,  Ubuntu

    Back from UDS-Q

    I’m back from from the Ubuntu Developer’s Summit for Quantal Quetzal (12.10)! This was my first UDS, and it was really cool to see so many developers from everywhere come together to make the next version of Ubuntu something amazing. I saw a lot of cool presentations, sessions, and talks. I also got a bit of sightseeing in in Oakland, San Francisco, and Berkeley on the weekend and at night. Although I mostly went for planning the next version of the Ubuntu desktop interface, there were a lot of cool things going on with cloud computing as well. I learned a fair amount about MAAS (rapidly deploying thousands of servers)…

  • Coding,  Hardware,  Open Source

    Building Linaro Android (12.04 or daily) for Pandaboard

    I recently came into possession of a TI pandaboard for ARM development. Its a pretty cool little package, but if you want to build from source, you run into all sorts of old outdated wiki’s from Linaro that have you chasing your tail trying to build the android tree from source. Here’s how you do it as of May 2012 You have to get a ARM cross-compile toolchain and an android source tree that are in sync with each other. This is the tricky part, because its not exactly well tagged on the internet which version of the toolchain will work with what version of the source tree! When I…