Истории с тегом: программы

Всего историй: 796

10414

Незаменимые люди есть

Здравствуйте, взрослые айтишные дяди! Я в небольшой организации слежу за сеткой из десятка компов и одинэсной базой. Моя задача — «чтобы всё это работало». У меня экономическое образование, я самоучка, а ещё я девочка. Но в моей трудовой в графе «должность» написано «инженер-программист» — так руководству захотелось. Все сказали «фу»? Спасибо, а теперь я расскажу о своей печали.

У моей начальницы во владении есть ещё одна организация. В организации стоит древний комп, на нем 95 винда и база на Фокспро 2.6. И, конечно же, недоумения начальства: «А на фига тут что-то менять, работает же!»

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

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

10411

Дважды два 4.22

У нас есть программа, которая должна… Для простоты, предположим, считать результат операции 2×2. Ты пишешь её, код получается идеальным. А что тут сложного-то? Функция и эхо, только-то. Ты молодец, ты помог миллионам людей, которые могут и сами посчитать, что такое 2×2 и чему это равно. Зато ты упростил им задачу. Со временем появляются просьбы вроде: «А почему 2×2 равно 4? Ведь иногда это равно и 100». Или: «А почему только 2×2, почему не считает 3×3?»

Ты приделываешь функции к своей программе. Со временем ты даже дополняешь свой код и открываешь его для других. Или копируешь чужой, выдавая за свой. Или продаёшь свой код, успешно позиционируя его на рынке. Но «заявок» всё больше: «А почему дизайн так уныл?»

Ты задумываешься о «расширении» своей программы. Добавляешь API, позволяешь создавать плагины, делишь на библиотеки, используешь и чужие DLL. Твой код разрастается до сотен мегабайт и десятков других программистов. Вроде бы хорошо, да? А теперь посмотрим с другой точки зрения, с точки зрения сисадмина.

Твоя программа не умеет разве что готовить. Она — идеальный калькулятор, параллельно операционная система, рассчитана на кучу разных архитектур процессора и, на самом деле, во всём прекрасна. Но мне, как сисадмину, от неё требуются лишь те же 2×2 и ничего больше. И я ставлю её, так как выбора нет: программа же одобрена государством и юзерами. Но не получается. Она конфликтует с другой программой, функция которой — вычислять квадратный корень из 4. И, самое дурацкое, она тоже жизненно необходима.

Начинаются пляски с бубнами, чтение миллионов файлов «документации», где ничего толкового-то и нет, попытки декомпилировать код, поиски «лишних» функций, отрубание функциональности, подгонка под определённое железо (ах да, ведь добавив в последней версии под винду поддержку SSE3, ты совсем забыл про тех, у кого нет возможности исполнять эти инструкции). Я связываюсь с тобой, о великий разум, хочу узнать, как заставить работать твою чудную программу. Тебе же, как разработчику, проще было забить на всё и вся, используя всю мощь 16-ядерного процессора, забивая все 64 гигабайта оперативной памяти, занимая уже сотни гигабайт на винчестере — и лишь для того, чтобы вычислить 2×2.

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

10401

Округляй и властвуй

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

И вот как-то приходит ко мне один из директоров, приносит портянку размера примерно А2, расчерченную в мелкую клеточку и всю заполненную цифрами с рассчитанными итогами, и говорит:

— Забей мне это в Эксель!

Ладно, желание клиента — закон. Табличку сформировал, исходные данные забил, итоговые — в формулы. Отдаю. Через пятнадцать минут звонит:

— Ты мне неправильные цифры вбил.

Иду разбираться. «Неправильными» оказались цифры итогов. Спрашиваю:

— А почему вы решили, что они неправильные?

— Я рассчитал на калькуляторе, и у меня получаются другие цифры.

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

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

Друзья, пользователи не тупые. Они просто недоученные, в чём изрядная часть нашей с вами вины.

10370

Кроссплатформенный голландский штурвал

