bash.im ithappens.me zadolba.li

IT happens

13494

Нужны сильные программисты

1999 год. Армия. Первые месяцы службы. Тяжеловато. Однажды спрашивают, есть ли музыканты. Вызвались трое, думали в оркестр заберут или в солдатский клуб… Оказалось, надо какому то генералу тащить рояль на восьмой этаж. Потом искали художника, был у нас один талантливый, вызвался, думал посадят стенгазеты рисовать… Оказалось, надо покрасить ворота на КПП, сам КПП и ограждение вокруг военного городка, и это в мороз -40. Вот ищут пару компьютерщиков. У меня и товарища вышка по IT. Думали, думали, где может быть подлянка, ничего не придумали, рискнули, вызвались. Приводят в штаб дивизии, много белых компьютеров, мониторов, принтеров… Дают по ведру для воды, мыло, тряпки — отмыть все за два дня!

Правда, все же удалось зацепиться — показали пару фишек в Word и Excel. Потом среди штабных офицеров за нас чуть ли не драка была.

13493

Очень коммерческая тайна

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

Во-первых, терминал для работы с картами выглядит точно так же как и пять лет назад. Мясистый такой калькулятор с термопринтером для печати чека, щелью для чиповых карт и прорезью для карт с магнитной полосой. Бесконтактные карты нужно прикладывать к экрану. Как об этом узнать? А никак — никаких обозначений, хотя бы намекающих на поддержку работы с бесконтактными картами, на терминале нет. У банка в арсенале две модели терминалов, и обе не имеют никаких видимых намеков на бесконтактную оплату.

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

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

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

Хотите блестящих результатов — учитесь у крупнейших игроков рынка.

13492

Видеомашина Голдберга

Вот приходишь на смену, а дорогие коллеги, большие профессионалы, сломали IP-KVM. Ну то есть совсем сломали, выдернут из текстолита VGA-разъем видеовхода, уронили наверное. KVMпоследний и единственный, остальные уехали в другой ДЦ на международный проект, а это значит, что при любом заказе на трешовый дедик уровня core2duo придется переть из теплого офиса по улице 500 метров в модуль и сидеть там от 15 минут до часу времени, накатывая ручками всю хурму на серваки локально. В модуле холодно и шумно, и вайфай медленный, что же делать?

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

Довольный собой, запускаю с pxe раскатываться на серваке образ и топаю в теплый офис, чтобы по возвращению заглянуть в cctv-монитор, а там сервер в процессе сетапа свалился в kernel panic и не отвечает на клавиатуру, окей.

13491

Естественный отбор менеджеров

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

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

Впрочем, может и сразу назначить проект кому-то. И самостоятельно установить сроки. Бывают такие проекты, которые брать не хочется, но фирма должна сделать — тогда поручают кому-то. Можно сбросить с себя проект, назначенный менеджером, но это «красное» событие, наряду с «просрать дедлайн» и «сделать шару». Впрочем, для сброса есть и достаточные основания — ты уже недавно делал принудиловку, у тебя текущий длинный проект, больничный, депрессия или запой.

Фирма расширяется и среди менеджеров нашелся один любитель вешать принудиловку. Он вначале договаривается с заказчиком. Результаты переговоров для заказчика привлекательны — быстро, дешево и качественно. Для разработчиков приятного мало. Менеджер, как человек, до этого не пасший котов, обычно лажал с оценкой трудоемкости и стоимости проекта. Его предложения никто не хотел брать, поэтому он кидал принудиловку.

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

К концу дня в причинах назначения-сброса пошли маты. Мой профиль у менеджеров светится красным: «Сбрасывает задания». Его профиль у разрабов тоже как рак: «Высокий процент принудительных назначений». На второй день собрание. Первое за все время моей работы. Будут разбирать наш конфликт.

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

Шеф вначале опрашивает разработчиков:

— Вменяемы ли сроки и цена?

— Нет, нет, — хором говорят т. е.

Шеф вызывает менеджера:

— Откуда взялись сроки и цена?

— Они были согласованы с клиентом.

— Согласованы в консультации с разработчиками?

— Да.

— С кем именно?

(тычет в мою сторону): — С ним.

Я готовлю свою нецензурщину. Шеф протягивает менеджеру распечатку внутреннего чата:

— Покажи, где именно согласовано.

Показать, естественно, никто ничего не смог.

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

Сразу после собрания, увидев мои трясущиеся от волнения руки, шеф сказал:

— Да не парься ты так, это естественный отбор: долботрясы уходят, нормальные остаются.

13490

Нет, тебя выбираю я

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

