My 4 continents in 4 months drinking buddy Stephen Forte thinks I am insane (that from him!) for keeping all blog stuff in XML files instead of SQL and I just had a quick chat with Jason Whittington about multi-user capabilities for dasBlog.

So... here's a couple of points on what I am thinking about "storage futures" for dasBlog.

XML files are goodness for small sites. There are a lot of folks I met who don't have SQL Server acess for their sites or don't want to deal with the additional complexity. I reckon that it's still a minor administrative burden to set up the permissions, but that's much less than administering your SQL store. Still, SQL is of course superior of sites that have more traffic, because it excels in dealing with concurrency, data consistency and all the database goodness. Come Yukon, there's a great way to mix the extensibility of XML and the power of SQL in a very rich way (to use a Microsoft marketing phrase). And of course, for folks like Stephen, SQL administration is something they do in their sleep. For SQL 2000, I am thinking about submitting Infoset to the data service, breaking out the elements needed for relations and indexes and store everything else as a BLOB. dasBlog only looks at the entry id, the date and the categories when looking for entries so that seems sufficient.

WinFS seems a great way to store the files and add search. I will have to look into that, but it's too far out to even do a prototype.

Multi-User capability is what I discussed with Jason. He suggested that the "author" is just another field. I disagree. The multi-user version of dasBlog (there will be one) will be organized in a very different way. I will actually keep the content absolutely separate on a per-user basis. Site config will be split into user preferences and site preferences. There will be master themes and user-supplied themes. However, there won't be a merged store. Reason: If I am blogging at a shared site and I want to move to a site that I host myself, I want to be able to take the content and make the move myself. Xcopy. If your weblog is on a site with a common store, you will have to extract and remove your content first and that may hard to do and may break stuff in the end, because there may be dependencies in the store that you don't know about. What I am going to do with the multiuser model is that there will be one runtime and app, but content, templates and content will be stored in subdirectories. If you want to move away from a shared site, you grab your stuff drop it into a single-user blog and it just works.

On the inside, the multi-user version will keep one data service instance (and cache) for each user and the portal page will by fed by a data service that aggregates all user data services and creates combined results. Logging will be separate for each user, but the logging information will be fanned out to the common site-wide logging service as well.

Categories: dasBlog

October 29, 2003
@ 07:22 PM

Steve just told me that it occurred to him this morning that the "theme slide" that's used in pretty much all talks here at PDC has sort of an easter egg. The three major blocks of WinFX shown are (in that order) Presentation, Data, Communication.


October 29, 2003
@ 06:40 PM

The MSR keynote was awesome. The stuff around "Tablet PC for students" was so awesome that I almost want to go to school again once that comes around. The "social computing" part was highly inspirational for weblog software ;-)

Links: Social Computing at MSR, Skyserver ... and I can't find a link to the Tablet PC stuff. And no PPTs on CommNet.

Categories: PDC 03

October 28, 2003
@ 09:31 PM

Stephen's world is ruled by tables, rows and columns. That's fine. WinFS uses the power of Yukon to index anything it stores; but what it stores doesn't end up in rows and columns. There's goodness in mixing these things. I'll keep working on my relational friend. I'll succeed.

Categories: Technology

October 28, 2003
@ 07:55 PM

The typical PDC attendee is very special. PDC is not like TechEd where you get very practical information on today’s shipping products. PDC is about futures and it requires a lot of imagination of how applications could look and could work on the new platform. It’s about building excitement for the things to come. PDC attendees are the folks who will make the first wave of applications happen. They are excited about technology and they love to code.

Don Box’ talk yesterday afternoon (WSV201) was very much about now. I heard a few people complain that he didn’t show enough new code. I don’t think he should have. I found his talk very important and Don delivered his message very well. Don’s talk was very much about architecture. No matter how much you want to see code, it’s not the 1990’s anymore. Simply hacking up an app won’t let you play in a connected application ecosystem that’s powered by Web services. WinFX will enable better applications by simplifying coding complex applications in a big way and making developers more productive. You’ll code less. Code isn’t all that matters. Architecture matters. Negotiation and contracts matter. Design matters.

There were four key takeaways from his talk: Boundaries between applications are explicit. Indigo’s programming model is different from previous distributed programming models such as COM and Remoting, because it doesn’t make objects implicitly remote. You need to declare things as being remote. The fact that you’re theoretically able to write a local application and can then write a configuration script that distributes this application across multiple machines using Remoting was a naïve approach. Likewise, writing a COM application that’s built as a local application and reconfiguring it to run as a distributed application using a different registry setup is a naïve approach. With Indigo, you will need to start writing applications explicitly as being remote. If you love objects, you will find a few things very restricting in this world, and at first sight. There are no automatically marshaled callbacks, interfaces and objects. There are messages, not object references going across the wire. The endpoints of communication, called services, aren’t fragments of the same application based on the same types and classes. Services are autonomous units which adhere to compatible data contracts and policy, not dependent units that use identical implementations. We share schema, not type.

Don recommended, as I’ve done earlier here on the blog, one of the most important Indigo talks for anyone who’s building software on today’s platform (that means: everyone at PDC): WSV203, “Indigo”: Connected Application Technology Roadmap; Wednesday, 11:30am, 409AB.  Go.

Categories: PDC 03 | Indigo

October 28, 2003
@ 07:55 PM

I’ve got the PDC build running on my box. Jim Allchin was right; it isn’t exactly screamingly fast – at least in Virtual PC. Here are a few notes:

·         Needless to say, but: Have a dedicated box for Longhorn or use Virtual PC. I’ll likely get a new box when I am back at home. Sounds like a machine brutally optimized for 3D gaming is a good bet – along with 2GB of memory.

·         If you can’t at least assign 256MB of memory to the VPC machine, forget it. If you can allocate more, go for it. Shut down all apps and services on the host you can and give Longhorn room to breathe.

·         The VPC2004 from the PDC disks will remove any previous Virtual PC builds from Connectix. The version from the PDC disks will expire February 28th, 2004. Which means that I just went from a licensed copy to a demo copy. I don’t like that, at all.

·         You will need to log on to the server to acquire your product key. The userid and password is in the disk booklet.

·         Take your time. Installing into Virtual PC takes a very long time. Expect that your box will take about 2-3 hours and I wouldn’t do too much on it during that time. Expect the box to lock up, requiring a hard reset. It did that several times for me.

·         I’ve mounted one of the ISO images from Disk 2 into VPC, which seemed to be the most convenient option.

·         On my Dell Inspiron 8100, Longhorn comes up in 4-bit color mode and that’s the only mode available. You will have to install the VPC additions into Longhorn to get a graphics driver that works, reboot and then switch to that one.

·         Just right after install, with nothing done, the VPC disk size stands at 3GB. I think you should have some 6-10GB available if you want to do anything with it but looking.

Categories: Longhorn

Here’s my quick, two sentence definition of Indigo in order to give you an idea about the scope of this thing:

Indigo is the successor technology and the consolidation of DCOM, COM+, Enterprise Services, Remoting, ASP.NET Web Services (ASMX), WSE, and the Microsoft Message Queue. It provides services for building distributed systems all the way from simplistic cross-appdomain message passing and ORPC to cross-platform, cross-organization, vastly distributed, service-oriented architectures providing reliable, secure, transactional, scalable and fast, online or offline, synchronous and asynchronous XML messaging.

Categories: PDC 03 | Indigo

October 27, 2003
@ 08:26 PM

The PDC keynote, featuring Bill Gates, Jim Allchin, Don Box, Chris Anderson and, on video, John Scully, Marc Andreesen, Bill Clinton, Warren Buffet, Sean Combs (P. Diddy) and lot of other folks ... was easiest the best, most substantial, longest and fun keynote I've ever seen. And I've seen very many.

Longhorn, the Aero shell, the Avalon programming model, WinFS and Indigo rock already and they are going to get better and better as time progresses.

Hey, Linux Penguins, here's the new thing to clone. Good luck.

Categories: PDC 03

I am somewhere above Canada right now, on board of the KLM 747-400 named „Seoul“ (Reg. PH-BFS), which is flying in a passenger/freighter configuration from Amsterdam to Los Angeles today. My seat is 74J, which is on the upper deck. It’s always cool to fly on the upper deck of a 747, regardless of class. Some airlines, like British Airways, use the upper deck for economy class, some, like KLM, seat their business class there and others, like Lufthansa, their first class. Today, wines are great, food is excellent, and the service staff is very friendly (and eye candy) on Holland’s national airline.

Tomorrow, PDC03 starts. Cool. Can’t wait to see my friends, can’t wait to see what’s new. This is Christmas Eve for Windows development geeks.

Categories: PDC03

Did I say “a bit rushed”? This patch fixes a problem with the click-through functionality that occurs with complex hyperlinks. If a hyperlink in content has a list of parameters separated by the ampersand (&) character, all except the first parameter are lost. The files in this patch correct this. Drop them into the /bin directory of your v1.4.3297.0 install.



Categories: dasBlog

If you thought that Slashdot marks the top in mindless "Microsoft sucks, I love Linux" advocacy, here's something better.

The German tech-news site has discussion forums for every single article they publish and these forums seem to be the #1 meeting place for the clueless, bored, bitter, unemployed, underpaid, oppressed, unskilled and "why didn't I get another job" people in the German IT industry.

Today's news is the Longhorn build that PDC attendees will get. This is what the forum twits have to say in German, here's Google's English translation. It's so bad, it's funny.

Categories: Other Stuff

My good friend Steve Swartz is giving blogging a second try and this time for real. Given that the stuff he's been working on is/was in the stealthier areas of the Indigo effort (not the public WS-* specs), it was pretty difficult for him to blog about work, but now with PDC things are changing.

In an effort to get newtelligence's PDC T-Shirt, Doug Purdy switched from Radio to dasBlog as well.

These two blogs will be very interesting places to watch if you are interested in the Indigo programming model.

Doug Purdy is the Program Manager for the new serialization framework (which consolidates XmlSerializer, BinaryFormatter and SoapFormatter), Steve Swartz drives the Indigo programming model that all of us will use.

Categories: PDC 03 | Indigo

The source code archives (SourceSetup/SourceZip) are missing four files in the Assemblies subdir that the gentlemen who added the respective features didn't care to put into the source setup project. You can get the files either from one of the other distribution archives, from the GDN workspace (source control) or the fixed source code archives from the dasBlog download location. GotDotNet doesn't let me upload the corrected release version right now, so I deleted the source release copy over there for the moment.

Categories: dasBlog

October 24, 2003
@ 06:48 PM

newtelligence dasBlog v1.4: After you have read the release/upgrade notes, get it from here.

I have done a bit less testing than I usually would, because I wanted to get this version out in time for PDC – just because I want to have some of the new features (especially cross-posting) for myself for PDC. I have bravely deployed this new build on my own blog (here) and it didn’t break me, so it should work for you as well. Make a backup of your site before you install, ok?

Cross-posting is certainly the coolest feature if you happen to have two or more blogs (the number of folks who have that is growing daily). Before I add a formal explanation to the docs (which isn’t going to happen tonight) here’s a quick primer:

If you have cross-posting enabled on the configuration page, you will have two more entries in the administrator bar. “Crosspost Referrers” and “Crosspost Sites”. Crosspost sites is an editable list where you can enter the other blogs you want to post to and where you want to keep entries synchronized. The picture shows my setup for Hostname and Port should be trivial to understand. The “Endpoint” is the Blogger API or MetaWeblog API endpoint of your blog engine (leading forward slash required). It’s tested that dasBlog interops with itself ;), with .Text and There’s not much of a reason why it shouldn’t interop with more engines. The API type is either “Blogger” (for or “MetaWeblog” (for mostly everything else, including dasBlog and .Text). Click the “Test” button to verify the setting before you save them.

Once you’ve set up one more more sites, you’ll get the following little extra box at the bottom of the “Edit Entry” page:

Just check the sites you want to cross-post to. If the site supports the MetaWeblog API, you can also enter categories there. Multiple categories are separated by semicolons. Once you post, the cross-posts are queued up and will be posted within a couple of seconds. One catch: You should no re-edit the entry before the synchronization is done; typically within 15 seconds after your post has been stored. If the entries haven’t been synchronized, yet, the checkboxes will remain unchecked.

If you subsequently edit the entry, the changes will be replicated into the foreign Weblogs (not vice versa). If you delete the entry, the foreign entries will also be removed. In essence, you only have one blog to maintain, but multiple publishing points.

The feature isn’t yet integrated with Mail-To-Weblog. What you need to do there is to post your entry via mail, edit the entry later via the web interface and change nothing except checking the appropriate boxes and setting the categories. Support for cross-posting via Email will be in v1.5.

The “Crosspost Referrers” page shows the referrers that you are getting on the foreign site. Note: Your main blog is going to get some of the traffic of the foreign blogs because of the referrers feature. The referrer stats are baked into the cross-post feature and can’t be switched off singly at this time. For each unique hit the foreign site gets on one of your entries, there’s a potentially a request for a 43 byte image plus a bit of protocol overhead; let’s make that 100-150 bytes. Keep that in mind before you enable cross-posting to a high traffic site, otherwise this feature may end up “slashdotting” your own server. (Similar considerations are true for “Aggregator bugging” – see the release notes)

PS: Thanks to all the heroes in the GDN Workspace who helped a lot with this release.

Categories: dasBlog

Brad More is asking whether and why he should use Enterprise Services.

Brad, if you go to the PDC, you can get the definitive, strategic answer on that question in this talk:

“Indigo”: Connected Application Technology Roadmap
Track: Web/Services   Code: WSV203
Room: Room 409AB   Time Slot: Wed, October 29 11:30 AM-12:45 PM
Speakers: Angela Mills, Joe Long

Joe Long is Product Unit Manager for Enterprise Services at Microsoft, a product unit that is part of the larger Indigo group. The Indigo team owns Remoting, ASP.NET Web Services, Enterprise Services, all of COM/COM+ and everything that has to do with Serialization.

And if you want to hear the same song sung by the technologyspeakmaster, go and hear Don:

“Indigo": Services and the Future of Distributed Applications
Track: Web/Services   Code: WSV201
Room: Room 150/151/152/153   Time Slot: Mon, October 27 4:45 PM-6:00 PM
Speaker: Don Box

If you want to read the core message right now, just scroll down here. I've been working directly with the Indigo folks on the messaging for my talks at TechEd in Dallas earlier this year as part of the effort of setting the stage for Indigo's debut at the PDC.

I'd also suggest that you don't implement your own ES clone using custom channel sinks, context sinks, or formatters and ignore the entire context model of .NET Remoting if you want to play in Indigo-Land without having to rewrite a large deal of your apps. The lack of security support of Remoting is not a missing feature; Enterprise Services is layered on top of Remoting and provides security. The very limited scalability of Remoting on any transport but cross-appdomain is not a real limitation; if you want to scale use Enterprise Services. Check out this page from my old blog for a few intimate details on transport in Enterprise Services.

ASMX is the default, ES ist the fall-back strategy if you need the features or the performance and Remoting the the cheap, local ORPC model. 

If you rely on ASMX and ES today, you'll have a pretty smooth upgrade path. Take that expectation with you and go to Joe's session.

[PS: What I am saying there about ES marshaling not using COM/Interop is true except for two cases that I found later: Queued Components and calls with isomorphic call signatures where the binary representation of COM and the CLR is identical - like with a function that passes and returns only ints. The reason why COM/Interop is used in those cases is very simple: it's a lot faster.] 

Categories: PDC 03 | Technology | COM | Enterprise Services | Indigo

Doug, you are absolutely going to get newtelligence's PDC T-Shirt, but in all reality you should give me a T-Shirt for allowing you a super smooth transition and perfect upgrade path from your outdated blogging tool to this here. Tell Don that he's going to get one, too, if he makes the switch.

"newtelligence PDC T-Shirt!" you ask? There will be two types. The one Doug is asking for is very on-topic for PDC and it's subtly outrageous. You will have to wait until PDC and catch me (or someone who's got one) to see it.

Of the other one I'll have just three made for myself and it's not really subtle in it's message, but rather conveys it quite clearly:

Categories: dasBlog | PDC 03

October 21, 2003
@ 08:41 PM

Thanks everyone. I got about 20 MMS and SMS messages to figure out how to support these types of emails for dasBlog. I actually found a few minor bugs in the Mail-To-Weblog support and while the messages of course don't come out as pretty as from a regular email client, it does at least work now.

What's key -- and that's something that I can't figure out a consistent workaround for -- is that the SMS/MMS gateway must be capable of setting a subject line for emails so that dasBlog can do it's passphrase check. For Germany, this page has a bunch of info on how that works in the major networks (in German).

Categories: dasBlog

Yesterday and today I have added another new feature to dasBlog called "Crossposting". This feature, which will be available in the v1.4 build that I still plan to publish before the Microsoft PDC next week, is simplifying having multiple blogs on several sites by allowing a entries to be posted to a master weblog running dasBlog and having the engine crosspost across multiple weblogs using the Blogger API or the (more powerful) MetaWeblog API. If the entry is updates locally, the crossposts are updated and if the entry is deleted, the crossposts get wiped, too.

My concrete problem was that I wanted to contribute to, but didn't want to maintain a separate blog. Now I can post a local post here, check a checkbox and it'll appear in both places. To still get the referrals, I am "bugging" the crossposted articles with a transparent GIF that phones home into the referrer stats of the main blog.

I'll post a "how to" along with the release, which I hope will happen by Friday. Until then, you can check that it works by looking at the three synchronized weblogs.

Categories: Blog | newtelligence | dasBlog

October 20, 2003
@ 10:51 AM

OT? What are you guys thinking? There's nothing off-topic on a blog since the topic of a blog is you. ;)

Categories: Blog

One thing that’s still on my list of things to add to the Mail-To-Weblog support of dasBlog is support for SMS and MMS blogging. Because SMS and MMS e-mails routed through the mobile phone carrier’s E-Mail gateways often seem have varying whacky formatting added to them either by the phone itself or by the carrier (like weird subject lines), I need to have a set of samples to figure out how to support this best.

If you have E-Mail via SMS/MMS enabled for your phone and are willing to make a small donation to the dasBlog project by sending one E-Mail to me, you could help me getting this feature right. The E-Mail should have the subject “DasBlog:SMS” or “DasBlog:MMS” (if your phone permits that) and the text body should contain the mobile carrier name, phone manufacturer name and model number. Of course, MMS is where the real fun is and what I want to support fully.

Once we’ve got support for inbound SMS/MMS blogging, I intend to support WAP and cHTML support as well as a special set of templates and entry points for small form factor browsers like PocketPC in the following version.

E-Mails should go to

Categories: dasBlog

I wasn’t sure how good these two new features would work, but the stats are so great that I already don’t want to miss them. Gives you a really good impression what people are (still) interested in and what files they grab from you site. Now I finally know what stuff (code, PPTs) I need to keep current and what I topics should come back to and revisit.

For the curious I’ve included two screenshots of what today’s stats of these two features look like as of 10 minutes ago.

Categories: dasBlog

October 18, 2003
@ 08:05 PM

I've bumped up the version number for dasBlog to 1.4. I've got a couple of enhancements myself in a private build here and the folks over in the workspace at GotDotNet have added quite a few cool things as well. I want to check in my new stuff before end of next week, so that we'll have an "official build" ready just before PDC.

The two features I added today are evil spy-features "ClickThrough" and "AggBug".

ClickThrough is an automatic mechanism that will (if configured) replace all hyperlinks in your web-page content with references to a redirector service, which logs clicks. So you'll learn which links people actually click. I added this mostly because I am curious about my downloads.

AggBug (long version: "RSS Aggregator Web Bugs") injects a reference 1x1 transparent GIF into the HTML that's emitted by the RSS generator for each entry. The GIF is served by the engine itself and tracks those requests. I am doing that, because I really want to know how many readers I have. Currently I only see the readers who are coming to the web-site, but I suspect that the vast majority are using aggregators.

Update: I should probably add that I am not logging IP addresses in these two features just as I am not doing that with referrers.

Categories: dasBlog

While you wait for the Indigo show to start, here is some stuff to look at and consider (again).

The links at the bottom of this post point to five slide decks that I have been using for presentations throughout this year. All of them are, indeed, very relevant to the Indigo story you will be hearing at PDC 03.

This spring, I’ve been on the road together with my good friend Steve Swartz, who is one of the Architects and Program Managers at Microsoft’s Indigo Team. On this tour, we have presented lots of ideas around scalable applications in seven cities all over Europe. And of course, we knew at the time that Indigo was coming … ;)

