Sunday, July 27, 2014

Replacing a Broken Camera

I'm thinking of the hardships endured by the Five Broken Cameras documentary filmmaker and his friends, compared with my relatively easy life.  So I had a scratch on my Nikon Coolpix.  That's hardly a super serious problem is it?

Yes, it was messing with every picture and for a guy like me, who uploads by the thousand, that seemed like a big deal.

But that's the kind of problem people shouldn't have to complain about.  Right?  Lets get real here and make fun of ourselves and our "first world problems" (his last problem looked legit), if we happen to be lucky enough to be in danger of spoiling.

The new camera is another small digital point and shoot, a FujiFilm XQ1 with lots of cool features, though less of a zoom than the Nikon Coolpix S9300.

Built into this little jobber, not an accessory, is an ability to share pictures with my Android smartphone, meaning it's even easier to upload from the field, without a computer as an intermediary and over the Verizon network.

Another first world problem is I'd left my brief case with another Wifi device at the boat moorage yesterday and had to go by the marina enroute from the airport (where I dropped off an OSCON attendee) to Forest Grove, where I was to (and did) retrieve Carol (my mom) from Pacific University.  I shared an outdoor lunch with the annual gathering of North Pacific Yearly Meeting.

Old Germantown Road made for a good Meeting for Worship for Driving (MfWfD).  I'll be doing quite a bit of driving over the next few days, if call goes according to plan.

Good seeing Tom Whittaker, Tom Head, Nancy Irving, Sarah Michener, Clint Weimeister and Gayle Matson.

Oh right, and I also replaced my Skullcandy headphones with more of the same brand, purchased at Fred Meyer for about $10 on sale (no microphone on this model).  Maybe the old ones had been through the wash or something, but one ear had gone flaky.  Nothing lasts forever.

Thursday, July 24, 2014


If you've not been to an OSCON, you might find it surprising how many talks are of a "psychological" nature, meaning about inter-personal skills, not in the sense of compensating for not having them, but in the sense of being a community manager or developer evangelist for a global company that depends on Agile / OSS for strategic advantage.  Neo4j is such a company, and their developer evangelist did a dynamite job outlining exactly what the job is, using graph theory.

Older companies may not appreciate what a "community manager" even is, as that sounds like some touchy-feely PR job, some icing on the cake associated with lobbying and schmoozing with members of congress.  There's some of that "special interest" or "lobbyist" flavor, for sure, but you're more serving a team of expensive race horses, your developers, your sled dogs, who are pulling this chariot towards fame and glory, or just plain old towards helping people, making life less of a drag.  Graph databases are doing that for people and Neo4j is a serious player.

Another talk was on Dealing with Disrespect, by a seasoned community manager with Ubuntu on his resume, one of the premier users of, and of course developers of, free and open source software.  He sketched a sorting system of three buckets:  agreeable, disagreeable and unacceptable communications, and techniques for dealing with the disagreeable most especially, as that's where attention to context matters.  Get beyond just content and tone.  The basic posture is empathy.  As an empathetic attender to communications, you're less likely to just go off in the face of provocation.

What I found refreshing and agreed with in this talk is we're not attempting to criminalize offending content, such as satire ala South Park or whatever.  Offensive content, like toxic acids, has its place on the chemistry shelf, as an ingredient.  The public spaces are free to protect themselves from too much "push content" but if you wanna watch HBO, that's your business.  Content providers are not always trying to reach that "agreeable to everyone" market, or only are some of the time.  That's all my spin on the presenter's remarks, what I took away as validation, given my content is sometimes offensive.  It's not like I didn't put that skull and crossed bones on the bottle (smile).

I stayed at my workstation Thursday morning (atypically a last day, as the usual format is Monday-Friday, not Sunday-Thursday -- next year back to normal), getting back in the groove.  This was not vacation time for me.  On the contrary, it was double duty.  True for all in the mentor pool who manned the booth (Kelly, Patrick...).  Our main booth guy is not a coder by training but is fairly able to converse in Portuguese, Russian and maybe some other stuff.  Given i18n was a theme for us, he was just what we needed from central casting.  I sat around looking silvery gray and professorial, in my blue blazer (no elbow patches).  I brought Naga (@psf_snake) in her special carry-on and draped her over the OST counter on Wednesday.  I'm talking about the Python mascot in past OSCONs (she'd flirt with the Perl camel), this year mute on Twitter as I'm no longer her puppet master behind the scenes.

Tuesday, July 22, 2014


