Digital physics vs. Pi

Nova Spivack posted this praise of digital physics and Julie Lerman reports that Stephen Wolfram is coming to her neck of the woods. Digital physics, of which Wolfram’s book A Kind of Science hopes to be the Principia, posits the idea that the universe is computational in nature, which is to say that behavior over time (gravity, mass, etc.) comes from repeated application of a (relatively) small set of rules to a matrix of state changing automata. Cellular automata are used as their model. CA are a fascinating topic, but to me digital physics has always seemed a non-starter: Buckminster Fuller anticipated my objection with this quote: "To how many places does nature carry out PI when she makes each successive bubble in the white-cresting surf of each successive wave before nature finds out that PI can never be resolved?… And at what moment in the making of each separate bubble in the Universe does nature decide to terminate her eternally frustrated calculating and instead turn out a fake sphere?"


WSJ Article on MSFT Processes / Longhorn Reset

The Wall Street Journal has a good article on what they call a cultural change at Microsoft, which they essentially credit to Jim Allchin and Amitabh Srivastava. Hmmm… Srivastava is certainly respected technically, but Allchin’s impending retirement seems to have triggered more glee than tears in the blogosphere. The criticism against Allchin seems to be that “he can’t ship,” but whether that’s accurate or whether it’s indicative of the cultural resistance that the WSJ speaks of is difficult for an outsider to parse. Any Microsoftians want to give me their perspective? (Email me at lobrien -at- knowing -dot- net)

CTP Madness Solved (at least momentarily)

All week I’ve been trying to synch up Visual Studio versions with SQL Server versions. I finally got the right combo: first intall SQL Server 2005 September CTP (en SQL2005 STD Servers Sept2005.iso and en SQL2005 STD Tools Sept2005.iso) and then VS 2005 Team Suite Release Candidate (en vs 2005 team suite dvd rc.iso). Works for me.

Could a mobile phone be a consumer’s only computer?

Philip Greenspun suggests the use of the mobile phone as identity and storage and an “appliance” into which the phone plugs as the general purpose computer used to perform “home” computing tasks (email, browsing, playing games, etc.) Having used Sun’s SunRay thin clients back in the dot-com days, I can attest to the user-friendliness of “plug and play” computing – put your smart card into any computer in the company and get your desktop. Very, very nice experience. However, I think the idea of a dumbed-down appliance-based OS has been tried and failed – WebTV springs to mind, Audrey, all of those things.


Having praised the SunRay experience, I must also share why I think thin clients are the worst idea ever. At a trade show critical to our company’s success, we uncrated a dozen SunRay’s into the room in which we would be demonstrating our technology. We hooked up the server and booted the system. Every SunRay booted. Every SunRay got to some driver. Every SunRay said “Oh, updated driver. Install and reboot.” Every SunRay shut down. Every SunRay booted. Every SunRay got to some driver. Every SunRay said “Oh, updated driver. Install and reboot.” And so the loop continued.


Our IT guys worked for hours trying to resolve the problem. We had Sun on the phone. We had Oracle on the phone. How could we get a different server? Apparently there were SunRay’s in that town where they filmed The Truman Show and there was some discussion of commandeering their hardware. Eventually, the CEO gave our IT his American Express and said “Go to Office Depot and buy 20 PCs.” And at the end of the show he said “Go to Office Depot and return the 20 PCs.” (An edict typical of our CEOs moral sense.)


Thin clients suck.

Choosing Community Server, DotNetNuke, FlexWiki, Zope, or other?

I grabbed the domain and (don’t surf – the DNS isn’t set up yet!) and would like to build a community-oriented site that:

  1. Serves as a language-inclusive repository for LINQ examples,
  2. Provides a forum for discussing LINQ techniques and patterns,
  3. Provides technical information on LINQ infrastructure (e.g., implementation, performance, etc.), and
  4. Provides an entry point to LINQ related news (i.e., a LINQ linkblog)


The most important technical requirement I have is that the site infrastructure support multiple “timespans” for articles:

  1. Long-lived articles (worked-out examples, technical information),
  2. Transient news (i.e., blog-style FIFO, “recent news” / calendar-oriented “archives”), and
  3. Discussion forums


Nowhere near as important, but the lack of which really bugs me about blog software: I’d like to be able to schedule articles for posting (i.e., “Sunday at 3AM, post the week’s new articles).


Anyway, I currently use dasBlog for this Website, which works great for transient, but poor for articles and discussion. I’ve got FlexWiki already installed on this server for other purposes, and it works for articles, but not for transient news and I don’t think Wiki-based discussions are very effective. Any suggestions would be welcome.


LINQ Questions, Some Answers

In comments, Mark Mehelis asked some good questions re. LINQ:

  • As far as I can tell the syntax between VB and C# is not the same. Do you know why this is? Would it not be better to have this be consistent accross the languages?

The syntax does indeed vary between languages. A consistent query language would definitely have been easier to learn, but what LINQ provides is a set of consistent query operators that can be incorporated into languages in whatever way the language designer sees fit. This makes LINQ slightly less teachable (it will vary from language to language) but perhaps more appealing to language designers, since they aren’t forced to accept a query language that differs from their own language design philosophy. Vick (VB) is emphasizing familiarity and a SQL-like syntax, Hejlsberg (C#) is emphasizing functional-style programming forms. This is also a good place to point out that languages can use the underlying APIs even if they do not implement language extensions.

  • Is there some way to have all your LINQ based access through a repository of some type. It would be to easy to pepper queries throughout your code making it a string pulling excersize when your application gained some size.

This is an interesting idea. I haven’t worked with actual LINQ code enough to actually wrap my head around how it affects coupling and cohesion, so I don’t know. We don’t yet know what patterns are productive in LINQ-using programs. Obviously, you could put all your queries in a single class behind a façade and even put that class into its own namespace / assembly. Would that be a good idea? Not sure.

  • Also what happens when the underlying data structure in the DB changes? Must you re-compile your code? recreate your classes and then change your LINQ queries?

You definitely should not have to recompile on a DB change, you almost certainly do if you’re querying objects.