Skip links

Dave's blog

Find me elsewhere

Find me on Google+

Google+ lets me blog, tweet and more. I'm increasingly active there, and will one day integrate my blog with it, once there's a good API.

In the meantime, find me there. I opine about Google+ itself and more:

https://plus.google.com/113036687767024592371/posts/g2LDubpiPiq

https://plus.google.com/113036687767024592371/posts/C4tLvvNwSmW

An entirely new converging world

I recently read (in the Economist, my hands-down favorite magazine publication) this great profile of Hans Rosling, the man behind superb data visualizations about our rapidly changing world via his company Gapminder, which Google acquired back in 2007 and made more broadly available as Google Public Data Explorer.

Read the article, but also check this video with gives you a taste of Roslin's passion for opening up this data and making it truly accessible, and more importantly for what it teaches us about our world -- a rapidly changing, converging world in which the dynamics today are radically different than they were not too long ago. I love this kind of stuff, because it enables us to better understand our world, our future, and it empowers us to make a difference, identify opportunities, effectuate change and progress and it ultimately makes the world a smaller place by making us aware.

Beyond e-mail: Facebook Messages, Gmail and the future

Email has been king, but it's in many ways an archaic technology, and attempts to evolve it have been increasing. By some measures, more people now interact via social networking than by email and for good reason. Social networks offer rich insights into who people really are and give you better control of who you really want to communicate with (goodbye, spam). Your friends and their activity are already there, and so it's only natural to start a conversation in the same place. A social network that is big enough is like a global address book, letting you find someone by name to instantly send them a message. And since you've presumably already defined who you care about most, you can see messages from them first.

With 500 million users, Facebook is the ultimate social network and is in a unique position to take this concept forward and create a robust messaging system. Lo and behold, and widely expected,, they just announced a new Messages feature that looks like it gets a whole bunch right. Center conversations around people, eliminate subject lines and make starting a conversation easier and less formal, and even centralize some of the disparity across email, instant messages and texts. And it seamlessly integrates with email, even giving you the option of being reached at an @facebook.com address. It's well thought out and leverages the strengths of a social network that's supposed to know about who you want to be communicating with.

A revamped Messages feature is just as important as Facebook's recent fundamental revamp of its Groups feature, which begins to let you mold your social network based on how you really interact in the real world. Together, these features begin to transform the social network destination into a really useful communication tool.

While Facebook is adding more robust communication tools to its social networking platform, Google is set to add more robust social networking to its communication and collaboration tools, and thus we have what I think is one of the most important battles for dominance in the future we're creating.

There is no question in my mind that Google is working to leverage its Gmail success and is building an integrated communication tool that is beyond email. (I'd wanted to write a post titled "Google Wave is not dead" making the case that the technologies you previewed in Wave will in fact make their way into a more integrated tool -- it was only "killed" because Google quickly knew that it had no future as a standalone and sprawling product.) They need more social glue to be able to solve the big problem that Facebook has just addressed -- that is, they need to know more about the people you want to connect with to be able to offer more control and less spam -- but if and when they do, they've also got a reputation for creating the best productivity tools that they're sure to back up.

Facebook's greatest strength (i.e. that it is a social network) is also its greatest liability. It's a social destination, not associated with the more mature tools you use day to day in your productive lives, and so it'll be a hard sell convincing people to bring the important people and communication in their productive lives into Facebook. If it can do this successfully (and Groups is a big step towards addressing the problem of "everyone's equally my friend") and if it proves it can create more robust productivity tools (they've got nothing on the scale of Gmail, Docs, Picasa), then Facebook stands a great chance of winning in a future that is unfolding, a future beyond "social" networks towards "actionable" or "collaborative networks".

For now, though, Facebook will remain a social destination. By the looks of it, I'll probably do more communicating via Facebook (and many will choose to do the bulk of their personal communications there), but I won't be prepared to migrate my productive communication in the foreseeable future. In the meantime, Google can wow me with a more network-aware Gmail and a more integrated suite of products, ensuring that they remain the leading provider of the powerful, productive, collaborative tools that are such an important part of our cloud-based future.

Who do you think is in the best position to become the de facto center of your communications in the future?

Update: Here's a full set of screenshots of the new Messages experience on Facebook. It's rolling out slowly over the next few months.

The networks can't stop the future, i.e. Google TV

Re: reports that some of the big networks are blocking Google TV from accessing full shows via their websites, the same websites that are publicly available via any other means of accessing the web, my thoughts are as follows.

This is analogous to a situation where the networks blocked your Samsung LED TV because they hadn't worked out an arrangement w/ Samsung. Or blocked your Firefox browser on a Dell machine because they hadn't worked out an arrangement w/ those respective companies.

Google is not slapping ads on or alongside any existing content. If you're on NBC's site on your Google TV, you're seeing what they choose to show you, including ads they control. Wouldn't content producers want more eyeballs on their decidedly public content?

Sure, Google is in a strong position controlling the interface to that content, and the networks fear this just like big industry has feared most every innovation forever. But what do they fear exactly? Google would never rip out an existing content provider's ads and slap on their own -- it would be an outrageous and self-harming move, and there are laws against that stuff (or will be in a jiffy, at least). Are they afraid of a potential deluge of new eyeballs on their web content, pulling viewers away from their currently more lucrative cable content? I understand that they'd like to control the pace of change themselves, but they all know evolution is inevitable and delivery is moving to the web and so figure out a way to harness these changes and turn it into money.

This won't last long. Market forces will prevail and it simply won't be acceptable to block content because of one's choice of browser. I wouldn't be surprised if a law were introduced prohibiting that, though I think legislation would be ridiculous. And when Google TV supports apps, someone may create a user-agent switcher making it hard for these sites to block it.

TV is converging with Web. There may be a ruckus along the way, but it's happening.

Or as succinctly stated here:

[Br]oadcast networks can’t stop the future, no matter how hard they try. TV viewing habits are increasingly trending towards consumers skipping traditional broadcasts and instead catching up via DVR or web video at their convenience. Forcefully cutting off legitimate points of access like Google TV or Apple TV isn’t going to stop users from skipping live broadcasts. The networks’ time would be better spent looking at how they can take advantage of new viewing trends, instead of hopelessly trying to defend dying business models.

The open versus closed debate continues

I'm sure you've watched the recent exchanges. Jobs blasts Google and Android, and the debate about open versus closed (or fragmented and integrated, as Jobs would have it) continues.

I think this nicely nails it:

http://news.yahoo.com/s/yblog_technews/20101019/tc_yblog_technews/google...

It's almost a debate of capitalism versus socialism. And I think there are merits to both. :)

"I think it's going to be a challenge for them to create a competitive platform and to convince developers to create apps for yet a third software platform after iOS and Android," Jobs continued. "With 300,000 apps on Apple's App Store, RIM has a high mountain ahead of them to climb."

Comments like that will be fun to look back at in an I think inevitable future where all apps are web based, the entire user experience is in fact in the cloud, and comparisons are about hardware instead. The real question might be, who (Apple or Google) is leading the charge into that future? Leave a comment and opine.

A very basic outline of computer programming

Question from a reader who's getting ready to go to college and considering a future in computer science.

I really don't know the first thing about programming or computer science, so if you could give me a very basic outline of what those two things entail it would be much appreciated.

My response:

Google knows better than me. :)

