В субботу товарищ зашёл ко мне, прихватив книгу. «Попытка — не пытка», — подумал я и предложил попробовать прошить гаджет заново. Прошивка скачана, залита на карточку памяти, друг выключает книгу и включает, зажав клавишу «громкость +». Появляется прогресс-бар с зелёным роботом, но выскакивает ошибка, и книжка перезагружается.
Несмотря на то, что друг делал всё строго по инструкции, я решаю попробовать те же действия сам. Повторяю почти всё, только вкрадчивым голосом говорю девайсу: «Ты поставишь мне эту прошивку» (кто играл в Postal 2, поймёт). Чудо! Прогресс-бар начинает медленно заполняться. Другу с квадратными глазами я в спешном порядке вручаю бубен (шутки ради установленное на телефон приложение), тот начинает в него бить и, уже поняв, что надо делать, мычать что-то на одной ноте.
Прошивка встала на книгу, как родная. Почему абсолютно одинаковые действия двух людей привели к абсолютно разным результатам — понятия не имею.
2:00 07.12.2011, IT happens
В моду вошли сверхдешёвые андроидные планшеты. Всем они хороши, вот только на экран надо давить с недюжинной силой. Айтишник, пожалуй, смирится, а гитарист найдёт выход. Конечно, жать на экран надо медиатором!
Только что своими глазами увидел в автобусе. Да, есть нам, айтишникам, чему поучиться у гитаристов.
14:00 07.12.2011, IT happens
Уважаемый как бы программист и автор истории «Как жаль»! К сожалению, я не работаю над сверхкрутыми проектами. Я вообще ещё учусь. Однако за три курса я очень хорошо усвоил, что идеальных программистов не бывает и никогда не будет. Но бывают идеальные коллективы программистов. Такие коллективы могут выполнить любую задачу, потому что каждый спокойно помогает своему коллеге.
Объяснять простые вещи нудно и глупо. Я полсеместра объяснял своему однокурснику, чем отличается UpdateData(TRUE) от UpdateData(FALSE). Глупо? Глупо. Однако теперь он так же спокойно объясняет мне элементарные вещи из электродинамики, ибо её я понять не могу.
Вы сделали программу раньше, и вам это вскружило голову? Несомненно, когда что-то получается быстро и качественно, есть повод гордиться. Но скажите мне на милость: почему кто-то должен знать, где находятся ваши проекты? В сети, где и все последние годы? Ответ довольно-таки странный. Неужели гордость не позволяет сказать путь? От этого язык не отвалится.
Когда работаешь в команде, нельзя всех равнять под свою планку. Когда-нибудь и вы окажетесь в неудобной ситуации. Представьте, понравилось бы ли вам такое отношение?
Мне жалко не того «тоже программиста», а вас. Вы стали программистом случайно. Настоящий программист может посмотреть на себя со стороны и не кичиться своими знаниями.
Жаль, что некогда почётная профессия стала чем-то вроде удела ограниченных глупцов. Каждый считает, что написав удачно пару программ, он становится богом программирования, и остальные теряют право его тревожить.
Хочу закончить вашими же словами: «Все совпадения с реальными людьми прошу считать неслучайными».
14:00 07.12.2011, IT happens
Я до сих пор не понимаю, что это было, но оно скрасило бессонную ночь и научило меня иначе относиться к игровым конструкторам.
Было дело, писал скрипт по закачке игровых ресурсов в оперативную память по списку. В числе прочего в коде присутствовал скрипт по чтению списка ресурсов из INI-файла. В стандартной библиотеке конструктора функция, читающая переменные в секциях инишника, была, и я решил использовать её, дабы не писать лишний код.
Алгоритм протестирован, выдаёт верные результаты. Остаётся скромный допилинг до практически готового скрипта. Добавляю функцию из стандартной библиотеки, запускаю программу в режиме отладки… Окно «Unexpected error occured» вместо правильных результатов. Проверяю циклы, исключаю возможность бесконечной рекурсии, тестирую заново — то же самое.
Строчку кода, добавленную перед последним тестом, нафиг в комментарий:
Та-дам! Алгоритм работает. Синтаксис верный, типы параметров совпадают — что неладно? Убираю комментарий, заменяю функцию, передающую в параметр строку, простой строкой вида:
Всё работает на ура. Думаю, вы уже догадались, в чём дело? Функция из стандартной библиотеки принимает в качестве параметра строку и работает с ней без проблем, а с функцией, передающей абсолютно идентичную строку в параметр, вылетает, выдавая неопознанную ошибку.
Спасибо вам, дорогие индусы-разработчики! Без вас было бы так скучно!
15:45 07.12.2011, IT happens
Читаю интернеты в Сафари с айфона. Внезапно сайт перенаправляет меня на WAP-страничку такого содержания: