
Kopec Explains Software
We make software-related technical topics intelligible. We aim to help you develop an intuitive understanding of each subject, instead of emphasizing formal definitions. Join us as we learn about the wide world of software.
Latest episodes

May 17, 2021 • 19min
#49 Apple vs Facebook on App Tracking
Starting with iOS 14.5, Apple forces developers who want to track users across multiple different apps to get permission on a per app basis. In this episode we talk about the origins of this policy, why it has irked Facebook, and how the conflict has so far played out between the two companies. We get into what it means to be tracked, how the different companies' business models affect their priorities with regards to privacy, and our own opinions on the conflict.
Show Notes
Facebook DESTROYS Apple — The Truth via Rene Ritchie
User Privacy and Data Use via Apple Developer
Follow us on Twitter @KopecExplains.
Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0
Find out more at http://kopec.live

May 10, 2021 • 22min
#48 What's it Like Studying Computer Science in College?
This podcast dives into what it's like to study computer science in college, including the necessary qualities for success, the curriculum followed, and the outcomes of earning a degree. It discusses the differences in CS programs, the various subdisciplines that can be studied, and offers advice on how to choose a program.

May 3, 2021 • 18min
#47 The C++ Programming Language
Bjarne Stroustrup, creator of C++, discusses the origins of the language, its relationship with C, and its constant evolution and complexity. The reputation of C++ as a programming language is explored, including its appeal to experienced programmers and its suitability for beginners. The pros and cons of using C++ as a first language are also discussed.

Apr 26, 2021 • 17min
#46 What is The Internet of Things?
It seems like every electric device that we buy today is connected to the Internet. This movement is known as the Internet of Things, or IoT for short. Some people think "Internet of Things" is a specific term, but the truth is that it's very amorphous. There's no exact parameters that make something an IoT device other than it being a thing that's connected to the Internet. Generally the term excludes traditional computers like your PC or your smartphone. If you bought it ten years ago and it was not connected to the Internet, and you buy it today and it is, then it's generally something that's considered an Internet of Things device. In this episode we discuss some of the costs and constraints associated with Internet of Things devices, and how hobbyists and companies can use low cost prototyping platforms like Arduino.
Show Notes
Episode 19: What is Linux?
Arduino
Follow us on Twitter @KopecExplains.
Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0
Find out more at http://kopec.live

Apr 19, 2021 • 26min
#45 Two Software Disasters
While software has reduced human error in many industries, when software errors are made they can have tragic consequences. The Boeing 737 MAX crashes, occurring shortly after the introduction of the plane, were due in part to a software error in a flight maneuvering system called MCAS.
Some software developers in the 20th century chose to use 2 digits to represent each date, which led to the Y2K bug when the year hit 2000. They saved 1 byte per date, but systems that used 2 digits would roll dates from 1999 to 1900. Mitigating the problem cost hundreds of billions of dollars.
We discuss whether these software disasters were software errors, human errors, or some combination of the two. We also discuss the follow-up to the Y2K issue, the upcoming 2038 bug.
Show Notes
Boeing 737 MAX groundings via Wikipedia
Year 2000 problem via Wikipedia
Episode 32: What is Unix?
Follow us on Twitter @KopecExplains.
Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0
Find out more at http://kopec.live

Apr 12, 2021 • 9min
#44 Google v. Oracle
Last week the Supreme Court of the United States made a decision in the case known as Google LLC v. Oracle America, Inc. The case centers on whether the use of certain Java technology in Android infringed on Oracle's copyright. In particular, it's concerned with whether Google's reimplementation of Java is legitimate in copying much of the Java standard library's APIs. The legal battle between these tech giants actually began in 2010. For 11 years, the battle has raged back in forth in lower courts over billions of dollars of potential damages. The case also has far-reaching implications for the software industry. Is it "fair use" to reimplement a copyrighted API? If it's not, many software products would be in violation.
Show Notes
Google LLC v. Oracle America, Inc. Opinion via supremecourt.gov
Follow us on Twitter @KopecExplains.
Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0
Find out more at http://kopec.live

Apr 5, 2021 • 15min
#43 The Lisp Programming Language
Explore the origins and impact of the Lisp programming language, including its unique characteristics like homoiconicity and automatic memory management. Delve into Lisp syntax with its prefix notation and frequent use of parentheses. Discover the importance and applications of Lisp in AI, web development, and beyond. Learn about Lisp's influence in academia, its impact on other languages, and the power of lists in Lisp.

Mar 29, 2021 • 17min
#42 What was DOS?
Microsoft became the dominant player in personal computer operating systems through the release of MS-DOS for the IBM PC. Microsoft would go on to license DOS to the many manufacturers building PC clones, eventually reaching a market share upwards of 90% in the personal computer operating system space. MS-DOS was the dominant personal computer operating system of the 1980s and early 1990s. All early versions of Windows were built on top of it. Yet, today, young computer users are often not even aware it existed. What was MS-DOS? Where did it come from? What is its legacy? All of that and some good stories in this episode of Kopec Explains Software.
Show Notes
Episode 16: The Personal Computer Revolution
Episode 22: Why was the IBM PC a Big Deal?
Episode 21: How have UIs Evolved?
CP/M via Wikipedia
MS-DOS via Wikipedia
PCJS Emulator Running DOS in your Browser
Follow us on Twitter @KopecExplains.
Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0
Find out more at http://kopec.live

Mar 22, 2021 • 24min
#41 How to Pick an Internet Service Provider
Selecting an Internet Service Provider (ISP) can be difficult if you don't know the terminology. How is connection speed measured? How does download speed differ from upload speed? What is latency? What's a data cap? We talk about all of this and more. Plus, we compare in general terms the different kinds of connection modalities, including dial-up, cable, fiber, satellite, and DSL.
Show Notes
Episode 3: What is a Byte?
Episode 5: How does the Internet work?
Follow us on Twitter @KopecExplains.
Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0
Find out more at http://kopec.live

Mar 15, 2021 • 17min
#40 What is the Memory Hierarchy?
A modern computer doesn't just have one type of memory. It has disk, RAM, CPU caches, CPU registers, and much more. In this episode we dive into the different types of memory and how they work together. We delineate each type by capacity, latency, and permanence. The memory hierarchy is a classic trade-off between space and time. We also discuss other types of memory within our computing systems.
Show Notes
Episode 3: What is a Byte?
Follow us on Twitter @KopecExplains.
Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0
Find out more at http://kopec.live