Want to Spread an Idea Fast? Describe it with Software.

I’ve been thinking about ideas recently. What it takes to move from neurons in one person’s head to changing the lives of many.

The essence of an idea can be documented in a software’s backend system. Hidden behind the buttons you click on and input boxes you type into is a backend describes complex “business rules” or logic that describe the idea.

The focus of my work very recently is expression of an idea in software at its various user interface (UI) endpoints. A goal of this work is to build interfaces that communicate the fundamental idea to people while solving specific existing problems.

Even unknowingly, users are influenced by core concepts that drive a software system’s behavior. When people engage with a system via a software UI, it can establish new social norms and behavior.

For example, if you have used Wikipedia, you are immediately learning that it is possible for anyone to share important information using writing and pictures and that this can be reviewed by and edited by peers for free.

The idea that people could collaborate in such a way was not widely accepted as a good one to understand until a backend system and desktop web interface was created to express the idea.

In Facebook’s S-1 filing, Mark Zuckerberg said Facebook was created “to accomplish a social mission–to make the world open and more connected.” To express such an idea in software at the time meant reliving past ideas like MySpace’s wall and bringing new taste to the expression of the idea. Interestingly, part of Facebook’s success was in limiting the idea’s early availability to students.

Compared to reading a white paper or listening to a lecture, average folks will probably understand the meaning of an idea more quickly by interacting with it via software. That is, if the software is fun to use.

Software can now spread to individuals extremely fast.  This is exciting because when a sufficiently advanced new idea is described for the first time in software, the idea may be spread nearly as fast.

This suggests that if you have a big new idea and want the idea to influence how people think and behave, perhaps you should consider how it would be described using software.

Swartz vs Snowden OR Resist Restrictions that Seem Arbitrary or Capricious

MIT released its report on Aaron Swartz (.pdf) this morning. It is interesting to read about the amount of energy and concerted effort around Swartz, in contrast to Edward Snowden. Swartz’ prosecution and MIT’s “neutrality” to that effort seem sad when taken in the context of President Obama’s comment on June 27th where he said “No, I’m not going to be scrambling jets to get a 29-year-old hacker.”

In the report the authors pose questions to the MIT community, including: “How can MIT draw lessons for its hacker culture from this experience?” The answer includes:

MIT celebrates hacker culture. Our admissions tours and first-year orientation salute a culture of creative disobedience where students are encouraged to explore secret corners of the campus, commit good-spirited acts of vandalism within informal but broadly— although not fully—understood rules, and resist restrictions that seem arbitrary or capricious. We attract students who are driven not just to be creative, but also to explore in ways that test boundaries and challenge positions of power.

This raises the question of whether the MIT community is sufficiently aware of what the hacker culture is meant to be about, of the risks inherent in crossing lines as part of hacking, and the roles of faculty, staff and administration in responding to what might or might not be a hack.

Yet in the computer context, unlike as in the physical world, “unauthorized access”—ill defined as it may be—can be grounds for a major federal felony prosecution. For Swartz the end result was calamitous. The entire episode may create a chilling effect for those students contemplating exploits that may push the bounds of their and society’s knowledge, but will also take them to places where conventional rules say they are not supposed to be—“coloring outside the lines” so to speak, punishable by criminal records rather than mere forfeiture of crayons. [emphasis added]

I can’t help but think of the recently exposed removal of President Obama’s promise to “Protect Whistleblowers” from Change.gov. Which read:

Often the best source of information about waste, fraud, and abuse in government is an existing government employee committed to public integrity and willing to speak out. Such acts of courage and patriotism, which can sometimes save lives and often save taxpayer dollars, should be encouraged rather than stifled. We need to empower federal employees as watchdogs of wrongdoing and partners in performance.

Barack Obama will strengthen whistleblower laws to protect federal workers who expose waste, fraud, and abuse of authority in government. Obama will ensure that federal agencies expedite the process for reviewing whistleblower claims and whistleblowers have full access to courts and due process. [emphasis added]

Later, in the answer to the above question, the MIT report asks “Are we misleading students and community members by advertising one kind of community and enforcing rules more appropriate to a different kind of community?”

This seems to be the question not just for the MIT community, but for all Americans.

Course Files for Stanford CS 193P iPhone / iOS App Development Winter 2010

Stanford was kind enough to release all of its CS 193P iPhone / iOS Application Development course under Creative Commons.  The lecture videos [iTunes link] are available for free download through iTunes U.

When I went in search for the course files, I found them all individually linked on the course downloads page.  Since I don’t want to have to return to this page, I used a Firefox plugin to download all of the files and then organized them into folders. The result is one single archive for you to download.

Download – Stanford CS193P.zip – 81.3 MB

Most people are going to get an error when building projects from this set: “error: There is no SDK with the name or path…” Gonzalo Gasca posted a four step solution to this:

1. From the Projects menu in XCode, choose “Edit Project Settings”
2. Click on the “General” tab. Near the bottom of the inspector window, you should see the path to the non-existant SDK that’s troubling you.
3. Change the selection for “Cross-Develop Using Target SDK:” to another listed SDK instead of “Other” as it probably currently reads.
4. Click Build, and away you go!

It is nothing short of amazing that this level of educational material is available for free.  I came across the Stanford course after Windows Phone 7 evangelist Paul Thurrott pointed out that Microsoft has a lot of catching up to do in the realm of developer documentation and free training products.  He’s right.