I've got a different angle on OSCON this year, from behind a booth counter some of the time, also in front of a TV camera in booth 818.  OST is booth 717.  We're well integrated into the O'Reilly ecosystem, with the mother ship booth to our west at the Expo Hall Center.

Our program opened with a series of videos encouraging OSCON attendees to strive towards being "full stack engineers".  What that means is awareness of one's place in an ecosystem.  Know about how you and your skills fit in to an environment.  Basic sense making, but in geek parlance.

Bluehost and HP are especially visible as one comes in the door.  Both gave keynotes this morning, Bluehost in tandem with Raymond Henderson of, a latter-day CUE (where I used to work; Center for Urban Education) in the sense that it helps non-profits leverage free and open technologies (CUE was at its peak prior to Open Source going gangbusters, around the time of the IBM PC).  IBM was here in force this year as well, with Softlayer. will get you some reliable hosting for your footprint in Cyberia, as long as you meet specific criteria.  Your ability to do quality bookkeeping is relevant.

The keynotes were somewhat psychological with the theme being inclusivity, the flip side (as in, same thing as) diversity.  What about children?  What about introverts?  Say what?  The talk on "coming out as an introvert" by Wendy Chisholm was quite ingenious in taking the term "coming out" -- usually associated with gender -- in a different yet related direction.

Wendy, an Accessibility expert, had found a way to pace herself that didn't go against the grain so much, in terms of her need to be alone with her thoughts and process in tranquility.  Someone with a daily meditation practice would sorely miss it for the same reason.  In allowing for her own needs, her stamina had greatly improved.  She encouraged conference attenders to attend to their own inner rhythms and maybe cutting back on stimulation as a way of engaging more fully.

We also heard from the younger generation, from a precocious programmer with parents up to providing guidance, and a community smart enough to appreciate his talents.  These factors:  access to the tools, guidance and encouragement, had led Shadaj Laddad to achieve maturity as a coder, with adult-level skills.  That he had done so much work in Scala was something the audience could appreciate.  Did I see Python code with a decorator aimed at adding trail call recursion of some kind?  That turns out to be a deep topic in the literature I was unaware of.

I took the nap lady's words to heart.  Not right away, as I had booth responsibilities and time on camera with Patrick and Steve, but later.

Will Marshall of Planet Labs rounded out the inwardly focused talks, plus HP on OpenStack, by sharing about his plans to open global data to user via some API. He already has a lot of satellites out there.

Carol Smith from Google, another Diamond sponsor, along with Citrix and HP, recapped ten years of Summer of Code.  Much has been accomplished.  The "design science revolution" (Fuller's coin) lives on.

Sunday, July 20, 2014

Scala Tutorial at OSCON

My notes from Get Started Developing with Scala by Jason Swartz and Kelsey Gilmore-Innis.

This is my day for JVM languages i.e. languages that compile to the Java Virtual Machine.  Clojure and Scala both fit that bill and have other features in common as well:  immutable data, functional programming, first class functions.

I opted for this tutorial based on a lunch conversation at one of the i18n tables and showed up with nothing working or even installed.  One of the minders got me up and running, getting stuff off a memory stick.

Turns out my version of Java was too old on the OST Mac Air.  I'm grabbing jdk-7u65-macosx-x64.dmg.  That worked.

Now I have a little web servlet going, controlled by the tutorial code.

Starting SBT for OSCON Scala tutorial
mackurner:scala-tutorial kurner$ ./ 
Starting SBT for OSCON Scala tutorial
[info] Loading project definition from /Users/kurner/Documents/scala-tutorial/project
[info] Set current project to Scala Tutorial (in build file:/Users/kurner/Documents/scala-tutorial/)
> console
[info] Generating /Users/kurner/Documents/scala-tutorial/target/scala-2.10/resource_managed/main/rebel.xml.
[info] Starting scala interpreter...
Welcome to Scala version 2.10.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_65).
Type in expressions to have them evaluated.
Type :help for more information.

scala> "Hello, Scala"
res0: String = Hello, Scala 
scala> var started_programming: Map[String,Int] = Map("Kirby" -> 24, "Odd" -> 25)
started_programming: Map[String,Int] = Map(Kirby -> 24, Odd -> 25)

The language is not entirely unlike Java, statically typed, object oriented, but is more spare, more "expression-oriented" according to our presenter.  Someone who knows Java might move to Scala next.

Like Python and Clojure, Scala has a REPL (shown above).

I'm sitting next to a man named Odd Are. I like that.

For those who know Python:

>>> list(filter(lambda i: i < 3, [1, 2, 3]))

is the same as

scala> List(1, 2, 3).filter(i => i < 3)

or even

