bash.im ithappens.me zadolba.li
12578

Два таба до счастья

28 августа 2014, 07:24

Я не айтишник: не сисадмин, не программист, не инженер. Я занимаюсь наружной рекламой — вывески и всё такое. К компу я и близко не подходил уже года два, но во время о́но довелось мне работать скромным наборщиком объявлений в известной в нашем городе редакции.

Там был IT-отдел, имевший три самописные БД для разных изданий, отдельную БД под клиентов и никак не связанную с ними БД (1С? Не, не слышали) для бухов. Естественно, стыковалось всё это добро такими окольными путями, что и представить сложно.

Для начала меня жутко задолбало отсутствие табуляции в форме набора объявления — на каждое следующее поле приходилось тыкать мышью. Попросил айтишных бойцов сделать. Через неделю получил искомое и научил весь отдел наборщиков пользоваться табом. Потом меня достало то, что наиболее часто встречающиеся слова приходилось вбивать полностью. Была придумана система автозамены сокращений на полные слова, причём автозамена срабатывала на пробел — не надо было жать какие-то комбинации клавиш. Снова поход к айтишникам, удивлённые лица (парень, ты откуда такой умник свалился?!), через неделю реализовано. Опять обучил отдел, включая начальницу, повесил список сокращений на стенку. Всем стало хорошо, а через месяц выяснилось, что производительность отдела набора выросла втрое.

Потом был корпоратив, на котором я перезнакомился с нашими менеджерами по продажам, нажрался и узнал много нового и нелестного об их работе. Снова пошёл к айтишникам. Действия менеджера по продаже в случае возникновения нового клиента: открыть базу, залогиниться, нажать кнопку «Новый клиент», вбить в окошечко ФИО, нажать «Далее», вбить телефон в следующее окошечко и так до бесконечности. Потом перекинуть эту инфу бухам в корпоративный чат: пусть они тоже мазохизмом занимаются.

У меня началась война с айтишниками: какого ты, всего лишь наборщик, лезешь к менеджерам, стоящим на две ступеньки выше в иерархии компании? Война продолжалась месяц и закончилась коллективным заявлением менеджеров об апгрейде баз данных.

Решением отца всея издательства я буквально поселился в отделе кодеров, по-прежнему получая жалкую зарплату наборщика, забыв вообще про объявления.

Итогом стало: объединение всех трёх БД изданий в одну и связка с бухами, интеграция клиентской БД в остальные базы, кардинальный рестайлинг интерфейса под менеджеров, бухов, наборщиков и дизайнеров, несколько скриптов, автоматом прикручивающих обработанные в Фотошопе фото к объявлениям, и множество других фишек, включая замену железа на более мощное и кучу всего другого.

Я просто сидел в отделе, пялясь в мониторы с сотнями строчек кода и ничего в этом не понимая, приставая с вопросами: «Как это будет выглядеть?» Новые сборки БД компилировались ежедневно по десятку раз. Я буквально задолбал айтишников.

Наконец был достигнут приемлемый результат. Спустя два месяца мне случайно попался на глаза финотчёт: доходы компании увеличились более чем в два раза. Я по-прежнему получал зарплату наборщика.

Я уволился, заявив, что сделал для компании больше, чем кто бы то ни было (а разве нет?), и попал в чёрный список работодателей. А через две недели меня разыскал начальник IT-отдела, вручил тысячу долларов и ящик пива со словами:

— Хорошо, что ты не айтишник!

Мораль сей басни такова: не стесняйтесь требовать чего-то у айтишников, если понимаете, что вам нужно для того, чтобы работать с большей эффективностью. Если ваши требования логичны и практичны, вам пойдут навстречу.

12577

Горим и тонем

28 августа 2014, 07:12

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

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

А теперь картина по минутам, как её увидел дежурный у себя на пульте.

12:00:00. Датчик температуры трансформаторной подстанции скачкообразно перескакивает с +60 °С на +176 °C. Видимо, был бракованный. Но в систему не закладывался алгоритм контроля неисправности оборудования, и, громко пискнув в колонки и подсветив на схеме красным, компьютер вырубает трансформаторную подстанцию, написав крупными буквами: «ПЕРЕГРЕВ». Дежурный немного напрягается.

12:00:02. Система видит катастрофическое падение напряжения в сети и, следуя заложенному в него алгоритму, запускает дизель-генератор. Дежурный звонит энергетикам, чтобы посмотрели, что с подстанцией. У генератора прогорает выхлопная труба, выхлоп идёт в помещение.

12:00:30. На пульте раздаётся тревожный писк, помещение с оборудованием отмечается значком и значком «пожар». Сообщение дублируется большими буквами под словом «ПЕРЕГРЕВ». Дежурный напрягается ещё сильнее.

12:00:35. Система, спасая корпоративное имущество, включает умную пожарную систему, переключая насосы в трубы пожаротушения, повышает их производительность и открывает вентили в помещение с огнём, то есть в траншею с оборудованием.

12:00:50. На пульте с тревожным писком отображается иконка о затоплении помещения с оборудованием. Под надписями «ПОЖАР» и «ПЕРЕГРЕВ» появляется ещё одна, соответствующая ситуации. Дежурный уже очень напряжён: в его инструкции ничего не написано о действиях в ситуации, когда одно и то же помещение перегрето, горит и тонет. Всё это время в траншею закачивается вода, приблизительно 10 кубометров в минуту.

12:01:10. В помещении дежурного с грустным писком на пульте появляется сообщение о неисправности пневматической системы и падении давления в воздухопроводе. Местом неисправности предательски обозначается всё то же помещение.

12:01:15. Отрубается второй компрессор. Критически падает давление воздуха. Перекрываются заслонки ресивера. Система отмечает надписью «УТЕЧКА» злосчастное помещение с оборудованием. Дежурный в панике: он не успевает обзвонить всех ответственных за выходящие из строя узлы.

12:01:42. Локальный апокалипсис продолжается. Генератор сообщает на пульт о неисправности системы забора воздуха и отрубается. К этому моменту вода достигает уровня крыши траншеи и начинает переливаться во двор. Аварийная система переходит на UPS.

12:01:45. Насосы сообщают на пульт, что без основного и аварийного питания они работать не будут, и отключаются.

12:01:46. Пожарная система сообщает на пульт, что насосы пали смертью храбрых в бою с пожаром, и врубает системы с СО. Видимо, замечательная германская программа контроля не воспринимает типы аварийных отключений других систем.

12:01:48. Из-под крыши помещения начинается бурление параллельно с резким охлаждением воды.

12:02:00. Оживает датчик температуры, видимо, окрылённый общим охлаждением помещения, и радостно заявляет на пульт: «Ща напруга будет, начальника! Подавать?» — и заискивающе мигает окошечком подтверждения оператору. Дежурный, впав в транс, давит на большую красную кнопку: отключить всё, аварийно остановить производство.


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

12576

Скажи на ушко

28 августа 2014, 07:00

Прочитав историю «Говорит глас Гугла», где автор приятно удивил меня своей находчивостью, я вспомнил похожую историю общения с клиентом по скайпу.

Я всегда общаюсь в текстовом режиме, так как клиентов много и нужно параллельно отвечать всем. Кроме того, можно одновременно делать свою работу. Но клиент был важный и срочный, писал очень медленно, и я сам предложил ему сделать видеозвонок, дабы ускорить общение. Только когда я подсоединял наушники, я вспомнил, что микрофона у меня нет. Уже звонок от клиента, я принимаю, слышу: «Здравствуйте!» — и не могу ответить.

Признаюсь, было неловко, но в голову сразу пришла идея. Втыкаю штекер наушников в микрофонный вход на передней панели и отвечаю клиенту в снятые наушники: «Здравствуйте, извините, нет микрофона, я буду переключаться. Расскажите подробнее, как это произошло?» Сразу переключаю штекер обратно и жду минуту, пока клиент начнёт говорить, наблюдая, как медленно расширяются его глаза и переосмысливается мировоззрение.

Проблема решилась быстро, а глаза клиента во время нашего забавного общения я помню до сих пор.

