Впечатления от iPhone

Примерно полтора года назад купил iPhone 6s Plus.
Понадобился второй телефон, т.к. использовать два номера на одном двухсимочном аппарате очень неудобно.
Покупать простую кнопочную звонилку — не вариант, т.к. в этом случае возникают сложности с синхронизацией контактов между двумя телефонами.
Покупать второй телефон с Android скучно и неинтересно.
К тому же мне нужно было тестировать одно мобильное приложение, у которого есть версия и для Android, и для IOS.
На момент покупки актуальным был iPhone 7 и вот-вот, через пару месяцев, должен был выйти iPhone 8. Однако, цена актуального аппарата и отсутствие миниджека убедили меня выбрать iPhone 6s. А в виду того, что единственный на тот момент телефон был с относительно небольшим экраном — 5 дюймов — выбрал большую версию iPhone 6s Plus.

По прошествие достаточно большого срока хочу высказать своё мнение об iPhone, как в отрыве, так и в сравнении с телефонами Samsung C5 и Xiaomi Redmi 5 plus, которые я по-очерёдно использовал вместе с iPhone.

Читать дальше →

Sieve: несколько примеров

Не буду объяснять что это такое, просто несколько примеров:
# rule:[logs]
if anyof ( header :contains "Subject"
 [ "Cisco Log", "Juniper Log", "Switch log" ] )
{
        fileinto "INBOX.logs";
        stop;
}

# rule:[web]
if anyof ( header :contains "To" "www@domain.tld",
 header :contains "From" "www@domain.tld" )
{
        fileinto "INBOX.www";
        stop;
}

# rule:[911]
if anyof ( address [ "from", "to", "cc" ]
 [ "911@domain.tld", "911@domain2.tld" ] )
{
        fileinto "INBOX.911";
        stop;
}

# rule:[office]
if anyof ( address "from"
 [ "anna@domain.tld", "petya@mail.tld", "mitya@gmail.tld" ],
 address ["to","cc"] "info@domain.tld",
 address :domain "from" "xxx.tld" )
{
        fileinto "INBOX.office";
        stop;
}


Думаю пояснения по правилам тоже не нужны.

Ремонт техники в Бишкеке.

Техника — это неотъемлемые вещи нашей жизни, которые делают нашу жизнь проще и удобнее каждый день при экономии нашего времени на постоянные рутинные работы и высвобождают драгоценное время для интересных и наших любимых дел. Конечно если ломается техника человек испытывает неудобства в быту и теряет уйму времени на рутинную работу, которую выполняет техника в 21 веке. Огромную роль играет качественный и своевременный ремонт и обслуживание вышедшей из строя так нужной каждый день бытовой или компьютерной техники. Куда и как обратится? Где найти нужного мастера бытовой или компьютерной техники? Где найти адреса ремонта бытовой и компьютерной техники? С полной уверенностью можно заявить, что наша компания Инком сервис делает профессиональный ремонт и сервисное обслуживание мелкой и крупной бытовой и компьютерной техники на одних из самых выгодных условий в г. Бишкек по самым приемлемым ценам на рынке ремонта и обслуживания бытовой и компьютерной техники с 2013 года. Клиенты компании получают качественный и отлаженный сервис и профессиональное техническое обслуживание бытовой и компьютерной техники. Офис в центре города имеет удобное расположение и доступность для наших клиентов. Мы сделали команду профессионалов при слаженной работе, которой вы получаете профессиональное обслуживание и ремонт бытовой и компьютерной техники. В современном мире человеку трудно обойтись без холодильника, телевизора, стиральной машинки, микроволновки, пылесоса, электрочайника, компьютера, ноутбука и прочей бытовой и компьютерной техники. Качественный ремонт — это экономия времени и вовремя поднятое настроение вас и ваших близких. Хороший мастер по первому признаку с легкостью определяет причину поломки и после необходимой диагностики устраняет проблему и все начинает работать. Именно наши специалисты работают по этому принципу – сделать качественно и на долго, что находит отклик среди наших постоянных клиентов, которые обращаются к нам за ремонтом бытовой и компьютерной техники и рекомендуют наши услуги своим родным и близким.

Основными нашими секретами успеха и популярности услуг ремонта и обслуживания бытовой и компьютерной техники в нашей компании являются:

Высококачественный ремонт и сервисное обслуживание компьютерной и бытовой техники – специалисты компании имеют более чем 10 летний опыт и практику работы в сфере ремонта и обслуживания компьютерной и бытовой техники.

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

Оперативное обслуживание – наши специалисты по первому звонку выезжают к клиенту для осуществления качественного ремонта холодильников и стиральных машин в Бишкеке.

Мастера в нашем штате имеют богатый опыт и практику по ремонту бытовой и компьютерной техники.

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

Обратившись к нам в компанию Инком сервис, вы получаете: приемлемую стоимость услуг; услуги быстрого и качественного ремонта; положительные отзывы и репутацию.

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

syslog-ng

Логи интересной мне программы по-умолчанию идут в /var/log/messages, но я хочу это изменить, т.к. в этот файл идёт много всего. Кроме того, туда попадают не все логи, а только определённого в конфиге syslog-а типа.

Направить логи от определённой программы в другой файл:

destination dest_myprog { file("/var/log/myprog.log"); };

filter filter_myprog { program("myprog"); };

log { source(s_sys); filter(filter_myprog); destination(dest_myprog); };


Направить логи от определённой программы на другой syslog-сервер:
destination dest_myserver { udp("10.1.1.1" port(514)); };

filter filter_myprog { program("myprog"); };

log { source(s_sys); filter(filter_myprog); destination(dest_myserver); };


Ну и комбинированный вариант — направить логи от определённой программы и в отдельный файл, и на другой syslog-сервер:
destination dest_myprog { file("/var/log/myprog.log"); };
destination dest_myserver { udp("10.1.1.1" port(514)); };

filter filter_myprog { program("myprog"); };

log { source(s_sys); filter(filter_myprog); destination(dest_myprog); destination(dest_myserver); };


Если те же логи в файле messages уже не нужны, то добавим их исключение в существующий фильтр, который используется для сохранения логов в этот файл:
filter f_default    { level(info..emerg) and
                        not (facility(mail)
                        or facility(authpriv)
                        or facility(cron))
                        and not program("myprog");
                    };


Конечно после изменений надо дать syslog-ng команду перечитать конфиг:
systemctl reload syslog-ng

Отключить масштабирование страницы на мобильных устройствах

Столкнулся с тем, что простая веб-страница криво отображается на смартфоне — размер шрифта разный, например, просто текст больше, чем текст ссылки или текст ссылки отображается большим шрифтом, то после тапа по нему размер уменьшается, а переход по ссылке не происходит.

Отключил масштабирование страницы на мобильных устройствах:
<meta name="viewport" content="width=device-width, initial-scale=1" />


Теперь всё отображается нормально.

Juniper: Мелочи

Включать в лог название категории (Facility) и уровень детальности (Severity):
set system syslog host syslog.tld.kg explicit-priority


Вот уровни детальности:
0 emergency
1 alert
2 critical
3 error
4 warning
5 notice
6 info
7 any

Пример:
Jul 10 19:45:07 212.42.96.132 mx inetd[12468]: %DAEMON-4: /usr/sbin/sshd[97698]: exited, status 255

Регулярные выражения

Понятно, что можно использовать регулярные выражения при выборке из какого-либо вывода через команду match, например:
user@juniper> show interfaces xe-2/3/3 | match "Input|Output"
  Input rate     : 0 bps (0 pps)
  Output rate    : 0 bps (0 pps)


Но регулярные выражения можно использовать и в самих командах, например:
user@juniper> show interfaces xe-[23]/3/[01] terse
Interface               Admin Link Proto    Local                 Remote
xe-2/3/0                up    down
xe-2/3/1                up    down
xe-3/3/0                up    down
xe-3/3/1                up    down


Информация о трансивере, например, уровень приёма:
show interfaces diagnostics optics xe-2/0/1

Juniper: Настройка автоматического копирования конфига при коммите

