Software development industry analysis by Larry O'Brien, the former editor of Software Development and Computer Language
Friday, April 30, 2004

An amazing collection of the art of the flying disc or frisbeetmvia [Delta Tango Bravo]

There were only 3000 charcoal HDXs ever made? Sheesh, I had like 10 of 'em; they were my favorite disc when they came out.

Friday, April 30, 2004 8:13:26 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | Knowing#

If you have OneNote 1.1 preview installed, you can now import OPML outlines.  .... The source and executable are located here.  via [Better Living Through Software]

Nice. Works for me.

Friday, April 30, 2004 6:59:59 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | Knowing#
Friday, April 23, 2004

With USB drives of 128-256MB now commodities, is it possible to carry your: Internet Favorites, My Documents, Outlook .pst and Outlook settings on your keychain? The real question is whether its possible to either:

  • set the appropriate user directories to a drive that disappears when the flash drive is removed, or
  • use a utility to do this at the press of a button

Anyone know? I'm currently splitting my time between 6 computers and keeping "authoritative" files is kind of a hassle (the big deal, of course, is Outlook). And, anticipating the "Use Exchange" suggestion, I use my server-class machines to evaluate OS's; I can't dedicate one to be a W2K3 Server 24x7.

Suggestions?

Friday, April 23, 2004 10:50:29 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | Knowing#
Wednesday, April 21, 2004
Donovan Lange has posted the first concrete info on the OneNote Service Pack API. Unfortunately, he doesn't quite give enough details for even a hacking attempt: we'll need the XML schema that describes import data and how to construct the GUID required by the "navigate to page" function.
Wednesday, April 21, 2004 2:44:25 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | Knowing#

There's a show called World Poker Tour. Every week they show the final table of 9 players from a tournament in which a couple of hundred people compete. Week after week, this is what you see:

  • A small elite of tournament pros who get to the final tables time after time
  • One or two representatives from a larger cadre of professionals who probably end up in the money, but not at the final table, of most tournaments they enter
  • "Amateurs" who are good poker players, but for whom luck almost certainly played a major role in getting to the table

Now, I'm not saying the amateurs are just lucky. For all the "two minutes to learn," premise of the show, it isn't trivial to calculate evolving odds on pots valued at hundreds of thousands of dollars without the slightest tell. And week after week, it's shown that an a talented amateur with good cards can beat the most fearsome player with bad cards.  

Which brings us to Microsoft.

