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.
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 projects to reverse-engineer it. By the end of the episode you'll have a much stronger understanding of how the Classic Mac OS (System 1 through Mac OS 9) worked. Show Notes Elliot Nunn's Website Elliot Nunn on GitHub Elliot Nunn on Mastodon os9.shop Classic Episode: What is an Operating System? Episode 111: The Apple Lisa Episode 38: The History of macOS Episode 29: Why was the Original Macintosh Significant? You can also find Elliot on #mac68k on Libera.Chat Follow us on X @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.liveRead transcript
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, but didn't even allow it to complete its boot process. In this episode we explain what the bug was and why CrowdStrike did not catch it before it had the opportunity to bring down millions of machines. Show Notes Classic Episode: What is an Operating System? CrowdStrike's Report on the Incident Follow us on X @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.liveRead transcript
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” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.liveRead transcript
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 some common misconceptions. You may want to listen to our prior episode on Artificial Intelligence before diving into this episode. Show Notes Episode 13: Artificial Intelligence Episode 103: Expert Systems: A Forgotten Area of AI The Classic Computer Science Problems Book Series by David The Hundred-Page Machine Learning Book by Andriy Burkov Follow us on X @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.liveRead transcript
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, CC BY 4.0 Find out more at http://kopec.liveRead transcript
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 Notes Harvard IBM Mark I - Manual via Harvard The Queen of Code via YouTube Grace Hopper: The Math Genius who Taught Computers to Talk via Fierce Grace Hopper: Full lecture at the University of Tennessee, 1983 via YouTube Grace Hopper via Wikipedia FLOW-MATIC via Wikipedia Episode 11: What is a Programming Language? Episode 87: Compilers and Interpreters Episode 129: BASIC Follow us on X @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.liveRead 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 Notes Birth of BASIC Documentary by Dartmouth College via YouTube BASIC at 50 Website via Dartmouth College First BASIC Instruction Manual via Dartmouth College BASIC via Wikipedia Dartmouth Time Sharing System via Wikipedia Episode 16: The Personal Computer Revolution Episode 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.liveRead transcript
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 Notes Does 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.liveRead 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 Notes Justice Department Sues Monopolist Google For Violating Antitrust Laws via Justice Department So what exactly is Google accused of? via The Harvard Gazette Episode 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.liveRead 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 Notes Alphabet'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.liveRead 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 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.liveRead 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 Notes Episode 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.liveRead 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 Notes Episode 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.liveRead 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 Notes Episode 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.liveRead 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 Notes Episode 12: Open Source Software Episode 68: Open Source Busines Models Episode 107: Free Software vs. Open Source Software Episode 119: Myths About Open Source Software The 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.liveRead 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 Notes Richard on X/Twitter Richard on Mastodon Richard on Bluesky Shareware Heroes Website The Secret History of Mac Gaming Website First Person Shooter: The Definitive FPS Documentary Richard's Website The Life & Times of Video Games Podcast Shareware Heroes on Amazon The 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.liveRead 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.liveRead 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 Notes Episode 32: What is Unix? Episode 19: What is Linux? Episode 12: Open Source Software FreeBSD Website FreeBSD 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.liveRead 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 Notes Episode 12: Open Source Software Episode 68: Open Source Business Models Episode 107: Free Software vs. Open Source Software Linus's Law via Wikipedia Why Open Source Misses the Point of Free Software by Richard Stallman via GNU Project The Free Software Definition via Wikipedia The 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.liveRead 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 Notes What Is ChatGPT Doing … and Why Does It Work? by Stephen Wolfram AI And The Limits Of Language by Jacob Browning and Yann LeCun Episode 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.liveRead 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 Notes Episode 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.liveRead 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 Notes Episode 4: iOS vs. Android Episode 19: What is Linux? Episode 32: What is Unix? Episode 38: The History of macOS Episode 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.liveRead transcript
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 Notes Episode 11: What is a Programming Language? Brainf... via Wikipedia Programming 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 Notes 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
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 Notes Episode 3: What is a Byte? Episode 23: The Mac's Instruction Set Architecture Transitions Episode 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
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 world of server-side web development and network infrastructure. We discuss the characteristics of Go and its niche. Show Notes Episode 11: What is a Programming Language? 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
Read transcript 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. In this episode, we assume you have a working knowledge of at least one programming language. This might be one to skip for the non-programmers. Show Notes 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
Read transcript 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 reasons for its failure, and its legacy today. Show Notes Episode 16: The Personal Computer Revolution Episode 21: How have UIs Evolved? CHM Live Happy 40th Birthday Lisa! via YouTube Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live
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 more at http://kopec.live
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 Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live
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
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.live
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
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
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
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
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
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 dod 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
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
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
Android is the most popular operating system in the world, but developing apps for it can feel intimidating. In this episode we breakdown the Android development ecosystem—including the programming languages, frameworks, testing environments, and more. We approach the episode from the perspective of someone new to learning Android app development, but we also compare and contrast Android development with iOS development. Show Notes Episode 44: Google v. Oracle Android Programming: The Big Nerd Ranch Guide via Amazon 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
It has long been debated whether Apple is more of a hardware company or more of a software company. In its quarterly reports it does not delineate between the two. Instead, it breaks its revenue into four big product categories and services. It cannot be pigeon-holed—it is a fusion of hardware, software, and services. Growth in services, in particular, has been a major focus of the company for the past decade and now accounts for almost a quarter of its revenue. In this episode we get into the details of Apple's latest quarterly report and its long term strategy. Show Notes Episode 78: How Does Amazon Make Money? Episode 71: How Does Facebook Make Money? Episode 4: iOS vs. Android Apple Investor Reports Apple announces $83B fiscal third quarter Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live
An Application Programming Interface (API) is a specification for how a piece of software provides functionality to other pieces of software. APIs can broadly be categorized into two categories: local and remote. Local APIs are provided by libraries from the operating system vendor or third parties. Remote APIs are specifications for how software on one computer can provide functionality to software on another computer, typically across the Internet. Today, remote APIs are almost all web services provided over HTTPS and encoded in JSON or XML. Modern software is not built from scratch—it is layered atop other software that has its functionality exposed through APIs. Show Notes Episode 6: How does the Web Work? Episode 36: What is XML? Episode 44: Google v. Oracle Wine 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
A BIOS (Basic Input/Output System) is a piece of firmware on a PC that sits between the hardware and the operating system. It takes care of some essential functions like hardware startup tests, power management, boot device order, and control of microprocessor support chips. The original firmware on IBM PCs and PC compatibles was called the "BIOS", but most PCs manufactured in the last decade use a newer standard known as UEFI for their firmware. However, the term BIOS is still used generically to refer to UEFI compatible firmware, so in this episode we discuss PC firmware more generally than any specific BIOS. We discuss what a BIOS does and why a user may want to enter its setup mode to configure it. Show Notes Episode 2: What is an Operating System? Episode 65: What is a Device Driver? Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live
The world of data stores has become complex and fragmented. Companies find their data spread across a variety of sources with no obvious way to integrate it. Estuary is a startup that is taming that complexity by making it easier to create real-time data pipelines. In this episode we speak with Johnny Graettinger, the co-founder of Estuary, about data fragmentation, DataOps, data pipelines, and their product, Flow. Show Notes Estuary Estuary on Twitter Estuary on GitHub Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live
There is a constant battle between software publishers and pirates who find ways to redistribute proprietary software in violation of its license. In this episode we explain how copyright law protects proprietary software, the mechanisms publishers employ to reduce piracy including forms of DRM, and the means pirates use to distribute software. We also have a philosophical discussion about whether software piracy is wrong. Show Notes Hot Property: The Stealing of Ideas in an Age of Globalization by Pat Choate via Amazon Free Software, Free Society by Richard Stallman via Free Software Foundation Don't Copy That Floppy via YouTube Episode 12: Open Source Software 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
Your phone includes multiple technologies for tracking your location. Your location can be triangulated via signals to cell towers, precisely pinpointed using its GPS chip and a connection to a satellite, and approximated using WiFi signals and a big database of WiFi base station locations. In addition, an Indoor Positioning System like iBeacon can be used to track your phone inside a building. In this episode we explain the tradeoffs between these various methods and how they're typically used. Show Notes 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
By several measures, including a 2021 survey by IEEE, Python is the most popular programming language in the world. But why? What's special about it? In this episode we'll go over Python's history, key technical aspects of the language, and the niches within software development that it dominates. We also discuss some problems in the Python world. Show Notes Episode 11: What is a Programming Language? Episode 87: Compilers and Interpreters Episode 35: The C Programming Language Top Programming Languages 2021 via IEEE Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live
Today we know PayPal as a financial powerhouse. But when it was a young company, it had to innovate to survive. PayPal was the result of the merger of two startups—Confinity and X.com. Confinity was trying to be a digital payments solution for Palm Pilots, while X.com was an early online bank. PayPal first found success as a conduit for eBay payments. But perhaps PayPal's greatest innovations were in the area of fraud prevention. PayPal was a pioneer of bank account verification, CAPTCHAs, and using machine learning techniques on big data. Show Notes The Founders: The Story of PayPal and the Entrepreneurs Who Shaped Silicon Valley by Jimmy Soni via Amazon CAPTCHA via Wikipedia Random Forest 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
Binary search is an algorithm for finding an item in a sorted data set. It requires that all of the items in the data set be of the same data type and comparable to one another. In other words, the data type needs to have a defined "order." Binary search is orders of magnitude more efficient than its chief alternative, linear search, which is just an in-order search of every item in a data set. Binary search works by continuously reducing the search space by half. A binary search can find an item in a data set in a maximum of log(number of items in the data set) operations where log is base 2. We explain this simple but efficient fundamental computer science algorithm and the downside of requiring that a data set be sorted. Show Notes Episode 62: What is an Algorithm? Follow us on Twitter @KopecExplains. Theme “Place on Fire” Copyright 2019 Creo, CC BY 4.0 Find out more at http://kopec.live
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