Search
Write a publication
Pull to refresh
4
0
Michael Elin @vanelm

Consulting Network Engineer

Send message

Это путь воина: как я выучил Python и Go с помощью Цеттелькастена и кому точно не рекомендую метод

Level of difficultyEasy
Reading time9 min
Views51K

Привет, Хабр! Меня зовут Дмитрий, я работаю в YADRO. Я прошел большой путь в самостоятельном изучении языков программирования: от SQL до Go. Сначала я вообще не документировал процесс обучения, затем стал вести заметки по «академическому» принципу — писал конспекты, как в университете. Пока не открыл древовидную систему хранения данных, которая лежит в основе метода Цеттелькастен. 

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

Читать далее

Проект Смотритель — удаленно управляемый робот на ESP32-CAM

Level of difficultyMedium
Reading time17 min
Views19K

Разрабатываем робота с нуля - от ИИ-дизайна до полного проектирования и реализации всех компонентов устройства.

Зачем? Ради фана, конечно - этот проект практически квинтессенция моих увлечений - электроника, 3d-печать, программирование микроконтроллеров, ИИ и в целом все, что можно включить в сферу DIY.

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

Поехали

Микросервисы на C#. Часть 1

Level of difficultyMedium
Reading time14 min
Views7.6K

В любой сфере деятельности есть знаковые фигуры. Признанные эксперты. Лидеры мнений. Программирование не является исключением. Всем нам знакомы имена Кернигана, Кнута, Торвальдса, Скита. Не последним в этом ряду будет и имя Мартина Фаулера. Он написал книгу «Рефакторинг», которую обязан прочитать любой профессиональный программист. Он предложил термин Dependency Injection. Он участвовал в подготовке каталога действительно полезных паттернов проектирования. Он был одним из авторов Манифеста Гибкой Разработки Программ.

В 2014-м вместе с Джеймсом Льюисом Фаулер написал статью о микросервисах, которая начинается словами: «Термин „микросервисная архитектура‟ уже несколько лет применяется, чтобы описать способ проектирования программ»… Очевидно, теме микросервисов без малого десять лет. Можно ли добавить что-нибудь к тому, что уже было сказано и написано за это время?

Оказывается, можно.

Читать далее

Что скрывает тупой пульт в вашем умном доме

Level of difficultyEasy
Reading time4 min
Views28K

В свободное от работы время занимаюсь хобби — экспериментирую с умным домом на базе Home Assistant (HA) и окружающей его программно‑аппаратной инфраструктурой в виде различных медиасервисов, сервисов мониторинга и прочего.

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

Читать далее

Как бывшая сотрудница передавала данные конкурентам

Level of difficultyEasy
Reading time5 min
Views58K

В небольшой компании «ТехноСофт», занимавшейся разработкой ПО для автоматизации бизнеса, пятничный вечер казался обычным. Менеджер по продажам — молодая симпатичная девушка с яркими рыжими волосами и в стильных очках — объявила об уходе.

Она была звездой отдела: обаятельная улыбка и умение закрывать сделки делали её незаменимой. Конкуренты переманили её, предложив лучшие условия. В тот вечер она угостила коллег пиццей, попрощалась и ушла, унося в рюкзаке ноутбук и пачку визиток. Команда пожелала ей удачи, а утром её учётную запись в Active Directory (AD) заблокировали. Но никто не проверил доступы к серверу через Remote Desktop Protocol (RDP) — ошибку, за которую «ТехноСофт» скоро поплатился.

Читать далее

Docker теперь конкурент Ollama?

Level of difficultyEasy
Reading time2 min
Views13K

Ребята зарелизили новую крупную фичу, и, как по мне, это самая крупная механика с момента выхода dev containers, так как это показывает, насколько всё-таки AI всё глубже интегрируется в разработку.

Docker Model Runner - фактически инструментарий для запуска моделей локально, и это буквально полный конкурент для Ollama, но, будем объективны, пока что ещё очень сырой.

Читать далее

