MikroTik hAP ac

Я використовую MikroTik hAP ac (RB962UiGS-5HacT2HnT-US) вже майже рік. За цей час я встиг багато з чим розібратися та налаштував свою мережу за власним смаком. Я напевевне не використовую і 20% його можливостей, але багато з них в принципі і не потрібні для домашньої мережі.

Найголовніше:

  • — 4+1 Gigabit Ethernet
  • — 802.11ac та 802.11a/b/g/n (одночасна робота 2.4GHz та 5GHz мереж)
  • — SFP порт

Мені дуже подобається система налаштувань: можна зайти по SSH і мати ті ж самі елементи керування, що і Веб-консоль або WinBox (програма для Windows). Текстовий конфіг це геніальна ідея — не складно розібратися в опціях та легко відстежувати зміни за допомогою Git.

Базові налаштування
Це був мій другий досвід з MikroTik (перший — на роботі) але я все ж вирішив почати зі стандартного конфігу. Він поступово змінюється з оновленнями RouterOS (для прикладу, зʼявилися правила для IPv6 firewall) тому коли вийде 7-ма версія RouterOS я напевне візьму його «чисту» версію та заново внесу усі свої зміни. Одразу вимкнув: звук при завантаженні, деякі лампочки активності, застарілі та непотрібні протоколи (http, telnet, ftp, api, mac-server), пошук інших роутерів і т.п.

Розказувати про базові речі не дуже цікаво тому перейдемо до прикладів використання розширених можливостей RouterOS.

Сподіваюсь це очевидно, що example.com та XXX/YYY/ZZZ приховують справжні домени та цифри.
Я не буду приводити увесь конфіг (210 рядків, 13Кб) а лише найцікавіше.

DNS
Крім кешування я ще використовую статичні записи:
/ip dns static
add address=192.168.XXX.X10 name=storage.example.com ttl=1h
add address=127.0.0.1 name=www.google-analytics.com
add address=127.0.0.1 name=dash-button-na.amazon.com

та перехоплюю запити, відправлені напряму зовнішнім DNS серверам:
/ip firewall nat
add action=redirect chain=dstnat dst-address-type=!local dst-port=53 protocol=udp to-ports=53
add action=redirect chain=dstnat dst-address-type=!local dst-port=53 protocol=tcp to-ports=53

Також я використовую вбудований сервіс DDNS:
/ip cloud
set ddns-enabled=yes

Домен XXX.sn.mynetname.net, що постійно вказує на мою зовнішню IPv4 адресу, прописаний як CNAME для storage.example.com. Я його використовую для доступу до NAS як всередині так і ззовні мережі (раніше це були два різні домени).

DHCP
Усі пристрої отримують статичні IPv4 адреси, сформовані за певними принципами:

  • — окремі діапазони для основної мережі та IoT (Internet of Things)
  • — IPv4 адреси Ethernet пристроїв закінчуються на парне число
  • — IPv4 адреси Wi-Fi пристроїв закінчуються на непарне число

Цей список зручно використовувати також для контролю: що є в мережі, чого немає, чи не зʼявилися якісь нові пристрої. На даний момент там 32 записи (деякі пристрої вказані двічі бо мають Ethernet та Wi-Fi).

/ip dhcp-server lease
add address=192.168.XXX.X00 comment="MacBook Pro" mac-address=XX:XX:XX:XX:XX:XX server=dhcp
add address=192.168.XXX.X01 comment="MacBook Pro" mac-address=XX:XX:XX:XX:XX:XX server=dhcp
add address=192.168.XXX.X03 comment="Pixel 2 XL" mac-address=XX:XX:XX:XX:XX:XX server=dhcp
add address=192.168.XXX.X10 comment="Synology NAS" mac-address=XX:XX:XX:XX:XX:XX server=dhcp
add address=192.168.YYY.X11 comment="intelliPLUG" mac-address=XX:XX:XX:XX:XX:XX server=dhcp-iot
add address=192.168.YYY.X21 comment="Amazon Dash" lease-time=5s mac-address=XX:XX:XX:XX:XX:XX server=dhcp-iot

Оскільки у IPv6 трохи інший підхід: клієнтам надається префікс мережі, з яким вони самостійно генерують свої адреси (основну та тимчасову), то такий список неможливо сформувати. Але принаймні роутер та NAS мають статичні IPv6 адреси, які прописані у внутрішньому DNS.

Віддалений доступ
Я маю віддалений доступ лише до NAS (SSH та HTTPS). Крім звичайного захисту, що базується на ключах, паролях, TOTP (2й фактор) та нестандарних портах, є ще Port knocking:
/ip firewall filter
add action=add-src-to-address-list address-list=pre-pre-secure address-list-timeout=10s chain=input dst-port=XXXXX in-interface=ether1 protocol=tcp
add action=add-src-to-address-list address-list=pre-secure address-list-timeout=10s chain=input dst-port=YYYYY in-interface=ether1 protocol=tcp src-address-list=pre-pre-secure
add action=add-src-to-address-list address-list=secure address-list-timeout=23h59m59s chain=input dst-port=ZZZZZ in-interface=ether1 protocol=tcp src-address-list=pre-secure

/ip firewall nat
add action=dst-nat chain=dstnat dst-port=XXX in-interface=ether1 protocol=tcp src-address-list=secure to-addresses=192.168.XXX.X10 to-ports=XXX

Деякі адреси додані до списку “secure” вручну.
/ip firewall address-list
add address=XXX.XXX.XXX.XXX list=secure

Для доступу з інших потрібно виконати команду knock тричі:
knock example.com XXXXX && knock example.com YYYYY && knock example.com ZZZZZ
і поточна адреса буде додана до списку “secure” на добу.

