bash.im ithappens.me zadolba.li
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? Скажите им, кто-нибудь, что в коммуникациях ещё много чего можно переименовать и переклассифицировать! Пусть работают! Придурки, блин.