Недавний полет я провел, пытаясь выяснить, что можно сделать, подключившись к Wi-Fi на борту самолета, но без доступа к Интернету.
Продуктовый разработчик (Java/JavaScript)
Добавляем поддержку пользовательского языка в IntelliJ с помощью ANTLR
В этой статье я не буду описывать как создать плагин для IntelliJ с поддержкой %lang_name% с нуля. Кроме официальной документации и туториала от JetBrains в сети есть множество статей и примеров. На Хабре тоже есть пара весьма подробных статей от @pyltsinm. Фокус будет на разработке плагина с использованием ANTLR и моём опыте в этом нелёгком деле.
Примером в этой статье будет WebCalm - плагин для IntelliJ с поддержкой JavaScript и CSS, который я сделал с помощью ANTLR.
Пишем на Python как на Rust
Я начал программировать на Rust несколько лет назад, и это постепенно изменило мой подход к разработке программ на других языках программирования, особенно на Python. До того, как я начал использовать Rust, я обычно писал код на Python очень динамично, без подсказок типов, повсюду передавая и возвращая словари и время от времени возвращаясь к интерфейсам со «строковой типизацией». Однако, испытав на себе строгость системы типов Rust и заметив все проблемы, которые она предотвращает, я внезапно стал сильно беспокоиться всякий раз, когда возвращался к Python и не получал тех же гарантий.
11 MacOS приложений для продуктивной работы с трекпадом
MacOS имеет большой набор возможностей по управлению с помощью трекпада, но следующие 11 приложений сделают вашу работу с ним ещё продуктивнее.
Компилируем C++ приложение для запуска в браузере
У фреймворка Android есть небольшой инструмент под названием validatekeymaps.
Это утилита для проверки синтаксиса конфигурационных файлов устройств
ввода (*.kl
, *.kcm
, *.idc
или virtualkeys.*
). В документации
предлагается собрать её самостоятельно: скачать исходники Android,
установить необходимую систему сборки и т.д. И это в почти 2023. Неужели
нельзя сделать это в вэбе, чтоб без заморочек и удобно для
пользователя? Спойлер: можно. Этим и займёмся.
Добавляем список глав прямо в плеер YouTube
У YouTube уже давно есть такая фишка как главы (chapters) для быстрой навигации по частям видео. Огромный недостаток текущей реализации - просмотр списка глав осуществляется в стороннем блоке за пределами плеера, т.к. в театральном и полноэкранном режимах до него непросто добраться. Намного удобнее, кажется, отображать оглавление прямо в плеере. Поправим это с помощью расширения (Chrome, Firefox).
Переназначение клавиш в macOS без стороннего софта и консоль как в Quake
Зачастую, в ответ на вопрос "Как переназначить клавиши на macOS?" советуют использовать сторонний софт, например, Karabiner-Elements, но простое переназначение клавиш возможно и нативными средствами.
Touch-Tab — эмулируем Cmd-Tab с помощью тачпада в macOS
В последних версиях Windows можно переключаться между окнами с помощью свайпа тремя пальцами, а между рабочими столами - четыремя. Зато в macOS всё по-другому: переключение свайпом (тремя пальцами по-умолчанию) доступно только между рабочими столами или полноэкранными приложениями. А ведь так не хочется тянуться до клавиатуры или ползти курсором в Dock, чтобы переключить приложение! Тут на помощь приходит Touch-Tab.
ExKeyMo — кастомизируем раскладку внешней клавиатуры на Android без root
В статье Кастомизируем раскладку внешней клавиатуры на Android без root мы выяснили, что Android-приложение может предоставлять дополнительные раскладки клавиатуры, и научились собирать такое приложение. Но простому (и даже не простому) пользователю лень собирать приложение. Хочется, чтобы это происходило автоматически, и в этом нам поможет ExKeyMo.
Считаем 183 дня и не только
Всем привет. Если у вас, как и у меня, возникла потребность подсчитать количество дней в году проведённых зарубежом (а может и любые другие памятные дни года), то рад представить вашему вниманию Annual Day Counter.
Tree-sitter: обзор инкрементального парсера
Некоторые IDE и текстовые редакторы парсят исходный файл целиком при каждом изменении, что может тормозить на больших файлах, а некоторые делают это построчно с помощью регулярных выражений, что тоже тормозит и не даёт качественной подсветки кода, т.к. теряется контекст. Для решения этих проблем в недрах GitHub был создан tree-sitter - инкрементальный парсер, который используют всё больше и больше проектов. Давайте разбираться зачем и почему.
Не мучайте свой мизинец
Мизинец - слабый палец руки, но в Win/Linux системах он задействован в большом количестве сочетаний клавиш, что заставляет выгибать кисть при нажатии или переносить руку с home row. Посмотрим как можно решить эту проблему.
Баги в Hello World
Hello World, должно быть, самая часто создаваемая компьютерная программа. Уже десятилетия это первая программа, которую пишут люди, когда начинают изучение нового языка программирования.
Конечно же эта простая программа не должна иметь баги. Верно?
Youtube Timestamps — расширение для показа временных меток из комментариев
У YouTube есть возможность оставлять в комментариях временные метки для видео. Просто пишем в комментарии время в формате hh:mm:ss и YouTube сам превратит это в ссылку. Небезызвестный музыкальный сервис Soundcloud позволяет показывать комментарии к трэкам прямо на таймлайне. Так почему бы не сделать такое же в YouTube?!
Laconic POM для Maven: скрываем многословность pom.xml
Зачастую, одна из претензий к Maven - выбор многословного XML для описания проекта. Polyglot for Maven должен был решить эту проблему, но проект не "взлетел". Для буквального сокрытия этой проблемы существует IDEA-плагин Laconic POM.
Bar Breaker: убираем плашки закрывающие обзор на сайтах
Если вы пользуетесь устройством с небольшой диагональю дисплея, то наверное замечали, что на некоторых сайтах "липкие" плашки отъедают значительную часть экрана. Прибавим к этому меню браузера и операционной системы, зачастую узкий экран (16х9) и, в итоге, остаётся не так много вертикального пространства. Расширение Bar Breaker решает эту проблему (доступно для Chrome и Firefox).
Кастомизируем раскладку внешней клавиатуры на Android без root
Мне нравится раскладка клавиатур на Mac: Cmd(Ctrl) под большим пальцем и возможность, без шаманства, прямо в настройках изменить поведение CapsLock. Такого же результата легко добиться в Linux с помощью setxkbmap
в консоли или, например, gnome-tweak-tool
в UI. Но что делать, если клавиатура подключается к Android?
Cross-Origin Read Blocking (CORB) в расширениях для Chrome
Если вы когда-то разработали расширение для Chrome, то может оказаться, что оно перестало работать.
Причина в том, что начиная аж с прошлого года, в браузере Chrome блокируются Cross-Origin запросы из content-скриптов. Это означает, что если ваше расширение обращается к некоторому строннему API напрямую из content-скрипта, такой запрос будет заблокирован благодаря Cross-Origin Read Blocking (CORB)
Information
- Rating
- Does not participate
- Registered
- Activity