29 April 2010 7:06p Pacific

Adobe: call it Flash 11 already

by Matt Sherman

I feel like I’ve been hearing about Flash 10.1 forever. The earliest public announcement I can find is October 5 of last year. That’s over 6 months of development for a point release.

Which is entirely understandable – it’s a “maintenance” release, in the sense that most of the goodness is under the covers. Hardware acceleration, better mobile, more platforms. Sounds like it will fix a lot of performance and reliability problems. Architectural changes are tedious and hard, and they need to be transparent to the user.

Given all the tit-for-tat and publicity that Flash is getting lately (con and pro), this is not a moment too soon. Flash’s credibility and future depends on this release.

So a bit of branding advice: send a message and call it Flash 11.

Windows 7 was a big refinement on an existing, but poorly-regarded, platform. They improved the product and came out confidently on the brand – again not a moment too soon. This is Flash’s moment.

29 April 2010 5:46p Pacific

Standards: why?

by Matt Sherman

There has been some fun stuff today following Steve Jobs missive on Flash and standards. Joe Hewitt (former Facebook and Mozilla dev and rock star):

How it should go: browsers innovate differently, users pick the best one, later W3C standardizes what users chose, losing browsers conform.

Sachin:

Browsers aren't innovating. They are just trying to comply with standards and fix bugs and performance

  • Right now browser updates fix bugs and add application features, but can't enhance the functionality of the web. This is only done by standards boards.
  • Browsers are forced to implement every "standard" that is agreed on, even if it's not the best decision for the platform.
  • Browsers don't add functionality outside of standards because developers wouldn't utilize them. This means they can't innovate.
  • Browsers don't even comply with standards well. Developing for the web is a disaster because every browser has its own quirks and issues. They can't even do one thing right.

Which got me to thinking about the case of web browser standards: what good are they?

On a base level, a piece of software has to comply with some standards to be called a web browser. Can it render HTML, CSS and JS? OK, it’s probably a web browser.

But beyond that, the passion for standardization is about one particular use case: the ability to switch between different brands of software and achieving the same experience.

Think about that. If all browsers do the same thing, why would anyone switch? Do you know any normal (non-techie) person who cares about their web browser? And as browsers converge on standards, they will have even less reason to care.

Switching is a use case that applies to almost no one. And yet we obsess about it.

iPhone apps are not based on a community standard, and they often rock. People certainly like them.

Browser innovation is happening, and I am glad. I love Chrome. It competes on performance and usability. Firefox does the same, plus their add-on ecosystem.

And I understand the downside of inconsistent browsers. As a web dev, I benefit from standards. But does the consumer?

Consider what we are losing: serious innovation. It’s all happening elsewhere. Yes, browser standards do evolve as with HTML5. But as Hewitt alludes to, HTML5 is Flash 2003. If we had waited for HTML5, we’d have no web video.

Heck, I was able to do things with Filemaker in the early 90’s that I still couldn’t do on the Web in the mid-00’s. I traded “rich” for “reach”. Maybe rich is fighting back.

28 April 2010 9:37a Pacific

Tip: random sort order in C#

by Matt Sherman

I wanted to randomize the display of a List on my site – meaning I would retrieve (say) 20 records, but display only 5, chosen at random. I was imagining a loop that generates a bunch of random indexes, which I use to individually pull elements from the list. Yuck.

The solution I found is much more elegant – two lines! To randomize your list, simply:

var rnd = new Random();
myList = myList.OrderBy(x => rnd.Next()).ToList();

To take n random elements:

var rnd = new Random();
myList = myList.OrderBy(x => rnd.Next()).Take(n).ToList();

If you’d like to encapsulate it, you might use extension methods:

public static IEnumerable<T> OrderByRandom<T>(this IEnumerable<T> source)
{
   var rnd = new Random();
   return source.OrderBy(x => rnd.Next());
}

public static IEnumerable<T> TakeRandom<T>(this IEnumerable<T> source, int n)
{
   return source.OrderByRandom().Take(n);
}

Hope this helps.

Note: be careful with IEnumerable here – because it behaves lazily, it can cause the randomization to happen multiple times, depending on how you call it. Better to “realize” it using ToList().

27 April 2010 9:07a Pacific

Epistemology in everyday life

by Matt Sherman

In school, (cough) years ago, I did a bit of epistemology. It’s the study of knowledge. It asks the questions “why do we know that?” and “how will we find that out?”.

It’s infused through everything we do, we just might not realize it. A couple of practical examples.

Markets

One big difference between left and right is trust in markets. The left will say “here is what we need, now how do we get markets (people) to go there?”. The right will say “what we need is what the markets (people) say”.

See the difference in epistemology? The left thinks the answer already exists – a priori. The right thinks the answer must emerge – a posteriori.

Programming and security

Resetting a password is actually an epistemic problem. Before you can reset a person’s password, you need to know who they are, with a reasonable degree of confidence. Yet, to know who the person is, to a reasonable degree of confidence, we usually depend on their submitting a password.

Another security issue: SSL certificates. When you go to Amazon.com, and the little lock icon appears in your browser, you are reasonably sure that the site is actually Amazon. Why?

Because Amazon says it is. But anyone could say they are Amazon. So Amazon buys a certificate from (say) Verisign. So now, Verisign is saying, we verify that this is Amazon.

But why do you believe Verisign? How do you know “Verisign” itself is not an impostor? A security person struggles with these questions every day. They are doing epistemology.

Lawmaking

From the NYT today:

The premise of the current financial regulatory reform is that the establishment missed the last bubble and, therefore, more power should be vested in the establishment to foresee and prevent the next one.

If you take this as your premise, the Democratic bill is fine and reasonable. It would force derivative trading out into the open. It would create a structure so the government could break down failing firms in an orderly manner. But the bill doesn’t solve the basic epistemic problem, which is that members of the establishment herd are always the last to know when something unexpected happens.

The truth is, there is no “ultimate authority” out there – there are only degrees of confidence in what you know. And as long as time moves only in one direction, there will always be the question of discoverability and uncertainty. The smartest people I know are the ones who think this is worthy of exploration.

26 April 2010 2:14p Pacific

Dear tech journalists: please announce a one-year, self-imposed Apple embargo

by Matt Sherman

San Mateo county police, presumably at the bidding of Apple, broke open the front the door of the home of the editor of a technology blog and seized his property. This is in relation to Gizmodo’s revelation of what is presumed to be the next iPhone.

On its merits, Gizmodo may well have broken the law. However, this incident is over a tech gadget, not some explosive device or human trafficking. It’s a phone, and it’s been returned to Apple.

The only reason to break and enter, as the police did, is for punishment after the fact. There was no stolen property to retrieve. They seized private computers which I presume Jason Chen needs to do his work.

Tech journalists: this is Apple at its worst. They can enforce all sort of onerous secrecy on its employees. It should not be asking police to break into the homes of journalists.

So here’s a very difficult but I think necessary request: do not cover new product announcements from Apple for a full year. They make millions based on the free publicity you provide. In return, you get readership.

Here’s the hard part: consider giving up some of that readership. Think about who your audience is, and the ethical standards that they expect from you. Your best, most loyal readers don’t come to you to hear about Apple’s latest; they can read the press release and watch the commercials.

Give it a think.

25 April 2010 12:17p Pacific

Dear Facebook: let us define the relationships

by Matt Sherman

We’ve begun implementing some of Facebook’s Open Graph on Alikewise, my dating startup. By Dare Obasanjo’s definition, books are our main “social object”.

(The site is based around the idea that a person will associate themselves with any number of books, with the hope that this will inspire notice by other singles.)

Indeed, the Open Graph protocol is a step toward a more semantic web by allowing us to put agreed-upon metadata into our pages.  What it doesn’t do is allow us to define relationships among the metadata. Facebook reserves this right for itself.

For example, books obviously have authors. There is no way to define this relationship, as far as I can tell. We can indicate that a page is about a book or about an author, but not both. Ditto actors and movies, or politicians and their voting history.

In other words, one page = one freestanding social object. We need more.

On my site, I’d like to associate a person with any number of books, in a way that is meaningful outside our site. (A person might choose to identify themselves via Facebook, Twitter or any OpenID, for example.)

Then, any third-party site could aggregate a profile of a person based on Alikewise’s information and others. One might Google “people who like Catch-22” and get more meaningful results.

The Open Graph is helpful in that it pushes a semantic web forward, using Facebook’s market power. And via its Like button, Facebook can indeed relate people to social objects. I would like this ability extended beyond Facebook’s firewall.

20 April 2010 8:52a Pacific

“No carry-on fees” simply means everyone pays carry-on fees

by Matt Sherman

I can’t imagine why Congress is involved in this, but apparently it’s an outrage that airlines are charging fees for carry-on bags.

The fallacy is that by banning such fees, the consumer is saved money. In fact, it’s the opposite.

Since all passengers will be allowed to carry-on without a separate fee, that fee will simply be built into every ticket, regardless of whether the traveler actually takes a carry-on. Instead of no one paying, everyone does.

The reason airlines like to break out fees is so that they can offer a lower base ticket price. This is not out of goodwill; a lower advertised price will bring more customers.

The airline has a choice: they can charge (say) $400 for a ticket without a carry-on, or (say) $420 for a ticket that includes carry-on. Under the new law, they simply charge $420. It’s not the fee that’s been made illegal, it’s the discount.

I’ve got no problem with such fees. I am glad, for example, that most flights do not offer meals anymore. In the bad ol’ days, you were paying for a crap meal regardless of whether you wanted it. Now, instead, I’ll pay the $8 and get something I like. (I am talking about Virgin here, not sure what others offer.)

The point at which this feels like nickel-and-diming is a marketing question – a “human factor” in my industry. If customers are turned off by such fees, even against their own financial benefit, then the airlines will hide the fees as the proposed law requires.

And on a personal level, seriously: if a person is taking up more room in the cabin, paying more doesn’t strike me as unfair. Consider the reverse: if I am not carrying on and the person next to me is (which slows everyone down), I wouldn’t mind being charged less.

23 March 2010 2:18p Pacific

The point at which your project becomes bigger than your head

by Matt Sherman

I’ve seen it argued that a measure of a good programmer is the amount of “stuff” they can keep in their head at one time.

I don’t mean simple memory – I mean that they can retain a larger mental map of what’s going on. They see more of the dependencies and relationships and elements of their project at once, which allows them to write better code and track down issues more quickly.

The evidence for me is when I don’t recall how (or whether) I’ve solved a particular problem. So I am looking for an term to describe this tipping point.

It’s an important moment: it’s the one where entropy tends to set in. You no longer know that some distant piece of logic is correct; rather, you have to trust that the you-from-a-month-ago did good work.

And it’s scary. Often, I am pleasantly surprised to find that what I did was pretty good. Similarly often, I wonder what the previous me was thinking.

It’s also a big deal organizationally. Your product now has a scope that exceeds one person’s grasp, which I believe to be a fundamentally different beast.

Getting over this hump is hard. Before the hump, you can depend on one person’s sheer mental prowess to produce a great product. After the hump, their brain is no longer enough and must be replaced by things like procedures and external discipline. Yuck. :)

23 March 2010 1:48p Pacific

Entrepreneurship and health care

by Matt Sherman

Some folks are putting forward theories that the new health bill will increase entrepreneurship in the US, as individuals are freed from reliance on large employers for health care. I think the theory is both wishful and unempirical.

The glib (but correct) answer is that, if this were true, Silicon Valley would be in Europe.

The longer answer is that the theory is myopic; it looks at a very small part of the picture.

To be clear, I do agree that “job lock” is an impediment to entrepreneurship. I greatly prefer that insurance be tied to individuals instead of employers. But on balance, going out on one’s own will become more, not less, risky due to the new health plan.

First, the mandate will require young, healthy people to pay for insurance that doesn’t benefit them. (The debate over whether this is just from a societal perspective is not part of my discussion; I am simply looking at what I believe are likely outcomes.)

