Search
Write a publication
Pull to refresh
83
0
Бузинов Роман @Romer

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

Send message

Взять и собрать DAW — помогут эти инструменты

Reading time3 min
Views3.8K

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

Читать далее

Дизайн, темы, блеклист – что внутри новой версии geekr

Reading time8 min
Views40K


И снова привет — год назад я написал на Хабр о своём клиенте для этой площадки, который я разрабатывал в качестве проекта для оттачивания навыков программирования. Теперь мой Хабр посетило больше 30 тысяч человек, а я за прошедший год полностью обновил дизайн, прикрутил авторизацию, увеличил скорость приложения и оптимизировал клиент для разных viewport'ов.


Попробовать кастомный клиент можно по этой ссылке — geekr.vercel.app, а если интересно, как я такую вещь сделал и что планируется сделать в будущем, то прошу под кат.

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

Разбор алгоритмов генерации псевдослучайных чисел

Reading time10 min
Views47K

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

Читать далее

Вторая микросхема :)

Reading time5 min
Views24K
В 2018 году у себя гараже я изготовил первую интегральную схему, это был двойной дифференциальный усилитель Z1. Тогда я заканчивал школу, а сейчас уже выпускаюсь из колледжа. Очевидно, пришло время улучшить производственный процесс.



Z1 с шестью транзисторами представлял эксперимент для отработки всех процессов и проверки оборудования. В теперешнем Z2 уже 100 транзисторов c поликремниевым затвором 10 мкм — та же технология, что и в первом процессоре Intel. Здесь просто массив 10×10 транзисторов для тестирования, определения характеристик и настройки процесса, но это огромный шаг к более продвинутым самодельным чипам. В Intel 4004 было 2200 транзисторов, а я разместил 1200 на такой же пластине.
Читать дальше →

Schneider Electric Exchange – маркетплейс, форум и уголок разработчика

Reading time3 min
Views2.1K

В наш цифровой век качественное программное обеспечение – залог стабильного, устойчивого, безопасного и эффективного ведения бизнеса. Современный отель, агропромышленный комплекс, нефтеперерабатывающий завод, винодельня, рудник –хорошее ПО востребовано буквально в каждом бизнес-сегменте. Но найти подходящий софт среди изобилия предложений на рынке не так просто. Чтобы помочь компаниям выбрать наиболее удачное решение с учетом специфики их бизнесов, мы в Schneider Electric запустила платформу Exchange – маркетплейс, который помимо своей основной, обладает рядом дополнительных полезных функций.

Читать далее

Интеграция сервиса «Проверки по списку недействительных российских паспортов» или как сжать csv-файл в 38 раз

Reading time5 min
Views11K

Имеется ежедневно обновляемый архив со списком недействительных российских паспортов в формате csv. Размер архива list_of_expired_passports.csv.bz2 — 506 MB, размер распакованного csv-файла — 1,6 GB.

Требуется реализовать вспомогательный REST-сервис, для использования внутри компании, со следующими возможностями:

1. Проверка наличия паспорта (Серия + Номер) в списке недействительных паспортов.
2. Возможность обновления данных без прерывания работы сервиса.

Читать далее

10 игр для программистов, которые позволят улучшить свои навыки

Reading time5 min
Views104K

Планируете изучать Java, C++ или Python, но не знаете, с чего начать? А как насчёт игр для программистов?

Да, именно так.

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

Давайте же узнаем о том, как геймификация помогает нам лучше учиться и какие игры помогут стать программистом!
Читать дальше →

В шоке от цен на авиабилеты по России: как летать дешевле

Reading time10 min
Views40K

Вы продаете билетов на самолеты? - Нет, только показываю. - Красивое…

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

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

Читать далее

Установка Golang в WSL (WSL 2) с помощью Visual Studio Code

Reading time2 min
Views14K

Здравствуйте! В статье представленна инструкция по установке языка программирования Golang в подсистему Linux на Windows 10 (11). Если у вас уже установлен WSL2 и Visual Studio Code, то смело переходи на 3 часть этой статьи, для всех других же...

Читать далее

Продолжаем ковырять Тинькофф API. Рассчитываем эффективность инвестиций

Reading time12 min
Views23K

Продолжение публикации: "Что недоговаривают Тинькофф Инвестиции. Вытаскиваем все данные по портфелю через API в большую таблицу Excel".

В этот раз поговорим о совершённых доработках, всплывших подводных камнях, исправленных ошибках, участии сообщества, подсчитаем XIRR и попробуем сравнить доходность портфеля за 3 года с другими видами инвестиций.

Пост длинный, но много картинок

Что недоговаривают Тинькофф Инвестиции. Вытаскиваем все данные по портфелю через API в большую таблицу Excel

Reading time11 min
Views246K

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

Собираем все данные по портфелю и по всем операциям через Tinkoff API.

Строим огромную Excel таблицу со всеми данными.

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

Пытаемся понять, что нам с этим делать.

Read more

Разработка стековой виртуальной машины и компилятора под неё (итог)

