About InteractiveWebs

This blog is the combined blog work of the InteractiveWebs Dev Team. Together we work on a range of DotNetNuke (DNN) applications, modules, Silverlight, and Microsoft CRM Portal integration products. Our Business is website design and hosting, with a strong focus on DotNetNuke, Microsoft Dynamics CRM, Silverlight and iPhone iPad development.

Should I load windows 8?

Should I load windows 8? This is the question that many people are going to be asking themselves over the next year or two. So I though I would throw my opinion into the mix for those who value it.

image

Windows 8 is an interesting beast

It gets really easy as I get older and the Blamer years draw to a close, to actively dislike most of the innovations coming from Microsoft. You can only feel sorry for them really as peoples user experience with other technologies makes consumers realise what a mediocre user experience the Windows years have been.

Mean time, Microsoft have woken up to several facts that clearly have influenced the Windows 8 product.

1. People like the new technologies like iPads, iPhones and Android devices.

2. People like the new experience they have with company relationships with Apple, Google, Amazon, where they can single click and purchase information, apps and media super easily.

3. The alternatives to Windows are a LOT better then they used to be.

4. Microsoft has been dragging the chain with User Experience it’s entire life!

 

So knowing and understanding this, it becomes clearer as to what Windows 8 is trying to be.

Simply, they are trying to close the gaps that Windows has to the multitude of great User Experiences to be found on other devices and operating systems.

The Big Question is…. Does it do this?

The answer is essentially yes. Microsoft have come a huge way in delivering what is in effect a lobotomised Windows user experience. It’s probably relevant that we introduce an understanding of what I mean by this.

I have some 20 something years experience in the aviation industry, and in that industry I have experienced moving from some of the oldest (steam driven) equipment to the newest and most advanced and computerised aircraft in the air today. Moving from flying the Classic 747 to the Airbus A380.

The old office (Boeing 747 Classic)

image

 

In the new office (Airbus A380 at Night over India)

image

The distinction here is apparent and startling, but the differences as an aviator are less apparent.

I’ll give you one User Experience difference that may help to draw the highlight between these two technologies.

Stall Speed.

The Stall Speed, without getting into too much technical details is the speed of an aircraft below which sustained lift is no longer generated sufficiently enough by the wings that the aircraft can continue to fly. (Not technically correct but you get the idea). Flying too slow = Bad. This is due to a whole bunch of complex interacting aerodynamics like, Angel of Attach, G force, Angle of Bank, Weight, Air Density, centre of gravity, Flap / Slat configuration… just to name a few.

As a pilot of a 747, you are well aware of your stall speed as a figure bug and mark on your speed dial.

As a pilot of an A380, you look at what the computer tells you is the slowest speed that it will let you fly the aircraft at. You know from your past experience that it has a direct relationship to stall speed, but there are literally too many variables taken into account that you could actually know what the figure is going to be. But you don’t need too, the computer tells you, and like some “Lobotomised” version of your former self, you believe the computer.

Hence the term “Lobotomised Windows User Experience”.

Makers of great operating systems no longer want you to understand file systems, gigabytes, hard disks, etc. They want you to behave as a lobotomised users and think in terms of:

  • Share this
  • Work Offline
  • Synchronized

Just simple, dumb end user experience stuff, and frankly this is a long login overdue approach.

“Why should my mum have to know what hard disk to save something too.”

Windows 8 is the first big step in this direction from Microsoft, and it really is intending a big change from the end users who engage it.

It tries really hard to get you to engage it in simple ways to do simple bug fun things. The more common things that most users do.

So Should I load Windows 8?

If you are a power user, who smashes out a bunch of work from an existing multiple monitor, multiple program high speed connected computer. Definitely Not.

If you are a system admin, or programmer, or IT Professional. – Definitely Not

If you rely on mission critical work that has been working well for you to date – Definitely Not

If you enjoy steeling programs, games, loading programs, installing and tinkering (script kiddy) – Definitely Not

So Who Should Load Windows 8?

Anyone listed above who buys a new surface or purposed laptop or tablet, and…

Everyone Else

Any End Users who can sit back from the past, say I am ready for a new experience, and let Windows 8 run as it was intended. With the “hood down”. Just let yourself be a user, not an admin. Have a quick Lobotomy!

 

I will be running Windows 8 on purpose devices. Probably a Surface and or other tablets. I will also have a virtual machine of it on my Mac to play with when the need arises to test and play.

