ESMITHY.NET

UI Horror: Login... Again

I use Office 365 with the web version of Outlook at work. At some point, I'll notice that the browser tab has changed appearance, and click on it to find that I've been logged out. No worries, there's a prompt right there for my password to renew my session. Soon …

Functions Returning True on Success

Many beginning programmers latch on to the idea of having functions return True if they succeed and False if they fail so that you have code like this:

if do_something():
    # It worked!
    do_some_other_stuff()
else:
    logger.error("Something didn't work!")

For me, I think it was when I saw some …

Origin of the Name of the City of Lehi

Introduction

Most people believe that the city of Lehi, Utah was named after Lehi, the first prophet and patriarch of the Book of Mormon who fled Jerusalem with his family prior to the city falling under siege to the Babylonians around the beginning of the 6th century BC. Both the …

UI Baffler: Outlook Reminders

Why is it that in the Outlook reminders dialog, the "Dismiss All" button is disabled if there are no reminder items selected?

Dismiss All disabled

Well clearly it is because that button is supposed to dismiss all of the selected reminders, right?

No, because if there is any selected reminder, clicking "Dismiss All …

I'm concerned about using Python

xkcd Python

But...

Python is slow

  • Is the CPU the bounding factor for the project's performance?
  • How much time has been spent trying to optimize performance?
  • Which is currently more important, raw execution speed or time to create features?
  • Is Python fast enough for the project?
  • It is an often used strategy …

The Feedback Meeting Game

We hold lots of meetings with the intent to gather feedback from members of a team. These can be architecture reviews, requirements walkthroughs, sprint or release retrospectives, and others. How do you conduct meetings like these in an efficient and productive way?

Some challenges that arise in meetings like these …

Solipsistic Backups

I noticed this banner ad the other day from Mozy:

Slow Down!

Um... I actually do prefer to have background processes (such as backup) defer to the real work I'm trying to do on my computer.

Your right margin is telling you something

The recommendation to keep lines widths less than 80 characters is a surprising part of the Python style guide (PEP 8). Really, 79 characters? Is it still the 1980's in Python-land? Maybe it's time to upgrade that monochrome CRT and get some screen real-estate.

Acting a bit on faith, and …

The First Rule of Test Code

Software is kind of cool in that you can write programs that verify that your other programs work correctly. These testing "meta programs" tend to get short-shrift though, because it's not like the code is actually part of the shipping product. So who cares about cleanliness or good style or …

Bad APIs: Deceiving Your Readers

APIs are user interfaces for programmers. I came across a function recently that had a couple of user interface issues that serves as a great example of this principle.

The function is internal to an HTTP client class, taking care of the common logic independent of the HTTP method, and …