Обновить
Козлов Василий Иосифович@saintbyteread⁠-⁠only

Пользователь

Отправить сообщение

Ходим в Интернет с отключённым IPv4

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели59K

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

В этом посте я расскажу, как на помощь мне пришли Linux, WireGuard и Hetzner, благодаря которым я смог получить доступ ко всему Интернету через одно лишь соединение IPv6.

Читать далее

Несколько сетей для энтузиастов

Время на прочтение29 мин
Охват и читатели35K
Несмотря на обилие материала в сети, в том числе на русском, в том числе на Хабре, в комментариях к публикациям периодически можно встретить удивление открывшимся фактам в обсуждении. Поэтому я решил написать короткую обзорную статью, перечислив в ней сети, в которых может участвовать любой желающий.

Фактически эта публикация краткий дайджест статей на Хабре о технических хобби, в основном, на грани IT, программирования и радиолюбительства.

И первым в списке станет популярный Народный мониторинг.


The Hitchhiker's Guide to the Habr

Как помочь пользователю ждать. Научные исследования

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели3.3K

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

Читать далее

Как работает yield

Время на прочтение6 мин
Охват и читатели789K
На StackOverflow часто задают вопросы, подробно освещённые в документации. Ценность их в том, что на некоторые из них кто-нибудь даёт ответ, обладающий гораздо большей степенью ясности и наглядности, чем может себе позволить документация. Этот — один из них.

Вот исходный вопрос:
Как используется ключевое слово yield в Python? Что оно делает?

Например, я пытаюсь понять этот код (**):
def _get_child_candidates(self, distance, min_dist, max_dist):
    if self._leftchild and distance - max_dist < self._median:
        yield self._leftchild
    if self._rightchild and distance + max_dist >= self._median:
        yield self._rightchild

Вызывается он так:
result, candidates = list(), [self]
while candidates:
    node = candidates.pop()
    distance = node._get_dist(obj)
    if distance <= max_dist and distance >= min_dist:
        result.extend(node._values)
        candidates.extend(node._get_child_candidates(distance, min_dist, max_dist))
        return result


Что происходит при вызове метода _get_child_candidates? Возвращается список, какой-то элемент? Вызывается ли он снова? Когда последующие вызовы прекращаются?

** Код принадлежит Jochen Schulz (jrschulz), который написал отличную Python-библиотеку для метрических пространств. Вот ссылка на исходники: http://well-adjusted.de/~jrschulz/mspace/

Подробный и обстоятельный ответ

Телеграм-бот для бронирования столов на вебхуках: FastAPI, Aiogram Dialog, FastStream и RabbitMQ в единой экосистеме

Время на прочтение64 мин
Охват и читатели12K

В этой статье мы создадим функционального Telegram-бота для бронирования столиков в ресторане «Binary Bites» с использованием современных Python-инструментов. Бот будет работать через вебхуки, взаимодействовать с брокером сообщений RabbitMQ и поддерживать фоновое выполнение задач с помощью FastStream и APScheduler.

Проект объединит FastAPI, SQLAlchemy, Alembic, Uvicorn и другие библиотеки, обеспечивая гибкость и масштабируемость. Готовый бот позволит пользователям бронировать столики, просматривать и отменять брони, а администраторам — управлять заказами.

Читать далее

Как составить резюме для российского рынка: практическое руководство

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели5.1K

Автор: InfinityProductive

Это руководство поможет вам составить грамотное резюме для российского рынка. В качестве шаблона можно использовать заполненный профиль на HH.ru или готовый макет в Canva.

Читать далее

IBM PalmTop PC 110: легендарный карманный ноутбук, опередивший время

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели8.6K


Признаюсь: я просто влюблён в ноутбуки от IBM — в моём компьютерном хозяйстве каким-то непостижимым образом образовались аж целых три ThinkPad’а. Изучая продуктовую линейку этой компании, я неожиданно наткнулся на очаровательный ноутбук сверхкомпактного форм-фактора. Глядя на него, я искренне пожалел, что живу не в Японии, поскольку это устройство выпускалось только для японского рынка. Речь идёт о карманном ноутбуке с названием IBM PalmTop PC 110.
Читать дальше →

Прогнозы на будущее, 2035-2099 годы (работа, бизнес, здоровье, любовь, семья, программное обеспечение и космос)

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели2.4K

В этой статье Джон Раш (John Rush), создатель технологичных стартапов и автор таких сервисов, как UnicornPlatform, ListingBott, SEObotAI и 20+ других инструментов для маркетинга и SEO, делится своим прогнозом на будущее, на ближайшие 75 лет, вплоть до 2099 года.

Читать далее

Как постараться* снимать видео на телефон как на профессиональную камеру: часть 2

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели5.7K

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

Я же со своей стороны решил продолжить тему видеосъемки. Сегодня поделюсь еще несколькими лайфхаками. Также обязательно затрону моменты, о которых вы упоминали в комментариях: баланс белого, стабилизацию и другие нюансы.  

Читать далее

Заменяем хабраюзеров ИИ-агентами. Гайд по browser-use

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели10K

TLDR: видео с результатом в конце статьи

Библиотека browser-use невероятно стрельнула практически в день релиза, на текущий момент это около 16 тысяч звезд на Гитхабе, и сотни восторженных отзывов на Reddit, в Твиттере, и так далее. Команду, создавшую browser-use даже приняли в YC. У неё революционная точность по сравнению с другими "ИИ агентами использующий браузер" (89% против Runner H с 67%).

Я очень удивился, что на Хабре всё ещё нет статьи с описание того, что это, и как это использовать. Сегодня мы это исправим: мы сделаем ИИ, который будет читать статьи на Хабре, и писать комментарии о том, почему продукт, описанный в статье, никому не нужен.

Добро пожаловать в мир ИИ-агентов!

Старики будут править IT

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели78K

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

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

Читать далее

Экология человеческих ресурсов против кадрового голода

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели3.3K

Почему со всех сторон говорят, что нужно больше рожать? Как связаны регулярные увеличения пенсионного возраста, заброшенные города и деревни, бегство учителей из школ на заводы или в такси, приток мигрантов из других стран, хайп на тему искусственного интеллекта и роботов. Обо всем об этом я как hr расскажу с точки зрения демографии, рынка труда, менеджмента и щепотки экономики. Зачем нужно применять экологичные подходы к людям (и речь не про вытирание соплей сотрудникам).

Демография против рынка труда

Я состою в рабочей группе hr, которую курируют Полина Ерёмина и Мария Кокшарова из Сбера, за что им больше спасибо. В рабочей группе представители порядка 20 компаний от крупного до малого бизнеса. А собирается мы начали, потому, что большое количество компаний уже много лет сталкивается с нехваткой кадров и круто было по подумать над какими-то кардинальными решениями этого вопроса.

Но для начала нужно правильно сформулировать вопрос. 

Я с философского факультета и люблю всякие штуки по типу правильный вопрос - это половина решения и всё в таком духе.

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

Начали мы с того, что людей не хватает. Очень много незакрытых вакансий и закрывать их все сложнее. Наверное, людей стало мало.

Оказывается это неверная гипотеза. Мы из Екатеринбурга и в первую очередь смотрели данные по нашим офисам в Екатеринбурге, который является региональным центром Свердловской области. Город стабильно растет по численности с 2005 года и только два последних года мы видим незначительный спад.

Читать далее

Как перестать избегать трудностей и не сдаваться, даже если очень хочется

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели30K

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

Читать далее

Ищем работу в 2025 году: что происходит с рынком IT и как к нему адаптироваться

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели61K

Ну что, 2025 год уже наступил и многие из нас,  в новом году,  задумались о смене работы. В том числе и я. В этот раз, я решил собрать всю доступную мне информацию по поиску работы в РФ/СНГ и за рубежом.

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

Читать далее

Подключаем WiFi вручную

Время на прочтение6 мин
Охват и читатели5.7K

И снова вспомню времена древние, староглиняные: когда-то настройка сети в UNIX-like OS была делом, требующим сложных технических знаний. Нужно было зайти в консоль под правами рутовыми, да указать вручную адрес IP для интерфейса сетевого. Примерно так:

ifconfig eth0 add inet 192.168.1.10 netmask 255.255.255.0 up

Или, ежели админ сети сподобился, да настроил сервер DHCP - то так:

ifconfig eth0 up

dhclient eth0

Да еще не забыть указать адрес сервера DNS:

echo "nameserver 8.8.8.8" > /etc/resolv.conf

А ежели надобность была чтобы оно при перезагрузке сохранялось - то записать эти заклинания в файл типа /etc/rc.local на память долгую.

Теперь-то другое дело: воткнул шнурок в разъем - сеть и появилась, как по щучьему велению.

И даже WiFi - нажал мышкой на иконку, выбрал название сети, ввел пароль - она и подключилась.

Красота, лепота какая! Но есть нюанс...

Читать далее

Создаем воспоминания. Осваиваем FLUX, LoRA и ComfyUI

Время на прочтение7 мин
Охват и читатели20K

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

Чтобы через время не забыть про особенности процесса и как-то его зафиксировать, решил поделиться наработками. Под катом подробности и еще немного фотографий АБССС.

Читать

ErrorHandling-патерн в golang

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели1.6K

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

Будем отталкиваться от примера, где мы ожидаем результатов выполнения n-горутин. Результат читаем из канала resultChannel:

Читать далее

Будущее микросервисов: уйдем ли мы к монолитам 2.0?

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели30K

Микросервисы или монолит? Споры об архитектуре программного обеспечения не утихают, но с 2018-2020 годов наметился интересный тренд: компании начинают переоценивать сложность микросервисного подхода. Возвращение к монолитам, но уже с учетом современных инструментов, вызывает жаркие обсуждения в техническом сообществе.

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

Структура FastAPI приложения

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели12K

В данной статья я решил описать свой опыт создания шаблона для проектов, использующих FastAPI, SQLAlchemy, Docker

Читать далее

Антипаттерны Go: чего нельзя делать и почему

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели5.4K

Привет, Хабр! Go часто называют «языком простоты»: мол, нет лишних фич, легко стартовать, запустил горутину — и вперед! Но в реальности эта «простота» — палка о двух концах. Я собрал самые распространенные (на мой взгляд) антипаттерны в Go, которые приводят к дедлокам, паникам и километрам непонятного кода.

Читать далее

Информация

В рейтинге
Не участвует
Откуда
Екатеринбург, Свердловская обл., Россия
Дата рождения
Зарегистрирован
Активность