Pull to refresh
76
3
Храбров Дмитрий @DeXPeriX

Программист

Send message

Как я делал сеть на 10 гигабит с минимальным бюджетом

Level of difficultyMedium
Reading time11 min
Views54K


Решил я ускорить тривиальную задачу в виде передачи файлов с одного компьютера на маленький домашний NAS. Раньше 10 гигабит были для меня чем-то заоблачным (с учётом цены на свичи, а также сетевые карты). Но благодаря апгрейду дата-центров, а также свежим чипам для свичей от Realtek, апгрейд оказался недорогим и безболезненным.

О выборе железа и тестах — под катом.
Читать дальше →
Total votes 124: ↑129.5 and ↓-5.5+135
Comments130

Библиотека контролов для Avalonia UI

Level of difficultyEasy
Reading time8 min
Views9.3K

Последний год наша команда работала над кроссплатформенной версией САПР Delta Design. В результате этой работы была создана своя библиотека UI контролов для Avalonia, которая поддерживает как ОС Windows, так и ряд систем Linux, включая российские АстраЛинукс, РедОс, а также их модификации под Эльбрус.

Создание единой библиотеки контролов EremexControls.NET позволило компании ЭРЕМЕКС значительно ускорить темпы разработки и показать мультиплатформенную версию САПР Delta Design раньше обещанного срока. Применение готовых типовых блоков дало возможность инженерам фокусироваться на предметной области, не отвлекаясь на другие задачи. Сейчас библиотека контролов используются в трех внутренних проектах компании.

Под катом обзорная статья по новому продукту от компании ЭРЕМЕКС – библиотека компонентов EremexControls.NET для Avalonia UI.

Читать далее
Total votes 46: ↑46 and ↓0+46
Comments31

Графические оболочки FFmpeg

Level of difficultyEasy
Reading time6 min
Views27K


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

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

FFmpeg — изначально консольная утилита. Но её популярность крайне высока. Поэтому появляются всё новые варианты графических оболочек для FFmpeg, чтобы доступ к инструменту получили абсолютно все пользователи.
Читать дальше →
Total votes 107: ↑107 and ↓0+107
Comments76

Кросс-компиляция и сборка пакета под Synology DSM

Reading time6 min
Views12K
На новом месте работы мне поставили задачу запустить продукт на NAS от производителей Synology и QNAP. Продукт написан на C++ с применением C++11, Boost и Qt5. За неимением свободного веб разработчика, интерфейс был написан наWt, который в свою очередь для сборки использует CMake. Под катом будет сборка этого зоопарка и создания простого пакета.
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments0

Как можно использовать .NET из Javascript (React) в 2023 году

Level of difficultyMedium
Reading time5 min
Views6.8K

Статья показывает опыт использования .NET из JavaScript (React) с помощью компиляции .NET кода в WebAssembly с помощью новых возможностей .NET 7. Включает инструкцию по созданию проекта для .NET для использования из Javascript, и интеграции его в веб-приложение, написанного с использованием React. Рассматривается также сборка такого проекта с помощью GitHub Actions (CI) и хостинг его на GitHub Pages. Содержатся ссылки репозитории на GitHub тестового и реального проекта, использующие данный подход.

Читать далее
Total votes 10: ↑10 and ↓0+10
Comments12

RSync на стероидах с поддержкой Windows

Level of difficultyMedium
Reading time5 min
Views28K


На Хабре периодически рассказывают о новых инструментах для синхронизации данных. Это интересная тема. Такие программы используются:

  • для синхронизации файлов на разных устройствах,
  • дедупликации,
  • резервного копирования,
  • сжатия.

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

Кроме того, инструменты синхронизации интересны с алгоритмической точки зрения. Любопытно, как люди умудряются оптимизировать базовые алгоритмы типа rsync, которые вроде бы работают идеально. Но нет, всегда можно придумать что-то получше.
Читать дальше →
Total votes 62: ↑62 and ↓0+62
Comments27

Опыт создания UI библиотеки на C++

Level of difficultyMedium
Reading time21 min
Views12K

Началось все почти два года назад в декабре, практически перед новым годом.

