Pull to refresh
2
0.2
Обидин Михаил @mrsantak

User

Send message

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

Reading time6 min
Views23K

title


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


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


Установка


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


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


docker pull lingtrain/aligner:v4
docker run -v C:\app\data:/app/data -v C:\app\img:/app/static/img -p 80:80 lingtrain/aligner:v4

C:\app\data и C:\app\img — это папки на вашем компьютере.


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


Lingtrain app 1


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

Смотреть демо
Total votes 60: ↑59 and ↓1+74
Comments45

htop и многое другое на пальцах

Reading time26 min
Views288K


На протяжении долгого времени я не до конца понимал htop. Я думал, что средняя загрузка [load average] в 1.0 означает, что процессор загружен на 50%, но это не совсем так. Да и потом, почему именно 1.0?

Затем я решил во всём разобраться и написать об этом. Говорят, что лучший способ научиться новому — попытаться это объяснить.
Читать дальше →
Total votes 138: ↑130 and ↓8+122
Comments43

Тест на подсознательные потребности: чего хочется больше?

Reading time2 min
Views16K

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

Читать далее
Total votes 38: ↑27 and ↓11+21
Comments60

Написание ОС с нуля: Глава 2, Часть 3 — Терминал

Reading time4 min
Views5.9K

В предыдущей статье мы написали простейший загрузчик, печатающий на экран "Hello, World!" и завершающийся по нажанию клавиши. Сегодня напишем терминал, у которого будет несколько комманд, обновим библиотеку и сделаем ещё пару вещей.

Читать
Total votes 16: ↑16 and ↓0+16
Comments11

Электронный пантограф Тима

Reading time13 min
Views8.9K

Это вторая часть серии, посвящённой сборке инструментов на основе датчика Холла. Если первую часть вы не читали, то лучше будет начать с неё: Электронный циркуль Тима. В этом проекте я буду использовать уже не один, а два датчика 49E, каждый с парой магнитов, по тому же принципу, что и при сборке циркуля.
Читать дальше →
Total votes 45: ↑45 and ↓0+45
Comments13

Российская айтишница похвасталась в Твиттере оптимизацией налогов – и ее пообещал наказать лично экс-президент Эстонии

Reading time9 min
Views103K

Многие релоцирующиеся айтишники сейчас стараются подобрать такой вариант, чтобы платить со своего дохода не эти ваши европейские налоги >50%, а что-нибудь более «приемлемое». Разбираемся, что в этом стремлении может пойти не так (спойлер: всегда советуйтесь с налоговыми юристами и поменьше пишите про себя всякое в Твиттере).

Читать далее
Total votes 252: ↑237 and ↓15+285
Comments871

Управление громкостью звука жестами на Python

Reading time3 min
Views10K

В данной статье хочу рассказать про один проект из курса по OpenCV Python. Посмотреть полный код можно на Github.

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

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

Drag-and-Drop на Python+OpenCV

Reading time5 min
Views7.4K

В данной статье расскажу про простой Drag-and-Drop на Python+OpenCV.

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

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

Что tech-рекрутеры говорят анонимно:* найм продактов (Часть 2)

Reading time10 min
Views4.9K

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

Читай во второй части:

1. Как кандидаты движутся по воронке найма?

2. В чем специфика подбора на b2b и b2c позиции. Что нужно знать и уметь кандидату?

3. Что не так с b2e продактами?

Читать далее
Total votes 7: ↑4 and ↓3+3
Comments25

Что tech-рекрутеры говорят анонимно (Часть 1)

Reading time8 min
Views5.3K

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

Моим собеседником выступил рекрутер из сферы tech на российском и зарубежном рынках. Мы начали с простого вопроса к рекрутерам, который однако вызывает достаточно раздражения и непонимания у кандидатов, а именно «почему рекрутеры так часто пропадают»? Затем углубились в контекст, чтобы понять, что там, «за ширмой» не так все просто.

Интервью получилось объемным и выйдет в трех частях. Следующие две части – в два следующих понедельника. Многие освещенные вопросы касаются не только продактов, а носят универсальный характер для tech, особенно, в первой части.

Что в первой части:

1. Почему рекрутер не отвечает

2. Как выглядит типичная воронка найма

3. Как рекрутеру, применяя школьную арифметику, выбрать оптимальную стратегию работы с кандидатами

4. Как отсутствие обратной связи кандидату влияет на hr-бренд (спойлер: никак)

Узнать подробности
Total votes 12: ↑8 and ↓4+7
Comments37

Возможен ли быстрый Garbage collector на С++?

Reading time20 min
Views10K

Не буду долго рассусоливать о том, что такое сборщик мусора и для чего он нужен (на эту тему уже есть достаточно статей). Но хочу отметить несколько важных деталей.

Читать далее
Total votes 15: ↑12 and ↓3+14
Comments74

Штраф в 150% от стоимости проданной квартиры: ужасы валютных нарушений, и как их избежать

Reading time11 min
Views66K

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

Читать далее
Total votes 155: ↑148 and ↓7+185
Comments173

Обзор утилиты Lens. Управление кластером Kubernetes из графической оболочки

Reading time4 min
Views19K

Управление кластером Kubernetes чаще всего осуществляется при помощи командной строки и утилиты kubectl. Однако, кроме этого распространенного способа, есть и другие. Например, с помощью программы Lens.

