Monday, July 6, 2009

Technobrief #8

Summary: Recent findings of software, articles, videos, and more.

ArticlesBlogsEnglishGraphicsjQueryProgrammingQuotes
  • From Sphinx - text search The Pirate Bay way by Ted Dziuba:
    "Before Sphinx, the other option for text search was Apache Solr. Solr, whose name-giver understands that vowels are a scarce resource and must be used sparingly, is a server that sits on top of Lucene. Solr is popular with the enterprise crowd, who love its Java. Being a Java program, Solr includes no shortage of technology whose acronyms contain the letters J and X."
Software
  • CodecInstaller detects the installed audio and video codecs, analyzes files to understand which codecs they require, and suggests which codecs need to be installed.
  • Convert AVI to MP4 converts video files from various formats (AVI, DivX, Xvid, WMA, MOV, H.264, MPEG1/MPEG2) to the MP4 (MPEG4) format.
  • GSpot shows information about video and audion codecs used in a media file.
  • DriverBackup! backs up, restores, and removes drivers.
  • JPEG Lossless Rotator rotates JPEG images without re-encoding and loss of quality.
  • MPEG Streamclip video converter plays, cuts, copies, pastes, trims, exports, and converts video files (MPEG, VOB, PS, M2P, MOD,VRO, DAT, MOV, DV, AVI, MP4, TS, M2T, MMV, REC, VID, AUD, AVR, VDR, PVR, TP0, M2V, M1V, MPV, AIFF, M1A, MP2, MPA, AC3, and more).
  • Postbox email client offers an alternative to the popular Outlook and Thunderbird.
  • Roadkil recovers files from disks with physical damage (bad sectors, scratches, etc).
  • Shrink Pic automatically reduces the size of photos sent or uploaded toemail, instant messaging, blogging, and web galleries
  • Svchost Process Analyzer lists all svchost instances and checks the services they contain making it easy to uncover worms and viruses, such as Conficker.
  • Zimbra Desktop is an email, which can syncs Zimbra, Yahoo! Mail and Gmail email, contacts, and calendars.
  • Zortam MP3 Media Studio includes audio file organizer, ID3 tag editor, CD ripper, WAV/MP3 converter, MP3 volume normalizer, lyrics finder, batch lyrics and cover finder, playlist manager, CD burner, and more.
VideosWeb designWeb tools
  • Color Scheme Designer (page examples are really helpful)
  • SpiderOak provides an easy, secure and consolidated free online backup, sync, sharing, access and storage solution for Windows, Mac OS X, and Linux (Ubuntu, Debian & Fedora)
  • Mojo Helpdesk centralizes, assigns and tracks organization requests for customer and tech support, internal tasks management, website maintenance, and so on (free edition offers 3 ticket queues and 2 support accounts)
  • Path 101 provides free career services including personality test, resume analysis, and career advice
  • ProjectLocker offers source control, defect tracking, document management and other services (free account supports 5 users, 500 MB of space, and unlimited number of projects)

Thursday, July 2, 2009

Essential freeware for Windows

Summary: List of my favorite freeware tools and utilities.

The lists of my favorite freeware for regular users and developers have been getting out of hand lately, so until I find a better method, I'll use this post to keep track of the FREE Windows tools and utilities that I consider the best for various tasks.

