20080523

Improperly Credited Article on Slashdot

Slashdot is a funny place - don't get me wrong, I love to read it. The only problem I've ever had with it is that they edited the OpenMoko article I wrote on their site, and now someone else is claiming to have written it (kdawson).

Originally when I wrote the article, it was credited to 'Anonymous Coward'. I did that on purpose so that I wouldn't make anyone in the OpenMoko community offended, seeing as how they may have wanted to make a post themselves. I just wanted to beat them to it!

In my opinion, the article should have remained credited to 'Anonymous Coward' as opposed to kdawson, whoever the hell that is. Apparently kdawson believes that it is completely fine to assign credit of a work to someone who had nothing to do with the work at all.

What I find even funnier, is that I made a comment to the post I wrote only a week after noticing it was no longer attributed to 'Anonymous Coward'. Then the editors changed it back. Now, approximately 6 months later, someone else has again inappropriately taken credit for another's work.

What's the lesson in all of this? Always post under your real name if you intend to have something show up in the slashdot headlines. I guess I shouldn't feel bad then for copying the Slashdot logo to use with this post :)

A Baby New World


We have a new baby boy!
After a long night of bowling (hoping that would inspire Julien to pop out naturally) with my dad, Wendy, Nora and myself, Erin was called in to have labour induced at about 9:30 PM on Monday the 19th. Erin & I went for a little walk in the park (she was actually biking) to give each other pep-talks - are we ready for this? - and then Bo drove us all over to St. Mary's.

Erin was put on a hormone drip intravenously, which was increased by 6 μg every 1/2 hour. She wasn't feeling any contractions for about 5 hours and was only 1 cm dialated. We were up all night just keeping each other company (Bo, Nora, Erin & I) by playing games, telling stories, etc. Actually, we were only allowed to have 3 people in the room in total, but the nursing staff was very nice and let us all be there. Another nurse came in and boosted our hopes saying that she was 1 1/2 cm dilated. To tell you the truth, we were a little worried that Erin was going to need a caesarian section performed because she was at the maximum drip for a while and there were no signs of progress. Every time they examined Erin, they noticed that Julien's head was really far down, and that he was ready, but Erin had still not started to dilate. Actually 3 or 4 examinations had gone by with exactly the same results.

Then, Erin started getting contractions - she thought it was just indigestion at first, but then they became more and more intense. We all started helping Erin with Le Mas breathing patterns. A doctor came in to puncture Erin's membrane (i.e. water) and as she was lying down so that they could put an internal sensor on Julien to get his heart beat.

After that, contractions became more frequent and increasingly painful. Erin was lying down for them and she was in so much pain. We were all massaging her and practicing the breating. The nurses kept asking her to stop pushing, but she wasn't pushing at all -
I think it must have been the hormones that were causing the contractions to be so intense that they were just pushing the baby along all by themselves. Erin started to lose coherence because the pain was so intense, and then I said - "Erin, breath like your mom - just watch how your mom is breathing, and do it like mom does ok?" Bo jumped right in and was like the breathing coach. She sat Erin up, and told her when to hold it, when to inhale, and when to exhale. They had such a strong connection. After sitting up, and holding her breath for a second or two like Bo, Erin said that the contractions started coming under control after about 20 minutes.

Between about 5:30 AM and 9:00 AM she went about 2cm every hour, which is twice as fast as normal! She went from 2 cm dilated to 10 within about 2 hours - it was unbelievable! Bo was helping Erin keep the contractions under control while Nora and I were massaging Erin's back and legs. Nora & I waited outside while Erin received her epidural. The anesthesiologist had to really tell me to get out of the room because I wasn't fully prepared to leave Erin there, but she saw that Bo was helping Erin's breathing, and Erin asked if it was ok for her mom to stay there. So Bo got a mask on and helped Erin while she had the epidural.

After that, it literally took 5 pushes and about 20 minutes - things moved so quickly! Nora graciously stayed in the waiting room because they would only let Bo & I be there for the delivery. We were standing right there helping Erin along as she pushed, and then... well ... I don't think there are any words to describe the euphoria that we were all experiencing and even if there were I doubt that I could do it justice. I will never forget as long as I live.