I fully expect to enjoy the experience when on the purposed devices, and I am dead certain that I will never use a Windows 8 environment as a Power User Machine, I also have no intention of being a Windows 8 expert, of ever running it as a network administrator, or being the IT “go to” guy” for friends and colleagues.

I love being a Lobotomised User with OSX. I just flip the lid on my Mac Air, and smash away at apps and light weight work. A surface windows 8 environment would be interchangeable here.

 

Will Windows 8 Succeed?

Yes and No.

Yes Microsoft have dealt a hand that will keep them relevant and in business until the end of the Balmer years.

No it was not a great hand. It’s 5 years too late, and playing catch up to a far superior user experience over at Apple, plus they have kind of boobed up the mashing of light weight devices and desktops.

But it was they only hand they had to play with so it is here to stay.

Hopefully it will be the beginning of a new approach to Microsoft’s world. One where stuff just works like it should, and without any technical “object not set to an instance of an object”.

Lets hope for the end of The Blamer Years and an opportunity for someone with clear vision to have a crack with their massive resources.

DotNetNuke Can’t Login Index #: 0

The Problem

Index #: 0

image

Recently while working with a DotNetNuke website, we found that attempting to login to the site generated this error:

SQL Exception
Error Details
File 
Error   Index #: 0
Source: .Net SqlClient Data Provider
Class: 17
Number: 1105
Procedure: AddEventLog
Message: System.Data.SqlClient.SqlException: Could not allocate space for object ‘dbo.EventLog’.’PK_EventLogMaster’ in database ‘www.sitedatabase.com’ because the ‘PRIMARY’ filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(SqlConnection connection, CommandType commandType, String commandText, SqlParameter[] commandParameters) at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(String connectionString, CommandType commandType, String commandText, SqlParameter[] commandParameters) at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(String connectionString, String spName, Object[] parameterValues) at DotNetNuke.Services.Log.EventLog.DBLoggingProvider.SqlDataProvider.AddLog(String logGUID, String logTypeKey, Int32 logUserID, String logUserName, Int32 logPortalID, String logPortalName, DateTime logCreateDate, String logServerName, String logProperties, Int32 logConfigID) at DotNetNuke.Services.Log.EventLog.DBLoggingProvider.DBLoggingProvider.WriteLog(LogQueueItem logQueueItem)

After a investigating the site and server we found that this was caused by the SQL server running out of room on the disk hosting the database connected to this DNN site.

The Solution

Free up more space on the SQL database disk.

CRM 2011 Rollup 10 Invalid Argument Error

CRM 2011 Rollup 10 Killed My CRM

image

After installing CRM 2011 Rollup 10 (not 9 as that is MIA) you receive an Invalid Argument messages as per the image above. This happens after you login to an IFD deployment.

For all we know it may happen on the CRM on premises but we have not managed to test that.

You may also have a CRM Platform Trace Error:

Crm Exception: Message: A non valid page number was received: 0, ErrorCode: –2147220989

CRM’s Fetch Throttling abilities have been disabled or modified from the default values.
Re-enable CRM’s default Fetch Throttling settings.

The solution

1. START | RUN | “regedit” | OK

2. Locate and select the registry subkey: HKEY_LOCAL_MACHINESoftwareMicrosoftMSCRM

image

Change the value on: TurnOffFetchThrottling

to 0

image

In fact if you find either MaxRowsPerPage or the TurnOffFetchThrottling registry keys set them both to 0 or delete them.

3. START | RUN | “iisreset” | OK

(This will restart IIS)

Login to CRM and you should be good to go.

Cantaport Shading System

Cantaport Shading System

Recently our client Totally Outdoors added a new cantaport shading system to their product list.

This Melbourne based builder now provides some commercial shading solutions that are excellent for both domestic and commercial designs.

image

Check out their website here: http://www.totallyoutdoors.com.au/products/cantaport-shading-system/

Cantaport shading system design benefits provides an exciting range of options particular for School, Sporting clubs  and Local Councils for uses such as Open Shelters for bikes, Bus, play ground and sports grounds. Totally Outdoors professional structure of Architectural designs, 20 years of providing installed outcomes combine to deliver known outcomes across a range of project types.

DotNetNuke (dnn) jQuery problems admin menu

image

DotNetNuke jQuery Problems

