1:53:17 PM
Sometimes it would be nice if we could use SETLOCAL and ENDLOCAL to preserve the initial environment but still change one variable "permanently", in the SORTDATE and SORTTIME examples, for example. I recently saw a posting at the alt.msdos.batch.nt newsgroup where Phil Robyn solved this problem in an ingenious way:
This way the environment variable TEST and its value are preserved in spite of the ENDLOCAL command.SET TEST=
SETLOCAL
:: Variable test is set within local environment, which means
:: its changes are flushed by the next ENDLOCAL command
SET TEST=Some new value
:: By using the ampersand and the following SET command on the
:: same line as the ENDLOCAL command, %TEST% is resolved before
:: the ENDLOCAL command "restores" its value
ENDLOCAL & SET TEST=%TEST%
SET TEST
See my Conditional Execution page for an explanation of the ampersand's usage
2:21:18 PM
Here are some popular IP addresses:
Microsoft - 207.46.245.92
E-bay - 66.135.208.89
Google 64.233.187.104
Amazon 207.171.175.35
PayPal - 216.113.188.66
CitiBank - 192.193.210.24
Also, here is a DNS tool for converting addresses from the www. form to the IP number: http://www.ndo.com/servlets/dominfo. Regarding IP address, please note that if a site is addressed by a server company rather than on its own server, you may not be able to reach the address just by putting in the IP number. For instance, if you convert my company's web address (www.keystonecomputerconcepts.com) to an IP # (38.113.20.12) and then try to go directly to the site using the IP number, you get an error page. That's because we are hosted by a server hosting service.
Post by: johnnybluenote on 02/23/05 CNet article discussion: Alarm over pharming attacks: identity theft made even easier
8:36:18 AM
7:03:28 PM
This tactic can make getting past this section quicker on legendary. Run up to the doorway and simply hose down the Covenant with continuous fire from dual plasma rifles. This kills most of the grunts (especially when they're still in the boarding tube) and knocks out the elites' shields so your marines can finish them off. Duck back through the doorway whenever your shields get too low or a grenade comes your way. After the last wave, you'll probably have a few elites left, but you can deal with them the normal way. As a bonus, you have ALL the grenades at your disposal. [by Eric Hartwell]
Also, see Cairo Station Legendary Walkthrough for other hints for this level, and Halo 2 Legendary Tactics & Walkthrough for general Legendary hints.
10:57:44 AM
This tactic can make getting past this section a lot easier on legendary. When you walk into the room, go to the right, into the room and up the stairs. K[ill] the Grunts on the turrets, then look for a crate next to one of the guns. Choose the gun you want to man (preferably facing the enemies), and melee the box directly behind it. Try to position the gun in the center of the box. Now, press X to man the turret. You should go into the box, and be sticking partially out, but still able to aim and shoot. In this position, so long as you positioned the box well, the Covenant won't see you, even as you fire the turret at them. [Halo 2 Trick FAQ by Kyle Barr].
Also, see Cairo Station Legendary Walkthrough for other hints for this level, and Halo 2 Legendary Tactics & Walkthrough for general Legendary hints.
8:22:10 AM
[QuickBase Support Center KnowledgeBase Article #74]
- UPS: http://wwwapps.ups.com
/etracking /tracking.cgi ?tracknum=[Tracking #]&accept_UPS_license_agreement=yes&nonUPS_title=QuickBase%20Package%20Tracking%20System - FedEx:
http://www.fedex.com =[Tracking #]/cgi-bin /tracking ?action=track&language=english&cntry_code=us&initial=x&mps=y&tracknumbers - FedEx Ground:
http://www.fedex.com =[Tracking #]/cgi-bin /tracking ?action=track&language=english&cntry_code=us&initial=x&mps=y&tracknumbers - Fedex Freight:
http://www.fedexfreight.fedex.com = [Tracking #]/protrace.jsp ?as_type=PRO&emailfax=&as_entryPage=Pro%20Number&as_pro
11:53:00 AM
4:31:09 PM
9:20:57 PM
Export HTML Data into Excel Files
Nowadays, many reports are generated as HTML documents for access on the Web. This tip shows you how to export that HTML data as it is (including all the CSS styles, tables borders, etc.) into an .xls file which can be saved and used as you need it. Include the following code in the .jsp page that generates the report/HTML page:
String mimeType = "application/vnd.ms-excel";
response.setContentType(mimeType);
The output is transferred to an .xls document.
Please Note: Microsoft Excel must be installed on the client's computer for this to work.
By MS Sridhar SridharMSmail@yahoo.com
8:44:02 AM
One thing that I would like to enforce in my unit tests are constraints. Examples of constraints are things like read-only properties and sealed classes. If a developer comes along and removes one of those constraints by making the property read-write, or by unsealing the class, those changes are not detectable by simply recompiling the code.
One way to enforce constraints is to write unit tests that assert their existence. To help folks out, I've written the beginnings of a utility class that can be used with NUnit tests. Here's the source code for that class for folks who are interested. Feedback about these ideas would be greatly appreciated.
Public Class AssertEx : Inherits Assertion
Public Shared Sub AssertReadOnlyProperty(ByVal t As Type, ByVal propertyName As String)
Dim pi As PropertyInfo = t.GetProperty(propertyName)
Assert(String.Format("Read-only property {0} in class {1} cannot be read from",
propertyName, t.FullName), pi.CanRead)
Assert(String.Format("Read-only property {0} in class {1} can be written to",
propertyName, t.FullName), Not pi.CanWrite)
End Sub
Public Shared Sub AssertWriteOnlyProperty(ByVal t As Type, ByVal propertyName As String)
Dim pi As PropertyInfo = t.GetProperty(propertyName)
Assert(String.Format("Write-only property {0} in class {1} can be read from",
propertyName, t.FullName), Not pi.CanRead)
Assert(String.Format("Write-only property {0} in class {1} cannot be written to",
propertyName, t.FullName), pi.CanWrite)
End Sub
' TODO: Implement a visibility property assert - must be internal for example. need to use GetAccessors()
' and assert visibility based on property get/set method visibility
Public Shared Sub AssertNotInheritableClass(ByVal t As Type)
Assert(String.Format("Class {0} cannot be derived from", t.FullName), t.IsSealed)
End Sub
Public Shared Sub AssertNonSerializable(ByVal t As Type)
Assert(String.Format("Class {0} cannot be serializable", t.FullName),
Not t.IsSerializable)
End Sub
' TODO: Assert that a class must be abstract
Public Shared Sub AssertNotCreatable(ByVal t As Type)
Dim cis() As ConstructorInfo = t.GetConstructors()
Dim ci As ConstructorInfo
For Each ci In cis
Assert(String.Format("Non-private constructor found in a class {0} that must not be creatable",
t.FullName), ci.IsPrivate)
Next
End Sub
End Class [iunknown.com]11:42:05 AM
8:39:19 PM
7:56:47 AM
- http://www.fu2k.org/alex/css/layouts/3Col_OrderedAbsolute.mhtml (configures tables)
- http://www.csscreator.com/version1/
- http://nide.snow.utoronto.ca/css/
- http://www.cathyjenkins.com/downloads/css.html
- http://www.xmldir.de/quickcss/
- http://www.inknoise.com/experimental/layoutomatic.php
- http://www.wannabegirl.org/firdamatic/
9:24:54 AM
8:23:12 PM
8:34:22 AM
Ingenious email-harvester honeypot. Merlin Mann outlines an ingenious procedure for identifying spammers' email-harvesters' IP addresses and user-agents: In each page I serve, I include a bogus email address, encoded with the date of access as well as the host IP address and embedded in a comment. [Apache's server-side includes are great!] This has allowed me to trace spam back to specific hosts and/or robots. One of the first I caught with this technique was the robot with the user agent "Mozilla/4.0 efp@gmx.net", which always seems to come from argon.oxeo.com - it's identified it above as simply rude.
8:22:27 AM
2:51:28 PM
6:51:53 PM
Prevent unauthorized software on your network with software restriction policies Windows Server 2003 gives you more power than ever before, including the power to control installed software on workstations. Here's a look at how you can use software restriction policies to keep unauthorized software off your network.
7:53:42 AM
8:39:00 PM
Changing the product key on Windows XP Changing a Windows XP product key doesn't always require a complete reinstallation of the OS. We'll show you how to get the job done by editing the registry or using a Microsoft WMI script.
8:29:04 PM
free XML SOAP Monitor
free Authentic 5 XML document editor
8:23:13 PM
4:21:49 PM
iCarbon v2.1.3 {free personal copier} Combine the printer and scanner into a photo copier using iCarbon, which works with TWAIN-compatible scanners. The utility makes the scan/print operation work with one click. After installing, the program immediately and accurately recognized my printer and scanner. The preferences offer inverted image printing. The simple interface displays options for the number of copies, zoom percentage, quality, contrast, and type of copy (RGB, for example). The printer prints the image from the scanner or the Webcam. If you're in a hurry to get a printout of a picture, this takes a two-step process and combines it into one.
4:19:06 PM
6:30:36 PM
Freesco is an open source router/firewall solution with small hardware requirements and minimal administrative overhead. It's perfect for your small IT budget. Find out how to get it up and running.
8:55:35 PM
11:42:45 AM
MSDN Licenses are Perpetual
The licenses for the tools inside your MSDN Subscription are licensed to you for development and test purposes in perpetuity . This means that even if your subscription were to expire, you can still use the tools for development and test purposes, for ever. To learn more about how to become an MSDN Subscriber visit the MSDN Subscriptions Centre.
11:35:34 AM
Panicware's Pop-Up Stopper Free Edition
11:33:00 AM
Free up taskbar space with 4t Tray Minimizer, which minimizes applications as system tray icons instead of buttons on the taskbar. Minimize any open application to the system tray instead of the task bar by right-clicking the minimize button (in the upper right hand corner of applications, there are three buttons: minimize, reduce, and close). Hide any application without displaying its icon in the system tray and restore it by using a list of hidden applications in the Main Window of the program. The program also has the ability to create a Quick Launch style menu for your favorite (or more often-used) applications. Although you can use Quick Launch elsewhere, this may be easier for some to use as opposed to the built-in Windows Quick Launch. It does come with customized keyboard shortcuts. When you start using the program for the first time, it starts with an optional step-by-step tutorial. The free version doesn't store customized settings or come with technical support, however. [Lockergnome Windows Daily]
10:50:45 AM
Admins often need to copy and rebuild exact replicas of system configurations--especially in a testing network. VMware makes it quite simple to transport complete system configurations of virtual machines.
9:40:58 AM
9:58:47 AM
Q. How can I change the product key when I activate my Windows XP installation?
When you install XP, you must enter a product key to register the software with Microsoft. However, if you want to use a different key to activate the software after installation (e.g., maybe you originally used an existing key during installation and have since purchased a new license), perform the following steps:
- Start the activation process as usual (go to Start, All Programs, Accessories, System Tools, then select Activate Windows).
- Click "Yes, I want to telephone a customer service representative to active Windows", then click Next.
- Click the "Change Product Key" button.
- Enter the new key, then click Update.
- Click Telephone, then continue with the activation.
8:20:44 PM
10:05:26 PM
Hekko Virtual CD v1.02 [1.2M] W2k/XP FREE Hekko Virtual CD enables you to create a virtual CD-ROM drive on your PC, which allows you to play CDs without having to insert the actual disk. This not only eliminates the need to switch disks frequently, but also increases the performance of games, since the hard drive can usually be accessed much faster than the CD. Hekko Virtual CD works with most games, music or software programs. You can image as many CDs as you need and the load the virtual image into the drive by using the tray icon. The program uses HekkoScan(tm); nearly any CD can be imaged and played. [MWA] [Lockergnome Windows Daily]
7:13:15 AM
7:34:40 PM
The Matrix Codebreaker. Remember The Matrix, when they do the phone trace and the numbers keep scrolling until the correct number is found? This script randomly chooses the numbers until the correct one is chosen. A cool way to display your messages. [WebDeveloper.com]
9:27:37 AM
MyIE2 Online v0.7.829 beta [657k] W9x/2k/XP FREE {Internet Explorer multi-page browser} Netscape has it. Mozilla has it. Opera has it. Internet Explorer does not have it. What is it? Tabbed browsing. The nice thing about tabbed browsing is that you have only one window open for multiple Web pages instead of one Window per Web page. The MyIE2 interface is similar to the Internet Explorer interface and adds the opened Web sites just beneath the address box. It also comes with its own options separate from IE's where you can select options for filtering popups, windows, favorites, tab appearance, and plug-ins. It also adds a few more system icons such as auto-scrolling, undo, and utility manager. There are two "x" icons, one for closing the current window and the other for closing all windows. Microsoft should adopt this feature; with all other browsers doing it, the company is bound to copy it and add some of its own proprietary stuff to it. If the download or Web site is slow, go to WebAttack for a faster download. [Meryl] [Lockergnome Windows Daily]
9:25:29 AM
EIF Releases With absolutely no fanfare, Enterprise Instrumentation Framework has released. EIF lets you instrument your applications with tracing information that's meant to be left in while the application is in production. Tracing can be turned on and off, and directed to various sinks, simply by modifying a configuration file at run time. You can trace user operations, class operations, requests as they travel through a distributed application, or just about anything else you can imagine. Check it out. MSDN Subscriber Downloads | Content | Developer Tools | Enterprise Instrumentation Framework.[Sean 'Early' Campbell & Scott 'Adopter' Swigart's Radio Weblog]
9:24:35 AM
8:40:05 AM
Allan Kelly wrote in and reminded us of a great tip on how to speed up your Windows XP start up times. Just clean out your prefetch folder. Windows XP keeps track of your frequently used programs and sets them up so that they start up faster. However, sometimes a lot of junk gets into the prefetch folder and can slow things down. Try this:
- Open the Windows Explorer and go to c:/WINDOWS/Prefetch folder.
- Click the View menu and then click the Select All command. This should highlight all the files in the folder. Once all the files in the Prefetch folder are selected, press the DELETE key on the keyboard to delete these files. Click Yes to send the files to the Recycle Bin.
- Restart your computer. You should find that Windows XP starts a lot faster!
WinXPnews™ E-Zine Tue, Apr 15, 2003 (Vol. 3, 15 - Issue 71)
Client Statistics Version1.0. This script shows a user his/her statistics, including IP, autoexec.bat, the C: Drive on Windows, the User Agent, Browser Statistics and more. [WebDeveloper.com]
Quick Mail. This applet allows you to add email forms directly on your web pages. The applet connects to the SMTP daemon on your server and sends e-mails without of any CGI on the server. This feature makes it ideal for all kind of users. [WebDeveloper.com]
Sparky. Sparky displays the shape of an image using animated, glittering stars. Both the image and the shape of the star can be modified. Because of the complexity of the visual effect, the applet precalculates the images of the animation into the memory. [WebDeveloper.com]
InternetWeek.com: Review: Open-Source Software Accurately Sorts Your Mail. "POPfile is a proxy that functions as an intermediary between any POP3 mail client, such as Eudora or Outlook Express, and your POP3 mail server..." [Linux Today]
There are a number of really cool utilities that I really can't live without, and I thought I'd gather them here to generate a bit of discussion. In the Windows corner:
Dave's Quick Search Deskbar. This is by far the coolest utility that I have ever used. I haven't used anywhere near all of its features, but here's a list of the ones that I use often:
- Typing in arbitrary text will search for that text using Google
- amaz search terms /books will search for the search terms in the books section of Amazon
- fedex tracking number will check the status of a fedex shipment
- radix number will display that number in octal, hex, and binary
- 0xhex= will convert a hex number to decimal
- num1 op num2= will act as an inline calculator
There's tons of other features that I haven't used yet. Best of all, it's free!
Popup Stopper. I can't surf without this free utility that effectively blocks popup ads from appearing. However, there are times when it blocks legitimate applications, so you need to remember to turn it on and off as well.
Windows command completion. This lets you complete directory paths / filenames by pressing the tab key in a command shell. For example you can type "c:\Pro" and then hit the tab key to get "c:\Program Files" in the command prompt. This feature is enabled by default in fresh installs of Windows XP. For those of you who don't have this feature turned on, use regedit to set HKLMSoftwareMicrosoftCommand ProcessorCompletionChar=0x9.
In the Mac corner:
LaunchBar: This utility lets you use the keyboard to launch applications and open Finder windows. For example, you can type "CMD-Space itu ENTER" to launch iTunes or "CMD-Space /L ENTER" to navigate to open a Finder window for the /Library directory. This saves me a lot of time every day.
MenuMeters: This utility places icons in your Menu bar that shows network activity, disk I/O, memory usage and cpu usage. It's great to be able to see what your computer is up to at all times in a nice and compact UI.
Since I'm new to the Mac world, I'd love to hear about more utilities that you can't live without in the Mac world.
[IUnknown.com: John Lam's Weblog on Software Development]I spent some time this evening googling to see who else is talking about code generation.
This first article by Matt Stephens is a very good overview of the problem space. He motivates the problem well, and motivates why code generation is a good fit. In particular, he spends tie talking about generating the data access layer of an application, an area that I often see as being some of the "low hanging fruit" for code generation. Unfortunately, Matt doesn't provide any concrete examples of code generation in action, which makes his paper feels a bit too abstract.
Next, I found an article that talks about generating code using XSLT. Jeff Ryan walks through a fairly complete sample where he builds a JavaBean component using XML and XSLT. Christian Georgescu wrote a similar article in the C/C++ Users Journal where he talks about generating C++ code from XML and XSLT. I like Christian's motivation part of his article.
Based on my experience, writing a code generator in XSLT is difficult since the syntax of XSLT tends to obscure what the generated code looks like. Maintaining an XSLT-based code generator would be difficult for non-trivial applications. The thing that I really like about gslgen is that the syntax of the code generator is very clean and simplistic. Over the next week or so, I'll publish a few sample code generation scripts using gslgen to illustrate the utility of the technique.[IUnknown.com: John Lam's Weblog on Software Development]
Rechargable battery ur-reference. An amazing reference guide to rechargable batteries, exhaustive and deep without being incomprehensible to non-engineers. Link Discuss (via Gizmodo) [Boing Boing Blog]
The big list.. This is a great list of .NET tools and resources... http://dotnetweblogs.com/FMARGUERIE/Story/4139.aspx [via ShowUsYour-Blog!] This is good enough to parrot, as-is. A lot of these tools are also listed here.[Sean 'Early' Campbell & Scott 'Adopter' Swigart's Radio Weblog]
.NET Tools Links. I just stumbled across a great list of .NET Tools that Fabrice put together.[ScottGu's Blog]
{Video instant messenging} It's your chance to smile for the world using this download, which works with most any Web camera. The trick is that both sides of the conversation need to have MSN Messenger v5.0, a compatible Web cam, and this free software to use it. Luckily, we still had the old, cheap Web cam and we plugged it in. In minutes, Paul and I were having a videoconference / Web chat. [Lockergnome Windows Daily]
They just released a version 3.40 of AIDA32.
By far, it's the best system inventory tool I've ever had the pleasure of using. From hardware to software, it'll tell you everything you never wanted to know about that PC of yours. There's a version small enough to fit on a floppy disk, but even the "big" version weighs in just shy of two megabytes. Forget the rest, folks. This is it. The UI is not without its fair share of quirks, but the utility is quite usable. There's even an integrated SMART tool to help you monitor the health of your hard drives (should they support the protocol). I don't wanna dive into a full-fledged software review, but I thought that this update would be of interest to you. For troubleshooters, it's a godsend. Oh, and it's free for individuals like you and me - did I mention that? Not that it wouldn't be worth paying for, of course. [Lockergnome Windows Daily]
Query Strings for Windows Media Player v6.4 through v9
http://support.microsoft.com/?kbid=315959
{Troubleshooting Windows Media Player} There are switches for using with Windows Media Player to assist in troubleshooting. These switches are added in the form of a query string to the end of a requested URL. For example, the command line starts with: mms://server/content.wmv? After the ?, add the switch with its value. Switches include WMThinning, WMBitrate, WMContentBitrate, WMReconnect, WMCache, WMFecSpan, and WMFecPktsPerSpan. If you want to change the number of times that Windows Media Player will automatically try to reconnect to the content, enter: mms://server/content.wmv?WMReconnect=5. In this case, I am telling it I want it to try five times before giving up. If you don't like your PC to be a quitter, up the number. [Meryl] [Lockergnome Windows Daily]
How to generate a crash report for your application that can be debugged by using WinDbg or VS.NET. (The article and source code were updated.) http://www.codeguru.com/debug/CrashReport.html
Hotmail Using C# -- A HTTPMail Client Under .NET - (.NET/C#)
Learn how to connect to a Hotmail mailbox, enumerate inbox mail items, and send and retrieve e-mail, using C# and the XMLHTTP component. Sample code accompanying this article contains a .NET assembly, demonstrating that connecting to Hotmail via HTTPMail can be as simple as working with any other mail protocol such as POP3, IMAP4, or SMTP. http://www.codeguru.com/cs_internet/HttpMail.html
IE includes seven configuration tabs that you can access either from the Tools, Internet Options menu or from the Internet Options Control Panel applet; The tabs are
- General--Basic options for configuring the home page, temporary Internet file settings, and history
- Security--Settings for configuring Internet security options (e.g., ActiveX options)
- Privacy--Privacy settings for Internet connections
- Content--Settings for Internet connection ratings and personal profile information
- Connections--Settings for configuring dial-up and firewall options
- Programs--Executables used for various Internet programs
- Advanced--Advanced options
You can use Group Policy to disable any of these tabs. First, start Group Policy Editor (GPE) for a specific policy (e.g., from the Microsoft Management Console--MMC--Active Directory Users and Computers snap-in, right-click a container, select Properties from the context menu, select the Group Policy tab, then select Edit). Navigate to User Configuration, Administrative Templates, Windows Components, Internet Explorer, Internet Control Panel. There, you'll see an option for disabling each of the seven tabs.
Automatically Delay Delivery of Messages in Outlook 2000
Do you often find yourself wishing that you could retrieve or change the message you just sent? Well, here's a way that you can delay delivering messages by having them stay in your Outbox for a specified time, so that you can easily change or delete them. If you use Microsoft Exchange Server you can use the Recall Message feature to recall individual messages.
- On the Tools menu, click Rules Wizard, and then click the New button.
- In the Which type of rule do you want to create list, click Check messages after sending, and then click the Next button.
- Click the Next button to have this rule apply to all messages, or, if you want to limit the messages that the rule applies to, in the Which condition(s) do you want to check list, select any options you want.
- In the What do you want to do with the message list, select defer delivery by a number of minutes. (Delivery can be delayed up to two hours.)
- In the Rule Description box, click the underlined phrase, a number of, and in the Defer delivery by box, enter the number of minutes you want messages held before sending.
- Click the OK button, and then click the Next button.
- Select any exceptions, and then click the Next button.
- In the Please specify a name for this rule box, type a name for the rule, and then click the Finish button.
That's it. Now, all your messages will be held in your Outbox for a specified time after you click the Send button.
SysInternals has had some significant updates to the industry renouned free tools! Visit Site
NewSid allows you to assign a specific SID to a computer - perfect for rebuilding a server or workstation right down to its security id. Version 4.0 introduces support for Windows XP and .NET Server, a wizard-style interface, allows you to specify the SID that you want applied, Registry compaction and also the option to rename a computer (which results in a change of both NetBIOS and DNS names).
Some pretty cool stuff here.
We've all had to write the same repetitive code over and over again such as the following in order to connect to a db.
- Write SQL code and create at least 4 stored procedures per table in the database (Insert, Update, Delete and Select SQL statement)
- Write SQL code and create custom stored procedures that will reflect the complexity of their database diagram (Example: write a SQL statement that can update several tables in one call, write SQL statement that can bring back data from several tables using inner join statement…)
- Write ADO.Net code (using VB .NET, C# .NET or whatever language supported by the .NET platform) that is responsible for calling those stored procedures. Developers have to take special care with the parameters type to be declared as long as the parameters direction (input, output…)
- Write abstract classes that map exactly to their database tables for easy data retrieving
- Write Windows or/and Web forms that can manage (Add, Update, Delete) their database tables content
Well supposedly the tool Olymars does this all for us. Very, very interesting.
So far after an intial appraisal it looks very cool.
[Sean 'Early' Campbell & Scott 'Adopter' Swigart's Radio Weblog]XML Web Services are kewl......
And Darren is pointing everyone to Dan Wahlin's wonderful XML videos (and site):
Dan Wahlin's done it again... he's posted 4 excellent Windows Media movies that show a simple example for getting started with WSE
In it learn how to:
- Wire-up WSE in your project
- Implement IPasswordProvider
- Check a web request for security tokens
- Make a web request with added security tokens
Dan is the man when it comes to XML and Web Services! If you haven't checked out the other samples on his site then I highly recommend it!
[Alex Lowe's .NET Blog]Scott Hanselman commented on my dual monitor migration. He pointed me to a really cool utility called Ultramon. [1] So far I really love the task-bar feature which gives me per-desktop task bars. Unfortunately, the taskbar feature doesn't seem to coexist well with ATI's Hydravision utility which gives me additional hardware accelerated virtual desktops, so I only have the per-desktop task bars on my first virtual desktop.
Werner Vogels chimes in with geek one-upmanship ... he has THREE flat panels on his desktop. And they're not just any flat panels, these are big huge honking expensive flat panels. Damn, I'm jealous :)
Don "luddite" Box comments about how much he likes the larger 1024 x 768 pixels on his Thinkpad x30. Hey - how many pixels do you need to run emacs and type all those angle brackets anyways? :)
[1] This brings back memories of my old Commodore PET days where there were a lot of machine-language monitor (think 6502 debugger) utilities. The original machine language monitor on the PET (remember sys 4?) was woefully limited - it could only do hex dumps and display the register stack. This spawned a whole cottage industry of utilities; first there was SuperMon, ExtraMon and eventually ... UltraMon.
[IUnknown.com: John Lam's Weblog on Software Development]Over the past few days, I've installed a couple of client applications that were clearly written by devs who run as local administrator on their computers. In both cases, these applications wrote to Program FilesApp Name directory. In both cases, they mistakenly thought that "they" owned that directory. And by "they", I mean the guy who wrote the app thinks that they owned that directory, but that's incorrect. In reality, the administrator who installed their application onto a user's computer owns that directory. And once the user tries to run that application, bam! It blows up in their face.
There's a whole bunch of areas on the computer that are off-limits to regular users, and for good reason. Among them are HKLM, Windows, and Program Files. Remember that keys like HKCR really map to HKLMSoftwareClasses. It is really difficult for devs to build software that runs correctly under restricted accounts (like any account that belongs only to the MachineUsers group) unless they themselves run under such an account. So, please ... make the switch!
There's really nothing that I regularly do during development that I cannot accomplish by running under a regular user account. When I occasionally need to do some administrator-like things, I either temporarily create a new administrator command shell via the runas command, or I log out and log back in as admin to perform those tasks (setting ACL's using Explorer is one of those tasks).
[IUnknown.com: John Lam's Weblog on Software Development]Sequential I/O performance.
This morning, I was doing some research on sequential I/O performance, and re-read this excellent research paper published by Leonard Chung and Jim Gray at MSR. One of the interesting security-related performance issue raised in this paper can be found in Section 4.4, concerning file pre-allocation:
"When growing a file, it is important to write it in sequential order. Otherwise Windows writes each block twice: once to zero the "gap" and once to write the actual data when the need write finally is issued".
It is necessary to "zero the gap" to prevent reading data that has not been previously written. Otherwise an attacker would be able to extend a file, and attempt to read the data that was there before. Windows prevents this by zeroing out the bytes in the file to guarantee that 0 is returned when reading data that has not been previously written.
The performance gap is quite severe - write throughput drops by 50% due to the need to write the data twice to disk. Writing to the end of a file does not incur this penalty.
[IUnknown.com: John Lam's Weblog on Software Development]Living the dual monitor lifestyle.
I loved the SyncMaster 172T so much that I bought another. And once I got my motherboard problems out of the way, I'm happily running a 32MB ATI AIW RADEON and a 64MB ATI RADEON 7000 PCI dual-monitor setup.
One of the really cool features that ATI provides with their drivers is Hydravision support. It lets me run multiple hardware accelerated virtual desktops (up to 9) and I can switch between desktops using their tray icon utility (in theory I can do this using a keystroke but I can't get it to work). The switch is lightning-fast - much faster than the Virtual Desktop Manager utility found in Windows PowerToys. I find that I now use one desktop for email / news stuff, and another desktop for dev stuff (running full VS.NET full screen and debugging a GUI app on another monitor was the main reason I switched to this setup). I suspect I'll use a third desktop for blogging-related stuff.
Since the 172T is a DVI panel, I can report that there isn't much difference between a DVI and a VGA signal input (the RADEON 7000 only has VGA output), but there is a difference. The text is a tiny bit sharper using DVI, and the whites are whiter - I'm having a hard time trying to make the whites match exactly between the two monitors.
[IUnknown.com: John Lam's Weblog on Software Development]You bought and paid for your version of Windows XP Home or Professional. You have the proof - your wallet feels much lighter! Like many people, you put things off and ignore what appear to be the plaintive pleas of the RegWorm emanating from your system tray. But then the day of reckoning arrives and the dreaded worm says your "grace period" has expired. You click "Yes" and POW! You're logged off. To give that ole RegWorm a shot of vitamin B12 and get back in action check out: http://www.winxpnews.com/rd/rd.cfm?id=030107CO-RegWorm
Web Site Reports That You Must Enable Cookies
You've probably run into cookie problems if you use Internet Explorer to get your Hotmail messages. There's a link in the message and you click on it. You then get an error that says you must have cookies enabled. The problem is that you do have cookies enabled. This article describes the problem and gives you a fix: http://www.winxpnews.com/rd/rd.cfm?id=030114CO-Cookies
Hard Disk May Become Corrupted When Entering Standby or Hibernation
Those giant hard disks that are larger than 137 GB are a lot of fun. You feel as if you can "save" the world - on a single disk. But here's some scary news: Your hard disk might become corrupt when it enters Standby or Hibernation in Windows XP. What's up with that? A small problem with atapi.sys causes the problem. Better head on over and get the fix before you lose your masterpieces! http://www.winxpnews.com/rd/rd.cfm?id=030114CO-Atapi_Fix
Connecting to Multiple Remote Desktops on Your Private Network
Many of you have multiple Windows XP computers running Remote Desktop on your home or SOHO networks. It would be great to be able to connect to all of these computers over the Internet, but that usually requires multiple IP addresses bound to the Internet interface of your cable or DSL router. John Canning wrote to us with a great trick that allows you to make all of your Remote Desktops available from the Internet using just a single Internet IP address:
- Click Start, click the Run command and type in "regedit" (without the quotes) to open the Registry Editor.
- Browse to the following location in the left pane
HKEY LOCAL MACHINESystemCurrentControlSetControlTerminalServerWinStationsRDP-Tcp - In the right pane, right click on PortNumber and click the Modify command.
- In the Edit DWORD dialog box, click the decimal option and change the port number to whatever you want. Click OK and restart your computer.
- Log into your router and use port forwarding to forward the port you chose to your IP address on the network.
- Now when connecting to your computer from another computer, you have to type the following in the connection box for remote desktop
YourIPaddress:YourNewPort (that is a colon in the middle). For example: 66.245.178.25:3388
Great tip! Thanks, John.
WinXPnews™ E-Zine Tue, Jan 14, 2003 (Vol. 3, 2 - Issue 58)
Free Wireless Lockdown Tool!
SecureWave just released a free security solution that, I dare to say, is of interest to many of you.
In two words, they have released a Windows 2000/XP solution that allows you to prevent the use of Wireless cards --unless you actually want your users to use them of course. Many companies spent lots of money on their firewalls and, those that make use of it, even WLANs. However, today the focus has been on securing the communication between the WLAN endpoints and the base stations -- but what about if you do not want them in the first place?
Under Windows 2000/XP you (as an end-user) just need to plug one of these wireless cards in that machine and bingo -- security polices are out of the window. If you want to make sure that WLAN cards cannot be used your will love WaveLock. I know the developers myself, these are reliable people. Wavelock is free, not supported but definitely interesting. check it out at:
http://www.w2knews.com/rd/rd.cfm?id=030120TP-Wavelock
Sunbelt W2Knews™ Mon, Jan 20, 2003 (Vol. 8, #3 - Issue #409)
Certain Programs Do Not Work Correctly If You Log On Using a Limited User Account
Have your limited users experienced the following kinds of problems when running certain programs on their Windows XP computers?
- Program does not run.
- Program stops responding (hangs).
- Receive notification of run-time error 7 or run-time error 3446.
- Program does not recognize that a CD-ROM is in the CD-ROM drive.
- Program does not allow you to save files.
- Program does not allow you to open files.
- Program does not allow you to edit files.
- Program displays a blank error message.
- You cannot remove the program.
- You cannot open the Help file
The problem is that some programs just don't work correctly when using a limited user account. For a BIG list of programs that don't work, and workarounds for the problem check out:
http://www.winxpnews.com/rd/rd.cfm?id=030121UP-Limited_Accounts
WinXPnews™ E-Zine Tue, Jan 21, 2003 (Vol. 3, 3 - Issue 59)
Anatomy of a RegWorm (Windows Product Activation/WPA)
Do you live in fear of the day when Windows XP's built-in timebomb will explode on you? That timebomb (WPA or RegWorm) can render your computer useless and require you to get on the phone and beg Microsoft to let you use the computer and software for which you paid big money. What triggers the bomb to explode? Whenever you start your Windows XP computer, the bomb checks on the status of the following hardware devices:
- Video adapter
- SCSI disk adapter
- IDE disk adapter
- Network Interface Card (NIC) MAC Address
- Amount of RAM
- Processor
- Processor Serial Number
- Hard drives
- Hard Drive volume serial number
- CD-ROM/CD-RW/ DVD-ROM
The worm calculates a number associated with the devices and compares it to previous values. You can change up to 6 components in this list during the first 120 days. The bomb is triggered when you change the 7th (at that point you may wish for Linux). The counter is reset every 120 days. At least, that's how it's suppose to work. But keep in mind that software makes errors all the time, so the timebomb might go off even if you haven't changed anything! For a detailed discussion of WPA, check out: http://www.winxpnews.com/rd/rd.cfm?id=030121SE-WPA
WinXPnews™ E-Zine Tue, Jan 21, 2003 (Vol. 3, 3 - Issue 59)
How to Put an Entire Drive into a Folder
Frank Lund wrote with a great tip on something you can do with Windows XP that you could never do with those old Windows 9x/ME operating systems. This feature, called "Volume Mount Points" (also supported in Windows 2000) allows you to associate an entire partition with a single folder on your hard disk. Frank recommends using the Volume Mount Points feature to free up disk space on a C: drive that's getting too full. If your C: drive is getting too full, you'll love this trick:
- Create an empty folder on your C: drive called "NewDrive".
- Install your new hard disk and open the Disk Management console. You can access Disk Management from the Run command. Type diskmgmt.msc in the Run command and click OK.
- In the Disk Management console, right click on the new disk and click New Volume. Click Next when the Welcome to the New Volume Wizard dialog box appears.
- On the Select Volume Type page, select the Simple option. Click Next.
- On the Select Disks page, make sure the correct disk (the new one) is selected and then type in the size of the partition you want to create. The default is to use the entire disk. Type in the size in the Select the amount of space in MB text box and click Next.
- On the Assign Drive Letter or Path page, select the Mount in the following empty NTFS folder option and then type in the path to the NewDrive folder. Click Next.
- On the Format Volume page, accept the default settings and click Next. Click Finish and the volume will be created and formatted.
- Find some folders that are taking up a lot of space. Right click on those folders and click the Cut command. Then click on the NewDrive folder and use the Paste command. Note that you shouldn't do this with Program Folders and System Folders, as there are many files in use in those folders so you won't be able to reliably copy them to the new location. The Cut and Paste operation moves the files from their old folders into the new one.
- Notice that all the files still appear to be on the C: drive. This makes it easy for you to save all your stuff to the C: drive, but actually use the space on the new disk.
You can, of course, name the folder whatever you wish instead of NewDrive.
WinXPnews™ E-Zine Tue, Jan 21, 2003 (Vol. 3, 3 - Issue 59)
Automatically Defrag Your Hard Disks with the Built-in Defragger
The official Microsoft documentation says you can only defrag one disk at a time and that you can't schedule the defrag run (at least, using the Task Scheduler). http://www.winxpnews.com/rd/rd.cfm?id=030128TI-Defrag But that's not completely true. If you're an adventurous type you might want to check out these scripts that allow you to schedule and defrag multiple disks at once. You can find the scripts and instructions at:
http://www.winxpnews.com/rd/rd.cfm?id=030128TI-W2KDfrag Make sure you download and use the XP scripts when scheduling defrags for your XP systems. You can also schedule defrags using the new command line defrag included with XP. For instructions on using see:
http://www.winxpnews.com/rd/rd.cfm?id=030128TI-XP_Defrag
Outlook lets you configure the default format for new e-mail messages and gives you three options: HTML, rich text, or plain text. If you've configured Outlook to use HTML as the default, each new message will start with HTML as the format, enabling you to add graphics, formatting, and other rich media. However, some users prefer to receive text-only e-mail messages. You can configure the default mail format to be different from Outlook's overall default format for specific users. This means that new messages you send to these users will be created using the format specified for the recipient, not those you set as the default for Outlook.
Follow these steps to set the default message format for a contact in Outlook 2002:
1. Open Outlook's Contacts folder and double-click the contact to open it.
2. In the E-mail field, double-click the recipient's address to open the E-mail Properties dialog box.
3. From the Internet Format drop-down list, choose the format option you want to use for this contact. For example, choose Send Plain Text Only if you want Outlook to use only plain text for this recipient.
You can repeat this process for any other contacts for which you want to set a specific message format. But keep in mind that the setting is address-specific, not recipient-specific. You can send messages to a particular contact using different mail formats, depending on which e-mail address you use.
If the contact has more than one e-mail address, open the contact form and click the down arrow beside the e-mail address field. Select a different address, then double-click the address to set its default format.
If you're running Outlook 2000 in Internet Mail Only mode, on the Contact form, just below the e-mail address you'll see an option named Send As Plain Text. Select this option to send to the recipient using plain text. If you're using Corporate/Workgroup mode, you can only change a recipient's send options if the address is stored in the Personal Address
Book (PAB). Open the PAB, double-click the contact, and click Send Options
to specify the message format for the recipient.
[TechRepublic - 2 Jan 03]
Electric Xml Toolkit: Free And Easy To Use. Working with XML is often tedious and time consuming. But the free toolkit Electric XML simplifies many of these tasks so you can better utilize your time. [Builder.com - 17 Dec 02] [Eric's incoming newsletters]
MOVE A USER'S CERTIFICATE TO ANOTHER COMPUTER
Outlook has several functions that require a security certificate. If you don't have a backup of the certificate and the system crashes, the user will have to obtain a new certificate. You can back up and restore certificates using several different methods, including Outlook.
To use Outlook to back up and restore certificates, you first need to export the certificate to make a backup. Follow these steps:
1. In Outlook, choose Tools | Options and click the Security tab.
2. Click Import/Export and select Export Your Digital ID To A File from the Import/Export Digital ID dialog box.
3. Click Select, choose the certificate to export, and specify a path and name for the file (use a .pfx file extension). As an option, you
can also enter and confirm a password to protect the file.
4. If the user has Internet Explorer 4, select the Microsoft Internet Explorer 4.0 Compatible option. Then click OK.
Next, follow these steps to import the certificate into the new system:
1. In Outlook, choose Tools | Options and click the Security tab.
2. Click Import/Export, click Browse, and browse for the certificate file.
3. Enter the password for the file.
4. In the Digital ID Name text box, type the name by which you want the certificate to be shown. You'll typically enter the user's name or
e-mail address or mailbox name.
5. Click OK to import the certificate.
Backing up user certificates is particularly important if your users purchase certificates from a commercial certificate authority. You can mitigate that cost by installing and using Windows 2000 Server or .NET Server's Certificate Services to generate your own certificates. [TechRepublic - 19 Dec 02]