Обновить
23
0
Андрей@akurilov

Программист

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

Семь самых важных научных статей в истории Computer Science

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

Прежде чем мы начнём, уточню: да, это субъективный список. Его цель — не закончить обсуждения, а породить их. Эти семь работ (отсортированных по дате публикации) я выделил потому, что они сильно повлияли на современный мир. Каждая из них заслуживает отдельного поста (или даже книги!). Если ваша любимая научная статья не попала в список, до дочитайте до раздела «Бонус» в конце, куда я добавил работы, которым чуть-чуть не хватило до попадания в основной список.
Читать дальше →

(Законы Акина) законы космической инженерии

Время на прочтение3 мин
Охват и читатели40K
1. Инженерная разработка — это цифры. Анализ без цифр — это просто мнение.

2. Создание правильной ракеты занимает бесконечное количество времени. Поэтому следует создавать ракеты, в которых что-то неправильно.
Читать дальше →

Популярные ошибки в Golang и как их избежать

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

Дмитрий Королев расскажет про распространённые ошибки при работе со слайсами, каналами и другими структурами в Go. Научимся предупреждать их и справлять на примерах.

Читать далее

Domain Driven Design в Go – это почти не больно

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

Как выглядят паттерны DDD (Domain Driven Design) в большом проекте? А самое главное, стоит ли их вообще использовать? Рассмотрим, какими инструментами можно реализовать DDD на Go и оценим, насколько это больно.

Меня зовут Илья Сергунин, я backend-сочинитель в Авито: занимаюсь тем, что передаю смартфоны в хорошие руки. В этой статье попытаюсь объяснить, как можно натянуть DDD на Go без синтаксического сахара и магии Java-подобных языков, и без больших крутых ORM c Data mapper, которые также отсутствуют в Go.

Читать далее

Пишем минимальный ActivityPub-сервер с нуля

Время на прочтение12 мин
Охват и читатели10K
В последнее время, на фоне покупки Twitter Илоном Маском, люди начали искать ему альтернативы — и многие нашли такую альтернативу в Mastodon.

Mastodon — это децентрализованная социальная сеть, работающая по модели федерации, как email. Протокол федерации называется ActivityPub и является стандартом W3C, а Mastodon — далеко не единственная его реализация, но самая популярная. Различные реализации протокола, как правило, совместимы друг с другом, настолько, насколько им позволяют их совпадения в функциональности. У меня есть и мой собственный проект ActivityPub-сервера — Smithereen, такой зелёный децентрализованный ВК, где я когда-нибудь таки верну стену.



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

Как я проверяю Телеграм-каналы перед покупкой рекламы

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

В начале этого года я стал привлекать подписчиков в свой канал, делая прямые закупы в других Телеграм-каналах. Изучил кучу туториалов от «специалистов» на Ютубе, был дважды разведён мошенниками, набил кучу шишек и в итоге во всём разобрался. Основа моего опыта — 250 000 рублей бюджета и реклама в 125 каналах.

Читать далее

Светодиодная лента в качестве освещения комнаты

Время на прочтение15 мин
Охват и читатели1.3M
Изначально для основного освещения одной из комнат, где шёл капитальный ремонт, планировалась обычная люстра. Но недавно мне на глаза попалась суперяркая светодиодная лента Ultra 5000 со светодиодами smd 5630 торговой марки Arlight. Решение было принято быстро, окончательно и бесповоротно — хочу такую ленту в качестве основного света в комнате.



О реализации светодиодного периметра освещения далее

Создание telegram web apps и взаимодействие с ними в телеграм ботах

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

В обновлении Bot API 6.0 телеграм-боты получили много новых функций. Из них для разработчиков самая примечательная - Telegram Web Apps (Веб-приложения внутри телеграм). С этим нововведением разработчики могут подключать к своим ботам web-приложения, которые открываются в дополнительном окне, что сильно расширяет инструментарий, а, следовательно и функционал ботов в телеграм.

Читать далее

Lua конфигурация Neovim для разработки на Go

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

В процессе знакомства с Neovim было прочитано много статей, конфигураций на Github, было просмотрено огромное количество роликов на Youtube на тему настройки, но в большинстве случаев приходилось донастраивать все под себя. В этой статье я расскажу как я настроил Neovim для разработки на Go, используя только Lua плагины и init.lua.

