Как стать автором
Обновить
0
0

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

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

«Бобер выдыхай»: Go, WinAPI и ассемблер

Уровень сложностиСложный
Время на прочтение22 мин
Количество просмотров11K

Что вам приходит в голову при слове «Golang»? Google и микросервисы? Я тоже так думал, но реальность оказалась значительно интересней.

Читать далее

Как ошибка ChatGPT стоила нам $10 000

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

Колесо крутится, но хомячок подписки помер. Оно просто крутится.

В начале я хотел бы сказать, что описанные в статье практики очень плохи и неправильны (с тех пор мы добавили надёжные юнит-тесты и интеграционные тесты, а также систему алертов/логирования), что их следует избегать и в первую очередь это человеческие ошибки, которые задним умом кажутся очевидными.

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

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

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

Читать далее

Используем gocv, чтобы определить возраст, эмоции и пол человека по фото

Время на прочтение11 мин
Количество просмотров2.1K

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

Для демонстрации будем использовать модели caffe и onnx. Сервис напишем с использованием golang. Ниже приведен пример изображения, на котором распознан пол и примерный возраст человека. В нашем сервисе мы будем возвращать JSON, в котором будут указаны возраст, эмоции, пол и местоположение лиц на фотографии.

Читать далее

Не только VPN. Как это было и куда идет

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

Немного истории, реализация php, perl и банальная реализация на Golang.
Интересно? Добро пожаловать в подкат...

Читать далее

Создание CLI утилит на Go с библиотекой Cobra

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

Сегодня мы рассмотрим, как с помощью замечательной библиотеки Cobra превратить обычный Go-код в инструмент CLI. Cobra позволяет создавать интерфейсы командной строки.

Начнем с самого начала — установки и настройки проекта.

Читать далее

GOAPPLE: быстрая настройка I3-wm

Время на прочтение7 мин
Количество просмотров27K

Привет, Хабр! Сегодня я хотел бы рассказать вам о моём переезде на Linux под управлением оконного менеджера I3-wm. Попробую немного раскрыть тему настройки оконного менеджера и поделюсь своим опытом. Надеюсь кому-то будет полезно получить такого рода информацию.

P.s если вы не новичок, то вред ли узнаете много нового, но благодарю за внимание!

И так! Данная программа была разработана в целях бэкапа конфигурации системы, которую я использую каждый день - Manjaro I3. Я приготовил 3 конфигурации оконного менеджера I3-wm для систем: Manjaro, Solus и Fedora, так как они наиболее популярны на мой взгляд. Я использовал каждый из представленных дистрибутивов и временами меняю совой основной дистрибутив на один из них.

Я пользуюсь Linux с 18 февраля 2019 года, но летом 2020 я начал использовать Linux как основную систему (на тот момент ещё Ubuntu 20.04 LTS).

Читать далее

Авторские права на служебные произведения и изобретения: что нужно знать автору и работодателю

Время на прочтение8 мин
Количество просмотров1.5K

Коды, изображения, тексты, дизайны интерфейса, алгоритмы и другие объекты авторского и патентного права, созданные в рамках исполнения трудовых обязанностей, по общему правилу полностью принадлежат работодателю. Однако для этого нужно выполнить определенные условия. В противном случае владельцем исключительных прав на объект останется работник, который в любой момент может забрать свою разработку и «уйти в закат». Из-за этого между создателем объекта и работодателем часто возникают споры. 

Меня зовут Юрий Горбачев. Я руковожу патентным бюро «Лирейт». В этой статье я разберу, как правильно оформлять правоотношения, чтобы обе стороны остались довольны. 

Читать далее

Анонимный RAT при глобальном наблюдателе

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

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

Читать далее

Аппаратный DIY аудиомикшер

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров11K

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

Читать далее

Выжимаем из Go максимум производительности

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

Разработчики, которые используют Go, сталкиваются с задачей выжать максимальную производительность из каждой строки кода. Но что делать, если оптимизировать уже нечего, а увеличивать скорость всё равно надо?

Меня зовут Никита Галушко. Я старший программист-разработчик в отделе высоконагруженных систем и оптимизации ВКонтакте. В статье поделюсь, какие хитрости помогут использовать Go на полную мощность.

Читать далее

Создаём виртуальную сеть, как это делает Docker

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

Как известно, Docker умеет создавать виртуальные сети для безопасного и удобного сетевого взаимодействия внутри контейнеров. В этой статье мы рассмотрим, как именно он это делает на примере базовых манипуляций с сетью в рамках одного хоста с операционной системой Linux.

