images | audio | feed | contact

pullingshots

Interviewed

I did an interview for Rikki Endsley about the talk I gave at Open Source Bridge in June.

You should definitely check out the article, but here is the interview in its entirety...

What inspired you to give your talk at OS Bridge this year?

I have 3 boys of my own who are either in or entering the public school system, and I am seeing a real void in the education they are receiving with computers. Obviously, computers are everywhere in schools now, but it is really disappointing to see kids only being taught how to use programs, not create them. As with most things, if you want to see change, you have to do something. I started hosting a programming club for my son and his friends, which turned out to be really easy to pull off. I wanted to share with others about my experiences and motivate them to run their own clubs.

I also see a real opportunity to "bring up" and mentor the next generation of open source citizens. Communities like Scratch can be a great way for kids to see how open source works and how powerful it can be. From simple things like sharing your source code with others (there is no way to share your program on Scratch and not share your source), to good etiquette when commenting on other programs, to more complicated concepts like forking someone else's code (Scratch calls it a remix). I wanted to show people the importance and value of instilling the culture of open source in our kids at a young age.

What did you focus on in your talk? What was the feedback/response from attendees?

I wanted to convey the excitement kids experience when they are exposed to the source code of a program. Both from the perspective of creating the code, and from seeing the inner workings of other people's code. I remember as a kid playing Castle Wolfenstein with my brother on our Commodore 64 and how it felt when we discovered we could open the source code up and give ourselves extra lives! It's great to see first hand someone's mind expanding when they discover what's behind that game or app that they love, or that there really are no limits to what you can make your program do... including making it "crash" or "glitch"!

I think this connected with a lot of the attendees because most programmers can think back to times when they've had these sort of mind-altering moments. I think it's easy for us programmers to forget that most people don't see computers the same way that we do. People who haven't been shown or taught about programming naturally think there's a lot of magic or voodoo behind the scenes when they click a button. I think the attendees could relate to their own experiences with OS's and platforms that are becoming more and more closed, and see that the chance kids will naturally have their minds opened up to the world of programming is getting pretty slim.

Are you currently working on any kid-focused open source project right now (and if so, what are they)?

I am continuing with the programming club for my kids and their friends. This has also led to teachers requesting that I run a session at the school for all of the kids which I think would be really interesting.

What other kid-focused events or projects do you see going on in open source right now? What would you like to see (new projects, efforts from companies, products, etc.)

I really love the things that are popping up like KidsRuby and a book "Invent Your Own Computer Games with Python". I think Scratch is a really great starting point, but it definitely has many, many limitations. The sooner you can get kids into a real programming language and interacting with communities like GitHub, the better.

What I would like to see happen is for our elementary and middle school curriculum to include programming. With tools like Scratch and projects like KidsRuby out there, there's really no excuse anymore.

Anything you'd like to add?

Open source as a culture and a way of getting things done in the real world is so powerful. I think it will be invaluable if we can bring up an entire generation who have been exposed to it from a young age.

posted at 2011-10-27T17:10:31 by baerg

Devel::REPL

I've been programming Perl for years and started using Devel:REPL recently, but I didn't really appreciate it until now. I'm creating a site for my son to post the comics that he draws using Dancer. The combination of Dancer and Devel::REPL is really quite nice. Simply running

$ re.pl
$ use Dancer

from within your Dancer App directory will import everything you need to start playing around with your Dancer App, so this:

$ template 'index'

will display the generated html of your index template, and this:

$ template 'index', { page_title => 'Enjoy!' }

will pass the template options.

Plus, Devel::REPL isn't just another interactive mode, its got plugins! -- colours, auto-completion, pretty printing data structures... Here's my ~/.re.pl/repl.rc

use Modern::Perl;

use Term::ANSIColor;

no warnings 'redefine';

