Episodes

  • 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. That programming language, FLOW-MATIC, was instrumental in the later development of COBOL, which she advised. COBOL is still used to this day. Her contributions were immense and her legacy has been honored by multiple national awards and the naming of the largest conference for women in software.

    Show NotesHarvard IBM Mark I - Manual via HarvardThe Queen of Code via YouTubeGrace Hopper: The Math Genius who Taught Computers to Talk via FierceGrace Hopper: Full lecture at the University of Tennessee, 1983 via YouTubeGrace Hopper via WikipediaFLOW-MATIC via WikipediaEpisode 11: What is a Programming Language?Episode 87: Compilers and InterpretersEpisode 129: BASIC

    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

  • 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, and explain why it was so successful.

    Show NotesBirth of BASIC Documentary by Dartmouth College via YouTubeBASIC at 50 Website via Dartmouth CollegeFirst BASIC Instruction Manual via Dartmouth CollegeBASIC via WikipediaDartmouth Time Sharing System via WikipediaEpisode 16: The Personal Computer RevolutionEpisode 11: What is a Programming Language?

    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

  • Missing episodes?

    Click here to refresh the feed.

  • 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 detriment of society as a whole.

    A note: as mentioned in the episode, we are not lawyers, and this episode should not be considered legal advice. It is just a discussion of the issue based on our somewhat limited understanding of the legal arguments and expanded to consider the societal implications. Also as mentioned in the episode, we based much of our understanding on the article "Does Training AI Violate Copyright Law?" by Jenny Quang which is linked below in the show notes.

    Show NotesDoes Training AI Violate Copyright Law? by Jenny Quang via Berkeley Technology Law Journal

    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

  • 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 nothing that Google is in the midst of several other antitrust lawsuits, including one recently initiated by the Biden administration related to the ads market. In this episode we exclusively concentrate on the search engine lawsuit.

    Show NotesJustice Department Sues Monopolist Google For Violating Antitrust Laws via Justice DepartmentSo what exactly is Google accused of? via The Harvard GazetteEpisode 126: How Does Google Make Money?Episode 98: How Does Apple Make Money?Episode 108: How Does Mozilla Make Money?

    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

  • 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's revenue and growth.

    Show NotesAlphabet's Investor Website (including earnings reports)Episode 71: How Does Facebook Make Money?Episode 78: How Does Amazon Make Money?Episode 98: How Does Apple Make Money?Episode 108: How Does Mozilla Make Money?

    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

  • 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 NotesEpisode 89: Multi-TouchEpisode 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

  • 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 the production version. Likewise, a sandboxed API doesn't allow a developer to accidentally complete a real-world transaction.

    Note that we combine the sometimes more specific use of the term sandbox in computer security and sandbox environment in software development to form our own more general definition in this episode.

    Show NotesEpisode 30: Cybersecurity with Duane Dunston

    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

  • 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 NotesEpisode 123: What is a Hash Table?

    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

  • 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 hash tables are used for and how they work.

    If you don't know what an array or linked list is, you probably first want to listen to our prior episode, "What is a Data Structure?" Arrays and linked lists are component parts of hash tables and referred to in the episode with assumed knowledge about them.

    Show NotesEpisode 61: What is a Data Structure?

    Follow us on Twitter @KopecExplains.

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

    Find out more at http://kopec.live

    Read transcript

  • 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 NotesEpisode 12: Open Source SoftwareEpisode 68: Open Source Busines ModelsEpisode 107: Free Software vs. Open Source SoftwareEpisode 119: Myths About Open Source SoftwareThe Open Source Definition

    Follow us on Twitter @KopecExplains.

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

    Find out more at http://kopec.live

    Read transcript

  • 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 popular PC utilities and games of the 80s and 90s were distributed largely through shareware including PKZip and Doom. Richard discusses the history, impact, and evolution of the shareware model.

    Show NotesRichard on X/TwitterRichard on MastodonRichard on BlueskyShareware Heroes WebsiteThe Secret History of Mac Gaming WebsiteFirst Person Shooter: The Definitive FPS DocumentaryRichard's WebsiteThe Life & Times of Video Games PodcastShareware Heroes on AmazonThe Secret History of Mac Gaming on Amazon

    Follow us on X/Twitter @KopecExplains.

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

    Find out more at http://kopec.live

    Read transcript

  • 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, we talk about the evolution of microprocessors from 8-bit to 64-bit.

    Follow us on Twitter @KopecExplains.

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

    Find out more at http://kopec.live

    Read transcript

  • 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 aware run code derived from it.

    Show NotesEpisode 32: What is Unix?Episode 19: What is Linux?Episode 12: Open Source SoftwareFreeBSD WebsiteFreeBSD Journal 30th Anniversary Special Edition

    Follow us on Twitter @KopecExplains.

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

    Find out more at http://kopec.live

    Read transcript

  • 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 NotesEpisode 12: Open Source SoftwareEpisode 68: Open Source Business ModelsEpisode 107: Free Software vs. Open Source SoftwareLinus's Law via WikipediaWhy Open Source Misses the Point of Free Software by Richard Stallman via GNU ProjectThe Free Software Definition via WikipediaThe Open Source Definition via Open Source Initiative

    Follow us on Twitter @KopecExplains.

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

    Find out more at http://kopec.live

    Read transcript

  • 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 of nowhere.

    Show NotesWhat Is ChatGPT Doing … and Why Does It Work? by Stephen WolframAI And The Limits Of Language by Jacob Browning and Yann LeCunEpisode 13: Artificial Intelligence

    Follow us on Twitter @KopecExplains.

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

    Find out more at http://kopec.live

    Read transcript

  • 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 NotesEpisode 10: What is an Emulator?

    Follow us on Twitter @KopecExplains.

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

    Find out more at http://kopec.live

    Read transcript

  • 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. And we talk about why operating systems are important.

    Show NotesEpisode 4: iOS vs. AndroidEpisode 19: What is Linux?Episode 32: What is Unix?Episode 38: The History of macOSEpisode 42: What was DOS?

    Follow us on Twitter @KopecExplains.

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

    Find out more at http://kopec.live

    Read transcript

  • 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 NotesEpisode 11: What is a Programming Language?Brainf... via WikipediaProgramming Languages: Principles and Paradigms by Allen Tucker and Robert Noonan 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

    Read transcript

  • 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 NotesEpisode 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

    Read transcript

  • 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 implement different ISAs are incompatible with one another. Today, the two most common ISA families are X86 and ARM. In this episode we discuss what an ISA is, how they come into play for users and programmers, and the current ISA landscape.

    Show NotesEpisode 3: What is a Byte?Episode 23: The Mac's Instruction Set Architecture TransitionsEpisode 63: Intel's Current Challenges

    Follow us on Twitter @KopecExplains.

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

    Find out more at http://kopec.live