Thursday, February 26, 2015

These Chicks Were O.G. (Original Geeks)

Women are underrepresented in electronics and computer engineering. That's a shame, because these are great pursuits for creative problem solvers. And I have found success in these fields to be more about what you can do rather than your race or gender, or who you know, or where you went to school. (I checked with my boss, and she agrees.) But go back more than 50 years and most professions made the path more difficult for women. Here are two that didn't let that prevent them from making history.

The Google Doodle on December 9, 2013 celebrated what would have been the 107th birthday of Grace Hopper, a pioneer in the field of computer programming. Not only was she one of the first computer programmers, she helped define - and then redefine - what programming meant. This brings to mind another luminary figure in the field, Ada Lovelace, who is credited with writing the first computer program - a century before there were any real computers to run it.

Lady Ada  
  

Ada Lovelace, as she is commonly known, was technically Augusta Ada Byron King, Countess of Lovelace. The daughter of poet Lord Byron, her parents separated just a month after Ada was born, and she was raised by her mother. Lady Byron encouraged her daughter's interest in science and mathematics (which was not common among society women of the day) because she sure as hell did not want her following her father's footsteps into the arts (or anywhere else he went).

Ada became acquainted with Charles Babbage, a mathematics professor at Cambridge, who had designed and was attempting to build A Difference Engine - a bad-ass mechanical calculator that could automatically tabulate polynomial functions, which were very useful but notoriously error-prone to do by hand. Babbage was fascinated by Ada's intellect and abilities. She visited frequently and became his confidant. Babbage eventually revealed to Ada his new idea - the Analytic Engine, a general purpose version of his Difference Engine capable of accepting a sequence of instructions and a set of data. This would be a programmable mechanical calculator, the first design to meet our modern definition of a computer. Babbage, however, was a poor communicator, and with the complexity of the subject, few people knew what the heck he was talking about.

But Ada got it.She took on the task of translating a detailed description of the proposed machine written by a fellow mathematician in French. Topping that, she also wrote her own set of even more detailed usage notes, which included a detailed implementation of an algorithm to calculate a sequence of Bernoulli numbers using the Engine. As the Analytic Engine is now recognized as the first computer design, Ada's set of instructions is considered the first computer program. This chick was the real deal. Not to mention that she was considered incredibly charming, seemed to have a rather exciting social life, and died at the young age of 37. (Neither of Babbage's machines were completed in his lifetime, but both designs were validated in later years.)

Amazing Grace  
   

Fast forward to the 20th century, and we meet Grace Hopper. Born in NYC, Grace graduated from Vassar, got a Ph.D. in mathematics from Yale, and returned to Vassar to teach. (Clearly a slacker.) During WWII, she choose to serve her country through the WAVES program (Women Accepted for Voluntary Emergency Service) of the US Navy Reserve. After Midshipmen school, she was assigned to the Navy's Computation Program to work with the Harvard Mark I, a custom designed electro-mechanical computer. This sucker was as big as a truck and you programmed it with hole-punched paper tape using numeric codes to represent operations and instructions.

One of the first people to actually work at programming a computer, Grace knew they could do better. She felt it would be easier and more effective if programmers could use words as instructions rather than machine codes; this was not the majority opinion at the time. She proved the viability by writing the first compiler to covert the symbolic instructions into machine readable codes. Later, she helped design COBOL, one of the first programming languages, which dominated business programming for decades. She advocated shared libraries, and the standardization and validation of compilers, which became foundations of the discipline.

All the while she retained her association with the US Navy. Despite being told she was too small. (She had to obtain an exemption for being 15 pounds under the 120 lb minimum for enlistment.) Or too old. (Rejected by the regular Navy after the war due to her advanced age of 38, she stuck with the Reserves. She was forced to retire a couple of times after her 60th birthday, only to be brought back. At her final retirement at the age of 79 she was the oldest active-duty commissioned officer in the US Navy.) She retired at the rank of Rear Admiral.

Grace Hopper was a ball of fire, successful in teaching, computer science, industry, and the Navy - all at the same time. People who knew her claimed one of her best qualities was the ability to evangelize ideas and inspire others. 
The most important thing I've accomplished, other than building the compiler, is training young people. They come to me, you know, and say, "Do you think we can do this?" I say, "Try it." And I back 'em up. They need that. I keep track of them as they get older and I stir 'em up at intervals so they don't forget to take chances.
*Gilbert, Lynn (December 10, 2012). Particular Passions: Grace Murray Hopper. Women of Wisdom Series (1st ed.). New York City: Lynn Gilbert Inc. ISBN 978-1-61979-403-0.

Here's some final words of wisdom from Adm. Grace Hopper:
If it is a good idea, go ahead and do it. It is much easier to apologize than to get permission.  

Wednesday, June 18, 2014

Intelligent and Knowledgeable

Intelligent and knowledgeable. You might consider those two qualities to be prerequisites in a high-tech field. A challenging subject matter requires certain cognitive abilities. And the constantly evolving nature of the field presumes not just an education, but also a commitment to lifelong learning.

However, technologists can also be notoriously dense. I speak from experience.

