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

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

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

Написал приложение для создания параллельных книг, которое вас удивит

Разработка веб-сайтовПрограммированиеGitHubИзучение языковNatural Language Processing

title


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


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


Установка


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


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


docker pull lingtrain/aligner:habr
docker run -p 80:80 lingtrain/aligner:habr

Контейнер скачается с репозитория Docker Hub и запустится на 80-м порту. Откроем приложение в вашем любимом браузере по адресу localhost.


Lingtrain app 1


Сделаем три шага: загрузка, выравнивание, генерация.

Смотреть демо
Всего голосов 76: ↑75 и ↓1+74
Просмотры17K
Комментарии 44

Embedded Linux в двух словах. Второе

Настройка LinuxOpen sourceC++CDIY или Сделай сам
Tutorial

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

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

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

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

Embedded Linux в двух словах. Первое

Настройка LinuxOpen sourceCDIY или Сделай сам
Tutorial

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

Платформой послужит плата BeagleBone Black с процессором производства Техасских Инструментов AM3358 и ядром Arm Cortex-A8, и, чтобы не плодить мигающие светодиодами мануалы, основной задачей устройства будет отправка смайлов в топовый чат, широко известного в узких кругах, сайта,  в соответствии с командами от смайл-пульта. Впрочем, без мигания светодиодами тоже не обошлось.

Читать далее
Всего голосов 47: ↑45 и ↓2+43
Просмотры14K
Комментарии 15

С++ обертка для «всех» Операционных Систем Реального Времени для CortexM4

ПрограммированиеC++Программирование микроконтроллеров
image

Я уже рассказывал о том как можно использовать FreeRtos для проектов, написанных на С++ в статье STM32, C++ и FreeRTOS. Разработка с нуля. Часть 1. С тех пор прошло целых 3 года, я серьезно постарел, потерял кучу нейронных связей, поэтому решил встряхнуть стариной для того, чтобы эти связи восстановить и замахнуться на обертку для «любой» популярной ОСРВ. Это конечно шутка, я намеренно взял «всех» в кавычки, но в каждой шутке есть доля правды.
Читать дальше →
Всего голосов 35: ↑34 и ↓1+33
Просмотры16K
Комментарии 35

Отладочный вывод на микроконтроллерах: как Concepts и Ranges отправили мой printf на покой

C++Программирование микроконтроллеров
Tutorial

Здравствуйте! Меня зовут Александр и я работаю программистом микроконтроллеров.

Начиная на работе новый проект, я привычно набрасывал в project tree исходники всяческих полезных утилит. И на хедере app_debug.h несколько подзавис.

Дело в том, что в декабре прошлого года у GNU Arm Embedded Toolchain вышел релиз 10-2020-q4-major, включающий все GCC 10.2 features, а значит и поддержку Concepts, Ranges, Coroutines вкупе с другими, менее "громкими" новинками С++20.

Воодушевленное новым стандартом воображение рисовало мой будущий С++ код ультрасовременным и лаконично-поэтичным. И старый добрый printf("Debug message\n") в это благостное видение не очень-то вписывался.

Хотелось бескомпромиссной плюсовой функциональности и стандартных удобств!

Например, таких:
Всего голосов 26: ↑23 и ↓3+20
Просмотры4.9K
Комментарии 15

Разработка защищённого WEB интерфейса для микроконтроллеров

Программирование микроконтроллеровПроизводство и разработка электроникиИнтернет вещейDIY или Сделай сам
Tutorial

Цель - разработка компактного, простого, быстрого, защищённого и адаптивного WEB интерфейса для встраиваемого устройства на микроконтроллере. Микроконтроллер класса STM32[F/H] или подобный, с размером Flash 1-2... Мегабайта и RAM 200-500... Кбайт, частота ядра 100-500... МГц.

Читать далее
Всего голосов 8: ↑6 и ↓2+4
Просмотры5.9K
Комментарии 18

Проект электронного мультитула QUARK

Open sourceРазработка под ArduinoПроизводство и разработка электроники
Recovery mode

Еще в 2018 я наткнулся на довольно известный в своих кругах проект Пультоскоп. Если кратко, то это крайне примитивный осциллограф, построенный на arduino 328 серии. Учитывая его простоту, я его повторил за несколько часов на макетке и тут меня понесло...

Читать далее
Всего голосов 89: ↑85 и ↓4+81
Просмотры14K
Комментарии 78

Отладка многопоточных программ на базе FreeRTOS

EclipseC++ОтладкаПрограммирование микроконтроллеров
Tutorial

image

