Ingy 2.ö

Wednesday, May 30, 2007

One Less Fixie

So I talked to the doc yesterday. Last week he told me the "external fixator" would need to be on 8 weeks total, or about 3 more weeks. But then yesterday he talked me into doing a wrist surgery next week. Since I agreed, he now wants to take the bionics off the arm ASAP.

Funny... I completely agree with him!

Today at 4pm I become a relatively normal looking dude again. No more wrist piercing jewelry.

So for the surgery, I think he's going to break off the end of my radius into a few pieces and do his best to make it more like it should be. Then he'll hold it all steady with internal screwed in plates. What could possibly go wrong?!

Sunday, May 20, 2007


Spent part of my morning at Target and Barnes & Noble. I'm not much of a mall guy at all, and I never ever buy anything from St4rbucks. Still I do like getting my undies at Target and B&N was next door, and my friend wanted to get a Sudoku book. So I do what I always do in a corporate chain book store... I look in the computer section.

I must first say that I am happy to report that computer books are finally on the decline. There's just half a normal sized aisle's worth, and half of that is mandatory Microcrap stuff (this is Seattle after all). Perl is (sadly) all but gone. The only new rage seems to be Ajax and a gaggle of JavaScript books. Nothing wrong with that, just not too exciting to me. I mean how much can you really say about either?

I decided to look at the indexes of some new books and see if there was the word "YAML" in any of them. (Yes, ego browsing). First I have to say that not many computer terms at all begin with the letter Y. I found:

  • yield
  • Yahoo!
  • YUI
Kind of redundant. YUI *is* Yahoo! (and also YAGNI ihmo)

So I did find a few books with YAML in the index. At least one had a decent amount of YAML in the content of the book. Here's what I found:

  • Ajax on Rails - YAML isn't needed in Ajax so much, but Ruby and Rails really like YAML. This book only mentioned YAML in passing, and errantly thought it stood for Yet Another Markup Language.
  • Ruby Cookbook - Ruby has shipped with native YAML support for years. This book had quite a bit of YAML info/examples/usage/etc. It seemed fairly accurate.
  • Agile Web Development with Rails - This book got the name wrong too but just by one letter: "YAML Ain't a Markup Language".
  • Intermediate Perl - This book (written about my native computer tongue) talks about YAML. Unfortunately the examples are really old and dated (YAML 1.0) even though the book was reprinted in 2006. Also the book attributes the YAML creation to some bloke named "Brian Ingerson". We all know YAML was invented by Evans, Ben-Kiki and döt Net.
  • PERL HACKS - This one blasphemously puts Perl in ALL CAPS on the cover, even though the author's name is purposefully all lower case. The content contains one HACK involving
I'm sure there are more books out there that mention YAML. It got me thinking about maybe writing a book about YAML. It also got me thinking about how to start getting YAML support in browsers.

Friday, May 18, 2007

Grooming is Creepy

WTF! I met Chris Dent at Freshy's Cafe in West Seattle today. He's my coworker and sometimes mentor and sometimes mentee. He's also always had long hair and a scruffy face. Today he walks in looking like above! I think we've practically switched looks. Creepy! The universe works in mysterious ways.

I always enjoy the rare times we get to hang out. Today he had to leave early for a massage appointment right down the street. I went with him, met his massager and made an appt for myself for tomorrow. The Taiwan crash has left my back muscles in a really bad state. Last night the pain reached a new excruciating level. Owwwwwwwwwwwwwwww...

Tuesday, May 15, 2007


YAML was invented in April of 2001. Well it started then... It's still being invented at some levels. I happened to be one of the primary 3 guys who spent several years and countless email hours inventing it.

JSON showed up on the scene around 2005(??). JSON didn't need so much inventing because it is a subset of JavaScript. JSON and YAML have a lot in common and also distinct differences, but I can't seem to find any web page that talks much about it. So I'll do it here.

Technically YAML and JSON aren't even related. And just for the record neither are YAML and XML. Wikipedia pretty muchs gets it right in the first sentence definition for each of these:
  • XML is a ... markup language.
  • YAML is a ... data serialization format.
  • JSON is a ... data interchange format.
