Как стать автором
Обновить
17
Карма
0
Рейтинг

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

  • Подписчики 2
  • Подписки
  • Публикации
  • Комментарии

Конспектируем Книгу Rust:: Времена и структуры

Rust
Tutorial

Продолжаем работать с 10.3.


КМБ.- Двойная жизнь.- Восстание мертвецов.- Ошибка в документации.- Ужасающие подробности из The Rustonomicon.- Архитектурные озарения.- Развязка.


Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Просмотры1.4K
Комментарии 2

std::move vs. std::forward

C++
Из песочницы

Несмотря на то, что материалов на тему move-семантики и идеальной передачи в Интернете предостаточно, вопросов типа «что я должен здесь использовать: move или forward?» не становится меньше или мне просто «везет» на них. Поэтому и решено было написать эту статью. Предполагается, что читатель хотя бы немного знаком с rvalue-ссылками, move-семантикой и идеальной передачей.

Читать далее
Всего голосов 18: ↑17 и ↓1+16
Просмотры4.8K
Комментарии 36

Современные Unix программы

Блог компании RUVDS.comСистемное администрирование*nix
Перевод
Наше внимание привлёк один интересный репозиторий, который называется Modern Unix. В нём собраны, в основном, современные альтернативы классическим Unix-командам. Всего там имеется почти три десятка описаний таких команд. Надеемся, вы найдёте среди них что-то такое, что вам пригодится.


Читать дальше →
Всего голосов 68: ↑62 и ↓6+56
Просмотры17K
Комментарии 46

С++ на практике

Блог компании JUG Ru GroupC++Конференции


Все мы знаем, что С++ — мощный язык, у которого много сторонников. Но чем могут быть недовольны даже сторонники? Где сталкиваешься с неудобствами и чем они вызваны? Почему в примитивном приложении могут вылезти неожиданные сложности и чего не хватает в стандартной библиотеке? А главное, что можно сделать для улучшения ситуации?


Антон Полухин (antoshkka), состоящий в комитете по стандартизации C++ и работающий в «Яндекс.Такси», рассказал обо всём этом в докладе «C++ на практике». Сам доклад появился ещё в 2019-м, и с выходом C++20 что-то изменилось, но главные тезисы и вывод остались актуальны. Поэтому теперь, готовя новую конференцию C++ Russia 2021, мы решили сделать для Хабра пост на основе этого доклада. Под катом — и текст, и видеозапись. Далее повествование идёт от лица Антона.

Читать дальше →
Всего голосов 58: ↑53 и ↓5+48
Просмотры14K
Комментарии 154

Путешествие Embox на Baikal

Блог компании EmboxOpen sourceСистемное программированиеПроцессоры


Всем привет.

Многие знают, что мы в проекте Embox любим портироваться на отечественные платформы. Статьи об этом можно посмотреть у нас в блоге. Например, Embox уже успешно восходил на Эльбрус. Теперь очередь за еще одним известным географическим названием и по совместимости процессором — Байкалом. У компании Байкал Электроникс есть два процессора (Baikal-M и Baikail-T1), поскольку Embox ориентирован на встроенные системы, начать мы решили с MIPS32 и запустились на Baikal-T1
Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Просмотры1.6K
Комментарии 0

Книга «Экстремальный Cи. Параллелизм, ООП и продвинутые возможности»

Блог компании Издательский дом «Питер»Высокая производительностьCООППрофессиональная литература
image Привет, Хаброжители! Для того чтобы овладеть языком C, знания одного лишь синтаксиса недостаточно. Специалист в области разработки должен обладать четким, научным пониманием принципов и методик. Книга «Экстремальный Cи» научит вас пользоваться продвинутыми низкоуровневыми возможностями языка для создания эффективных систем, чтобы вы смогли стать экспертом в программировании на Cи.

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

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

Камран Амини научит вас думать, сомневаться и экспериментировать. Эта книга просто необходима для всех, кто хочет поднять знания Cи на новый уровень.
Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Просмотры4.6K
Комментарии 13

Бесплатный персональный OpenVPN-сервер на базе Oracle Cloud

Сетевые технологии
Tutorial

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

