Skip to main content

Evgeny Kuznetsov

Не читайте классиков!

1 min read

Были нынче на «Дяде Ване» в театре Вахтангова. Очень качественный спектакль, и Маковецкий чудо как хорош.

Вдруг подумалось: как славно, что мало читают классиков! После вдумчивого чтения Антона Палыча всякому приличному человеку кроме самоубийства ничего не остаётся; если б его наш народ массово читал, у нас бы и людей приличных не осталось давно!

Хотя постойте...

Чехов как есть

Evgeny Kuznetsov

Oldie but goldie к вступлению 90-ФЗ в силу.
https://youtu.be/E7KiIWup7mc

Evgeny Kuznetsov

Защем ругаисси, насяльника?!

Защем ругаисси, насяльника?!

Лючок поставили нормальнама, замок сделали, как сказал!

Evgeny Kuznetsov

podsaver

1 min read

Написал маленькую полезную софтину, которая вряд ли кому кроме меня пригодится.

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

На самом деле, писалось даже больше ради процесса и освоения языка, так-то задачу наверняка можно было решить уже существующими средствами. Зато решил в процессе пару интересных и новых для себя задачек, вкурил поплотнее работу с потоками данных в Go, и ужаснулся тому, как устроен HTTP. Бесполезных знаний, как известно, не бывает…

В общем, если вам вдруг придёт в голову делать локальный архив любимого подкаста, а в софтине для этого чего-то не хватит — открывайте тикеты, всё лежит на GitHub'е.

подкасты — силаPhoto by William Iven on Unsplash

Evgeny Kuznetsov

Жизнь курьера и опасна и трудна

1 min read

Когда курьер, который везёт тебе еду, застревает в лифте на твоём этаже, обидно не только курьеру, но и тебе: из лифта же вкусно пахнет, а еда остывает…

Правда, толковый курьер способен за три минуты выбраться из лифта; еда в итоге остаётся горячей, аппетит только разыгрывается, и то, что могло стать трагедией, превращается в забавное приключение.

Я поэтому всегда стараюсь еду заказывать там, где курьеры толковые.

курьер в застрявшем лифте

Evgeny Kuznetsov

МегаФон: как заставить VoLTE работать

6 min read

Лет восемь назад, когда я впервые прочёл о технологии Voice over LTE (VoLTE), у меня возникло только два вопроса: почему оно не прикручено к 4G по умолчанию и когда же уже, наконец. Уже тогда было понятно, что связь — это интернет, что вшитые в стандарт GSM способы звонить и передавать текст безнадёжно устарели и никому не нужны, и что вот этот многофункциональный компьютер-коммуникатор, который мы по старинке  называем «мобильным телефоном», должен просто иметь доступ в Сеть — всё равно, через оператора или через WiFi — и уже посредством Сети обеспечивать весь остальной функционал. Тяжёлое наследие первых версий GSM, когда голосовой звонок занимает весь канал и отключает доступ в интернет, не говоря уже об SMS как технологии — это именно тяжёлое наследие тех времён, когда по-другому сделать не получалось, и от этого всего надо избавляться. В стандарте 4G/LTE голосовой связи не предусмотрено вовсе; для того, чтобы совершить звонок, телефону надо переключиться в один из «старых» режимов (3G, 2G)… Или — Voice over LTE, голос в виде интернет-трафика. А в идеале — ещё и Voice over WiFi, когда тот же звонок можно вообще без сети оператора совершить.

Кстати, этот самый Voice over WiFi в исполнении МТС я не так давно наблюдал вживую. Любимая жена, не желая тратить денег на роуминг и желая в кои-то веки действительно отдохнуть, как включила авиарежим в Домодедово, так и не отключала его всё путешествие, но WiFi, конечно, включала — куда ж без интернета-то. Видели б вы наши лица, когда в номере отеля её телефон вдруг зазвонил — с «самолётиком» на экране! Быстрый гуглёж помог удостовериться, что лишних денег это стоить не будет, с точки зрения МТС телефон всё равно что в Москве, так что там, где был доступ к WiFi, жена спокойно разговаривала по телефону при необходимости. А я, увидев будущее в действии, осерчал на МегаФон и решил разбираться…

Кажется, первым моим телефоном, который поддерживал VoLTE, был Sony Xperia Z3, и было это уже довольно давно. Помню, я сразу столкнулся с проблемой: телефон ждёт звонка через VoLTE, сеть же пытается «пропихнуть» звонок в 3G, но телефон именно в этот момент что-то шлёт через интернет — в общем, примерно в половине случаев (а при активном пользовании телефоном — так и чаще) звонок до меня просто не доходил, а доходила — секундой позже — SMSка: мол, вам вот только что звонили. Поддержка МегаФона тут же объяснила, что в VoLTE МегаФон не умеет, и неизвестно когда будет, а в 4G — активно, поэтому телефону в настройках надо этот самый VoLTE запретить, иначе в сети 4G он становится аналогом телефонной будки: позвонить куда — пожалуйста, а вот принять звонок — проблема. Ну, нет — так нет, тогда из наших операторов в VoLTE не умел никто, отключаем, ждём.

