Software development industry analysis by Larry O'Brien, the former editor of Software Development and Computer Language
Monday, November 24, 2003

 During a chat with John Montgomery yesterday, he tangentially revealed a stunning number: according to Microsoft, there are more than 7 million "hobbyist programmers" in the US alone. Not professionals, not students, not "macro kings and queens," not sysadmins with a knowledge of Perl, but flat-out hobbyists.

I still don't know if I can believe that, not because the idea of recreational programming is odd, but because such a market is absolutely unserved. Geez, it makes me want to launch a magazine. ("Magazine" being another way of saying "Website that pays the bills").

Monday, November 24, 2003 10:44:29 PM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Sunday, November 23, 2003

Jan Gray wrote an excellent essay ... My favorite quote from this piece is "This scenario is so bad and so common that the microprocessor vendors use 80% of their transistor budgets for on-chip caches -- Intel as glorified SRAM vendor.". via [iunknown.com]

This echos a favorite theme of mine: most discussions of performance ignore the differing costs of memory access. To the extent that people think about it, they split the world into RAM and disk, when it's much more productive to think of a series of ziggurat-like steps that extend all the way from the CPU registers to the Internet and offline storage. (BTW, the essay is a year old, which makes some of the references, especially to C#'s closure support, a little odd).

Sunday, November 23, 2003 11:06:42 PM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
http://blogs.gotdotnet.com/BradA/commentview.aspx/ddedfad0-c94f-4873-9c8c-4005cd8faaa5 Should the BCL contain both generics-based collection classes (List<T>) AND object-containing classes? (my initial gut is that generics-only is the way to go. Better to accept some pain now than 5 years from now. )

Blogged on a Tablet PC

Sunday, November 23, 2003 2:18:42 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

If you use NewsGator,  and Outlook 2K3, a "search folder" set to all the folders is much faster than News Gator's top-level page.

Blogged on a Tablet PC

Sunday, November 23, 2003 1:56:44 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

 

Quite a few of the presentations from this year's PDC are now available in Microsoft Producer format. The nice thing is that you get videos from the demos integrated into the presentation as well. Very nice.


[iunknown.com]
Sunday, November 23, 2003 1:45:36 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

 

J2EE 1.4 is now official, Sun announced this week.
[InfoWorld: Top News]
Sunday, November 23, 2003 1:41:42 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

Martin Spedding clarifies that he's criticizing PNC on a strictly economic basis. This is perfectly valid: consider that the benefits of a conference accrue primarily to the individual while the cost is borne primarily by companies. And the value of a conference is delivered primarily by speakers and attendees, but the profit is enjoyed primarily by the conference organizer. Something is awry in the was that conferences work.

Blogged on a Tablet PC

Sunday, November 23, 2003 1:23:11 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Friday, November 21, 2003

A Silicon Valley computer programmer has been arrested for threatening to torture, kill and send a 'package full of Anthrax spores' to employees of the company he blames for bombarding his computer with spam promising to enlarge his penis. via [Wired News]

Oughtn't his defense be "But they opted-in to a 'receive death threats' list that was provided to me by one of my affiliates. I'm shocked, shocked at this turn of events and have cancelled future dealings with that affiliate."?

Friday, November 21, 2003 11:10:17 PM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

Martin Spedding wonders "Was going to the PDC really worth it?" and Scoble sez "I'd say there's a huge amount of value in actually being there" via [The Scobleizer Weblog]

Spedding essentially says that he goes to the PDC to "get an edge" and, now that conferences put up presentations online, he thinks that value is being diminished. Over the past 14 years, I've decided that presentations are the least valuable part of any conference. Honestly, Microsoft's emphasis on text-heavy slides interspersed with demos and "you wanna' see some code?" is much better marketing than pedagogy: "Wow, I'm getting substance! Oh, it's real! Gosh, that looks easy! Umm...what's code-beside again?"

Having said that, the PDC's "Ask the Experts" sessions were fantastic. There were literally hundreds of Redmondians sitting around, eager to talk. And if the person you were talking to didn't quite know, they'd raise their head and ask the right person "Hey, Jane, is it possible to do...?" You can't duplicate that online.

To me, the ideal conference would be one where the presentations were made available to attendees the week prior to the conference and when the session is scheduled, attendees walked into a ZeroConf WiFi lillypad that provided a shared workspace with the tools available and the presenters first words were "So. How did the exercises go?"

Friday, November 21, 2003 11:04:18 PM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

Today the C++/CLI candidate base document was posted, and it's freely available for download via [Herb Sutter's Blog]

This describes the C++/CLI extensions discussed at PDC but not available in the PDC bits. Let the studying begin...!

Friday, November 21, 2003 7:47:25 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Thursday, November 20, 2003

According to a CNET paraphrase of an IDC report, IT outsourcing fears misplaced. But the article contains this seemingly absurd statement: "Services tasks that may be affected by offshore outsourcing include maintenance and support, implementation and operations--activities that IDC views as requiring low skills and that involve repeatability. Hardcore business work such as planning, IT education and training will remain relatively resilient against the offshore trend."

