
Kopec Explains Software
140 episodes — Page 2 of 3

Ep 89#89 Multi-Touch
Every modern smartphone and tablet uses a multi-touch user interface. Multi-touch is a relatively recent phenomenon. While the earliest research into multi-touch took place in the 1960s and 1970s, it wasn't until Wayne Westerman and Fingerworks in the early '00s that the first modern multi-touch device was created. And it took the iPhone in 2007 to make it mainstream. In this episode we explain where the technology for multi-touch came from and how it has changed the design of software. Show Notes Episode 21: How Have UIs Evolved? Episode 88: Human-Computer Interaction The One Device: The Secret History of the iPhone 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

Ep 88#88 Human-Computer Interaction
Human-Computer Interaction is a discipline at the intersection of computer science, psychology, and design. It's about making ergonomic interfaces that sit at the border between the human and the machine. In this episode we explain the field's history, what research in it entails, and its place alongside other disciplines. By the end of the episode you'll gain a general understanding of what HCI is. Show Notes Episode 21: How Have UIs Evolved? Human-Computer Interaction: An Empirical Research Perspective by I. Scott MacKenzie via Amazon The Design of Everyday Things by Don Norman via Amazon Simple and Usable by Giles Colborne 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

Ep 87#87 Compilers and Interpreters
A compiler is a program that takes source code written in a programming language and converts it into machine code that a microprocessor can understand. Compilers are sophisticated programs composed of several different phases including (but not limited to) tokenization, parsing, and machine code generation. In this episode we breakdown why compilers are important, how they work, and how they differ from interpreters. We also explain tangential topics like just-in-time compilers and transpilers. Ultimately compilers and interpreters often have to deal with several trade offs. After listening to this episode, you will better understand those tradeoffs and why one compiler will differ from another. Show Notes Episode 35: The C Programming Language Crafting Interpreters via Amazon The Dragon Book via Amazon Ukraine Humanitarian Organizations via Readdle Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live

Ep 86#86 Tim Howes
Tim Howes is a software executive, entrepreneur, investor, and computer scientist who has been at the forefront of many of the most important waves in the technology industry since the 1990s. During his PhD work in computer science, Howes co-created the Lightweight Directory Access Protocol (LDAP), which has become the industry standard means of managing directory information services. In the late 1990s he worked at Netscape on the server side of their business. After Netscape was acquired by AOL, he joined Marc Andreessen and Ben Horowitz in founding Loudcloud, one of the first companies to sell cloud services, predating Amazon Web Services by nearly a decade. Loudcloud would transform into Opsware and be purchased by HP in a successful exit. Later in his career, Howes would co-found Rockmelt, the developer of an innovative web browser, which was later purchased by Yahoo. Howes has held engineering management and technology leadership positions at HP, Yahoo, AOL, and Facebook. He now does angel investing and advises early stage technology companies. In this episode, I interviewed Tim about his career and his advice for people just starting their journeys in the industry. The interview was recorded in-person on February 12, 2022 in my office at Champlain College. Champlain has a mask-mandate, so apologies about how my voice sounded a little muffled. Show Notes Tim Howes on Twitter Tim Howes on LinkedIn Tim Howes via Wikipedia Loudcloud/Opsware 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

Ep 85#85 The End-to-End Encryption Debate
Are your messages secure? End-to-end encryption protects messages and data from being viewed by anyone but their intended recipients. However, systems that implement end-to-end encryption also prevent law enforcement from intercepting the messages of criminals. In this episode we explain end-to-end encryption and the debate surrounding it as the UK government works to prevent its implementation on Facebook. We suggest first listening to our previous episode on encryption (linked below) if you are not familiar with encryption as a concept. Show Notes Episode 17: What Is Encryption? The UK Government is reportedly preparing a PR blitz against end-to-end encryption via Engadget Microsoft handed the NSA access to encrypted messages via The Guardian Messenger’s end-to-end encrypted chats and calls are available to everyone via The Verge FBI–Apple encryption dispute via Wikipedia Episode 12: Open Source Software Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live

