Archive for May 6, 2012

Sunday, May 6, 2012

Lion Login Passwords in Clear Text

Emil Protalinski (via Slashdot):

An Apple programmer, apparently by accident, left a debug flag in the most recent version of the Mac OS X operating system. In specific configurations, applying OS X Lion update 10.7.3 turns on a system-wide debug log file that contains the login passwords of every user who has logged in since the update was applied. The passwords are stored in clear text.

Anyone who used FileVault encryption on their Mac prior to Lion, upgraded to Lion, but kept the folders encrypted using the legacy version of FileVault is vulnerable. FileVault 2 (whole disk encryption) is unaffected.

User tarwinator posted about this in Apple’s support forum three months ago but didn’t get a response.

Update (2012-05-09): It’s fixed in Mac OS X 10.7.4.

Update (2012-05-10): Apple has posted a support article about the problem.

FaceSpan 5 (Mark’s Misadventure)

Mark Alldritt:

I am a self-funded Indie (lone) developer. I made a number of classic business blunders on the FaceSpan 5 project. I broke the golden rule: never (never!) rewrite a software product. I massively underestimated the effort required to complete the product. I set off without having sufficient resources to complete the project. Because I took so long to complete my work, the market moved on — AppleScript’s importance to the customers I intended to target declined. Some may argue that the market was never really there to provide a return for a product of this complexity. Finally, I didn’t pull the plug soon enough.

I never got into FaceSpan, but I’m a big fan of Alldritt’s main product, Script Debugger.


Josh Abernathy (via Jesper):

ReactiveCocoa gives us a lot of cool stuff:

  1. The ability to compose operations on future data.
  2. An approach to minimize state and mutability.
  3. A declarative way to define behaviors and the relationships between properties.
  4. A unified, high-level interface for asynchronous operations.
  5. A lovely API on top of KVO.

Those all might seem a little random until you realize that RAC is all about handling these cases where we’re waiting for some new value and then reacting.

Lots of fun with blocks, based on .NET’s Reactive Extensions (Rx).