Movie Review: The Hunger Games

This weekend I went to see “The Hunger Games” with our oldest son (12).  His twin sister separately saw the movie as part of a friend’s birthday party.  For anyone who has been behind a gigantic rock, er, I mean doesn’t have children who are fans of Suzanne Collins’s novel on which the movie is based, here is a brief plot summary.  The Hunger Games is set in a post-apocalyptic version North America.  The region is now divided into 12 districts and ruled by a dictatorship located in the “Capitol.” As a way to assert its power over the districts and as a form of entertainment, the Capitol annually conducts a fight to the death among 24 children chosen from the districts - a boy and a girl picked by lottery from each.

I hadn’t read the book (which is reasonably popular among adults as well) but knew the contents well based on previous conversations with our kids.  So I went into the movie very curious about how the central plot device of children killing each other would be realized on the screen.  The answer definitely requires post movie conversation with children who have seen it.  Except for a few jump cuts and one slower (yet serenely peaceful) death, the games seem largely like a more amped up version of hide and seek. At the screening that we went to there was loud applause from the audience at several of the killings.  When I asked my daughter, she said the same was true at her showing and initially she didn’t see anything problematic with that, arguing that “it’s just a movie” and “those were the bad guys.”

Eventually though we talked about how it is really somewhat disturbing that we could find ourselves at so easily enjoying entertainment that features children killing each other.  We discussed how the plot is based at least in part on the historic precedent of gladiators in ancient Rome (who were largely from the Roman colonies) and that the enjoyment of watching gladiators kill each other is not that long ago at least on an evolutionary time scale.  Even today we have echoes of that both in professional wrestling (which despite being staged exerts a huge toll on performers) and in mixed martial arts.  Now I am not faulting the movie or the book — which I am now fairly eager to read — for sucking the viewer or reader into this enjoyment.  But letting it go unchallenged afterwards I think would be a big missed opportunity for discussion and learning.

One reason I believe that my daughter was more defensive during the discussion than my son is that the movie presents a strong and compelling female protagonist in Katniss Everdeen who volunteers to replace her sister in the fight.  In our showing it was clear that the audience had a lot of girls in it who felt empowered by watching this heroine.  While the context may be a bit off, as the father of a daughter I always welcome that and Jennifer Lawrence is great in this role (and was fantastic in Winter’s Bone).  There are lots of other things here that one can talk about afterwards:  the decadence of the people in the Capitol; the story of Spartacus.; the fascist architecture of the Capitol.; the manipulation of the game by the “game maker” and the role of the dictator. 

Overall verdict: The Hunger Games is definitely worth seeing but I strongly recommend sending an adult along and having a discussion afterwards.  Given how widely this movie is being viewed, I hope that schools will serve that role for the many kids who will not have a conversation with their parents.

Posted: 26th March 2012Comments
Tags:  movie review the hunger games

Offense is the Best Defense for Startups

Once in a while I find myself in a product or strategy or biz dev discussion at a startup which goes something like: “we are doing xyz to defend against <name of other startup or big company>”. My reaction is to ask whether xyz is also part of what the startup was trying to build in the first place. If the answer is no, then I will argue strongly that they shouldn’t do it at all.

Why? Startups have very limited resources. They succeed by putting all of those resources into a singular effort. That means being on the offense and building the product or service that they believe will succeed in the market. So it’s OK and sometimes even necessary to double down on offense based on a perceived or real threat by another player. For example, if you are web only right now but a mobile client is on your roadmap you may want to accelerate that.

But it’s not a good idea to expend resources on something that you weren’t planning to do just to attempt to stall a potential competitor. For instance, spending time on a partnership with a large company to prevent them from working with someone else is a serious misallocation of resources. Same goes for developing features because someone else has them or is talking about having them if these features aren’t part of the vision for the product.

Here is another way to think about this. As a startup you don’t really have anything to defend yet. You don’t have some large customer base or revenue flow that is supporting your cost structure and organization. That is exactly what gives you the freedom to pursue something disruptive. The second you start acting defensively you are throwing away that very freedom and acting more like an incumbent with all of the attendant problems.

