What is the most effective social media platform to reach your audience?

Stefanus HadiWe previously published a couple of posts regarding social media usage among our customers. In our latest survey, we asked our customers what they thought was the most effective social media platform to reach their audience.

You can probably guess the two social media networks that stood out – Facebook and Twitter. This result is in line with their popularity in terms of total active users. As of March 2013, Facebook had about 1.11 billion monthly active users and 665 million daily active users. Twitter has over 500 million registered users, but only one-third are active users.

Our March 2013 survey received 1,308 responses from around the world and 54% of our customers told us that Facebook was the most effective social media platform. But what is interesting is that the percentage varies from region to region as broken down in the plot below.

Asia had the highest percentage at 74% while the UK had the lowest with 40%. Users in the US selected Facebook just slightly above the average level at 58%.

Facebook-social-media-platform-reach-audience-DASP-2013

Twitter was the second most chosen social media platform, averaging 20%. Similar to Facebook, the percentage varied from region to region as broken down in the figure below.

Users in the UK had the highest percentage with 35%, while Asia had the lowest with 7%. Only 15% of users in the US selected Twitter which was below the global average level.

Twitter-social-media-platform-reach-audience-DASP-2013

While other social media platforms are playing catch up, Facebook dominates in its mindshare among our customers.

We’ll continue to monitor how social media usage trends change with future surveys. But one takeaway is that if you are trying to reach an audience in a particular geographical region you may want to use different social media platforms.

Microsoft SQL Server Tips Series: Incorrect SQL Version

Ray HuangSometimes our users make the mistake of restoring the wrong version of SQL Server to their database add-on.  It’s really an honest mistake to overlook, especially if you’re a developer who works with different versions of SQL Server and is rushed for time.

The hard part for us as support staff is to decipher what the error message trapped actually means.  Here’s the general error that is thrown when there is a mismatch in SQL Server version:

The media family on device ‘Path to database file’ is incorrectly formed. SQL Server cannot process this media family.

Not really indicative of the actual problem, is it?  I’ve included a table which shows when this error is thrown:

Database Backed Up From Database Restored To
SQL Server 2012 SQL Server 2005
SQL Server 2012 SQL Server 2008
SQL Server 2012 SQL Server 2008 R2
SQL Server 2008 R2 SQL Server 2005
SQL Server 2008 SQL Server 2005

An exception to this rule is when you try to restore a SQL Server 2008 R2 database to SQL Server 2008.  This is the error thrown which is definitely a better message:

The database was backed up on a server running version 10.50.1617. That version is incompatible with this server, which is running version 10.00.5828. Either restore the database on a server that supports the backup, or use a backup that is compatible with this server.

Generally speaking, SQL Server databases are forward compatible (i.e. you can restore a lower version to a higher version) without any problems with the exception of SQL Server 2000.  You cannot restore a SQL Server 2000 database directly to SQL Server 2012. It will throw this error:

The database was backed up on a server running version 8.00.2305. That version is incompatible with this server, which is running version 11.00.3339. Either restore the database on a server that supports the backup, or use a backup that is compatible with this server.

To restore a SQL Server 2000 database to SQL Server 2012, you will need to perform a 2 step process.  You will need to restore it to SQL Server 2005, 2008, or SQL 2008 R2 first and then perform a backup.  From that backup, you can restore it to SQL Server 2012.

You can always find out what version number of SQL Server that you are running by executing this T-SQL statement in SQL Server Management Studio:

SELECT @@VERSION

Or there are nifty tables around the Internet which you can reference:

http://blog.sqlauthority.com/2013/01/18/sql-server-a-list-of-various-sql-server-rtm-and-service-pack-number/
http://sqlserverbuilds.blogspot.com/
http://www.sqlteam.com/article/sql-server-versions

Now, if you want to restore a database from a higher version to a lower version, you can do so by generating a script.  I won’t provide a step-by-step walk-through here as there are already many great guides on how to do this on the Internet:

