Я столкнулся с каким-то совершенно упоротым багом в Android Studio. Мне на поддержку выпал проект для Android 6.0, который надо было переписать под Android 14.0, и когда я в очередной раз запустил среду разработки, я столкнулся с тем, что в меню настроек Gradle пустое.
Там, где я должен мочь выбрать версию JDK, я вижу пустое окно с надписью
Понятно, первым делом инвалидировал кеш IDE, ребутнул комп, заново скачал проект с гита. Бестолку. Спросил у самого Gemini что происходит. Он мне ничего внятного не сказал, предложил сделать тоже самое, что я сделал выше.
Полез гуглить. Наткнулся на решение. Проблема в том, что если в переменных среды в Windows есть какие-то косяки, то UI может глючить в Android Studio (что абсолютно отбитая дичь).
Полез смотреть. Дубликатов нет, вроде все верно. Еще гуглил, в целом, ничего более подходящего не нашел. Решил выгрузить в файл все переменные среды и показать Gemini.
И действительно, он подсветил, что в переменной
Это видно на втором скрине из Powershell, там он отображен на выделенной линии в виде знака вопроса в квадратике.
Исправил путь, знак удалил, всё завелось. На ровном месте потратил 30 минут, потому что кто-то не парсит строки путей по-человечески: то ли Microsoft, которые допускают такие символы, то ли Google, у которых ломается UI от легкой тычки.
#android #studio #google #gemini #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
Если одним проводом подключить друг к другу два iPhone, то заряжаться начнет тот, у которого меньше зарядки, но только если она оба подключены по USB-C. В случае, когда один из концов провода Lightning, тогда всегда будет заряжаться устройство с Lightning.
А если одним проводом подключить iPad и iPhone, то планшет всегда выступает в качестве павербанка, вне зависимости от того, сколько заряда у него осталось.
Еще у меня была мысль, что подключая девайсы по проводу, можно будет файлы передавать как-то через файловый менеджер, фотки или документы например, но оно так не работает. Зато по кабелю таким образом можно передавать данные при переносе данных, например, после покупки нового телефона или планшета.
#Apple #iOS #iPadOS #Lightning #Charging
❤🔥1❤1🤯1
Часть 1.
Нашел тут у одного из коллег по цеху ссылку на IT-2025: Реквием по здравому смыслу. Довольно комично написано, едкое сатирическое описание сегодняшнего рынка IT, но пару цепких цитат я оттуда выхватил. Покажу вам самое главное, а если захочется прочесть, то можно будет перейти по ссылке на Хабр.
Оно действительно так. На всех моих рабочих местах с приходом в разработку всегда было какое-то неадекватное проекту количество суеты, будь то созвоны в Teams или сборища в кабинете у менеджера. Чудовищная пустая трата времени. У каждого человека свой ритм работы. Мне, чтобы войти в фокус, нужно минут 40-60 и после этого я могу несколько часов подряд стабильно работать, пилить фичи и фиксить баги, но как только этот пузырь внимания лопается звонком или новой срочной задачей вне спринта, у меня все схемы в башке рушатся и приходится набирать всю инерцию сначала.
У меня был рабочий день как-то, который целиком и полностью состоял из звонков. 8 часов Teams. Сначала дейлики, сетап и ретро в моей команде, затем часовые сборища со всем отделом по вопросам коммуникации между отделами. Очень иронично. Ни одной строчки кода за целый день.
Поработать на маркетплейсах мне не довелось, но на одном из проектов действительно разработка проекта скатилась в такую помойку, что приходилось просто фиксить бесконечные проблемы. Сменилось руководство и новые люди решили использовать имеющиеся наработки, чтобы делать что-то совершенно иное для чего продукт не был предназначен и вся разработка свелась к нескончаемому тушению пожаров в виде ремонта обработчиков 1С, загрузок данных в БД напрямую и исправлениям сразу на проде без суда, следствия и хотфикса через гит.
Нашел тут у одного из коллег по цеху ссылку на IT-2025: Реквием по здравому смыслу. Довольно комично написано, едкое сатирическое описание сегодняшнего рынка IT, но пару цепких цитат я оттуда выхватил. Покажу вам самое главное, а если захочется прочесть, то можно будет перейти по ссылке на Хабр.
"День разработчика превратился в "швейцарский сыр" — куски времени по 30-40 минут между созвонами, в которые невозможно погрузиться в состояние потока. Продуктивность падает, выгорание растет."
Оно действительно так. На всех моих рабочих местах с приходом в разработку всегда было какое-то неадекватное проекту количество суеты, будь то созвоны в Teams или сборища в кабинете у менеджера. Чудовищная пустая трата времени. У каждого человека свой ритм работы. Мне, чтобы войти в фокус, нужно минут 40-60 и после этого я могу несколько часов подряд стабильно работать, пилить фичи и фиксить баги, но как только этот пузырь внимания лопается звонком или новой срочной задачей вне спринта, у меня все схемы в башке рушатся и приходится набирать всю инерцию сначала.
У меня был рабочий день как-то, который целиком и полностью состоял из звонков. 8 часов Teams. Сначала дейлики, сетап и ретро в моей команде, затем часовые сборища со всем отделом по вопросам коммуникации между отделами. Очень иронично. Ни одной строчки кода за целый день.
На вершине этой пирамиды стоят "эффективные менеджеры", для которых продукт — это лишь набор метрик в Excel-таблице. Происходит подмена понятий: целью становится не создание качественного сервиса для людей, а получение квартальной премии.
Примером может служить ценообразование на маркетплейсах, где алгоритмы, настроенные на максимизацию прибыли, устраивают "американские горки" с ценами, вводя покупателей в ступор. Или операторы связи, оптимизирующие саппорт до такой степени, что дозвониться до живого человека в саппорте стало квестом уровня Dark Souls, а чат-боты способны распознать только 2.5 сценария.
Менеджмент оторван от реальности. Они живут в мире презентаций, где графики всегда растут вверх. А внизу, в "машинном отделении", разработчики латают дыры в тонущем корабле, пытаясь заставить работать фичи, которые были проданы, но еще даже не спроектированы. Это феодализм, где вассалы (разработчики) обязаны обеспечивать красивую жизнь сюзеренам (менеджерам) ценой своего психического здоровья и качества продукта.
Поработать на маркетплейсах мне не довелось, но на одном из проектов действительно разработка проекта скатилась в такую помойку, что приходилось просто фиксить бесконечные проблемы. Сменилось руководство и новые люди решили использовать имеющиеся наработки, чтобы делать что-то совершенно иное для чего продукт не был предназначен и вся разработка свелась к нескончаемому тушению пожаров в виде ремонта обработчиков 1С, загрузок данных в БД напрямую и исправлениям сразу на проде без суда, следствия и хотфикса через гит.
❤🔥1❤1🤯1
Часть 2.
Тут выскажу сугубо личное мнение. Пузырь из соевых разработчиков разрастался, начиная с ковида, и сейчас набрал критическую массу.
Конечно, до определенной степени я сам такой же парень из пузыря, но я заходил в профессию со всей скромностью, с желанием учиться и разбираться в сложных концептах. Я никогда не считал, что, пройдя пару курсов на Udemy, можно залететь на зарплату 100+ и еще бить себя в грудь, что рынок мне не доплачивает. Цена любого опыта — стыд, и, как ни крути, первые год-два работы рассчитывать на какие-то серьезные плюхи — это гордыня. Конечно, есть свои исключения, но мне кажется, средний опыт для человека, который в ~30 лет входит в программирование, будет такой.
Так сложилось, что у меня был опыт отбора кандидатов. На протяжении нескольких месяцев мы искали второго разраба на React в команду. И если на момент прихода в компанию я себя чувствовал совершенно чужим в профессии, будто меня туда занесло по ошибке, то после проведения собесов и наблюдения за кандидатами, я понял прекрасно, что я еще молодец. Люди с 5-летним опытом разработки приходят и не могут ответить на банальные вопросы про Redux и мемоизирование, а требования по зарплате - моё почтение. Люди действительно считают, что, пройдя один курс на Udemy или Яндекс, можно сразу попасть на проект и что-то пилить, ну а с появлением ИИ-агентов люди начали терять связь с реальностью и вправду считают, что они разработчики.
Здесь тоже сложно не согласиться. Я вижу, как даже в самой сетке очень много людей, которые воспевают ИИ, как решалку всех проблем, но, по сути, качество сгенерированного кода строго зависит от кода, который был загружен в LLM, а в большинстве своём это код едва ли Middle уровня. Да, прикольно набрасывать прототипы по-быстрому, но зачастую дебажить код ИИ занимает больше времени, чем писать самому с нуля.
С помощью ИИ я пытался реализовать два домашних проекта. Один очень простой, второй очень специфический. Ни с одним из них, например, Cursor не справился. Если будет интересно о самих проектах расскажу в следующих постах.
Я с уважением отношусь к чужому опыту и испытываю интерес к тому, какими знаниями владеет команда, так как именно наследственность опыта создает общее понимание продукта и оставляет возможным его поддерживать. ИИ-разработка — это действительно "черный ящик", и бог бы с ним, если бы пределом был плохо написанный код, но использование ИИ в разработке, особенно в больших компаниях, вызывает много юридических вопросов в виде 152-ФЗ и права принадлежности кода.
#habr #ai #article #quote
Вайб-кодинг — это программирование на основе ощущений и подсказок ИИ, без глубокого понимания синтаксиса или алгоритмики. Появились вакансии, открыто декларирующие: "Нам не нужны лорды, гордящиеся прошлым. Нам нужны те, кто генерирует код". Возникла концепция "Команды 7/7" — круглосуточного конвейера, где люди работают без выходных, подстегиваемые верой в то, что ИИ делает их сверхлюдьми.
Это фундаментальный сдвиг в профессии. Мы переходим от написания кода к рецензированию кода, написанного нейросетью. Но чтобы качественно рецензировать, нужно знать больше, чем нейросеть. А если нейросеть знает больше "рецензента" (джуниора), то мы попадаем в ловушку компетентности. Джуниор смотрит на сгенерированный код, видит, что он запускается, и отправляет его в продакшн. Он "чувствует вайб", что все ок.
Тут выскажу сугубо личное мнение. Пузырь из соевых разработчиков разрастался, начиная с ковида, и сейчас набрал критическую массу.
Конечно, до определенной степени я сам такой же парень из пузыря, но я заходил в профессию со всей скромностью, с желанием учиться и разбираться в сложных концептах. Я никогда не считал, что, пройдя пару курсов на Udemy, можно залететь на зарплату 100+ и еще бить себя в грудь, что рынок мне не доплачивает. Цена любого опыта — стыд, и, как ни крути, первые год-два работы рассчитывать на какие-то серьезные плюхи — это гордыня. Конечно, есть свои исключения, но мне кажется, средний опыт для человека, который в ~30 лет входит в программирование, будет такой.
Так сложилось, что у меня был опыт отбора кандидатов. На протяжении нескольких месяцев мы искали второго разраба на React в команду. И если на момент прихода в компанию я себя чувствовал совершенно чужим в профессии, будто меня туда занесло по ошибке, то после проведения собесов и наблюдения за кандидатами, я понял прекрасно, что я еще молодец. Люди с 5-летним опытом разработки приходят и не могут ответить на банальные вопросы про Redux и мемоизирование, а требования по зарплате - моё почтение. Люди действительно считают, что, пройдя один курс на Udemy или Яндекс, можно сразу попасть на проект и что-то пилить, ну а с появлением ИИ-агентов люди начали терять связь с реальностью и вправду считают, что они разработчики.
Бизнес в восторге от ИИ. "Зачем нам дорогой сеньор, если DeepSeek пишет 1500 строк кода за минуту?" — спрашивают они. Ответ прост и страшен: поддержка. ИИ позволяет генерировать функционал с невероятной скоростью. Графики производительности (Lines of Code) летят в космос. Но вместе с ними в космос летит и технический долг.
Код, написанный ИИ, часто страдает от скрытых дефектов:
- Использование несуществующих библиотек (галлюцинации).
- Нарушение паттернов безопасности.
- Логические бомбы, которые взрываются только при граничных условиях.
Когда такой код накапливается, проект превращается в "Большой Ком грязи". Поддерживать его становится невозможно, потому что никто — ни человек, ни ИИ — не понимает общей картины.
Здесь тоже сложно не согласиться. Я вижу, как даже в самой сетке очень много людей, которые воспевают ИИ, как решалку всех проблем, но, по сути, качество сгенерированного кода строго зависит от кода, который был загружен в LLM, а в большинстве своём это код едва ли Middle уровня. Да, прикольно набрасывать прототипы по-быстрому, но зачастую дебажить код ИИ занимает больше времени, чем писать самому с нуля.
С помощью ИИ я пытался реализовать два домашних проекта. Один очень простой, второй очень специфический. Ни с одним из них, например, Cursor не справился. Если будет интересно о самих проектах расскажу в следующих постах.
Я с уважением отношусь к чужому опыту и испытываю интерес к тому, какими знаниями владеет команда, так как именно наследственность опыта создает общее понимание продукта и оставляет возможным его поддерживать. ИИ-разработка — это действительно "черный ящик", и бог бы с ним, если бы пределом был плохо написанный код, но использование ИИ в разработке, особенно в больших компаниях, вызывает много юридических вопросов в виде 152-ФЗ и права принадлежности кода.
#habr #ai #article #quote
Хабр
IT-2025: Реквием по здравому смыслу
Мы входили в эту реку дважды, трижды, бесконечное количество раз. Мы ждали 2025 год как рубеж, за которым наступит технологическая сингулярность, где рутина будет автоматизирована, а творчество...
🔥2❤🔥1❤1
Итак, ребята, завершающий пост про мой многострадальческий Vivobook. Постараюсь более структурно, в отличие от прошлых постов, чтобы не отнимать много времени у читателей.
Вспомним суть проблемы: включаю музыку через Bluetooth-колонку, блокирую экран (
Чего только я не перепробовал (список безумия):
• Переустановка ОС. 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. Перезагрузил ноутбук.
Вспомним суть проблемы: включаю музыку через 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
Вывод: Корень проблемы, судя по всему, в том, что современные драйверы (в моём случае — AMD) могут некорректно взаимодействовать с агрессивными механизмами энергосбережения процессора в режиме Modern Standby. Это вызывает лаги в реальном времени. Моё решение, по сути, заставляет систему реже и меньше снижать частоту CPU, что убирает артефакты. Возможно, это слегка скажется на долголетии ЦПУ, но для меня это приемлемая цена за стабильную работу, хотя у меня есть желание разобраться с этим дальше и вернуть работу процессора в обычное состояние, сохранив при этом работоспособность Bluetooth.
Надеюсь, мой опыт поможет другим, кто столкнулся с похожей болью, а также даст почву для дальнейшего исследования, которые помогут избавиться вообще от таких проблем.
Если кому-то вдруг интересно, я вел посты на русскоязычных и англоязычных форумах. Именно благодаря участию людей с разных частей света, у которых разная канва опыта, удалось раскрыть суть проблемы.
#vivobook #bluetooth #modernstandby #драйвера #windows11 #asus #s0
🤯2❤1❤🔥1
Всех с наступившим Новым Годом! Это во-первых.
Во-вторых, пока все подводили профессиональные, и не только, итоги года, я проживал потерю любимого кота - Софта.
(Нет, не от слова Software, а от Soft - мягкий, такое имя у него было уже в приюте).
Его не стало неделю назад, и меня всё еще сопровождает эхо этого события.
Вместе с этим эхом пришла идея увековечить моего кота в виде принта на пробеле клавиатуры. Один из взаимных подписчиков подал несколько идей как сгенерировать дизайн для пробела, чем я и занимался всю прошлую ночь, пихая промпт за промптом в ИИ-чат. Занятие имело терапевтические свойства и сподвигло меня написать этот пост. Я пользовался LMArena в режиме Battle, чтобы одновременно генерировать две картинки и постоянно подправлял промпт, чтобы включить в него все необходимые детали рисунка. Благодаря совместным усилиям ИИ и Фотошоп удалось добиться желаемого.
Оказывается, купить клавишу с кастомным принтом не так-то просто. Я написал всем продавцам на АлиЭкспресс, кто занимается продажей кейкапов, но все мне отказали, а некоторые даже отметили, что таким почти никто не занимается в качестве частной услуги. На Авито так же не было желаемого успеха. Нашелся один человек, который готов взяться, но подход там иной, там клавиша и контуры рисунка печатаются на 3Д-принтере, но вся покраска происходит от руки. Есть подозрение, что такой поход хоть и аутентичен, но недолговечен, учитывая частоту использования пробела в ежедневной работе.
В общем, если вы являетесь человеком, способным помочь нанести принт на клавишу или напечатать клавишу с принтом целиком, мне нужна ваша помощь, пишите. Если вы знаете такого человека, покажите ему этот пост. Если просто можете провести ликбез по 3Д-печати и объяснить почему непросто отпечатать клавишу с принтом - тоже было бы прекрасно.
А если кому-то интересно, то ниже мой кот и то, как я его запечатлел в рисунке.
PS. Модель клавиатуры - Royal Kludge S98.
#rk #3d #print #photoshop #keycap #gpt #lmarena
Во-вторых, пока все подводили профессиональные, и не только, итоги года, я проживал потерю любимого кота - Софта.
(Нет, не от слова 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
Первое января нового года не было исключением. В качестве подарка на Новый Год я купил себе 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
В категории "Действия с моим номером" первая кнопка, казалось бы, содержит опечатку, два раза напечатана буква "О" в слове "перенос", но в инструментах разработчика всё в порядке, опечаток нет.
Технически всё в порядке, но тем не менее проблема имеется. Да, на зуме страницы в 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
Я уже как-то упоминал его в предыдущих постах, где показывал отсутствие проверок на вводимые данные на фронтенде при попытке логина в iCloud.
В этот раз мне нужна была помощь с активацией iMessage, так как я отправил уже более 20 СМС для активации сервиса, но он так и не включился. В интернетах прочёл, что можно запросить поддержку, оставив заявку на сайте. Подозреваю, чтобы кто-то вручную включил мне онлайн-чат в сообщениях.
Сайт поддерживает светлую и темную тему, а я любитель темных тем, так как они гарантируют, что при любой освещённости мои глаза не выйдут из чата, когда я неосмотрительно зайду на страницу. В общем, едва я успел запросить помощь, как вся страница начала прыгать туда-сюда, а еще в качестве приза за терпение показала мне нечитаемый выпадающий список.
Я, честно сказать, оторопел от такого и подумал, что это просто у меня какая-то проблема. Может расширение в браузере блокирует стили или еще что-то. Но нет, я зашел с чистого Firefox и там всё тоже самое. Если прошлый пост про валидацию был любопытным наблюдением к слову о том, насколько подробной должна быть валидация данных на фронте, то данный случай просто показывает какое-то пренебрежение то ли продуктом, то ли клиентами, то ли конкретно вот этой частью сервиса, связанной с получением поддержки.
В любом случае, выглядит как чей-то домашний проект и вызывает лишь подъемы бровей.
Если кому-то интересно, скроллы прыгают, потому что крутится спиннер, который, по всей видимости, вместе с собой крутит либо padding, либо margin. Из-за этого родительский размер блока меняет размер скролла. Детально изучать не стал, за это не заплатят, но когда я учился верстать, такой прикол часто возникал по неопытности.
#apple #ux #frontend
🔥1🤯1
Обновился до iOS 26.
Обнаружил, что наконец-то можно задать микрофон по умолчанию. Это всегда было проблемой на смартфонах, так как я считаю, что не существует на сегодняшний день Bluetooth-гарнитур, которые позволяли бы комфортно общаться где-либо, кроме пустой комнаты (с мягкими стенами, хи-хи-хи). Во всех иных сценариях либо шум, либо шумодав делает речь непригодной для общения.
В общем, начал радоваться. Действительно, после подключения наушников или микрофона в машине в приложениях продолжает работать выбранный микрофон (я всегда выбираю микрофон самого телефона, он реально классный).
Но так как я в основном пользуюсь телеграмом для общения, я очень быстро обнаружил, что именно в нем выбранный микрофон не работает. Он игнорируется, если есть другие подключенные гарнитуры.
Ну поковырялся маленько, перезапустил, переустановил, перезагрузил телефон. Всё бестолку, пошел писать багрепорт.
Так что если кто-то тоже обнаружил или просто хочет поддержать - можно пройти по ссылке и проголосовать, может быстрее пофиксят.
#telegram #bug #report #ios #iphone
Обнаружил, что наконец-то можно задать микрофон по умолчанию. Это всегда было проблемой на смартфонах, так как я считаю, что не существует на сегодняшний день Bluetooth-гарнитур, которые позволяли бы комфортно общаться где-либо, кроме пустой комнаты (с мягкими стенами, хи-хи-хи). Во всех иных сценариях либо шум, либо шумодав делает речь непригодной для общения.
В общем, начал радоваться. Действительно, после подключения наушников или микрофона в машине в приложениях продолжает работать выбранный микрофон (я всегда выбираю микрофон самого телефона, он реально классный).
Но так как я в основном пользуюсь телеграмом для общения, я очень быстро обнаружил, что именно в нем выбранный микрофон не работает. Он игнорируется, если есть другие подключенные гарнитуры.
Ну поковырялся маленько, перезапустил, переустановил, перезагрузил телефон. Всё бестолку, пошел писать багрепорт.
Так что если кто-то тоже обнаружил или просто хочет поддержать - можно пройти по ссылке и проголосовать, может быстрее пофиксят.
#telegram #bug #report #ios #iphone
🔥4❤1
Я довольно часто продаю что-то на Авито. В очередной раз продавал сломанный роутер.
Бывает, что пишут с порога с отличными финансовыми предложениями и их я обычно игнорирую.
Запечатлел вот такую зарисовку. На данном скрине можно увидеть небольшой сюжет полный смелости и терпения, но, как пел Хью Лори, не всегда можно получить то, что хочется.
#Avito #router
Бывает, что пишут с порога с отличными финансовыми предложениями и их я обычно игнорирую.
Запечатлел вот такую зарисовку. На данном скрине можно увидеть небольшой сюжет полный смелости и терпения, но, как пел Хью Лори, не всегда можно получить то, что хочется.
#Avito #router
❤1
Бешеная уверенность искусственного интеллекта иногда бодрит.
Конкретно в этом случае его решение проканало, но был сценарий, когда я тупо копипастил его команды в терминал и он мне снес докер совершенно полностью, чтобы исправить ошибки при запуске.
Ну, технически он прав. Нет докера - нет проблемы.
100% ГАРАНТИРОВАННЫЙ ФИКС ✅
ОНО ЗАРАБОТАЕТ Я ТЕБЕ ГАРАНТИРУЮ
#ai #lmarena #debian
Конкретно в этом случае его решение проканало, но был сценарий, когда я тупо копипастил его команды в терминал и он мне снес докер совершенно полностью, чтобы исправить ошибки при запуске.
Ну, технически он прав. Нет докера - нет проблемы.
100% ГАРАНТИРОВАННЫЙ ФИКС ✅
ОНО ЗАРАБОТАЕТ Я ТЕБЕ ГАРАНТИРУЮ
#ai #lmarena #debian
❤1
Сейчас по проекту работаем постоянно с виртуалками, хостим всё на машине с Debian. Накатили ОС, раздали всем учетки. Если нужны действия от рута, то, как и положено, делаем через
В целом, работа идет, но каждый раз вводить пароль бесконечно бесит. Но что еще больше бесит, так это то, что при работе с WinSCP при попытке доступа к файлу, который доступен только root, нет возможности ввести пароль для поднятия прав. И вот как решить это, я вам расскажу:
Нужно сделать две вещи:
1) Файл
Так, при выполнении sftp команд юзером
2) Поменять настройки терминала в WinSCP
Открываем WinSCP, выбираем хост, который хотим открыть. Прежде, чем присоединяться, нажимаем "Edit" в правой части экрана, кнопка "Advanced..." станет активной. Жмем ее, в новом окне в списке выбираем Shell. В правой части в поле "Shell:" вводим
Всё, теперь при попытке доступа к файлам, принадлежащим root, не должно быть ошибок доступа.
Обязательно имейте ввиду безопасность вопроса. У нас тестовый сервер, ломаем что хотим. Однако, полный sftp-доступ к root файлам обычным юзером может стать источником проблем.
Короче, это плохая практика, и если кто-то может поделиться опытом как это решить более правильно, буду рад почитать подсказки.
#debian #winscp #sftp #sudo #linux
sudo с вводом пароля. Ничего особенного.В целом, работа идет, но каждый раз вводить пароль бесконечно бесит. Но что еще больше бесит, так это то, что при работе с WinSCP при попытке доступа к файлу, который доступен только root, нет возможности ввести пароль для поднятия прав. И вот как решить это, я вам расскажу:
Нужно сделать две вещи:
1) Файл
sudoers. Мы добавили нужного юзера в sudoers.d/coolusername-sftp и добавили ему права на работу с WinSCP без запроса пароля для повышения прав.coolusername ALL=(root) NOPASSWD: /usr/lib/openssh/sftp-server
Так, при выполнении sftp команд юзером
coolusername не будет запрашиваться пароль.2) Поменять настройки терминала в WinSCP
Открываем WinSCP, выбираем хост, который хотим открыть. Прежде, чем присоединяться, нажимаем "Edit" в правой части экрана, кнопка "Advanced..." станет активной. Жмем ее, в новом окне в списке выбираем Shell. В правой части в поле "Shell:" вводим
sudo -s.Всё, теперь при попытке доступа к файлам, принадлежащим root, не должно быть ошибок доступа.
Обязательно имейте ввиду безопасность вопроса. У нас тестовый сервер, ломаем что хотим. Однако, полный sftp-доступ к root файлам обычным юзером может стать источником проблем.
Короче, это плохая практика, и если кто-то может поделиться опытом как это решить более правильно, буду рад почитать подсказки.
#debian #winscp #sftp #sudo #linux
❤1
С гордостью представляю вам своего зверя. Машина, которая каждый день с утра до ночи пашет вместе со мной, является источником зарплаты, отдыха, знаний, нового опыта.
Инструмент, с которым я себя идентифицирую, и без которого мне уже просто не представить свою рутину.
AMD Ryzen 7 9800X3D 8-Core 4.70 GHz
NVIDIA GeForce RTX 3060 12GB (Жду 5070ti, очень скоро приедет!)
32,0 ГБ DDR5 6400 Mhz (Нехило я так успел купить перед ИИ бумом)
B850M AORUS ELITE WIFI6E ICE
Периферия:
Клавиатура Royal Kludge S98
Мышь VGN Dragonfly F2 Ultra+
Наушники Arctis Nova 7P Wireless
Если у вас есть желание, я был бы рад почитать про ваши компы, что интересного в них есть, какие-то украшалки или просто история, связанная со сборкой.
#build #pc
Инструмент, с которым я себя идентифицирую, и без которого мне уже просто не представить свою рутину.
AMD Ryzen 7 9800X3D 8-Core 4.70 GHz
NVIDIA GeForce RTX 3060 12GB (Жду 5070ti, очень скоро приедет!)
32,0 ГБ DDR5 6400 Mhz (Нехило я так успел купить перед ИИ бумом)
B850M AORUS ELITE WIFI6E ICE
Периферия:
Клавиатура Royal Kludge S98
Мышь VGN Dragonfly F2 Ultra+
Наушники Arctis Nova 7P Wireless
Если у вас есть желание, я был бы рад почитать про ваши компы, что интересного в них есть, какие-то украшалки или просто история, связанная со сборкой.
#build #pc
🔥2