A poem; a story; a very long song!

Act 1

In the streetlight dawn
I wrote the news today
Into alcoholism it went…
The sound of the collective crumbling
There’s been a break in the continuum
You told me I could order the moon, babe
The threads of an argument lost
It’s what’s left of psychedelia
On this day which began as execution day
It’s such a dream-like view from the ceiling
With a map of the endtimes
We’ll burn this hall of justice down

Act 2

The sound of god is the screech of tires
Like cymbal crashes, would the alarm bell sound?
When we peer into the great unknown
Or is it even in the realm of possibility?
One holy ghost for a home made girl
I stole a page from your book
Was it all for swinging you around?
Faking its way through the hallelujahs
Can we control ourselves for once?
While the rest of the girls go bad
And I’ll quote scriptures
In your faith beside me
Because nobody knows the wreck of the soul the way you do

Act 3

Flipping through the photos they send ya
But something keeps turning you on
Two sips from the cup of human kindness
Next thing you know you are asleep in someone’s lap
Look we’ve seen this kind of thing before
The sadness as it passes
Marking the journey of our friends complete
And I won’t let this happen to you
You’ve turned into someone that you only know
Under an embalmed clear sky
Where the past won’t pay no mind
For you there’s not any warning
Come on, come out of the rain
The vantage falling from the ivory tower

Act 4

The medicine, it still won’t work
We knew that we would always be down
In the shade of the sun
I walked into the local record store
With matter removed of divine dimension
To find you at the pavement
The heatwave humming in the house of cards
I wanted it to be me that was with you
Always hoping for the hot flashes to come
And here’s the mutiny I promised you
These adventures in solitude never done
I’ll give you something to be sad about

Act 5

These things get louder
There’s no other show like it ’round here
You can only cover so much territory of course
She was only ever passing through
The living proof of what they’re calling love
You live for flaming, the attractions new
You’re coming around
Wrap yourself around me in the shadow show
It’s half for me, half for love
You live by another set of rules
And somehow I just knew!
Now that half your life is over, if you’re lucky

 

Leading up to the release of Brill Bruisers, the latest album from The New Pornographers, I was listening to a lot of their back catalogue. Obsessively, I should say. I have a playlist with all their albums in chronological order that I was pretty much listening to on repeat. I saw @ACNewman on Twitter figuring out what songs to play on their upcoming tour and reminiscing about his favourite lyrics. This gave me an idea to compile a list of my favorite lyrics and string them together to form… something. A poem, or an abstract story, or a very long song. Whatever you want it to be. That is what you just read above. I took one line from each song, from studio released albums only, in the order that they play when you listen to the albums in chronological order. It wasn’t always my favourite line, because sometimes it was too hard to choose, or sometimes my favourite phrases spanned multiple lines. But still, it was a fun exercise and I think the result is pretty cool. And yet there are so many other potential combinations that form completely different stories!

 

Update: Act 6

Looking for searchlights leading the charge
I think we could save lives, if we don’t spend them
Here come the fortune seekers
The rites of spring of a lifetime
I wore out grooves sneaking around the servants’ quarters, so
Let them rust, turn to dust
Are you sure we bought the right thrill here?
I was into the never-ending scene
In the high rise of the morning
Some will have to brave the line
But the city at night was not for you
Now that you are floating untethered in space
Think I could change to become what you want me

 

.NET Math.Round() #EPICFAIL

Consider this: you have a number, say 392.865, and you want to round that number to two decimal places. The resulting value should be 392.87, right?

Well… well, yeah… let me just gather my breath for a second here…

If you’re using the .NET framework’s Math.Round() method then boy do I have a surprise for you! The result of Math.Round(392.865, 2) will be 392.86.

This is because .NET uses “banker’s rounding” by default.

You think I’m joking don’t you?

I should be joking, but I’m not… see MSDN for confirmation.

I’ve been writing .NET code for 11 years and I never knew about this until today. I wonder how many calculations (not just mine, but everyone’s around the world) have been and will continue to be incorrect because of this default behavior?

You have been warned.

#MindBlown

VB.NET Replace(Replace(input, “”, “”), “”, “”) issue / quirk / bug

I ran into a very strange issue the other day. This was in VB.NET and as you’ll see in a moment is rather un-googleable. Someone checked in a change that essentially did this:

    Dim strExample as String = "ab"
    Return Replace(Replace(strExample, "a", ""), "b", "")

What do you think was returned?

I expected it to return empty string “” but for some reason it returned Nothing! (?!?)

Yet this returns empty string:

    Dim strExample as String = "a"
    Return Replace(strExample, "a", "")

So it appears that passing in Replace() as the first parameter to Replace() will convert empty string to Nothing. If the result isn’t empty string it’s fine, the issue is only when the result is empty string (which in the real world was only ever an issue if the input string was empty to begin with).

This works as expected:

    Dim strExample as String = "ab"
    Return strExample.Replace("a", "").Replace("b", "")

Crazy.

Advocate For Your Users

This is a long winded IT / Software Development post, so bear with me…

My wife works in the health care industry. We were recently discussing a lecture that she attended where the speaker was a woman with Rheumatoid Arthritis. Now I’m not sure whether the lecture was specifically about this, or whether this was the resulting point that my wife got from the talk, but the point was how important it is for therapists to advocate for their patients. For example, a patient with a complex chronic condition such as Rheumatoid Arthritis could have many health care professionals working with them:

  • A General Practitioner
  • A Rheumatologist
  • An Orthopedic Surgeon
  • A Plastic Surgeon
  • A Gastroenterologist
  • An Occupational Therapist
  • A Physical Therapist
  • A Massage Therapist
  • A Naturopath
  • Et cetera