The “DistSys” ZIP files below contain the four decks we have been using on that tour. “Layers” is about layering, tiers and services (pay attention to “dialogs”), “Processes” is about implementation aspects such as process models, state and sessions, “Transactions” is about taking thinking about transactions beyond the database and “Scaling” highlights several essential ideas around scalability.

My DEV357 talk at TechEd Dallas, which is in part an aggregate of the talks from this tour, may even be more important, because it actually contains outspoken, concrete guidance for how to build applications on today’s technology stack in order to be ready for Indigo. To summarize the core message of that deck in terms of appropriate use of the existing technology stack for distributed systems:

·         .NET Remoting: Use for “local”, on-machine, cross-app-domain communication.
(In clear words: Remoting calls don’t leave the machine!)

·         Enterprise Services: Use for “near”, cross-process, cross-machine communication

·         ASMX: Use for “near” or “far”, cross-process, cross-machine communication. Prefer over Enterprise Services, unless you need the features or have pressing performance problems.

Read. Understand. Absorb.


Categories: PDC 03 | Talks

Grosse Dinge steht vor der Tür, alle wollen hin. Problem: Die ganze Operation ist nicht gerade billig und der Chef läßt einen nicht hinfahren.

Um ein bisschen Trost zu spenden und auch um einen netten ersten Anlass zu geben, sich unter (nieder-)rheinländischen Entwicklern mal zusammenzusetzen ohne dass es gleich was kostet, haben wir hier bei newtelligence vor, sehr kurz nach der grossen Microsoft Veranstaltung in L.A. irgendwo hier bei uns einen Saal zu mieten (irgendwo rundum D, MG, NE) und unter dem Motto "Neues aus L.A." in ungefähr 3 Stunden, ganz informell und bei einem gepflegten Bierchen die wichtigsten Stichpunkte von dem was wir an Einsichten mitgebracht haben für den programmierenden Rheinländer zusammenzufassen.

Wenn wir genug Kölner und Bonner zusammenkriegen machen wir auch sehr gerne einen zusätzlichen Ausflug auf die Südseite der Worringer Linie. Die Veranstaltung soll und wird nichts kosten und wir kennen sogar jemanden, der bereit ist ein oder zwei (oder drei) Lokalrunden auszugeben.

Also, wer Interesse hat oder wer einen kennt der Interesse haben könnte, hier sind die Eckpunkte:

  • Termin: irgendwann in der Woche vom 10.11. bis zum 14.11; Start so um 18:30. Endgültig festgelegt haben wir ausser dem Ausschluß vom Hoppedizerwachen (11.11.) noch nichts. Kommt auch drauf an wann die meisten Interessierten können und was wir für eine Lokalität brauchen. Unsere Favoriten sind aber Donnerstag und Freitag.
  • Themen: WinFS, Indigo, Avalon und ASP.NET 2.0
  • Ort: Altbierzone D, NE, MG und ggf. zusätzlich nochmal in der Kölschzone K, BN, BM 
  • Vortragende: Willers, Freiberger, Vasters
  • Anmeldung von Interesse: Bitte per EMail ( mit dem Betreff "Neues aus L.A.", mit Name und Adresse/Kontaktinfos und bis allerspätestens 24.10. damit wir das auch organisatorisch noch hinkriegen. Und da wir weder die Kölnarena noch die Philipshalle mieten werden, müssen wir natürlich irgendwann auch die Tür zu machen. ;)
  • Grund: Künne mer donn, also dommer dat.


Categories: newtelligence

October 15, 2003
@ 06:26 AM

China has a man in orbit. I think that's fantastic. I strongly believe that they're serious about going to the moon. It's time man goes back up there.

Categories: Other Stuff

Here’s a little, so far unpublicized secret from my calendar (read on, freebie ahead):

My company, newtelligence, is currently running a series of workshops on “Windows DNA to Microsoft .NET migration” for Microsoft EMEA at the Microsoft Technology Centre in Reading, UK. We already ran three events with lots of success and have at least another two scheduled.

On the first day, we cover aspects like “Why, when and when not to migrate”, migration strategies, Web services integration and side-by-side comparisons of technologies like ASP/ASP.NET and ADO/ADO.NET. And on the second day, we actually port an ASP/COM+ app to the .NET platform from scratch and show common preparation steps, pitfalls and workaround techniques.

And here’s the best of it all: Microsoft offers this workshop series to their enterprise customers at no charge. All you need is to register and pay your own travel and hotel. The events run at the Microsoft Campus in Reading, UK. Next dates are November 6-7 and December 11-12. Seating is very limited, so if you are interested you need to be quick to grab a seat.

There are two ways to get in. Either contact your Microsoft account manager (if you have one) and ask about the “DNA -> .NET Interop and Migration” course at the EMEA Microsoft Technology Centre or, much simpler, simply drop us a mail at with your full business contact details and we’ll get back to you with the full agenda and information on how to sign up (given there are still seats available). If you don’t think you are a Microsoft enterprise customer – write anyways. We’ll try.

Why am I writing this? At the last run of the event we still had a few seats left and I suspect that was simply because only few people knew about these events and Microsoft didn’t make them very visible. So I thought I should make that a bit better known for the benefit of the community ;)

Now you know. Tell your friends. It’s good, it’s free, can’t go wrong ;)

Categories: Talks

I see quite a few models for Service Oriented Architectures that employ pipelines with validating "gatekeeper" stages that verify whether inbound messages are valid according to an agreed contract. Validation on inbound messages is a reactive action resulting from distrust of the communication partner's ability to adhere to the contract. Validation on inbound messages shields a service from invalid input data, but seen from the perspective of the entire system, the action occurs too late.

What I see less often is a gatekeeper on outbound channels that verifies whether the currently executing local service adheres to the agreed communication contract. Validation on outbound messages is a proactive action taken in order to create trust with partners about the local service's ability to adhere to a contract. Furthermore, validation on outbound messages is quite often the last chance action before a well-known point of no return: the transaction boundary. If a service is faulty, for whatever reason, it needs to consistently fail and abort transactions instead of emitting incorrect messages that are in violation of the contract. If the service is faulty, it must consequently be assumed that compensating recovery strategies will not function properly and with the desired result.

Exception information that is generated on an inbound channel, especially in asynchronous one-way scenarios, vanishes into a log file at a location/organization that may not even own the sending service that's in violation of the contract. The only logical place to detect contract violations in order to isolate and efficiently eliminate problems is on the outbound, not on the inbound channel. Eliminating problems may mean to fix problems in the software, allow manual correction by an operator/clerk or an automatic rejection/rollback/retry of the operation yielding the incorrect result. None of these corrective actions can be done in a meaningful way by the message recipient. The recipient can shield itself, and that is and remains very important. However, it's just a desperate act of digging oneself in when the last line of defense did already fall.

