bash.im ithappens.me zadolba.li

Программы

12487

Всё, что убивает нас, делает нас сильнее

Сижу в родной Gentoo. Вздумалось мне собрать Boost. Но тут на середине компиляции понадобилось передать комп — отцу что-то там нужно было в почте найти. Ctrl+Z нажимать не стал, так как всё равно Boost мне не был нужен. Сразу и решительно жму Ctrl+C. Не убилась компиляция.

Прохожусь kill по всем процессам компилятора. Продолжает работать.

Убиваю процесс шелла — и наконец-то компилятор сдыхает.

Принципиальный компилятор: нас reboot, а мы крепчаем.

12443

Догнать, скачать и побороть

Порой мы удивляемся: почему многие предпочитают пиратские программы бесплатным, даже если вторые по тем или иным параметрам лучше? Сыромышеловочный стереотип? Хромающая совместимость форматов? Да, но не только.

Я застал годы, когда школьники играли с вкладышами и очень любили отнимать бумажки с картинками у тех, кто на класс младше или просто слабее. И другая игра была — олдскульщик вспомнит посреди ночи — с гоночными болидами, сложенными методом полуоригами, ибо не из квадрата, а из полоски. У нас многие умели оформлять эти болиды ещё красивее вкладышей. Да ещё и изобразить можно что хочешь, а не ограничиваться тем, что есть, как на вкладышах. Но вторая игра была заметно менее популярной. Азарта не было. Чтобы заполучить вкладыш, надо было либо жвачку купить, либо догнать и перебороть. А болид можно было изготовить и оформить быстро и без напряга. Мы считали это не слишком интересным.

Получается, любой, кто сегодня «героически» мучается с кряками и кейгенами — до сих пор чуть-чуть школоло?

12394

Петь, плясать — а дальше сами

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

В контору я пришёл сравнительно недавно, когда проект уже прошёл стадию тестов, более-менее стабильная версия была внедрена в сети, шла активная полировка и вылавливание блох. Мой ПМ страшно обрадовался программисту, свободно владеющему русским языком, и я, наивный человек, не придал этому особого значения. Ну, возникают недопонимания, с кем не бывает. Собственно, в основном именно по этому проекту я и должен был работать.

Где-то на стыке с внешней бизнес-логикой выловили целую пачку багов. Вооружился, значится, я утверждённой всевозможными аналитиками и менеджерами документацией… и вот тогда мне поплохело.

Договор на внешний модуль заключён между клиентом и фирмой. По-русски, без перевода для конторы. ТЗ написано фирмой и утверждено клиентом. Перевод не предусмотрен. Формулировки — размытей не бывает: модуль будет петь (что именно? на каком языке? как громко?), танцевать (что именно? как долго? ему музыка нужна будет?) и читать стихи (ну, вы поняли). Из всей полезной документации для интеграции — скупое описание контракта веб-сервиса.

Мой предшественник закинул этот «документ» в Гугл-транслейт, прочитал, пожал плечами и прикрутил модуль к софту самым простым способом: «получил — отправил», эксепшны в лог, вот и весь разговор.

Клиент, разумеется, завалил нас багами: тут не сходится, там не работает, это вот плохо, ваш софт говно, мы несём убытки. Стал я при поддержке ПМа теребить фирму — оказалось, нюансов в работе их модуля на пару добрых А4. «Вот это событие должно обрабатываться особым образом, вот это, хоть оно и есть, вообще нужно игнорировать, тут нужна дополнительная проверка, а вот тут — ни в коем случае не проверять, а то отвалится. Говорите, при вот этом пустом значении сервис падает через эксепшн? Ну, убедитесь, что такое не будет к нам отправляться, мы дополнительные проверки вводить не будем».

Клиент уже и не рад. Смотрит на ТЗ, а придраться-то и не к чему: технические аспекты интеграции там не оговорены, наши требования и пожелания к внешнему модулю — тоже такого нет. Фирма, ясное дело, не горит желанием вносить изменения в уже проданный продукт — нехотя исправляет только слишком явные косяки.

Но в самом глубоком и тёмном месте моя контора: решение-то работает с багами, чтобы от них наверняка избавиться, нужны изменения во внешнем модуле (либо основательная перестройка логики нашего софта, что по целому ряду причин не представляется возможным), а заставить «хитрых русских» делать то, чего они не хотят и, если совсем формально, не обязаны — заданьице то ещё.

