Крыса

А вот ещё история с утренней прогулки. Завершаем её сегодня, идём по улице Краснослободской, а впереди что-то мелкое перебегает дорогу. Простейший рассчёт траекторий показывает, что мы с этим мелким пересечёмся. Ну ок, думаю, понюхает Морган очередного ежа. А у «ежа» вдруг становится виден длюннющий хвост, так что никакой это не ёж, а очень даже крыса! Мы ей совершенно безразличны, в панику впадать и убегать даже не думает. Пёс, разумеется, проявляет великий интерес, я ему потакаю и даю понюхать. Крыса начинает вести себя как хорёк, то есть прыгает и пытается кусануть его в нос, потом и вовсе в мою сторону идёт. Так как планов подцепить бешенство холодным октябрьским утром у меня не было, приходится валить. Крыса продолжает переходить дорогу, я тащу Моргана, Морган порывается втащить крысе.
И ни в какой Бангкок даже лететь не пришлось, удобно!

Светодиоды

В городе ставят таймеры обратного отсчёта на светофорах. Очень нужная и удобная вещь, а то вечно подойдёшь к пешеходному переходу на Баррикадной/Рабоче-Крестьянской, горит красный, и тут есть два варианта. Первый: плюёшь и идёшь до следующего, на Огарёва, а за спиной у тебя тут же загорается зелёный. Второй: остаёшься ждать зелёного и ждёшь его по ощущениям минуты две, но не уходишь, ибо тут же случится первый вариант. В обоих случаях испытываю лютое бешенство. Теперь же всё видно на подходе, стоит ли ждать или идти дальше. Но светят эти таймеры ояебу — светодиоды, как из фонаря для энкаунтера. Смотреть приходится мельком, потом можно просто закрыть глаза, время уже на сетчатке выжжено. Понятно, что всё это вблизи светофора. Но сегодня утром я заценил яркость в полной мере.
Гулять с псом выхожу в 5 с копейками утра, солнышко уже ещё не взошло, более того, взойдёт не так уж скоро, так что на улице стоят сумерки. И иду я во тьме по Баррикадной вниз, глядь, а забор впереди как-то мигает — то зеленоватый, то нет. Ай да светофор! 315 метров от перекрёстка до того забора, а света хватает чтоб чуточку, но подсветить. А возвращаюсь по той же Баррикадной, но уже сверху, так все знаки и номера припаркованных машин отсвечивают тем же зелёным.
Очень качественные светодиоды.

Вынесение порицания андроиду

Понегодую-ка на андроид с явой. Нубство, наверное, но чего уж, я в первый раз столкнулся.
В двух словах, как пишется приложение? Один экран это одна так называемая активность. Состоит из xml файла с описанием внешнего вида (кнопок, картинок, текстовых полейи всего такого) и файла с собственно кодом на яве. Без явы всё просто выглядит, но ничего не понажимаешь, а без xml что-то там наверное работает, но результатов не видно. Как-то так.
И в двух словах, как работает кнопка? Кнопке надо назначить обработчик. Функция, которая будет вызываться по нажатию на кнопку. Назначить обработчик можно в коде — сначала создать объект типа кнопка, потом найти по идентификатору из разметки нарисованную кнопку и дать понять, что это одно и то же. Потом собственно присовить обработчик. А можно в xml к кнопке добавить всего одну строчку:
android:onClick=»Ololo»
Ololo это и будет именем функции, которая вызовется по клику. Очевидно, что второй способ гораздо удобнее. Так я и подумал, по-быстрому описал все свои сорок кнопок и давай думать о более сложных вещах. Пишу потихоньку, изредка запускаю всё то на эмуляторе, то на своём телефоне, всё работает, всё классно. Решаю, что пора бы и бета-тестирование провести.
А запускаю как? В среде разработки есть кнопка «запустить», по которой автоматом создаётся apk, закидывается на подключенное устройство (виртуальное или реальное, без разницы), устанавливается там и запускается. Нажал одну кнопку, подождал, тестируешь. Удобно!
А бета-тестирование провести как? Каждого ж за руку к себе домой не отведёшь, телефон по проводу к компу не подключишь. Надо создать apk и раздавать его как хочешь, а устанавят и запустят сами, вручную, чай не маленькие. Создаётся такой apk тоже одной кнопкой, тоже очень удобно. Создал, кинул самому себе в телеграм, пошёл в кафе Одесса к Хорсу с Сойером и давай хвастаться, пробуйте мол, пересылаю. Запускает его Хорс, нажимает на что-то — приложение падает. Вот стыдоба же! У меня всё работает, а у него нет. И у Сойера нет. Поначалу списал всё на самсунг гэлакси эс 7 эдж, настолько хороший телефон, что на нём всё работает, а у вас нет, отсосите. А сам думаю — ну почему кнопки с буквами нажимаются нормально, а кнопки «сдаться» и «хэлп» нет? Непонятно. Дальше больше, на следующий день, в гостях у родителей ставлю игру на мамин гэлакси эс 4 — то же самое, не работает. Подумываю уже изъять её телефон для дебага, но тут оказывается, что и у жены ничего не работает! Ладно, её телефон всегда под рукой, вот на нём дома и гляну в чём косяк.
И что вы думаете? Падает всё из-за того, что нет, оказывается, такого обработчика, который назначен кнопке. Но он есть, вот он, собственными глазами вижу! Вот же, абсолютно так же описан, как и те, что запускаются нормально. Все назначены одинаково, из разметки. Одни работают, другие нет. И вишенка на торте — не работают именно в той версии apk, что создаётся для распространения, а не сразу для запуска. То есть самсунг гэлакси эс 7 эдж тут не при чём, на нём всё точно так же падает. Н — ненависть. Методом научного тыка назначил обработчики этим кнопкам в коде, убрав их из разметки — всё заработало.
Но как так-то?! Как может один и тот же подход к одним и тем же вещам в одном случае работать, а в другом нет? И зачем делать разные версии приложения (рабочую и нет) по кнопкам Run и Build?

