Go to content Go to sidebar

Happy Mark's Day!

Black Cat and Presents

Mark joined our family a year ago today. Here, he examines some of the presents that Santa Cat brought.


Blogging for Business

Looks like everyone is getting on the bandwagon. My most recent copy of the Microsoft Business Insight Newsletter included a link for Blogging for Business: 7 tips for getting started. I just wish that the list included Rule 0: Don’t do it if you don’t mean it.


MasterMind Watch: Week 15

Ouch. I keep hoping that it was a bad dream. The Chiefs blasted the Broncos 45-17 in a game that didn't seem that close. Everyone contributed to the loss. The special teams gave up a TD return to Dante Hall on the opening kickoff. The offense gave up 3 turnovers. The defense created 0 turnovers while giving up 410 yards. And the TV station that I was watching left for a more competitive game.

Despite the MasterMind's offensive virtuosity, Shanahan has not shown the ability to find and groom a top-flight NFL quarterback. Brian Griese self-destructed after a promising beginning and Jake Plummer continues to exhibit an alarming immaturity in big games.

The Denver Post reports that Plummer will return in 2005. The Broncos do not have any other quarterback options if they intend to return to greatness while the MasterMind remains. But part of me feels that it is time to blow up the team and begin the rebuilding process.

The MasterMind hasn't shown an ability to win big games without a big-time QB. He hasn't shown an ability to groom a big-time QB. Perhaps it is time for a new Master Plan.


Learning UserTalk: the Current Post

In a previous post, I demonstrated how to access weblogData.root. In this post, I'll take a look at working with posts. I'll use my Radio Userland draft category to provide an authentic working environment.

I find that the easiest way to experiment with Usertalk is to include the code in .txt files stored in my Radio Userland post hierarchy. In this case, I'll create identical files that represent both a dateless and a dated entry:

Radio_Root/categories/draft/work.txt
at http://127.0.0.1:5335/categories/draft/work.html
Radio_Root/categories/draft/2004/12/11.txt
at http://127.0.0.1:5335/categories/draft/2004/12/11.html
<%
on myCurrentPost( adrBlog=radio.weblog.init(), catName="" ) {
   local (date, adrPost, file = radioResponder.fileBeingRendered);
   if radio.weblog.file.getArchiveFileDate( file,\@date ) {
      if radio.weblog.getNextPostAfterDate( adrBlog,date,\@adrPost,catName ) {
         return adrPost}};
   return \@adrBlog^.posts[ sizeOf(adrBlog^.posts) ]};
myCurrentPost()
%>

Line-by-line:

  1. Declare a procedure named myCurrentPost with three named parameters. Each parameter is also associated with a default value to be used if it is not supplied by the caller.
  2. Declare three local variables. Initialize the variable file as the current file.
  3. Determine the date associated with the current file. Note that we use the @ operator to pass the date variable by address. This allows the called procedure to modify the date variable so that it can be accessed by the calling procedure.
  4. Determine the first post after the current date.
  5. Return the post from the previous line if available.
  6. Return the last post otherwise.
  7. Execute the myCurrentPost procedure and insert results into the rendered html file.

When executed on my system the results are:

dateless entry …/draft/work.html
["Macintosh HD:MyApps:Radio UserLand:Data Files:weblogData.root"].weblogData.posts.["00001065"]
• Note that this refers to the current post, even though the post has not yet been published. We'll correct this in a subsequent version.
dated entry …/draft/2004/12/11.html
["Macintosh HD:MyApps:Radio UserLand:Data Files:weblogData.root"].weblogData.posts.["00001059"]
• A quick look at the December index shows that there was no post on 11 December. The next post occurs on 13 December and is post 1059.

12 Jan: Learning UserTalk: Local Macros and Loops


No Fear

He either fears his fate too much,
Or his deserts are small,
That puts it not unto the touch
To win or lose it all
  James Graham - Marquis of Montrose

I expected to lose one of the big three. So while I expected it to be Zito who was moved, I accepted the trade of Huddy to Atlanta. Then I read that Agent Mulder was going to St. Louis. And I began to waver on the issue of Billy Beane: Genius or Idiot.

But upon further review, I think that Studes said it best:

Pretend You're Billy Beane … You're sitting around your Oakland office, looking at all the shenanigans in the Free Agent market. Now, you don't have enough money to pay a free agent, but you've noticed that starting pitchers seem to be in high demand this offseason -- overvalued, even. Plus, you currently have three of the best young starters in baseball on your staff, and you know you're likely to lose at least two of them in the next two years. What do you do?

Even more, Beane has a rare gift: the courage of his convictions. No one trades away two of the best young pitchers in the game. No one except Billy Beane. A man with a plan on how to win an unfair game and no fear of proving himself wrong.


Integrated Search for Knowledge Blogging

No one is going to compose an RFP response, research report or a marketing analysis using weblog software. Personally, I find it challenging to write a 250 word blog post – much more than that and I switch to another tool and paste it in.

In the real world, documents are authored in a word processing application and stored in a document repository (local disk, share drive, or document management system). What you find in the knowledge blog (k-blog) is a description of the document along with a link. Link analysis could then be used to create metadata describing the linked document.

I would love to see k-blogs replace email for standard project communications. But I don't see corporations implementing that change anytime soon. We could copy email contents into the k-blog, but it might be preferable to link to the underlying email just as we link to documents within the information repository. That would preserve the relationship between the email in a thread.

For a knowledge management solution, we need integrated search that spans the k-blog, document repository and email archive. If there is a true DMS as document repository, then it makes sense to use the DMS as the underlying content store and as the search engine. Otherwise, it makes sense to handle it as an internet search with spidering of the document repository.

BTW, it may be legal to search the corporate email archives. But I don't think that anyone wants all their email searchable by colleagues. At the very least, search should be limited to publicly exposed email threads.


AppleCare and Why I Recommended a Dell

I'm chagrined to admit that I recommended a Dell to a family member the other day. She's considering the options for a laptop computer for her daughter to take to college. And I recommended a Dell.

Yes, I agree that Apple provides a better value than Dell in Apple's selected consumer niches. And yes, I would probably recommend an Apple over a Dell desktop. But my experience is that college is an accident rich environment. And AppleCare doesn't impress me.

Apple does not cover damage due to accident, abuse, neglect, or misuse. That may be acceptable in a benign home environment. But I'd like something a bit more robust for college. Dell CompleteCare covers most accidental damage (spills, drops, surges, breakages). That's a big difference.


« Previous