Lens — программное обеспечение, которое позволяет полноценно управлять кластером Kubernetes через графический интерфейс пользователя — GUI (graphical user interface).

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

Double, Float — не вещественные числа

Reading time3 min
Views24K

Во многих источниках тип double и float, числа с плавающей запятой/точкой зачем-то называют вещественными. Такое чувство что кто-то когда-то совершил ошибку или не внимательно написал эту глупость и все как один начали её повторять, совершенно не задумываясь о чём они говорят.

Ладно это были бы просто троечники студенты и любители, так эту ошибку говорят и те, кто обучают специалистов. И эта проблема терминологии не одного ЯП, их правда много (Java, C++, C#, Python, JS и т.д.) везде, где бы я не искал, всегда находятся статьи, ответы, лекции, где дробные числа называют вещественными!

Читать далее
Total votes 71: ↑20 and ↓51-27
Comments81

Как работают snap, flatpak, appimage

Reading time13 min
Views69K

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

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

Читать далее
Total votes 52: ↑50 and ↓2+67
Comments60

Раздувание кода стало астрономическим

Reading time5 min
Views97K

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

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

… но по сути, речь идёт о том, что нужно зарегистрировать несколько файлов, считать их, загрузить, а затем закрыть соединение и записать в файл лога, всё ли прошло успешно, а если нет, то что именно случилось. В этом нет ничего сложного, и даже я писал с нуля подобный код при помощи Wininet API и PHP на сервере, общающемся с моей базой данных MySQL. Наверно, моя система была не такой надёжной, как системы уровня энтерпрайза, однако поддерживала сотни тысяч загруженных файлов, их верификацию, скачивание и логирование. Наверно, это работа для одного кодера на две-три недели?

Специальный инструмент загрузки на сервер, которым я пользуюсь сегодня, суммарно имеет 230 МБ клиентских файлов и задействует 2,7 тысяч файлов для управления этим процессом.
Читать дальше →
Total votes 338: ↑324 and ↓14+385
Comments864

Docker Swarm для самых маленьких

Reading time13 min
Views131K

Данная статья посвящена настройке и работе с Docker Swarm.

Swarm это стандартный оркестратор для docker контейнеров, доступный из «коробки», если у вас установлен сам docker.

Что нам потребуется для освоения:

Читать далее
Total votes 6: ↑4 and ↓2+2
Comments26

Docker Swarm VS Kubernetes — как бизнес выбирает оркестраторы

Reading time7 min
Views22K

Kubernetes (K8s) по праву считается отраслевым стандартом управления контейнерами, но это вовсе не значит, что решение подходит каждому типу бизнеса. Порог входа в K8s высок, а преимущества не всегда очевидны. Гораздо эффективнее может быть использование альтернативных оркестраторов. OpenShift, Nomad или Apache Mesos при помощи дополнительных утилит умеют многое из того, что предлагает K8s. Эти решения на порядок проще в освоении и настройке, пусть и не обладают таким активным сообществом. Тогда почему их нельзя использовать везде?
Читать дальше →
Total votes 30: ↑29 and ↓1+33
Comments33

ОС с нуля: Глава 1, Часть 2 — 32 лучше 16-ти

Reading time3 min
Views8.6K

Хай Хабр! Это серия статей по написанию моей ОС с нуля. Я лютый фанат ретропрограммирования, поэтому я мгновенно забуду про существование EDК. Просьба не писать комменты по типу "BIOS давно устарела где UEFI?". Пишу это просто чтобы было, что почитать вечером и порелаксить. Спасибо.

Читать
Total votes 13: ↑11 and ↓2+10
Comments11

Чем кончилась история с нашим обращением в ФАС против Яндекса

Reading time4 min
Views34K
Сегодня «Дело о колдунщиках» закрыто в ФАС.

Напомню, краткая предыстория была про то, что группа ИТ-компаний Рунета объединилась и обратилась в ФАС с вопросом, нормально ли, что поиск даёт больше преимуществ собственным юрлицам Яндекса. Мы хотели вернуть нейтральность поиска, чего, собственно, и удалось достичь в результате мирового соглашения.

Формальный результат — вот, политика интеграции с поиском, где партнёры Яндекса (то есть внешние компании) и Сервисы Яндекса имеют паритет. Ещё один интересный документ здесь.

Пара выдержек:
…обеспечение равного доступа всех Партнеров как в части объема предоставленной информации, так и в части визуального и функционального представления в поисковой выдаче, вне зависимости от того, являются ли они третьими лицами или Сервисами Яндекса, ко всем действующим и будущим форматам обогащения поисковой выдачи…
…осуществление ранжирования различных форм Партнерской интеграции на странице поисковой выдачи Поисковой системы на основании единых алгоритмов…
…недопустимость манипулирования результатами поисковой выдачи для преимущественного продвижения Сервисов Яндекса. При формировании результатов поиска собственные сервисы Яндекса отражаются на тех же условиях, в том же визуальном оформлении и по тем же правилам, что и сервисы третьих лиц;

Время покажет, как это будет работать на практике, но ниже я расскажу чуть больше деталей.
Читать дальше →
Total votes 66: ↑60 and ↓6+77
Comments85

Information

Rating
2,490-th
Location
München, Bayern, Германия
Date of birth
Registered
Activity

Specialization

Backend Developer
Java