Bart's Blog

Now viewing: /

About

I am an embedded Linux software developer and consultant operating under Jukie Networks Inc in Ottawa, Canada. I am interested in low-level embedded contract work.



RSS Feed - Full Content

Valid XHTML 1.0 Transitional

Created with Vim

Created with Perl




Tags

abiword adam android apt asm ata audio bacula bash bios board-game boot bug busybox bzr c code conference debian debug desktop devel disk dpkg dream email firefox font fs fun g1 gdb geode git git scm git-find git-graft go google gpg hardware html hw inkscape ion3 ipsec irc irssi joke kdb kernel klips kqemu kvm laptop lastfm ldap linux lua lvm mail make meta mouse-free mpd mutt net nfs oclug ogre ols oom OOo openswan opteron osx ottawa perl photography power pxe qemu raid redhat rogers ruby sbc scm screen script scsi security shell skype spam squid ssh suse svn tags talk thinkpad ubuntu uml unix urxvt usb uzbl vi video vim vimgit virt vpn vserver web weechat wifi wmii wmiirc-lua work x x86 x86emu xen xen-box-setup xterm zsh

Posts

[ 20100130150527 ]
skype on Debian Linux (64bit)

[ 20100125191021 ]
I am so peeved at Rogers

[ 20091205130455 ]
running really nice

[ 20091120225902 ]
notmuch for vim

[ 20091113102221 ]
squid and apt

[ 20091104195344 ]
using WIP branches to save every edit

[ 20091104194146 ]
using git workflows to avoid loosing intermediate changes

[ 20091019183503 ]
reflections on ACM Reflections

[ 20091013174248 ]
bacula rejected Hello command

[ 20091007235046 ]
pimping out git log

[ 20091002094400 ]
virtualization primer

[ 20090922110756 ]
adding an external encrypted volume under Debian

[ 20090905112529 ]
the dreaded process of rooting Rogers Dream

[ 20090830174551 ]
Cyanogen's recipe for Cupcake/Donut-like pastry

[ 20090827100232 ]
simpler android rooting

[ 20090821095427 ]
androids don't like water

[ 20090820215358 ]
prettier function tracing

[ 20090816151854 ]
Baking a cupcake

[ 20090814131559 ]
Hello Android!

[ 20090813100025 ]
sim unlocking a G1

[ 20090731185522 ]
rooting the droid

[ 20090727210307 ]
getting into android

[ 20090714094340 ]
importing an old project into git

[ 20090702113222 ]
Why pick Git?

[ 20090628131255 ]
select loop for X events

[ 20090625181315 ]
portable printf

[ 20090623225800 ]
switching to uzbl

[ 20090622223147 ]
Linux Symposium

[ 20090622214023 ]
bringing git-format-patch to bzr

[ 20090612215638 ]
nfs local caching with fscache and cachefilesd on Lenny

[ 20090610202041 ]
Scott Chacon smacks git around

[ 20090610150039 ]
how would you read a file into an array of lines

[ 20090609215141 ]
libguestfs

[ 20090609000208 ]
tiding up the PATH

[ 20090608232531 ]
only showing relevant messages in mutt by default

[ 20090608010405 ]
git-vim hacking

[ 20090530223801 ]
mark-yank-urls: fix bug allowing shell to interpret the url

[ 20090509212648 ]
wmiirc-lua v0.2.8 release

[ 20090509113125 ]
wmiirc-lua moving to github

[ 20090504101605 ]
two terminals one PWD

[ 20090501172645 ]
splitting files out of a commit

[ 20090409155905 ]
git workflow: git amend

[ 20090401112030 ]
how old are these files in git?

[ 20090330181138 ]
sles 11 on kvm

[ 20090323194942 ]
android true type font

[ 20090322203939 ]
popen with stdin, stdout, and stderr

[ 20090320214228 ]
shrinking URLs

[ 20090304004744 ]
readlater

[ 20081112150409 ]
splitting patches with git

[ 20081011081638 ]
creating busybox symlinks

