When ‘Finder’ gets lost…

crap
That status bar has been spinin for over a week.
Apparently there’s some bug in OSX such that when you enter incorrect credentials for an smb share finder freaks the heck out. There are at least two ways to solve the problem, you can force quit and re-launch finder or kill the processes PID …. I choose neither and just take comfort in the pretty spiny bar. Happy Friday.

Currently

A while back, in that brief span of time when it seemed like everyone had a Xanga, one thing I found interesting on those blog entries was the ‘currently reading’ and/or ‘currently listening’ section occasionally included in posts. So, by way of tipping my hat to that feature…

Currently Reading:

  • Divine Conspiracy (Dallas Willard): I recently finished this one – it was my second read through it, and while I have a few more questions this time around, I still find this to be quite an insightful book and like the emphasis on application to the here-and-now.
  • U.S.A. (John Dos Passos): After a nearly five-month detour, I’m back on track with the Modern Library Top 100. On completion, this will be the 30th book crossed off the list…too bad it’s a trilogy.
  • Don’t Weep For the Demise of American Christianity: Came across this blog post a few weeks ago and it’s a good read…also check out the follow-up post.

Currently Listening

  • Dark Was The Night (Various): A surprisingly good compilation album – solid contributions from Bon Iver, Sufjan Stevens, Feist, Grizzly Bear…to name a few.
  • The Reminder (Feist): I missed this album when it was first released; picked it up a few weeks ago and it’s been in the rotation pretty heavily.
  • All Hour Cymbals (Yeasayer): I decided to pick up this album based on a track from ‘Dark Was The Night’ and like it thus far.

A Reflection on Genius

iTunes Genius that is…a reflection on true genius will need to wait for another day.

When I first heard about the Genius feature in iTunes, I was excited.  It seemed like a promising feature, and it certainly is…but in my experience, it’s still only that – promising.

On a scale of  ‘Completely Clueless’ to ‘Near Genius’, I would rate the current feature as ‘Moderately Good Guessing’. I’ve had playlists that were quite good, but I’ve had an equal number, if not more, that cause their share of head-scratching. Some disclaimers:

  • I only use the feature on the iPhone (my main avenue for listening to music)
  • I stay with the ‘25 songs’ option.
  • I have not rated a single song in iTunes (do people do that?).
  • I acknowledge that this feature is trying to accomplish something rather ambitious and will develop over time.

That being said, my main gripe with the feature is that it seems to lack depth – I see this in two (related) ways:

  1. Often, the first cut on a playlist is decent, but if I try to ‘refresh’, it keeps about 75 – 80% of the list intact, bringing in only a couple of new songs. Now, I could understand if the artists stay the same and the songs change, but the songs typically do not change? (see point 2).
  2. It prefers the same few songs from artists. Depending on the artist,  I can predict with fairly good accuracy what songs it will include in the list, even if there are plenty of others to use.
    • One concrete example is Sigur Ros – if they are represented in the playlist, there’s about a 90% chance (not kidding) that the song Genius adds to the playlist will be ‘Untitled #5′ – I have 60+ songs from them to choose…where’s the variety?

I will say there are some things I appreciate about Genius in it’s current form:

  • The ‘first pass’ on a playlist – as I said, this is usually pretty decent.
  • Reminding me about some artists I haven’t listened to in awhile.
  • The ability to create an on-the-fly playlist when someone asks for one from your iPod. It helps avoid the moment of panic of ‘what to add?’.  Now, if there’s a poor song choice, just blame it on Genius. ;  )

To end this on a positive note, I’d like to offer a few suggestions for improvement:

  • More depth (see above)
  • Ability to rate a playlist from the iPhone / iPod (i.e. borrow the Pandora idea a bit) and improve based on that.
  • Song-by-Song swap potential (i.e. if the playlist overall is pretty good, but I want to swap out songs 8 and 17, have an option that will allow that).

Any others?