Мережа для IoT (Internet of Things)
Загальновідомо, що S в IoT означає Security (безпека).
Можете називати це параноєю, але у мене значно мерше довіри до деяких пристроїв: «розумні» розетки та кнопки (Amazon Dash), телевізор і т.п. На жаль, пристрої типу Google Mini та Nexus Player не так просто винести в окрему мережу бо вони спілкуються з телефоном та NAS. Можливо я обмежу для них доступ за допомогою firewall.

Усі ці налаштування також можна використовувати для створення мережі для гостей.

Для IoT я створив новий міст:
/interface bridge
add name=bridge-iot

окрему (віртуальну) Wi-Fi мережу:
/interface wireless
add disabled=no mac-address=XX:XX:XX:XX:XX:XX master-interface=wlan1 name=wlan3 ssid=BNetIoT

та обʼєднав це все разом з 5-м ethernet портом (для телевізора):
/interface bridge port
add bridge=bridge-iot interface=wlan3
add bridge=bridge-iot interface=ether5

Ще я додав правило для firewall яке забороняє цим пристроям спілкуватися з основною мережею.
/ip firewall filter
add action=drop chain=forward comment="IoT network" in-interface=bridge-iot out-interface=!ether1

Ну і наостанок я налаштував окремий DHCP сервер, який крім видачі IPv4 адрес ще запускає скрипт коли до мережі приєднується Amazon Dash (усі вони включені в список “amazon”):
/ip dhcp-server
add address-pool=dhcp-iot disabled=no interface=bridge-iot lease-script=":if ($leaseBound = 1) do={
  :foreach j in=[/ip firewall address-list find list="amazon"] do={
    :if ( [/ip firewall address-list get $j address] = $leaseActIP ) do={
      /tool fetch mode=https url="https://maker.ifttt.com/..." keep-result=no
    }
  }
}" lease-time=1d name=dhcp-iot

Коли кнопка натискається то вона намагається зʼєднатися з Амазоном, але в неї це не виходить бо dash-button-na.amazon.com = 127.0.0.1 на внутрішньому DNS а запити до зовнішніх DNS (8.8.8.8) перехоплюються. Але роутер це помічає, запускає скрипт і світло вмикається/вимикається за допомогою IFTTT.

Керування світлом за допомогою CNCT intelliPLUG, Amazon Dash, Mikrotik та IFTTT.

A post shared by Oleg Bozhenko (@mrgallcom) on

IPv6
З новим протоколом я почав розбиратися ще 7 років тому — піднімав тунель до Hurricane Electric за допомогою Airport Express та включив його підтримку для власних сайтів.
Але підтримка IPv6 вдома без тунелів зʼявилася нещодавно — провайдер оновив прошивку модема і замість IPv6 rapid deployment (аналог 6to4 тунеля) запрацював повноцінний IPv6. Роутер отримує /64 мережу і розповсюджує її усім пристроям в основній мережі.
/ipv6 address
add address=::1 from-pool=provider interface=bridge
/ipv6 dhcp-client
add add-default-route=yes interface=ether1 pool-name=provider request=prefix use-peer-dns=no
/ipv6 dhcp-server
add address-pool=provider interface=bridge lease-time=1d name=dhcp-ipv6
/ipv6 nd
add advertise-dns=yes hop-limit=64 interface=bridge managed-address-configuration=yes other-configuration=yes
/ipv6 settings
set accept-router-advertisements=yes

На жаль, DHCPv6 сервер у RouterOS досить обмежений.
Для прикладу: неможливо налаштувати його так, що він повідомляв клієнтам адресу внутрішнього DNS. Якщо вказати зовнішні IPv6 DNS сервери в /ip dns то вони будуть потрапляти і до IPv6 клієнтів. Це спочатку створювало проблему бо Nexus Player отримував зовнішню IPv4 адресу для storage.example.com від такого сервера і не хотів зʼєднуватися з NAS по SMB. Можливо ситуація поліпшиться в майбутніх версіях RouterOS.

Оскільки Google, Youtube, Facebook, Netflix і т.п. давно підтримують IPv6 то його вже можна повноцінно використовувати.

Git
Оскільки у конфіга є текстовий варіант, то за допомогою Git його легко зберігати та слідкувати за змінами. Бекап відбувається за допомогою bash скрипта, що запускається на NAS щоночі. Це лише коротка вижимка з нього бо там є перевірка перед коммітом, чи були якісь зміни, а також з конфігу видаляються перенесення рядків, поточна дата та паролі:

ssh user@router.example.com export file=mikrotik
sftp user@router.example.com:mikrotik.rsc
ssh user@router.example.com system backup save name=mikrotik
sftp user@router.example.com:mikrotik.backup
git add -A .
git commit -m "backup $DATE"
git push -u origin master

SFP порт
Це порт використовується в основному для підключення оптоволокна. Але існують SFP модулі для підключення звичайного Gigabit Ethernet і перетворення 5-ти портового роутера на 6-ти портовий. Що я і зробив, купивши якийсь китайський модуль на Ібеї. Одразу він не запрацював — служба підтримки підказала, що потрібно відключити автоматичне визначення швидкості і вручну поставити 1Гб/с та Full Duplex (та переконатися, що на іншому боці те саме). Існує фірмовий SFP модуль від MikroTik, можливо там такої проблеми немає.

Різне
За допомогою скриптів з NASʼу дістається TLS/HTTPS сертифікат, який генерується за допомогою Let’s Encrypt, та встановлюється на роутері. Я не маю прямого доступу до роутера ззовні мережі, але додатковий захист всередині мережі зайвим не буває.

/ip service
set www disabled=yes
set www-ssl address=192.168.XXX.0/24,2600:XXXX:XXXX:XXXX::/64 certificate=mrgall.cert.crt_0 disabled=no

Мій провайдер (AT&T) блокує вихідний трафік на порт 123 (NTP, сервіс часу) тому вбудований NTP клієнт не працює. Але це можна обійти за допомогою такого рядка:

/ip firewall nat
add action=masquerade chain=srcnat comment=ntp out-interface=ether1 protocol=udp src-port=123 to-ports=49152-65535