Ep 84#84 What Is Blockchain?
Blockchain may be one of the biggest tech buzzwords of the decade. But it's not as complicated as you may fear. Pieces of data, blocks, that follow one another chronologically are connected (the chain part) via cryptographic hashes. Each block has a cryptographic hash of the previous block, providing the ability to verify the validity of the chain. We explain the only tricky part of that description, the cryptographic hash function, and also explain why blockchain is only part of the underlying technology of bitcoin. Finally, we consider other applications of blockchain technology. Show Notes Episode 17: What Is Encryption? Episode 57: Version Control Systems, Git, and GitHub Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live

Ep 83#83 Why Was the iPhone's Software Revolutionary?
When the iPhone came out in 2007, it totally transformed the mobile industry. But what was so revolutionary about the software in even its first version? For the 15th anniversary of the announcement of the iPhone we talk about the three aspects of the original iPhone's software that set it apart from the smartphones that came before it: its robust operating system, its multi-touch user interface, and the App Store, which arrived 1 year later. We note that it wasn't necessarily the first in all of these categories, but explain why it was the most significant. Show Notes Episode 38: The History of macOS Episode 4: iOS vs. Android Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live

Ep 82#82 What Are Cookies?
Cookies are primarily used on the Web for two things: authentication and tracking. Although alternatives exist, cookies are the most popular way to provide some state for the stateless HTTP protocol. In this episode we explain what cookies are, how they work, the origin of cookies, applications of cookies, which browsers block "bad" cookies to protect your privacy, first-party versus third-party cookies, and why you need to click those popups about cookies on almost every website you visit. Show Notes Episode 6: How Does the Web Work? Episode 24: The Browser Wars Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live

Ep 81#81 Is Software Getting Faster?
Software runs on hardware. And of course, hardware has gotten faster over the past few decades by orders of magnitude. So, clearly our software is getting faster. But what do we mean by faster? And why doesn't it always "feel" like it's getting faster? In this episode we explore the underlying factors that sometimes make modern software feel slower, despite actually being faster. Show Notes Computer latency: 1977-2017 via Dan Luu Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live

Ep 80#80 Logging and the Log4J Vulnerability
Almost every large piece of software creates log files. Log files record events that happen during the execution of a program. These could be significant routine events or errors. Logs help software developers fix issues. Last week a significant vulnerability was discovered in Log4J, one of the most popular logging libraries. In this episode we explain logging and why the vulnerability was such a big deal. Show Notes Episode 12: Open Source Software Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live

Ep 79#79 The Logo Programming Language
Logo is an educational programming language that was popular in elementary school computing labs in the 1980s. A generation of programmers began their careers with Logo. Logo is based on turtle graphics, which is centered on commands that guide a virtual turtle cursor around the screen to draw lines. With just a couple very simple commands, learners can begin to draw pictures in code. In this episode we explain Logo's niche, and also talk about educational programming languages more generally. Show Notes Episode 43: The Lisp Programming Language Episode 11: What is a Programming Language? Logo via Wikipedia SeaTurtle Scratch Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live

Ep 78#78 How Does Amazon Make Money?
Amazon is the world's largest online retailer. But they are so much more. They sell cutting-edge consumer electronics like the Kindle and Echo lines, they provide services to ecommerce vendors, they provide consumer streaming services, they own physical stores, and most importantly for their bottom line, they run AWS, Amazon Web Services. In this episode we explain the importance of AWS to Amazon, look at the numbers from Amazon's most recent quarterly report, and discuss their historically low profit margins. Show Notes Episode 56: What is the Cloud? Episode 71: How Does Facebook Make Money? Amazon's Q3 2021 Quarterly Report Presentation Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live