Мы свой код не пишем, мы чужой портим. Или портируем — разница небольшая. Всё бы хорошо, но есть ассемблерные куски. В Visual C++ нотация ассемблера по стандарту Интела, а на линуксе под gcc — по стандарту AT&T. Плюс куча нюансов. Фактически получаются два разных языка.

Долго искал конвертер. Нашёл два. Оба написаны в Голландии. Много думал. В общем, в этом факте своя логика есть. Перепишу-ка всё на С++…

10362

Технология «стелс-релиз»

Есть в нашей конторе специализированная самописная софтина для учёта заявок. Данные подтягивает из основной БД. Пишется она медленно, 905-й набор апдейтов связан с обновлениями основной базы и продлениями лицензии.

На днях лицензия закончилась. Лезу на корпоративный сайт, нахожу там новую версию программы, тупо меняю экзешник (там всё в одном файле скомпилировано, только конфиги внешние), запускаю… Облом!

Лезу снова на сайт, курю маны. Манов, по сути, нет. После пары часов периодического заглядывания на сайт обнаруживаю в прикрученном чате сообщение от разрабов, что версия-де только под «семёрку». А у нас обе машины, где софтина крутится, имеют 512 метров памяти! Нет, при известных извращениях и на них можно «семёрку» поставить, но потом меня же будут дёргать: почему тормозит?

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

Снова лезу на сайт, матерюсь, ищу инсталл. Нахожу, качаю, запускаю… Мать-мать-мать! Инсталлятор собран в триале Setup Factory, триал давно закончился.

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

10339

Не грози химическому заводу, попиливая код у себя в офисе

Всегда поражался безнаказанности людей, которая ведёт к бесстрашию. Закладки в софте управления теплопунктом? Это вы ещё не попадали ни разу. Однажды мне пришлось столкнуться с почти такой же ситуацией, только с другой стороны.

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

Понятно, что от трёхлетнего контракта на ТО от них мы отказались. На следующий день всё оборудование встало. Я сам двадцать лет занимаюсь компами, промышленной автоматикой и всем с этим связанным, так что определить источник проблемы было не так уж сложно, особенно после звоночка из Москвы насчёт контракта. Ладно, будет вам контракт… Приехали ребята из этой фирмы, подписали документы. Причём были настолько уверены в себе, что команду на разблокирование техпроцесса дали с привезённого с собой ноутбука. Они же не знали, что вот те ребята в штатском в коридоре — из прокуратуры.

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

В общем, как ребята отмазывались от статьи «Терроризм», история скромно умалчивает, но контракт был признан недействительным, а судя по довольным физиономиям полицейских, платить умным спецам по закладкам пришлось немало.

Прежде чем делать такие закладки, да ещё хвалиться на всю сеть, задумайтесь: а если бы начальник теплопункта встал в позу? А если на запрос депутатов ответил бы, что в софт теплопункта, от которого снабжается дума, заложена закладка? Ему бы больше ничего делать не пришлось — всё остальное сделала бы даже не прокуратура, а местное отделение ФСБ. Вам оно надо — давать ответы на вопросы, кому вы собирались продать доступ к этой закладке — США или Грузии? Уверяю, с ФСБ шутить не стоит. И вообще так шутить не стоит. Вы один, а сколько охраны на предприятии и на что пойдёт её начальник, вы вряд ли знаете. Скорей всего, закладкой вы более не воспользуетесь. И хорошо, если дело кончится полицией. Это ещё очень мягкий вариант.

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

10334

FAR too difficult

Пришлось тут поучаствовать в подключении человека к локальной сети с выходом в интернет. Пришли со шнуром готовым. Я к компу — там нечто древнее без сетевой карты. Ну, в принципе, всякое бывает, и без сетевых карт компы тоже. Винда 98-я тоже встречается ещё кое-где. Ладно, вставляю сетевуху. Включаю комп — и тут до меня медленно доходит, что загружается… Windows 95. А я уже лет семь её не видел. Не то чтобы я совсем всё позабыл, но удивился немало.