Отладка многозадачных программ дело не простое, особенно если ты сталкиваешься с этим впервые. После того, как прошла радость от запуска первой задачи или первой демо программы, от бесконечно волнительного наблюдения за светодиодами, каждый из которых моргает в своей собственной задаче, наступает время, когда ты осознаешь, что довольно мало понимаешь (вообще не врубаешься) о том, что на самом деле происходит. Классика жанра: «Я выделил целых 3КБ операционной системе и запустил всего 3 задачи со стеком по 128Б, а на четвертую уже почему-то не хватает памяти» или «А сколько вообще стека я должен выделить задаче? Столько достаточно? А столько?». Многие решают данные задачи путем проб и ошибок, поэтому в этой статье я решила объединить большинство моментов, которые, в настоящее время, значительно упрощают мне жизнь и позволяют более осознанно отлаживать многопоточные программы на базе FreeRTOS.

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

В данной статье я расскажу о следующих моментах:


  1. Настройка OpenOCD для работы с FreeRTOS.
  2. Не забываем включать хуки.
  3. Статическое или динамическое выделение памяти?
  4. Сказ, о параметре configMINIMAL_STACK_SIZE.
  5. Мониторинг использования ресурсов.
Читать дальше →
Всего голосов 26: ↑26 и ↓0+26
Просмотры24K
Комментарии 17

Альтернативное собеседование на позицию разработчика ПО

C++Системное программированиеCКарьера в IT-индустрии

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

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

Предлагалось сделать следующее:

Читать далее
Всего голосов 12: ↑11 и ↓1+10
Просмотры7.9K
Комментарии 16

Валидация UTF-8 меньше чем за одну инструкцию на байт

Блог компании RUVDS.comПрограммированиеЛайфхаки для гиков


Даниэль Лемир – профессор Заочного квебекского университета (TÉLUQ), придумавший способ очень быстро парсить double – совместно с инженером Джоном Кайзером из Microsoft опубликовали ещё одну свою находку: валидатор UTF-8, обгоняющий библиотеку UTF-8 CPP (2006) в 48..77 раз, ДКА от Бьёрна Хёрманна (2009) – в 20..45 раз, и алгоритм Google Fuchsia (2020) – в 13..35 раз. Новость об этой публикации на хабре уже постили, но без технических подробностей; так что восполняем этот недочёт.
Читать дальше →
Всего голосов 122: ↑122 и ↓0+122
Просмотры20K
Комментарии 14

STM32F4 USB RNDIS драйвер (управление устройством через Web-интерфейс)

Разработка веб-сайтовCПрограммирование микроконтроллеров
Доброе время суток, дорогие друзья!

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

Ранее в статье была анонсирована разработка RNDIS USB драйвера для контроллеров серии STM32F4. С тех пор библиотека постепенно развивалась и нынче доросла до первой release-версии. Библиотека под названием LRNDIS (LWIP + RNDIS) позволяет нам создавать на базе контроллера STM32F4 как устройства класса USB «модем», так и любые другие устройства с управлением через web-интерфейс. Пример управления платой stm32f4-discovery из web-браузера на Android-планшете представлен на видео:



На странице видеоролика представлена ссылка на исходные коды и HEX-файл прошивки для платы discovery, с которым вы сможете повторить данный эксперимент. В статье рассказано о том, как и когда технология доступа через WEB-интерфейс полезна, а также — как работает библиотека LRNDIS для контроллеров STM32F4. Также присутствует обучающий материал о работе USB и устройстве Ethernet-сетей.
Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Просмотры46K
Комментарии 19

USB на регистрах: STM32L1 / STM32F1

Программирование микроконтроллеровСхемотехника


Еще более низкий уровень (avr-vusb)
USB на регистрах: bulk endpoint на примере Mass Storage
USB на регистрах: interrupt endpoint на примере HID
USB на регистрах: isochronous endpoint на примере Audio device

С программным USB на примере AVR мы уже познакомились, пришла пора взяться за более тяжелые камни — STM32. Подопытными у нас будут классический STM32F103C8T6 а также представитель малопотребляющей серии STM32L151RCT6. Как и раньше, пользоваться покупными отладочными платами и HAL'ом не будем, отдав предпочтение велосипеду.
Читать дальше →
Всего голосов 35: ↑33 и ↓2+31
Просмотры6.6K
Комментарии 10

Zettelkasten и Obsidian — лучшие друзья вашей памяти и креативности

Учебный процесс в ITСофт
Tutorial

Как новичку начать вести заметки по методу «Цеттелькастен» в «Обсидиане» и какой в этом смысл.

Читать далее
Всего голосов 13: ↑12 и ↓1+11
Просмотры19K
Комментарии 36

