Верхняя полка📝
124 subscribers
116 photos
5 videos
3 files
59 links
Путёвые заметки программного инженера, атлета-любителя, отца, домохозяина.

Автор: Владимир @Toparvion Плизга

Домашняя страница: https://toparvion.pro/
Download Telegram
Собираюсь когда-нибудь сделать развлекательно-познавательный доклад на тему "Профессиональные деформации программистов" — про особенности поведения и речи, по которым нас с вами можно легко вычислить без знакомства и вне работы 👨‍💻

Типичный пример — на картинке ☝️

Накидывайте свои примеры в подобном духе (можно не про себя), и я с удовольствием включу их в материалы для подготовки доклада (с указанием автора, если нужно) 📚
Пришло время проанализировать результаты моего недавнего доклада на конференции Joker. Благо, личный кабинет докладчика у ребят из JUGRu Group предоставляет для этого немало данных 📊

В том прохладном зале бесконечной высоты нас с вами было 377 человек (без учёта технической команды). И ещё около ста смотрели доклад в прямом эфире, обеспечив докладу 469 слушателей в пике. При этом уникальных участников получилось без малого 602. Для сравнения: в 2019-ом на JPoint в Москве схожий показатель моего доклада составил 660 ⚖️

Глубина просмотра (доля посмотревших полностью) среди этих шести сотен составила 82% — показатель, который я затрудняюсь адекватно оценить. Чуть более ясным выглядит суммарное время просмотра доклада (включая запись) — 25 тыс.мин. или почти 17,5 суток. Эта абсолютная цифра не особа полезна, а вот её производная по времени, особенно после открытия свободного доступа к записи, будет весьма любопытной 📺

Но самое важное — это, конечно же, обратная связь. И здесь я в первую очередь говорю вам "Спасибо!" за то, что оставляете её 🙏🏼

По результатам 133 оценок доклад получил рейтинг 4,5/5. Вроде неплохо, но есть куда расти. Я хотел понять, где эти "точки роста", но, увы, комментариев к оценкам ниже "отлично" практически не оказалось. Предполагаю, что такие оценки ставились не за явные проблемы в докладе, а за его "лайтовость" — всё-таки в аудитории Joker'а много опытных инженеров, для которых в докладе было мало (или ничего) нового 🥷🏻

Если у вас есть другие инсайты или соображения на этот счёт, поделитесь ими, пожалуйста — они помогут лучше готовиться к следующим выступлениям 🎙
Когда и если вам потребуется надёжный способ прощупать окружающее "железо" из приложения на JVM, знайте, что для этого есть замечательная библиотечка OSHI (Operating System and Hardware Information) 🔬

Будучи написанной на Java c вкраплениями JNA (Java Native Access), она неплохо справляется с доступом к самому низкому уровню на большинстве распространённых платформ, в том числе в контейнерах. Причём, что любопытно, при запуске в контейнере она иногда может получить даже больше информации, чем вне его, потому что сам движок Docker, как правило, запущен из-под root'а, что даёт доступ к большему числу системных свойств, чем доступно процессу рядового пользователя 👮

Кто хочет проверить у себя, можно взять мой тестовый Docker-образ, который собирает доступные сведения о машине и выводит в консоль:
docker run --rm toparvion/oshi-test


#инструменты
Коротко о жизни в сибирском городе.

#пятница #хиханьки
Forwarded from SnowOne-канал
Всем привет!

Соскучились? Мы – очень! Поэтому держите несколько долгожданных новостей о SnowOne ❄️

– Следующий SnowOne пройдет 28 февраля - 1 марта 2025 года. Место проведения: Новосибирский Академпарк;
– В программе: студенческий и основной дни, как было в последние годы;
– В студенческий день будет 4 доклада, в основной – 15 (на 3-ех треках);

– У нас новые партнеры по организации конференции, уверены, что с ними получится сделать SnowOne больше и краше;
– У нас новый сайт! Смотрите, какой: https://snowone.ru (мы его еще чуть доделываем, если видите косяки, сообщайте, пожалуйста, все поправим);



Очень скоро мы начнем анонсировать первых спикеров, но уже сейчас можно сделать следующее:

1) Подать заявку на доклад через нашу форму cfp;
2) Купить blind bird билеты! Сейчас они продаются по самой низкой цене (логично, программы ведь еще нет), с декабря начнут дорожать.



С нетерпением ждем февраля и напряженно работаем над программой!

Искренне ваши,
Команда SnowOne ⛄️
Вчерась открыл лыжный сезон на стадионе НГУ. Собрался на тренировку like a pro: взял две перчатки... от разных пар... и обе левые 🤦🏼‍♂️

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

И вот только теперь я понял, что небезызвестная советская песня на самом деле была о подстерегающей лыжников опасности☝🏼

#пятница #спорт #хиханьки
На этой неделе завершил 2ой этап и провёл внутреннее демо по крупной фиче, над которой работаю в последнее время. В двух словах, это подсистема визуализации и трассировки исполнения выражений на встроенном языке нашей low-code платформы 🛰

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

Оказалось, что его язык DOT полагается на то же представление узлов и ребёр, что и в моём будущем фронтовом графе – два линейных списка. Кроме того, сам синтаксис языка оказался настолько прост, что его можно поддержать без всяких сторонних библиотек. Вот пример для дерева выражения 1+2:

digraph G {
node [fontname=Monospace style=filled];
0[fillcolor=lightskyblue1 label="Add\n +"]
1[fillcolor=lightsteelblue3 label="LongConst\n 1"]
2[fillcolor=lightsteelblue3 label="LongConst\n 2"]
0->1
0->2
}


Такие тексты я генерировал обычным StringBuilder’ом прямо из unit-тестов, а для отрисовки использовал Devtools/Daily (пример на картинке), хотя в сети есть немало других рисовалок 🖌

Словом, теперь, если вновь понадобится экспортировать какой-либо граф из кода и быстро его отрисовать, буду использовать GraphViz (dot). И вам рекомендую 🙂

#инструменты
Автор сих строк имел сознательную неосторожность (опять) вписаться в новую авантюру — на сей раз в пилотный запуск внутреннего бизнес-акселератора Новосибирского Академпарка (в качестве участника). Там я попытаюсь вдохнуть больше жизни в мой любимый проект StegoText, с которым уже проходил акселератор А:Старт весной 2023 года и которому, кстати, посвятил отдельный маленький, но гордый канал 🦅

Это будет значить, что моя и без того не особо прохладная жизнь на ближайшие месяцы уплотнится новыми (в основном, непривычными) активностями по несколько часов в неделю, которые ещё нужно будет где-то взять🙈 С другой стороны, текущий канал сможет пополняться новыми путевыми заметками не только о разработке ПО, но и о том, как она (не) превращается в бизнес 💼

Вероятно, мне предстоит непростой период. Я постараюсь взять из него лучшее. «Дорогу осилит идущий
Любопытный и показательный случай с участием ChatGPT приключился сегодня на работе 👇

Коллега попросил нейросеть написать ему кусочек кода по работе с самоподписанным SSL-сертификатом с применением библиотеки Bouncy Castle. Этот сверхразум в свойственной себе манере выдал весьма правдоподобный шмат кода с комментариями, который, конечно же, гладко вставился в приложение и без проблем скомпилировался. Просто чудо! 🪄

И только в runtime вдруг всё развалилось, да ещё как — Java начала ругаться, что у нас в каком-то из пакетов Bouncy Castle якобы не сходится цифровая подпись, поэтому она отказывается грузить оттуда классы... Какая подпись? Откуда? Что происходит? 🧐

(здесь должна быть красочная вставка про то, как мы полтора часа мудохались с Gradle в попытках выяснить, откуда в classpath могли приехать классы с разными подписями)

... после чего выяснилось, что один из использованных ChatGPT классов присутствует только в старом артефакте Bouncy Castle bcprov-jdk14, хотя весь остальной код должен был работать с более новым (и используемым в проекте) артефактом bcprov-jdk15. По-хорошему, такая подстава не должна была даже скомпилироваться, но злую шутку с нами сыграла одна из сторонних библиотек для работы с PDF — среди транзитивных зависимостей она притащила тот самый bcprov-jdk14, который не использовался до сего дня. А поскольку все артефакты Bouncy Castle имеют встроенную подпись, попытка смешать классы разных модификаций в одном runtime classpath привели к конфликту, и всё развалилось 🤹

Здесь сошлось немало обстоятельств: и мутная схема артефактов BC, и мешанина в зависимостях проекта, и замыленность взглядов разработчиков. Но не малую роль сыграла и доселе не замеченная в подставах нейросеть, которая вдруг выдала ересь под видом рабочего кода. Кажется, вывод прост: на "разум" надейся, а сам не плошай 🧠

#бывает
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from SnowOne-канал
Всем привет! Мы опубликовали на сайте первых спикеров SnowOne 2025!

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

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

Оставайтесь с нами, чтобы следить за следующими апдейтами по спикерам и новостями вообще :)
Напоминаю, что на границе зимы и весны 2025 пройдёт уже 6-я (по счёту) сибирская Java-конференция #SnowOne, в программном комитете которой я состою ❄️

Мы уже вовсю работаем над программой, и сегодня вышел анонс первой партии спикеров. Если вы знаете хотя бы часть этих людей, то уже наверняка предполагаете, что программа будет мощной. Спойлер: да, это так😎
В продолжение тем про #ИИ и конференции — вчера Сергей Задорожный (IT Friday), с которым мы пересекались на конференциях, выпустил вторую часть своего большого обзора на State of DevOps — ежегодное обстоятельное исследование состояния IT-индустрии со стороны DevOps👨‍💻

Вся вторая часть посвящена применению AI, что не удивительно. Однако помимо ожидаемого хайпа, в исследовании прослеживается и любопытный скепсис многих его участников, особенно в части будущего развития событий на средней перспективе (от 3 лёт и более). Есть над чем подумать🤔
Forwarded from StegoTrend 📈
В связи с тем, что в последние дни работа над проектом ведётся не столько в виде Java-кода, сколько в виде таблиц и интеллект-карт (mind maps), хочу снова немного рассказать про #инструменты, на сей раз для mind-mapping🧠

Я запал на этот подход больше десяти лет назад, и на первых порах вообще все свои заметки и наработки оформлял в mind maps ("Когда в руках молоток, всё вокруг кажется гвоздями" — всё так, всё так). Но когда конфетно-букетный период прошёл, остались два кейса, в которых интеллект-карты по-прежнему хорошо себя проявляли:
● когда выражаемая информация имеет явную иерархичность (например, если много вложенных пунктов);
● когда вообще не понятно, чем визуализировать имеющуюся в голове кашу, и надо начать хоть с чего-то (например, при мозгоштурме) 🤯

С тех пор я попробовал разные инструменты, начиная с чисто десктопного FreeMind и заканчивая полностью облачным MindMeister, но (tl;dr;) выбор остановил на XMind ✖️

У этого инструмента непростая история. Созданный в 2000-ых как десктопное кросс-платформенное приложение на Java, через 10 лет он достиг возрастного кризиса — стал монструозным, медленным, бажным, хоть и невероятно мощным и гибким. Но главное — мир уже вовсю переходил в веб, а инструменту на Java путь туда был заказан. Видимо, поэтому разработчики приняли тяжёлое, но единственно верное решение — "НаФигВсёПереписать!", причём на JavaScript. Первая версия на новом движке казалась полным провалом: функционал очень сильно обеднел, интерфейс стал примитивным, баги не исчезли, а сменились другими (стектрейсы стали JS-ными). Но время шло, и работа продолжалась. Около 3 лет (!) ушло на полное возрождение продукта. Но это время показало, насколько стратегически правильным был этот путь — благодаря ему, XMind сегодня обладает практически всеми необходимыми функциями по работе с mind-картами, да ещё несколькими уникальными, например, предоставляет анимированную презентацию, поддерживает совместную работы онлайн, а также помогает креативить в т.н. режиме дзена (zen mode) 🧘

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

А пока, если вдруг вы ещё не используете такие инструменты или хотите попробовать новый, рекомендую пощупать XMind. Другие варианты и их сравнение можно посмотреть здесь 👀
Это был сложный уикенд… для правой коленки 🦵🏼

Вчера впервые участвовал в плавательном спринте – 50 м вольным стилем в бассейне НГУ в рамках спортивного фестиваля. Вообще, я тихоход, и мне эти короткие взрывные отрезки даются плохо. Но решил попробовать. Сюрприза не случилось: мало того, что ещё на разминке умудрился до крови поцарапать колено о шершавый кафель бортика, так ещё и в самом заплыве накосячил почти в каждом элементе: от прыжка с тумбы до расклада сил по дистанции. Результат весьма посредственный, хоть и не последний – 38 секунд. Впрочем, это не удивительно, если учесть, что со мной в одном заплыве (6 человек) был кандидат в мастера спорта по плаванию. Он и приплыл первым. Случайность, я знаю 🤓

А сегодня выступил на Открытии лыжного сезона ИЯФ – лыжной гонке свободным стилем на 6 км. Это, конечно, уже не спринт, но сценарий оказался тем же – ещё на разминке (ну вы поняли) съезжал с первого спуска, заметил там остановившегося мальчишку и, чтобы не врезаться в него, вильнул вправо, однако скорость была высокой (а техника катания хреновой, что уж там), меня увело с лыжни в лес, где я ещё несколько метров пытался удержаться на ходу, но потом всё же стал заваливаться и в падении здорово треснулся тем же правым коленом об какой-то пень. Первым делом осмотрел экипировку (нынче сломать лыжи и ноги стоит сопоставимо), всё цело, поэтому несмотря на гул в колене поехал дальше. Следующим промахом оказалось решение бежать в стартовом костюме (считай, в одном термобелье) – при сегодняшних -12℃ шустрое катание с ветерком заставляло позвякивать практически всё. Но я добежал, пусть и снова со скромным результатом: 21 мин 14 сек, 48-ой из 66 лыжников 🎿

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

Зато после таких приключений очень приятно возвращаться к работе: вдруг понимаешь, как это здорово – делать что-то интересное и при этом не тонуть, не мёрзнуть, не задыхаться 🤪

#спорт
Фонд "Сколково" совместно с аналитическим агентством TAdviser на прошлой неделе опубликовали результаты исследования российского рынка MES-систем. Кто не в курсе, это софт, отвечающий за распределение ресурсов и планирование задач на производственных предприятиях, т.е. весьма важный компонент промышленности 👨🏼‍🏭

Согласно исследованию, в топе по основным характеристикам оказалась платформа AggreGate, над ядром которой трудится автор сих строк. Это как узнавать о красотах города, работая в одном из его подвалов — мелочь, а приятно🙃

Фактическую функциональность MES обеспечиваем не мы (джависты), а low-code инженеры, которые создают на нашей платформе приложения под конкретные нужды бизнеса. Так, например, на внутреннем митапе в прошлую пятницу один из инженеров рассказывал, как изучал научные статьи и по ним реализовал т.н. генетический алгоритм для составления оптимального расписания работ на сложном производстве 🧬

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

Нет, не опечатка.

#хиханьки
Please open Telegram to view this post
VIEW IN TELEGRAM