Tag: software development

  • Practice Your Skills with the Advent of Code

    It’s that time of year, when the Advent of Code goes live. It started this week, with a few exercises released last week. You can still join in, and even go back and look at previous years (2019, 2018, 2017, 2016) and go through them. It’s a good exercise for your mind.

    To be fair, I’ve never completed the challenge in any year. Usually life gets in the way, and I get distracted. I’ve gotten through 15-20 in some years, but often the time required to work through the complex algorithms gets me a little discouraged. I’m not a 10x programmer, but I try.

    One thing I’ve done most years is to try and work through the problems in multiple languages. Typically my choices have been to try and solve each item three times, using T-SQL, Python, and PowerShell. I find it interesting to compare the languages and see how to handle the test data and also get the solution to work in each environment.

    If you want to stretch your programming mind and have some fun, give the challenge a try. Posting your solutions to a blog or even open a GitHub repo (or other VCS platform). It’s a good way to showcase your knowledge, at whatever level it is. You might even learn something if others comment on your solutions.

    Steve Jones

    Listen to the podcast at Libsyn, Stitcher or iTunes.

  • A Technology Collapse

    This past week the Arecibo radio telescope collapsed, with cables and instruments falling into the massive dish. You can see images of the devastation, which saddens me. I doubt this will be rebuilt, though one can keep hope alive. there were reports of failures a month or so ago, with the intent to shut down the telescope, remove instruments, and institute a controlled demolition.

    The facility was featured in a few movies, notably GoldenEye and Contact. The latter is one that first showed me the telescope, which I first thought was a movie magic trick. When I found out this was a real facility, I was amazed that humans could conceive and build such a structure. Even more amazing is that it was built in the 1960s.

    That’s quite a lifetime for a piece of technology. While I’m sure lots of wiring, electronics, computer systems, and more were added or upgraded, the core of this telescope remained the same. The ongoing engineering effort, fitting new capabilities around legacy systems and structures, was likely a study that many would find interesting.

    I don’t know many database systems that have survived that long, but certainly there are some long lived legacy applications. The Sabre reservation system for airlines is one that stands out to me. The history of this one is fascinating, especially as it’s a system I’ve depended on in my travels.

    Many of us that work with databases likely feel that everything we do is a legacy system. The dependencies our objects have on various applications, scripts, reports, and more can limit how much repair, improvement, or replacement we can make to schema.

    There are good techniques for modifying our objects, and helping to ensure we don’t break systems, but we often do need some cooperation and collaboration with application developers to implement those changes. Much of DevOps avoids talking about the database, but we shouldn’t. Instead, we ought to embrace database refactoring patterns, both at the database and application levels, ensuring that our systems can survive for as long as we need them while adapting to the changing requirements of our clients.

    Steve Jones

  • Rough Consensus

    The IETF has a document, RFC 7282, also called ” On Consensus and Humming in the IETF”, in which they describe how the body makes decisions. This is their philosophy:

    We reject: kings, presidents and voting. We believe in: rough consensus and running code.

    That is a process that I can get behind. Overall, I don’t like authoritative leaders. I don’t like to be one, though I do recognize as a manager there are times I need to make some decision. Overall, however, I like consensus.

    Someone was discussing how to choose approaches when developing software and brought my attention to that quote. With us being remote now, and unable to hum, this person talked about how to solve problems without humming.

    This individual talked about identifying solutions in a team, but not taking a vote, or rather, no immediate vote. Instead, they devised a rating system allowing everyone to look at all solutions and rate them from 5 (best solution ever) to 1 (this would be a terrible mistake). They then produce a histogram of the results for each solution.

    Once they’ve done this, they can then have people raise issues and debate them. I assume time limited, which is important, but often when we see different levels of support, we may rethink our rating or the merits/detractions of an approach. At some point, they re-rate the solutions and try to develop consensus.

    We won’t always agree completely with an approach, but I do think that we can often come to some decision we can support, especially with some rational arguments and reasoning. I’d like to think that I rarely had to overrule an entire group. Building a team means finding ways to discuss, debate, and decide together.

    Steve Jones

  • Markdown Links– Remembering the Basics

    For some reason, I can never remember how to do markdown links. I know to use the hash symbol (#) for headings. I know that asterisks do bold, or italics, though I can’t remember one or two without checking. This seems to work for me. Though when I check the markdownguide.org, I see I’ve forgotten underscores can be used.

    I know numbers and dashes for lists, that’s intuitive. I get that and use it all the time.

    But I can’t remember how to do links. I know parenthesis and brackets are involved, but I constantly seem to get it wrong.

    Writing help memory

    At least for me, writing actually helps my memory. so, I’m writing this on a piece of paper.

    [text](link)

    As a matter of fact, I’ll write it a couple times, and type it here.

    [text](link)

    [voice of the dba](http://www.voiceofthedba.com)

    while I’m at it.

    ![text](image)

    Maybe now I’ll remember this.