Categories: Architecture | IT Strategy

October 6, 2003
@ 07:16 PM

Call me ignorant, but I think that the much hyped BloggerCon was an experiment that tanked completely. I wasn't there, but I see the results in "blogspace" and it is severely disappointing to say the least.

I just went through about 40 of the blogs on the blogroll and what I found was lots of name dropping like "Wow, I met NNN and he/she is so cool/interesting/witty/bright/blonde", lots of "NNN just started his session on [something that you'll find on the agenda]" and other stuff that may have been well in context if you were there, but lacks any point if you weren't.

The summary here seems to bit quite comprehensive. Before you continue reading here, click the link an go read it. .... I said go read it .... Go!

What I see is people that say "blogs save the world" and people that say "people who say that blogs save the world have lost their connection with reality". There was so much hype coming out of that room that it easily beats anything I've ever seen or heard about the potential of the Internet at the height of the bubble. Now we're not only going to get everybody connected to sell them something! No! We're going to revolutionize and revitalize democracy, we'll make the world a world of total information transparency, traditional journalism has ended!

So... if it does? What's the "Blogosphere" benefit of this conference? How did that new space that you all talked about really benefit from all that? I think it didn't, because you didn't give them any context folks, just loose hyperlinked meshes of nothingness. Microsoft TechEd and Microsoft PDC aren't about blogging, but the and portals create a hundred times more informative and better organized "blogspace" than this blogger centric event's main "blog", which hasn't seen an update during or since the conference. Where are the presentations? Where is the archive of the web stream, where the IRC logs?

Not there? Bummer. If there is a real need for a conference about blogging, there should be tangible, organized results that the much-hyped blogspace community can benefit from. Maybe it's too early given it's only Monday, but I am almost ready to bet that we won't see that, because the idea was that these results would manifest themselves in the blogs during the conference. Instead, we find incoherent crumbs of information.

If you think that Weblogs are revolutionizing communication, why have a face-to-face conference? Why not just blog?

Here's my proposed agenda for a blogger conference that (a) stays true to the medium, (b) is productive with tangible results and (c) has all the wonderful advantages of meeting face to face.

Go to a sunny and fun place with a beach, lots of entertainment and a cool scene - in summer.

Day 0:
07:00pm Dinner
09:00pm Go out for drinks and have lots of fun
10:00pm Go to next bar (repeat until 2pm, depending on how much you can handle)

Day 1:
09:00am Breakfast in your hotel room (headache and you don't want to get out of that bath robe)
09:30am Kick out the other blogger(ess) you brought up into the room when you were both drunk and silly
10:00am Dial Up, put the "Do Not Disturb" sign on the door knob, lock the door
10:01am First prepped essays are posted by a few folks; start chatting, IM'ing, commenting, thinking, linking. Produce logs.
11:30am Second round
01:00pm Hook up with the crowd in the hotel restaurant for lunch. Discuss whether vegetarian meals are really healthier.
02:30am Third round
04:30am Fourth round
05:30pm Meet for a chat & early dinner
07:00pm Go out for drinks and have lots of fun
08:00pm Go to next bar (repeat until 2pm, depending on how much you can handle)

Day 2: (see above)


Categories: Blog

October 6, 2003
@ 02:42 PM

Ummm.... did I document that? If you use dasBlog, you can have an individual template for each category. Just create a subdirectory with the same name as the category (and subdirectory of the subdirectory for a nested category) and place the modified template files there. I just did that for the dasBlog">dasBlog category (subcategory of newtelligence) and placed the new files into the newtelligence/dasBlog subdir below the main template directory. Requires version 1.2 or later.

Categories: dasBlog

October 6, 2003
@ 01:46 PM

The Electric Doc’s blog is a fantastic example for someone leveraging the localization support I put into dasBlog to the maximum extent. Except for the headline and the occasional English term in the posts I don’t understand a single thing over there, but that’s the whole point of full localization, right?

If the browser’s primary language is set to Japanese, even the navigation headlines, the comment links, the dates and everything else shows up in Japanese.

World enabled. Goodness. I am really happy to see that ;)


Categories: dasBlog

"I'd like to bring you in for a review/training/coaching, but I guess you guys are too expensive" is something that I hear quite often when conference attendees approach me after a speech and ask me for assistance with problems they have. In fact, we likely aren't. We know the circumstances in quite a few markets in the EMEA region very well and know about the budget constraints of small and mid-size software companies. Don't make a guess, ask.