my @plugins = (
    'ReadLineHistory', # history saved across sessions
    'Colors', # colorize return value and errors
    'Refresh', # refresh before every eval
    'Interrupt', # improve handling of ^C
    'OutputCache', # access previous results
    'Nopaste', # paste session with #nopaste
    'DDS', # format output with Data::Dumper::Concise
    'PPI', # PPI dumping of Perl code
    'MultiLine::PPI', # allow multiple lines
    'Completion',
    'CompletionDriver::Keywords', # substr, while, etc
    'CompletionDriver::LexEnv', # current environment
    'CompletionDriver::Globals', # global variables
    'CompletionDriver::INC', # loading new modules
    'CompletionDriver::Methods', # class method completion
    'CompletionDriver::Turtles', # turtle command completion
);
$_REPL->load_plugin($_) for @plugins;
$_REPL->normal_color('blue');
$Devel::REPL::Plugin::Packages::PKG_SAVE = 'main';

END {
 print "\n";
}

posted at 2011-08-27T17:18:30 by baerg

Stained Glass Windows

I have always loved stained glass windows.

Stained Glass Windows

posted at 2011-07-21T02:40:39 by baerg

Glorious Sunshine

We found the sun! Apparently, it was hiding on Prince Edward Island. We enjoyed an evening and afternoon on the red sands of the Northumberland beach. As we were about to leave, I noticed the daisies growing on the bluffs. Perfect!

Daisies on the Beach

posted at 2011-07-20T01:22:45 by baerg

Rainy Days

Much of our time in the Maritimes has been rainy so far. We managed to get nice days for our visits to Peggy's Cove and the Fortress of Louisbourg, which were both amazing, but otherwise, it's been foggy and soggy. However, one of the nice side effects of rainy weather is that you can get really great lighting for outdoor photography in the middle of the day. This photo from the public gardens in Halifax was taken around noon and is a great example.

Halifax

posted at 2011-07-16T02:31:58 by baerg

Blah

It's raining. And cold. We spent 2 hours shopping in Crappy Tire and not so Small Mart today.

Mira River

posted at 2011-07-15T01:21:44 by baerg

Peggy's Cove

I find it interesting how I have pictures in my mind of a place before I even experience it. Peggy's Cove was one of those places. The pictures I have in my mind after experiencing it are so much more amazing. I really don't think that any actual pictures I have taken of it can come close to what I experienced, but I will try with this one.

Peggys Cove

posted at 2011-07-14T01:57:42 by baerg

Geocaching

If you haven't heard of geocaching yet or don't know much about it you should really check out the guide. It's pretty much just a giant scavenger hunt game, and now that most people have gps+internet on their phone, it is really easy to get into it.

One of the things that I love most about geocaching, is that it takes me to interesting places that I wouldn't otherwise experience, or take pictures of. This photo was taken while searching for Across The Lake.

Dead Trees

posted at 2011-07-12T03:26:00 by baerg

From the Rockies to the Atlantic

We made it! My feet have been immersed in the Atlantic Ocean!

I have flown on an airplane much farther away from home than where I am now - Indonesia, England, and Mexico - but having traversed over 5,000 km of pavement across prairies, through forests, beside lakes and along rivers, I feel much farther away from home than I have ever been. Not a day goes by that our (almost) 4 year old doesn't mention that "we are so. far. from our house."

Sandy Toes

posted at 2011-07-11T02:42:30 by baerg

Portraits

In general, I would say that I don't enjoy taking portrait photos. But I have always enjoyed capturing portraits of my boys.

Sawyer

Eli

posted at 2011-07-10T02:53:19 by baerg

Rue Saint-Amable

I absolutely love bicycles (in all shapes and sizes). This one is on Rue Saint-Amable just off of Place Jaques-Cartier in Montreal.

La Bicyclette

posted at 2011-07-10T02:47:19 by baerg

Statues

There was no lack of statues today on our walking tour of Old Montreal.

Open Heart

Gossip

Curiosity

posted at 2011-07-08T03:37:56 by baerg

Quebec!