http://www.mssqltips.com/sqlservertip/2810/how-to-migrate-a-sql-server-database-to-a-lower-version/
http://www.sqlserverblogforum.com/2011/05/restoring-a-database-from-higher-version-to-lower-version-sql-server/
http://blog.sqlauthority.com/2012/12/25/sql-server-restoring-2012-database-to-2008-or-2005-version-and-2-other-most-asked-questions/

We’re throwing our hat into the .NET PaaS space, come with us!

Takeshi Eto!Snapp-icon100x100DiscountASP.NET is announcing its entry into the Platform-as-a-Service space with the beta launch of a new .NET PaaS we are calling Snapp.

At this time, we are in a beta phase and developers can sign up for FREE to test out the PaaS platform and provide us with feedback and suggestions. During the beta, we will continually be introducing new features and will be improving the system.

What is Snapp?

Our PaaS solution is an elastic cloud hosting platform for .NET applications. Snapp provides a scalable hosting platform where developers can increase or decrease the number of workers, but there is much more

What is different about Snapp?
1. Deployment Options – Developers can deploy applications the way they want to without a learning curve. Snapp supports web standard FTP, web deploy, GIT, and Team Foundation Server.

2. Staging Done Right – Snapp is the first PaaS that comes with a configurable staging and production environment for every application. Developers can actually test their applications before it goes live.

3. Exception Management – Snapp comes with an exception management system to help developers identify issues with their application.

4. Easy Rollback – Eveytime an application is published from staging to production, we’ll keep a snapshot of the application in a repository. If anything unforseen should happen in production, rolling back to a previously working snapshot is just a click away.

Why launch a .NET PaaS?
Our focus at DiscountASP.NET from inception has been to empower .NET developers with hosting solutions. So we’ve been providing cutting-edge shared hosting solutions for .NET developers for the past decade.

But — we’ve also seen the needs of developers change over the last decade. And we will evolve too.

We’ve seen improvements in back-end cloud hosting technologies and changes in application lifecycle management with the adoption of a more agile and continuous development rhythm, and the increase in development activities in mobile web applications. When we asked ourselves what kind of cloud hosting solution we could offer to help make developers lives more productive, we kept converging on a Platform-as-a-Service solution.

Underlying Technology
Snapp is built on top of Antares, code name for Azure Services for Windows Servers. Antares is the same technology Microsoft uses to run Azure Web Sites, which is being made available to hosting partners. We’ve been working with Microsoft over the past year+ on Antares.

Call to Action -We need your help
Thank you for reading this blog post to the very end. Please help us by signing up for our FREE beta and taking Snapp for a spin. What we have here is still bare bones and please excuse the dust. We have plenty of great ideas cooking to make Snapp really rock and we could use all the feedback from you to help us improve Snapp and help prioritize the feature enhancements, to ultimately make your work more productive.

PCI scan fail? Custom Error handling may be the culprit

Ray PenalosaWhen people want to start incorporating e-commerce activities in their site, they must be PCI compliant to do so.  There are many different companies/organizations out there that can help you determine if your web site is PCI compliant.

Many criteria must be met to be PCI compliant.  One of those criteria is to setup a custom error page.  Custom error pages are important because it hides the true error your application may display. The true error messages can be used to dissect and infer the back end design and structure of your web application.  Information that can be used to find weaknesses and exploit your web application.

In IIS, there are two types of custom error handling that you can and will need to set on your site. One is the traditional IIS custom error that is normally processed on the IIS level. The other is the ASP.Net custom error handling that is processed on the ASP.Net application level.  ASP.Net custom error handling is a bit tricky due to how it is processed through the handlers and depending on where it bombs out, can ultimately determine whether your ASP.Net custom error triggers.

In most cases setting up your ASP.Net custom error handling is straightforward. To achieve this, you simply add the “customErrors” element to your application’s web.config file.  The main attribute you will need to ensure is the “mode” attribute within the “customErrors” element.  You have three distinct choices.  They are “On”, “Off”, or “RemotelyOnly”.  You want to set it either for “On” or “RemoteOnly”.

Now here’s a caveat to being PCI compliant, some services will scan your site and test specific conditions to determine whether you have custom error handling enabled.  And one of the conditions they may throw at your application is passing a value/URL to your site that is similar to :

