Jawbone UP: magical devices (which begets an immediate wish list)

I’m one of those crazy bastards who loves to track all sorts of data about myself – what I eat, how well I digest it, which scary movies I’ve seen more than five times, how often I’ve listened to that embarrassing electronic-psytrance-chill group.

So I was a goner when I spotted the Jawbone UP in my last buzz through the Apple Store. Sara suggested it as an early birthday present to myself, which turned a normally-agonizing months-long decision into a two-minute mental debate over colour, size and which credit card to use.

The unboxing-and-configuration experience was a spiritual experience. Every design choice seemed to hit my endorphin button, from information design (what questions were asked for what little information they needed to convey or discover) to interaction design (nice simple choices laid out in a pleasing and effective manner) to great visual design (colours, sizing, contrast).

However, within a few days I started to itch for more – this feels like a device with so much potential, and it feels close enough for me to touch but teasingly just out of reach.

Sleep mode

sleep graph
I didn’t sleep so hot last night

Doesn’t seem to register those times when I’ve fully awakened but didn’t “get up”. I’ve had that experience at least once a night since getting this band, but only once in the first four nights did the band trigger that alert-but-still-lying-down state as “awake”. Since then I’ve seen more “orange slices” in my sleep, so maybe it’s tuning itself to my behaviour – or maybe I’m just thrashing more.

Steps while horizontal

lifeline steps
I am a couch-surfing master

I had an experience one morning where I never left the bed and yet registered 286 steps. How can that be? On another occasion, I checked the band before and after getting in the car and driving for half an hour, and no steps were registered – so obviously some types of movement scenarios are being done right.

Food

Just as much of a PITA as any other calorie-counter app, but I’m not sure if that level of granularity is even ever going to be integrated into cool/insightful reports. The food log is a very rich database, but for someone like me who eats a lot of home-cooked food (due to my celiac and lactose intolerance, I can’t eat as much prepared food as my laziness would like), I end up having to make some pretty undesirable choices: (a) forgo the nutrition information entirely on a “custom entry in my food library”, (b) choose something that might be close from the available (but hard to preview) restaurant/commercial foods, or (c) just take ridiculous guesses as to the nutritional values of meals prepared from the fridge.

Smart Alarms

Why does the wake alarm still go off after I’ve switched UP to “I’m awake” mode? Isn’t this supposed to be meant to be a “smart alarm”, to wake me out of sleep? And have I not proven I’m awake by holding down the “mode switch” button for the required two continuous seconds? I find the silent alarm redundant and annoying for this reason, and after a couple of weeks I just gave up and turned it off – even though it would be brilliant to wake me at “the ideal time in my sleep cycle” on those rare occasions when I’m sleeping way past the time I should.

Sleep/awake button

What is the “correct” (by-design) expectation for when I should trigger the sleep mode: when I lie down? When I’m starting to feel sleepy? When I intend to try to get to sleep? I don’t know what I’m supposed to be learning from the “how long I was awake before sleep kicked in”, or whether it matters. Y’know what would be interesting? Graph of “time you crawled into bed vs. amount of time before you fell asleep”. That would tell me whether I’m really wasting time going to bed early or not (i.e. am I getting more sleep when lying down earlier, or does that only weakly correlate?).