scala> List(1,2,3).filter(_ < 3).

Both Python and Scala feature top-level functions, meaning you're free and encouraged to pass them as arguments on occasion.  The methods map, reduce and filter give you a basis for functional programming.

Our presenters recommend easing into Scala by using it to write tests for Java code.

Recommended followup tutorial:  The Neophytes Guide to Scala.

OSCON 2014 Tutorials (Day 1)

My notes from: The Simplicity of Clojure presented by Clinton Dreisbach and Bridget Hillyer.

Collections in Clojure:  Vectors, Lists, Maps, Sets.

Vectors are heterogeneous, as are all the collections, so like Python's lists. Also 0-based.

(nth [3 6 9] 1) ;=> 6.

A List is a unit of execution in that the first element is the function. Above: [3 6 9] is the Vector whereas (nth ...) is a List.

Collections are also immutable, like Python's tuples, so (conj (list 1 2) 3) ;=> (3 1 2).

Maps are similar to Python dicts.  Why are they associative again?  Sets (#) are like Python sets: no duplicates

:keywords have a magical property of serving as functions. (:a {:a 1}) ;=> 1.

A :keyword is a symbol that evaluates to itself.

Function names (symbols) are common to all the collections wherever that makes sense.  This has to do with their all being Sequences (not just Collections).  The laziness of the Sequence should evoke Pythonic ideas of lazy iteration, as well as the general notion of sequence.

Strings are not sequences but get coerced into same in using sequence functions:

(first "this is it") ;=> \t

...where \t is the character type.

Python's special names enforce a kind of uniformity across types.  We get to the syntax level with __getitem__ and __getattr__ i.e. obj[x] and obj.x are things we define within the obj type.

First exercise (I'm in a tutorial):

(list "Professor Plum" "Mrs. Peacock" "Mr. Green" "Mrs. White" "Colonel Mustered" "Miss scarlet")

(nth (list "Professor Plum" "Mrs. Peacock" "Mr. Green" "Mrs. White" "Colonel Mustered" "Miss scarlet") 3) ;=> "Mrs. White"

They had us download LightTable to follow along.  Here are the slides.  LightTable works with Python as well!

I met up with Tatia and Ed Leafe at the break.  Ed shares my FoxPro lineage.  Tatia is fresh off the plane from Brazil.  She's a Pythonista, like Ed and myself, fluent in both English and Portuguese.  We compared notes on Ruby (another OO language like Python) and clojure (functional, more LISP-like).

In a local scope, function let takes a Vector to give its bindings.  defn contracts def and fn.

Thanks to prefix notation, the hyphen is fine in variable names (symbols), no confusion with the minus symbol.

Polymorphism:  how?  If you don't have objects.  multi-methods maybe.  Helps to know some Java maybe as defrecord relates to Java's classes and interfaces.  "Make a Piece protocol" to model chess pieces, say with possible-moves and can-move? as methods.  OO thinking involves dispatching.

Functional reactive programming:  Javelin treats your data like a spreadsheet.  Check core.matrix for an example of professional clojure code.  What's ClojureScript?  Read more at

For further reading:  Clojure for the Brave and True.

Friday, July 18, 2014

Wanderers 2014-7-9

This blog post is somewhat out of chronological order in that I've already blogged about a subsequent Wanderers meetup I attended (my practice is to cover only what I witness myself), but then some presentations may take longer to think on.

Anyway, Milt Markewitz treated us to some Kabbalistic esoterica last Wednesday, which he has done before, providing a neuro-scientific context:  ancient languages, in providing alternative mnemonic networks (semantic networks) may pop us out of our reveries and provide a fresh view.  When scanning invisible landscapes for better ways forward, seeing with new eyes as it were (per the concept of "aspect shift" in Wittgenstein) may sometimes prove our salvation.

Milt's chosen specimen ancient language was Hebrew.  Around the Blue House the I Ching tends to perform a similar service in providing doors to a collective unconscious in the Jungian and/or Nietzschean sense.

For some reason I associate Jewish mysticism with my Quaker animism, meaning the non-human aspect.  Treating non-humans with respect, as Wanderers among us, worthy of their own records and chronologies, cemeteries, is one of my themes.

We lost two of our non-human community shortly after this talk, a beloved dog named Blueberry and a cat of unknown name (but appreciated) -- which may be why this theme is so close to the surface.

Saturday, July 12, 2014

Dawn of the Planet of the Apes (movie review)

I've been an avid Apes (Planet of the) since the first one, with Charlton Heston and Roddy McDowall. I've even been known to read the books.

This newest addition to the franchise is excellent in that it continues to give the apes real personalities, no less than it gives them to humans.  The camera / observer is perhaps an angel from another planet in the sense of its sympathies going both ways.

The movie might be construed as pacifist in its message, even while the inevitability of war is its subject.  Fear and jealousy drive both sides and the lesser characters, the non-heroic, are the first to succumb.  They spread the seeds of war to others, including through treachery.  An old pattern.  The analogy of the physical virus with the mental one is crystal clear.

The facial expressions of anger, giving vent to the inner demon, stir in both human and ape alike, a first symptom of the infection.  I'm thinking of Tich Nhat Hanh and his challenge to followers to foreswear anger.  One might imagine this movie on his syllabus.

The choreography and computer graphics (visual effects) are spectacular.

Flavors of 12 Monkeys, Jurassic Park, Cabin in the Woods and several others, which isn't to say anything pejorative, on the contrary.

That the movie was brave enough to use subtitles is a big point in its favor.  The movie takes itself seriously enough to make real soul searching possible.  There's not much gratuitous levity.  The situation is dire.

Sunday, July 06, 2014

Exploring Cultural Heritage

:: all you need is cash ::

As a teacher of the Python computer language, I consider it my professional responsibility to fill in a lot of the gaps in my knowledge regarding Monty Python, for whom the language was named.  I found out watching the five hour bio of George Harrison, Life in the Material World, that he'd been instrumental in getting Life of Brian out there, after movie executives flinched at the South Parky content.

Speaking of South Park, that's another edgy cartoon I've been remiss in watching enough.  I watched the two part episode where Tom Cruise and other celebrities, tired of being made fun of, attempt to capture whatever mojo they can from a certain religious leader whose picture must not be shown in cartoon form.  For a brief shining moment, the scheme appears to work, and Tom is happily immune from spoofing.

Anyway, I hadn't seen the full mockumentary, All You Need is Cash, until last night.  I completed viewing it, with another Rutles fan, after taking the bus home from the Blues Festival and Don's boat (in the water again, after months of dry dock repairs).  George Harrison himself plays a role in this movie (can you find him?).

Tuesday, July 01, 2014

More Andragogy

I've been "watching" the World Cup, sometimes actually watching, on HDTV at a sports bar, e.g. Jolly Roger, while waiting to help on a move of some archive, but other times only hearing, being at the wrong angle to view, but hearing the cheering, the sounds of an engaged audience.  Such was the case at Horse Brass, where we sat around the corner from the TV (HD).

I've been advising my students to kick back and watch it though.  You'd think I'm self serving, just trying to have less work, but my view is programming requires some neural rewiring, or whatever model you like of "mental work", and that happens during sleep and off moments, not just when you're focused and concentrating.  Those two moments go together, a dialectic:  fierce concentration, followed by relaxed inattention, while you let the rest of your brain catch up, so to speak.

Bucky Fuller used Doppler Effect to mean something different:  the fact that we're not all on the same page all of the time, nor need we be nor should we be.  We roam around (wander) and find others on the same page, but not everyone, and sometimes only our own selves.  It's that "non-simultaneous only partially overlapping" stuff he talked about incessantly.  We get it in different orders, "it" being the thing we assemble from the puzzle pieces, per the constructivist view.

I'm calling this More Andragogy because it's pedagogy, familiar, but recapped for adults.  You might be a child reading this, but your peer readers are likely older, given the demographic for writings of this type.  I'm not thinking to be exclusionary and welcome child readers.  Fairy tales are for adults as well, as the muppet-masters manifest.  Inter-generational banter, message traffic, is the stuff of civilization, torch-passing and all that.

Today was a jumble.  We'd had a rule change at work awhile back, a consequence of growing towards new archetypes, as an academy, such that students were frantic to have finished X by today, a deadline.  Carol, mom, needed some professional attention and with help from Carl's Jr. and nearby Oregon Clinic (closed), I was able to snarf the WiFi I needed to keep up with said frantic students, enjoying a milkshake at the same time.  Carol's X-rays revealed nothing serious and we have follow-up care planned and covered.  The system worked for us today.  And yet: today was a jumble.

I hear the back gate swinging open as my door to the back deck (upstairs) is open, Sarah-the-dog taking in the night air, meaning Lindsey must be returning, our extended house guest from Savannah, GA.  She was introduced to me by Patrick, fellow mentor, with whom I just had a beer (not the first time).  We're a neighborly bunch, in our partially overlapping scenarios, experiencing the Doppler Effect by weaving through one another's lives in Scenario Universe as Bucky called it ("it").