И вот, гипервизор установлен, развернуты несколько виртуалок, пока в тестовом режиме, полёт нормальный… Но вдруг сервер неожиданно падает.

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

Часа через 3 сервер выключился вновь. Поскольку время было позднее, я решил отложить дальнейшее разбирательство до завтра, благо платформа была на стадии внедрения, и никаких критичных сервисов на ней пока не было. Я грешил на перегрев процессоров, а также на память FB-DIMM, о капризах и перегревах которой был наслышан.

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

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

Тут стоит сделать уточнение. Я работаю в достаточно большой компании, в которой есть много it-отделов, занимающихся не пересекающимися направлениями. А тот небольшой дата-центр, о котором идет речь, компания арендует практически полностью. И доступ сотрудников на его территорию контролируется крайне слабо.

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

Из бонусов всей этой ситуации для меня – то, что сервер был тщательно вычищен от пыли перед предполагаемой отправкой в филиал.

13489

Платите лучше дома

Один очень крупный банк недавно опять улучшил ПО устройств самообслуживания. Теперь при попытке оплатить электроэнергию предлагается вводить номер лицевого счета на экранной клавиатуре.

Экранная клавиатура показывается сначала в режиме ввода только букв, для набора цифр нужно нажать кнопку переключения режима. После этого цифры надо набирать на маленьких кнопочках, которые вместе занимают едва ли десятую часть экрана и половина из них срабатывает только при нажатии в правильно угаданный угол кнопки. Если попробовать набирать цифры на более удобной механической клавиатуре под экраном, железка пищит и игнорирует нажатия.

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

Очень интересно узнать, как они добились такого безусловного успеха.

13488

Алое око пожара

Пару лет назад принесли ноутбук на ремонт и сами признались, сходу, что залит. Вроде дело обычное, но каким образом это произошло — рассказали сами хозяева.

Отец семейства купил себе ноутбук и тем же вечером на общесемейном собрании продемонстрировал его. После того как села батарея, поставили на зарядку и легли спать. Дедушка вышел ночью попить воды и, увидев красную индикацию заряда возле штекера, решил — горим! Дабы не создавать панику, потянул его в ванну и опустил в тазик с водой. С чистой совестью пошёл спать. Что было утром вместо медали — остаётся только догадываться…

13487

Когда запятые кончились

Корректность значения не проверяется, говорите? Их есть у меня!

Год где-то 2005, в районных электросетях (РЭС) работает биллинговая программа. Ну, работает более-менее, вроде всё настроено. Мануалов, как водится, нет, приходится всё делать методом не всегда научного тыка.

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

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

13486

Компьютер решил развеяться

Сижу на работе, скучаю, гоняю игрушки, никого не трогаю.

Звонок. Соседка по квартире.

— Привет, тут у тебя компьютер сам работает! Там на нём какая-то игра идёт, он сам в неё играет и шумит на всю квартиру! Что делать?!

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

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

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

13485

Только так - или никак

Знакомая работает в медицинском учреждении. Получили новый аппарат для экспресс-анализа на наркотики. Сам аппарат — коробочка 5×7 см, по usb подключается к ноутбуку. В коробочку вставляется картридж с анализом, она его сканирует. На ноутбуке программа, сравнивающая цвета полосок на скане с эталоном и считающая концентрации.

Все нормально, но при попытке записи результата выдаётся ошибка: «7:» is not valid integer data.

Пляски с бубном дали результат парадоксальный — все заработало при установке в системе формата времени HH: MM: SS.

Теперь я не могу понять, откуда растут руки у разработчиков? Взять системное время в текстовом виде, порезать по два символа в три целочисленных поля и даже не сделать проверки на корректность значения…

13484

Древние грабли

Древнее золото, говоришь?

А у меня сразу возник вопрос. Если обработка XML требовала затянуть в память все, и там разбирать ("проблема была в сильной связанности") - то почему загрузка в CSV этого же не требовала?

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

Я вот совсем недавно исправлял проблему - нельзя было загружать XML'и больше определенного размера. Памяти не хватало. Оказалось, там парсер грузит всю структуру в память целиком и только потом обрабатывает. Заменил на потоковый. Потребление памяти константное, скорость работы возросла.

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

13483

Надо к цветам привыкать

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

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

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

«ЦВЕТА НА ТРОГАТЬ!!! Они как на говноплоттере!»

Кажется, пора с начальством по поводу нового плоттера поговорить…

13482

Зато бесплатно

Раньше у меня не было чёткой точки зрения в холиварах «проприетарное ПО vs. открытое ПО». А сейчас — есть.