Wish List

  • Provides me trend correlations to show how my mood correlates with sleep or food intakes (if any)
    Lets me input other qualitative markers on the graphs like “took a pill” (pain, anxiety, antacid)
  • Full data dumping: I took my band and a computer to a recent Quantified Self session, thinking we could hack on the rich data that the Lifeline seemingly keeps. However, what we got from the web site was a cryptic (terribly annotated) and heavily-edited data set – none of my meals or nutrient data, nothing I could see that captured my moods (especially not the custom labels that are so easy to add), no rich data showing my actual steps (not even in short-time-increment intervals like “how many steps in each 5-minute period”).
  • Community: I’d dearly love access to a community of UP wearers (e.g. online forum) to discuss, compare results, insights and guesses of what’s going on. Following a twitter hashtag isn’t nearly there.
  • Food library (1): how can I edit/delete an entry that I screwed up? I misread the Servings value on a jar of food, and now the Library entry there is forevermore going to be double what it should be (worse, because I combined it with a single-serving food – I created “peanut butter toast” as a one-click entry). Now I can either delete and re-create that entry and edit all previous meals, create another entry and try to remember which one to choose, or “dial the portion size” on the bad entry to an approximate value.
  • Food library (2): wouldn’t it be awesome to one-click copy a “meal” worth of nutritional-values-populated food from one meal (or one ‘team member’) to another? This one came from my partner – she’s furiously adding all the ingredients one by one for each meal so she gets accurate calorie, protein etc data. Now why couldn’t I “copy” her meal and add it to my own feed? I often eat the same thing she (or a friend who’s also part of my team) eats, but I don’t get any real “writeable/reusable” value out of that team membership.
  • Auto-interpolating sleep: UP has a manual toggle into “sleep” mode (telling my device when I’m sleeping), which forces me to either (a) toggle it as soon as I crawl into bed, so that I never forget, or (b) try to catch myself going to sleep just before I actually slip into unconsciousness [or risk losing the tracked sleep entirely]. I’d love for the UP to “sense” when I’m resting on my back and call it “sleeping” without me having to remember to toggle it back and forth. Heck, even if it recorded a session that wasn’t actually sleep, couldn’t I later “curate” my data to re-categorize the false positive?
  • Edge-case bug: Irritatingly, if I forget to switch it back to “awake” mode before plugging it in to dump its data to my phone, it turns out that the UP app doesn’t log that sleep as “sleep” but just as another form of activity. In other words, someone forgot to test and optimize for “what if the user plugs in their UP while the band still thinks the user is asleep?” I’m sure to the designers it sounds like a non-scenario, but it’s happened to me once already and I doubt it’ll be the last time.

Coda

A couple of months into bonding myself to this techno-upgrade, I killed it. Inadvertently, but still. I followed instructions, never immersing it fully under water, but instead took a nice long shower (officially endorsed by Jawbone) to refresh myself after a couple of weeks of bedrest. (That’s another story for another time.) Darned thing never responded to another button press again, and I can only believe that somehow its water resistance became less so.

So I dropped a note to the very polite and helpful folks at Jawbone support, who after supplying me with instructions for soft- and hard-reset (neither of which worked, but both of which were reassuring for future occasions when I might find myself painted into a firmware-not-hardware issue), shipped out a replacement band at their (warranty-amortized) expense.

They shipped it to me in an environmentally-sensitive envelope, but with not one iota of expectation-setting, preparation or documentation to let me know (a) if the replacement band needed to be charged [it did, it was dead] or (b) how to properly convince my UP app to forget about the old band and orient itself to a new one.  I dug around like a madman to find out if there was anything I should NOT do with a replacement band, and finding nothing I finally just synced it with the app and was pleasantly surprised at how little I had to do.

I remain a member of the UP clan.

celtic warriors

My philosophical thoughts on Futuristic User Interfaces from sci-fi and anime movies

Futuristic user interfaces from cyberpunk and anime movies

The thing that strikes me most about this uber collections just how indecipherable many of these future UI’s are, and how unintuitive nearly **all** are.

stark monitors

I can only conclude from looking at these (and remembering many others from past sci-fi romps) that in Hollywood, and especially in the dark days of personal computing (when many of these movies were made), computers and their UI’s have nearly always looked absolutely inscrutable to most of the population, and that the only hope most civilians (not engineers) had for the future was that humanity would get genetically smarter as we advanced.

