Search
Write a publication
Pull to refresh
30
0
Сергей Сахно @Punk_Joker

Software engineer

Send message

Отрабатываем Git hooks на автоматизации commit message

Reading time8 min
Views47K

Привет, Хабр! В этой статье я расскажу о Git hooks и о том, как они могут помочь с некоторыми насущными кейсами организации создания commit’ов и commit message. Пост основан на реальном опыте из моей практики: как я упрощал то, что всем надоело делать руками. Я уверен, что хуки могут оказаться полезны почти каждому разработчику. Ведь все мы пишем в сообщении коммита чуть больше, чем «fixed what was broken», верно?

Меня зовут Роман Горбатенко, я Java-разработчик в компании DINS, на момент написания текста тружусь в команде Contact Center. Занимаюсь разработкой больше 3-х лет и прошел путь от личинки стажера до middle разработчика. Считаю Git одним из самых полезных инструментов разработчика. Многие не используют его возможности на полную, возможно, мне удастся это немного исправить.

Узнать больше о Git hooks

Создание собственного корпуса для сервера. Думаете, просто?

Reading time4 min
Views26K

Привет, %username%. Меня зовут Семён Климов, я менеджер проектов технического департамента в Selectel. Сегодня я расскажу, как мы разрабатывали корпусы серверов из линейки Chipcore (выделенные серверы по доступной цене). В далеком 2016 году перед нами встала нетривиальная задача: необходимо уйти от стеллажей с объемными системными блоками и привести железо к более компактному виду, который бы позволял размещать бо́льшее количество серверов на единицу площади.
Читать дальше →

«Ижора»: клеточный автомат-компьютер

Reading time9 min
Views9.7K

Хотелось бы поделиться с читателями Хабра довольно необычной разработкой: настоящим компьютером, сделанном в виде клеточного автомата, действующего по простому правилу Fireworld2 с четырьмя состояниями клеток. Текущая базовая версия компьютера называется "Ижора 1". Еще с 1950-х годов существует такая традиция: давать компьютерам географические названия.

Паттерн, состоящий из более 6 миллионов клеток, содержит 256 килобайт памяти и снабжен монохромным экраном 128x64 пикселей, отражающим состояние экранного раздела ОЗУ, примерно как в ZX Spectrum и других популярных исторических моделях персональных компьютеров. Программы можно писать на ассемблере, компилировать в машинный код, тестировать на эмуляторе и вводить специальной утилитой в сам клеточный автомат. Другая утилита позволяет сохранять текущее состояние компьютера. Для запуска компьютера необходима программа Golly - лучшая на сегодня площадка для подобного рода исследований.

Ассемблер и эмулятор написаны на языке Common Lisp, скрипты для ввода программ в сам клеточный автомат и сохранения его состояния - в Python. Компьютер имеет 32-битную архитектуру и на данный момент в нем все один регистр и одна операция: вычитание с условным переходом в случае отрицательного или нулевого результата (Subleq). Несмотря на примитивность такой модели, давно доказана ее универсальность. Существует даже операционная система Dawn OS, написанная для эмулятора Subleq-процессора.

Итак, суммируем: виртуальный компьютер с экзотической моделью программирования и ресурсами уровня древних ПК 1980-х, исполняющий всего около 10 операций в секунду, требующий современный компьютер с несколькими гигабайтами памяти (рекомендуемый минимум - 8 гигабайт), с эмулятором и ассемблером на Лиспе. Зачем и кому это нужно? Очень краткий ответ: ради хака и ретрокомпьютинга. Ниже - более подробно.

Читать далее:

Истории самодельного робота. Ч.1

Reading time8 min
Views5.3K

image


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


Что будет например если ваша поделка весом под 60 кг сломает, например, кому то ногу.Или собьется GPS-трек и робот спровоцирует ДТП на оживленном пешеходном переходе-перекрестке? Или подарит цветы не той, "незапрограммированной" девушке, ошибется цветом кожи клиента или доставит до адресата пиво теплым а шаурму холодной? Задавшись в один прекрасный момент идеей создания робота своей мечты можно получить ответы на некоторые эти вопросы, заодно, в очередной раз, попробовать перевернуть мир.Собственно под катом описан процесс создания некого универсального робота.Конкретно шасси.

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

ZFS таинственным образом поедает мой CPU

Reading time5 min
Views18K


Отдел микросервисов Netflix обратился ко мне за помощью с загадочной проблемой. Они заявили, что у них на сервере файловая система ZFS потребляет 30% CPU. Я рассказывал об этом на конференции Kernel Recipes 2017 — да, это старая история… но её стоит рассказать ещё раз.

Постановка задачи


Этот микросервис предназначен для сбора метрик. Недавно ребята обновились на новый образ ОС (BaseAMI) — и после этого заявили, что ZFS начала потреблять более 30% ресурса CPU. Первым делом я подумал, что они ошиблись: я лично разрабатывал системные компоненты ZFS в компании Sun Microsystems — и файловая система ну никак не могла настолько загружать процессор.
Читать дальше →

KODI: собираем удобный и функциональный медиацентр для дома. Часть 10. IVI и Netflix

Reading time2 min
Views35K

Продолжаем тему интеграции в медиацентр Kodi всевозможных онлайн-сервисов. Добавим в наш всеядный медиа-комбайн самые популярные онлайн-кинотеатры - ivi и Netflix.

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

Расширять нельзя рефакторить

Reading time5 min
Views1.8K

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

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

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

Читать далее

Какой USB Type-C накопитель и флешку купить в 2021 году?

Reading time9 min
Views20K
Привет, Хабр! Недавно в заголовках новостей вновь прозвучали обвинения в адрес компании Apple, связанные с появлением результатов голосования членов Европарламента. Большинство поддержало инициативу разработки закона, обязывающего всех производителей придерживаться USB Type-C. А это отличный повод взять и собрать в одном посте самые распространенные варианты USB Type-C накопителей. Не только флешки, но и другие увеличители памяти девайсов, оснащенных USB Type-C. Смартфонов, в первую очередь, куда без них.


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

Обзор методов улучшения речи и шумоподавления: от классики к SotA

Reading time10 min
Views15K

Всем привет! Меня зовут Оля Яковенко, я разработчик в MTS AI, занимаюсь задачами по автоматической обработке сигналов. В частности, на данный момент я исследую различные подходы шумоподавления для последующего распознавания речи, и сегодня я хотела бы поделиться с вами обзором и некоторыми находками на эту тему.

Читать далее

Одноплатники, появившиеся в продаже относительно недавно, на которые стоит обратить внимание

Reading time3 min
Views28K

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

Tun2Socks: прокси-сервер в качестве шлюза, или VPN через прокси

Reading time9 min
Views75K

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

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

Читать далее

Всё как у больших. Автозагрузка приложений в оконных менеджерах linux

Reading time9 min
Views22K
Вывод systemd-analyze dot --user ‘i3.service’ | dot -Tpng | imv -


Вывод systemd-analyze dot --user ‘i3.service’ | dot -Tpng | imv -

Как-то раз, листая сообщения в профильном systemd чате, в телеграм, я наткнулся на следующий кусок man systemd.special


xdg-desktop-autostart.target
   The XDG specification defines a way to autostart applications using XDG desktop files.
systemd ships systemd-xdg-autostart-generator(8) for the XDG desktop files in autostart
directories. Desktop Environments can opt-in to use this service by adding a Wants=dependency
on xdg-desktop-autostart.target.

О как интересно, подумалось мне. Можно реализовать функционал полноценныхDesktop Environments, по автоматическому запуску приложений, при старте. А у меня как раз i3wm, который таковым не является и которому такой функционал не помешал бы. Надо это дело исследовать. Тогда я ещё не знал во что ввязался. Как оказалось, не всё так просто.


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

Bitwise — обучающий проект по созданию программного и аппаратного стека компьютера с нуля

Reading time2 min
Views6.9K

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

В 2017 году, Per Vognsen - программист с более чем 15-летним стажем, работавший в таких компаниях как NVIDIA и Oculus берет паузу и в марте 2018 стартует амбициозный обучающий проект Bitwise, в котором он собирается разработать и написать весь программно-аппаратный стек для простого компьютера с нуля и запустить его на FPGA. 

