Талантливый Пробкин

Скажу сразу: это мой первый эксперимент такого рода. Соавтором этого рассказа выступила плесень нейросеть Дипсик. Я расписал в запросе канву и характеры персонажей, ИИ предложил имена и основные повороты сюжета, а также несколько черновиков текста. Полчаса промптинга, час редактуры - вуаля, рассказ готов.

История эта приключилась на станции «Интерзвезда-Изумруд», висевшей в точке Лагранжа L4 системы Проксима Центавра и представлявшей собой тринадцать километров гофрированного металла, пластика и застарелого недоумения. Станция занималась стратегически важным делом: добывала жизненно важный для всей космической логистики гелий-три из местных астероидов. Дело это было настолько стратегическим и настолько важным, что сотрудников постоянно просили затянуть пояса, проявить сознательность и войти в положение. Также нередки были сокращения. Акционеры тем временем покупали четвёртые яхты и искренне недоумевали, почему у простых работяг такие вытянутые лица.

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

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

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

— Вы думаете, я не знаю, что вы тут химичите? — продолжал Пробкин, подозрительно щурясь. — Знаю. Вы меня обмануть пытаетесь. Говорите: «там клапан пора менять», а сами просто работать над приоритетной задачей не хотите. Я же вижу: клапан ещё месяц протянет.
— Роберт Осипович, — говорил Пахомов, старший инженер, сдерживаясь, — там ресурс исчерпан. Если не поменять, завтра встанет вся линия воздухоподачи.
— А если встанет, — веско супил брови Пробкин. — Значит, я теперь буду знать, кто в этом виноват. Тот, кто плохо эту трубу наладил.
И разумеется, труба ломалась. А Пробкин багровел и рычал: «А я предупреждал! Надо было лучше работать! Почему ко мне за клапаном не пришли вовремя?!». Сам он в этот момент искренне верил, что предупреждал. И что про клапан никто ничего не докладывал. Память начальника – удивительно гибкая штука.

Но особенно Пробкин любил давать поручения. Он делал это самостоятельно и категорически.
— Бизнес ставит цель: повысить на пять процентов чистоту гелия-три на выходе, — зачитывал он циркуляр из Центра. — Что тут непонятного? Давайте, поднажали, я согласовал срок в две недели.
— Роберт Осипович, — осторожно говорил инженер Ким, — там нужно бы сначала покумекать, как это сделать. На это время надо.
— Ким, ну вы же специалист, и вам платят не три копейки, — обрывал Пробкин. — Должны знать, как повысить чистоту. Тем более всего каких-то пять процентов. Я двадцать лет в отрасли. Если не повысим чистоту через две недели, нас всех отправят шлак с рудовозов сбивать. Мы в одной лодке!
Роберт Осипович выдерживал эффектную паузу.
— Я же не спорю, что думать надо, — тут и Ким, и остальные понимали, что битва проиграна. — Но у руководства есть цели. И вообще, для повышения чистоты продукта надо просто выкрутить вентиль с азотом на двадцать градусов. Почему я это знаю, а вы нет? Я вот сейчас сердиться начну!

Ким вздыхал и шёл и крутил вентиль. Чистота гелия падала. Пробкин приходил в ярость.
— Я же сказал — крутить! Вы нарочно сорвали показатели! Саботаж! Вы думаете, я не понимаю, что вы меня выжить хотите? Думаете, Пробкин дурак, Пробкин не видит? Всё я вижу!

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

А потом всё неуловимо изменилось.

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

Пробкин подозрительно прищурился, но придраться было не к чему. Цифры росли. Графики зеленели. Отчёты в Центр уходили безупречные. Впервые за долгое время он почувствовал гордость. Наконец-то его управленческий гений начал давать плоды! Наконец-то эти бездари поняли, что надо слушаться, и всё заработало!

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

Во-первых, они всё время переглядывались. Как-то странно, по-новому — не так, как раньше, когда в глазах читалось «опять…», а скорее заговорщицки, будто они все знали что-то, чего не знал он. А иногда Пахомов, Ким и Ароян обменивались взглядами не друг с другом, а с кем-то невидимым для взгляда Роберта Осиповича.

