R (15) Admin (12) programming (11) Rant (6) personal (6) parallelism (4) HPC (3) git (3) linux (3) rstudio (3) spectrum (3) C++ (2) Modeling (2) Rcpp (2) SQL (2) amazon (2) cloud (2) frequency (2) math (2) performance (2) plotting (2) postgresql (2) DNS (1) Egypt (1) Future (1) Knoxville (1) LVM (1) Music (1) Politics (1) Python (1) RAID (1) Reproducible Research (1) animation (1) audio (1) aws (1) data (1) economics (1) graphing (1) hardware (1)

27 October 2009

thesis take 7 part 2

human agriculture, which is central to human ecological dominance, in fact relies upon ecosystem disturbance.

as humans stabilize niches against disturbance, characteristic changes in species abundance and guild specialization may be expected. using two model guild strategies for exploiting disturbance (fire and flood), i aim to characterize the effect of disturbance supression. negotiation of abiotic and intra-guild constraints are the primary mechanisms of ecological prosperity that are considered.

thesis topic take 7

environmental disturbance is a key ecological determinant of species composition. long lives and lack of motility in woody plants can lead to characteristic relationships to disturbance, either through close life-cycle coupling to dominant abiotic disturbance (i.e. flooding), or through biotic forcing of disturbance (i.e. fire).
these relationships to disturbance are mediated by nutrient and organism cycling, yielding causal, fitness-driven mechanisms of species abundance in woody plants. woody plants provide a fundamental, irreplacable ecosystem service of energy production. driven by intra-guild competition and abiotic limitations such as water, nitrogen, and phosporus, many woody plants have adapted to exploit a priori disturbance, or to drive new disturbance.

contrary to contemporary memes, many terrestrial ecosystems have been subject forceful stabilization as a result of human activity. humans supression of fire and flooding has ecological consequences, especially for woody plan

24 October 2009

biking and pixing and blogging

dont try this at home, kids. weird downtown industrial scene, not much traffic.

16 October 2009

bonus pic - tincture making

this is percolation, michael moore (the herbalist) style, easily the most irritating method imaginable, but the man is right. it works. well. this is a ridiculous amount of coltsfoot. if you got lung issues, lemme know...

the herb is soaked for some time, and then packed into the cut bottle with a coffee filter below and above, not too tight, not too loose, then alcohol is poured on top, and it seeps through and carries the goodness away with it. the cap on the bottom is screwed just so, such that one or two drops a second leave one bottle asnd enter the other.

this particular batch is pretty bitter. the color tells me that it more-or-less worked as advertised. one outstanding question is whether "waste" of alcohol or plant matter by using excess of each is preferable. tincture-making is a fine line between the two. depends on the plant (and the booze), i suppose...


the sg of water should be 1.0000000. it's close enough. sanitizer water in the pot in the background. the decidedly unsexy part of brewing - keeping everything clean. ive got some strange strains living down here...

it floats!

here's the sweet-and-sour water getting tested with the hydrometer in the test tube. the higher the hydrom floats, the denser the liquid, the more sugar is dissolved in it... specific gravity, s.g. = 1.15... that's a *lot* of sugar. my fingres are sticky nasty now.

my new favorite toy

it's a laser thermometer - some real star trek shit! im cooling the honey water in a sink of cold water. it's not perfect, but pointing the magic yellow thing at the surface and pressing the button gives me the temp within a few degrees. 90 degF is definitely too high for the yeasties.

scales how i love thee

measuring out acid blend - 2.5 g tartaric, 4 g malic acid, conservative for 2+ gallons, but more can always be added later. the acid is tasty in it's own right, but it gives the yeasties a leg-up during the ferment.

more sugar == more alcohol

some extra honey that was crystallized (~500g) and some priming sugar (corn, 140g) into a quart of water). need ~12% alcohol for it to be delf preserving. honey makes tasty brew, in any case. this is the last of my *easy* fermentables. time to buy a new bag of sugar...

This message has been sent using the picture and Video service from Verizon Wireless!

To learn how you can snap pictures and capture videos with your wireless phone visit

Note: To play video messages sent to email, Quicktime@ 6.5 or higher is required.

prickly pear wine from the student ghetto

1 gallon fresh prickly pear juice, 1 gallon water, 1kg sugar (good stuff, not the ghetto smiths bleached shit), a pinch of vitamin c (1.5g), a few dashes of diammonium phosphate (8g), some yeast energizer (1g), all cooled to 25 degC. bubbled in oxygen for 2 minutes. specific gravity is 1.065... potential alcohol @ 9%, way too low. must add more sugar.

This message has been sent using the picture and Video service from Verizon Wireless!

To learn how you can snap pictures and capture videos with your wireless phone visit

Note: To play video messages sent to email, Quicktime@ 6.5 or higher is required.

30 August 2009

of a few things large and many things small

reading Robinson's Red Mars reminds me of a basic and oft-under (or un-) appreciated principle of ecology: change in the ecospere tends to flow from small to large, and not vise versa.

sure, planets have colided. asteroids caused massive turnover in earth species composition. nonetheless, where did life come from? the smallest of units, testing a galaxy of possibilities, some succeeding, some aggregating.

the little things. we dream grand dreams of galaxies, of control. seen from a plane, humans' works are not vast. none but our roads and our lights warrant note. points and lines.

ozone hole; global warming; oxygen atmosphere: consequences of small units, people and plants and refridgerators, units repeated to vast proportions over time, an inflation of individually insignificant individuals that, together over time, effects nontrivial change.

this is the law of history as well as ecology. the pyramids, slaves. democracy with it's masses, intel's chips.

small isn't trivial.

07 August 2009

classroom economics experiments

i've been thinking lately about inflation and the meaning of money lately. i think a classroom experiment with monopoply money and a real lemonade stand would be great. folks draw some sort of income (perhaps making the lemonade and selling it to the vendor), vendors get paid a fixed turn-based wage. if the resale price of lemonade rises 10% every turn, the "real value" of money immediately becomes apparent.

as an added capitalist spin, savings might be used to buy a stand or "manufacturing plant", and employees are hired from the participants. finally, adding or removing money from the system, a bank with a savings rate...

23 July 2009

Albany NY

Mo says, "an owl and a bunny went to Albany".

A view of the Hudson

It's a *very* pretty ride, and we both got seats on the good (west) side of the train. It's amazing how quickly a city of millions gives way to a sparsely-populated expanse of water and trees. Sailboats are scattered picturesquely about.

Safely on the train