Проект должен был включать в себя операционную систему, компилятор, системные библиотеки, а также HDL код для центрального процессора и периферийных контроллеров. Пререквизиты к нему минимальны - свободное владение языком Cи (и немного Python), а также знание некоторых алгоритмов и структур данных из стандартных CS курсов. Все остальное объясняется по ходу написания кода.

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

Читать далее

Книги с оригинальным подходом к теме первого контакта

Reading time5 min
Views16K

Глядя на бескрайнюю россыпь звезд в ночном небе, почти любой человек хоть раз задавался вопросом: интересно, мы одни во вселенной? Тема контакта с внеземным разумом давно стала классической для научной фантастики. Многих авторов интересует именно момент первой встречи, тревожная новизна и неизвестность. Чем именно они будут отличаться от нас? Сможем ли мы вообще понять друг друга?

За долгие годы на эту тему было сказано, снято и написано, мягко говоря, немало. Иногда кажется, что тема «первого контакта» и вовсе исчерпала себя. Но раз за разом находятся авторы, которые находят свежий подход и удивляют своими идеями. Вот несколько тому примеров — от классики до современных книг. 

Читать далее

Framework Laptop: почти полностью модульный ноутбук с собственной экосистемой модулей

Reading time3 min
Views29K

В самом начале этого года появилась информация о скором поступлении в продажу модульного ноутбука с названием Framework Laptop. Разработчики обещали, что апгрейдить девайс можно будет почти целиком, добавляя или заменяя различные модули. Они же заявили о начале продаж летом 2021 года.

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

NAT (Network Address Translation) для новичков

Reading time6 min
Views273K

Приветствую всех читателей статьи!

Данная статья будет полезна как новичкам в IT сфере, так и неопытным системным администраторам/ сетевым инженерам. Здесь затрагиваются понятия и принцип работы технологии NAT, ее значение в наше время, виды и создание с конфигурированием в программе-симуляторе Cisco Packet Tracer.

Читать далее

Поиск и обработка информации на файловых ресурсах

Reading time10 min
Views5.4K

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

Для обработки параметров командной строки в Python есть удобный модуль click (установка pip install click). Обработка аргументов командной строки происходит при помощи добавления к функции декораторов. Определим обязательные параметры: search_path — путь по которому будем искать, либо файл с путями и дополнительные: режим исполнения программы (многопоточный или без), имя файла с результатами, формат записи результата (excel, csv, sqlite) и другие параметры по вашему желанию.

Читать далее

Intel Loihi 2. Нейроморфный процессор, следующее поколение

Reading time4 min
Views13K


Спустя несколько десятилетий продвижения вглубь тайн вычислений мы вынуждены констатировать: компьютерные системы по-прежнему не могут соревноваться с биологическими нейронными цепями по эффективности мыслительного процесса. Но нам хочется думать, что когда-нибудь кремниевый мозг сравняется по своим возможностям с настоящим, и мы работаем в этом направлении. В авангарде прорыва — нейроморфные чипы, как, например, представленный совсем недавно Intel Loihi 2. В активе у новинки — ряд значительно улучшенных основных характеристик (скажем, количество нейронов на чип выросло почти в 10 раз по сравнению с Loihi 1), а также новый фреймворк Lava для удобства использования.
Читать дальше →

Общение двух процессоров 1967BH028 по LVDS с использованием DMA и прерываний

Reading time7 min
Views3.6K

В этой заметке рассмотрим процесс обмена данными между двумя процессорами 1967BH028 через интерфейс LVDS с использованием каналов DMA. А также вкратце ознакомимся с особенностями организации системы вызова прерываний в этом процессоре и задействуем прерывание по завершению работы канала DMA.

кнопка чтобы нажЫмац

Развитие инструментария С++ программистов: статические анализаторы кода

Reading time13 min
Views13K

Развитие инструментария С++ программистов: статические анализаторы кода
Размер современных приложений и сложность языка C++ превышают возможности людей по всестороннему анализу текста программ на обзорах кода. Компенсационная методология – статический анализ кода.

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

Information

Rating
Does not participate
Location
Харьков, Харьковская обл., Украина
Date of birth
Registered
Activity