Posted: 22nd March 2012Comments
Tags:  startups strategy

Choosing Our Information-Based Future: Utopia or Dystopia?

We are at a perilous fork in history where many of the choices that we are making now and in the coming years will determine whether we are headed towards an information-based utopia or dystopia.  It is not any single choice that matters but rather their cumulative effect and how these choices interact with each other.  

Here is how I see the two possible extreme future states of the world:

Utopia. Transparent information sharing. Global collaboration. Renaissance of arts. Reputation more important than money. Sharing of resources.  Democratic networks replacing autocratic hierarchies.

Dystopia. Widespread use of encryption. Pervasive secrecy and distrust. Splintered and isolated sub-networks. Information and intellectual property used for control and power. Dictatorships and rule by special interests.

Now you may say that these are caricatures of the future and I would agree that they are extreme depictions.  But what I am getting at is that there are strong complementarities between different aspects of an information-based society.  For instance, you cannot have widespread use of encryption and simultaneously broad sharing of resources.  Why? Because the latter is based on an open flow of information where new systems can easily be built on top of existing ones.

Lots of little choices will matter here not just by politicians but by all of us.  As endusers, do we buy general purpose computers or locked down devices?  As content producers, do we insist on hardline copyright enforcement or do we work on facilitating legal purchases? As developers, do we work on encrypted and isolated networks or on platforms for transparent collaboration? As investors, do we care only about financial returns or also about growing communities?

Each of us will be presented with many of these seemingly small choices.  What we each decide to do will determine the future we all live in.  The more we embrace the utopian vision the better our chances of actually getting there!

Posted: 21st March 2012Comments
Tags:  future society

Tech Tuesday: Javascript

The topic of last week’s Tech Tuesday was CSS, which determines the look and feel of the content of a web page (where the content itself is described in HTML).  Today we will learn about Javascript, which is a programming language that lets us control the behavior of the web page (both by itself and in reaction to what the user does).  Together HTML, CSS and Javascript determine what a web browser does in Steps 7 and 8 of the web cycle.

What is a programming language?  It is a language that lets us tell a computer what to do which is really all that programming is.  Javascript was originally developed specifically for telling a web browser what to do, but it is a completely general programming language and has more recently been used to program servers.

Let’s jump into a simple example that will allow us to illustrate the basic idea.  Say we have a web page with a list of headlines.  For each headline we also have a summary of the story but we only want to show that when someone clicks on the headline so that we can show more headlines and make the page less cluttered.  Now we could make each headline a link and set off a web request cycle to go to a new page for that headline but that would be slow and clumsy.  As an alternative we could put the headlines at the top of the page and the summaries below and use URLs with fragment identifiers to jump to the summary but that too would make the page scroll around like crazy.

With Javascript we have another alternative.  We can keep each summary below its headline but have the summary be hidden and show it only when someone clicks on the headline.  How would that work?  Let’s first take a look at how we might structure the HTML, i.e. the content itself:

<h1>First Headline Goes Here</h1>
<p class="summary" id="first">First summary goes here</p>
<h1>Second Headline Goes Here</h1>
<p class="summary" id="second">Second summary goes here</p>

This looks very similar to the HTML we have seen with some extra attributes thrown in which we will use in a second.  In order to keep the summaries hidden when the page first loads, we will use some CSS as follows

.summary { display: none }

The .summary is a CSS selector, that picks out all the elements on the page that have the class=”summary” attribute set.  By styling these elements with “display: none” we get the web browser not to display them.  But they are still part of the HTML and so they are sitting right there on the page, just not visible.

Now we need to sprinkle on a tiny bit of Javascript to let us make a summary visible when the headline above it is clicked.  Here is what that might look like:

<h1 onClick="document.getElementById('first').style.display='inline';">First Headline Goes Here&lt/h1;>

