Как стать автором
Обновить
38
0.1
Илья Родионов @ris58h

Продуктовый разработчик (Java/JavaScript)

Отправить сообщение

Wi-Fi без Интернета на рейсе Southwest

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров14K

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

Читать далее

Добавляем поддержку пользовательского языка в IntelliJ с помощью ANTLR

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров2.4K

В этой статье я не буду описывать как создать плагин для IntelliJ с поддержкой %lang_name% с нуля. Кроме официальной документации и туториала от JetBrains в сети есть множество статей и примеров. На Хабре тоже есть пара весьма подробных статей от @pyltsinm. Фокус будет на разработке плагина с использованием ANTLR и моём опыте в этом нелёгком деле.

Примером в этой статье будет WebCalm - плагин для IntelliJ с поддержкой JavaScript и CSS, который я сделал с помощью ANTLR.

Читать далее

Пишем на Python как на Rust

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров32K

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

Читать далее

11 MacOS приложений для продуктивной работы с трекпадом

Время на прочтение3 мин
Количество просмотров15K

MacOS имеет большой набор возможностей по управлению с помощью трекпада, но следующие 11 приложений сделают вашу работу с ним ещё продуктивнее.

Читать далее

Компилируем C++ приложение для запуска в браузере

Время на прочтение4 мин
Количество просмотров1.9K

У фреймворка Android есть небольшой инструмент под названием validatekeymaps.
Это утилита для проверки синтаксиса конфигурационных файлов устройств
ввода (*.kl, *.kcm, *.idc или virtualkeys.*). В документации
предлагается собрать её самостоятельно: скачать исходники Android,
установить необходимую систему сборки и т.д. И это в почти 2023. Неужели
нельзя сделать это в вэбе, чтоб без заморочек и удобно для
пользователя? Спойлер: можно. Этим и займёмся.

Читать далее

Добавляем список глав прямо в плеер YouTube

Время на прочтение1 мин
Количество просмотров2.2K

У YouTube уже давно есть такая фишка как главы (chapters) для быстрой навигации по частям видео. Огромный недостаток текущей реализации - просмотр списка глав осуществляется в стороннем блоке за пределами плеера, т.к. в театральном и полноэкранном режимах до него непросто добраться. Намного удобнее, кажется, отображать оглавление прямо в плеере. Поправим это с помощью расширения (Chrome, Firefox).

Читать далее

Переназначение клавиш в macOS без стороннего софта и консоль как в Quake

Время на прочтение4 мин
Количество просмотров15K

Зачастую, в ответ на вопрос "Как переназначить клавиши на macOS?" советуют использовать сторонний софт, например, Karabiner-Elements, но простое переназначение клавиш возможно и нативными средствами.

Читать далее

Touch-Tab — эмулируем Cmd-Tab с помощью тачпада в macOS

Время на прочтение2 мин
Количество просмотров3K

В последних версиях Windows можно переключаться между окнами с помощью свайпа тремя пальцами, а между рабочими столами - четыремя. Зато в macOS всё по-другому: переключение свайпом (тремя пальцами по-умолчанию) доступно только между рабочими столами или полноэкранными приложениями. А ведь так не хочется тянуться до клавиатуры или ползти курсором в Dock, чтобы переключить приложение! Тут на помощь приходит Touch-Tab.

Читать далее

ExKeyMo — кастомизируем раскладку внешней клавиатуры на Android без root

Время на прочтение3 мин
Количество просмотров3.1K

В статье Кастомизируем раскладку внешней клавиатуры на Android без root мы выяснили, что Android-приложение может предоставлять дополнительные раскладки клавиатуры, и научились собирать такое приложение. Но простому (и даже не простому) пользователю лень собирать приложение. Хочется, чтобы это происходило автоматически, и в этом нам поможет ExKeyMo.

Читать далее

Считаем 183 дня и не только

Время на прочтение1 мин
Количество просмотров2.9K

Всем привет. Если у вас, как и у меня, возникла потребность подсчитать количество дней в году проведённых зарубежом (а может и любые другие памятные дни года), то рад представить вашему вниманию Annual Day Counter.

Читать далее

Tree-sitter: обзор инкрементального парсера

Время на прочтение5 мин
Количество просмотров12K

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

Читать далее

Не мучайте свой мизинец

Время на прочтение2 мин
Количество просмотров13K

Мизинец - слабый палец руки, но в Win/Linux системах он задействован в большом количестве сочетаний клавиш, что заставляет выгибать кисть при нажатии или переносить руку с home row. Посмотрим как можно решить эту проблему.

Читать далее

Баги в Hello World

Время на прочтение3 мин
Количество просмотров10K

Hello World, должно быть, самая часто создаваемая компьютерная программа. Уже десятилетия это первая программа, которую пишут люди, когда начинают изучение нового языка программирования.

Конечно же эта простая программа не должна иметь баги. Верно?

Читать далее

Youtube Timestamps — расширение для показа временных меток из комментариев

Время на прочтение1 мин
Количество просмотров5.6K

У YouTube есть возможность оставлять в комментариях временные метки для видео. Просто пишем в комментарии время в формате hh:mm:ss и YouTube сам превратит это в ссылку. Небезызвестный музыкальный сервис Soundcloud позволяет показывать комментарии к трэкам прямо на таймлайне. Так почему бы не сделать такое же в YouTube?!

Читать далее

Laconic POM для Maven: скрываем многословность pom.xml

Время на прочтение1 мин
Количество просмотров2.1K

Зачастую, одна из претензий к Maven - выбор многословного XML для описания проекта. Polyglot for Maven должен был решить эту проблему, но проект не "взлетел". Для буквального сокрытия этой проблемы существует IDEA-плагин Laconic POM.

Читать далее

Bar Breaker: убираем плашки закрывающие обзор на сайтах

Время на прочтение1 мин
Количество просмотров5K

Если вы пользуетесь устройством с небольшой диагональю дисплея, то наверное замечали, что на некоторых сайтах "липкие" плашки отъедают значительную часть экрана. Прибавим к этому меню браузера и операционной системы, зачастую узкий экран (16х9) и, в итоге, остаётся не так много вертикального пространства. Расширение Bar Breaker решает эту проблему (доступно для Chrome и Firefox).

Читать далее

Кастомизируем раскладку внешней клавиатуры на Android без root

Время на прочтение5 мин
Количество просмотров21K

Мне нравится раскладка клавиатур на Mac: Cmd(Ctrl) под большим пальцем и возможность, без шаманства, прямо в настройках изменить поведение CapsLock. Такого же результата легко добиться в Linux с помощью setxkbmap в консоли или, например, gnome-tweak-tool в UI. Но что делать, если клавиатура подключается к Android?


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

Cross-Origin Read Blocking (CORB) в расширениях для Chrome

Время на прочтение2 мин
Количество просмотров14K
image

Если вы когда-то разработали расширение для Chrome, то может оказаться, что оно перестало работать.

Причина в том, что начиная аж с прошлого года, в браузере Chrome блокируются Cross-Origin запросы из content-скриптов. Это означает, что если ваше расширение обращается к некоторому строннему API напрямую из content-скрипта, такой запрос будет заблокирован благодаря Cross-Origin Read Blocking (CORB)
Читать дальше →

Информация

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