Технические заметки
19 subscribers
57 photos
15 videos
30 links
Здесь я делюсь техническим опытом, который приобретаю каждый день на работе и дома.

Сетка: https://set.ki/Nheuhoc
LinkedIn: linkedin.com/in/magrega
Download Telegram
Пользуюсь приложением Здоровье от СОГАЗ Страхование, так как по работе доступен ДМС. Как-то мне показалось, что я не могу сразу найти колокольчик с уведомлениями, палец интуитивно тянется в один угол, а он в другом. Не мог понять в чем причина, пока целенаправленно не полез искать его на разных экранах.

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

#ux #ios #согаз
👍2❤‍🔥1🤯1
Продолжаю историю про свой Vivobook. Мне кажется, этот пост будет самым интересным из серии. В какой-то момент я начал ковырять журнал событий в Windows 11 и обнаружил там запись, связанную с переходом системы в режим Modern Standby. Как оказалось, в этот режим переходил мой ноутбук каждый раз, когда по таймауту выключался экран и начинались лаги с Bluetooth.

Здесь стоит взять паузу и ввести необходимые для повествования понятия. Возможно, многие знают, что классический режим сна, в который уходит Windows, называется S3 (Suspend to RAM). В этом режиме система обесточивается, за исключением оперативной памяти, где сохраняется вся работа. Однако, с приходом мобильных устройств в наши жизни, Microsoft посчитала, что было бы здорово унифицировать подходы к циклу питания устройств и выкатили Modern Standby.
Цель Modern Standby — сделать выключение и включение ПК мгновенным, как на смартфоне или планшете. Устройство не полностью выключено, а находится в состоянии очень низкого энергопотребления, но при этом может выполнять некоторые фоновые задачи.

На бумаге, казалось бы, красота. По кнопке включения ноутбук моментально включается и выключается, действительно, как телефон. Я даже успел лицезреть эту технологию на своем ноутбуке, пока ковырялся, но как оно часто бывает, теория расходится с практикой. Для идеальной работы Modern Standby требуется безупречная оптимизация:
• Драйверов (особенно Wi-Fi, аудио, сенсорной панели)
• Прошивки UEFI
• Фонового ПО (антивирусы, облачные клиенты, мессенджеры)

Если хотя бы один компонент "будит" систему слишком часто или не даёт ей уйти в Modern Standby, потребление энергии в "сне" становится сравнимым с работой в простое, что приводит к разрядке батареи за несколько часов.
Modern Standby принес много новых проблем, которые сделали использование этого режима головной болью для пользователей. Настолько большой, что даже крупные техноблогеры, вроде LTT, делали несколько видео на эту тему.

Основной проблемой стал чрезмерный разряд батареи в режиме ожидания:
• Драйвера: если драйвер устройства или фоновое приложение не оптимизированы для Modern Standby, они могут не давать системе войти в режим энергосбережения, что приводит к повышенному потреблению энергии.
• Сетевые активности: Постоянный опрос почты, синхронизация, обновления.
• Пробуждения таймера: Планировщик задач Windows или другие программы могут будить систему для выполнения задач.

Для чуть более полного понимания еще стоит ввести термин DRIPS. Расшифровывается как Deepest Runtime Idle Power States – состояние устройства, в котором оно может уйти в глубокий режим простоя и для обслуживания которого не требуется пробуждение ЦП.
Например, если драйвер Wi-Fi не умеет правильно работать в DRIPS, он может либо вообще блокировать вход в Modern Standby, либо войти в него, но продолжать активно сканировать сети, обмениваться пакетами.

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

#vivobook #modernstandby #laptop #asus #s3 #s0
👍2❤‍🔥1🤝1
Для тех, кто любит страшилки перед сном:

#1c #frontend
❤‍🔥1😁1
Я столкнулся с каким-то совершенно упоротым багом в Android Studio. Мне на поддержку выпал проект для Android 6.0, который надо было переписать под Android 14.0, и когда я в очередной раз запустил среду разработки, я столкнулся с тем, что в меню настроек Gradle пустое.