Oracle, придя на рынок облачных сервисов, активно привлекает новых клиентов. И одним из инструментов такого привлечения являются Always Free сервисы - зарегистрировавшийся клиент может пользоваться каким-то достаточно ограниченным набором ресурсов, как это следует из названия, бесплатно и неограниченно во времени. В список этих ресурсов входит два compute инстанса (каждый 2 ядра, 1GB RAM, 45GB HDD), которые можно использовать подо что угодно, но в нашем случае мы можем построить на них полностью бесплатный OpenVPN-сервер, буквально не умея практически ничего, кроме тыкания в кнопку Next. Чем мы и займемся.

Читать далее
Всего голосов 38: ↑36 и ↓2+34
Просмотры28K
Комментарии 105

Предлоги в английском: with или by. Как выбрать нужный и не облажаться

Изучение языков


У Роуэна Аткинсона есть популярная юмористическая сценка про великолепного Иисуса. Девушка по имени Мария легла в ящик и была распилена надвое главным героем. Пила – это инструмент, значит, нужен предлог with, а Иисус – действующее лицо, ставим предлог by. Ещё можно добавить, что with используется в активном залоге, а by – в пассивном.

Всё так просто? Чёрта с два! На самом деле всё гораздо сложнее. Оба предлога можно использовать с одушевлёнными и неодушевлёнными существительными в активном и пассивном залоге.

Более того в русском языке нет фиксированных значений у этих предлогов. By и with можно перевести следующими способами: в, с, на, по, за, из-за, наречием, деепричастием, творительным падежом или вообще никак не переводить.

Всё это только затрудняет их понимание. Поэтому давайте рассмотрим 37 правил употребления этих предлогов.
Читать дальше →
Всего голосов 4: ↑2 и ↓20
Просмотры4.3K
Комментарии 13

Использование coroutines из С++20 в связке с NRF52832 и GTest

C++Программирование микроконтроллеров
Из песочницы

Появилась идея в домашнем проекте попробовать использовать сопрограммы из С++20 на маленькой железке. В качестве модуля для экспериментов был выбран E73 NRF52832. Из инструментария, который использовался в процессе разработки- arm-gcc-gnu-none-eabi 10.2, MSVC для проверки идей и прогона тестов на Windows-платформе. Изначально было в планах продемонстрировать на чем-то концепцию и как именно их можно было применять. Была идея адаптирования примера в виде мигания светодиодом, но он был слишком простой. Необходимо было придумать что-то более сложное и более полезное, что ли. Таким образом появилась идея переписать драйвер дисплея и пары фрагментов SPI-FLASH в проекте-долгострое.

Читать далее
Всего голосов 22: ↑19 и ↓3+16
Просмотры4.4K
Комментарии 11

Кто копает под мой MikroTik?

Блог компании RUVDS.comИнформационная безопасностьСерверное администрирование

В статье обобщены результаты работы honeypot на базе Cloud Hosted Router от MikroTik, поднятого на ресурсах отечественного провайдера RUVDS.com и намеренно открытого для посещения всему интернету. Устройство подвергалось многократному взлому со стороны известной с 2018 года малвари Glupteba. Полученные данные свидетельствуют о прекращении ее активного функционирования, однако отдельные зомби хосты продолжают существовать на бесконечных просторах цифровой сети и вмешиваться в работу слабо защищенных устройств на базе операционной системы RouterOS.
Читать дальше →
Всего голосов 60: ↑60 и ↓0+60
Просмотры19K
Комментарии 42

Как устроена система шасси и тормозов пассажирского самолета

Блог компании ЦИТМ ЭкспонентаАнализ и проектирование системНаучно-популярноеТранспортИнженерные системы

Всем привет. В продолжение темы описания авиационных систем "для чайников" (тут и тут), я подготовил новый текст про шасси и колёсные тормоза самолётов.



Читать дальше →
Всего голосов 33: ↑33 и ↓0+33
Просмотры11K
Комментарии 43

Необычный дуалбут: ноутбук с «двойным дном»

Блог компании RUVDS.comИнформационная безопасностьРеверс-инжинирингКомпьютерное железоUEFI
Tutorial

