golang
Вы уверены, что defer всегда безопасен?

О себеПривет! Я Артур Давыдов, бэкенд разработчик на Go. В этой статье хочу рассмотреть поведение defer более детально. Надеюсь, что статья будет полезна.Смотрит на deferВведениеDefer это мощный инструмент в Go. Его можно (с огромной натяжкой) сравнить с деструкторами С++ или Finalizer в Dart, но происходит все действо в пределах стека одной функции. И этих вызовов может быть несколькоЭто базаDefer в Go перемещает вызов функции в стэк (LIFO очередь) отложенных вызовов. Другими словами, функции …

  • понедельник, 2 июня 2025 г. в 00:00:06
golang
Еще разок про gomock и функциональные тесты

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

  • понедельник, 2 июня 2025 г. в 00:00:06
javascript
CI/CD на GitHub Actions и GitLab CI для самых маленьких. Часть 2

Часть 2: Настройка GitHub Actions и GitLab CI – первый workflow и деплойВ первой статье мы разобрались с основами CI/CD: что это такое, зачем нужно и какие инструменты существуют. Теперь пришло время перейти от теории к практике – создадим наши первые рабочие CI/CD-конвейеры на GitHub Actions и GitLab CI.ВведениеПомните, как в первой статье мы говорили о CI/CD как о вашем личном роботе-помощнике? Сегодня мы этого робота соберём и запрограммируем. Мы настроим репозитории на GitHub и GitLab, напи…

  • понедельник, 2 июня 2025 г. в 00:00:04
javascript
Создание вращающейся ручки на основе Input Range

Рад приветствовать тебя,%username%. В этой статье я поделюсь тем, как создать вращающуюся ручку (в зарубежной литературе именуемой Knob). Далее по тексту я её буду называть «кноб». Перейдём к сути вопроса.Что меня сподвигло на написание данной статьи, или как я докатился до жизни такойКогда-то давно, будучи ещё совсем зелёным и несмышлёным кодером, мне взбрело в голову сделать своё приложение. Моих знаний хватало на какой‑нибудь «Hello, World!», но кое‑что выдать я мог. И на тот момент мне поза…

  • понедельник, 2 июня 2025 г. в 00:00:04
github
googleapis / go-genai

Google Gen AI Go SDK provides an interface for developers to integrate Google's generative models into their Go applications. ✨ NEW ✨ Google Gemini Multimodal Live support Introducing support for the Gemini Multimodal Live feature. Here's an example Multimodal Live server showing realtime conversation and video streaming: code Google Gen AI Go SDK The Google Gen AI Go SDK provides an interface for developers to integrate Google's generative models into their Go applications. It support…

  • понедельник, 2 июня 2025 г. в 00:00:02
xaker
Печатная версия книги «Хакеры.RU» в продаже

В прошлом месяце на сайте «Хакера» завершилась публикация книги Валентина Холмогорова «Хакеры.RU» — приключенческой истории с налетом технотриллера и атмосферой времен, когда хакинг был стилем жизни. Ты можешь не просто прочитать эту историю, но и подержать ее в руках — у нас есть бумажная версия книги с черно-белыми иллюстрациями!

  • воскресенье, 1 июня 2025 г. в 00:00:12
habrahabr
PCI-аудиокарта Creative E-MU 0404: история появления винтажного девайса и его возможности

Если 25 лет назад мне бы сказали слово Creative, то я бы автоматически ответил Sound Blaster. Эти карты де-факто стали стандартом для геймеров еще в 90-х, так что открыв почти любую игру тех лет, в настройках вы видели заветное словосочетание. Разумная стоимость и богатая функциональность — поддержка MIDI, встроенный музыкальный синтезатор, наличие порта для подключения джойстика, возможность воспроизводить цифровой звук — сделали SB невероятно популярной линейкой.Но, помимо геймеров и разработ…

  • воскресенье, 1 июня 2025 г. в 00:00:11
habrahabr
Game++. Performance traps

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

  • воскресенье, 1 июня 2025 г. в 00:00:10
habrahabr
CasaOS: персональное облако на домашнем сервере

Представьте, что можно управлять всеми приложениями, трансляциями фильмов и музыки, бэкапами, дисковым хранилищем, устройствами умного дома — с домашнего сервера. Это есть личное или персональное облако, то есть аналог публичных облачных сервисов, но на своём сервере, дома или на VPS. Например, система CasaOS изначально создавалась для одноплатника ZimaBoard (на фото), который позиционируется как мини-NAS. Главная ценность — отшлифованный UI с системными гаджетами для домашнего сервера, отоб…

  • воскресенье, 1 июня 2025 г. в 00:00:09