Here are some things I keep on my Try-Not-To-Do List: 
  • If you consider yourself intelligent and knowledgeable - share your skills and knowledge. But don't be pedantic. Be sensitive to not lecture people who don't want to be lectured.

    Your cohabitants may not appreciate your critique of their vacuuming technique. And the FedEx delivery person may not really be interested in your theories on applying simulated annealing algorithms to the Travelling Salesman problem for determining optimum delivery routes.
  • If you consider yourself intelligent and knowledgeable - always remember that
    a.) you don't know everything, and
    b.) what you think you know may be wrong.


    Remember: Anyone who claims to know everything demonstrates their ignorance. (Is that a famous saying? It should be. You can quote me on that.) People who must win every argument tend to be single and low on friends.

  • If you consider yourself intelligent and knowledgeable - be prepared to defend your positions. But always keep an open mind.

    Also, be sensitive of the people with whom you discuss your opinions.
    Your technical comrades may revel in some intellectual jousting, dry erase markers flailing at the whiteboard. But civilians can take personal offence at having their positions aggressively challenged. Best to tread lightly with unfamiliar adversaries. And be prepared to politely agree to disagree. Or change the subject.

Tuesday, April 30, 2013

Did anybody test this? Caffeine withdrawal and why we need to test with realistic scenarios

I entered the break room at the office this morning, looking forward to that first cuppa joe, only to find a uniformed gentleman disconnecting the coffee machine. Fear not, he assured me, he was just swapping out the old machine for a newly refurbished one. 
Rather than stand around watching, I headed back to my desk to burn some time checking email.

A few testy minutes later I returned to my quest for morning caffeination. The newly refurbished Keurig single-serve coffee machine stood ready to dispense its liquid black magic. I lifted the handle, inserted a single serve package (aka K cup) of Breakfast Blend, and closed the lid, prepared to press the blinking button with the icon of a large steaming cup. 

Instead, the small text display sneered at me. "No K cup detected. Continue anyway?"

A colleague standing nearby chimed in. "It did that to me too. Just hit continue and it will brew."

I asked, "The guy just installed it. Didn't he test it?"

"He made sure it powered up okay. And then he checked that it would dispense hot water."

"But he didn't actually try making a cup of coffee?"

So the technician had run the smoke test and unit test and was satisfied. This seemed reasonable to my colleague (a developer :) ). But the tech had not tried the machine in the environment it was intended to run, in the manner in which customers were likely to use it. Nor, apparently, had the technician who refurbished it.

As the long-awaited caffeinated liquid lubricated my brain, I could not help but relate this incident back to my own role as a software tester. We increasingly mandate that testing, particularly system testing, be done with realistic customer scenarios and data. Why? Not only is this effective at finding bugs, but it finds the bugs that would be most problematic to our customers.

And bugs found before morning coffee are evil.


Tuesday, March 12, 2013

Family Favorite Irish Soda Bread Recipe

It's that time of the year again, when foods that shouldn't ought to be green - like bagels and McDonald's milkshakes - are, and you can't swing a shillelagh without hitting a leprechaun decoration. Yes, St. Patrick's Day draws nigh.

I have been asked again for my Irish Soda Bread recipe, so I have copied it below. For my full treatise on all things soda bread and corned beef related, see my original post at the following link:
St. Patricks Day classic cuisine - recipes and a little history

Irish Soda Bread

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
Ingredients:

  • 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.


Variations:

  • You can bake it in loaf pans, a cast iron skillet, cupcake tins(!), or (my brother's idea) angel food pans.
  • A few tablespoons of caraway seeds. (Not my cuppa tea.)
  • Those who prefer a less rich soda bread can cut back on the butter, raisins, and especially the sugar.
  • For a heartier (and healthier) texture, substitute whole wheat for up to half of the flour.
  • A few teaspoons of grated orange zest gives a nice flavor. (credit Ina Garten from the Food Network.
  • Makes a great scone. Partially flatten a softball size mound and cut into even slices like a pie. Or just make small rounds. Bake as above.




Tuesday, February 19, 2013

Windows 8 Cheat Sheet

My last post, Windows 8 QuickStart, was an introduction to Microsoft's new operating system intended to get you over the hump of the paradigm change that is causing so many experienced Windows users to stumble. Here are a couple of other references that might be useful.

  1. New York Times Technology columnist David Pogue offers his introductory reference of "all of the most important touch/mouse/keyboard shortcuts for Windows 8." http://pogue.blogs.nytimes.com/2012/10/25/a-windows-8-cheat-sheet/
  2. Here is a very handy visual reference for the Windows 8 touch and keyboard shortcuts. You'll soon outgrow this, but until then you might want to print it out and tack it up near your monitor. (found here)
    win8keycommandsandgestures
  3. Finally, the Ultimate Shortcuts Guide at this link, http://docs.com/IOLP, concisely provides keyboard shortcuts as well as mouse and touch equivalents for a rather comprehensive set of actions. You'll want to download this chart and keep it handy.








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

Desktop
  • 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.

Apps
  • 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

Note:
  • 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?