Recently there was an update to jQuery that caused some problems with DotNetNuke. The problems include:

  • Strange or missing popup effects in custom jQuery modules
  • Admin menu hiding the menu items on Standard DNN Dark Knight Skin
  • Modules using jQuery failing to function as desired

The Problem

The problem is associated with some bugs in the jQuery released and hosted googleapis. The bugs are not related to DotNetNuke directly but the jQuery used in many instances of jQuery.

The Solution

The solution is an easy one. You just need to login to your DotNetNuke website with a Host Account, and modify the jQuery settings under the HOST / ADVANCED SETTINGS to a more recent and bug free version of jQuery UI.

 

image

Pasting this URL: https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/jquery-ui.min.js into the “Hosted jQuery UI URL" and ensuring the “Use Hosted jQuery Version” is ticked.

Opencart on IIS 7.5 Windows 2008 Server FTP Permissions Changing

Opencart and PHP running on IIS, we found Permissions incorrect on uploaded files

After working with IIS server running PHP, we found the files uploaded through the web interface of the opencart CMS failed to inherit the correct permissions.

After spending weeks time to resolve this problem, believing that it was a glitch that required file permissions to be reset we found an easy solution.

The Problem

The problem lies with the PHP system running on IIS. When you use a web interface to upload files to your PHP CMS website, they are initially loaded to the PHP defined temporary folder. The temporary folder is set in the PHP.ini file.

To find this file and check the setting, you do this:

Open IIS and select PHP Manager

NewImage

 

Then Check phpinfo()

NewImage

 

Then search the php.ini file that opens for “upload_tmp_dir”

Notice that the default location (unless you have changed it) is: c:\windows\temp

NewImage

Now navigate to that folder on your IIS server rick click and select Properties / Security Tab and find the IIS_IUSRS security group.

NewImage

Edit the permissions there to match the permissions of your IIS website folder that is causing you the grief. Probably Read Write at least is needed.

Why the solution works.

As files are uploaded through the website interface, they land in the temp directory. Once there they inherit the temp directory permissions before being moved onto the website folders. By adding the website security to the temp folder, you allow the files to move across with the correct permissions set.

This would be applicable for WordPress running on IIS server, or Opencart.

WordPress 3.5 Manual Fix

Below is the manual fix you can apply to be able to get your WordPress 3.5 install working correctly, there are two options that should work.

1) In the file wp-config.php, add the following line before “That’s all, stop editing”

define( 'WP_TEMP_DIR', ABSPATH . 'wp-content/' );

or

2) In the file /wp-includes/class-http.php comment out lines 144 and 145, which look like the following:

if ( ! is_writable( dirname( $r['filename'] ) ) )
	return new WP_Error( 'http_request_failed', __( 'Destination directory for file streaming does not exist or is not writable.' ) );

After applying one of the above fixes you should be able to add/upgrade your plugins and upgrade your themes, and will allow you to use the auto upgrade feature when WordPress version 3.5.1 is released.

Opencart .php on IIS 7.5 Permission Denied

image

The Problem

We ran into an interesting issue while playing with Opencart on IIS 7.5. The issue was around a common third party module being used called Magic Zoom Plus.

The error showed it’s self with the loading of some junk text at the beginning of many pages when loading.

The text looked like this:

Warning: file_put_contents(C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox/magiczoomplus.css): failed to open stream: Permission denied in C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox\module.php on line 171Warning: unlink(C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox/magiczoomplus.css): Permission denied in C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox\module.php on line 172Warning: rename(C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox/magiczoomplus

.css~backup,C:\inetpub\wwwroot\www.domain.com\admin\controller\module\

magictoolbox/magiczoomplus.css): Access is denied. (code: 5) in C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox\module.php on line 173Warning: file_put_contents(C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox/magiczoomplus.css): failed to open stream: Permission denied in C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox\module.php on line 171Warning: unlink(C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox/magiczoomplus.css): Permission denied in C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox\module.php on line 172Warning: rename(C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox/

magiczoomplus.css~backup,C:\inetpub\wwwroot\www.domain.com\admin\controller\module

\magictoolbox/magiczoomplus.css): Access is denied. (code: 5) in C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox\module.php on line 173Warning: file_put_contents(C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox/magiczoomplus.css): failed to open stream: Permission denied in C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox\module.php on line 171Warning: unlink(C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox/magiczoomplus.css): Permission denied in C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox\module.php on line 172Warning: rename(C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox/magiczoomplus

.css~backup,C:\inetpub\wwwroot\www.domain.com\admin\controller\module\

magictoolbox/magiczoomplus.css): Access is denied. (code: 5) in C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox\module.php on line 173Warning: file_put_contents(C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox/magiczoomplus.css): failed to open stream: Permission denied in C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox\module.php on line 171Warning: unlink(C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox/magiczoomplus.css): Permission denied in C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox\module.php on line 172Warning: rename(C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox/magiczoomplus

.css~backup,C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox

/magiczoomplus.css): Access is denied. (code: 5) in C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox\module.php on line 173Warning: file_put_contents(C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox/magiczoomplus.css): failed to open stream: Permission denied in C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox\module.php on line 171Warning: unlink(C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox/magiczoomplus.css): Permission denied in C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox\module.php on line 172Warning: rename(C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox/magiczoomplus

.css~backup,C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox/

magiczoomplus.css): Access is denied. (code: 5) in C:\inetpub\wwwroot\www.domain.com\admin\controller\module\magictoolbox\module.php on line 173

 