[ 20081002215121 ]
wmiirc-lua v0.2.5 release

[ 20080916155113 ]
git-svn strangeness

[ 20080915112959 ]
installing git man pages quickly

[ 20080913112345 ]
wmiirc-lua v0.2.4 release

[ 20080825100454 ]
Kernel Walkthroughs - booting

[ 20080813210205 ]
Linux Kernel Booting

[ 20080719211329 ]
printable OLS/2008 schedule

[ 20080715214447 ]
wmiirc-lua updates

[ 20080713194704 ]
Git Screencast

[ 20080713143429 ]
four steps to reproducible Debian installs

[ 20080705150651 ]
USB2.0 enclosure benchmark

[ 20080703230924 ]
Linux Kernel Walkthroughs posted

[ 20080702113602 ]
Introducing the Ottawa Ruby folks to Git

[ 20080628160732 ]
Authenticating Linux against OSX LDAP directory

[ 20080627142123 ]
Canada Day Events 2008

[ 20080613162541 ]
Linux Kernel Walkthroughs

[ 20080510083828 ]
is my usb device connected to a fast port?

[ 20080509111534 ]
show more git info on zsh prompt

[ 20080430104202 ]
git-vim

[ 20080412100337 ]
color your word

[ 20080404105620 ]
show current git branch on zsh prompt (2)

[ 20080303200359 ]
how to track multiple svn branches in git

[ 20080301134220 ]
fixing X for GeodeLX

[ 20080108002540 ]
kvm nfs hang

[ 20080107160836 ]
screen -c relative path bug

[ 20080105132854 ]
WeeChat spell suggestions

[ 20071219221358 ]
show current git branch in zsh

[ 20071217141037 ]
wmiirc-lua kitchen sink repository

[ 20071212100316 ]
protecting sshd from OOM killer

[ 20071204234232 ]
wmiirc-lua v0.2.1 remembers a bit more

[ 20071013205336 ]
wmiirc-lua v0.2 has suspend and raw modes

[ 20070929112345 ]
wmiirc-lua debianization

[ 20070924104140 ]
zsh tip of the day - global aliases

[ 20070915094213 ]
wmiirc-lua v0.1.1

[ 20070913130838 ]
comparing two directories

[ 20070909204125 ]
git-rebase --interactive

[ 20070908115905 ]
zsh tab completion awesomeness

[ 20070902000736 ]
wmiirc in lua

[ 20070831150306 ]
debugging with -dbg libraries

[ 20070831142646 ]
svn status like output in git

[ 20070829141847 ]
Git Cheat Sheet

[ 20070821142038 ]
switching to abiword

[ 20070811105746 ]
forwarding ssh and X through screen

[ 20070807112531 ]
git-svnup

[ 20070724082355 ]
reducing power consumption

[ 20070722123734 ]
Makefile template

[ 20070722002649 ]
less, colourful

[ 20070719162359 ]
irssi docs

[ 20070716114553 ]
qemu eats up /dev/shm

[ 20070710214512 ]
git-clean in svn land

[ 20070705113139 ]
ipw2200 not working

[ 20070627191916 ]
git slides updated

[ 20070618220649 ]
unpopular debian packages on my system

[ 20070611125852 ]
git-svn with multiple branches

[ 20070517085321 ]
Linus on Git at Google

[ 20070510134551 ]
vim modelines insecure

[ 20070504205042 ]
bios disassembler

[ 20070504124124 ]
dd hex arguments

[ 20070503013555 ]
urxvt mouseless url yanking

[ 20070502211941 ]
gitdiff.vba v2

[ 20070419234350 ]
india

[ 20070418155857 ]
zsh fun

[ 20070418143632 ]
pipe to pastey.net

[ 20070418094151 ]
vimgrep alias

[ 20070416202545 ]
mouse-free

[ 20070406141850 ]
ATA messages via SCSI layer

[ 20070330221019 ]
GITDiff vim plugin