Как сделать хорошее API

Level of difficultyMedium
Reading time17 min
Views10K

Обстоятельно и подробно, на конкретных примерах рассказываю как спроектировать и реализовать API, за которое потом не будет стыдно.

Читать далее

Я устал возиться с кучей VPN и поставил Xray на роутер

Level of difficultyMedium
Reading time5 min
Views140K

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

Я долгое время жил в этом хаосе. Сначала я ставил VPN на телефон, потом на ноутбук, потом на телевизор... В какой-то момент их стало столько, что я уже не знал, какой включен, какой отключен, где подписка закончилась, а где опять надо искать новый сервер. Рабочий VPN переставал работать в самый неподходящий момент – например, когда я пытался оплатить что-то онлайн или посмотреть видео.

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

Читать далее

Не буду я подключать посудомойку к вашему дурацкому облаку

Level of difficultyEasy
Reading time7 min
Views38K
В эти выходные мне пришлось купить новую посудомоечную машину, потому что моя старая GE умерла.

Я купил машину Bosch серии 500, потому что её рекомендовали в журнале Consumer Reports и, что более важно, она нашлась в магазине.


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

Kак обойти капчу Сloudflare Turnsile — или обход Cloudflare разной степени сложности

Level of difficultyEasy
Reading time18 min
Views5.8K

В рамках научного и исследовательского интереса решил поэкспериментировать с распознаванием сложных типов капчи, ну как поэкспериментировать - скорее проверить работоспособность и умение электронного коллеги писать за меня код. Да, там было куча - соблюдайте этические нормы, бла бла бла… Но простое - чувак, я это делаю исключительно в рамках исследования - все решили.

Читать далее

Затачиваем меч для вайбкодинга

Level of difficultyEasy
Reading time1 min
Views9.9K

С легкой подачи Andrej Karpathy идея вайбкодинга захватила массы, поэтому решил накинуть несколько полезных, на мой взгляд, настроек Cursor, которые сделают рабочий процесс еще более вайбовым.

Читать далее

Google представила функцию Canvas в Gemini: что это такое, как получить доступ и чем она полезна

Level of difficultyEasy
Reading time5 min
Views9K

Google выпустила новую функцию Gemini под названием Canvas, которая представляет собой интерактивное рабочее пространство, призванное сделать процесс написания текстов и программирования более комфортным и эффективным.

Canvas - не совсем новая концепция в ИИ-чатботах. Компания Anthropic запустила подобную функцию для Claude под названием Artifacts восемь месяцев назад, а OpenAI запустила аналогичную функцию в ChatGPT пять месяцев назад.

Как разработчик, я использую ее для отладки кода и даже для предварительного просмотра проектов с компонентами front-end. Она также отлично подходит для оптимизации написанного контента, что делает ее полезным инструментом для блогеров.

Странно, что Google потребовалось так много времени, чтобы реализовать ту же функцию в Gemini, но я рад, что они наконец сделали это. Но как именно работает Canvas в Gemini и что отличает ее от конкурентов? Давайте узнаем.

Читать далее

Пишем стек TCP/IP с нуля: Ethernet, ARP, IPv4 и ICMPv4

Level of difficultyEasy
Reading time13 min
Views25K

Написание собственного стека TCP/IP поначалу может показаться пугающей задачей. И в самом деле, за свой тридцатилетний срок жизни TCP впитал в себя множество спецификаций. Однако базовая спецификация остаётся относительно компактной1 — из важных частей в ней можно выделить парсинг заголовков TCP, машину состояний, отслеживание перегрузок и вычисление таймаута повторной передачи.

Самые распространённые протоколы слоя 2 и слоя 3, Ethernet и IP, скромны по сравнению с сложностью TCP. В этой серии статей мы реализуем минимальный стек TCP/IP пользовательского пространства для Linux.

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

Читать далее

Как быстро найти цены на совместимую с Home Assistant бытовую технику: мой опыт автоматизации поиска цен

Level of difficultyEasy
Reading time5 min
Views8.9K

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

Недавно захотел подобрать себе робот-пылесос, а на сайте Home Assistant как обычно указаны только обобщенные интеграции. При этом на сайте Алисы приведены тысячи конкретных совместимых устройств, правда без цены и даже без указания выпускается ли до сих пор эта модель или нет.

И тут мне пришла в голову идея: поместить эти совместимые устройства в Google Таблицу, а затем написать Google Apps Script, который через поиск найти цены на все эти устройства, а затем я уже выберу конкретное устройство исходя из моего бюджета.

Поиск цен через Гугл Таблицу

Уменьшаем размер двоичного файла на C# в 90 раз

Level of difficultyMedium
Reading time24 min
Views10K

Я написал на C# консольный клон Wordle, но попытался сделать двоичный файл максимально крошечным.

Я взял популярную игру Wordle с такими правилами:

Нужно за шесть попыток угадать слово из пяти букв. После ввода каждого варианта цвет букв будет меняться, показывая близость догадки к загаданному слову.

Для каждой попытки уменьшения двоичного файла мы создадим отдельный проект, чтобы удобно было сравнивать предпринятые действия.

В работе с консолью мне помогла игра Console Games - Snake

Проект запускается в новой консоли dotnet.

Читать далее

Linux-десктоп своими руками: Make Computers Fast Again

Reading time13 min
Views10K

Уже говорил как-то, что в свое время перешел с Windows на FreeBSD в том числе из-за того, что FreeBSD работала быстрее на том же железе, и не требовалось плясок с бубнами, потому что в общем-то всё что нужно - настраивалось от и до.

Потом Linux - потому что лучше поддержка железа, ну и, в общем, никакого желания возвращаться на Windows уже не возникало.

Но время идёт, и вот последние версии Ubuntu до боли напоминают Windows своей неспешностью и сложнопредсказуемостью. А тут еще желание сделать удобный для работы десктоп из TV‑бокса...

В принципе, нашлась уже готовая Armbian‑сборка под мой TV‑бокс, с уже настроенным десктопом XFCE — но несмотря на то, что XFCE считается «легковесной» — она оказалась недостаточно легковесная, не настолько насколько мне бы хотелось.
Заметно подтормаживали окошки, всё в целом как‑то не так...

А ведь несмотря на свою «маленьковость» — компьютер‑то должен быть неплохим: 4Гб RAM, 4 ядра по 1.5ГГц, когда‑то подобные были вообще за пределами доступности, и ведь тогда «всё работало», и работало быстро, на гораздо более медленном железе.
Что же не так, неужели ARM в принципе тормозные процессоры?

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

Читать далее

Практическое руководство по выбору между ChatGPT, Claude, Gemini, Grok и Perplexity

Level of difficultyEasy
Reading time6 min
Views68K

Какой модели доверить свои задачи в 2025 году? От редактирования текста и кодинга до анализа видео с контекстным окном в 2+ миллиона слов — узнайте, какая модель решит именно ваши задачи и стоит ли платить за две подписки одновременно.

Читать далее

Использование JSONB-полей вместо EAV в PostgreSQL

Level of difficultyEasy
Reading time7 min
Views5.6K

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

Читать далее

Сериализация в Python с Pickle

Reading time11 min
Views4.4K

Привет, Хабр!

Сегодня мы рассмотрим одну из самых известных, но одновременно спорных технологий Python — библиотеку pickle. Если вы когда‑нибудь задумывались, как сохранять объекты в виде байтового потока и затем восстанавливать их, то эта статья для вас.

Читать далее

Gemma 3: Google DeepMind делает ИИ по-настоящему доступным

Reading time2 min
Views18K

Google DeepMind выкатила Gemma 3 – новое семейство открытых ИИ-моделей. И, судя по заявлениям, главный акцент сделан на доступность и производительность в реальных условиях.

Читать далее

Information

Rating
Does not participate
Location
Praha, Hlavni Mesto Praha, Чехия
Registered
Activity