Kopec Explains Software - podcast cover

Kopec Explains Software

David Kopec, Rebecca Kopeckopec.live
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.
Last refreshed:
Follow this podcast in the Metacast mobile app to refresh it and see new episodes.
Download Metacast podcast app
Podcasts are better in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Episodes

#135 Hacking the Classic Mac OS

The Classic Mac OS refers to the operating system that Apple Macintosh computers ran from 1984 to 2001. While it was one of the first popular operating systems to feature a graphical user interface, it hit some very real growing pains by the 1990s. In this episode, prolific hacker of the classic Mac OS, Elliot Nunn, joins us to dive into some of the quirks of this landmark operating system. We discuss some of its unique traits, how it compares to a modern operating system, and some of Elliot's p...

Mar 20, 20251 hr 23 minEp. 135

#134 The CrowdStrike Incident

On July 19th, 2024, the cybersecurity firm CrowdStrike released an update for its Falcon Sensor software that brought down millions of Windows computers around the world. Some of these computers were involved in critical infrastructure like airlines, hospitals, and governments. Falcon Sensor, which hooks into the Windows kernel, was certified by Microsoft and cryptographically signed. The update triggered a classic (and common) bug reading past the end of an array. It not only crashed Windows, b...

Aug 12, 202416 minEp. 134

#133 Ad Blockers

Approximately one in four consumers uses an ad blocker. But do they stop to consider whether that is actually a good thing for them? In this episode, we briefly touch on the technical aspects of ad blockers before having a larger discussion around the ethical and economic considerations of ad blocking technology. Show Notes Episode 6: How Does the Web Work? Episode 82: What Are Cookies? Ad Blocking - academic article mentioned in episode Follow us on X @KopecExplains . Theme “Place on Fire” Copy...

Jul 21, 202416 minEp. 133

#132 What is Machine Learning?

Machine Learning is a discipline within the broader field of Artificial Intelligence concerned with using insights from datasets to make predictions, classify new data points, and generate content. The algorithms used vary greatly in complexity and the real world applications that they are applicable to. Instead of concentrating on any particular algorithm, in this episode we aim to provide a broad understanding of machine learning and what it is used for. We also discuss bias in datasets and so...

Jun 02, 202422 minEp. 132

#131 Abandonware

Abandonware is old software that is no longer commercially available. It's not a legal term, and in fact it's not legal to download most of the software that is termed "abandonware." In this episode we explain what abandonware is, the different legal situations that old software finds itself in, and we discuss whether or not downloading abandonware is ethical. Show Notes Episode 10: What is an Emulator? Episode 26: Napster Follow us on X @KopecExplains . Theme “Place on Fire” Copyright 2019 Creo...

Apr 19, 202420 minEp. 131

#130 Grace Hopper

Grace Hopper is one of the most iconic people in the world of software. Her career as a mathematician, software innovator, computer science advocate, programmer, and technical leader spanned the early era of computing through to the 1990s. One of the first notable computer programmers, Hopper developed the first programming text book, one of the first compilers, and perhaps most importantly she was the visionary who ideated and developed the first programming language with an English-like syntax...

Mar 18, 202420 minEp. 130

#129 BASIC

The creation of BASIC was one of the most important steps in the democratization of computing. BASIC, coupled with the Dartmouth Time Sharing System, was developed by math professors John Kemeny and Thomas Kurtz along with a team of undergraduate students at Dartmouth College in 1964. They revolutionized who could use and access a computer. In the 1970s BASIC became the defacto standard interface to early personal computers. In this episode we contextualize BASIC, tell its story in broad strokes...

Feb 01, 202419 minEp. 129

#128 Copyright & Machine Learning Models

Many large sophisticated machine learning models, like those employed in generative AI, are trained on immense amounts of copyrighted images or text. How is that legal? In this episode we delve into the exceptions to copyright law that enable such uses to not be seen by courts as infringement. This includes expressive vs functional uses of a copyrighted work, fair use, and the possibility of a data mining safe harbor law. We also discuss whether such interpretations are to the benefit or detrime...

Dec 11, 202319 minEp. 128

#127 The Google Search Antitrust Lawsuit

In 2020 the Trump administration and eleven state attorney generals initiated an antitrust lawsuit against Google for its alleged anti-competitive behaviors in the search engine market. Last month, the lawsuit went to trial. In this episode we explain what a monopoly is, the government's antitrust allegations, and weigh-in on whether we agree that Google has abused its monopoly position. We also provide some critical background information necessary to better understand the lawsuit. It's worth n...

Nov 13, 202317 minEp. 127

#126 How Does Google Make Money?