12575

Ошейник для мозгов

27 августа 2014, 07:36

Неделька смешных покупателей выдалась. Один спросил, где гнездо для кабеля у MindWave Mobile, другой — прилагается ли дискета с драйверами к 3Doodler. Настоящие ли это ламеры или один тролль, прикидывающийся разными людьми — а шут его знает. Номера разные, голоса тоже.

12574

Сим-сим, отдай отчёт

27 августа 2014, 07:24

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

Так как переезд был запланирован на май, то по состоянию на него же под всех переезжающих и попадающих под действие нововведения были заготовлены метки и распределены по конвертам с именами счастливчиков (а это, на секунду, около 2000 человек). Как мы все понимаем, план планом, а реальность сурова и беспощадна. На дворе почти сентябрь, а переезда всё нет. За лето состав людей пообновился: кто пришёл, кто ушёл. Итого около 200 изменений. Тот, кто занимался этом вопросом, уволился и список людей никому не передал.

Итог: чтобы внедрить столь прекрасную технологию, кому-то из нас придётся руками перебрать 2000 конвертов, найти невалидные и добавить новичков. Прогресс!

12573

Бреющий полёт фантазии

27 августа 2014, 07:12

Автор истории «Безбород 3.7.1» интересуется, почему сделанный программистом бритвенный станок был бы с лазерной указкой и тепловизором? Всё просто.

Вначале программист делает опасную бритву — консольную программу, которая быстро и качественно справляется с задачей, но вешает систему, если в исходных данных есть ошибка. Появляются багрепорты. Отдел юзабилити, стремясь показать свою нужность (отсутствующую, если консольная программа станет популярной), несётся к начальнику. Багрепорты временно аннулируются, программиста вызывают к начальнику:

— Твоя опасная бритва опасна! Надо сделать так, чтобы она была безопасной. Затупи её!

Программист с плохо скрываемой улыбкой тупит бритву. Она больше не бреет. Приказ начальника выполнен дословно, отдел юзабилити готовит вазелин.

Через день из отдела юзабилити приходит список рекомендаций, как сделать бритву менее опасной, но оставить при этом бреющей. На списке резюме начальника: «Сделать до среды!»

Программист вздыхает и по списку добавляет к бритве:

  • лазерную указку (чтобы бреющийся видел, где себя бреет);

  • термодатчик (чтобы чей-то ребёнок случайно не побрил ковёр);

  • телевизор (чтобы не было скучно бриться);

  • защиту от дураков (надо ткнуть в серию кнопок, чтобы бритва поняла, что бреющийся трезв и старше 18 лет);

Так как в процессе тестирования люди будут пытаться отрезать себе разные части тела, программист немного меняет конструкцию, превратив опасную бритву в бритвенный станок. Едва он всё это заканчивает, как приходят новые требования:

  • отдел дизайна требует дерево (это сейчас модно);

  • отдел маркетинговых исследований требует запах канифоли и ручку, перемотанную синей изолентой (это улучшит продажи бритвы среди представителей старшего поколения).

Наступает черёд тестирования.

  • ребёнок шефа пробует побрить кошку, но не справляется с кодом, и бритва разваливается. Отдел юзабилити ликует;

  • начальник пытается отрезать палец главе отдела юзабилити. Конструкция станка не позволяет это сделать, отдел юзабилити приписывает достижение себе;

  • телевизор работает;

  • термодатчик не дал побрить ковёр;

  • дерево присутствует — отдел дизайна сурово кивает;

  • синяя изолента и запах канифоли есть, отдел продаж радостно катается по полу.

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

12572

Я сразу смазал карту будня, плеснувши краску из стакана

Всем привет, в эфире снова носитель мании изобретательства. Чем я сегодня вас порадую? Как обычно, изобретением, вытащенным из детства. Но если первые два (механический аналог «Фроггера» и герконовое электропианино) так и остались концептами, то третье довольно долго в прямом смысле скрашивало мои вечера.

