Please Learn to Eat the World

TL;DR Code is eating the world the same way writing ate the world. We don't all have to be expert writers - of language or code - but we should all be literate in both.

Jett Atwood's "Please Don't Learn to Code" post shocked me a bit, because I agree with almost everything else he posts. I agree with much of it, but the "everyone should learn programming" meme is not the straw man he criticizes, it's a young nebulous movement. E.g., the Mozilla Webmakers initiative is just a series of blog posts and some communication channels organized on a wiki page. So Jeff's input could and should be formative somewhere like the next Webmakers community call.

Writing ate the worldWriting Technology - art from Civilization 5, according to Sid Meier

My MDN colleague and technical, sci-fi, and beer menu adviser Les makes a good "Please Do Learn To Code" counter-argument. I want to elaborate on his analogy to writing:

Consider writing: there's a lot to learn and it used to be a thing done only by a few scribes. But, people today get a lot of mileage out of just sticky notes and email. Sure, improving your grammar and learning how to structure an essay can help in many, many ways. But, you don't need to be a professional writer to be a professional who uses written language.

Consider the state of the world at the time writing was invented/discovered. In Civilization 5 (which is my definitive guide to history), Writing can be preceded by Pottery, Sailing, Trapping, Archery, Horseback Riding, The Wheel, Masonry, and Metal Casting. In a world of subsistence-level agricultural society, writing was a luxury knowledge skill. Maybe there's an ancient "Writing Horror: archiving and human factors" scroll telling potters, sailors, and animal trappers "Please Don't Learn to Write" - suggesting that the general populace only needs to memorize the laws of the land and sign their own name to it.

In Civ 5 - Writing enables Philosophy, which combines with Trapping to enable Civil Service, and also combines with Calendar to enable Theology, which combines with Civil Service to enable Education. Education combines with Compass to enable Astronomy & Navigation, and with Chivalry to enable Acoustics, Banking, Economics. These disciplines combine together in Scientific Theory which enables the Industrial and Modern Eras of advancement - Electricity, Telegraph, Radio, Electronics, Mass Media, Computers, Robotics, Particle Physics, Nanotechnology.

Yes, this is a simplified and gamified perspective, but the truth is, while writing is only of ultimate importance "... in the right context, for some people." the incorporation of writing into other disciplines has been the foundation of the modern world. Reading and writing are the fundamental knowledge skills for every person in every modern occupation.

Code is eating the world, according to Mark AndreessenComputers - Civ 5 Art

Writing is a technology that allows someone to externalize thoughts into a medium that can be communicated to others who parse, interpret, and process those thoughts. Code is a technology that allows someone to externalize instructions into a medium that can be communicated to computers that parse, interpret, and process those instructions. We call that externalization of code, software.

Marc Andreessen always seems to know what's going down and what's coming up. And back in December he wrote a great WSJ essay on Why Software is Eating the World - a survey of industries all across society that are being consumed by software-driven activity and operations. Code combines with book-selling to enable cloud computing. Code combines with telecom operators to enable world-wide video chat (like we were promised would happen in the 23rd or 24th century). Code combines with aviators and aerospace to launch airstrikes without putting pilots at risk. Code is eating the world, just as writing did before it. These combinations seem obvious and intuitive to those of us who make software, but they are neither obvious nor intuitive to everyone else. Jeff is spot-on when he says everyone should know enough code to know "when code might be an appropriate way to approach a problem you have" but his implication underestimates how many problems can be approached with code - i.e., almost all the problems.

What does a code-literate world look like?

Jeff has a laundry list of other problems with the "everyone should learn to code" movement. My vision of a code-literate world is quite different:

  • There's less code. Coders undoubtedly realize that fully 90% of our time is spent reading code rather than writing it. When we do write code, we often refactor existing code. In a code-literate world, more people are aware of this, not fewer. So more people buying code understand that less is more.
  • There's more solutions than code. Even if code hasn't eaten the problem space already, more people are aware of the ability to re-use code, especially open-source code. More people understand how and when to apply code to problems.
  • There's new jobs in place of old ones. Jeff's right about entry-level programming jobs, though I dislike the trace of Silicon Valley hubris. Sure, "many people in the U.S. and around the world lack the education and skills required to participate in the great new companies coming out of the software revolution." But, "This is a tragedy since every company I work with is absolutely starved for talent. Qualified software engineers, managers, marketers and salespeople in Silicon Valley can rack up dozens of high-paying, high-upside job offers any time they want, while national unemployment and underemployment is sky high. This problem is even worse than it looks because many workers in existing industries will be stranded on the wrong side of software-based disruption and may never be able to work in their fields again. There's no way through this problem other than education, and we have a long way to go." -Andreessen

