| | Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|
| 28 | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 10 | 11 | 12 | 13 | | 14 | 15 | 16 | 17 | 18 | 19 | 20 | | 21 | 22 | 23 | 24 | 25 | 26 | 27 | | 28 | 29 | 30 | 31 | 1 | 2 | 3 | | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
Total Posts: 362 This Year: 4 This Month: 0 This Week: 0 Comments: 191
|
 |
>Blog
While setting up Microsoft Team Foundation Server 2010 Beta 2 one might into an non obvious issue with user rights. The error observed would look the following: The TFS installation considered is a single machine installation with SQL Server Reporting and Analysis services and SharePoint Services installed during the TFS installation. The full descriptions of the error is: Error TF30224: Failed to retrieve projects from the report server. Please check that the SQL Server Reporting Services Web and Windows services are running and you have sufficient privileges for creating a project. Explanation The Project Creation Wizard encountered a problem while creating reports on the SQL Server Reporting Services on http://coruscant/ReportServer/ReportService2005.asmx. The reason for the failure cannot be determined at this time. Because the operation failed, the wizard was not able to finish creating the SQL Server Reporting Services site. User Action Contact the administrator for the SQL Server Reporting Services on http://coruscant/ReportServer/ReportService2005.asmx to confirm that the SQL Server Reporting Services server is running and you have sufficient privileges to create a project . Your user account on SQL Server Reporting Services must have Content Manager permission to create a new project. Also, you might find additional helpful information in the project creation log. The log shows each action taken by the wizard at the time of the failure and may include additional details about the error. A wild guess might be checking all rights for SQL Server, SharePoint sites, SQL Server Reporting Services etc. Pat Ramadass comes up with the right hint that origins from the previous TFS version. First of all do not look for the Reporting Service Configuration Manager. Go straight to http://localhost/Reports/ (logged in on your TFS server machine with administrator rights). You will get the SQL Server Reporting Services site. Select the Properties page and click on New Role Assignment. Now add exactly the user (or group) you tried creating the TFS Team Project with. Select at least Content Manager and confirm by pressing OK. Go back to you local machine and try to create the TFS Team Project again. The users should now have sufficient rights to create the project.
There is an urban legend that Google Calendar Sync would not run on Windows 7. Indeed, if you follow the installation instructions Google Calendar Sync will first ask you for your credentials and consequently fail to connect to Google Calendar. In the following you’ll find an solution how to use Google Calendar Sync with Microsoft Outlook 2007 on a Windows 7 system that that is provided under a works on my machine premise. Once saved, Google Calendar Sync will try to connect but fail with error 2006. There is not many information about this error beside various frustrated users ranting about this and some statements that the current version of Google Calendar Sync (0.9.3.5) is not supported under Windows 7 yet. In the current case we will even run Google Calendar Sync on a Windows 7 64-bit system. Before you continue, make sure you exit Google Calendar Sync. First of all open a Explorer window and navigate to C:\Program Files (x86)\Google\Google Calendar Sync or C:\Program Files\Google\Google Calendar Sync on a 32-bit Windows 7 system. Right click on GoogleCalendarSync.exe and select Properties. Now select the Compatibility tab, check the Run this program in compatibility mode for and choose Windows Vista (Service Pack 2) from the drop down list. Click on OK and restart Google Calendar Sync either from your desktop icon or from the start menu entry. Once restarted you can happily sync Google Calendar with Microsoft Outlook 2007 on (even a 64-bit) Windows 7 system. The Compatibility mode of Windows is a great feature to make usage of legacy programs that have not been or will never bee updated to the latest Windows version. Since Windows 7 even mode modes (including Windows Server) back to Windows 95 are supported. The number of supported versions might vary depending on the Windows 7 version you use, however, the Vista and XP mode should always be available.
Microsoft’s Windows 7, Outlook 2007 and Adobe’s Acrobat just do not play well together on 64-bit systems. After receiving a PDF document via email, Outlook usually cannot display the PDF. When selection Preview File, you will simply get the message PDF Preview Handler for Vista (Vista!?) caused an error. For now, the only way to view the PDF file is to open it in an external PDF reader. Leo Davidson provides a fix that finally solves this issue. Just get the fix, and run the Adobe Reader preview handler x64 fixer.exe which is included in the file. After applying the fix, both, the 32-bit AppID as well as the 64-bit AppID will show the value as correct. No reboot required, just go back to Outlook (worked even without restarting the application) and et voilà. Thanks to Leo Davidson, who provides this outstanding fix. Well played.
One major drawback of ReSharper 4.5 was the fact that when navigating to a compiled class, ReSharper always opened the Visual Studio Object Bowser. However, personally I prefer the Metadata View of Visual Studio: With Version 5.0 ReSharper (currently available as EAP) there comes a major improvement. The first time you navigate to a pre-compiled class, ReSharper offers you to choose your favorite view: Object Browser, Metada View or directly the .NET framework sources. In case your change your mind (or the selected sources is not available) you can define the order for the code navigation within Visual Studio at the ReSharper Options from ReSharper / Options… / Tools / External sources: 
If you experience issues with a USB device not being recognized under Windows 7, there might be a simple solution to solve this. For example the MSI USB 2.0 All IN 1 Card Reader aka MSI StarReader is recognized as eHome Infrared Receiver (USBCIR) using Windows 7. The device works great using Windows Vista or even the Windows 7 pre-release versions. Unfortunately, with the final Windows 7 the device just won’t work. A quick look into the Device Manager will show that the device is recognized as eHome Infrared Receiver (USBCIR). When connecting the first time Windows 7 won’t give any notice that the installation of the driver failed or that the device is not ready to use. It will simply not work. This seems to be known problem, however, there is no need to wait for a Software Update from Microsoft. The solution is to manually choose the device. - Start Device Manager
- Right-click the eHome Infrared Receiver (USBCIR) entry
- Select Update Driver Software
- Choose Browse my computer for driver software
- Choose Let me pick from a list of device drivers on my computer
- Make sure the Show compatible hardware box is checked
- Select the USB Composite Device and you are done
After a few seconds the driver should be installed and the device should be ready. 
AWStats is a free, Perl-based analyzer for log files. To get results quickly on a Windows Server 2008 with IIS 7 you only have to follow a few steps. These are not well documented in the AWStats documentation and require some time of research. This post will show you how to set up AWStats with IIS7 in only a few minutes. - Install Perl, e.g. ActivePerl. There are 32-bit and 64-bit versions available. Make sure that Perl is added to your PATH environmental variable. The ActivePerl installer usually provides this option during the installation.
- Install AWStats. Remember the path AWStats is installed. Paths used below are based on the installation folder of AWStats. In this example we use c:\awstats.
- Run the configuration script at c:\awstats\tools\awstats_configration.pl. Follow the on screen instructions. This will create a default configuration file in c:\awstats\wwwroot\cgi-bin e.g. called awstats.www.example.org.config. The site name www.example.org depends on whatever site name was provided while running the script. When asked for the Apache Web server path type in none.
- Open the configuration file awstats.www.example.org.config with any text editor of your choice.
- AWStats already supports IIS, however, it is required to tweak the config file. First change the entry for LogFile. Log files for IIS might be found at c:\inetpub\logs\LogFiles\W3SVCNNN where NNN is a different number for each web site, IIS creates log files for. Change the entry to
LogFile=”c:\awstats\tools\logresolvemerge.pl c:\inetpub\logs\LogFiles\W3SVC1\*.log |”
This will merge all log files for a site provided by IIS. Adjust the paths corresponding to your installations and desired log file folders.
- The AWStats configuration file offers the possibility to set the LogFormat to IIS (LogFormat=2), however, the log entries provided by a standard installation of IIS 7 won’t match. The AWStats documentation recommends to change the settings of IIS. The change will take effect only after restarting the Web site and is only valid for entries after that particular moment. Consequently, this is not an option if you are going to analyze the logs of the last 12 months where the original settings were used. To make AWStats work with the standard log format of IIS 7 change the LogFormat to
LogFormat=”%time2 %other %method %url %other %query %other %host %other %code % %other %other %bytesd”
- Change SiteDomain and HostAliases to meet the settings of your site.
- Change to c:\awstats\wwwroot\cgi-bin\ and run
awstats.pl -config=www.example.org
This will build the statistics database for AWStats.
- To create output run
awstats.pl -config=www.example.org –output –staticlinks > …\example_org_stats.html
- Not that example_org_stats.html is created one folder up. In case you do miss this, the output will not work correctly until you adapt the entries for DirCgi and DirIcons in the configuration file.
- The output file is now located in c:\awstats\wwwroot. You might want to create a Virtual Directory or set up a Web site to view the reports via the Web or your Intranet.
 Repeat steps 3-7 fore each site you want to create reports for. Repeat step 8 and 9 every time you want to create a new report.
