Jörg and myself are getting real close to release the new drop of our "summer project", dasBlog, within the next two to three days. It's going to carry a 1.1 version number already, because we've made another set of massive changes, including restructuring the code base and splitting it up into many more files and projects, which should make collaborative work on this much easier (...possible).
Areas that were worked on specifically:
- All controls we render inside the macros will get a CSS class assigned to them and we are removing most of the fixed formatting inside the code, so that the appearance of every little thing shall be customizeable. This will have an impact on existing templates and may break some of the Radio templates, but the required changes should be rather minimal.
- All time expressions are now consistently stored in UTC
- Mail-To-Weblog can now deal with RFC2822 dates
- Nested OPML outlines can be rendered and edited
- "Content filters" is not a new, but now visible feature that allows to run an arbitrary number of search/replace filters (regex or plain) against content before it is rendered. So, if you want to turn semicolon-dash-closing-parenthesis into a smiley when your page is rendered, you can add a filter that will do so.
- dasBlog can post its own RSS feed to any remote storage system supporting the XmlStorageSystem API, including the Radio Userland store.
- Lots of additional configuration options to switch services on and off.
- Several bug fixes.
Once we're done with that, Stephen Forte has promised to add some additional caching magic to the stuff.
My Radio subscription runs for another 11 months and I have some 40MB of webspace there, so why not use it. Also, it seems that it's going to take forever for people to switch their subscriptions from the old RSS feed to the new one. So, I wrote an XML-RPC client for Userland's Radio cloud this weekend and a little command line utility for upstreaming stuff outside of Radio. Of course, the real reason for the client piece is to be able to have my blog engine automatically push changes in the RSS feed up to my old blog location for as long as the Radio subscription runs, so that even the lazy folks get the right stuff. It'll be a switchable option in the next public dasBlog build.
(For a change, an entry in German and on something totally different)

