bash.im ithappens.me zadolba.li

13479

Когда б вы знали, из какого сора...

Наткнулся сегодня на историю «Аутсорсинг грязной работы»:

Ещё на втором курсе мы писали прогу управления LPT-портом на Паскале. Суть была простой: на определённые пины подавать пять вольт. Но как её запустить на маке? На виндовую тачку ставим прогу, к LPT цепляем реле, через реле пускаем питание вайфай-точки. Создаём bat-файл, «слушающий» текстовик в расшаренной папке. На маке пишем командный файл для консоли, который записывает в текстовик строку «wifi-off». Когда виндокомп, сработав, отключает точку, командник на маке реагирует на «wifi-off-ok» в файле и выплёвывает окошко: «Wi-Fi погашен».

Так вот. Часть 1С-ников таким же образом реализуют обмен между системами, c учётом того, что 1С поддерживает все современные протоколы обмена. Этот вывод я сделал из недавнего опыта.

Понадобилось мне как-то связать 1С и Asterisk. Суть связки проста: из 1С берём список компаний с номерами телефонов и передаём его на сервер Asterisk по HTTP. А Asterisk, в свою очередь, сохранив этот список в базе, в будущем при входящем звонке показывает менеджеру на экране телефона, что ему звонит не какой-то там номер, а, например, компания «Рога и Копыта».

Обратился я с просьбой к знакомому 1С-нику, который, как я считал, разбирался в предмете. Он, выслушав мои хотелки, сказал, что по HTTP 1С не умеет и вообще нужно список сохранять ручками в файл excel/csv на сетевую шару, а Asterisk пускай мониторит эту шару на предмет наличия файла и при появлении затягивает его в базу. И попросил за это 100500 денег.

Опечаленный, но не сдавшийся, я вечерком сел за комп, скачал 1С и демо базу с данными и, не имея никаких знаний по языку 1С, начал пробовать силы. Итог: 3 часа плюс Гугл, и готово решение, которое делает то, чего хотелось — обмен на автомате и по HTTP.

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

P.S. Рассказал знакомому о правильном решении моей проблемы, а он отмазывается: «Ну, 10 лет назад файловый обмен работал и сейчас работает…»

13334

Четыре в уме

Пароли у нас в 1С всего четыре цифры. На безопасность не влияет — только чтобы менеджеры случайно не сидели под другими учётками.

Работает у нас «менеджер по продажам». Работает в смену. После выходных периодически забывает свой пароль в 1С. После третьего раза написал ему его пароль на листочке, сказал выучить наизусть. Через месяц снова забыл пароль. «А где листочек?» — «Потерял». Ну, блин, запиши себе в ежедневник!

Проблема ушла на месяц. После Нового года звонит мне снова: «Я забыл пароль». Спрашиваю его: «У тебя же в ежедневнике записано четыре цифры твоего пароля!» Ответ: «А у меня новый ежедневник».

До сих пор не знаю, зачем таких держат в фирме.

13318

Жёлтая угроза

Эникею в жёлтой программе. Вернее, обслуживаю её уже два года.

— Аллё, здрасте, ваш мальчик приходил, обновил нам и всё сломал.

— Точно он сломал, а не вы до него?

— Да ты, что ли, о%#&ла? Мы тебе деньги платим, пусть восстанавливает!

Прихожу на место, ставлю из резерва их базу — показываю буху. «Ничего не работало» и до меня. Бухгалтер молчит и делает вид, что меня нет.


— Здрасте, ваша 1С нам всё сломала.

— Что именно сломала?

Часы сбросились до 2000 года. Села батарея на матери. Рассказали, объяснили.


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


— Аллё, здрасте, у нас программа перестала работать, это вы нам её сломали.

— Как я её сломал, если я был три недели назад? Вы работали в ней эти три недели?

— Да! А сегодня не можем. Ошибку какую-то пишет.

