Обновить
62
Смирнов Владимир@mapron

Программист C++

14
Подписчики
Отправить сообщение

Интероперабельность между С++ и Rust

Уровень сложностиСложный
Время на прочтение13 мин
Охват и читатели12K
image

image

Этот пост основан на презентации, с которой автор выступил на конференции EuroRust 2022 в Берлине. Доступны слайды и видеозапись.

Автор, работающий в компании Slint, участвует в создании UI-инструментария, написанного на Rust. Этот UI-инструментарий может использоваться и с другими языками и экосистемами, кроме той, для которой был написан, поэтому в Slint предусмотрены API для C++ и даже для Javascript. Естественно, эти API должны восприниматься как совершенно нативные для разработчиков, имеющих дело с этими языками. Именно поэтому ребром стоит вопрос о том, как создать нативно воспринимаемые API к коду Rust для пользователей, привыкших работать с C++.

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

В этом посте хотелось бы исследовать оба направления интеграции между Rust и C++ и представить некоторые инструменты, используемые в Slint.
Читать дальше →

Настраиваем окружение Qt6+QtC без VPN

Время на прочтение3 мин
Охват и читатели83K

Как известно, с недавних пор сервера qt.io запрещают загрузку любых архивов с российских IP. Если первое время проверка шла только на получение метаинформации, теперь любая загрузка файла обрывается сервером.

Обычные советы, как это обойти, включают:

• Используй платный безлимитный VPN;
• Используй дистрибутив Linux и его бинарные сборки;
• Собирай сам из исходинков.

Все это рабочие советы, но не очень дружелюбны к начинающим разработчикам, которые только hello world начинают собирать. Я расскажу, как можно быстро настроить окружение используя зеркала Yandex и github.

Читать далее

Как я несколько лет боролся с прокрастинацией и победил: полное практическое руководство

Время на прочтение8 мин
Охват и читатели395K

Постоянно откладываешь дела на потом и не видишь в этом проблемы? Мне это знакомо. Расскажу как не повторить моих ошибок и почему пора это прекращать. Не откладывай эту статью на потом!

Начать читать

Дефицит есть, а денег не дают. Почему?

Время на прочтение27 мин
Охват и читатели311K

Мы уже выяснили, что у нас есть дефицит рабочих рук во всех отраслях. На примере СССР увидели, что дефицит легко закрывается деньгами и плюшками, что сейчас и происходит в IT. Однако при дефиците рабочих рук в остальных отраслях зарплаты остаются на уровне Румынии и никак не подтягиваются. Почему?

Читать далее

Почему быть вегетарианцем на самом деле невозможно

Время на прочтение4 мин
Охват и читатели82K
В случае, если вы забыли раздел эко-ниш из школьного курса биологии, вот краткое изложение.

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

Очевидно, что животные едят растения. Но вот что не очевидно, так это то, что растения едят животных. Они растут благодаря им (загуглите «fish emulsion»). В моей новой книге «Критика моральной защиты вегетарианства» я называю это транзитивностью.

Попробуйте переварить это


image

Я сделаю паузу, чтобы утихли коллективные вопли биологов и вегетарианцев.
Читать дальше →

Linux, Microsoft и марксизм

Время на прочтение7 мин
Охват и читатели43K

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


Майкрософт и Linux.
fake


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


Первоначальная диспозиция


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

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

Используем Yii2. Пишем очередную CMS или попытка значительно ускорить разработку при минимальных накладных расходах

Время на прочтение17 мин
Охват и читатели12K
Практически у каждого разработчика, долгое время работающего с определенным фреймворком возникает набор собственных инструментов, позволяющий ускорить разработку сайта. Однако, зачастую, они слабо структурированы, не имеют документации и дорабатываются в «процессе» производства.

Идея проекта yicms заключалась в том, чтобы собрать все наработки для фреймворка Yii2, которые казались удобными в некую систему, во главе угла которой должно ставиться удобство использования, гибкость и возможность с помощью ее инструментов значительно ускорить разработку типовых сайтов. Данный проект разрабатывался мной для «души», однако в настоящий момент он уже находится в стадии беты.
Читать дальше →

Подборка: 4 полезных сервиса для потенциальных иммигрантов в США, Европу и другие страны

Время на прочтение3 мин
Охват и читатели28K


Тема переезда в Европу, США или другие приятные регионы мира довольно часто поднимается на Хабре. Я решил собрать в одном месте список онлайн-сервисов, которые будут полезны тем, кто всерьез задумался об иммиграции. На удивление, «живых» и активных стартапов в этой сфере не так и много. Для статьи я отобрал четыре проекта.
Читать дальше →

WiX.Py: cобираем MSI пакет «в три строчки»

Время на прочтение3 мин
Охват и читатели14K

