Microsyntax — Informally Canonizing Linguistic Evolution

A new website, Microsyntax.org is opening its doors. It aims at an attempt to offer some canonization to emergent linguistic conventions that grow organically on Twitter.

Stow Boyd, the site’s founder and only present author, writes:

… [W]e are launching a new non-profit, Microsyntax.org, with the purpose of investigating the various ways that individuals and tool vendors are trying to innovate around this sort of microsyntax, trying to define reference use cases that illuminate the ways they may be used or interpreted, and to create a forum where alternative approaches can be discussed and evaluated.

I’m fascinated by the mission of Boyd’s new site because it implicitly reframes language as action — an event unfolding — rather than a thing. It is a recognition of order emerging from chaos, aiming to assist its development and refinement.

This perspective stands in compelling contrast with arguments that are critical of the influence that technologies such as Twitter (or texting, instant messaging, and the rest) are affecting upon the modern written language; particularly as practiced by young people still in school, who are likely to apply these linguistic practices in “inappropriate” contexts, such as when writing papers.

The main reason language (both written and spoken) serves humankind’s communications needs so well is that we’re able to largely agree upon practices around how to encode and decode ideas, such that their meanings largely survive the transmission.

Notably, Boyd’s new website seeks to bridge the gap between emergent linguistic practices and informal canon.

[via TechCrunch]

Symfony Components - Standalone Libraries for PHP

The Symfony project has recently launched the Symfony Components sub-project and website. Its goal is to produce a collection of standalone libraries for PHP.

Although these libraries were initially born for use in the Symfony MVC framework, the talented developers involved in the project have designed them to avoid any interdependencies with any of the other parts of the overall framework. This effort has resulted in components that may be used individually in any other PHP project without requiring the use of any of the rest of the Symfony framework.

The initial round of components include:

  • YAML, a parser that translates data between YAML and native PHP arrays;
  • Event Dispatcher, which provides a generic event dispatching framework; and
  • Templating, which provides parameterized and scope-isolated templating functionality.

I’ll be keeping a keen eye on this project.

Crowdsourcing the Undead

CNN has posted an article about a new zombie movie, called Colin, that is causing a stir at this year’s Cannes festival.

But this isn’t your father’s zombie movie:

Online social networking was an invaluable tool in both generating buzz and cheaply sourcing the undead: “We went on Facebook and MySpace and said ‘Who wants to be a zombie?’”

Oddly, I’ve recently mentioned in three separate conversations to friends how I really want to be in a zombie movie before this life is done, so I’m a little chuffed to have missed out on the casting call.

Here’s the trailer:

It also apparently cost a mere $70 US to produce.

Marc Price, the film’s director, explains that the money was spent on “…a crowbar and a couple of tapes, and … some tea and coffee as well – not the expensive stuff either, the very basic kind… Just to keep the zombies happy.”

There’s something deliciously brainy about crowdsourcing the undead.

A Fear of the People

The Iranian government has blocked access to Facebook. This in the run up to its June 12 presidential elections.

The blessing hiding behind the headline to this story is that this action boldly demonstrates just how much Ahmadinejad’s administration fears the thought of what may be possible if its governed citizens have the opportunity to communicate with each other in such a public and open forum.

Good luck ousting the douche bag, Iran.

Data.gov Launches

I’m so excited about this, I couldn’t wait to post about it before diving in. I present proudly to you Data.gov.

From the site’s home page:

The purpose of Data.gov is to increase public access to high value, machine readable datasets generated by the Executive Branch of the Federal Government. Although the initial launch of Data.gov provides a limited portion of the rich variety of Federal datasets presently available, we invite you to actively participate in shaping the future of Data.gov by suggesting additional datasets and site enhancements to provide seamless access and use of your Federal data. Visit today with us, but come back often.

Thank you, Obama Administration, for sincerely treating federal data as belonging to the People.

Pimping the Mini's MIE: Adding Flock

I broke down and hacked my MIE. But just a teeny bit, though: I simply installed the Flock browser and added it to the application launcher.

I needed to know it could be done.

Having satisfied my need to see the proof-of-concept, I intend to return to using the non-hacked configuration (by disabling what I’ve done) for a little while longer, while I complete a review period during which I use the computer with only the applications found on the default system.

That said, I will mention that am rather pleased with the initial results of my efforts in hacking this thing.

Once I’m done assessing its performance and capability as configured in its “out-of-the-box” mode, I intend to hack the hell out of MIE. Maybe I’ll even manage to fix the damned issue I’m encountering with the Mail widget on the home screen that HP’s customer support facilities have utterly failed at helping me resolve… but I’ll get into the saga of HP’s epic failures at customer support in a future post.

