Кодерская мастерская
137 subscribers
1 photo
14 files
39 links
Блог Данила Пылаева
Download Telegram
Добро пожаловать в Кодерскую мастерскую!

Это канал Данила Пылаева, также известного под ником Danstiv.
Я слепой программист, бэкенд-разработчик проекта Данные в данные, автор некоторых дополнений для скринридера NVDA, немного тестировщик, а также, получается, теперь ещё и блогер.
Тут я планирую публиковать заметки по настройке или использованию чего-либо, дополнения для NVDA, может даже истории / случаи из жизни.
Проще говоря, в этом блоге будет всё подряд, о чём мне захочется написать.
Изначально всё вышеперечисленное я планировал выкладывать на своём сайте, но за несколько лет его существования до наполнения руки у меня так и не дошли, поэтому я решил создать канал и размещать производимый мной контент в нём.
Помимо этого, идея ведения блога появилась у меня достаточно давно, но всегда я приходил к мысли, что мне будет лень этим заниматься, ведь нужно публиковать там что-нибудь хотя бы разок за день, да и вряд ли я смогу находить темы для такого количества постов.
Но пару дней назад я понял, что это совсем не обязательно, и ничего плохого не случится, если несколько дней / недель / месяцев в блоге ничего происходить не будет.
А тут ещё вдобавок, как оказалось, у многих друзей и знакомых либо давно есть блог, либо появился совсем недавно, ну и я, за компанию, решил завести свой.
Регулярных постов, как намекнул выше, здесь не будет, но и совсем заброшенным, надеюсь, канал не станет.
К каналу прикреплена группа для комментариев, туда тоже можете заглянуть.
Не могу обещать, что всегда буду читать её и участвовать в обсуждениях, но по возможности буду стараться это делать.
Кодерская мастерская pinned «Добро пожаловать в Кодерскую мастерскую! Это канал Данила Пылаева, также известного под ником Danstiv. Я слепой программист, бэкенд-разработчик проекта Данные в данные, автор некоторых дополнений для скринридера NVDA, немного тестировщик, а также, получается…»
Кастомный звук уведомления для Windows

TLDR: звук должен быть в wave формате, 44100 семплов в секунду, глубина 16 бит, 2 канала. В начале должна быть тишина около секунды.

Мне не нравится стандартный звук уведомления в Windows. Он громкий и долгий, и часто при его проигрывании заглушается часть какого-нибудь контента (например при просмотре ролика в youtube).
Долгое время (с момента перехода на десятку в 17-м году) я собирался его сменить, и позавчера, наконец, совсем меня это заколебало.
Нашёл я звучок коротенький и не сильно громкий, он был в ogg, подсунул винде, проверяю, он не играет.
Ладно, думаю, не удивительно, сконвертировал в wav через ffmpeg, выбрал, проверил, играет, ура!
Приходит уведомление, а звука нет.
Снова зашёл в настройки, при нажатии кнопки "Проверить" всё играет.
Опять пришло уведомление, и снова звука нет.
Посмотрел параметры у одного из стандартных звуков, 44100 семплов в секунду, 2 канала, глубина 16 бит.
Посмотрел на свой, а там глубина 24 бита.
Ну и, как оказалось, винда при проверке его воспроизводит, а когда по факту приходит уведомление почему-то уже не может!
Окей, сконвертил с глубиной в 16 бит, проверил, вроде работает.
Пришло уведомление, и заиграло. Круто! Подумал я...
А потом прошло часа два, пришло уведомление, а проигрался только мааленький еле слышный хвостик моего кастомного звука.
Винда, зачем-то, в некоторых случаях звук уведомления воспроизводит с фейдом! И так как мой звук и тише, и короче, то от него мало что остаётся после такой предобработки.
Пришлось ещё добавить секунду тишины в начало, теперь вроде всё работает нормально.

#Windows #Звук
👍1
Настройка единиц измерения топлива и расстояния на Cadillac Escalade 2004

Откройте меню.
Активируйте пункт "Display units".
Выберите metric, если требуется, чтобы единицы измерения были метрическими, иначе выберете English.
Чтобы в тех же единицах значения отображались и у другого водителя, нужно переключиться на него и повторить настройку.

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