[ 20070329011735 ]
git presentation for OCLUG

[ 20070328123631 ]
fixing vim's [[ and ]] for bad code

[ 20070316092236 ]
pxeboot and nfsroot with debian

[ 20070312134706 ]
etc snapshots with git

[ 20070307004041 ]
remote power switch

[ 20070222215355 ]
klips-less openswan git tree

[ 20070221041316 ]
git caching for v1.5.x

[ 20070218002214 ]
klips loses zlib

[ 20070209172606 ]
vim and linux CodingStyle

[ 20070207205427 ]
my kqemu install

[ 20070204100100 ]
leaner meaner openswan

[ 20070115111917 ]
wmii+ruby xlock action

[ 20070112131252 ]
cloning xterms in wmii+ruby

[ 20070102010551 ]
wmii+ruby talk for OCLUG

[ 20061228220641 ]
dump and restore

[ 20061218100219 ]
C style

[ 20061101002027 ]
fetching all git branches from remote

[ 20061028111607 ]
local caching for git repos

[ 20061020145437 ]
automatic version creation with git

[ 20061018213306 ]
wmii w/ ruby wmiirc

[ 20061018201907 ]
small fonts

[ 20061007151802 ]
google-codesearch from vim

[ 20060928020813 ]
shell commands

[ 20060920093957 ]
letting screen apps use the ssh-agent

[ 20060908223613 ]
mpdscribble stream support

[ 20060907125149 ]
glGo on ubuntu/dapper amd64

[ 20060906163240 ]
lbdb and mutt

[ 20060902145643 ]
vim tutorial

[ 20060902135722 ]
fixing your terminal

[ 20060828124713 ]
apt-get pdiffs

[ 20060824224842 ]
256 colour xterms

[ 20060824152658 ]
dynamic IPcomp

[ 20060824145428 ]
inkscape++

[ 20060818150516 ]
tags/cscope for system headers

[ 20060805131557 ]
opteron 170, part 4

[ 20060805101941 ]
opteron 170, part 3

[ 20060803233234 ]
opteron 170, part 2

[ 20060802210126 ]
opteron 170

[ 20060729144129 ]
OLS keysigning / 2006

[ 20060728105500 ]
git-find findings

[ 20060727162941 ]
starting on git-find

[ 20060727113632 ]
git-graft and git-find brainstorm

[ 20060726224531 ]
pretty function tracing

[ 20060713174723 ]
uml and multiple network segments

[ 20060707182236 ]
lastfm artist and title to clipboard

[ 20060706162256 ]
reverting a git changeset

[ 20060629212003 ]
user #3

[ 20060628083456 ]
firefox crashes with form input

[ 20060612222204 ]
ldap account management

[ 20060612194523 ]
stupid ldap

[ 20060608092157 ]
rpm hell is right

[ 20060605095726 ]
OpenSSH VPNs

[ 20060604114317 ]
Lenovo lost a customer

[ 20060601234010 ]
generating html colourized sourcecode

[ 20060601211716 ]
ion3 greatness and acting on X selections

[ 20060526085644 ]
software RAID10 performance

[ 20060525234148 ]
learning to love git

[ 20060524121638 ]
recent vim7 articles

[ 20060516095748 ]
bootstrapping debian on my sbc

[ 20060428145140 ]
entropy injection

[ 20060423140628 ]
Adam

[ 20060414202507 ]
converting mp3s to CD

[ 20060413232836 ]
secure apt-get

[ 20060412194423 ]
xen domain0 on debian

[ 20060410220525 ]
LVM2 on RAID1 mirror

[ 20060410102824 ]
building a RHEL4 kernel w/ kdb support

[ 20060407230939 ]
xen on debian

[ 20060407230818 ]
Upgraded look

[ 20060330131334 ]
Flattered by a copy

[ 20060328165153 ]
vim7 from source

[ 20060308123539 ]
Perl, Catalyst, CPAN, and Debian

[ 20060308123302 ]
last.fm

[ 20060128124841 ]
carcassonne and zombies

[ 20060120135931 ]
Election Humour

[ 20050925130002 ]
ldap on debian

[ 20050528190034 ]
Error while mapping shared library sections

[ 20050124130158 ]
IRC over email gateway

[ 20050110225522 ]
brute force attacks sshd?

[ 20050108095026 ]
LDAP authentication (part 1)

[ 20041124130146 ]
sawfish workspace themes

[ 20041113082651 ]
Mini-DV to divx using mencoder

[ 20041004084525 ]
notes on vserver

[ 20040922104334 ]
fast kernel logging

[ 20040803104122 ]
Digital Rebel for sale... GONE

[ 20040714202912 ]
OpenOffice resources

[ 20040603175746 ]
photo editing

[ 20040601082817 ]
WRT54G

[ 20040503205227 ]
Digital Rebel

[ 20040420200136 ]
Open Office templates

[ 20040326082602 ]
bash vi editing mode

[ 20040315204142 ]
debian install CDs

[ 20040312155542 ]
change of jobs

[ 20040308091554 ]
spamassasin extras

[ 20040305163216 ]
cool debian tools

[ 20040305155708 ]
first post!

skype on Debian Linux (64bit)

[ link: skype-on-64bit-lenny | tags: skype linux | updated: Sun, 31 Jan 2010 21:43:51 ]

My aunt asked that I get my mom hooked up on skype for my mom's B-day. That involved getting a webcam and hooking it up on my parents' Ubuntu system. Since I've never done anything with webcams, I didn't know where to start. This blog entry is about trying skype and the webcam going on my Debian Sqeeze laptop.

[Read More]

I am so peeved at Rogers

[ link: rogers-killed-my-dream | tags: android rogers dream | updated: Sat, 30 Jan 2010 13:16:32 ]

See the updates below if you want to keep your root.

I just received the following text from Rogers, and as it claims my data access has been disabled. Since I am running CyanogenMod I never had the 911 issues that the stock Rogrers firmware experienced.

    Rogers/Fido Safety Message: URGENT Reminder 911 Calls HTC Dream
    software update: Mandatory software update is now available to help
    ensure 911 calls are completed from your phone. Please go immediately
    to rogers.com/dreamsoftwareupdate on your PC to download.

    In order to help ensure 911 calls are completed internet access was
    temporarily disabled on your phone at 01/24/10 6:00AM EST. To
    reactivate internet service, please complete your software update
    immediately. Upon completion, internet access will be re enabled
    within 24 hours.

    For users of Macintosh and Windows 7, please call 1-
    888-764-3771(1-888-ROGERS1) for update instructions.

    We apologize for the inconvenience but we prioritize customer safety
    above all.

So I called rogers to get it straightened out and get my data access back. However since everyone in the country that has a Dream or Magic got their service cut... you can imagine I wasn't the first one to call and complain. When the automated system told me that I would have to wait for 30 minutes I hung up. My time is a bit more important than that.

Ben Selinger wrote about his experiences and it seems to me that Rogers doesn't want people with phones they don't control as customers.

Well, this is one more strike for Rogers, and one more reason to leave. Let's hope WIND is all that it's cracked up to be.

[Read More]

running really nice

[ link: 20091205130455 | tags: zsh shell | updated: Fri, 15 Jan 2010 22:27:56 ]

Everyone that uses the shell eventually learns about nice -- the tool that runs a process at a reduced priority. Well, there is also ionice that allows you to tweak processes from taking over all disk IO.

I added a vnice() function into my ZSH config so I can run or mark processes for lower priority for both nice and ionice levels.

[Read More]

notmuch for vim

[ link: notmuch.vim | tags: mail vim | updated: Fri, 15 Jan 2010 22:27:56 ]

Quite some time ago now, I tried sup but found it's indexing latencies unacceptable for my workflow. I also found the user interface a bit foreign and hard to get into.

More recently I've found notmuch, a project that started as a C rewrite of the core bits of sup. Basically, it's a program that indexes and searches through your existing mail.