I have high hopes that one day this feature will match the often stunning accuracy of Pandora.  Naturally, Pandora has been at it a little longer, has a slightly different approach (not limited to a local music collection), and offers song-by-song rating. Still, I find Pandora’s selection to be pretty amazing…certainly close to the ‘Near Genius’ end of the scale.

Sometimes Planes fall out of the sky…

Some concerts are just plane fun, others moving and still others profound in that they seam to offer an incredible insight into the artist. A few weeks ago I set sail for Louisville Kentucky to catch a Bon Iver show which definitely fit into this later category. The show was simply stunning; a small, intimate venue, great acoustics and good friends practically falling out of the sky. Before I went to the show I had only seen a few snap shots of Bon Iver and half expected him o be an effeminate, pale, frame of a man who’s every breath struggled against his greater desire to capitulate to his artistic demons. It turns out this could not be further from the truth; he was a large framed almost burley man who just happened to be able to sing soprano. He wore flannel and his neatly trimmed beard on the album cover had become bushy and robust. His demeanor was confident (but not even approaching cocky) and he was able to take himself with a grain of salt as between soulful ballads he would break out with 80’s hair band covers. All in all the show was simply a delight; however, one thing has stuck in my mind, so much this weekend I once again made the treck to Louisville to investigate.
When standing outside of the venue waiting to get in I was admiring the post industrial senory and noticed a tiny plane had apparently crashed into a near by hill. This was really disturbing as it looked like the plane had been stuck there for some time. It is really a situation only a photo can describe.
s8001300

FAIL!

FAIL!

Reflections on Informix Auditing Best Practices

Intro:
Recently a project fell into my lap which presented an interesting challenge; my boss wanted to be able to audit who was accessing social security information in our database. The term audit is thrown about a good deal and can be less than speciffic. Here I am talking about audit in the sense of being able to trace an action back to a single end user. Note my boss is interested in who is accessing this information, not just updating, inserting or deleting this information.

Thus, the interesting bit, we want to be able to track not only the usual inserts, updates, and deletes, we are also interested in tracking selects. It is the tracking of selects which presents the largest problem so I will focus on this issue. I hit the net and did some research. Turns out there are several ways to do auditing with informix.

1. Set up an onalter mask
2. Modify programs to insert into a table when an action is preformed
3. Buy/build a gateway product.
4. Use a trigger

Part 1 Which option to select:
Option 2 is really the best option when one wants to track selects and is running a version of IDS prior to 9.2x, particularly in a high demand environment onaudit masks do not provide the necessary functionality (see blow). It seams to me in all other cases option 1 would create less overhead as using compiled or interpreted code has less of a performance impact than creating an alter mask which can handle specific selects.

Option 3 Is a fine option for lower demand high security heterogeneous database environments. A database gateway is a bit like a middle man between the world and a database. The gateway keeps track of all access to the database both outside of and within the database structure. Gateways are database aware centennials which look for fishy activity and log this activity while (depending on product) responding to such activity. A good database gateway can take evasive steps to alert database Admins of policy violation or suspicious behavior. Unfortunately a gateway can stifle traffic in high demand environments and is another product (often a dedicated peace of blade hardware) to maintain.

Option 1 is perhaps the most elegant and easy to maintain option for exceedingly simple low use database structures. An informix command, onaudit provides a great way to inspect insert, updates and deletes across an entire database. onaudit creates a plain text log file which is rotated per Linux’s normal log rotation methodology.

However option 1 dose not work with selects and can not be isolated to a single table or row thus it dose not meet my bosses criteria. We could, however, enable onaudit to track every time a table is accessed in a database. This is relatively problematic as it would produce LARGE log files which would then need to be parsed. The log files could be parsed with an external program and its data inserted into an audit table; once the external program is executed and the data would be exported to an audit table the log file could be removed and the onaudit process could be restarted with the -n option (which would create a new log file). Needless to say there is a HUGE performance (specifically I/O) downside to this method but if your using a version of IDS prior to 9.2x I see few other options aside from changing your code base.

