Navigation

Search

Categories

On this page

Making drive bootable after Windows Server 2008 R2 System Restore
Factors determining whether Windows 8 will succeed or fail
Windows 8 Metro Articles, API references, Walk-Throughs, White Papers, Tutorials, Etc.
First look at Windows 8 Metro UI Development
Free SSL digital server certificates from a trusted CA
Upgrading YetAnotherForum (YAF) from 1.9.0 to 1.9.5.5
U-Verse Static IP Addresses: works but 2WIRE gateway barely supports the feature.
Permanently Displaying Google Chrome Bookmarks Toolbar
Restoring Windows 7 from Backup Image
Dealing with 80070005 error while instantiating a COM+ object/Services Component

Archive

Blogroll

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

RSS 2.0 | Atom 1.0 | CDF

Send mail to the author(s) E-mail

Total Posts: 81
This Year: 0
This Month: 0
This Week: 0
Comments: 33

Sign In
Pick a theme:

 Wednesday, March 14, 2012
Wednesday, March 14, 2012 3:55:07 PM (Eastern Standard Time, UTC-05:00) ( )

I am in the process of switching to Windows Server 2008 R2 on my main desktop, for software development and other things. After couple of days going through the installation and setup process I was almost done putting all my programs and settings back, when all of the sudden Windows got corrupted and would not boot anymore. Lukily I had only a few hour-old backup copy of the C: drive, made with built-int Windows 2008 R2 Backup. Should be very easy to restore and pickup where I left without much loss. Or so I thought.

For starters, when I booted from Windows DVD and went to "Repair" area, it didn't see the backup image. It saw backup images of other machines, but not its own. :-) The backup drive was external, so I connected it to another PC and so the backup image alive & well. But when I connected the external drive with backup images back to the box, Windows Repair could not see the image. It looked like I will have to lose two days worth of effort and reinstall Windows. I did that, and as soon as I could login, I checked whether I could restore iamge from within Windows. Sure enough, the image showed up in the Restore just fine.

I installed Windows again on another drive to be able to restore the image on the original drive. I removed partitions created by previous Windows reinstallation on the original drive and restored the image from another running Windows installation on it. I rebooted from the original drive, and restored Windows... would not boot. Windows Server System Restore has loaded the image of system volume on the hard drive, but didn't make bootable! No matter what I tried, I could not make drive bootable. It was terrible. Next day I decided to make the drive bootable by installing Windows on it, again. I did that, booted Windows from another drive, and restored image on the original drive again. To my surprise, this did the trick - after two days of despair and misery I finally got my Windows system backup restored.

So there you have it: Windows System Backup creates images that Repair DVD may not see, and even when you manage to restore it, you system may not boot. It is hard to fathom why Microsoft makes software with this terrible usability.

Comments [0] | | # 
 Wednesday, September 14, 2011
Wednesday, September 14, 2011 2:07:41 PM (Eastern Standard Time, UTC-05:00) (  |  |  |  )

There are two different Windows 8 types: the tablet one, with ARM CPU, and desktop/laptop/server one, with Intel x86/x64/i386 CPUs. Old code base won't run on the ARM tablets, and Metro will not run on Windows 7,Vista and XP. Given that porting applications to Windows 8 is likely to be not trivial, here's the dilemma we, developers, face:

  • If we write WinRT/Metro UI applications, we'll be able to run it only on Windows 8, both ARM and Intel, but not on ealier Windows version. We'll also be able to sell it at Microsoft app store.
  • If we write a traditional Windows application, we will be able to run it on any non-ARM Windows version, including 8, losing ARM/tablet market and the ability to distribute the app via the app store.

So it all comes down to whether developers will believe that getting Metro/Tablet market is going to be worth forsaking Windows 7/Vista/XP desltop/laptop/server market.

Only Intel and AMD can truly save MS back by enabling legacy software on the tablet - if they create low-power yet fast, tablet-worthy x86 CPUs. This would enable programmers like me to write bulk of the logic in the backward-compatible modules and supply dual UI: Metro and traditional Win32. In other words, I'll do Metro programming sooner if Metro port is inexpensive, and if I don't lose backward compatibility with the huge install base of legacy Windows.