Alphabet, the parent company of Google, is one of the largest companies in the world by market capitalization. But where does all of the revenue come from to support that? In this episode we analyze Alphabet's third quarter earnings report and earnings call. We delve into the different categories of revenue, how they breakdown as a percentage, what they mean, and some other interesting details that we noticed. By the end of the episode you will have a solid understanding of what's driving Google...

Oct 30, 202316 minEp. 126

Classic Episode: iOS vs. Android (2020)

In this episode, originally published in 2020, we discuss the similarities and differences between iOS and Android. We delve into their history, business models, developer ecosystems, and user experiences. Does it really matter if you use iOS or Android? Listen to this episode and find out. Show Notes Episode 89: Multi-Touch Episode 99: Android App Development Follow us on X @KopecExplains . Theme “Place on Fire” Copyright 2019 Creo , CC BY 4.0 Find out more at http://kopec.live Read transcript...

Oct 16, 202337 min

#125 What is a Sandbox?

In software, a sandbox is an isolated environment that limits the resources that a particular application can access. Sandboxes are used to protect the security and privacy of the user. All Web apps and much consumer software running on modern operating systems like iOS, Android, macOS, and Windows runs in a sandbox. We also use our general definition of sandbox to discuss their use in software development. A sandboxed, development version of a software product doesn't affect the end users of th...

Oct 02, 202312 minEp. 125

#124 What is a Cache?

We explain what caches are, and where they're typically used. We can think of a cache as a piece of temporary fast memory used for the retrieval of pre-computed expensive calculations or high latency resources. Caches can exist in hardware or in software. Beyond the CPU caches and web browser caches that most are familiar with, in this episode we also dive into specific use cases of caches in common types of apps. Show Notes Episode 123: What is a Hash Table? Follow us on X @KopecExplains . Them...

Sep 19, 202312 minEp. 124

#123 What is a Hash Table?

Hash tables are some of the most widely used and powerful data structures. They allow for the efficient storage of key-value pairs. Keys are identifiers that we want to lookup data by, while values are the actual data. Hash tables underly common abstract data types in programming languages used for key-value data known as dictionaries, maps, or associative arrays. Hash tables can accomplish lookups, insertions, updates, and deletions in constant time on average. In this episode we explain what h...

Sep 04, 202320 minEp. 123

#122 Open Source Licenses

Understanding open source licenses is critical if you're a software developer. What are your rights and responsibilities when you incorporate an open source library in your program? In this episode we explain why we have licenses, the different types of open source licenses, and best practices for an open source practitioner. Note that the licenses we refer to as laissez faire licenses in this episode, are also widely known as permissive licenses. Show Notes Episode 12: Open Source Software Epis...

Aug 21, 202324 minEp. 122

#121 Shareware with Richard Moss

Shareware was a major distribution model for consumer software and games from the 1980s through to the 2000s. We’re privileged to be joined on the show by journalist and tech historian Richard Moss, the author of "Shareware Heroes: The renegades who redefined gaming at the dawn of the internet." In the most common scenario, a piece of shareware is distributed free of charge but users pay a fee to "register" their copy which may include unlocking additional features or content. Some of the most p...

Aug 07, 202344 minEp. 121

Classic Episode: What is a Byte? (Remastered)

We’re out this week, so we remastered a classic episode from 2020. It’s our third episode—a layperson’s introduction to bytes! Original description below: What is a Byte? In this episode we go down to the fundamentals and explain how data is represented in a computer. We discuss what a bit is, both at the hardware level and the software level. Then we discuss other terms like kilobyte, megabyte, gigabyte, and terabyte. We give various examples of real world files and their storage needs. Finally...

Jul 24, 202321 min

#120 What is FreeBSD?

FreeBSD is probably the most popular operating system that most people have never heard of. Currently celebrating its 30th anniversary, FreeBSD is a performant, secure, Unix-like operating system with many advanced features that fills a lot of the same rolls as Linux, but is developed with quite different philosophical underpinnings. In this episode we explain what FreeBSD is, why some companies choose to use it instead of Linux, and expose some of the common consumer devices that you may not be...

Jul 11, 202317 minEp. 120

#119 Myths About Open Source Software

There are many misconceptions about open source software, even amongst those who think they understand it. In this episode we dispel five of the most common myths about open source software: Open Source Software is non-commercial Open Source Software is insecure Open Source Software is the same as public domain software Any piece of software that has its source code available is open source Open Source Software is the same as Free Software Show Notes Episode 12: Open Source Software Episode 68: ...

Jun 26, 202313 minEp. 119

#118 Five ChatGPT Myths

ChatGPT and other tools based on large language models (LLMs) have taken the software world by storm. While their capabilities are incredible, they have also sparked a lot of fear, doubt, and hyperbole. In this episode we dispel five myths about ChatGPT and similar tools: 1. That they represent human-level intelligence 2. That they will cause widespread permanent unemployment 3. That they're accurate 4. That they can create original thought on a par with the best humans and 5. That they came out...