Ep 77#77 What is a Memory Leak?
Memory leaks occur when a program allocates memory and fails to free it when the memory is no longer being used. They can cause the memory use of a program to balloon over time, eventually leading to performance problems or a crash. They are a common programmer error, that has been alleviated, although not eliminated, by modern programming languages. Programming languages like C and C++ use manual memory management, which requires the programmer to do some book-keeping. The programmer must keep track of all of the memory they allocated and must remember to free it. Programming languages with garbage collectors automatically free unused memory. In this episode we explain memory leaks and look at a recent case of a major memory leak in macOS Monterey as an example. Show Notes Episode 76: What is Protected Memory? More memory leaks in Monterey 12.0.1 Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live

Ep 76#76 What is Protected Memory?
Memory protection is a mechanism for protecting one program from another program, which ultimately protects the user. It stops malicious programs from interfering with legitimate programs, and it stops programmer errors in one program from taking down another. Every time you've been able to force quit a non-responsive application and then go on using your system with the rest of it unaffected you've been benefitting from protected memory. But personal computing operating systems didn't always have memory protection. In this episdoe we'll explain what protected memory is, its history in personal computers, and why you don't need to restart after you force quit an app. Show Notes Episode 40: What is the Memory Hierarchy? Episode 2: What is an Operating System? Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live

Ep 75#75 Why are Technical Interviews so Intimidating?
The application process for a job in software development or software engineering typically involves what's known as a "technical interview." Technical interviews are notorious for being intimidating and exclusionary of otherwise good candidates. Technical interviews may involve whiteboarding, live coding, brain teasers, or even take-home projects. In this episode we'll explain what these different kinds of technical interviews are like and why they induce so much fear. We'll also discuss the bias inherent in these interviews, their pros and cons versus the alternatives, and how to best prepare for them. Show Notes Episode 62: What is an Algorithm? Episode 61: What is a Data Structure? Episode 57: Version Control Systems, Git, and GitHub HackerRank LeetCode Cracking the Coding Interview 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

Ep 74#74 Hackers (1995): Fact or Fiction?
Hackers is a cult classic 1995 movie about a group of teenage hackers and their counter culture. The plot revolves around an online battle between the teenagers and a nefarious corporate cyber security expert. In this episode we breakdown how technologically accurate the movie is. What was real, and what was pure fiction? We also review it. Show Notes Ghost in the Wires by Kevin Mitnick via Amazon Hackers via Amazon Prime Hackers 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

Ep 73#73 The Swift Programming Language
Swift is one of the top ten most popular programming languages in the world by almost any ranking or measure. Yet, it's also a niche language. That seems contradictory, until you know that it's only widely used for building apps on Apple platforms. In this episode, we discuss the history of Swift, what makes it unique, and where it's been going. Show Notes Episode 11: What is a Programming Language? Episode 35: The C Programming Language 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

Ep 72#72 The Missouri Governor and Tech Illiterate Leadership
Last week a journalist in the St. Louis Post-Dispatch reported on a vulnerability they discovered in the Missouri Department of Elementary and Secondary Education's website that exposed the social security numbers of individual educators. The social security numbers were being exposed in the public facing HTML of the site, making them easily accessible to anyone with a web browser. The journalist disclosed the vulnerability to the state government before publishing the story so it could be fixed. However, the Missouri governor claimed that the journalist had hacked the government and announced that the journalist would be investigated by state police. In this episode we discuss the incident, explain why it was far from hacking, and talk about how it's another example of technologically illiterate leadership. We then broaden the case to include leaders at all levels of government and propose a solution. Show Notes Missouri teachers’ Social Security numbers at risk on state agency’s website via St. Louis Post-Dispatch Episode 6: How does the Web work? Episode 44: Google v. Oracle Episode 59: What is HTML and CSS? Episode 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

