I’ve noticed that people have the illusion that leaders are these “idea people” with throngs of followers who just do what they are told. Maybe some leaders work that way, but that isn’t true leadership. I’ve found that effective leaders identify people who are passionate about a shared goal. Organizations are effective when the people in them have personal goals that overlap with the group mission.

Sometimes people approach me with ideas that they think I can make happen as a leader. I’m excited when it is something that they are personally passionate about and want to help make happen. I’m dismayed when they think they can outline an idea and I’m going to independently make it happen — as if I don’t have three thousand ideas that are queued up just waiting for a few hours of spare time or the right collaborator to make happen.

I think the way media portrays leaders is unfortunate. I understand why it is convenient to focus on speeches and interviews with people at the tops of organizations. In many ways, it is the leader’s responsibility to communicate the impact of the work that all of their folks are doing, so folks can focus on making awesomeness happen. I love it when reporters dive into the details and find the people who make the the things, write the code, organize the events, and write the words. We need leaders to rally around and gather teams who will work better together and create a bigger impact than each individual would alone.

I found myself confronting some unexpected truths in Ruby the other day…


2.2.2 :001 > 1 and 0
=> 0
2.2.2 :002 > 0 and 1
=> 1

In most programming languages, 0 is false and 1 is true, or more accurately we say that 1 is “truthy.” In popular culture, truthiness is believing something to be true from gut feelings, rather than relying on those pesky facts. Google defines truthiness as “the quality of seeming or being felt to be true, even if not necessarily true.” This is closer to what programming languages mean. 1 is 1, but it treated as true if used within a conditional.


2.2.0 :001 > 1 == true
=> false
2.2.0 :002 > if 1
2.2.0 :003?> puts "1 is truthy"
2.2.0 :004?> else
2.2.0 :005 > puts "this doesn't happen"
2.2.0 :006?> end
1 is truthy

In Ruby, every number, every value is an instance of an object:


2.2.0 :007 > 1.class
=> Fixnum
2.2.0 :008 > true.class
=> TrueClass
2.2.0 :009 > "potato".class
=> String

So every object, is a thing, which has a value and evaluates to true in a conditional expression, which means 0 is truthy…


2.2.0 :001 > if 0
2.2.0 :002?> puts "0 is truthy"
2.2.0 :003?> else
2.2.0 :004 > puts "never gets here"
2.2.0 :005?> end
0 is truthy

So, both 0 and 1 will act like true in a conditional. @MarmiteJunction notes that this works completely as expected:


(1 and 0) ? true : false #true
(0 and 1) ? true : false #true

The last piece of the puzzle is the behavior of and which is one of the “boolean operators” and I usually think about them as evaluating to true or false, but that’s not exactly how they work.


2.2.0 :006 > "cat" or "dog"
=> "cat"
2.2.0 :007 > "nuts" and "berries"
=> "berries"

Each of boolean expressions above are truthy, but are not true. The OR expression will return the first truthy value, and the AND expression will return the last one. In other contexts, I’m used to the commutative property of AND and OR, but in Ruby that’s not at all true:


2.2.2 :001 > 1 and 0
=> 0
2.2.2 :002 > 0 and 1
=> 1

hmmm.

Images and sound, which respond to our touch, create the feeling that we are interacting with something that is actually there. We talk about going to a web site. We tap buttons, open folders, and select choices from menus, and aren’t bothered by the inconsistency with real world analogs as we drag windows and surf the web.

software-is-not-real

I don’t know the story behind this image sent to me via Twitter by “Brett” — is it an original in drawing or native digital creation? or were 140 characters too short for attribution?

There is a strength in the Tim Berners-Lee vision of the web as “always a little bit broken” allowing for us to post these disconnected fragments which cause images and video to act like language, spread virally and owned by no one, in direct contradiction to our copyright laws. I also feel a loss that there was never widespread adoption of the Ted Nelson model that he envisioned when he coined the word “hypertext” — every link could let you dive into its source and references were a “transclusion” — instead of copying, everything would be by reference.

We need to intentionally draw real world connections in this strange, fictional world of software we create. Even the so-called users of software create this world of code and data that we inhabit.