#Настройка #Автомобили
Я недавно с семьёй был в Хакасии, а многие блогеры порой описывают, где они отдыхали, чего они ели / пили и т.п.
У меня тоже есть идея написать о своих приключениях, только, разумеется, мне лень это делать.
Но если вам интересно, я всё-таки попробую.
Final Results
100%
Интересно
0%
Неинтересно
ls

Многим известно, что в Linux есть утилита ls, позволяющая просматривать содержимое директорий.
Есть она и в Android, т.к. он во многом похож на Linux.
Сегодня я творил кое-какие нехорошие вещи с Ультра-экономией энергии на своём телефоне (у меня, кажется, получилось задуманное, возможно про это будет постик).
И кое-какие манипуляции я выполнял в recovery (в моём случае twrp).
Так вот там, совершенно неожиданно, у меня получилось сломать ls!

Тут всё отлично работает:
willow:/system # ls
bin etc manifest.xml usr


Но вот тут:
willow:/system # cd /data/media/0
willow:/data/media/0 # ls
Segmentation fault
139|willow:/data/media/0 #

Оно уже не работает!

Вероятно, во внутренней памяти (/data/media/0 - как раз она) есть какой-нибудь файл, который ls обработать не может.
Пришлось содержимое просматривать autocompletion-ом, и там была какая-то папка из двух китайских иероглифов, которая походу и убила ls.
Да, autocompletion отработал нормально и ничего не упало, видать разная реализация в его механизме и в ls.

#Android #ОноСломалось
Сели батарейки в клаве

Пишу постик про поездку в Хакасию, и символы перестают вводиться.
Жму стрелки, тишина.
Выхожу на рабочий стол, тишина.
Пытаюсь перезапустить nvda горячкой, отслеживаемой отдельной прогой, тоже никакой реакции.
Открываю ноут, тыкаю стрелочку, и там всё работает.
Выключил и включил клаву, всё равно не работает.
Переткнул контроллер, один фиг не работает!
Батарейки я менял пару месяцев назад, поэтому про них думал в последнюю очередь.
Поставил новые батарейки, клава заработала.
Странно то, что клавиатура перестала работать и больше не включилась, хотя обычно, когда садятся батарейки, клавиатура выключалась, но аппаратное выключение / включение возвращало её к жызни, и так можно было часа три работать.
Погрыз немного старые батарейки, поставил их обратно, пока вроде работает, пошёл писать дальше.

#ОноСломалось
Обход ограничения на количество приложений в режиме Ультра-экономии энергии MIUI

