Пет-проекты, доп доход и финансовая независимость.
Сейчас совсем нет времени на личные проекты, которые уже сгенерил мозг, но когда-то я пытался обеспечить себе ими финансовую независимость. И по инерции мне всё еще капают небольшие деньги от старых попыток:
— в telegram автоматизированный анонимный канал + боты с партнерками.
— Доход от РСЯ с моих сайтов
— И даже что-то прилетает от моей деятельности в арбитраже трафика 10 лет назад, когда я просто пробовал там себя, еще работая в МВД. Лучше всего у меня получалось монетизировать dating трафик и юридический.
— Ну и если помните, одно время я автоматизировал работу со всякой веб3 скаминой, и простенькими скриптами тоже нафармил N всяких криптокоинов, а что-то даже капнет в будущем, возможно.
Были и еще кое-какие прощупывания всемирной сети, но об этом как-нибудь в другой раз)
К сожалению, на уровень финансовой независимости со всей этой деятельностью в интернете я так и не вышел, но всё равно постоянно рад, что пробовал, получая ежемесячные бонусы на пиво.
Ну а вы как используете интернет, кроме просмотра рилсиков?
В Академии Selectel есть небольшой тест на владение синтаксисом Python. Он позволит оценить свои знания и отыскать пробелы. Вопросы подобраны для тех, кто уже не пугается None, но продолжает разбираться, что происходит «под капотом». Бонусом — подборка полезных материалов для изучения Python!
Бесплатные курсы Route 256 от Ozon Tech для Go-инженеров уровня middle
Route 256 — это эффективная прокачка знаний и навыков работы с микросервисами. Программа курса составлена ведущими экспертами Ozon Tech — командой, которая разрабатывает сервисы, выдерживающие экстремальные нагрузки до 382 000 RPS.
Программа состоит из вебинаров, воркшопов, домашних заданий и их детальных разборов. Причём каждый из этих элементов основан на реальных задачах Ozon. Никаких заданий ради заданий — только действительно актуальные знания и проекты.
Как минимум, они бустанут ваше портфолио. Как максимум, вы получите оффер в команду. Заходите на сайт Route 256, изучайте требования и подавайте заявку.
В Go нет недостатка хеш-таблиц. Вы всегда можете использовать встроенную map[Key]Val, с ошеломительной скоростью обладающую непревзойденным удобством! А изобилие типов Key, разрешенных к использованию, способно довести до изумления!
Вот только ни указатель, ни слайс не подходят... Невозможно подсунуть свои операции (равенства и хеширования). Но хоть со скоростью все хорошо! (извините, не удержался)
Итого, мне пришлось написать HashMap[K, V any], закрывающую проблемы.
------------------8<------------------
В это трудно поверить, но:
Без резервирования памяти (конфигурация R0), map[uint64]uint64 работает в 1.93 раза медленнее UintMap! И производит в 5.64 раза больше мусора!!
А с полным резервированием (R1), в 1.72 раза медленнее! И аж в 16.5 раз больше мусора!!!
Вдумайтесь! На коленке написанная хеш-таблица для целых чисел UintMap почти в два раза обгоняет ЖУТКО оптимизированную нативную map[uint64]uint64!! И существенно менее мусорит!!!
Но раз трудно поверить, то давайте проверим:
func MyUintMap() {
const N = umN
//R0| um := lib.NewUintMap(0)
um := lib.NewUintMap(N) //R1|
for i := uint64(0); i < N; i++ {
um.Findsert(i, i+N)
}
lib.Assert(um.Size() == N)
cnt := 0
for i := uint64(0); i < N; i++ {
if *um.Val(um.Find(i)) == i+N {
cnt++
}
if um.Find(i+N) == -1 {
cnt++
}
}
lib.Assert(cnt == N*2)
for i := uint64(0); i < N; i++ {
um.Delete(i)
}
lib.Assert(um.Size() == 0)
}
func GoUintMap() {
const N = umN
//R0| m := make(map[uint64]uint64)
m := make(map[uint64]uint64, N) //R1|
for i := uint64(0); i < N; i++ {
m[i] = i + N
}
lib.Assert(len(m) == N)
cnt := 0
for i := uint64(0); i < N; i++ {
if m[i] == i+N {
cnt++
}
if _, ok := m[i+N]; !ok {
cnt++
}
}
lib.Assert(cnt == N*2)
for i := uint64(0); i < N; i++ {
delete(m, i)
}
lib.Assert(len(m) == 0)
}
Здесь всего-то лишь вставка, два поиска и удаление. Запустите go test -bench=UintMap -benchmem и увидите сами. Вот только можно ли ругать Google за неэффективный map[uint64]uint64?
------------------8<------------------
Итоги?
Смело берите HashMap[K, V any] для слайсов и указателей!
Немного оптимизированная BytesMap -- лучший выбор для []byte.
Интересно оптимизированная UintMap -- это выбор для целых чисел. Разберитесь, что там "не так", и используйте за основу.
Сильно ждем того, кто готов быть активным участником всего процесса разработки: начиная от проектирования и заканчивая запуском и поддержкой. Того, кто не боится участвовать в обсуждении идей и заниматься исследовательской деятельностью. Того, кто может продвигать свои и чужие идеи и добиваться их реализации. Кто понимает, что важно не только писать новый код, но и поддерживать старый.
Зарплатную вилку, требования и обязанности оставили на странице вакансии — откликайтесь, если хотите попасть в команду, или отправляйте вакансию друзьям, которые ищут работу.
Неочевидные проблемы Kubernetes, которые вы могли пропустить
➡️ бесплатный вебинар 16 июля
Ведущий: Виталий Лихачев, SRE в крупнейшем голландском тревелтехе
Спикер: Руслан Гайнанов, главный инженер DevOps, T1 Иннотех
Вместе они разберут типовые ошибки, которые можно допустить при деплое сервисов в кластер, от некорректной настройки лимитов ресурсов, до более сложных кейсов с admission webhooks.
В конце вебинара — рекомендации по настройке вашего кластера и приложений для безотказной работы.
Давно не виделись! Надо исправлять. А поскольку у нас с вами лето, нельзя просто так взять и собраться — устраиваем митап для всех, кто связал свою жизнь с С++. Программа плотная:
18:00-19:00 Сбор гостей и welcome-кофе
19:00-19:30 Использование С++ библиотек при разработке прикладных решений в Astra Linux
19:45-20:15 C++ как производительный runtime для микросервисов: обсудим подход, при котором C++ усиливает Node.js, а Node.js ускоряет интерфейсную часть C++-систем.
20:15-20:45 Брейк на обсуждения
20:45-21:15 «Дайджест по нейросетям и их применению в IT»
21:15-22:00 Холиварный сейшен с экспертами: С++ мертв или нет. Обсуждаем эффективные практики и методы использования С++ в задачах разработки и интеграции.
Почему нам стыдно верить в астрологию, а в программирование — нет?
Вот вам два примера:
Это Сергей. Он — архитектор, скорпион с асцендентом в раке и Кету в первом доме. Уверен, что ретроградный Меркурий влияет на то, когда нужно проводить встречи.
Это Николай. Он — бэкенд-разработчик, пишет коннекторы к месседж-брокеру в платёжном агрегаторе. Утверждает, что настоящий программист должен знать Таненбаума и делать всё по SOLID.
Современный, считающий себя прогрессивным человек посмеётся над Сергеем и кивнёт Николаю. Потому что держит в руках айфон — и он как-то работает, значит, эти «технологии» не вымысел. Хотя сам вряд ли объяснит, как это происходит.
Из этих двоих чаще оказывается прав именно Сергей — по крайней мере, он точно знает, когда не стоит катить на прод. А Николай… он не может объяснить, почему всё падает после его деплоя.
Но в общем и целом: Николай знает, как работает код — пока он работает. А вот почему он не работает, когда падает — уже нет. Сергей знает, как система должна работать, но не знает, как она работает на самом деле. И все мы делаем вид, что во всём разбираемся и только Меркурий — честно ретрограден.
В продолжении серии постов про Claude Desktop MCP Servers.
В этом посте расскажу про первый из 4 серверов, с которыми работаю
Вот какие MCP сервера подключены у меня
🟢 TickTick — мой таск трекер (на чтение и на запись) 🟢 Notion (на чтение и на запись) 🟢 GitHub (на чтение и на запись) 🟢 Google Analytics 4 (только на чтение)
Я пользуюсь им для ведения своих задач. Так как работаю я сам на себя, то трекер это важная часть моей жизни, который у меня в основном выглядит вот так
Первый MCP, с которого я начал свое изучение этой темы — Tick Tick MCP Было интересно сделать себе мини ассистента
Как это работает
У меня есть чат в Claude Desktop, в контекст которого вгружена роль Claude в этом диалоге
Затем в этот чат я пишу, что я хочу, Claude сам понимает, хочу ли я обратиться к TickTick или просто спрашиваю что-то. Если из контекста он понимает, что нужно использовать TickTick, то он вызывает ту функцию, которую примерно определил
Что умеет мой MCP TickTick
Ставить задачи, можно даже на конкретное время
Удалять задачи, переносить задачи
Добавлять описание задачам
Создавать / удалять проекты, группировать задачи по проектам
В среднем, каждый MCP умеет делать то, что в нем написали. И то, насколько богатое API есть у сервиса, к которому будет подключен наш MCP.
Разные энтузиасты могут написать различные MCP для одного и того же сервиса. И все они будут разного уровня глубины и проработки
Какие основные кейсы при работе с TickTick MCP есть у меня
Почти каждую неделю я планирую в воскресенье вечером. Этот процесс у меня в основном происходит внутри ChatGPT, чтобы он был в контексте моих планов
Затем, я закидываю получившийся план в Claude, и прошу поставить мне эти задачи на неделю через TickTick, например, через такой промпт
Вот мой список задач на неделю. К каждой задаче поставь Start Date и End Date в течении следующих 7 дней, учитывая их приоритет. Выполнение каждой задачи в этом списке в среднем должно занимать не больше 3 часов. После каждой задачи ставь буфер в 40 минут. Для каждой задачи можешь примерно добавить Definition of Done Учти, что сейчас я живу в Бангкоке, работаю в среднем с 12 дня до 10 вечера. Суббота и Воскресенье -- не нагружай меня больше чем на 4 часа работы Старайся не допускать накладывания задач на уже существующие задачи
Сначала напиши список и скинь в чат, а затем, после моего аппрува, добавь в TickTick
Это самый частый кейс ⤴️
Иногда закидываю в него разовые задачи
Например, я в Spotify увидел, что недалеко от меня через 2 месяца будет концерт. Я скинул скрин в Claude и попросил, чтобы он собрал инфу о билетах и поставил напоминалку через пару недель
Он задействовал свой deep research и все собрал в задачу. Я потом просто перейду по ссылке и куплю
Или, например.
Мне нужно купить новые кроссовки в диапазоне 200$, скорее всего найк
Поставь это в задачи, и перед этим проанализируй их модельный ряд, сравни с NB, PUMA и Adidas. Выбери топ 3 под мой запрос -- бег по городу, 5-6км в среднем. А затем глянь, есть ли они в Бангкоке
И оформи в задачу, чтобы я через неделю сгонял в магазин
---------
Пока на этом все
Такие черновые посты помогают мне написать большую статью. Но у постов слишком много ограничений. Например -- только одна картинка на весь пост и лимит по символам. Поэтому сделать посты информативными сложно, пусть хотя бы в выгрузке мыслей помогают
Собрали подробный гайд для начинающих о Grafana и Zabbix — эффективном комбо для контроля IT-инфраструктуры. Zabbix выступает инструментом для сбора данных, контроля состояния систем и приложений. Grafana же обеспечивает широкие возможности визуализации.
Почему Grafana и Zabbix полезно использовать вместе:
Grafana отображает данные, которые поступают из Zabbix — отсюда оперативное обнаружение проблем;
интеграция позволяет создавать кастомизированные дашборды и графики, адаптированные под потребности конкретных команд или проектов, а также упрощает работу с данными и оптимизирует процесс мониторинга;
можно настроить систему оповещений в Grafana и оперативно реагировать на проблемы;
объединение мониторинга в единой платформе дает целостное представление об IT-инфраструктуре.
В базе знаний Облака Рег.ру читайте о подготовке к совместной работе Grafana + Zabbix и смотрите подробную инструкцию по настройке инструментов.
Если супер просто, то вот что такое MCP сервера внутри Claude Desktop
Прослойка с кодом, которая связывает клиент, например Claude Desktop, и сервис на той стороне
Связывает таким способом, что я могу человеческим языком писать в чат Claude, а эта прослойка сама понимает, какую функцию нужно вызвать
Есть официальные прослойки, которые пишут сами компании. А есть те, которые написаны энтузиастами. К одному MCP серверу, нужному мне, я тоже приложил руку, а точнее форк
Пока что технически установить и подключить эти сервера не так просто, хотя Anthropic, создатели протокола, постоянно думают над упрощением процесса установки и подключения
Вот какие MCP сервера подключены у меня
🟢 Notion (на чтение и на запись) 🟢 GitHub (на чтение и на запись) 🟢 TickTick — мой таск трекер (на чтение и на запись) 🟢 Google Analytics 4 (только на чтение)
Какие сценарии использования есть у меня
MCP Server TickTick — мой сервис для задач
Через подключенный MCP сервер я обычным языком, как живому ассистенту, говорю список задач. Он их может ставить, удалять, передвигать, менять описание и все, что могу делать я.
Например,
Поставь мне вот эти 10 задач на неделю, к каждой напиши Definition of Done и выстави время в течении недели, когда эту задачу лучше сделать, учти зависимости с другими задачами
Или
Передвинь задачи из этого проекта на день вперед, я не успеваю сегодня их сделать
А что у меня сегодня запланировано
В общем, как будто через ассистента задачами управляете
Дальше идет Notion — моя база знаний и хранение всего подряд
Claude через Notion MCP знает все файлы, к которым я дал ему доступ. Может создавать там сложные таблицы и контент, который я его прошу В Notion у него есть доступы к моей таблице управления UTM ссылками, финансовому дашборду и бизнес дашборду.
Во все эти места у Claude есть доступ, и все это он умеет заполнять, пока я просто ему наговариваю, что хочу
Затем — Google Analytics
К моему продукту, гайду по ChatGPT, подключеные две аналитики. Яндекс и Гугл. И вот в Google Analytics мой Claude умеет смотреть.
Может приносить мне инсайты недели, какие источники лучше работают, по каким источникам лучше / хуже удержание и возвращаемость
И последний в списке, но не по значимости — GitHub
Через MCP GitHub я улучшаю мои MCP сервера — если понимаю, что их можно улучшить. Claude сам мне может подсказать, что текущая конфигурация MCP сервера ему не нравится, и предлагает улучшения. Мы с ним делаем форк существующего MCP сервера и улучшаем
Плюс все мои сайты могу создавать напрямую из Claude -> GitHub
Это был краткий экскурс в MCP сервера, надеюсь в течении пары дней я смогу упаковать это в подробный пост 🧑💻
Запускайте контейнерные приложения в облаке с Evolution Container Apps 💭
❓ Что за сервис?Evolution Container Apps позволяет запускать контейнерные приложения в облаке, причем для этого не нужно разбираться в Kubernetes или развертывать виртуальные машины. Запуск проиcходит на базе Docker-образов.
🖥 Особенности и преимущества. Возможности сервиса применимы для любого стека — контейнеры могут использовать любую среду выполнения и любой язык программирования. В зависимости от нагрузки экземпляры контейнеров создаются или удаляются автоматически. Не нужно настраивать кластеры Kubernetes: достаточно загрузить Docker-образы в реестр и создать контейнеры в личном кабинете. А еще у Evolution Container Apps есть free tier: ежемесячный объем бесплатных ресурсов — 480 ГБ RAM и 120 vCPU, запускать небольшие приложения можно без оплаты.
👨💻 Кому будет полезно. Всем, кто использует Docker и хочет облегчить развертывание и масштабирование:
Разработчикам и DevOps-инженерам, чтобы быстро тестировать и запускать приложения.
Небольшим компаниям и стартапам, которые хотят сэкономить на инфраструктуре и попробовать бесплатные возможности Evolution Container Apps.
Большим проектам с микросервисной архитектурой, чтобы облегчить оркестрацию, развертывание сложных приложений за счет контейнеров sidecar и init.
Хотите узнать больше о сервисе? Смотрите запись доклада с GoCloud 2025, где мы рассказали, как сохранить данные в S3 при работе с Evolution Container Apps. А еще сохраняйте пошаговый туториал, как запустить облачное приложение с Evolution Container Apps, без Kubernetes и развертывания ВМ.
Я внедрил скрам и не могу закончить ремонт на балконе.
Начинал всё по уму: разбил эпик на задачи, расставил приоритеты. Какие-то оценил сам, по другим — созвал консилиум. Привлек электрика: в команде не было экспертизы, хотя сын уверенно заявил, что справится. Оставим это на его совести — еще вчера он пытался вставить батарейку в игрушку вверх ногами, но делал это с таким выражением лица, что потенциал сеньора виден невооружённым глазом.
Проект, конечно, со спецификой: параллелить задачи сложно. Идею "я утепляю, а жена в это время красит обои, а потом как-нибудь сольем" мы отвергли сразу — архитектура не позволяла.
Поначалу шло бодро: за первый месяц 30% задач закрыто — утепление, 3 из 4 стен покрашены. Но как водится, наступил кризис ресурсов - внезапно вышел Kingdom Come: Deliverance II и съел все капасити ведущего разработчика. Прогресс застопорился.
Ретроспективы с женой проходят регулярно: я зажигаю команду речами о важности коммитмента, о наших ценностях и цели. Но стена всё еще не покрашена.
Дополнительные таски множатся: надо помыть окна по всей квартире, разобраться с дверцей шкафа, которая теперь открывается строго по фазе луны. Думаю, пора внедрять SAFe — горизонт проектов растёт.
P.S. Прогресса по основной задаче нет, но радует, что бизнес пока не планирует резать косты.
Контур проводит исследование о том, как живёт .NET-сообщество в России. Анкета активна до 15 июля.
Вопросов чуть больше 20, но большинство из них закрытые, так что много времени не займет. Мы не спрашиваем ваши персональные данные и зарплатные вилки. Мы хотим узнать, как C# разработчики обмениваются знаниями и какие выбирают инструменты для развития.
Привет Хабр! Это мой первый пост, и я просто хотелось спросить, стоит ли уходить в Go? У меня есть небольшая база в программировании, делал сайты на реакт и ларавел, реализовывал бэкенд с Солид и паттернами, писал на нативном пхп файловые обменники и апи. Не много знаю базы данных соответственно, гит, докер. Сейчас засматриваюсь на Go, где то вычитал что мол крутая штука для бигтехов в России, а сам я студент и пока сижу на шее у родителей, но в следующем году я окончу к курс, и хочу где то месяца за 4-5 изучить все нужное в го и во всех других сопутствующих технологиях для разработки высоконагруженных приложений и микросервисов и всякого подобного. Стоит ли сворачивать на этот путь, или добить стек ларавел плюс вью? Немного боюсь, так как слышал что в го нужны уже 25 летние синьоры со стажем работы минимум в 20 лет, но и не хочется проторчать всю жизнь в челябинской галере на фуллстеке за 70 деревянных на руки.
Control Plane и User Plane в мобильной связи: зачем нужны два типа трафика и как они работают
Опорная сеть — это мозг мобильной связи. Именно она делает возможными звонки, мобильный интернет и все функции, к которым мы привыкли. Когда базовая станция ловит сигнал, переводит его в цифровой вид и передает дальше — в дело вступает опорная сеть. Она решает, что это за данные, кому они адресованы, есть ли у абонента на них право и куда их направить.
На ней держится все: авторизация пользователей, выдача IP-адресов, маршрутизация трафика, подсчет минут и гигабайт, подключение сервисов и связь между базовыми станциями и внешним интернетом. Все, что выходит за рамки простого «поймать сигнал», — уже ее зона ответственности.
Высокоуровневая архитектура любой сети мобильной связи
Физически между базовой станцией и опорной сетью проходят два потока:
Control Plane — управляющий трафик. Отвечает за процедуры подключения к сети, аутентификации, переключения между станциями, сессий и т. д.
User Plane — пользовательский трафик. Это все, что идет от приложений пользователя: стриминговые сервисы, мессенджеры, браузер и так далее.
Они разделены как логически, так и физически. Такой подход нужен, чтобы обеспечивать надежность, безопасность и гибкость.
В статье Елена Степанова, ведущий инженер-программист в YADRO, объясняет, чем опорная сеть отличается от базовой станции, зачем в 5G сотни микросервисов и как устроена архитектура мобильной связи.
Карма vs Инженерная честность: Почему рейтинги убивают экспертизу
Есть в инженерной культуре наивная вера: если система имеет метрики и правила - она безусловно и по умолчанию объективна. Карма на Хабре тому идеальный контрпример. Формально всё честно: пост → оценка → рейтинг. На практике же это цифровой аналог пассивно-агрессивного "не зашло". Без объяснений. Без контекста.
Карма против инженерной честности
Социальная инженерия вместо экспертной оценки
Главный парадокс: чтобы выжить, ты должен угадывать не истину, а ожидания аудитории. Тон, формат, табу. Это краш-тест на конформизм:
Написал, что 80% мониторинга в проде — это фейковый SLO? → Минус ("негатив"). Сказал, что ChatGPT пишет ТЗ лучше джуна? → Минус ("ересь"). Осмелился быть лаконичным без смайликов? → Минус ("агрессия").
Почему так? Потому что карма измеряет не глубину мысли, а комфорт восприятия. Инженерная точность = высокомерие. Прямолинейность = токсичность. Даже если за этим — годы практики и статистика.
Карма как инструмент подавления инакомыслия
Самое циничное на мой взгляд, найдутся и оппоненты, несомненно, это - непрозрачность. Минус прилетает анонимно, без мандата на критику. И неважно, что твой вклад в тему - как у топ-комментатора. Система молчит, а ты получаешь ярлык "ненадёжного".
Итог: Действительно качественные и экспертные умы, готовые спорить и рушить догмы, — уходят. Остаются те, кто мастерски жонглирует банальностями в дружелюбной обёртке. Звучит довольно резко, соглашусь. Но иначе не донести усть мысли. Платформа медленно превращается в клуб взаимного одобрения.
Что делать?
Игнорировать карму как погрешность системы (но тогда зачем она?).
Требовать мандат для минусов ("Укажи причину: факт ошибка/оффтоп/токсичность"). Хотя у кого тут истребуешь - не нравится, двери на кнопке "выйти".
Ввести верифицированную карму - например, чисто теоретически, только от пользователей с 100+ постами в профильных хабах.
Пока же мы имеем соцсеть, где алгоритмическая справедливость проигрывает человеческой... нетерпимости.
P.S. Этот текст - эксперимент. Проверим, сколько стоит сказать: "Император голый". За инженерную честность - не жалко. P.P.S. Карма — временна. Культура дискуссии — вечна.
Java — один из самых востребованных языков, но с чего начать, если вокруг столько информации, а подходы быстро устаревают? В прямом эфире разберем:
✔️ С чего начать в Java, чтобы не тратить время на устаревшие методы
✔️ Ключевые инструменты (JUnit, Maven, Git) — как их применять с первых шагов
✔️ Кейсы, которые помогут на собеседованиях и в реальных проектах
✔️ Как избежать типичных ошибок новичков и сразу писать чистый код
Почему стоит прийти?
🔹 Узнаете, как быстро войти в Java с актуальными знаниями
🔹 Увидите разбор реальных примеров и учебных проектов
🔹 Получите рекомендации по ресурсам и дальнейшему развитию
👨🎓 Спикер:Судакевич Игорь — преподаватель международного уровня, более 15 лет работает в ИТ. Уполномоченный инструктор корпорации Oracle. Магистр компьютерно-информационных технологий. Инструктор платформы Udemy.