Wednesday, January 02, 2008
by Nik Kalyani
Wednesday, January 02, 2008 11:24:27 PM (Pacific Standard Time, UTC-08:00)
DotNetKicks is a Digg-like site focused on .NET development. Thanks for Jon Galloway's useful tip, I figured out how to add a dynamic Kick image to my posts. He has Javascript code, but I just hard-coded the following into the DasBlog itemTemplate.blogTemplate file for the theme in use:

<a href="http://www.dotnetkicks.com/kick/?url=<%PermalinkUrl%>"><img align="absmiddle" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=<%PermalinkUrl%>"></a>&nbsp;

I have not figured out how to dynamically make the link appear only when a specific category such as .NET is selected, but this is good for now.

Of course, this is of no use if I don't post anything worth kicking. ;-)

 Wednesday, October 19, 2005
by Nik Kalyani
Wednesday, October 19, 2005 7:35:41 PM (Pacific Standard Time, UTC-08:00)

In the past few weeks, I have had multiple people email me that my blog was no longer working. The behavior described is that the browser would hang forever on the page. I believed them, but could not reproduce the problem. No matter which system I typed in the URL from, it worked. Quite puzzling.

The mystery continued until today, when I got multiple such emails and I finally decided I have to do something about it. Through the process of elimination, I was able to figure out that the problem occurred only when a link from another web page is used to access the blog (or from a bookmark). I was never seeing the problem because my test case was to type in the URL. Having figured out when the problem occurs, the general reason for the problem was obvious, but not a specific one. Since the problem only occurred through a link, it pointed to a referral tracking/logging issue.

Digging around, I chanced upon this post in Scott Hanselman’s blog. The problem occurs if DasBlog’s “Movable Type Blacklist” setting is enabled. Turns out that not very long ago, Jay Allen, who maintains the MT Blacklist that DasBlog refers to at startup, has started banning IP addresses, but returns a valid HTML document with comments instead of an HTTP 302. This causes issues with DasBlog’s referral logic and prevents the page from loading.

Glad I got this one figured out…it was driving me nuts.

 Thursday, August 11, 2005
by Nik Kalyani
Thursday, August 11, 2005 9:28:18 PM (Pacific Standard Time, UTC-08:00)

I had paused my DasBlog conversion to DotNetNuke as Omar had hinted that an upgrade was in the works and had many bug fixes and trackback spam protection. Just saw the post that 1.8 is now Gold. Way to go. Time to get the migration done and crank out the best blog module for DotNetNuke.

[Edit: Installed and worked right-away. Good job DasBlog team.]

 Thursday, March 03, 2005
by Nik Kalyani
Thursday, March 03, 2005 1:28:41 PM (Pacific Standard Time, UTC-08:00)

Das Blog has its own skinning solution which consists of “themes” defined in web.config, corresponding to theme sub-folders that contain templates. The templates are basically HTML fragments with tokens that indicate where content will reside. I have been tinkering with the templates quite a bit to make sure I understand all their capabilities as I progress in making Das Blog work with DNN.

One thing that already caught my eye is that the Das Blog skinning solution is not very granular, so skinning flexibility is limited. For instance, you can specify where a blog entry will appear in one template and in another, you can specify the layout for the item. However, there is no mechanism to control what appears between individual items or if you would like a different appearance for alternating items. Having this capability does not have much appeal in general, but there are some specific situations where I think it would be useful — displaying ads in-line, automatically displaying related items using the Technorati API etc. Now the latter is clearly not something that belongs in the skinning department, however, even if implemented in the BL, there is no mechanism to skin it differently from the blog item.

One really neat thing about DasBlog is that most of the user-facing aspx pages are just shells for user controls. This is promising because it makes the process of conversion to DNN modules that much easier. I think I should be done with my skinning analysis in another 3–4 days, at which time I will continue the code conversion.

 

 Tuesday, March 01, 2005
by Nik Kalyani
Tuesday, March 01, 2005 1:14:05 AM (Pacific Standard Time, UTC-08:00)
If you blog often, then Das Blog and BlogJet are an amazing combination. I only started using BlogJet recently, and I tell you, I am hooked. This is an amazing program. It is quite intuitive and makes blogging very simple and efficient. 
 Saturday, February 26, 2005
