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

В общем сейчас возникла спонтанная идея записи некоторого аудиогайда (буду устанавливать дверную ручку), он будет после этого поста в виде голосового сообщения, слушать или не слушать уж сами решайте.
Ну что ж, первый блин комом, желаемого результата достичь мне не удалось, хотя большая часть задуманного прошла без проблем, так что считаю, что гайд на 80% удачный.
Ну и уже постфактум: что думаете о таком формате, надо оно или нет, или может какой-то другой направленности аудио-контент вам интересен, прохождение игр например?
Шумоподавление

Сегодня я прочитал пост в одном из новостных каналов, в котором говорилось о том, что экие-некие учёные провели исследование о вреде шумоподавления.

И в результате выяснилось, что использование наушников с шумоподавлением вредит слуху пользователей.

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

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

Начну пожалуй с начала, а именно с краткого описания функции ANC active noise cancellation (активное шумоподавление).
Работает оно довольно просто и одновременно сложно.
Вот есть у нас некий звук, например звук работающего двигателя.
А что такое звук?
Звук - это самые обыкновенные механические колебания среды, например воздуха.
Т.е. двигатель во время работы как бы ударяет по воздуху своим корпусом и подвижными частями, создаёт области повышенного давления, которые волнами расходятся вокруг.
Потом они достигают наших ушей, где-то там внутри, кажется во внутреннем ухе, преобразуются в электрические импульсы, которые следуют прямиком в мозг, где он их расшифровывает и мы слышим звук работающего двигателя.
Но сейчас нам интересно то место, где звук только приходит в ухо, проще всего что-то сделать именно там.
Самая простая идея, это просто заткнуть уши, и в общем то для этого существуют беруши, но в какой-то момент человечество пошло дальше и придумало следующее.
Вот есть у нас микрофоны, динамики и относительно мощные микроконтроллеры, а что если мы будем снимать звук с микрофона, обсчитывать микроконтроллером волны, попавшие на микрофон, и потом мембраной динамика попробуем эти волны погасить?
Ну и самое главное, что если это всё запихнуть в обычные наушники?
А получится в таком случае как раз активное шумоподавление, о котором я и хочу высказаться.
То есть, проще говоря, наушники с активным шумоподавлением слушают окружающую среду, и воспроизводят такой звук, который складывается со звуком из окружающей среды, и практически полностью гасится, но также гасит внешний шум.

Ну а теперь я перехожу к собственному мнению:
Я пробовал шумоподавление на нескольких моделях разного бюджета, от трёх, до, вроде 12 или 13 тысяч рублей, и во всех, абсолютно во всех случаях мне не зашло.
Да, действительно они гасят шум, причём гасят очень даже неплохо, особенно круто шумоподавление справляется с постоянным фоновым шумом, например со звуком работающего двигателя, что наверняка удобно в дороге.
Но есть один огромнейший минус: стоит включить шумоподавление, как я начинаю ощущать практически болезненное давление на уши.
Это ощущение сравнимо с резким изменением давления, при котором жёстко закладывает уши, и при попытках сглатывания слюны становится как будто только хуже.
И я пробовал к этому привыкнуть, но к сожалению не выдержал больше двух минут, причём самый сильный эффект наблюдался именно на самых дорогих наушниках (это были полноразмерные сенхайзеры, модель уже точно не помню, но могу поискать, если кого-то заинтересует).
Так вот в итоге я задаю вопрос вам, моей аудитории, вас тут почти сто человек как-никак:
Если вы использовали наушники с активным шумоподавлением, не заметили ли вы чего-то подобного, и если заметили, то насколько комфортно было использовать их в таком режиме?
И снова шестёрочки

Где-то выше был пост про 9 шестёрок в Unix time, но там вроде бы всё было очевидно, понятно и просто, а вот сегодняшний случай заставил меня немного поломать голову.

Пишу я значит сервис, работающий с БД postgres, и нужно мне записать в столбец бинарные данные.
Сделал столбец, пытаюсь с помощью sqlalchemy (библиотеки для работы с бд) записать тестовую строку, забываю один из НЕ nullable столбцов.
И получаю от базы следующую ошибку
DETAIL:  Failing row contains (null, testing, \x666666, 3).

Это не вся ошибка, а самая интересная её часть, давайте разберём её.
В этой строчке база говорит, с какой именно записываемой строкой произошла ошибка, и выводит её.
Сначала null - это именно тот первый столбец, который не может принимать такое значение, из-за него эта ошибка и возникла.
Второе значение testing - это тестовое значение какого-то строкового столбца, четвёртое значение 3 - уникальный идентификатор.
А вот третье, которое типа бинарное: \x666666.
И вот я когда его увидел, наверное с минуту пытался понять, что происходит, откуда оно взялось? И в итоге выяснил следующее.
В качестве тестового значения я ввёл три буквы f.
У маленькой буквы f в таблице ascii десятичный номер 102, а шестнадцатиричный - 66.
И вот тут самое интересное: то ли база, то ли её драйвер, попытался вывести именно шестнадцатиричные номера символов последовательности, но почему-то поставил \x только в начале, после чего просто слепил все цифры в кучу.
Ну и, разумеется, из fff получилось 66 66 66, что и вывелось как 666666.
Возможно это даже не баг, а просто особенность бд, потому что в общем то восстановить из этого исходную последовательность очень даже возможно, но просто забавно, что я рандомно ткнув в клавиатуру неожиданно получил именно такой результат.
Подключаем семейную подписку яндекса через боль и страдания

На всякий случай уточняю: все цитаты сообщений интерфейса не дословные, а написаны по памяти.

Начну, как обычно, с предыстории.

Когда-то давно, ещё в 2015 году, я слушал музыку в vk, и мне было ок.

Потом, году наверное в 18, я познал могущество и величие алгоритмов spotify, и полностью перешёл туда.

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

Да, spotify у меня бесплатный, и если бы они заявляли, что для премиума рекомендации лучше, то вопросов бы не было, но они ведь этого не говорят...

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

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

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

"Ща только быстренько семейную группу создам" - думал я.

"А потом быстренько расшарю себе плюс" - тоже я так думал.

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

Получилось же всё слегка иначе.

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

Заходим в аккаунт, яндекс просит код из пуша, тоже в общем то ожидаемо.

Иду за мобилкой, скриплю дверью, бужу батю, уже неприятно, но всё ещё не критично.
И т.к. сон у него довольно крепкий, я подозреваю, что разбудил его как раз тот самый пуш, а я ему давно рекомендовал настроить беззвучный режим на ночное время, так что вообще он сам виноват 🙂, ведь это могло быть любое другое уведомление.
Ладно, подсмотрел код, авторизовался, и дальше по инструкции яндекса надо вроде как создать семейную группу.
Нарулил соответствующий раздел в профиле, скопировал приглашение, переключился на свой аккаунт и вступил в группу.
Плюс по дефолту не получил, окей, логично, его просто надо расшарить!
Переключился в папин аккаунт, перешёл в настройки семейной группы, нашёл там себя.

Нажимаю на "Поделиться преимуществами плюса" (или как-то так), попадаю на страничку с предложением подключить плюс.
Странная страничка, ведь плюс на этом аккаунте уже подключен, ну окей, давайте подключим подключенный плюс ещё раз. Нажимаю на кнопку "Подключить", и открывается страница подключенного плюса.
СТраница стандартная, на ней уже про семейную группу ничего нет, есть только возможность отправить приглашение, но мне это не надо, я ведь уже вступил в группу, мне просто надо расшарить плюс! Как это сделать?!
Ладно, может он уже подключился, перехожу в свой аккаунт, но там мне предлагают оформить подписку, т.е. нифига не сработало.
Пукан начинает разогреваться, окей, возвращаюсь на батин аккаунт, перехожу к плюсу, высылаю себе приглашение, переключаюсь на свой аккаунт, открываю почту.
Кодерская мастерская
Подключаем семейную подписку яндекса через боль и страдания На всякий случай уточняю: все цитаты сообщений интерфейса не дословные, а написаны по памяти. Начну, как обычно, с предыстории. Когда-то давно, ещё в 2015 году, я слушал музыку в vk, и мне было…
Перехожу по ссылке, и, и, иии "вы уже вступили в эту группу!"
Вот же падла, нарукожопили, ну наверное это просто в интерфейсе тупняк случился, и мне выдалось право использовать плюс, правда ведь?
Открываю плюс, а там, конечно же, предлагают оформить подписку!
Пукан уже начинает выжигать кислород, но я пока не сдаюсь.
Если я уже вступил в группу, то система не идёт дальше и не применяет нужную роль, так может надо выйти и вступить по правильной пригласительной ссылке от плюса?
Снова переключаюсь на папин акк, захожу в настройки семьи, пытаюсь исключить себя, и мой пукан моментально начинает процесс преобразования водорода в гелий.
Что же случилось, думаете вы?
А случилась маленькая приписка примерно такого содержания: "Участник сможет снова вступить в семейную группу после 7 мая".
То есть ситуация следующая: я хочу затестить яндекс музыку, для которой нужен плюс, я хочу пошарить этот самый плюс с другого аккаунта, эти аккаунты находятся в семье, но пошарить нихера нельзя, потому что правильная ссылка не работает пока я в группе, и после выхода из группы она тоже не сработает, потому что до 7 мая меня никуда уже не пустит!
И уже морально приготовившись к подключению плюса себе на акк, я выкинул себя из группы, зашёл в плюс, отправил приглашение, перешёл в свой профиль, открыл почту, перешёл по ссылке...
И вот оно просто вот так вот взяло, вот так вот раааз...
И сука сработало! Я снова оказался в семейной группе!
И более того, у меня активировалась подписка на плюс!
И у меня даже активировался доступ Шрёдингера к яндекс 360!
Выглядело это как-то так, цитата из письма: "Вы присоединились к семейной группе Яндекс ID и можете пользоваться семейной картой и подписками на Яндекс Плюс и Яндекс 360 Премиум"
Вроде доступ есть, окей, открываем батин профиль, настройки семьи, а там: "Семейная оплата Поделиться картой", "Яндекс 360 Премиум Поделиться преимуществами".
Тут уже пофиг на самом деле, эти фичи мне не нужны, закрываю сей ужас и морально готовлюсь к новому этапу квеста: установке приложения, но это теперь уже завтра...
Собираемся интернет-провайдера менять, ТТК настойчиво предлагают свои услуги, есть у кого отрицательный / положительный опыт их использования? Будет круто, если поделитесь.
Или может тарифы сейчас у кого-нибудь есть хорошие по цене?
Вы, наверное, уже и не ждали, но всё же дождались. В Android-клиенте Телеграм пофиксили отвал нижней части экрана после записи гс.
Спасибо за внимание.
👍2
Личный кабинет налогоплательщика физического лица спрятан от скринридеров

