Archive for the ‘Programming’ Category

RIA marketing follies

Sunday, October 28th, 2007

I don’t know anything about software marketing, but if I had to give an impromptu lecture on the subject right now, I’d use the following two posts (with comments) as virtual handouts: Mozilla Labs on Prism and Mike Chambers (of Adobe) on Mozilla Prism and the disingenuous web.

: Difficult to figure out exactly what it is other than expansive and proprietary, so people assume it is an evil attempt to take over the web. Dan Brickley‘s comment on Chambers’ post is illustrative:

Hi thereFrom your post over on Mozilla’s site,

“You do realize that Adobe AIR is as much about HTML, JavaScript, CSS, etc… as it is about Flash / Flex?”

Just as a point of feedback: I had no idea of this. I’ve seen a lot of mentions of Air around the Web of course, but not dug into its official docs. Well I assumed AIR could probably handle HTML, maybe even bits of SVG if you’ve got webkit in there, but I somehow had the impression it was primarily all about Flash. Quite probably I didn’t bother to read up on it properly because, for better or worse, I somewhat expected a Flash-centric agenda, and so didn’t take the time to investigate what I unreflectively figured was “Adobe’s new Flash-based thingy”. If it is more standards-friendly, there’s a chicken and egg problem in getting this news out to developers who may tune out when they hear “Adobe toolkit” on assumption it’ll be Flash-flash-flash. I’m happy to be re-educated anyway :)