Там, где я должен мочь выбрать версию JDK, я вижу пустое окно с надписью Select configuration element in the tree to edit its settings.

Понятно, первым делом инвалидировал кеш IDE, ребутнул комп, заново скачал проект с гита. Бестолку. Спросил у самого Gemini что происходит. Он мне ничего внятного не сказал, предложил сделать тоже самое, что я сделал выше.

Полез гуглить. Наткнулся на решение. Проблема в том, что если в переменных среды в Windows есть какие-то косяки, то UI может глючить в Android Studio (что абсолютно отбитая дичь).

Полез смотреть. Дубликатов нет, вроде все верно. Еще гуглил, в целом, ничего более подходящего не нашел. Решил выгрузить в файл все переменные среды и показать Gemini.

И действительно, он подсветил, что в переменной ffmpeg стоит скрытый символ +202A.

Это видно на втором скрине из Powershell, там он отображен на выделенной линии в виде знака вопроса в квадратике.

Исправил путь, знак удалил, всё завелось. На ровном месте потратил 30 минут, потому что кто-то не парсит строки путей по-человечески: то ли Microsoft, которые допускают такие символы, то ли Google, у которых ломается UI от легкой тычки.

#android #studio #google #gemini #gradle
❤‍🔥2🤯2😱1
Интересное наблюдение для общей эрудиции:
Если одним проводом подключить друг к другу два iPhone, то заряжаться начнет тот, у которого меньше зарядки, но только если она оба подключены по USB-C. В случае, когда один из концов провода Lightning, тогда всегда будет заряжаться устройство с Lightning.
А если одним проводом подключить iPad и iPhone, то планшет всегда выступает в качестве павербанка, вне зависимости от того, сколько заряда у него осталось.

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

#Apple #iOS #iPadOS #Lightning #Charging
❤‍🔥11🤯1
Часть 1.

Нашел тут у одного из коллег по цеху ссылку на IT-2025: Реквием по здравому смыслу. Довольно комично написано, едкое сатирическое описание сегодняшнего рынка IT, но пару цепких цитат я оттуда выхватил. Покажу вам самое главное, а если захочется прочесть, то можно будет перейти по ссылке на Хабр.

"День разработчика превратился в "швейцарский сыр" — куски времени по 30-40 минут между созвонами, в которые невозможно погрузиться в состояние потока. Продуктивность падает, выгорание растет."

Оно действительно так. На всех моих рабочих местах с приходом в разработку всегда было какое-то неадекватное проекту количество суеты, будь то созвоны в Teams или сборища в кабинете у менеджера. Чудовищная пустая трата времени. У каждого человека свой ритм работы. Мне, чтобы войти в фокус, нужно минут 40-60 и после этого я могу несколько часов подряд стабильно работать, пилить фичи и фиксить баги, но как только этот пузырь внимания лопается звонком или новой срочной задачей вне спринта, у меня все схемы в башке рушатся и приходится набирать всю инерцию сначала.

У меня был рабочий день как-то, который целиком и полностью состоял из звонков. 8 часов Teams. Сначала дейлики, сетап и ретро в моей команде, затем часовые сборища со всем отделом по вопросам коммуникации между отделами. Очень иронично. Ни одной строчки кода за целый день.

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

Примером может служить ценообразование на маркетплейсах, где алгоритмы, настроенные на максимизацию прибыли, устраивают "американские горки" с ценами, вводя покупателей в ступор. Или операторы связи, оптимизирующие саппорт до такой степени, что дозвониться до живого человека в саппорте стало квестом уровня Dark Souls, а чат-боты способны распознать только 2.5 сценария.

Менеджмент оторван от реальности. Они живут в мире презентаций, где графики всегда растут вверх. А внизу, в "машинном отделении", разработчики латают дыры в тонущем корабле, пытаясь заставить работать фичи, которые были проданы, но еще даже не спроектированы. Это феодализм, где вассалы (разработчики) обязаны обеспечивать красивую жизнь сюзеренам (менеджерам) ценой своего психического здоровья и качества продукта.

Поработать на маркетплейсах мне не довелось, но на одном из проектов действительно разработка проекта скатилась в такую помойку, что приходилось просто фиксить бесконечные проблемы. Сменилось руководство и новые люди решили использовать имеющиеся наработки, чтобы делать что-то совершенно иное для чего продукт не был предназначен и вся разработка свелась к нескончаемому тушению пожаров в виде ремонта обработчиков 1С, загрузок данных в БД напрямую и исправлениям сразу на проде без суда, следствия и хотфикса через гит.
❤‍🔥11🤯1
Часть 2.
Вайб-кодинг — это программирование на основе ощущений и подсказок ИИ, без глубокого понимания синтаксиса или алгоритмики. Появились вакансии, открыто декларирующие: "Нам не нужны лорды, гордящиеся прошлым. Нам нужны те, кто генерирует код". Возникла концепция "Команды 7/7" — круглосуточного конвейера, где люди работают без выходных, подстегиваемые верой в то, что ИИ делает их сверхлюдьми.
Это фундаментальный сдвиг в профессии. Мы переходим от написания кода к рецензированию кода, написанного нейросетью. Но чтобы качественно рецензировать, нужно знать больше, чем нейросеть. А если нейросеть знает больше "рецензента" (джуниора), то мы попадаем в ловушку компетентности. Джуниор смотрит на сгенерированный код, видит, что он запускается, и отправляет его в продакшн. Он "чувствует вайб", что все ок.


Тут выскажу сугубо личное мнение. Пузырь из соевых разработчиков разрастался, начиная с ковида, и сейчас набрал критическую массу.
Конечно, до определенной степени я сам такой же парень из пузыря, но я заходил в профессию со всей скромностью, с желанием учиться и разбираться в сложных концептах. Я никогда не считал, что, пройдя пару курсов на Udemy, можно залететь на зарплату 100+ и еще бить себя в грудь, что рынок мне не доплачивает. Цена любого опыта — стыд, и, как ни крути, первые год-два работы рассчитывать на какие-то серьезные плюхи — это гордыня. Конечно, есть свои исключения, но мне кажется, средний опыт для человека, который в ~30 лет входит в программирование, будет такой.

Так сложилось, что у меня был опыт отбора кандидатов. На протяжении нескольких месяцев мы искали второго разраба на React в команду. И если на момент прихода в компанию я себя чувствовал совершенно чужим в профессии, будто меня туда занесло по ошибке, то после проведения собесов и наблюдения за кандидатами, я понял прекрасно, что я еще молодец. Люди с 5-летним опытом разработки приходят и не могут ответить на банальные вопросы про Redux и мемоизирование, а требования по зарплате - моё почтение. Люди действительно считают, что, пройдя один курс на Udemy или Яндекс, можно сразу попасть на проект и что-то пилить, ну а с появлением ИИ-агентов люди начали терять связь с реальностью и вправду считают, что они разработчики.

Бизнес в восторге от ИИ. "Зачем нам дорогой сеньор, если DeepSeek пишет 1500 строк кода за минуту?" — спрашивают они. Ответ прост и страшен: поддержка. ИИ позволяет генерировать функционал с невероятной скоростью. Графики производительности (Lines of Code) летят в космос. Но вместе с ними в космос летит и технический долг.
Код, написанный ИИ, часто страдает от скрытых дефектов:
- Использование несуществующих библиотек (галлюцинации).
- Нарушение паттернов безопасности.
- Логические бомбы, которые взрываются только при граничных условиях.
Когда такой код накапливается, проект превращается в "Большой Ком грязи". Поддерживать его становится невозможно, потому что никто — ни человек, ни ИИ — не понимает общей картины.


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

С помощью ИИ я пытался реализовать два домашних проекта. Один очень простой, второй очень специфический. Ни с одним из них, например, Cursor не справился. Если будет интересно о самих проектах расскажу в следующих постах.

Я с уважением отношусь к чужому опыту и испытываю интерес к тому, какими знаниями владеет команда, так как именно наследственность опыта создает общее понимание продукта и оставляет возможным его поддерживать. ИИ-разработка — это действительно "черный ящик", и бог бы с ним, если бы пределом был плохо написанный код, но использование ИИ в разработке, особенно в больших компаниях, вызывает много юридических вопросов в виде 152-ФЗ и права принадлежности кода.

#habr #ai #article #quote
🔥2❤‍🔥11
Итак, ребята, завершающий пост про мой многострадальческий Vivobook. Постараюсь более структурно, в отличие от прошлых постов, чтобы не отнимать много времени у читателей.

Вспомним суть проблемы: включаю музыку через Bluetooth-колонку, блокирую экран (Win+L) и ухожу от ноутбука. Через минуту звук начинает периодически прерываться. На заблокированном экране! Это не зависание, а именно короткие, но чёткие пропадания звука раз в 30-60 секунд.

Чего только я не перепробовал (список безумия):
• Переустановка ОС. Windows 11 и 10, чистые образы с MSDN, установка через Media Creation Tool. Десятки раз.
• Война с драйверами. Все возможные комбинации: драйверы с сайта ASUS, последние от AMD для графики, драйверы от Intel для Wi-Fi/Bluetooth (да, я даже менял аппаратный модуль с MediaTek на Intel AX210), стандартные от Microsoft.
• Танцы с настройками питания. В Диспетчере устройств для каждого USB-контроллера, PCI-E, Bluetooth-устройства и даже мышки отключал галочку «Разрешить отключение этого устройства для экономии энергии». Менял схемы питания через командную строку (powercfg), выключал все возможные опции энергосбережения в параметрах Windows.
• Аппаратные экспедиции. Менял SSD, оперативную память, отдавал ноут в ремонт для поиска микротрещин на материнской плате и перепрошивки BIOS программатором. Пробовал работать без внешнего монитора, без USB-хаба, в чистом поле вдали от других сетей.
• Глубокий анализ системы. Спасибо подсказке с форума — начал копать Журнал событий Windows. Позже подключил серьёзный арсенал: powercfg /energy, powercfg /sleepstudy, мониторил запросы на пробуждение (powercfg -requests). В финале дошёл до Windows Performance Recorder/Analyzer и LatencyMon.

Ключевые открытия в расследовании:
1. Проблема волшебным образом исчезала, если в Диспетчере устройств отключался драйвер видеокарты AMD Radeon Graphics. Но это было не решение — без драйвера не работал внешний монитор.
2. В отчёте powercfg /sleepstudy обнаружился загадочный Unidentified Driver, который мешал системе уйти в глубокие фазы сна в режиме Modern Standby.
3. Инструмент LatencyMon показал виновника — высокую DPC-латентность (задержку вызовов драйверов). Главными подозреваемыми были ntoskrnl.exe (ядро Windows) и Wdf01000.sys (фреймворк драйверов). Пики их активности в Windows Performance Analyzer чётко совпадали с моментами прерывания звука.
4. Проблема была не в конкретной колонке или наушниках (тестил JBL GO 3, AirPods), а в режиме Modern Standby (S0), в который ноутбук упорно уходил при блокировке экрана, игнорируя любые настройки «не спать».

Рабочее решение (костыль, но рабочий):
Всё свелось к тонкой настройке работы процессора в состоянии простоя. Наткнулся на решение в англоязычных обсуждениях подобных проблем с драйверами AMD/NVIDIA.
1. Скачал утилиту PowerSettingsExplorer, которая показывает скрытые параметры питания.
2. Запустил от Администратора и снял галочки с двух параметров:
• Processor Idle Demote Threshold
• Processor Idle Promote Threshold
3. После этого они появились в настройках схемы электропитания (Панель управления -> Электропитание -> Настройка схемы -> Изменить дополнительные параметры -> Управление питанием процессора).
4. Выставил оба значения на 100% для питания от сети и от батареи.
5. Перезагрузил ноутбук.
❤‍🔥1🤯1🤝1
Результат: Лаги Bluetooth на заблокированном экране полностью исчезли. Музыка играет ровно, как и должна.

Вывод: Корень проблемы, судя по всему, в том, что современные драйверы (в моём случае — AMD) могут некорректно взаимодействовать с агрессивными механизмами энергосбережения процессора в режиме Modern Standby. Это вызывает лаги в реальном времени. Моё решение, по сути, заставляет систему реже и меньше снижать частоту CPU, что убирает артефакты. Возможно, это слегка скажется на долголетии ЦПУ, но для меня это приемлемая цена за стабильную работу, хотя у меня есть желание разобраться с этим дальше и вернуть работу процессора в обычное состояние, сохранив при этом работоспособность Bluetooth.

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

#vivobook #bluetooth #modernstandby #драйвера #windows11 #asus #s0
🤯21❤‍🔥1
Всех с наступившим Новым Годом! Это во-первых.

Во-вторых, пока все подводили профессиональные, и не только, итоги года, я проживал потерю любимого кота - Софта.
(Нет, не от слова Software, а от Soft - мягкий, такое имя у него было уже в приюте).
Его не стало неделю назад, и меня всё еще сопровождает эхо этого события.

Вместе с этим эхом пришла идея увековечить моего кота в виде принта на пробеле клавиатуры. Один из взаимных подписчиков подал несколько идей как сгенерировать дизайн для пробела, чем я и занимался всю прошлую ночь, пихая промпт за промптом в ИИ-чат. Занятие имело терапевтические свойства и сподвигло меня написать этот пост. Я пользовался LMArena в режиме Battle, чтобы одновременно генерировать две картинки и постоянно подправлял промпт, чтобы включить в него все необходимые детали рисунка. Благодаря совместным усилиям ИИ и Фотошоп удалось добиться желаемого.

Оказывается, купить клавишу с кастомным принтом не так-то просто. Я написал всем продавцам на АлиЭкспресс, кто занимается продажей кейкапов, но все мне отказали, а некоторые даже отметили, что таким почти никто не занимается в качестве частной услуги. На Авито так же не было желаемого успеха. Нашелся один человек, который готов взяться, но подход там иной, там клавиша и контуры рисунка печатаются на 3Д-принтере, но вся покраска происходит от руки. Есть подозрение, что такой поход хоть и аутентичен, но недолговечен, учитывая частоту использования пробела в ежедневной работе.

В общем, если вы являетесь человеком, способным помочь нанести принт на клавишу или напечатать клавишу с принтом целиком, мне нужна ваша помощь, пишите. Если вы знаете такого человека, покажите ему этот пост. Если просто можете провести ликбез по 3Д-печати и объяснить почему непросто отпечатать клавишу с принтом - тоже было бы прекрасно.

А если кому-то интересно, то ниже мой кот и то, как я его запечатлел в рисунке.

PS. Модель клавиатуры - Royal Kludge S98.

#rk #3d #print #photoshop #keycap #gpt #lmarena
2
К сожалению, я из тех людей, кто не умеет отдыхать. Если я больше часа ничего не делаю, то начинаю дрыгать и топать ногой, а вместе с тем и нервничать.

Первое января нового года не было исключением. В качестве подарка на Новый Год я купил себе iPhone с последней версией iOS 26 и обнаружил, что мой сайт-визитка не открывается на нем. Просто белый экран. На компьютерах с Windows, а также на предыдущих версиях iOS всё работает, как и должно.

После часовой сессии гугления и общения с ИИ я сделал несколько открытий:

· Apple не пускают другие браузерные движки на свои телефоны, потому все другие браузеры из App Store по сути тот же Safari (WebKit engine), просто в другом скине. С Safari часто бывают индивидуальные трудности при разработке, но меня смутило, что на компьютере в Chrome сайт открывается, а на телефоне нет. Загадка была разгадана.

