Локальные ужасы айтишного офиса

Наша Анечка - очень хороший программист. Я говорю это без тени иронии: можно сколько угодно говорить про морских свинок, сравнивая с ними женщин-программистов, но к ней это никоим образом не относится - она действительно классный специалист. Мне несколько раз доводилось наблюдать следующую сцену: Аня смотрит в чей-то код и хохочет. Причем я, когда вижу это, чувствую себя примерно как Джен из "IT Crowd" в тот момент, когда Мосс разглядывает печатную плату, ржет над ней и, вытирая слезы, объясняет Джен: "Ты только посмотри: какой-то идиот провел шину данных через цепь питания!" (ссылка на видео). Но только вот недавно Аня меня напугала.

Ситуация была следующая. Близится релиз, а у нас, как обычно, ничего толком не работает. Плюс еще пятница вечер, поэтому настроение у народа полуистеричное. И тут мой взгляд падает на Анин монитор, где я вижу примерно следущий код:

void f()
{
  - - - - -   - - - - -
  - - - - -   - - - - -
  - - - - -   - - - - -

}

И Анечка аккуратным, неторопливым копи-пастом добавляет все новые и новые строчки...

Представили, да? Лично у меня в голове тут же всплыла сцена из фильма "Сияние" с Джеком Николсоном. Фильм старый, но на всякий случай спойлер с описанием спрячу (показать).

После этого, полагаю, нетрудно представить мои эмоции в тот момент, когда я увидел, чем занимается Аня.

- Аня, что ты делаешь? - спросил я ее перепуганным шепотом.
- А? Да вот, программка интересная попалась, пытаюсь разобрать, как это работает, - ответила она со своми "фирменным" смешком, который я часто слышу, когда Аня с интересом копается в чьем-то коде.

Я выдохнул. Всему виной оказалась попавшая к Ане в руки забавная программка на C, текст которой обфусцирован таким образом, что представляет собой окружность. Программка вычисляет число "пи", причем делает это на основе вычисления собственной площади и прочих линейных размеров! При небольших размерах результат получался не очень точный, но теоретически, чем больше программа, тем точнее должны быть вычисления :)

Вот она:

#define _ F-->00 || F-OO--;
long F=00,OO=00;
main(){F_OO();printf("%1.3f\n", 4.*-F/OO/OO);}F_OO()
{
            _-_-_-_
       _-_-_-_-_-_-_-_-_
    _-_-_-_-_-_-_-_-_-_-_-_
  _-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  _-_-_-_-_-_-_-_-_-_-_-_-_-_
    _-_-_-_-_-_-_-_-_-_-_-_
       _-_-_-_-_-_-_-_-_
            _-_-_-_
}

Комментарии

Вот вроде и по-русски написано... Но ничего не понял )

Изображение myx

Значит, ты не айтишник :)

айтишная сфера многогранна. там есть программеры, есть телефонисты :-) и много других всяких. зачастую один другого не разумеет )))

Изображение myx

Ну, не знаю :) С телефонистами я работал - вроде обходились без переводчика :)

А что в посте непонятно-то? Ну, кроме текста программы? :)

Ну вот они и непонятны. Ведь в них вся суть )))

Кстати, после того, как загуглил слово "обфускация", то стало понятно ))

Изображение Николай Лигастаев

Шикарно

Изображение myx

Проникся? :)

Изображение Николай Лигастаев

Супер. Чуть дебажить не начал.