https://www.domain.com/[fakefile]?aspxerrorpath=/

which will not display your custom error page. However if you call a file that you know does not exist in your site:

https://www.domain.com/[fakefile]

you will find that your custom error page is displayed.

Confusing? Take a short breather and let me quickly explain.

Your ASP.Net custom error handling does work and the reaction your site invokes when someone calls on your site with the condition of “/[fakefile]?aspxerrorpath=/” is actually by design from Microsoft.  This condition in the URL request will stop the process from reaching the custom error handler thus bombing out before it can display your custom error page.

So what’s the solution?  The only work around that we can find is to setup a RequestFiltering rule to filter out the string “/[fakefile]?aspxerrorpath=/” from the URL string being called to your site.

In your web.config file input this code in your RequestFiltering element.

<requestFiltering>
 <denyQueryStringSequences>
 <add pre="" sequence="<span class=" hiddenspellerror="">aspxerrorpath=" />
 </denyQueryStringSequences>
 </requestFiltering>

Another way to implement this rule is through the IIS 7 or IIS 8 Manager using the RequestFiltering module and  setup the rule under the Query Strings tab with the query string “aspxerrorpath= “ set to Deny.

PCI-customerror

This will block the URL string “/[fakefile]?aspxerrorpath=/” whereby forcing it to call upon the file directly.

AZGroups Day of .NET

Calvin WongWe are sponsoring the AZGroups Day of .NET again this year.

This year’s event will be held on May 16th at the Scottsdale Center for Performing Arts. We’ve been honored to work with Scott Cate, host for the event, and the AZGroups for many many years. The event is now in it’s 10th year and is most noted for bringing Scott Guthrie to Scottsdale to speak.

In fact, the event has now come to be known simply as the Scott Guthrie Event or  “the Day of ScottGu.” The event is free, but you will need to register.

As with last year, our very own Takeshi Eto will attend the event and speak as one of the sponsors. If you’re attending, feel free to accost him in the hallway to say “hi” and cheer louder during his presentation.

How to See Your Mobile Traffic Using SmarterStats

Martin OrtegaWe did a recent survey and discovered that 38% of the people who participated didn’t know how much of their web site traffic is coming from mobile devices.

We asked, What was the percentage of your web site traffic coming from mobile (smartphones and tablets) in 2012?

This is how our users answered:

MobileSurvey

Well, for those of you who don’t know how much of your traffic is coming from Mobile clients, we have SmarterStats to help you find out.

If you haven’t enabled SmarterStats for your hosting account, here’s how to do it:

Log in to Control Panel and go to Stats / Raw Logs.

Click the Enable button next to SmarterStats (Free) (Yup, that’s right! We provide this to you for free. 🙂 )

Alright Martin I have enabled SmarterStats what do I do now?

Well now all you have to do is relax for about an hour and let SmarterStats process the HTTP logs for your site. SmarterStats processes our HTTP server logs for your site to provide you a nice interface.

After the hour has passed, login to your SmarterStats account. You can find the login information in the Stats / Raw Logs section of Control Panel.

When you log in, expand the Report Items folder and expand the Browsers folder too.

Now click on Mobile Phones.

MobileReport

Cool Martin! Now how do I save this report and change the date range at the same time?

Well… if you like the report you see and you would also like to change the date range, all you have to do is click on the Add Favorite icon in the report you just clicked on.

Add_Favorite_Icon_SmarterStats

This will then open the Following Window:

Add_Favorite_Icon_SmarterStats_Window

Click on the drop down menu next to Default Date Range and choose the date range you wish to use. Then go ahead and choose any of the other settings you wish to use and click on the OK button.

This report will be placed in the Favorites section in SmarterStats.

SmarterStats_Favorite

Another cool thing you can do to stay in the loop is to set up a Custom Report. That way you can have the report emailed to you daily, weekly, or monthly.

Expand the Custom Reports folder. Now click on the New Custom Reports.

SmarterStats_Custom_Reports

The following web page will appear:

SmarterStats_Custom_Reports_New

Go ahead and enter a name for your report in the name field, choose the Default Date Range, and click on the Report Items tab.