Jeff makes fun of the notion that NYC mayor Bloomberg learning to code will help him make public transit improvements. But Tulsa Web Devs are dealing with this right now as we write code for Tulsa Transit to put our local bus routes and schedules onto Google Maps. Even in the IT department, coding literacy seems low. They're "able to get around on the Internet" and they have "a basic understanding of how computers, and the Internet, work." But they buy code from Trapeze Group - they can't read it and they certainly can't write it. If the Tulsa Transit General Manager went thru Codecademy he could go to our github repository and read the code he sees. But because he doesn't know how to code, our code is as arcane to him as the box of software he buys from Trapeze. From my interactions with Code for America Brigade, I detect this scenario plays itself out in many places and in many sectors.

Code is eating the world. If people don't learn to code, they'll be eaten by it. Coding shouldn't be practiced by an elitist cabal of programmers selling software charms to illiterate masses. Our world is full of consumerism and starved for makerism already. We should encourage and teach others to code. Like writing, it creates opportunities, enables progress, and advances all of society.

Please Learn to Eat the World / groovecoder by groovecoder is licensed under a Creative Commons Attribution-ShareAlike CC BY-SA

Tulsa School of Dev

Tulsa School of DevThis year's Tulsa School of Dev had lots of changes from last year.

  1. New event "chairperson" - Sean Whitesell
  2. New event venue - TCC Northeast Campus
  3. New event website platform - WordPress with custom plugins
  4. New event focus - "hands-on" content

First, the rough edges

For one, we (i.e., Tulsa Web Devs) didn't polish up the website as much as we should have. It was clumsy to do speakers, talks, and technologies with custom post types. I'm still looking for a good open-source lanyrd/eventbrite-type cms - anyone know of one?

TCC Northeast wasn't a good venue - the campus has a weird layout; the common area wasn't suited for lunch and rooms were far away from registration and not conducive to a good hallway track.

Aside from the above issues, I liked the event.

I especially liked mingling with the developers. I had a chance to meet Lindsey, Cory, and Matt from The Div and I hope we do many more events together. I also met Jesse Harlin who did a mobile HTML5 geolocating note app for the 2nd half of the web track. Tulsa Web Devs got together to watch the ustream of the April meeting of OKC.js - the group Jesse and Vance Lucas are running in OKC. I also rubbed shoulders with developers from outside our web community bubble - i.e., mostly Enterprise and Microsoft developers. I still wish there was more interaction between the two "camps" though, along with the sizable Java group in town.

Microsoft was really cool - they gave away a free Windows Phone to attendees who built and published a Windows Phone app that day. I may have to ask if we can give phones away at Tulsa Tech Fest to HTML5 mobile web app developers - let them pick between a B2G phone or a Windows Phone. ;)

I'm looking forward to next year's School of Dev. My notes for improvement:

  1. Improve the format preparation (talks in the morning, workshops in the afternoon?)
  2. Book a better venue
  3. Promote earlier

Most importantly, we'll keep bringing Tulsa area developers together!

Tulsa School of Dev / groovecoder by groovecoder is licensed under a Creative Commons Attribution-ShareAlike CC BY-SA

Beer & Tech Community Events

Disclaimer: I like beer. I read about beer. I make my own beer. I even go to a Benedictine Abbey once a month to brew beer with monks.

Chris shared Ryan Funduk's post describing the tech community's enthusiasm for alcohol that implicitly, and sometimes explicitly, excludes non-drinkers. Ryan makes a keen insight that deserves wider consideration - that the alcohol "fun gamut" attracts brogrammers.

Obviously, "brogrammers" aren't the only ones in our community who enjoy alcohol. Ryan correctly points out that drinking is widespread, yet "brogrammers" are, thankfully, a small though obnoxious minority. So we can ask bigger questions - What is it about alcohol that we like? What does it do to us? Then finally, how should we incorporate it into community events?

What is it about CH3CH2OH that we like?

Science!Alcohol directly affects the prefrontal cortex responsible for judgement and inhibition by prolonging the opening of chloride ion channels which floods post-synaptic cells with chloride ions so the cells cannot as readily respond to stimuli. Alcohol also inhibits dopamine breakdown which extends our dopamine system's pleasure sensations. Alcohol acts as a sedative on our entire central nervous system.[1]