Наш основной проект (видео мессенджер) использовал WTL для Windows и GTKmm для Linux. Поддержки мака не было. Огромной неприятностью было тащить два идентичных клиента, которые, по идее, должны делать все строго одно и тоже. Разумеется, это никогда не получалось. От мысли что надо бы сделать ещё один нативный клиент для мака начинался нервный тик...

На резонный вопрос - почему сразу делалось не на Qt могу лишь ответить, что это связано с, так скажем, гурманскими предпочтениями и, отчасти, с любовью к монолитным exe. Да и не требовалось на старте ничего кроме винды.

В течении шести лет жизни с двумя кодовыми базами одного и того же, неспешно подбирались легковесные UI библиотеки написанные хотя бы в стиле C++11.

Надо сказать, что мы активно используем boost и всей душой, как можем, его любим...

В 2021 году видимо Гугл работал плохо или звёзды так сошлись, но не нашлось ничего стоящего. Все что попадалось - основанные на рендеринге html проекты и обертка над wxWidgets. Сейчас то мы знаем про lvgl, да...

wxWidgets не плох, но хотелось своего рисования, без окошек под кнопки, поля ввода и списки, boost/bsd подобной лицензией, максимально лаконичной, и в идеале работающей от Windows XP / CentOS 6 на стандартном GDI / X11 до Vulcan на современных машинах.

В итоге, все же было принято волевое решение сделать минимальный UI фреймворк для этого проекта, и сразу выпускать его в Open Source под лицензией boost. 

Читать далее
Total votes 34: ↑32 and ↓2+30
Comments50

10 рекомендаций по VS Code для повышения продуктивности

Level of difficultyEasy
Reading time7 min
Views45K
Visual Studio Code остаётся наиболее предпочтительной IDE среди разработчиков. Причём этот редактор всё чаще используют именно начинающие программисты. Источник: survey.stackoverflow.co/2023

А вы знали, что 73% разработчиков по всему миру используют один редактор кода? Так и есть. Результаты проведённого в 2023 году опроса Stack Overflow показали, что VS Code является самой популярной средой разработки.

И мы все знаем почему — он очень крут!

Но в полной ли мере мы задействуем его потенциал? Текущая статья будет посвящена знакомству с некоторыми интересными возможностями VS Code, способными повысить продуктивность работы. К ним, помимо прочих, относятся локальный контроль исходного кода, анимация курсора и быстрое удаление строк. Использование этих возможностей поможет ускорить реализацию проектов разработки.
Читать дальше →
Total votes 103: ↑95 and ↓8+87
Comments83

Локализация игр при помощи ChatGPT — недорого и качественно. Гайд

Level of difficultyEasy
Reading time5 min
Views9K

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

Однако, при помощи ChatGPT мы можем сильно улучшить его качество, сделав перевод действительно похожим на работу человека!

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

Читать далее
Total votes 13: ↑12 and ↓1+11
Comments6

В поисках альтернативы Jira

Level of difficultyEasy
Reading time4 min
Views41K

Наша команда как и многие другие работала с облачными продуктами Atlassian: Jira и Confluence. Осенью прошлого года, Atlassian отправила нам письмо счастья.

Читать далее
Total votes 54: ↑50 and ↓4+46
Comments71

Нейросети для 3D-художника. Могут ли они помочь уже сейчас?

Level of difficultyMedium
Reading time7 min
Views8.9K

Попробуем с помощью нейросетей создать концепт персонажа и окружения, перевести концепт в модель и создать текстуры!

Будем использовать только самые крутые инструменты на базе AI, причем большинство из них бесплатные, а остальные имеют аналоги. В результате выясним, что умеют и чего не умеют нейросети в середине 2023г. с точки зрения работы 3D-художника.

Посмотреть
Total votes 7: ↑6 and ↓1+5
Comments7

Как я создавал эргономичное рабочее место для себя и теперь предлагаю другим. Часть 1

Reading time12 min
Views87K