Конфиг роутера Juniper будем сохранять через scp, причём подключаться будем при помощи публичного ключа, а не пароля.
На сервере заводим пользователя juniper.
На роутере из-под пользователя root генерируем ключи:
>start shell
% su -
% ssh-keygen -t rsa -b 4096
cat /root/.ssh/id_rsa.pub


Обращаю внимание, что именно из-под пользователя root, а не из-под обычного пользователя, под которым вы вошли на роутер.

Полученный публичный ключ сохраняем в одну строку на сервере в папке пользователя juniper (в файле /home/juniper/.ssh/authorized_keys):
ssh-rsa AAAA...[очень много символов]... user@router


Теперь собственно автоматическое копирование конфига при коммите:
set system archival configuration transfer-on-commit
set system archival configuration archive-sites "scp://juniper@10.1.1.11/home/juniper"


Конфиги копируются в домашнюю папку юзера juniper /home/juniper:
router_20180303_072352_juniper.conf.gz
router_20180303_072625_juniper.conf.gz


Если на роутере несколько IP-адресов и вы хотите, чтобы по-умолчанию трафик исходил от адреса интерфейса lo0.0, то нужно сделать вот такие настройки:
set interfaces lo0 unit 0 family inet address
10.1.1.2/32 primary
set system default-address-selection


Указанные настройки влияют не только на копирование по scp, так что после коммита, не закрывая текущую сессию, проверьте доступность роутера открыв новую сессию )

Дополнение.

Если про комите выдаётся ошибка:
[edit security]               
  'ssh-known-hosts'           
    warning: statement has no contents; ignored

То нужно ввести ключ хоста, с которого мы подключаемся, в секции security — security: можно вручную, можно запросить с сервера, а можно импортировать его из уже созданного системой роутера. Лично мне последний вариант показался наиболее логичным:
set ssh-known-hosts load-key-file /var/home/user/.ssh/known_hosts

mac os x: удалить иконку из Launchpad

Перетягиваем иконку из Launchpad в док. В доке кликаем правой кнопкой на этой иконке и пункт «Показать в Finder». В открывшемся окне удаляем иконку, потом удаляем иконку из дока.

Сравнение Macbook Pro 13 2017 и Macbook Air 13 2015

Чуть больше года назад купил Macbook Air 13 2015, RAM 8GB, SSD 256GB.

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

Ждал выхода нового макбука и дождался такого, что без ругательств сложно описать, ну вы сами знаете. Решил купить Macbook Pro 13 2015, но найти его в продаже сложно, тем более у нас. Вероятно мне надо было реагировать быстрее, может быть и успел бы. Сейчас же старую модель можно купить разве что без русских букв, да и не особо она и подешевела — 86 тысяч рублей против 95 тысяч за младший новый Macbook Pro. Короче говоря, мучился я, мучился и решил, что придётся попробовать новый Macbook. Остановился на самой доступной версии — Macbook Pro 13 2017 RAM 8GB, SSD 128GB. Купил его 6 февраля 2018 г.

Лично меня в новых макбуках пугает не отсутствие нормальных разъёмов, не наличие всего двух USB-C (в младшей версии), а странная, плоская, клавиатура и, особенно, конфигурация блока управления курсором, который, как нарочно, сделали максимально неотличимым от остальной части клавиатуры. Кстати, я не пояснил для каких целей я использую макбук. Я — сисадмин, причём основной метод удалённого управления оборудованием это текстовая консоль. Поэтому для меня важнее всего именно клавиатура, не процессор, не память и даже не жёсткий диск. Важен именно рельеф клавиатуры, который позволяет нажимать клавиши не глядя на них, в том числе, и особенно, клавиши управления курсором. На старом макбуке пальцы легко вслепую находили клавиши управления курсором. Удобнее всего, конечно же, обычная полноразмерная настольная клавиатура, но речь сейчас не о ней.
Следующий момент, вызвавший во мне отторжение и недоумение — это невозможность видеть процесс зарядки аккумулятора в виду полного отсутствия индикаторов как на корпусе ноутбука, так и на зарядном устройстве или кабеле. На старом макбуке, с его чудесным MagSafe, прямо на разъёме был индикатор. Теперь же, получается, я могу проверить зарядился ли ноутбук только включив его открыв крышку и подождав пару секунд — на экране отображается уровень заряда. Кстати, до сих удивляет, что у айфона нет светодиода индикатора состояний, наверняка причина не техническая, а чисто маркетинговая.

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