Our brains need some R&R -  All of this can be especially relaxing for people (like developers?) who are constantly exercising their central nervous system; the prefrontal cortex is particularly believed to work on complex cognitive behavior like solving abstract problems. No wonder we like to give it a rest!

Alcohol is an identity microscope

True SelfAs we relax our prefrontal cortex, we also lose inhibitions and judgement.

A couple years ago I discussed this from a Christian perspective with my theology professors (over a couple pints of beer, of course!). Drinking alcohol ranges from religiously required (as in my Catholic tradition!) to socially taboo (in some mainline Evangelical traditions) to religiously forbidden (in Mormon and some fundamentalist traditions) among Christian worldviews. So, we covered lots of angles. I left with an opinion that as alcohol lowers our inhibitions, we can somewhat discover how much of our faith is just inhibitory religious codes, and how much we are actually allowing our "true selves" (as Thomas Merton calls it) to be transformed to the life of Jesus.

It's not just a religious thing. We all know "sloppy drunks", "mean drunks", "emotional drunks", "tired drunks", etc. But alcohol doesn't make us mean or angry or sexist or emotional - alcohol removes other inhibitions we pile on top of those parts of ourselves. So here's the point - if I make a sexist comment while intoxicated, I'm sexist. (For whatever definition of 'sexist' we use.) If I'm sexist, that's something I need to change, regardless of alcohol consumption.

We need to improve as a community in lots of ways, with or without alcohol.

Can we put alcohol on the same level as caffeine?

Since I'm only making my rough observations and opinions, I don't have any specific suggestions for how we should handle alcohol at tech community events. Ryan makes some good ones in his post, there's a decent little discussion going on in Mozilla's engagement-developers list, and Rob gives some good general advice.

I very much agree with Ryan and Rob. I'd like to see alcohol as one entertainment among many at technology events. It can be an aspect of any event, but shouldn't ever be the main aspect of any event. I personally will always go check out the craft and local beers available at any event. (I make a habit to try to visit a brewery and a cathedral anytime I travel.)

But what I really want at these events, and what happens the vast majority of the time, even the "party" events, is to mingle with others who are passionate about technology - no matter what drink they're holding.

Beer & Tech Community Events / groovecoder by groovecoder is licensed under a Creative Commons Attribution-ShareAlike CC BY-SA

Tulsa Web Devs press tour

This Land PressOr as close to anything like a press release that we'll ever have. This Land Press ran a Government 2.0 in Oklahoma article and featured Tulsa Web Devs! w00t!

They also did a live stream from our Tulsa Hackathon event last fall.

Thanks This Land for helping us tell our story!

Tulsa Web Devs press tour / groovecoder by groovecoder is licensed under a Creative Commons Attribution-ShareAlike CC BY-SA

MDN 2.4.5

Late as usual! MDN 2.4.5 bug list and backlog.

