bash.im ithappens.me zadolba.li

Программы

13377

Стокгольмский синдром

Эникею в одной фирмочке. Звонит клиент — много рекламы. Чепуха, сто раз вычищал, могу уже тем ушлым «разработчикам» советы давать.

Подключаюсь, вычищаю паразитные расширения браузеров, процессы, запущенные из юзерского AppData, и вообще весь левый софт, включая спутники, менеджеры браузеров и прочий хлам. Да, так уж вышло, что приходится давать администраторов. Отключаюсь от компа, пишу в локальный IM, мол, проблема решена. Вдруг вспоминаю, что забыл проверить ярлыки на браузеры (иная падаль любит туда что-то гадкое прописать). Без лишних слов подключаюсь, благо времени прошла минута и клиент мог и не расценить остановку курсора как сигнал об окончании работ. А на экране — батюшки! — установка Амиго! Волосы встают дыбом от осознания профессионализма клиента в хватании всякой дряни. Негнущимися от испуга пальцами набираю его внутренний номер:

— Добрый день, это из IT. Я почистил компьютер, всё в порядке, но сейчас заметил установку Амиго. Скажите, это вы его устанавливаете?

— Да.

— Сознательно?

— Да.

Тут я промолчал секунд двадцать.

— Это, как бы выразиться, не очень хороший браузер. Более того, половину мусора на ваш ПК протащил именно он.

— Я догадывался.

— Но почему вы им пользуетесь?!

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

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

13344

Плодитесь и размножайтесь

Обновил программу, читаю список обновлений. В графе «Исправления ошибок»:

Исправлено множество старых ошибок.

Добавлено множество новых ошибок.

Такой честной проги я ещё не видел.

13211

Буй вам прямо по курсу

Почему бы благородному дону на сон грядущий не обновить софт на своём смартфоне под управлением Корпорации Добра?

00:10. Акт первый, вступление. Обновилось всё, кроме популярного мессенджера в лилово-сиреневых тонах: «Недостаточно памяти на устройстве». Ещё две попытки — с аналогичным результатом.

00:35. Память очищена, лишний софт удалён. «Не удалось установить на USB-накопитель или SD-карту». С чего бы это?

01:00. Акт второй, завязка. Ещё одна (точнее, далеко не одна) попытка. Удалено почти всё, чтобы сиреневая сволочь весом в 32 мегабайта чувствовала себя вольготно и не выёживалась. Полгига вроде же должно хватить, правда? А вот буй вам прямо по курсу! «Не удалось установить…»

01:15. Сиреневая сволочь старой версии сносится с телефона: а вдруг это она стопорит процесс? Нет, эффект ровно такой же. Стоп! SD-карта, говорите?

Антракт.

01:40. Акт третий, танцы с бубнами. Карта извлечена, телефон перезагружен (процесс перезагрузки — отдельное действо, ибо кнопка сломана) — результата нет. Сиреневая скотина упорно не желает ставиться.

02:00. Где наша не пропадала — возьмём .apk в чистом виде и попробуем подсунуть упрямой железке. Заодно поставим софт, позволяющие перезагружать аппарат из меню… «Ребутный» софт встал и заработал с полпинка, сиреневый гад бодро отрапортовал: «Не удалось…» Глюк тебе в код, да что ж это такое?!

02:15. На помощь призван поисковик с большой русской буквы. Но — увы и ах — сделанный по инструкции откат магазина приложений на N версий назад не помог. А делать полный сброс телефона не хочется от слова «совершенно». По помещению медленно растекается аромат кипящих мозгов.

02:40. Акт последний, победно-нецензурный. Берём .apk версии помладше, скармливаем девайсу… О, что это? Неужели «Приложение установлено»? Ура-а-а! Господа, ваши аплодисменты! Представление окончено!

Чуть позже за кулисами…

02:50. Эй, а где? Что-то его не видно ни в меню, ни в Recent… Ладно, перезагрузим и поищем.

03:00. Сиреневая сволочь нашлась и требует обновлений. Пробуем… «Не удалось установить на USB-накопитель или SD-карту». Не хочешь обновляться, значит? Как скажешь!

03:02. Отключение обновления. Не, к чёрту такие спектакли! Даже скайп нервно курит в сторонке — его выходки на этом фоне кажутся милыми детскими шалостями.

03:04. Ладно, вопрос с сиреневой заразой решён. А почему бы теперь благородному дону не поведать о случившемся другим, не менее благородным донам и дуэньям?

13121

Помощи помощникам!

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

Сижу, пишу код, отлаживаю. В очередной раз баг: система уходит в бесконечную рекурсию, бодренько выжирая оперативную память и своп. Как должна себя повести программа в таком случае? Выжрав всю память, она должна упасть в «корку» и больше не подняться. Ну, так обычно кривые программы ведут себя на серверах.

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

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

Бида-бида! Мало того, что упала какая-то там программа — теперь падает и наша система помощи. Ей срочно нужно помочь!

Запускается вторая копия: поднимается интерпретатор, начинают обрабатываться скрипты… Удивительно, но памяти опять не хватает.

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

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

А всё потому, что чрезмерная инициативность железяки — зло!