Will Air support (interactive) SVG to any level? Or the W3C widgets work (http://www.w3.org/TR/widgets/) ?

Tellingly (in terms of marketing if not reality), Brickley’s questions have gone unanswered.

: Open source and so simple that there’s almost nothing there (open a URL from a desktop icon in a browser with some web navigation features removed) that people instantly “get” it (and the bigger ideas behind it) and looooove it.

I suspect that an AIR application can accomplish the same limited functionality with just a bit more code than hello world and that AIR provides much more. But unless Adobe can effectively communicate what the heck AIR is and exactly how it works with open standards, it will be eaten for breakfast by the slow (for good reason — more fully featured web/desktop integration will raise all kinds of thorny security, synchronization and software update issues) web juggernaut. As some commenters pointed out, the obvious thing for Adobe to do is to “work with Mozilla and other players to standardize these features.”

Then there’s the obvious joke about AIR (although that link does include the appropriate reference to vapor, it concerns something surprising and somewhat — an attempt to make Java Applets — relevant).

Don’t know what any of this is about? Try Rear Guard Applications for perspective.

Moore’s law for software

Monday, August 27th, 2007

There’s been a fair bit written about ‘Moore’s law for software’, usually complaining that there isn’t one. My guess is that’s nuts, but I’d love to see some rigorous analysis (I bet I’m just ignorant of it).

Interesting tidbit from San Jose Mercury-News article two weeks ago Penny-pinching entrepreneurs changing world of venture capital:

Ten years ago, six or seven programmers would have been needed to achieve the results of one programmer today, valley veterans say.

If true, that’s an annual increase in programmer productivity of about twenty percent. Let’s say it’s actually half that due to exaggeration or (adding headcount to a software project doesn’t scale well–though on second thought Brooks’ Law could magnify productivity increases, by allowing teams to get smaller). That would make for a doubling time of about seven years. Not nearly as impressive as Moore’s Law doubling of transistor density every two years, but still exponential. And my wild guess is that it has been fairly consistent over the history of programming.

For my five year old impressions on the matter, see this thread.

Addendum: Depending (in part) on how far back you consider the history of programming to go, of course a consistent doubling time for software (or hardware) doesn’t make sense, but rather . Doubtless Ray Kurzweil has many graphs attempting to demonstrate this for software in his books. I didn’t intend to go there in this post, but it is timely, as I’ll probably attend the Singularity Summit in a couple weekends.

Rear Guard Applications

Saturday, May 12th, 2007

In the mid-90s lots of companies sold attempts to make web development more like desktop or client/server development (e.g., by shoe-horning state, UI builders and controls and object-relational mapping into the web paradigm), when all developers really wanted was a way to reliably to a database from scripts running on a webserver.

10+ years later similar companies have taken a sharp turn (but not 180 degrees) and are now shoe-horning web development concepts (e.g., URLs, markup and other declarative programming) into their desktop and client/server frameworks. This is what it seems to me are about, though admittedly I have not been following all that closely and am even more in the dark about what exactly is “in” the Apollo, Silverlight, or JavaFX “stack” than I was about the specific features of what came to be known as application servers in the late 90s.

I gather there is lots of fear about damage proprietary RIA frameworks could do to the open web. There’s plenty to be concerned about, and RIA vendors and developers should be encouraged to go open source and for maximum interoperability with the web. Perhaps I’m less than worked up because I see proprietary RIA as a rearguard action (NB web applications are complicated for open source completely independent of their use of “rich” frameworks), albeit one that may significantly improve some desktop and client/server application development.

Mike Shaver has a nice post related to this:

The web can eat toolchain bait like this for breakfast. And, if Mozilla has anything to say about it, it will do just that. You won’t have to give up the web to work offline any more, or programmable 2D graphics, etc. Soon you’ll have the power of 3D and great desktop/application integration as well, via projects like canvas3d and registration of content handlers, and you’ll have it in a way that’s built on open specifications and a tool ecosystem that isn’t a monoculture. Why wouldn’t you choose the web, given its record and power and openness?

Shaver’s post also concerns a debate about whether Mozilla should put more of a focus on its , in addition to its applications, primarily Firefox. I haven’t been following closely, but at first glance the debate strikes me as idiotic. XULRunner is just yet another desktop application development platform. Who cares? Yes, I think Songbird is a neat application that also happens to be built on XULRunner. But the web is a far more interesting platform, and Firefox (or to a large extent, just ), not XULRunner, is the client development environment for the web. If Firefox had not been built on XULRunner, how many people would care or notice?

Mozilla has the right focus for another reason, hinted at by Mitchell Baker:

The Mozilla Foundation will continue building the Mozilla platform. And application developers who have high quality improvements to make are very welcome contributors. But the idea of the Mozilla Foundation de-emphasizing applications in order to transform ourselves into a general purpose “platform” organization — giving up the fundamental focus on the human being a application focus provides, reducing our ability to help individuals directly — seems an absolute non-starter to me.

Development frameworks have no moneysearch box.

creativecommons.opportunities

Monday, March 19th, 2007

If working for a new project of a startup-like nonprofit in San Francisco involving [open] education, [copyright] law, and [semantic web] technology, perhaps you should look into applying for Executive Director of CC Learn. I could imagine an education, legal, or technology person with some expertise and much passion for the other two working out.

Student programmers, Creative Commons is participating in Google Summer of Code as a mentoring organization.

It is too late to apply for a summer technology or “free culture” internship, but keep CC in mind for next summer and (possibly) this fall.

Update 20070409: There are three open positions in addition to CC Learn ED above:

SXSW: JavaScript everywhere

Sunday, March 11th, 2007

The Future of JavaScript ran through almost all of the new features in JavaScript 1.7, all of which are nice for programmers but probably won’t be widely used on the public web for a long time (until use of browsers that don’t support JavaScript 1.7 is negligible).

However is being used lots of places now apart from web browsers and giving JS features programmers expect places it well to be the default glue and application language for the next decade on the web, desktop and the server. Where is server side JavaScript? from July 2005 continues to be one of the most viewed posts on this blog. Many people are thinking along these lines, including the first Q&A for this session.

SXSW: Why XSLT is Hello World

Saturday, March 10th, 2007

Arrived about half an hour into Why XSLT is sexy to see in on the projector. What the heck were they talking about for the previous half hour? Left.

I have long wondered about using XSLT as an (untrusted) code distribution mechanism (e.g., acquire and run XSLT as an alternative to invoking a web service), but I suppose performance and functionality constraints make it a really niche case.

GPL Java

Monday, November 13th, 2006

Sun announced today that it is releasing all of the critical pieces of the Java platform under the GPL. This is fantastic news, as a huge number of important and exciting projects are built on the Java platform and now they can be completely free as in free software. Read Tim Bray on the announcement and lots more blog commentary via Tailrank.

This should have happened years ago but as of yesterday it happened sooner than I expected. I set up a play money prediction market on Inkling (the first of two) asking whether Java would be open sourced by the end of this year. The price slowly declined from 60 in May to 20 in late October, then spiked to 70, with a last trade at 81.76 this morning.

I judged the contract at 100, but probably shouldn’t have — much of the code won’t be released until early next year. Oops. Good thing Inkling markets are play money and zero oversight, or Chris F. Masse would rightly castigate me.

Copyright turns us into technology idiots

Saturday, October 28th, 2006

Or do copyright enforcement technologies attract people who would be kooks anyway?

Obvious case in point: DRM.

Now this from Paul Hoffert, apparently associated with “Noank Media”, commenting on Rob Kaye’s blog:

The Noank counting system is unique. We count usage by ALL players. Players can be time-based, such as iTunes, Windows Media, open source, our own Noank player, or your own favorite. They can be Microsoft Word, Acrobat Reader, Photoshop, or any other application program. The Noank client reports consumption of all content within our catalog on Windows, Mac, Unix, or recent cell phone devices.

Rob’s response is too polite:

This is nothing but empty hand-waving, I’m sorry. If you were to hire me to implement this system, I would have to politely tell you that this is impossible. I could not code such a thing and I have over a decade of client application programming experience. Please do elaborate on how you’re going to do this. If you’ve solved this I assume that you’ve already filed for some patents, right? What are your patent application numbers? I’d like to look up these exciting details — this is got to be amazing stuff you’re working on!

To which Hoffert responds:

Our tracking system is operational now and we are scaling it for large numbers of users.

Uh huh.

Voluntary collective licensing may have a role to play but I’m afraid I’m going to have to completely write off “Noank Media” before they even have a website.

Copyright mania hass the side effect of reducing perpetual motion research, who knew?

Addendum 20061031: Lucas Gonze writes that collective licensing will never happen. I think I buy his argument:

Users and businesses are moving away from filesharing networks and to the web, where DMCA safe harbor allows many disputes to be resolved peacefully. User-created content has become a substantial part of the media ecosystem over the last few years, and it doesn’t need collective licensing to exist.

Update 20071126: Noank does have a website now and a how it works page that leaves out lots of details but is not implausible. When more details are available I hope to post a retraction. Hoffert’s language was just too easy to make fun of, and that urge turned me into a technology idiot!

Wordcamp and wiki mania

Monday, August 7th, 2006

In lieu of attending maybe the hottest conference ever I did a bit of wiki twiddling this weekend. I submitted a tiny patch (well that was almost two weeks ago — time flies), upgraded a private MediaWiki installation from 1.2.4 to 1.6.8 and a public installation from 1.5.6 to 1.6.8 and worked on a small private extension, adding to some documentation before running into a problem.

1.2.4->1.6.8 was tedious (basically four successive major version upgrades) but trouble-free, as that installation has almost no customization. The 1.5.6->1.6.8 upgrade, although only a single upgrade, took a little fiddling make a custom skin and permissions account for small changes in MediaWiki code (example). I’m not complaining — clean upgrades are hard and the MediaWiki developers have done a great job of making them relatively painless.

Saturday I attended part of , a one day unconference for WordPress users. Up until the day before the tentative schedule looked pretty interesting but it seems lots of lusers signed up so the final schedule didn’t have much meat for developers. Matt Mullenweg’s “State of the Word” and Q&A hit on clean upgrade of highly customized sites from several angles. Some ideas include better and better documented plugin and skin APIs with more metadata and less coupling (e.g., widgets should help many common cases that previously required throwing junk in templates).

Beyond the purely practical, ease of customization and upgrade is important for openness.

Now listening to the Wikimania Wikipedia and the Semantic Web panel…

Constitutionally open services

Thursday, July 6th, 2006

Luis Villa provokes, in a good way:

Someone who I respect a lot told me at GUADEC ‘open source is doomed’. He believed that the small-ish apps we tend to do pretty well will migrate to the web, increasing the capital costs of delivering good software and giving next-gen proprietary companies like Google even greater advantages than current-gen proprietary companies like MS.

Furthermore:

Seeing so many of us using proprietary software for some of our most treasured possessions (our pictures, in flickr) has bugged me deeply this week.

These things have long bugged me, too.

I think Villa has even understated the advantage of web applications — no mention of security — and overstated the advantage of desktop applications, which amounts to low latency, high bandwidth data transfer — let’s see, , including video editing, is the hottest thing on the web. Low quality video, but still. The two things client applications still excel at are very high bandwidth, very low latency data input and output, such as rendering web pages as pixels. :)

