Wednesday, November 02 2005

I have to wash my hands after writing that title.

The rise of heavily-scripted, dynamic, content-rich web applications might open the browser wars on a new front - speed.

While the front-runners (I'm thinking of Internet Explorer, Firefox, and Opera) are very similar in features at this point, the performance delta for script heavy sites is remarkable (by a factor of 5x or more). Even the laughably trivial yaflaColor shows a significant performance difference between the browsers, with Opera providing a smooth, consistent operation (e.g. sliders move cleanly, with a smooth colour transition), Firefox trailing behind a bit, and Internet Explorer lagging far behind, with a clunky, unpleasant interface on all but the highest performance client PCs. This pretty much mirrors some of the numbers found on the browser speed comparison (where Internet Explorer yielded a "60" on their script test, with Opera 9 zooming past with a "13" - the lower the number the proportionally better).

   
Thursday, November 03 2005

Joel, of JoelOnSoftware fame, did an experiment of sorts over the summer where he provided a spec and oversight, and let a group of green (albeit talented) interns threw together a, by most accounts, relatively impressive software product. The whole process was professionally filmed, and a trailer is now available. It looks interesting.

I'm not quite sure what the moral of Joel's experiment was - Experience doesn't matter?

On the topic of software development, a great learning tool for software development management, even though it has absolutely nothing to do with software development, is Jamie's School Dinners. Jamie is a born manager, evident as you see how he deals with external crisis after crisis from "above" and "below" (and laterally).

   
Thursday, November 03 2005

I will be at the Canadian Launch Tour for Visual Studio 2005/SQL Server 2005 (at the Congress Centre in Toronto) on November 8th, and will post notes and photos about it (hopefully as it happens). I'm looking forward to it, and maybe I'll see some of you there.

If there was one thing that Microsoft keeps doing that I wish they'd stop is the whole "most important/biggest/impressive release ev4r!". I'm reading some of the Microsoft bloggers make this claim, and it just rings so false - I am very excited about both of these products, and my experience with them thus far (and through the beta and CTP cycle) has been very positive, but it's very cry-wolfish of Microsoft to declare every release the most important ever to try to gain extra attention. A part of the reason Microsoft Live was accepted so cynically was all of the "great new turn-on-a-dime strategy!" B.S. coming out of Redmond.

Remember to visit tomorrow (tomorrow relative to today no matter what day you read this) for yafla's Most Important Blog Posting Ever!

[]

   
Friday, November 04 2005

I mentioned the Microsoft Live "gadget" competition derisively on Tuesday - where they're giving away a couple of xbox360s to the creators of the best gadgets, trying to entice some extremely cheap labour (split the marginal prize cost amongst the hundreds who'll probably take the challenge to win themselves a game system). Of course Microsoft is doing it to try to make their platform viable.

Firefox is getting into the game too: Develop the best extensions to go with Firefox 1.5, and you could win from a collection of prizes. It is sort of remarkable that the Mozilla Foundation prizes are so much richer than the Microsoft prizes - e.g. three absolutely top of the class gaming computer rigs as the grand prizes, versus I believe 4 xboxes, worth 1/5th the amount, from Microsoft (you would think Microsoft would at least pony up for a year of MSDN Universal or something for the winners). The Firefox competition also has impressive category winning bounties, including an iPod Nano and a $250 gift certificate.

Of course many enter these sorts of competitions not for the prizes, but rather for the prestige. For these people the prizes are almost an insult.

For the prospective competitors, in the Firefox case there is already a rich ecosystem of very impressive extensions, so you can go into that knowing that you're starting with a proven, rich platform. In Microsoft Live's case, there is a measly 8 existing gadgets, and they're a little weak. I'm always suspicious when organizations unleash that sort of platform on the world, because their lack of experience trying to use it in real world scenarios means that it is almost certain v1.0-borked - e.g. you can expect a complete rework and rewrite as people explore the edge cases, and discover all of the things that simply cannot be accomplished with the infrastructure they've developed. If you're a developer, you've probably been handed that sort of "framework" from a coworker, with grand promises of extraordinary extensibility, but in reality it's useless in the real world because they never actually used it for anything of consequence themselves.

   
Friday, November 04 2005

Quite a few times I've worked with groups that couldn't tell you what tables in their database were the largest, or what component (data, indexes, or even unused space) was using the most space. I've pulled around a very simple script for some time that has served me well.

