Why use flash anymore?

image

The net is changing fast. Release of the iPad and other mobile devices that have correctly made the decision to discontinue Adobe Flash.

I say correct decision because not only is flash yesterdays technology, but it is far from the optimal way to produce simple motion in web pages.

Flash still has it’s place, just not as a way to inject interesting motion into websites.

So what do we use on http://www.InteractiveWebs.com home page?

We have some simple code that renders motion:

<div class="slideshow">
<div class="slide">
<div class="inblock_first">
<div class="wsc_image_frame">
<div class="wsc_frame_tl">
<div class="wsc_frame_tr">
<div class="wsc_frame_tc">
</div>
</div>
</div>
<div class="wsc_frame_cl">
<div class="wsc_frame_cr">
<div class="wsc_frame_cc">
<img alt="" src="/Portals/0/banners/slide2.jpg" />
</div>
</div>
</div>
<div class="wsc_frame_bl">
<div class="wsc_frame_br">
<div class="wsc_frame_bc">
</div>
</div>
</div>
</div>
</div>
<div class="inblock_second">
<h1>Have a Business that needs to get a message out?</h1>
<p>InteractiveWebs provides the best of Content Management Systems on our professional hosting services.<br />
Combining DotNetNuke, WordPress Blogs, iPhone Apps, Microsoft CRM &amp; hosted solutions..<br />
<br />
</p>
<a class="button2" href="/Services/Mushroom.aspx"><span><strong>More</strong></span></a>
</div>
<div class="cleaner"></div>
</div>
<div class="slide">
<div class="inblock_second">
<h1>We have a solution… that is perfect…</h1>
<p>We have some&nbsp;increasable solutions with years of experience…</p>
<h4>
We would love to share them!</h4>
<p><br />
</p>
<a class="button2" href="/Services/Mushroom.aspx"><span><strong>More</strong></span></a>
</div>
<div class="inblock_first">
<div class="wsc_image_frame">
<div class="wsc_frame_tl">
<div class="wsc_frame_tr">
<div class="wsc_frame_tc">
</div>
</div>
</div>
<div class="wsc_frame_cl">
<div class="wsc_frame_cr">
<div class="wsc_frame_cc">
<img alt="" src="/Portals/0/banners/slide1.jpg" />
</div>
</div>
</div>
<div class="wsc_frame_bl">
<div class="wsc_frame_br">
<div class="wsc_frame_bc">
</div>
</div>
</div>
</div>
</div>
<div class="cleaner"></div>
</div>
<div class="slide">
<div class="wsc_image_frame">
<div class="wsc_frame_tl">
<div class="wsc_frame_tr">
<div class="wsc_frame_tc">
</div>
</div>
</div>
<div class="wsc_frame_cl">
<div class="wsc_frame_cr">
<div class="wsc_frame_cc">
<img alt="" src="/Portals/0/banners/slide.jpg" />
</div>
</div>
</div>
<div class="wsc_frame_bl">
<div class="wsc_frame_br">
<div class="wsc_frame_bc">
</div>
</div>
</div>
</div>
<div class="cleaner"></div>
</div>
</div>

 

The source references some jQuery effects known as cycle: http://jquery.malsup.com/cycle/

You will see on this page that it uses code in this method:

<!DOCTYPE html>

<html>

<head>

<title>JQuery Cycle Plugin – Basic Demo</title>

<style type="text/css">

.slideshow { height: 232px; width: 232px; margin: auto }