У нас на работе, к IT отношения не имеющей ни грамма, достаточно суровые правила информационной безопасности — ибо работаем с приборами ценой в столичную квартиру. Настройки сети - не подкопаешься, домен, разграничение прав, закрытые USB, лицензионный софт. А где лицензий не хватило — бесплатный. О нём речь и пойдёт.

Итак, на моей машине стоит открытый офисный пакет имени индейцев. Год сборки — 2014. На первый взгляд всё нормально. Документы открывает, править можно, сохранять тоже. Интерфейс — один в один, как у очень популярного пакета 2003 года выпуска. А вот удобство работы под большим вопросом.

При попытке сохранить в формат, отличный от .odf, начинается паника — «Вы уверены? Вы точно этого хотите?». Нет, что вы — я совершенно случайно сменил тип документа!

Проверка правописания не работает, невзирая на то, что всё вроде бы включено. Не смертельно, конечно, но неприятно — с моим стилем набора опечатки случаются чаще, чем хотелось бы. А потом объясняйся, что за «уважаемый диаректор» в деловой переписке.

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

Кстати о картинках. В качестве фона для ряда бланков стоит изображение. И если ты случайно щёлкнул где-то мимо текста, фокус переходит на фон и убрать его оттуда можно только через Ctrl+Z. С потерей недавно набранного текста, разумеется.

Выделение мышкой работает в зависимости от третьей чакры и созвездия Стрельца. И дело не в мышке — специально для эксперимента притащил личного зверька из дому.

Общая скорость работы. Двухстраничный документ сохраняется всего лишь пару секунд, конвертация в .pdf занимает секунд пять. Угу. На новеньком мультимедийном ноутбуке.

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

13481

Древнее золото редко блестит

Однажды я писал утилиту для анализа большого объёма сильно связанных данных на XML + C# — заказчик хотел модные (в 2007 году) технологии. Ничего сложного — XML-документ загружался в память, последовательно обрабатывался, результаты складывались в базу. Проблема была в сильной связанности — при обработке почти каждого узла приходилось подгружать целые секции из разных концов этого же документа.

Когда соотношение объёма входных данных и объёма ОЗУ машины пересекло критическую отметку, программа сошла с ума. Показатель Time in GC достиг значения 98%, а значит, программа не работала, вместо этого среда выполнения занималась очисткой и дефрагментацией памяти. Проведённое расследование показало — при нехватки памяти и попытке подгрузить дополнительные данные для обработки текущего узла ОС скидывала обрабатываемые данные в своп, а затем доставала их обратно. И сборщик мусора работал над свопом, что в тысячи раз медленнее работы с ОЗУ.

Решением был файловый ввод-вывод. Я переписал программу, используя свой велосипедный страничный ввод-вывод и формат CSV вместо громоздкого XML. После этого она могла обрабатывать любой объём данных, независимо от ограничений ОЗУ машины, с постоянной скоростью, не отвлекаясь на дефрагментацию своп-файла и вообще его не используя.

К чему я всё это. Файловый обмен — замечательная вещь, и мало форматов лучше, чем CSV. Он легко читается машиной и человеком, его поддерживают большинство программ — от офисных до научных пакетов. Используя магию bash, его можно бить на части (подзадачи для вычислительной фермы, например) или объединять (результаты вычислений), записывать в сеть, в устройства, в другие процессы, выложить в облачное хранилище или отправить по email, перезапросить в случае отказа сети, создать резервную копию, принять и обработать тысячей и одним способом.

Если технология существует давно, это не значит, что она плохая. Это значит, что она уже пережила пару поколений желающих использовать только новейшие технологии. Они ушли или перегорели, а технология осталась.

13480

It's a Sony

Подходит зять и спрашивает, как ему получить NAT второго уровня на бытовом роутере! Я, премного офигевший, спрашиваю, зачем ему, спортивному тренеру и по образованию, и по профессии, потребовалось рулить сетью на канальном уровне? Мне, админу, ещё ни разу не требовался столь низкий уровень управления, да и не понадобится, я думаю.

На что он отвечает, что его игровая, блин, приставка (PlayStation 4, если не ошибаюсь) требует NAT второго уровня! Долго не въезжаю, чего же эта тупая железка хочет — лезу разбираться, роюсь в интернете… Оказывается, Sony придумала свою собственную классификацию уровней NAT и никому об этом не сказала!

Мне одно интересно, почему только NAT? Скажите им, кто-нибудь, что в коммуникациях ещё много чего можно переименовать и переклассифицировать! Пусть работают! Придурки, блин.