— А как, по-вашему, я мог сломать программу три недели спустя?

— А вы таймер там поставили, наверное!


— Здравствуйте, у меня не принимаются платёжки (не отправляются бобры, не летят гуси) через софт %companyName%.

— Хорошо, а мы тут при чём?

— Ну вы же там все заодно, скажите им, чтоб они мне починили!


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

— Я не буду этого делать.

— Почему?

— Потому что я не программист, я не обязана уметь пользоваться имейлом!


— Иван Иванов, слушаю вас.

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

— Так, а проблема в чём? Поставьте больше шести.

— А я не хочу!

И такая дребедень каждый день.

13296

На один зуб (не тем, кто туп)

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


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

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

И ведь я сам прекрасно понимаю, насколько нелепо это выглядит. Сам понимаю, что задачи, которые для меня так сложны и стрессогенны, на деле не сложнее школьных примеров для третьего класса. Что они требуют меньше логики, чем рядовой квест в RPG, и меньше расчётов, чем поход в магазин за продуктами на неделю. И, тем не менее, раз за разом превращаюсь в идиота…

13158

Титановый костыль

Эта история абсолютно реальна и столь же заурядна, но в ней вы, возможно, узнаете себя.

При переносе данных из очень старой 1С 7.7, перепаханной вдоль и поперёк, в новую «восьмёрку» я встретил просто потрясающий комментарий:

//Временная заглушка. Сделаем пока так.
//Карпов, 01.03.2000

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

13050

Много денег скачать бесплатно

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

Начнём с того, что эта фирма представляла собой небольшой склад и штат сотрудников в пять-семь человек. Ничего необычного на первый взгляд. По документам же это было четыре ООО и шесть ИП, что в наше время встречается повсеместно. Тут-то я начал догадываться, в чём проблема.

Все эти ООО и ИП закупали товар, складывали в общую кучу, брали любой другой и продавали. Как результат — поступлений по проданным товарам нет, себестоимости нет, прибыль 100%. Вроде радоваться надо такой прибыли, но с налоговой уже начались проблемы, отчего и возник вопрос: «Почему так?»

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

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

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

12887

Плюс строчка в базе баз

Я бухгалтер.

Не плюйтесь. В своё время я закончила факультет ВМК и даже несколько лет на одном из заводов ВПК СССР с тремя другими такими же выпускниками под руководством конструктора-энтузиаста пыталась не больше не меньше как создать отечественную САПР. Ну, это так, к слову. Молодая, была, закомплексованная, боялась начальнику слово поперёк сказать. Он для меня был непререкаемым авторитетом — не про сходимость же процессов и методы оптимизации ему рассказывать. Кстати, он, конструктор, выучившийся в 70-е годы, когда слово-то «ЭВМ» было экзотикой, самостоятельно изучивший Фортран, всерьёз считал, что, написав программу, имитирующую действия конструктора, он создаст САПР. Святая вера! Он ведь кандидатскую на этом защитил.

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

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

Через неделю приехал админ, вынул хард, уехал, на следующий день мне его привёз с базой данных, оторванной от сети в день Y. Естественно, данных вверенного мне магазина там не было. Плюнув на всё, я поехала в головную организацию посмотреть, что же там. А там стояли две базы: одна, в которой они работали, а рядом то, что я за неделю от дня Х набила. Когда я спросила, что будет ещё через неделю — у них будет три базы, и так до бесконечности? — народ молча пожал плечами, а новый главбух, успевший поменяться за эту неделю, начала жаловаться мне на тупость ПО и беспорядок, оставленный предшественником. В общем, каждый тупо бил в базу данных свой объём первички, а кто и как потом всё это сводил, я не знаю.

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

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

12776

С новым квантом

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

Бухгалтерам, как и другим нормальным людям, такая точность нужна в очень редких случаях. В их учёте квант времени — это день; время внутри одного числа используется, только если с одним и тем же объектом произошло несколько последовательных операций, для отражения их очерёдности. «Жёлтый глюк» это понимает, кстати, и по умолчанию принимает начало периода за DD.MM.YYYY 00:00:00, а конец — за DD.MM.YYYY 23:59:59. Он вообще прямо из коробки понимает много чего — поэтому и задушил в своё время конкурентов, практически монополизировав российский рынок ERP-систем.

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

12535

Жёлтая плохая: я её не знаю

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

«Что такое ссылка? Я не понимаю!» — восклицал их начальник. Он же в запросе ставил условие ЭтоГруппа = 2. В этот момент мне вспомнился фрагмент из «Футурамы», когда Бендеру снится кошмар, где всплывают единицы и нули, и он просыпается с криком: «Кажется, я видел двойку!» При моей поправке, что нужно поставить 0 или 1, мне ответили тоном мудреца: «Не надо! У нас тут своё». Естественно, ничего не выполнялось и указывало ошибку на это условие. И все эти эксперименты — на рабочей базе.

Дальше — больше. Был показан крутой отчёт, над которым ребята трудились месяц. Параметров нет, отборов нет, группировок нет, поля поменять местами или убрать нельзя: всё жёстко забито в коде и выполняется только при открытии. Чтобы посмотреть данные, нужно переоткрыть отчёт. Функциональность на высоте: запросы написаны на T-SQL и к базе обращаются через ADO в обход RLS и всего остального «ненужного». Пофиг, что теперь все смогут увидеть информацию, которую не положено; пофиг на то, что мы полгода потратили на разборку, что и кому показывать…

Появляется второй отчёт. Нет, теперь 1С не нужна. Они из Экселя макросом дёргают инфу из базы. Ага, с полными правами и открытым паролем, вписанным в код (безопасники рукоплещут). 1С же «тупит», так быстрее. А ещё информацию можно менять напрямую.

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

12348

Нельзя просто взять и F5

Не так давно к нам обратился клиент. Раньше он работал в облаке в «1С: Управление торговлей» 10.3. Решил уйти на стандартную платформу. Это просто: купить лицензию и скопировать файл базы данных из облака к себе на компьютер.

И вот с такой задачей человек обратился в контору, которая называет себя крупнейшей IT-компанией Астрахани. Менеджер услышал слово «купить», сработал рефлекс, заработала продающая машина. Клиенту продали лицензию, а программист, следую веяниям моды, поставил ему «Управление торговлей» 11. Напомню, что до этого использовалась программа версии 10.3, и просто так перейти на следующую версию программы нельзя. Вот и у них не получилось. Потребовались дополнительные услуги по переносу данных, а это дополнительные расходы.

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

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

12215

Утром деньги, вечером NULL

Прочитал на Баше историю про недостачу стульев:

Работаю на складе ТМЦ. Столы, стулья, компы и прочая фигня пылится, ждёт своего часа. В инвентаризации оказалось недостача в виде двух стульев. Три дня искали — оказалось, мы на них сидим.

Господа, это всё мелочи. Аптека, склад. Стоит (не пугайтесь!) 1С версии 6.0. Работает, глюков почти не наблюдается, для склада, в принципе, большего и не нужно. Да и редактировать формы отчётов намного проще, чем даже в 7.7.

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

Один раз чуть было до увольнения дело не дошло. А вы говорите, стулья…

12078

Не стесняйся, ядер много

Не любите симбиоз IBM DB2 и мягкой, жёлтой, твоей? Вы просто не пробовали, тем более что попробовать можно бесплатно и у DB2 даже специальный режим работы для неё есть. Другое дело, что для жёлтенькой программы даже суперсовременного, но одного ядра и одного запущенного процессора на сервере маловато. Но мы же не сдаёмся?