Телефон я с тех пор сменил не раз и не два, и всякий раз, получая первую SMSку про «вам секунду назад не дозвонились», хлопал себя по лбу и лез в настройки, отключать VoLTE. С телефоном, который у меня сейчас, тоже так было. И вот теперь, после наглядной демонстрации даже не VoLTE, а VoWiFi от МТС, я заглядываю в интернет и с удивлением обнаруживаю, что VoLTE-то у МегаФона (хотя бы и только в Москве) — есть! Причём уже некоторое время есть. Причём на момент появления у меня этого телефона тоже уже было. Больше того, знающие люди пишут, что с запуском VoLTE по Москве МегаФон стал активнее деприоритизировать голосовой трафик (освобождая каналы под интернет) — так вот отчего в последний год так часто вспоминаются слова Тимака:

Странное название для сотовой компании: «мегафон» — это ведь когда очень громко и ни хрена не разберёшь. Впрочем, их-то связь название оправдывает полностью.

Почему же VoLTE нет у меня?! Прямо на сайте предлагают код для проверки, годятся ли аппарат и SIM — пробуем…

SMS от Мегафона: с картой и телефоном всё хорошо

Гм. Нет, так-то у меня этот их 4G+ работает беспроблемно (я, помнится, как раз SIM менял тогда, чтобы у меня 4G завелось), но где же VoLTE? Звоню в поддержку: ну да, должно работать, попробуйте поменять SIM, она у вас несколько лет уже, могла размагнититься со временем… Кажется, я на этого деятеля матом огрызнулся даже; я когда слышу про «SIM размагничивается», у меня забрало падает моментально — я вообще некомпетеность в рамках должностных обязанностей болезненно воспринимаю, а уж когда микросхемы размагничиваются или, к примеру, «эффект памяти» в литиевых аккумуляторах возникает — вообще неадекватный становлюсь.

Как только вернулись на денёк в Москву, иду в салон. В салоне очередь на час, стойка «VIP-клиентов» вообще не работает — ну, МегаФон, представляете, бывали наверняка. В салоне тоже полчаса пытались понять, в чём проблема, даже на телефон спихнуть пытались, в итоге, опять же, ничего умнее, чем поменять SIM, не придумали. Ладно, меняем, чего уж, раз всё равно пришёл.

С заменой SIM, кстати, у МегаФона тонкость: ровно сутки SMS ходить не будут. Никакие, вообще. И не ждите, что через сутки они все скопом дойдут — нет, не дойдут, никогда, они сразу в /dev/null отправились. Сделано это, вероятно, для того, чтобы в случае неавторизованной замены успеть добежать до салона и откатить всё в исходное, пока злодеи через SMS доступ к банкам и прочим аккаунтам не получили. Такой себе выход, честно говоря, но лучше, чем ничего. Вообще SMS как фактор аутентификации — очень плохая идея, но, к несчастью, частенько — безальтернативная. Ничего, голосовую связь по GSM окончательно похороним — и до SMS доберёмся; вот уж технология, которую заждались на свалке истории!

В салоне МегаФон, кстати, тонкого предмета или даже скрепки для замены SIM не нашлось — собственно, чего мы хотели, крупный оператор, «большая тройка», откуда бы?.. Благо, как раз до дома старая SIM ещё дотянула, а дома воткнул новую. Что бы вы думали?!

индикатор работающего режима VoLTE

Бинго! Всё завелось сразу, всё работает, в самом деле в SIM было дело. Правда, как видно из SMS выше, понять это был не в состоянии даже сам МегаФон. И улучшение качества голосовой связи заметно мгновенно, что есть — то есть.

Конечно, за МКАДом этот VoLTE мгновенно превращается в тыкву. Конечно, никаким Voice over WiFi, как у МТС, в МегаФоне и не пахнет. Хотя…

Хотя чего, собственно, ждать от могучего оператора с самым быстрым интернетом, который в 2019 году никак не научится сведения о часовом поясе в GSM-сеть передавать?! Кстати, вот сколько езжу по миру, во всех остальных сетях это делается, всеми операторами, только в России приходится часовой пояс вручную выставлять. А куда деваться: будущее зависит от тебя, вот и засучи рукава…

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

Ох, покатаемся завтра…

1 min read

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

винтажный SchnauffОщущения от пробного заезда до родительского дома оч-чень интересные. Как на нём ехать в толпе, пока представление имею смутное, но весело будет точно! Ох, не разложиться бы завтра на этой штуке по мокрому-то — дождь ведь обещают…

Evgeny Kuznetsov

Evgeny Kuznetsov

не работает СОВСЕМ

не работает СОВСЕМ

А то так-то хрен догадаешься же...