Привет, Хабр! Меня зовут Денис Захаров. Я занимаюсь разработкой веб приложений на протяжении уже 14 лет, но история будет не об этом. Расскажу о том, как и почему я создавал эргономичное рабочее место, которое в последствии превратилось в проект Easyworkstation. Эта штука уже несколько лет полностью заменяет мне и еще нескольким десяткам пользователей привычное компьютерное кресло и рабочий стол.

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

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

А теперь ретроспектива
Total votes 300: ↑300 and ↓0+300
Comments206

Шесть типов самых продаваемых игр

Reading time11 min
Views18K

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

Читать далее...
Total votes 26: ↑24 and ↓2+22
Comments37

Taichi и 100-кратное ускорение Python-кода

Reading time12 min
Views34K

Python стал самым популярным языком во многих быстроразвивающихся областях, таких, как глубокое обучение и различные направления анализа и обработки данных. Но при этом за удобство работы с Python-кодом, за высокий уровень его читабельности, приходится платить производительностью. Конечно, все мы время от времени жалуемся на скорость работы программ, и Python, безусловно, не стоит винить во всех грехах. Несмотря на это, справедливым будет заявление о том, что природа Python, интерпретируемого языка, не способствует высокой производительности кода, особенно когда речь идёт о «тяжёлых» вычислениях (один из признаков таких вычислений — наличие в программе нескольких вложенных циклов).

Если вы когда-либо попадали в одну из следующих ситуация — тогда эта статья, определённо, написана для вас.

Читать далее
Total votes 53: ↑53 and ↓0+53
Comments5

51 Атрибут Хорошего С-кода (Хартия Си программистов)

Level of difficultyEasy
Reading time11 min
Views25K

Это не академические атрибуты из учебников. Это скорее правила буравчика оформления сорцов из реального prod(а). Некоторые приемы совпали с MISRA, некоторые с CERT-C. А кое-что является результатом множества итераций инспекций программ и перестроек после реальных инцидентов. В общем тут представлен обогащенный концентрат полезных практик программирования на С(ях).

Читать далее
Total votes 62: ↑57 and ↓5+52
Comments164

Как я встраивал JS в свой игровой движок

Reading time14 min
Views7.6K

Писать на С++ игры долго и дорого, но при этом по перфомансу получается хорошо. Но далеко не всё в играх, требовательно к производительности, особенно 2D. Например всякие окошечки не производят тяжелых расчетов внутри. А на больших проектах они могут занимать до 80% всего объема кода. И на С++ есть проблемы на продакшене - если где-то крешится или бажит, приходится перезаливать приложение.

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

Совсем недавно прикрутил JS к своему движку. Кому интересны подробности - добро пожаловать под кат.

Читать далее
Total votes 14: ↑12 and ↓2+10
Comments21

Разработка графического кроссплатформенного приложения на C#. LXUI

Reading time21 min
Views35K

Всем привет! Меня зовут Леонид, я являюсь разработчиком программного обеспечения на языках программирования С++, C# и Java. Имея достаточно неплохой опыт в создании пользовательских элементов управления еще со времен C++ Builder, было решено сделать свой кроссплатформенный GUI с блэкджеком и шарпом. О нем мы и поговорим сегодня :)

Читать далее
Total votes 35: ↑35 and ↓0+35
Comments31

Возрождение простых сайтов. Статика, 0kB JS, ничего лишнего

Reading time8 min
Views41K

Как мы обсуждали в прошлый раз, удручающее ожирение сайтов и софта вернуло моду на простые, маленькие проекты. И сейчас происходит своеобразный ренессанс веба 90-х, вплоть до стиля Geocities (такой был бесплатный хостинг) и веб-страниц в виде PDF. Таковы примеры самореализации. У каждого человека — уникальный сайт, который отличается от остальных и отражает его личность.

Статический сайт можно выполнить в одном файле HTML, а динамический — в одном бинарнике (под катом). Тенденция видна везде. Современные фреймворки даже хвалятся «0кБ JavaScript» по дефолту, а браузеры внедрили технические усовершенствования, которые во многом аннулируют преимущества использования SPA.
Читать дальше →
Total votes 107: ↑101 and ↓6+95
Comments72
1
23 ...

Information

Rating
943-rd
Location
Brno, Jihomoravsky Kraj, Чехия
Date of birth
Registered
Activity