?

Log in

No account? Create an account

Евгений Музыченко

Entries by category: it

Как меня читать :)
Читая мои посты, можно подумать, будто я вечно чем-то недоволен, ибо изрядное количество постов - либо ворчание, либо наезды, либо недоумение :) Тут дело в том, что мое нормальное, преобладающее состояние - довольное, умиротворенное, приятное и приподнятое. Оно гораздо выше нейтрального, откуда легко можно попасть как в довольное, так и в недовольное состояние. Поэтому, чтобы почувствовать подъем, эйфорию, мне нужно испытать нечто, выходящее из ряда вон :) А вот чтобы почувствовать недовольство - достаточно и просто какого-то мимолетного раздражения.

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

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

Windows 7, ACPI и Power Plans
emuzychenko

Внезапно обнаружил, что в Win7 системный (ID 4) процесс непрерывно отъедает около 12% процессорного времени. В ноутбуке MSI GT72S 6QE, с его большим запасом по охлаждению, это практически незаметно - изменение тона вентилятора было на пределе слышимости, а слух за долгое время привык к тому, что дебильные сайтописатели своим дебильным JS-кодом часто создают длительную нагрузку в 15-20% практически в любом браузере, отчего обороты вентилятора плавают постоянно.

Виновником повышенного потребления оказался драйвер ACPI (acpi.sys), несколько сот раз в секунду дергавший какие-то устройства. Это было видно в Process Explorer, однако в Win7 он не может открыть стеки системных потоков и показать вызовы. В Process Hacker стек открывается, но ничего вразумительного там навскидку не видно, при этом DrWeb начинает ругаться на "Tool.ProcessHacker" в памяти.

Read more...Collapse )

Как работает онлайн-чат Почты России :)
emuzychenko

Криворукие на марше
emuzychenko
При попытке восстановить на Xiaomi Mi Max полный (system+data) бэкап, сделанный днем раньше в TWRP 3.0.2, выяснилось, что пользовательских данных из внутренней памяти (ветка /data/media/0, которая видна через /sdcard) TWRP в архив не положил, так что восстановились только система, контакты, настройки, истории и приложения с их "внутренними" данными. Все остальное (пользовательские данные и "внешние" данные приложений) благополучно отбыло в небытие.

С удивлением полез в более ранний (тоже "полный") бэкап, сделанный неделей раньше на Redmi Note 3 Pro. Такая же фигня: из данных - только приложения и "внутренние" данные приложений. А я-то наивно полагал, что у меня на карте действительно полная копия всего, что есть в телефоне, и я в любой момент смогу восстановить систему/приложения в том же виде.

Между тем, бэкап, который делает TWRP, традиционно называют "Nandroid backup", подразумевая, что делается полная копия памяти устройства. Возможно, когда-то оно действительно бэкапило на уровне разделов, а сейчас - только на уровне файлов, причем не всех. И мне не удалось найти, где об этом было бы написано - TeamWin за много лет разродилась лишь небольшим FAQ, а все остальные инструкции, написанные пользователями, наоборот, прославляют TWRP за способность сделать "точный слепок устройства".
Read more...Collapse )

Размеры софта
emuzychenko
Решив сваять утилитку для маршрутизатора, поставил Sourcery CodeBench Lite for MIPS. Шесть гигов. Восемьдесят четыре тысячи файлов. Это уже реально за гранью человеческого понимания... Честное слово, у меня не укладывается в голове, как можно наплодить столько, и чтоб там все было кому-то нужно.

Судя по тому, что в упакованном виде оно занимало 360 метров, избыточность там в тысячи процентов.

Для сравнения: MS VS 2005, с установленной поддержкой x64 и WinCE (под ARM и несколько разных MIPS'ов), с поддержкой прямого соединения с мобильными устройствами и отладки на них, с MFC и ATL, исходниками CRT и еще с какой-то неведомой хренью, которой я никогда не пользовался, занимает меньше двух гигов и состоит из одиннадцати тысяч файлов.


Почему эппл - говно :)
emuzychenko
Мы тут с Алечкой, будучи во Франции, и жестоко страдая от отсутствия нормального интернета, прикупили у местного оператора Free Mobile симку, через которую можно подключаться к их хотспотам FreeWifi_Secure. Опознание (аутентификация) пользователя при этом происходит не по общему паролю, как в привычных нам WEP/WPA, а по SIM-карте (EAP-SIM).

