Skip to main content

Evgeny Kuznetsov

Суслик, suka, — личность…

4 min read

Ни для кого не секрет, что я пишу и поддерживаю апплет для панели уведомлений (или как вы там system tray переводите), управляющий MateBook-специфичными функциями. Ну, то есть если вы этим интересовались — вы в курсе. Но вам пофиг, поэтому — нет. Это нормально.

Вот тоже загадка: апплет работает (ну, должен работать… вроде бы…) на любых MateBook'ах, где есть Linux. При этом звёзд на GitHub у него почти на порядок меньше, чем у моего же гайда по установке Linux на MateBook 13! Это с учётом того, что на апплет есть ссылки и со страницы гайда, и даже со страницы драйвера для MateBook'ов. Да что там, у гайда больше звёзд, чем у драйвера! На секудночку: гайд по одной модели, драйвер поддерживает не меньше четырёх; драйвер для полноценной жизни на MateBook необходим, при этом у гайда звёзд больше… Это к вопросу о смысле кармадрочерства как концепции и логике «лайкающих» на гитхабе, да.

Ладно, Тьма с ними, со звёздами. Апплет у меня.

Я его, кстати, на Go пишу. Не, я в курсе, что Go для этого не очень предназначен, но мне нравится писать на Go. Работает, опять же… В конце концов, простите за откровенность, на Цэ-плюс-плюсе я бы такое не осилил. А так — вот, есть апплет. Работает даже. Ну, такое…

Мне Go очень нравится. Я как раз пока такие вещи пишу, заодно язык изучаю. На той неделе, вот, окончательно интерфейсы вкурил. Страшная сила — эти интерфейсы в Go, не вдруг въедешь, если до этого почти исключительно на bash да на basic (да, у меня тяжёлое детство было). Зато как врубишься — ну прямо восемь стволов и всё небо в попугаях! Сколько раз в ООП тыкался — нет, от лукавого все эти ихние наследования! А тут прям именно такой полиморфизм, как надо. Шоб работало, и шоб голову не сломать при проектировании простой программки на сотню строк. Вот прям нравится!

А ещё мне очень Test Driven Development заходит, в который Go хорошо умеет. Ну, то есть как — хорошо… Умеет, из коробки, очень прилично. Но у меня вот тут затык вышел.

Апплет мой, он же с драйвером непосредственно через файловую систему взаимодействует; и даже не только через os, а прям вот таки через ioutil. И никак не возьму я в толк: вот как мне это тестить?!

Не, afero — отличная вещь, согласен, но мне не нужна абстракция файловой системы насмерть, у меня область применения — как раз только и исключительно локальная ФС. Ну и если без зависимости не обойтись — я бы предпочёл что попроще, у меня маленький апплет для трея, а не промышленная CRM же. А делать mock файловой системы, да со всеми нужными ответами и поддержкой ioutil — я ж нарушусь, разве нет?

Понимаете, у меня задача-то — проще некуда! Апплет при инициализации должен потыкать в разные места в /sys/ и понять, с какой конфигурацией он работает, и там куча вариантов (и будет ещё больше), и очень хочется под это запилить нормальный table-driven test. Потому что

если тебе вдруг захотелось отладочной информации в консоли — здесь нужен тест, а не дебаг!

Это очень правильная мысль. Верная даже, только не помню, чья. Поэтому мне всего только надо — сделать так, чтобы для тестов симулировались разные варианты состояний в /sys/. Мне не нужно в кросс-платформенность, всё равно у меня чисто линуксовая заморочка. Мне не нужны возможности в перспективе заменить файловую систему на облако. Мне просто нужно для go test получить «песочницу» файловой системы с абсолютными путями — хоть в памяти, хоть в tmpFS, хоть на диске, хоть как.

Я реально себе сегодня всё правое полушарие об это сломал, и полинтерета обгуглил. То ли лыжи не едут…

очень озадаченный суслик

Картинка хамски попячена из презентации Francesc Campoy Flores.

Evgeny Kuznetsov

Google по умолчанию ставит «доверять этому компьютеру» при двухфакторной авторизации. Бесит страшно.

Evgeny Kuznetsov

Android Pay

2 min read

Подключил карту, пришёл в универсам, приложил телефон — работает. Остался один вопрос: а зачем бы оно надо?

Тут ведь какое дело: с одной стороны — да, забавно, можно телефоном заплатить, кошелёк не доставать. А с другой стороны: какие реальные преимущества?

Не таскать с собой кошелёк? Не вариант. Да, Android Pay работает везде, где принимаются бесконтактные карты, вот только даже в Москве их принимают далеко не везде. Где-то приходится карту вставлять в считыватель, в других местах и вовсе без наличных не обойдёшься. А для вылазки утром в субботу в соседнюю «Магнолию» или другой «Перекрёсток» за хлебом всё равно стоит прихватить карту лояльности — тогда что за разница, одну карту брать, или две?

Реальные данные карты не «светятся»? А в чём преимущество? «Светятся» данные виртуальной карты — с тем же именем, выпущенной тем же банком. Банк получает все те же данные о транзакции, с привязкой по месту и времени. Теперь, правда, их получает и Google тоже.

Google, правда, лично я свои данные доверяю с куда большей охотой, чем банку или государству: потенциального вреда от него меньше, а потенциальной пользы — куда больше. Будем надеяться, что получив в реальном времени подробные данные о моих расходах Google будет ещё точнее подгонять под меня результаты поиска, рекламу, подсказки и прочее. В этом, пожалуй, есть смысл. А другого смысла в Android Pay пока никакого не видно…

Будем надеяться, Google этими данными распорядится с пользой для меня.

UPD: Московский метрополитен, кстати, на этом деле хотел попиариться. Получилось как всегда.

Evgeny Kuznetsov

А чего сегодня гуглотаблицы то и дело спотыкаются об Google Finance — это у гугла временные затыки, или всё, Трамп пришёл?

Evgeny Kuznetsov

Dear , could you pretty please make printing emails from a tiny bit more sane? Having to open every time I need to print something out has really been getting on my nerves lately.