SET NOCOUNT ON

CREATE TABLE #results(Name sysname,Rows char(11),reserved varchar(18),Data varchar(18),index_size varchar(18),Unused varchar(18))

DECLARE @obj_id int
SET @obj_id = -2147483648

DECLARE @obj_name sysname

SELECT TOP 1 @obj_id = id, @obj_name = name FROM sysobjects WHERE ( xtype = 'U') AND id > @obj_id

WHILE (@@ROWCOUNT = 1)
BEGIN
  INSERT INTO #results
  EXEC sp_spaceused @obj_name

  SELECT TOP 1 @obj_id = id, @obj_name = name FROM sysobjects WHERE ( xtype = 'U') AND id > @obj_id
END

-- Prune off the "KB"
UPDATE
  #results
SET
  reserved = LEFT(reserved,LEN(reserved)-3)
  ,data = LEFT(data,LEN(data)-3)
  ,index_size = LEFT(index_size,LEN(index_size)-3)
  ,Unused = LEFT(Unused,LEN(Unused)-3)

-- Convert to
ALTER TABLE #results ALTER COLUMN reserved bigint
ALTER TABLE #results ALTER COLUMN Data bigint
ALTER TABLE #results ALTER COLUMN index_size bigint
ALTER TABLE #results ALTER COLUMN Unused bigint

SELECT
  Name
  ,reserved AS [Size On Disk (KB)]
  ,data AS [Data Size (KB)]
  ,index_size AS [Index Size (KB)]
  ,Unused AS [Unused (KB)]
  ,Rows FROM #results
ORDER BY
  reserved DESC

DROP TABLE #results

 SQL 
   
Friday, November 04 2005

In that prior example I used a cursor technique that might be alien to some - rather than using a DECLARE CURSOR, I iterated through the records by id.

I came across this at one shop that I did some consulting. At first I approached it with skepticism - It seemed like an unnecessarily quirkly way of doing a cursor - but after several benchmarks I was sold. If the iterating id is indexed (which it often is), the performance advantage will vary between marginal to significant.

 SQL 
   
Friday, November 04 2005

One of the biggest plays currently happening in the "Web 2.0" evolution is PageRank whoring (because PageRank is worth big money) - everyone trying to get you to link to their domain somehow.

Maybe they're handing out "blog awards" and the celebratory icon requires some sort of link back attribution, or they want to add you to their aggregation, but demand that you place various links to them on your site that they'll automatically harvest (and continually validate) to "ensure" that you're legitimate. Some even require a link to a script (that'll do who knows what at some future point) on their site in the header of your blog.

Whatever the case, it's clear that many Web 2.0 strategies these days are based on PageRank as a short-term substitute for money, and clearly these sites are hoping that a PR9 will get them good VC funding.

Examples abound on the net, but this came to mind looking at the way Technorati requires that you decorate your posts to "tag" them in the Technorati world - instead of some general, cross-industry tagging mechanism (e.g. "put a list of tags in square brackets to the right of Tags in your post. e.g. Tags: [SQL Server][etc.]"), you have to add links to various Technorati tag URLs in your posts. 

Not only is Technorati building their entire value based upon external blogger provided content, but you also need to hand over some pagerank to them as well to be categorized properly (and to head off bloggers using rel=nofollow, they also demand that you use rel=tag. How covenient). Imagine if Google demanded that your page add links to every Google searchword that you want to be indexed by? Give me a break.

Technorati is trying to monopolize the blog world, and I'm really quite surprized how quickly so many rolled over for it. They seem to provide a nice service, but they shouldn't require quite the level of complicity by the blog community (unless they're making every contributing blogger an equity owner).

BTW: Could every blogger please link to this post? Thanks! I want to boast about how high my imaginary Technorati rating is so I can generate meaningless "what this blog is worth" numbers.

Irony = Technorati Profile

   


About the Author
Dennis Forbes Dennis Forbes is a Toronto-based software architect. While focused primarily on the .NET and SQL Server worlds, Dennis frequently ventures outside of this comfort zone into game development and image processing. He has been published in several industry magazines, has been quoted in the Wall Street Journal and has been interviewed by NPR.

He is a vice president and lead software architect at an innovative New York City hedge fund back-office services firm.

Dennis has been working on solutions for the financial, telecommunications, and power generation markets for over 15 years.





 
Earlier EntriesLater Entries

Dennis Forbes