I had two issues with it.

  • it had an emacs interface, and
  • it uses maildir instead of mailbox.

[Read More]

squid and apt

[ link: 20091113102221 | tags: apt debian squid | updated: Fri, 15 Jan 2010 22:27:56 ]

In the past few months apt-get update started failing when using a squid3 web cache.

It woudl give errors like these...

  • 404 Not Found [IP: 149.20.20.135 80]
  • The HTTP server sent an invalid reply header [IP: 130.89.149.227 80]
  • Failed to fetch .../Packages 404 Not Found [IP: 149.20.20.135 80]
  • Failed to fetch .../Sources 404 Not Found [IP: 149.20.20.135 80]
  • etc

[Read More]

using WIP branches to save every edit

[ link: save-everything-with-git-wip | tags: git vim | updated: Fri, 15 Jan 2010 22:27:56 ]

I am experimenting with a new workflow to help solve the problem of lost work between commits. As described in my previous post, there are already several ways to deal with keeping track of frequent edits. The only problem is that they all involve dedication and extra effort.

[Read More]

using git workflows to avoid loosing intermediate changes

[ link: 20091104194146 | tags: git | updated: Fri, 15 Jan 2010 22:27:56 ]

A few days ago a buddy, Jean, had stumbled into a problem caused by infrequent committing to his git repository. Committing after the feature is implemented is common when working with tools like SVN... but we have multiple workflows available to us under git to manage frequent commits.

[Read More]

reflections on ACM Reflections

[ link: acm-reflections-2009 | tags: conference | updated: Fri, 15 Jan 2010 22:27:56 ]

I returned from the 2009 annual ACM Reflections | Projections conference held at the University of Illinois at Urbana-Champaign. I was asked to speak at the conference about Git.

I really enjoyed attending the conference, and not just because I learned how to play Beer Pong at the staff party. The organizers did a really good job of putting on a great event -- even if the line ups for food were a bit long, but it was free food for starving students, so what would you expect. I got to meet awesome people like Bram Moolenaar, the author of Vim, Alexis Ohanian, of reddit fame, and Ryan North, the guy behind Dinosaur Comics. I was also in awe of the facilities the CS people have at UIUC.

For ACM Reflections, I ended giving two talks: first one to introduce the topic of revision control, and second one to show people how to use Git. Although the second talk was called a "Workshop" it was basically a 2 hour lecture on Git, and I think it went really well. People kept asking questions for another hour after, and I received positive comments after the talk. However, I was not overly happy about the first part, and found it a bit weak. I think I'll stick to teaching people about Git, rather than teaching them about revision control in general.

The first talk was recorded and will be available on the reflections website soon, so you can tell me if you agree :)

Anyway, I ended up redoing my previous presentation using a slightly different format. You can get all the slidework.

... and in case you're wondering, I didn't win at Beer Pong.

bacula rejected Hello command

[ link: bacula-rejected-hello-command | tags: bacula | updated: Fri, 15 Jan 2010 22:27:56 ]

I added a new host to bacula today. That resulted in:

    13-Oct 16:58 bacula-dir JobId 1026: Fatal error: File daemon at "oxygen:9102" rejected Hello command
    13-Oct 16:58 bacula-dir JobId 1026: Error: Bacula bacula-dir 2.4.4 (28Dec08): 13-Oct-2009 16:58:39

After looking around on the web and coming up with nothing, I noticed the version difference. The new host happened to run version 3.x.y of bacula-fd, unlike my director that runs 2.4.y. Apparently bacula doesn't support the director being an older version than the client.

[Read More]

pimping out git log

[ link: pimping-out-git-log | tags: git | updated: Fri, 15 Jan 2010 22:27:56 ]

I got playing with git log and ended up creating this alias:

[alias]
    lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative

Which adds a git lg command that is a prettier version of git log --oneline.

[Read More]





Bart Trojanowski
http://www.jukie.net/~bart
bart@jukie.net