Решаем задачку. Дано:
1) «Стрелочки» работают. Кнопки и «селект» со «стартом» — нет.
2) Настройки те же, что вчера, никто ничего не менял.
3) Другой эмулятор работает как следует (правда, сохранёнки от другого не читает).
Теряясь в догадках, решил переназначить клавиши. Тут-то всё и прояснилось: вместо Keyboard q в окошке возникло Keyboard Cyrillic shorti. Разборчивая программа желала исключительно «q» в латинской раскладке и принимать вместо неё «й» в кириллической отказывалась. Ишь чё удумали — раскладку менять!
#8778: Ленивая бежевая молния
20:45 19.03.2012, IT happens
Решил тут я почистить компьютер от пыли и продуктов жизнедеятельности котэ. Не от тех, о которых вы подумали, а от обычной кошачьей шерсти, которой бедный компьютер зарос. На помощь мне были брошены все силы в составе пятилетнего сына и усатого поставщика шерсти. Сыну было интересно, как я разбираю компьютер и начинаю пылесосить. Котэ же взирал на всё это с лёгким укором: мол, почему не меня пылесосят? Несносные людишки, ничего не понимают…
Внезапно котэ обнаружил торчащий проводок, который шевелился — пылесос тянул пыль и немного качал свободный разъём питания. В мгновение ока ленивая бежевая молния метнулась к компу, схватила и куснула провод, щёлкнула, мявкнула и с ещё более высокой скоростью метнулась под кровать.
Компьютер я не отключал, бо много мультов и песен сыновьих на приёме стояло, вот коту питания немного и перепало. Зато теперь кот учёный. Да и я тоже…
#8779: Буря в песочнице
20:45 19.03.2012, IT happens
Я просто обалдеваю с некоторых программных решений.
Задача: обеспечить параллельную разработку новых возможностей у одного и того же программного продукта.
Решение: «песочницы». Одну папку исходного кода дублируют множество раз, по числу групп разработчиков, создавая так называемые версии. Каждая группа разработчиков мучает свою версию, ковыряясь в ней, как детишки в песочнице, и не пачкает чужие версии, то есть не мешает остальным группам. Перед релизом все версии, которые успели достичь половой зрелости и продемонстрировали хотя бы 15 минут стабильной работы, сливают в одну, её называют основной, выжигают на компакт-дисках и продают клиентам. После чего отдел тестирования начинает бегать кругами и орать, потому что две разные группы ковырялись в одних и тех же файлах, а слияние выполнялось левой ногой через правое ухо, и теперь не работают ни код первой группы, ни код второй, а грузовики с дисками уже выехали в магазины.
Итак, одновременно существуют несколько десятков версий. Разработчики занимаются своими малопонятными делами и время от времени вносят забагованный исправленный код в одну из «песочниц». Еженощно на всех «песочницах» бежит регрессия, а следующим утром ещё не проснувшиеся разработчики получают сто пятьдесят шаблонных сообщений электронной почты уровня «особой важности» с результатами тестирования для каждой версии и со стандартным заголовком: «А-а-а-а, мы все умрём, регрессия упала по ТВОЕЙ вине, а ну быстро исправляй свои баги». До сих пор всё хорошо.
Раз в какое-то время эти «песочницы» нужно изменять. Добавить, убрать, переименовать. Для этого используется доморощенная программа, написанная для своего удобства студентом-первокурсником в свободное от занятий фигнёй время и доведённая до ума тремя поколениями мудрых специалистов. Опций там на самом деле всего две («добавить „песочницу”» и «удалить „песочницу”»), поэтому переименование реализовано просто и красиво: старая «песочница» удаляется, создаётся новая, и разработчикам рассылается сообщение: «Из-за технических проблем мы потеряли весь код в такой-то версии; если вы вносили туда изменения, внесите их вот в такую-то версию, пожалуйста».
Пока всё ещё неплохо, да? Подождите, сейчас начнётся самое весёлое.
Рассылать сообщения вообще всем работникам — идея, конечно, благая, но будет проще и правильнее рассылать сообщения только тем, кто уже вносил код в эту конкретную «песочницу». Сделать это просто и легко: все внесения кода в «песочницу» есть, они выстроены в красивую таблицу, авторы изменений указаны отдельной колонкой, и есть специальная галочка «сообщить авторам изменений об удалении». Если отметить галочку, скрипт вытащит имена из таблицы и отправит каждому автору персональное извещение.