Greg Reinacker’s Weblog

Musings on just about everything.

Archive for May, 2003

Slashdot and getting there from here

May 17th, 2003 by gregr

In a post about
programming languages and XML, href="http://www.gotdotnet.com/team/dbox/default.aspx?key=2003-05-17T04:58:36Z">Don
Box says:



the real challenge is bringing
hoards of developers who jumped on the OO train and believe that no other
approach to design or implementation is reasonable.

So true. I think
this really started a few years ago (remember MTS?) when developers needed
to start thinking about separating data and operations. The idea of this
separation, while being arguably anti-classic-OO, has become more and more
important as time has gone on. Transactional COM+ systems…web services…the
list continues.

Category: Uncategorized | No Comments »

Nested Constructs in Regular Expressions

May 15th, 2003 by gregr

Today I was looking for a way to do nested expression matching with regular expressions, and pretty much came up empty. Then after a trip to the bookstore to pick up Mastering Regular Expressions by Jeffrey Friedl, I finally found it.

Interestingly, even now that I know what to search for :-), I can’t find a single reference to this on the net or on MSDN.

With the .NET regular expression evaluator, there are (?<DEPTH>) and (?<-DEPTH>) constructs that you can use to match nested expressions; for example, if you want to find matching parentheses, or matching HTML tags. Here’s a “simple” example that will match nested <div> tags:

<div> (?><div (?<DEPTH>) | </div (?<-DEPTH>) | .? )* (?(DEPTH)(?!))</div>

Which will match the part in red below:

<div>this is some <div>red</div>text</div></div></div>

This is pretty cool, I’ve got to say. I really can’t do this justice; if you’re interested, I recommend you pick up the book!

Category: Uncategorized | 12 Comments »

How should aggregators work?

May 14th, 2003 by gregr

(warning: blatant
NewsGator plug ahead!) Ok, so I’m a little
bit behind. :-) In a
href="http://scriptingnews.userland.com/2003/04/23#When:7:44:43PM">post back in April, Dave
Winer says:



RSS readers that work like href="http://www.techcorps.org/webteacher/winexp/newsgroups/open-screen2S.gif">Usenet
readers
are a waste of time, imho. Aggregators should not
organize news by where items came from, just
href="http://radio.weblogs.com/0001015/images/2002/06/11/newsaggregator1.gif">present
the news in reverse chronologic order.


He got some href="http://paolo.evectors.it/2003/04/24.html#a1587">agreement, and some href="http://www.xl8.net/Blog/posts.aspx/544e804e-0de4-4e13-a71f-8bcdf2266d3f">disagreement.
My vote?
Why not use an href="http://www.newsgator.com">aggregator that will do
both?

Category: Uncategorized | 2 Comments »

IBlogExtension and NewsGator

May 12th, 2003 by gregr

I’m pleased to announce that NewsGator 1.2 will include full support for IBlogExtension, and we will simultaneously release plug-ins for most major weblog publishing tools.

Apparently the Blogger folks were first to the BlogThis name by about 4 years, so BlogThis is now IBlogExtension, and the interface definition has be revised based on earlier discussions between Greg, Luke, Matt, and I. The revised assembly is available on the IBlogExtension page. I’ll be posting versions of Synderilla and Relaxer that support this soon.
NewsGator 1.2 has enjoyed the most widely distributed pre-release program since NewsGator was released. We expect a final 1.2 release next week, if everything continues on schedule.

Category: newsgator | 2 Comments »

Full text searching in aggregators

May 12th, 2003 by gregr

Addy Santo suggests that aggregators support full text searching:

Is anyone out there willing to take on a real challenge?  Then how about adding full text indexing into your aggregators!

Yet another advantage for NewsGator…full-text searching through all of your saved news posts. Or even do complex searches involving certain fields, categories, date ranges, etc. And if you don’t want to limit your search to news posts, you can search your email at the same time, too. :-)

Category: Uncategorized | 4 Comments »

Alex Zanardi

May 11th, 2003 by gregr

In September 2001, Alex Zanardi was involved in a horrific accident in a CART race at the EuroSpeedway Lausitz in Germany. He spun on the pit road re-entering the track with 13 laps remaining, and was hit by another car moving at nearly 200mph. He lost both of his legs in that accident.

