Kyle Lahnakoski

Just One More Layer of Indirection
(Trying to achieve stable orbit with sufficient architecture)

Archive for the ‘Personal’ Category

96px != 1inch

Sunday, August 22nd, 2010

I find it ridiculous that Firefox will be redefining CSS Units. The plan is to redefine the physical CSS dimensions so that 1in = 96px, and add new physical dimension called “mozmm”, for the physical millimeter. Let me make this clear: Currently CSS defines “1mm” to mean one physical mm, Firefox whats to change “1mm” to mean 3.779px, and define “1mozmm” to mean one physical millimeter.

I hope it is not just me that asks “Why!?!?!?”.

This is how I see it:

  • If web developers are using physical units wrong, then let their pages render wrong
  • Even so, if you want to render badly designed pages, then just lie about the pixels/inch.

3D TV is NOT Bad For You

Thursday, February 11th, 2010

Some guy named Mark Pesce wants to prevent me from seeing Avatar in my home, in 3D. He claims heavy use of 3D monitors will result in “binocular dysphoria”, and television manufactures should perform health and safety testing.

Well, I say “Bah! Give me Avatar, and forget the health testing!”.

Using the Wikipedia article on depth perception, he claims we humans use 9 different depth perception cues we use to determine depth. Upon reading the Wikipedia I found only two that are relevant to 3D screens and monitors. They are called “Accommodation” and “Motion Parallax”.

Accommodation is where you can feel the depth at which you focus at, and you can use that to determine depth. I believe humans are not really sensitive to this feedback, and only able to use it when items are really close to the eye. For example, have you looked at a repeating pattern, such as a screen, or wall paper, or fence rails, and seen it closer, or farther, then it really was? Accommodation did not help you.

What did help you determine proper depth was motion parallax. This is mentioned in the Wikipedia article, but not emphasized as I would like. I believe we humans are very sensitive to motion parallax. Combined with the fact we are fidgety creatures, we can see depth with only one lens because that lens is always getting a new perspective. When we watch 3D screens we do not get motion parallax feedback, and the association between inner ear and motion parallax (or lack of it) must be ignored by the brain.

But I believe the human mind is much more powerful than Mr Pesce gives it credit for. I may concede that old people may not be able to transition between real-life 3D and projected 3D, but I have no doubt younger minds will be able to switch, even if this switch will have to be conscious.

In summary: I want to watch Avatar in 3D.

Static Pages for Blogging Are Nicer

Thursday, October 22nd, 2009

I moved to WordPress under a year ago.  Since then posting has become an incredible chore, if not outright impossible.  Static pages seem to be the best, although I loose comments.

Not like there are many legitimate comments anyway, the amount of spam is insane! I would install a captcha, but something tells me I would need master PHP skills to insert it into my custom pages. I think it would be easier to make a daemon on my machine to update pages when an email has come in. Then I can get spam filtering for free.

Here is a guy that lists why static pages are better:

Jump!

Tuesday, June 16th, 2009

I solo jumped from a plane and survived!

Paul, the jump master, my sister Karina, and I are in a small plane about 3000 feet in the air. The door opened, Paul got in position 1/2 out of the plane. He says “Get ready!” I climb out on the struts and hang from my hands, with feet dangling in the wind. The wind is not too strong, maximum 100km/h, but strong enough to hold some of my weight and make holding the wing strut easier than when training on ground. I look at the jump master to indicate I am ready. He yells “Go!”, and I let myself drop.

The first second is pure panic because I was falling. I should have been looking up at the plane as I fell, but I was focused on the ground below. I was too busy counting.

Seconds 2 to 4, I could feel the parachute pulling harder and harder as it unfurls.

Second 5 and 6 I was still counting (as I was trained) but the chute had clearly deployed fully.

I tried to check my canopy, but I could not look up! I quickly figured out the lines were twisted right behind my head, (twisted lines are common). I reached back to pull them apart. I found the handles for steering above my head, and did my steering checks.

The rest was following commands from the radio operator so I landed in the right spot.

Here are all the things I did wrong (good thing it did not matter)

  • I Probably did not arch my arms and head back enough in the first couple of seconds, and that is why the twist in the lines was right behind my head
  • Never did check my altimeter. Once the radio worked I enjoyed the view too much.
  • Never cheched the wind socks to know which way I should be going. Again, the radio guy did that for me.
  • Did not put my feet straight below me. The ground looks like it is coming at you some reasonable horizontal speed, but that is an illusion. I landed on my feet, but then fell to my ass.
I mentioned my sister. Here she is, just about to land!

Posted in Personal | 1 Comment »

Algonquin Training

Tuesday, June 9th, 2009

I have been “training” almost all month. I do fall of the wagon around the weekends, but at least I have not given up. But lately I have worried that I may not be trying my hardest. So, to ensure I am not subconsciously cheating during my “training” I got myself a heart rate monitor.

I found out yesterday that, not only am I out of shape, I am a wimp too:

  1. While sitting in my programming chair, my resting heart rate is 97bpm, which puts me in the “light exercise” category. (out of shape)
  2. Just getting up to walk puts my heart rate at 110bpm
  3. While running hard, with my shins are killing me and gasping for breath, my average heart rate is only 165.

