Fatal Error

Follow Fatal Error
Share on
Copy link to clipboard

Fatal Error is a weekly show hosted by software developers Soroush Khanlou and Chris Dzombak. We discuss topics at the cutting edge of iOS software architecture, Swift, and best practices.

Soroush Khanlou & Chris Dzombak


    • Jun 11, 2018 LATEST EPISODE
    • infrequent NEW EPISODES
    • 27m AVG DURATION
    • 94 EPISODES


    Search for episodes from Fatal Error with a specific topic:

    Latest episodes from Fatal Error

    70. The Finale

    Play Episode Listen Later Jun 11, 2018 45:41


    In the final episode of Fatal Error, Chris and Soroush go through some follow-up, then recap the news from WWDC. 59. Why did they even hire Chris?? Swift Unwrapped Ghost Animoji has a tongue! (h/t @parrots) Platforms State of the Union CodeRunner Steve S Smith Marzipan Thread Jake Marsh on Intents UNNotificationContent.threadIdentifier One of many articles on SMS hijacking via SS7 (search the Web for “SS7 SMS Hijack” for more) YubiKey Social engineering SMS code Chromium Touch ID second factor (Tweet) Published after we recorded the episode: The Pixelbook's power button can double as a U2F security key Thank you for your support! Tweets & photos from the live show at WWDC: From @_ivancr From @_jessetipton From @jbradforddillon From @freak4pc

    Teaser: 70. The Finale

    Play Episode Listen Later Jun 11, 2018 1:51


    In the final episode of Fatal Error, Chris and Soroush go through some follow-up, then recap the news from WWDC.Tweets & photos from the live show at WWDC:From @_ivancrFrom @_jessetiptonFrom @jbradforddillonFrom @freak4pc

    69. (null)

    Play Episode Listen Later May 25, 2018 36:09


    This week, Chris and Soroush talk about null, the billion dollar mistake. They talk about its past, its present and maybe even its future. Nice!enum Brain {     case small     case medium     case large     case galaxy     case universe }Liskov Substitution PrincipleNull References: The Billion Dollar MistakePython on Google App EnginePEP 484: Type HintsThe Definitive Reference To Why Maybe Is Better Than NullThat One Optional PropertyThe algebra (and calculus!) of algebraic data typesPoint-Free episode 4: Algebraic Data TypesOptional definitionSubEthaEdit

    68. Negotiating

    Play Episode Listen Later May 11, 2018 27:39


    This week, Chris and Soroush talk about something engineers are stereotypically bad at: negotiating. In particular, we really recommend setting aside half an hour to read the first link in the show notes: Patrick McKenzie: Salary Negotiation: Make More Money, Be More Valued Stephanie Hurlburt: “Just a PSA, I know of many people (Exact #? Hm. Over a hundred?) who are programmers making high six figures a year. …”

    Teaser: 68. Negotiating

    Play Episode Listen Later May 11, 2018 1:24


    This week, Chris and Soroush talk about something engineers are stereotypically bad at: negotiating.Get a new Fatal Error episode every week by becoming a supporter at patreon.com/fatalerror.

    67. The Whatever Planet From The Sun

    Play Episode Listen Later May 4, 2018 30:52


    Soroush and Chris share some sad news, talk about Soroush's first official Swift Evolution proposal, and a post about giving presentations by Dave DeLong.Soroush’s pitch: `count(where:)` on SequenceE66: Sequence and Collection and Iterator, Oh MyHarlan Haskins & Robert Widmann - Becoming An Effective Contributor to SwiftHow to Read the Swift Standard Library SourceSoroush’s Swift PRSoroush’s Swift Evolution proposal PRSwift Unwrapped: 56: SE-206 Hashable EnhancementsChris Lattner’s comment on Soroush’s pitchE60: Soroush in the Standard LibrarySoroush’s Lazy dropLast implementationDave DeLong: You should give that presentationProductivity Strategies: Exploration vs ExploitationMulti-armed bandit experiments

    66. Sequence and Collection and Iterator, Oh My

    Play Episode Listen Later Apr 27, 2018 28:11


    Soroush's Sequence and Collection talk from Playgrounds last year [Pitch] Remove the single-pass requirement on Sequence Cryptographically secure pseudorandom number generator Ben cohen / @airspeedswift Ben's thread on Twitter Dave Abraham's Github repo  AnySequence / type erasers The Fencepost Problem Soroush's Galaxy Brain meme sequence(first:next:) Nate Cook / @nnnnnnnn Soroush's pull request for the count(where:)implementation Soroush's pull request for the count(where:)proposal

    Teaser: 66. Sequence and Collection and Iterator, Oh My

    Play Episode Listen Later Apr 27, 2018 1:59


    Soroush and Chris talk about Sequences, Collections, and Swift Evolution drama.Get a new Fatal Error episode every week by becoming a supporter at patreon.com/fatalerror.

    65. Times That Do Not Exist

    Play Episode Listen Later Apr 20, 2018 43:07


    Your Calendrical Fallacy Is...iOS 11.2.6 DateFormatter.date returns nil for cities that observe Brasília Summer TimePub quiz question,"How many time zones are there"I was still explaining to my fellow pub attendees about the complexities of time zones by the time the answer came aroundWhere is the extra 75 seconds coming from?I think a great interview question is“how do you compute the length of a string?” If the candidate responds by asking“what do you mean by‘length’ and what do you mean by‘string’?” they pass —  @txsectorBig-O NotationOle Begemann: Strings in Swift 4 (explains how family emoji are composed of person emoji + joiners)Ligatures in Unicode (Wikipedia)Accidentally QuadraticSoroush: Safety in SwiftSpoiler: Soroush’s Word Ladder SolutionBackspacing emoji composed of multiple codepoints in Google Docs:

    64. AI Apoptosis

    Play Episode Listen Later Apr 13, 2018 38:37


    This week, Chris and Soroush review what inheritance in OOP is good for … and the problems it brings with it. Also: an update on the lights in Soroush's bathroom. Chris's Alexa Aircraft Radar skill Apoptosis Episode 50: Internet of Things Wemo Mini Smart Plug Sylvania HomeKit Bulbs Philips Tap Switch Hue Labs Toggle Behavior Why inheritance never made any sense Chris: Cocoa's mutable-subclass pattern is an antipattern Chris: Multiple Inheritance vs. Traits or Protocol Extensions Ruby Forwardable module (def_delegator and def_delegators) Objective-C forwardingTargetForSelector: Multiple Inheritance in C++ and the Diamond Problem The Ghost of Swift Bugs Future Slava Pestov's Twitter thread

    Teaser: 64. AI Apoptosis

    Play Episode Listen Later Apr 13, 2018 1:46


    This week, Chris and Soroush review what inheritance in OOP is good for … and the problems it brings with it. Also: an update on the lights in Soroush’s bathroom.Get a new Fatal Error episode every week by becoming a supporter at patreon.com/fatalerror.

    63. Two People Who Like Type Systems

    Play Episode Listen Later Apr 6, 2018 40:59


    This week, after a brief detour into the subject of pizza, Soroush and Chris discuss how they’d go about the broad goal of “improving an app.”Artichoke Basille’s Pizza New York's Artichoke Basille Pizza: Why The Controversy?Ann Arbor vs DetroitYpsilanti, MIDetroit-style pizzaBilly Bishop Toronto City AirportVillanova, PACode audit - WikipediaSwiftLintSwiftFormatSwift Enums Are 'Sum' Types. That Makes Them Very InterestingYak Shaving DefinedBikesheddingGet a new Fatal Error episode every week by becoming a supporter at patreon.com/fatalerror.

    62. Convergent Swift Evolution

    Play Episode Listen Later Mar 30, 2018 47:00


    This week, Chris and Soroush discuss Soroush's efforts to implement BigDecimal in Swift, recap Teki Con, and take a detour into evolutionary biology. Teki Con talks krzysztof zablocki michael ayers dave delong Fatal Error Episode 2: View Models Model-View-Controller Applications Programming in Smalltalk-80™: How to use Model-View-Controller (MVC) Lexicographical order Georgia Aquarium Whale Shark Convergent evolution BigInt in the Swift Git repository Prototypes in the Swift Git repository Swift Advanced Operators (Overflow Operators) addingReportingOverflow dividingFullWidth Matt Gallagher - Cocoa With Love: Partial functions in Swift, Part 2: Catching precondition failures Matthew Green: On the NSA (see the first footnote) the cryptopals crypto challenges khanlou/BigDecimal on GitHub Decimal Degrees Wide Area Augmentation System and Local Area Augmentation System

    Teaser: 62. Convergent Swift Evolution

    Play Episode Listen Later Mar 30, 2018 1:34


    This week, Chris and Soroush discuss Soroush’s efforts to implement BigDecimal in Swift, recap Teki Con, and take a detour into evolutionary biology.Get a new Fatal Error episode every week by becoming a supporter at patreon.com/fatalerror.

    61. Hypothetical Testing Tricks

    Play Episode Listen Later Mar 16, 2018 33:47


    This week, Soroush and Chris get ready for Dynamic Callable and Dynamic Member Lookup by thinking through how you could use them to mock objects for testing. Plus: more Booleans, national parks, and chat about testing in general.#Pragma Conference 2017 - Soroush Khanlou - You Deserve Nice ThingsTeki ConSE-0199: Adding toggle to BoolEpisode 59: Why did they even hire Chris??Mutating and Nonmutating FunctionsGoogle Image Search: Gates of the Arctic National ParkDynamic Callable & Dynamic Member LookupMartin Fowler: Mocks Aren't StubsRoy Williams: Tautology Tests@whatjasdevreads on TwitterGist by Soroush: How to generate a hex string for push notificationsGet a new Fatal Error episode every week by becoming a supporter at patreon.com/fatalerror.

    60. Soroush in the Standard Library

    Play Episode Listen Later Mar 9, 2018 29:32


    This week, Soroush talks Chris through his efforts to make an improvement to the Swift standard library. dropLast dropLast Implementation Soroush's lazyDropLast Gist Ole Begemann: How to Read the Swift Standard Library Source Umberto Raimondi: A Short Swift GYB Tutorial Wikipedia: Circular Buffer Runtime: Command+F for the win!

    Teaser: 60. Soroush in the Standard Library

    Play Episode Listen Later Mar 9, 2018 1:25


    This week, Soroush talks Chris through his efforts to make an improvement to the Swift standard library.Get a new Fatal Error episode every week by becoming a supporter at patreon.com/fatalerror.

    59. Why did they even hire Chris??

    Play Episode Listen Later Mar 2, 2018 36:55


    This week, Chris and Soroush talk about impostor syndrome, starting a new job, team dynamics and rockstar developers. Then: toggling booleans and the Law of Demeter!“No Feigning Surprise” - Recurse CenterFear, Uncertainty, and Doubt - CocoaLove 2014Impostor SyndromeThe Inner JSON EffectBus FactorSalary Negotiation: Make More Money, Be More Valued“’You miss 100% of the shots you don’t take’” - Wayne Gretzky” - Michael Scott"Every great developer you know got there by solving problems they were unqualified to solve until they actually did it." - Patrick McKenzie“People sometimes ask me how I learned the crazy stuff I like to do. This is how.”SE-0199 – Adding toggle to BoolLaw of DemeterYou Deserve Nice ThingsGet a new Fatal Error episode every week by becoming a supporter at patreon.com/fatalerror.

    58. Pi, Delicious Pi

    Play Episode Listen Later Feb 23, 2018 36:48


    This week's episode turns into a grab bag of nerdy topics: home automation, Raspberry Pis, music, time, and also MoviePass. MoviePass Recode: MoviePass sounds too good to be true. Is it? E50: Internet of Things Home Assistant Wemo Wemo Bridge  handyPrint Raspberry Pi Software-Defined Radio ADS-B Aircraft Radar Alexa Skill Chris's alarm clock (Amazon link) Raspberry Pi FM transmitter project OwnTracks Weasley Clock Amazon owns my Echo; I'm just feeding it Mycroft Google Images: Anguilla NTP

    Teaser: 58. Pi, Delicious Pi

    Play Episode Listen Later Feb 23, 2018 1:21


    This week’s episode turns into a grab bag of nerdy topics: home automation, Raspberry Pis, music, time, and also MoviePass.

    57. Lattnerianly In-Depth

    Play Episode Listen Later Feb 16, 2018 31:51


    This week, Chris and Soroush discuss the world of independent Cocoa conferences, then debate Chris Lattner’s recently-accepted dynamic member lookup proposal.The end of the conference eraRelease NotesStrange LoopCocoa LoveCingletonGitHub: Lascorbe/CocoaConferencesNSScreencastDestroy All Software ScreencastsPoint-FreeSwift TalkTeki ConSwiftFestSoroush Khanlou - You Deserve Nice ThingsXOXO FestivalSE-0195: Introduce User-defined "Dynamic Member Lookup" TypesSE-0195 Review ThreadTensorFlowProposal draft: Introduce User-defined Dynamically "callable" TypesSourceryGet a new Fatal Error episode every week by becoming a supporter at patreon.com/fatalerror.

    56. A Chris-Shaped Scream

    Play Episode Listen Later Feb 9, 2018 35:01


    Chris and Soroush talk about boring startuppy administrative code, web frameworks in shell languages, before moving on to Vapor 3 and Swift 4.1. Conditional conformance is going to be huge. Huge! They close out the show talking about running your own little Heroku. Chris's startup Django Pyramid Cuba LOL Bash Bash on Balls What's new in Vapor 3 What's new in Swift 4.1 Swift Unwrapped on conditional conformance Welp, Swift 4.1's biggest features, conditional conformance and automatic Equatable synthesis, won't actually work together Swift Blog post on conditional conformance Dokku

    Teaser: 56. A Chris-Shaped Scream

    Play Episode Listen Later Feb 9, 2018 1:26


    Chris and Soroush talk about boring startuppy administrative code, web frameworks in shell languages, before moving on to Vapor 3 and Swift 4.1. Conditional conformance is going to be huge. Huge! They close out the show talking about running your own little Heroku.Listen to the whole episode — and get access to the entire Fatal Error back catalog — at patreon.com/fatalerror.

    55. Fired Up about Firebase

    Play Episode Listen Later Feb 2, 2018 31:51


    After an update on Chris's bread project, Soroush tells Chris about Firebase Cloud Functions, and we discuss deduplicating some report-generation code in Soroush's current project.Saltie's FocacciaChris’s breadCensysEpisode 44: Grab BagFirebase AnalyticsFirebase Realtime DatabaseFirebase StorageFirebase Cloud FunctionsAWS LambdaParse (Wikipedia)ES7 Async/AwaitBabeltoLocaleDateString()React NativeSuperdistribution - Brad CoxChris Lattner: Concurrency in Swift: One approachMozilla Hacks: Why WebAssembly is Faster Than asm.jsJavaScriptCoreCertificate Transparency

    54. Ecstatic about Enums

    Play Episode Listen Later Jan 26, 2018 41:25


    Chris and Soroush chat about the new Swift Forums, Soroush's recent Swift Evolution pitch, and recent enum-related Evolution proposals. (Plus, an update on Chris's MacBook keyboard and Soroush's server.) Space Gray iMac Pro alias ggit Let's Encrypt Chris: Deploying Let's Encrypt with Nginx on Ubuntu 16.04 Why Comcast injecting messages into web traffic is dangerous Security Tip: Disallow Root SSH Logins How To Disable Password Authentication for SSH How To Protect SSH with Fail2Ban on Ubuntu 14.04 How to Install and Configure Postfix as a Send-Only SMTP Server on Ubuntu 16.04 Jekyll Working Copy: Git on iOS Soroush's [Pitch] Remove the single-pass requirement on Sequence Swift Sequence docs: “The Sequence protocol makes no requirement on conforming types regarding whether they will be destructively consumed by iteration. As a consequence, don't assume that multiple for-in loops on a sequence will either resume iteration or restart from the beginning.” SE-0192: Non-Exhaustive Enums SE-0194: Derived Collection of Enum Cases Sourcery Enum+CaseCountable.swift

    Teaser: 54. Ecstatic about Enums

    Play Episode Listen Later Jan 26, 2018 1:29


    Chris and Soroush chat about the new Swift Forums, Soroush’s recent Swift Evolution pitch, and recent enum-related Evolution proposals. (Plus, an update on Chris’s MacBook keyboard and Soroush’s server.)Listen to the whole episode — and get access to the entire Fatal Error back catalog — at patreon.com/fatalerror.

    53. Amped about Android

    Play Episode Listen Later Jan 19, 2018 49:34


    In this episode, Chris asks Soroush about his experience diving into Android development.Android 101 for iOS Developerslyft/scoop: “micro framework for building view based modular Android applications.”Soroush’s $99 testing phoneJava 8 lambdas/closuresKotlinRuby’s tap methodthen microframework for SwiftBrandon Williams and Lisa Luo — Anything you can do, I can do betterAndroid LayoutsUIStackView vs LinearLayoutAndroid Support LibrariesGet a new Fatal Error episode every week by becoming a supporter at patreon.com/fatalerror.

    52. Spooked about Spectre

    Play Episode Listen Later Jan 12, 2018 42:58


    After a brief discussion about cryptocurrency, Chris and Soroush discuss the CPU vulnerabilites that made news recently: Meltdown and Spectre. Kodak Debuts Bitcoin Miner as Blockchain Pivot Juices Stock Price Coinbase Dogecoin Market Cap Hits $1 Billion, to Its Creator's Dismay Chris's Meltdown & Spectre reading list Wired: A Critical Intel Flaw Breaks Basic Security for Most Computers Google Project Zero: Reading privileged memory with a side-channel Meltdown and Spectre Ad blockers iMore: Best ad blockers for iOS Better Adblock Plus uBlock Origin NoScript Apple: About the security content of macOS High Sierra 10.13.2, Security Update 2017-002 Sierra, and Security Update 2017-005 El Capitan Mitigations for Chrome and Firefox A Timing Attack In Action Coding Rules (cryptocoding.net) Some more advanced & background reading on Meltdown and Spectre: In-Order vs. Out-of-Order Execution (PDF) Branch Prediction (PDF) A brief history of branch prediction CPU Cache (Wikipedia) Understanding Cache Attacks (PDF) Memory Protection (Wikipedia) Spectre mitigation approach from Google: Retpoline: a software construct for preventing branch-target-injection Comment from Chris after the show was posted: Hi, all! I really struggled through my first Spectre explanation in this episode, but if you skip ahead to about 21:20 I think our discussion gets easier to follow. — Chris

    Teaser: 52. Spooked about Spectre

    Play Episode Listen Later Jan 12, 2018 1:25


    After a brief discussion about cryptocurrency, Chris and Soroush discuss the CPU vulnerabilites that made news recently: Meltdown and Spectre.Listen to the whole episode — and get access to the entire Fatal Error back catalog — at patreon.com/fatalerror.

    51. Ticks and Trips - Aftershow

    Play Episode Listen Later Jan 5, 2018 7:29


    A few minutes of bonus discussion from after we finished recording E51. Topics include banking & credit card security, and Twitter lists.

    51. Ticks and Trips

    Play Episode Listen Later Jan 5, 2018 43:28


    We’re back! Chris and Soroush kick off this season with a more freeform podcast format, discuss baking bread, and follow up on Soroush’s Notes.app-centric productivity system.NYT Tartine Sourdough Bread RecipeNYT No-Knead Bread RecipeBread Debugging PageProfessional Baking by Wayne GisslenFolding Bread Proofer and Yogurt MakerTartine Bread by Chad RobertsonThingsOmniFocusNew features in Apple Notes on iOS 11 (including scanning and folders)BearNSUserActivitynvALTChris’s “Archive nvALT Note” AppleScriptLifehacker, Oct. 2005: The Kinkless GTD SystemTwitter thread: @mb: OH: “Notes is OmniFocus”GTD Weekly ReviewsAsk Ubuntu: How to harden an SSH server?Secure Secure ShellGet a new Fatal Error episode every week by becoming a supporter at patreon.com/fatalerror.

    50. Internet of Things

    Play Episode Listen Later Nov 13, 2017 52:25


    Chris, Soroush, and Soroush's girlfriend Taylor talk about the Internet of Things. Sonos Wemo Light Switches Wemo Plugs Eero 3-pack fast.com speed test homeassistant Thread about Wemo connection issues Raspberry Pi Homebridge Smart House An escalator can never break, it can only become stairs. You would never see an ”Escalator Temporarily Out Of Order” sign, just ”Escalator Temporarily Stairs. Sorry for the convenience. We apologize for the fact that you can still get up there.” Running terminal commands at startup with launchd “When you're house sitting for millennials and ask how the lights work” “Like, 90% of infomercial style products were designed by/for disabled people, but you wouldn't know that, because there is no viable market for them. THey have to be marketted and sold to abled people just so that any money can be made of off them and so the people who actually need them will have access.” The less than reliable Netgear Orbi The more reliable Ubiquiti router Powerline Networking

    Teaser: 50. Internet of Things

    Play Episode Listen Later Nov 13, 2017


    Chris, Soroush, and Soroush’s girlfriend Taylor talk about the Internet of Things. Listen to the whole episode — and get access to the entire Fatal Error back catalog — at patreon.com/fatalerror.

    49. Chris Writes Python

    Play Episode Listen Later Nov 6, 2017 37:29


    Soroush interviews Chris about his experience writing Python at work over the past couple of months.Chris was wrong about something! Python is not pass-by-reference; see Is Python call-by-value or call-by-reference? Neither.Pyramid Web FrameworkGoogle App EnginePython 2 or Python 3Unicode in Python 2Uncle Bob - The Dark PathOur episode on Tests and Types (Patreon-only)“if you ignore uncle bob's terrible opinions on women, you can fully appreciate how terrible his opinions on software are” — @pasiphae_goalsmypy: “an experimental optional static type checker for Python”Truth Value Testing in Python (2.7)Soroush: Falsiness in SwiftPython Anti-Patterns: Using a mutable default value as an argumentPython List ComprehensionsStack Overflow discussion: Python List Comprehension vs MapPython Lambda FunctionsIs Python call-by-value or call-by-reference? Neither (Chris was wrong about this!)PEP-8: Style Guide for Python CodePEP-20: The Zen of PythonPEP-0: list of all PEPsGet a new Fatal Error episode every week by becoming a supporter at patreon.com/fatalerror.

    48. Productivity

    Play Episode Listen Later Oct 30, 2017 33:36


    This week, Chris and Soroush chat about productivity tools and techniques. Getting Things Done (GTD) Omnifocus Things 3 Bear Notes App: The Ultimate Guide AnyList - Grocery list/recipe organizer Using AnyList with Amazon Alexa IFTTT Instapaper Pinboard Chris's Pinboard Next Episode

    Teaser: 48. Productivity

    Play Episode Listen Later Oct 30, 2017 1:28


    This week, Chris and Soroush chat about productivity tools and techniques.Listen to the whole episode — and get access to the entire Fatal Error back catalog — at patreon.com/fatalerror.

    47. Strange Loop

    Play Episode Listen Later Oct 23, 2017 25:20


    Soroush interviews Chris about his experience at this year’s Strange Loop conference.Strange LoopStrange Loop Schedule (currently showing the 2017 schedule)Alex Miller"Just-So Stories For AI: Explaining Black-Box Predictions" By Sam RitchieDecision Tree LearningRandom Forest""It Me": Under The Hood Of Web Authentication" By Yan Zhu, Garrett RobinsonLito Nikolai"Level Up Your Concurrency Skills With Rust" By David SullinsSwift Ownership ManifestoCity Museum"To Serve The People: Public Interest Technologists" By Matt Mitchell"Redux: Architecting And Scaling A New Web App At The Ny Times" By Juan Carlos Montemayor Elosua"The Holy Grail Of Systems Analysis: From What To Where To Why" By Daniel Spoonhower"Biomaterials As Ui" By Ruthie NachmanyTalks Chris hasn’t watched yet, but wants to"Keeping Time In Real Systems" By Kavya Joshi"Stop Rate Limiting! Capacity Management Done Right" By Jon Moore"Dependent Types In Haskell" By Stephanie Weirich"Observability For Emerging Infra: What Got You Here Won't Get You There" By Charity Majors"The Security of Classic Game Consoles" by Kevin Shekleton"Key to the City: Writing Code to Induce Social Change" by Jurnell Cockhren"The Future is Now" by Rachel White"Experimental Creative Writing with the Vectorized Word" by Allison Parrish"Antics, drift, and chaos" by Lorin Hochstein"Lazy Defenses: Using Scaled TTLs to Keep Your Cache Correct" by Bonnie Eisenman"Promise and Pitfalls of Persistent Memory" by Rob DickinsonPre-ShowChris’s Aircraft Radar Alexa skillSelfridge Air National Guard BaseYankee Air Museum (Ypsilanti, MI)Get a new Fatal Error episode every week by becoming a supporter at patreon.com/fatalerror.

    46. Reflecting on Swift and Objective-C

    Play Episode Listen Later Oct 9, 2017 38:57


    This week, Soroush and Chris talk about what it's like to write Objective-C after a few years of Swift. Run Loops Episode 34: Promises … in Objective-C ObjC Lightweight Generics NSNumber Chris's as_ macros List comprehensions Key-Value Coding Programming Guide Chris: Cocoa's mutable-subclass pattern is an antipattern The Responder Chain Understanding Event Handling, Responders, and the Responder Chain Event Architecture The Future of Status Board Soroush: Why I don't write Swift Soroush: Reflections on six months of Swift

    Teaser: 46. Reflecting on Swift and Objective-C

    Play Episode Listen Later Oct 9, 2017 1:24


    This week, Soroush and Chris talk about what it’s like to write Objective-C after a few years of Swift.Listen to the whole episode — and get access to the entire Fatal Error back catalog — at patreon.com/fatalerror.

    45. Fault Tolerance with Actors

    Play Episode Listen Later Oct 2, 2017 39:58


    Chris and Soroush continue their discussion of the future of concurrency in Swift by considering how Erlang achieves fault isolation with actors.Concurrency in Swift: One approachPreviously: Episode 42: ActorsErlang and ElixirErlang Hot Code SwappingConcurrent and Distributed Programming with Erlang and Elixir: Part 1Errors and ProcessesWho Supervises The Supervisors?Fault Tolerance doesn't come out of the boxConcurrency in Erlang & Scala: The Actor ModelAlan KaySmalltalkHeart of SmalltalkSmalltalk in One PageWhat is OTP? (Learn You Some Erlang)erlang/OTP on GitHub Get a new Fatal Error episode every week by becoming a supporter at patreon.com/fatalerror.

    44. Grab Bag

    Play Episode Listen Later Sep 25, 2017 42:32


    Soroush has a new mic ATR2500-USB Thanks to you, Patreon supporters, for buying us new mics! Chris is making an Alexa Skill FlightAware ADS-B Exchange Cheap ADS-B Aircraft Radar (this isn't Chris's exact setup, but it's similar) What it's like to build an Alexa skill - and how you can do it yourself Build your First Alexa Skill Fact Skill Tutorial: Build an Alexa Skill in 6 Steps AWS Lambda Creating a Deployment Package (Node.js) Speech Synthesis Markup Language (SSML) Reference Chris's ADS-B posts: Monitoring aircraft via ADS-B on OS X Quick ADS-B monitoring on OS X Soroush is using Sourcery Sourcery Sourcery in Practice Kyle Fuller: GitHub @kylef, Twitter @kylefuller Stencil SwiftTemplate Commit from Krunoslav Zaher: “Swift templates proof of concept” Equality.swifttemplate Chris helped a friend who's making a Swift CLI program dyld: Library not loaded: @rpath/libswiftAppKit.dylib Referenced from: /Users/friend/Library/Developer/Xcode/DerivedData/application-gqcotuckdopephaodrgawgaxuzwr/Build/Products/Debug/CSwiftV/CSwiftV.framework/Versions/A/CSwiftV Reason: image not found If my advice turns out to have been helpful, I'll publish it verbatim in a blog post. In the meantime, here are some relevant links I sent this friend: CocoaPods 0.36 - Framework and Swift Support What are Frameworks? Bundle Structures Swift.org - ABI Dashboard Swift.org - Package Manager Building a command line tool using the Swift Package Manager How to build a custom Swift framework and how is it related to the SPM? Getting Started with Swift Package Manager An Introduction to the Swift Package Manager SO question: OSX Command Line Tool with Swift Cocoa Library, Library not loaded SO answer about dynamic frameworks in a CLI tool SO question: Setting up a Framework on macOS Command Line apps - Reason: image not found kylef/Commander README: frameworks and rpath JP Simard on Twitter: “the app's rpath should point to the frameworks' parent locations” realm-cocoa-converter: “A library that provides the ability to import/export Realm files from a variety of data container formats.”

    Teaser: 44. Grab Bag

    Play Episode Listen Later Sep 25, 2017 1:27


    This week, Chris and Soroush discuss a few different topics including Sourcery, building an Alexa skill, and Swift CLI programs.Listen to the whole episode — and get access to the entire Fatal Error back catalog — at patreon.com/fatalerror.

    Patron Bonus: Apple Event Sept. 12

    Play Episode Listen Later Sep 18, 2017 28:05


    Chris and Soroush go a little crazy talking about this week's Apple event.

    43. Jason Brennan on Beach

    Play Episode Listen Later Sep 18, 2017 48:50


    Jason Brennan joins Chris and Soroush to discuss his new project, Beach.Jason Brennan (@jasonbrennan)BlogBeach landing pageAlan Kay https://en.m.wikipedia.org/wiki/Alan_KayHyperCard.orgHyperCard on WikipediaGuerrillas in the Myst (WIRED, 1994)Emergent BehaviorTurtles, Termites and Traffic Jams by Mitchel ResnickHSLApple Reinvents Textbooks with iBooks 2 for iPad (2012)iBooks AuthorHopscotchA LEGO Mindstorms programBret Victor: Stop Drawing Dead FishSketchJason’s fork of PrototopeSwift Playgrounds“I think I’m more excited by people’s shitty versions of things (sketches, prototypes, etc) than the finished, polished thing” — @jasonbrennanBrian Lee O’Malley on InstagramOn the BeachThread from Jason: “Teachers have to worry about ‘how to graduate from Scratch to text languages’ because there’s nothing else to graduate to”

    42. Actors

    Play Episode Listen Later Sep 11, 2017 47:46


    Chris and Soroush discuss the Actor model from Chris Lattner's concurrency manifesto. Concurrency Manifesto, part 2: Actors Actor model (Wikipedia) ActorKit: “A lightweight actor framework in Objective-C” Ownership Manifesto What are move semantics, exactly? Go FAQ: Why is there no type inheritance? Object Oriented Inheritance in Go Under the hood of Futures & Promises in Swift Episode 30: Server-Side Swift Episode 33: Server-Side Swift in Practice Note from Chris: I failed to realize this while we were recording, but move semantics should also allow passing a non-ValueSemantical reference type into an actor method — if ownership of some parameter moves to the actor method and previous references become invalid, the actor knows it can use that reference type without anyone else touching it. That's another way the alternate ownership model pairs elegantly with this actor pattern!

    Teaser: 42. Actors

    Play Episode Listen Later Sep 11, 2017 1:23


    Chris and Soroush discuss the Actor model from Chris Lattner's concurrency manifesto.Listen to the whole episode — and get access to the entire Fatal Error back catalog — at patreon.com/fatalerror.

    41. Talking Swift-Evolution with Kelvin

    Play Episode Listen Later Sep 4, 2017 33:01


    Karlie KlossKode with KlossyXcode 9’s new editor is written in Swift (WWDC 2017 Initial Impressions)swift-evolution mailing listswift-evolution GitHub repositoryKelvin’s proposal to improve Swift’s pointer typesAndy Trick on TwitterSwift 5: start your engines announced the new evolution process changesSoroush’s guard-catch proposal (see also Episode 37: Soroush’s Swift Evolution Proposal)Chris Lattner: “Because proposals must be implemented before review, the core team is pre-reviewing proposals to provide guidance of whether they are conceptually plausible for inclusion in swift. This is to avoid the problem of someone spending a bunch of time implementing something, then the core team saying ‘no, that's a bad idea’”David Hart: “To be clear: proposals need an implementation but its not important who implements it. The core team has also implied that they might help pair proposal authors with implementors, so I wouldn't worry about that part.”[swift-evolution] [RFC] Definitive Initialization and Incompatibilities with Fixed-size Arrays[swift-evolution] Plan to move swift-evolution and swift-users mailing lists to Discoursekelvin13 · GitHubnoise: Generate and combine commonly used procedural noises and distributions, in pure Swiftmaxpng: A pure swift PNG decoder and encoder for accessing the raw pixel data of a PNG fileUnified libc importMarch 2016 (Brian Gesiak): [swift-evolution] [Draft] Unify "import Darwin/Glibc" to simply "Libc"August 2017 (Kelvin): [swift-evolution] pitch: Unified libc import (again)SwiftGL/ImageReadings on procedural noiseNoise Functions and Map Generation (the end of this post includes a bunch of other interesting links)Textbooks: Texturing and Modeling, A Procedural Approach; GPU GemsAtom with Swift: swift-language-89; linter-swiftc

    40. Async/Await

    Play Episode Listen Later Aug 28, 2017 48:49


    Chris Lattner: Concurrency in Swift: One possible approach Chris Lattner: Concrete proposal for async/await in Swift Your steadfast hosts were mistaken about the existence of an Erica Sadun post. It was the topic of an as-yet-unpresented talk that she's writing. We'll link it here if and when she gives the talk. Coroutines Continuation-passing style Soroush: Async Await Episode 16: Swifty Error Handling antitypical/Result: Rob Rix's Result microframework

    Teaser: 40. Async/Await

    Play Episode Listen Later Aug 28, 2017 1:34


    This week, Chris and Soroush chat about async/await in Swift!Listen to the whole episode — and get access to the entire Fatal Error back catalog — at patreon.com/fatalerror.

    39. Our First Apps

    Play Episode Listen Later Aug 21, 2017 37:08


    Get a new Fatal Error episode every week by becoming a Patreon supporter!This week, Soroush and Chris revisit their first iOS apps.360|iDevAndrew Sardonecdzombak/CAENLabStatus-iOSInitial commits"I’m an asshole”CDZTableViewSplitDelegate.m was used so that a separate, reusable object could handle the parallax scrolling effect used on maps in the app.DZCLabStatusHelper.mScreenshotsArizona Daylight Saving TimeEpisode 6: SingletonsTransitioning to ARC Release NotesAdded August 23: Chris also gave a Git intro talk for a student group in 2012. That talk is archived here: Collaborating with Git.

    38. Third-Party Dependencies

    Play Episode Listen Later Aug 14, 2017 26:10


    #15: Not Invented Here #34: Promises … in Objective-C Soroush's OAuth Signature Generator BAKMultipartRequestBuilder Michael Jurewitz: “You never go full Brichter” Letterpress: Word Game Will Shipley: My “Doom” 20th Anniversary Stories

    Claim Fatal Error

    In order to claim this podcast we'll send an email to with a verification link. Simply click the link and you will be able to edit tags, request a refresh, and other features to take control of your podcast page!

    Claim Cancel