Верхняя полка📝
361 subscribers
284 photos
11 videos
3 files
145 links
Путевые заметки программного инженера и легкоатлета-любителя.

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

Домашняя страница: https://toparvion.pro/
Download Telegram
Крайняя неделя года — не повод расслабляться, в том числе для программного комитета 😉
Forwarded from SnowOne-канал
Всем привет!

А мы с подарками: продолжаем публиковать спикеров SnowOne 2025 🎉

В этот раз решили показать не только спикеров основного дня, но и часть программы студенческого.

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

Следующую партию спикеров опубликуем уже после Нового Года, а пока напоминаем, что c января билеты чуть подорожают, так что самое время приобрести их сейчас.

Всех с наступающими праздниками! 🎄
🎄4
Вот уже восьмой год подряд под самый праздник я несколько дней подряд нарезаю не салатики, а... фотки и видео. Завёл традицию по вечерам 31 декабря виртуально собирать свою семью за голубыми экранами кристаллическими дисплеями и рассказывать о том, чем запомнился уходящий год. Семья у меня не большая, но весьма геораспредёленная: по широте от Краснодара до Владивостока и по долготе от Алматы до Магадана; две страны, под десяток часовых поясов 🌏

В этом году технологический стек мероприятия сильно изменился и получился таким:
• каталогизация фото и видео (распознавание лиц, мест, объектов, дат) — LibrePhotos;
• трансляция и живое общение — VK Звонки
• статичные слайды — Google Slides
• интерактивные слайды (викторина) — AhaSlides
• шаринг изображения и звука — Google Chrome

При этом от давно полюбившейся мне OBS Studio пришлось отказаться в последний день, потому что мне так и не удалось заставить корректно работать виртуальный аудио кабель на звуковом сервере PipeWire (Ubuntu 24.04) 🤷🏻‍♂️

Из-за обилия таких изменений начало встречи выдалось скомканным, долго собирались и настраивались. Но потом вроде дело пошло. Впечатление сгладила впервые добавленная викторина — помимо пассивного созерцания слайдов родственники периодически брали в руки телефоны и через AhaSlides делали небольшие задания, например, сопоставляли имена детей с их первыми словами или фото мужчин с их малоизвестными занятиями по молодости. А в конце все вместе подбирали эпитеты к уходящему году и в реальном времени наблюдали за построением облака слов из них ☁️

В целом, считаю эксперимент позитивным; намерен совершенствовать его дальше. Если интересно, могу рассказать о применяемых инструментах отдельно 💁🏼‍♂️

С наступившим 2025 годом! 🎄
7🎉1
Что там по спорту?

Ни в 2016-ом, когда начинал регулярно заниматься ерундой бегом и плаванием, ни в ушедшем 2024-ом я не зарекался продолжать и уж тем более обещать выполнить какой-то амбициозный объём. И оттого лишь отрадней констатировать, что эта затея до сих пор не заглохла и даже в чем-то продолжает расти... 📈

Вот как это выражается в цифрах (в скобках — данные за 2023 год):
• Время в движении, часов: 228 (203)
• Общее расстояние, километров: 1567 (1602)
• Соревнований, штук: 13 (8)

Тут может возникнуть резонный вопрос: заниматься стал больше, а расстояние преодолел меньше, как так? 🧐

Можно подумать, что замедлился, но нет — просто сместил приоритет с бега на плавание. А оно, конечно, медленнее. Вообще, складывать беговые километры с плавательными это как сравнивать тёплое с мягким, но такая метрика пришла из триатлона и пока остаётся в отчётах с пометкой "исторически сложилось" 🗿

Истинный расклад сил виден на диаграмме. Судя по ней, в этом году я вообще не бегун, а, в основном, пловец и немножко лыжник. Последний статус, кстати, оформился буквально в ноябре, когда я вновь поступил в лыжную школу 🎿

На год грядущий ничего обещать не буду, однако уже купил несколько слотов, которые и станут спортивными целями:
лыжный марафон в Томске в марте;
🏃 беговой полумарафон в Новосибирске в апреле;
🏊🏃 триатлонная эстафета в Белово (Кузбасс) в июне;
🏊 плавательный марафон на Тургояке (Миасс) в июле.

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

Физического вам здоровья!🍀
#спорт #итоги
🔥7👍1
Итак, салаты доедены, Кока-Кола допита, фильмы досмотрены, можно возвращаться к разработке 👨‍💻

