FreeBSD Broadcom Wi-Fi Improvements
Feb 7, 2018, 8:13 PM
Introduction
Since 2015, I've been working on improving FreeBSD support for Broadcom Wi-Fi devices and SoCs, including authoring the bhnd(4) driver family, which provides a unified bus and driver programming interface for these...
Unchaining Taskgated
Mar 14, 2015, 4:18 PM
On Mac OS X, application signing entitlements
enforce client-side constraints on non-AppStore (or non-Apple-distributed) applications. This is used, for instance, to prevent a non-AppStore application from using the
MapKit APIs.
Recently,...
XSmallTest Test DSL
Jun 6, 2014, 11:46 AM
I just published beta sources for XSmallTest (XSM), a minimal single-header
implementation of a test DSL that generates test cases compatible with
Xcode's XCTest:
#import "XSmallTest.h"
xsm_given("an integer value") {
int v;
...
No Exceptions: Checked Exceptions for Scala
Mar 13, 2014, 9:27 AM
I decided to sit down and solve a problem that has troubled me since I first started
working with Scala almost 6 years ago: Checked exceptions,
and specifically, the lack thereof.
The result is NX ("No Exceptions") a
Scala compiler plugin...
PLPatchMaster: Swizzling in Style
Feb 17, 2014, 5:56 PM
Introduction
Last year, I wrote a swizzling API for my own use in patching Xcode; I wanted an easy way to define new
method patches, and the API wound up being pretty nice:
[UIWindow pl_patchInstanceSelector: @selector(sendEvent:)...
Tales From The Crash Mines
Feb 6, 2014, 10:26 AM
Over at Mike Ash's blog, he's posted my first issue of "Tales From The Crash Mines". I'll be writing this as an intermittent series on the interesting bugs we've tracked down on iOS and Mac OS X, interpreting crash reports, and software...
Fix iOS Frameworks (or GTFO?)
Jan 13, 2014, 10:48 AM
In response to my post on
iOS Static Libraries, a number of people have asked for a radar they can easily submit to follow up with Apple. In the spirit of
Fix Radar or GTFO, here's a template you can use to submit a bug asking Apple to fix...
iOS Static Libraries Are, Like, Really Bad, And Stuff (Radar 15800975)
Jan 12, 2014, 3:33 PM
Introduction
When I first documented static frameworks as a partial workaround for the lack of
shared libraries and frameworks on iOS, it was 2008.
Nearly six years later, we still don't have a solution on-par with Mac OS X...
Mac OS X 10.4 under VMware Fusion on Modern CPUs
Dec 17, 2013, 12:38 PM
Running 10.4.11 under VMWare Fusion 6
Introduction
I recently agreed to port a small piece of code to Tiger (10.4), assuming that it would be relatively
easy to bring up Tiger up in VMWare Fusion on my Mavericks desktop; I already...
Keychain, CAs, and OpenSSL
May 14, 2013, 12:39 PM
It took me almost 13 years, but I finally sat down and solved a problem that has annoyed me since
Mac OS X 10 Public Beta: synchronizing OpenSSL's trusted certificate authorities with Mac OS X's
trusted certificate authorities.
The issue...
iOS Function Patching
Jan 20, 2013, 11:03 AM
On Mac OS X, mach_override is
used to implement runtime patching of functions. It essentially works
by marking the executable page as writable, and actually inserting a new
function prologue into the target function.
On iOS, pages are...
Reliable Crash Reporting - v1.1
Jan 19, 2013, 3:37 PM
A bit over a year ago, I wrote a blog post on Reliable Crash Reporting,
documenting the complexity of reliably generating crash reports and how seemingly
innocuous decisions could lead to failure in the crash reporter, or even...
FatELF Toolchain Drivers
Dec 16, 2012, 1:45 PM
Introduction
One of the handy features in Mac OS X's universal binary support is the ability to easily compile a binary for multiple architectures with one command. This simplifies the process of producing a binary for multiple devices,...
FatELF ('Universal') Binaries for Haiku
Nov 26, 2012, 7:05 PM
Introduction
One of the features that I think has been critical to Apple's ability to leverage improvements in underlying CPUs -- as well as weather migrations to completely new architectures -- has been their Universal Binary...
Haiku VMware Drivers
Nov 17, 2012, 8:07 PM
Who could not like BeOS?
Haiku Alpha 4 was recently released, to
the excitement of everyone. Or, at least those of us that maintain a strong sense of nostalgia for pervasive multithreading
and yellow window tabs.
If you feel the urge to...
Silicon Labs CP210x UART to USB Driver
Nov 17, 2012, 8:06 PM
Introduction
Some months ago, I picked up a an Aeon Labs Z-Stick Series 2.
The Z-Stick is USB-equipped Z-Wave controller, using CP210x chipset to
provide access to the Z-Wave module's UART over USB. The official driver from Silicon Labs...
Reliable Crash Reporting
Sep 14, 2011, 7:09 PM
Introduction
PLCrashReporter is a standalone open-source library for generating crash reports on iOS. When I first wrote the library in 2008, it was the only option for automatically generating and gathering crash reports from an iOS...
Implementing imp_implementationWithBlock()
Apr 14, 2011, 9:46 AM
In iOS 4.3, Apple introduced a new API to support the use of blocks as Objective-C method implementations. The API provides similar functionality as Mike Ash's MABlockClosure, which uses libffi (or libffi-ios) to implement support for...
Work with Plausible Labs
Feb 18, 2010, 1:26 PM
When I started Plausible Labs in
2008, we were working out of our homes, paying our rent out of savings while we figured
out how to bootstrap worker-owned software
cooperative without external funding.
A year or so later, I'm part of a...
OpenJDK 7 on Leopard PPC
Dec 16, 2009, 8:29 PM
Introduction
Thanks to the work of Gary Benson on implementing
and merging the Zero-Assembler Project,
and Greg Lewis' work bringing it to OpenJDK BSD Port,
it's now possible to bootstrap OpenJDK 7 on Mac OS X 10.5/PPC.
Gary Benson's...
Using Blocks: Understanding the Memory Management Rules
Jul 11, 2009, 9:09 PM
Introduction
I just finished uploading PLBlocks 1.0-beta2, which
adds support for iPhoneOS 2.2, iPhone 3GS armv7-optimized binaries, and host support for PPC systems
(release announcement). This seems like a good time a good time to...
Blocks Examples: NSOperationQueue and UIActionSheet
Jul 4, 2009, 9:24 PM
Introduction
On Friday, Plausible Labs released PLBlocks, an
SDK that allows you to immediately begin experimenting with blocks (also known as closures) on
Mac OS X 10.5 and iPhone OS 3.0. While the original announcement included a very...
PLBlocks: Blocks for iPhoneOS 3.0 and Mac OS X 10.5
Jul 3, 2009, 12:49 AM
Over the weekend (and for some of the week) I've been working on
back-porting block support from the Snow Leopard
toolchain, with the goal of leveraging blocks for our iPhone and Mac OS X 10.5
development at Plausible Labs.
If you're...
New Plausible Labs Website
May 20, 2009, 8:16 PM
We just released a new design for the Plausible Labs website, home
of the fine worker-owned cooperative that keeps me gainfully employed so that I can
spend my free time (such as it exists) working on open source software.
Critical Mac OS X Java Vulnerabilities
May 18, 2009, 11:15 PM
Introduction
Five months ago, CVE-2008-5353 and
other vulnerabilities were publicly disclosed, and fixed by Sun.
CVE-2008-5353 allows malicious code to escape the Java sandbox and run arbitrary
commands with the permissions of the...
OpenJDK 6 for Mac OS X
May 17, 2009, 6:15 PM
As part of the OpenJDK project, various organizations have been working on OpenJDK 6, a freely distributable
Java 6 implementation based on the open source OpenJDK 7 code base. Most Linux distributions are now shipping OpenJDK 6...
iPhone: Preventing Piracy
Feb 13, 2009, 3:38 PM
There's a lot of talk lately about preventing application piracy on the iPhone. Automated tools have been
released to strip Apple's DRM, and a new anti-piracy product (which charges royalty fees on your sales) has
been released.
As an...
Open Source Crash Reporter for iPhone (and Mac OS X)
Jan 29, 2009, 7:19 PM
Introduction
Despite my best efforts to the contrary, I ship software with bugs.
After unit testing and integration testing, the bugs that tend to slip through are tricky ones -- race
conditions, crashes triggered by bugs in platform...
Plausible Jukebox
Jan 29, 2009, 3:56 PM
Plausible Labs' clone of Apple's CoverFlow™ is now available for off-the-shelf licensing.
You can also download a demonstration version of the library (limited to
rendering every other cover) to try it out for yourself.
I would...
iPhone: Application Piracy
Jan 6, 2009, 12:13 AM
Within a few hours of its 1.0 release, our iPhone application was stripped of its DRM by a customer,
and made available via http://appulo.us for use on jailbroken iPhones.
Appulo.us serves as a comprehensive repository of pirated iPhone...
iPhone: Testing your Application with Valgrind
Dec 24, 2008, 6:39 PM
On other platforms, I've found valgrind
to be indispensable when it comes to discovering and fixing bugs. With Greg
Parker's port of valgrind for Mac OS X
now available, it's
now possible to test your Mac and iPhone applications with...
iPhone: Safari Bookbag Updated
Dec 24, 2008, 6:35 PM
An update to Safari Bookbag has been posted,
using the CoverFlow implementation from
Peeps to replace the
previous UICoverFlowLayer implementation.
Apple appears to be getting more serious about checking for private APIs -- the previous...