portfolio | contact


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

errands and heroics

Tuesday the 24th, 4:49 PM
hero stepping from the ordinary
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
list select 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.
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 have been dreaming about this.

Monday the 17th, 4:17 PM

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.

uneasy truce

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!

UMCS

Monday the 1rd, 8:10 PM
ultra mobile chop sticks - FINALLY. ok seriously though: want.
UMCS
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.

column divider 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?

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

bottom align example

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.

quick IE post

Wednesday the 20th, 4:43 PM

the ninja has landed

Wednesday the 20th, 12:32 AM
N
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
scribbler
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
music and sex
hilarious mix of science projects. the last one reminds me of idiocracy. a couple of them reminded me of these creation science projects.

happy VD!

Tuesday the 12th, 2:10 PM
darwin

darkcrystal mystic

Monday the 4th, 12:8 AM
darkcrystal mystic

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.
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.

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:

"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."

beating a dead arthropod

Thursday the 10th, 3:34 AM
scorpion

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.

scorpionmonkey
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.

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:
1uniq_idlong integerUnique catalog row ID
2radegreedoubleRight ascension of entry
3decdegreedoubleDeclination of entry
4first_idlong integerunique FIRST ID
5first_radegreedoubleright ascension (J2000)
6first_decdegreedoubledeclination (J2000)
7first_peak_fluxmJy/beamfloatpeak flux at 20cm
8first_fluxmJyfloatintegrated flux density at 20cm
9first_skymJy/beamfloatlocal noise estimate at source position
November

amazing origami

Friday the 23th, 6:28 PM
origami

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.
ceph

UPDATE: I now have internet at home! YAY!
October

update! I have made an art!

Saturday the 13th, 5:48 AM
scorpion

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.

-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

PAN

Tuesday the 1nd, 3:23 AM
pan

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)