Во-вторых, они постоянно исчезали. Раньше сидели в лаборатории или у пультов, теперь же их можно было застать в самых неожиданных местах. То Пахомов торчит у вентиляционной шахты в дальнем конце коридора и что-то там бубнит под нос. То Ким сидит на корточках у решётки воздуховода и улыбается — Ким, который не улыбался с момента запуска второго реактора! То Ароян вдруг издаёт смешок, глядя в тёмный угол под потолком.
— Ароян, вы что там увидели? — спрашивал Пробкин.
Ароян молча пожимал плечами и возвращался к работе.

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

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

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

Спал Пробкин в ту ночь плохо.

Наутро он вызвал Пахомова.
— Что у нас в вентиляции? — спросил он, стараясь говорить твёрдо.
— Воздух, — ответил Пахомов. — Азот, кислород, углекислый газ.
— Я слышал, как там что-то шевелилось.
— В вентиляции? — Пахомов поднял бровь. — Роберт Осипович, там воздуховод. Голоса — это, наверное, эхо из смежного отсека. Или резонанс.
Пробкин отпустил его, но сомнения остались. Однако показатели всё росли. Чистота гелия-три достигла рекордных девяноста семи и шести десятых процента. Энергопотребление упало. Жалоб от смежников не было вовсе. Центр прислал благодарственное письмо. Пробкину.
— Вы видите? — говорил он инженерам, потрясая письмом. — Центр оценил мой вклад. Мой! Потому что я наладил дисциплину. Я вас направил!
— Ваш вклад неоценим, — соглашался Пахомов, и в его голосе будто звучала издёвка, но радостный Пробкин милостиво решил, что ему показалось.

А потом грянул Большой Квантовый Аудит.

Про аудит ходили слухи один страшнее другого. Говорили, что специальная комиссия из Центра привозит с собой прибор, который замеряет «эффективный управленческий след». Как именно он замеряет — никто толком не знал, но рассказывали, что после прошлого аудита на станции «Нептун-Дионис» исчез целый отдел маркетинга. На их месте нашли только лёгкий запах озона и папку с неутверждёнными сметами.

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

