История одного бага или почему OutWiker не использует последние версии wxPython

История одного бага или почему OutWiker не использует последние версии wxPython

Пока идет подготовка очередной нестабильной версии OutWiker, я решил написать об одной проблеме, которая меня давно волнует и может стать серьезной проблемой в будущем.

Эту детективную историю начнем с представления действующих лиц. Для отображения страниц OutWiker использует движок Internet Explorer под Windows и WebKit под Linux. Программа OutWiker написана с использованием библиотеки wxPython, которая предоставляет доступ к этим движкам, причем для работы с WebKit используется компонент WebKitGTK+, который используется в таких не самых известных браузерах как Epiphany и Midori. wxPython может использовать разные версии WebKit, это зависит от того, какие пакеты установлены на компьютере, на котором происходит компиляция библиотеки. Если в системе установлен пакет libwebkit2gtk-4.0-dev (я буду использовать в названия пакетов в Ubuntu), то библиотека wxPython будет собрана с поддержкой более новой версии WebKit 2, а если этого пакета в системе нет, но установлен пакет libwebkitgtk-3.0-dev, то будет использоваться WebKit 1. Причем первая версия WebKit уже считается устаревшей и, например, в Arch Linux она не поддерживается, но все еще находится в репозиторях Ubuntu.

Читать далее ‘История одного бага или почему OutWiker не использует последние версии wxPython’ »

Неожиданные проблемы с телефоном Xiaomi Redmi Note 4X

Два дня назад мой телефон Xiaomi redmi note 4x стал себя плохо чувствовать. Все началось с того, что за ночь бездействия он разрядился сразу на 25% и вместе с этим стал нагреваться — датчик температуры аккумулятора показывал 40 градусов. На следующий день я почти не отключал телефон от внешнего аккумулятора. Я пытался понять, что с ним случилось, и кто виноват, но в статистике потребления электроэнергии не было видно ничего подозрительного, хотя заряд аккумулятора таял на глазах. Чуть позже я заметил, что окно с настройками телефона начало подозрительно дёргаться — через каждые несколько секунд оно начало прокручиваться в начало списка параметров. Сначала эти два глюка я не связывал между собой.

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

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

Это меня насторожило, и я полез на форум, где обсуждают Xiaomi. Оказалось, что многие в последние дни стали жаловаться на такие же симптомы, как и у моего телефона — греется и разряжается. Среди кучи сообщений не по теме в качестве предполагаемого виновника указывался Google Duo — приложение для видеочата, которое поставляется по умолчанию. Среди свежих комментариев на Play Market тоже жаловались на повышенное энергопотребление после обновления.

Путей решения было два: удалить обновления Google Duo или отключить это приложение. Поскольку мне это приложение не нужно, то я пошёл по второму пути. К сожалению, без получения прав root полностью удалить это приложение нельзя, но через замаскированные обходные пути его удалось отключить.

Сразу после этого телефон остыл, а потребление аккумулятора нормализовалось.

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

Приключения с установкой Ubuntu 18.04

Приключения с установкой Ubuntu 18.04

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

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

Читать далее ‘Приключения с установкой Ubuntu 18.04’ »

История одного глюка или дело о букве «Р»

История одного глюка или дело о букве "Р"

На днях столкнулся со странным глюком, найденным в OutWiker‘е, на исправление которого вместе с поимкой виновника ушло два вечера.

Не буду долго описывать то, как я наткнулся на этот глюк, лучше перейдем сразу к его сути. А суть состоит в том, что для хранения и парсинга настроек страниц в программе используется стандартный класс ConfigParser (с некоторой тонкой оболочкой над ним, но в данном случае это не важно) — очень уж в нем удобно разбирать строки вида xxx = yyy. Так вот, неожиданно оказалось, что если yyy кончается на русскую букву «Р», то при преобразовании yyy в unicode бросается исключение о том, что кодек utf8 не может преобразовать строку, так как данные неожиданно закончились (‘utf8’ codec can’t decode byte 0xd0 in position __: unexpected end of data). Причем, в середине строки буква «Р» нормально преобразовывалась. Добавление пробела к концу строки, которая кончалась на «Р», ничего не дало, зато навело на мысль, что дело может быть в обрезании строки при выкидывания начальных и концевых пробелов, переводов строк и т.п. При этом все остальные русские буквы на конце обрабатывались без проблем.

Читать далее ‘История одного глюка или дело о букве «Р»’ »

Баг или очередной развод?

Началось все примерно месяц назад, когда мой папа через автомат решил положить деньги на два билайновких телефона. На первый номер деньги поступили практически сразу, а на второй все не приходили и не приходили. Чек он сохранил, номер телефона на нем был написан правильный. Тогда он позвонил в службу поддержки, телефон которой написан на чеке, и там ему сказали, что оказывается он деньги положил не на Билайн, а на Корбину (есть такой провайдер в Москве). В техподдержке сказали, что они могут перевести эти деньги на Билайн, что они и сделали, после чего деньги пришли по назначению. Папа, конечно, удивился, как можно было перепутать кнопки, особенно если они находятся в разных разделах, и забыл об этом.

И вот вчера он решил тоже положить деньги на телефон. Я был с ним, поэтому через плечо смотрю, что он набирает, и набирал он все правильно. И вдруг на экране, на котором надо подтвердить, что номер набран правильно, рядом с номером телефона красуется надпись: «Corbina». Я показываю на эту надпись папе, он удивляется и решает повторить попытку, вдруг действительно что-то напутал.

Повторяет все действия уже более аккуратно, дело доходит до ввода номера телефона, я обращаю внимание на то, что над нарисованной цифровой клавиатурой, с помощью которой надо набирать номер, висит логотип Билайна. Но как только папа ввел последнюю цифру номера, этот логотип меняется на логотип Корбины.

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

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