Я всегда с собой беру заднего вида камеру

Сел на днях после работы в свой припаркованный наискось в кармане автомобиль, завёлся, включил заднюю передачу, смотрю на экран с картинкой с камеры заднего вида в ожидании, когда все проедут и можно будет выкатиться в свою полосу. Вроде проехали. Аккуратно сдаю назад, так же глядя на экран, и вижу, как через пару машин от меня то же самое делает какой-то синий хэч, а в это время к нему через сплошную подкатывается седан, выехавший из двора. Хэч его разумеется не видит, ибо смотрит на свою полосу, ну и закономерно врезается.
Словно ютуб посмотрел! И это был первый раз когда я видел аварию в реальном времени со стороны (и не участвуя в ней). Камера заднего вида — однозначно мастхэв.

Проба пера в игрописании

Давным давно играли мы на форуме в быков с коровами, только не с числами, а со словами. Один человек загадывает, остальные пишут версии и получают ответы. Кто победил, тот молодец и сам загадывает. Лично мне очень нравилось. Минус только один — ждать ответов приходилось долго. Потом и вовсе всё это сдохло вместе со всем форумом.
И вот спустя несколько лет я взял, да и написал быков с коровами под этот наш андроид. Просто ради освоения чего-то нового. В процессе дичайше плевался от явы, но в итоге смирился и вроде норм. В интерфейсах и дизайне я не мастак, так что там сплошной минимализм и ничего больше. Ни рекламы, ни разрешений на что-либо.
Самое сложное было вычитать словарь, изъяв всякую дичь, и то, наверное, не всю. К примеру, угадывал я как-то слово из 8 букв, на 22-ой попытке сдался и словом тем оказался «дерматин», про который я всю жизнь думал, что он «дермаНтин». Хотя очевидно же, что от латинского «дерма», ну нет там никакой Н. В общем, без кучи времени и словарного запаса играть будет тяжеловато )

Минутка расизма

Иду сегодня на обед, из двора предо мной выезжает форд фокус, за рулём которого сидит чёрный, как смоль, негр. Хорошо, думаю, что рабство отменили всё-таки, человек может позволить себе жить в Волгограде, разъезжать на собственном автомобиле, молодец какой. Проехал он и встал, ожидая, пока можно будет вырулить на главную, ну а я обхожу его сзади и внезапно получаю струю воды в физиономию. И было бы неудивительно, ведь всё утро лил дождь, да и сейчас на небе тучи, но прилетело-то не сверху, а сбоку. Клятый водила фокуса с кривонастроенными форсунками омывателя! Что этот ниггер себе позволяет?!
К слову, каждый день хожу мимо цветочного магазина White Flower.

Шолом

Из предпоследней серии 5-го Карточного домика узнал, что салам в переводе с арабского — мир. Таким образом, фразочка «салам пополам» это своеобразная отсылка к песне Ночной дозор (и треснул мир напополам), а то и вовсе призыв к джихаду.

Тут про всякий линукс, регулярные выражения и древний язык, можете не читать даже

Работаю себе потихоньку, ковыряюсь с сервером мониторинга Zabbix и вспоминаю, что настроил как-то сбор данных со всех принтеров в организации по SNMP, а с пары принтеров не получилось забрать некоторые параметры. Есть команда snmpwalk, которая собирает всё, что устройство способно отдать, списком, а есть snmpget, которая забирает значение по конкретному идентификатору. И вот через snmpget некоторые данные недоступны, хотя точно есть, что и видно через snmpwalk. А сервер их собирает, разумеется, точечно, и именно эти не может. Плюнул я тогда, решил что потом доделаю, раз данные хоть как-то доступны, значит вытащу скриптом. И вот дошли руки.
snmpwalk -v 1 -c public 10.10.0.246 | grep 43.10.2.1.4.0.1
Грепаю нужную мне строку из всего вывода — ну это элементарно, идентификаторы уникальны, нужный я знаю, вывод сводится к одной строке:
iso.3.6.1.2.1.43.10.2.1.4.0.1 = Counter32: 1603
Нужные мне данные — последнее число в строке. Как сделать, чтобы выводилось только оно? Вспоминаю, что есть такой язык обработки текста AWK. По-быстрому читаю первый попавшийся мануал с примерами, получается такая конструкция:
snmpwalk -v 1 -c public 10.10.0.246 | grep 43.10.2.1.4.0.1 | awk ‘ {print $4} ‘
Выводит то, что надо: 1603. Класс!
Но червь сомнения гложет — зачем сначала передавать вывод в одну команду, потом в другую? Наверняка же AWK тоже может найти строку по шаблону. Иду читать ещё и в процессе нахожу руководство по AWK для Диалоговой Единой Мобильной Операционной Системы (ДЕМОС) от 1988 года, изданное производственно-внедренческим кооперативом «И Н Т Е Р Ф Е Й С». 88-й год! СССР. Мне 7 лет, о компьютерах ни слухом, ни духом. Сам язык и вовсе 1977-го года. Читал и плакал. 30-летний мануал к 40-летнему языку. И пригодился же, и всё ж работает! И понятие «регулярное выражение» там есть. Я о них узнал года три назад, когда кроссворд из регулярок решил решить, до этого как-то не было нужды. А сейчас пользуюсь и не нарадуюсь, до того удобный инструмент. А оно существует со времён, когда меня и в проекте не было. Такие дела. Команда в итоге выглядит так:
snmpwalk -v 1 -c public 10.10.0.246 | awk ‘/43.10.2.1.4.0.1/ {print $4}’
И работает заметно быстрее первой, конечно.
Мошт кому пригодится, если snmpget говорит: SNMP error: (noSuchName) There is no such variable name in this MIB.

Грузия 2017

Съездили тут в отпуск в Грузию. Успешно обкатав мелкую на Ростове, решили замахнуться на большее и таки успешно.

Начать решили с Тбилиси, покутить там дня три и рвануть на море, в Шекветили, по пути остановившись в Кутаиси. Дорогу до Тбилиси пришлось разбить на два дня, ибо кто знает, во сколько мы туда прибудем, вдруг очень поздно, неудобно будет перед хозяином квартиры. Решили заночевать в Нальчике. Маршрут пролегал сквозь Элисту, Минводы и вуаля, Нальчик. Задним умом подумали, что можно было бы и до Владикавказа доехать, но и так неплохо вышло. Тем более, что во Владик навигатор повёл бы нас через Моздок, а Валера нам категорически отсоветовал через него ехать, ибо дорога говно. Минутка географии Кавказа окончена. Хотя нет, проезжали поселок со смешным названием Залукокоаже, даже и не знал про такой. Вот теперь всё. Теперь по делу.

Все фотографии поездочки вот тут, а текст тоже тут, но не там, а здесь.

Читать далее «Грузия 2017»

История про то, как один переезд не приравнялся к двум пожарам

Что-то на меня накатило и я решил зарегистрировать себе домен хоть какой-нибудь. А то семнадцатый год уже на дворе, а я как лох, без него. Зарегистрировал — не сложно. Надо, наверное, что-то по его адресу и разместить? Платить за хостинг пожопился, всё равно домашний комп круглосуточно онлайн, так что поднял на нём виртуалочку с  убунтой-сервером и всем полагающимся — и вот! Хотел было перенести сюда содержимое жж, но этого не захотел вордпрессовский плагин (не смог), а писать что-то такое самому мне как-то лень. Точнее, не лень, а даже интересно было бы, но результат того не стоит, пусть тут будет всё с нуля. Может потом соберусь.