Julien Michael Jacob Friedt was born on Tuesday, May 20th at 10:48 AM. He
weighed 8 lbs and 5 ounces at birth. He's totally healthy and scored a solid 9.9 on whatever test it is that they use. Labour lasted about 8 hours.

We got to hold him and talk to him immediately. I cut the cord. He was so real - it was so hard to believe what I just experienced happened - but at the same time, it was like we knew eachother all along. He recognized immediately when I started playing with his feet, just like when he was in his mom.

My dad came to visit right afterwards and they got to say hello to little Julien. Then we were moved to a bed in another wing for the next 48 hours. I was a little detached from the world because we weren't allowed to use cellular phones in the hospital, and they don't have public internet access anywhere inside. I only really left the hospital once or twice to get some food and necessities.

Bo & Nora were really helpful for those 48 hours while Erin & the baby were under supervision. Me? I was having the time of my life playing with my new little boy. He's so alert and inquisitive and incredibly well behaved... oh and he's just CRAZY cute!! hahaha...

When we were finally dischared to go home, stepping out of the hospital with my son was like stepping into a wholly different world.

It's been really nice being back home. We've had a few visitors already and lots of support from family and friends with phone calls, SMS, or even e-mails.

Soon we'll have lots of pics posted on facebook or picassa.

20080513

Julien Updates

Yesterday, Erin, Bo, Julien & myself had a nice long day at various doctor's offices. First thing in the morning we went to Dr. Shine's office and he said that Erin still isn't dilating, so we booked an appointment to have Julien induced next Monday. Then we went to the women's pavilion at St. Mary's and waited around for a while to get a stress test done on Julien & Erin. The test checks the baby's heart rate, movement and Erin's contractions. The baby showed textbook-perfect patterns for his heart rate, so we know that he's doing well and he's healthy and comfortable. On the other hand, Erin still hasn't had any contractions that she's noticed. So since Julien is already 4 days late, and it's bad if the baby is any more than 2 weeks late, and we can only book induction mondays or wednesdays, we thought it was probably safer than not to book it for next monday. I'll have more updates later on.

Today for lunch Erin & I are going to pick up some peppermint & tarragon for the planters on our balcony. So far, we have basil, greek oregano, spearmint, savory, and rosemary. On the weekend we also picked up a set of chairs and table for the front balcony and a couple of reclining / folding chairs for the back balcony (or for taking into the park).
I'll put up some photos eventually of the front balcony with a view of the park & our little hanging garden at some point.

Cheers!

20080511

Some Thoughts About Becoming a Dad


Well, I thought I should probably write a post about the new life that Erin & I are about to introduce into the universe. We're now about 3 days past Julien's original estimated debut of May 8th and it feels a little weird that we're no longer counting down the days.

It's a bit of a thrill to tell you the truth - I almost feel nervous about meeting this new little guy who will soon have an endless stream of wonders projected onto his senses. I almost feel nervous, but I think we've already started to get to know each other over the last few months by means of morse-code belly communications at times when Erin is not yet worken up. He would stretch out his legs when he felt the morning sun warming everything up and then I would send him an impulse in reply through Erin and on the bottom of his foot.

I'm looking forward to the stories I'll tell him - all about the people, places, and things around us and the stuff that we all have inside. All of the forces, real, invisible, and imaginary that exist in this place we all live and how the world changes in response to those forces. I hope he will love to hear about the things that we have yet to understand.

Sometimes I'm anxious, but right now I'm pretty relaxed about the whole thing almost as if I had all of the patience in the world. I'll keep posting when labor starts and give updates periodically.

20080510

TS7260 Powered via USB

A TS7260 being powerd via USB - much more portable isn't it? Above, the board is pictured next to my fairly new Asus EEE ultra-mobile PC. Currently for work, I'm 'dogfooding' the package management system we're using for the boards, meaning that I'm using the same package management system on the 7260 as I am on the EEE.

The USB power cable was really simple to create. I first dismembered the mouse part from a Logitech optical USB mouse that I never use anymore, and then found the ground wire (bare copper in my case) and the 5 V wire (4.8V actually, and red). The rest of the wires I trimmed off. A bit of insulating electrical tape and a piece of heat-shrink tubing later, and I had the new USB power cable for the TS72xx.