В MIUI есть замечательная функция, режим ультра-экономии энергии, позволяющая жить телефону без подзарядки как можно дольше.
В этом режиме система глушит большинство фоновых сервисов, останавливает, кажется, все пользовательские приложения и отключает всякие энергоёмкие функции (bluetooth, точку доступа и т.п.).
Кое-что потом можно включить из шторки. А некоторые функции вообще недоступны (ту же точку оттуда включить нельзя, хотя если у вас какой-нибудь Tasker есть, то можно почти всё, что и в обычном режиме 🙂).
И в этом режиме открывается собственный Launcher, содержащий информацию о примерном времени работы, текущую дату и кнопку выход.
Ещё там имеется три приложения: Телефон, Контакты и Сообщения.
Можно добавить ещё 6 пользовательских, для этого тоже есть кнопочка, открывающая список приложений.
И вот это ограничение, как раз, мне и не понравилось.
Конечно понятно, что оно сделано для того, чтобы пользователь в режиме ультра-экономии не открыл кучу приложений и не потерял преимущества, которые в этом режиме доступны.
Но во-первых фоновые приложения можно жёстко приостанавливать (по-моему там это и происходит), а во-вторых это же Android! Какого фига кто-то что-то решил за меня?!
Сначала я думал, что мне и шести приложений хватит, но в поездке, о которой был пост выше, я понял, что такого количество мне явно не хватает.
Смотреть я решил в сторону добавления стандартного лаунчера в лаунчер ультра-экономии (из того списка приложений, разумеется, он скрыт, чтобы пользователь не добавил его и не получил неограниченный доступ к своим приложениям).
Этот путь мне показался наиболее простым и удобным, потому что во-первых я не шарю в модификации приложений, и вряд ли за приемлемое время смог бы подпатчить его, чтобы увеличить ограничение, заложенное разработчиками,
а во-вторых мне не нужно ничего делать, кроме добавления лаунчера, потому что при его запуске я получу привычный интерфейс, уже содержащий все используемые мной приложения.
И так, чтобы добавить лаунчер на экран ультра-экономии энергии, нужно сделать следующее:
1. Нужен root или twrp, так как необходимо работать в директории /data/data, куда без рут-доступа система не пустит.
2. Определить имя пакета вашего лаунчера, в моём случае это Nova Launcher, имя пакета у него com.teslacoilsw.launcher.
3. Вытащить файл /data/data/com.miui.securitycenter/shared_prefs/remote_provider_preferences.xml.
4. Открыть файл в текстовом редакторе.
5. Найти строку вида <string name="pref_key_superpower_power_save_app">...</string>.
Вместо троеточия будет список названий пакетов пользовательских приложений в определённом формате.
Список помещён в квадратные скобки.
Названия перечислены через запятую.
Каждое название помещено в кавычки, но, так как это xml, в явном виде внутри тега они записаны быть не могут и замещены на &quot;.
В моём случае эта строка выглядит так: <string name="pref_key_superpower_power_save_app">[&quot;net.dinglisch.android.taskerm&quot;,&quot;com.hb.dialer.free&quot;,&quot;ak.alizandro.smartaudiobookplayer&quot;,&quot;com.perm.kate&quot;,&quot;org.telegram.messenger&quot;,&quot;com.teslacoilsw.launcher&quot;]</string>
В самом конце, как раз, находится название пакета моего лаунчера, вам нужно проделать что-то подобное.
6. Добавить в строку название пакета вашего лаунчера, не нарушая описанный выше формат.
Также следите за тем, чтобы в списке не было более 6 приложений (все приложения после шестого не будут отображаться в режиме ультра-экономии, я проверял).
Я мог что-то упустить в процессе, но сомневаюсь, что приложение, заточенное под отображение шести иконок, вдруг начнёт показывать больше только потому, что их больше в конфиге.
7. Сохранить файл и запушить его обратно, не сломайте владельца и права (должны быть 660 system system).

Не пишу о том, как использовать adb, получать root-права и т.п, потому что пост и так вышел объёмным, а прочитать об этом можно в интернете на куче различных ресурсов. Или можете задавать вопросы в комментариях.

#Настройка #ХакВоБлаго #Android #MIUI
👍1
URLPlayer-0.6.1.nvda-addon
233.9 KB
URLPlayer

Раньше я слушал интернет-радио через winamp, это было не очень удобно (для регулировки громкости надо было его разворачивать, при обрыве интернета воспроизведение не возобновлялось и т.п.).
И решил я написать дополнение для nvda, чтобы удобно слушать радио и управлять воспроизведением.
Ну и, собственно, написал, вот, что оно умеет:
Воспроизведение url-потоков.
Возобновление при обрывах интернета и опциональное возобновление после перезагрузки nvda.
Остановка и возобновление воспроизведения, изменение громкости и переключение между устройствами вывода с помощью горячих клавиш.
Опциональная остановка воспроизведения при обнаружении звукового потока из другого приложения (например ролик в youtube в браузере) и возобновление воспроизведения при остановке потока в другом приложении.

#NVDAAddon
switch_layout.bgt
474 B
Переключение раскладки в BGT-окнах

В BGT существует очень странная и противная особенность: нельзя переключать раскладку, если окно игры активно.
Я уже не разрабатываю ничего на BGT, но, возможно, для кого-то этот скрипт будет полезен.
Он содержит две функции:
1. switch_layout - позволяет переключить раскладку средствами Win API.
2. switch_layout_monitor - проверяет нажатие alt+shift, и выполняет switch_layout при обнаружении.

#BGT
Смена пароля в "Яндекс 360"

Чтобы сменить пароль в "Яндекс 360" нужно сделать следующее:
1. Зайти на адрес admin.yandex.ru.
2. Найти заголовок "Сотрудники".
3. Под заголовком найти нужного сотрудника и нажать на него.
4. Найти в нижней части страницы информацию о выбранном сотруднике (электронная почта, подразделение, часовой пояс и т.п.).
5. В верхней части найденного блока будет неподписанная кнопка, имя сотрудника и вторая неподписанная кнопка после имени, на неё нужно нажать.
6. Выше появится меню с возможными действиями.
7. Для смены пароля найдите соответствующее действие и активируйте его левым кликом.
8. Найдите заголовок "Смена пароля", под ним будет находиться искомая вами форма.