Ep 71#71 How Does Facebook Make Money?
Facebook's been in the news again, and as usual it's not a positive story. In this episode we dive into some of Facebook's financial statistics from their most recent quarterly filing with the SEC. We then talk about their business model and how your use of Facebook plays into it. We discuss some of the inputs into Facebook's algorithm, and how the data points you generate for Facebook are used to target you with advertisements. Finally, we touch on the Facebook whistle-blower, whether Facebook should be regulated, and how Apple has hurt Facebook's revenue. Show Notes Episode 49: Apple vs Facebook on App Tracking Facebook's Q1 2021 Filing with the SEC Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live

Ep 70#70 Steve Jobs Remembrance
Last week marked the tenth anniversary of the death of Steve Jobs. We discuss his legacy and how he inspired people in the tech industry. David also tells the personal story of his Steve Jobs fandom. Show Notes Episode 16: The Personal Computing Revolution Episode 29: Why was the Original Macintosh Significant? Books About Apple and Steve Jobs via David's Blog Becoming Steve Jobs by Brent Schlender and Rick Tetzeli via Amazon Steve Jobs by Walter Isaacson via Amazon The Presentation Secrets of Steve Jobs by Carmine Gallo 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

Ep 69#69 The Objective-C Programming Language
Objective-C was developed nearly contemporaneously with C++, yet it never achieved the same widespread level of industry acceptance. Both languages attempted to add object-oriented features to the C language, but they went about doing it in very different ways. Objective-C is a superset of C, marrying a thin object-oriented layer inspired by Smalltalk on top of the venerable C language. Today, Objective-C use is largely limited to Apple platforms where it is being replaced by Swift. In this episode we will explain the history of Objective-C and how it compares to C++. Show Notes Episode 35: The C Programming Language Episode 47: The 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

Ep 68#68 Open Source Business Models
Open source does not mean non-commercial. We start this episode by dispelling the common myths amongst the general public about the relationship between the business world and open source software. We then get into the many different business models that open source software companies use to make money. We cover six different business models, ranging from selling services to using your open source product as a so-called "loss leader." After we tour the major business models, we discuss some of the less well-known business models, like selling documentation. Show Notes Episode 12: Open Source Software Episode 65: What is a Device Driver? Episode 64: What is a Content Management System? The Cathedral and the Bazaar by Eric Raymond Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live

Ep 67#67 Clive Sinclair and his Personal Computing Legacy
Last week, influential British inventor and entrepreneur Clive Sinclair passed away. Sinclair invented some of the first slim calculators, handheld televisions, and digital watches, but he is perhaps best known for being one of the pioneers of the British personal computer industry. In the early 1980s his company, Sinclair Research, developed the hot-selling and widely cloned ZX80, ZX81, and ZX Spectrum computers. In this episode we talk about Clive Sinclair's life and the legacy of the ZX line of personal computers. Show Notes Episode 16: The Personal Computer Revolution Episode 22: Why was the IBM PC a Big Deal? Episode 3: What is a Byte? Clive Sinclair via Wikipedia Micro Men via Wikipedia ZX80 via Wikipedia ZX81 via Wikipedia ZX Spectrum via Wikipedia Sinclair QL 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

Ep 66#66 What is a Firewall?
Firewalls protect computers and private networks from threats originating across the wider Internet. They come in both hardware and software flavors. They ensure unwanted network traffic is turned away or dropped and that legitimate traffic is only routed to the appropriate application. They work by both simply blocking ports and by analyzing packet data. Windows has had a built-in firewall since Windows XP. In this episode we provide a basic overview of firewalls. Show Notes Episode 5: How does the Internet work? Episode 6: How does the Web work? Episode 18: How does Email Work? Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live

Ep 65#65 What is a Device Driver?
Every hardware peripheral connected to your computer is powered by a device driver. A device driver sits between the operating system and a hardware device. It speaks the language of the hardware. It understands its commands. It's a point of translation and control. In this episode we explain what device drivers do, why they need to be managed, and how they differ from firmware. Show Notes Episode 2: What is an Operating System? Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live