Мораль: если вылезет ещё хоть один баг, который окажется очередной «фичей», совершенно не согласованной с интеграцией в наш софт, я пойду и набью нашему менеджеру морду. Чтобы он больше никогда, никогда не отдавал на откуп клиенту заказ и ТЗ на модуль, за работу которого нам потом придётся отвечать. Пусть даже если клиент и подрядчик могут свободно между собой договориться, а ты с ними — нет.

12360

Плюс девять пальцев

Интересная проблема — разработка интерфейса. Того, через который пользователь будет работать с компьютером, программой или сайтом.

Нет, серьёзно: игрушка или инструмент почти бесполезны, если люди люди не смогут пользоваться самым простым и быстрым способом. И есть тысяча и один способ достичь противоположного результата. Творческая деятельность! Если делать всё по-взрослому — очень много надо работать с людьми. Одна из методик, которую я видел в английском интернете, мне очень понравилась своей смесью смекалки и варварства. Надо отловить пять человек (если хобби — то знакомых, а если есть такая роскошь — то и пятнадцать), кого-то со знанием компьютера, кого-то — нет, показать им распечатку своего сайта или скриншот приложения и спросить, как они его понимают. Наверняка не так, как ты задумывал. А когда ты расспрашиваешь подробнее, начинаешь понимать, как видят предлагаемые возможности другие люди. Мир начинает выглядеть более странным местом, чем прежде.

Пользуясь набитыми шишками, я хотел бы заметить, что работа с компьютером «не в стиле ПК» — это выполнимо, но не всегда возможно. Есть закон, который нельзя обойти: не все вещи можно упростить. Многие вещи потеряют от упрощения столько же, сколько фотография от постеризации. То, что можно делать с логотипом, не выйдет с фотографией сумасшедшего проблеска золотого неба.

Я не могу представить, как можно запихнуть и утрамбовать Фотошоп в мобилу или айпод без потери функциональности и удобства — так, чтобы с ним можно было быстро работать одним пальцем, без клавиатуры с хоткеями. С Иллюстратором — то же.

Я видел, как специалист работает с Экселем. Для него это программа, в которой можно быстро добиться нужных результатов. С помощью макросов, фильтров и хоткеев он выдирает и упорядочивает тысячи складских записей. Это выглядит почти поэтично. Это менеджер. Он делает анализ, для которого наши полувраги-полудрузья из соседнего отдела используют четырёх человек.

Я видел записи на Ютубе, как профессор геологического работает с Емаксом. Это уничтожило мой разум. В этом есть красота.

Много кнопок, опций, выпадающие многоуровневые списки, сообщения. объясняющие, что ты сделал что-то не так — если это и есть «путь ПК», говорить, что он ущербен, неверно. Над тем, чтобы его отладить, проверить и заточить, десятилетиями работали дизайнеры. Они были дураками, которые не знали, как делать верно? Не проводили исследований? По поводу того же «риббона» Микрософт проводил детальные исследования — каждая кнопка взвешивалась на нужность.

На проблему можно смотреть под разными углами. С какой-то стороны её будет легче решить. «Путь ПК» или «путь мобил» — это разные способы смотреть на проблему того, как сделать что-то полезное, имея на руках компьютер. И они оба неверны и верны одновременно. Если выкинуть одно — потеряешь быстрый путь решения части жизненных проблем.

12318

Чему стоять, того не миновать

Меня внезапно озарило, что любое знакомство с новой технологией/продуктом неизбежно проходит пять стадий принятия смерти:

  1. Отрицание. «Да ну его в жопу, я не буду работать с этим куском говна!»

  2. Гнев. «Да твою же мать, какая пьяная мартышка делала этот интерфейс?! Чем у них колются индусы-кодеры?! Твою мать, что ты творишь, срань господня, я же только файл переименовать хотела!»

  3. Торг. «А, может, этот кусок задачи выполним вот на этой старой доброй платформе? Ну, в последний раз! Честно!»

  4. Депрессия. «Шла 1856-я страница мануала…»

  5. Принятие. «Ну… После четвёртой переустановки и подгона всего окружения, в принципе, можно работать!»

12287

Эпсилон твою лямбду!

Третьего дня пошёл к клиенту веб-камеру настраивать. Пошёл с удивлением, так как клиент был далеко не дремучий юзверь — своя фирма по установке гаражных ворот, причём я помнил пару разговоров мимоходом — начинал он вдвоём с приятелем, занимался именно электрикой и подключением точек контроля. Винду перебивать умеет, сервера пропинговать и трассировку посмотреть тоже способен — и вдруг вебка какая-то! Насторожили только слова: «Да тут сообщение об ошибке на каком-то не очень русском». Заинтересовался.