This final point shows how much of a wimp I am. My maximum heart rate (MHR) got to 195 (momentarily, and may be a reading error), which means I can only endure 69% MHR which is classified as “weight control”. Wikipedia says my maximum heart rate is 181, which would means I am training at 80%, which is classified as “Aerobic”. Beyond that the pain is unbearable.

Despite my disappointment, I am happy I have a real metric to compare against. Now I can set my target heart rate to just below my first day average: this way my watch will beep when I am slacking. More good news: I am so heavy that my 7 min jog burnt 170 calories!

In conclusion, there is little to distinguish me from a bowl of jelly. Tim may have to scoop me up when I can’t do those longer portages.

Posted in Personal | 2 Comments »

Algonquin!!

Thursday, June 4th, 2009

Introduction

I am going on the most fantastic Algonquin trip with my long time, and very good, friend Tim.
 

For those that do not know Tim, here is his IM image. As you can see, he is a healthy and fit individual. He takes care of himself, and he prefers walking over driving.
    And here am I. Do not let my stunning good looks, and my slightly overweight body let you overestimate my heath:

  • I prefer driving to the corner store, even though it would take less time to walk.
  • I get grumpy when I have to get out of my programming chair, and
  • I am winded after going up a flight of stairs.

I am extremely out of shape. So, to prepare for this trip, I must exercise daily with the hope I am fit enough to not die of exhaustion 1/2 way into the park.

Aside the first couple of days, all days are reasonable so that we may catch-up to the plan should the first days prove too hard, or we have bad weather.

Sunday June 21st

We get to the Tim Lake campsite late in the afternoon. The first part of Tim river may have low water, and we will be asking about that. If it does, we will be entering via entry point 3 and camping on Butt Lake the first night.

Monday June 22nd

The first full day is traveling the Tim River all the way to Big Trout Lake.

I hope no hungry bears catch us. I hear the bears of Tim River crouch patiently in the bushes and pounce on unsuspecting paddlers. The number of bears have grown considerably in the last decade because paddlers are an excellent food supply for the bears.

Do not worry, I have a plan: I will just punch the aggressive bears in the nose. That’ll stop them.

Tuesday June 23rd

The trip to Cedar Lake will be the hardest and longest. Tim and I have a choice between going through Catfish Lake, or taking the Nipissing River. The latter has less total portage length and goes downriver, but the route is longer and our canoe is not designed for white-water, should we encounter it.

This leg of the trip is were I am most likely to die of exhaustion, or get eaten to death by blackflies. If I do die, tell my wife my body will be found off to the side of one of the longer portages.

Wednesday June 24

Now the trip gets easy. Tim and I get to travel the Petawawa River, and probably have camp setup by afternoon on Francis Lake. Time permitting we may go see Eustache Lake:

The deepest lake in Algonquin, Eustache is ringed by 25m cliffs, which continue down through its amazingly clear waters for another 90m

Thursday June 25th

This day will be upriver, and have a 2.2km portage. We should have time to check out the “huge Red Pine”, assuming they are still there, and the beetles didn’t kill them all.

Friday June 26th

The final day starts with a grueling 5.3km portage, and is one of the last places you can find my exhausted body should I not return. This may take all day to do, but luckily we will have eaten all our food so are packs should be light.

Hopefully we end up at my favorite little island in Opeongo. The same island my Dad brought my sister and I to on my first Algonquin trip, and the same island I bring almost everyone that comes to Algonquin with me.

Saturday June 27th

We paddle an hour down the South Arm, pack the car, and head home.

Awesome Weekend!

Sunday, May 17th, 2009

Last time I spent a weekend hacking was a few years ago, in a tent. Back then, I converted a diff algorithm from C to Java, and put a friendly diff/merge API on top of it. This weekend is even better, because it is almost three days of no interruption, and no time was wasted traveling to and from a tent.

And, serendipitously: Finding The Coding Zone: Your Perfect Trifecta?

This weekend I am working on the next version of YAY, a parser specification language. This next version will be able to generate general parse graphs, as opposed to parse trees. This is good for the declarative aspect of some languages.

General parse graphs are generated from parse trees using some namespace as a reference to connect nodes of that tree. Essentially, any node can be given a name, and that name can be used by other nodes to refer to it.

The namespace is not flat, but rather can be transformed by the nodes to reflect the varying contexts represented by the parse tree. As you can imagine “this” in one part of the tree refers to a very different object then “this” in another part of the tree. Namespace transformations are used to portray changes in scope

I must also mention that the namespaces are limited to the context of the source code. This means namespaces can not be used to refer to objects that exist only in the runtime. I hope that this will not be too limiting: Classes, methods, and properties are all realized in the source code, so can be “named”. Futhermore, with a little trickery, prototypical instances can also be named; by assuming they occupy some part of the original source code: eg “this”.

Each node has access to namespace of local nodes to help derive it’s own namespace. The geeky conclusion is that the namespace dependencies must go though a dependency analysis so all nodes are calculated in the correct order. Yay! Dependency analysis!

Protected: Duck Eggs

Friday, April 10th, 2009

This post is password protected. To view it please enter your password below:


kyle@arcavia.com