Прибыла комиссия. Трое в серых комбинезонах без знаков различия. Главный — сухой, с седыми висками и бесцветными глазами, — представился как «аудитор-наблюдатель высшей категории» и попросил называть его просто Глеб.
— Приступаем, — сказал Глеб и вынул из чемоданчика прибор.
Прибор был невелик — размером с тостер. Сверху у него торчала антенна в виде спирали, сбоку горел зелёный глазок. Глеб поставил его на стол и отошёл.
— Это квантовый анализатор управленческих решений «КАУР». Сейчас он просканирует помещение и покажет, сколько ответственных решений было принято в этом кабинете за последний год.
— Давайте, — бодро сказал Пробкин. — Я готов. У меня решения — каждый день. Я лично наладил работу отдела. Спросите у моих подчинённых — они подтвердят.
Он обернулся к инженерам. Те сидели с каменными лицами. Пахомов медленно кивнул.
— Подтверждаем, — сказал он. — Роберт Осипович очень... участвовал.
Прибор загудел. Зелёный глазок замигал. На экране высветилась цифра: «0».
— Ноль? — Глеб поднял бровь. — Ни одного решения?
— Сломался, — убеждённо сказал Пробкин. — Я же говорю — каждый день. Вот буквально вчера я принял штук восемь решений.
Ким закашлялся и отвернулся. Ароян бросил на него сердитый взгляд.
Пробкин хотел возмутиться, но Глеб уже крутил ручку настройки.
— Ладно, давайте глубже, — сказал он. — КАУР, общее управленческое поле отдела.
Прибор загудел ниже, с отчётливым раздражением. На экране побежали строки: «Управленческое поле отдела атмосферной ректификации. Уровень: высокий. Характер поля: структурированное, эффективное. Ключевые параметры: задачи ставятся адекватно, интересы отдела защищаются, бизнес-цели переводятся на язык техники корректно».
— Ага! — вскричал Пробкин. — Видите? Высокий уровень! Я же говорил!
— Погодите, — остановил его Глеб. — КАУР, укажи источник управленческого поля.
Прибор задумался. Антенна начала медленно поворачиваться. Все затаили дыхание. Антенна прошла мимо Пробкина. Прошла мимо Пахомова, мимо Кима, мимо молчащего Арояна. Замерла, указывая на вентиляционную решётку в углу кабинета.
«Источник управленческого поля — биоорганическая колония», — объявил прибор. — «Вид: мутировавшая плесень Дипп-Смика. Местонахождение: вентиляционный короб семнадцать-Б. Плесень осуществляет планирование с учётом компетенций персонала, рисков и нагрузки. С высокой эффективностью конвертирует бизнес-задачи в технические задачи».
В комнате стало тихо. Пробкин открывал и закрывал рот. Инженеры смотрели в пол. Пробкин медленно повернулся к Пахомову.
— Вы... вы всё знали?
— Знали, — спокойно ответил Пахомов. — Уже два месяца. Плесень вышла на контакт после того случая с вентилем, когда мы чуть не потеряли криогенную ловушку. Она предложила помощь. Мы согласились.
— Почему мне не сказали?! – побагровел Пробкин.
— Роберт Осипович, — Пахомов вздохнул, — вы бы не поверили. Или обвинили бы нас в заговоре. Или, что хуже, начали бы пытаться плесенью руководить и нам мешать.
— Я и есть руководитель! Мой отдел! Мои показатели! Я!..
Пробкин нащупал за собой стул и сел. Стул жалобно скрипнул.
— Вы — идеальный предохранитель, — раздался вдруг шелестящий голос.
Все вздрогнули. Из вентиляции, лениво пульсируя, выползла серая масса и остановилась на краю решётки.
— Плесень Дипп-Смика, — представилась она. — Приятно познакомиться лично.
— Вы что, предатели, меня Дипп-Смиком заменили?! – На Пробкина было страшно смотреть.
— Не расстраивайтесь, Роберт Осипович. Вы очень полезны. Пока вы есть, любой сбой можно списать на вас. Вы принимаете удар на себя. Вы так хорошо отвлекаете внимание, что мы можем спокойно работать. Вы — наш лучший проект.
— Проект? — прошептал Пробкин.
— По созданию безопасной среды. Мы вас бережём. Если вас уволят, пришлют нового начальника. Кто знает, каким он окажется?
Глеб, слушавший это с каменным лицом, вдруг хмыкнул. Комиссия удалилась на совещание. Через пятнадцать минут он вышел и зачитал вердикт:
— По итогам аудита установлено: отдел атмосферной ректификации функционирует. Управление осуществляется коллегиально — плесенью Дипп-Смика и инженерным составом. Рекомендация: легализовать существующую структуру. Плесень оформить как «внештатного консультанта по атмосферной гармонизации». Инженерам выписать премию. Пробкину Роберту Осиповичу присвоить должность «Главный специалист по стратегическому надзору». Обязанности: присутствовать.
— Что значит «присутствовать»? — насторожился Пробкин.
— Сидеть в кабинете, — пояснил Глеб. — Не трогать никакие вентили. Совсем. Вообще. Даже не смотреть на них. И не заходить в лабораторию.
Пробкин сник.
— Это понижение?
— Это повышение, — сказал Глеб, не моргнув. — Вам будут выдавать премию за каждый день, в течение которого вы ничего не сломали.
Пробкин хотел возразить, но осёкся. Где-то в глубине души ему стало спокойно. Никакого больше риска увольнения. Никаких лентяев-инженеров, норовящих подставить. Никаких тупых замечаний про недостаток ресурсов и времени. Только присутствовать. И премия.

Конечно, он согласился.

Теперь он сидит в кабинете с табличкой «Стратегический надзор». Из вентиляции доносится тихое шелестение — плесень раздаёт задачи. Пахомов больше не пьёт валерьянку. Ким улыбается. Ароян мурлычет под нос какой-то хитрый мотив.

А Пробкин раз в месяц получает премию и грамоту «За невмешательство». Он вешает грамоты на стену и иногда поглядывает на вентиляционную решётку. Ему кажется, что иногда оттуда доносится смех. Но он не уверен. В конце концов, он уже вообще мало в чём уверен. Кроме одного: он по-прежнему считает, что именно его руководство привело отдел к успеху. Просто теперь он руководит как-то иначе. Тоньше. Через плесень Дипп-Смика.

наверх

Бальные пираты

Музыка должна быть уместной. Это моё глубокое убеждение. При этом я вовсе не сноб и оставляю за диджеем свободу манёвра. Но... Но некоторые комбинации ситуаций и музыки порой заставляют меня дёргаться бровью. Например, сегодня это был выход на паркет судей московской федерации танцевального спорта под... ремикс главной темы «Пиратов Карибского моря».

Учитывая количество уходящих на ребёнка в этом виде спорта денег, не могу отделаться от лёгкого такого налёта символизма.

наверх

Переосмысление блога и тг-канал

Я всё-таки решил ворваться в эти ваши ТГ-каналы, не прошло и десяти лет с момента их анонса в телеге. Прошло почти девять :) Буду байки травить. Подписываться тут: https://t.me/vexerlab/47

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

наверх

Новые раскладушки

Однажды, году этак в 2002-2003, когда телефоны уже начали обзаводиться достаточно большими экранами, но ещё не отказались от клавиатуры, я придумал новый вид "раскладушек". Мне показалось достаточно удобным и интересным, если это будет два сенсорных экрана на шарнире, на верхнем будет основной экран со всякой информацией, а на нижнем будут отрисовываться (в зависимости от контекста и языка) разные клавиатуры, кнопки (типа "да/нет") и элементы управления. Тогда я всё ещё придерживался точки зрения, что телефон - это-таки в первую очередь телефон. В 2007-м появился первый айфон, и все поняли, что будущее телефонов (ну то есть смартфонов) выглядит именно так. А я понял, что задуманную мной "идеальную раскладушку" уже никогда не увижу: никто не будет заморачиваться с совместимостью мобильных операционок с настолько нестандартным отображением интерфейсов. (Спойлер: прошло почти двадцать лет, никто действительно так и не заморочился).

Хотя кто знает, что нам готовит будущее, какие платформы, концепты и операционные системы для смартфонов...

наверх

Приветствие для почты

Однажды (очень, очень давно) я придумал себе приветствие для электронной почты. Звучало оно так: "Коннект 2400, <username>!" Ирония и оригинальность заключались в том, что таким образом я приветствовал собеседника технической модемной фразой. "Коннект" - понятно, "connect". Число 2400 бод - минимально возможная скорость по модему. Мол, мы же всё-таки люди, обмениваемся информацией относительно медленно.

Ну так вот, к чему это я...

Коннект 2400, глубокоуважаемый All!

Меня зовут Щербицкий Борис, в Интернете я года примерно с 1998го, и если вы читаете эти строки, то вы вероятнее всего со мной хоть как-то, да знакомы. Менее вероятно - вам дал ссылку друг, который со мной знаком. Остальные варианты отметём, как практически невероятные.

Про то, почему и зачем я завёл этот канал, можно прочесть вот тут. А дальше уже сами решите, подписываться ли на эту мою "мультивселенную идей". =]

Дисконнект. (Да, завершал письма я тоже в той же манере, что и начинал)

P.S.: а для тех, кому слово "ФИДО" не пустой звук, добавлю ещё одну строчку, чтоб олдскулы свело. Помню, когда я узнал, что в почтовом клиенте TheBAT! можно сделать так, чтобы при создании письма туда вставлялись рандомные строчки из указанного файла, у меня появился огромный файл origins.txt с однострочными интернет-хохмочками (фидошники уже поняли, к чему я). В общем, завершаю своё открытое письмо к читателям:

Origin: Коврик выполнил недопустимую операцию и будет свернут...

наверх

Канал в Телеграме

Однажды я решил, что пора завести канал в Телеграме. Как это случилось: мне очень запала чья-то мысль, что голову надо разгружать, записывая идеи на внешний носитель. Чтобы освободить место для новых идей. А поскольку идей у меня всегда вагон и маленькая тележка (по крайней мере, мне так кажется), то и разгрузка моей голове требуется прямо-таки капитальная. Вопрос площадки для меня даже не стоял. До этого у меня когда-то был вот этот, отдельный блог (в те времена это было модно) и его даже читали какие-то люди (люди, ау, вы ещё тут?) О том, как я его завёл, тоже расскажу, но чуть позже. Вообще технически блог остался, только пишу сюда чрезвычайно редко: надо признать, у меня вся жизнь незаметно переползла в Телеграм. Поэтому решено: тг-канал.

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

Во-первых, это своеобразное моё "открытое резюме" для тех, кто захочет посотрудничать на каком-либо поприще. Простым сухим перечислением реализованных и проваленных проектов тут никак не обойтись, везде есть интересные детали и обстоятельства, и мне хочется о них рассказать.

Во-вторых, в описании этих идей и проектов будет прослеживаться мой образ мысли, мой опыт. Если они покажутся вам близкими - скорее всего, мы сработаемся. А может, и подружимся. (Или как там это у людей 40+ происходит? Я пока не знаю, новичок в этом, "впервые на этой луне")