Reading time16 min
Views11K

Для завершения реализации компилятора потребовалось около месяца времени (вечерами), чтобы на практике познакомиться с такими темами как BNF (Backus Naur Form), Abstract Syntax Tree (AST), Symbol Table, способами генерации кода, разработки самого компилятора (front-end, back-end), а также модификации виртуальной машины CVM. Ранее с этими темами был не знаком, но благодаря комментаторам погрузился. Хоть затрагиваемых тем много, постараюсь рассказать очень лаконично. Но обо всём по порядку.

Читать далее

Использование российских облачных сервисов очередей на C#

Reading time14 min
Views6.1K

Данная статья будет полезна тем, кто хочет начать работать с очередями сообщений или хочет перевести работающий проект с зарубежных облачных сервисов, либо с сервисов обслуживаемых собственными силами. В данной статье не будут затронуты вопросы: "Что такое очереди сообщений?", "Для чего нужны очереди сообщений?" и прочие вопросы, ответов на которые очень много на хабре и других ресурсах причем на различных языках. Зато в этой статье вы найдете демо-проекты позволяющие быстро попробовать минимальный функционал, информацию о работе с облачными российскими сервисами очередей с помощью популярных библиотек, ну и описание проблем, которые у меня возникли.

Читать далее

Как писать на C# аккуратно: память и производительность

Reading time11 min
Views27K

К старту курса о разработке на C# делимся переводом статьи о типичных ошибках программирования на C# от Кристофа Насарре — технического рецензента книг Microsoft Press в целом и, конечно, книги CLR via C# в частности. Кроме того, Кристоф Насарре — один из авторов книги Windows via C++.

Читать далее

Объектно-ориентированное программирование на Си без плюсов. Часть 2. Таймер

Reading time12 min
Views9.9K

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

    Для Linux в Си в настоящее время есть следующие функции:

unsigned int sleep(unsigned int __seconds); ,

объявленная в файле <unistd.h> и

int nanosleep(const struct timespec *req, struct timespec *rem); ,

объявленная в файле <time.h>

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

    Есть ещё функция clock_nanosleep(), можно включить режимы SHED_FIFO или SCHED_RR для более точной работы, всё это конечно хорошо, но я решил ограничиться только выше указанными.

    Таймер должен соответствовать следующим требования: должен минимально потреблять вычислительные ресурсы, должен мгновенно включаться/выключаться, при этом сбрасывать своё состояние и обязательно быть достаточно точным.

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

Читать далее

Домашняя Звезда Смерти — это возможно

Reading time12 min
Views33K
И снова здравствуйте. Честно говоря, я планировал писать эту статью в самую последнюю очередь, планируя сначала рассказать о более «приземленных» вещах, тянул время. Но вот наступил критический момент, когда тянуть уже дальше некуда.

Бывало, задавали вопросы, а можно ли построить самостоятельно Звезду Смерти в домашних условиях, обладая знаниями лазерной техники. При всей абсурдности и глупости этого вопроса ответ на самом деле – «можно». По крайней мере, действующий макет в уменьшенном масштабе. Который даже стрелять лазерным излучением будет.

image

Easy canvas — простая js библиотека, которая невероятно упрощает работу с canvas html

Reading time3 min
Views10K

Ссылка на GitHub

Очень простая библиотека javascript, которая сильно упрощает работу с canvas html.

Очень простая библиотека javascript, которая сильно упрощает работу с canvas html.

Читать

Как я сделал Discord бота для игровой гильдии с помощью .NET Core

Reading time14 min
Views18K

Всем привет! Недавно я написал Discord бота для World of Warcraft гильдии. Он регулярно забирает данные об игроках с серверов игры и пишет сообщения в Discord о том что к гильдии присоединился новый игрок или о том что гильдию покинул старый игрок. Между собой мы прозвали этого бота Батрак.

В этой статье я решил поделиться опытом и рассказать как сделать такой проект. По сути мы будем реализовывать микросервис на .NET Core: напишем логику, проведем интеграцию с api сторонних сервисов, покроем тестами, упакуем в Docker и разместим в Heroku. Кроме этого я покажу как реализовать continuous integration с помощью Github Actions.

От вас не потребуется никаких знаний об игре. Я написал материал так чтобы можно было абстрагироваться от игры и сделал заглушку для данных об игроках. Но если у вас есть учетная запись в Battle.net, то вы сможете получать реальные данные.

Читать далее

Разработка стековой виртуальной машины и компилятора под неё (часть II)

Reading time5 min
Views8.1K

В первой части Разработка стековой виртуальной машины и компилятора под неё (часть I) сделал свою элементарную стековую виртуальную машину, которая умеет работать со стеком, делать арифметику с целыми числами со знаком, условные переходы и вызовы функций с возвратом. Но так как целью было создать не только виртуальную машину, но и компилятор C подобного языка, пришло время сделать первые шаги в сторону компиляции. Опыта никакого. Буду действовать по разумению.

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

Читать далее

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity