June
song to the siren
Thursday the 26th, 5:32 PM
On the floating, shapeless oceans
I did all my best to smile
til your singing eyes and fingers
drew me loving into your eyes.
And you sang "Sail to me, sail to me;
Let me enfold you."
Here I am, here I am waiting to hold you.
Did I dream you dreamed about me?
Were you here when I was full sail?
Now my foolish boat is leaning, broken love lost on your rocks.
For you sang, "Touch me not, touch me not, come back tomorrow."
Oh my heart, oh my heart shies from the sorrow.
I'm as puzzled as a newborn child.
I'm as riddled as the tide.
Should I stand amid the breakers?
Or shall I lie with death my bride?
Hear me sing: "Swim to me, swim to me, let me enfold you."
"Here I am. Here I am, waiting to hold you."
-Tim Buckley
I did all my best to smile
til your singing eyes and fingers
drew me loving into your eyes.
And you sang "Sail to me, sail to me;
Let me enfold you."
Here I am, here I am waiting to hold you.
Did I dream you dreamed about me?
Were you here when I was full sail?
Now my foolish boat is leaning, broken love lost on your rocks.
For you sang, "Touch me not, touch me not, come back tomorrow."
Oh my heart, oh my heart shies from the sorrow.
I'm as puzzled as a newborn child.
I'm as riddled as the tide.
Should I stand amid the breakers?
Or shall I lie with death my bride?
Hear me sing: "Swim to me, swim to me, let me enfold you."
"Here I am. Here I am, waiting to hold you."
-Tim Buckley
errands and heroics
Tuesday the 24th, 4:49 PM