I recently picked up a USB serial-converter and a DB9 F-F gender changer from The Source (the store formerly known as Radio Shack) but to my dismay, this combination was ineffective. As I suspected, the wires in the gender bender were straight through and not crossed - which is very typical of DB9 F-F converters. Crossed send / receive wires are necessary for NULL modem cables. That is, the pin input -> output mapping should resemble
  • 5 -> 5
  • 2 -> 3
  • 3 -> 2
  • 4 -> 6
  • 6 -> 4
Some sources also suggest that 7 and 8 should be crossed, but that's only ever broken things for me. As long as hardware or software flow control is not necessary, the other 4 pairs of wires can be left floating and disconnected. If this is starting to sound slightly greek to you, the best idea is to just buy a NULL modem cable from the local computer store. If it sounds interesting, you can create a tiny 2" NULL modem adapter with a bit of solder, some 24 AWG wire or IDE cable, two DB9 headers, some hot glue, and (of course) some heat-shrink tubing.

Ta-Da!

Configuration 1 shows power input for the 7260 taken from the lower-right USB port of the EEE, as well as the serial input of the 7260 taken from the top-right USB port of the EEE. Ethernet is also connected between the top of the 7260 and the left side of the EEE. Configuration 1 is very useful for having to interact with RedBoot, since RedBoot is only accessible via the serial port of the 7260. Configuration 1 allows for the developer to either log in via minicom on the serial port or telnet on the ethernet port of the 7260 during regular operations. Another option is to log in to the 7260 via telnet and use the serial connection for emulating a piece of hardware (one could write a program on the EEE to pretend to be a serially connected SNES gamepad, for example).

Configuration 2 shows both the power and ethernet for the 7260 taken from the left side of the EEE. This configuration is slightly more compact and would be used for normal development, where interaction with the bootloader is not necessary.

In both cases, the atheros 802.11 b/g wireless ethernet device can easily be configured to masquerade IP traffic for both the EEE as well as the 7260, forwarding requests between eth0 and ath0 as necessary. It might be useful to run a dhcp server on the ethernet port of the EEE so that the 7260 receives its IP address, hostname, and DNS information automatically. An example script for iptables is below:
#!/bin/sh

EXTIF=ath0
INTIF=eth0

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -P INPUT ACCEPT
iptables -F INPUT
iptables -P OUTPUT ACCEPT
iptables -F OUTPUT
iptables -P FORWARD DROP
iptables -F FORWARD
iptables -t nat -F

iptables -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

My personal favorite configuration is shown to the left with my old, monochrome 4th generation iPod and headphones jacked in :) In all photos, the USB memory stick is actually my root filesystem, which contains a home-rolled Gentoo binary distribution. Contrary to popular belief, Gentoo is also suitable for binary-only and embedded applications - and it's tiny :)

20080506

New x86_64 Toolchain for TS72xx

I just finished putting together an x86_64 'compatibility' toolchain for the TS72xx boards. This is an addition to what I've already done, fully documented on the Gentoo Wiki. See my toolchains directory under x86_64-pc-linux-gnu/arm-unknown-linux-gnu.

The binaries can be installed following these instructions.

Njoy!

20080502

Sidereel Firefox Search Plugin

Following the really easy template at Digital Alchemy, I've written a small Firefox search plugin for Sidereel, a probably not so legal site where you can watch lots of cool movies and TV shows for free. Download the plugin (really just an xml file) by right-clicking here and selecting 'Save Target As...' or 'Save Link As...' and save it in your searchplugins folder.

The searchplugins folder can be found on Linux systems simply with

find ~/.mozilla/firefox -name 'searchplugins'
For example, running the above command on my Linux system gives:

/home/[username]/.mozilla/firefox/[userprofile]/searchplugins

For Mac users, it's probably something like

/Users/[username]/.mozilla/firefox/[userprofile]/searchplugins

I'm guessing that on windows its something like

C:\Documents and Settings\[username]\Application Data\Mozilla\Firefox\[userprofile]\searchplugins

Note (at least for linux): the searchplugins folder is not created automatically. You must either create it manually, or download an existing search plugin (e.g. Wikipedia).

You will need to restart Firefox for the plugin to be detected.