.slideshow img { padding: 15px; border: 1px solid #ccc; background-color: #eee; }

</style>

<!– include jQuery library –>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>

<!– include Cycle plugin –>

<script type="text/javascript" src="http://cloud.github.com/downloads/malsup/cycle/jquery.cycle.all.latest.js"></script>

<script type="text/javascript">

$(document).ready(function() {

$(‘.slideshow’).cycle({

fx: ‘fade’ // choose your transition type, ex: fade, scrollUp, shuffle, etc…

});

});

</script>

</head>

<body>

<div class="slideshow">

<img src="http://cloud.github.com/downloads/malsup/cycle/beach1.jpg" width="200" height="200" />

<img src="http://cloud.github.com/downloads/malsup/cycle/beach2.jpg" width="200" height="200" />

<img src="http://cloud.github.com/downloads/malsup/cycle/beach3.jpg" width="200" height="200" />

<img src="http://cloud.github.com/downloads/malsup/cycle/beach4.jpg" width="200" height="200" />

<img src="http://cloud.github.com/downloads/malsup/cycle/beach5.jpg" width="200" height="200" />

</div>

</body>

</html>

 

Producing this page: http://jquery.malsup.com/cycle/basic.htmlimage

Within DotNetNuke

Within DotNetNuke, there are a bunch of module and skins that have this effect built in. We use a skin known as LightHeads (not developed by us) that uses some hard coded references that make the implementation of this effect really simple. As the first block of code above indicates.

We love jQuery and have used it in our Mushroom Image module and our Mushroom Lite Module.

DotNetNuke Forum Module 05.00.02 The missing link!

DotNetNuke 05.06.03 Pain

If you look at the project downloads for dotnetnuke, you will notice that the forums module has the latest version as: 05.00.01

image

And if you click the link from within this page: http://www.dotnetnuke.com/Resources/Downloads/Projects-Downloads.aspx

05.00.01 is exactly what you get.

All sounds neat and tidy… right?

Not really, because if you install the latest version of DotNetNuke 05.06.03 (an important security release) you will kill your forums. Dead as dead.

And if you check around for an update of the forum module, you will not find one either in your Module Definitions, or in the DotNetNuke website. But keep looking to codeplex and you find this:

image

05.00.02 and what is strange, it is released before the DNN 05.06.03 update, like significantly before it… like 1 month.

This Forum Update is NEEDED if you want the forum module to work on DNN 05.06.03

http://dnnforum.codeplex.com/releases/view/67840

Release Notes

The same module as 5.0.1, except compiled against DotNetNuke 5.6.3 (and therefore is a minimum requirement) and the same version of Telerik (2011 SP2) included with it.
NOTE: This was compiled against, and for, 5.6.3 and is included with that release (Not released yet, as of June 12th (try 5 July).

All so confusing!

It waisted a lot of our time trying to work out what is going on. All we know is that DNN 05.06.03 broke a bunch of stuff, including the Forum Module. There is a fix but it is hidden on codeplex and is incorrectly referenced.

Very Unprofessional DNN Corp!

What you need to know

If you update to DNN 05.06.03 – your forums will die.

To fix it, download the hidden forum update 05.00.02 here: http://dnnforum.codeplex.com/releases/view/67840

Problem With DNN Blog Module 04.01.00 – 01

imageWe found an issue with what is the current release version of DotNetNuke Blog module 04.01.00 or 04.01.01.

First up, we don’t know what the version number should actually be, as the compiled version on the download is 04.01.00 but the source code is referenced as 04.01.01.

We presume there is some difference, but who knows what it is.

Anyway The Problem

The problem is that any forms on a page that run the blog module, will not allow form data to be validated. By validated, we are talking about ensuring a number is entered in a number field and text in a name filed etc.

The cause is the blog module is using an old ASP.Net 1.0 validation function. While it should be using ASP.NET 2.0 with the updated validation behaviours as found here:

http://msdn.microsoft.com/en-us/library/0ke7bxeh.aspx

With this mistake, if you use Page.Validate on ASP.NET 2.0, page validation groups are ignored and the controls are validated.

Why the BLOG module is even coded this way is quite questionable in any case. However without DNN being a true open source system, we have no ability to fix this were needed in the source.

Our solution

We fixed the problem and recompiled a version that people can download an use for free.

Blog_04.01.01_Install A

You can install this on top of any DNN blog module 04.01.00 and we would expect that future releases of the blog module will not be affected by this version we compiled. However they may well revert back to their junk code in the future releases.

DotNetNuke AjaxControlToolkit, Version=3.0.30930.28736 Error

Could not load file or assembly ‘AjaxControlToolkit, Version=3.0.30930.28736, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e’ or one of its dependencies. The located assembly’s manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

We were playing today with a trial module from another developer. Received the above error. After much mucking around, we found that the very specific version of the

  • AjaxControlToolkit.dll

file that came with the module, was not installed during the normal module setup.

We extracted the file into the \bin\ directory on the site, and joy to the world.

Strange that a specific version is required and that the 3.5 or 4.0 version does not work. This is how they referenced a specific version. Not a good way to program.

How do I know DotNetNuke Corp is off the rails?

There are load of features and functions about DotNetNuke that tick us off. Some big, some small and some that are baseless. It never ceases to astound me why they do some features and functions so poorly.

Today I had to write about a pet hate…

Why when we go to the module definition page, do we see a list of “Upgrades?” with the painfully ugly Microsoft style highlighted version number.

image

Really. Whoever built that system.. was that look the best you could come up with. It is painful enough that the stupid system does not allow third party developers to reference an RSS feed for their own updates. (Would have thought that was a no brainer). But why Microsoft Word frigging green highlight!

How about something a little classier in the default look. Is this 1998? Think not!

And for anyone reading this who thinks… “well you did not develop it.” That’s only because is is not an open source platform. One of the biggest problems with DotNetNuke is that it is not open source. They claim yes… but just because you call something by a name, does not make it accurate!

There… I said it!

Now back to work.

Add Recaptcha to DotNetNuke

imageHow to easily add recaptcha to your dotnetnuke website.  Easy… grab the latest version of Advanced Login module for DotNetNuke and you are on your way.

We have enabled recaptcha in DotNetNuke with this module, making it as easy as ever to use the feature in your website.

The advanced login module is available from our free dotnetnuke module download page.

DotNetNuke.Entities.Portals.PortalSettings..ctor(Int32 tabID, PortalAliasInfo objPortalAliasInfo) DNN 05.06.00

The Problem

After updating a DNN site from 05.01.01 to DNN 05.06.00 we received the following error.

image

——————————————————————————–

Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 

Stack Trace:

[NullReferenceException: Object reference not set to an instance of an object.]
   DotNetNuke.Entities.Portals.PortalSettings..ctor(Int32 tabID, PortalAliasInfo objPortalAliasInfo) +49
   DotNetNuke.HttpModules.UrlRewriteModule.OnBeginRequest(Object s, EventArgs e) +2087
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +68
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75

 

We found that this is a bit of a reported issue with DNN websites that have been upgraded to DNN 05.06.00. There is a bit of chatter about it here:
http://www.dotnetnuke.com/Resources/Forums/tabid/795/forumid/200/threadid/396504/scope/posts/Default.aspx

Basically the problem is that if you access a page like

http://domain.com/AboutUs/History/tabid/108/Default.aspx The site will work.

but if you access http://www.domain.com  it fails.

There is a lot of heads spinning on this one, talk about the HTTP handler and there is no doubt in our mind that much is not right with the DNN 05.06.00 release. Actually this release has probably caused us the most headaches for our modules in the last few years.

The Fix

imageWe found the fix for this problem is easy. Set the IIS Application Pool that relates to the site’s managed pipeline to “Integrated” from “classic”.

In IIS 7

it looks a little like that.

This should fix this particular bug in a few seconds.

Error The transaction log for database “domain.com” is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases

While accessing a DotNetNuke website today, I was getting this error all the time.

Error   The transaction log for database “domain.com” is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases

Event ID 3001

  • Event code: 3001
    Event message: The request has been aborted.
    Event time: 2/11/2010 12:28:32 PM
    Event time (UTC): 2/11/2010 1:28:32 AM
    Event ID: cc9168019d0b42cabde5ab8fa741927d
    Event sequence: 13
    Event occurrence: 12
    Event detail code: 0

I found this one a little perplexing. On further investigation I found that the transaction logging for the SQL server supporting this was massive. Around 980 meg when I would expect it to run around 15 meg.

Initially I tried killing all processes with active connections to the database, but that did not have the desired result. (We all know what a pain that can be in SQL). So I set the database to “Simple”, and tried to Detach the re-attach.

Still no joy!

All of this round and round ended up with an IIS server and SQL server reboot. All came good and the net result is that I cannot explain the fail or fix it.

Hope this helps someone make the reboot decision faster than I did. That’s another 2 hours of my like I will never get back!