We would get smart enough that as a species, our brains would finally be able to treat these masses of poorly-laid-out information and instructions as a normal course of interfacing with machines, and would be able to process this stream of pixels in real time. It really says more about our hopes for the species in the future (less broken, reaching pinnacles of performance and capability) than it does about what we aspire from our machinery (which apparently, was very little – they would remain cryptic arbiters of control over our environment). I am SO GLAD that we have already at this point in computing technology found ways to start to think “human-first” in the human-computer interaction.

TED Talks: performance art, not mere compressed learning

A perfect example of what I mean – Shane Koyczan: "To This Day" … for the bullied and beautiful:

And another that still resonates with me, long after the fact – Jill Bolte Taylor’s stroke of insight:

I’ve recently encountered the predictable yet still surprising backlash against TED Talks – backlash in the form of long rants by people I respect, but whose resistance and cynicism I can’t fully understand. Since I’m usually at the forefront of cynical distancing from something so popular, this exacerbated my naive shock and dismay.

I’m a convert to the TED phenomenon, and wonder every day when I still haven’t gotten around to watching more of them – because every time I do sit down for one, it makes me feel more a part of a global, expansive human experience, and gives a booster shot to my hope that there’s far more to life than drudgery, suffering and isolation.

[In response to complaints that TED Talks are simplistic, reductionist, and a one-way "conversation" to an incredibly privileged audience] I’ve been pleasantly surprised by many talks, and genuinely affected by a few. Privilege and reductionism aside, they’re still 20 minutes more I spend learning about a subject or having my perspective widened than I’d otherwise spend.

Further, I find a deep pool of irony in complaining about about TED’s short attention on Facebook.

[In response to concerns that a one-way compressed monologue doesn’t suit some people’s learning styles, and that the one-way nature and a subtle "attitude" embedded in it creeps some people out] I can easily accept that it isn’t suitable to how your brain learns – I know how much of a learning failure I am through books, and how well I assimilate and integrate new ideas through the Meetup approach. Which tells me that for me, Meetups or other forums where we get to have lectures where questions are welcome, plus loosely related discussions around it, are my ideal learning model.

Close second is the unconference like Agile Open Northwest – where we get to hear lots of 0-day thoughts shared by people who want a very barrier-free, interactive discussion on subjects that are just-proposed-today and are low risk (since they’re selected through vote-with-your-feet) so high-value subjects abound for nearly everyone. No "selection" (aka pre-screening) committees so no groupthink filters.

But still none of this invalidates the 20-minute, polished-and-scrubbed summary of decades worth of work or life. If you can’t convey one good idea in 20 minutes, I sure ain’t giving you an hour or a book’s worth of attention. Must be why reading long-form books or journal articles seems so excruciating to me now – instead of one thesis, it seems to grant license to jam in several loosely related thoughts.

Maybe it’s the talks I’ve seen and remember – speakers from whom I detect a subtle nervousness, a little extra humanity – not the supra-polished talks that look like they’ve been given a million times and couldn’t provide less of a connection to their audience if they were delivered from within a gameshow soundproof booth.

a little humanity from the king

I’ve started drawing (again)

The Agile Open Northwest 2013 conference was a re-awakening for my artistic talents. I’ve pursued borosilicate glass through both fusing and beading for a few years, and have recently accepted myself as a Glass Artist, but still had a mental block about thinking of myself as artistically skilled. Then AONW cracked the code.

Grade 4, I got a C in art class. The only non-A I got on a grade-school report card (OK, there were also gym class and handwriting – traumatic but formative), and it had a very strong effect on me. I remember looking back on that collage project as my departure from all right-brain pursuits – I would further myself through those subjects at which I excelled, science and math. I dreamed from then on to be a scientist when I grew up, and only learned the error of my dreams when I reached fourth year of my Chemistry degree and realized just how tedious and repetitive the whole pursuit of scientific knowledge really was.

Favourite batik shirt
My favourite batik shirt
Dark Starry Knight
The Dark Starry Knight