Хотя кого я обманываю — в этот раз она для меня не прерывалась ни на день. Сразу после окончания работы над семейными итогами года (которые тоже не обошлись без программистики), между поеданием вкусностей, катанием на лыжах/плюшках и прочими новогодними непотребствами, я начал одну экспериментальную разработку, о которой пока рассказать нечего кроме того, что изначально планировал закончить её MVP за каникулы и примерно сегодня показать вам, однако по факту успел сделать только 2/3 от первых 90%. Никогда такого не было, и вот опять🤪

В рамках этой активности продолжил прощупывать бесплатных #ИИ ассистентов разработчика, встраиваемых в #IDEA. На сей раз перешёл с Codeium на Tabnine. В целом, впечатления стали сильно позитивнее.
Из плюсов:
• гораздо меньше багов и нелепостей в реализации плагина к IDE (например, почти нет конфликтов со стандартными хоткеями);
• работает без VPN (по крайней мере, на модели Claude 3.5 Sonnet);
• гораздо лучше учитывает контекст проекта и почти все советы даёт в привязке к твоему коду, а не в вакууме;
• относительно хорошо справляется с генерацией кусочков кода по комментарию (именно так, не наоборот);
• при объяснениях может тыкнуть тебя носом в конкретное место в коде, на основе которого делает вывод.

👎 Из минусов:
• мутноватая схема обновления: может и сам, и через IDEA, и не всегда понятно, что происходит;
• довольно болтлив в suggest'ах — при длительной работе устаёшь читать его порой нелепые предложения;
• плоховато шарит в современной Java, например, предлагает работать с файлами через старый класс java.io.File вместо более гибкого java.nio.file.Path, а делать HTTP-запросы советует через java.net.HttpURLConnection вместо куда более удобного java.net.http.HttpClient. Впрочем, скорее всего, это дань реальности — большинство советов в интернете, на которых училась модель, написаны с этими классами, вот она им и следует.

🤭 Из забавного:
• Если после написанного комментария Tabnine не знает, какой код предложить, то вместо кода он генерит другой комментарий примерно такого вида:
// TODO implement what described in the comment above

• На странице своего аккаунта на сайте Tabnine есть раздел "🪄 Magic Moments", где собраны скриншоты предложенных им и не отклоненных тобой кусков кода (см. пример на картинке).

Пока намерен продолжить работать с Tabnine. Надо ещё попробовать, как минимум, генерацию тестов. Дальше будет видно 👁
2👍2
Forwarded from SnowOne-канал
Начинаем публиковать тезисы наших докладов, а заодно показывать вам новых спикеров в программе!

Сегодня говорим о хардкорных докладах SnowOne. Их у нас целых пять и каких!

1) Константин Владимиров из Syntacore на студенческом дне будет рассуждать о разнице между статическими и динамическими компиляторами, подробно остановившись на особенностях работы статических и обсудив их странные ограничения;

2) Александр Ланцов из Мир.Plarform обсудит эволюцию моделей памяти, как в Java, так и в других языках, покажет, какие в них есть проблемы, чем это все может быть чревато и как с этим всем жить;

3) Илья Гаврилин из Syntacore расскажет, как особенности устройства и микроархитектура процессора могут влиять на производительность JVM;

4) Роман Артемьев из Syntacore покажет, какие GC есть на Андроиде, чем они отличаются от GC в Hotspot и объяснит, как полностью concurrent GC может не слишком сильно просаживать производительность;

5) Петр Портнов из Ozon проанализирует историю switch в Java: покажет, что они унаследовали из Ceylon, как под капотом устроены нетривиальные случаи, и чего еще не хватает для красоты мира.



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

Хорошей всем недели!
1
Меж тем программа апрельской конференции JPoint (в Москве) уже начала публиковаться на сайте: https://jpoint.ru/talks/
Докладчиков пока совсем немного, но даже среди них вы уже можете встретить знакомые лица 😉
🔥71
Продолжаем подкидывать полешки в костёр интереса к предстоящей конференции SnowOne 2025 😉🔥
2
Forwarded from SnowOne-канал
Опубликованы спикеры студенческого дня!

Напоминаем, что на SnowOne есть специальный студенческий день 28 февраля, куда можно попасть бесплатно, если: а) вы студент (в таком случае при регистрации выбирайте билет Academic), б) вы посетитель основного дня и у вас есть билет.

Что же на нем будет происходить в этом году?

1) Константин Владимиров, про которого мы уже рассказывали в анонсе хардкорных спикеров, будет рассказывать про особенности статических компиляторов (доклад особенно подойдет студентам, кому интересно системное программирование);

2) Екатерина Шевчук поможет разобраться, что такое CI/CD, и как это поможет в вашей будущей карьере разработчика;

3) Алексей Овсянников покажет самые популярные Java и Kotlin библиотеки для написания Telegram Bots;

