Any comp-sci grad worth his or her student loan debt can tell you about virtual memory. And many can tell you the intricacies of dealing with unix-style VM. But for the developers working with Mac OS X (and iOS), there’s a deeper layer hidden underneath that is seldom expressed (and often for good reason) – Mach. (more…)
Mid last month (September, for those keeping score at home), a peculiar email arrived in my inbox. Therein, I was referred by an Apple employee with an opportunity to potentially work there. To say the least, my interest was piqued. After all, after spending the past 2 years up to my elbows in some of their software’s guts, reverse engineering, patching, and exploring, I’d like to think I had some authority on the subject.
Somewhere out there on the internet, there’s a “showdown” between @synchronized, NSLock, pthread mutexes, and OSSpinLock. It aims to measure their performance relative to each other, but uses sloppy code to perform the measuring. As a result, while the performance ordering is correct (@synchronized is the slowest, OSSpinLock is the fastest), the relative cost is severely misrepresented. Herein I attempt to rectify that benchmark.
Last year, CollegeAdvantage’s 529 college savings plan offered a referral bonus where those opening new accounts, as well as those referring them, received $25 bonuses. They’ve recently reinstated that bonus, so I figured I’d post some shameless self-promoting in the hopes of getting y’all some free college savings (for kids, etc), and get some for me as well (for our future children). (more…)
This brief post will explore some more mundane (but still measurable!) aspects of optimizing Objective-C software. This time around, we’ll talk about object allocation. (more…)
I guess it’s been a while. As is oh-so-often the case, I overcommit myself to too many things, and then pay dearly. Some may call it a trade, time for experience, money, or glory. I simply see it as exploration. With a lot still on my plate, I suppose it’s appropriate to take a brief break from Xcode, and jot down some thoughts to keep this blog from getting too stale.
Ok, if you’ve been wanting to start playing with stocks and bonds, but have been put off by minimums or per-trade fees, zecco.com has recently announced that October will be 100% free for all trades, no minimums. (more…)
The secret of getting ahead is getting started. The secret of getting started is breaking your complex overwhelming tasks into small manageable tasks, and then starting on the first one — Mark Twain
The past few weeks have been overwhelmingly busy, and I’ve let some things get behind. Mostly small stuff, lots of free stuff, so I’m not terribly worried about my financial well-being, but I am worried about the trend. With the number of hours available to me, I should be able to at least hold my ground. But sometimes it just feels like I’m slipping slowly, losing more than I gain.
Perhaps this comes from multitasking too much? The overhead involved in multitasking is killer for performance (even if you think you’re getting more done, you’re probably not.) Perhaps it comes from simply too much to do (this has been steadily increasing in probability with time, and might have finally crested). Maybe it’s just me being inefficient. I don’t feel burn-out at all. I’m not unhappy or unfulfilled. So I have no idea… need to measure things or something.
The next few months will be busy as well… hopefully I’ll be able to polish off the bigger stuff, and then clean off the small things at my leisure. The trick, of course, is to just focus on each one, and that one alone…
Humans have an insatiable need to add their input to everything. Normally it’s polite and tolerable, but often enough it’s not as well. That “often enough” part eventually pushed me into choosing to keep people in the dark most of the time, simply out of simplicity. I don’t care if Car X and better than Car Y, I don’t care if City Z is more expensive than City W, and I already know that Platform N is better than Platform M for certain tasks, so please stop wasting my time… (more…)