We have added a so-called Javascript event handler to the h1 element. I will explain how this works step by step.  onClick is an attribute that lets us set the Javascript code to be executed when the text of the h1 element is clicked by the user.  The code itself consists of a single expression which modifies the value of the CSS display property of the summary by setting it to the new value “inline”.  As soon as that happens, the web browser takes the previously hidden summary and displays it.

We can unpack the Javascript expression a bit more.  Document refers to the HTML  (technically it refers to something called the Document Object Model or DOM but we will get to that in a future Tech Tuesday).  The getElementById(‘first’) then gives us access to the element with the specific id attribute of first, which is the <p> containing our first summary.  And finally .style.display refers to the display style of that element.

Now this is not what you would actually do on a production web site, but you get the basic idea.  In reality you would use a library such as jQuery to deal with issues of browser compatibility and to write more elegant code that doesn’t have to be repeated for each summary.  Finally, much like with CSS you would not throw the Javascript right into the HTML but separate it out into its own file which the browser requests separately from the web server. 

Now if you want to learn Javascript, I highly recommend you head on over to Codecademy (a USV portfolio company) where you can jump right in using just your web browser. It will take you through a series of simple lessons that have you writing code from the very first moment.  Next Tuesday, I am planning to wrap up the web cycle by revisiting the web browser.

Posted: 20th March 2012Comments
Tags:  tech tuesday web javascript

Pornography, Human Trafficking and the Internet

It is easy to dismiss Rick Santorum’s promised war on pornography as more moralizing from a candidate who apparently questions the separation of church and state.  But it exposes an important fault line in thinking about the Internet when seen in conjunction with Nick Kristof’s call in this Sunday’s New York Times for Backpage to stop carrying adult classifieds. At issue here is what constitutes an effective approach to the regulation of content and commerce on the Internet and is closely related to thinking about what comes after SOPA and PIPA.

Let’s start with a baseline assumption here: we don’t ever want to have a China-style firewall around the US that attempts to inspect all content flowing across the network.  If you share the belief that this would represent an unacceptable level of government control and restriction on free speech, then you need to embrace a different approach to both pornography and forced prostitution than currently pursued.  Why?  Because if we attempt to crack down in a simplistic fashion in the US then online activity will simply flow to overseas and/or encrypted sites which will still be accessible here.

Consider what happened following the Attorney Generals’ attack on Craigslist which resulted in the removal of adult services ads.  Backpage picked up a bunch of the business but so did a smattering of other web sites.  In fact, the very AIM Group that Kristof cites in his piece, published the following on February 24th “Sites set combined record for online prostitution-ad revenue.” Not surprisingly, shutting down Craigslist simply moved these ads elsewhere (as an aside: tracking revenue is too narrow a measure as there are many free publication alternatives on the web).  Shutting down Backpage’s adult ads will result in even more new sites springing up. And even if we somehow magically succeeded in getting every US site to stop something that isn’t illegal in and of itself we would ultimately see these ads flow to international sites.

So we can continue to try to fight human trafficking by playing a game of Internet whack-a-mole — which has just as much chance of succeeding as the content industry’s attempt to suppress piracy — or we can try to figure out what the net native approach is.  To attack the problem of pimps forcing women into prostitution we need to come up with the most effective ways for the women themselves to be able to reach authorities and for third parties to be able to detect suspicious activity. One idea for the former is providing anonymous access to help via text messages and widely publicizing this (it would be interesting to work with someone like Alissa from Nick’s column to create this). The obvious idea for the latter is to work with sites like Backpage and not against them.  For instance, it is quite possible that a much better screening system can be created that identifies ads that may involve trafficking based on how the text is written and how the ads are posted.  We won’t know that until we try it out (and big data has gotten very good at picking up even very subtle patterns).

There won’t be a silver bullet though.  As a book review of from the same issue of the New York Times points out, there were 40,000 prostitutes in New York in 1890 (and likely a lot of human trafficking).  But the chances of succeeding are much higher when leveraging the Internet and cooperative US based sites than if these ads run primarily on foreign sites or in dark and increasingly encrypted corners.