Part 2: What we chose:
If you are running a version of IDS greater than 9.2x (which we are) you are in luck as triggers can be created which will also monitor selects. This process is a sort of a modification to option 2. Now as a rule, the RDMS will do something each time a select is issued on an SSN in or outside of code.

A trigger is a defined action which is executed when an operation on a table is invoked. Prior to IDS 9.2x these operation were limited to updates, deletes, and inserts. It should be noted triggers can entail a rather large performance impact as they will be executed (and thus preform at least one operation) for each specified action on a table. In our case we are interested in gathering information on who selects social security numbers from our social security table. So I created a trigger something like

CREATE TRIGGER ssn_audit SELECT OF row_interest ON table_interest
REFERENCING OLD AS table_interest_alias
FOR EACH ROW (INSERT INTO ssn_audit_table
VALUES(table_interest_alias.item_interest, table_interest_alias.other_item_interest, USER, CURRENT))

This trigger now insert some data, a user name, and the current daytime into a table each time row_o_interest is selected (or sub-selected).

The Castration of Uranus

Brown and sticky bubbles spoon the way I love you.
And this is the way it is you see forever and ever
we twist into a single sun rise;
to be near to you and hear the birds sing
I will never and never forever
with every intervention a love song
lets just fuck and see what gets born
so come on pretty lover make your love to me
come on pretty lover lets just wait and see
as some day my pain, will fuck you clean

And In the morning I call you, sitting all alone – you hang up the phone
And silence my game, swing while you scream
The world is blue as the story comes to rise up
What might have been; Don’t bother me
If it were a little salt the wound would begin to heal
Staring at the sea all around and who the hell am I
Some day my pain will no longer bother me as what might have been will never be

the sound of a cracked egg

like any running pain it hurts most when you stop and try to catch your breath. Life is beautiful as long as the trees are whizzing on by; drowning in a sea of colour a chest strains and the ropes are pulled ever tighter.

I’m From Vermont

She keeps a little shop and sells trivialaries with common conversation.
Its a little known secret her eyes are barley a hint of her depth as she sips
maroon wine in lonely seclusion. When asked who he is he simply recites his job description. And she sizes him up and asks ‘Why me’. The corks pop and the blond parade of barbie boobs and forced sigh’s reveal its all a farce.
Then she realizes, ‘I’m from Vermont’.

Thoughts on the eve of an ignogration

Standing in the middle of Cheeseman Fellowship Hall;

I hold the video camera as tears spread on everything bagels and images of those Haitian’s and there presentless Christmas scare the living gosh golly bejebishites out of any good god fearing republican who never drink the water but will pass the plate to drop the bombs of liberating world charity wraped plastic consumerism; once again crushing the temples of a country we raped oh so good. Oh yeah, I hold the video camera and enjoy my cushy apartment and clean drinking water that god bestows upon this our righteous and blameless nation(al fruit company) for the price of bananas is damn cheep and allows us to fill those toyboxes full of misguided hope.

It will all be over tomorrow when the democrats take office and those lip stretched possibilities meet hope-filled cupcakes in a new era of transparency and openness our good intentions posted all over the Internet and I filmed it all; hot steamy action in this only and indestructible moment we are flung into the next never knowing who we will fuck over next.

The War on Drugs is a sham

just a few milligrams fly right by
the speed signs stop; justice and brown powder
unite suburban rebellion with frying pan eggs
Its over easy man; the way power croups and capitalism eats its self.
So thank you Mr. Blue Grass towing service man for towing my car and not maintaining your signs.
Thank you Mr. Six Pack Plumber ass cracked pipe simmering baking soda and the war on drugs
Here’s to you social disasters and the gaping hole in our city.
And here in the Centerpoint we keep our dead animals in toy boxes like every good crazy person would
Then here in our Lexington I realise, the point of moving through life, and this unlimited death ..is to find it.