У многих советских детей был прибор для просмотра стереодиапозитивов «Стереоскоп-3», и почти все знали о его обратимости: если без слайда повернуть окулярами к объекту, матовыми стёклами к себе, получатся две камеры-обскуры. Но немногие пробовали направлять окуляры на чёрно-белый телевизор и очень удивляться.

У однолинзовых окуляров, которые в этом режиме работали объективами, хроматическая аберрация огромна (только я тогда таких слов не знал и объяснить получающийся эффект не мог). Обычно её стремятся подавить, но тут она пригодилась. Это как динатронный эффект: в пентоде его подавляют, а в ФЭУ считают полезным и используют. Да много таких примеров.

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

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

Но сегодня, когда цветной дисплей стоит дешевле чёрно-белого, такой эффект может потребоваться разве что при просмотре киноклассики, да и то понравится не всем. А вот тогда, на безрыбье…

12571

Верхи хотят, низы не могут

26 августа 2014, 12:12

Когда-то компания «Интел» создала первый процессор 8086. У него был свой, отдельный набор команд, несколько регистров, сегментная адресация памяти и своя тактовая частота.

Работы над процессорами продолжались, и вот появились 80186, 80286, 80386, 80486, и наконец — Пентиум с его суперскалярной архитектурой.

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

Но и на этом развитие не остановилось: появилось расширение команд процессора MMX — по этому поводу даже крутили по ТВ рекламные ролики, — затем появились SSE, SSE2, SSE3, 3DNow, и ещё, и ещё, и ещё; регистры стали 64-битными, появились многоядерные модели.

Каждый новый набор команд позволял какой-то тип операций выполнять чуть быстрее — достаточно было пересобрать программу на новой версии компилятора с поддержкой нового набора команд процессора.

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

То же самое относится к наборам команд процессора: если используется SSE — ну никак оно не заработает на железе, где SSE нет, разве что за счёт отказа от использования новых возможностей.

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

В этом смысле Линукс всегда старался быть по мере возможности современным, но в то же время не оставлять за бортом и владельцев всякого хлама, ведь не каждый пользователь имеет самое новое оборудование. Но целенаправленный отказ от новых возможностей — это не только поддержка владельцев хлама, но и ущемление интересов владельцев более новых систем, ведь выходит, что возможности их оборудования просто не задействованы. Поэтому рано или поздно наступает момент, когда обновлённая программа может и не заработать на откровенно устаревшем процессоре, система команд которого уже не отвечает среднестатистическим современным требованиям. И тогда после обновления ядра пользователя ждёт эпик фейл, он же kernel panic. А виноват, конечно же, «кривой Линукс».

И как другие люди ухитряются не встречать этого загадочного «паника»?

12570

Спят усталые игрушки, спи и ты

26 августа 2014, 12:00

В 2009 году в Москве заработала сеть нового поколения. Я был одним из первых, кто купил её модем. Очень уж хотелось поддержать наши, родные высокие технологии.

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

Я терпел, когда фирма вероломно повысила цену на доступ в сеть с 900 рублей до 1400.

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

Я терпел то, что доступ в личный кабинет (с настройками сети) мог без предупреждения пропасть в любое время между 11 вечера и 8 утра из-за «сервисных работ», о которых никто не предупреждал абонентов заранее.

Я терпел внезапные падения сети по ночам, когда я чаще всего и работаю в интернете.

Но сегодня моё терпение закончилось.

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

— Уважаемый абонент! С 11 вечера до 7 утра…

«Проводятся сервисные работы», — приготовился услышать я, но вместо этого прозвучало нечто, заставившее меня подбирать челюсть с пола:

— …телефонная техподдержка не работает. Вы можете написать нам в мобильном чате и в социальных сетях.

Каким это образом я могу написать вам в социальных сетях, если мой единственный канал доступа в интернет не работает? Каким образом залезу в мобильный чат, если интернетом в телефоне не пользуюсь за ненадобностью?

Да и вообще — фирма, у которой столько клиентов, которая получает столько денег ежемесячно, берёт и закрывает круглосуточную техподдержку без предупреждения?!

Желаю тебе разориться. При первой же возможности сменю провайдера.