Собственно, опознание по общему для всех паролю для публичных сетей никуда не годится, ибо невозможно контролировать круг допущенных к сети пользователей. Именно для этого и было разработано семейство протоколов EAP, поддерживающих опознание разными способами (по паре "логин/пароль", по ключу, по сертификату, по смарт-карте и т.п.).

В андроиде EAP вообще и EAP-SIM в частности поддерживается еще с 4.x (кстати, в процессе гугления по ключевым словам наткнулся на вселенский стон абонентов Free Mobile в адрес разработчиков андроида). Вставив симку в свой Zopo C2 с практически чистым андроидом 4.2.1 от 2013 года, выбрав из списка сеть FreeWifi_Secure, и указав метод EAP-SIM, я тут же увидел успешное подключение - правда, сама сеть работала через пень-колоду, сигнал был очень слабый, каждые несколько минут она отваливалась. Планшет Samsung GT-P3100 подключиться уже не смог - то ли не хватало мощности сигнала, то ли самсунг уже успел что-то напортачить в андроиде.

Затем симку вставили в Алечкин iPad Air со свежайшей iOS 8, который при выборе сети тупо спросил общий пароль. Поискали вокруг настройку типа аутентификации - не нашли. Тогда ткнули на добавление новой сети, раскрыли список протоколов - там были только WEP/WPA/WPA2, EAP не было вообще. Проделали то же самое на iPhone 5s (с той же iOS 8) - в точности такая же фигня.
Read more...Collapse )

Очередной этап деградации Microsoft
emuzychenko
Захотел скачать свежие киты (WDK, SDK, HCK и т.п.) к Windows 8.1, пошел на сайт MS. Искать ничего не нужно, все лежит в открытом доступе. Но для каждого кита скачивается только web-инсталлятор размером около мегабайта, который уже должен скачать и установить сам кит. Возможности сразу скачать весь кит нет.

Такой подход бесит неимоверно. MS, разумеется, даже не догадывается, что еще далеко не во всех местах на планете имеется бесконечный, круглосуточный и скоростной интернет - например, в деревне мы до сих пор пользуемся мобильным, и проводного в ближайшие годы не предвидится. На тарифе "Безлимит-VIP" МТС дает в месяц 40 Гб, обычно их хватает, но, если я скачаю разом все эти киты общим объемом около десятка гигабайт - может и не хватить. Для этого есть обходной путь: на этом тарифе трафик с часу ночи до восьми утра не учитывается - таким образом можно качать по расписанию, но здесь-то нужно запускать чертов инсталлятор вручную, принимать лицензионное соглашение, указывать конфигурацию и каталог и т.п.
Read more...Collapse )

Феерический дебилизм S7
emuzychenko
Вчера вечером вдумчиво пообщался с сервисом онлайн-продажи билетов на сайте S7. Впечатления - ниже плинтуса.

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

Возможности просто зарегистрироваться на сайте для покупки билетов возможности по-прежнему нет. Можно только зарегистрироваться в программе "S7 приоритет", чтобы получить карту и накапливать на нее мили, там есть "личный кабинет", откуда видны подтвержденные брони. Ладно, зарегистрировался - сайт показывает, что он меня опознает.

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

Выматерились, начали все сначала. Попутно посмотрели FAQ - там упомянута возможность забронировать билеты с отложенной оплатой. Ага, именно то, что нужно. Дошли до заполнения паспортных данных, жму "подставить данные пассажира" - а хрен-то-там, в списке предлагает одного меня, как зарегистрированного на сайте. Получается, опция "запомнить данные пассажира" то ли не работает вообще, то ли срабатывает только в момент реального бронирования - и то, и другое одинаково криво. Кстати, при заполнении всех последующих вариантов заказа я этих чекбоксов для галочек "запомнить" уже не видел.
Read more...Collapse )

Размеры драйверов для винды
emuzychenko
Скачал с Realtek последнюю версию драйвера HD Audio для Vista/Win7. 278 (двести семьдесят восемь) мегабайт. Из них, например, довольно простенькое приложеньице, изображающее из себя панель управления - 10 Мб. Какая-то DLL - 7 Мб, другая - 6, третья - 3. Собственно файл драйвера ядра - 3 Мб. Драйвер, блин! Научите кто-нибудь меня делать в здравом рассудке таких монстров, и объясните, чем в них занимается код такого объема?

Парочка inf-файлов размером по 2.5 Мб, напихивающая в реестр неимоверное количество какой-то дряни в текстовом виде...

Даже MS такая монстроидальность в ядре не снилась. Коллективное помешательство, не иначе.