The same goes for pornography. I agree that it has potentially harmful effects and admire Cindy Gallop for her tireless efforts behind Make Love Not Porn. As a father of three I would rather they not be exposed to hardcore pornography while growing up.  But to think you can get pornography off the Internet with anything short of dictatorial control is a dangerous misunderstanding.

Keeping the Internet open will ultimately be much more important for the next generation.  It will let them build the networks needed to fight human trafficking and to educate themselves and others.

Posted: 19th March 2012Comments
Tags:  pornography prostitution internet regulation

45+10=1 hour (Getting Things Done)

This week I have been trying out a new approach to meetings.  Instead of using up the entire time in the calendar for the meeting itself, I am trying to keep the meeting a bit shorter (45 minutes in the case of a previously 1 hour meeting).  I then use the 10 minutes afterwards for the immediate follow-up actions that came out of the meeting while the person I met with is still there.  Often that involves sending emails, eg to introduce the person I was just meeting with to someone else.  

I have found this to be very effective so far as I don’t wind up with a pile of things at the end of the day.  Also, often as I try to take the follow-on I come up with a clarifying question and with the person still here that doesn’t involve yet another email roundtrip.  What about the remaining 5 minutes?  Those give me a chance to take care of whatever needs quick attention before the next meeting (again in order to avoid too many things piling up). 

Posted: 16th March 2012Comments
Tags:  GTD

Audio

[Flash 9 is required to listen to audio.]
G-BOF (Gummy Bears on Fire)

—Woof Woof BDAY

Song written and performed by our kids for Susan’s birthday yesterday.  It was definitely the best present (followed by my scooping up a 212 number for our home line).  Hat tip to the wonderful Keith Witty for working with the gang on this!

And of course: I ordered “The Vibe” iPhone case from Shapeways with part of the waveform.

Posted: 15th March 2012Comments

Yahoo Facebook Patent Battle: Mobilizing Engineers

If Yahoo had any shred of credibility left with developers then it has succeeded in destroying that with its misguided patent lawsuit against Facebook.  But the suit isn’t all bad.  It has the potential to become a catalytic event for broader social awareness of the perils of software patents, similar to how the SOPA/PIPA battle moved copyright and its enforcement into more of a mainstream issue.  That was sort of the gist of Mark Cuban’s post.

The first group of people who should really start to get engaged are engineers. After all, they are the one’s whose work becomes — as Andy Baio put it — “weaponized” in the hands of corporations.  A first step here might be to change how patent assignment works.  Engineers at a startup could require that assignment is made only for defensive purposes instead of unconditionally. This would prevent the kind of fate that befalls so many of the patents when companies are either acquired, get into trouble or fail (and their patents are acquired by a non-practicing entity, better known as a troll).

As another approach (albeit one that might take more time to construct), companies could assign their patents to a pool that would be used for defensive purposes only.  RPX does something along those lines but seems to be geared at big corporations and in RPX’s case the patents are still available for offensive purposes as well (at least as far as I know).

Between mobilizing developers and approaches to peer producing research to invalidate patents, I believe it is possible to build enough outside pressure on the system to achieve some real change.

Enhanced by Zemanta

Posted: 14th March 2012Comments
Tags:  Facebook Yahoo software patents

Tech Tuesday: CSS

In last week’s Tech Tuesday we learned about HTML which is used to describe the content of a web page. Today, we will inspect something called Cascading Style Sheets (or CSS for short) which determines what that content looks like. All of this belongs to Step 7 of the web cycle where the web browser takes the information retrieve from a web server to display the page to the enduser.

For our purposes today we will look at a three item list.  You may recall that the list is defined by the <ul> and </ul> tags and each item is enclosed with <li> and </li> tags.  Without providing any additional information, the list will display something like this:

  • First list item
  • Second list item
  • Third list item

Now that’s a pretty boring looking.  What if we wanted a list without bullets and instead have each item in a blue box with white text?  How would we tell the web browser to display our list that way? In order to do that we need to apply so-called “styles” to the HTML elements.