Today, CART returned to Lausitz, and before the race, Alex was allowed to run 13 laps in a specially prepared car with hand controls. Not one to take it easy, Alex was flat on the throttle by the 4th lap, and ran a lap over 194mph. It’s hard to know if the car was in qualifying trim, but if so, that lap would have put Zanardi on row 3 of the grid for today’s race.

Alex, congratulations on what must have been an amazing day for you. You’re an inspiration to drivers everywhere.

Category: Uncategorized | 8 Comments »

What happened?

May 5th, 2003 by gregr

This is going to sound like a strange question, but here goes. Did NewsGator get some press today, somewhere, without a direct link? Like in print, maybe? Today was a huge traffic day on http://www.newsgator.com, but referrers aren’t telling the whole story.

There were a very large number of google hits for the phrase “NewsGator” – we get a fair amount every day, but nothing like today…

So did anyone see anything I might have missed?

Category: Uncategorized | 7 Comments »

Posting from NewsGator

May 5th, 2003 by gregr

The current 1.2 beta release of NewsGator supports posting to your weblog, if you’re using Radio, blogger.com, or dotnetweblogs.com. Support for Movable Type and BlogX should be coming soon.

Anyway, we need a few more folks on the beta who are interested in using NewsGator to post to
their weblogs. If you’re interested, send me a note!

It’s also very easy to write plug-ins for other weblog systems; if you’re interested in doing that,
I’d be happy to send you some code to get started.

(By the way, this post brought to you straight from Outlook… :-)

Category: newsgator | 2 Comments »

Posting interface (IBlogExtension?)

May 2nd, 2003 by gregr

More on the interface extension that Luke, Simon, Matt, and I have been talking about.

Let’s first think of this from purely a weblog-posting extension point of view, then we’ll come back to the other options.

HasEditingGUI was designed for those aggregators that do have a built-in editor; the idea is, a user could edit their new post within the aggregator, and pass the finished ready-to-post text off to the extension. Thinking about it more, however, makes me wonder if maybe the interface semantics are wrong here. What we need is a way to distinguish between an item that has been edited and is completely ready for posting, and an item which requires further editing. Most IBlogThis implementations I’ve seen handle the latter category, but this is insufficient for our needs.

What I’m thinking is keep the HasEditingGUI function, so aggregators that do have editors can make (or expose) choices about which editor to use, but add a parameter to the BlogItem function indicating whether the item has been edited and is ready to post.

 void BlogItem(IXPathNavigable rssFragment, bool edited);

Where edited would be true if the user has edited the item in the aggregator, and false if not. Aggregators without editing GUI’s would always pass false. The plug-in can then make choices about the GUI it displays, if any.

Luke mentions that maybe we need a HasConfiguration property to indicate whether or not the plug-in has any interesting configuration information – I agree.

For the case where a plug-in has not yet been configured, but BlogItem is called, I agree with Matt – the plug-in should gracefully handle this case, perhaps popping up a dialog for the user to complete the configuration.

On the integrated configuration question, I’d vote for keeping it simple for now – let’s just have a single function for the plug-in to pop up its configuration information; if in the future, it seems we need it, we can extend the interface (or add a new one) to allow integrated configuration in a tabbed dialog or whatever.

And about inheriting from IBlogThis, Luke brings up another good point about being incompatible with IBlogThis extensions. I think we could work around it for the particular problem he mentions; however, we won’t be able to fix the need for another parameter to BlogItem. So, the new proposed interface below no longer extends IBlogThis.

public interface IBlogExtension
{
 // Name of plug-in, suitable for display to a user
 string DisplayName { get; }

 // return true if plug-in has configuration settings
 bool HasConfiguration { get; }

 // Display configuration dialog to user, if applicable
 void Configure(IWin32Window parent);

 // Return true if an editing GUI will be shown to the
 // user when BlogItem is called. In this case, the
 // aggregator will not display its own editing UI.
 bool HasEditingGUI();

 // Post item to weblog. If plug-in is going to show a
 // GUI for editing, it should return true to HasEditingGUI().
 void BlogItem(IXPathNavigable rssFragment, bool edited);
}

Keep the comments coming!

Category: Uncategorized | 4 Comments »