Берём брендовый сервер специальной perfomance-серии, выясняем, что меньше чем с 32 гигабайтами памяти они в принципе не продаются, водружаем, запускаем на нем линукс (тоже брендовый), DB2, родное жёлтое… Уже третья Марьиванна, запустившая перепроведение своих документов за квартал, валит систему на бок, даже если она одна такая. Причина понятна: перепроведение даёт такой мощный поток транзакций, что база не успевает писать фиксировать всё это на диск.

Засада первая: «бесплатный» DB2 не жуёт больше двух гигабайтов памяти. Достаём лицуху, которая уже жуёт 32 гига, скармливаем, настойчиво заставляем её использовать не более 16, а не «авто», как по умолчанию. База залетала, но всё равно, маловато одного серверного процесса на всех будет! Бежим к своим суппортерам: да, хотим серверную лицуху нашей жёлтой, нет, с ума не сошли, да, знаем ваши цены, знаем, что вы скоро ценник ещё задерёте. Купили, воткнули, прочитали, что сетевые интерфейсы и количество памяти уменьшать нельзя, иначе активация слетит. Втольковываем, что если на сервер вошла Марьиванна, то запусти ты, умная железяка, ещё один процесс серверный, и пусть он её и обслуживает, а если зайдёт ещё Ольпетровна (которая одной кнопкой «Сделай мне хорошо» выставляет очень большое количество счетов), то и ещё один. В общем, не стесняйся, ядер у процессора много, гипертрединг выключен, дабы не смущать, больше четырёх человек — запускай ещё один. Возможностей встроенного контроллера хватает, RAID 10 на восьми дисках, состояние системы контролируется фирменными же тулзами с Service Pack DVD, если что — тут же админам письмо. Суппорт вендора привезёт запчасть максимум на третий день: железки-то заранее предупреждают, что плохо им, вежливые все, брендовые. А тут ещё и бэкапы можно делать, не выгоняя всех из программы, и их целостность потом в фоне проверить, не запуская жёлтенькую… Красота, все счастливы, Марьиванны довольны: им не надо думать, какую пакость админ в следующий раз подложит, они «свои» деньги вложили и видят отдачу.

Резюме: жизнь налаживается, если знаешь как. Другой вопрос — это ж ковыряться надо, а фирменные «жёлтые» админовские курсы в этом вопросе мало помогают. Плавали, знаем…

В то время как другие, пытаясь увидеть инфу S.M.A.R.T. с дисков в рейде, бегают по сайтам вендоров контроллера и дисков, выцарапывают где-то SNMP MIB от производителя матери, чтобы следить за датчиками, потом собирают это всё в кучу скриптами, чтобы Nagios вовремя или хотя бы уже постфактум что-то пискнул… Не будем ломать им кайф.

12075

Мягкая. Жёлтая. Твоя

Более десяти лет работаю с «непредсказуемой жёлтой поделкой». Работаю в основном у конечного работодателя. За это время образовался круг людей, которые мне доверяют. И когда судьба разводит нас по разным местам работы, эти люди иногда обращаются ко мне за помощью или консультацией.

Да, много за это время было историй.

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

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

— Ну зачем избыточная надёжность дискового хранилища? Если базы бэкапятся дважды в день, а в случае «П» поднять последний бэкап и вбить первичку будет быстрее (и надёжнее), нежели пытаться восстановить из порушенного хранилища? Тем более, опыт подсказывает, что чаще базы рушатся не из-за сбойного диска, а из-за кривых рук бухов/админов/прогеров.

Бывали и нападки на неадекватность жёлтой программы, которые при ближайшем рассмотрении решались без бубна, лишь чтением манов. Например, при четырёхъядерном камушке не все админы задумываются о назначении галочки «Много процессов» в свойствах кластера 1С.

И необдуманное развёртывание систем на базах DB2 и PostgreSQL — без элементарного поиска типовых проблем в таких решениях и банального нагрузочного тестирования (в 90% выявляющего за несколько часов адекватность выбранного решения).

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

Хотя, конечно, бывают и странности — но где их не бывает?