Comments [0] | | # 
Wednesday, September 14, 2011 1:53:40 PM (Eastern Standard Time, UTC-05:00) (  |  |  |  )

Here's all you need to know to build Windows 8 Metro applications.

http://msdn.microsoft.com/en-us/library/windows/apps/

 

Comments [0] | | # 
Wednesday, September 14, 2011 9:50:05 AM (Eastern Standard Time, UTC-05:00) (  |  |  |  )

.NET developers have had major source of anxiety lately: Microsoft mentioned only JavaScript as a programming language for Windows 8 Metro UI application development. Now, since the Windows 8 Preview with development tools was released yesterday, I installed it and it's clear it's not only JavaScript, but also C#, VB and C++. Why Microsoft didn't say this at the same time as they mentioned JavaScript is totally beyond my comprehension.

Here's how Visual Studio 2011 New Project dialog screenshot looks like:

Once the project is created, you end up in the very WPF- and Silverlight-like environment, with new project containing XAML & code-behind files. First thing I did was I looked at the project's properties to see whether Windows Runtime (WinRT) is actually an extension to a standard .NET Framework. To my surprise, Target Framework project property is disabled and blank.

For me personally, I was most worried about whether I will be able to port or extend my UltiDev Web Server Pro project (a tiny free redsitributable web server) to support Windows 8 UI. I wanted to make sure that WinRT framework is compatible with existing .NET Framework. It appears it is.

To find out what .NET framework Metro applications are running in, I simply put a breakpoint in my app and inspected Environment class member values. Here's the answer:

It appears that .NET Framework we'll be targeting is still good old 4.0, with tons of WinRT exntensions, all in GAC, to support tiles-based Metro UI.

Comments [0] | | # 
 Tuesday, August 30, 2011
Tuesday, August 30, 2011 10:22:50 AM (Eastern Standard Time, UTC-05:00) (  |  )

I was looking for someone like http://www.startssl.com/ for a long time: a real, trusted Certificate Authority with very good root cert ubiquity (wich would include iOS) that would issue free server certificates.

AffirmTrust, which is supposed to go online any day now, promises to issue free server certs for three year period. If their root CA certificate is going to be as widely distributed as StartSSL's, then it may be even a better deal than StartSSL, especially given that StartSSL web site and provisioning process are a little corky.

Comments [0] | | # 
 Tuesday, June 21, 2011
Tuesday, June 21, 2011 11:46:04 AM (Eastern Standard Time, UTC-05:00) ( )

Old UltiDev Forum engine, YAF 1.9.0, lacked some important features: it didn't support SSL SMTP; user registration didn't have captcha allowing user store to be filled with fake users; search didn't work properly in IE; and topic URLs were not search engine optimized. YetAnotherForum 1.9.5.5 had all that fixed and some additional valuable features.

Although the process of preparation and practicing the upgrade was as protracted as I expected it to be, the end result is good. Here's what I had to do:

  1. Backed up web.config and modified default.aspx.
  2. Switched database compatibility mode from SQL Server 2000 (8.0) to SQL 2005 (90).
  3. Cleaned up database from fake users.
  4. Stopped IIS application containing forum.
  5. Removed all old YAF files from forum site folder.
  6. Copied new YAF files over.
  7. Customized default.aspx to be look the previous one.
  8. Renamed 1.9.1 upgrade web.config as web.config.
  9. Modified db.config, mail.config and app.config according to my needs.
  10. Re-started forum IIS application.
  11. Ran http://approot/install/ and followed the steps.

After that forum was working. Since I practiced the upgrade before and had all the .config files ready, the entire downtime was around 5 mintues required to replace files and run install wizard.

Comments [0] | | # 
 Wednesday, February 23, 2011
Wednesday, February 23, 2011 10:58:34 AM (Eastern Standard Time, UTC-05:00) (  |  |  |  )