I'm reluctant to expend the journalistic mojo required to actually get my hands on the report, but once again we seem to have a case of software development being lumped in with IT in one definition and excluded in another (at least, if you assume that not even IDC thinks that software development "implementation" requires low skill).

Thursday, November 20, 2003 2:58:30 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Wednesday, November 19, 2003

Jon Udell's investigating a Bayesian RSS categorizer. Bayesian spamfilters correlate the probability of words (such as "v1agra" or "ontology") appearing in an email message; if the aggregate probability from all the words in an email exceeds a certain threshold, the email is put in a specific folder. The blog correlary (I think) would be analyzing RSS items as to whether they're deleted, opened, and opened-and-clicked-through; over time, such a system should be able to assign a probability to the likelihood that a new RSS item will be of interest to you (and presumably you'd sort by that in your aggregator). 

Jon appears to be doing something dangerously more ambitious, which is creating a Bayesian categorizer that assigns Jon-meaningful categories (email, collaboration, family, etc.) to items. I say "dangerously more ambitious" because Jon's approach would seem to require a lot of supervision, while the genius of Bayesian spam-filtering is that pressing a button marked "Delete as spam" is no more onerous than deleting the spam in the first place. Similarly, a Bayesian RSS aggregator that just attempted to categorize "Will this item be read, will this item be clicked-through, will this item be deleted without pause?" requires no more supervision than what is natural to the task of RSS browsing.

Wednesday, November 19, 2003 10:59:03 PM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

I have no idea of the capabilities of Microsoft's ink blogging tools, but IMO the real ink blogging solution will be one that stores ink on the server and returns ink if the client sends up an appropriate MIME type. Only if the client is incapable of rendering ink will it downgrade the ink to graphics + text (which, of course, the server might cache). Until that capability becomes available, ink on the Web is just a toy.

Wednesday, November 19, 2003 10:25:47 PM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

http://www.inklog.com/ is apparently the site where Microsoft Tablet PCers are using their tablet blogging tool. "Not 3 years, 3 days" teases Chris Coulter, referring to this post of mine. Hey, if that's all they got, I beat 'em to market! I haven't looked at the headers coming back from inklog.com, but the real key to nailing this is content negotiation.

Wednesday, November 19, 2003 5:13:17 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

Estimating the Airspeed Velocity of an Unladen Swallow

Ignobel Prize Committee, where art thou?

Wednesday, November 19, 2003 12:58:55 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

Peter Rysavy's Lonestar screenshots and discussion: Microsoft handed out Lonestar alphas at the Tablet PC get-together at Comdex. Oh man, I should have listened to that little voice in my head that told me to go to Vegas. Most interestingly, Peter says that Lonestar is a small (~10MB), user-installable and uninstallable upgrade that runs absolutely fine on first-generation hardwares. Essentially, it sounds like a case where resource tradeoffs had resulted in more effort on OS and hardware foundations for the release of XP Tablet edition 1.0 and that Longhorn is the result of a significant amount of those resources shifting towards handwriting and user-experience. Plus, it stands to reason that the number of people with a deep, low-level understanding of the Tablet OS has increased hugely over the past year, so it's not surprising that there could be, for instance, significant improvements in handwriting recognition on existing hardware.

 

 

Wednesday, November 19, 2003 12:24:05 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Tuesday, November 18, 2003

Citing an "arms race" in the ongoing spam wars, the company defends its patenting of a technology to thwart antispam filters. via [CNET News.com - Front Door]

Okay, I can see the point of increasing the legal liability of spammers, but that this patent was granted is infuriating. It patents "Change the content of your spam." Here I sit pondering to what extent the spammers are using Web bugs in decoy spam to verify my email address and to what extent I can even speak about anti-spam techniques without risking a DDOS attack and the patent office says "Change the content of a spam message with, oh say, a sequence of random letters? Wow!"

Tuesday, November 18, 2003 9:42:02 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Penabled Tablet PC replacement Pens at Comdex? Hey -- with Christmas coming up, can I ask my in-laws for a decent Tablet PC pen? Such as the long-awaited Cross pen?
Tuesday, November 18, 2003 6:57:58 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
20-inch iMac. A 20" flatscreen at 1650 x 1050 with a 10.6" footprint, 802.11g, and one of those weird processors that I guess work fast enough. Geez. I mean... Geez.
Tuesday, November 18, 2003 1:29:27 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Monday, November 17, 2003
Is InfoPath the New Excel? I ask in my latest SD Times column.
Monday, November 17, 2003 11:40:27 PM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

I installed the Whidbey preview on a VPC virtual machine at the weekend, hoping to check out the new features, but they don't seem to be implemented in this build. via [Cook Computing]

Can anyone confirm if the C++/CLI extensions are in the PDC bits? My initial attempts to compile Foo^ f = gcnew Foo(); have failed, but for all I know I may just be missing a command-line switch. Brandon Bray just confirmed to me that the PDC bits "did not include much support for the C++/CLI syntax....the earliest implementation will be the Whidbey beta."

Monday, November 17, 2003 10:49:02 PM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

Sure, Gates announced the next version of Windows XP Tablet "by the middle of" 2004, but in the near future, Waggener Edstrom's Tina Warner tells me that the Tablet PC 1.7 SDK will ship with the PDC post-show attendee kits "so timing may be another few weeks." I can't wait!

Oh, by the way, apparently all of the hand-wringing about Tablet adoption has been off-base: "A lot of vertical applications, a lot of horizontal applications, and now close to a half a billion users of the tablet who are very, very committed users." -- Bill Gates, Comdex 2003.

Monday, November 17, 2003 2:11:03 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Thursday, November 13, 2003

GPS-based Anti-Terrorist "Stop Speeding Trucks" Tech Under Attack

Perhaps I haven't had enough coffee this morning because it seems obvious that one should be able to construct a pithy logical statement that encapsulates the notion that it can't be a good idea to mandate a remotely-controlled software-based solution that provides a single point of failure to a theoretical 'problem' that involves a vast network of easily-hacked analog machines. It's one thing to consider the use of remote-takeover of airliners, where it might be possible to create a secure interface (both in terms of assuring the integrity of the digital-mechanical hardware and the processes by which the system could be activated) but trucks? If you think CD copy-protection is an example of digital hubris, wait until you try to screw around with truckers.

Thursday, November 13, 2003 10:41:18 PM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Wednesday, November 12, 2003

Chris Woofruff wonders if Python's built-in facility for dictionaries / associative arrays satisfies Ted Neward's desire for relational language extensions. I'm not 100% sure, but I don't think so. To me, Ted's post jumped off the idea of relational operators creating new types (although Ted didn't explicitly discuss it): 