Не так давно на Habr Q&A я наткнулся на интересный вопрос — как сделать, чтобы два жестких диска не видели друг друга? Чтобы вирус, попав на одну систему, никоим образом не мог заразить другую. В ответах предлагали достаточно стандартные способы — использовать полнодисковое шифрование, отключить диск в диспетчере устройств и даже поставить переключатель на питание. Но что если взглянуть на задачу совершенно с другого угла и сделать всё средствами самого HDD? Да-да, сегодня мы снова погружаемся в пучины модификации прошивок и реверс-инжиниринга!
Узнать подробности
Всего голосов 361: ↑357 и ↓4+353
Просмотры50K
Комментарии 119

Zynq 7000. Собираем Linux для платы QMtech

FPGAПроцессорыDIY или Сделай самЭлектроника для начинающих

В этой статье я решил сделать небольшое отступление от общей линии повествования и зарулю на дорогу Linux. За то непродолжительное время, что я работаю с Zynq 7000, в тематических чатах я видел много вопросов насчет того, как запустить Linux на отладке. Я в общем-то, недолго думая, сел проштудировал документацию, примеры и завёл его своими руками под ту плату, что у меня есть в распоряжении. После этого я решил обобщить свои знания по этому вопросу и описать процедуру сборки, подготовки загрузочного образа Linux, который включает в себя U-boot, Device Tree Source, RootFS, и само ядро Linux. В дополнение к этому, я решил немного усложнить задачу и выяснил, как можно поморгать светодиодом подключенным к PL-части устройства из пространства пользователя Linux.

Обо всём этом я написал в этой статье. Всем интересующимся - добро пожаловать под кат.

Читать далее
Всего голосов 18: ↑18 и ↓0+18
Просмотры4.2K
Комментарии 14

Как увеличить ресурсы в десять раз

AssemblerКомпиляторыРеверс-инжинирингЧитальный зал

Прошу прощения за заголовок, похожий на желтые СМИ, и странный эпиграф, который я объясню ниже. Речь пойдет не о том, как увеличить скорость процессора или емкость диска на порядок, а всего лишь о разновидности данных, которые могут быть включены в исполняемый модуль формата EXE. Эти данные, на мой взгляд, не совсем удачно названы (или же зря буквально переведены) как «ресурсы».

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

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

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Просмотры4.2K
Комментарии 7

Fast Hough Transform: от Эльбруса до КОМДИВа

Блог компании Smart EnginesАлгоритмыОбработка изображенийПроцессоры

На протяжении пяти лет мы в Smart Engines рассказываем вам о том, как оптимизируем свой софт под процессорную архитектуру Эльбрус. Обычно мы делимся с вами феерическими результатами, когда на Эльбрусах нам удается распознавать почти так же быстро, как на топовых иностранных процессорах. Сегодняшняя статья посвящена описанию оптимизированных «внутренностей» одного крайне важного для всех систем компьютерного зрения алгоритма – быстрого преобразования Хафа. Кроме того, расскажем еще об одном крайне интересном семействе отечественных архитектур – микропроцессорах КОМДИВ.

Читать далее
Всего голосов 20: ↑20 и ↓0+20
Просмотры3.6K
Комментарии 1

Zynq 7000. Порты GPIO, PS, PL

FPGAПроцессорыDIY или Сделай самЭлектроника для начинающих

Продолжаю описывать свою “беготню по граблям” по мере освоения SoC Xilinx Zynq XC7Z020 с использованием отладочной платы QMTech Bajie Board. В этой статье хотелось бы рассказать, как я решил задачу по настройке тактирования из PS, получению и работе с входными сигналами с кнопок, реализацию примитивного фильтра антидребезга и логического элемента "И" в PL.

Читать далее
Всего голосов 21: ↑21 и ↓0+21
Просмотры3.1K
Комментарии 24

Производительность компилятора при работе с концептами в C++20

Блог компании Orion InnovationВысокая производительностьПрограммированиеC++

Привет, меня зовут Александр, я старший разработчик ПО в Центре разработки Orion Innovation. Хочу признаться, я люблю рассказывать про C++ и не только на различных митапах и конференциях. И вот я добрался до Хабра.

