bash.im ithappens.me zadolba.li
11342

Тест на внезапную нагрузку

29 августа 2013, 07:15

Прочитал историю, как апгрейдили ЕС ЭВМ, и припомнил, как устанавливали БЭСМ-4.

Процесс занял примерно полгода (с учётом встраивания машинного зала в здание 30-х годов). Потом вентиляция, электропитание (400 Гц), монтаж оборудования, наладка…

Госиспытания. Идёт трёхсуточный прогон. Техника работает как часы. Комиссия не спит (или спит, сидя на стуле). Остаётся два часа.

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

Припёртый к стене мичман дал показания: «Ко мне в коридоре матрос подошёл, попросил паяльник проверить…» Матроса, естественно, не обнаружили.

Испытания пришлось проводить сначала.

11341

Непереводимое английское ругательство

29 августа 2013, 07:15

Не то чтобы я не любил AutoCAD — я просто не очень хорошо его умею готовить в силу отсутствия насущной необходимости. Периодически чертежи можно и в знакомом до боли Короле Дров 12 запилить: чай, не адронный коллайдер проектирую, а корпус всего лишь, да и рисовать его — два часа работы. Всё тютелька в тютельку, размеры идеально сходятся, можно отдавать на изготовление.

Стоп. Размеры. Надо нанести их на чертёж, ибо пилить изделие будут люди от компьютеров далёкие, чертёж им нужен на бумаге, они по-другому не понимают. Ну, в чём вопрос — есть же здесь инструмент «Размерная линия»! Всё же просто: от точки до точки, вынос на нужное расстояние, клик!

Опа! Полная опа… Вместо автоматически проставленного размера отображается «####». Меняю шрифт, двигаю линии, пытаюсь вписать размер вручную — фиг вам, ничего не получается. В мозге лихорадочно проносятся возможные причины — от пиратских версий винды и Корела до проблем драйверов видеокарты.

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

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

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

Стоп. Едва не проскочил — а вот это уже ни фига не стринговая константа, а переменная. Вписываю английское слово вместо русского, сохраняю, подменяю, запускаю — нет, это ещё не всё. Ковыряю дальше и делаю ещё три таких замены. Снова тест — профит! С размерами всё гуд. Три часа ночи, за пять минут доделываю чертёж, печатаю.

В общем, красные глаза по утрам — это ещё не признак линуксоида.

11340

А стул догорал подо мной

28 августа 2013, 18:24

Занимаюсь программированием PLC Siemens. Есть такая возможность — передать со SCADA целых 4 КБ данных за один цикл, пусть байтовым массивом — но можно же! А при объёме оперативной памяти 128 КБ и под хранение программы 512 — это ой-ой-ой. Решил заняться этим вопросом, благо рецептурная база в пищёвке — вещь необходимая. Вышел я из отпуска — и понеслась…

Шаг первый: скачал пример. Работает, но выворачивает байты наизнанку. Моторола же ж. Ладно, выкурил учебник по C, пристрелял его к реалиям извращённой логики скрипта. Приходит случайно сгенерированный массив в нужном виде.

Шаг второй: ещё один пример для выборки данных из отданного на растерзание пользователю куска SQL-базы. Скурил Александрийскую библиотеку. Сделал. Выбирает данные, запихивает в сгенерированный массив, затем пишет в тэг по номерам байтов, взятым из номера шага и номера параметра.

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

Шаг четвертый (стул начал тлеть): два массива перебираются в трёх циклах по типу переменных — переменная времени, булева, real. Всё хорошо, но при переборе массива число итераций не увеличивается, что приводит к падению в стоп. Левый глаз дёргается, правый судорожно читает срач на форуме. Умный человек советует скурить книгу Бергера. Слава ему и честь, указывает главу. Смысл в том, что если ты собираешься вызывать один функциональный блок несколько раз, то тебе не надо ничего делать, но второй адресный регистр забирает компилятор под статпеременные, в которых лежат счётчики итераций. Эту возможность можно отключить только при создании блока. Но после — уже никак не изменить судьбу, быть ему навечно мультиэкземплярным.

Шаг пятый: всё, заработало, перебирает и шуршит. Самое время перебраться с симулятора на реальное железо. Из заказанного шкафа выдирается контроллер — и-и-и… Фейл! Эта фича работает или на старшем поколении, или всего на трёх из младшего по мощности, у которых есть порт Profinet.

Мораль: мануалы курить не надо, их надо читать. И очень внимательно, иначе никаких стульев не напасёшься. А я тем временем жду подходящее железо — буду дальше воевать с немцами…

11339

На языке Шекспира и Гейтса

28 августа 2013, 07:15

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

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

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

Вам не нравится? Мне тоже. Поэтому я использую англоязычный интерфейс. Нет ничего сложного в том, чтобы запомнить смысл слов File и Options, несложно привыкнуть к понятиям Blur и Sharpen, а если вдруг попадётся что-то новое и незнакомое — есть Гугл. В любом случае это проще, чем разгадывать загадку: что означает «Отменить отмену» и как оно выглядело в оригинале?

11338

Фрине#%зди

28 августа 2013, 07:15

Взяли мы себе в отдел человека. Парень высокий, толстый, волосатый. Про наличие «харлея» забыли спросить. Народ вокруг винду да Novell Netware вертит, я тогда на цисках плотно сидел и баловался Slackware. А чудак с порога:

— Я профи во FreeBSD.

Ну, давай так. Будешь рулить банкоматы, а потом и воду в бассейн наль… ну, дадим тебе, то есть, развить свои таланты бздюшника.

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

Прошло больше месяца. Наконец-то фряха запустилась. Кое-как. Сквида не дождались. Но псевдобайкер ходил и после был уволен с гордым именем Фрине#%зди.

11337

Вы это называете окном?

28 августа 2013, 07:15

Времена Фидо и OS/2. Как белый попугай, вместо операционки от «голубого гиганта» ставлю NT 3.51. Проходит время, переползаю на «четвёрку». У меня 486-я и до фига памяти — аж 32 МБ. Космос!

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

Утро. Просыпаюсь. Комп работает. Почитал фидошку. В институт пошёл. Вечером ко мне заваливается друг Шура, смотрит в комп, а потом делает круглые глаза:

— Как ты поставил NT4 на HPFS?! Ладно, как оно загрузится, драйвера от 3.51 работают. Но как оно бутится с HPFS?

— Честно, не помню, что по пьяни творил…

Мучил «четвёрку», как мог. В ней были DLL и от 3.51, и даже от 95-й. Вместо морды был Litestep и прочие извращения. Меня убил один инсталлятор. При запуске он мне заявил, что это не Виндоус, что это такое, он, понимаете ли, не знает, а потому и ставиться не будет. Вот так, господа.

11336

Ты мне нужен, старик

27 августа 2013, 11:45

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

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

Сегодня мне неожиданно понадобилась веб-камера, и я вспомнил про телефон. Можно же подключить его к компу и выбрать режим «видеокамера» — чем не вебка? Достал его из ящика…

Слышали когда-нибудь о том, что люди после смерти становятся на несколько граммов легче? Ага-ага, телефон показался мне подозрительно лёгким. Я даже проверил, на месте ли аккумулятор — понятно, что после тяжёлого смарта ощущения врут, но всё же… Он не включился. Ни с зарядкой от компа, ни от розетки — он не подал ни единого признака жизни. Не помогла даже мантра: «Ну давай, старик, ты мне нужен…» Я подумал, что электронная душа его упорхнула во всемирную сеть.

Нет, не расстраивайтесь, всё кончилось хорошо: после десяти минут зарядки дисплей всё же ожил и поприветствовал меня надписью «SIM отсутствует». Но, могу поклясться, пару граммов веса телефон при этом прибавил!

11335

Новые трюки для старой собаки

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

Да, есть же ещё мак — это попугайчики. Красивые, но зачем?

11334

Кнопки тоже могут думать

27 августа 2013, 07:15

Разобрал клавиатуру для тотальной чистки. Чистку проводил лениво, в несколько дней, пока пользовался запасной. Итак, клавиатура собрана, сверкает первозданной чистотой и радует руки мягким ходом клавиш. Подключаю к компу и получаю сообщение:

New CPU installed! Please enter Setup to configure your system.

Это что ж получается — умная система часть вычислительных операций распределяет даже на клавиатуру, пока та простаивает?