Read More

sfPropelLazyHydrationIteratorPlugin — Lazy Hydration, Made Concise

I’ve recently been working on Symfony / Propel projects that deal with particularly large data sets. In such cases, Propel’s documentation recommends a “lazy hydration” approach.

This “lazy hydration” of Propel’s looks like this:

// query all the author entities as a Creole ResultSet
$rs = AuthorPeer::doSelectRS( new Criteria() );

while( $rs->next() )
  $author = new Author();
  $author->hydrate( $rs );
  echo "{$author->getLastName()}, {$author->getFirstName()}";

The code above does the following:

1. it queries the database for all records in the author table, and loads it into a Creole ResultSet object.
2. enters a loop, iterating over each result (ie, table row) in the ResultSet, and with each of its records, it:
1. creates a new, empty Author object
2. hydrates the empty object with the data in the ResultSet‘s current row
3. writes the author’s last and first name to the output buffer

In this way, only one Author instance is in use at any given time. Each iteration discards the previous instance and creates a new one.

But I hate it — it’s ugly and unwieldy.

This overt use of the ResultSet object is an awkward practice when using an ORM. The primary design goal of ORMs is to allow the developer to work at a higher level of abstraction than SQL queries and database result sets.

So what should it look like?

Read More

Google's Netbook Forecast: It's Cloudy and Chrometastic

Jason Kincaid writes about the insights of Google CEO Eric Schmidt:

[Schmidt] talked about Netbooks… saying the the unit numbers were becoming material and that use cases were “consistent with the cloud computing model” that Google is focusing on with Google Docs, Gmail and other services.

And this isn’t some smokescreen or distractionary tactic; Schmidt’s words are true to Google’s actions. Why do you suppose Chrome is designed to spawn each of its tabs as a separate process on its host OS? [jump to 1:40]

Google sees “cloud computing” (read: Chrome) as the platform for the netbook, not Android.

With the offline storage capabilities coming in HTML5, it seems thatweb browser operating systems are less laughable by the day.

Family Planning: Start With One

John Gruber recently published a characteristically insightful piece about the Verizon iPhone rumors in the press earlier this week. Speaking to rumors of what Business Week has called the “iPhone Lite,” Gruber revisits Apple’s introduction of the iPod Mini, which was the event that turned the iPod from a single product into a product family.

He writes:

The formula behind the iPod Mini was simple: Apple made a smaller, cheaper device with more or less the same technical specs as the original iPod from October 2001.


So here’s how I see Apple applying its iPod strategy to the iPhone. At some point the iPhone will expand to two form factors:

1. A high-end iPhone with the same basic size and price as previous iPhones, but with significant new features…

2. A new, lower-priced, smaller, and more adorable iPhone, with more or less the same technical specs as the original iPhone. Given that those specs include the 320”‰Ã—”‰480 display, I wouldn’t expect something tiny…. Shrink the iPhone’s forehead and chin and make it thinner … is what I’m thinking. Existing iPhone apps would run just fine on the new device, as it’d have similar, if not identical, CPU performance and RAM to previous full-sized iPhones. [emphasis added]

Reading the piece got me thinking back on the [cref 274 concerns I had] about Palm’s fragmentation of both their prospective developer communities, as well as consumers, should the rumors of their introducing “Pre Lite” to the market.

Note the points where emphasis has been added. There are two reasons for Apple to aim for roughly the same specs as the first generation iPhone when it introduces additional models:

1. a device with such specs will be significantly cheaper to produce more than two years later, and
2. it helps ensure maximal compatibility of existing apps with the prospective newer members of the product family.

Apple has been very clear that minimal hardware variance is an explicit concern in their iPhone product design strategy (and, even their platform strategy for all devices running iPhone OS, or what [cref 16 I’ve been calling Touch OS X]). Naturally, since the devices in the product family must continue to evolve, it’s impossible to entirely avoid hardware variance, but the more that the devices in the iPhone product family can have in common, the easier a job developers will have creating and testing the apps they make and sell.

By contrast, the Android platform is beginning to get its first dose of non-trivial woes around hardware variation issues, but more on this later.

There are plainly over a billion reasons that Apple would want to maximize the extent to which apps remain compatible across their entire product family of iPhones, and screen size and shape is one of the critical details to keep consistent in the mobile world, where developers (at least the competent ones) take great pains to make every last pixel count.

And for platforms like iPhone OS (and even Pre’s webOS) that are designed so meticulously around the user’s direct physical interaction with the screen, screen size is not a detail to be varied willy nilly.

Read More