Зашёл на lkfl2.nalog.ru, авторизовался, загрузился типа пустой документ.

Открываю, значит, исходник:
<body data-theme="light" class="ReactModal__Body--open" aria-hidden="true">


В общем-то на этом всё, я не знаю, как это можно прокомментировать.

UPD
Для тех, кому строчка кода напоминает нечто на гране между магией и алхимией поясню: для всей страницы со всеми ссылками, кнопками, текстом и всем остальным установлена настройка, которая говорит скринридеру, чтобы он игнорировал содержимое, что он успешно и делает.

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

Я являюсь автором / соавтором некоторых дополнений, которые отвалились сначала при выходе NVDA 2024.1, а потом ещё раз отвалились после выхода 2024.2.

К сожалению на официальное распространение дополнений через магазин NVDA пока нет времени, но сюда выложу рабочие версии.
Ball bouncer

Мы тут в прошлом месяце игру выпустили, но почему-то идея написать об этом здесь появилась лишь сегодня.

И так как лучше поздно чем никогда, держите запоздалый постик.

Во-первых кто такие мы? Мы — это команда Sooslandia games, которая занимается разработкой звуковых игр.

И первым нашим продуктом стала аркадная игра Ball bouncer, которая была выпущена 14 июня для Windows и Linux.

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

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

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

В Ball bouncer имеются достижения и навыки, прокачивая которые можно разнообразить игровой опыт, а также планируется добавление онлайн-доски рекордов, где можно будет померяться этим самым опытом с другими игроками.

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

Ну или не научитесь, откуда же мне знать 😊

Вот вам ссылочки, вы знаете, что с ними делать:
Наш русскоязычный канал, наш интернациональный канал, скачать игру для Windows, скачать игру для Linux.
👍1
Небольшой интересный факт: это валидный код на Python.

def main():
return(42)


Живите теперь с этим.
aidaMenu-0.0.1.nvda-addon
4 KB
Aida Menu

Сделал дополнение, которое позволяет открывать меню в седьмой версии Aida64.
Не каждому это нужно, но если, например, хотите запустить тесты, или что-нибудь настроить, это дополнение может вам помочь.
Для открытия меню по умолчанию используется сочетание nvda+o.
Команда для выполнения бэкапа в twrp хорошо описывает жизнь любителей кастомных прошивок.

Чтобы создать резервную копию разделов boot, data и system, нужно выполнить twrp backup bds.

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

И в таком случае команда принимает вид twrp backup bdsm.

На сегодня пока всё.
Кажется я нашёл гимн пароля от google-аккаунта.

https://www.youtube.com/watch?v=xiJW4cfYX0g
🔥1
Если перейти на сайт sberbankonline.ru, откроется сайт Авиасейлс.

А на сайте onlinesberbank.ru размещены правила безопасности в сети, такой фишинговый сайт наоборот.
lariat

Сегодня мир информационных технологий преподнёс мне очередную загадку.
Я производил некоторые манипуляции с одним из репозиториев на github, затем, чтобы удостовериться, что я ничего не сломал, я выполнил git fetch origin.

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

user@host:~/dev/repo$ git fetch origin
remote: git: 'lariat' is not a git command. See 'git --help'.
remote: aborting due to possible repository corruption on the remote side.
fatal: protocol error: bad pack header


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

А теперь давайте вернёмся ко второй строке: remote: git: 'lariat' is not a git command. See 'git --help'..
Что именно означает remote в начале строки я не уверен, либо это указание на то, что событие произошло на удалённой стороне, либо что гит столкнулся с проблемой при работе с удалённой стороной.
А далее гит нам сообщает, что 'lariat' не является командой гита, и не мешало бы покурить мануал по этому поводу.
После получения такого вывода от гита у меня два вопроса: что произошло, и что такое этот ваш lariat?!
Я потратил около получаса на попытки как-то разгуглить эту проблему, и ничего похожего не нашёл.
Но самое главное, это случилось дважды! Я повторно выполнил команду git fetch origin, и снова получил этот же результат!
Только на третий раз коммуникация с github прошла успешно, и больше, сколько не тыкал, ошибка не возникала.

#ОноСломалось
Новая тестовая голосовая рубрика под названием "Оно сломалось".
Планирую творить в ней какую-то весёлую разрушительную дичь, пишите, что думаете о таком формате.