Click Add Item.

Click the drop down menu next to Report Item and select the favorite report you just created.

Now click Save.

This report will now be in your Custom Reports folder.

Click on the Scheduled Email Reports icon.

SmarterStats_Scheduled_Email_Reports

Click on the Add Email Report icon.

From the Reports drop down menu select the report you just created.

In the Frequency field select how often you wish to receive this report.

In the To field enter the email address you wish to send to.

Now click on Optional tab to add more email address to send to.

You might also want to place a check next to Enable graphical charts (HTML only) that way you get a nice graphical chart to refer to in your email message.

Click Save when finished.

Well, with all that said and done, I hope this helped some of you  stay up to date with what type of traffic your web site is receiving.

Microsoft SQL Server Tips Series: Database Size

Ray HuangI already provided some reasons why you see this error in the Control Panel in a previous blog post:

DatabaseRestoreFailed

so I won’t bore you with the details again.  Instead, I will be covering another error that is thrown and trapped on the back end:

MODIFY FILE failed. Size is greater than MAXSIZE.

Your database add-on space is capped depending on the type of database you ordered and how much extra disk space you purchased.  You can view the maximum size of your database using the tools in the DiscountASP.NET Control Panel by clicking on the MS SQL Manager link under the Database Management section in the menu to your left:

MaxDatabaseSize

Your transaction log disk space is also capped at 1000 MB (1 GB).  Below are instructions on how to create and fix the problem.

How You Can Create the Problem

As in my last tutorial, I will be using the AdventureWorks database in this example.  First, I’ll attach both the database and log file to my local SQL Server instance.

LocalAdventureWorks

Next, right click on the database and select Properties.  Go to the Files section and notice the initial size.

CurrentDatabaseSize

Go ahead and change these values to 500 and 1500, respectively, and click on OK.

ChangeInitialSize

Backup the database, upload it and try to restore it using the tools in the DiscountASP.NET Control Panel.  A base SQL Server 2005 database is 300 MB and the transaction log size is 1000 MB, so it will fail when you try to perform the restore and throw the error mentioned earlier.

Now, if you had only set the primary data file (.mdf) to 500 and left the transaction log (.ldf) with a value under 1000 MB and tried restoring to a higher version such as SQL Server 2012, it will work because the newer versions have a higher base value.  This problem will also create itself naturally as your database grows and fills up with data, or if you issue too many SQL commands in an instance, causing the transaction log to fill up too quickly.

The Solution

The solution is fairly simple.  You can try recovering unused database space by shrinking it.  Right click on your local database instance and select Tasks -> Shrink -> Database.  You can also shrink your database by opening a New Query window in SQL Server Management Studio and executing this SQL Statement:

DBCC SHRINKDATABASE (N’DatabaseName’, TRUNCATEONLY)

For example:

DBCC SHRINKDATABASE (N’AdventureWorks’, TRUNCATEONLY)

You can check the new values in the Initial Size (MB) column by right clicking on the database, selecting Properties and then Files.  Make sure the Initial Size (MB) of the primary data file is less than the value found in the DiscountASP.NET Control Panel and that the Initial Size (MB) of the transaction log file is less than 1000 MB (1 GB).  If the Initial Size (MB) of the primary data file is greater after you shrink it, then that means you just need to order more SQL Server disk space.

jQuery 2.0 Released – Drops Support for IE 6/7/8

Michael OssouEarlier this week, jQuery 2.0 was released.

I’ll save you the rehash, you can look to their site for information regarding the updates. The interesting thing I wanted to mention was that as of  2.0, they dropped support for IE 6, 7, & 8. This means everybody else is going to start following suit.

I often see developers on social networks asking if they really need to still support these browsers. I always take it as code for “If you guys stop, I finally can too.” So unless you have a strong user base stuck in a time-warp, I think this clearly marks the end of a very painful era – kind of.

CodeProject recently put out a poll that stated only 25% of developers are committed to still supporting the older versions of IE. Frankly, I think that number is going to get smaller really quickly. But again, it all depends on your user base and your needs. I also want to share one more statistic that I think you have to see.