My Web Page Starter Kit is a lightweight content management system, entirely written in ASP.NET 2.0. It comes with a wide range of components that can be easily arranged and set up. However, it seems there is no possibility to include external application into the navigation structure of MWPSK. In the following example you will learn how to integrate a application using the URI http://blog.example.org into a website using MWPSK at http://www.example.org. Log into the site and navigate to select Administration / Pages and Navigation. Select New Page to create a new Choose a virtual path such as blog. This will allow you to use a new URI in the form of http://www.example.org/blog.aspx. Now open the global.asax file located in the root folder of your MWPSK installation and add the following method. void Application_BeginRequest(object sender, EventArgs e)
{
if (HttpContext.Current.Request.Url.ToString().ToLower().Contains ("www.example.org/blog.aspx"))
{
HttpContext.Current.Response.Status = "301 Moved Permanently";
HttpContext.Current.Response.AddHeader("Location",
Request.Url.ToString().ToLower().Replace(
"www.example.org/blog.aspx",
"blog.example.org/"));
}
}This will cause an URL rewrite of the HTTP-request, which is then sent to the external application at http://blog.example.org.
After upgrading Windows Vista to Windows 7 you might encounter an issue with VMware Workstation and its network adapter. When setting up a NAT or bridged network connection in VMware Workstation it shows a message telling The virtual network drivers on the host are incompatible with the installed VMware application. Expected version 5. Please reinstall the product. Failed to connect virtual device Ethernet0. Make sure all your virtual machines are powered off and quit VMware Workstation. Open a command shell as administrator and follow the steps below. First cd %windir%\system32\drivers, check for the file vmnetadapter.sys, right-click it, select Details and check its version. It should be 4.0.2.0. If the file is not there, cd "%ProgramFiles(x86)%\VMware\VMware Workstation" rundll32 setupapi,InstallHinfSection VMnetAdapter1.Install 128 %CD%\netadapter.inf vnetlib -- install devices This will install the required adapters and devices. Do again a cd %windir%\system32\drivers and check for the First cd %windir%\system32\drivers, check for the file vmnetadapter.sys file.
After a reboot of the host system, the NAT settings for the VMware network adapters should work again. Switching to bridged mode will probably result in another message. Reason for the message saying The network bridge on device VMnet0 is not running. The virtual machine will not be able to communicate with the host or with other machines on your network. Failed to connect virtual device Ethernet0. might be the missing VMware Bridge Protocol on the according host network adapter. Got to Network and Sharing Center and select Change adapter settings. Choose the network connection you want to use with your VMware network adapter, right-click, select Properties, Install, Service and finally Add. This will allow you to select the VMware Bridge Protocol. In case the entry is not listed, select Have Disk… and navigate to %ProgramFiles(x86)%\VMware\VMware Workstation. After installing the VMware Bridge Protocol restart the VMware Workstation and choose the bridged mode for the network adapter. 
For a while, I am working on a project where I use WPF to its limits. Unfortunately, Visual Studio has its limitations in rendering the stuff we do here. We started with Visual Studio 2005, without any native support for XAML in Visual Studio doing a lot of the work in Notepad2, using one CTP after another including Visual Studio 2008 Beta 2 up to the final version of Visual Studio 2008. Things became better over time, however, I wished simply to switch off the Design view in in Visual Studio. Hidden in the Visual Studio settings, there is this switch A hidden jewel for anybody working a lot with the WPF markup language in Visual Studio. You’ll find it at: Tools / Options… / Text Editor / XAML / Miscellaneous 
Another nice feature, unrevealed in Internet Explorer 7: Adding your own search providers is quite easy. When you select the drop down menu at your search box, you can select your currently installed search providers. To add more, select Find More Providers… from the menu. Now, go to your favorite search engine and perform a search for TEST. I did this for the Beolingus translation provider. Paste the URL from the previous source and specify a name for your new search provider. That’s the XML used for the installation. Press install and can directly access this search provider using the search box in IE 7. <OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<ShortName>Beolingus</ShortName>
<Description>Beolingus provider</Description>
<InputEncoding>UTF-8</InputEncoding>
<Url type="text/html" template="http://dict.tu-chemnitz.de/dings.cgi?lang=en&service=deen&opterrors=0&optpro=0&query={searchTerms}&iservice=&comment=" />
</OpenSearchDescription>
If you want to modify the settings later, you can do so using Tools / Internet Options / Change Search Defaults Settings.
It was the first time I played with these settings of Internet Explorer and I am quite surprised in a positive way about it.

