Ваня инженер 🇸🇪
Ir al canal en Telegram
Заметки про IT, развитие и жизнь из Швеции. Дзен канала: без нравоучений, только моё мнение и опыт. За оскорбления в комментариях предупреждение, затем бан. Написать мне t.me/skatromb
Mostrar másRusia385 599La categoría no está especificada
704
Suscriptores
Sin datos24 horas
+37 días
+330 días
Cargando datos
Canales Similares
Nube de Etiquetas
Sin datos
¿Algún problema? Por favor, actualice la página o contacte a nuestro gerente de soporte.
Menciones Entrantes y Salientes
---
---
---
---
---
---
Atraer Suscriptores
octubre '26oct '26
octubre '26
+22
en 0 canales
septiembre '260
en 0 canales
Get PRO
agosto '260
en 0 canales
Get PRO
julio '260
en 0 canales
Get PRO
junio '260
en 0 canales
Get PRO
mayo '260
en 0 canales
Get PRO
abril '260
en 0 canales
Get PRO
marzo '260
en 0 canales
Get PRO
febrero '260
en 0 canales
Get PRO
enero '260
en 0 canales
Get PRO
diciembre '250
en 0 canales
Get PRO
noviembre '250
en 0 canales
Get PRO
octubre '250
en 0 canales
Get PRO
septiembre '250
en 0 canales
Get PRO
agosto '250
en 0 canales
Get PRO
julio '250
en 0 canales
Get PRO
junio '250
en 0 canales
Get PRO
mayo '250
en 0 canales
Get PRO
abril '250
en 0 canales
Get PRO
marzo '250
en 0 canales
Get PRO
febrero '250
en 0 canales
Get PRO
enero '250
en 0 canales
Get PRO
diciembre '24
+10
en 0 canales
Get PRO
noviembre '24
+7
en 0 canales
Get PRO
octubre '24
+9
en 0 canales
Get PRO
septiembre '24
+12
en 0 canales
Get PRO
agosto '24
+10
en 0 canales
Get PRO
julio '24
+10
en 0 canales
Get PRO
junio '24
+8
en 0 canales
Get PRO
mayo '24
+16
en 0 canales
Get PRO
abril '24
+12
en 0 canales
Get PRO
marzo '24
+26
en 0 canales
Get PRO
febrero '24
+31
en 0 canales
Get PRO
enero '24
+30
en 0 canales
Get PRO
diciembre '23
+28
en 0 canales
Get PRO
noviembre '23
+21
en 1 canales
Get PRO
octubre '23
+23
en 0 canales
Get PRO
septiembre '23
+56
en 0 canales
Get PRO
agosto '23
+29
en 0 canales
Get PRO
julio '23
+12
en 0 canales
Get PRO
junio '23
+6
en 0 canales
Get PRO
mayo '23
+23
en 0 canales
Get PRO
abril '23
+15
en 0 canales
Get PRO
marzo '23
+18
en 0 canales
Get PRO
febrero '23
+17
en 0 canales
Get PRO
enero '23
+23
en 0 canales
Get PRO
diciembre '22
+26
en 0 canales
Get PRO
noviembre '22
+25
en 0 canales
Get PRO
octubre '22
+14
en 0 canales
Get PRO
septiembre '22
+38
en 0 canales
Get PRO
agosto '22
+36
en 0 canales
Get PRO
julio '22
+47
en 0 canales
Get PRO
junio '22
+35
en 0 canales
Get PRO
mayo '22
+266
en 0 canales
| Fecha | Crecimiento de Suscriptores | Menciones | Canales | |
| 15 octubre | +3 | |||
| 14 octubre | +1 | |||
| 13 octubre | +2 | |||
| 12 octubre | 0 | |||
| 11 octubre | 0 |
Publicaciones del Canal
Я написал линтер для Rust
Последние полгода я с Клодом набегами пишу один проект на Rust, о котором вскорости расскажу. Проект для души, и мне не наплевать на красоту кода. Приходится постоянно одёргивать Клода, чтобы он не перебарщивал с использованием замыканий, не делал функций, которые не помещаются в экран, использовал понятные термины и так далее.
Параллельно с этим я вспомнил про замечательный линтер для питона от Никиты Соболева wemake-python-styleguide! Когда я натравил его на Клода, был приятно удивлён тем, насколько более читаемый код стал генериться. И тут мне пришла в голову идея переписать его на раст, попросить клода за 20 минут портировать его для Rust.
...Спустя неделю корпения, поиска и сравнения нужных правил в
rustc.lints и clippy, подбора адекватных настроек параметров, а также обёртывания в удобный установщик...
Встречайте, 🦀easy-peasy-rust 🦀!
Ставится на изи:
cargo install easy-peasy-rust
cargo easy-peasy [--drop-existing]
А дальше родной clippy начинает ругаться на примерно весь ваш код.
В наборе есть линты почти про всё, что по дефолту выключено:
• Читаемость
• Размеры функций
• Когнитивная сложность
• Идиоматические паттерны
• Запрет на панику и всякие .unwrap() в продакшн коде
Какие-то из настроек — тык пальцем в небо, — так что ваш фидбек будет неоценим. Иных линтов нет в принципе (например, ограничение на размер модуля), их надо будет дописать в сам clippy.
P.S На самом деле, это сам по себе не линтер, а установщик набора правил для clippy в конфиги Cargo.toml и clippy.toml. Без этих настроек часть из них выключена совсем, а у части стоит заоблачное пороговое значение.
P.P.S. А если вы хотите поконтрибьютить, милости прошу, много чего можно допилить, особенно в части clippy.| 2 | Признаю, без Клода я бы не осмелился на такое. Обычно, когда залетаешь с ноги в подобные проекты, уходит тонна времени на то, чтобы понять, как оно вообще устроено. Всякий раз это заканчивалось тем, что я зарывался в детали, так и не поняв основной картины, и терпение кончалось быстрее, чем я успевал написать хоть строчку кода.
С Клодом гораздо проще получить верхнеуровневое понимание кодобазы. Да, он порой работает неидеально, но он хотя бы может указать тебе, с чего начать, когда нормальной документации для новичков-контрибьюторов в проекте нет (а таких проектов, признаем, большинство).
Rust clippy, кстати, позитивное исключение в этом смысле: у него замечательная и понятная документация для контрибьюторов и прекрасный набор тулзов-команд для создания новых линт-правил. Достаточно набрать в командной строке команду, как все нужные файлы создаются сами, а тебе остаётся лишь написать логику самой проверки. So far, это был самый дружелюбный с точки зрения освоения проект, в который я попытался законтрибьютить — и поэтому и смог.
Если у вас тоже возникло желание законтрибьютить в опенсорс, но не знаете, с чего начать, зайдите на goodfirstissue.dev и посмотрите список проектов, которые ищут контрибьюторов. | 680 |
| 3 | Ваня опенсорсер
На прошлой неделе у меня случился первый мерж в серьёзный проект: rust clippy!
Те, кто читают меня давно, знают, как я люблю линтеры, а в расте clippy это единственный православный и всеобъемлющий линтер, так что для меня было честью приобщиться к этому делу. Кроме того, всегда хотелось разобраться, как оно устроено внутри, как парсится синтаксис языка, подсвечиваются ошибки, выдаётся текст и подсказки для авто-применения. Не скажу, что разобрался досконально, но общая картина в голове появилась. | 608 |
| 4 | Не игнорировать линты… а добавлять!
Когда я пишу код на некоторых фреймворках под линтерами, периодически приходится вставлять всякие
# lint: ignore.
То функция получилась с десятью параметрами, то возвращаемый тип настолько динамический, что LSP не способна понять, что там будет в рантайме питона.
Сегодня я писал на расте и впервые использовал обратную технику: линт по дефолту выключен, но вот в конкретном случае я очень хочу, чтобы проверка здесь была! Пишу декодер разных типов, и мне очень надо, чтобы все ветки match-expression были прописаны явно, безо всяких default branch:
_ => {...}.
Оказывается, в clippy (растовский линтер) есть на это правило, но по дефолту оно выключено. Ставим его на конкретную строчку или на весь файл
#[deny(clippy::wildcard_enum_match_arm)]
и подсказываем будущему Клоду себе, что это место в коде требует вдумчивого решения, а не безрассудного дефолта. | 752 |
| 5 | Мы поехали на наш избирательный участок. Так же, как и в России, голосование проводится в больницах, школах, в нашем случае — в гимнастическом зале при школе. На улице выстроилась очередь на 20 человек, которую регулировали люди с ленточками через плечо с надписью «Спроси меня» (Fråga mig). Минут через 10 мы были внутри и с волнением пошли к отделению, где шло голосование нашего округа.
Вначале тебе выдают три конверта (по одному для каждого уровня голосования), но поскольку мы не граждане и сразу об этом сказали, мы вернули один из них. Затем идёшь к палаточке за ширмой, где аккуратно разложены по цветам (по уровню голосования: белый — коммуна, синий — регион и жёлтый — парламент) и подписанные логотипами партий бумажки-бюллетени. Это отличается от России, где выдаётся один бюллетень со всеми партями, где ты ставишь галку.
На каждом бюллетене можно также выбрать конкретного человека от партии, которому ты хочешь отдать свой голос, в противном же случае, ничего не отмечаешь и просто запаковываешь этот бюллетень в конвертик, лижешь клей и заклеиваешь конверт и несёшь на проверку к столику, где лежит журнал избирателей. Там они сверяют твою ID карту (читай паспорт) с записью в журнале, проверяют, на каких уровнях ты можешь голосовать, и опускают твои конверты в урны. Готово!
Было волнительно. Впервые я участвовал в выборах, где был уверен что:
• мой голос точно посчитают
• голос имеет значение
• результат выборов не известен до конца
Более того, поскольку премьер-министра выбирают только поле образования правящей коалиции, интрига сохраняется и после выборов. | 817 |
| 6 | День выборов
Сегодня в Швеции единый и последний день, когда можно проголосовать. Единый он, потому что голосуют одновременно на трёх уровнях власти: в парламент, регион и коммуну (читай городской округ). Последний он, потому что досрочное голосование началось ещё 26 августа, — 13 же сентября это заключительный день. | 642 |
| 7 | У нашего города прекрасный мерч | 647 |
| 8 | Панк для души
Обычно я не советую музыку: привык с детства, что панк кроме меня практически никому не интересен, а мои эмоции от прослушивания вряд ли кто-то поймёт. Сегодня я могу разделить эту радость с женой, и это очень круто ❤️.
Но в этот раз у лучшей по моему мнению русской панк группы Тени Свободы вышел альбом, и я хочу, чтобы вы об этом узнали! Пусть название не вводит вас в заблуждение: это вовсе не орущий панк-рок, призывающий протестовать против всего подряд. Ребята делают мелодичные песни о том, что происходит у нас внутри, для тех, кто склонен к рефлексии, и не собирается на выходных, напившись балтикой девяткой, обмазываться говном.
Это такой «альбом-рана», рана, которая болит уже пятый год. Альбом, который не делает легче, а наоборот, разворачивает лицом к боли, которую обычно избегаешь. Он не оставляет с болью наедине, а сочувствует и по-дружески говорит: «Да, чувак, это, пиздец. Но ты не один, и я тебя понимаю».
Мои любимые:
Какая-то другая песня — песня-боль, которая лучше меня рассказывает, о чём этот альбом, и очень созвучна тому, что чувствую я сам. «Сорри, почти всё здесь будет на одну тему».
Спотик / Я.Музыка
Стая — песня-сочувствие, послание отчаявшемуся ребёнку, на которого могут в любой момент натравить силу, которая запросто его сломает. «Ты проходишь через страшное дерьмо, словно нужно выжить в ёбнутом кино».
Спотик / Я.Музыка
Мутные типки — песня-ужас, которая неотступно обволакивает тьмой секунду за секундой, как взгляд Энтони Хопкинса в «Молчании ягнят». «Ты перепутал всё, сынок. Давай вообразим, что дно — на самом деле потолок. И мы с тобой пробьём его!»
Спотик / Я.Музыка
Куда это годится — песня-недоумение, послание миру, знающее, что его пропустят мимо ушей, но несмотря на это звучащее — скорее, чтобы услышали свои, нежели в надежде кого-то убедить. «У нас вал проблем, и все они важнее терок, кто кого там трахнул в ваших тринадцатых веках!».
Спотик / Я.Музыка
Строчка про надувной банан — топ, я ржал в голос)
Помимо этого — песня-тепло, чистая, хрупкая и красивая. Не стану цитировать строчки из песни, потому что без музыки они рассыпаются, как тонкий хрусталь.
Спотик / Я.Музыка
Если вам понравилось и захотелось ещё, послушайте:
• Контроль (Спотик / Я.Музыка)
• Поговори со мной (Спотик / Я.Музыка)
• Нелепость (Спотик / Я.Музыка)
• Последняя вечеринка (Спотик / Я.Музыка) | 914 |
| 9 | Чем грузить?
Приветик моим дата инженерным подписчикам. Сегодня я расскажу вам про свою боль.
Живём мы в 2026 году, LLM-ки все переписывают на раст, клод находит мифического масштаба цепочки уязвимостей в софте, а дата инженеры тем временем что? Продолжают грузить таблички в Data WareHouse раз в день шелл скриптами.
И когда у меня встал вопрос, чем же грузить таблички в DWH у нас в Hemnet, я призадумался:
• Spark — хорош, но админить его и искать, какие там джарники и куда ему надо подсунуть, чтобы заработал коннектор, — бесит
• dlt — вроде как новая хипстерская штука, обещающая превосходный DX, на поверку оказалась дырявым корытом, которое пока не залатаешь, не поплывёт
• Fivetran — ничего сказать не могу, не пробовал, но как минимум это менеджед сервис без опенсорсной альтернативы
• Airbyte — деплоить целую кучу сервисов просто чтобы гонять батч джобы, это, конечно, выдающийся пример оверинжиниринга (а потом дебажить, когда один из них отвалился, ага)
• Pandas/Polars — да выдаст господь пару терабайт оперативки людям, которые пользуют Pandas для перегрузки данных. Впрочем, API у него удобный, этого не отнимешь. Polars в плане памяти получше, но это все равно не ETL тул.
А чем пользуетесь вы для загрузки, и удобно ли вам? Может, мои представления устарели, и появилось новое, стало лучше старое? | 925 |
| 10 | Сегодня у нас было +24 градуса, солнце, и первый день работы байк-парка в этом сезоне. Усталый, довольный, провожу ревизию ссадин.
Бонусная игра: угадай, где я на общем фото. Победителю будет ничего | 1 617 |
| 11 | Вчера AWS уронили нам БД на 10 минут, и наш инженер пошел поболтать с их LLM-кой. В процессе беседы выяснилось, что в их Serverless Postgresql есть некорректно выставленный параметр, на что наш инженер спросил, «а какого хера?». Вот что ответила амазоновская LLM, а после посоветовала подумать о миграции на Azure или GCP.
AWS in a nutshell | 2 145 |
| 12 | Гражданство для ребёнка с ПМЖ за 3-4 года
Несколько дней назад мы совершенно случайно узнали, что для детей понаехов, проживших в Швеции 3 года и имеющих ПМЖ, доступна услуга «гражданство через уведомление». Заходите на сайт миграционки, заполняете анкету на получение гражданства ребёнком, подтверждаете через BankID обеими родителями/опекунами и ждёте решения. Решение сейчас занимает около месяца. И да, никаких звездочек, мелких шрифтов или прочего — реально всё так просто. Даже карточка ПМЖ не требуется, если вы не успели её получить — достаточно только решения миграционки по ПМЖ. Правда, без нюансов не обошлось.
Во-первых, ПМЖ, обычно случается всё-таки после 4 лет. В обычной схеме с переездом в Швецию по рабочему ВНЖ, вы сначала получаете первый ВНЖ на 2 года, затем продлеваете ещё на 2, и только потом подаётесь на ПМЖ.
Во-вторых, и это значительно более серьёзная проблема, эту лавочку планируют прикрыть новым пакетом законов об ужесточении миграционной политики (тот самый, где увеличивают срок проживания в Швеции до подачи на гражданство для понаехов-работников с 5 до 8 лет). С вероятностью в 99% эта возможность исчезнет с 6 июня 2026 года, когда пакет будет введён в силу. Что будет с заявками, поданными до 6 июня, но по которым решение не будет принято до этого срока, я не знаю.
В-третьих, если ребёнку 12 и более лет, он должен выразить своё согласие на приобретение шведского гражданства. Можно ли это сделать электронно, или ребёнок должен явиться в офис миграционки, я не знаю. | 1 757 |
| 13 | Sin texto... | 1 334 |
| 14 | Sin texto... | 1 269 |
| 15 | К предыдущему посту: оказывается, Гошка может больше, если вместо "encoding/json" из стандартной библиотеки задействовать кастомный github.com/goccy/go-json, который является дроп-ин заменой. Потестил с ним, throughput вырос на 80% (!): Гошка смогла прожевать 335к ивентов в секунду. Всё ещё на 45% медленнее, чем блейзин фаст, но уже не "более, чем в два раза".
Не думал, что у богатой стандартной библиотеки может быть такая оборотная сторона. Казалось бы, они ж там в Гугле все обязательно такие умные и перфоманс-ориентед.
Спасибо @porfirion за то, что поделился этим знанием 🙌 | 1 332 |
| 16 | Я вам почитать принёс
Работал я свою дата инженерную работу в Хемнете, и тут завертелось — было решено нашими силами написать на Го проксю для стриминга ивентов (WTF?!). Учитывая, что никто в команде Го не знал и проксей не писал, это было не просто смело. Однако ж, agentic programming нам в помощь, и спустя месяцы мы разрелизились.
По ходу работы над этим проектом я не раз приунывал, и чтобы развеять тоску, переписал с помощью того же Клода проксю на блейзин фаст языке — заодно поднабраться опыта написания продашкн проектов на Расте. Затем родилась идея написать мои впечатления в статье и выложить в блог на работе. Вот вам версия на русском в телеграфе, а вот скучный оригинал без мемов по подписке для копроративного бложика | 1 297 |
| 17 | Вернулся с VS Code на PyCharm
Ранее я писал про то, что решил диверсифицировать свой опыт IDEшек и попробовать писать код на VS Code. Вывод для себя — в целом годно, но для меня слишком много страданий. В итоге спустя 3 месяца мучений, я его снёс и вернулся в любимый, хоть и грузный PyCharm. Да, иметь любимые линтеры постоянно включенными это классно, но боже мой, как же мне было с ним сложно. Главные проблемные места:
1. Конфигурировай! Потом ещё раз. И ещё. Чтобы собрать нормальный дев-контейнер, нужно разбираться, как они работают в VS Code и выучить его yaml-файл спеку. Ставить ли тулзы после сборки контейра? Или после запуска? В собранном контейнере уже задан не рутовый юзер и не ставятся дополнительные пакеты? А может запускать из под рута? Но тогда поведение начинает отличаться от продового. Каждую неделю я тратил по несколько часов на это.
2. Git-интерфейс. Конечно, если вы адепт git cli, вам это вообще не помеха, и вы мне обязательно расскажете в другой раз, насколько он круче любого гуя. НО. Мне, человеку, который не помнит наизусть все команды гита и не хочет их учить, git gui PyCharm'а помогает легко проворачивать всё что нужно в несколько кликов, включая cherry-pick, undo, revert, merge, rebase и даже создание и мёрдж пулл реквестов не заглядывая в доки. В VS Code даже самые популярные плагины менее удобные.
3. Питонячья консоль. Не могу отвыкнуть её пользовать — жутко удобно быстро что-нибудь наимпортить и проверить, как работает кусок кода. Главное отличие — есть поддержка мультистрок и автокомплит из коробки. В VS Code — нет. | 581 |
| 18 | Умпф. Проголосовали.
Первое моё голосование за пределами России и третье против Путина.
Очередь была метров 200, но стояли в ней с 12.20 до 18.20. На улице -2 и ветер. Замёрзли пипец. Но зато сделали дело.
Домой. | 886 |
| 19 | Горящие туры из Швеции
Совершенно непонятно, сколько среди моих подписчиков людей, проживающих в Швеции, а всё же сколько-то точно есть) Ловите дешёвые туры на юга!
Горящие туры по-шведски называются "Sista minuten resor", это можно гуглить. Вот мой топ годных сайтов, где можно их найти:
ving.se/sista-minuten — самые дешёвые туры или отдельные билеты, особенно, когда берёшь <7 дней вперёд
apollo.se/sista-minuten — тоже самое, с чуть более приятным интерфейсом и чуть более высокими ценами
sistaminuten.se/sista-minuten — агрегатор с гибкими фильтрами и чуть более высокими ценами
Мы только что купили перелёт туда-сюда на троих без отеля на Канарские острова за 6700 SEK (600 EUR) из Стокгольма 🏝️☀️ | 1 098 |
| 20 | Я продлён
Просто оставлю это здесь.
Миграхун продлил мой ворк пермит за 7 дней, из которых 4 дня заняло ожидание моего визита к ним, чтобы показать паспорт. А если бы я не менял загран, было бы ещё быстрее.
Следующие два года у меня не будет привязки к работодателю, но останется привязка к профессии Data Engineer.
Браво, Миграхун, вот это скорость! ⚡️
Отдельное спасибо релокационному агенству Nim.Mersion — второй раз подряд наслаждаюсь тем, как профессионально, быстро, отзывчиво и неформально они работают. Они лапочки ❤️ | 1 067 |