Недоліки
Одним з недоліків можна назвати високий поріг входження, але особливо мені дуже цікаво розбиратися з новим.

У мого роутера 2-3 рази за рік переставав працювати Wi-Fi — спочатку 5ГГц, згодом і 2.4ГГц. Я це вирішував перевантаженням безпровідного модуля або скиданням роутера до заводських налаштувань та відновленням з бекапу. Чому так відбувається я і досі не знаю, можливо мені дістався трохи бракований екземляр. Одного разу це відбулося після оновлення до нової версії RouterOS, останній раз — після раптового зникнення світла.

Висновок
Загалом мені подобається.
Якщо вас не відлякує потреба розбиратися з мережевими технологіями, терміналом і т.п. — я раджу глянути в бік MikroTik.
Існує також hAP ac lite, що коштує в половину дешевше, але без Gigabit Ethernet та з трохи простішим WiFi.

Google Pixel 2 XL після двох тижнів використання

Цей допис я написав спеціально для ITC.ua, в своєму блозі я публікую його для історії.

Pixel 2 XL я отримав в день його релізу 18 жовтня, тож мав можливість ознайомитись з ним протягом двох тижнів.

Pixel 2 XL це мій третій телефон на Android після T-Mobile G1 (HTC Dream) та Nexus 4. Я планував замінити Nexus 4 ще минулого року, але почитавши відгуки про оригінальний Pixel (проблеми з камерою і т.п.) вирішив почекати ще рік. Звісно, можна було взяти флагман від HTC, LG або Samsung. Мені подобається їх залізо, але мені зовсім не подобається те, що вони роблять з Android: я про дублікати стандартних програм, які складно видалити, та загальновідому ситуацію з оновленнями (особливо якщо телефон від оператора). Google принаймні не додає в свої телефони мотлох, який складно видалити, та гарантує оновлення телефонів протягом трьох років. Після цього ще рік-два можна користуватися прошивками від «народних умільців» (на Nexus 4 я використовував CyanogenMod/LineageOS). З Apple у мене складні стосунки — мені подобаються macOS та їх компʼютери (вже багато років використовую MacBook Pro) але iOS та їх закрита екосистема мені не до душі. Тому намагаюся тримати баланс, хоча це і складно коли ще є Kindle Fire та Nexus Player. Чи є сенс згадувати про Microsoft після вищесказаного? 🙂

Минулого разу (5 років тому) я зміг замовити Nexus 4 далеко не одразу: телефон постійно зникав з корзини або його неможливо було оплатити. Лише за тиждень у мене це вийшло після кількох годин намагань.

Цього разу все пройшло чудово — я слідкував за Google Store протягом презентації 4 жовтня та замовив телефон за кілька хвилин після того, як магазин оновився. Телефон відправили 17 жовтня та доставили наступного дня (як і обіцяли).

Розміри
Перше враження — який він величезний в порівнянні з моїм Nexus 4 та Pixel 2 дружини. Можливо мені варто було брати Pixel 2? Але вже за кілька годин усі мої сумніви розвіялися коли я зрозумів усі переваги великого екрану та відносно невеликих рамок.

Завдяки тому, що екран видовжений (пропорції — 18:9 або 2:1), його досить зручно тримати в руці незважаючи на 6 дюймів та захисний кожух Caseology Vault.

З іншого боку він достатньо великий, щоб спричиняти невеликий дискомфорт в джинсах з мілкими кишенями. Для мене він того вартий, але підійде не всім.

Швидкодія
8-ядерний процесор Snapdragon 835 та 4 ГБ оперативної памʼяті разом з «чистим» Android роблять телефон дуже швидким. Навіть програми, які масово встановлюються в фоні, не сповільнюють його роботу. З досвіду Nexus 4 я думаю він почне сповільнюватися десь за 3 роки (коли скінчаться оновлення а у програм зросте «апетит»).

Камера
З одного боку мене важко вразити якістю фото — вже багато років знімаю на дзеркальну камеру та обробляю RAW фото в Lightroom. І якогось прориву тут не сталося — дуже дрібна оптика та мініатюрний сенсор фізично не можуть отримати стільки ж світла, як найпростіша дзеркалка. З іншого боку — знімає він дуже пристойно (навіть при поганому освітленні).

Режим портрету інколи помиляється які саме частини кадру розмивати, але в цілому на такі фото приємно дивитися. Кажуть, що Google додала в цей телефон якийсь додатковий чіп Pixel Visual Core для покращення фото, але його планують активувати лише в Android 8.1.

А от відео (на мій погляд) це його найсильніший бік — завдяки оптичній стабілізації він знімає майже ідеально. Моя дзеркалка може досягти чогось подібного лише при використанні штативу та подальшої обробки. Єдиний недолік, який я знайшов, це посередній звук (можливо кожух вніс свою частку).

«Хмари»
Фото та відео зняті на телефон протягом перших трьох років (до січня 2021 року) можна безкоштовно розмістити в оригінальній якості на Google Photos. Це теж мене не дуже вражає: маю 4 ТБ фото-відео збережених паралельно на 5-6 сервісах. Але не бачу причин не користуватися ще й цим сервісом (бекапів мало не буває).

На радощах від новинки я спочатку включив бекап відео навіть в мобільній мережі але після кількох днів та 2 ГБ використаного мобільного трафіку (з 5 ГБ доступних на місяць) я це вимкнув, залишивши лише бекап по Wi-Fi. Продовжую використовувати і Dropbox для синхронізації фото-відео на компʼютер (це єдиний клієнт, який у мене там встановлений).

Екран
Як на мене, P-OLED екран від LG – це найбільш суперечливе місце в цьому телефоні. У моєму екземплярі блакитний відтінок помітний якщо дивитися на дисплей під кутом. Усіх інших проблем, про які активно писали ЗМІ та в соцмережах, у мене немає (або вони не дуже помітні).

Google вже пообіцяла покращити програмну частину та продовжити гарантію на телефон до двох років. Я думаю з часом (протягом кількох місяців) остаточно вирішаться проблеми з виробництвом та QA. Якщо виникне потреба — я спробую замінити телефон по гарантії на трохи новіший десь наступного року.

В перший день я грався з налаштуванням Vivid colors (+10% насиченості кольорів) але особливої різниці не помітив (бо ще не звик до OLED екрану). Десь через тиждень я повернувся до цього налаштування і включив його — картинка стала більш соковитою.

N.B. Раджу не купувати «кота в мішку» і спочатку подивитися на екран власними очима.

Батарея
На батарею скарг немає (крім того, що вона не тримає тиждень) але заряджати її варто щодня. За 2 тижні було лише кілька днів, коли рівень заряду батареї опускався нижче за 50%. Одного разу я приїхав ввечері з роботи і в мене залишалось ще 90% заряду батареї (але в той день я мало користувався телефоном).

З іншого боку у мене вже є звичка вимикати сповіщення та роботу в фоні усіляких соцмереж та месенджерів (крім Google Hangouts) щоб менше відволікатися. Також я вимкнув режим, в якому заблокований телефон постійно показує поточний час та сповіщення та не вмикав розпізнавання пісень, які грають навколо. Думаю якщо всього цього не робити то телефон буде розряджатися десь в половину швидше. В соцмережах пишуть, що батареї телефону вистачає на день при 4-5 годинах роботи екрану. Я стільки ним не користуюсь щоб це підтвердити.

Android
На Nexus 4 у мене був Android 7.1 в збірці від LineageOS. Android 8 має багато нових можливостей але в цілому є еволюцією, а не революцією як це було з Android 4 на попередньому телефоні.

Стандартний Pixel Launcher мені не сподобався. Тому майже одразу я поставив звичний мені Nova Launcher і налаштував усе як мені подобається: багато іконок, відсутність підписів та кілька корисних віджетів.

У телефона є опція активації Google Assistant при стисканні боків. Я поки її не оцінив і залишив вимкненою, бо великої користі від Google Assistant не бачу (мені не складно вручну поґуґлити). За кілька тижнів має прийти безкоштовний Google Home Mini (подарунок до телефону), можливо тоді я зміню свою думку щодо Assistant.

Сканер відбитків пальців
Сенсор відбитків пальців виявився досить зручним — палець сам лягає в потрібне місце і розблокування відбувається за півсекунди. Я розумію, що це погіршує безпеку (відбиток пальця не вважається приватною інформацією як пароль) але важко описати, наскільки зручно таким способом розблоковувати 1Password та подібні програми.

Розʼєми
Поява nanoSIM замість microSIM в Nexus 4 не викликала проблем бо я замінив сімку ще 2 роки тому (та використовував перехідник). 3,5 мм аудіо розʼємом я вже давно не користуюсь тому його зникнення на мене ніяк не вплинуло (вдома і в машині є Bluetooth). USB-C я всіляко вітаю, бо microUSB мені не сподобався з самого початку. Звісно, довелося купити кілька USB-C на A кабелів для машини та зовнішньої батареї, але це дрібниця. Телефон підтримує стандарт зарядки USB PD (як у нових MacBook Pro) тому після оновлення компʼютера зможу використовувати його зарядку і для телефону. Я це вже перевірив у колеги — телефон заряджається на повну швидкість (charging rapidly).

Бездротові технології
Перехід з HSPA+ на LTE приніс трохи зручностей при користуванні онлайн-сервісами: 50 Мб/с – це тепер одночасно швидкість і домашнього і мобільного інтернету. Але мій телефон більшість часу знаходиться у Wi-Fi мережах тому Wi-Fi дзвінки стали актуальними за LTE.

Оплата через NFC не є чимось новим для мене (користувався ще в 2013 році) але оскільки Android Pay не працював на Nexus 4 з Root, тому я фактично заново відкриваю їх для себе.

За 4 роки кількість безконтактних терміналів навколо зросла на порядок завдяки Apple та переходу на картки з чіпом. Готівкою я користуюсь дуже рідко (але це окрема історія).

Підсумок
Загалом телефоном я задоволений. Екран міг би бути трохи кращим (особливо за такі гроші) але жити з ним можна. Я розумію, що такий розмір підійде не усім, але у Google є менший Pixel 2 майже з тими самими можливостями. У дружини щодо нього немає зауважень.

Перше враження про Google Pixel 2 XL

Google Pixel 2 XL це лише мій пʼятий мобільний телефон після Sony Ericsson J300, Qtek S110, T-Mobile G1 та Nexus 4:

Страшно навіть уявити, якого розміру буде мій наступний телефон. Сподіваюсь, що такий самий як Pixel 2 XL тільки екран буде займати 99.5% лицьової поверхні телефону. Чи може краще одразу безпровідний модуль в голову?

Я дуже завчасно приготувався до нового телефону: змінив microSIM на nanoSIM ще два роки тому. Тоді я вже почав думати про новий телефон а у мого оператора був розпродаж сімок. В комплекті був перехідних з яким нова сімка стала в старий телефон (тимчасово, на 2 роки).

Добре памʼятаючи про епопею з Nexus 4 5 років тому (видалка в клавіатурі і т.п.) я знайшов та встановив плагін для автоматичного оновлення сторінки (щоб помітити публікацію нових телефонів в магазині та одразу замовити). Це спрацювало на відмінно — десь за 1-2 хвилини після оновлення магазину я вже створив замовлення. Прогрес, який досягнув Google Store за 5 років, помітний неозброєним оком.

Телефон відправили як і обіцяли 17-го жовтня і доставили наступного дня (обіцяли 18-19). Також протягом місяця має прийти код на замовлення безкоштовного Google Home Mini. Поки не знаю, чи воно мені потрібне — я не прихильник голосових інтерфейсів. Але час покаже, чи воно у мене приживеться.