4) Роман Елизаров объяснит, зачем было создавать язык Kotlin: это рассказ из первых уст одного из главных дизайнеров и разработчиков Kotlin и автора механизма корутин в языке.

Получается такой супер-сплав практической пользы и уникальных знаний, не пропустите!

Больше деталей про доклады студенческого дня можно посмотреть вот здесь, а зарегистрироваться/приобрести билеты все еще можно вот здесь.
🥰2
Forwarded from SnowOne-канал
Мы продолжаем публиковать описания докладов и даже чуть ускоряемся! Сегодня очередь самого практического контента: доклады из категории Enterprise (все доклады будут в основной день, 1 марта).

1) Павел Кислов раскроет тему Spring Security и его работы с OAuth2, OIDC, SAML, SSO и Spring Authorization Server;

2) Михаил Поливаха прочитает основательный доклад про ORM-системы, рассмотрит примеры, ключевые дизайн-принципы и вытекающие из этого ограничения и use-кейсы;

3) Артём Бояршинов расскажет о том, как правильно проектировать Fluent API на Java, обратившись к примерам популярных библиотек: Spring Security, AssertJ, Awaitility и других;

4) Илья и Фёдор Сазоновы объяснят, что за настройка OSIV в Spring, чем она вредит и почему ее нужно отключать. Обсудят, что можно сделать, если пожар, вызванный этой настройкой, надо тушить прямо сейчас и времени на рефакторинг системы нет;

5) Сергей Петрелевич выступит с докладом "Что такое и для чего нужно backpressure?", где полностью раскроет тему и в том числе покажет, как backpressure уже реализовано в WebFlux.

Больше деталей о каждом из докладов можно прочитать здесь, а у нас впереди анонс еще одного блока интереснейших докладов, не переключайтесь!
🔥1
🕰 12:45
Хорошая традиция сохранять такие бирочки🙂
10❤‍🔥2🔥2
🌲 Новосибирский Академгородок
1 февраля 2025 г. ❄️
4😍4👍3🔥1
Газообразное состояние дел 🎈

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

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

Её истинный смысл "догнал" меня позже. Она описывает не тривиальную простоту измерения времени для заданного (конечного и единичного) блока работ, а наоборот — свойство дел неявно подстраиваться под "объём" предоставленного им времени. Ведь действительно: вспомните, сколько раз вы заканчивали проекты задолго до наступления дедлайна? Если много (постоянно), расскажите, пожалуйста, в комментариях, как вам это удаётся. Но что-то мне подсказывает, что это не так. И это нормально.

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

И вот потому, что "комфортный темп" — понятие ооочень растяжииимое (даже для одного и того же человека в разное время), выполняемые задачи с лёгкостью занимают всё предоставленное им время, разве что могут несколько уплотняться в конце.

Это удивительное и в чём-то даже контр-интуитивное свойство натолкнуло меня на аналогию из школьного курса физики, точнее, термодинамики. Как вы наверняка помните, газ занимает весь предоставленный ему объём, при этом его плотность меняется обратно пропорционально занятому объёму.

То же происходит и с делами во времени:
● каким бы ни был "истинный" объём работ, фактический срок выполнения наверняка окажется сопоставим с дедлайном;
● постановка сжатых сроков, очевидно, приводит к повышению плотности работы и, как следствие, к повышению "температуры", способному привести к последующему (воз)/(вы)горанию;
● закладывание большого запаса в сроки отнюдь не гарантирует, что дедлайн не будет достигнут, но может привести к тому, что бОльшую часть времени работа будет вестись с низкой плотностью, а значит, весьма "прохладно".

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

Поскольку дела сродни газу, они с высокой вероятностью легко уплотнятся, уступив место новому в том же объёме времени. Разумеется, так можно делать не до бесконечности, и постепенно плотность перестанет быть выносимой. И всё же потенциал "холодного уплотнения" у нас зачастую остаётся не раскрытым, и мы без всякого перенапряжения можем успевать больше. Стоит лишь попробовать 😉

P.S. Взятая из Википедии картинка иллюстрирует процесс расширения газа при внешнем нагревании, что в переводе на советы менеджерам звучит как: "чем чаще контролируешь исполнителя, тем дольше его ждёшь".
4👍2
Программный комитет конференции SnowOne, в котором мне выпала честь состоять, в этот раз отработал на опережение и укомплектовал программу в рекордно ранние сроки (по нашим собственным меркам, разумеется). При этом состав и качество программы вызывают гордость и нетерпение представить её вам. Осталось меньше месяца, скоро всё увидим 😉
1