We knew immediately that it is a windows server permission error. However the strange thing is that we were pretty sure that the permissions were correct. We looked around at the settings and found them to be correct too.

The Solution

We ended up going to the website root, and selecting permission (on the server with RDP) and resetting the entire folder and all sub folders permissions. This fixed the problems. Can’t explain why but this is the second time we have needed to do this while running PHP on IIS. May be time to change back to a real php server.

The Permanent Fix

We have done details here that explain how to stop the being necessary.

http://www.interactivewebs.com/blog/index.php/server-tips/opencart-on-iis-7-5-windows-2008-server-ftp-permissions-changing/

SmarterMail Automatic Reply Email Message

image

Setup Auto Reply (Auto-Responder) in SmarterMail

To configure Auto-Reply in SmarterMail, you login to the webmail account you wish to setup a reply for.

https://mail.interactivewebs.com

Login with the email address of the account in question, and the password provided.

Then Select Settings / autoresponder

image

Select the Enable auto-responder / then the Auto-Responder Message tab

image

Type your Subject / Message

image

Then click Save, and you are done!

SmarterMail Autodiscover setup configuration

Setup of SmarterMail Autodiscover configuration

image

A simple understanding of autodiscover is that it is the configuration necessary to allow advanced email programs like macmail and outlook to configure themselves with only an email address and password. No more telling clients all the server settings necessary to get them all setup.

At least that is the theory.

Exchange server has supported it for some time, but configuration under a multi domain setup is a total pain in the butt. Typical off MS to dream something up, then balls it up in the implementation.

SmarterMail does a much better job of it. Configuration is virtually non existent, it basically just works.

http://portal.smartertools.com/KB/a2415/set-up-auto-discovery-with-smartermail.aspx

But their article is a little skimp for the non server admins.. so this is a step through course.

Assuming that you are using Microsoft DNS server for your DNS hosting (and I realise that most probably don’t but it is the more difficult to configure), this is how you add the SRV records mentioned in the article above.

On the DNS server, select New other record on the domain in question.

image

Scroll down and select SRV

image

Type the name: _autodiscover

Change the port to: 443

Put in your mail servers address that will respond to an HTTPS request.

image

The resulted record looks like this:

image

If you click on the _tcp link, it will look like this:

image

Local Testing

On your local machine, bring up a command prompt “CMD” and type in nslookup:

image

Gives this:

image

Type in “set type=SRV”

image

Then type in :_autodiscover._tcp.dnnform.com  (replace dnnfrom.com with your domain that you just configured above) It should reply wiht the sver hostname matching the record you created in the DNS server above:

image

External Testing

Performing an external test of the SRV record, and the fact that the server responds with XML reply.

Navigate to: https://www.testexchangeconnectivity.com

image

Select the Outlook Autodiscover from the list of services.

Enter an email address on the domain you have just set up with the service.

In the case above, we are using the domain “dnnform.com” so the test address we will use is: test.dnnform.com (it does not need to exist on the smartermail server)

The Domain \ User name: test\test (it will not be used)

Password: test (it will not be used)

Then perform test.

image

The result you are looking for when expanded looks something like this.

image

This shows that the request was directed to and received some XML response from the server.

All good.

Help

If anyone needs professional assistance with their SmarterMail setup or similar, please feel free to contact us on our website at: http://www.interactivewebs.com