Highlights

  • Wiki
    Syntax Highlighting
    KumaScript is in! (Though it's not available on stage9 yet.)
    Migrations are running on stage9
  • Bugs

Check the MDN 2.5 backlog for what we're pushing next!

MDN 2.4.5 / groovecoder by groovecoder is licensed under a Creative Commons Attribution-ShareAlike CC BY-SA

MDN 2.4

MDN 2.4 bug list. This was our first 1-week sprint and release, so there's not as much to report.

Highlights

  • Wiki
    Nothing shipped, but Les filed the master bug for KumaScript - our replacement for DekiScript.
  • BrowserID
    Fixed lots of little bugs and enabled BrowserID for French, German, Spanish, Polish, and Chinese locales.

MDN 2.4.5

MDN 2.4.5 sprint backlog.

  • Wiki
    KumaScript lives and I ran it successfully on my local environment!
    Syntax highlighting for code samples - both new and migrated
    Profile doc activity feed switched to Kuma
  • Some bugs

So, wiki work continues at a good clip and our process seems to be going well. We're changing our standup time to 10am PT since most of the team is CT or ET now.

MDN 2.4 / groovecoder by groovecoder is licensed under a Creative Commons Attribution-ShareAlike CC BY-SA

Editing MDN with VIM

UPDATED: New screenshot with html filetype! Thanks Screwtape for the tip in the comments!

Yes, it's possible! If you're like me you want to spend as much time in vim as possible. While I appreciate CKEditor on MDN, I personally prefer to edit text in vim, and I think many developers might agree. And since MDN should include content written by developers for developers, here's a way to edit your favorite web developer docs (that would be MDN), using vim. (In my case, MacVim)
It's All Text Preferences

  1. Install the It's All Text Firefox addon.
  2. Go to the IAT preferences
  3. set your editor to vim (MacVim.app in my case)
  4. set your hotkey. (alt+command+e in my case, now that I'm used to Firefox Dev Tools "Inspect" and "Console" keyboard hotkeys)
  5. Go to the MDN article you want to edit. (Apps/Getting Started in my case)
  6. Click Edit (duh)
  7. Click Source
  8. Type your hotkey!
  9. Drink beer and edit away!*
  10. :wq

* groovecoder is not responsible for whatever Sheppy might do to you if you actually edit MDN while intoxicated.

MacVim Quite on CloseNote: For MacVim you may need to set the "After last window closes: Quit MacVim" preference so it puts you right back to Firefox when you :wq.

Apps/Getting Started in vim

Editing MDN with VIM / groovecoder by groovecoder is licensed under a Creative Commons Attribution-ShareAlike CC BY-SA

MDN 2.3

Released February 28th. We are moving to weekly releases on MDN so these posts are hard to keep up. I will probably start combining releases. And I'm just going to link to the MDN 2.3 bug list instead of linking individual bugs.

  • Wiki
    migrate tags from MindTouch to Kuma
    (Re-)enable tag display and editing
    remove extra redirect for locales
    verify code samples work post-migration
  • BrowserID
    fix login infinite redirect bug
  • HTML5 & Apps MWC pages
    Paul and Craig cranked out the new HTML5 and Apps landing pages in time for MWC

ScrumBugs for MDN 2.3While Paul was with us he created ScrumBugs! I love it! I always appreciated the way we did Agile/Scrum/XP/whatever at SourceForge.net, and I've been forcing pushing for Mozilla WebDev to adopt some of the same practices. And I just really like pretty graphs! Can you tell?! :)

MDN 2.4 & 2.4.5

We're calling our first weekly sprints 2.4 and 2.4.5, but I think next we'll just move to 2.5, 2.6, ... until we all meet up in New York for MDNYC. At that point we'll probably abandon bugzilla milestones and just use the whiteboard to organize bugs into sprints based on release dates. Until then, here's what we're working on for 2.4 and 2.4.5.

  • BrowserID
    Hopefully killing all the remaining BrowserID bugs so we can concentrate on wiki
  • Wiki
    Les is rocking lots of KumaScript work
    Migrate file attachments
    Wiki code syntax highlighting
    Refine UI for tag editing
    Activate continuous migration on staging server for MDN doc community
MDN 2.3 / groovecoder by groovecoder is licensed under a Creative Commons Attribution-ShareAlike CC BY-SA

MDN 2.2

  • BrowserID
    bug 721171 to draw Sign in buttons with progressive enhancement - should hopefully fix our search results snippets too! ><
    bug 719945 to link to browserid on the demo submit page
  • MindTouch wiki migration
    prepare for localized page migration (bug 717380)
    scripting architecture (bug 715253)
  • More

Kumascript Diagram

I'm excited about kumascript - lmorchard's prototype for implementing server-side scripting in kuma to replace DekiScript. I'm glad we're using JavaScript. I was a little surprised that MediaWiki chose Lua for their new scripting language (is it ironic that DekiWiki and its Lua-based DekiScript has roots close to MediaWiki and now MediaWiki is going to Lua-based scripting too?). JavaScript just makes sense for us - a community of web developers writing web developer docs.

MDN 2.2.5

MDN 2.3

MDN 2.2 / groovecoder by groovecoder is licensed under a Creative Commons Attribution-ShareAlike CC BY-SA

MDN 2.1

We're doing better at keeping away from big new features while we try to work on the wiki migration, so there's no big item in today's release notes.

  • More BrowserID cleanup
    bug 715723 was really annoying - Sign in was broken from wiki pages
    bug 715811 should help users who've forgotten which email address they use on MDN
  • MindTouch wiki migration
    James did a thorough job on bug 710734 to expand the markup allowed in kuma
    Les did some more great working discovering all MindTouch namespace pages (bug 710753) and script template usage (bug 714804)
    Craig fixed up a bunch of CSS issues we've discovered as we migrate real content (bug 710737)
  • More

MDN 2.2

MDN 2.1 / groovecoder by groovecoder is licensed under a Creative Commons Attribution-ShareAlike CC BY-SA
Please Learn to Eat the World / groovecoder by groovecoder is licensed under a Creative Commons Attribution-ShareAlike CC BY-SA