I wanted to have multiple IPs on my server set up for quite some time because I run multiple SSL sites and only one of them could be on a standard port 443. I ran SSL sites on non-443 ports, but unfortunately, many companies block outbound ports, with a funny implication that using one port number is somehow more secure than another. But we have to deal with the reality we have, not the reality we want. So to enable letting multiple port 443 routes, as well as routing port 80 to different boxes inside my LAN I went ahead and got multiple static IPs from U-Verse. Here's what I learned while making it work.

  • If 2Wire RG router has invalid entries in the device list - clean the list first. Otherwise clicking Save button on the "IP Address Allocation" page will produce "Invalid Address Assignment" error if you don't change anything. One can clean up the list on the System Restart page. If you have ports NATted/forwarded using Firewall page, cleaning up the list will unlink all "applications" from "devices". So after you have cleaned the device list, you will have to set port forwarding again. The fact that you can't remove one device from the list and have to clear the entire list - a really destructive thing to port forwarding settings - shows that 2WIRE RG management console software is written very poorly.
  • Routing multiple external IPs to the same machines is possible only if the PC has multiple NICs. 2WIRE RG can't simply map and external IP to a LAN IP. Instead, it maps an external IP to an internal MAC address. Which is why you can't just add multiple IPs to the same NIC and be done with that. Adding an extra virtual NIC to a VM is not an issue, but adding a physical NIC to an up & running production server could mean one has to improvise. There you have it: it's pretty easy to host multiple SSL/443 on the same box this way. It's funny to see that as you add NICs to a box, you'll see multiple instances of the same box in the device list - that's, of course, because RG sees them by MAC but shows them in the list using device names. Like I said, RG web management console is kind of pathetic.
  • Another "no kidding" feature. In order to use an IP from a range of static addresses, the box needs to get its IP from RG's DHCP - no static IPs allowed. RG then will give your box the IP from static range, making your box essentially a DMZ box sitting unfirewalled exposed to the world of hurt (internet attackers). It appears it may be possible to use firewall on external IPs, but not clear how, especially given that RG's port forwarding feature doesn't support multiple external IPs. It seems to forward ports only with an assumption that router has only one external IP. So if you want your box to be visible inside the LAN, add another NIC and give it your LAN's IP. As you see, you ended up with a server being a poor man's firewall instead of being behind the firewall. Did I mention that RG web console sucks?

Anyway, UVerse's multiple static IP feature would be much easier to use if 2WIRE had better software. RG's mapping internal MACs to external IPs, and its inability to forward and external IP to a LAN IP (eliminating the firewall) are really serious drawbacks to be considered when deciding on whether to do static IPs with such a crude RG.

 

Comments [0] | | # 
 Tuesday, December 28, 2010
Tuesday, December 28, 2010 12:20:48 PM (Eastern Standard Time, UTC-05:00) ( )

Every time I need to add Favorites toolbar to Google Chrome browser, it takes an internet search to figure it out. Along with the lack of the Home link it's these are easily two most annoying UI shortcomings of otherwise very good product.

So here it is: Ctrl+Shit+B shows or hides Chrome bookmarks/favorites bar.

Comments [0] | | # 
 Monday, November 22, 2010
Monday, November 22, 2010 9:38:00 PM (Eastern Standard Time, UTC-05:00) (  |  )

I had to restore a backup image of my Windows 7 box. I have two drives and only one of them, the system, needed to be restored. Hardware configuration has not changed, and yet restore would fail with every concievable error message regardless what options I chose, which dirves I included or excluded, until I cleared "Format and repartition disks" checkbox. That did restore my system, although it restored both drives, not only the one that I needed. It was an hour of sheer terror not knowing whether I will be able to restore my information. It's horrible, MS, this should not be happenning.

Comments [0] | | # 
 Friday, October 22, 2010
Friday, October 22, 2010 11:37:13 AM (Eastern Standard Time, UTC-05:00) (  |  |  )

It's basically a note to self in order to avoid having to research this ever again. I got "Retrieving the COM class factory for remote component with CLSID {XXXX} from machine localhost failed due to the following error: 80070005 localhost" error along with UnauthorizedAccessException in RuntimeTypeHandle.CreateInstance while attempting to call Activator.CreateInstance(Type type) to instantiate serviced component/COM+ object.

To work around, "Enforce access checks for this application" checkbox needs to be unchecked on the Security tab of COM+ application properties. To do it programmatically, the code will look like this:

COMAdminCatalogObject app;
// app = ...
app.set_Value("ApplicationAccessChecksEnabled", 0);

 

Comments [0] | | #