Проблема сначала показалась частой: камера жаловалась, что по пути C:\Program Files\%моделькамеры% не найдено подходящего файла, и предложила найти его вручную. «И найдём», — самоуверенно подумал я, нажимая кнопку «Browse». А чё там — просто путь вручную к файлу укажи. У старых «эйфотеков» вообще стабильная проблема.

Я видел папки, названные на китайском, на японском, даже на суахили. Но вот этот путь…

C:\Program Files\Cámara para a comunicación co público\εκτόξευση

В самой папке файл был назван по-английски.

Глобализация, кипятить её молоко…

12266

Скупой страдает каждый день

Работаю программистом, при этом достаточно холодно отношусь ко всякого рода надкушенным и зелёно-бочковым мега-гаджетам известных производителей. Ну, инструмент и инструмент, что тут.

Сижу как-то, решаю совсем не айтишную задачу (простой расчёт какой-то конструкции). Не сам сижу, так что девайсов в зоне досягаемости рук больше обычного. Считаю на стандартном калькуляторе планшетки с известной восьмой ОС. Отложив планшет, рисую чертёж. Тут планшетка уходит по рукам, и для следующего подсчёта ничего не остаётся, как взять рядом лежащее известное плоское устройство надкушенного производителя.

Запуск калькулятора, начало подсчёта… Мне кажется, или программа тормозит с прорисовкой? Так и есть. Ах да, слева сверху загрузилась крутилка рекламы с приоритетной плавной анимацией. Пытаюсь её игнорировать. Полуслепая работа с программой невозможна по причине жёстких лагов.

Недоумевая, делюсь впечатлениями с владельцем. Получаю гениальный ответ:

— Ну так программа же бесплатная!

Долго думал.

12245

Хьюстон, у нас проблема с проблемами

Есть у нас для одной системы что-то вроде сервис-деска. При возникновении проблемы пользователи могут создать заявку с её описанием. Всё бы ничего, но в системе такие заявки сами называются проблемами, соответственно, создание такой заявки называется «Создать проблему». Уже как-то не очень.

Получаем письмо, условно говоря, от первой линии поддержки, в котором сказано: «Ранее проблемы инициировали исполнители, и никаких проблем не возникало».

Как это понимать? У них и раньше не получалось создавать заявки о проблемах или раньше получалось, а теперь перестало?

Оказалось, что проблемы (по которым создаются заявки) могут быть «непредвиденными». Это атрибут такой у них. Пользователи раньше их не создавали, а теперь попробовали. И вот как раз при создании таких заявок в системе возникала ошибка, причём непредвиденная уже разработчиками. Ну, то есть как непредвиденная — предвиденная, но на уровне «assertion failed»…

Разработчики, думайте, пожалуйста, тщательнее над терминологией. Не всегда сокращение «лишних» слов ведёт к лучшему пониманию.

12244

Жизнь между строк

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

У меня и напарника не очень большая сеть на сотню машин, но практически всё, что требуется для работы, задокументировано, а что не задокументировано — абсолютно очевидно. При этом мы пользуемся этой документацией ежедневно и не по разу. Эта документация даёт нам возможность получить удалённый доступ к любому компьютеру или серверу за пару кликов, и она постоянно обновляется вместе с сетью. А секрет прост: программа, в которой мы нарисовали карту сети, может пинговать все нарисованные устройства и по щелчку на контекстном меню вызывать несколько команд на выбор: VNC, Radmin, RDP, SSH, PsExec или любую другую. Она оказалась отличной альтернативой Nagios и Zabbix на первых этапах работы (не было ни времени, ни возможности для них), но даже после окончания внедрения Nagios не заменит эту софтину. На документирование у меня ушло не более недели без отрыва от остальной работы. Сотрудники были в шоке (после прошлого админа-пофигиста), когда я, отвечая на звонок, не спрашивал, в чём дело, а сам говорил им о проблеме и называл сроки решения. Жаль, что разработчик забросил эту программу и последняя версия вышла только для XP, хотя и под «семёркой» она ведёт себя очень хорошо.

Совет тут прост: документация должна быть. Но она не должна быть мёртвой. Она должна жить так же, как живёт сеть, и быть её частью. Она должна помогать видеть проблемы и решать их, а не храниться в папочке в дальнем ящике.

Всем устойчивого пинга!