There are many things that can be done to make client development and deployment easier, more secure, more web-like and client applications more collaboration-enabled. Fortunately they’ve all been tried before (e.g., , , , others of varying relevance), so there’s much to learn from, yet the field is wide open. Somehow it seems I’d be remiss to not mention , so there it is. Web applications on the client are also a possibility, though typical only address ease of development and not manageability at all.

The ascendancy of web applications does not make the desktop unimportant any more than GUIs made filesystems unimportant. Another layer has been added to the stack, but I am still very happy to see any move of lower layers in the direction of freedom.

My ideal application would be available locally and over the network (usually that means on the web), but I’ll prefer the latter if I have to choose, and I can’t think of many applications that don’t require this choice (fortunately is one of them, or close enough).

So what can be done to make the web application dominated future open source in spirit, for lack of a better term?

First, web applications should be super easy to manage (install, upgrade, customize, secure, backup) so that running your own is a real option. Applications like and have made large strides, especially in the installation department, but still require a lot of work and knowledge to run effectively.

There are some applications that centralizaton makes tractable or at least easier and better, e.g., web scale search, social aggregation — which basically come down to high bandwidth, low latency data transfer. Various P2P technologies (much to learn from, field wide open) can help somewhat, but the pull of centralization is very strong.

In cases were one accepts a centralized web application, should one demand that application be somehow constitutionally open? Some possible criteria:

  • All source code for the running service should be published under an open source license and developer source control available for public viewing.
  • All private data available for on-demand export in standard formats.
  • All collaboratively created data available under an open license (e.g., one from Creative Commons), again in standard formats.
  • In some cases, I am not sure how rare, the final mission of the organization running the service should be to provide the service rather than to make a financial profit, i.e., beholden to users and volunteers, not investors and employees. Maybe. Would I be less sanguine about the long term prospects of Wikipedia if it were for-profit? I don’t know of evidence for or against this feeling.

Consider all of this ignorant speculation. Yes, I’m just angling for more freedom lunches.