Телефон завантажився досить швидко, переносити дані із старого телефону я не хотів (там немає нічого цінного) тому почав з чистого телефону. Стандартний лаунчер мені не дуже до вподоби тому майже одразу поставив Nova Launcher (я з ним вже років 5). Результат — праворуч.

Перше враження — який же він великий та важкий (в порівнянні з Nexus 4). Особливо в «кожусі» Caseology Vault, який додає трохи обʼєму але має непогано захищати. Але після години з новим телефоном це враження майже зникає і старий телефон починає виглядати крихітним (те саме у мене було з T-Mobile G1 минулого разу).

Коли береш телефон в руку то палець легко знаходить сенсор відбитка пальця і телефон розблоковується приблизно за півсекунди. Поки мені ця можливість не дуже подобається (я б хотів і далі набирати пін-код), але схоже немає можливості розблоковувати відбитком окремі програми без розблокування відбитком усього телефону. При налаштуванні відбитків показується повідомлення, що їх використання знижує захищеність телефону (що досить логічно 🙂 ).

Екран дуже великий та яскравий. Так, під кутом баланс білого зміщуються в бік синього, але це не завдає особливого дискомфорту. Такої відрази, як про це пише The Verge, у мене немає. Можливо їм не пощастило із конкретним екземпляром. З іншого боку Ґуґл вже каже, що в майбутньому вони щось пофіксять чи зроблять додаткові налаштування для екрану, тому схоже якась проблема все ж існує. Памʼятаю спочатку у якогось з iPhone теж було щось подібне (лише в бік жовтого) і проблему якось вирішили. Така вона доля першопроходців 🙂

Окремо треба сказати про пропорції екрану. Вони в цього телефону 18:9 (тобто 2:1) і це помітно відрізняється від звичних 16:9. Це дозволяє зручно тримати 6 дюймовий телефон в руці але це також означає, що програми запускаються досить витягнутими по вертикалі (незвично але проблем не викликає). Ще одна перевага — зручніше запускати 2 програми одночасно бо кожній дістається по квадратному вікну.

Безпровідні технології трохи просунулися за 5 років і нарешті у мене є LTE, Wi-Fi дзвінки та 802.11ac. Я поки не можу сказати, що це суттєво вплинуло на зручність користування телефоном (HSPA+ та 802.11n теж достатньо швидкі) але нові можливості зайвими не бувають. На роутері я нарешті зміг вимкнути 802.11b/g для 2.4GHz (доводилося тримати для старого HTC One) та увімкнув 802.11ac для 5GHz.

Новий телефон має 64Гб внутрішнього сховища (система одразу займає приблизно 10Гб). В порівнянні з 16Гб на старому телефоні це значне покращення. З іншого боку я там нічого великого не зберігаю тому особливих проблем у мене і раніше не було. На жаль, не можна поставити microSD картку (це «фіча» Nexus/Pixel). Те саме стосується і батареї — її не зміниш (і цього разу я навряд буду пробувати).

Загальновідомо, що 3.5мм аудіо-розʼєми зникають як роса на сонці (Епл, що ти наробила???). Його не було і в T-Mobile G1, де це викликало проблеми: тоді я активно користувався наушниками а перехідник ламався ледь не раз на рік. Але зараз це мене особливо не турбує — я вже майже не використовую наушники, до колонки вдома та в машині приєднуюсь за допомогою Bluetooth. Перехідник є в комплекті, але я сумніваюсь, що часто буду ним користуватися. Є ідея примотати перехідник прямо до наушників, але вони вже настільки затягані що напевне довго не проживуть.

Замість microUSB тепер використовується новий розʼєм — USB-C. Телефон підтримує швидку зарядку (ледь не за півгодини) але потрібно мати сумісну зарядку (USB Power Delivery) та якісний кабель. Зарядка від розетки йшла в комплекті а от із зовнішньою батареєю та машиною треба щось думати (поки замовив USB-C to A кабелі, далі буде видно). Підʼєднувати кабель будь-яким боком досить зручно. У мене колись вже був такий microUSB кабель але він довго не протягнув.

Про камеру важко одразу сказати щось розумне — кілька пробних фото вийшли досить непоганими. Але я порівнюю її з Nexus 4 тому вона без сумніву буде набагато краща. Чи вже дотягнула вона до рівня дзеркалки — побачимо. Ґуґл розробив якийсь новий чіп для обробки знятих фото, але здається вони ще тільки планують його активувати з оновленнями. Вид з вікна офісу:

Загалом телефон мені подобається, але остаточна думка складеться напевне через пару тижнів. Зрозуміло одне — в кишені джинсів він точно не загубиться 🙂

P.S. Мені доступний і Pixel 2 (меншого розміру) для тестування. Він відчувається як мій старий Nexus 4 але має майже всі ті самі можливості, що і Pixel 2 XL. Цікаво буде погратися з ним за кілька тижнів (коли мозок остаточно переключиться з меншого на більший екран).

Бекап фото-відео в «хмарах»

cloud

З самого початку захопленням фотографуванням (перша камера — 2006 рік) у мене почав накопичуватись великий архів фото-відео бо я прагнув зберегти усі фото, незалежно від того, використані вони якось чи ні.
Професійні фотографи одразу видаляють невдалі кадри, але мені було шкода це робити.
В 2011 році я з jpeg перейшов на RAW і ситуація з вільним місцем лише погіршилась.

Накращим (на мою думку) способом бекапу в «хмари» є спеціалізовані сервіси типу Amazon S3, Amazon Glacier та їх аналоги від Google та Microsoft. Існують програми (Arq, Duplicity і т.п.), які уміють працювати з цими сервісами та робити інкрементальні бекапи. Але подібне більше підходить для компаній та професіоналів, бізнес яких залежить від надійного зберігання результатів їх роботи. Для мене фотографування це хоббі а програмування це робота тому я пішов іншим шляхом.