Scoble is having a blog-versation with Microsoft Monitor's Joe Wilcox centering on Adobe CEO Bruce Chizen's sleeping habits: whether Chizen should "stay awake at night" worrying about Microsoft (Wilcox' stand) or sleep easy and exult in the morning's fresh crop of new Windows customers.

I don't give a hoot about how CEO's of multi-hundred million dollar corporations sleep. I care about how entrepreneurial developers sleep. Or, to go back to our analogy with the World Poker Tour, I care about the amateurs trying to get to the final table.

Microsoft is like one of the tournament pros who appear at the final table time and again. Let's say Phil Hellmuth, who's a notorious trash-talking egotist who's behavior at the table is calculated to intimidate and irritate people into poor play. Yes, if you're considering "entering the tournament," you should have an idea of how to play when this fearsome competitor has you in the sights. If it comes down to you and this competitor, good luck. If, on the other hand, your goal is simply to end up in the money you're nuts to let fear keep you out of the game. Absolutely nuts.

You know Microsoft's hand for years to come! Microsoft will "play" Whidbey, Yukon, Longhorn, and Office. If you make, say, a 3D modeling tool you will face fierce competition for the pot, but it won't be from Redmond. It's like knowing that Phil Hellmuth will be dealt a straight, a flush, and three of a kind: there may be some doubt as to the exact quality of the hands, but you will know their cards and their fundamental character and they will not know yours.

Microsoft will act like a poker pro: they will hint that they might Assimilate You, they will hint that they might Crush You Like A Bug, they will move their chips towards the pot and see if you sweat or smile. They will analyze you. And then you know what they'll do? They'll offer to buy you out of the tournament. They don't do this on WPT, but it happens all the time in real gambling tournaments: everyone makes their "expected value" calculation, talks about it rationally, and an arrangement is made.

<Scribbled/>

There was more here, but I decided to cut out the gung-ho stuff. Gambling, whether in a poker tournament or entrepreneurially, isn't for everyone and if you need some geeky Weblog to bolster your courage, it's probably not the right choice for you.

 

 

Wednesday, April 21, 2004 1:15:26 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | Knowing#
Sunday, April 18, 2004

From the AP wire:

FALLUJAH, Iraq - In Fallujah's darkened, empty streets, U.S. troops blast AC/DC's "Hell's Bells" and other rock music full volume from a huge speaker, hoping to grate on the nerves of this Sunni Muslim city's gunmen and give a laugh to Marines along the front line.

...What music would you play to drive an enemy (or cube mate) crazy? I'm thinking that AC/DC, albeit grating and annoying, isn't quite enough to be truly cruel....Some nice Britney Spears, perhaps... via [/\ndy's Weblog]

I wonder if part of it isn't using music that's grating but culturally acceptable to your own troops as an echo / background. ("Hey, Guns N Roses is next!") But if you just want to drive them insane, I'm thinking a Celine Dion loop ought to do it.

Sunday, April 18, 2004 10:17:06 PM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | Knowing#

This is quite interesting. Open source Implementations of the missing data structures of the FCL: linked list, doubly linked list, tree, skip list, heap, etc... Focus is made on robustness, standard conformance, documentation and testing of the collections.  via [Sam Gentile's Blog]

So the cool kids have moved away from calling it the Base Class Library and now call it the Framework Class Library, is that right? (Gotta' have the lingo down to run with the cool kids...)

Sunday, April 18, 2004 6:27:43 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | Knowing#

Jason Nadal has posted an RSS reader that uses the Longhorn text-to-speech APIs to actually read you the morning news while you do other things. Includes sourcevia [Marquee de Sells: Chris's insight outlet]

I love sample code that is actually helpful...

Sunday, April 18, 2004 6:26:21 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | Knowing#

via William Bartholomew:

Fritz Onion has posted an interesting article about how to write ASP.NET projects without using Web Projects and the associated bindings to IIS etc.

http://staff.develop.com/onion/Samples/aspdotnet_without_web_projects.htm

TTFN - Kent

I've had this post in my aggregator for two months.
Sunday, April 18, 2004 6:23:01 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | Knowing#
Sunday, April 18, 2004 6:21:23 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | Knowing#

  Which one of these three loops is the most efficient? How can I prove the answer?

I've listed the source code below. The three loops are:

  1. Foreach over an int array
  2. Simple for over an int array
  3. For over an int array, hoisting out the length value

...

The third option is to be avoided. The JIT looks for the pattern in version #2, and knows how to optimize it. If you pull the value out into a temporary, it may not optimize it. Of course, you know that because you've been measuring your important scenarios...

Sunday, April 18, 2004 6:20:37 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | Knowing#

Some guy managed to build a DIY "steady-cam" for $14 (those things which help keep TV crews keep their videocameras from shaking while they're running around shooting reality shows), which might not sound like a big deal until you realize that a professional Steadicam (that's the brand name) costs around $1,500. [Via MetaFilter] via [Engadget]

I swear I'm going to do this as soon as my ear infection clears up.

Sunday, April 18, 2004 6:18:52 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | Knowing#

Jetway sells a new small form factor PC called the 860Twin that can be used by two people at the same time. via [Engadget]

Useful for pair programming?

Sunday, April 18, 2004 6:17:30 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | Knowing#

Quick links for a dictionary of algorithms and data structures and a book on exact string matching algorithms. (via HotLinks) More bedtime reading ;-) Update: The memory management reference, via Simon's linklog.... via [Curiosity is bliss]

Helpful.

Sunday, April 18, 2004 6:16:40 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | Knowing#

Keith Short has good reasons why Whitehorse is not using UML.  via [Christian Nagel's OneNotes]

Good article, solid arguments.

Sunday, April 18, 2004 6:14:41 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | Knowing#

"These annotations are then used for performing context checks or are passed on to subsequent modules, for example to aid in code generation." -- Modern Compiler Design, Grune et al.

The meme says:

Grab the nearest book.
Open the book to page 23.
Find the fifth sentence.
Post the text of the sentence in your journal along with these instructions

(watch how it is spreading on the blogsphere here or here)

via John Shute's Weblog

P.S. I'm not proud to be reading a book on writing compilers on a Sunday.

Sunday, April 18, 2004 4:43:24 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | Knowing#

Chris Pratley asked for feedback on how blogging from OneNote should appear and my comments became too unwieldy for his comments box:

To dispense with two crucial things: ink support and layout support (i.e., not just tables but the arbitrary positioning of elements in X-Y space a la "real" OneNote). AFAIK, there is no blogging tool right now that allows you to draw a map and type "Bob's House" at the appropriate spot; for all the power of Blogging As It Exists, it basically works with text streams.

Now for the more ruminative stuff: OneNote has the metaphor of pages, tabs, and notebooks. The obvious mapping is to blog entries, categories, and blogs. So I would expect that to "subscribe to a blog" in OneNote, I would get a new notebook that periodically updated itself; new titled pages appearing for every new post. Since page titles have limited screen real-estate, this introduces a navigation problem: perhaps one needs some kind of automatic Table of Contents page, essentially providing aggregator services. Or... maybe one doesn't subscribe to a blog in OneNote, perhaps aggregation is the role of NewsGator / Outlook and a OneNote "subscribed to" blog represents posts that one wishes to keep around for reference: one still would have a OneNote notebook corresponding to the blog, but the notebook wouldn't update itself, one would use a SideNote / Snippet sort of capability to shoot entries from the aggregator into the notebook.

So upstream you must support ink and layout, downstream you must support the blog -> category -> entry hierarchy. The third leg of the stool is clearly linking. The feedlink / permalink distinction is the clearest example I know of REST: the feedlink is a permanent resource of "the latest stuff" the permalink is a permanent resource to "this particular thing." I want hyperlinks in OneNote that embrace this distinction and I want those hyperlinks to be able to navigate not only across the World Wide Web (of course) but within my own computer, workgroup, corporation, and social networks. In other words, I want OneNote notebooks to become transparent to deep linking: onenote://machinename/mynotebook/mypage#myanchor as a URI (short of onenote as a complete scheme, I'll settle for a transition period where http is shoehorned into service). Creating good RESTian links must be reduced to a trivial service (with my Tablet I want to be able to circle some elements, make a gesture, and those elements become a post, with a permalink and a reference in the feedlink). 

I also want to make a slightly different gesture to free the elements for editing. In other words, the "square" gesture makes a post that only I can edit (a traditional blog entry), the "star" gesture makes a post that anyone can edit (a wiki-like entry), the "circle" gesture makes a post that only people in the "ninja" group can edit, etc.

Sunday, April 18, 2004 1:08:55 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | Knowing#
Saturday, April 17, 2004
In a comment on Scoble's "persuasion" post, there's a link to this entry by Dave Winer in which he dreams of saving Apple by dint of a $1 billion checkbook and slavish devotion to software developers. sed/Apple/Sun/ and it's a timely read.
Saturday, April 17, 2004 2:35:07 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | Knowing#
Scoble asks "How do you persuade?" in which he poo-poos consistent positive statements and talks up authority. It turns out there are scientific studies. According to Robert B. Cialdini's February 2001 Scientific American article "The Science of Persuasion" (my research library can beat up your research library!) the 6 keys to reciprocity are: reciprocation, consistency (get people to say "yes"), social validation (many people doing it), liking, authority, and scarcity. Cialdini has a book: "Influence: The Psychology of Persuasion." I guess I found Scoble his Christmas present.
Saturday, April 17, 2004 2:24:17 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | Knowing#

Omer van Kloeten speculates that the reason no one's asked me about C# on the JVM as part of the Sun-Microsoft agreement is because the JVM is explicitly the "Java" VM and .NET explicitly decoupled language and VM. Let's see: according to Jason Bock there are 32 compilers available for .NET. According to Robert Tolksdorf there are 181 compilers for Java (and I didn't count preprocessors).

Obviously, Java's been around for a longer time. Obviously, these are both incomplete pages that have experimental, unfinished, and moribund projects. We can talk about platform strategies and how things might be in the future, but as things stand today the JVM is a more diverse platform than .NET

Saturday, April 17, 2004 12:45:28 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | Knowing#
Friday, April 16, 2004

Ted Neward has clued in that one major reason why Smalltalkers are so fond of the language (<troll>not just because they're nuts, like LISP proponents</troll>) is Smalltalk's image. The image is quite a revelation: it's the in-memory representation of everything you've ever done in Smalltalk. You can reset it, and trim it down if you like, but basically, out of the box, the image makes programming Smalltalk more like writing in a notebook and less like rolling a fresh piece of paper into a typewriter. So if one month you write a program to, say, explore genetic algorithms and then the next month you're writing a graph layout program, it's not like you say "Oh, let me open up that genetic algorithm project and see if there's anything I can use," it's just there.  

That's the long-term benefit, but even in the short-term, the workspace allows you to write something, grab a chunk out of the middle, execute it in a stand-alone manner, change it, move it back into the "guts" of the big block you wrote (although "doing the right thing" and refactoring it into it's own method is no harder than cut-and-paste). Python and other dynamic languages have a console that's equivalent to the workspace, but I don't think they go the extra step to persist the image over time.

I wish that there were .NET languages that had a console / workspace and an image. I think such a language would be very, very attractive. Since .NET does not require objects to be serializable, is an image fundamentally impossible? If so, is there an 80-20 solution?

Friday, April 16, 2004 5:21:56 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | Knowing#

According to Cringely (thanks, Chris!), Sun's Jonathan Schwartz talks up the Windows API as key to "interoperability" aspects of the MS-Sun agreement. If true (and apparently this is straight from the horse's mouth), Cringely is right to say "...what Sun has actually obtained from Microsoft (beyond the money, of course) is less than nothing."

Frankly, the thought of a smart guy like Schwartz waxing enthusiastic about Windows APIs as the route to strengthening the Java Desktop is so difficult to believe that if it were anything less than first-hand reporting, I wouldn't give it credence. Much better than I could, Cringely's article gives the business argument against the value of letting Microsoft dictate your business strategy. At a more technical level, this is the exact scenario that Gosling poo-pooed as the work of conspiracy nuts: agreeing to help someone cook by getting together every Friday and deciphering a great big bowl of spaghetti. "Okay, we were talking about this strand last time, right? Picking things up, you can see it goes about another quarter-inch and then it turns here." "Oh, why's that?" "Okay, it's because of this piece over here, isn't it? See how that curves around right here?" "Oh, right! Boy, now we're really getting somewhere!"

I'm not saying that I have advice for what Sun should do, but dicking around with the Win32 APIs clearly ain't it.

Friday, April 16, 2004 4:58:58 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | Knowing#

In celebration of my family history and 40th birthday, from now on I get to have a colonoscopy every five years. When the nurse asked "April 15?" I said "Tax day? Seems appropriate!" And then, just to make sure that I was in prime condition, last weekend I came down with a middle ear infection, for which I couldn't even take aspirin because of the colonoscopy. Ever had an ear infection? Ever time you swallow it feels like you're having acupuncture and they say "Eh, screw it," and just slap the needles home with a brick.

As you can guess, I've been in a swell mood. Ever seen a cat in a vet's office? I've been like that: alternating between fury and misery.

P.S. The colonoscopy came out fine. As I left they gave me a series of photos of my insides, but I'm going to file that under "too much information."

P.P.S. I can understand this whole post might be "too much information," but I thought the confluence of miseries would provide some schadenfreude.