I love this picture for the bag carried by the man... as if on the way home from the grocery store, he decided to inspire the whole world as a casual after thought to a day spent getting ready to prepare dinner.
the whole world is [...] harmless enigma made terrible
Sunday the 22th, 9:54 AM
I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth.
- Umberto Eco
list select
Tuesday the 1rd, 2:28 PM
Just about worthless but you might get a kick out of it. I whipped up a list select widget which allows you to make a list (ul) selectable (click within the list drag up or down to select items). Unusable in its current form (code isn't pretty) but could be groomed into something nice.
May
apply to children
Thursday the 22th, 6:10 PM
ok, haven't gotten around to pairing down that javascript mentioned below into the relevant parts. I may or may not at some point. However, while waiting for a project to build (arduous task indeed) I wrote a bit of javascript that takes a node and a function as parameters and recurses through its children, passing each node to the parameter function. I trust you can see the use in that :) heck, maybe you cant. In any case, I made something pretty with it. enjoy. applyToChildren function below:
function applyToChildren(myNode, fn){
fn(myNode);
if(!!myNode.childNodes.length){
for(var i=0;i<myNode.childNodes.length;i++){
applyToChildren(myNode.childNodes[i],fn);
}
}
}
April
bullet proof input behavior mod
Tuesday the 29th, 8:18 PM
After struggling to develop a standards compliant, unobtrusive, browser agnostic means of filtering input keystrokes, I have finally devised a simple and elegant solution. Hell yeah. go me.
What is worth taking with you:
Each browser handles events differently. The trick was learning how to stop the event in some cases and how to allow the event to proceed in others. Sounds like cake, but when you assume that you don't have complete control over the particular event (element.onkeydown = myFunction(){} vs element.addEventListener()) and then account for the differences between IE and FF, things get sticky. Ill post the relevant pieces of the code later.
What is worth taking with you:
Each browser handles events differently. The trick was learning how to stop the event in some cases and how to allow the event to proceed in others. Sounds like cake, but when you assume that you don't have complete control over the particular event (element.onkeydown = myFunction(){} vs element.addEventListener()) and then account for the differences between IE and FF, things get sticky. Ill post the relevant pieces of the code later.
March
SCIENCE!
Thursday the 20th, 12:13 AM
Harvard has put together a video library of short films which illustrate various scientific concepts. If you haven't already seen the inner life of the cell do so now. There is a great piece of it which depicts a kinesin molecule dragging its cargo along a microtubule.
I just watched the video which explains the chemical motor that creates most of our cellular energy (ATB). The video and motor are called "F1 - F0 ATPase".
I just watched the video which explains the chemical motor that creates most of our cellular energy (ATB). The video and motor are called "F1 - F0 ATPase".
osm javascript function
Thursday the 13th, 2:17 AM
This clever fellow devised a function which will take markup described using JSON and then create the described nodes for you, saving you the time of writing out all that DOM code or falling back on innerHTML. see: createElements();
safari, firefox 3, rendur and !important
Wednesday the 12th, 4:4 PM
UPDATE: Ive added the javascript sand box for IE users - just because it was easy and I suppose there is no good reason not to.
With the firefox 3 beta available, i decided to see how my different sites would render and behave. turns out - rendur.com now breaks, but the same way that safari breaks. sucked because it meant that Id have to fix it, but good because it meant that I could possibly get it working for safari too. After a surprisingly small amount of work, rendur is now functioning in safari and FF3. (The difficulties appear to be with how each browser deals with '!important' declarations.) Like IE, safari doesn't reinterpret style sheets on the fly, so only the markup and javascript tab are enabled. Better than nothing I suppose. rendur.
With the firefox 3 beta available, i decided to see how my different sites would render and behave. turns out - rendur.com now breaks, but the same way that safari breaks. sucked because it meant that Id have to fix it, but good because it meant that I could possibly get it working for safari too. After a surprisingly small amount of work, rendur is now functioning in safari and FF3. (The difficulties appear to be with how each browser deals with '!important' declarations.) Like IE, safari doesn't reinterpret style sheets on the fly, so only the markup and javascript tab are enabled. Better than nothing I suppose. rendur.

so freaking metal.
Wednesday the 5th, 8:44 PM
I have moved from lowly contractor to official employee. oh ye sweet sweet health care. No longer shall I pay out of pocket for x-rays!
February
css column dividers
Thursday the 28th, 7:3 PM
if you know the width of two columns, but not their heights, you can still give them a divider that will always extend to the bottom of both. example.

whats going on - it turns out that its the margin that causes an element to wrap to the next line, not its physical dimensions. the column divider is actually the right border of the parent element. The second column has a negative right margin equal to its width plus its margins. fun huh?

whats going on - it turns out that its the margin that causes an element to wrap to the next line, not its physical dimensions. the column divider is actually the right border of the parent element. The second column has a negative right margin equal to its width plus its margins. fun huh?
CSS bottom align
Tuesday the 26th, 0:11 AM
if you know the combined width of two elements, and the height of one of them, you can still align their bottom edges. example. may require some tweaking for your specific scenario

whats going on - the first child div is floated left and the second floated right. With me? The parent element is just small enough that it forces the second element to the second line, but then we put a negative margin top margin on the second element bringing it up a single line.

whats going on - the first child div is floated left and the second floated right. With me? The parent element is just small enough that it forces the second element to the second line, but then we put a negative margin top margin on the second element bringing it up a single line.
the ninja has landed
Wednesday the 20th, 12:32 AM

My hands down favorite game of all time is now available on xbox live arcade. buy it. buy it right now. the PC version is free.
View some game play shots of the xbox live arcade version.
about N - this game isn't pretty. its all about bucking this trend of making prettier and prettier games that are less and less fun. enemies are geometric shapes and the one goal is get gather gold and escape. you can't fire or attack - in fact, there are only three buttons necessary [left, right, jump]. the ragdoll bloody deaths scenes are also rather nice.
scribbler
Wednesday the 20th, 3:19 AM

I couldn't help playing with scribbler far too long. its a fun little app. you create a line drawing then click "done" and it will start connecting semi transparent lines between your lines, eventually describing the shape of your drawing.
you're doing it wrong.
Tuesday the 19th, 6:53 PM

hilarious mix of science projects. the last one reminds me of idiocracy. a couple of them reminded me of these creation science projects.
couple of things
Friday the 1st, 7:45 PM
Ive got a drawing I will post when I get home.
I created a REAL quick and dirty javascript sandbox for greasemonkey similar to the rendur functionality. You can find it here: javascripteval.user.js Simply press [pause/break] and it will open a text area with a button labeled [eval] which will execute the code. Click the [@] button to hide and show the textarea.
Also, the first episode of Free Radio was "leaked" on yahoo TV. You should definitely watch it. Hilarious.
I created a REAL quick and dirty javascript sandbox for greasemonkey similar to the rendur functionality. You can find it here: javascripteval.user.js Simply press [pause/break] and it will open a text area with a button labeled [eval] which will execute the code. Click the [@] button to hide and show the textarea.
Also, the first episode of Free Radio was "leaked" on yahoo TV. You should definitely watch it. Hilarious.
January
error console in a tab
Wednesday the 23th, 1:18 PM
so the firefox javascript console is great, but switching to a second window is a pain, especially since i have all this learned tab switching behavior. ive found that you can actually load the console into a tab using it's chrome URL >> chrome://global/content/console.xul NEAT HUH?!
there are many other chrome URLs that you can access. It gets even more fun if you load up the dom inspector and write some CSS for what you find, then stick it in your userChrome.css. More chrome resources.
there are many other chrome URLs that you can access. It gets even more fun if you load up the dom inspector and write some CSS for what you find, then stick it in your userChrome.css. More chrome resources.
bad idea.
Tuesday the 22th, 12:35 AM
dumbest idea ever. The web standards project has recommended that future browsers support ALL versions of their previous engines in perpetuity and allow the web author to pick and choose between which version will be used to render the page.
BLOAT and a HUGE burden on browser makers.
I thought this comment was well said:
BLOAT and a HUGE burden on browser makers.
I thought this comment was well said:
"This is madness, pure and simple. Even if browser makers could implement it, what we would end up with in reality is a proliferation of targets, not a reduction:
IE10 emulating IE7, IE10 emulating IE8, IE10 emulating IE9, and IE10 IE9 emulating IE7, IE9 emulating IE8, IE9 IE8 emulating IE7, IE8
None of these would render the exact same way. None of them."
IE10 emulating IE7, IE10 emulating IE8, IE10 emulating IE9, and IE10 IE9 emulating IE7, IE9 emulating IE8, IE9 IE8 emulating IE7, IE8
None of these would render the exact same way. None of them."
beating a dead arthropod
Thursday the 10th, 3:34 AM

I scooped up an eee PC (quite pleased with it if you must know) so I made a few desktops for it. I added some gloss to the scorpion because 'shinier' is a synonym for 'better'. you can download them below. You'll want to set them to centered with the color to match being (68, 68, 68) for the scorpion and (87, 87, 87) for the monkey.

December
finally.
Friday the 28th, 1:12 PM
Darpa, the people that brought you research in EHPA and self repairing mine fields has discovered a drug which can combat sleep deprivation without causing edginess, mood swings, or impacting blood pressure/heart rate.
monkeys were deprived of sleep for 30 to 36 hours [...] The monkeys given orexin A in a nasal spray scored about the same as alert monkeys, while the saline-control group was severely impaired.
[...] orexin A not only restored monkeys' cognitive abilities but made their brains look "awake" in PET scans.
Siegel said that orexin A is unique in that it only had an impact on sleepy monkeys, not alert ones, and that it is "specific in reversing the effects of sleepiness" without other impacts on the brain.
[...] orexin A not only restored monkeys' cognitive abilities but made their brains look "awake" in PET scans.
Siegel said that orexin A is unique in that it only had an impact on sleepy monkeys, not alert ones, and that it is "specific in reversing the effects of sleepiness" without other impacts on the brain.
brainwashed
Thursday the 27th, 8:32 PM
you're watching a worm which has infected a cricket, then 'convinced' it to commit suicide by leaping into a body of water where the worm will continue its life cycle. creepy. gordian worm
makin tables
Monday the 24th, 12:52 AM
I've been super busy with work (approaching another dead line) so I haven't had much time for this (or anything else really). Just popping in to post this neat little tool I made which generates an html table from comma separated values.
exmaple
input:
1,uniq_id,,long integer,Unique catalog row ID
2,ra,degree,double,Right ascension of entry
3,dec,degree,double,Declination of entry
4,first_id,,long integer,unique FIRST ID
5,first_ra,degree,double,right ascension (J2000)
6,first_dec,degree,double,declination (J2000)
7,first_peak_flux,mJy/beam,float,peak flux at 20cm
8,first_flux,mJy,float,integrated flux density at 20cm
9,first_sky,mJy/beam,float,local noise estimate at source position
output:
exmaple
input:
1,uniq_id,,long integer,Unique catalog row ID
2,ra,degree,double,Right ascension of entry
3,dec,degree,double,Declination of entry
4,first_id,,long integer,unique FIRST ID
5,first_ra,degree,double,right ascension (J2000)
6,first_dec,degree,double,declination (J2000)
7,first_peak_flux,mJy/beam,float,peak flux at 20cm
8,first_flux,mJy,float,integrated flux density at 20cm
9,first_sky,mJy/beam,float,local noise estimate at source position
output:
| 1 | uniq_id | long integer | Unique catalog row ID | |
| 2 | ra | degree | double | Right ascension of entry |
| 3 | dec | degree | double | Declination of entry |
| 4 | first_id | long integer | unique FIRST ID | |
| 5 | first_ra | degree | double | right ascension (J2000) |
| 6 | first_dec | degree | double | declination (J2000) |
| 7 | first_peak_flux | mJy/beam | float | peak flux at 20cm |
| 8 | first_flux | mJy | float | integrated flux density at 20cm |
| 9 | first_sky | mJy/beam | float | local noise estimate at source position |
November
hooray for the series of tubes!
Friday the 16th, 3:24 PM
By the time I get home, I will have internet - hopefully. I moved into a new place in seattle proper and have been without. To all those waiting for email from me, please be patient. H - miss you :)
now enjoy some arts I have been working on instead of surfing the series of tubes.