Хитрожопые баннерщики НГС
emuzychenko
Похоже, самые хитрожопые баннерщики рунета (а то и всего интернета) работают в НГС. На большинстве сайтов баннеры сделаны по-божески - загружаются либо с отдельного домена, либо с выделенного же раздела сервера, отчего подавляются простейшими средствами типа встроенного фильтра Оперы. На НГС же все баннеры грузятся из корня основного сайта, в котором под это дело создаются подкаталоги со случайными именами случайной длины - по адресу такое подавить невозможно, только анализом содержимого.

Сочетание убогого сайта с запредельными амбициями - страшная вещь. :(

Переписка программистов на форуме :)
emuzychenko
<Аноним>:
В старых советских "микропроцессорных наборах", где процессоры буквально собирались из частей, нужная разрядность собиралась из "процессорных элементов" нужного количества.
И такой вопрос — каким образом пишутся микропрограммы для согласованного управления отдельными частями? То, как написать микропрорамму для одного элемента, можно понять из спецификации.

пыщьх:
Ну просто заради интереса, зачем оно вам надо?

TarasCo:
Тут булава на днях упала, разбираются люди ))

Отсюда

Как делаются звуковые драйверы в Realtek :)
emuzychenko
Доделал я наконец версию своей старой программки Audio Repeater, гоняющей звуковой поток с устройства на устройство, для использования интерфейса Kernel Streaming. Интерфейс этот самый низкоуровневый, ниже некуда, потому и эффективность предельная. Используется он редко, в основном программы используют MME, DirectSound, DirectShow и WASAPI, некоторые плейеры имеют плагины, чтоб через него проигрывать, а записывать через него умеют только серьезные звуковые редакторы вроде Audition.

Отлаживал, само собой, на хостовой системе - программа чисто прикладная, в систему не лезет, железо не мучает. Во всех режимах прогнал, и под конец, исключительно для порядка, поставил частоту дискретизации 5000. И мгновенно словил BSOD в звуковом драйвере RTKHDAU.sys (Realtek HD Audio). Для надежности попробовал еще раз - опять BSOD в той же точке.

И тут мне вспомнилось, что три года назад, вскорости после очередного апгрейда, когда в компе завелся встроенный звуковой чип AC'97, попытка записи через MME (waveIn) на частотах дискретизации ниже 8000 приводила к таким же крахам в звуковом драйвере Realtek. Тогда я отослал багрепорт в Realtek, приложил пару минидампов, объяснил, как воспроизвести, добавил, что я сам программист, и меня можно связать напрямую с их программистами. В ответ сначала получил что-то вроде "попробуйте переустановить драйвер, а если не поможет, то систему". Разъярился, подробно объяснил, куда идти с такими советами - помогло, подключился какой-то более вменяемый человек, сначала посоветовал добавить параметр в реестр, затем прислал бета-версию нового драйвера. Ничего не изменилось, поддержка отвечать перестала, да и я им писать перестал - поставил драйвер от nVIDIA, у которого были другие глюки, но систему он не валил. В течение года еще пару раз пробовал ставить драйвер Realtek - он продолжал падать, и я возвращал драйвер nVIDIA. Года через два снова попробовал поставить свежий драйвер Realtek - вроде исправили, падать перестал.

Снова написал письмо в поддержку, приложил минидампы, подчеркнул, что проверять надо именно через Kernel Streaming. В ответ заявили, что не могут воспроизвести на своих компьютерах (не иначе, как тупо запускали что-нибудь, пишущее через MME/DirectSound), прислали программу, делающую дамп состояния звукового чипа, попросили прислать им результат.

Вспомнил, что в ноутбуке тоже стоит кодек HD Audio. Поставил на него этот же драйвер, запустил программу - драйвер упал в той же точке. Сделал дампы с обоих чипов, приложил минидампы ошибок, из которых четко видно, что падает каждый раз в одном и том же месте - даже дураку достаточно, чтоб понять, в чем дело.

Сегодня присылают, как и тогда, бету нового драйвера, которая падает точно так же. Сделал минидампы, отправил им.

Одно из двух: либо у них Самый Крутой Программер, делающий эти драйверы, сидит за глухой защитой из народа попроще, который его потревожить лишний раз боится, либо эти драйверы клепает бригада весьма посредственных программеров, исправляющая ошибки интуитивно, методом последовательного, случайного или логического (в применении научного сомневаюсь) тыка. В пользу последнего говорит размер драйвера (4 мегабайта), что раз этак в 50 больше, чем нужно для управления достаточно несложным чипом.

Боюсь, из-за кризиса всю эту бригаду уволят нах, и не дождусь я исправления бага... :)