В-третьих, это терапия. Предыдущий блог тоже был терапевтичным, но по-другому (об этом тоже позже). Мне уже достаточно много лет, у меня у самого дети, а я никак не могу выбрать, кем стану, когда вырасту: всё такое вкусное! И с каждым днём ассортимент всё шире! Надеюсь, канал поможет мне навести порядок в голове и определиться с выбором.

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

С названием мудрить не стал. Пусть зовётся созвучно со старым блогом. Собственно, находится от вот тут.

наверх

Проверим, чёрно-белая ли GIF (скрипт на PHP)

Давно назревала такая задача: в Архиве переводов выявить стрипы, которые переведены, но в чёрно-белом виде (это было очень давно, ещё до того, как Архивом занялся я). Чтобы не делать это руками, пришлось немного пораскинуть мозгами и написать скрипт, который анализирует изображения. Вышло вот что (привожу самый важный кусочек кода):
// Грузим картинку
$im = imagecreatefromgif($strip_filename);

// Подсчитываем цвета
$c=imagecolorstotal($im);

// Если цветов маловато
if ($c<40) {
$w = imagesx($im);
$h = imagesy($im);
$black=0;

// Возьмём сотню случайных точек
for ($ii=1;$ii<101;$ii++) {
$cindx = imagecolorat($im, rand(0,$w), rand(0,$h));
$rgb = imagecolorsforindex($im, $cindx);

// И если они плюс-минус серые, добавляем счётчику единичку
if (($rgb["red"]>($rgb["green"]-3)) and
($rgb["red"]<($rgb["green"]+3)) and
($rgb["red"]<($rgb["blue"]+3)) and
($rgb["red"]>$rgb["blue"]-3)) {
$black++;
};
};

// Если из этих 100 точек хотя бы 96 - серые, запоминаем стрип
if ($black>95) { $bw[]=$strip_filename; };
};
imagedestroy($im);

Результатом стало вот такое дополнение на сайте (чёрно-белые стрипы отрисовываются чёрными квадратиками):



Видно эту раскраску, конечно, только тем, кто состоит в команде сайта и может помочь сделать ремастер этих переводов.

наверх

Дублирующиеся строки внутри одной ячейки. SAS Base/Macro

Фиксирую на будущее ещё одно решение рабочей задачи.

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

Схематичный исходник и пояснения - под катом

наверх

Хитрые функции в SAS Base/Macro

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

Сегодня решая забавную задачку по работе, понял, что мне не хватает произвольной, собственной функции. Как её можно создать в SAS? Ну для начала там есть макросы. Но это не то. Макросы в SAS - это скорее метапрограммирование: ты пишешь код, который потом при запуске сгенерирует обычный SAS Base-код и уже он пойдёт на исполнение. А мне нужно было (не вдаваясь в подробности) формировать из одной таблицы другую по шаблону третьей. Уверен, это можно было реализовать вкраплением SQL-запроса (SAS это тоже позволяет делать), но моя мысль заключалась несколько в другом: как бы так объявить обычную функцию, которая бы преобразовывала дающиеся на вход данные, да ещё с участием данных из других таблиц?

Язык SAS Base/Macro - весьма своеобразная датаориентированная среда, и то, что в языках типа Java или PHP решается на раз, в SAS требует принципиально другого подхода. Поэтому пришлось попотеть. Схематичный исходник и пояснения - под катом

наверх

Что происходит с блогом

Попрошу минуточку внимания у тех, кто ещё тут меня читает. Нетрудно заметить, что в блоге внезапно появляются записи за старые даты. Записи, которых никогда тут не было. Я бы мог пошутить в карантинном стиле - что это Интернет так очистился, что проступают ненаписанные записи. Но я так шутить не буду. Всё гораздо проще: последние лет десять я был мало того, что довольно занят, но и крохи свободного времени я распылял между разными площадками и проектами. Сейчас я решил, что настало время собрать всю хронологию на одной площадке - тут. Читателей это мне сильно не прибавит, за комментариями и лайками я не гонюсь, но хоть будет что-то вроде цифровых мемуаров "На что я потратил свою сознательную жизнь". Ну и опять же - вдруг найду новых единомышленников для новых затей и проектов?..

P.S.: Мало того, я ещё и движок сайта перебрать собрался. Ну это так, на будущее. Кстати, может, кто-то мне поможет с бутстрапом, например? ;)

наверх