По габаритам и весу описываемые два ноутбука существенно не отличаются. У обоих ноутбуков одна и та же ёмкость аккумулятора — 54,5 Втч. Предположительно у Air автономность должна быть больше, т.к. экран там существенно проще, зато у нового Macbook вроде как более энергоэффективные процессоры. В общем надо проверять, хотя судя по первым часам пользования складывается ощущение, что новый макбук немного быстрее разряжается, но выводы делать пока рано.

Впечатление от экрана даже превзошло ожидания — экран впечатляющий, такое ощущение, что у меня зрение стало лучше, настолько всё чёткое )

После пары недель использования новым Macbook Pro могу сказать, что к клавиатуре я пока так и не могу привыкнуть. Спасает только то, что пальцы находят их, а точнее их место, по старой привычке, а сами клавиши практически не чувствуются.
Кроме того клавиши отсвечивают при определённом освещении, становятся серыми, на них сильно видны следы от пальцев, в результате надписи на клавишах теряются. На старом макбуке ничего такого нет.
Ещё клавиатура щёлкает странно, по разному — какие-то клавиши щёлкают чётко и звонко, а какие-то с дребезжанием или глухо и, вроде бы даже, с разным усилием. Из-за этого клавиши не всегда нажимаются, вроде по клавише я попал, а символ не напечатался. Теперь стараюсь стучать по клавишам сильнее.

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

На данный момент, после двух недель использования, я всё ещё хочу не новый Macbook Pro 2017, а старый 2015 года. Я уже соскучился по нормальной клавиатуре.

Дополнение за номером 1

Всё это время, ровно месяц, я старательно избегал пользования старым Macbook Air, даже в руки не брал, чтобы быстрее привыкнуть к новому. И вот сегодня решил, попробовать взглянуть на старый ноутбук новыми глазами, ну или хотя бы посмотреть не разрядился ли он. Так вот, не разрядился — 89%.
Старый показался мне тоньше и шире нового, но это даже лучше — руки на нём лежат удобнее. Клавиши такие маленькие и толстенькие, расстояние между ними больше, вот набираю эти два новых абзаца и понимаю, что явно удобнее — клавиши ощущаются, ложных попаданий намного меньше, все клавиши нажимаются одинаково, хоть и без чёткого щелчка, невнятно, но зато понятно и тихо. Пальцы находят клавиши управления курсором легко и естественно, даже не «находят», а просто ложатся на них сами. А ещё клавиши не бликуют и на них не так сильно видны пятна.
А вот дисплей расстраивает, особенно на мелких буквах.
Маленький старый трекпад вообще ничем не хуже нового большого.
Вот сейчас ещё пойду подключу к старому ноутбуку зарядку MagSafe и порадуюсь )

Дополнение за номером 2 от 20 апреля 2018 г.

По истечение почти трёх месяцев мне по прежнему не нравится новая клавиатура. Повторюсь, она слишком плоская и никак не ощущается пальцами, на неё надо чаще смотреть. Она отсвечивает, становится серой и обозначения на ней «пропадают», на ней сильно видны отпечатки пальцев. Тактильная отдача неодинаковая — некоторые клавиши нажимаются нечётко.

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

А ещё неожиданная проблема с включением ноутбука. После почти трёх месяцев я так и не знаю как точно надо включать ноутбук. Включение у меня происходит примерно так: просто нажимаю как раньше — не включается, потом зажимаю и жду пару секунд — не включается, опять просто нажимаю — включается. Пробовал по-разному: сразу зажимал на 2-3 секунды — не включается. Ждал пока отобразится уровень заряда и когда он гас нажимал кнопку питания — не включается. Мне кажется, я не помню ни одного случая чтобы мне удалось включить ноутбук с первого раза.

Моё первоначальное подозрение, что новый Macbook разряжается быстрее старого Macbook Air подтвердилось. Правда замеров и тестов я не проводил, разница не пугающая, но заметная.

Если вдруг выйдет обновлённый Macbook Air со старой клавиатурой, нормальным дисплеем и неважно какими портами, то я на следующий же день побегу в магазин и постараюсь заказать его в максимальной конфигурации, чтобы его хватило надолго. Но, несмотря на слухи в Интернете, я сильно сомневаюсь, что такой ноутбук выпустят.

Дополнение за номером 3 от 15 августа 2018 г.

Не хотелось бы повторяться, однако и молчать не могу… Новая клавиатура — это просто беда. Невозможно печатать нормально, клавиши вообще не чувствуются — просто тыкаю пальцем туда где вроде бы должна быть нужная клавиша, постоянные промахи, систематически надо опускать взгляд, чтобы найти клавиши, особенно клавиши управления курсором и Escape.
Тактильная отдача клавиш отвратная — зачастую непонятно нажалась или нет и лучший выход — это тупо стучать по клавишам сильнее и резче, прям до «пробоя» до корпуса.

Аккумулятор держит явно меньше, чем на MacBook Air 13, хотя и не критично.

Зарядка не нравится. Надо прицеливаться в разъёмы, одной рукой подключить или отключить кабель сложно. Нет индикации уровня заряда, надо открывать крышку, чтобы на дисплее увидеть на несколько секунд уровень заряда.

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

Продолжение следует...

Policy-routing на CentOS

Довольно распространённая ситуация — на моёй рабочей станции есть два интерфейса и два айпишника, скажем из подсети А и подсети Б. При обращении клиента с хоста из сети Б к моему айпишнику из подсети А ответ к нему уходит через другой интерфейс с моего айпишника из подсети Б, т.к. он из той же подсети, что и адрес клиента. Мне надо сделать, чтобы эти ответы уходили с того же адреса на который пришли.

Тут нужен policy-routing — маршрутизация на основе определённых правил. Логика получается такая: ответы на запросы из подсети Б к моему адресу из подсети А отправлять с адреса из подсети А (т.е. на шлюз подсети А).

Маркируем соединения из сети Б к нашему адресу из сети А при помощи iptables и таблицу mangle (используется для изменения пакетов):
iptables -t mangle -I INPUT -i eth0 -s 10.1.100.0/24 -d 10.2.96.3 -j CONNMARK --set-mark 1
А на выходе копируем маркировку соединения в маркировку пакетов, насколько я понимаю, это означает, что мы маркируем пакеты промаркированных ранее соединений:
iptables -t mangle -I OUTPUT -s 10.2.96.3 -d 10.1.100.0/24 -j CONNMARK --restore-mark
Вероятно, в этом правиле можно обойтись и без указания адресов источника и адресата, но мне кажется так будет правильнее, более точно чтоли )

В таблицу маршрутизации 111 добавляем маршрут для сети Б, но на шлюз из подсети А:
ip route add to 10.1.100.0/24 via 10.2.96.1 dev eth0 table 111
И, наконец, добавляем правило для перенаправления пакетов с нашей маркировкой в отдельную таблицу маршрутизации:
ip rule add fwmark 1 lookup 111

Для удобства можно назначить название для таблицы в файле /etc/iproute2/rt_tables, которое можно будет использовать вместо номера.

Так же нужно проверить не включена ли проверка обратного пути (reverse path checking):
sysctl net.ipv4.conf.eth0.rp_filter
Если включена, то система будет проверять пакеты на соответствие источника интерфейсу, с которого пакет получен. Например, если пакет пришёл с адреса, который виден через другой интерфейс (а не тот, с которого пакет пришёл), то значит этот пакет надо отбросить.

Если всё заработало как надо, то сохраняем правила iptables в файл "/etc/sysconfig/iptables", а правила для маршрутизации в файл "/etc/sysconfig/network-scripts/route-eth0".

Далее несколько вспомогательных команд, которые могут пригодиться.

Посмотреть определённую таблицу маршрутизации:
ip route show table 111
Удалить маршрут из указанной таблицы
ip route del table 111 to 10.1.100.0/24
Посмотреть правила маршрутизации:
ip rule show
Удалить правило маршрутизации:
ip rule del fwmark 1

Как посмотреть правила iptables писать не буду )