The majority of internet users still use archaic resolutions

It has become the unsaid consensus over the years that NETMARKETSHARE is an accurate source for up to date data regarding the real world happenings of the internet. For me, the most important information they track is screen resolution. With the flood of new internet connected mobile devices, the revolution that was brought on by netbooks and the never ending wave of new monitor shapes and sizes, you cannot help but feel lost when you are doing your site design mock ups. Do you make your site wide? Do you make it narrow? What can users see vertically when they first open the page? Using a bit of excel kung-fu, I spliced up their resolution statistics and came up with the following table.

Width Users Supported Height Users Supported
800 96% 600 96%
1024 93% 768 89%
1152 64% 800 55%
1280 61% 900 32%
1366 27% 1024 21%
1440 21% 1050 11%
1600 12% 1080 5%
1680 10% 1200 3%
1920 4%    

As you can see, if you want to hit the majority of the market comfortably, you still have to design for 1024 x 768 resolutions. My general rule of thumb for that resolution is a 960 x 560 viewport design. When you account for scrollbars and an explosion of adware toolbars, that is usually what you have left to work with.

Windows Updates Downloader 2.50 Build 1000 Released

Another build of the Windows Updates Downloader, version 2.50 Build 1000, has been published.

An issue with incorrectly saved proxy port information has been corrected.

Office 2010 kills Visual Studio 2008

microsoft-office2010My movie induced optimism for Office 2010 was quickly shattered this week after trying out the beta on my box. Having followed the best practice of uninstalling Office 2007 and rebooting before installing the beta, I was not prepared for the days of frustration that would ensue. After several hang dumps and a few days of futzing around, it was discovered that installing Office 2010 corrupts the Visual Studio Web Authoring Component. A quick search of Google also confirmed that this was a recurring issue with others as well. Martin Hinshelwood suggests repairing the installation. However with the prolific use of Visual Studio 2008 internally, I fail to understand how such glaring fault was allowed to slip through for a public beta. My suggestion is to uninstall Office 2010, go back to Office 2007 and wait for the next beta. This is a milestone that is obviously too early to be public.


Note: Here’s the dump from the hang.

0:000> kb
ChildEBP RetAddr  Args to Child
0045d00c 75d30962 00000003 0045d05c 00000001 ntdll!NtWaitForMultipleObjects+0x15
0045d0a8 772f162d 0045d05c 0045d0d0 00000000 KERNELBASE!WaitForMultipleObjectsEx+0x100
0045d0f0 76e303da 00000003 fffde000 00000000 kernel32!WaitForMultipleObjectsExImplementation+0xe0
0045d144 76e3066e 00000044 73c6c9c8 00000096 user32!RealMsgWaitForMultipleObjectsEx+0x14d
0045d160 73a6813d 00000002 73c6c9c8 00000000 user32!MsgWaitForMultipleObjects+0x1f
0045d1d4 73a68e78 0045d1f4 ffffffff 00000000 msi!MsiUIMessageContext::RunInstall+0x2a9
0045d214 73a68d60 00000000 0045d8b0 00000000 msi!RunEngine+0xe2
0045d2c0 73a68c3a 0045d8b0 0045d854 00000000 msi!ConfigureOrReinstallFeatureOrProduct+0x265
0045d2fc 73a68bc0 0045d8b0 0045d854 000003a6 msi!MsiReinstallFeatureW+0x93
0045d5dc 73a586e9 0045d8b0 0045d854 0045d90c msi!ProvideComponent+0x2c5
0045d9c0 73a58c6c 0045da28 00000000 0045dbd0 msi!ProvideComponentFromDescriptor+0x236
0045db8c 5ef6f40c 5e9bf1c0 5e9bf210 00000000 msi!MsiProvideQualifiedComponentExW+0x1e2
WARNING: Stack unwind information not available. Following frames may be wrong.
0045e038 5ea0e5a9 5e4f6f40 0045e058 5ea0e563 FPEDITAX!DllUnregisterServer+0xea68a
0045e044 5ea0e563 5e4f6f40 00000001 00000000 FPEDITAX+0xfe5a9
0045e058 5ea0e54f 5e4f6f40 00000001 00000000 FPEDITAX+0xfe563
0045e068 5ea0e263 5e4f6f40 00000002 5e912608 FPEDITAX+0xfe54f
00000000 00000000 00000000 00000000 00000000 FPEDITAX+0xfe263