Jun 12, 202321 minEp. 118

#117 Early Video Game Console Software

Early video game consoles (1977-1994) had primitive hardware, no operating systems, and software that was distributed on ROM chips embedded in plastic cartridges. Yet, some of the most iconic gaming software of all time was developed on these systems. What programming language did they use? How did they work without a graphics library and operating system? We use the Nintendo Entertainment System (NES) as a lens to discuss early video game console software in this episode. Show Notes Episode 10:...

May 29, 202314 minEp. 117

Classic Episode: What is an Operating System? (Remastered)

We're travelling this week, so we remastered a classic episode from 2020. It's our second episode—operating systems explained for laypeople. Checkout the show notes below for other classic episodes about operating systems. Original description: This week we discuss the most essential layer of a computer’s software, the operating system. We describe what an operating system is. We denote the differences between popular operating systems. The varying operating system business models are described....

May 15, 202330 min

#116 The Smallest Possible Programming Language

How small can a programming language be and still be a programming language? In order for a programming language to be able to compute the same sorts of problems as any other language it must be Turing-complete. Amazingly, there is a programming language that has just eight commands, represented by eight single symbols, that is Turing-complete. In this episode we describe what it means to be Turing-complete and how this tiny language does it. Show Notes Episode 11: What is a Programming Language...

May 01, 202312 minEp. 116

#115 Why Do Strong Passwords Matter?

Strong passwords are so annoying to type-in and they're even more annoying to remember. Yet just about every modern website and app requires them. Why do we need special characters and numbers and different cases in every password we make? In this episode we explain how passwords are stored, and why a weak password stored securely is still a weak password. Show Notes Episode 17: What Is Encryption? Follow us on Twitter @KopecExplains . Theme “Place on Fire” Copyright 2019 Creo , CC BY 4.0 Find o...

Apr 17, 202311 minEp. 115

#114 What is an Instruction Set Architecture?

An instruction set architecture (ISA) is a specification of the instructions that a microprocessor understands as well as the infrastructure necessary to support those instructions including registers and a way to communicate with memory. Each microprocessor that implements an ISA may differ in the specifics of its circuitry. But all of the microprocessors that support the same ISA can execute the same machine code. Therefore machine code is specific to a single ISA and two microprocessors that ...

Apr 03, 202320 minEp. 114

#113 The Go Programming Language

Go, a Google-backed programming language, is by some measures one of the ten most popular programming languages in the world. Although it's a general purpose language, it's also an opinionated one. The team of veteran language designers, highly influenced by C and disenchanted with C++, felt it was important to keep things simple. Since its launch in 2009, the language has not changed much. Its simple syntax and strong concurrency primitives have helped it become a significant player in the worl...

Mar 20, 202321 minEp. 113

#112 Functional Programming

Functional programming languages fit within a declarative paradigm and often have several key characteristics in common: immutable data types, pure functions, a distaste for global state, a preference for recursion over loops, first-class functions, and the liberal use of higher-order functions. We explain what these characteristics mean, why functional programming has been increasingly popular, and how it has influenced mainstream popular programming languages to incorporate some of its ideas. ...

Mar 06, 202322 minEp. 112

#111 The Apple Lisa

Last month marked the 40th anniversary of the Apple Lisa. The Lisa was an important evolutionary link in the history of the personal computer between the innovations at Xerox's PARC laboratory where the graphical user interface (GUI) was first conceived, and the modern GUIs that we are familiar with today. Released in 1983, the Lisa predated the Macintosh by a year and Windows by almost three years. Yet, the Lisa was a commercial failure. In this episode we discuss the Lisa's features, the reaso...

Feb 20, 202313 minEp. 111

Classic Episode: What Is Software? (Remastered)

We're out sick this week, so we remastered our first ever episode. It's a little more general in scope than what we typically cover on the podcast, but we think it still holds up. We'll see you in two weeks! We define software. What is software? How is it different than hardware? What is the language of software? What are the different kinds of software? Who makes software? How do they make it? Follow us on Twitter @KopecExplains . Theme “Place on Fire” Copyright 2019 Creo , CC BY 4.0 Find out m...

Feb 06, 202332 min

#110 What Is Mastodon?

Mastodon is a social network currently attracting significant buzz in the tech world. A lot of its new users are part of an exodus from Twitter. But how does Mastodon differ from Twitter? It's open source, run by a non-profit, and uses a federated model. We explain why this matters and some of its downsides in this episode. Show Notes Mastodon Mastodon on Wikipedia Most popular social networks worldwide as of January 2022 via statista Episode 71: How Does Facebook Make Money? Follow us on Twitte...

Jan 23, 202312 minEp. 110
For the best experience, listen in Metacast app for iOS or Android