Читать далее

Главные советы стартапам от Y Combinator

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

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

Первое, что мы всегда говорим основателям стартапов — запускайтесь прямо сейчас...

Читать далее

Архитектурные решения для обработки потоковых данных

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

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

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

С каждым днем интерес к обработке потоковых данных становится все более заметным. зовами, связанными с обработкой данных в высокоскоростных потоках.

Читать далее

Разработка Kubernetes оператора с Operator Framework

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

Image


Как уже говорилось в статье Радар технологий, Lamoda активно двигается в направлении микросервисной архитектуры. Большинство наших сервисов упаковываются с помощью Helm и деплоятся в Kubernetes. Данный подход полностью удовлетворяет наши потребности в 99% случаев. Остается 1%, когда стандартного функционала Kubernetes недостаточно, например, когда нужно настроить бэкап или обновление сервиса по определенному событию. Для решения данной задачи мы используем паттерн оператор. В данном цикле статей я — Григорий Михалкин, разработчик команды R&D в Lamoda — расскажу об уроках, которые я вынес из моего опыта разработки K8s операторов c помощью Operator Framework.

Читать дальше →

Революция в области хранения данных и аналитики с помощью MongoDB Atlas в Google Cloud и HCL

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

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

Читать далее

Всё, о чём должен знать разработчик Телеграм-ботов

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

Вы вряд ли найдете в интернете что-то про разработку ботов, кроме документаций к библиотекам, историй "как я создал такого-то бота" и туториалов вроде "как создать бота, который будет говорить hello world". При этом многие неочевидные моменты просто нигде не описаны.

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

Подробный гайд о том, как работать с ботами — под катом.

Читать далее

Telegram удалил нашего ChatGPT-бота на 27,000 пользователей без объяснения причин

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

Несколько недель назад мы с коллегой сделали ChatGPT-proxy бота в Telegram, который помогал в наших рабочих чатах и просто развлекал нас. Он написан на TypeScript и потрясающем фреймворке Grammy, использует Open AI API, а именно модель gpt3.5-turbo, которая используется в оригинальном ChatGPT.

Читать далее

Как создать микросервис на Rust при помощи gRPC

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

Введение


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

Перед изучением этого поста также будет полезно посмотреть предыдущие публикации автора по Rust:

https://blog.ediri.io/lets-build-a-cli-in-rust
https://blog.ediri.io/how-to-asyncawait-in-rust-an-introduction
Читать дальше →

Трейсинг в Go — это просто

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

В эпоху быстрорастущих приложений важно иметь возможность контролировать состояние системы в любой момент времени. Одними из требований для достижения этого являются логи и метрики, которые помогают нам следить за многими параметрами, такими как количество запросов в секунду (RPS), потребление памяти, cache git и т.д. Однако, есть ещё один полезный инструмент - трейсинг. В этой статье мы ознакомимся со стандартом OpenTelemetry в языке Go и инструментом Jaeger

Читать далее

Go: обобщенные алгоритмы и типы

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

До недавнего времени у тех, кто пишет на Go было два пути: копипаста и кодогенерация. Фанатом ни первого, ни второго я не являюсь, однако к моей радости, теперь и в Go есть обобщенные типы. Казалось бы, проблема решена! Но не тут-то было, дженерики Go имеют весьма специфические ограничения, которые, портят всю малину. С одним из них мне и захотелось разобраться.

Читать далее

golang, GRPC, Jaeger и distributed tracing

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

Сразу хотел бы обозначить, что в данной статье не стоит цели рассказать обо всех указанных в заголовке технологиях, а скорее просто how to инструкция как настроить это все у себя в проекте.

Причина по которой я сел писать этот пост - когда мне было нужно я не смог найти ничего подобного (возможно, как всегда, плохо искал). Так же во многих гайдах для работы с Jaeger использовали старую библиотеку от uber, а сейчас уже советуют отказываться от нее в пользу opentelementry клиента. Еще я толком не cмог найти информации как прокидывать trace-id через context между сервисами.

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

Читать далее

Сверхлёгкие частицы размером с галактику

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

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

Информация

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