When assessing the tools, I prefer software that:
  • is totally free: no shareware, not limited to home use (although, home-use restriction is fine in some cases, such as for anti-virus software);
  • works across corporate firewalls (for internet connections);
  • supports Unicode (international character sets);
  • offers multi-lingual interface (mostly interested in Russian);
  • comes with an installer (okay, lack of installer will not kill it, but it's really nice to have).
Here is the list of my favorite freeware:

Media Players

Best Audio Player: AIMP2
Pros: highly customizable; clean interface; good sound (with enabled equalizer); no ads; Unicode support; multilingual interface; can be minimized to system tray; rips CD tracks to audio files (including MP3); records streaming audio; converts audio files between different formats (MP3, WAV, OGG, WMA, etc); edits ID3 tags (ID3v1, ID3v2, etc). Cons: slight startup delay; some customization options are confusing.

Best Video Player: KMPlayer
Pros: comes with internal codecs; plays practically any video format; easy to launch video from a file, folder, or CD/DVD; clean interface; multi-lingual interface; no ads; captures screenshots. Cons: I noticed subtitles getting out of sync with video a few times (could be a hardware issue); menu is accessed via right mouse click.

Media Editors

Best Video Editor: Avidemux
Pros: converts between various video formats; instant preview of changes; easy to adjust cropping settings; simple to use filters; color/saturation/brightness adjustment; displays file video/audio encoding data. Cons: two versions of UI (GTK+ and Qt4) are confusing; toolbar buttons do not show tooltips; terse descriptions of available options and settings.
Alternatives: VirtualDub.

Best Audio Editor: Audacity
Pros: many features; easy to use (once you get familiar with the interface); records streaming audio; trims silence; reduces background noise; imports/exports audio files from/to various audio formats; mixes tracks; adds sound effects (bass boost, etc); Unicode support; multilingual interface. Cons: outdated look; does not come with LAME MP3 encoder (must be installed manually); cannot edit MP3 natively (need re-encoding); some menu options are non-standard (e.g. Edit-Preferences).

Best Audio Tag Editor: Mp3Tag
Pros: supports MP3 tags and other metadata (ID3, Vorbis Comments, APE); renames files based on the tag information; supports cover art; works on multiple files; Unicode support; multilingual interface; retrieves metadata from external sources (Amazon, freedb, etc). Cons: populating metadata from external sources is a bit awkward.

MP3 Tools

Best MP3 Splitter: mp3DirectCut
Pros: splits, trims, crops audio files; no-destructive cut, copy and paste; automatic track splitting (by timed intervals); keeps ID3 tags. Cons: cannot adjust interval-based auto-cues to fall on to silent pause.

Best MP3 Merger: MP3 Album Maker
Pros: simple operation; reversible merge. Cons: cannot adjust interval-based auto-cues to fall on to silent pause.

Best MP3 Volume Normalizer: MP3Gain
Pros: lossless normalization; can be reverted back to the original. Cons: functionality is a bit confusing; I'm not sure how it handles clipping.

Disk Tools (CD/DVD)

Best DVD Ripper: DVD Shrink
Pros: decrypts (breaks copy protection from) many DVDs; removes region code; rips video to an ISO file or VIDEO_TS folder; can compress ripped video to fit on a standard 4.7 GB DVD; allows removing of unnecessary data (audio/video tracks). Cons: cannot decrypt some latest DVDs.
Alternatives: DVD Decrypter (decrypts most DVDs that DVD Shrink cannot); DVDFab HD Decrypter (haven't tried, but seems good); AmoK DVD Shrinker (does not remove copy protection, but claims to "[shrink] DVDs up to one fifth of the original size without any noticeable quality reduction").

Best DVD Maker: Windows Movie Maker
Pros: creates videos and slide shows; unlimited video clips and audio tracks; many transition effects; fades video/audio in/out; clips video/audio; brightness adjustment; some video effects; supports H.264 encoded videos (via ffdshow video decoder); video menu (several themes); video chapters; video preview; supports PAL and NTSC; not very resource hungry; built into Windows; easy to learn; useful help and tutorials. Cons: supports limited video formats; does not work with QuickTime (MOV) or Flash (FLV) files; few video improvement features (e.g. no exposure, color correction); few audio adjustment features (e.g. no audio normalization); somewhat crippled Vista version; needs Windows DVD Maker to build DVD menus and burn DVDs (Windows DVD Maker is not available in Windows Vista Basic and Business editions).

Best CD/DVD Burner: ImgBurn
Pros: creates image file (such as ISO) from a disk (CD/DVD); writes image file to disk; verifies disk readability; compares disk to image file; checks quality of drive and media (requires DVDInfoPro); lots of customization option (burn speed, etc). Cons: does not offer a single-step disk copy.
Alternatives: Ashampoo Burning Studio Free 6.76; BurnAware Free; CDBurnerXP; Exact Audio Copy; InfraRecorder; StarBurn Free.

File Tools

Best File Manager: Cubic Explorer
Pros: Multi-tab interface; looks clean out of the box; can copy full file path; quick access to favorite folders via bookmarks; natural sort (e.g. 1.txt, 2.txt, 10.txt); file preview panel; built-in text editor; when renaming a file, extension is not selected; multiple skins; file filtering. Cons: cannot undo (rename, delete, etc); crippled search (cannot search for text in a file); access to remote shares (via UNC path) is slow; does not display folder sizes; limited customization options.
Alternatives: UltraExplorer (took me some effort to customize to my liking); FreeCommander (GUI is a bit too busy).

Best File Renamer: Rename Master
Pros: file filtering; preview of results; can use file properties (timestamps, audio tags, image tags, etc); scripts for commonly used renaming options; undo changes; integrated explorer. Cons: GUI is not very polished.
Alternatives: ReNamer; Ken Rename.

Best File Synchronization: DropBox
Pros: 2 GB of free space (+ more via referrals); automatic backups; handles corporate firewalls; tracks file changes. Cons: cannot delete old file revisions; works only with one parent folder; does not seem to work with auto-proxy configuration scripts (need to explicitly define proxy URL).
Alternatives: Syncplicity (2 GB of free space; can complement DropBox; manages standard folders, such as My Documents; can customize what get synced); SpiderOak (2 GB of free space).

Best Online Backup: Mozy
Pros: 2 GB of free space; automatic backups; uses encryption. Cons: can't say if there are any.
Alternatives: iDrive (2 GB of free space; similar to Mozy).

Best File Eraser: Eraser
Pros: simple interface; Windows shell integration. Cons: none.
Alternatives: CyberShredder.

Best Virtual Drive Mounter: Gizmo Drive
Pros: supports various image file formats (ISO, BIN, etc); supports encryption; Windows shell integration. Cons: a bit heavy on pop-ups.
Alternatives: Virtual CloneDrive; MagicISO Virtual CD/DVD-ROM; Total Mounter; StarBurn Free; Pismo File Mount; ISODisk; WinCDEmu.

Graphics and Photo Tools

Best Vector Graphics Editor: Inkscape
Pros: clean interface; standard commands an operations. Cons: manual does not load; used the program very few times, so can't say much.

Best Image Editor: GIMP
Pros: feature rich; bit editor; editable text layers; photo enhancing. Cons: non-standard menu options; some operations are non-intuitive and/or more complex than they should be.
Alternatives: Paint.NET (does not support editable text layers); virtualStudio (has a few nice touches; red-eye correction needs improvement).

Best Photo Cropper: JPEGCrops
Pros: extremely easy to crop for preset sizes (such as 4x6); preview; lossless cropping; batch mode. Cons: none.

Best Photo Resizer: Fotosizer
Pros: simple resizing process for popular formats; batch operation; can lock aspect ratio. Cons: none.
Alternatives: Image Resizer (part of Microsoft PowerToys for Windows XP).

Best Screen Capture: Gadwin PrintScreen 4.4
Pros: easy to use, no-frills program; can capture mouse cursor. Cons: no built-in image editor; no annotation capability; does not detect non-rectangular or shaded windows' borders; development work on free version has stopped.

Office and Business Apps

Best Office Suite: OpenOffice
Pros: supports Microsoft Office 2007 formats; multi-lingual interface; traditional toolbar (no ribbon); extensions. Cons: not as feature-rich as Microsoft Office; interface is somewhat outdated.
Alternatives: SoftMaker Office 2006.

Best Text Editor: PSPad
Pros: supports Unicode; multi-lingual interface; built-in spell checker; syntax highlighting (for many programming languages); ability to run external tools (for example, when editing a VBScript file, you can execute it directly from the editor); search and replace options; supports regular expressions (PSPad is the only free text editor among the ones I tried that correctly handled new line and end-of-line replacements); text bookmarking; line numbering; multi-document interface; built-in file explorer; macros; character case change (UPPER/lower/Sentence/etc); text conversion (to/from Base64, URL, quoted printable, decimal/hexadecimal, etc); auto-insert (optional) and finding matching brackets (parentheses); HTML-RTF conversion; column selection mode; HTML preview; HTML document template; option to set as default text editor. Cons: some menus are not standard (Settings should be under Tools); I wish it could do XSLT previews.
Alternatives: Notepad++ (still has problems with regular expression-based search and replace); Q10 (minimalist, full-screen, spell checker, and more).

PDF Tools

Best PDF Reader: PDF-XChange Viewer
Pros: fast; light; fills and saves forms; exports text an images; adds content to PDF files; allows typing over PDF documents. Cons: does not remember font settings when typing over multiple fields; when printing documents with typed over text, Print Markups in the Print dialog box must be checked (not obvious).

Best PDF Writer: Primo PDF
Pros: converts many file formats to PDF; works as a printer driver; can append and merge PDF documents; works in remote desktop (over terminal session). Cons: text quality of the converted PDF file may be worse than original.
Alternatives: doPDF (does not work in remote desktop).

Language Tools

Best Dictionary: Lingoes
Pros: Dictionary, glossary, and more; translates to/from many languages; pronounces words. Cons: plugin for PDF files does not work with Adobe Acrobat Reader (but it works with FREE PDF-XChange Viewer).
Alternatives: 1-Click Answers; WordWeb.

Security Tools

Best Anti-Virus: Avast! Home Edition
Pros: light, yet capable; clean interface; multi-lingual interface; anti-spyware; anti-rootkit; automatic updates; resident execution. Cons: none.
Alternatives: AVG Anti-Virus Free Edition; Avira AntiVir Personal.

Best Password Manager: LastPass
Pros: web-based (no need to sync data between multiple computers); integrated with Firefox and IE; form auto-fill; grouping; search; support for custom properties; can import data from other apps (Firefox, KeePass Password Safe, etc); can export data. Cons: form-fill authentication cannot be disabled (and it does not seem to recognize 24-hour session); occasional connectivity errors in Firefox (when connection is fine); interface could be more polished.
Alternatives: KeePass Password Safe (for multi-computer synchronization, it can be used along with file synchronization tools).

Best Disk Encryption: TrueCrypt
Pros: treats a virtual partition (encrypted file) as a disk; works with flash (USB) drives; can encrypt full or part of a disk. Cons: cannot auto-grow encrypted partition; need to read instructions to understand how to encrypt removable disks (such as flash drives).

Desktop Tools

Best Screen Saver: Analogy
Pros: fascinating; elegant; simple; shows current time. Cons: none.

Best Clipboard Manager: ArsClip
Pros: keeps track of text and image-based clipboard entries; allows pasting plain text by default; single step to access clipboard history menu; permanent items; under active development. Cons: pops up an occasional error message; McAfee anti-virus occasionally treats it as a trojan.
Alternatives: ClipX (may require a hack); Ditto (paste takes one more step than necessary); xNeat Clipboard Manager (supports text only); CLCL (hasn't been updated in a while).

Best Taskbar Sorter: Taskbar Shuffle
Pros: supports drag-and-drop; light-weight. Cons: none.

Best Task Manager: SystemExplorer
Pros: displays full paths of the running processes; shows command-line parameters; checks suspicious processes against the VirusTotal database; passes process information to Process Library; shows network connection information (which processes are connected to which addresses over UDP or TCP/IP); displays startup data (which applications are loaded at start-up); displays list of open files and file owners (which process holds open handle to which file); displays loaded DLLs and their host processes (press CTRL+F and enter the name of a DLL in the SystemExplorer Search window); can export info from every tab; can be configured as a default task manager. Cons: when configured as default task manager, cannot start Windows Task Manager; cannot show threads per process; Performance window shows a single graph for multi-CPU systems; controls in the Performance window do not get resized correctly.
Alternatives: AnVir Task Manager Free (shows prompts when new applications are added to Windows startup); Process Explorer.

Best Program Launcher: Launchy
Pros: automatically detects new applications; small footprint; clean interface; plugins; skins. Cons: defining catalog filters is a bit confusing.

Best Sticky Notes: Stickies
Pros: elegant by default; appear on desktop; can auto hide; transparency effects; rich-text support; hyperlink support. Cons: none.
Alternatives: Sticky Notes.

Best Volume Control: MKN VolWheel
Pros: controls volume via mouse wheel. Cons: no option to mute/unmute.

Communication and Collaboration Tools

Best Chat Application: Google Talk
Pros: minimalist (in a good sense); uses Google account info; takes fewer resources than other apps (such as Skype); informs about incoming Gmail messages; can transfer files; works across corporate firewalls; multi-lingual interface. Cons: none.
Alternatives: Meebo (web-based, Firefox add-on, and Windows app versions; supports AIM, Yahoo!, Google Talk, MSN, ICQ, and other protocols; consolidates all chat applications and account in one; clean interface).

Best Video Chat Application: Skype
Pros: everybody is using it; works well; user discovery. Cons: annoying sounds (always need to disable); runs at startup by default (always need to disable).
Alternatives: Google Video Chat (I need to give it a try).

Best Desktop Sharing Tool: Team Viewer
Pros: easy set up; can run on-demand; authorization is based on session secret (session ID and password); works on Vista; auto-update. Cons: none.
Alternatives: Ammyy Admin; Microsoft SharedView (per Privacy Statement: "This Service may only be used within the United States of America"); Adobe ConnectNow (web-based; no installation; organizer must have an Adobe account, participants do not; max of 2 participants + organizer).

Internet Tools

Best RSS Reader: Google Reader (web-based)
Pros: web-based (stays in sync across multiple computers); quick preview of unread posts; mark as favorite; intergated search. Cons: does not contain all enclosures (e.g. there is no link to comments for the SlickDeals' Hot Deals forum posts).
Alternatives: FeedDemon (some people swear by it).

Best FTP Client: FireFTP (Firefox add-on)
Pros: light-weight; works across corporate proxy servers; easy to set up. Cons: none.
Alternatives: FileZilla; net2ftp (web-based).

Best Podcast Receiver: Juice
Pros: automatically downloads podcast audio files; easy to set up; multi-lingual interface. Cons: cannot be minimized on startup; development work seems to be halted.

If you have suggestions for applications or categories, please leave a comment.

Tuesday, June 23, 2009

How to test XSL transformations

Summary: Brief overview of several tools that can be used for testing XSL transformations.

I recently spent several days redesigning XSL templates that our application uses to generate email messages. To get the job done faster, I needed a FREE tool that would help me edit XML files and test XSL transformations. [Note: I'm not against commercial software, but I did not want to get into the licensing mess, since other team members would also need to use the tool.] Microsoft's recommendation to create an ASP page for testing XSL transformations seemed like an overkill, so I looked elsewhere.

Had I checked StackOverflow earlier, I would've learned that Visual Studio 2008 offered all features I was looking for. Alas, I trusted Google more, so I started by trying out the tools that I found first:This is how these tools stacked up for me.

XML Notepad 2007 is a free utility offered by Microsoft. To preview XSL transformations in XML Notepad 2007, you first need to open the XML data file.


Then switch to the XSL Output tab, specify the XSLT file, and click the Transform button.


Although, XML Notepad 2007 is great for previewing XSL transformations, it is not very usable for editing XML documents. The editor does not seem to offer an option to edit the source and I found the built-in XML-specific editing features awkward to use. Another limitation of XML Notepad 2007 is that it does not allow opening more than one XML file at a time. It also considers the XML file to be the primary file for the transformation (other tools let you specify the XSL file for the XML file, as well as the XML file for the XSL file).

XML Copy Editor has been recently updated. I tried version 1.2.0.4 which was released in April 2009.


XML Copy Editor lets you edit the source of XML/XSL files, but generating previews takes a couple of steps. Once you load the data XML file, select the XML - XSL Transform menu option, and the tool will prompt you to enter the location of the XSLT file. After you specify the XSLT file, XML Copy Editor generates a temporary output file, which you can preview in an external browser by clicking the Browser toolbar button. I did not like this multi-step operation and the need to switch between two applications, so I moved on.

WMHelp XMLPad (v. 3.0.2.1) turned out to be the tool I used most. At first, I could not figure out how to automatically generate HTML preview after transformations (the tool kept opening the source of the transformed XML file). Eventually I determined that I needed to include the <xsl:output method="html"/> element in the XSL file and preview started to work.


To generate the preview, you need to specify the XML file for the open XSL file (there are a few gotchas here), and then simply click the Debug current stylesheet toolbar button.


Once the preview tab appears, you can switch between the Source and Preview modes. The tool can also open the preview page in an external browser, but I found the internal preview option more useful. WMHelp XMLPad keeps your options (such as mappings between XSL templates and XML files) in the styledata.xml file in the same folder as the XSL files. Although I found WMHelp XMLPad useful (which was before I discovered the capabilities of Visual Studio), it has a decent number of annoyances including the following:
  • Help page does not work; causes error "Not Found - The requested URL /doc/XmlPad/Welcome.htm was not found on this server."
  • Text editing features are really crippled. Tabs are not predictable: sometimes pressing Tab moves cursor by 8 positions, sometimes it moves by one position; you never know. If you select a block of text and press Tab, the selected text will be deleted. Shift+Tab (moving selected block to the left) obviously does not work.
  • The editor lets you place cursor anywhere. For example, you a line is 10 characters long, you can click on position 25 (a typical text editor would not allow this), hit Enter, and the editor will insert 15 new space characters at the end of the line.
  • For some reason the editor leaves a number of blank lines at the end of the document.
  • I already mentioned the need to define the output method in XSL files to auto-generate HTML previews.
  • Auto-complete issues. Say you are entering an <a> tag in front of the word link. The auto-complete feature will turn your text into the following: <a></alink>link. Also, auto-complete uses the Enter key as a selector; pressing Tab will just insert a tab character (or whatever space characters the editor decides to use).
  • Pressing the Home key moves the cursor to the beginning of line instead of the first character of text.
  • The File - Open option does not allow opening multiple files (although, you can drag and drop multiple files from Windows Explorer and the editor opens them fine).
  • You cannot perform searches across multiple files.
  • A highlighted word does not get automatically entered in the Search dialog, so you need to type it in.
  • To see transformation properties (such as XML source file), the cursor must be moved to the top of the XSL file. The properties also gets disabled if you open a read-only file.
  • Right-click clears text selection, so you can't copy or cut selected text using a context menu.
  • Debug toolbar occasionally disappears.
  • Switching between open files showing transformation previews causes losing the previews.
  • Changing the source XML file for a template, results in the preview tab displaying XML text instead of the preview.
  • It would be nice to be able to open a new tab (with an empty document) by double-clicking empty space in the tab area (a'la Firefox).
  • There are occasional errors (for the most part, the errors are not serious, although once I had to restart the program).
Despite all these annoyances, I found WMHelp XMLPad quite useful.

Xselerator was the last free XML editor I tried and I did not like it at all. First, it does not have an installer, so I had to go through the motions of creating folders, extracting files, defining shortcuts. Having done this I started the program and immediately encountered an error: "CoCreate failure on IAltovaApplication. Error: Class not registered." Apparently, the tool expects the AltovaXML engine to be installed. It would be nice if there were an indication of this requirement somewhere (installer?). The error does not seem to affect functionality, but still... Anyway, some people praise Xselerator, so you may want to give it a try.

If I am to test any XSL transformations in future, I will probably stick to Visual Studio, but if you're looking for a free alternative, see if any of the applications I described fits your needs.

Monday, June 15, 2009

My.Utilities Class Library

Summary: Helper utilities library that some .NET developers may appreciate.

For several years, I have been compiling a library of utility/helper classes reused across multiple projects. You may recognize some of these classes if you read my published articles, but there are several classes that have not been released to the public, yet.

Here is a brief description of the most useful classes in the library (and there are more):
  • BaseForm
    I derive all my web form classes from this class. This classed extends the functionality of System.Web.UI.Page by offering many handy features, such as easy time localization (automatically converts time from GMT/UTC to local time on the client and vise versa; for additional information read It's About Time), invoking JavaScript pop-ups from code-behind, quick enabling/disabling/showing/hiding page controls, setting/getting session parameter in/from a cookie, retrieval of data values from form/query string, deep search for controls, and more.
  • AppProcess
    Loads a named assembly from a non-standard path (assuming that you specify alternate paths).
  • ExceptionInfo
    Generates formatted error messages for different type of exceptions based on various parameters and exception types, retrieves messages from inner exceptions and database error objects (for additional info, read Dissecting Error Messages).
  • Helper
    Okay, I agree: this is not a good name... Anyway, this class makes it easy to check for empty objects of different data types. For example, you can check for empty or null array in a single statement (if (Helper.IsEmpty(myArray)) instead of having to check for null first, and then for the number of elements in the array.
  • WindowsService
    Simplifies implementation of Windows services. Other classes in the same namespace (My.Utilities.Services) make it trivial to write periodic tasks (daily, weekly, etc) that Windows services normally perform (for additional info, see Implementing Windows services in Visual Studio 2008).
  • DataHelper
    Converts database values to standard .NET types, so you do not have to worry about special handling of DBNull values.
  • Name
    Makes formatting of people's names based on the available name parts easier, e.g. John F Kennedy, Jr; Kennedy, John F, Jr; John F Kennedy; Kennedy, John F; John Kennedy; Kennedy, John; etc.
To see the description of all classes in the library, download the help file:
My.Utilities.chm
This help file covers all classes, methods, properties, etc., and even offers a few samples.

If you are still interested, you can download the library project:
My.Utilities Class Library Project (Visual Studio 2008)
Just keep in mind that I started writing this library around 2001/2002, so some functionality could've been improved had the technology -- nullable types, generics, etc. -- been available at the time. Also, the general disclaimer applies: use at your own risk.

I hope this helps someone, but if you run into any issues, please let me know.

Thursday, April 23, 2009

Security Hall of Shame: Lenovo

Summary: What is wrong with password rules at Lenovo?

The winner of today's Security Hall of Shame Award in the category Stupid Password Rules (subcategory: We want you to think that we support strong passwords, but we don't, ha-ha) is... Lenovo.

When you register at Lenovo IBM Shareholder Purchase Program, you are not allowed to specify the password (not sure why, but whatever). Once you submit the registration info, you will receive an e-mail with your user name and random password (not that smart to send password along with user name, but whatever). Now the logical step is to change the password to the one you can remember, so you click the My Account link (not easy to find on the page, but whatever), and then click Change Account Information (would be better to separate security info -- user name, password -- from regular account info -- address, phone, etc. -- but whatever).

Okay, let's change the password. This is not a financial site, so make a new password, which is:
  • 8 characters long, with
  • upper-case letters,
  • lower-case letters, and
  • a number.
This should be good enough, so save changes... and... o-ops, error:
"The password is too simple. It must contain at least two numbers."
Hmm, among the passwords I use, none of them has two numbers, but let me try this:
  • 9 characters long, with
  • upper-case letters,
  • lower-case letters,
  • a number, and
  • a special character.
This one complies with most password security guidelines, so save changes... and... da-ang:
"The password contains special characters. Only letters (a-z) and numbers are allowed."
Hmm, okay let's try this:
  • hello123
Save changes... and... no hay problema. Bravo, Lenovo! You know your security.

Now, kids, remember that Lenovo will lose its Security Hall of Shame Award when it changes password rules to:
  1. allow special characters (such as: +-*#@!~&%), and
  2. not require two numbers (this is not a bad rule, but it's not common).
See also:
What is strong password? by Webopedia
Strong passwords: How to create and use them by Microsoft