Heute abend ab 18:10 Uhr ist die Bundesliga wieder "zu Hause" bei der ARD Sportschau und beim WDR. So sagt zumindest die Werbung. Für mich weckt die Rückkehr der Sportschau zum WDR "nostalgische Erinnerungen". Und zwar nicht nur aus Zuschauersicht, sondern an die Zeit, als ich beim "Machen" der Sportschau (in "tragender Rolle", nämlich als Kabelhilfe) für rund 6 Jahre, von Mitte 1985 bis Ende 1990 als Schüler und dann als Student dabei war.
Mitte der 80er war Fußball für die Volksseele zwar schon so wichtig wie heute, aber im Fernsehen fand Fußball eben lange nicht in dem Ausmass statt wie heute. In der Sportschau gabs drei oder vier Spiele in Ausschnitten zu sehen, und vielleicht noch die Tore von den anderen (wenn man Glück hatte) und an Kameraperspektiven gab's eben auch nicht so viele. Üblicherweise gab's eigentlich nur drei bis vier Kameras bei einem normalen Spiel. Eine "Führungskamera" für die Totale, dann entweder jeweils eine auf der Tribüne auf Höhe der jeweiligen 16 Meter Linie oder eine weitere Kamera unterhalb der Führungskamera und eine Handkamera für Interviews. Und das Zeug war schwer. Damals war das alles noch gute, alte Analogtechnik und wog ein mehrfaches dessen, was die heutigen Digitalkameras wiegen. Und wir mussten das natürlich alles durch die Gegend wuchten und für jedes Spiel kilometerweise Kabel ziehen. Auch war es damals absolut nicht selbstverständlich, dass der fertig geschnittene Beitrag einfach per Richtfunk (oder über Satellit) übertragen wurde. Wenn, und das galt besonders für die Sonntags-Sportschau, genug Zeit zwischen Aufzeichnungsende und Sendung war, ging das Band per Motorradkurier nach Köln.
Alles das war eine fantastische Zeit -- und der beste Studenten-Nebenjob, den ich mir vorstellen kann. Ich war jede Woche bei mindestens einem Bundesliga Spiel, oder mittwochs bei UEFA Cup, Pokal der Pokalsieger, beim DFB Pokal, der Fußball EM 1988, vielen Playoffs der Eishockey-Bundesliga, mehrmals beim World-Team Cup Tennis, Tischtennis WM 1989, diversen Leichtatlethik Meetings, und so ziemlich bei alle anderen Sportarten die man sich vorstellen kann. Und mit 130,- DM pro Tag und 50% Sonntags- und 100% Feiertagzuschlag war der Spass auch noch richtig gut bezahlt (für die damaligen Verhältnisse).
Einige der damaligen Kabelhilfe-Kollegen sind beim Fernsehen geblieben und teilweise auch vor der Kamera zu sehen. Tom Lehel, zum Beispiel, ist momentan in jeder zweiten Comedyserie am Start und Andreas Sauer ist mit der Band Leo Colonia eine grosse Nummer im Kölner Karneval. Und diverse bekannte Sportredakteure haben just damals beim WDR angefangen, waren als Studenten MAZ Redakteure (d.h. haben während der Ausziechnung Timecodes mitgeschrieben) oder haben auch Kisten geschleppt. Und Herr Guten Abend Allerseits war auch schon damals Redaktionsschef.
A good deal of yesterday and some of this morning I've been fiddling around with nested ASP.NET DataGrids. Binding nested grids is pretty easy and they show all you want, but editing items in a nested grid just doesn't work as easy as editing in a simple Grid. In fact, it doesn't work at all. What happens is that you can put a nested grid into edit mode, but you never seem to be able to catch any Update/Cancel events from the edited item.
I tried to look for a solution by asking Google, but the answers that I found were very unsatisfactory, since there was no explanation on why exactly it doesn't work. So, here's why ... and it's very, very simple: Nested DataGrids lose all of their ViewState on any roundtrip. That seems to be some sort of problem that's actually related to how the entire TemplateControl infrastructure works, but that's what it is.
Since that's the case, the EditItemIndex isn't preserved across the roundtrip and the DataGrid doesn't know how to dispatch the Update event. Now, how do I work around it? Again, pretty simple: You need to store the EditItemIndex (and SelectedItemIndex, etc.) of the nested data-grid in the Page's ViewState whenever they change (Edit event, Cancel event, etc.), keyed by the UniqueID of the DataGrid and a matching suffix. When you reload the sub-grid on a roundtrip, recover the value(s) from the ViewState of the page and DataBind().
I've put the workaround into my current working copy for dasBlog (the OPML editor gets a hierarchical editor now) and it works great. Next build that gets released, you can look at it.
There’s a bit too much advertising in the dasBlog themes. I didn’t remove some of the links that were meant to be only on our themes here at the newtelligence site. The download below is a drop-in replacement for the themes than are in the current build (1.0.3210.0)
Download: themes_1_0_3210_0.zip
After Stephen Forte, who heroically tries to get dasBlog to run on the 1.0 Framework, came back to me with “it’s very slow”, I spent a little time profiling and investigating and it turns out that showing the comment count for every entry is a big problem because of the internal file structure of the underlying BlogX store (it puts comments into an extra file). For the next build, there is going to be a config switch to turn rendering the comment counters on and they will be off by default. We’re talking about a 200%-300% perf gain for the respective execution path on my machine here, so this is a significant improvement. What I also switched off for good (unless anybody complains, in which case it may become switchable) is the ability to include ASP.NET controls straight into the templates, because there is a macro that allows you to pull in web user controls and this should do the job well enough, because the template by themselves allow no additional control over the controls you could inject.
It apparently took Tom Mertens about 5.43 seconds (ok, but not much longer) to get his dasBlog installation working. My site logged his Weblog comment at 18:17 and now at 18:40 he did already switch.
I wish I knew how the GotDotNet workspaces work and more why they don’t
work so often. I get to the workspaces console and when I click to get into the
workspace, nothing works. And it’s not the first time. Or is it me?
So, (t)here it is. And even a day early. I uploaded newtelligence dasBlog 1.0.3210.0
There’s a GotDotNet workspace where you can get the installers (one for a Website and one for the source) or get all source code using the GDN source control “applet” or the VS.NET plug-in.
The files are also available at http://www.dasblog.net/ in the Download section, but GotDotNet is a better choice for bandwidth (for you and for us). If you want to build the source code, you need Visual Studio .NET 2003.
Make sure you read the instructions of the web-install and read the docs that are already there and specifically the docs on the installation steps.
BlogX users should have it very easy to upgrade. Use the web-installer to create a new site on your local machine and drop your existing siteConfig and content directories into the new installation. The siteConfig only needs one new entry in that case: You need to add a <BinariesDir>content/binary/</BinariesDir> tag. The installer should create the necessary subdirectory already. Once the site runs (the setup steps are exactly identical, otherwise and therefore it should) and you’re happy with the templates and all, you can copy the whole stuff over to your existing site and you’re set.
Radio Users will have to fiddle around a bit and poke around in the web.config (see the UrlMapper config section) and look at a previous post to help their hyperlinks to follow them to a new site. Between then and now I made an update that will not only redirect the hyperlinks but also the referrers and I’ll post something about that on the www.dasblog.net site these days. It shouldn’t be too hard to figure it out looking at the UrlMapper config if you are Regex savvy.
However, starting with the content and setting up a replacement for Radio is very easy if you told Radio to make “XML backups” of you data. The command line tool (DasBlogRadioImport.exe) that is included with the source setup and about the only set of files that made it over alive from BlogX, allows you take all the content with you:
dasblogradioimport /from:"c:\program files\radio userland\backups\weblogArchive\posts" /to:c:\temp\radionew
The target directory, which must exist before you run this, will contain a complete content directory that you can simply drop into your new site.
I am not sure about switching from other tools, but since you have a MovebleType/Blogger/MetaWeblog API endpoint sitting at /yoursite/blogger.aspx, some tool may be able to make sense out of that for import/export. I have successfully tested w.bloggar, Zempt and blogBuddy with dasBlog. However, nothing beats Outlook for blogging.
I am not done packing the code yet. (That's really a lie, because I have the installers sitting here, but I am considering some last-minute changes for some file names and don't want to create too much confusion once the stuff is out).
However, I have already put a good deal of the user documentation on the "dogfood" site where dasBlog is used to document dasBlog. I plan to put the downloadable files (one MSI for setting up a web and one to set up a code tree) over there by Wednesday and then I also will start filling in the "Code" section with some guidance on where to find what. The feature I love most is "Mail To Weblog".
This week:
- Ingo Rammer will be 24 on Thursday, if I remember right
- I am going to release DasBlog and throw a lot of source code at everyone ;)
- newtelligence will be 3 years old on Friday
- I will be 34 on Friday
- ... and there's one more thing we're waiting to happen on or before Friday
|