We are now farther East than I have ever been before in Canada. It surpised me how nervous I was about entering a gas station, wondering if I should say "bonjour" or "hello". Quite silly actually.

We crossed over the St. Lawrence and will cross back over again tomorrow to visit Old Montreal.

Over the St Lawrence

posted at 2011-07-08T03:36:24 by baerg

Animal Personalities

Hawk

Bee

Parrot

posted at 2011-07-05T02:31:32 by baerg

The Best Books

The best books force you to think about something differently. I'm currently doing something that I only do when I'm on vacation - read a novel.

Beatrice & Virgil by Yann Martel is forcing me to think about the Holocaust differently, but not in the sense that it's from a different perspective. It's not simply a story from a certain point of view. I didn't even realize that I was reading a novel about the Holocaust until I was over 3/4 of the way through! The characters in the book struggle with how to write and talk about the Holocaust which in turn has shown me new ways of thinking about it.

posted at 2011-07-04T04:14:30 by baerg

Flowers

I'm quite sure that the diversity of flowers could keep my camera shutter busy for a very long time.

Hosta Flowers

posted at 2011-07-03T15:02:22 by baerg

Cousins

There is a special bond between cousins that doesn't seem to be found in any other kind of relationship.

Cousins and Glowsticks

posted at 2011-07-02T04:38:15 by baerg

Evenings at the Beach

I love beaches in the evening. Some of my most vivid childhood memories are of swimming at dusk. The water is usually calm, and always feels warmer as the air gets cooler. My Dad has a picture from when our family lived in India of my Mom and I strolling along a beach at sunset, holding hands, with sailboats littering the skyline. I was 2 years old. Maybe a part of me gets transported back to that moment whenever I experience a beach at dusk.

Higgins Lake

posted at 2011-07-01T02:56:40 by baerg

Finding Good Coffee

The 4th day of my photo-blogging challenge and I have no photo, only a blog post.

I have discovered that the probability of finding good coffee at a coffee shop can be determined solely by the existence (or absence) of certain terms in their name.

You can also reliably predict whether you will get a good cup of coffee simply based on whether or not you can find a brand name on the espresso machine they are using (bonus points if it sounds Italian like "La Marzocco"). This is somewhat less convenient and much more time consuming, but extremely effective.

Strangely, roasting their own beans does not seem to play a factor at all. I have had both terrible and extremely good coffee from a coffee shop/roaster. Although usually, if they are roasting at the same location as the actual coffee shop, that's a warning sign.

posted at 2011-06-30T04:55:20 by baerg

Sunset

We have a lot of really great prarie sunsets back home (in Calgary), but I rarely ever have the time to enjoy them. I actually suspect that sunsets are no more spectacular wherever I find myself on vacation. Here's the one I was able to enjoy today sitting on the dock at Jessie Lake, MN with my son, Jaxson.

Sunset at Jessie Lake

posted at 2011-06-29T04:38:22 by baerg

East

Day 2 of my self-imposed photo blogging challenge.

We're on a minor detour due to the massive amounts of flooding in Southern Saskatchewan and North Dakota, which means we get to spend another day on the beautiful (and pot-hole ridden) Trans Canada Highway... the Number 1.

Heading East

posted at 2011-06-28T05:25:14 by baerg

Herbert

I'm driving across Canada with my family, almost coast to coast. Calgary to Halifax with a lot of stops in between. It's going to take us about 5 weeks for the round trip which is 35 days. I am setting a goal to post at least 1 photo for each day. I can honestly say that I love photography. And I love not just taking pictures, but I also love massaging a picture into something that represents what I "saw" when I took it.

So, here is Day 1. We drove from Calgary to Herbert, SK today which is where my wife's Grandma lives. The drive went surprisingly quick. If you ever find yourself in need of some great coffee in Medicine Hat, the Madhatter Coffee Roastery is actually quite stellar. They promise not to sell you beans that are more than 3 days old, I got a very smooth latte, and they only take cash - hard core!

From Grandma's window, you have this great view of a lake and behind it is a little white church on a hill. I commented on it, to which Grandma replied, "Sometimes when the water is like glass, the whole church is mirrored. It's so perfect, I'm sure even I could take a picture of it." But she doesn't because she has her window to look out of all the time. Here it is...

Church on a Hill

posted at 2011-06-28T05:23:33 by baerg

my son is an artist

I know this sounds like I'm bragging, but I'm going to say it anyways. My son is an artist. I know this because the things that he creates are interesting. Because he sees things in his mind that he can only express by creating art. I have no grand illusions of him becoming a famous artist someday, but I do appreciate the art that he is creating right now. Including this self-portrait masterpiece:

Jaxson - self portrait

posted at 2011-06-10T06:05:52 by baerg

blogging with vim and scp

I would love to be able to blog using nothing more than vim and scp.

Here is the plan...

Each post will simply be a text file. The file name will be the title, and the content will be converted to html using Markdown. The file modification time will be used for the news feed.

A single directory will hold all of the content - posts, images, audio, video and comments. Publishing a post will be accomplished by copying the files to this directory. Images, audio, video and comments will be stored in corresponding subdirectories and additional subdirectories can be created to store posts. The index page will display the posts stored in the root directory and the site navigation will be generated from the subdirectories.

Images will be automatically resized (ImageMagick). Audio and video files will be automatically transcoded (ffmpeg) and playable inline (html5).Comments will be screened for spam using email confirmation and unconfirmed comments will auto-expire.

posted at 2011-06-10T06:05:52 by baerg

Record My Window -- a screencasting script

I don't do screencasts a lot, so it never fails that when I want to record a screencast, I have to re-learn how to accomplish it or go searching for a good app. My requirements are always pretty simple... choose my window, then record and output a high-quality video file. A while back I wrote a simple little script that pulls together a few utilities (xwininfo, recordmydesktop, and ffmpeg), and my problem is solved! Now I just have to remember that I have a script. :)

#!/usr/bin/env perl

use Modern::Perl;

## Get window geometry and position from xwininfo
my $wininfo = `xwininfo`;
$wininfo =~ /-geometry (\d+)x(\d+)(\+|\-)(\d+)(\+|\-)(\d+)/;
my $width = $1;
my $height = $2;
$wininfo =~ /Absolute upper-left X:\s+(\d+)/;
my $x = $1;
$wininfo =~ /Absolute upper-left Y:\s+(\d+)/;
my $y = $1;

## Run recordmydesktop
system "recordmydesktop -x $x -y $y --width $width --height $height -o $ENV{HOME}/Desktop/screencast";
## Convert to mp4
system "ffmpeg -sameq -i $ENV{HOME}/Desktop/screencast.ogv $ENV{HOME}/Desktop/screencast.mp4";

Note that ctrl-alt-s will stop the recording. (ctrl-alt-p will pause/resume it)

posted at 2011-06-10T06:05:52 by baerg

a better image markdown

I am loving Markdown. But I am left wanting a lazier way of including images. I don't want to have to worry about creating thumbnails or different image sizes. I would like to be able to copy an image to my blog and from there simply give the image name and resolution, so that something like this:

 ![640](foobar)

would produce something like this:

 <a href='/link/to/original/or/detail/view'><img src='/path/to/640/foobar.jpg' /></a>

Obviously this requires a little bit of "Magick" in the background to find the path and ensure that the correct size thumb actually exists somewhere, but here's the code that I've come up with so far which accomplishes what I want (the "Magick" is hidden in the "images" function):

 while ($_->{content} =~ /\n\!\[(\d+)\]\((.+)\)/) {
   my @image = images($2, $1);
   my $html = $image[0]->{html} || "";
   $_->{content} =~ s/\n\!\[\Q$1\E\]\(\Q$2\E\)/$html/;
 }

Now this:

  ![300](the successful)

becomes this:

the successful

posted at 2011-06-10T06:05:52 by baerg