Этот пост — погружение в кроличью нору. Разработчик Монсеф Аббад задумался о изображениях — вероятно, после недавнего изучения им некоторых схем компрессии. Общеизвестно, что изображения бывают либо полутоновыми, либо RGB, когда новые цвета создаются на основе смешения красного, зелёного и синего. Но для хранения изображения требуется нечто большее, чем просто выравнивание трехбайтовых значений RGB. Что-то в этой идее пробудило любопытство автора, поэтому в статье он попытался удовлетворить его…
Решил перейти на Go. Причина простая — видел вакансии с зарплатой выше 100 тысяч, и почти везде Go. Я до этого писал в основном на Python. Немного Django, немного микросервисов, WordPress. Закончил онлайн-школу, работаю уже третий год. Решил, что пора прокачиваться и становиться программистом-полиглотом.Вот мой опыт и небольшие замечания по языку:Первый шок — это mainКогда я писал на Python, всё было просто: написал функцию — она работает. Хочешь — запускаешь что-то напрямую. Хочешь — импортиру…
Golang — приключение не на 20 минут, а игра вдолгую. Подтвердили это, собрав в офисе спикеров Lamoda Tech, а также 2ГИС и МТС. Помимо новых докладов, разблокировали экспериментальный формат факап-разгонов, где наши друзья из ВИ.Tech, Orion soft и Cloud.ru вместе со зрителями делились историями провалов. Публикуем материалы с этой встречи.Видео и презентации докладовКак мы автоматизировали интеграционное тестирование с Gonkey и не пожалелиПаша Егорычев, Go-разработчик Lamoda TechКирилл Поляков, …
Эта заметка будет очень короткой. Но надеюсь, она кому-то спасёт несколько часов жизни.У меня был код. К счастью, это было в тесте, а не в боевом коде, поэтому никто не пострадал.Код создавал http.Server, запускал две гороутинки для обслуживания входящих соединений:go func() { srvr.Serve(p) }() go func() { srvr.ServeTLS(e, "", "") }() Ну и дальше создавал клиента, делал к серверу обращения (HTTP GET) попеременно используя http и https ну и чего-т…
Карты (maps) в Go — это отличный инструмент для хранения данных в виде пар «ключ — значение». Они широко используются в разработке благодаря своей гибкости и удобству. Например, карты часто применяются для кэширования данных, хранения конфигураций или обработки больших объемов информации. Однако эффективная работа с картами требует понимания их внутреннего устройства и особенностей управления памятью. Под капотом карты реализованы на основе хеш-таблиц, что обеспечивает быстрый доступ к данным, …
Привет! Я ex. Разработчик из VK, сейчас принял оффер от Ozon'a, и за последний месяц я прошел собеседования в 4х бигтех компаниях: Ozon, Avito, Wildberries и T-Bank и везде дошел до финалов/офферов. Пообщавшись во многих группах, посвященных Go-разработке, я понял, что много умных ребят готовясь к собесам не имеют четкой системы подготовки, и из-за этого заваливают технические собесы в компании. Не претендуя на истину в последней инстанции, предлагаю свою методику подготовки к собесам, кото…
Если я говорю "самая удобная", значит в сложившемся годами подходе должны быть проблемы, и я их выделил и как-то решил. Давайте разбираться.Проблемы стандартного подхода к конфигурации в GoСтандартный подход к управлению конфигурацией в Go обычно выглядит примерно одинаково, будь то популярный viper, env или менее известные решения типа confita :Создаём структуру кофигурацииДля иерархичности конфигурации вкладываем одну структуру в другуюДобавляем теги на поля наших структур, как миниму…
Rust GO!Обновлено: пример полностью собирается на stable Rust (edition 2024) с актуальными версиями крейтов: bytes, anyhow, tokioquinn,rcgen иrustls.Что сделаемРазберёмся, как фреймируются HTTP/2 и HTTP/3 (QUIC).Напишем крошечный мини-фреймворк «Mini-Transport» (≈600 строк) на Rust:• чтение/запись HTTP/2-фреймов,• gRPC-кодек (без protobuf-codegen),• переход на QUIC.Соберём рабочий echo-пример: клиент шлёт «hello», сервер отвечает «world».1 | Базовая теорияHTTP/2 — бинарный протокол, каждый фрей…
Tarantool Proxy — «умный посредник», который делает работу с кластером Tarantool надежнее, быстрее и проще, беря на себя рутинные задачи вроде балансировки и безопасности. Это компонент в архитектуре шардированного Tarantool, который нужно написать самому на основе библиотеки vshard. То есть это не standalone приложение из коробки. Заметим, что изначально основная библиотека Tarantool Proxy — vshard была написана на Lua, из-за чего для получения всех профитов от работы с ним нужна была специфич…