Wednesday, December 12, 2012

Windows 8 QuickStart

Here are some notes that should get a user familiar with previous Windows version up and running quickly on Windows 8.

Windows 8 paradigm shift

Windows 8 presents a look and user interface that is quite different from previous versions of Windows, so much so that even an experienced Windows user will likely be confused and floundering on first try. However, once you understand the paradigm shift and some basic operations you should be able to access the Windows functionality you expect - and more.

Think of it this way: Windows 8 has taken the Start menu from the Windows 7 desktop and converted it into a Start screen which presents itself as the main interface - the face of Windows 8. All programs are "apps" which have dynamic tiles (icons) on the Start screen. The idea is to present a modern interface consistent across all platforms. In fact, Microsoft calls it the Modern UI - not Metro, that was just an internal name. It's touch friendly and tablet-like, but works just as well with a mouse and keyboard.

Another paradigm is that Windows 8 "Modern UI" apps attempt to present a clean, minimal interface, maximizing screen space, with menus and options accessed either with a right click or a pull-out side menu. The corners of the screen are magic touch points.

Start screen
  • programs are "apps" and appear as tiles on the Start screen (remember, no Start Menu!)
  • on the Start screen, to scroll left just push the cursor to the right (or swipe touch screen)
  • only apps written for Windows 8 create a tile on the Start screen; they optionally display info that updates live on the tile
  • to access all installed programs, accessories, and system utilities (Control Panel) - essentially the old Start Menu
    • right-click anywhere on Start screen, bottom ribbon appears, select "All apps" on right
  • All Apps screen shows all installed programs and utilities
  • click on a program to run, right click for context menu, which includes option Pin to / Unpin from Start screen
  • "Desktop" is an app on Start screen

  • Windows desktop is still there underneath, accessed through a "Desktop" tile on the Start screen.
  • The desktop itself will look familiar - except no Start menu!
  • Desktop can have programs and browsers open in varying size windows, shortcut icons, a taskbar with minimized programs, Windows explorer, etc.
  • File Explorer, formerly Windows Explorer, looks very familiar, with the addition of a tool ribbon.

  • Windows 8 apps generally take over the complete screen (tablet-like)
  • cursor at top middle of screen changes to hand; pull down app to close
  • can use "hand" to shift app to 1/3 or 2/3 side of screen; can open second app in remaining space
  • when in an app, to go back to the Start screen bring the cursor to lower left corner of window, click on Start thumbnail that appears
    • shortcut to Start screen - press Windows key
  • to go to last used app, click in upper left corner
  • to go to a recently used app, go to lower left, see Start thumbnail, bring cursor up the left side and select thumbnail of desired app
  • on a touch screen you can just swipe in from the left side to go back to the last app

Other Controls
  • go to lower right to bring up Charms bar on right column
    • contains Search, Share, Start, Devices, Settings
    • Settings->Tiles allows you to "Show administrative tools as tiles on Start screen"
    • shortcut for Charms bar - Windows+C
    • or swipe in from right side on touch screen
  • Charms bar within app is app specific, but from Start screen is general to system
  • right click on Start screen shows system menu bar at bottom of screen (including "All apps")
  • right click within an app shows menu bar at bottom, and possibly top, which is app specific
  • Quick Access Menu (advanced users) - right-click on Start thumbnail in lower left corner
    • offers system tools, like Control panel, Run, File explorer, Task manager, Cmd prompt, Computer/Disk/Device manager, System panel
  • Integrated Search - just start typing anywhere on Start screen, opens search, finds anything (apps, files)
    • e.g., on Start type "Des" and list shows all installed DesignSync tools (GUI, SyncAdmin, shells, DS doc)

Internet Explorer 10
  • The standard browser for Windows 8 is IE10, although Chrome and Firefox are available
  • There are actually two versions of IE10 - the Windows 8 app run from the Start screen tile, and the one from the desktop
  • IE10 run as an app takes over full screen, minimalist controls, maximum screen
  • IE10 run on Desktop looks similar to IE9 - adjustable window size, menu bar

  • software written for older Windows version will likely install and run under Windows 8 but not create a Start screen tile
  • you can create a Start screen "app" tile for these programs by going to “All apps”, right click on program name, and select Pin to start menu

