10 ms·
How Apple hides new functionality in iOS: isYoMamaWearsCombatBootsActive
- mukundmr 13y agoI think it is a nice way to do it. :)
- grbalaffa 13y agoYo Mama thinks it's a nice way to do it, too!
- deleted 13y ago[deleted]
- deleted 13y ago[deleted]
- GoldfishCRM 13y agoDont care. It puts a smile on my face and some developers and smiling developers are a good thing.
- fruchtose 13y agoWhy? Sometimes functionality has to be exposed, even when a company would prefer an alternative. Microsoft has named functions similarly on occasion [1]. [1] http://blogs.msdn.com/b/oldnewthing/archive/2003/10/15/55296.aspx http://blogs.msdn.com/b/oldnewthing/archive/2003/10/15/55296...
- chatman 13y agoBecause he might've appreciated better variable naming. :-P
- tekacs 13y agoisTheTimesAChanging ? (some may not get the reference :P) (http://youtube.com/watch?v=9TzhTqzXFgQ http://youtube.com/watch?v=9TzhTqzXFgQ)
- josteink 13y agoReading posts like this, you really can't deny that Microsoft is sometimes seriously underappreciated for their technical efforts at keeping everything running as smoothly as they can: Things got even worse in Windows 95, when all our window procedures were converted to 32-bit versions. The problem is that the old window procedures were only 16-bit. So we couldn't even simply export the 32-bit window procedure under the name BOZOSLIVEHERE. We had to write a conversion function that took an illegal 16-bit function call and converted it to the corresponding illegal 32-bit function call. Apple just says "that's obsolete in a year" and lets everything break (or have it removed from its marked). Granted, you can clearly see what approach gives you the best long-term agility, but still: there are few companies which has historically supported applications and ensuring compatibility like Microsoft did. That does deserve a bit of respect.
- rsynnott 13y ago> Apple just says "that's obsolete in a year" and lets everything break Carbon is now _15 years old_, you know...
- josteink 13y agoAs far as I've understood it, iOS apps are under constant pressure to remain compatible with the latest APIs. When Apple did the architecture shift from PowerPC it "was get over or get out". That sort of attitude is very different from the one highlighted in the linked MSDN blog where they are building compatibility bridges for illegal, abandoned APIs which were never meant to be public in the first place, to ensure that the application people care about keep working. Ofcourse, in a pre-internet time, where applications couldn't deliver timely updates, and definitely not automatically nor over-the-wire (since there was no wire), this was a much more pressing concern than now, but that still doesn't detract from the fact that Microsoft deserves some credit for their efforts.
- nicholassmith 13y agoiOS apps are encouraged to use the latest APIs to keep things moving forward so the hardware is used to it's fullest. When Apple did the architecture shift from PowerPC to Intel they provided the Rosetta bridge that allowed PowerPC code to be ran under Intel architectures. They introduced that in 2005 and removed in in 2011. Developers had a pretty long time to get over it.
- deleted 13y ago[deleted]
- ultimoo 13y agoI wonder whether Apple will decide to change their strategy of aggressively guarding upcoming products before they are launched, under Cook's leadership. I was following a couple of 'rumor' blogs prior to the iPhone launches earlier this week and I believe they had managed to 'leak' and publish details on the iPhone 5C and 5S pretty spot on. EDIT: rather than referring to the variable names in the OP, I'm referring to the more overarching strategy of guarding the features of their to-be-launched products.
- easyfrag 13y agoI doubt it, that's more of a cultural thing instilled by Jobs, it's sort of entrenched as the "Apple way" of doing things. Big Cultural changes in an org typically come about when things are going badly. The leaking is going to be hard to stop because Apple largely outsources its manufacturing and is now closely watched (compared to pre-ipod and iphone days). It's hard to enforce secrecy along the entire process when the process is run by third parties and spread around the world.
- breakall 13y agoI wondered the same thing, especially after Phil Schiller's comment: "a few of you probably saw some shots on the Web...and that's cool!"
- simias 13y agoI don't understand, what does this function do? Is it a reference to something? Or just a simple easter egg?
- oleganza 13y agoApple ships iOS beta builds before announcing new hardware. They obviously don't want to leak information about new functionality like HDR support too early. So they use a special string "YoMamaWears..." meaning of which is known only to people in the appropriate team. Then, when iPhone 5s is finally released, they easily find-and-replace the obfuscated methods with proper identifiers.
- kozhevnikov 13y agoIt does look like an HDR placeholder, or one hell of a coincidence. From `AVCaptureFigVideoDevice.h` -- (BOOL)isYoMamaWearsFancyGlasses; -- (void)setYoMamaWearsFancyGlassesDetectionEnabled:(BOOL)arg1; -- (BOOL)isYoMamaWearsFancyGlassesDetectionEnabled; -- (BOOL)isYoMamaWearsFancyGlassesDetectionSupported; +- (BOOL)isHighDynamicRangeScene; +- (void)setHighDynamicRangeSceneDetectionEnabled:(BOOL)arg1; +- (BOOL)isHighDynamicRangeSceneDetectionEnabled; +- (BOOL)isHighDynamicRangeSceneDetectionSupported;
- CoolGuySteve 13y agoIt's funny because "Fig" was supposed to be replaced by CM or CoreMedia at some point but it was so integrated into the code that it never happened. So here we have a rare case of double export obsfucation.
- Aqua_Geek 13y agoThey’re masking new features with ”creative” variable/method names.
- simias 13y agoOooh, I see. Thanks.
- DominikR 13y agoI definitely love those kind of easter eggs. There are also similar methods in the Android SDK: UserManager.isUserAGoat() link: http://developer.android.com/reference/android/os/UserManager.html#isUserAGoat() http://developer.android.com/reference/android/os/UserManage... Log.wtf() link: http://developer.android.com/reference/android/util/Log.html#wtf(java.lang.String http://developer.android.com/reference/android/util/Log.html..., java.lang.Throwable) AdapterViewFlipper.fyiWillBeAdvancedByHostKThx() link: http://developer.android.com/reference/android/widget/AdapterViewFlipper.html#fyiWillBeAdvancedByHostKThx() http://developer.android.com/reference/android/widget/Adapte...
- dermatthias 13y agoNot to forget the gravity constants of the Death Star and The Island, defined by the SensorMananger. http://developer.android.com/reference/android/hardware/SensorManager.html#GRAVITY_DEATH_STAR_I http://developer.android.com/reference/android/hardware/Sens... http://developer.android.com/reference/android/hardware/SensorManager.html#GRAVITY_THE_ISLAND http://developer.android.com/reference/android/hardware/Sens...
- DominikR 13y agoI wonder if they seriously discussed internally that gravity constants for other planets were needed in case Android devices would be used in space travel.
- russellsprouts 13y agoWell, there are several on the ISS.
- nwh 13y agoThere's been balmy little bits of stuff like this all the way through OSX and iOS for ages, though maybe not quite as flippant. Every Mac has the kernel extension "Dont Steal Mac OS X.kext" for example, which loads into RAM a short poem. There once was was a user that whined his existing OS was so blind, he'd do better to pirate an OS that ran great but found his hardware declined. Please don't steal Mac OS! Really, that's way uncool.
- Zecc 13y agoAlso isYoMamaWearsFancyGlassesDetectionEnabled
- frank_boyd 13y agoI'd be interested to see the "easter eggs" that drain the battery within 12 hours.
- andyhmltn 13y ago12 hours is a good battery life is it not? Admittedly, the iOS7 BETAs have cut my own down to the point where I have to make sure my phone is on 100% before a 4-5 hour night out so I know I'll have battery to use it by the end of the night. Although I suspect that'll be fixed post-beta
- frank_boyd 13y agoIt means you can trash your phone. It's worthless. The iTemple will welcome you for your next iPhone purchase - if you accept not to indulge in any iBlasphemy. The 12 hours are in stand-by (no screen/wifi/bluetooth/phone usage/message usage whatsoever). And I had 3-4 days before the "upgrade". In my case I just "upgraded" the OS on my 3GS to the current state: v. 3.1.6 (after having refrained from doing so for a very very long time - precisely because I had read about the drastic battery drainage at the time). So no beta software was involved. EDIT: Here's an example of a thread in the "support" forum: https://discussions.apple.com/thread/4325659?start=15&tstart=0 https://discussions.apple.com/thread/4325659?start=15&tstart... (I have tried every "solution" I could find on the net - nothing has fixed this. Which means we must assume this is strategy, not temporary bugs.)
- andyhmltn 13y agoIt's called a BETA for a reason :-) The 3GS was released in 2009 which is quite a long time ago in technology terms so to expect it to be able to handle a more CPU-intensive update easily is a bit silly.
- frank_boyd 13y agoDid you even read? > It's called a BETA for a reason My "upgrade" was NOT BETA. > The 3GS was released in 2009 which is quite a long time ago in technology terms so to expect it to be able to handle a more CPU-intensive update easily is a bit silly. It worked perfectly BEFORE the "upgrade" (batter life: 3-4 days!), why would it not AFTER the "upgrade"? I mean, the "upgrade" was SPECIFICALLY coded for the 3GS. If it's "bricked" after the "upgrade", that says it all. You have to be a sheep if you accept Apple "bricking" your device just like that. EDIT: Ok, seems like I have enraged the iGods with some critical thinking.
- jheriko 13y agoif you ever investigate the call stacks when there is a crash in their stuff from wrong parameters you can find all kinds of weird names. I'm still wondering what the purple coloured port is :)
- bsorbo 13y ago"Purple" was one of the code names for the first iPhone - http://allthingsd.com/20120803/apples-scott-forstall-on-how-project-purple-turned-into-the-iphone/ http://allthingsd.com/20120803/apples-scott-forstall-on-how-... I've seen PurpleEventCallback show up in different stacks.
- stigi 13y ago- (BOOL)yoMamaWearsCombatBootsAutomaticallyWhenAvailable; priceless!
- rabino 13y agoFancy Glasses = iPhone5S Combat Boots = iPhone5C ???
- protomyth 13y agoMust be a tradition, the old Newton had some interesting names for functions in its API dealing with horses.
- deleted 13y ago[deleted]
- austinl 13y agoHere's another easter egg - it's a sarcastic warning if you try to perform date operations on a nil date: " -[__NSCFCalendar components:fromDate:]: date cannot be nil I mean really, what do you think that operation is supposed to mean with a nil date? An exception has been avoided for now. A few of these errors are going to be reported with this complaint, then further violations will simply silently do whatever random thing results from the nil. Here is the backtrace where this occurred this time (some frames may be missing due to compiler optimizations):" Source: http://stackoverflow.com/questions/12505833/what-kind-of-sarcastic-error-is-this-xcode http://stackoverflow.com/questions/12505833/what-kind-of-sar...
- cpeterso 13y agoBeOS had is_computer_on() and is_computer_on_fire() APIs: int32 is_computer_on(void) Returns 1 if the computer is on. If the computer isn't on, the value returned by this function is undefined. double is_computer_on_fire(void) Returns the temperature of the motherboard if the computer is currently on fire. If the computer isn't on fire, the function returns some other value. http://www.tycomsystems.com/beos/bebook/the%20kernel%20kit/system.html http://www.tycomsystems.com/beos/bebook/the%20kernel%20kit/s...
- kenrikm 13y agoAnother Good one from Objective C: 2012-08-31 00:26:19.773 App[1676:907] * -[__NSCFCalendar components:fromDate:toDate:options:]: fromDate cannot be nil I mean really, what do you think that operation is supposed to mean with a nil fromDate? An exception has been avoided for now. A few of these errors are going to be reported with this complaint, then further violations will simply silently do whatever random thing results from the nil. Here is the backtrace where this occurred this time (some frames may be missing due to compiler optimizations):
- undoware 13y agoWithout getting into the IT-sexism-blah-blah, 'your mother wears combat boots' isn't just a folksy turn of phrase: it's a fifties-era impugnment of lesbianism. So unless you want to sound a lot more Republican than you were probably intending, you should probably stop wondering why you don't have more female friends, coworkers, and partners. And by the way, a foot in the mouth is so gay.
- plainOldText 13y agoThe method's name is actually "isYoMamaWearsCombatBootsSupported". That being said, it's nice to see developers at big companies having fun.
- CrankyPants 13y agoWell, that Myriam dude's going to be upset.
- deleted 13y ago[deleted]