Categories: newtelligence

October 6, 2003
@ 11:32 AM

If you are given a hard time, because a project is late, there's now a good example to point to and say "well, it could be a lot worse".

The German TollCollect consortium that is contracted by the German government to build and operate a GSM/GPS based system to collect a country-wide, per-kilometer road use toll from trucks is currently caught right in the middle of one of the most publicized, most political and most costly IT project delays in Germany, ever. The problems seem to be a nightmarish combination of problems arising from in a huge project slammed together in a hurry and the blame must be given to both sides, the government and the industry partners. However, the result is absolutely disastrous for the already overstressed state budgets: German taxpayers are currently losing at least US$150 million (€130 million) a month just because of the project delays.

Categories: IT Strategy

October 4, 2003
@ 04:46 PM

So today was apparently the start of Dave Winer's BloggerCon. What a great idea. Put people who share an addicition to personal, chronological, hyperlinked content management and publishing into a room and let them chat about it. They even have a QuickTime live webcast. I watched that a little. BloggerCon redfines "relevant". Wow, I am so glad that I didn't go.

Categories: Blog

October 3, 2003
@ 11:04 AM

The reunited Germany celebrates its 13th birthday today - national holiday. Happy birthday to us, happy birthday to us, happy ...

But in all reality, German national holidays aren't days of great fanfare, parades and fireworks displays across the country. Germany is a country without any significant display or even sense of national pride and patriotism, except, maybe when it the national football (I mean the football that's played with the foot, get it?) team is playing at some international championships. Most of us grew up being taught that patriotism is equivalent to being a Nazi.

And even though the achievements in East Germany are absolutely amazing when we compare it 13 years ago, there's still so much work to do to get unemployment down, to keep the sky rocketing expenses for our social and health care systems under control, and to get the economy back on track that there's little to celebrate. The next national day of celebration is when the current administration gets booted.

Categories: Other Stuff

October 2, 2003
@ 06:56 AM

I read on some blogs that people are confused about the trackback support in dasBlog. Trust me, I am confused myself. I have implemented version 1.1 of trackback, using HTTP POST instead of version 1.0's HTTP GET and neglected supporting the 1.0 variant. That may be part of the problem. Still, I freely admit that trackback is probably one of the worst tested features of the whole code base in general. Getting that to work properly is on my list. Pingback works.

Categories: dasBlog

October 1, 2003
@ 09:52 PM

It seems that Dare Obasanjo is getting ready to switch off the lights over in the BlogX workspace on GotDotNet or at least is about to drop the existing BlogX code base for good and replace it with the current build of dasBlog. In this comment here on this blog Dare is also hinting at moving all of the Microsoft blogger blogs on GotDotNet from BlogX to dasBlog.

I swear! A hostile takeover of BlogX wasn't part of the plan! It just happened! 

What's still an open discussion point is whether we'll have a logical second of synchronization between the two projects and from there, the newly dasblogged BlogX will move on its own while dasBlog will remain the cozy little project that it is or whether Dare will bring all of his 338 friends over to the dasBlog workspace.

Indepent of how that's going, both projects or the merged project will be under stricter project management than before. For instance, BlogX suffered massively from files being checked out for weeks or months. If that'd happen in the dasBlog workspace, it'd have a member less.

Categories: dasBlog

I am currently writing an article for a magazine about dasBlog and I am also covering a bit of the history of RSS and similar formats. While looking up some links on Google, I stumbled over a blog entry by Don Box that I hadn’t read or which at least didn’t stick.

Don had an outrageously retro idea back in May of which I understood the complete coolness only today. The reason why that didn’t click earlier for me until today was likely that Don simply didn’t use the right picture to go with that blog posting. So, Don, as a special service from a friend I’ll do that for you here:

Subscribe to Don Box’ Active Channel
Add Active Channel

Even if there’s a chance that someone (from the Windows shell team, maybe?) is going to hate me for it, I firmly plan to add Active Channel and even Active Desktop support to the next revision of dasBlog; every copy of Windows with IE4.0 or later has built in support for the exact stuff that Weblogs are. Let’s just use that.

(Update: I just noticed that I must have been living under a rock in May)

Categories: dasBlog | Weblogs

October 1, 2003
@ 01:43 PM

We just had a short discussion here at the office on the goodness and badness of using Reflection to cheat around private and protected and cases where it does and doesn't work (it's of course a System.Security.Permissions.ReflectionPermission thing). The discussion brought back memories of that old C/C++ hack that I've been using for almost any application back in my Borland C++ and OWL days:

#define private public
#define protected public
#include <owl.h>


Categories: Technology | CLR