Monday, November 5, 2012

Pursuing Private Passions: Why Writing is Like Running

I like to write. I find it both challenging and fulfilling.

Crossing the finish line with my son on his first 5K
I like to run. I find it, well, both challenging and fulfilling. Hmm, deja vu.
Lately I have been thinking how much these activities have in common for me. 

Not that I am particularly skilled at either endeavor. I edited the Engineering magazine in college, and have had several technical and academic articles published over the years. But nothing for pay - although I am open to that :). Now I ramble on in semi-regular blog posts. I am a casual runner, and enter the occasional 5k, where I am usually in the middle of the pack. Certainly nothing to brag about.  But considering I spent my teenage years avoiding athletics, and I am at an age when many of my peers are developing a meaningful relationship with their La-Z-Boy recliner, I feel I am ahead in my own personal race.

And that is my point. It is good to have extracurricular pursuits that feed a passion and in some way better us. Something more than just work, chores, and exercise. Sure, running is good cardio. But it is also provides a time of quiet reflection, an adjustable level of intensity, and goals to track (if you so desire). I also enjoy organizing my thoughts and attempting to communicate them in a clear - and hopefully interesting - manner. I am one of those quirky individuals who appreciates a good turn of a phrase, and derives particular satisfaction from being able to share it with others, and perhaps evoke a response. And those skills can serve well professionally.

What really sealed the running/writing analogy for me was the satisfaction I derive from the effort of each, and the feeling of accomplishment afterwards. Compare that to post-chores; generally you are simply glad they are done. And we all need down-time, but when I let the television fill those blocks of unstructured time with banal sitcoms less interesting than the commercials that pervade them, I get a sinking feeling.

I must admit that my target audience for this message is myself as much as anyone else. I don't get out for a run nearly as often as I should or would like to, and I have let my blog lie fallow for several months. I hoped this topic might motivate and reinvigorate. (Another shared characteristic - these activities tend to reward perseverance and penalize a hiatus.)

What About You?

So what floats your boat? Do you have some endeavor that feeds your soul and leaves you feeling better for having done it? If not, find one! Brush up on your French. Pull that guitar out of the closet. Learn to play the ukulele (I hear it's fun). Take that Tai Chi class. Dust off your yoga mat. Tend your garden. Volunteer your time (another of my passions). 
I would love to hear your stories and ideas.

Post that blog entry. Now where are my running shoes?

Tuesday, March 20, 2012

St. Patrick's Day classic cuisine

St. Patrick's Day holds a special significance to me. I was born and raised in New York, so I am and will always be American. But both my parents were from Ireland, which was a pervasive cultural influence in my household growing up. Now that both my parents have passed, I realize that I can no longer take that for granted. It is my responsibility - and privilege - to remember that heritage.

But it is an Irish-American heritage, and St. Patrick's Day in the US is an Irish-American holiday. A time to celebrate the culture and influences the Irish have brought to this country, and my family. I am happy to celebrate that, along with the Portuguese-Italian influences my wife's family brings, and all of the other international and regional influences we have come to know and love as an integral part of this country.

And my middle name is Patrick. :)

So what are the required components of a St. Patrick's Day celebration? Consumption of alcohol. Men parading up Fifth Avenue in skirts. Women with green hair. Could be any weekend.
Green bagels? Bagpipe music? Getting closer.
Irish soda bread, corned beef and cabbage - now we're cooking (pun intended). Let's talk about some classic dishes associated with the holiday.

Irish Soda Bread

Soda bread is a "quick bread" rather than a yeast bread, meaning that it gets its airiness from the chemical reaction between a base (baking soda) and an acid (buttermilk), producing lots of tiny carbon dioxide bubbles which leaves tiny gaps in the baked bread. Yeast breads depend on cultivating lots of little yeasties in the dough that convert starch into sugar, and then consume the sugar, expelling carbon dioxide. Same effect, trickier to accomplish.

Here is my family's favorite recipe for a classic Irish Soda Bread (with raisins). Simple ingredients, easy to make, customize as you please.