Ep 64#64 What is a Content Management System?
A content management system (CMS) is a piece of software that lives on a web server for the dynamic generation of web sites based on content that lives in a database. A CMS frees a site developer from the need to edit raw HTML and CSS to update and stylize their site. The most popular CMS in the world by far is WordPress, but there are many open source and proprietary alternatives. In this episode we explain why a CMS is useful, how it compares to a static site, and the ways that a CMS is expandable. Show Notes Episode 59: What is HTML and CSS? Episode 6: How does the Web work? Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live

Ep 63#63 Intel's Current Challenges
Intel has received a lot of bad press the last few years. It never successfully made the leap into the smartphone market. Its fab got stuck at a 14 nanometer (nm) node for several years while competing fabs pressed on to 7 and 5 nm. And it lost a huge amount of share in the X86 market to arch-rival AMD. Yet, Intel is still very profitable and it still has its chips in the majority of desktops, laptops, and servers. With new leadership, it's branching out in several new directions. In this episode we break down why Intel has faced challenges and where it's experimenting with going next. Show Notes Episode 22: Why was the IBM PC a Big Deal? Episode 23: The Mac's Instruction Architecture Transitions Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live

Ep 62#62 What is an Algorithm?
Algorithms are at the heart of computer science. And they're actually a really simple concept. What are the steps we need to take to solve a problem? The best algorithms are generic enough to be used on different problems of the same type. Software developers favor algorithms that are efficient and easy to implement. In this episode we'll discuss what an algorithm is, how algorithms are measured, how we can be sure they are correct, and some of the issues around bias in algorithms. Show Notes Episode 61: What is a Data Structure? Episode 53: Developer Tools Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live

Ep 61#61 What is a Data Structure?
The official definitions of data structures are very vague. For example, Introduction to Algorithms defines a data structure as "A way to store and organize data in order to facilitate access and modifications." They're really about collections of data. How do we put multiple pieces of data in the same place in memory and make it efficient to retrieve them or do various operations on the collection? We'll discuss two illustrative examples: arrays and linked lists. We'll explain the tradeoffs between the two and provide some analogies for them that non-programmers can understand. Show Notes Episode 11: What is a Programming Language? 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

Ep 60#60 What is JavaScript?
JavaScript is one of the most popular programming languages in the world for a simple reason: it's the only client-side programming language in every web browser. In this episode we'll discuss its purpose, history, and all of the places that it's used. We'll also get into why it is so heavily criticized. Show Notes Episode 59: What is HTML and CSS? Episode 6: How does the Web work? Episode 55: What is Java? Episode 11: What is a 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

Ep 59#59 What is HTML and CSS?
HTML, or Hypertext Markup Language, describes the content and structure of web pages. A web browser can also be thought of as an HTML document viewer. CSS, or Cascading Style Sheets, is a styling and layout description language that works hand-in-hand with HTML to define a web page's particular look. In this episode we provide a broad overview of both languages from 30,000 feet. If you have no knowledge of how the Web works, consider first checking out our previous episode "How Does the Web Work?" Show Notes Episode 6: How does the Web work? 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

Ep 58#58 GitHub Copilot's Controversies
GitHub recently launched its AI programming assistant, Copilot, in beta. Copilot can suggest lines of source code or even entire functions to the programmer for instant addition to their project. Copilot's machine learning algorithm was trained on millions of open source projects. This has led to many controversies around legal (copyright infringement), programmatic, and educational issues. In this episode we breakdown the controversies in this current events story. Show Notes Episode 57: Version Control Systems, Git, and GitHub Episode 53: Developer Tools Episode 13: Artificial Intelligence Episode 12: Open Source Software Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live

Ep 57#57 Version Control Systems, Git, and GitHub
Version Control Systems make it possible for software developers to seamlessly work together on large projects. In this episode we explain how version control systems are used and how the different kinds of version control systems compare to one another. We pay special attention to the most popular version control system, Git, and the very popular open source "social network" GitHub. Show Notes Episode 53: Developer Tools Episode 12: Open Source Software Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live