http://www.google.com/search?hl=en&safe=active&qscrl=1&q=define:computer...

http://en.wikipedia.org/wiki/Computer_programming

But here's a go:

Every application (some people call it a program) that runs on your computer (called a desktop application) or on the web (called a web application) has to be programmed, i.e. coded. Meaning, you have to write the logic, the instructions that are then interpreted (i.e. turned into something that works) by the system that the application runs on.

So, for example, Notepad is a simple application that runs only on Windows systems. It was built using one or more programming languages and tools which lets you develop applications for Windows. You need Windows to run that application. By the way, Windows itself is an application, only it's an uber-application of sorts, i.e. an operating system which makes your computer functional and able to run other applications.

The web is a much cooler place to build applications for. One major reason is anything you create for the web just needs a modern web browser to run... and modern web browsers run on every system (Windows, Mac, Linux, even mobile phones). So right away the application you build works for most everyone. Another major reason is that web applications (like Gmail) can be accessed from anywhere, instead of being confined to your computer like a desktop application (like Notepad). That's because the application is really running on some computer out there ("in the cloud" as it's referred to) which serves it to any web browser that requests it (hence it's called a server).

Whether developing for the desktop or the web, there are various "languages", each with their own syntax (style of coding). There are also various "frameworks" or "platforms", which make it easier to write certain types of applications (in certain languages) by giving you a kick start so to speak. They do this by bundling certain core code and providing certain methods that you can then leverage to write your application more rapidly.

Many languages and frameworks are proprietary (owned by one corporation, who licenses their technology and the tools needed to write applications using that language) and many are "open source" (its creators give it free to the world, and many people then contribute to it, making it better for all).

Every application typically has several parts to it, from a programming standpoint. You need a language (i.e. a method of creating instructions) for the logic part of your application (i.e. if this then do this, or if that then do that), which is called a scripting language. You need a database language, for querying the database where all your application's data is stored (e.g. your user's name, their login information, whatever), which you then use in your logic (e.g. if the user is logged in, print "Hello" plus their name to the screen). You also need a display language, because creating nice visual interfaces for your application requires its own mannerisms and programming methods -- so it handles things like font sizes and colors and layouts and graphics and what not. All of this stuff (logic + database + display) works hand-in-hand to form an application. There are many more pieces to the overall puzzle, but that's beyond us right now.

