Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    L

    Landon Fuller

    landonf.bikemonkey.org · Personal blog · on HN since 2008

    Landon Fuller writes technical posts on Mac OS X and iOS internals, security issues, crash reporting and Java on macOS.

    Visit blogHN submissions
    Mobile & AppleSecuritySystems & Performance
    What HN says

    HN commenters cite it for explanations of macOS behavior such as PT_DENY_ATTACH, the Java vulnerabilities and Objective-C runtime details.

    Stats for nerds
    22HN people shared it
    8linked in comments
    115story points
    Nov 2019last shared
    2009people per year2019

    Top posts on HN

    1. 1
      iOS Static Libraries Are, Like, Really Bad
      2 people · 95 points · first shared 2014 · 74 comments on HN
    2. 2
      Reliable Crash Reporting (2013)
      2 people · 8 points · first shared 2013 · Discussion on HN
    3. 3
      Critical Mac OS X Java Vulnerabilities
      1 person · 4 points · first shared 2009 · Discussion on HN
    4. 4
      Reliable iOS crash reporting
      3 people · 3 points · first shared 2011 · Discussion on HN
    5. 5
      Mac OS X 10.4 under VMware Fusion on Modern CPUs
      1 person · 2 points · first shared 2014 · Discussion on HN
    6. 6
      The DNS Dead Drop
      1 person · 2 points · first shared 2008 · Discussion on HN
    7. 7
      Function patching on iOS via libevil
      1 person · 1 points · first shared 2013 · Discussion on HN
    8. 8
      Soylatte
      5 people · first shared 2010
    9. 9
      Index
      2 people · first shared 2013
    10. 10
      Leopard PT DENY ATTACH.20080122
      2 people · first shared 2011

    What HN people wrote when they linked it

    • flatline3Jun 2012

      > For Git, I just followed some examples I found online. I don't remember the exact procedure, but it didn't work. After around an hour of trying I just gave up. In fact, I found it just as difficult as trying to install Git on the OpenSolaris servers, which is saying quite a bit.

      I installed git on a coworker's computer in a couple minutes today, so I don't know what to say.

      > As for Java, I couldn't update despite using the Software Update menu. It worked on Windows, but OS X just hadn't gotten around to adding it. And, as is usually the case with Apple, there was no good way around it: since Apple hadn't update Java, I couldn't just install it myself. (Or, at least, there was no obvious way of doing this.)

      It wasn't that Apple hadn't "added" it, there simply wasn't a port of that version of Java to Mac OS X, because they needed to port it. If someone external to Apple had produced a port (like, say, Sun), you could have installed it, exactly in the same way that we install Oracle Java today.

      Someone did eventually produce a partial non-GUI port, and it later became the base of Oracle's officially supported Mac OS X Java: http://landonf.bikemonkey.org/static/soylatte/

      This has little to do with Mac OS X being somehow broken, and a lot to do with the fact that Sun only provided Java binaries for Solaris, Linux and Windows.

      For Java 7 on, Oracle will be supporting Java for Mac OS X directly.

      > I don't know exactly what my friend tried to install AucTeX and the rest…

    • mikerhodesFeb 2014

      As long as you also pull in the dependencies specified in the podfile, you'll be absolutely fine just adding the class files to the project. I've tried to be careful to maintain that as a viable option. That you retain the option is one of the strengths of Cocoapods to my mind.

      While far from perfect, I chose to use Cocoapods as it's becoming the defacto standard in the iOS community. I've used it in my apps, and have found it easier to manage my deps than a bunch of git submodules or copying source code into my projects.

      The problems with static libraries on iOS have been well documented at [1]. Essentially, that you can't build static libraries as a third-party for iOS without resorting to low-level trickery. This seemed like it would become a maintenance burden vs. the Cocoapods approach.

      [1]: http://landonf.bikemonkey.org/code/ios/Radar_15800975_iOS_Frameworks.20140112.html

    • pbsdpJul 2013

      You're assuming writable trampolines. objc_msgSend()'s trampoline works by caching the target lookup and having an extremely short fast-path in the case that the target method implementation is cached.

      objc_msgSend is a trampoline in the sense that it leaves the frame/registers untouched and jumps straight to the target implementation.

      That said, you can implement the kinds of trampolines you're referring to without writable code pages, it just requires more work: http://landonf.bikemonkey.org/2011/04/index.html

    • therealkerniSep 2011

      Hey, I am Andreas, one of the developers of HockeyApp.net. The service provides some pretty unique features especially advanced crash report management. Crash Reporting is based on PLCrashReporter (see http://landonf.bikemonkey.org/code/objc/Reliable_Crash_Reporting.20110912.html), works also in the App Store with full server side symbolication grouping all crashes by class, method and line number.
      Let me know if you have any questions.

    • masklinnOct 2010

      On the other hand, is there really any other? For years, Apple has been pretty much the sole provider, and had their very own JVM with specific look & feel customization to the UI packages. The only real alternative is Soylatte[0], which is fairly purpose-specific.

      [0] http://landonf.bikemonkey.org/static/soylatte/

    • saurikOct 2013

      iOS actually doesn't have a restriction as strict as this: you can take a page of memory and map it again without issue. This is the technique used by imp_implementationWithBlock, and current versions of libffi can generate closures based on the technique.

      http://landonf.bikemonkey.org/2011/04/index.html

    Related

    Project Zerogoogleprojectzero.blogspot.com550 people

    Reading privileged memory with a side-channel

    Project Zero
    Company · last shared 2025
    Sean McArthurseanmonstar.com31 people

    Intel - nodejs logging that plays nice with console.log

    Sean McArthur
    Personal · last shared 2025
    Saar Amarsaaramar.github.io18 people

    Introduction to Firebloom (iBoot)

    Saar Amar
    Personal · last shared 2026
    Greg Parkersealiesoftware.com31 people

    An Illustrated History of objc_msgSend

    Greg Parker
    Personal · last shared 2026
    Siguzasiguza.github.io21 people

    IOHIDeous OS X Local Kernel Vulnerability

    Siguza
    Personal · last shared 2023
    Jesse Squiresjessesquires.com39 people

    Why is Apple acting like an asshole?

    Jesse Squires
    Personal · last shared 2025
    Applehelpwriterapplehelpwriter.com29 people

    How Dropbox Hacks Your Mac

    Applehelpwriter
    Personal · last shared 2024
    Saagar Jhasaagarjha.com40 people

    We at $Famous_company switched to $Hyped_technology

    Saagar Jha
    Personal · last shared 2026