0:000> du 0045d8b0
0045d8b0  "{90120000-0021-0000-0000-0000000"
0045d8f0  "FF1CE}"

Windows 7 is now in stores

Windows 7Back in July, general availability for Windows 7 was announced to be forthcoming on October 22nd. The great Windows team led by Steven Sinofsky have delivered on that promise. Windows 7 is now in stores. All editions are now available for purchase from any and all reputable vendors. Be sure to check out the Windows 7 editions comparative on Wikipedia to see which edition is best suited to your needs. Savings of over $200 are available when you purchase the Windows 7 Home Premium Upgrade Family Pack as well. The never ending list of great features and improvements make this one version of Windows you do not want to miss out on.

Improved ASP JSON utility updated

Back in July of this year, I released an improved version of Tuğrul Topuz’s aspjson utility. Based on some feedback of my release, I decided to revisit the slowly growing list of unfixed issues in the original version. I have addressed all of them and included them with my own fixes.

Download the ASPJSON 2.11 source

Fixing the Volume Shadow Copy service

After installing DHCP on Windows Server 2008 R2, you may start to see the following error message in the event logs :

Volume Shadow Copy Service error: Unexpected error calling routine RegOpenKeyExW(-2147483646,SYSTEM\CurrentControlSet\Services\VSS\Diag,…). hr = 0×80070005, Access is denied.

Inspection of the detailed tab of the event log entry will show information about the process that generated the error. Take note of the user mentioned after the “- User: Name:” portion of the bytes. To resolve this error, simply give that user full permission to the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\VSS registry key.

Fixing the DFS Namespace service

After you install Active Directory on Windows Server 2008 R2, you may start seeing the following error message after the server boots :

The DFS Namespace service could not initialize cross forest trust information on this domain controller, but it will periodically retry the operation. The return code is in the record data.

This occurs because the DFS Namespace service attempts to access Active Directory before it has completely initialized.

To resolve this issue, we simply have to force the DFS Namespace service to start after the Active Directory service has initialized. We can do this by setting the DFS Namespace service to depend on the Active Directory service as well as setting it to a Delayed Startup mode.

To make those changes, start regedit and make the following changes :

  1. Navigate to the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Dfs
  2. Modify the DependOnService value and add NTDS to the list.
  3. Create a new DWORD value named DelayedAutostart and set its value to 1.

Storing IPv4 Addresses for Performance

When designing tables, it is important to take into consideration the impact that your choice of columns and its data types will have on performance. The list of data types available has also been growing, making design choices even more difficult. Often real world data is not optimized for performance and it is necessary to find methods of transforming this information to allow efficient storage within tables that take both speed and size into consideration.

Read the full article

Determining the Order of ASP.NET MasterPage and Page Events

Anyone who is a regular ASP.NET developer is likely familiar with the ASP.NET Page LifeCycle diagram that Kris van der Mast posted on his blog more then 3 years ago. It is indisputably the best reference when trying to determine where to insert your code in the life cycle of your pages. There is however a lack of clarity on where MasterPages fit into the picture. With a bit of logging and digging, here’s a diagram which illustrates clearly in which order MasterPage and Page events are fired. If you’re deriving a custom MasterPage or Page class for your site, the diagram also shows the relation between your class code and the automatically attached MasterPage and Page events.

OrderOfASPNETMasterPageAndPageEvents

Disown your ASP.NET children

If you’re building a site that contains nested applications, you may find yourself confused at what appears to be IIS completely disregarding your virtual directories. The behavior is by design. Although the applications will get isolated, the web.config settings from parent applications propagate to children applications. An easy fix is to simply wrap your web.config with the following to disable propagation :

  <location path="." inheritInChildApplications="false">
    <system.web>

    ...

    </system.web>
  </location>

Most sections can be wrapped at the exception of <configSections>, <runtime> and of course, the <configuration> root node.

Check out the full article on aspdotnetfaq.com for more details.