bash.im ithappens.me zadolba.li

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% выявляющего за несколько часов адекватность выбранного решения).

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

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