· Причина, по которой не работал сайт на iOS 26 – устаревший метод substr в моем JavaScript-коде. Я написал этот сайт года 4 назад, потому не мудрено. Заменил его на substring, и страница загрузилась. Я так понимаю, substr все еще используется для обратной совместимости.

· Оказывается, private key от Putty (.ppk) не тоже самое, что ключи от OpenSSH. В целом не сказать, что это сюрприз, но было удивительно, что у фриварного Putty какие-то свои ключи.

На последнем пункте хочу остановиться чуть подробнее. Пока я ковырял свой сайт и искал причину, почему он не работает, я решил заодно настроить удаленный клиент VS Code по SSH, чтобы работать с кодом сразу на сервере.

Добрые 15 минут я не мог вкурить, почему мой ключ от Putty не работает в VS Code, пока не понял, что нужен OpenSSH.

И вот моя финальная мысль:

Я привык в разработке к тому, что постоянно меняются фреймворки, выходят какие-то новые тулзы и прочее, но еще разбираться и с разными приватными ключами…

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

Согласны ли вы, что уже имеется некая избыточность в инструментах, доступных разработчикам?

#ios #ssh #javascript #frontend #putty #vscode
🤯1
4 января в 7:23 утра бог знает зачем ковырялся в личном кабинете Теле2. Наткнулся на интересный то ли баг, то ли фичу.

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

Технически всё в порядке, но тем не менее проблема имеется. Да, на зуме страницы в 200% при FullHD разрешении монитора букву С становится видно.

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

Видимо, нюанс собственного шрифта. В такие моменты всегда хотелось бы иметь возможность поболтать с разработчиками и спросить:
1) В курсе ли такой проблемы команда?
2) Если да, то насколько сложен бюрократический процесс, необходимый, чтобы быстро это исправить?
3) Как определяется ответственность за ошибки и какая цепочка ответственных за очередной деплой коммита или хотфикса?
4) Есть ли какой-то QA-стенд, где проверяются такие мелочи простыми пользователями?

Если кто-то из Теле2 наткнется на этот пост, с большим удовольствием бы почитал комменты.

#frontend #font #ux #tele2
❤‍🔥1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Появилась необходимость снова зайти на сайт Apple.
Я уже как-то упоминал его в предыдущих постах, где показывал отсутствие проверок на вводимые данные на фронтенде при попытке логина в iCloud.

В этот раз мне нужна была помощь с активацией iMessage, так как я отправил уже более 20 СМС для активации сервиса, но он так и не включился. В интернетах прочёл, что можно запросить поддержку, оставив заявку на сайте. Подозреваю, чтобы кто-то вручную включил мне онлайн-чат в сообщениях.

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

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

Если кому-то интересно, скроллы прыгают, потому что крутится спиннер, который, по всей видимости, вместе с собой крутит либо padding, либо margin. Из-за этого родительский размер блока меняет размер скролла. Детально изучать не стал, за это не заплатят, но когда я учился верстать, такой прикол часто возникал по неопытности.

#apple #ux #frontend
🔥1🤯1
Обновился до iOS 26.
Обнаружил, что наконец-то можно задать микрофон по умолчанию. Это всегда было проблемой на смартфонах, так как я считаю, что не существует на сегодняшний день Bluetooth-гарнитур, которые позволяли бы комфортно общаться где-либо, кроме пустой комнаты (с мягкими стенами, хи-хи-хи). Во всех иных сценариях либо шум, либо шумодав делает речь непригодной для общения.

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

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

Ну поковырялся маленько, перезапустил, переустановил, перезагрузил телефон. Всё бестолку, пошел писать багрепорт.

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

#telegram #bug #report #ios #iphone
🔥41
Я довольно часто продаю что-то на Авито. В очередной раз продавал сломанный роутер.
Бывает, что пишут с порога с отличными финансовыми предложениями и их я обычно игнорирую.

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

#Avito #router
1