Секретка в кнопке включения — это хорошо и правильно. Вот только «но» тут не одно.
Корпуса современных аппаратов редко рассчитаны на установку дополнительных элементов, а особо «продвинутые» совмещают кнопку включения питания с чем-то ещё, превращая два контакта в многожильный шлейф.
Удобство использования под вопросом. Вживлять магнит для геркона в кольцо или постоянно носить его в кармане, доставая всякий раз? А в случае утери что делать? В общем, не айс.
Кто и за какую мзду будет вшивать эту «секретку» в телефон, особенно с учётом пункта 1? Где гарантия, что местные Левши и Кулибины сделают всё по уму, а не как левая пятка прикажет? Да и стоимость работ (с учётом специфики) вряд ли обрадует, что резко понижает рентабельность.
Но при правильной реализации такая закладка может сослужить добрую службу. Проверено лично.
В результате работы Homo Rukozhopus (я менял себе разбитое стекло) мой телефон приобрёл особенность: кнопку включения нужно было давить очень сильно (лучше — часовой отвёрткой или зубами). После настройки софта для переназначения клавиш и покупки китайского чехла (без чётко пропечатанных кнопок) плюсы стали очевидными:
резко упало количество желающих поиграться: «Не включа-ается!»;
на блокпостах (при проверке документов там частенько требуют и телефоны) «сломанный» аппарат ни у кого не вызывает вопросов;
если вытащить батарею, без опыта включить телефон очень непросто. Точнее, почти невозможно. Пару раз спасало.
Есть, конечно, и минус такого решения: софт таки тянет батарею и занимает память. Но 5 мегабайт при гигабайте ОЗУ погоды не делают, правда? Да и это точно дешевле, чем покупать новую запчасть.
Вряд ли кто-то станет рубить дерево молотком. То есть по скудоумию, конечно, может попробовать, но ведь не получится.
Точно так же неудобно рубить дерево обухом топора. Тут вообще почти парадокс. Инструмент-то подходящий. Смотрит такой (ну, назовём его эникеем) на топор, на картинки из мануала — всё ж подходит. Вот дерево, вот инструмент для рубки деревьев, а оно не рубит. Никак. А почему? Да потому, что дерево рубят другой стороной топора.
Мало того, что наш герой рубит деревья молотком или обухом топора, так он ещё и сразу бежит к ближайшему пригорку и с него поднимает крик о том, что вот, дескать, купил молоток, а он не рубит. «Тоже мне кузнец, — говорит герой, — делает молотки, которыми рубить деревья вообще невозможно». Мол, я хотел срубить дерево молотком, а как? Не получается! А про топоры вообще говорить не приходится. И, главное, негодяй такой, совести хватает рассказывать, что топорами хорошо деревья рубить. Да ничего подобного! Купили мы на фирму два топора, я обухом бил-бил по дереву — ничего! Без толку! Лучше бы резиновым фаллоимитатором колотил — больше пользы было бы. Осталось ощущение, будто кузнец лично надо мной надругался.
То ли дело — лобзик из набора «Сделай сам»! Да, долго, да, неудобно, да, ломается постоянно, но ведь работает же! А сломанную пилку я сам заменить могу. В прошлом месяце такую сосну им спилил — закачаешься.
Понаделали, понимаешь, гламурных топоров с блестящими лезвиями, ходят лесорубы, понтуются ими. Нет, чтобы с лобзиками ходили. Да, а кузнец знаете сколько за свои топоры просит? Совести нет совсем! За гламурные блестящие топоры, которыми я не могу ни одного дерева срубить, такие деньжищи!
Я надеюсь, аллегорию все поняли? Разъяснять не нужно, потому что, во-первых, потеряется весь смысл, а во-вторых, тем, кто не понял, разъяснять и не нужно.
Делаем большой интересный серверный проект. В прошлом месяце начальство внезапно постановило: нужно, чтобы сервер умел вставать на паузу! Ну, и ТЗ, как он это должен делать. В частности, перед уходом на паузу сервер должен успеть обработать и выдать все принятые пакеты. Архитектура многопоточная: сетевой поток, занимающийся как отправкой, так и приёмом пакетов, UI-поток, принимающий и обрабатывающий пользовательские команды, SQLworkers, UtilityWorkers и куча рабочих потоков.
Все потоки умеют обмениваться данными только через очередь сообщений. Поэтому, как только добавлено новое сообщение в очередь, поток снимается с паузы, шлёт запрос потоку UI — надо ли ему становиться на паузу, потом обрабатывает сообщение и нормально работает, пока не придёт пакет с подтверждением паузы. Но ТЗ есть, так что мы его тупо реализуем, не особо задумываясь.
Реализовали, отправили тестировщикам. На следующий день пришёл ответ.
Я был сильно озадачен результатом применения паузы под серьёзной нагрузкой. Сперва поток UI рассылает всем приказ встать на паузу, затем сам становится на паузу. NetWorker моментально становится на паузу: он очень быстро всё принимает и отправляет. Воркеры так же быстро становятся на паузу, а вот один из SQLworkers при обработке запросов
INSERT/UPDATE [имя очень тяжёлой таблицы]
может очень долго ждать ответа от БД. И как только он его получит, он сделает запись в лог об этом, разбудив поток UtilityWorker, потом кидает результат в общий пул сообщений, разбудив пул воркеров, потом этот пакет будит NetWorker. В то же время поток UIworker не пробуждается от запроса в очередь сообщений.
В итоге мы получаем полностью рабочий сервис со спящим потоком UIworker, разбудить который может только пользователь… Который сделать этого не может, ибо спящий UIworker не обрабатывает поступающие команды.
«Секретка» — штука, знакомая многим водителям. Конечно, применять её вместо сигнализации может лишь очень отчаянный человек, но в дополнение — очень эффективно.
А почему же этот приём неведом владельцам смартфонов? Даже простой геркон последовательно с кнопкой разблокировки обескуражит процентов 70 воришек, а это не так уж мало. Ну вот, один секрет — больше не секрет, но можно других напридумывать сколько угодно.
Если бы не одно «но». Гарантийный аппарат установка «секретки» лишит гарантии, а послегарантийные воришек интересуют в меньшей степени.
Нынче популярны тенденции сравнивать девайсы с инструментами, притом с самыми разнообразными, начиная от высокоточных и заканчивая игрушками для самоудовлетворения. Но любой инструмент наиболее эффективен, когда применяется по назначению. Нет, конечно, и гвозди можно забивать микроскопом, но как-то молотком сподручнее. Да и молоток лучше держать за рукоять, а не пытаться забивать шурупы, схватившись за голову.
Если уж так, то мне милее сравнение устройства не с отдельным инструментом, а скорее с набором в красивом чемодане с вкладками.
Вот автору надо было забить гвоздь (выставить планшет в режиме киоска), а нужного молотка не оказалось на виду. Конечно, для порядку покопавшись в верхнем слое, легче бежать искать молотки в стороне, а не спросить, как найти нужный молоток, и приподнять прокладку. Можно было просто включить Guided Access — и вовсе не обязательно бежать к соседней полке с неизвестным инструментарием.
В связи с этим хочу поделиться и своим случаем.
Гуляя по одному из торговых комплексов одной из европейских столиц в поисках нужного мне заведения, я подошёл к стойке с информацией. Ни одной живой души там не было, да и местным языком я не владею. К счастью, на стойке была пара «яблочных» планшетов, упакованных в пластик, чтоб исключить нажатия аппаратных кнопок. На планшетах запущено приложение для навигации по торговому центру с многоязычным интерфейсом. Отыскав нужный мне пункт, я решил проверить, а вдруг и почту можно глянуть тут же, не отходя от стойки. Щипок по экрану — и вуаля: home screen со всеми плюшками. Сафари, Баш — есть контакт! Быстро пролистнув свежие цитаты, решил не привлекать внимания охраны, вернул приложение обратно. Это, конечно, не интернет на круизном лайнере, но тоже неплохой вариант. Всяко дешевле, чем в роуминге.
Так что, господа, не ленитесь изучать содержимое своего тулбокса. Кто знает, когда может понадобиться то или иное хитрое свёрлышко или бит в форме девятиконечной звёздочки… И не спешите обкладывать его силиконовыми розовыми прибамбасами.
В среде «настоящих программистов» бытует мнение, что одна известная операционная система ввиду особенностей своей архитектуры склонна к багам и глюкам, а вот другая — ого-го! Надёжная, как танк, хоть и не особо распространённая среди рядовых пользователей. Ну, в общем, что-то в этом есть; во всяком случае, сам я пользуюсь исключительно второй, мне так удобнее. Но история эта будет о том, как непродуманность в деталях может испортить даже надёжную систему.
Сижу, пишу код, отлаживаю. В очередной раз баг: система уходит в бесконечную рекурсию, бодренько выжирая оперативную память и своп. Как должна себя повести программа в таком случае? Выжрав всю память, она должна упасть в «корку» и больше не подняться. Ну, так обычно кривые программы ведут себя на серверах.
Но так будет скучно, неинтересно и без всякой интриги. Ведь в нашей ОС, слегка заточенной для удобства юзера, есть замечательная система, предназначенная для перехвата подобных событий и информирования разработчиков о проблеме!
Программа выкушала всю память, собралась тихо умереть — и вот тут-то на помощь спешит наша система помощи разработчикам. Поскольку написана она на модном нынче змеевидном интерпретируемом языке, просто так запуститься она не может: поднимается интерпретатор, начинают обрабатываться скрипты с кучей библиотек. Но что-то идёт не так: памяти-то нет.
Бида-бида! Мало того, что упала какая-то там программа — теперь падает и наша система помощи. Ей срочно нужно помочь!
Запускается вторая копия: поднимается интерпретатор, начинают обрабатываться скрипты… Удивительно, но памяти опять не хватает.
Несчастная глючная программа уже давно убита, но бой за память продолжается: один за другим стартуют экземпляры системы и погибают в неравной борьбе за ресурсы.
Прекратить это безобразие удалось лишь путём прицельного убийства всех подозрительных процессов. Отправить отчёт об ошибке разработчикам они так и не смогли, но зато хоть работоспособность компьютера восстановилась.
А всё потому, что чрезмерная инициативность железяки — зло!
Есть ОС реального времени, а есть остальные. Виды человеческой деятельности тоже делятся по этому критерию. Одни требуют молниеносной реакции (водитель, лётчик). Кто этим качеством не наделён, тому они противопоказаны. Другие таковой не требуют (программист, переводчик, телемастер). Они даже могут быть опасными, как в случае с телемастером, но избежать опасности в них можно и без быстрой реакции.
Смартфон — не самолёт. Ваш К. О. От его интерфейса требуется обеспечение не быстроты реакции пользователя, а его длительной неутомляемости. Но причём здесь лаунчер? Сколько процентов времени пользователь любой мобильной ОС проводит за ним? Согласно старому анекдоту, IE — полезный инструмент для скачивания браузеров. И лаунчер — полезный инструмент для запуска приложений.
Вот и эргономику обеспечивать — задача разработчиков не лаунчеров, а приложений. А на лаунчере могут оторваться художники. Как хотят, не задумываясь особо об эргономике. Главное — сделать хорошо заметной кнопку экстренного вызова, о чём почему-то не позаботился никто из трёх лидеров рынка мобильных ОС. В остальном — хоть Дали передразнивайте!
А вот тем, кто пишет приложения, стоит попробовать попользоваться своими разработками самим. И станет ясно, где и что лучше сделать удобнее.
После роутера, плеера и этой вашей «семёрки» решил подруге поставить кошерную систему с бубном на логотипе, тем более что у неё новенький ноут. Поставить поставил, но настроить всё не успел: время поджимало.
Звонит подруга и жалуется: мол, не хватает места на файлы со старой машинки. Копирует банально на рабочий стол (админы, молчать!) более 50 гиг, тогда как под систему отведено лишь 20.
Прошу дать трансляцию экрана скайпом, объясняю, где найти примонтированный раздел с красноречивым названием
/userdata
, как вытащить ярлычок на рабочий стол, как выставить права на папку для определённой учетки. Вроде всё, начинается копирование с внешнего жёсткого — валятся ошибки на отсутствие доступа, отсутствие файлов и отсутствие отсутствия. WTF?!
Прошу переподключить винт — те же яйца, только в профиль. Грешу на USB, но опознается же! Тупо смотрю на свой ноут той же серии, только постарше — конфигурация USB почти идентична.
Идея! Уточняю — оказывается, да, жёсткий умеет данные по одному кабелю, питание — по другому. Подруга делает несложную рокировку — voilà! Копирование идёт без ошибок.
Ауру на всякий случай не гашу, а то мало ли… Ну, и кто теперь скажет, что филологи ни рожна понимают в этих наших линуксах?
Работаю в большом IT-отделе большой компании. Месяц назад руководство отдела заметило необычную сетевую активность с одного из ПК во внерабочее время. Полетели теории заговора, крики о взломе и краже конфиденциальной информации. Начали внутреннее расследование.
Во внерабочее время к корпоративной сети по внутреннему VPN подключался некий пользователь и активно использовал определённый ПК. Проверили логи машины — подключение происходило по RDP. У пользователей во внерабочее время есть доступ к своим ПК по этому протоколу. Начали отслеживать источник VPN; адрес оказался в списке доверенных, там же нашлось имя владельца. Разыскали сотрудника (оказался один из сотрудников IT-отдела), начали расспрос.
Сотрудник принципиально не хотел иметь дома Windows и разбираться с эмулятором, но любил играть в старые Windows-only игрушки (типа Fallout). Выбрав в жертвы ничем не примечательный комп, он создал на нём локальную учётную запись и играл в любимые игры, подключаясь по RDP.
Конечно, в этом не было ничего криминального, но сотрудника уволили за установку и использование игрового ПО на рабочем ПК.
Сравниваем «плиточный» интерфейс и эргономику кабины пилота? Отлично! Тогда я расскажу, как будет выглядеть кабина в современном «плиточном» стиле.
Во-первых, кнопки и тумблеры вы больше не нащупаете. Вероятность задымления кабины? Тактильный контакт с кнопкой? Нет, не слышали. И пылинку смахнуть больше не сможете, не нажав какую-нибудь пиктограмму. Взглянув на «доплиточную» кабину, дизайнер интерфейсов придёт в священный ужас и закричит: «Упрощать! Слишком много визуального мусора!» Одновременно должно быть видно от 5 до 15 кнопок, не больше. Но крупных! И с большими полями между ними. Нажали «Автопилот» — попали на экран настройки автопилота. Хотите посмотреть режим двигателя? Нажмите «Главное меню» или «Назад», потом плитку «Двигатели», затем подержите пять секунд палец на плитке нужного двигателя. Обороты и давление масла вам покажут бегунками белого цвета на светло-сером фоне. Никаких цифр, цифры — визуальный шум! Но радара с грозовым фронтом при этом опять не видно, на него нужно специально переключаться. Хотя и в режиме радара, и при просмотре двигателей на приборной панели много свободного места. Но большие поля по краям — хорошо, а много приборов одновременно — плохо.
Хотите оценить состояние нескольких приборов и не лазать по меню? Вот специальная анимированная плитка. Показывает одно-два значения за раз, через секунду переключается на следующий прибор. Полный цикл за 20 секунд. Вот ещё одна анимированная плитка, показывает двигающиеся разноцветные квадратики и лампочки. Это управление освещением салона. Если отвлекает, плитку можно спрятать. Но тогда, чтобы включить табло «Пристегните ремни», придётся прокрутить длинный-длинный список всех возможных плиток. Или полазать по многоэтажному меню. Ещё пару крупных и заметных плиток спрятать не получится. Одна, с прыгающим жёлтым колобком, позволяет отправлять в пассажирский салон на специальное табло смайлики. Все любят смайлики! Вторая — «Поиск по соцсетям», тоже анимированная, поочерёдно показывает ребёнка в солнечных очках, негра в бейсболке и даму в деловом костюме.
Шрифт тоже будет крупным. Если название опции или пункта прибытия не поместилось, увидите первые две буквы и многоточие. Да, на кнопке диагональю 10 см.
В произвольные моменты времени система начинает изрядно подлагивать: ставятся обновления. Иногда на взлёте или посадке, как повезёт. А кнопки сразу после обновления могут поменять форму и цвет. В следующем сезоне в моде будут кругленькие.