Нет времени и желания изучать километровые файлы WiX, чтобы собрать MSI инсталлер для своего проекта, погружаясь при этом в бездны MSDN? Хотите собирать инсталлер, описывая его простыми и понятными терминами, в несколько строк? Есть клиническая склонность к кроссплатформенности и сборкам под Linux & Docker? Ну тогда вам под кат!

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

Лучшие головоломки, про которые не знает никто*

Время на прочтение5 мин
Охват и читатели97K
*почти

Бодрый день, дамы и господа. Я наконец решил, что негоже мне сидеть в рид-онли, когда у меня в голове зреет столько полезных и нужных комментариев, и пора получить инвайт. А значит, надо писать пост. О чём? Конечно же, о том, что я люблю и знаю — об играх. Конкретно — о головоломках.

Огромный недостаток головоломки по сравнения с какими-нибудь ММОРПГ — очень малая реиграбельность. Я всегда думал, что технология стирания памяти в «Вечном сиянии чистого разума» использовалась не по назначению. Вместо того, чтобы изжить из воспоминаний какую-то женщину, не лучше ли забыть своё прохождение любимой игры, а потом пройти её заново? К сожалению, пока что это фантастика. Поэтому всё, что я могу — изнывая от ностальгии, в письменной форме вспоминать все эти прекрасные вещи, вернуться к которым мне, увы, не суждено.

Учитывая «одноразовость» головоломок, тем более странно и в чём-то даже преступно, что о замечательнейших представителях этого жанра узнаёшь практически случайно. Мой пост имеет целью исправление этой несправедливости, и я как раз заканчиваю затянувшееся предисловие и перехожу к сути.

Почему я выкинул все старые DVD / CD или как поменялось моё потребление контента

Время на прочтение3 мин
Охват и читатели24K
На выходных я случайно полез разбирать хлам на полке и обнаружил стопку аккуратно сложенных DVD/CD дисков. Их оказалось более сотни. Среди них были как купленные диски, так и записанные. На них были фильмы, мультфильмы и музыка.



Я их собирал потому, что надеялся, что когда-нибудь буду их пересматривать и слушать. Но прошло более 10 лет, а диски я так ни разу и не достал. Всё это добро отправилось на мусорку.

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

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

Возможно через несколько лет и эти способы потребления контента будут устаревшими… поживём увидим :)
Читать дальше →

Типичные грабли на пути программиста от Junior'а к Senior'у

Время на прочтение6 мин
Охват и читатели98K
Молодой программист, едва закончивший или ещё даже не закончивший ВУЗ, готов свернуть горы, учиться, учиться и ещё раз учиться и ему близлежащее будущее кажется таким:



Но более опытные товарищи знают, что на самом деле на его пути давно уже заботливо разложены грабли и путь от Junior'а к Senior'у выглядит как-то так:



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

Блок-схема для выбора STL-алгоритма

Время на прочтение1 мин
Охват и читатели28K


Третьего дня, во время сортировки старых закладок, попалась мне на глаза блок-схема с алгоритмом выбора STL-контейнера. «Почему же для контейнеров есть, а для стандартных алгоритмов нет? — подумал я. — Это необходимо исправить». Подумано — сделано. Сперва планировалось за пару часов нарисовать нечто простенькое, но в дальнейшем обнаружилось, что алгоритмы никак не хотят умещаться в простенькую схему. Я слегка увлекся, и спустя два вечера схема вобрала в себя 84 алгоритма, а также немного дополнительной информации. Под катом можно увидеть, что получилось в итоге.
Долой велосипеды!

SCADA и мобильники: оценка безопасности приложений, превращающих смартфон в пульт управления заводом

Время на прочтение9 мин
Охват и читатели18K
image

Сегодня мобильные технологии – неотъемлемая часть нашей жизни, и иногда проникают туда, где их не следовало бы использовать. Удобство часто оказывается важнее безопасности. Сейчас можно отслеживать состояние АСУ ТП (автоматизированной системы управления технологическим процессом) или даже управлять ей с новенького смартфона на Android или iOS. Поищите “HMI” (человеко-машинный интерфейс), “SCADA” (система диспетчерского контроля и сбора данных) или “PLC” (программируемый логический контроллер) в магазине Google Play, и вы удивитесь количеству результатов. Более того, многие из этих приложений разработаны серьезными производителями: Siemens, GE, Omron и т. д., и обеспечивают доступ, контроль и управление HMI, PLC, DCS (распределенная система управления) и SCADA-системами в инфраструктуре АСУ ТП. Безопасны ли они? Может ли злоумышленник нанести вред, получив доступ к планшету инженера-технолога? Какие уязвимости существуют в этих приложениях? Какие векторы атак возможны?
Читать дальше →

Управление логгированием в systemd

Время на прочтение12 мин
Охват и читатели135K
Systemd Journal