Irish Soda Bread recipe
5 cups all-purpose flour (plus a little extra for dusting)
1 cup sugar
1 tablespoon baking powder
1 teaspoon baking soda
1 1/2 teaspoons salt
1 stick (1/4 pound) butter (cold)
2 1/2 cups raisins
1 egg, slightly beaten
2 1/2 cups buttermilk*
*you can substitute regular milk with 3 tablespoons of white vinegar added; wait 10 minutes for the milk to curdle

Preheat oven to 350 degrees. Stir together the flour, sugar, baking powder, baking soda, and salt. Cut in the butter. Mix well. Stir in the raisins.

Add the buttermilk and egg while mixing using a large spoon - or your hands! Mix well enough to get everything well moistened with no dry pockets; adjust milk amount if necessary. Don't overmix or you can make the bread chewy.

Turn the bread out onto a board dusted with flour. Dust the dough, knead lightly, divide in half, form into two rounds, and place them onto a lightly greased baking sheet. Use a knife dipped in flour to score a cross on the top of each loaf. (Helps the center to cook evenly.)

Bake for 40 to 50 minutes at 350 degrees, until the outside is golden and a toothpick inserted in the center comes out dry. Cool on a wire rack.

- You can use 2 loaf pans, buttered and floured; my brother ups the ingredients by 50% and bakes it in 2 angel food pans - cooks evenly, uniform slices
- A few tablespoons of caraway seeds. (Not my cuppa tea.)
- Those who prefer a less rich soda bread can cut back on the butter, sugar, and raisins.
- For a heartier (and healthier) texture, substitute whole wheat for up to half of the flour.

Irish Brown Bread

But is the Irish Soda Bread authentic? Hey, my Mother used to make it! You got a problem with that? :) 
Well, it seems that a working class family from generations past in Ireland would have baked a loaf from four simple ingredients: flour, buttermlk (the liquid leftover from churning butter), baking soda, and salt. Butter, sugar, eggs? Those were cake ingredients, not bread. This was an everyday bread that could be at any meal - with butter or jam for breakfast, a slice of meat for lunch, or sopping up your stew at dinner.

The modern equivalent would be Irish Brown Bread, which I believe is quite common in Ireland as well as Irish restaurants. The flour traditionally used was coarser, not as refined or processed, and lower in gluten that today's typical all-purpose flour. You can try to get your hands on flour or bread mix from Odlum's, a traditional manufacturer. Modern recipes attempt to duplicate the course texture by using mostly whole wheat flour and adding some rolled oats or wheat germ. Sugar and butter are minimal, and either buttermilk or plain yogurt can be used. Here is a link to a recipe that produces a darn good hearty (and healthy) loaf.

Irish Brown Bread recipe

Corned Beef

Corned beef is a salt-cured beef brisket, the name originating from the kernel shaped granules of salt used in the process. A traditional meal? It's complicated... I did some research, and it's a heck of a story.

It seems the Irish were one of the cultures that developed the process, and Ireland was one of the prime producers of corned beef for a couple of centuries. But not for internal consumption. See, the British overlords used Colonial Ireland as their private cow pastures. The best beef was sent to England, and the lesser cuts "corned" and used as naval provisions or for international trade. As that trade became increasingly lucrative, the English co-opted more and more Irish countryside into grazing land. Losing valuable farmland, the Irish were forced to rely more heavily on potatoes, which could grow under poor conditions. And that's why the Potato Famine of the 1840's was so devastating.

All the while beef remained prohibitively expensive in Ireland. But the Irish immigrants in New York and Boston found reasonably priced corned beef available from their friendly neighborhood Jewish butchers. The Irish considered this a luxury item, appropriate for celebrations, and it went well with the cabbage and root vegetables they favored. Thus grew the tradition.

Cooking the Corned Beef

Remove the brisket from the package and rinse well to get rid of excessive brine.
The meat will be salty but otherwise a little bland, so you need to kick in some spice. Many briskets come with a spice packet, which will do fine. Or you can use a tablespoon or two of pickling spice, if available. Otherwise, use a bay leaf, a teaspoon of white or black peppercorns, some cloves, and a berry or two of allspice.

Oven Method
My favorite method comes from my wife, who knows how to cook... as opposed to me, who knows how to eat. It is easy to scale up for a crowd, as you can get 2 to 3 briskets is a large pan, or use multiple pans.
Pre-heat the oven to 350 degrees.
Add some onion slices to the bottom of a baking pan. Place the brisket in the pan, fatty side up. Lay some more onion slices on top. Sprinkle with the spices. Add about 1 1/2 inches water to the pan. Cover the top with foil and crimp the edges to seal.
Bake for 3 to 4 hours.
Test done-ness by inserting a fork into a thick part of the meat. It should give easily, like you could just pull it apart. Otherwise seal it back up and give it more time.
When done, remove from the oven and let cool before slicing.
Important: Carve thin slices across (perpendicular to) the grain, not with it, to avoid the meat being stringy or chewy.

Over the top: For an extra special treat, a friend recommends putting a coating of mustard and brown sugar on top of the cooked brisket and putting it back in the oven uncovered until it caramelizes and forms a spicy-sweet crust.

One-Pot Boil
You can cook the entire corned beef and cabbage meal in one pot.
Place the brisket in a large pot, covered with water. Add the spices, and maybe a quartered onion. Boil for 2 to 3 hours. Remove some water skimming out some of the froth that may have formed on the top. Add a quartered cabbage, a couple of quartered potatoes, several carrots, cut into chunks. Add enough water to cover and continue boiling for another 45 minutes to an hour, until the vegetables are tender.

If you cook the cabbage and other vegetables separately from the meat, make sure to start with generously salted water. You can add the same spices. Boil for 45 - 60 minutes, until desired tenderness.

Friday, February 24, 2012

Did anybody test this stuff? Checking vs. testing on a credit card website

My recent stumbles on a department store credit card web site provide an excellent example of the difference between checking software versus really testing it.

Don't take this the wrong way. I am not one of those people who are never satisfied, constantly complaining about aesthetics and poor design. (Well, maybe occasionally.) And I don't have an ax to grind. I like this store. I like their web site. I like the functionality it offers me as a cardholder. But the other day I hit upon enough problems that it made me think this is a great example of an application where someone has checked that the features are functional, but has not really tested them.

On Feb. 15 my wife and I notice that the bill for our new credit card is due - on Feb. 14. Bummer. We had just gotten the card (in order to get a discount on some bedding and flatware) and so it isn't yet part of our bill-paying routine, nor have we set it up as a vendor in our bank's online bill payment system. But I notice the bill says we can pay online at their website. Great! Off to their website, where I see I must first register my account.

Online registration asks for my account number. I enter the account number exactly as displayed on the bill, a series of numbers and dashes, in an unstructured text box. I also fill in the other required fields (name, address, etc.). Submit.
The form redisplays, a red box at the top warning "Please enter all required information", and a red mark denotes the account number field.
I recheck, and the information I entered matches the bill exactly. Having been down a similar road before, I try removing the dashes from the Account Number. Submit. Success!

Issue #1: Inflexible data field, requires format inconsistent with that supplied to user.

Yes, this feature worked, within a narrowly defined scope, so technically no bug. But what a poor user experience! (Warning: Design rant!) How many customers has this form annoyed? How many had to call the service line for live help? Think of what a couple of hours scrimped on development cost in the long run.

How might this form been improved? Here are some possibilities:

  • Accept the format shown on the bill. Did the developer look at a bill, the thing most customers would be registering from?
  • If they really needed only numbers, how about noting that on the form? Beside the label "Account Number" add the clarifying text "(numerals only, no dashes)".
  • Present the field entry boxes in a way to clarify the format. Perhaps a series of single character linked text boxes, with hyphens displayed where appropriate.
  • When parsing the field entry, recognize the unacceptable characters and generate a helpful message. For example, "numeric digits only please, no hyphens".
  • Or how about taking a couple more hours of programming to parse the field contents, eat any white space (which might include spaces or dashes), and display the data back in the field, with the desired formatting.
Moving on, now that I successfully registered, I want to pay my bill. The layout is clear, the options appropriate. I pick the payment amount. Now for the payment date. Remember, I am already a day late. My choices are:

  • Today (2/15/2012)
  • Due date (2/14/2012)
  • Another date (chooser widget to select)
#Issue 2: Why am I being offered yesterday as an option?

I check "Today" and OK the form. I get a Javascript pop-up "Warning: Selected Date is past the Due Date, which may incur a penalty. Consider an earlier payment date."

#Issue 3: What choice do I have? Can they turn back time?

I decide to try their little wormhole, and choose "Due date" (i.e., yesterday). Submit. Accepted without warning.

#Issue 4: Why does it allow (even encourage!) me to pick a date in the past?

So I have submitted with a payment date of yesterday. No error, but no confirmation either. I see the account summary page, with no indication of a payment. Is it scheduled? Or maybe in process? 
I risk a double payment by trying again. Same result.
So I try a third time, selecting "Today" and pushing through the warning about late payments.
Success, with confirmation. That means the first two attempts did fail!

#Issue 5: Silent failure on payment dates in the past.

Let's review. The website offered a rich set of useful features, which all worked correctly under ideal circumstances. Yessir, someone checked that functionality!
But a series of reasonable though non-optimal inputs caused a number of unacceptable reactions. No, it does not appear anyone really tested this.

Sunday, January 29, 2012

Documentation and Test

Ramblings on documentation and test... and test of documentation.

Part 1. Technical Writers vs Testers

I recently had an exchange with Rosie Sherry, the founder of the Software Testing Club, on the relationship between testers and other roles in the software microcosm. This was in response to a piece she wrote in the online version of their magazine, The Testing Planet, regarding the relationship between testers and marketeers. I had some thoughts on the synergies between testers and technical writers, so Rosie invited me to share my thoughts in a followup piece. Here is the link:

Documentation and the Tester

Part 2. Testing Documentation

Well, while I was on the subject ... I offered to share my thoughts on testing documentation. This was posted as a follow-up on the The Testing Planet online.

How to Test Documentation

... but thanks to some responses to the piece I would like to offer an amended list right here:

How To Test Documentation


  • Proof Read for Spelling and Grammar - Some may sneer at the notion of a technical writer making simple errors. That’s silly. The hard part is organizing information and presenting it cogently. Give me that, and I am more than happy to look for typos.
  • Spelling & Grammar Trick –  If you are reviewing documentation in a tool or viewer or format which does not offer native spell and grammar checking, considering importing the text into a tool which does. MS Word, Open Office Writer, Google Docs, a browser add-on – even cat the text file into “spell” on Unix. Take advantage of the tools at hand. But you still have to manually check the content.
  • Check the String Tables - Many application use string tables to enable localization. This is where any text that appears in the application interface is separated out from the source code, so that the application can be "localized" for a different international audience by swapping a string table translated to the appropriate audience. Check the string table for spelling and grammar. (See the previous point about using tools to help.)
  • Check for Accuracy – errors of commission. Keep the Development Spec and your test notes handy.
  • Check for Completeness – errors of omission. Again, use the Dev Spec and test notes for references.
  • Consider Organization and Approach – compare with the Marketing Req. Spec.
  • Test all Examples! – Do you (or your company) want to look dumb? Include an example in the doc that doesn’t work. I speak from experience here. So don’t just read the examples. Perform the exact steps documented.
  • Look for changes in one area that might affect another - And make sure that screenshots are up-to-date.
  • Make at least two passes, first for spelling and grammar, then for content - Your brain uses different areas for these activities; you will be much more effective if you do them separately. I have difficulty focusing on content if I am tripping over typos, so I check for those first. In the second pass gives you a better perspective on context, flow, and organization.
Special thanks to Kobi Halperin for the reminder on string tables. And to Jeff Lucas for the pointer to the book Tacit and Explicit Knowledge by Harry Collins, which explains the roles of the "inscripted" vs "translational" areas of the brain in reviewing grammar vs meaning. I thought it was just my own hangup that I needed two passes. :) 

Any more suggestions or comments? I would be happy to update the list.