Box
Навесні 2012 року компанія Box вирішила конкурувати з Dropbox в сегменті домашнього використання, тому почала збільшувати безкоштовні акаунти до 50Гб якщо залогінитись з Box for Android. Я не зміг пройти повз тому зареєстрував кілька десятків акаунтів (про запас 🙂 Оригінальна ідея була зберігати туди музику, але це виявилось не дуже практичним: у мене є дурна звичка час від часу міняти теґи тому треба було перезаливати Lossless треки.

Згодом у мене зʼявилася ідея зберігати туди усі свої фото-відео, які зазвичай дуже рідко змінюються (RAW файли — ніколи бо Lightroom пише зміни в xmp). Процес завантаження був простий — акаунт монтувався по WebDav і за допомогою Fork Lift файли синхронізувалися. Зазичай це відбувалося ночами і нерідко зʼявлялася помилка, яка зупиняла процес до ранку.

На той момент мій основний архів займав приблизно 300Гб. Швидкість інтернету «вгору» була 512 чи 768 Кб/с. Питання: як швидко мені вдалося завантажити 300Гб в таких умовах? Приблизно півроку, з травня по жовтень 🙂
В цьому мені дуже допомогла відмова від WebDav і використання Box API власним скриптом. Помилки завантаження звісно траплялися, але в цьому випадку скрипт просто переходив до наступного файлу. Тоді ж зʼявилася ідея порівнювати локальні та віддалені файли за вмістом а не розміром або датою модифікаці. Box API в цьому питанні дуже зручний — для кожного завантаженого файлу він підраховує SHA1 хеш.

Як же мені вдалося помістити 300Гб на 50Гб акаунт? Я завантажив їх на кілька акаунтів, приблизно по 40Гб на кожен. Оскільки я зберігаю фото в папки з поточною датою в назві (2016_08_21) то було не складно кожному з акаунтів прописати діапазон дат (прямо в тексті скрипта, поруч з API ключами 🙂

Dropbox
Наступним етапом була акція Space Race від Dropbox восени 2012 року. Тоді студенти могли ввести свою студентську поштову скриньку та прокачати свої Dropbox акаунти на 25 Гб на 2 роки. Де ж взяти стільки поштових скриньок в студентському домені? Дякуючи Сумському університету та їх сервісу з відкритою реєстрацією live.sumdu.edu.ua від Microsoft це виявилось не дуже складним завданням. Sumy State University піднявся досить високо в тому рейтингу (здається потрапив в десятку).

Постало питання, як перекинути 300Гб з Box на Dropbox. Робити це знову зі свого компʼютера не було жодного бажання. Тому я використав свій сервер на Linode, який качав файли з однієї «хмари» та заливав їх в іншу. Процес зайняв приблизно місяць: багато дрібних файлів (~ 100к) та не дуже оптимальний процес (скрипт дороблювався в процесі). Заодно я почав зберігати інформацію про локальні та віддалені файли в базу даних MySQL, це спростило їх синхронізацію (не треба було щоразу сканувати локальні папки, лише коли у них щось змінилося).

Також Dropbox використовується у мене для синхронізації фотографій з телефону. Вони завантажуються на основний акаунт, на компʼютері завжди працює Dropbox-клієнт, який завантажує їх локально. Спеціальний скрипт потім розкладає їх по папкам з датами (2016_08_21_n1).

Flickr
В травні 2013 року Yahoo вирішив розворушити свій фото-сервіс Flickr, тому безкоштовні акаунти отримали 1Тб (насправді лише 1 000 000 000 000 байтів, для програмістів це важливо). Це крок був схожий на появу Gmail з 1Гб в 2004 році. Але у Flickr були і обмеження — можна завантажувати лише фото (jpg, png, gif) до 200Мб та відео до 1Гб (при цьому програвалося лише перші 3 хвилини). Першим кроком було завантажити усі формати, які хоч якось підтримувались.

Основна проблема виникла з RAW (nef, cr2 і т.п.) — потрібно було конвертувати їх в jpeg перед завантаженням, втрачаючи можливість повноцінно редагувати пізніше. Але я знайшов технологію (формат?) RarJpeg коли з RAW файлу генерувався jpeg повного розміру, RAW файл запаковувався в rar архів і дописувався в кінець файлу jpeg. Завдяки особливостям форматів jpeg та rar результат був одночасно коректною картинкою та архівом. Але оскільки на той час створення архіву відбувалося на Raspberry Pi з ARM процесором та Linuxʼом то використання rar було складним (неможливим?). Також не дуже хотілося звʼязуватися з комерційною програмою. Зате 7-zip чудово працював (і досі працює). Ось вам приклад такого файлу (20Мб, архів з паролем).

Flickr API виявився дуже складною та нестабільною штукою. Можна було без проблем створити альбом і почати завантажувати в нього файли, але якщо через 10-20 хвилин запросити список усіх альбомів то його там могло не виявитися. Мій початковий скрипт в такому разі створював новий альбом і починав завантажувати файли знову. В результаті виникали дивні ситуації з дублями і т.п. Лише після кількох років боротьби та розробки мій скрипт став настільки розумним, що навчився уникати більшості проблем з Flickr API. Хоча дивні ситуації все одно зрідка трапляються. Досвід роботи з API, який я отримав в процесі — безцінний.

Саме з появою практично безлімітного Flickr у мене виникла ідея бекапити не лише основний архів (на той час вже десь 350Гб), але й невикористані RAW файли (на той момент — 600Гб). На Dropboxʼі вже не було достатньо місця, зате акція на Box ще тривала (правда лише для телефонів LG, яким є мій Nexus 4) і кількість моїх акаунтів зросло до 80 бо я наївно сподівався, що цього має вистачити на дуже довго :). Кількість акаунтів на Flickr теж не залишилась сталою 🙂

Onedrive
В лютому 2015 року Microsoft почав дуже активно просувати свій OneDrive і запустив акції з Dropbox та Bing: 100Гб на 1 рік та ще 100Гб на 2 роки. Як вже не складно здогадатися, одним акаунтом я не обмежився. Приблизно в цей час вони почали запускати нове OneDrive API, робота з яким була досить легкою (на відміну від старого SkyDrive API). Більше особливо про OneDrive мені сказати нічого — працює добре, проблем мінімум (великі файли доводиться завантажувати по 60Мб), але основне місце закінчиться в лютому 2017.

Mega
Сервіс від Kim Dotcom. З одного боку захищений та надає 50Гб без жодних акцій, з іншого — API складне, криптографія занадто важка для PHP тому доводиться використовувати консольні програми з пакету megatools. Зараз сервіс вже має інших власників (якісь китайські інвестори) тому подальша доля його невідома. Але я його поки підтримую бо особливих проблем він не викликає.

Amazon Drive
В травні 2015 року Amazon вирішив позмагатися з Dropbox, Onedrive, Google Drive і т.п. тому оновив свій Cloud Drive. У ньому зʼявилося 2 нові тарифні плани: Unlimited Everything за $5/місяць та Unlimited Photos за $1/місяць.
Мене зацікавив план Unlimited Photos тому я вирішив перевірити, які формати вважаються фотографіями. Виявилось, що усі, які я перевіряв, навіть nef, cr2, dng, tif, psd і т.п. Це став перший сервіс, за який я почав платити (правда не довго бо через 4 чи 5 місяців мені прийшов код для Unlimited Everything на рік).
Amazon Cloud Drive API виявилося дуже нестабільним. Я розумію, що сервіс привабливий за ціною, і що знайшлося купа бажаючих ним скористатися, але все ж Amazon міг щось придумати. Довелося дороблювати свій скрипт, щоб він нормально реагував на часту та тривалу недоступність сервісу. Зараз ситуація наче виправилась. Незважаючи на Unlimited Everything я бекаплю лише фото бо восени планую повернутися на Unlimited Photos.

Google Drive
Навесні 2016 Google почав акцію серед користувачів Local Guides, які залишали огляди щодо місць, де вони побували, відповідали на питання та завантажували фотографії. Якщо набрати 200 очків та досягти 4-го рівня то надавався 1Тб на 2 роки. Я не одразу почав писати відгуки та відповідати на питання, але, на щастя, встиг це зробити для кількох акаунтів, поки бонус не зменшили до 100Гб в червні. Оскільки я поки не вирішив, чи буду продовжувати використовувати Google Drive для бекапу фото-відео через 2 роки тому створив та «прокачав» додаткові акаунти на власному домені (а не основний).

Google це Google тому особливих проблем з API не було. Єдина суттєва особливість — папки та файли віртуальні, тому немає перевірки на унікальність імен (так само, як і у Flickr). Усі інші сервіси скажуть, що файл вже існує, або просто перезапишуть його. Тому довелося дописувати скрипт щоб випадково не створювати дублікати.
Додаткова зручність — я розшарив папки з додаткових акаунтів на основний тому маю зручний доступ в Google Drive на телефоні до усіх файлів.

Інші сервіси
Bitcasa восени 2015 року роздавала 25 Гб для розробників, щоб вони могли потестувати їх новий CloudFS сервіс. Я вирішив замінити ним Dropbox, який на той час вже забрав бонусне місце. Використавши свою звичку тактику я зміг розмістити там основний архів (500Гб). Але через деякий час (кілька місяців) мені написали з пропозицією обговорити співпрацю (почати платити). Я проігнорував листи а через півроку вони оголосили про згортання сервісу. Ну не дуже і хотілося 🙂
Mail.ru (прохання не кидати в мене гнилі помідори) запустив акцію для своєї «хмари» в кінці 2013 року. Я не збирався ним користуватися, але через жагу до дослідження нових сервісів все ж прокачав 2 акаунти до 1Тб.
В лютому 2016, коли Microsoft забрав перші 100Гб, я все ж вирішив надати Mail.ru шанс. Але завантажувати «голі» файли було дуже ризиковано. В хід пішло PGP шифрування та приховування імен файлів. Поки що це все живе, але думаю не на довго 🙂

size

Результат
У мене є система, яка забекапила майже 3Тб фото-відео-аудіо (мої та Олександри) паралельно на 7 сервісів (невикористані RAW та відео — лише на 6) та продовжує це робити.
Скрипт на Synology NAS завантажує файли на Box (так історично склалося), далі він запускає скрипт на моєму сервері на Linode, який переносить файли на Google Drive а потім і на інші «хмари» (Flickr, Amazon, Onedrive, Mega, Mail.ru). Все це працює в автоматичному режимі але процес я запускаю вручну коли фотографії вже розібрані та оброблені, щоб невикористані RAW не потрапили в основний архів.
Надійсність кожного з сервісів викликає питання (особливо через їх безкоштовність), але усі одразу вони навряд зникнуть. Також у мене є локальна копія, правда частину невикористаних RAW довелося видалити. Але колись я завантажу їх назад 🙂

Майбутнє
OneDrive забере бонусне місце за півроку, Google — за півтора. Я сподіваюсь, що файли просто стануть read-only. Місце на Box з часом закінчиться (нових акцій давно не було, існуючі акаунти неправильно рахують вільне місце тому деякі пусті вже переповнені). Думаю мають зʼявитися нові сервіси (з мого досвіду — мінімум раз на рік). Система спроектована з розрахунку на легку інтерграцію нових сервісів, зазвичай це справа кількох днів. З іншого боку вимкнути якийсь сервіс дуже просто, тому можливо з часом залишаться лише кілька найзручніших (для прикладу, Amazon та Flickr). Життя покаже 🙂

Поради
Бекапити усе, що може мати хоч якусь цінність. Я розумію, що мало хто буде морочитись так, як це роблю я. Але використати Flickr або Amazon Drive можна навіть без особливих навичок з програмування. Нічого так не тішить душу, коли знаєш, що усі файли є ще десь і локальний комп’ютер/NAS не містить нічого важливого в 1 екземплярі.

Домашня мережа та залізо

Я користуюсь компʼютерами вже майже 20 років але до минулого року в мене не виникало потреби в домашній мережі — компʼютер чи компʼютери просто підключались до інтернету через роутер.

Raspberry Pi

Першим з категорії «залізо домашньої мережі» в мене зʼявився Raspberry Pi. Це мікро-компʼютер за $35 (блок живлення та SD картка знайшлися в господарстві) на якому працює повноцінний Linux і для якого вже знайшлися сотні застосувань.
Я купив його без певної мети, але з часом йому все ж знайшлося застосування: збір даних про погоду через спеціальні датчики температури, вологості та тиску. Датчик вологості вмирав 2 рази, купувати 3й вже не було бажання.
Наступним застосуванням став бекап фотоархіву в хмари. Я налаштував його таким чином, щоб він перевіряв наявність мого ноутбука в мережі і в разі його відсутності — починав свою «брудну роботу». Оскільки я завжди закриваю ноутбук на ніч а в будні дні беру його з собою на роботу то в Raspberry Pi було повно часу для своєї «непомітної» роботи.

Vizio

Ще одне застосування зʼявилося після купівлі телевізора. Оскільки Raspberry Pi має HDMI порт а також існує непоганий дистрибʼютив XBMC (Raspbian) то він з легкістю перетворюється на медіа-центр. Достатньо було підключити зовнішній диск по USB. Приємним сюрпризом стало те, що і телевізор і Raspberry Pi підтримують протокол HDMI CEC (пульт від телевізора може керувати і зовнішніми пристроями).
І ось тут виникла проблема, яка привела до появи ще одної залізяки в домашній мережі.
Справа в тому, що Raspberry Pi через свою низьку ціну має обмежений набір портів та швидкодію. Його «вузьке місце» — USB, до якого підключені і Ethernet і зовнішній диск (8Гб SD картка використовувалася виключно під операційну систему).
Будь-яка операція з великими файлами локально або по мережі перетворювала багатозадачний (в теорії) компʼютер на однозадачний.

Отже зʼявилася потреба в швидкому та надійному мережевому диску.
На той момент в мене були 2 зовнішній диски — на 1Тб та 2Тб. 2Тб використовувався для бекапів Time Machine та фотоархіву. 1Тб використовувався як «останній рубіж», тобто сховище для даних, які наче і не дуже потрібні, але їх шкода видаляти. Розкрутивши коробки я там виявив звичайні 5″ SATA диски. Зʼявилася ідея знайти «коробку», куди можна було вставити ті диски і яка мала Ethernet.
Альтернативою було б купити щось типу WD My Cloud але там не було опції «коробки без дисків» а купувати нові диски я не мав бажання.
Оцінивши доступні альтернативи вибір зупинився на «коробках» на 2 диски від Synology та Buffalo. Перша подобалася усім, друга — ціною. Прочитавши відгуки обрав Synology DS213j і не прогадав 🙂

Synology

Власне інсталяція виявилася дуже простою, диски зі старих коробок переклав у нову. Складніше було зберегти всі дані, які були на зовнішніх дисках, особливо мігрувати бекапи Time Machine (для ініціалізації диска Synology його форматує). Але використовуючи всі наявні вдома накопичувачі все ж вийшло зробити цю складну операцію протягом доби.
Ще одним питанням був RAID. Якщо вже робити швидке та надійне сховище то без нього обійтися досить складно.
Але наявні в мене диски були різного розміру, відповідно у випадку з RAID 1 доступний обʼєм дорівнював би обʼєму меншого диска (1Тб + 2Тб = 1Тб RAID). В майбутньому я звісно планую поставити туди 4Тб + 4Тб але поки такі обʼєми мені не потрібні.
Тому я не став створювати RAID а написав скрипт, який щоночі синхронізує важливі дані між двома дисками. Резервувати бекапи Time Machine та інший подібних мотлох я не бачу сенсу. В майбутньому можна буде замінити 1Тб на новий (більший) диск, міґрувати дані з 2Тб диску в RAID а потім 2Тб диск теж замінити на більший.

Raspberry Pi працює з новою коробкою майже як рідний. Правда він не розуміє моменту, коли коробка засинає вночі, але це дрібна проблема — достатньо вийти і зайти в папку.
Бекапи Time Machine тепер робляться автоматично коли ноутбук знаходиться вдома. Раніше треба було підключати зовнішній диск по Firewire.
Виявилося, що і Synology і телевізор підтримують протокол DLNA але програма телевізора, яка відповідає за DLNA, не зручна і обмежена: схоже її робити для «галочки».
Телевізор хоча і SmartTV але «розумний» він лише на папері. Я не знаю, як справи у подібних телевізорів від Samsung або LG але у Vizio ця функція «шкутильгає». Є багато чого зручного та корисного (програми для Netflix та Hulu зроблені добре) а є відверті недоробки (програма для Amazon Instant Video не показує субтитри, програма для Youtube безбожно гальмує і т.п.).

Сhromecast

Плани на майбутнє — перейти на більш обʼємні диски та замінити Raspberry Pi як медіа-центр на щось інше. Дивлюся в бік Chromecast (нещодавно Synology став його підтримувати) але купувати не поспішаю — можливо влітку вийде нова версія, також він підтримую не всі сервіси, якими ми користуємось (для прикладу, відсутній Amazon). З альтернатив недавно зʼявився Roku Streaming Stick. Підтримує багато чого, в тому числі Amazon але я не впевнений, як він буде працювати з Synology.

Roku

Ще до заліза домашньої мережі можна віднести мережевий принтер та Nintendo Wii але в них, як на мене, немає нічого цікавого.