by Nik Kalyani
Saturday, February 26, 2005 10:47:53 PM (Pacific Standard Time, UTC-08:00)

Making progress. I now have DasBlog running as an app but in the same app space as DNN 3. I put it into ~/DesktopModules/DasBlog.

Most of the work today was in getting the VS.Net solution setup so file and assembly references work correctly. The result is a VS.Net solution called DasBlogDNN. I can build it and all the assemblies get correctly deposited into the DNN bin folder.

I am particularly excited by the shared app working correctly. As you may already know, it is a pain to get another ASP.net app to work in a DNN sub-folder. That's because of the HttpModules referenced in the DNN web.config. Because of how ASP.Net manages child apps, in order to get an ASP.Net app to work as a DNN child app, you have to do two things:

1) add a <clear /> element in the <httpModules> section

2) add all the DNN HttpModule assemblies (and referenced assemblies) into the bin folder of the child app.

This sounds counter-intuitive, but that's what has to be done to make it work. Basically, when ASP.Net starts initializing a child app, it first attempts to load all HttpModules declared in a parent app. This is why you need the assemblies in the child app bin folder. Once it encounters <clear /> those assemblies become irrelevant.

Anyway, because of all this craziness, to setup DasBlog as a child app, I would have had to copy all the DNN HttpModules into the DasBlog bin folder. Ugly any way you look at it.

After examining both web.configs (DNN and DasBlog), I managed to get all the relevant DasBlog items ported over to the DNN web.config. Then I had to change a boat-load of relative paths (in script and code-behind) to account for the new app root. Now I have DasBlog running inside the DNN folder.

Next step: integrated authentication.

 

 Saturday, February 19, 2005
by Nik Kalyani
Saturday, February 19, 2005 12:17:29 PM (Pacific Standard Time, UTC-08:00)

Continuing my quest to have a fully-integrated version of DasBlog with DotNetNuke, I have made some progress.

My original intent was to leave the DasBlog core untouched, but as I poked around, it became clear that this is not to be. I started by putting the DasBlog source in a folder structure that would allow seamless conversion of the DasBlog aspx pages to DNN controls. I created something like this:

/DotNetNuke/DesktopModules/Speerio_DasBlog/{main DasBlog web files}

/DotNetNuke/DesktopModules/Speerio_DasBlog/SiteConfig

/DotNetNuke/DesktopModules/Speerio_DasBlog/Themes

etc.

After several false starts in getting the IIS application mapping correctly, I had a DOH! moment. I moved the DasBlog web.config into /DotNetNuke and made /DotNetNuke into an application. That worked...almost...got a bunch of compiler errors, but at least I was making progress.

The source of the errors was that in several places in the code, DasBlog uses Server.MapPath("somefolder/somefile"). Of course, this doesn't work too well if it's not in the app root. Time to break out the trusty and hard-working Search and Replace and replace all such instances with "~/DesktopModules/Speerio_DasBlog/". Lift-off!? Nope...no such luck. Ran into an annoying VS.Net bug that prevents strong-named assemblies from working properly some of the time. Google says lots of people are having the same problem and the known solution is to not have strong-named assemblies (what kind of solution is that?) or build twice. The assembly in question is FTB and since I am not at the point where I can yank it out, I opted for the build twice.

After more of this, I now have DasBlog working using the revised folder structure. Next step, blow away the DasBlog security and have it look to the HttpContext instead.

 Monday, February 07, 2005
by Nik Kalyani
Monday, February 07, 2005 11:10:19 PM (Pacific Standard Time, UTC-08:00)

I recently switched to Das Blog as my blogging software and so far I am loving it. It has all the features one expects and then some.

Since DotNetNuke lacks a good blogger, I have started a project to make Das Blog into a DNN module. There are several challenges to this, and over the coming weeks, as I delve deeper into this project, I will document my findings here.

Just to be safe, I asked Omar Shanine for permission, and he was kind enough to grant it.

So off we go...

RSS feed
Search and Links
Bling

View Nik Kalyani's profile on LinkedIn

TechBubble
www.flickr.com
This is a Flickr badge showing public photos from techbubble. Make your own badge here.
Statistics
Total Posts: 216
This Year: 19
This Month: 0
This Week: 0
Comments: 226
About the author/Disclaimer

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2008
Nik Kalyani
Sign In
All Content © 2008, Nik Kalyani