after a half-mad rush through the subway. Morning rush hour was, thankfully, merciful. Epic confusion in Penn Station of the "where in god's name anre the amtrack trains" variety in the *dead midst* of morning rush hour. Nonetheless, success with minutes to spare! No assigned seating, and Mo and i get split, which is probably for the best at this point. We're both borderline hungover, dangerously caffeinated, and tragically sleep-deprived. But we are safe, and the train is spacious and relaxed, and the aforementioned pbr begins to sing its sweet siren song from the bag, otherwise known as "late lunch"...

A last look @ Williamsburg

We eat a hurried few bites in front of our heap of bags. Very pretty morning, the air is misty and thick. We're told that a tropical depression is in-bound, that it will starting raining around noon and continue for days. We'll be safely on the train by then. Good timing.

The swank Williamsburg Apt

Where we stayed. Very cozy, replete with romantic fire escape to sit on in the cool evening air.

Some of our luggage

that we will haul on our backs through the tunnels to Penn Station. Amomng other indispensables? 9 cans of pbr. Not light.

Good morning sunshine

After a few hours of sleep, we crawl towards breakdast, Penn station, and Canada.

22 July 2009

Happy Hour

We savor the peace of having not killed each other during the long, hot day. Cold Brooklyn Brewery lager and smoking on the non-smoking, zoo-cage patio is the perfect pairing with this moment of foot-blissed circumspection.

I didn't take this picture

It's actually a still frame from the Matrix, a scene that ended up on the editing room floor. Mo was too fast for the cameras. From what I've heard, technology is catching up. Until then we'll have to settle for Keanu and special effects...

Rush hour

to Brooklyn on the L. I got some annoyed looks for pointing a camera at folks. See previous post r.e. subway confrontation avoidance...

Rachael's Hypothesis

of New Yorkers' fetish with shoes is that everyone looks down while riding the subway, and this makes shoes a dominant mode of slef-expression. I lose in this game, but my feet don't ache too bad after a long day's stroll...

Subways don't kill people

People kill people (or themselves), as the saying goes.

Ok, i'm a big fat train dork. Sense of power, hint of danger as the beast rushes up with a gust of air, smell of electric motors and oil, the subterranean labyrinth. I'd definitely rather live here than in the Mall of America in some post-apocalyptic future? Seen "Dark Days"? If not, it will in all likelyhood forever change the way you see subway tunnels. Oh, and there's a book from the late 80s or early 90s, "Slake's something"...

This message has been sent using the picture and Video service from Verizon Wireless!

To learn how you can snap pictures and capture videos with your wireless phone visit

Note: To play video messages sent to email, Quicktime@ 6.5 or higher is required.


I can respect a city that leaves large piles of trash lying conspicuously around before removal.

Years ago (2004?) i was wandering through Central Park, up towards Harlem i think, and i discovered the Park's composting facilities. It was a 5 year old's dream, a leaf pile the size of a castle (albeit shredded and rapidly decomposing), french drain-style aeration pipes threaded throughout. It was spring, cold still, with the last crocuses and the first daffodils blooming, and there was a great quantity of microbially-warmed air pouring forth from this mountain of leaves. It totally changed the way i saw Central Park *and* composting.

A counting clock

Looking south past union station. The clock is counting something awefully fast... microseconds since Bush left office?

Not Square

I have this thing for oblique-cornered buildings - fond memories from Prince Ave in Athens? ABQ is pretty square; we don't have these...

Hiding from the sun

As it beat down upon us. Found an unairconditioned goodwill to try on polyester blazers in - downright swampy! Scored some good clothes for cheap, though. This is our idea of souvenirs - things we can wear, "yeah, i went shopping in downtown Manhattan last summer"... not the pinnacle of fashion, goodwill, but it will suffice for us!

Looking Uptown

Big roads, big buildings. Saw a ghostbike near here. Mo was wondering how often people get killed on bikes in Manhattan. Now we know - 14 in 2008. Per capita, I'm guessing that's less than ABQ...

Credit Unions Weather Financial Storm

Whether Ukrainia weathers Putin remains to be seen...

The Daylilies of Stuyvesant Square @ 15th st & Perlman

We made it to Manhattan, all 3 minutes away by the L train. A break in the shade, cool breeze moving in. I haven't seen so many nice trees all in the same place in a long time...

Williamsburg Coffeehouse Bathroom

Public restrooms rare - this one came with coffee, a nice window-seat view of the street, and sweet ipod hipster music that was accidentally stopped when i asked who a song was by... Looking @ music schedule in the Viilage Voice makes me want time/$$ to see shows. Cool stuff, $10. Pocket flask? $6 pints are rough!

8am train out of Penn Station tomorrow, so no late night tonight. Still jet/sleep-schedule-lagged...

Picked up a 6 pack of Dogfish Head 60min IPA last night for $13, warm 12pk of pbr for $9 on Bedford St. Cold pbr was a dollar more. Strangely enough, i saw 12pks of warm natural light for $6.50 today in RiteAid. What? Beer that fell off the back of the truck? This is Brooklyn, after all. $0.50 a beer even for the cheapest of packaged corporate swill seems a little odd.

this one's for mike d

Brooklyn bug, replete with authentic art.

21 July 2009

Alive if damp at Laguardia

We're in NYC! Yay! Awesome seatmate advised us extensively. Life is good, if blearyily sleep-deprived.

This message has been sent using the picture and Video service from Verizon Wireless!

To learn how you can snap pictures and capture videos with your wireless phone visit

Note: To play video messages sent to email, Quicktime@ 6.5 or higher is required.

Houston Airport Smokers Lounge

yes, that would be outside.

It amazes me that the city of choice for NASA mission control and a major hub airport is so perpetually overcast. Air like peanut butter, with some hot, dirty mopwater mixed in for good measure.

Continental staff is a rather moribund crew. Our 1.5 hr layover has magically extended itself an hour - its shaping up to be a long day, what with impromptu going away party and all. Still, if we get there i'll be happy.