UPDATE: I now have internet at home! YAY!
now enjoy some arts I have been working on instead of surfing the series of tubes.

UPDATE: I now have internet at home! YAY!
October
update! I have made an art!
Saturday the 13th, 5:48 AM

Now you can buy my arts! my scorpion at shirt.woot.com
This drawing of mine is getting made into a shirt. It will be silk screened onto an american apperal t-shirt. $10 with free shipping on monday only. After that it goes up to $15.
you will be able to buy them at shirt.woot.com on monday. There will be a different purchase link after monday. Ill update once I have it.
painful steps o'er the burnt soil
Tuesday the 9th, 1:25 AM
Then straight commands that, at the warlike sound
Of trumpets loud and clarions, be upreared
His mighty standard. That proud honour claimed
Azazel as his right, a Cherub tall:
Who forthwith from the glittering staff unfurled
Th' imperial ensign; which, full high advanced,
Shone like a meteor streaming to the wind,
With gems and golden lustre rich emblazed,
Seraphic arms and trophies; all the while
Sonorous metal blowing martial sounds:
At which the universal host up-sent
A shout that tore Hell's concave, and beyond
Frighted the reign of Chaos and old Night.
All in a moment through the gloom were seen
Ten thousand banners rise into the air,
With orient colours waving: with them rose
A forest huge of spears; and thronging helms
Appeared, and serried shields in thick array
Of depth immeasurable. Anon they move
In perfect phalanx to the Dorian mood
Of flutes and soft recorders--such as raised
To height of noblest temper heroes old
Arming to battle, and instead of rage
Deliberate valour breathed, firm, and unmoved
With dread of death to flight or foul retreat;
Nor wanting power to mitigate and swage
With solemn touches troubled thoughts, and chase
Anguish and doubt and fear and sorrow and pain
From mortal or immortal minds. Thus they,
Breathing united force with fixed thought,
Moved on in silence to soft pipes that charmed
Their painful steps o'er the burnt soil.
Of trumpets loud and clarions, be upreared
His mighty standard. That proud honour claimed
Azazel as his right, a Cherub tall:
Who forthwith from the glittering staff unfurled
Th' imperial ensign; which, full high advanced,
Shone like a meteor streaming to the wind,
With gems and golden lustre rich emblazed,
Seraphic arms and trophies; all the while
Sonorous metal blowing martial sounds:
At which the universal host up-sent
A shout that tore Hell's concave, and beyond
Frighted the reign of Chaos and old Night.
All in a moment through the gloom were seen
Ten thousand banners rise into the air,
With orient colours waving: with them rose
A forest huge of spears; and thronging helms
Appeared, and serried shields in thick array
Of depth immeasurable. Anon they move
In perfect phalanx to the Dorian mood
Of flutes and soft recorders--such as raised
To height of noblest temper heroes old
Arming to battle, and instead of rage
Deliberate valour breathed, firm, and unmoved
With dread of death to flight or foul retreat;
Nor wanting power to mitigate and swage
With solemn touches troubled thoughts, and chase
Anguish and doubt and fear and sorrow and pain
From mortal or immortal minds. Thus they,
Breathing united force with fixed thought,
Moved on in silence to soft pipes that charmed
Their painful steps o'er the burnt soil.
-milton, paradise lost
calculus!
Monday the 8th, 1:58 PM
They have found a lost copy of the work of Archimedes gathering dust and mold for two millennia. What is exciting is that it appears that Archimedes was dealing with a much more sophisticated concept of infinite than previously thought, and whats more - that he was tinkering with the roots of calculus long before Newton.
I can't help but wonder what other texts have been lost to us. Just imagine how much further ahead we would be if the library of alexandria has not burned! It almost hurts to think about it.
A Prayer for Archimedes
I can't help but wonder what other texts have been lost to us. Just imagine how much further ahead we would be if the library of alexandria has not burned! It almost hurts to think about it.
A Prayer for Archimedes
PAN
Tuesday the 1nd, 3:23 AM

Just finished reading jitterbug perfume over the week end. Out of reading material on the bus, I drew something instead.
(THIS one is for you :P)