I’ve done a lot of left-brain work since, but continued to harbour an appreciation for colour, abstract organic designs, and general artistic creativity. I gravitated to hand-painted clothing , I sought out art museums wherever I went, found myself fascinated by fine artists who applied their talent to the human canvas, and intensely studied the craft of artistic pursuits. My favourite artist is Vincent Van Gogh, precisely because he spent so much of his artistic career so desperately studying technique and attempting to prove his talent to himself.

Three years ago I decided to put my hand to glass craft – fused glass plates and wearables, and hotwork on the torch.  A couple of years into it I finally accepted that I am a glass artist, yet still I never picked up a pencil. Maybe it’s been my comics reading – the more I study the visual and written sides of the craft, the harder it is to get it ‘right’.

Swirly bead
My “starry night” tribute

Despite all this, I’m a furious whiteboard abuser – at work, I clock on average ten minutes in meetings before I am compelled to grab a marker and scribble on the walls. I’ve taken a college course on how to use Adobe Illustrator, and now I create graphics elements for our team’s web site. Even more telling, I purchased an iPad two years ago, and immediately loaded up on all the drawing apps and have bought four different styluses. Some itch  just wouldn’t go away.

So what was the secret formula at AONW, that caused me to pick up a pen and draw in public? The facilitator gave us all permission to copy. That’s it, that’s the terrible insight – the thing that nearly every artist learns/is forced to try early in their instruction, is the very thing I didn’t allow myself to do. Felt I should (like most of my intellectual and work pursuits) be absolutely natural and naturally talented at it, or I wasn’t allowed to draw. It’s embarrassing, and I surely haven’t overcome decades of self-imposed conditioning, but it *has* enabled me to allow myself to goof around with a digital pen [even badly] every week since.

sketch-mike
Lonergan self-portrait, 2013

The plague of “smart refrigerators”

I think we’ve all by now heard of the mad, magical future in which your new refrigerator will have the intelligence to know when you’ve just run out of milk and will automatically order more for you. A perfect digital servant, that just happens to knew exactly which items in your fridge you need repeatedly, at a perfect frequency to match their consumption. But what about stuff I bought once and no longer want? What about the milk that went bad (even before the due date) and has to be poured out all at once? And what about all the commodities I keep on the shelf, and put in the fridge once I open them?

This so-called “smart fridge” is one of those nearly-generic, ubiquitous, almost brainless examples trotted out as a stand-in for for future tech, just as we see those stupid example apps show up on every new “extensible” piece of technology (phone, widgets framework, whatever) – the stocks, sports scores and weather apps. The apps that *no one* ever uses more than the first week of owning that tech (well, I’m sure there’s someone – like the dev – who must use them, but no one I know – and not like “I don’t know anyone who will admit to buying a Michael Jackson album while he was alive”).