Подключаем дисплей SPI LCD  ILI9341 к одноплатному компьютеру Banana Pi BPI-M64 или любому другому на ОС Armbian

*nixРазработка под LinuxИнтернет вещейDIY или Сделай сам
Tutorial
LCD SPI ILI9341 Banana Pi BPI-M64

Пост содержит инструкцию как подключить TFT-LCD дисплей на популярном контроллере ILI9341 к одноплатному компьютеру на ОС Armbian с помощью дерева устройств (Device Tree overlays) без танцев с бубном. В сети Интернет много материала как подключать различные LCD экраны к Raspberry Pi. Но что если у вас нет Raspberry Pi, а хочется подключить недорогой LCD экран на SPI интерфейсе? Все что вам необходимо, это любая плата с поддержкой ОС Armbian. В каталог поддерживаемых плат ОС Armbian входят платы: Asus, Pine64, Hardkernel, Orange Pi, Banana Pi, и т.д. На данный момент в каталоге более 114 моделей плат, объявлена поддержка различного оборудования из коробки. Доступны для подключения: 4G/LTE модемы, USB Wi-Fi, USB Bluetooth, USB Ethernet, сканеры DVB-тюнеры и т.д. К всем этим платам можно легко подключить  SPI LCD дисплей ILI9341, как это реализовать прошу под кат.
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Просмотры5.8K
Комментарии 1

Одноэтажный дом — какой бы строил для себя (может и вам пригодится)

ДизайнУмный домDIY или Сделай самЗдоровьеИнженерные системы
Recovery mode

Приветствую.

Так как в комментариях к предыдщей статье "Строю правильный дом «под ключ» с микроклиматом без/с автоматизацией по цене квартиры — 1. Введение" возникло живое обсуждение одноэтажных домов, то решил написать статью о том, какой одноэтажный дом делал бы для себя (может и вам пригодится).

Дом-КУБОИД - 1х1,618 - 14400х9000х4200 - 1этаж

ТЭП (выборочные):
- габариты = 14400 х 9000 х 4200 (возможно 4400 будет оптимальней с учетом парапета);
- площадь застройки = 130м2 (+ пристройка 58м2; + отмостка 74м2);
- площадь полезная вутренняя = 98м2 или 103м2;
- высота потолков в чистоте = 3600мм;

Принцип такой же как и в доме КУБ-8400х8400х8400 - ничего лишнего - максимальная простота и удобство во всем (начиная строительством дома и заканчивая его эксплуатацией) - минимализм во всех смыслах.

Оба дома являются универсальными заготовками:

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

Оба дома максимально равнозначны.
Таким образом остаются в основном субъективные нюансы - кому что больше нравится.

Стоимость вышла ~ на 20% выше, энергоэффективность на 10-20% ниже, чем у дома серии КУБ - с другой стороны площадь крыши и террасы увеличились.

В следующей статье сравню эти 2 варианта дома.

З.Ы. :

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

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

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

Полноценная GDB отладка через USB на плате BluePill (STM32F103С8T)

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

В данной статье речь пойдет о программировании и полноценной отладке микроконтроллера STM32F103C8T6 через USB.

Однажды, от коллег поступило предложение о участии в IoT проекте. Система предусматривала однопоточный запуск скриптов. Отладка производилась с помощью логов. И тут мне в голову пришла мысль о полноценной удаленной отладке проектов под микроконтроллеры.

Продолжение следует ...
Всего голосов 32: ↑31 и ↓1+30
Просмотры6.2K
Комментарии 21

Как сделать волоконно-оптическую светодиодную лампу

Блог компании SkillFactoryDIY или Сделай самЛайфхаки для гиковЭлектроника для начинающих
Перевод
Tutorial

Ранее я уже делал подобные проекты, но в этот раз я хотел сделать что-то попроще, то, что будет легким в изготовлении, и то, что смогли бы сделать многие из вас. "Механические" части лампы печатаются на 3D-принтере, электронная часть довольно проста, а пластиковое оптическое волокно притягивает взгляд. Сейчас я расскажу, как легко и просто изготовить такую светодиодную лампу.

Приятного чтения!
Всего голосов 62: ↑61 и ↓1+60
Просмотры39K
Комментарии 19

PKCS#11 для самых маленьких

Блог компании «Актив»Информационная безопасностьC
Tutorial

В этой статье мы познакомимся со стандартом PKCS#11, предназначенным для работы с различными криптографическими устройствами. Для демонстрации мы будем использовать токены и смарт-карты Рутокен ЭЦП 2.0.

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

Информация

В рейтинге
3,617-й
Зарегистрирован
Активность