Licode Architecture

May 27, 2013 at 05:10 PM | categories: programming, webrtc | View Comments

I've been playing with Lynckia, now known as Licode, as a WebRTC media server. It's a pretty easy way to go from zero to a video conference, but there are a lot of moving parts. There's an overview of the components here: Licode Architecture. It's a good start, but it leaves out how all the components communicate. Hopefully this diagram of the components in the basic example makes this a little more clear:

Rice Cooker Chicken Dinner

December 25, 2012 at 08:00 PM | categories: recipes | View Comments

After all the Christmas hubub, I decided it was time for a simple dinner this evening. After seeing this article last week, I couldn't resist trying to cook everything in the rice cooker. When some quick searching didn't yield any meals I thought my kids would eat, it was time to invent something... The kids ate about as much as they usually do, but I thought it was great.

Mushroom Chicken


  • 2 cups rice
  • 2.5 cups water
  • 1 can (10.5 oz) cream of mushroom soup
  • 1 bunch green onions (sliced)
  • 1 cup celery (sliced)
  • 1/2 lb. chicken (diced)
  • 2 cubes chicken bouillon
  • 1/8 tsp. red pepper flakes
  • 1/4 tsp. black pepper
  • 1/4 tsp. paprika


  1. Place all ingredients in rice cooker
  2. Stir
  3. Set rice cooker to "cook"
  4. Serve when the rice cooker switches to "warm"

udiskie 0.4.0

May 07, 2012 at 06:35 AM | categories: tools | View Comments

I just released udiskie 0.4.0. Big feature in this release is the ability to set mount options for a device based on filesystem type or uuid.

Hooked on org-mode

January 10, 2012 at 08:46 PM | categories: emacs, vim | View Comments

So, what's a long-time ViM user doing with an Emacs session running all the time? Using org-mode of course.

First a little bit of a problem statement: I forget everything. I've tried lots of different ways to solve the problem. I started with writing a TODO list at the beginning of each day. For a while I succeeded in using a Palm Pilot to keep track of everything. Next was a Google Calendar. For stuff that didn't fit in the calendar I tried to keep a personal wiki. Each method ended up in failure because it was cumbersome. Let me be clear, to me cumbersome means requires more work than typing on a keyboard.

I was pretty excited when I heard about org-mode. Look at the slogan: Your Life in Plain Text. How could that not be good? Not being a Saint in the Church of Emacs it took me a little longer to get comfortable with org-mode, but it was worth it. I'm sure my org-mode use hardly scratches the surface of what's possible, but it's been enough to keep me organized for the past year.

Here's what it took to get started. I created a directory called ~/notes and added the following to my Emacs startup files:

(add-to-list 'auto-mode-alist '("\\.org$" . org-mode))

(global-set-key "\C-cl" 'org-store-link)
(global-set-key "\C-ca" 'org-agenda)
(global-set-key "\C-cb" 'org-iswitchb)

(setq org-log-done t)
(setq org-log-repeat "time")

(add-hook 'org-mode-hook 'turn-on-auto-fill)

(setq org-directory "~/notes")
(setq org-agenda-files (file-expand-wildcards "~/notes/*.org"))

Whenever I want to record something I open up a relevant .org file in ~/notes and add entries like this:

* Chores
** Empty garbages
** Mow lawn

It's just an outline, with the number of leading * characters determining the level of each entry.

The only keys I really use frequently are:

  • C-c C-t: transition states (make this a TODO or mark it done)
  • C-c C-s: schedule this entry
  • C-c C-d: set a deadline for this entry
  • Tab: fold (show/hide children of this entry)
  • C-c a a: show the agenda for the current week

org-mode is far more customizable, but for me, that's enough. I'm especially pleased at how easy it is just to start logging things that happen in a meeting or adding something that I just remembered needing to do around the house. There's almost no friction. And everything about the entry lives in the text file. Then, with a few key presses (C-c a a) I know what my next week looks like.

Learning to Run

November 17, 2011 at 07:13 PM | categories: running | View Comments

Two and a half years ago I found myself overweight and out of energy. I decided it was time to lose the extra weight. With the help of The Hacker's Diet I spent the next six months getting to an acceptable weight. Life was great; my weight problem was solved and I felt like I had more energy.

But there was still a problem: I wasn't really in shape and I really had to watch how much I ate so that the weight wouldn't come back. Sitting at a desk all day for work wasn't helping my fitness at all. This spring I decided that I could definitely fix the getting into shape part. I looked at a lot of different possible activities and finally decided that running would be best for me. The deciding factor was that I could run in any weather and anywhere.

Now for the specifics. When I was looking for a way to get started it was helpful to see other specific success stories. So, in that vein, I'll stop short of recommending this program, but I will say that it worked for me.

When I started in May, I could run for about three minutes. After that it was extremely hard to breathe and I hurt everywhere. I set what I thought was a fairly reasonable goal: run a 5K in under 30 minutes by the end of the summer. To add a little motivation, I picked a race and registered.

Knowing nothing about running, I needed a program I could follow. I noticed quite a few other programmers talking about Couch to 5K on Twitter and decided that was as good a start as any. I'm terrible with a watch and too cheap to buy an app to keep track of the intervals for the program so I was really happy to stumble onto Podrunner: Intervals. I loaded up my MP3 player and started running. After five weeks, I'd burned through my cheap tennis shoes and visited the local running store for a pair of running shoes. I'd like to say that I was able to follow the Couch to 5K program without a problem, but it didn't work out that way. I finished week six with a 22 minute run and didn't, but it didn't feel good at all. I backed off to doing 10 minute intervals with a 90 second walk in between and then adding a minute to the running portions for each run. Since I was no longer on the Couch to 5K program, the Podrunner podcasts weren't as helpful so I tried out audiobooks. After doing fifteen minute intervals for a week I found that I could pretty reliably run for 20 minutes without stopping. The two weeks before my first race I struggled to run for more than 20 minutes.

My sister agreed to run that first race with me. I showed up early feeling poorly prepared. To make things more interesting I decided to run with music. We started the race together and quickly found someone running a pace we thought we could keep up. Just a little less than 30 minutes later I crossed the finish line. First goal accomplished.

I set a goal to run my next 5K in less than 27 minutes and registered for a 5K three weeks after the first one. My runs during that prep time finally started to feel good and I found myself easily running for 30 minutes. I also started using CardioTrainer to track distance and time for all my runs. It's a lot of fun to be able to see that map after a run and see just how far you've come. The three weeks passed and I finished the race in a little under 25 minutes. All the real runners can laugh at how slow that is, but I was pretty excited.

At that point, I wasn't sure how much time I could trim off the 5K, but I was pretty sure that I could add some distance. My next goal was to finish a 10K, hopefully in under 60 minutes. I spent the next month adding 1km to my runs each week. Unfortunately, right about the time I got up to 9km, I got sick. Two weeks later I felt better, but I had a hard time running even 3km and had to start building up again. I had registered for a 10K, but I was really worried because I only got back up to 7km on my regular workouts before race day.

It rained on race day, but at least it wasn't too cold. I started the race too fast, then had to talk myself out of quitting during the 3km. Around the 4km mark, I started to feel really good. Goal accomplished: I ran the entire race and finished in 51 minutes.

Next up on my list is a 10K in under 50 minutes next spring and finishing a half marathon next summer. It's taken a lot of work to get to this point, but I'm really happy about it.

Next Page ยป