На CppConf Russia Piter 2020 я рассказывал про концепты и после выступления получил очень много вопросов про производительность компилятора при работе с ними. Замеры производительности не были целью моего доклада: мне было известно, что концепты компилируются с примерно такой же скоростью, что и обычные метапрограммы, а до детального сравнения я смог добраться совершенно недавно. Спешу поделиться результатом! 

Читать далее
Всего голосов 17: ↑17 и ↓0+17
Просмотры7.3K
Комментарии 14

Mein Konfig: экскурсия по dotfiles

*nixЛайфхаки для гиков
Приветствую! Я люблю рассматривать чужие dotfiles и рассказы об устройстве рабочего места и окружения. Во-первых, любопытно как работают другие люди. Во-вторых, нередко находишь какой-нибудь полезный трюк или идею. А повышение продуктивности разработчика ПО часто идёт за счёт, казалось бы, мелочей (много кто помнит, что Ctrl-T посылает SIGINFO сигнал, показывающий прогресс копирования cp или dd?). Вот и решил рассказать про своё рабочее окружение, в том числе dotfiles. Перечислю список секций этой статьи, чтобы было примерное представление о чём пойдёт речь: Ввод, ОС, ФС, X11, MRA и MDA, Сеть, Jail, Демоны, MTA, MUA, WWW, PGP, IRC, st, tmux, cd, git, zsh, zsh completion, zsh history, ZLE, zsh prompt, zsh misc, less, grep, .zshenv, autoenv, .zprofile, t, Музыка, mpv, Картинки, Архивы, Feeds, Hjson, *tex*, File transfer, Games, БД, ЯП, Python, Go, C, redo, TAI64, Vim, tags, .vimrc, ~/.vim/pack, ~/.vim/plugin, ~/.vim/ftplugin. Безусловно будут спорные holywar высказывания, так что везде иметь в виду и добавлять фразу «по моему личному мнению».


Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Просмотры5.5K
Комментарии 14

Мобильные подписки и «Билайн», который от них отказался, но на самом деле нет

Сотовая связь

Привет, Хабр!

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

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

Кстати, это уже не первая попытка оператора сыграть в честность, в 2014 году они уже шумно и дерзко отказывались от мобильных подписок. Хабр все помнит: 

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

Компания покаянно отказалась от «от существенной части прибыли в пользу честных отношений с абонентом» и пообещала клиентам Fair Play (в переводе с английского «честная игра»).

Увы...

Почти сразу — в том же 2014 году — компания снизила требования к оформлению рекламных баннеров, активирующих платные подписки от контент-провайдеров по технологии wap-клик: стало необязательно прямо на рекламной кнопке писать слово «подписаться» и указывать стоимость подписки. Эти элементы разрешили убирать чуть в стороны, но все равно оставлять заметными.

Обязательные СМС-уведомления о подключении платных услуг и вовсе стали фирменным стилем подписочного бизнеса «Билайна», но совсем не так, как планировалось. У львиной доли возмущенных абонентов история со скрытой подпиской начиналась именно с неожиданного СМС-сообщения о ее подключении, которое зачастую приходило в ночное время. Утром изумленный абонент обнаруживал себя обладателем платной услуги, начинал гневаться, разбираться и слать негатив в адрес компании и ее новаторского подхода к бизнесу.

Читать далее
Всего голосов 34: ↑33 и ↓1+32
Просмотры15K
Комментарии 39

Rust — сохраняем безразмерные типы в статической памяти

Системное программированиеRust

Не так давно в качестве хобби решил погрузиться в изучение embedded разработки на Rust и через какое-то время мне захотелось сделать себе логгер, который бы просто писал логи через UART, но который бы при этом не знал какая конкретно реализация используется. И вот тут я быстро осознал, именно в этом конкретном случае я не могу полагаться на статический полиморфизм и мономорфизацию, ведь компилятор не знает сколько нужно памяти выделять под конкретную реализацию. Фактически это означает, что нам нужно как-то уметь сохранять типы, размер которых неизвестен на этапе компиляции, и такой способностью обладает тип Box и для решения этой проблемы как раз и возникла идея написать свой аналог типа Box, но который сохраняет обьект не в куче, а в предоставленном пользователем буфере.

Читать дальше
Всего голосов 26: ↑26 и ↓0+26
Просмотры4K
Комментарии 14

Информация

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