К стомегабитной сетевухе, как ни странно, даже шёл драйвер специально под 95-ку, который без проблем поставился. Вроде бы всё хорошо, но тут до меня опять-таки медленно доходит, что в 95-ке в принципе нет нормального браузера. Ну, есть, конечно, IE3, но браузером его назвать сложно. А ведь человек хочет интернета. Ладно, думаю, щас будем тестировать, какой браузер под 95-кой соизволит запуститься. Достаю свой CD с софтом… И тут, чёрт побери, до меня опять-таки медленно доходит, что в компе сидюшника-то и нет, только флоповод.

Здесь меня прошибает холодный пот. Бежать куда-то за CD-приводом, чтобы потом вставить его и обнаружить какую-нибудь очередную несовместимость с софтом или железом, как-то не хочется. Минуты три сижу в полной растерянности, пока мой взгляд случайно не задерживается на одном до боли знакомом ярлыке на рабочем столе. Это FAR. Жить становится сразу значительно легче. Там ведь FTP-клиент есть, а серверов с софтом — просто до фига.

IE3, кстати, не открывал вообще ни один сайт, включая microsoft.com: всё время показывал какую-то ошибку. IE6 ставиться на 95-ку отказался напрочь. IE4 и IE5 ни на одном из ближайших серваков я просто не нашёл (впрочем, ничего удивительного в этом нет). Файрфокс вылетел где-то под конец установки. Инсталлеры Оперы тоже лажались вплоть до седьмой версии. Последняя всё-таки встала и даже начала что-то показывать. Я уже было обрадовался, но радость была преждевременной: седьмая версия требовала регистрации. Причём кряк не запускался, вылетая с какой-то там ошибкой.

Итак, картина маслом: я настраиваю в Опере почтовый клиент (слава богу, там почтовик есть, не пришлось ставить сторонний). Скидываю админу по почте этот грёбаный кряк. Тот запускает его у себя, генерит пару-тройку ключей и отсылает их мне в текстовом виде. Я, довольный, ввожу ключи в Оперу, и на этом дело, собственно, заканчивается. Pentium 133 с 32 МБ памяти, Windows 95 и Opera 7 работают в интернете. FAR, спасибо тебе!

10333

Объясняем на пальцах

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

Приложение CameraWindow DC 8.8 для Windows является программным обеспечением, которое устанавливает CameraWindow DC на компьютер и выполняет обновление ранее установленной версии CameraWindow DC до CameraWindow DC 8.8.

С таким описанием всё гораздо понятнее!

10331

Закладки сладки

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

Сюжет раз. Автоматизация теплового пункта. Директор — жук. Компания имеет репутацию ниже плинтуса. Но кризис, денег нет, и работать с ними приходится. Как и ожидалось, после сдачи объекта начинаются разговоры об отсрочке оплаты работы в связи с недостроенной дачей. Окей. Достаю мобильник, отправляю SMS, говорю: «Я в коридорчике подожду». Директор удивлён. Через десять минут выбегает в коридор: теплопункт встал, заслонки закрылись, на кнопки не отзывается. А на линии ни много ни мало городская дума! А на улице −15. Короткое разъяснение, оплата труда в течение пятнадцати минут, запуск теплопункта новым SMS.

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

И таких сюжетов на моём веку мильон.

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

10318

Эмулируя эмуляторы

Довелось работать на скорой помощи. Там в рамках защиты персональных данных используется целая куча сертифицированного софта. Такой софт бывает двух видов: нереально дорогой или нереально глючный. Бюджетная контора (если, конечно, это не департамент какой-нибудь) может себе позволить только последний вариант. Чтобы усугубить ситуацию, департамент присылает новое железо, которым обязательно нужно заменить старое.

В итоге у пользователя тонкий клиент, на сервере 64-битная винда, целая куча глючного и древнего софта. С коллегой соединяли этот винегрет больше месяца. В расход пошли DOSBox, RDP, VNC, VirtualBox, HyperV и много других админских радостей; не обошлось и без бубна. В итоге пользователи прозрачно работают в привычной среде.