So who manages all these relationships? The patient…? That sounds absurd! Yet unfortunately that is the reality. These specialists are a mesh network of peers. They do not report to a single supervisor or project manager. The patient/practitioner power dynamic leaves the patient as a “client” and yet if the patient wants a reasonable level of service they must somehow also be the “supervisor” that manages their own care. The patient must do their best to hold each office accountable, to coordinate time sensitive matters, to ensure the offices are communicating correctly and following up with each other.

The patient doesn’t always know who the right person is to talk to about a problem they experience, or what the right thing to do is, or when they need to stand up for themselves and take matters into their own hands. Patients will have varying degrees of knowledge, comfort and experience dealing with their condition (much like users of software have varying levels of technical knowledge, varying willingness to ask for help, or the desire to share their opinions about the software to improve it). Most patients either can’t or don’t know how to manage their own care, meaning that the best health care professionals are the ones that advocate for their clients. The ones that go the extra mile to try and help their clients navigate through the sea of red tape that is our medical system.

Continuing with this patient scenario, here is a specific example: let’s say the patient develops a problem with a tendon and is of the “wait and see if it goes away” mindset but a therapist recognizes that if the patient isn’t seen immediately by a surgeon within a week that the result will be permanent damage to the tendon. I believe it is that therapists obligation to champion for their patient in any way they can! We can’t just assume that someone else will deal with the problem. We can’t just assume that the secretary at the surgeons office knows how little time there is left before the damage is permanent. The therapist must take action and be directly involved in helping the patient move to the next step in the healthcare process.

I can see a great deal of similarities between this healthcare scenario and my personal IT career experiences. While that was a long winded example I think it was important to demonstrate the importance of why someone with domain knowledge needs to advocate for their users. I was thinking about that and how it applies to my job as a Software Developer. I work for a small company, so I’m involved in all aspects of our software including dealing with both technical and non-technical users while performing business analysis, customer support, feature development, customization and system maintenance.

I’ve always felt that serving the client is my primary responsibility. Maybe that’s because I’ve had more access to my user base than other developers may have, but still, in my experience the user always comes first. We’d be out of business if there were no customers. This is similar to the customer service mantra that “the customer is always right.”

Now I don’t know what other developers think of me. Do they think I’m too opinionated? Aggressive? That I’m being difficult? Do I sound like a broken record every time I open my mouth to offer an alternate opinion, champion another change request or when I play devil’s advocate? Who knows. What I do know is that I advocate for my users. I push for a better user experience. I fight for their needs first.

It’s easy to get caught in a trap of this [approach / design / method / technique] will be easier, that will be faster, this will be more flexible, etc. But you know what? I don’t vote for the quick way or the easy way, I vote for whatever is best for my users.

Do you advocate for your users?

Rifflandia 2012 Preview

My excitement level at T-minus two weeks before Rifflandia is getting pretty high. High enough to self produce LOLcat pictures even!

These are the bands I’m most excited to see:

  1. The Flaming Lips
  2. The Jezabels
  3. DJ Shadow
  4. Dan Mangan
  5. Brasstronaut
  6. Mother Mother
  7. Rich Aucoin
  8. Cake
  9. Hey Ocean!
  10. Sloan

You can check out some Rifflandia sampler playlists by day or by venue at rifflandia.tumblr.com.

When the festival comes to a close I’ll report back with my review and we’ll see what blew my mind to move up (or onto) the list, and what disappointed to move down (or off) the list.

Wedding Playlist 2.0

Two years ago today I got married.

Last year, my boss gave me a great idea for a first anniversary gift. I bought a scrapbook, and some supplies, and the idea is to put a wedding photo on the first page and then each year on our anniversary take a photo to add to the book. Bonus points for an activity to do together and one that keeps on giving!

After reflecting on the past two years of married life, I decided to create a new playlist to share with my wife as an anniversary gift. (Do you remember mix tapes? No? What about mix CDs? I’ll admit a playlist doesn’t seem quite as romantic…)

This gesture might not come as a surprise. You may recall I blogged about my original wedding playlist last year and it was featured in a Hi-Fi Weddings post as well. I listen to a lot of music in my day to day life, so I figured why not update my picks with songs that either could not fit in the time we had, or songs that I hadn’t heard yet, or songs that hadn’t been written yet.

So here it is. Play time is 59:31. Happy Anniversary!

  1. Hey Ocean! – Make a New Dance Up
  2. Jason Bajada – The Sound Your Life Makes
  3. The Meligrove Band – Bones Attack!!!
  4. Armistice – Mission Bells
  5. Sean McCann – The Reply
  6. Diamond Rings – All Yr Songs
  7. Hollerado – Got To Lose
  8. Rural Alberta Advantage – Stamp
  9. Said The Whale – The Light Is You
  10. Gigi – Won’t Someone Tell Me?
  11. Hey Rosetta! – Welcome
  12. Rococode – Empire
  13. The Cure – Lovesong
  14. Said The Whale – Loveless
  15. Bill Medley/Jennifer Warnes – (I’ve Had) The Time of My Life
  16. Joseph Arthur – Honey and the Moon

Butterfly Gardens

Today I went to Butterfly Gardens for a recreational photoshoot with Lara Eichhorn.

It was so nice to get out of the cold rainy weather and into a warm tropical environment… even if it was only for 2 hours!









All shots taken with a Pentax K20D, FA* 200mm f4 Macro, with a monopod and external flash.

Gladiolus Macro

I really like this photo that I took last summer:

gladiolus macro

Pentax K20D, FA* 200mm f4 Macro, 1/200 sec at f8 with external flash