Don't Run You Own Servers
Let me disagree with Marco Arment
Marco was getting into it with Oliver Haslam over server hosting, and see this post by Brent Simmons. Marco extolled the virtues of running your own VPS or Virtual Private Server. He suggested that you learn Linux administration and port forwarding; that you learn how to setup mysql log shipping and read-only replicas.
Thanks, but no . . .
Apple and C#?
when i wish upon a star
I was listening to Debug #32: John Siracusa on Copland 2010 in which the subject of Apple needing a next-generation language was discussed.
The elephant in the room seems to be why not take advantage of C#? Guy and John both seemed to dismiss it out of hand, but it hits all the requirements:
- It's an ECMA standard, . . .
Seriously Apple?
Try opening this file with Keynote 09
I understand you updated your apps; that's totally cool.
What isn't cool is giving me a message that my presentation is too old and to try opening it with Keynote 09. Which I no longer have.
Would it have killed you to take that conversion code, package it up, and embed it in the new Keynote? You know, like a sane . . .
UIScreen.wantsSoftwareDimming
tl;dr: it doesn't work
A quick heads up: apparently UIScreen.wantsSoftwareDimming doesn't work on iOS 7, the iPhone 5S, or both. I was unable to detect a difference in the brightness levels no matter what that setting was at; previously you had to set that flag then adjust the brightness to make it take effect. (I've always felt that LCD brightness levels . . .
Interlocked.CompareExchange
I've got a hammer and you're all f**king nails
Interlocked.CompareExchange is magic. No, seriously.
Yes, it does a comparison and replaces a value if the comparison is true. In all cases, it returns the old value. Why is that so interesting?
Well, you can read a value: value = Interlocked.CompareExchange(ref _location, null, null). If _location was already null, it will . . .
On Rediscovering the Classic Coordinated Transaction Problem
Everything old is new again
While working on the new immutable engine of chaos today, I wrote myself into a corner and in the process re-discovered the classic coordinated transaction problem:
If you have two separate transactions that both need to commit together or roll back together, how can you ensure that happens as an atomic operation?
If I . . .
ContextLocal
the best thing you'll never use
If you are doing parallel operations on immutable data you may run into a problem. A lot of us are used to using [ThreadStatic] static fields to hold ambient state that exceeds the built-in ThreadPrincipal or CurrentCulture settings. If you are running in a web context you certainly have access to HttpContext, but otherwise you appear to be . . .