As We May Code
NSHipster
by Mattt
3y ago
Chris Lattner often describes LLVM as a process of lowering. You start at the highest level of abstraction, source code written in a programming language like Swift or Objective-C. That code is parsed into an abstract syntax tree, (AST), which is progressively transformed into lower-level, intermediate representations until it finally becomes executable binary. What if, instead of lowering source code down for the purpose of execution, we raised source code for the purpose of understanding? It’s a weird premise, I know. Bear with me. You could say that we already do this to some degree with s ..read more
Visit website
WWDC 2020
NSHipster
by Mattt
3y ago
Like everything else in 2020, this year’s WWDC had to be a little different if it was going to happen at all. When Apple first announced that the conference would be fully remote, nobody knew what that would look like, exactly. What parts of the dubdub experience would be kept in this new format? What details would be lost in translation? Could they actually pull it off? For context: Apple live-streamed its first keynote in 2013, and technical sessions in 2015. Attendees of WWDC 1997 could obtain a collection of CDs with video recordings of sessions — a far cry from the VHS tape for WWDC 1990 ..read more
Visit website
Cross-Pollination
NSHipster
by Mattt
3y ago
April is the month when apple trees start to bloom up here in the Pacific Northwest. All across Oregon’s Willamette Valley, from Portland stretching south to Eugene, long-barren branches sprout white, 5-petaled blossoms tinged with pink. Any other year, our family would be taking weekend trips southwest to Sherwood or east towards Hood River to visit their orchards. Like the Fuji and Gala varieties that predominate in this region, most apple cultivars are self-unfruitful — which is to say that they require cross-pollination to produce a good crop consistently. There are a few cultivars that ar ..read more
Visit website
Contact Tracing
NSHipster
by Mattt
3y ago
An ounce of prevention is worth a pound of cure. Early intervention is among the most effective strategies for treating illnesses. This is true not only for the human body, for society as a whole. That’s why public health officials use contact tracing as their first line of defense against the spread of infectious disease in a population. We’re hearing a lot about contact tracing these days, but the technique has been used for decades. What’s changed is that thanks to the ubiquity of personal electronic devices, we can automate what was — up until now — a labor-intensive, manual process. Muc ..read more
Visit website
Swift Logging
NSHipster
by Mattt
3y ago
In 2002, the United States Congress enacted the Sarbanes–Oxley Act, which introduced broad oversight to corporations in response to accounting scandals at companies like Enron and MCI WorldCom around that time. This act, PCI and HIPAA , formed the regulatory backdrop for a new generation of IT companies emerging from the dot-com bubble. Around the same time, we saw the emergence of ephemeral, distributed infrastructure — what we now call “Cloud computing” — a paradigm that made systems more capable but also more complex. To solve both the regulatory and logistical challenges of the 21st centur ..read more
Visit website
Xcode Build Configuration Files
NSHipster
by Mattt
3y ago
Software development best practices prescribe strict separation of configuration from code. Yet developers on Apple platforms often struggle to square these guidelines with Xcode’s project-heavy workflow. Understanding what each project setting does and how they all interact with one another is a skill that can take years to hone. And the fact that much of this information is buried deep within the GUIs of Xcode does us no favors. Navigate to the “Build Settings” tab of the project editor, and you’ll be greeted by hundreds of build settings spread across layers of projects, targets, and config ..read more
Visit website
Static and Dynamic Callable Types in Swift
NSHipster
by Mattt
3y ago
Last week, Apple released the first beta of Xcode 11.4, and it’s proving to be one of the most substantial updates in recent memory. XCTest got a huge boost, with numerous quality of life improvements, and Simulator, likewise, got a solid dose of TLC. But it’s the changes to Swift that are getting the lion’s share of attention. In Xcode 11.4, Swift compile times are down across the board, with many developers reporting improvements of 10 – 20% in their projects. And thanks to a new diagnostics architecture, error messages from the compiler are consistently more helpful. This is also the first ..read more
Visit website
RawRepresentable
NSHipster
by Mattt
3y ago
Programming is about typing. And programming languages are typically judged by how much they make you type — in both senses of the word. Swift is beloved for being able to save us a few keystrokes without compromising safety or performance, whether it’s through implicit typing or automatic synthesis of protocols like Equatable and Hashable. But the OG ergonomic feature of Swift is undoubtedly automatic synthesis of RawRepresentable conformance for enumerations with raw types. You know… the language feature that lets you do this: enum Greeting: String { case hello = "hello" cas ..read more
Visit website
Swift Development with Visual Studio Code
NSHipster
by Mattt
3y ago
Visual Studio Code (VSCode) is a cross-platform text and source code editor from Microsoft. It’s one of the most exciting open source projects today, with regular updates from hundreds of contributors. VSCode was among the first tools to support Language Server Protocol (LSP), which has played a large part in providing a great developer experience, in a variety of languages and technologies. With the previously announced now shipping in Xcode, it’s a great time to see how this integration works for yourself. This week, we’ll walk through the process of how to get started with Swift’s new Langu ..read more
Visit website
Language Server Protocol
NSHipster
by Mattt
3y ago
In October 2018, Apple announced on the Swift.org forums that it was starting work to adopt the Language Server Protocol (LSP) for Swift and C languages. At Apple we are making it a priority to support high-quality tooling for all Swift developers, including those working on non-Apple platforms. We want to collaborate with the open-source community and focus our efforts on building common infrastructure that can be shared by Xcode and other editors and platforms. To that end, [ … ] we’ve chosen to adopt LSP. Argyrios Kyrtzidis, October 15th, 2018 This is arguably the most important decision ..read more
Visit website

Follow NSHipster on FeedSpot

Continue with Google
Continue with Apple
OR