Many entrepreneurs (this one included, except for the “young” part) are willing to forgo health insurance for some time while they start their businesses. It’s a calculated, chosen risk.

Under the mandate, this path is not possible. Many entrepreneurs will now have greater personal expenses that they would have otherwise, and this will reduce the pool of risk takers.

Second, insurance rates will increase. I understand that many people believe otherwise, but there is no historical evidence for this in the US. Massachusetts, which enacted a similar plan a few years ago, now has the highest insurance rates in the country. This is more money out of founders’ (and funders’) pockets.

The third reason, and the one which gets to the heart of the issue, is that trillions in new health care costs will simply drain other parts of the economy. Taxes (or interest rates, or both) will increase. This reduces available capital and reduces the rewards for risk-takers.

The cost/benefit ratio of trying something new and crazy – like, say, Google – becomes larger. If a founder (or funder) has a 1-in-10 chance of making 20x their investment, they might take that bet. If the numbers become less appealing, there will be a concomitant reduction in the number of bettors.

Put another way, funding that would have gone to entrepreneurship will be wicked away to other places.

In terms of evidence, I would offer this: we have a long history of immigrants coming to the US to do something great. They include Sergey Brin at Google, Jonathan Ive at Apple, Andy Grove at Intel, Pierre Omidyar of eBay and Linus Torvalds of Linux fame. I am not aware of entrepreneurial talent flows of that scale in the other direction, though of course I may be ignorant.

I am sure that there are a number of people for whom the new health care plan will encourage striking out of their own. But I believe their numbers will be dwarfed by those who don’t, or can’t, for the reasons above.

17 March 2010 8:24a Pacific

The artificial distinction between “content” and “delivery”

by Matt Sherman

In the arguments over net neutrality, the discussion is often around “content” vs “delivery”. The concern  is that the delivery people (ISPs) might cut off or otherwise extort the content people. Eg, what if Comcast slowed down YouTube so it could push its own video?

It’s a distinction that exists only in the mind. In the real world, the boundary between content and network is both artificial and fading quickly:

…if Google were an ISP it would be the third largest in the world and the fastest growing — if you are measuring the amount of traffic passed from its network to another. […]

Now much of that traffic is due to YouTube, since when you measure by traffic a three-minute long video is the equivalent of thousands of pages of search results, but that’s still a staggering number for a single company.

Moreover, Google has a dual strategy for moving away from paying top-level internet transit providers to serve as the middleman between its servers and the world’s consumer ISPs.

Now, more than half of its transit traffic is sent to those networks via direct peering relationships, according to the data ISPs provide Arbor Networks anonymously.

This seems like a decidedly non-neutral arrangement, no? A content provider gets its bits to you with higher priority than its competitors’ bits, due to its deep pockets. This is true of any CDN, btw.

Let’s be clear: I am all for these developments. They are great for the consumer. On a truly neutral network, however, they would be illegal.

(A technical aside: I know that arguments for neutrality are usually about QoS or another prioritization system. What’s the difference between a bit that gets to you quicker because of QoS, and one that gets to you quicker because of the CDN down the street? In both cases, the content provider is buying special access.)

The point is even more academic because the delivery people have much less power than the content people, and yet the content people want neutrality legislation written in their favor. If Comcast were to cut off YouTube, they’d go out of business. If YouTube chose not to serve Comcast customers, they’d get bad press and lose exactly no money.

Tell others

TwitterTweet this page
Digg!Digg this page
TwitterAdd to Google Reader

Experimental! Let me know how it works for you.

Shorten this page's URL

Learn more about the TinyASP URL shortener

ASP.Net jQuery Controls

Implement jQuery effects using familiar ASP.Net server controls. Learn more...

Recent posts

Avoiding “magic strings” in jQuery, C# and ASP.net MVC

Alikewise learnings #1: DIY PR

Sherman’s law of prior knowledge, or, predicting the past

The busiest people at Apple right now…

When “infographics” jump the shark

HTTPS is the least of your problems

Stacking up

Beware the truth-tellers

more...  

About us

ClipperHouse.com is brought to you by Matt Sherman and Fernando Chilvarguer, among others. Contact us here.