In the early days of web design and web browser technology (pre-CSS), there was already some support for styling elements but it was done by adding “style” attributes to the HTML elements themselves.  So for instance, I can get white text on a blue background by adding a style=”color: white; background-color: blue” attribute to each of the <li> elements in the list. I would love to show what this looks like, but as it  turns out, I can’t insert a style attribute in the post (Tumblr’s HTML editor throws these attributes out).  So a description of how it works will have to do.

Now there are several things wrong with the approach of adding style attributes directly to the HTML elements (known as an “inline” style).  First, all those style attributes would really clutter what your HTML looks like and make it much harder to read.  Second, what if you later want to change what the list looks like?  You would have to go back and change the style attribute for each list element.  Now imagine a web site with hundreds of lists on it.

So that’s where CSS comes in.  CSS allows style information to be separated out from the HTML using a very simple yet powerful syntax: one or more selectors are followed by a list of properties and their values.  Huh? I will explain each of these in turn.  A selector determines which HTML elements the style should apply to.  So for instance, the “li” selector applies to all <li> elements.  A property is something like “color” or “background-color” and the value is what you want that property to be, e.g. “white.” The list itself is enclosed in parentheses and properties are separate by semi-colons.

So here is the CSS expression that would make every list item have white text on blue background:

li {color: white; background-color: blue}

But where does that expression go? There are two possibilities.  We could embed it in the HTML by enclosing it with <style> tags as in <style>li {color: white; background-color: blue}</style>.  That would still mean that for a site with many pages we would have to copy this style section and add it to every page.  Thankfully we can instead separate all the styles out into their own file and only include a reference to that file as follows

<link rel="stylesheet" href="http://example.com/css/style.css" type="text/css" />

Generally these references to external style sheets go into the <head> section of an HTML page.  The web browser then makes a separate HTTP request to retrieve the style sheet.  Now we can gather up all of our styles in one place and just add this reference to every page.

Now despite its deceptively simple syntax CSS is incredibly powerful and can dramatically change the look and feel of a site.  For instance, all of Tumblr themes work via CSS.  For a dramatic illustration you can head over to the CSS Zen Garden and explore a single site with dramatically different look and feel all based on CSS. The reason this is possible is because of the many different types and combinations of element selectors supported by CSS.

If you want to learn more about how to actually style a list there is a great introduction that ends with a list with white text on blue background (as I had promised above).  Next Tech Tuesday we will look at how to add behaviors to a web page using Javascript, which is a programming language.

P.S. Curious why it is called “Cascading”? Because you can have multiple CSS selectors referring to the same HTML element resulting in a “cascade” of styles for that element.

Posted: 13th March 2012Comments
Tags:  tech tuesday web css

Edmodo Platform: Connecting Developers to the Classroom

I love it when a plan comes together.  The plan in question is the Edmodo Platform. When we invested in Edmodo in the fall of 2010, the company was just beginning to really grow its network of students and teachers.  One frequently asked question was how Edmodo would be able to keep offering its features for free.  I remember going to the ISTE conference in 2011 and having several teachers come up to me concerned that they would have to stop using Edmodo once it would start to charge.  I assured them that Edmodo would always stay free and that the company would find other ways to make money.

Well, the team has done an amazing job both building out the network, which now has over 6 million members, and also laying the groundwork for the Edmodo Platform.  That involved a ton of development work on the APIs which allow third-party applications to connect to Edmodo’s features and education social graph.  It also required building out partnerships with third party developers.  The current soft launch of the platform includes over 35 partners that have built applications.  Some of these apps will be free and others paid and that will be how Edmodo can maintain the network.

Nic Borg, Edmodo’s co-founder and CEO, announced the platform at SXSWedu where Edmodo hosted the closing BBQ.  You can find coverage of the Edmodo Platform at Forbes, Fastcompany and Mashable.  I am super excited about this as it will allow developers to reach the classroom directly without the need to sell to schools or districts or states.

Posted: 12th March 2012Comments
Tags:  edmodo platform apps education

Newer posts

Older posts