«Боевые ботинки твоей мамы» — новая функция iOS7

    В коде iOS7 найдено несколько забавных фрагментов — названия флагов для активации неких функций, суть которых компания пыталась скрыть от посторонних.

    Например, один из флагов назывался YouMamaCombatBoots, что переводится как «боевые ботинки твоей мамы». В финальной версии системы флаги типа isYoMamaWearsCombatBootsActive «рассекречены» как isStillImageStabilizationActive.

    -- (void)setYoMamaWearsCombatBootsAutomaticallyWhenAvailable:(BOOL)arg1;
    -- (BOOL)yoMamaWearsCombatBootsAutomaticallyWhenAvailable;
    -- (BOOL)isYoMamaWearsCombatBootsActive;
    +- (BOOL)isStillImageStabilizationActive;
     - (BOOL)isEV0CaptureEnabled;
     - (void)setHDRCaptureEnabled:(BOOL)arg1;
     - (BOOL)isHDRCaptureEnabled;
     - (void)configureAndInitiateCopyStillImageForRequest:(id)arg1;
     - (BOOL)isRawCaptureSupported;
    +- (BOOL)isStillImageStabilizationSupported;


    Прятать новые функции для их обкатки — стандартная практика у разработчиков Google, Microsoft и прочих. Чтобы протестировать новый функционал, его внедряют в систему, но дают доступ только ограниченному количеству бета-тестеров, для остальных же доступ максимально затрудняют. Название функции не должно давать намека на ее значение.

    Apple традиционно выпускает операционную систему раньше официального анонса устройств и стремится, к тому же, до последнего дня сохранить в тайне список новых функций, отсюда у мамы и появляются «боевые ботинки» и «причудливые очки».

    -- (BOOL)isYoMamaWearsFancyGlasses;
    -- (void)setYoMamaWearsFancyGlassesDetectionEnabled:(BOOL)arg1;
    -- (BOOL)isYoMamaWearsFancyGlassesDetectionEnabled;
    -- (BOOL)isYoMamaWearsFancyGlassesDetectionSupported;
    +- (BOOL)isHighDynamicRangeScene;
    +- (void)setHighDynamicRangeSceneDetectionEnabled:(BOOL)arg1;
    +- (BOOL)isHighDynamicRangeSceneDetectionEnabled;
    +- (BOOL)isHighDynamicRangeSceneDetectionSupported;

    Иногда «пасхальные яйца» встречаются в коде без всякого смысла. Например, константа гравитации на Звезде смерти GRAVITY_DEATH_STAR_I, зачем-то зашитая в список констант SensorMananger операционной системы Android.
    Метки:
    Поделиться публикацией
    Комментарии 15
    • +8
      в андроиде есть ещё метод Log.wtf (What a Terrible Failure)
      • +9
        А как же знаменитый метод isUserAMonkey?
        • +8
          Или isUserAGoat в классе UserManager
          • +3
            Мелочь, а приятно:
            /**
              * Used to determine whether the user making this call is subject to
              * teleportations.
              * @return whether the user making this call is a goat
              */
            public boolean isUserAGoat() {
                return false;
            }
            
            • +1
              Комментарий к исходному коду напомнил мне о посте с Хабра про поле «Goats teleported» в диспетчере задач Google Chrome.
            • +3
              «Monkey» — утилита для стресс-тестирования интерфейса, занимается тем, что шлёт тучу рандомных жестов. Если я правильно разобрался — этот флаг отображает активность этой самой утилиты.
              • 0
                Именно так и есть.
          • +3
            Также в Android есть константа «GRAVITY_THE_ISLAND», равная 4.815162 (чуть меньше, чем в два раза менее по сравнению с Землей). Здесь утверждают, что это ускорение свободного падения на неком «The Island» из сериала «Lost».
            • 0
              Ну там много констант гравитации developer.android.com/reference/android/hardware/SensorManager.html
              GRAVITY_DEATH_STAR_I например

              Зато можно смело писать приложения, которые будут при работе с акселерометром корректно работать на всех планетах солнечной системы)
              • 0
                Про звезду написано в тексте поста.
              • +2
                Не совсем так, в этом сериале герои были вынуждены вводить код 4 8 15 16 23 42 в комп каждые 108 минут. У комбинации были и другие предназначения, но они тоже не связаны с ускорением свободного падения. А гравитация в названии константы, скорее-всего просто так, чтобы не слишком выделялось.
              • +1
                Я как-то смотрел исходники одной IDE, наткнулся на класс WolfTheProblemSolver. Вот вроде и нужный API, а лишний раз подумаешь перед тем, как начать использовать.
                • 0
                  Вспомнились строчки из песни:
                  Malcolm solves his problems with the chainsaw
                  And he never has the same problem twice
                • 0
                  Еще недавно (полтора года назад) в коде Android (JNI) были забавные методы isComputerOn() и turnComputerOn() плюс еще парочка. Таки-выпилили (коммит).

                  Вообще шутке этой много лет, и придумали ее задолго до Android: isComputerOn() — легендарная функция BeOS API.

                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.