Except that "YAML (and begrudgingly XML) is also a useful data interchange format", there is really little crossover in definition. YAML and JSON are not markup. XML and JSON are not intended for serious serialization.

NOTE: I'm not talking about XML from here on. This post is about YAML and JSON.

But YAML and JSON have a common spirit. They both are programming language agnostic. They both are centered around hashes, arrays and scalars (or whatever you call these if you aren't a Perl guy like me). This makes them really attractive in Perl, Python, PHP, Ruby and (of course) JavaScript because these modern languages are also based on hashes, arrays and scalars as their primary data model.

One day, early on in JSON's existence, someone noticed that JSON is a pure subset of YAML. Well this wasn't completely true, but enough so that both camps adjusted their specs to make it true. The whole concept is freaky because YAML showed up years before. My only rationale is that YAML was so ambitious. We tried to make it look like everything. And we got really lucky with JSON. Anyway it's all history at this point...

So what are the differences then? In a nutshell JSON handles all the common cases for turning data into text and back into data. YAML handles all the cases so it can be a serious data serialization language. This makes JSON almost trivial to implement, and YAML almost impossible. So even though YAML was first, JSON caught on like wildfire. Since JSON is a subset, it really doesn't have anything YAML doesn't. Except a cool logo. YAML has no logo!

Here's a list of what YAML does have:

  • YAML has two ways to show collections (hashes and arrays): (Python-like) indentation and (JSON-like) braces.
  • YAML has many scalar quoting styles. Unquoted, double quoted, single quoted, literal block, and flow block. JSON uses double quotes for all strings.
  • YAML has data typing. It uses a taguri based system for explicit typing, and also supports implicit typing. JSON supports only String, Number and Boolean scalar types.
  • YAML supports multiple references to identical nodes, including circular references. JSON does not.
  • In YAML, a hash (mapping) key can be any node (including another hash, array or aliased node reference). In JSON a key is always a String. It should be noted that YAML goes beyond the capabilities of most programming languages in this regard. Only Ruby has full object key support, afaik.
  • YAML allows a "stream" to consist of multiple "documents", or top-level nodes. These can be any node of course. In JSON you can only have one top level object, and it must be a hash or an array (not just a scalar).
That's about it, but that's a ton. Especially in the details.

I think all of these things make YAML a great serialization format, and avoiding all these things make JSON a great data exchange format.

Labels: ,

Monday, May 14, 2007

Back in the USSA

What a week! Been so busy, ain't even had time to blog it...

So my flight home was fine, even though I was worried sick when I got on that 747 pointed East. The doctor told me I shouldn't fly for a month, so of course I'm sure my guts are gonna go splaying when we hit 10,000 feet. I take a Xanax to cool out, and I was totally fine. No rib pain nothing. The flight attendants seemed extra nice to me because I was "injury boy".

I think I was the only one who didn't sleep on the flight which was my plan actually. The plane landed at 7pm, so why sleep and make it impossible to sleep later. Then again I have Ambien so why am I worried in the first place?

I got home and called a few friends to meet me for a few drinks before bedcrashtime. I called my best friend Larry, but ended up not-drunk-but-just-as-incoherently-dialing Larry Wall instead. It was bizarre. "Hey you're not Larry"... "Yeah this is Larry"... "Look, stop playing games, put Larry on"... "This *is* Larry"... "Whatever! Whoever you are, tell Larry Ingy called"... *click* ZOMG. Embarrassing. I just happened to have Larry Wall's number in my phone. Never called him before. Get some drinks with Larry and Helen and Meghan and Terra and hit the hay. *HARD*

Next day I get up and drive to Vancouver BC for the Socialtext Great Couver Hackathon. Good to meet my coworkers face2face. Lots of new faces 2 face... Next day head back to Seattle. Meghan's 3 day birthday procession requires my presence. *EPIC*

I somehow survive this girl's 28th trip around the sun party. Sick people are supposed to rest. Then again all people only live once.

Lot's of other stuff going on. Beach Club 2007 officially started today. Helen and I are considering moving to a new place this summer. Watched 5 straight episodes of 6 Feet Under. See my American Hand Doctor in 2 days. Turns out he is a customer of Larry's bike shop! Crazy small world. Oh yeah, Larry totally customized my exoskeleton with some skillful use of his bike shop's die grinder.

Also I start writing YAML::LibYAML this week. This will be a great tool for Perl people. I'll write more on that tomorrow. Great to be back!!!!!!

Tuesday, May 8, 2007

三 Grand

I swear I'm getting clobbered by javascript errors, I think due to this airport's wifi eXtravaganza. So I best keep this short...

As you guessed I'm at the plane place with Gugod ready to get out of here. Taiwan must not want me to go cuz they charged me 3000 taiwanese pesos to ship my bike. I'm 3 grand poorer, taiwanesewise...

And then they asked me if my arm was OK... "Great" I say. No need telling em about my ribs. OK looks like I'm gonna make it, got my ticket. Got a bowl of beef noodles in me. And a cup of joe. And my electric pocket sudoku game. And javascript is creeping up on me so see ya soon Seattle. Tuesday@Liberty@9pm all'y'all, iykwim, aittyd!

Monday, May 7, 2007

The Last Supper

Tomorrow I head back to Seattle, so today was my last day to do some things. Gugod and I went to the hospital to renew some prescription meds to last me for another week. After that I'll be seeing a Seattle doctor and hopefully won't need meds anyway. Then I did a little last minute shopping.

Tonight was extra special because Gugod's Mom came over and made a giant dinner of some amazingly good food, including Hakka Kong Rou! Gugod invited roughly a dozen friends and we all had a great time together eating and joking.

I'll certainly miss Taiwan, but I'm very ready to be in Seattle. See you tomorrow Seatown...

Sunday, May 6, 2007

Sunday Hanging from OP

Today I finally ate Teppanyaki again. Gugod and I went to our usual place. I guess it's called 肥仔龍, which means "Fat Dragon". It was crowded as usual. The crowd sitting on the outside of a huge horseshoe shaped grill with two chefs in the middle cooking their butts off. I got the beef and seafood set meal. Basically food keeps getting dumped on your plate, and eventually you are full. Love it.

Today I bought a half dozen really fun Taiwan scooter helmets. Cost maybe $35usd. Gonna buy few more and make an art exhibit at Liberty Bar sometime soon.

Now I'm hanging at Gugod's OPCafé. With my bad arm even!

Mostly this evening I'll be working on YAML2. I have to admit I'm over my head on this project so far. Despite being the creator of Perl's, I really don't know C or XS. Not anymore at least. I'm in total nööb möde. Hopefully I will upload the first version of YAML2 to CPAN tonight.

Saturday, May 5, 2007

YAML 2.ö

Today I am starting to implement, which is a replacement for my Perl module has been around has been around since 2001. It is one of the oldest YAML implementations and one of the worst. My fault.

Last summer I agreed with The Perl Foundation to produce a replacement by porting Kirill Siminov's Python/C YAML work to Perl. YAML2 is my latest go around at this work. It will start by creating a wrapper for Kirill's libyaml.

It will become available on CPAN a YAML2, and will be backwards compatible with When it is stable I will make be the same code, and phase out YAML2.

For you non-programmers YAML is a computer language for expressing computer data in a human readable/friendly manner. I started the YAML project in 2001 with Clark Evans and Oren Ben-Kiki. Now it has become a pretty big deal in the computer world.


In other news, my Taiwan trip is winding down and I'm getting ready to return to Seattle on Tuesday. Given that my guts don't explode on the 747 I have a pretty busy week on my return. My company's programmers are meeting en masse this week in Vancouver BC, and I'd like to join them for at least some of the fun. Also it's Miss Meghan Tesh's ?? birthday and from what I know so far, a Tesh birthday is a MAJOR event.

Only problem is I run out of all drugs on about Tuesday. I hope Gugod will be a good sport and take me by the hospital for a refill before I go.

Speaking of Gugod, I got to meet his wonderful parents last night. They stopped by to check out how ole Ingus was doing. Evidently they want to cook me dinner on Monday. Yum!

Thursday, May 3, 2007

Jammin' with Jessie

Yesteray at mo!relax I met a girl named Jessie. She was sitting on the couch next to me practicing her electric. I had to ask her to borrow the thing. I've been wondering if, since bike and motorcycle riding are straight out, can I still play my guitar when I get home.

Sadly no. It hurts like hell. Especially bar chords. My wrist doesn't bend at the moment.

Anyway I ended up having good conversations with Jessie. She's in university and a rebellious post rocker. She's been to Philly and speaks English way better than she thinks she does. Her band covers Radiohead, and Paul Gilbert is her guitar hero. She drew this sketch of ole Ingus:

Hmm. Kind of a cross between Mad Max and Damian Conway. Genius!

On a separate note I ran across this picture on the intarweb:

Man, that's what I'm talking about. I knew there had to be a less bulky way to do this exoskel stuff...

Wednesday, May 2, 2007

The High Speed Way To Get Mo!Relaxed

No doctors to see today. No cops or insurance people. Just a day in Taiwan to spend how I like. Lately here's what I like:

Get a good night sleep and wake up by noon. That's what I did first today. I can actually sleep pretty well. The pain level, given the right drugs is now bearable. My arm always hurts but I can kinda ignore it most of the time. The funny thing is that the metal framework part is not what hurts at all. It's mostly the support system. The shoulder, elbow and inner forearm. Ouch. @#$%!

After I woke up I jumped in the shower. Everything takes a little longer these days, and I needed to get dressed and packed by 12:30 to get a taxi to the train station. I said my morning pleasantries to Gugod and hit the road.

So about this train. It's totally new and all the rave, and it just rocks harder than, say, Pat Benetar. Destination 台北 (Taipei). In the old days (last year) this meant a 2.5 hour bus ride from 新竹(Hsinchu) but this is a HIGH SPEED RAIL. 35 minutes of total comfort for under $10USD. The 台北 station is also a MRT station, so I switch trains, 10 minutes and 4 stations later I'm at the neighborhood of my favorite 台北 cafe, mo!relax.

It's now 1:55. The cafe is just opening and my new friend and owner of the joint, 詩琪 (Shi Qi) is there to greet me. She even takes the time to make me my first Americano in almost a week. Today is gonna be a good one!

Yeah, My Left Arm Has a Hemi

OK so basically I have a major contraption bolted on to my arm. 4 stainless steel pins, two screwed into my hand, 2 in my forearm. Each pin pair has an aluminum block lashed to them, and each block has a 3-4 inch aluminum bar fixed to it. These form two fixed components that are held in some exact position from each other with 2 footlong aluminum bars. Kinda barbaric but kinda elegant in that it gets the job done. (The "job" is to position my hand away from my broken ulna tip until it heals.)

However! I am kind of a mechanical guy and I am quickly finding faults in this setup, and also dreaming up solutions.

Last night I went to my favorite bike shop in 新竹 and asked the owner if he would hack off the extra bar ends with a saw or die grinder. He politely declined. I think he saw the wisdom in my thinking, but sided with the wiser avoidance of a law suit.

However, once I get back to Seattle, I will be trying this tactic again, with my good friend and bike shop owner, Larry. I just need the tools and I could probably do this myself...

See, the aluminum bars are just a little too long and get in the way of various things like riding a scooter around 新竹. I know, I know... But that's what I did yesterday. Had to get over the fear. But boy did it hurt. I could feel every bump in a whole new way.

Then later today I had an idea of how to remove the bars altogether. Just fuse a single, low profile carbon fiber pipe between the aluminum blocks. Just need to find the right guy for such an endeavor.

I actually spent the morning at the hospital talking to my rib doc and my wrist doc. The rib doc gave me the OK to fly home next week. And the wrist doc gave me the OK to chop the bars. But then his colleague said No. But then Ingy said Hell Yes. The docs gave me some new exciting drugs to try in my copious spare time. The funniest part is they actually burned me a CD of all my Xrays. I'll post one or two pics here tomorrow.

In computer/work news I am currently dealing with the need to render any text as an image. Trivial if you have the fonts. Turns out there is no Open Source font that covers all of unicode! What planet is this?? Well ole Ingus has tricks up his aluminum sleeve, but if someone out there can find me such a font, give me a call. Collect!