Traveling with green machine, trying to download MTA subway maps. I forgot my credit card sized MTA map at home. Alas. I *did* remember my passport, which is still valid ('til 2016, which makes me wonder what the world will look like then...).

Cool-looking Brooklyn couchsurfers and a big bag of homemade snacks for the airport wait 'til then. Not Texas, here we come!

This message has been sent using the picture and Video service from Verizon Wireless!

To learn how you can snap pictures and capture videos with your wireless phone visit

Note: To play video messages sent to email, Quicktime@ 6.5 or higher is required.

thus we begin!

houston to nyc to montreal and back, lord willing!

25 June 2009

What my violin really sound (and look) like

I've been trying to spend some time with the violin on a semi-regular basis. When it's more regular, it sounds less bad. I have a vague idea when i'm playing whether i'm horrible or tolerable, but listening to one's own self is a whole other thing. Today it was raining, so i had to play indoors. I hooked up rosegarden and set a cheap but remarkably effective gooseneck headset mic in the middle of the room and started playing. You don't really want to hear it, trust me. I'm trying to play more longingly minor keys because i like the sounds of them. They sound like i feel a lot of the time. Still, my fingers don't really know where they are. While i'm playing, the "music in my head" cancels out many of these mistakes before they reach my ear. In the recording i can "see" where i'm trying to go, but i hear all the mistakes quite clearly, too! I was checking on the web to see if Rosegarden has a spectogram viewer inside it when i found this wonderful tool for audio visualizion - sonic visualizer. I haven't been this impressed with audio software since, oh, rosegarden? It's currently devouring 100% of one of the cores of my CPU rendering the full 10 minute spectrograph as i write this, but it updates to the current view very quickly. It's user controls are *smooooooth*. Here's a spectrograph view of 15-odd seconds (don't know why the time axis isn't labeled here...), with frequency and amplitude scales shown on the left. I never really thought about it, but the harmonics are more widely spaced for high notes, accounting for the perceived "pureness" of the tone? You can see the vibrato, too. Pretty cool. Click on the image to see it in decent-resolution.

19 June 2009

Lattice magic - top-to-bottom plotting order in xyplot

I've been wondering about this for a while - an alternative to as.table that fills from top-to-bottom first. Working with paired timeseries, it's much easier to compare vertically, with time-axis already aligned. Deepayan's method is fast and general, and that's awesome...

From R-help:
Hi, Using library(lattice), is there any way to tell xyplot to plot panels top to bottom, then left to right (i.e. panels are appended vertically, then horizontally). as.table changes the plot direction from left-to-right then top-to-bottom, to right-to-left then bottom- to-top, but that's not quite what I want to do. Thanks Yan

Deepayan says:
> tmp.tr3 <- xyplot(y ~ x | a, data=tmp, as.table=TRUE)  
Another high level option is to change the rule determining how packets are chosen for a given panel in the layout.
print(tmp.tr3,  packet.panel = function(layout, row, column, ...) { 
    layout <- layout[c(2, 1, 3)]
    packet.panel.default(layout = layout, row = column, column = row, ...) 
This effectively transposes the layout, which (along with as.table=TRUE) is what you want.

15 June 2009

Obfuscated SQL

I've finally learned to create views early and often in postgres... They're like variables (with lazy evaluation). Only different. A lot different, in ways that make as much sense to me as conjugating weird tenses in french. Here i've used multiple views stacked atop each other. It's not the fastest way, but for hundreds of thousands of records, it's fast enough. I have multiple loggers in different wells. Every well has its own datum. Every file belongs to a logger, which in turn belongs to a well, and requires the correct datum. I've had to join and union several different subqueries and views. It's a god-aweful mess, but i think i finally got it.
--here's the magic: v_sourcedat
--matches source files to datums
create or replace view v_sourcedat as
        select  unit_id||well_num as well, datum_m,, source
                from v_loggerdat wd,
                ( SELECT, min(tmp."time")::date AS start,
                        tmp.source FROM tmp_gwdata tmp
                        GROUP BY tmp.source,
                where =
                and gw.source not in (select source from v_sourcetowell)
        union select unit_id||well_num as well, datum_m,, source
                from v_loggerdat wd,
                (select * from v_sourcetowell)
                where gwo.well = wd.unit_id||well_num
        order by well;

-- using v_sourcedat, as above
-- the final data
create or replace view v_gwdata_4hr as
        SELECT datum.well,, gw."time",
                gw.dtw::numeric(10,4) - datum.datum_m::numeric(10,4) AS dtw,
                gw.dtwsd, gw.temp, gw.tempsd
        FROM v_sourcedat datum
        JOIN gwdata_4hr gw using (source)
        WHERE gw.temp <> 3::numeric
        AND gw.dtw > (-0.5) AND gw.dtw < 4.5
        AND gw."time" < '2010-01-01 00:00:00'::timestamp without time zone
        ORDER BY datum.well,, gw."time";

12 June 2009

flying standby

After a long and futile day at the airport yesterday watching summer afternoon thunderstorms make a hash of my travel plans, i booked for the 6am out of ABQ.

A brief list of miraculous events proceed:
1. Megan graciously and unexpectedly offers to drop me off at the god-aweful hour of 5am.

2. My alarm fails to wake me at the even more god-aweful hour of 4:30, but a gate-change triggers a call from Southwest at 5:20am. I'm obviously late.

3. There's leftovers in BAM's fridge, and megan spots me a V8.

4. At security, i'm shuttled into the pilot/express line. I fly through security despite an irrationally long 5:40am "normal" line.

5. I don't feel like a total zombie...

6. Pressure-induced condensation vortex from turbelence in the streamline off the wing during descent braking.

7. belgian waffle with real butter

8. getting on the plane from denver to baltimore.

it's shaping up to be areally nice day. i'm sure i'll keel over eventually, in a safe place...

06 June 2009

Postgresql Poetry? Aggregate median with PL/R

No, no poetry yet, but i think i'm getting closer to thinking like a query planner. Today i learned aggregates. Have i mentioned how much i love the postgresql documentation? Unknownst to myself before today, postgres's aggregates are smart - they process as a stream when at all possible - so average keeps track of the running sum and number, and calculates the average at the end. Which makes median tricky. It depends on the length of input. I have a median implimentation in PL/Perl that queries the table directly, asking it for length, and then extracts the needed records. While this is efficient, it's much closer to magic than i'm comfortable with. Armed with PL/R, I create a median function with the proper type, and then I create the aggregate using that function as the final calc, and a simple accumulator as the transistion function. This isn't very efficient when the "group by" clause give large groups to be passed into the aggregate function, since the whole group has to be stored in memory. But for lots of small groups (say, aggregating 4 samples per hour or 24 samples per day over a year or two), it gives ~20% performance gains. Throw a "limit 5" clause in, and the performance gain increases to ~100%. Here's a link to some truly amazing stuff folks are doing with PL/R. -- sql code follows -- first create the function, then the aggregate
CREATE OR REPLACE FUNCTION median(vals numeric[]) RETURNS float AS '

CREATE AGGREGATE median (numeric)
sfunc = array_append,
stype = numeric[],
initcond = '{}',
finalfunc = median

--And usage
select sn, median(dtwm), count(dtwm), date_trunc('day', timestamp) as day from
gwdata where timestamp < '2003-01-01' group by sn, day limit 5;   
-- sn  | median | count |          day  -----+--------+-------+------------------------  
-- 5526 |   1.59 |    24 | 2002-12-26 00:00:00-07  
-- 5539 | 1.7605 |    24 | 2002-02-27 00:00:00-07  
-- 5522 |  0.737 |    24 | 2001-10-03 00:00:00-07  
-- 5517 |   0.96 |    24 | 2001-11-05 00:00:00-07  
-- 5513 | 1.3855 |    24 | 2001-09-07 00:00:00-07  
-- Time: 247.126 ms     

-- Here's the PL/Perl median() function.  
-- Much less straightforwards, included for historical interest BEGIN { strict->import(); }
my ($tname,$cname) = @_;
my $SQL = "SELECT count($cname) AS t FROM $tname";
my $rc = spi_exec_query($SQL);
my $total = $rc->{rows}[0]{'t'};
$total < offset =" ($total-1)/2;" sql = "SELECT $cname AS median FROM $tname     ORDER BY $cname OFFSET $offset LIMIT 1" sql = "SELECT avg($cname) AS median FROM   (SELECT $cname FROM $tname    ORDER BY $cname      OFFSET $offset LIMIT 2   ) AS foo" rc =" spi_exec_query($SQL);">{rows}[0]{median};

01 June 2009

Dear google - "a driver is not registered for the url sdbc:postgresql"

I have an openoffice database project built around a postgresql database using the postgresql sdbc driver, Everything worked really well on my old machine. Why doesn't it work on the new one? Does the driver not work for openoffice 3? Is it a jaunty issue? I followed the instructions and read the f@#$*'ing manual! The error message is the title of this post - google doesn't give a fix, per se, and shows just a few hits, but reveals that it's a 32/64 bit issue. Well then. There appears to be a jaunty package, Does that work in and of itself (after i uninstall the bad 32 bit one)? Nope. But executing ### dpkg -L | grep zip shows me where the file i need is, and executing ### unopkg add `dpkg -L | grep zip` installed it for me. Everything works - hoorah!

25 May 2009

If only it were that simple... Enforced upgrade from feisty to jaunty

Pl/R abjectly refuses to build under Intrepid (8.10). No package for it, requires postgresql source, and even then it fails. But wait! There's a Jaunty package. A good excuse to upgrade (and postpone real work for another few hours)? Can it be done over a remote ssh without knocking the box over? On the upside, Oh My Lord, the campus network is Mad-Fast. The new ubuntu install tools (do-release-upgrade) helpfully inform me: "You have to download a total of 1735M. This download will take about 3 hours 40 minutes with a 1Mbit DSL connection and about 2 days 19 hours with a 56k modem. " Um, yeah. 5 minutes later... Done jaunty/main postgresql-contrib-8.3 8.3.7-1 [81%] 9469kB/s 35s Holy mother-of-wow. I love my campus, and i highly recommend for West Coasters looking for a screaming mirror. Of course, unpacking takes a while. First problems arise therein: "dpkg: libjack0: dependency problems, but removing anyway as you request: stk depends on libjack0 (>= 0.109.2); however: Package libjack0 is to be removed. mplayer depends on libjack0 (>= 0.109.2); however: Package libjack0 is to be removed." NOOOOoooo! Give me back my libjack! This is a work computer, and libjack is definitely not for work, though the psychic relief of multitrack recording with rosegarden definitely helps. What gives? Total upgrade takes ~50 minutes. At last: System upgrade is complete. Restart required To finish the upgrade, a restart is required. If you select 'y' the system will be restarted. Continue [yN] y Broadcast message from xian@ocimum (/dev/pts/2) at 20:19 ... The system is going down for reboot NOW! It goes down, and doesn't come back up. Looks like i'll be driving into the lab today...

22 May 2009

Exploits in Brute Repetition - RODBC and Postgresql and Postgis and UnixODBC and Ubuntu

Database admin will make me old before my time... It's a wicked-cool toolchain, but byzantine to say the least. This is the third time i've gone through this as a fresh installation, and it sucks every time. Here i'm installing the database engine, setting up the database, adding db user, and restoring a dump. This time, I've documented it... May you never have to do this from scratch through the google-tron! #!/bin/bash ## steps to create frs database from scatch on ubuntu ## with system user as cluser superuser ## postgis setup included for package postgresql-8.3 sudo apt-get install postgresql-8.3 postgresql-8.3-postgis sudo -u postgres createuser --superuser $USER sudo -u postgres psql -c "alter role $USER encrypted password '*****'" createdb $DB createlang plpgsql $DB psql -d $DB -f /usr/share/postgresql-8.3-postgis/lwpostgis.sql psql -d $DB -f /usr/share/postgresql-8.3-postgis/spatial_ref_sys.sql ## ## postgis version issues... # cd /usr/lib/postgresql/ # ln -s 8.3 8.2 # sudo ln -s # time psql -d frs -f db.full-2008-06-24 # psql -d frs -f /usr/share/postgresql-8.3-postgis/lwpostgis_upgrade.sql ## odbc sudo apt-get install r-cran-rodbc sudo apt-get install unixodbc psqlodbc sudo odbcinst -i -d -f /usr/share/psqlodbc/odbcinst.ini.template sudo su cat /usr/share/doc/odbc-postgresql/examples/odbc.ini.template >>~/.odbc.ini ### edit the latter - name used to call by, db, passwd, etc. ### unixODBC doesn't do ident authentication??? exit chmod 600 ~/.odbc.ini ### tune the server ### suggestions here: ### and here: ### this machine has 4gb ram, services small number of concurrent connections sudo vi /etc/postgresql/8.3/main/postgresql.conf sudo sysctl -w kernel.shmmax=268435456 sudo sysctl -w kernel.shmall=4194304 sudo vi /etc/sysctl.conf ## set shmmax and shmall across reboots # pulling data from postgres into R using a custom function - not too shabby for a half a million records! # system.time((tmp=query('v_dtw', clause="limit 500000" ))) # user system elapsed # 25.502 18.277 46.285

19 May 2009

Adventures in R Recursion

Spent the day on the coffee shop patio fielding OLPC questions - from "Wow, that's cool, what is it?" to "Where can i get one?" I demonstratively poured some tea on the keyboard at one point for waterproof emphasis to "coooool"s. Good times. Installed R on the green machine (which is now runing happy-fun-times modified ubuntu. Spent time working out of Venables and Ripley's "S Programming" book - trying to keep some finals week brain momentum going... Plunking example code into the green machine. I kept the screen backlight off, just using sunlight and low battery while the sun was up. When i took a break from coding, i could hit the power button to put it to sleep. So, i worked through some recursion examples, in the meantime discovering my own knowledge-gaps in indexing ( this[-index] is the compliment of this[index] for a numeric index vector, whereas this[!index] is the compliment for a logical index vector) and list packing. Also, found a test example of "=" not the same as "<-" a=1:10 > index1 = a>2 ; any(index2<-(a>2)) ; identical(index1, index2) [1] TRUE [1] TRUE > index1 = a>5 ; any(index2=(a>5)) ; identical(index1, index2) [1] TRUE [1] FALSE ### index2 assignment isn't made... why?! I find recursion confusing; debugging recursive functions is especially so! The fruits of my labor are here, with examples of all of the above... mk.recur = function(a,lim=5, fac=2){ ## takes a numeric vector, returns a list of numeric vectors ## with elements greater than lim, multiplied by fac recursively if(any(index<-a>lim)) {ret=list(a[index])} if(length(a[!index])==0) {return(ret)} ret=append(ret, Recall(fac*a[!index], lim, fac)) return(ret) }

12 May 2009

the trigonometry of seeing and being seen (and watching it all happen)

in day-to-day exchanges, we often indicate our attention to each other, whether or not we're actually listening. a nod of a head, "uhuh", raised eyebrows, smirks & frowns & winks. all these are directional; their target is clear.

at a distance, it's harder to know whether he's checking you out or reading your shirt. when 2 people are in close conversation, it's trivial to tell that they're "gazing into each other's eyes".

basic trigonometry shows that the farther the distance, the less the angle. further, to watch a watcher watching is even trickier - i'm uncertain of the angle between watcher, watched, and me, let alone where their eyes point.

all of this makes it devilishly hard to tell if someone's checking someone other than you out (and which part) if they're sufficiently far away from either. yet two people from afar notice quickly if they're checking each other out - i know where i am in space.

try it. i bet the best you can tell is whether someone's looking at you or not...

24 April 2009

grading tests is good for something

amazing revelation - they always seem so at the time.

bloodflow takes a while to catch up with thought. i do the same thing over & over for 5 minutes, and im in the groove.

fMRI tells me so.

same thing for an hour and im toast. i reckon it's some combination of glucose supply and metabolic waste. ah, the likitations of the flesh.

06 April 2009


Woke up at 6 am - the earliest in 6 months maybe? Spent the day in the field picking up all those aging, half-broken groundwater loggers and bringing them home for good. No more Bosque del Apache, which is kinda sad. No more Lemitar, which is really nice. No more Southern NM mosquitos! Workday in the sun makes boy happy.

26 March 2009

A delicate operation

I formalized my Current Research Statement today for a fellowship that I'm not, at this moment, a smashing candidate for. I beat my head against the conclusion, and i'm still not exactly happy with it, but i attached it and pressed send nonetheless. It's amazing how many errors go unchecked until i print it out and see it on paper... As always, seeing it in latex makes me happy (though i'm not sure how i feel about this ultra-low-res blogger pic - click for something that doesn't make your eyes bug out!):

23 March 2009

Getting out of town, getting blown around

We managed to get out of town for 2 nights. The first night we found an awesome flat-bottomed spruce hollow, sheltered and moist with plenty of firewood, a few miles away from the VLA. It was magical to look down on the VLA on the drive out of the mountains. The second day was terribly windy. Gusts to 45 miles an hour? Sounds about right. The car wobbling around on the highway. Somehow we managed to find a strangely sheltered camp spot in the middle of the woods - some quirk of local topography sent the wind whistling over our heads - to cook our mac-n-cheese and snuggle into bed with the sake. We booked it back home today to get M. to class. I still have a head cold, so today hasn't been too productive otherwise. Here's where we went:,-109.493866+to:US-191+to:87106&hl=en&geocode=%3B%3BFfSKCAIdlkF5-Q%3BFaQOGQId8rZ7-Q%3B&mra=ls&sll=35.160337,-108.132935&sspn=1.609939,3.523865&ie=UTF8&ll=34.800272,-107.882996&spn=1.617033,3.523865&t=h&z=9

18 March 2009

the most exciting part of my spring break

is not grading genetics 202 exams. something like 250 tests at about 30 tests an hour (counting setup overhead... hopefully data entry won't blow that average too much) gives me 8 hours of grading. yep, sounds about right. 8 hours of numbing repetition, some students bright, some cleuless, most somewhere in the middle.

in an interview, the famous evolutionary biologist remarked that patience is necessary for science (manipulative paraphrase, that). paint me red and call me a scientist in training. patience and repitition are by no means my strong points!

17 March 2009

waiting for a sandwich

i'm presented with this jem of modern commerce. yes, the white can on the right actually says "free cocaine"... what will these folks think of next? fat-free heroin?

its the little breaks in life, waiting in line, for laundry, short enough to pause but not long enough to do anything useful, that sends these strange little missives out into the ether...

and yes, the lack of cut-and-paste on this phone is truly a sorrow.

12 February 2009

darwin continued - see previous post first!

It gets weirder. Evidence that females prefer manly men when fertile, and caring men when not... Females, like the nest-robber bird, can see big gains by capturing the choicest "extra-marital" sperm for babies, and getting the hubby to feed and cloth them.

"choice" men, for their part, can gain from this arrangement if they can detect fertile women.... or they can lose, unless they guard the "old lady" from the "wolves". my quotes.

the cost-benefit matrix is pretty simple - all women benefit from one caregiver and one or more hunks, same person or different. some men benefit from caring for one female, some from sleeping with many and caring for one or none, and some take care of others' kids!

Darwin's are examples of theories so clearly articulated as to be self-evident to the receptive listener (though he provided heaps of evidence in support thereof). Here too i see sense. The bar is the microcosm, & experiment bears it out. My fave - fertile fems prefer smell of symmetric males.

11 February 2009

Darwin Day Dr. Thornberg and the evolution of human female sexuality

By luck or by fate, his talk was moved and i managed to catch it today, the day before Darwin's 200th birthday. It's still blowing my mind.

Jumping ahead, humans are the only known species in which females don't advertise fertility, In fact, it seems they hide it.

What better place to observe female fertility concealment and mate guarding by males than at a bar. -- Ogg's ugly step-child lives on

For years i compressed music into ogg vorbis, before ultimately admitted loosing the device-war. Ipods don't play ogg, which sucks. But i have no control over Apple. (I can tell old age is coming quickly, since i don't really care too much about things i can't control anymore. It's the things i can control that i can regret at my own leisure). Drawing similarities between ogg's parent organization,, and OLPC, is tempting. They both promised to save the world in the face of staLinktic, property-ized, inferior technology (mp3 for the former, something more amorphous for the XO). They both were non-profits that, to an arguable extent, over-sold and under-delivered. The OLPC is (mostly) dead. Long live Pixel Qi. Ogg Vorbis is (mostly) dead. Long live Flac. Flac is my new favorite format. The compressor is blazing fast compared to lossy compressors like mp3 and ogg vorbis - limited, seemingly, by disk I/O. As a format, it seems to do everything better than WAV, while consuming a fraction of the space. I can't seek through them, they can't contain the most basic of meta-data, let alone real honest-to-god ID3 tags. With blank DVDs the price they are, and lossy audio codec wars heating back up with AAC, AAC+, etc., i'm stashing "the goods" away in lossless flac for future transcoding to whatever the heck i want, as needed. ----- edit: The above is a bit too harsh on, i suppose. After peering around, the have a plethora of codex alive and kicking - Speex, OggPCM, a low latency format, and HARK! Theora just hit 1.0 with a $100,000 grant from Mozilla. Holy crap! So where does that put us? The ipod video *definitely not* supporting Theora? I'm not talking about the Ipod because i have one or love one. I'm talking about it because people buy them and use them in shockingly large numbers. Firefox is capturing marketshare, and is a good vehicle to consume Theora on. Still, what format plays on the device that fits in someone's pocket has a huge impact on the usefulness of the format -- and i don't expect lossless video, really ever. What would be the point? What i really want is programmable hardware. I don't want use my laptop as a phone or an alarm clock! But I can't really program my alarm clock, let alone my phone, and that really bugs me. So, as a final and decidedly asymptotic aside, i want to mention that intel just announced an upgrade of it's Rio Rancho, NM chip fab to 35nm process (yes, there's sometimes real news in the Albuquerque Journal after all...). I mention this to highlight how few nanometers there are between 35 and 0! The race towards high transistor density is grinding towards completion. I hope (though i'm not holding my breath) that we're approaching a new era of *smarter* hardware, not just blazing fast oh-my-god-so-much-in-a-tiny-package hardware -- and my first criteria of smart is *programmable*, making the format wars obsolete. How'd'ya think big brother would feel about that?

05 February 2009

sleep cont

1 dropperful, twice a day. It's deep red, a tastes a bit like sunshine, in an earthy sort of way.

Superifially, i feel more relaxed. I'm still not "thirsty" for sleep, 6 or 7 hours seems to do me, which is a bit surprising. This morning, though, the dreams. I was in a hurricane in coastal alaska. Don't ask me how... Not scary, more like thrilling, watching the waves build. Then the eye came over, and i ran out into the sudden clear, giddy. I've always wanted to see the eye of a hurricane.

I feel refreshed. The sun's out. I'm glad that, so it seems, the worst is over.

On Seasons and Sleep

"Sleeping is my hobby"

That quote from one of my bosses. I tend to concur. In the runOup to the winter solstice, i found myself with an insatiable hunger for sleep. 9 to 10 solid hours, day after day. It was magical & comforting & confusing all at once. I could weather a single night of 5 hours of sleep once a week perhaps, and then i had to hibernate. Any less sleep & i soon became a zombie, walking brain-dead.

The sun started coming back, the weather became mild, and the semester started. That last one, i'm sure, affected me most in the short-term. The sudden rush of people, ideas, and deadlines was pure overstimulation. For days at a time, i was awake at night, restless. I lay in bed, closed my eyes, and opened them a few hours later. It's not that i was "trying" to go to sleep, There was simply little sleep to be had, and little rest in the sleep that came.

I started to fall apart a bit.

I started on St. john's wort tincture last sunday. Frsh stuff, made in town.


03 February 2009

What i use, and how

I've been trying to set up my first dual-screen set up, and make it ultra-sweet. I'm using ubuntu and openbox, and i find myself searching for and rediscovering sites and techniques, along with new ones. So, here's a quick document of what i'm using on my desktop! First off, my two favorite desktop art sites are here - sooooo nice There's a nice nvidia card in this machine, so I can use the "nvidia-settings" program to set up twinview super-quick to have 2 separate X displays. To run a program on a particular one, i just precede the command with DISPLAY=:0.0 One remarkable discovery was switch2, which handles gtk themes. I'm a black-background fanatic. i can't believe i didn't find this earlier. i always assumed that the window manager handled coloring inside windows, but *obvious in retrospect* that's the application's job, with help from gtk. Yeeesh, learn something profound with each new install! I picked up some themes from here:, though it took me a while to figure out how to use them.... sigh. I settled on a theme called "kore". I really like it's Qt firefox buttons, and rounded everything. I'm using .xsession to start and position everything - using gdm, I select the "Run Xclients script". This is ***far*** from counter-intuitive. So, here's my xsession, that points out a lot of the programs i settled on... DISPLAY=:0.1 openbox & #### i have to start one on each display #DISPLAY=:0.1 ggl-gtk & ### google applets, don't work for some reason xmodmap -e 'keycode 66 = Control_L' & # Make capslock a control key xmodmap -e 'clear Lock' & xmodmap -e 'add Control = Control_L' & #DISPLAY=:0.1 gkrellm -c c2& DISPLAY=:0.0 feh --bg-center ~/.config/openbox/Underwater-City_1600.jpg ###from DISPLAY=:0.0 fbpanel & ### supports transparency! DISPLAY=:0.0 gkrellm & ### all-in-one monitoring! DISPLAY=:0.0 firefox & xscreensaver --nosplash ### i use this to lock screen DISPLAY=:0.1 xfce4-terminal --geometry 85x31+0+0 --hide-borders --hide-menubar & ### look ma! a terminal!!! #DISPLAY=:0.1 xfce4-terminal & DISPLAY=:0.0 amarok --display :0.0 & DISPLAY=:0.0 exec openbox Here's the interesting screen and here's where i do all the work - no borders, no scroll bar, just the tab indicators at the top. the mouse wheel and Ctrl-Shift-Up still scrolls, and the X paste buffer does it's duty. Hmmm, looks like gkrellmd is doing WAY more work than it needs to... For my part, real work was obviously lacking so far today! Yeesh, let me count the ways i'm not doing work... 1,2,3,4, a, b, .... -

25 January 2009

Tech Withdrawal and the Ebay Wall of Shame

I bought a used LG vx9800 phone on ebay from a flesh-and-blood human (not a mega-seller) a few months ago. I love it, and I've become melded to it, borg-style, since then. I lost my phone charger about 2 weeks ago. My phone died a few days later. A day or two after that, I started retracing my steps to find it, to no avail. Now i'm, for all practical purposes, a cripple. I'm reading scientific papers and hitting upon words i don't know, and I have no google sms dictionary to rescue me. I can't send myself deadline reminders, or post half-useless ruminations from the coffee-shop while waiting for an electrical outlet to free up. As it stands now, I'm running an electrical cable to my laptop across a busy coffeeshop isle, and i have to re-plug it in after it's kicked out every 5 or 10 minutes... In a desperate attempt to return my life to normalicy, I turn to ebay to get a decent-priced charger. Yet I made the not-uncommon mistake of going too cheap. 3 chargers for $10, shipping included. I figure if one's a lemon, then I still have 2, which allows me to lose one and still have a phone. Nope. They all suck. Sure, I know they're going to be ultra-cheap, but they should work, right? Wrong. They're effectively designed *not* to charge my phone. Within 5 minutes of charging, the phone says "charge complete", and it's obviously not. ( I should point out that a bad charger can be worse than no charger at all (in a sense). A mis-behaved charger can overload and overheat the battery, essentially destroying it in a surprisingly short period of time.) In short, I should have known better. On a related note, ebay's profits from are down steeply for the year ( see here). Paypal and the more recently acquired skype, along with advertising, are holding the dogs at bay for now ( see here ). It's shit like like this that is eating ebay alive from the inside. Here's where I bought my charger. From the looks of it, they're rapidly shoveling ultra-cheap Asian electronics to market, getting a 99.2% approval rating on enormous volume, which means lots of unhappy folks in absolute numbers. Here's one good post that addresses their current crisis ( see here ), but it looks like a *lot* of folks, both buyers and sellers, are pretty pissed off ( see here ) Looking back in time, things get even weirder. Ebay purchased a 25% stake in Craigslist and then sued them??? ( see here ). I've drawn heavily from the NYT here, but the WSJ isn't free... My best ebay purchases, over time, have been second-hand electronics. I regularly include the word "used" in my search terms. There are some great deals out there on second-hand 70's electronics (provided it doesn't cost $50 to ship - an well-made 1970s reciever/amp can easily weigh 40+ pounds). It's like going to a great big yardsale that's open at times other than Saturday from 6am-2pm. What's the lesson here? I re-ordered 2 OEM (original equipment manufacturer) chargers - i.e. they're made by LG. We'll see if this works any better. Still, it's another week before I get the rest of my life back. How many more days before my outgoing voicemail message that pleads, "the fastest way to contact me is to send a text message to this number" once again becomes true? How many days before I'm carrying a 5.2 oz dictionary in my backpack?

12 January 2009

why i'm nocturnal

from time to time, especially after a long interlude of relative peace & self-determination (like the one after the holidays), i forget just how much i dislike crowds & traffic.

then i wake up one day relatively early & leave my cave relatively early in order to accomplish some grand & useful task in pursuit of the higher good, something that involves a business establishment that closes @ 5pm, or requires sunlight.

the onslaught, the horror! where did all these people come from, and where are they going?!

today i checked the groundwater wells down by the river. i can't do it after sunset, not at all. trust me. i tried. it's much warmer in the day, too, &very peaceful and pretty.

getting there is murder, tho.

i go to winnings for coffee and breakfast. its packed. people are talking to me. i'm talking back. why?! i just want to eat and read the paper.

next, bumper-to-bumper traffic on the one ways. where are so my folks going @ 3pm? interstate construction.


09 January 2009

The best/worst sunset in town

Few things hightlight the mind's eyes ability to filter and highlight like cellphone pics. Here's an especially dramatic one taken of the East Mountains at sunset, with a luminously full moon hanging overhead.

This intersection of Lomas and 12th gives one of the best views of the mountains in downtown. Too bad its framed by powerlines and 6 lanes of rush-hour traffic and fumes.

Somehow my mind and my eye are very good at picking out and focusing on the wonder of the sunset-peach-colored mountains and bits of cloud in the distance. I'd linger, but the fumes of ABQ's numerous beaters, and the frantic pace of the intersection, are harder to ignore. Instead, i snap a picture and trot away down quiet, house-lined 12th which, pleasant as it is, lacks the view.

This pic looks nothing like what i saw.

Human eyes are mechanical and informational wonders (see new years post!), functioning in a wider range of lighting than any camera, and responding faster. Cell cameras are the opposite...

google text

i've been having a lot of fun with google's sms search engine (see it sounds so simple as to be trivial, but its really groovy.

example: text "w zipcode" to 46645, and get this ( for 9 jan 2009):

Weather: Albuquerque, NM 87106 42F, Cloudy Wind: N 19 mph Hum: 42% Fri: 25F-54F, Mostly Sunny Sat: 22F-47F, Mostly Sunny Sun: 25F-47F, Clear

"w", of course, stands for weather. "d" is define, etc. exactly what "etc." is, though, can be ambiguous.

i send two msgs, "help" and "info" and get useful summaries on how to use the system in response (the wonders of self-describing software!), and i learn that a search for "current movie city" should give me local showtimes.

unless, of course, the current movie is a particular oliver stone flick named "w."

it's an great question - how much is the software expected to infer from context, and how much contextual info is the user expected to provide? personally, with a specialized interface like txtmsg where brevity is a virtue, i really like the "keyword query" model, where the keyword can be abbrev to a single letter.

google, if you're listening use m for movie! 20-some letters await good context assignments...

07 January 2009

Real Good Food - Que Huong Vietnaemese

We're cold. It's windy. We need hot salty spicy noodle soup, so we go looking for Cafe Da Lat. It's disappeared off the north side of central and, presumably, the face of Albuquerque.

Just across the street from Talin, hark! Vietnamese with tons of neon beer signs and lots of cars parked in a small lot. Bingo!

Big, exciting menu. Cheap as all get-out, fast service, *strong tea*, and really good hot noodle soup.

No take out menu. Just a business vard that says "the best vietnamese food in town". So far, i agree...

05 January 2009

Vintage Cookbooks from Internet Archive

With my foray back into getting the XO to work, I've been obsessing about ebooks lately. Enter the internet archive. For an illuminating glimpse, check this out:, and more generally,

You can learn a lot from the tabloids...

Myself, I thought she was too fucked up to care...

the wall of "do we get to leave today?"

everything's looking clear so far...



the first in a series of xmas cellphone airport photos

An airport terminal in Houston aka HAI - oh-so-post-modern and, i imagine, rather difficult to vacuum.

An Lutheran-American Xmas Eve

The Xmas Eve Candlelight and Carols service: a right & proper time & place to greet Pride in our hearts' anteroom as it hangs its hat upon our imagined dignity.

a family, holding a hand-lettered sign, on a sidewalk by a stoplight amidst a TN big-box Xmas wonderland. i walk past, across a fast food parking lot, the only other pedestrian on Xmas eve, as a warm, light mist falls. traffic in the fading light. all parties feign nonchalance.

Xmas: putative season of humility. Our gifts are surely never given to impress, to inflate our own imagined goodness! So plump with self-satisfaction that we easily and unironically ignore our last nagging inclinations towards largess and contrition.

And the Xmas carols! Written for leaner, darker times? These songs, out of childhood, now echos and simulcrums of hope. The Culture of Now, superbowl and starbucks and more than 100 million cars in 50 states, already has its own answers, priced to move for the holiday season.

My pride helps me safely scoff.

  • In Cynic am i cloaked;
  • Untouchable;
  • Judging but unJudgeable:
i'm a culture-hero. Like a super-hero, only hip-er.

Rising above it all... (and whatever is it?) Is this why we drink and smoke and fuck? Our culture, historically lacking in uncommercialized transpersonal alternatives. Like fish into a cave. we've slowly blinded to the strength of our self-affirmations. Tag,we're it.

In pain, we suddenly question our inalienable rightness, our moral superiority. Recessions breed innovation; depressions are lulls in which listeners hear troubadours above the Now Culture Roar. Even then it lies, hungry, in wait.

Wine & Communion Wafers: to me the taste, give or take, of roman/spanish/dutch/german/english pillage and war, & the ovens of imperial entitlement. It sounds ridiculous until i try to "eat and drink - this is the body and blood of the lord god, given for you" with a stright face. No one else is laughing. A touch of evil, not unlike bitters, is useful in treating ethical constipation and moral flatulence:
  • a hint of naked envy;
  • a dram of guiltless gluttony;
  • an ounce of unapologetic lust;
  • a pinch of piracy?
Stomachics for our putatively immortal souls, purging us of a great excess of ourselves.

My favorite part of church is that we don't clap for each other.

03 January 2009

OLPC: Why Sugar Sucks - A Really Long List

Why OLPC Software Sucks

olpc's "sugar" operating system takes the cake for the most unresponsive OS ever, and that's saying a lot! this is a pic of me trying to open an activity bundle, an ".xo" file. As i type this, nothing has changed. ctlr-alt-f2-ing over to a real, honest-to-god terminal shows me that unzip has eaten my XO's rather limited AMD GEODE processor for now. WTF?

Steps to cause users great software discomfort:

1. Use redhat's fedora core, and alter it almost beyond recognition - the result is "sugar", an awkward operaring system that steals valuable devel time from the OSS world.

2. insist that every previously-written piece of software must be "sugarized" to work with XO. Generate buzz and intial devel activity that result in lots of orphaned software projs.

3. write a new browser. nevermind many decent ones already exist.

4. Refuse to play nice with anyone, or admit mistakes *ever*

I've been trying to use sugar for about a year now. It's still terrible. It's more terrible than i can summarize in the requisite 1000 characters of an MMS, so i now continue my diatribe from the green machine itself.

Other things i hate:

* No man pages - the most flagrant sign that "it just plays linux on TV"

* No swap, since it has a flash "hard drive" that would be degraded by swap's frequent writing. Too bad linux on 256MB ram *really* needs swap. Eric's performance hacks, especially the incredible compcache greatly alleviate this evil (keep an eye on compcache - changing the nature of linux computing!). Still, it's non-trivial to permanently enable compcache. Another example of "it just plays linux on TV"

* No mp3 capability by default; installation must be done via commandline. I'm no fan of mp3. I used ogg for years before i finally admitted defeat. We're stuck in an mp3 world. As such. the XO is a victim of idealogical zealotry.

* Battery life - claims of 10-12 hours were a major selling point for me. A year later. sugar's best power saving features are still *experimental*, for god's sake! 3.5 hours today from full charge, 1/3 of that with backlight off, reading by sunllight.

* No hibernate, nor the possibility of it. On my thinkpad, i can press a button and suspend my machine to disk, leave it my backpack for weeks, and get my in-use desktop back with the press of a button. With OLPC's emphasis on power, i thought the XO could at least match this feat.

Nope. At best, it goes sleep. Leave it asleep on the shelf for a month or two, and the battery gets so dead that it WON'T CHARGE. A special EC program (batman.fth) must be used to flash the battery. All this requires an easily-obtained developer's key. What's secure about requiring this key???

* Ebook reading still not functional. Flipping through pdfs is painfully slow. Hit the wrong button and *surprise* you're at the end of the book, you've lost your place, and it will take 5 or 10 minutes to get back.

Overall, the XO's software sucks. Bad.

The hardware is amazing. I've put the keyboard under running water. It's 3 pounds, had a nice handle, and a small powerwart. I can read the screen in DAYLIGHT!

So what's a geek to do? Buy a 16gb SDHC sandisk extreme II (15mb/s) card ($40 at writing) and install ubuntu. That's what i'm doing.

blunt objects;
eye trauma;
orbital fracture:

file under things not to do on new year's eve.

after 2 days of seeing double (vertical displacement) a sore left eye, and numbness on that side of my nose, i started to wonder if a doctor might have some wisdom. it was fri the 2nd of this new year, not a holiday per se, so i should be able to schedule some non-emergency visit, right?

wrong on all accounts. another case of "go ask google". after talking to a very nice soul @ NewMexNurseHotline (24/7/365&free!), calling the still-closed UNM student health center, & pres. hospital, the emer room was still my only official option.

30 min of google later, i have found my symptoms and causes described exactly. the eyeball rests in an orb of fragile bones that tend to crack before the eyeball pops under sudden pressure (lucky for us... im not sure popped eyeballs heal so gracefully). unless severe, it heals itself.

so i scheduled an eye exam for next week. i need new glasses anyway. oh, and here's my self-diagnosis.