Ep 56#56 What is the Cloud?
The cloud is an amorphous term that at its heart refers to computation or storage resources that are remote, aka not on your device. What backs the modern cloud are large providers like Amazon Web Services, Microsoft Azure, and Google Cloud that provide on-demand dynamic access to resources that don't require application builders to worry about individual machines. Almost every application we used today connects to the cloud. We discuss what this really means, and why this is nothing new. Show Notes 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

Ep 55#55 What is Java?
Java, the most popular programming language in the world, is also a platform. It enables software to be written once, compiled into platform-independent bytecode, and then run on any computing device with a Java Virtual Machine. We discuss why Java was created, what the Java Virtual Machine is, and what characteristics have made Java successful. We also dive into Java's most popular applications and its future. Show Notes Episode 11: What is a Programming Language? Episode 44: Google v. Oracle Episode 47: The 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

Ep 54#54 What is Compression?
Compression is a classic trade-off between space and time. Compressed data uses less space than the original, but it takes computational time to compress and decompress the data. In this episode we discuss the purpose of compression, some basic ways that compression works, and some common applications of compression. We distinguish between lossy and lossless compression, and we talk about algorithmic techniques like run-length encoding and dictionary based compression. Show Notes Episode 51: What is Lossless Audio? Episode 3: What is a Byte? Episode 7: What is a Character Encoding? Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live

Ep 53#53 Developer Tools
You need programs to make programs. In this episode we discuss the tools programmers use to make the software you love. We discuss compilers, text editors, debuggers, profilers, documentation, integrated development environments, and more. By the end of the episode you'll have a good sense of how these myriad of components work together. Show Notes Episode 11: What is a Programming Language? Episode 28: Learning to Code Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live

Ep 52#52 One-Year Anniversary
On our 1-year anniversary of the podcast we discuss our most popular episodes, our favorite episodes, and where we're going with the podcast moving forward. We also give you a bit of a sneak peek behind the scenes as we discuss how we get prepared for an episode. Don't forget to check out our back catalog, there's an episode for everyone. Thank you so much for listening and we'll see you next week! Show Notes Episode 24: The Browser Wars Episode 11: What is a Programming Language? Episode 12: Open Source Software Episode 2: What is an Operating System? Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live

Ep 51#51 What is Lossless Audio?
Lossless audio is coming to Apple Music and Spotify. But what is lossless audio? In this episode we explain the difference between lossy compression, like MP3 files, and the lossless formats that are coming to a streaming service near you. However, anytime we record signals from our analog world in a digital form we lose information. We talk about this dilemma and what lossless audio really means for your typical listener. Next week is our 1-year anniversary episode. Send us your questions about us, the show, or your ideas for future episodes on Twitter @KopecExplains and we may feature them in the episode. Show Notes Episode 26: Napster Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live

Ep 50#50 What is DRM?
Digital Rights Management (DRM) is a software or hardware mechanism that restricts what you can do with your digital media. It may limit a movie from playing without your authenticated credentials, or stop a Nintendo cartridge from working in a third-party console. While DRM was created to limit piracy, it also may limit what you can do with your purchases. In this episode we discuss DRM from legal, technological, and consumer perspectives. Show Notes Episode 34: Video Game Distribution and GameStop Episode 26: Napster Episode 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

Ep 49#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

Ep 48#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 @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live

Ep 47#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 started, where it's used, and some of the different opinions that software developers hold about the language. Show Notes Episode 35: The C Programming Language Episode 11: What is a 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

Ep 46#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

Ep 45#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

Ep 44#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

Ep 43#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 hardware platforms designed around its efficient execution. Today, Lisp's legacy lives on through its influence on other languages and its modern dialects like Scheme and Clojure. Show Notes Episode 11: What is a Programming Language Lisp via Wikipedia Scheme via Wikipedia Clojure via Wikipedia Structure and Interpretation of Computer Programs 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

Ep 42#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

Ep 41#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

Ep 40#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