
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

13 snips
Jan 9, 2023 • 13min
#109 How Is Memory Managed by Programmers?
Different programming languages employ different memory management techniques. The most common are manual memory management, tracing garbage collectors, and reference counting. For the programmer, each of these techniques requires different levels of bookkeeping and causes a different trade-off between safety and performance. In this episode, we explain each of these memory management techniques and why a programmer may pick one over another.
Show Notes
Episode 35: The C Programming Language
Episode 55: What is Java?
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

Dec 26, 2022 • 10min
#108 How Does Mozilla Make Money?
Mozilla is the entity that makes the Firefox web browser. It has an interesting corporate structure. The non-profit Mozilla Foundation has a for-profit subsidiary that does Firefox development. Much of Mozilla's revenue comes from an agreement with Google to be the default search engine within Firefox. In this episode we explore this arrangement and the scale of Google's payment with regards to the rest of Mozilla's finances.
Show Notes
Episode 24: The Browser Wars
Mozilla Foundation and Subsidiaries: Independent Auditors' Report and Consolidated Financial Statements via Mozilla
Firefox Money: Investigating the bizarre finances of Mozilla via The Lunduke Journal of Technology
Follow us on Twitter @KopecExplains.
Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0
Find out more at http://kopec.liveRead transcript

Dec 12, 2022 • 14min
#107 Free Software vs. Open Source Software
In the late 1990s, the open source software movement split from the free software movement. A rebranding, the open source movement has a less philosophical, or some may say moral, focus than the free software movement. Despite this, 99.9% of open source software is also free software according to their respective official definitions. In this episode we discuss the differences between the free software movement and the open source software movement.
Show Notes
Episode 12: Open Source Software
What is Free Software? via GNU
The Open Source Definition via OSI
Why Open Source Misses the Point of Free Software by Richard Stallman via GNU
Follow us on Twitter @KopecExplains.
Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0
Find out more at http://kopec.live

19 snips
Nov 28, 2022 • 17min
#106 Cross-Platform Mobile Frameworks
Cross-platform mobile frameworks enable developers to write an app once and recompile it for both iOS and Android. This can reduce development costs, but there are some downsides. In this episode we discuss the differences between major cross-platform mobile frameworks and weigh their pros and cons.
Show Notes
Episode 104: Web Apps vs. Native Apps
Episode 99: Android App Development
Episode 9: What Does it Take to Make an App?
Follow us on Twitter @KopecExplains.
Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0
Find out more at http://kopec.live

Nov 14, 2022 • 9min
#105 The 2038 Problem
On January 19, 2038, certain non-updated legacy systems that use Unix time will roll their dates around to December 13, 1901. In Unix, time is recorded as the number of seconds since January 1, 1970. Because a signed 32-bit integer is used to record this value on many legacy systems, they will run out of seconds in 2038 (a signed 32-bit integer can record numbers up to 2,147,483,647, and that's the number of seconds between January 1 1970 at 12:00:00 AM and January 19, 2038 at 3:14:07 AM). Many legacy operating systems, programming languages, and databases that use signed 32-bit integers to record Unix time are still in use in non-updated embedded systems. In this episode we explain the problem and its potential implications.
Show Notes
Episode 45: Two Software Disasters
Episode 32: What is Unix?
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

15 snips
Oct 31, 2022 • 22min
#104 Web Apps vs. Native Apps
When planning the development of a new app, one of the most basic questions to answer is whether to develop it as a Web app or as a native app. In this episode we delineate some of the pros and cons of each approach, including cost, accessibility, performance, capabilities, and more. We also discuss some alternatives like hybrid apps and cross-platform frameworks.
Show Notes
Episode 4: iOS vs. Android
Episode 6: How does the Web work?
Episode 59: What is HTML and CSS?
Episode 60: What is JavaScript?
Episode 99: Android App Development
Follow us on Twitter @KopecExplains.
Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0Episode Notes
Notes go here
Find out more at http://kopec.live

Oct 17, 2022 • 18min
#103 Expert Systems: A Forgotten Area of AI
Expert systems are a sub-discipline within artificial intelligence concerned with creating problem solving programs based on machine-encoded human domain expertise. An expert system typically consists of a knowledge base, consisting of human-defined rules, and an inference engine that can run a problem through the rules. Expert systems were a very popular and successful area of AI research in the 1970s and 1980s, but fell out of favor in the 1990s during the so-called "AI winter." Today, most of the excitement in AI is around machine learning based systems, but expert systems still have a place thanks to their ability to explain their conclusions.
Show Notes
Episode 13: Artificial Intelligence
Artificial Intelligence in the 21st Century 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

Oct 3, 2022 • 13min
#102 PDF
The PDF (Portable Document Format) file format has become ubiquitous in the computing world. PDF is a super format that can embed vector graphics, advanced typography, bitmap graphics, multiple compression technologies, fonts, encryption, interactive elements, and more. It is primarily used for creating documents that display exactly as they looked at creation on any machine. They are great for producing perfectly formatted documents for sharing, or for sending to a professional printer. Print shops often request "photo ready" documents be provided in PDF format.
Show Notes
Episode 20: How do Digital Images Work?
PDF 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

Sep 19, 2022 • 13min
#101 Accessibility
It is important to make software that is usable by all people, and that includes users with physical or mental challenges. Accessibility is about removing barriers, so that software can be used by everyone. In this episode we give a brief overview of accessibility in software. We emphasize the role that common sense good design plays, and explain how accessibility-aware developers can tap into operating system frameworks to make their software compatible with built-in device accessibility features. We provide specific simple examples to highlight how developers can plugin to OS-level frameworks, but do not provide a comprehensive list of all of the different kinds of accessibility.
Show Notes
Apple Human Interface Guidelines: Inclusion
Google Material Design: Accessibility
Follow us on Twitter @KopecExplains.
Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0
Find out more at http://kopec.live

Sep 5, 2022 • 13min
#100 Early Web Innovations
When it was released, the World Wide Web revolutionized communications and commerce. It was created by Tim Berners-Lee, who outlined its key technical achievements, philosophy, and insights in his 2000 book Weaving the Web. In this episode, we go over three of the key innovations explained in the book: networked hypertext, the URI, and decentralization. We also discuss one innovation that did not quite make it—a browser that was also an editor.
For this episode, we assume listeners already heard our earlier episode on how the Web works.
Show Notes
Episode 6: How does the Web work?
Episode 5: How does the Internet work?
Episode 24: The Browser Wars
Weaving the Web: The Original Design and Ultimate Destiny of the World Wide Web by Tim Berners-Lee 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