S.Lott -- Software Architect
  • Area Effect Aspect Volume Computations [V2]
  • Other Articles
  • Publications
  • S.Lott Biography

Over-Solving or Solving Problems You Don't Have

Date Sat 25 July 2020 Tags #python / haversine / complexity / object-oriented design / Design Principles / SOLID / navigation

Sometimes we call them "Belt and Braces" solutions. As a former suspenders person who switched to belts, the idea of wearing both is a little like over-engineering. In the unlikely event of catastrophic failure of one system, your pants can still remain properly hoist. There's a weird, but defensible reason …

more ...

Python Enhancement Proposal -- Floating an Idea

Date Tue 05 February 2019 Tags #python / object-oriented design / complexity / Design Principles / PEP

Consider the following code

def max(m: int, n: int) -> int:
    if m >= n:
        return m
    elif n >= m:
        return n
    else:
        raise Exception(f"Design Error: {vars()}")

There's a question about else: clause and the exception raised there.

  • It's impossible. In this specific case, a little algebra can provide …
more ...

Functional Requirements and Use Cases -- even for "simple" things

Date Tue 05 December 2017 Tags requirements / use case / architecture

In the mailbag I found this nonsense, doomed to inevitable failure:

"As I get more serious about this data science stuff, it has become obvious that a windows machine is not the way to go. ... Q1: What other things should I think about and consider while shopping for a new …
more ...

The Data Structures and Algorithms Problem

Date Tue 29 March 2016 Tags algorithm / dimensional data / Data Science

Here's a snippet of an email

In big data / data science, the curse of dimensionality keeps showing up over and over. A good place to start is the wiki article “curse of dimensionality.” The issue seems to be that a lot of these big data / data science people have not …
more ...

TDD, API Design and Refactoring

Date Thu 12 June 2014 Tags unit testing / #python / tdd / stingray reader / API Design / mastering object-oriented python

See this short discussion on a Stingray Reader feature:

https://sourceforge.net/p/stingrayreader/discussion/COBOL/thread/d2132851/?limit=25#2a3a

This turned into an exercise in pure TDD.

<rant>

I'm not a fan of applying TDD in a strict, death-march fashion.

I see the comments on Stack Overflow that …

more ...

Explaining an Application

Date Fri 21 February 2014 Tags unit testing / test-driven reverse engineering / legacy code

Some years ago--never mind how long precisely--having little or no money in my purse... I had a great chance to do some Test-Driven Reverse Engineering on a rather complex C program. I extracted test cases. I worked with the users to gather test cases. And I rewrote their legacy app …

more ...

Third Time's the Charm: the version 3.0 phenomenon

Date Fri 21 February 2014 Tags unit testing / software process improvement / OO design / requirements

Somewhere, I have a vague recollection of reading advice from someone (Bill Gates?) that it takes three versions to get things right. The context may have been a justification of the wild success of Windows 3.0.

Or, I could be just making it up.

But one thing I have …

more ...

Unit Test Naming [Updated]

Date Wed 01 January 2014 Tags unit testing / tdd

Just stumbled across several blog postings on unit test naming.

Essentially the TestCase will name the fixture. That's pretty easy to understand.

The cool part is this: each test method is a two-part clause: condition_"should"_result or "when"_condition_"then"_result.

See https://wiki.openmrs.org/display/docs/Unit …

more ...

Performance "Tuning": running in 1/100th the time

Date Thu 27 June 2013 Tags performance / algorithm / test-driven reverse engineering / complexity

For the 757 Python Meetup group, someone proposed looking at some Python code they had which was slow. The code implemented a variation on the Elo chess rating system. It applied the ratings to other sports, and used the points scored as well as basic win/lose/tie to work …

more ...

Password Encryption -- Short Answer: Don't.

Date Thu 27 June 2013 Tags algorithm / software process improvement / encryption / security
First, read this. Why passwords have never been weaker—and crackers have never been stronger.
There are numerous important lessons in this article.
One of the small lessons is that changing your password every sixty or ninety days is farcical. The rainbow table algorithms can crack a badly-done password in …
more ...

  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • »
  • Social

    • Mastodon
    • Github
    • StackOverflow
    • LinkedIn
    • O'Reilly
    • Amazon
  • Categories

    • Architecture & Design
    • Books
    • FOSS
    • Literate Programming
    • Management
    • News
    • Python
    • Technologies
    • TTRPG
  • Links

    • Pelican
    • Python.org
    • Jinja2
  • Archive

    • October 2026 (1)
    • September 2026 (2)
    • June 2026 (1)
    • July 2025 (1)
    • June 2025 (2)
    • February 2023 (1)
    • July 2021 (1)
    • June 2021 (1)
    • July 2020 (1)
    • February 2019 (1)
    • December 2017 (1)
    • March 2016 (1)
    • June 2014 (1)
    • February 2014 (2)
    • January 2014 (1)
    • June 2013 (3)
    • June 2012 (1)
    • February 2012 (1)
    • December 2011 (2)
    • April 2011 (2)
    • February 2011 (2)
    • June 2010 (1)
    • April 2010 (1)
    • February 2009 (2)
    • January 2009 (1)
    • December 2008 (3)
    • November 2008 (4)
    • October 2008 (3)
    • September 2008 (6)
    • August 2008 (4)
    • July 2008 (5)
    • June 2008 (2)
    • May 2008 (5)
    • April 2008 (5)
    • March 2008 (5)
    • February 2008 (5)
    • January 2008 (5)
    • December 2007 (3)
    • November 2007 (3)
    • October 2007 (4)
    • September 2007 (2)
    • August 2007 (4)
    • June 2007 (3)
    • May 2007 (3)
    • April 2007 (2)
    • March 2007 (5)
    • February 2007 (1)
    • January 2007 (4)
    • December 2006 (2)
    • October 2006 (2)
    • September 2006 (3)
    • August 2006 (4)
    • July 2006 (3)
    • June 2006 (3)
    • May 2006 (2)
    • April 2006 (2)
    • March 2006 (1)
    • February 2006 (2)
    • January 2006 (2)
    • December 2005 (4)
    • November 2005 (2)
    • October 2005 (10)
    • September 2005 (28)
    • August 2005 (2)
    • January 2004 (1)

© 2026 S.Lott · Powered by pelican-bootstrap3, Pelican, Bootstrap

Back to top