We just spend this afternoon trying to upgrade a Xbox 360 to a 60GB HDD with a friend, called “The-one-without-a-Web-presence”. Without success, yet. Somewhat frustrated, I started doing some research on this to understand. Some background information might be helpful. I just upgraded my Xbox 360 to 120GB. That went quite well. After fighting an epic battle with the blister box, I obtained three essential pieces as reward: the HDD, some kind of odd cable and a green CD/DVD. One end of the cable to the Xbox, the other one to the back of the Xbox. There is only way how it fits, so its quite idiot-proof. Then you insert the disc. The next few steps are shown on the screen. Confirm the transfer and, depending on the amount of data on your old hard disc, the transfer might take up to 1 hours 30 minutes from the 20 GB disc. Transfer works from one way only. This means, once the transfer is completed, your old disc will be wiped out. It will be a plain disc, just with the XNE (or dashboard if not updated, yet) on it. No profiles, no save games. The trasfer seems to work only from a smaller to a larger disc. This means 20GB –> 60GB 20GB –> 120GB 60GB –> 120GB I was also told that the the same size of a HDD is supported. This means the following might also work (not confirmed): 20GB –> 20GB 60GB –> 60GB 120GB –> 120GB Said that, my friend “The-one-without-a-Web-presence” bought the 60GB Live Starter Kit. That’s a quite fair deal including a 60GB HDD, a head set and three months of gold subscription and a Ethernet cable. He was never live before, so the three months of gold subscription was a reason to buy this kit as he wants to start playing live (Do you get it? Live Starter Kit? For those who want start being live?). Besides this, he gains much more reward for fighting the blister box. What’s not included in this package is a Data Migration Kit (containing the odd cable as well as the CD/DVD). So he asked me, if we could use my kit. After several attempts we finally figured out: Yes, we could use my kit, however, it does not work. What went wrong at the end? Everything was connected properly, we tried several permutations in connection orders and we read through a whole bunch of support articles. The simplest way is contacting Microsoft Support and asking for the Data Migration Kit. To do so you simply have to follow the steps indicated in this support article. Obviously we already have an Data Migration Kit from my 120GB disc that does not work. The answer seems pretty simple: At the time when the 120GB disc was released, there was no 60GB disc available. That way, the software does only support the copy process to a 120GB disc. It seems this as a known issue and meanwhile Microsoft released a newer software that also supports this process to 60GB discs. this means, the software only can process the following transfers: 20GB –> 60GB 20GB –> 120GB 60GB –> 120GB However, you might be not in luck and you end up with a old software version indeed. Having a newer version this will be no problem at all. How can you tell what version you have? Check out the number on the right bottom of the green CD/DVD being part of your Data Migration Kit. Does it end with “–01”? Bad luck then. That’s the old version only supporting 120GB discs. Give a call to your local Microsoft support and ask for a newer version or ask your friends if anybody has the newer version. Now you should be able to identify the right disc. Personally, I would recommend to ask if anybody of your friends has the disc and the odd cable. You’ll need this cable/software only once and ordering it for a single transfer is a waste of resources. As there is no way back now cable will be of no use after the transfer other than giving it to a friend. Why this confusion? The 60GB Live Starter Kit does not include a cable/software as it is meant to be for Xbox 360 Arcade users who want to migrate. So It might be called “Xbox 360 Arcade 60GB Upgrade Kit” to avoid some confusion for those how want start with Xbox live using the “Xbox 60GB Live Starter Kit”.
This evening, I moved my thesis documents and all it's dependencies to a new machine. Using Windows Vista, most documents are located in %UserProfile%. Most of them, but not all. EndNote X stores its styles in its program folder by default. The styles are located in %ProgramFiles (x86)%\EndNote X\Styles (on my X64 system). To change this, go to Edit / Preferences... / Folder Locations and change the Style Folder option. It's a simple tweak, however, it allows you to manage and backup your own styles in a much more efficient way.
It's quite annoying to keep the Blogroll on your weblog up-to-date while using offline readers. Using RSSBandit and dasBlog">dasBlog brings a quite handy solution to you. First of all, open your dasBlog configuration and check the 'Enable Config Web Service' option. Now open the 'Options' dialog of RSSBadit and select the 'Remote Storage' pane. Here check 'Use remote storage', select 'dasBlog' from the drop-down list and fill out the required login credentials. Your API usually is located at something like http://YouBlog/ConfigEditingService.asmx'. To sync, simply select the 'Upload Feeds...' or 'Download Feeds...' command from the tools menu. No idea, why I haven't seen this, yet. But this option finally allows my keep my online Blogroll up-to-date with a few mouse clicks. 
Today, I run into a quite annoying error message while developing a application for Windows Mobile 6.1. "An error message is available for this exception but cannot be displayed because these messages are optional and are not currently installed on this device. Please install ‘NETCFv35.Messages.EN.wm.cab’ for Windows Mobile 5.0 and above or ‘NETCFv35.Messages.EN.cab’ for other platforms. Restart the application to see the message." The required files are located at C:\Program Files (x86)\Microsoft.NET\SDK\CompactFramework\v3.5 \WindowsCE\Diagnostics, assuming you have installed the Windows Mobile SDK. I copied the file NETCFv35.Messages.EN.wm.cab to my device and run the installation. So far it worked fine, until the same exception popped up again. Using the .NET CF Logger, from Power Toys for .NET Compact Framework 3.5, I was able to track it down to the following error: "Failed to load [System.SR, Version=3.5.0.0, Culture=neutral, PublicKeyToken=969DB8053D3322AC]" To do so, you choose the device you want to log and select which logging options you want. The log files can be found then in your application folder on the mobile device.  With this new input, I found Martijn Hoogendoorn's blog entry. He came across the same issue some time ago and provided a solution to this miracle. If you have a look inside the .cab file, check the _setup.xml file. Extract and rename the file SYCCFA~1.001 to System.SR.dll and include it into your project. Rebuild, deploy and debug it - it should work fine.
Simple but powerful: http://live.sysinternals.com. What they say: "This is a file share allowing access to all Sysinternals utilities. We have developed this to test an alternate distribution mechanism for our utilities. This will allow you to run these tools from any computer connected to the Internet without having to navigate to a webpage, download and extract the zip file." What you get: 
Did you now where to find the shortcuts for Word 2007? Pressing F1 does not provide too much help. With some luck you end up at this Knowledge Base article providing you this list:
All Caps CTRL+SHIFT+A Annotation ALT+CTRL+M
App Maximize ALT+F10
App Restore ALT+F5
Apply Heading1 ALT+CTRL+1
Apply Heading2 ALT+CTRL+2
Apply Heading3 ALT+CTRL+3
Apply List Bullet CTRL+SHIFT+L
Auto Format ALT+CTRL+K
Auto Text F3 or ALT+CTRL+V
Bold CTRL+B or CTRL+SHIFT+B
Bookmark CTRL+SHIFT+F5
Browse Next CTRL+PAGE DOWN
Browse Previous CTRL+PAGE UP
Browse Sel ALT+CTRL+HOME
Cancel ESC
Center Para CTRL+E
Change Case SHIFT+F3
Char Left LEFT
Char Left Extend SHIFT+LEFT
Char Right RIGHT
Char Right Extend SHIFT+RIGHT
Clear DELETE
Close or Exit ALT+F4
Close Pane ALT+SHIFT+C
Column Break CTRL+SHIFT+ENTER
Column Select CTRL+SHIFT+F8
Copy CTRL+C or CTRL+INSERT
Copy Format CTRL+SHIFT+C
Copy Text SHIFT+F2
Create Auto Text ALT+F3
Customize Add Menu ALT+CTRL+=
Customize Keyboard ALT+CTRL+NUM +
Customize Remove Menu ALT+CTRL+-
Cut CTRL+X or SHIFT+DELETE
Date Field ALT+SHIFT+D
Delete Back Word CTRL+BACKSPACE
Delete Word CTRL+DELETE
Dictionary ALT+SHIFT+F7
Do Field Click ALT+SHIFT+F9
Doc Close CTRL+W or CTRL+F4
Doc Maximize CTRL+F10
Doc Move CTRL+F7
Doc Restore CTRL+F5
Doc Size CTRL+F8
Doc Split ALT+CTRL+S
Double Underline CTRL+SHIFT+D
End of Column ALT+PAGE DOWN
End of Column ALT+SHIFT+PAGE DOWN
End of Doc Extend CTRL+SHIFT+END
End of Document CTRL+END
End of Line END
End of Line Extend SHIFT+END
End of Row ALT+END
End of Row ALT+SHIFT+END
End of Window ALT+CTRL+PAGE DOWN
End of Window Extend ALT+CTRL+SHIFT+PAGE DOWN
Endnote Now ALT+CTRL+D
Extend Selection F8
Field Chars CTRL+F9
Field Codes ALT+F9
Find CTRL+F
Font CTRL+D or CTRL+SHIFT+F
Font Size Select CTRL+SHIFT+P
Footnote Now ALT+CTRL+F
Go Back SHIFT+F5 or ALT+CTRL+Z
Go To CTRL+G or F5
Grow Font CTRL+SHIFT+.
Grow Font One Point CTRL+]
Hanging Indent CTRL+T
Header Footer Link ALT+SHIFT+R
Help F1
Hidden CTRL+SHIFT+H
Hyperlink CTRL+K
Indent CTRL+M
Italic CTRL+I or CTRL+SHIFT+I
Justify Para CTRL+J
Left Para CTRL+L
Line Down DOWN
Line Down Extend SHIFT+DOWN
Line Up UP
Line Up Extend SHIFT+UP
List Num Field ALT+CTRL+L
Lock Fields CTRL+3 or CTRL+F11
Macro ALT+F8
Mail Merge Check ALT+SHIFT+K
Mail Merge Edit Data Source ALT+SHIFT+E
Mail Merge to Doc ALT+SHIFT+N
Mail Merge to Printer ALT+SHIFT+M
Mark Citation ALT+SHIFT+I
Mark Index Entry ALT+SHIFT+X
Mark Table of Contents Entry ALT+SHIFT+O
Menu Mode F10
Merge Field ALT+SHIFT+F
Microsoft Script Editor ALT+SHIFT+F11
Microsoft System Info ALT+CTRL+F1
Move Text F2
New CTRL+N
Next Cell TAB
Next Field F11 or ALT+F1
Next Misspelling ALT+F7
Next Object ALT+DOWN
Next Window CTRL+F6 or ALT+F6
Normal ALT+CTRL+N
Normal Style CTRL+SHIFT+N or ALT+SHIFT+CLEAR (NUM 5)
Open CTRL+O or CTRL+F12 or ALT+CTRL+F2
Open or Close Up Para CTRL+0
Other Pane F6 or SHIFT+F6
Outline ALT+CTRL+O
Outline Collapse ALT+SHIFT+- or ALT+SHIFT+NUM -
Outline Demote ALT+SHIFT+RIGHT
Outline Expand ALT+SHIFT+=
Outline Expand ALT+SHIFT+NUM +
Outline Move Down ALT+SHIFT+DOWN
Outline Move Up ALT+SHIFT+UP
Outline Promote ALT+SHIFT+LEFT
Outline Show First Line ALT+SHIFT+L
Overtype INSERT
Page ALT+CTRL+P
Page Break CTRL+ENTER
Page Down PAGE DOWN
Page Down Extend SHIFT+PAGE DOWN
Page Field ALT+SHIFT+P
Page Up PAGE UP
Page Up Extend SHIFT+PAGE UP
Para Down CTRL+DOWN
Para Down Extend CTRL+SHIFT+DOWN
Para Up CTRL+UP
Para Up Extend CTRL+SHIFT+UP
Paste CTRL+V or SHIFT+INSERT
Paste Format CTRL+SHIFT+V
Prev Cell SHIFT+TAB
Prev Field SHIFT+F11 or ALT+SHIFT+F1
Prev Object ALT+UP
Prev Window CTRL+SHIFT+F6 or ALT+SHIFT+F6
Print CTRL+P or CTRL+SHIFT+F12
Print Preview CTRL+F2 or ALT+CTRL+I
Proofing F7
Redo ALT+SHIFT+BACKSPACE
Redo or Repeat CTRL+Y or F4 or ALT+ENTER
Repeat Find SHIFT+F4 or ALT+CTRL+Y
Replace CTRL+H
Reset Char CTRL+SPACE or CTRL+SHIFT+Z
Reset Para CTRL+Q
Revision Marks Toggle CTRL+SHIFT+E
Right Para CTRL+R
Save CTRL+S or SHIFT+F12 or ALT+SHIFT+F2
Save As F12
Select All CTRL+A or CTRL+CLEAR (NUM 5) or CTRL+NUM 5
Select Table ALT+CLEAR (NUM 5)
Show All CTRL+SHIFT+8
Show All Headings ALT+SHIFT+A
Show Heading1 ALT+SHIFT+1
Show Heading2 ALT+SHIFT+2
Show Heading3 ALT+SHIFT+3
Show Heading4 ALT+SHIFT+4
Show Heading5 ALT+SHIFT+5
Show Heading6 ALT+SHIFT+6
Show Heading7 ALT+SHIFT+7
Show Heading8 ALT+SHIFT+8
Show Heading9 ALT+SHIFT+9
Shrink Font CTRL+SHIFT+,
Shrink Font One Point CTRL+[
Small Caps CTRL+SHIFT+K
Space Para1 CTRL+1
Space Para15 CTRL+5
Space Para2 CTRL+2
Spike CTRL+SHIFT+F3 or CTRL+F3
Start of Column ALT+PAGE UP
Start of Column ALT+SHIFT+PAGE UP
Start of Doc Extend CTRL+SHIFT+HOME
Start of Document CTRL+HOME
Start of Line HOME
Start of Line Extend SHIFT+HOME
Start of Row ALT+HOME
Start of Row ALT+SHIFT+HOME
Start of Window ALT+CTRL+PAGE UP
Start of Window Extend ALT+CTRL+SHIFT+PAGE UP
Style CTRL+SHIFT+S
Subscript CTRL+=
Superscript CTRL+SHIFT+=
Symbol Font CTRL+SHIFT+Q
Thesaurus SHIFT+F7
Time Field ALT+SHIFT+T
Toggle Field Display SHIFT+F9
Toggle Master Subdocs CTRL+\
Tool SHIFT+F1
Un Hang CTRL+SHIFT+T
Un Indent CTRL+SHIFT+M
Underline CTRL+U or CTRL+SHIFT+U
Undo CTRL+Z or ALT+BACKSPACE
Unlink Fields CTRL+6 or CTRL+SHIFT+F9
Unlock Fields CTRL+4 or CTRL+SHIFT+F11
Update Auto Format ALT+CTRL+U
Update Fields F9 or ALT+SHIFT+U
Update Source CTRL+SHIFT+F7
VBCode ALT+F11
Web Go Back ALT+LEFT
Web Go Forward ALT+RIGHT
Word Left CTRL+LEFT
Word Left Extend CTRL+SHIFT+LEFT
Word Right CTRL+RIGHT
Word Right Extend CTRL+SHIFT+RIGHT
Word Underline CTRL+SHIFT+W
Since running my own mail server I am bombed with SPAM. With the newly released Mercury/32 v4.61 I also decided to install SpamHalter. If you have never worked with this before, you might be as lost as I was in the beginning. So, here a few tips to get started easily. After installing the latest Mercury/32, the setup will probably ask you to install SpamHalter among other plug-ins. To get it running quickly, get the words4.zip file from the SpamHalter web site. Start the SpamHalterTools.exe from the Mercury directory and import the database. At first you have to enable the '+' forms within Mercury. You'll find this option at the 'Advanced' tab at the 'Mercury Core Module Configuration'. Now, you define two local mailboxes for SPAM and NOSPAM corrections: The correction mailboxes must be specified within the SpamHalter settings on the 'Basic Setting' tab. I actually was not sure, so I created also the corresponding aliases for those two mailboxes: Maybe this might work without, but since I am running this mail server for multiple DNS entries, I wanted to be sure. If SPAM is detected by SpamHalter, you'll get the corresponding header information that can be evaluated, e.g. using Rules within Microsoft Outlook. The mailboxes you've created before are used to correct false positives or missed SPAM. Some accidentally as SPAM classified mail can just be forwarded to the NOSPAM mailbox created before to teach the system about this mail. Not recognized SPAM mails are sent to the SPAM mailbox to get processed. Simply add the password you have chosen before to enable the remote Following these steps you get a quite reliable system within a few minutes. After sending couple of SPAM mails to the system it already started to recognize German SPAM. There is much more to tweak on the system, but this should be enough to get a fast satart with SpamHalter. To get a more detailed instruction read the original documentation [pdf] and the web page.
This post will give some insight into the distributed version control ad the Distributed and Self-organizing Systems Group. Usually, I am keen about trying out new things, e.g. distributed version control systems such as GIT, Mercurial or Bazaar. However, currently the group's infrastructure is set up with Subversion as internal revision control system. For the next few months we will start an evaluation phase with the students, working on the WebComposition/DGS approach, based on a distributed version control concept. Core components of the WebComposition project are branched into a dedicated student branch where all students can commit changes. Based on this branch each student creates his or her private branch for local changes. The coordinator (usually some DSS staff) takes care of regular forward integration of the core components into the student branch. Each student in turn is responsible for forward integration into his or her own branch. Changes can be submitted after testing and evaluation back into the central student branch by each student performing backward integration. The group working on the project has to agree in the LAKS meeting on the change before backward integrating the updates. The coordinator finally takes care if these changes are also backward integrated into the original project trunk. Step 1: Create a local working copy First, look for a place where to checkout the working copy. Create a folder, e.g. branches\students and use Tortoise to checkout a working copy. Select the student branch and the local folder where to store the working copy to start the checkout. After the checkout is finished, you should will have a local working copy of the student branch. Step 2. Create a private branch Select 'Branch/tag' from the context menu of your working copy. Use the path of your private project within the repository to create the branch. Step 3: Forward integrate changes from the student branch When the student branch was updated you might be interested in getting these updates into your private branch. To forward integrate these changes into your private branch, select the folder where your local working copy lives, and use the Tortoise context menu to select 'Merge...'. Select the repository folder you want to forward integrate Probably this will be the student branch - the paths in the screenshot below will thus differ from yours. Select the revision from where the forward integration should start. Now select the revision where it should end. Usually, this will be the head revision. After merging submit the changes of your working copy to the repository and you are done. To get some more information on Subversion, or to learn how to perform the steps above on command line, refer the Subversion book.
Here we go...

You probably run into the same problem that Windows Server 2008 won't be able to recognize the virtual hard disk you have planned to installed it on. Get the corresponding SCSI drivers as floppy image from the VMware site. Select the image and connect the drive.
Now say 'Browse' and choose drive 'A:' - don't forget: After selecting the .flp image you also have to connect the drive. Otherwise Windows cannot read the device.
Click on 'Next' and after a few seconds the hard disk will be found. The currently available drivers for Windows Server 2003 seem to work fine also for Windows Server 2008.
Installing the VMware Tools might be a good idea. You can find the image at /usr/lib/vmware/isoimages/windows.iso or just install them from the VMware management console's menu. While the image is mounted go to 'Device Manager' and install the drivers for the network adapter which probably does not work yet.
Now some tweaking for the IP, gateway and DNS servers and one more step in my master plan achieved.
Got root
Install VMware
Install a Windows Server 2008
- Move my existing site to the new server
In a previous post I told about my master plan after gaining my new root server: Got root - Install VMware
- Install a Windows Server 2008
- Move my existing site to the new server
After almost 16 hours my request for my own RIPE subnet was approved. Now I can concentrate on the next point: Installing VMware. Since I want to set up this machine for virtualization I have to perform a few steps first. That way, this post will be mostly about my fight with Debian Linux which is the host system. After logging in, I just realize that updating the package database might not the worst idea. Consequently I do so and install some Norton Commander like tool for real men apt-get update apt-get install mc This actually makes things much easier. Now, I have to activate IP forwarding in /etc/sysctl.conf by the adding net.ipv4.ip_forward=1 and bringing the additional IP on the host system by adding up ip add 192.168.1.1/29 dev eth0 to /etc/network/interfaces. Additionally, I have to add some host-route (by using my gateway 192.168.0.1) so my new subnet is reachable by adding pointopoint 192.168.0.1 to eth0 in /etc/network/interfaces. Installing iproute by a apt-get install iproute restarting the interface by calling /etc/init.d/network restart finally makes my IP ping-able. Quite a fight so far if you don't do this on a regular base. Additionally I installed the powersaved package and reconfigured several settings to increase the performance in /etc/powersave. I just got the tip to put my virtual machines to the separate disc. Since I have one spare 400GB disc. I have to create some partition and to format it. cfdisk /dev/sdb mkfs -t ext3 /dev/sdb1 Let's create some directory for the virtual machines and mount the disc mkdir VMs
mount -t ext3 /dev/sdb1 /Vms
Now some final tweak at /etc/fstab by adding /dev/sdb1 /VMs et3 defaults 0 0 and I am done. Finally I start installing the VM. I was pointed to some German How-To written by Till Brehm which is includes quite detailed instructions. Some prerequisites are required before I start. I do the required 220 MB update by apt-get install linux-headers-`uname -r` libx11-6 libx11-dev x-window-system-core x-window-system xspecs libxtst6 psmisc build-essential VMware can be downloaded from http://www.vmware.com/download/server/. I skip the management console since I will use it on my Windows workstation and focus only on the server and management interface binaries using: wget http://download3.vmware.com/... tar xvz VMware-server-*.tar.gz cd vmware-server-distrib ./vmware-install.pl Now, I simply accept the defaults for the following installation. only at one point I had to tell the script that my virtual machines will be located at /VMs. No I have to continuing with the management interface tar xvfz VMware-mui-*.tar.gz cd vmware-mui-distrib ./vmware-install.pl The Web-based managmeent interface seems to work perfectly after installing. After installing the management console on Windows I run into some trouble. During compilation of the corresponding modules, the VMware script was not able to start the inetd service. Therefore, I was not able to connect to the VMware server. After restarting the service manually it worked perfectly and I set up my virtual machine. So far, I've reached the next level of my master plan. Got root Install VMware Install a Windows Server 2008 Move my existing site to the new server Now I have to copy the installation files for the Windows Server 2008.
Sometimes it is maybe necessary to bring some order into your unit tests in Visual Studio. Indeed, this is not really the idea of unit testing, however it might be necessary for a variety of reasons. Facing this issue, I had to search the MSDN documentation for a while.
I was desperately looking for some syntax like: [TestMethod(Order = 1)]
However, the only way to bring some order in your tests is, by creating some ordered tests in addition to your unit tests.
To do so, you first create a set of unit tests. In my case, some of the tests should be only executed after other run successfully. Otherwise the result might look like:
Now we create a new test project called Order Test:
When opening the project you actually can arrange the order of the previously written unit tests:
Running the test then is possible by selecting the test from the Test View window. Your tests will actually only appear as one entry in the list but you will see that all the selected tests run successfully - in the correct order.

Today, Daniel helped my to solve a long standing miracle. For some unknown reason, Vista decided not to support hibernate on my Toshiba m400 anymore. So what to do: Start the command prompt and type powercfg -H ON. You won't see anything on the screen, but when going back to your advanced power potions you will see both, hibernate and hybrid sleep again. That's all - and you can send your machine to hibernate again. 
Since I read "Design Patterns. Elements of Reusable Object-Oriented Software" by the GoF the very first time in 1999, I am a big fan of patterns at all. Making heavy use of factory patterns such as the Factory Method or Abstract Factory I came along with a useful pattern we call a Declarative Factory. A Declarative Factory is based especially on the Attribute construct in the .NET Framework and allows you to extend new classes with factory capabilities in a zero-effort manner. The idea behind this pattern is to extend your application with new constructs in form of extensions without touching already existing code. This is possible when your extensions are provided by container objects. The key element here is about the new elements which you are not aware in your code yet. This pattern is much like a Abstract Factory, however, there is no need to create a concrete Factory class. Also you add factory capabilities to a new class by only adding the corresponding attribute. First we have a look at the actual container object. Here we tell the container object to provide factory capabilities to create ConcretePrototype instances. The FactoryContainer can be any class we are using within our application, as example this could be a sub-class of ListViewItem in a WPF-based application. [DeclarativeFactory(typeof(ConcretePrototype))]
public class FactoryContainer { }
The declaration of the ConcretePrototype is also straightforward. The IPrototype is the common interface for all prototypes that can be created by the Declarative Factory. If this pattern is applied to a WPF-based object this could also something like a DependencyObject or a FrameworkElement. In this case the DeclarativeFactory cold provide factory capabilities for the corresponding types. public class ConcretePrototype : IPrototype
The attribute itself looks as following:
The magic now, lies in the way how to invoke the factory method provided by the Declarative Factory. FactoryContainer container = new FactoryContainer();
DeclarativeFactoryAttribute[] a_attrib =
(DeclarativeFactoryAttribute[]) container.GetType().GetCustomAttributes( typeof(DeclarativeFactoryAttribute), true);
IPrototype prototype = a_attrib[0].Create() as IPrototype;
You just resolve the factory attribute and call the factory method. Very easy, isn't it? However, you have to keep a few things in mind about this pattern. First of all, it makes no sense if you already know about the class you want to instantiate. So, there is absolutely no reason to apply the Declarative Factory to the class itself. In this case you should definitely stay with common patterns such as the Factory Method. If you are going to make you project extensible where new types are provided through container objects this pattern appears to be very handy .
You can download the example source code for this pattern (under MS-Pl) at CodePlex [1].
[1] http://www.codeplex.com/declarativefactory
Sometimes, simple things end up as epic battles. If you try to MSN Search and Google for the nasty "You have create a Service" page for IIS hosted WCF services, you will and up with a lot of pre-release information and noise in the search results. Actually, you might spend days in finding some relevant information. Yesterday, I was finally pointed to the right place in the MSDN documentation [1] where you can find this specific information: <serviceDebug httpHelpPageEnabled="Boolean"
httpHelpPageUrl="Uri"
httpsHelpPageEnabled="Boolean"
httpsHelpPageUrl="Uri"
includeExceptionDetailInFaults="Boolean" />
With the serviceDebug tag it should be possible to get rid of the page. It is easy to find as long as you know you have to search for HTML help page.
[1] http://msdn2.microsoft.com/en-us/library/ms788993.aspx
The new Web Programming Model [1] of WCF and the .NET Framework brings some very useful features such as the WebGet and the WebInvoke Attribute and the capability to deal directly with HTTP requests. But how do we access the HTTP request in these methods? Dealing with HTTP requests and responses using the System.Net namespace is quite straight forward. Therefore, we have a look in sending and receiving a simple HTTP request: HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(myUrl); byte[] a_dataBytes = Encoding.UTF8.GetBytes(data); request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = a_dataBytes.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(a_dataBytes, 0, a_dataBytes.Length);
WebResponse response = request.GetResponse();
StreamReader responseReader =
new StreamReader(response.GetResponseStream(), Encoding.UTF8);
var content = responseReader.ReadToEnd();
Now we want to access the HTTP context within a operation with the following signature: [OperationContract]
[WebInvoke(Method = "PUT", UriTemplate = "{uri}")]
bool Put(string uri);
Accessing the context of the incoming request is straightforward using the WebOperationContext class. IncomingWebRequestContext context =
WebOperationContext.Current.IncomingRequest;
var length = context.ContentLength;
var type = context.ContentType;
var headers = context.Headers;
Since the documentation does not provide many example code, and the ORCAS samples do not cover this yet, I had to figure out how to access the content of the incoming request. After spending hours on MSN Search, Google and the MSDN Library I finally tried out something. In some general examples, either a Message or a Stream is passed over as single parameter to the operation. Hence, I changed the contract as follows: [OperationContract]
[WebInvoke(Method = "PUT", UriTemplate = "{uri}")]
bool Put(string uri, Stream stream);
Reading the content then is easy: var reader = new StreamReader(stream); string content = reader.ReadToEnd();
This solution however comes up with one major drawback: If you try to access your foo.svc via browser you will end up some error telling you "For request in operation Post to be a stream the operation must have a single parameter whose type is Stream.". Also calling foo.svc?wsdl will end up in some exception in the WSDL export extension.
[1] http://msdn2.microsoft.com/en-us/library/bb412169(VS.90).aspx
After switching from WEP to WPA2 (shame on my it took so long), of course I had to update several XP and Vista machines. However, the 360 made most trouble since I used a D-Link 700AP before which was configured as a wireless bridge. Since I run a Linksys WRT54GS as gateway, it seemed to be the easiest way to get a second device of the same kind to be set up as wireless bridge being flashed with an alternative firmware. However, I realized that there is a endless number of devices in this series [1]. After getting the device I had to figure out, the new device is version 7. Due to an change in the manufacturer firmware, the ROM size of the device was continuously reduced. At this time I thought about the fact, getting a WRT54G (which is the old hardware factor and Linux based) might have been the better choice. Now I simply replaced the existing device with version 4 with the new one. and the old one providing 4 MB of RAM became the wireless gateway. There are a couple of alternative firmware projects for the WRT54GS. After reading though a couple of posts in various forums, it seemed that OpenWrt [2] is the best choice. In addition, X-Wrt [3] seemed to be suitable for easy setup. During the setup of OpenWrt I encountered several problems ending up in my router being bricked. So I had to recover the device using TFTP [4] and the original firmware [5]. After several failures and digging a bit more I found more and much better documentation on DD-WRT [6] including documentation for setting up wireless bridges [7]. While v23 does only support WPA2-mixed mode, I switched over to v24 RC4 which finally supports WAP2 Personal. [1] http://en.wikipedia.org/wiki/Wrt54g [2] http://openwrt.org/ [3] http://x-wrt.org/ [4] http://www.dd-wrt.com/wiki/index.php/Recover_from_a_Bad_Flash [5] http://www-de.linksys.com/... [6] http://www.dd-wrt.com/ [7] http://www.dd-wrt.com/wiki/index.php/Wireless_Bridge#WPA-Personal
While charging an iPod on a Windows Vista system without having iTunes installed, you might face the issue that the iPod is not willing to play any music as long as it is charging. Therefore, simply choose Safely Remove Hardware from the Vista task tray. There you select Generic volume and click Stop. In the second dialog do the same, select Generic volume and click Stop. After a few seconds your iPod will re-start and awaiting your commands while it is still charging.
I just surfed on Geekpedia. I did not have a lot of time to look though the site, but is seem as there are tons if interesting articles and information about cool stuff there. So if I find I will seek though their archives for some useful tips and tutorials Source: http://www.geekpedia.com/
I am working on a user interface (UI) for a client tool of our current project. Though, the last two have been a epic battle fighting with a various of minor things. However, each and every of these things does cost a remarkable amount of time.
Starting with WPF many developers will spend mcuh time with skinning in WPF. It's a cool thing, but you should leave these things to designers. It is a enormous time sink. You make huge progress in the beginning but end up with endless fine-tuning in the end. The first have a look at the Windows Vista User Experience Guidlines [1]. The really thing: you don't have to read everything online, just download the 630 pages as PDF document [2]. You will see that skinning should be used carefully. Much more important are some new guidlines to keep in sync with the Vista UI. BTW: if you are looking for the Vista icons you should have a look at [3] (but I haven't told you that and so use them only to inspire you by creating own icons).
Well, what's about the cool stuff such as the new Command Link in Vista? Should be a new control? Well, not that easy. Daniel Moth found out [4] to check the Vista Bridge Samples [4] comming with the Windows SDK. you should go definitely for the Windows SDK Update for Vista [6]. Daniel also gives a first impression how to use the TaskDialogs provided by the VistaBridgeLibrary [7].
Now you will definitely run into trouble if you don't create a manifest file for you application using the following dependency:
<dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency>
In my case I also had to use strong-named assemblies since they are used within VSIP [8] packages. You will realise that the VistaBridgeLibrary uses friendly assemblies, Junfeng gives a short introduction into friendly assemblies at [9]. You'll discover that is not as easy since there have been some changes in Visual Studio 2005. Adrian figured out how it works at [10]. David cover's the further steps in [11] and also provides a small tool to obtain the public key token of a signed assembly ready to be copy 'n' pasted into your Assembly.cs file.
[1] http://msdn2.microsoft.com/en-us/... [2] http://download.microsoft.com/download/... [3] http://www.istartedsomething.com/20060924/vista-fitted-nearly-finished/ [4] http://www.danielmoth.com/Blog/2006/06/vistabridge_12.html [5] http://msdn2.microsoft.com/en-us/library/... [6] http://www.microsoft.com/downloads/... [7] http://www.danielmoth.com/Blog/2006/06/... [8] http://www.microsoft.com/downloads/... [9] http://blogs.msdn.com/junfeng/archive/2004/07/... [10] http://geekswithblogs.net/dotnetrodent/archive/... [11] http://davidkean.net/archive/2005/10/06/1183.aspx
SearchIndexer.exe does all the indexing stuff on your Vista machine. Not bad at all it is not possible to schedule when the indexer is running as it was able using MSN Desktop Search. E.g., there you have been able to send the indexer to sleep for a 10, 20 or 60 minutes or to avoid running the indexer whilst working on the machine. it looks like the only way to calm the machine down is by switching of the service at all. Another work around I am trying right now is to got to Control Panel / Power Options and choosing the High Performance Change power plan settings. There chose Change advanced power settings Search and Indexing values to Power Saver or Balanced. This should lower the indexing effort of the Vista Search significantly. 
"%windir%\Microsoft.NET\Framework\version\aspnet_regiis.exe" -i also works for the latest Framework versions... "After you install the Microsoft .NET Framework Software Development Kit (SDK), Microsoft Visual Studio .NET 2002, Visual Studio .NET 2003, or Visual Studio 2005, Microsoft Internet Information Service (IIS) mappings are created to associate the new file extensions and settings for ASP.NET. If you did not have IIS installed when you ran the SDK or Visual Studio Setup, or if you uninstalled and reinstalled IIS after you ran the SDK or Visual Studio Setup, those settings will not be in place. You experience unexpected behavior when you try to view ASP.NET pages." [1] http://support.microsoft.com/default.aspx?id=kb;en-us;Q306005
Ever stuck in sorting a huge bullet list? One of the 90% unknown Word features found at [1]. The Sort Text command can be used to alphabetize lists instantly. - Type a list of names, pressing ENTER after each name. Your list should look something like:
- Madeleine Kelly
- Brian Cox
- Tamara Johnston
- Select the entire list.
- On the Table menu, click Sort.
- Click Options, click Other, press SPACEBAR and then click OK.
- In the Sort by list, click Word 2, and then click OK.
Now your list looks like this: - Brian Cox
- Tamara Johnston
- Madeleine Kelly
- Repeat steps 1 through 5, but click Word 1 in the Sort by list, and your list will look like this:
- Brian Cox
- Madeleine Kelly
- Tamara Johnston
[1] http://office.microsoft.com/en-us/assistance/HA101154421033.aspx
Due to some unknown reasons, Windows told me synchronizing with my Windows Mobile device was not able anymore. The error message told me some issues with the COM port. For some reason the COM port in ActiveSync was rest to port 3. Using the Toshiba Bluetooth Manager on my m200 I have to reset the port to 7. Afterwards I had to update the partnership on my mobile device. After checking ActiveSync in the Bluetooth settings dialog for the specific device, the Bluetooth connection worked again. 
Why (and how) IE is restricted in simultaneous DLs is described in the knowledge base [1]. "WinInet limits connections to a single HTTP 1.0 server to four simultaneous connections. Connections to a single HTTP 1.1 server are limited to two simultaneous connections. The HTTP 1.1 specification (RFC2616) mandates the two-connection limit. The four-connection limit for HTTP 1.0 is a self-imposed restriction that coincides with the standard that is used by a number of popular Web browsers." [1] http://support.microsoft.com/default.aspx?scid=htt...
After getting a licence and re-installing the MAPILap NNTP [1] Outlook plug-in I was kind of frustrated that the plug-in did not work anymore. Basically I found the reason in the registry settings of the tool. There the account was still disabled since I have chosen this option during a test installation before [2].
Just delete the folder with the deactivated profile name. After the next start of Outlook the plug-in wizard appears again.
[1] http://www.mapilab.com/outlook/nntp/ [2] http://blog.aheil.de/MAPILabNNTPForOutlook.aspx
"I know what to do, and how to solve the problem, but I do not know the bloody API." - I just met the guys implementing the Krugle [1] search engine over here at ICWE 2006. And it does work quite well.
[1] http://www.krugle.com
Having trouble to create a A1 poster out of a PowerPoint Slide? Is the bottom of the poster messed up? Mirko [1] got the solution: Actually it does not matter what page size you choose for the PowerPoint slide. Print first a A4 (or maybe Letter) PDF. This usually works quiet fine. Then open the A4 PDF and re-print it to A1. In many cases this shall help.
[1] http://www.ipvs.uni-stuttgart.de/abteilungen/ks/abteilung/mitarbeiter/mirko.knoll/en
Today I decided to pimp my Tablet PC somehow. The first I pushed the available RAM of the Toshiba M200 to the absolute limit of 2GB. Finally I decided against a second Samsung M40L2923 [1] module. Instead I use a 1GB DIMM-S0 Infineon module [2].

Still not satisfied, I wanted to update my BIOS to the current BIOS version 1.7 [3]. This sound pretty easy while Toshiba offering a windows-based update utility [4] if you do not have any disk or DVD drive available. Anyway some issues appeared:

If you search for a while, you'll find that the problem is well known and described in this technical support bulletin [5]. All you have to do is downloading the Toshiba Utilities [6] to make the missing dlls available. Beside the installation of the BIOS some more utilities are available, too.

After starting the update utility again, the system need only a few seconds, until reboot. The after logging into the system the tool is finishing the (un-)installation for a few seconds. After that everything works properly again.

[1] samsung.com [2] infineon.com [3] http://www.toshiba-tro.de/subpage/bios.html [4] http://support.toshiba-tro.de/tools/bios/portege/pm200/win/bios-pm200-170win.zip [5] http://support.toshiba-tro.de/kb0/TSB5100TC0007R01.htm [6] eu.computers.toshiba-europe.com
While playing with Indigo I spend several hours on duplex services and clients finally leading to an annoying issue. I tried two different examples, one from the book Programming "Indigo" and another one from the WinFX SDK documentation [1]. In both cases I spend hours writing down all the code, e.g. the examples in the book do not fit with the current release of the WCF anymore. So some minor fixes have been necessary. Having both examples I tried to start the clients, but they did not receive any response from the service. If you are patient enough (which means waiting 5 to 10 minutes) the client will result in a ChannelConnectException.

What is wrong? Bindings? Any mistake in the XML config-files? The solution is as simple as it could be: Just right-click the web site in the solution browser and choose Start Options...

Uncheck NTLM Authentication which is checked by default and restart your service and client.

After restarting the service and the client, the client is processing, the service is responding and the Quick Console shows the expected output:

[1] winfx.msdn.microsoft.com
Have you realized already this cool feature in Visual Studio 2005?

If you write down some interface or class names which do not exist yet, they appear in black (as long as you still use the default settings for the editor). As soon as you write down the appropriate class or interface the color changes from black to light blue. Why this is cool? It makes it pretty easy to find typos in your code right before compiling. If you see such code not in the appropriate color, either you have a typo in its name or the class or the interface is not implemented yet. It makes a lot of sense when you write down code but the implementation of a class or interface is not yet available because it is written by another person. It's a nice feature in VS 2005.
While writing papers, there are some really usefull hints you must know. If you write down topics, usualy it's a royal pain on your back always to grap the mouse to choose the Heading 1 formatting. Just press [Ctrl]-[Alt]-[1] to [Ctrl]-[Alt]-[3] to mark the lines as a heading. Unfortunately this doesn't work for Heading 4.
Another great thing is the rand macro. Sometimes it is usefull to have some arbitrary text betwwen all the headings which make the structure of you document. Just type in =rand() for some paragraphs of text or =rand(2) if you want exact two paragraphs. Of course you can choose any other number as well.
Word provides you some text to fill your empty space:
The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.
IIS is not willing to start anymore. At least in the Microsoft Knowledge Base [1] you can find a hint for this problem. So first, I thought it could be all the beta WinFX and Indigo stuff, I have installed on my machine. Finally I found the reason: Skype grabed port 80. After closing Skype I was able to restart the IIS.

[1] http://support.microsoft.com/default.aspx?scid=kb;en-us;816944
I found a overview of international system unit prefixes [1]:
Factor Name Symbol Origin Derivation 2^10 kibi Ki kilobinary: (2^10)^1 kilo: (10^3)^1 2^20 mebi Mi megabinary: (2^10)^2 mega: (10^3)^2 2^30 gibi Gi gigabinary: (2^10)^3 giga: (10^3)^3 2^40 tebi Ti terabinary: (2^10)^4 tera: (10^3)^4 2^50 pebi Pi petabinary: (2^10)^5 peta: (10^3)^5 2^60 exbi Ei exabinary: (2^10)^6 exa: (10^3)^6
Examples and comparisons with SI prefixes one kibibit 1 Kibit = 2^10 bit = 1024 bit one kilobit 1 kbit = 10^3 bit = 1000 bit one mebibyte 1 MiB = 2^20 B = 1 048 576 B one megabyte 1 MB = 10^6 B = 1 000 000 B one gibibyte 1 GiB = 2^30 B = 1 073 741 824 B one gigabyte 1 GB = 10^9 B = 1 000 000 000 B
[1] http://physics.nist.gov/cuu/Units/binary.html
Ups, I've done it. It's fubar [1] now.

However it's possible to send an error report using the errorreport switch: csc *.cs /errorreport:prompt

Actually I found why the compiler screw up. I use a lot of plattform invokes and because I am lazy I use a constant with the library name.
private const string LIB = "MyNativeDll.dll";
[DllImport(LIB)] //...
While changing the code, I removed the const modifier by accident, which causes the compiler to fail...
[1] dict.tu-chemnitz.de [2] msdn.microsoft.com
If you write managed code using P/Invoke, sometimes you have to handle structures returnd by the called methodes. These MSDN articles about marshalling structures [1] and the StructLayoutAttribute class [2] should provide enought information to do so.
[1] msdn.microsoft.com [2] msdn.microsoft.com
This table took me a few minutes, but will save me hours.
| Windows Data Type |
.NET Data Type |
| BOOL, BOOLEAN |
Boolean or Int32 |
| BSTR |
String |
| BYTE |
Byte |
| CHAR |
Char |
| DOUBLE |
Double |
| DWORD |
Int32 or UInt32 |
| FLOAT |
Single |
| HANDLE |
IntPtr, UintPtr or HandleRef |
| HRESULT |
Int32 or UInt32 |
| INT |
Int32 |
| LANGID |
Int16 or UInt16 |
| LCID |
Int32 or UInt32 |
| LONG |
Int32 |
| LPARAM |
IntPtr, UintPtr or Object |
| LPCSTR |
String |
| LPCTSTR |
String |
| LPCWSTR |
String |
| LPSTR |
String or StringBuilder* |
| LPTSTR |
String or StringBuilder |
| LPWSTR |
String or StringBuilder |
| LPVOID |
IntPtr, UintPtr or Object |
| LRESULT |
IntPtr |
| SAFEARRAY |
.NET array type |
| SHORT |
Int16 |
| TCHAR |
Char |
| UCHAR |
SByte |
| UINT |
Int32 or UInt32 |
| ULONG |
Int32 or UInt32 |
| VARIANT |
Object |
| VARIANT_BOOL |
Boolean |
| WCHAR |
Char |
| WORD |
Int16 or UInt16 |
| WPARAM |
IntPtr, UintPtr or Object |
It usually takes ages until I find the page with the format strings on MSDN. So here's a short note, not to forget it.
C or c Currency D or d Decimal E or e Scientific (exponential) F or f Fixed-point G or g General N or n Number P or p Percent R or r Round-trip X or x Hexadecimal
[1] msdn.microsoft.com
The current iteration release of NUnit 2.2.2 [1] should work fine with assemblies build in Visual Studio .NET 2005. Nevertheless some problems occur after installing Visual Studio .NET 2005 Beta 2. Check out the installation folder of NUnit, usually C:\Program Files\NUnit 2.2.2\bin. Here you should modify the file nunit-gui.exe.config.
<startup> <supportedRuntime version="v2.0.50215" /> <supportedRuntime version="v1.1.4322" /> <supportedRuntime version="v1.0.3705" /> <requiredRuntime version="v1.0.3705" /> </startup>
The version of .NET 2.0 on your system is slightly different due to the installation of Visual Studio .NET Beta 2.
[1] http://www.nunit.org/download.html [2] http://lab.msdn.microsoft.com/vs2005/default.aspx
I need this so often, but every time I forget, how it works (from Visual Studio Help).
Project Folder Not Secure Dialog Box
You attempted to create a project on a UNC path. By default, a UNC path is not a trusted location for a project. Your project may not run correctly when you attempt to debug or run from this location. For more information, see Configuring Security Policy.
The following tools modify the policy affecting the file share.
- .NET Framework Configuration Tool (Mscorcfg.msc)
- Code Access Security Policy Tool (Caspol.exe)
Mscorcfg.msc
One simple way to modify the policy affecting a file share is to give a specific file share FullTrust permission using mscorcfg.msc. You must be an administrator on the computer to make this change.
To give a file share FullTrust permission
- Start mscorcfg.msc.
- Expand the Runtime Security Policy node, the Machine node, the Code Groups node, the All_Code node, and then highlight the LocalIntranet_Zone node.
- In the right pane select Add a Child Code Group.
- Choose Create a new Codegroup and enter a name for the code group, then click Next.
- Choose a Condition Type of URL, then enter the UNC path to the share location of your project, using the format file///\\servername\sharename\* where \\servername\sharename is the name of the share. Click Next.
Note Make sure to add the asterisk at the end of the path.
- Choose Use Existing Permission Set of FullTrust, then click Next.
- Click Finish.
- Restart Visual Studio.
Caspol.exe
Using caspol.exe to accomplish this change, you would use the following command line (you must be an administrator on the computer to make this change.): caspol -m -ag 1.2 -url urlname FullTrust
See Also
Configuring Security Policy
Hat man ein ArrayList und will die darin gespeicherten Integer-Werte in ein Array auslesen, klappt dies in C# ganz umständlich aber zuverlässig mit folgendem Befehl:
int[] args = (int[]) arrayList.ToArray(typof(int));
Leider kann man .NET Applikationen nicht ohne weiteres von Desktop Systemen auf Comapct Framework basierte Systeme kopieren. Das CF unterstütz nicht den vollen Umfang des .NEt Frameworks. Zwei Probleme die bei der Portierung multi-thread-fähiger Applikationen auf das CF auftreten können werden im folgenden gelöst:
Die erste Falle lauert im Aufruf
System.TimeSpan yield = new System.TimeSpan(10); System.Threading.Thread.Sleep(yield);
Das CF unterstütz den Sleep-Aufruf nicht mit einerm TimeSpan Struct als Paramter. Ein Integer ist hier die Lösung und im Handumdrehen implementiert:
System.TimeSpan ts = new System.TimeSpan(10); int yield = ts.Milliseconds; System.Threading.Thread.Sleep(yield);
Spannender wird es beim Aufruf der WaitOno-Methode. Diese wird im CF lediglich ohne Paramter unterstützt. Wer neben dem externen Signal auf einen timeout wartne möchte, kann dies lange tun. Eine einfache Möglichkeit bietet ein PInvoke-Aufruf:
[System.Runtime.InteropServices.DllImport("CoreDll.dll")] private extern static System.Int32 WaitForSingleObject( System.IntPtr Handle, System.Int32 Wait);
Jetzt kann der Aufruf
foo.WaitOne((int)((bar - System.DateTime.Now.Ticks), false);
durch folgenden Dreizeiler ersetzt werden:
System.IntPtr hProcess = foo.Handle; System.Int32 iWait = (int)((bar - System.DateTime.Now.Ticks)); WaitForSingleObject(hProcess, iWait);
Kompilieren, auf das mobile Gerät kopieren und wieder ist ein Tag gerettet.
Ein Fehler wie folg popt plötzlich bei dem Kunden hoch: und dieser ist recht erstaunt, denn vor 5 Minuten hat die Applikation ja noch einwandfrei funktioniert.  Nach dem ersten Schreck sehen wir als erfahrener Entwickler, dass der Fehler eindeutig in der Konfigurationsdatei liegen muss!  Ja, sieht ja ganz gut aus. Und der Connection String, der vor 5 Minuten vom Kunden angepasst wurde scheint auch zu stimmen. Eine Test-Applikation kann sich mit dem angegebenen String ohne Probleme verbinden: Von Hand geht das auch, das XML ist wohlgeformt, um nicht zu sagen, ein besseres XML gibt es auch der weiten Welt nicht! Na, den Fehler schon gefunden? Nein? Dann mal hierher schauen:  Na, jetzt ist es doch klar, oder? In der Tat, benötigt man nicht mehr als diese beiden kleinen Ausschnitte um den Fehler zu finden: Das Schöne am Arbeiten mit XML Dokumenten ist, dass man die Dokumente Formatieren kann wie man möchte, ob man jetzt 2 oder 4 Whitecaracter einrückt, oder ob man den Tabulator verwendet ist egal... und wenn einmal ein Leerzeichen zwischen den Tags steht, nun denn, das fördert die Lesbarkeit des Dokumentes. Mit einer Ausnahme: Vor dem <?xml darf nun mal KEIN Leerzeichen stehen, sonst wird das Dokument falsch geparst. Zu blöd, dass der Kunde beim “ndern der config-Datei versehentlich ein Leerzeichen hinzugefügt hat. Nunja, da der Kunde diesn un weiß, erkennt er auch den, wen nur marginalen Unterschied in den obigen Bildausschnitten...
|
|