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

#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 Ap...

May 17, 202119 minEp. 49

#48 What's it Like Studying Computer Science in College?

What is it like to study computer science (CS) at the undergraduate level? In this episode we dive into the qualities you need to succeed, the curriculum that most programs follow, and the likely outcomes of earning your degree. We also talk about how CS programs differ, the different subdisciplines that you can study, and how to pick a program. Show Notes Episode 28: Learning to Code Episode 33: What is the Difference Between Information Technology and Computer Science? Follow us on Twitter @Ko...

May 10, 202122 minEp. 48

#47 The C++ Programming Language

Bjarne Stroustrup originally built C++ in the early 1980s as a successor to C with support for object-oriented programming. Since then, C++ has evolved in a myriad of ways, adding both features and complexity. It's found its way into many use cases, including low-level system development, application development, and game development. However, its complexity due to ongoing additions to the language without removing older features has proven controversial. In this episode we discuss how C++ got s...

May 03, 202118 minEp. 47

#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 w...

Apr 26, 202117 minEp. 46

#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 da...

Apr 19, 202126 minEp. 45

#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 cou...

Apr 12, 20219 minEp. 44

#43 The Lisp Programming Language

Lisp is the second oldest programming language still in wide use. Designed by John McCarthy in 1958, it introduced several new ideas to the field of programming languages, including but not limited to homoiconicity (code is data), the centrality of the list data structure, and automatic memory management. However, its parentheses heavy syntax and use of prefix notation have proved controversial amongst some programmers. For many decades it was the mainstay of AI research, and it even had entire ...

Apr 05, 202115 minEp. 43

#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 ...

Mar 29, 202117 minEp. 42

#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 ....

Mar 22, 202124 minEp. 41

#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” Co...

Mar 15, 202117 minEp. 40

#39 All About Bugs

Bugs in computing systems cost billions of dollars and millions of hours of lost productivity each year. In this episode we break down bugs. What are they? What causes them? How can they be prevented? And how are they fixed? We talk about the different types of bugs including hardware bugs, design bugs, and software bugs. We discuss software engineering methodologies to prevent them, safer programming languages, testing, and more. Show Notes Episode 30: Cybersecurity with Duane Dunston Episode 1...

Mar 08, 202124 minEp. 39

#38 The History of macOS

The Macintosh is one of the oldest mainstream computing platforms still in use. Its operating system has had to evolve through multiple difficult transitions to stay relevant. In this episode we discuss the history of the Mac's operating system. Or perhaps we should use the plural "operating systems," since the Mac has really been through two distinct eras with very different operating systems. From 1984 to 2001 the "Classic Mac OS" evolved, with difficulty, from supporting a machine with an 8 M...

Mar 01, 2021Ep. 38

#37 How do Podcasts Work?

We discuss the history and software infrastructure behind podcasts. Podcasts are distributed using RSS feeds and MP3 files. They are hosted on web servers and podcast feeds are indexed by podcast directories. A podcast player connects to a podcast directory when you search for shows, and it connects to RSS feeds to find new episodes of shows you subscribe to. When you play an episode, your podcast player downloads the corresponding MP3 file from a web server. We explain how all of this works. Pl...

Feb 22, 202119 minEp. 37

#36 What is XML?

Extensible Markup Language (XML) is a data-interchange format that can be used as a meta file format: A format for defining other file formats. Commonly used in Web services for transmitting the results of API calls, it also underlies everything from Microsoft Office's file formats to RSS, the format of podcast feeds. You use XML based file formats every day, even if you don't know it. In this episode we dive into how XML works, what it looks like, and how it's used by programmers, programs, and...

Feb 15, 202115 minEp. 36

#35 The C Programming Language

Today, by some measures, C is the most popular programming language in the world. The early history of C is deeply intertwined with Unix. But C, a relatively simple language, grew well beyond its roots to become fundamental to the development of modern operating systems, essential libraries, device drivers, programming language implementations, and so much more. In this episode we discuss the history of C, its most important characteristics, the reasons for its popularity, and its influence. Sho...

Feb 08, 202118 minEp. 35

#34 Video Game Distribution and GameStop

Video game distribution has always been split between two different value chains: console games and PC games. In this episode we discuss why console games have historically been distributed differently from PC games. We get into the different kinds of restrictions that each market has faced, and how online distribution has evolved. Then we talk about GameStop. We provide a little background on the company and why it has been suffering the last few years. Finally, we conclude by offering our opin...

Feb 01, 202122 minEp. 34

#33 What is the Difference Between Information Technology and Computer Science?

"Information Technology" and "Computer Science" are often confused. But they are really two different disciplines that both involve working with computers. In this episode we explain the differences. We also delve into the multifaceted meaning of the term computer science. We hope to give listeners a better understanding of what someone who works in IT does, versus what someone who works in CS does. Should you ask your software development friend for help fixing your computer? Show Notes Hackers...

Jan 25, 202116 minEp. 33

#32 What is Unix?

Unix is the most influential operating system of all time. In this episode we discuss its history, its evolution, and its philosophy. We trace Unix from its origins at Bell Laboratories, through the Unix Wars, and into the dominance of its clone, Linux. We talk about its relationship to the C Programming Language, the four points of its philosophy as outlined by McIlroy, and its future. Join us for a quick dive into Unix. Show Notes Episode 2: What is an Operating System? Episode 12: Open Source...

Jan 18, 202122 minEp. 32

#31 PowerPoint

PowerPoint has completely changed the way that we communicate. But where did it come from? In this episode we discuss the origins and impact of PowerPoint. We go through the product's history including what it displaced, its development by a startup company, and its evolution under Microsoft. Then we go into some of its criticisms and provide some tips for making great slides in the age of online presentations. Show Notes PowerPoint via Wikipedia Sweating Bullets: Notes about Inventing PowerPoin...

Jan 11, 202122 minEp. 31

#30 Cybersecurity with Duane Dunston

What is cybersecurity? This week we are joined by Professor Duane Dunston of Champlain College, an expert in cybersecurity. Duane explains the field from multiple perspectives. He helps us understand the threats, how they are mitigated, and the roles of practitioners in the field. He differentiates between the scale of threats to organizations versus individuals and leaves us with some tips to improve on the security of our systems. Show Notes Duane Dunston via Champlain College Duane Dunston on...

Jan 04, 202133 minEp. 30

#29 Why was the Original Macintosh Significant?

The original Apple Macintosh, often referred to as the Macintosh 128K, was a revolutionary device because it brought the Graphical User Interface (GUI) and the mouse to the general public. Released in 1984, the Macintosh 128K was not the first computer with a GUI and a mouse, but it was the first to be priced within the realm of possibility for regular users. Despite its significance, the original incarnation of the machine did not sell well due to several design and technical limitations. In th...

Dec 28, 202022 minEp. 29

Trailer

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 about the wide world of software. Follow us on Twitter @KopecExplains . Find out more at http://kopec.live

Dec 25, 202044 sec

#28 Learning to Code

Are you thinking about learning computer programming? In this episode we provide some tips for aspiring programmers. What programming language should you choose? What learning resources should you use? How should you setup your environment? What are some good habits as you learn? What kind of mindset should you have? All of this and more tips for overcoming some early hurdles. Show Notes Episode 11: What is a Programming Language Follow us on Twitter @KopecExplains . Theme “Place on Fire” Copyri...

Dec 21, 202020 minEp. 28

#27 Databases

When software gets sufficiently complex it needs a database management system to store, structure, and query its records. In this episode we talk about what a database is, the models behind the most common kinds of databases, and some of the different use cases for each. We concentrate on relational databases, but we also discuss some so-called "NoSQL" databases including document-oriented databases, key-value stores, and graph databases. Along the way we learn a little history and about some of...

Dec 14, 202021 minEp. 27

#26 Napster

Napster was the first popular peer-to-peer file sharing service. It introduced a generation to MP3 files and digitally swapping music. Created in 1999 by two teenagers, Shawn Fanning and Sean Parker, Napster would go on to upend the music industry and kickstart the online music revolution. But its success would be short lived. The first incarnation of Napster was forced into bankruptcy by legal challenges just a couple of years after its birth. In this episode we discuss Napster's origin, its im...

Dec 07, 202021 minEp. 26

#25 Spreadsheets

We take spreadsheets for granted, but they were actually an incredible innovation that transformed small business. In this episode we talk about the history of spreadsheets and why they are so important. We cover the first popular spreadsheet program, VisiCalc, which was the "killer app" for the Apple II. Then we talk about Lotus 1-2-3 and why it displaced VisiCalc. We finish with Microsoft Excel and areas where spreadsheets are being stretched too thin. Show Notes Episode 16: The Personal Compu...

Nov 30, 202023 minEp. 25

#24 The Browser Wars

Throughout the three decade history of the Web various browsers have battled for supremacy. In the 1990s it was Netscape Navigator versus Microsoft Internet Explorer. More recently, Google Chrome has dominated Mozilla Firefox, Microsoft Edge, and Apple's Safari. In this episode we dive into the history of the browser wars. We look at the various periods of web browser development, and identify how one browser's success or failure led to the rise of another. Ultimately we find connections that li...

Nov 23, 202028 minEp. 24

#23 The Mac's Instruction Set Architecture Transitions

Apple is transitioning the Mac from Intel's X86-64 based microprocessors to its own Apple Silicon built on the ARM64 instruction set. But the Mac has already been through two other similar transitions! In this episode we discuss the transitions and how they affect software. We delve into the 1994 transition from the Motorola 68K line to the Motorola/IBM PowerPC, and the 2006 transition from PowerPC to Intel. Finally, we talk about going from Intel to Apple Silicon. Along the way we discuss mitig...

Nov 16, 202027 minEp. 23

#22 Why was the IBM PC a Big Deal?

The IBM PC, released in 1981, set the standard for personal computing for decades. In this episode we discuss why it was so influential. We talk about IBM's market position and strategy for the PC, as well as choices the company made in terms of both hardware and software that made a standard possible. We discuss Microsoft's role in creating DOS, CP/M's failure, and how PC compatible clones worked. This episode is a follow-up to episode 16, The Personal Computer Revolution, in which we covered t...

Nov 09, 202022 minEp. 22

#21 How have UIs Evolved?

Through the history of computing, user interfaces (UIs) have evolved from punch cards to voice interaction. In this episode we track that evolution, discussing each paradigm and the machine that popularized it. We primarily focus on personal computer UIs, covering command-line interfaces (CLIs), graphical user interfaces (GUIs), touch-screen interaction, and voice interfaces. We also imagine the future, including neural interfaces, virtual reality, and augmented reality. This episode is an intro...

Nov 02, 202024 minEp. 21
For the best experience, listen in Metacast app for iOS or Android