relvar[person] people = { fn, ln, age} [ ["Ted", "Neward", 32] 
["Don", "Box", 39] ];
relvar[contact] myContacts = dataSet.Tables["contacts"];

relvar[contactsWithAges] peopleUnderThirtyFive =
SELECT people.age, contact.* WHERE people.age < 35
AND people.fn == contacts.FirstName AND people.ln == contacts.LastName;
Console.WriteLine("Ted, age {0}, lives in the state of {1}",
people.FirstName["Ted"].age, people.FirstName["Ted"].state);
contactsWithAges.age.EditEnding += new EventHandler(AgesVerifier);

I've added more typing than Ted proposed (basically, a name for a particular relational structure), define one explicitly in code (people), another one is dynamically typed at runtime (contact structure is read from underlying database), and created a third from a query (contactsWithAges). (The last line is attaching a delegate to the "age" field of the dynamically created type contactsWithAges. )

I dunno' if this is what Ted had in mind, but it's an interesting thought experiment. Would capabilities like this be interresting in a programming language?

P.S. Avi Bryant has actually implemented some relational operators at the language level (ahh... Smalltalk)

Wednesday, November 12, 2003 11:49:29 PM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

Ted Neward wants relational language extensions:

Basically, I want the object-relational impedance mismatch to go away, just like everybody else does. But instead of continuing to try to force objects on top of the relational model, how about we give up going in that direction, and instead try lacing relational semantics into our favorite languages of choice? ....What I really want to do, in a single sentence, is extend the data model away from a concept of "fields" and include some higher-order primitives into the mix. For example, coming from the relational world, I want to see a relvar, a relational variable a la C. J. Date, as a basic primitive type within the language....I want a node primitive type, to which I can apply XPath operations... I envision something along the lines of:

relvar r = { fn, ln, age} [ ["Ted", "Neward", 32] ["Don", "Box", 39] ];
foreach (tuple t in r)
{
  printOut("Name is " + t.fn + " " + t.ln + ", " + t.age + " years old");
}

relvar r2 = { fn, ln, age} [ ["Fritz", "Onion", 39] ];
relvar r3 = r UNION r2;
printOut(r3.count); // Prints "3", since there are 3 tuples
and so on. Syntax is somewhat derived from Date, 8th ed.

Similarly, I want the ability to do XPath over XML as built-in language capabilities; something along the lines of:

node n = <person><name>Ted</name></person>
string s = n/name/text(); // an XPath query against the node "n"
and, of course, both node and relvar types would support the usual range of insert/remove operations, such as the UNION used above, or a += syntax for appending nodes to n as child nodes, and so on.

.... Oh, and while we're at it, I want the language to understand transactions as a first-class processing concept, too:

x = 5;
transacted
{
  x += 5;
  throw new IllegalArgumentException("can't do this!");
}
finally // a.k.a. commit
{
  printOut("We committed! x = " + x);
}
rollback
{
  printOut("We rolled back! x = " + x);
}

// x has the value "5", since the exception forces an implicit rollback
via
[The Mountain of Worthless Information]