One of the most popular web programming languages (it's a scripting language) is PHP. It handles all the logic for sites like Facebook. One of the most popular database systems is MySQL. Then, of course, there's HTML which handles the display side of the equation for web applications.

Besides HTML, there are some other important pieces on the display side. There's JavaScript, which works within the display side (the HTML) of a web application to handle some logic (e.g. if the user clicks the plus sign, slide out this section of the page). There's also CSS, which also works within the display side (the HTML) and it handles the precise positioning and display of all the elements on the page (e.g. put a 1 pixel border around this element, and position it 5 pixels away from the element above it).

It's a lot of fun -- like building legos, only it can help people and change lives.

I never took computer science, but I learned a lot from mentors who did. It'll give you a firm understanding of how computer systems work, of advanced programming concepts and more. But don't expect it to teach you the languages and skills you'll need to know when you get out of college. For that, you have to play around yourself -- get involved in programming while you're in school, take on a project, contribute to an open source project. Hands on is everything.

Don't let anyone bore you along the way. It's very exciting, very fun, there's many different areas to focus on within it, and it's an ever-growing, every-important part of our economy and of civilization in general.

How's that? :)

My Google birthday cake

My awesome wife, Rebecca, had her cousin Lauren make this dope and delicious cake:

Google cake by Lauren Matalon

Why all the HTML5 hoopla, you ask?

From a reader: I think the case for HTML5 is being a bit overstated. Even if it is widely adopted (which I think it will be) I am not sure how dramatically different the experience will be.. It removes the need for plug-in RIA's like Flash and Silverlight, but that is tantamount to standardization of technology that has more or less been around for years.

From one angle, the whole point is indeed that the experience will be the same. So from a typical end-user's perspective, it doesn't matter a hoot.

It does matter for some end-users from a marketing perspective -- just yesterday I met with a prospective client and they wanted to move their (uneditable, unsearchable, unmanageable) site from Flash to HTML. They'd heard for themselves that HTML itself could do any of the cool stuff like animations, while potentially solving the usual pitfalls of Flash because HTML is more a part of the web -- and they're novice. There's been a perception that if you wanted a cool, "flashy", interactive site (especially for entertainment, fashion, arts) you wanted to go with Flash. That's now going out the door, thanks to fodder from Google and Apple and the broader community, and I welcome that. I would have to explain to clients that they didn't need Flash just because they wanted a rotating feature spot or fading graphics on their website!

And it of course does matter from a developer's perspective and a broader development-of-the-web perspective. The case for HTML5 is largely a developers rallying cry, pushing the community to adopt it and pushing tool-makers to support the standard. Why? A web based on standards makes for a better web -- no more plug-in issues (how many businesses refuse to allow Flash) = less dependencies to worry about, deep integration with every other aspect of the client-side stack = a richer experience, lighter-weight and tightly-coupled to the core standard = easier to deploy and support on all kinds of devices on our fragile web, open versus binary = searchable and editable the web way, standard versus proprietary = legally and forever a part of the open web owned by no one, and so on and so on. Further, it bridges a gap amongst the web development community which is important from a broader industry standpoint.

So the case for HTML5 is a case because that's how evolution and adoption goes. It's as simple as that.

Some HTML5 fun:

Apple's HTML5 examples: http://www.apple.com/html5/
Chrome Experiments: http://www.chromeexperiments.com/
Full-on Quake game w/ HTML5 (must be a geek to compile): http://code.google.com/p/quake2-gwt-port/

If you want to try the Apple stuff on Chrome, change your user-agent to trick the site into thinking you're running Safari with this extension: https://chrome.google.com/extensions/detail/aafciojnlamllgpkpdkbamkfgbof...

Recap: Drupal Miami meetup, 4/27/10 @ Incubate Miami

On Tuesday, April 27th, a few of us got together for the latest Drupal Miami meetup. I intended to write a quick recap, and so here it is, just in time for tonight's meetup.

We got together at Incubate Miami for this meetup, a temporary departure from our now-usual location at the Knight Foundation's headquarters. Seated in Incubate's trendy lobby, we promptly got into a discussion about the recent DrupalCon in San Francisco, with attendee Hector sharing a bit about the sessions and BoF discussions he had liked. From there we bantered about -- with myself, Hector, Carol, Vince, Steve, Adam and John all having something to say (sorry if I missed anyone).

Before long, our discussion centered around our proposal to put together a DrupalCamp Miami. We talked about the need to pull in designers, introduce them to the power of Drupal and align with them to strengthen our capabilities and our community. We talked about leveraging Miami's strengths with respect to it having a strong design (fashion, art, music) presence as well as its position as the gateway to (and for) Latin America. I promised to pull together a sort of vision statement, and here's a shot:

DrupalCamp Miami will bring together coders, designers, implementors and all those interested in learning more about the awesome power of Drupal, the leading content and community management platform that's behind some of the biggest and best interactive websites in the world. Miami is a world-class city, the gateway to the Americas and an international center for entertainment, media, music, fashion, film, and the arts. Our vision for DrupalCamp Miami is to bring together implementors from every part of our vibrant ecosystem for two days of intense learning and sharing about building beautiful websites with Drupal.

This is a rough start and we'll evolve it from here. Oh, and here are some pictures of our meetup, along with a photo tour of our gracious host's quarters.