#A11yTricks
Есть темы для двух постов, какой хотите видеть первым?
Final Results
56%
Про Idle-игру в telegram боте
44%
Про добавление поддержки эмодзи в eSpeak 1.48.15 на Android
Idle Bank Alpha

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

Конкретно в Idle Bank нужно развивать свой банк, увеличивать его уровень за деньги и блоки.
Деньги производит банк, чем выше уровень, тем больше денег за единицу времени производится.
Блоки игрок получает в начале игры, а далее они будут выдаваться раз за определённый промежуток времени (это очень медленно, однако есть и другие способы их получения).

На данный момент в игре существует 7 фракций, фракция выбирается на старте, позже её можно будет изменить.
У каждой фракции своя валюта и свой тип блоков, а также имеется магазин, в котором можно покупать / продавать блоки своей / чужой фракции.
Ещё есть несколько миниигр, которые позволяют зарабатывать деньги и блоки.
Игра довольно гибкая, можно залипать несколько часов подряд, а можно заходить на пару минут в день.
Да, во втором случае прокачка будет происходить медленнее, но смысла игра от этого совсем не теряет!

Игра реализована в виде telegram-бота, всё управление производится кнопками, писать никогда ничего не нужно (по крайней мере сейчас).
На данный момент игра доступна на Английском, Итальянском и Португальском языке.
Но она достаточно простая, минимального уровня английского должно хватить, ну или юзайте переводчик.

Так как большая часть подписчиков этого канала использует программы экранного доступа для взаимодействия с операционными системами, заранее предупреждаю, что в игре активно используются эмодзи.
Если они у вас не читаются, играть вы сможете, но порой будет неудобно.
Если вы хотите играть с Android, используете eSpeak 1.48.15 с Talkback и хотите, чтобы читались эмодзи, то ждите следующий пост.

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

Играть

Если вас не пугает деанонимизация внутри игры, делитесь получившимися никами в комментариях!
И, как видно из названия, это альфа-версия игры, потому возможны всякие баги, правки баланса и т.п.
А ещё, разумеется, возможны полные ресеты (надеюсь этого не произойдёт, но всем нужно быть морально к этому готовым).
Гайда тоже нет, поэтому предлагаю несколько вариантов:
1. Если есть свободное время, почитайте changelog, ссылку на него можете найти в канале игры (ссылку на канал можно получить у бота по команде /help).
2. Если есть мноого свободного времени, можете почитать группу комментариев канала, там разработчик объясняет некоторые механики.
Или почитать группу хотя бы за сентябрь, там я, вероятно, достал разработчика своими вопросами, но теперь я знаю об игре немного больше.
3. Задавайте вопросы разработчику, если знаете английский, или задавайте их в комментариях под этим постом, я по возможности буду отвечать.

#Игры
ru_listx
5.1 MB
Эмодзи для eSpeak на Android

Ловите второй обещанный постик, он чё-то крупноватый получился, поэтому в telegraph.
Но файлы туда нельзя заслать, так что они будут тут.
1. eSpeak.v.1.48.15_with_ru_emoji - обычный eSpeak, в русский словарь которого добавлены эмодзи.
2. eSpeak.v.1.48.15_only_ru_with_emoji - тоже с поддержкой эмодзи, и с выпиленными голосами (кроме русского), что не даёт eSpeak-у переключаться на другие языки (ему просто некуда 😉) в некоторых приложениях, где на самом деле русский интерфейс.
3. ru_listx - исходник листа, из которого был собран словарь.

#ESpeak #Android #ХакВоБлаго
soundBeforeCapital-0.2.2.nvda-addon
17.9 KB
Sound before capital

Представляю вашему вниманию дополнение, заменяющее сигнал (так называемый бип), звучащий при прочитывании заглавных букв, на звук, гораздо более приятный по звучанию.

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

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

Достаточно просто установить его, и он начнёт работать.

#NVDAAddon
NVDAControllerUncancel-0.1.1.nvda-addon
5.6 KB
NVDA controller uncancel

Описание в caption не влезло, поэтому оно тут: https://telegra.ph/NVDA-controller-uncancel-10-07

#NVDAAddon