Which reminds me of the foolish crapware that used to show up only on new PCs – but now ships with some Android phones and with all “smart TVs”. Ugh – I saw a report recently (https://www.npdgroupblog.com/internet-connected-tvs-are-used-to-watch-tv-and-thats-about-all/) that most smart TV users just watch live, streamed or pre recorded content on their TVs, and almost none use the “smart” apps (generally less than 10% of smart TVs). In my experience they’re a resource of last resort – like when everything else has stopped working you’ll try them, but dog help you if you try willingly – hopes dashed, spirit mashed, ego crashed.

Which also reminds me of a great blog article by Scott Hanselman (My car ships with crapware http://www.hanselman.com/blog/MyCarShipsWithCrapware.aspx) about the terrible interface to the in-dash entertainment system in his new Prius. I’ve got the same one, and I fell victim to the same wow factor when considering the purchase. Once I actually tried to *use* the onboard apps, however, I quickly gave up – too slow, too many clicks, too many unintuitive choices, too few usages that weren’t much more efficient on my smartphone.

I happen to agree with Hanselman – not just about my in-car screen, but the in-TV “smarts” and the soon-to-be-everywhere “smart” appliances. I’d much prefer (at this stage in the “smarts” development) that these lesser apps be removed entirely in favour of just giving me a fully-integrated big screen on which to mirror my already-quite-handy pocket-sized computer. I understand the need for these industries to try to find ways to achieve bigger margins on the sales of these well-established markets. I just believe that these are poorly-executed, lesser-than bolt-ons that add nothing to the primary experience of the device to which they’re attached, and which will be in a few short years a supreme waste of space and an embarrassing relic. I fully expect that I’ll be unable to use *any* of the onboard capabilities of the Prius Entertainment system in three years’ time, and will have to add an aftermarket device or just sell the car to some rube.

I’d personally love to rip and replace the smart interface on my TV with something that was receiving active updates for more than six months from the manufacturer, and which provided me actually-helpful and complementary capabilities I can use right from my TV – and which aren’t just easier and more intuitive on my phone. How’s about a TV guide wired right into my TV? Or something that told me how much TV I’ve watched for the past month or year, and a breakdown of what kinds of shows I’ve watched? (Not that I’d find that info indispensable, but at least it would relate directly and more tightly with the device from which it derived.) How’s about a remote upload capability (push only, no pull – no need to freak out the privacy dudes) for all that data – and more, like power consumption and device health statistics, so I could do something useful and more permanent with that data?

And as for the fridge: how’s about a sensor that tells me how “empty” the fridge is, giving me a clue I should go shopping soon? This could be based on how much power it’s taking to cool the contents each day – or how much the fridge weighs (compared to an average of the last six max weight measures). Or what if the fridge could actually pinpoint where that foul smell is coming from – and better, could give you a warning when the crisper is getting more “moist” (i.e. more “rotty”) than it should be.

That would be a smart device I would actually appreciate.

A few notes on Don’t Make Me Think

Encountering Steve early in my transformation to a UX geek profoundly affected me. I’ve been re-reading his seminal book lately and captured a few thoughts I’ll share with you.

His book “Don’t Make Me Think” is one of the most shockingly plain and easy discussions of web usability I’ve seen, with lots of subtle lessons woven into a deceptively easy-to-read discussion. Easy to follow, both anecdotal and evidence-bound, and contains many dozens of insights distilled down to the very nut of the problem. No overlong self-pleasuring discussion of theory or why things should be different than they are – Krug recognizes first and foremost that the best systems give users the easiest path to success, and leaves the art of user experience design up to the definition of ‘success’ (to be struggled over by users, designers and stakeholders).

One of the great lessons of this book is typified by the following passage in chapter 8:

“The point is, it’s not productive to ask questions like ‘Do most people like pulldown menus?’ The right kind of question to ask is ‘Does this pulldown, with these items and this wording in this context on this page create a good experience for most people who are likely to use this site?’ And there’s really only one way to answer that kind of question: testing. You have to use the collective skill, experience, creativity and common sense of the team to build some version of the thing (even a crude version), then watch ordinary people carefully as they try to figure out what it is and how to use it. There’s no substitute for it.”

This lesson has echoed in my head for a year while I ruminated on it. I suppose I wanted to find a shortcut, see of there were other reasonably-equivalent ways to achieve the same outcome; you know how it goes, and you know how it turned out. Now I quote this idea at people all the time, and I keep hammering myself over the head with it every time I try to take a shortcut. Doesn’t mean I don’t take the shortcut sometimes, but I’m making sure I’m aware that I’ve optimised out the most effective way to determine the best design.

Another one that resonates every time I read it: “What testing can do is is provide you with invaluable input which, taken together with your experience, professional judgment and common sense, will make it easier for you to choose wisely – and with greater confidence – between ‘a’ and ‘b’.”. User testing gets presented by some practitioners (usually the ones fesh out of academia, or those who are terrified of the lack of rigor and thoroughness in the business world – or both) as a terribly important practice with lots of rules about statistical validity and ability to “prove hypotheses”. In my own experience even, it’s amazing to get that outside perspective – even if you throw some or much of the feedback and observations away.

I’m also permanent changed by Krug’s perspective and emphasis on navigation. Thinking of it like the navigation you need when walking into a department store is brilliant, invaluable advice. I think of this every time I design a web site (and in some cases even do a passable job of reaching a reasonable level of clarity).

Every UX/usability tome I pick up gets compared to this, and many predictably (and deservedly) fall short. It makes for much quicker reading sessions on the dry or artificially-academic doorstops.

Figuring out what to next – to accelerate fulfilment in my work

Talked to Sara (my muse) today about trying to work out in my head what to do next – what creative/skill-building exercise or learning opportunity to take on? I’m dying to break out, but hog-tied at the same time to try to assess among all the possible things I’ve thought of – which is most likely to give me the biggest payoff.

Yes I know that the only way to find out for sure is to try something and see how it fits. Yes I intellectually understand that if I’m so focused on outcomes from step one, the right brain creative impulses are necessarily being strangled in the crib. Of course it’s ridiculous to sort through so many things to find the perfect endeavour that lights the clear path to my next career.

All that said, and knowing how crazy I’m making myself, I have to acknowledge the simple truth of the complexities of being Mike: the situation I’m in right now, knowing I’m aspiring and working towards a more creative, ideas-oriented and wide-scoped style of work, and gathering to myself as I have been a preponderance of new things I’ve never tried and all of which occupy the sphere of user-centric creation that I’m convinced is where I belong…right now I have a perfect mental image of how that makes me feel right now:

I’m in a rowboat, surrounded by a sea of a thousand things I could, should and would like to try, I have no idea in which direction to row to find dry land.

So here’s some of the things that are rattling around just today (for which focusing efforts I’m grateful to Sara for her gentle nudges):

Why do I want to try these things?
– Take small bites of a lot of little things I’d like to become, to see which inspire me
– help me convey my big abstract ideas better to others
– demystify those creative expressions that have felt just behind the looking glass all my life
– tap into long-held adoration of abstract expressions that resonate with my soul
– personal enrichment that makes me feel more confident in my own very personal beliefs and ways of expressing myself
– spark new creative thoughts
– cultivate pure enjoyment at being part of the world of creative beings
– use more parts of my brain – tap into latent talents

A small selection of things I’d like to try:
– drawing classes
– glass blowing
– story boarding (visual)
– storytelling (verbal)
– learn a new app development skill (JavaScript, Python, CSS, HTML)
– try creating short videos to convey a personal idea
– more writing from places of conviction
– reading inspiring books in UX & ubiquitous computing
– 3D modelling and design
– certification and degrees
– volunteering to assist others who need my skills

What’s the (remaining) value of cryptographic hashing of small values these days?

A friend forwarded this to me today – one more in a long narrative of the incredibly reduced value of hashing
to make it hard for anyone seeing the hash to determine the original data being
hashed (for small-sized inputs).  Hashing
a password/passphrase, hashing a “unique identifier” – these
approaches to obscuring (for lack of a better word) the password/unique ID seem
effectively moot to me.  I honestly don’t
know that there’s any real value in performing the hash and then storing or
exchanging it – frankly, the difference in your risk between
“sending/storing the password” and “sending/storing the hash of
the password” seems pretty small.
Even small inputs + small salts seem doomed, given these
massive advanced in FP calculation arrays. 
Further, it seems like “stored, single-value salts” are just
as pointless, given the amount of research that attackers generally put into
discovering these stored/fixed salt values – so storing a hugely long salt
value just feels wrong to me for many threat scenarios.
Do any of the SHA-3 algorithms take massively more time
on these hash-calculating clusters?  If
not, what other options can our products use for protecting small values like
passwords and unique identifiers?
I get that there are still some attack vectors against
which a hashed password is a useful mitigation vs. the raw password
itself.  It just seems like we’re getting
further and further away from the knee-jerk “hash it and you’re much better
off” that I was taught at the feet of my cryptographic elders.
Note: I believe there’s still value in using
modern/advanced hash functions to predict the integrity of a known piece of
information (digital signatures, message authentication):
  • e.g. hash a large document and sign it to later assert
    with some degree of confidence that the document hasn’t been tampered with
  • e.g. compare the previously-stored password hash to
    determine if the supplicant has possession of that password

“A presentation at the Passwords^12 Conference in
Oslo, Norway, has moved the goalposts on password cracking yet again.
Speaking on Monday, researcher Jeremi Gosney (a.k.a epixoip) demonstrated a rig
that leveraged the Open Computing Language (OpenCL) framework and a technology
known as Virtual Open Cluster (VCL) to run the HashCat password cracking
program across a cluster of five, 4U servers equipped with 25 AMD Radeon GPUs
communicating at 10 Gbps and 20 Gbps over Infiniband switched fabric. Gosney’s
system elevates password cracking to the next level, and effectively renders
even the strongest passwords protected with weaker encryption algorithms, like
Microsoft’s LM and NTLM, obsolete. In a test, the researcher’s system was able
to generate 348 billion NTLM password hash checks per second. That renders even
the most secure password vulnerable to compute-intensive brute force and
wordlist (or dictionary) attacks. A 14 character Windows XP password hashed
using LM for example, would fall in just six minutes, said Per Thorsheim,
organizer of the Passwords^12 Conference. For some context: In June,
Poul-Henning Kamp, creator of the md5crypt() function used by FreeBSD and
other, Linux-based operating systems, was forced to acknowledge that the
hashing function is no longer suitable for production use — a victim of GPU-powered
systems that could perform ‘close to 1 million checks per second on COTS
(commercial off the shelf) GPU hardware,’ he wrote. Gosney’s cluster cranks out
more than 77 million brute force attempts per second against MD5crypt.”
 URL – http://it.slashdot.org/story/12/12/05/0623215/new-25-gpu-monster-devours-strong-passwords-in-minutes

What I learned today about server-side programming

Attended PDX Web & Design meetup tonight, where Eric Redmond delivered a primer on modern server-side programming. What’s cool about Eric’s talks is he gives us a smattering of the stuff that’s he’s touched in the last few months – and he’s got a voracious appetite for fun, productive tools that support the lazy programmer. (Kindred spirit here – don’t make me do anything more than I absolutely have to to get the job done.)

Here’s the notes I took tonight as Eric was entertaining me (and the rest of the room). Mostly noted what technologies he mentioned, a few key lessons, and a few opinions that resonated with me.

http://www.socketstream.com (& GitHub)
– CoffeeScript
– Socketracer.com
– “ws://” protocol
– Server-side frameworks:
— PHP (easy/messy – bad programming practices)
— Express.js (difficult) – built on Node.js
— Sinatra (just right – “Ruby on Rails’ little brother”)

– CMD shell: SharpEnviro (win), iTerm (mac)
– txt editor: Notepad++ (win), Sublime Edit (mac) — or Sublime for windows
– httpd for win: WinLAMP or XAMPP
– Codeacademy.com/Tracks/JavaScript
– heroku.com – hosting provider for hosting Express.js apps (and tons more frameworks)
– Express.js takes care of implementing things like sockets that Node.js makes you write on your own
– HTML templating languages = jade, slim
— jade templates remove , instead of “end block” tags it uses indenting to define hierarchy
– Sinatra – ruby-lang.org, sinatrarb.com, rubygems.org
– erlang is now Eric Redmond’s favoured programming language (doesn’t recommend it)
– TryRuby.org – teach yourself Ruby from scratch
– larger-scale frameworks (generally MVC): RailwayJS (RailwayJS.com), Django (www.djangoproject.com), Ruby on Rails (rubyonrails.org)
– CMS’s: refinery, redmine, typo3

“Learning to program teaches you how to think. Computer science is a liberal art.” — Steve Jobs