Kopec Explains Software

Kopec Explains Software

By David Kopec, Rebecca KopecScienceTechnologyEducation
Download on the App Store

Kopec Explains Software episodes

  • #81 Is Software Getting Faster?

    Software runs on hardware. And of course, hardware has gotten faster over the past few decades by orders of magnitude. So, clearly our software is getting faster. But what do we mean by faster? And why doesn't it always "feel" like it's getting faster? In this episode we explore the underlying factors that sometimes make modern software feel slower, despite actually being faster.

    Show Notes
    • Computer latency: 1977-2017 via Dan Luu
    • Follow us on Twitter @KopecExplains.

      Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0

      Find out more at http://kopec.live

      15 min
    • #80 Logging and the Log4J Vulnerability

      Almost every large piece of software creates log files. Log files record events that happen during the execution of a program. These could be significant routine events or errors. Logs help software developers fix issues. Last week a significant vulnerability was discovered in Log4J, one of the most popular logging libraries. In this episode we explain logging and why the vulnerability was such a big deal.

      Show Notes
      • Episode 12: Open Source Software
      • Follow us on Twitter @KopecExplains.

        Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0

        Find out more at http://kopec.live

        15 min
      • #79 The Logo Programming Language

        Logo is an educational programming language that was popular in elementary school computing labs in the 1980s. A generation of programmers began their careers with Logo. Logo is based on turtle graphics, which is centered on commands that guide a virtual turtle cursor around the screen to draw lines. With just a couple very simple commands, learners can begin to draw pictures in code. In this episode we explain Logo's niche, and also talk about educational programming languages more generally.

        Show Notes
        • Episode 43: The Lisp Programming Language
        • Episode 11: What is a Programming Language?
        • Logo via Wikipedia
        • SeaTurtle
        • Scratch
        • Follow us on Twitter @KopecExplains.

          Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0

          Find out more at http://kopec.live

          13 min
        • #78 How Does Amazon Make Money?

          Amazon is the world's largest online retailer. But they are so much more. They sell cutting-edge consumer electronics like the Kindle and Echo lines, they provide services to ecommerce vendors, they provide consumer streaming services, they own physical stores, and most importantly for their bottom line, they run AWS, Amazon Web Services. In this episode we explain the importance of AWS to Amazon, look at the numbers from Amazon's most recent quarterly report, and discuss their historically low profit margins.

          Show Notes
          • Episode 56: What is the Cloud?
          • Episode 71: How Does Facebook Make Money?
          • Amazon's Q3 2021 Quarterly Report Presentation
          • Follow us on Twitter @KopecExplains.

            Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0

            Find out more at http://kopec.live

            12 min
          • #77 What is a Memory Leak?

            Memory leaks occur when a program allocates memory and fails to free it when the memory is no longer being used. They can cause the memory use of a program to balloon over time, eventually leading to performance problems or a crash. They are a common programmer error, that has been alleviated, although not eliminated, by modern programming languages. Programming languages like C and C++ use manual memory management, which requires the programmer to do some book-keeping. The programmer must keep track of all of the memory they allocated and must remember to free it. Programming languages with garbage collectors automatically free unused memory. In this episode we explain memory leaks and look at a recent case of a major memory leak in macOS Monterey as an example.

            Show Notes
            • Episode 76: What is Protected Memory?
            • More memory leaks in Monterey 12.0.1
            • Follow us on Twitter @KopecExplains.

              Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0

              Find out more at http://kopec.live

              12 min
            • #76 What is Protected Memory?

              Memory protection is a mechanism for protecting one program from another program, which ultimately protects the user. It stops malicious programs from interfering with legitimate programs, and it stops programmer errors in one program from taking down another. Every time you've been able to force quit a non-responsive application and then go on using your system with the rest of it unaffected you've been benefitting from protected memory. But personal computing operating systems didn't always have memory protection. In this episdoe we'll explain what protected memory is, its history in personal computers, and why you don't need to restart after you force quit an app.

              Show Notes
              • Episode 40: What is the Memory Hierarchy?
              • Episode 2: What is an Operating System?
              • Follow us on Twitter @KopecExplains.

                Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0

                Find out more at http://kopec.live

                12 min
              • #75 Why are Technical Interviews so Intimidating?

                The application process for a job in software development or software engineering typically involves what's known as a "technical interview." Technical interviews are notorious for being intimidating and exclusionary of otherwise good candidates. Technical interviews may involve whiteboarding, live coding, brain teasers, or even take-home projects. In this episode we'll explain what these different kinds of technical interviews are like and why they induce so much fear. We'll also discuss the bias inherent in these interviews, their pros and cons versus the alternatives, and how to best prepare for them.

                Show Notes
                • Episode 62: What is an Algorithm?
                • Episode 61: What is a Data Structure?
                • Episode 57: Version Control Systems, Git, and GitHub
                • HackerRank
                • LeetCode
                • Cracking the Coding Interview via Amazon
                • Follow us on Twitter @KopecExplains.

                  Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0

                  Find out more at http://kopec.live

                  15 min
                • #74 Hackers (1995): Fact or Fiction?

                  Hackers is a cult classic 1995 movie about a group of teenage hackers and their counter culture. The plot revolves around an online battle between the teenagers and a nefarious corporate cyber security expert. In this episode we breakdown how technologically accurate the movie is. What was real, and what was pure fiction? We also review it.

                  Show Notes
                  • Ghost in the Wires by Kevin Mitnick via Amazon
                  • Hackers via Amazon Prime
                  • Hackers via Wikipedia
                  • Follow us on Twitter @KopecExplains.

                    Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0

                    Find out more at http://kopec.live

                    16 min
                  • #73 The Swift Programming Language

                    Swift is one of the top ten most popular programming languages in the world by almost any ranking or measure. Yet, it's also a niche language. That seems contradictory, until you know that it's only widely used for building apps on Apple platforms. In this episode, we discuss the history of Swift, what makes it unique, and where it's been going.

                    Show Notes
                    • Episode 11: What is a Programming Language?
                    • Episode 35: The C Programming Language
                    • Episode 69: The Objective-C Programming Language
                    • Follow us on Twitter @KopecExplains.

                      Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0

                      Find out more at http://kopec.live

                      16 min
                    • #72 The Missouri Governor and Tech Illiterate Leadership

                      Last week a journalist in the St. Louis Post-Dispatch reported on a vulnerability they discovered in the Missouri Department of Elementary and Secondary Education's website that exposed the social security numbers of individual educators. The social security numbers were being exposed in the public facing HTML of the site, making them easily accessible to anyone with a web browser. The journalist disclosed the vulnerability to the state government before publishing the story so it could be fixed. However, the Missouri governor claimed that the journalist had hacked the government and announced that the journalist would be investigated by state police. In this episode we discuss the incident, explain why it was far from hacking, and talk about how it's another example of technologically illiterate leadership. We then broaden the case to include leaders at all levels of government and propose a solution.

                      Show Notes
                      • Missouri teachers’ Social Security numbers at risk on state agency’s website via St. Louis Post-Dispatch
                      • Episode 6: How does the Web work?
                      • Episode 44: Google v. Oracle
                      • Episode 59: What is HTML and CSS?
                      • Episode 17: What is Encryption?
                      • Follow us on Twitter @KopecExplains.

                        Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0

                        Find out more at http://kopec.live

                        14 min

                      About Kopec Explains Software

                      From the publisher's feed

                      Each week we make a software-related technical topic intelligible. We aim to help you develop an intuitive understanding of each subject, instead of emphasizing formal definitions. Join us as we learn…