Демон инициализации systemd де-факто уже стал стандартом в современных Linux-системах. На него перешли многие популярные дистрибутивы: Debian, RHEL/CentOS, Ubuntu (начиная с версии 15.04). В systemd используется принципиально иной (по сравнению с традиционным инструментом syslog) подход к логгированию.
В его основе лежит централизация: специализированный компонент journal cобирает все системные сообщения (сообщения ядра, различных служб и приложений). При этом специально настраивать отправку логов не нужно: приложения могут просто писать в stdout и stderr, a journal сохранит эти сообщения автоматически. Работа в таком режиме возможна и с Upstart, но он сохраняет все логи в отдельный файл, тогда как systemd сохраняет их в бинарной базе, что существенно упрощает  систематизацию и поиск.

Хранение логов в бинарных файлах также позволяет избежать сложностей с использованием парсеров для разных видов логов. При необходимости логи можно без проблем переконвертировать в другие форматы (более подробно об этом будет рассказано ниже).
Journal может работать как совместно с syslog, так и полностью заменить его.
Для просмотра логов используется утилита journalctl. Об особенностях и тонкостях работы с ней мы расскажем в этой статье.
Читать дальше →

Обзор столов для работы сидя-стоя

Время на прочтение6 мин
Охват и читатели153K
За последние 4-5 лет тема столов для работы сидя-стоя из диковинной стала обыденной, один из хабровчан даже опубликовал статью про поиск и выбор такого стола, но в статье, к сожалению, на выбор были предложены только два варианта. Зато его статья послужила поводом самому «побороздить» просторы интернета и сделать более расширенный обзор, какие вообще бывают варианты столов для работы сидя-стоя, чем они отличаются и, по возможности, сколько денег стоят.
Читать дальше →

Дайджест регулирования РУнета на апрель

Время на прочтение3 мин
Охват и читатели20K


Приветствую всех читателей. В начале месяца я опубликовал небольшой комментарий с мини-обзором последних тенденций наших законодателей (и не только) в сфере регулирования Интернета в России. Сегодня я публикую обзор новостей из мира регулирования Интернета в России. Будет интересно!
Читать дальше →

FISCHERTECHNIK: хемотроника, ионисторы, электрохимические суперконденсаторы внутри детского конструктора для программистов

Время на прочтение6 мин
Охват и читатели89K
В детстве я не расставался с конструкторами. У меня их было 2 типа: аналог LEGO (пластмассовый и с пупырышками) и металлический с болтиками. После поста на Хабре, я понял, насколько скудный был в те времена выбор. Пару недель назад мембер хакспейса Костя Костюк подсказал мне, что в Москве есть люди, которые занимаются продвижением и обучением FISCHERTECHNIK.


(на фото: Электромобиль с заправочной станцией и водородный топливный элемент, солнечная батарея)

В Германии вокруг этого конструктора сложилось свое сообщество, они гордятся своим изобретателем и ставят свои рекорды.
Видео

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

Под катом немного про автомобиль на водородном топливном элементе (из конструктора «Экологическая
энергетика»
+ «Топливный элемент»), про изобретателя конструктора и короткий обзор существующих в Москве наборов для конструирования (можно только позавидовать тем гикам, кому сейчас 8+ лет, ибо на новый год их ждут такие подарки).


(Осторожно! Под катом боль за бесцельно прожитые годы)
Читать дальше →

Королева щелчка: рассказ о самой выдающейся клавиатуре в истории

Время на прочтение8 мин
Охват и читатели109K
30 лет ей подражают, копируют, модифицируют — речь идет об IBM Model M, прародительнице дизайна современной клавиатуры.

Клавиатура IBM Model M

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

StableBit DrivePool — дисковый массив с дублированием файлов

Время на прочтение4 мин
Охват и читатели109K
Я постоянно пытаюсь найти какие-то альтернативы RAID'ам в плане объединения нескольких жестких дисков в единый массив. Пробовал много что, но ни на чем так и не остановился окончательно. RAID не нравится тем, что штука достаточно капризная, негибкая и требовательная до дискового пространства.

image

Что мне вообще хочется:
  1. Объединить диски с данными в один массив большого объема, чтобы не приходилось вручную сортировать файлы — что возникает при нескольких дисках (пусть даже при монтировании их в папки).
  2. Иметь возможность добавлять/удалять/заменять диски в любой момент без развала массива.
  3. Независимость информации на дисках друг от друга — чтобы смерть одного из них не приводила к недоступности остальных.
  4. В идеале — какой-то метод хранения одного файла на нескольких дисках. Бэкапы — это хорошо и я их делаю, но лучше, когда к их помощи не приходится прибегать.


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

Информация

В рейтинге
Не участвует
Откуда
Нижний Новгород, Нижегородская обл., Россия
Дата рождения
Зарегистрирован
Активность