Читать далее

Оптимизация Go: как повысить скорость и эффективность кода

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров8.9K

Привет, Хабр! Меня зовут Макс, я Go-разработчик в компании SimbirSoft. Язык Go (Golang) стремительно набирает популярность, он всё чаще внедряется в существующие программные решения, а также встречается в стеке новых проектов. Высокая производительность и скорость работы – его главные преимущества, поэтому для реализации бизнес-задач он подходит как нельзя кстати. Go легко поддерживается и отлично годится для создания MVP, из-за чего востребованность в нём растёт.

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

Мы начинаем!

Go ⏩

«Кража» со взломом: пентест финансовой организации

Время на прочтение7 мин
Количество просмотров24K

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

Это реальная история. События, о которых рассказывается в посте, произошли не так уж давно. По просьбе юристов названия были изменены. Из уважения к читателям все рассказано так, как было на самом деле.

Читать далее

Ansible + SoT или Ещё раз про динамический inventory

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

Ansible используют почти все, и мы не исключение. В отделе сетевой инфраструктуры мы с его помощью автоматизируем доставку конфигураций на коммутаторы и маршрутизаторы. Наша сеть постоянно расширяется, внедряются новые фичи, которые тянут за собой новые плейбуки и роли, но одно всегда оставалось неизменным — список хостов мы держали в ini-файле. И когда количество хостов стало исчисляться сотнями, пришло понимание, что вручную контролировать inventory в файле не очень-то и удобно.

«Постойте» - подумали мы - «у нас же есть актуальный список всех сетевых устройств в Nautobot, и в нашей сети именно он является источником истины. Надо всего лишь подружить Ansible и Nautobot». Что ж, давайте посмотрим, как умеют договариваться эти двое.

Читать далее

Как мы Nautobot до ума доводили

Время на прочтение10 мин
Количество просмотров6.9K

Много слов было сказано про концепцию Source of Truth в мире сетей, много копий сломано в дискуссиях о том, как лучше её реализовать. Кто-то голосует за Git, кто-то жить не может без Netbox, а кто-то по старинке хранит всё в Excel и собственной памяти.

Мы же в Hoff Tech вот уже больше года активно используем Nautobot, и нам есть чем поделиться с теми, кого гложут мысли: «Так, Nautobot установил, где у него кнопка что делать дальше?»

Если интересно, добро пожаловать под кат

Из ASCII в Pixel Art и обратно

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

Привет, ребята! Новую игру я делаю на своем старом движке текстового режима. Однако это псевдотрехмерная (2.5D) пиксельная игра с перспективой. Оказалось, что символьный ASCII движок может справиться с этой задачей, нужно только сделать пару апгрейдов.

Читать далее

Как веб-технологии помогают искать золото

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

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

Читать далее

Обработка ошибок в web apps не должна быть такой сложной

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

В процессе работы с Go я столкнулся с ещё одной проблемой — обработкой ошибок в хендлерах. Как можно сделать этот процесс удобным и эффективным для 150+ обработчиков? Как обеспечить консистентность и поддержку при обработке ошибок?

Разумеется, мои поиски палочки-выручалочки закончились ничем, хочется чтобы бум и все готово. Есть протокол RFS7807, есть библиотека, есть масса противоречивых статей. По существу статья ниже полностью не отвечает на все, но в ней есть позиция и предложено решение, и я думаю, это решение может быть полезным. Статья лишь повод/предложение поделиться вашими примерами успешных кейсов.

Собственно, статья, приятного прочтения.

Читать далее

TOTP без смартфона, послесловие

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

После публикации статьи «TOTP без смартфона» она получила много интересных и полезных комментариев. Я решил подождать, пока обсуждение затихнет и провести работу над замечаниями и высказанными мыслями.

Поскольку объём работы оказался достаточно большой, то оформил её в виде отдельной публикации-послесловия.

Читать далее

TOTP без смартфона

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

Когда я решил избавиться от необходимости постоянно носить с собой смартфон, одной из проблем оказалась двухфакторная аутентификация (2FA, приложение Google Authenticator). Остаться без возможности авторизации на множестве сервисов было неприемлемо, нужна была альтернатива.

Беглый поиск вывел меня на утилиту oathtool: командная строка, POSIX, OSS — всё, как я люблю, проблема в принципе решена. Но, как и большинство CLI утилит, её удобно использовать в сочетании с другими утилитами, а для этого полезно написать скриптовую обвязку. Собственно этой обвязкой, а также опытом использования, я и решил поделиться.

Читать далее

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность