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. S...
Dec 13, 2021•12 min•Ep. 79
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 ...
Dec 06, 2021•11 min•Ep. 78
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 ...
Nov 29, 2021•12 min•Ep. 77
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 ha...
Nov 22, 2021•11 min•Ep. 76
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 bi...
Nov 15, 2021•15 min•Ep. 75
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 o...
Nov 08, 2021•16 min•Ep. 74
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...
Nov 01, 2021•16 min•Ep. 73
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...
Oct 25, 2021•14 min•Ep. 72
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 ...
Oct 18, 2021•16 min•Ep. 71
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 S...
Oct 11, 2021•22 min•Ep. 70
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 epis...
Oct 04, 2021•14 min•Ep. 69
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 t...
Sep 27, 2021•18 min•Ep. 68
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 ...
Sep 20, 2021•19 min•Ep. 67
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...
Sep 13, 2021•15 min•Ep. 66
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” Copyrig...
Sep 06, 2021•14 min•Ep. 65
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 expand...
Aug 30, 2021•13 min•Ep. 64
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 episod...
Aug 23, 2021•16 min•Ep. 63
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 Ep...
Aug 16, 2021•15 min•Ep. 62
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 bet...
Aug 09, 2021•21 min•Ep. 61
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 “...
Aug 02, 2021•15 min•Ep. 60
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...
Jul 26, 2021•13 min•Ep. 59
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: Versio...
Jul 19, 2021•13 min•Ep. 58
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 . The...
Jul 12, 2021•16 min•Ep. 57
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 N...
Jul 05, 2021•16 min•Ep. 56
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 E...
Jun 28, 2021•13 min•Ep. 55
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: Wha...
Jun 21, 2021•15 min•Ep. 54
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 C...
Jun 14, 2021•18 min•Ep. 53
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: Op...
Jun 07, 2021•14 min•Ep. 52
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...
May 31, 2021•16 min•Ep. 51
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 Game...
May 24, 2021•18 min•Ep. 50