Как быстро открыть директорию из Finder в tmux (сервис для macOS)

В стандартной поставке macOS можно быстро открыть нужную директорию из Finder в терминале, для этого предусмотрен соответствующий сервис. Проблема в том, что он не работает с tmux. Написал своё решение, которое создаёт новое окно в tmux и открывает в нём указанный путь, с последующим фокусом в терминал.

Скачать workflow / src


Привет Twitter

«Live. Die. Repeat.», — Edge of Tomorrow, 2014

Несколько лет назад я плевался на твиттер, и вот снова. А начинается рецидив очень просто:

1) Заводишь аккаунт, только для oAuth, а как ещё логиниться быстро на других ресурсах?
2) Тебя по email конечно находят друзья, фолловят — фолловишь в ответ. На всякий случай пишешь отмазку, что этот аккаунт технический.
3) Ну ладно, раз аккаунт есть, подписчики тоже, то обновления из блога, ведь можно твитить?
4) Заходишь в ленту, раз, другой, третий ... Здравствуй, "любимая соц. сеть"!

Читать @fluder_co


Чем запомнился 2016 год в киноиндустрии

Подвожу черту под впечатлениями от уходящего киногода. Хочу выделить фильмы, которые мне понравились, и те, которые не оправдали ожидания. Оценок не будет, просто хорошо и плохо.

Всех с наступающим/наступившим 🎉

Понравилось

10 Cloverfield Lane (Кловерфилд, 10)

10 Cloverfield Lane

Жанр: фантастика, триллер
Имена: Джон Гудман, Брэдли Купер

Секретный проект Дж. Дж. Абрамса, неожиданно, захватывающе, непредсказуемо. Запечатанный подземный бункер, ядерная атака, девушка приходит в себя прикованная к кровати ...

Вроде бы всё то же инди кино, но уже от маэстро.

IMDb

Arrival (Прибытие)

Arrival

Жанр: фантастика
Имена: Джереми Реннер, Форест Уитакер

Что то новенькое и про пришельцев сняли, наконец-то способы коммуникации были показаны и раскрыты достойно.

Актёры: Форест Уитакер, известный поклонникам Марвел, или сыграл бы кто-то другой, вообще значения не имеет, фильм не о персоналиях.

IMDb

Passengers (Пассажиры)

Passengers

Жанр: космическая фантастика
Имена: Дженнифер Лоуренс, Крис Прэтт, Лоуренс Фишборн

Глубокий космос, сломанная криокапсула, 80 лет полёта до пункта назначения.

Не лучшая роль Дженнифер Лоуренс, а вот Крис Прэтт вписался удачно. В следующем году желаю такого же успеха в новых Стражах Галактики.

IMDb

Jack Reacher: Never Go Back (Джек Ричер 2: Никогда не возвращайся)

Jack Reacher: Never Go Back

Жанр: боевик
Имена: Том Круз, Коби Смолдерс

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

Радует и рост Коби Смолдерс, в очередной раз доказала свою состоятельность в большом кино.

IMDb

Free State of Jones (Свободный штат Джонса)

Free State of Jones

Жанр: драма, военный, биография, история
Имена: Мэттью МакКонахи

Историческая военная драма, проваленная в прокате благодаря бездарному маркетингу. В Украине и России в кинотеатрах показов не было.

Для меня этот фильм стал «Списком Шиндлера», только про гражданскую войну в США.

В 2014 году Мэттью МакКонахи уже получил статуэтку киноакадемии за лучшую мужскую роль «Далласский клуб покупателей», возможно пора замахнуться на вторую? Роль подходящая, да и тема больная для американцев.

IMDb

Не стоили потраченного времени

Мультяшный «Варкрафт», очередные «Звёздные войны 7», примитивный «Отряд самоубийц», скучные «Фантастические твари и где их искать», детский «Дэдпул», фантастическое «Инферно», аутист Бен Аффлек, со своей «Расплатой».

Из франшиз от Marvel выглядят заезженно все новинки, кроме «Доктор Стрэндж» и «Люди Икс: Апокалипсис».


Перевел блог в GitHub Pages + Cloudflare

Перед новым годом решил провести чистку всяких ненужны сервисов, которые тянут деньги. Под раздачу попали Amazon Web Services: S3 + CloudFront для раздачи SSL + Route 52, без которого не работает раздача S3 (no-www доменов).

Попробовал GitHub Pages — решение для бесплатного размещения статических страниц. Сервис умеет хостить сайты на собственных доменах, но в этом случае:

  • не работает SSL
  • нельзя задать редиректы http -> https
  • нельзя указать в заголовках Cache-Control для статического контента

Все эти вопросы легко решаются с помощью Cloudflare, в бесплатной поставке.

DNS переводится к Cloudflare, в панели управления прописываются несколько правила для кеширования и редиректа. Бесплатных трёх правил мне хватило:

CloudFlare Page Rules

Выгружаю исходники сайта на GitHub, контрольная проверка в PageSpeed — результат 100%.

AWS мощное решение, но для персонального блога сложное и финансово непредсказуемое.


→ Программы для macOS 2016

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

1) Павел Мирошниченко написал прекрасный пост на эту тему, который я рекомендую.
2) Написание таких заметок отнимает уйму времени и сил, которого сейчас нет.

Павлу респект, он смог ;-)


Обзор медиаплеера Dune HD Solo Lite

Мой парк железок недавно пополнился и я решил сделать небольшой обзор нового медиаплеера от Dune.

Инженерами сделан упор на 4K и FullHD видео, 24 bit аудио и прочее. Подробную спецификацию вы можете узнать на официальном сайте.

Основные юскейсы для этого устройства — это телевидение и просмотр FullHD и UltraHD видео, ниже только о них.

Dune HD Solo Lite

Стриминг

Вы ещё записывает видео на флешку? Тогда мы идём к вам. По моему скромному мнению, лучшее место для хранения видео — NAS, есть тут конечно и USB порт, но ничего о нем рассказать не могу.

В качестве сетевого хранилища у меня выступает старенький iMac с подключенным внешним жестким диском (стомегабитный линк) и MacBook с SSD (гигабитный линк), на случай если нужно что-то скачать побыстрее.

Dune поддерживает три варианта внешних источников: NFS, Samba, DLNA.

Не рекомендую использовать Samba. Сервер в macOS, поднятый по умолчанию, не будет работать с дюной.

NFS очень просто настраивается и решает 99% вопросов, например таких как проигрывание Blu-ray из папок.

Совсем экзотические форматы плеер может не понимать, тест не прошли пара m4v видео. Для таких редких случаев есть смысл держать DLNA, для macOS рекомендую minidlnad, который умеет перепаковывать контейнер не лету.

Телевидение

Я смотрю телевидение: несколько передач, иногда футбол и пару сериалов, которые идут на каналах Amedia и Fox.

Обычные плейлисты не интересны, когда есть OTT.

В данный момент я тестирую сервис от OTTClub. За 10 $ в месяц они предоставляют доступ примерно к 160 украинским и русским телеканалам + архив за последние три дня.

OTTClub Middleware

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

Зависимость от торрентов этот сервис явно у меня уменьшил.

H.265/HEVC

Уже больше года как запустился UltraHDClub, контент которого 4K рипы от Netflix, так же есть и просто качественные сканы старых пленок, закодированные в H265.

У меня нет 4K телевизора, но качать рипы небольшого размера, сравнимые по качеству с Blu-ray хочется, поэтому поддержка H265 очень кстати, за ним будущее.

Прийдет время и будет взломан UltraHD Blu-ray.

Платные функции

Пробный период бесплатно, далее 1.99 € в месяц или по подписке.

Полноценная поддержка меню на Blu-ray образах

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

Впрочем Blu-ray из папок можно смотреть и так, бесплатно. Даже не знаю, нужно ли за это платить ради одних допов.

Коллекции

Переваривание вашей коллекции, по примеру Plex, библиотека подключается к USB диску или NFS, индексирование запускается руками, далее получаем распознанные фильмы с постерами, актерским составом, описанием и трейлерами.

Dune HD My Collection

Задумка хорошая, но ручное переиндексирование мне не очень нравится. Распознавание работает хорошо, из пары десятков фильмов распознаны были все, несмотря на отсутствие мета данных и странных названий в файлах.

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

Полезные мелочи

  • удобный пульт
  • управление громкостью по HDMI
  • быстрая перемотка
  • запоминание позиций и продолжение проигрывания c NAS

Сетевые интерфейсы

Телевидение по Wi-Fi бегает без сбоев, в том числе FullHD каналы. Тяжелое видео в виде Remux и 4K тормозит.

Поэтому выбор стоит таким образом — если нет физической возможности проложить кабель и вам нужен именно Wi-Fi, то брать нужно Dune HD Solo 4K, с гигабитным вайфаем. Если это не критично, то 1 Gbit/s Ethernet в Dune HD Lite закрывает вопрос.

! Если дома есть старый роутер, например Airport Express, то можно подключить его к плееру и использовать как мощную Wi-Fi карту.

Цена

Проигрыватель обойдется вам 200 € (~6500 грн), стоимость старшей модели Dune HD Solo 4K – 300 € (~9500 грн).

Стоит ли "ac" Wi-Fi и место для жесткого диска внутри, у старшего брата, 100 €? Я считаю нет, поэтому выбрал Dune HD Solo Lite.

В заключение

Кроме вышеупомянутых m4v файлов, которые я спокойно проигрываю через DLNA и отсутствия HDMI-CEC (а нужен ли он?) мне особо и придраться не у чему.

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


Проброс буфера обмена vim через SSH, в системах linux ⟷ macOS

Тем кто часто работает с vim/emacs через SSH, наверное приходилось сталкиваться с проблемой недоступности буфера обмена с хоста на сервере и наоборот.

Например в vim на сервере я выхожу из режим редактирования — ESC, нажимаю v, выбирают текст, копирую — y. В "clipboard" на macOS не попадает ничего. Можно выбрать необходимый текст трэкпадом или мышкой прямо в терминале, но тогда если включена нумерация строк, будут скопированы и они.

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

Настройка macOS

XQuartz

Устанавливаем XQuartz. Запускаем /Applications/Utilities/XQuartz.app, в настройках выбираем Update Pasteboard immediately when new text is selected.

Настройки XQuartz в macOS

ssh

В ~/.ssh/config добавляем интересующий хост и строку ForwardX11:

Host scaleway
    Hostname example.fluder.co
    Port 2200
    ForwardX11 yes

Настройка linux

xorg

На сервере должен быть установлен xorg:

sudo apt-get install xorg

vim

vim должен быть собран с поддержкой clipboard. Проверяем vim --version | grep clipboard.

sudo apt-get install vim-gtk

В .vimrc добавляем:

set clipboard=unnamed

sshd

По умолчанию X11Forwarding разрешен, /etc/ssh/sshd_config:

X11Forwarding yes
X11DisplayOffset 10

Проверяем xauth

Пробуем подключиться к серверу по ssh и командуем echo $DISPLAY, если всё ок, то в ответ мы увидим "localhost:10.0".

Убираем иконку XQuartz из Dock

Теперь каждый раз, когда вы будете подключаться к ssh серверу с опцией -X или равнозначному в конфиге, ForwardX11, будет запускаться XQuartz. Я предпочитаю его не показывать в доке.

sudo plutil -insert LSUIElement -integer 1 /Applications/Utilities/XQuartz.app/Contents/Info.plist

Чтобы изменения вступили в силу перегружаем программу.


CLI

Двойные оповещения в Telegram

Этот баг тянется у меня с iOS 8, на каждое новое сообщение приходит две нотификации. Google подсказал что я не один, ошибке подвержены все версии выше iOS 8, но проявляется она далеко не у всех.

Например обсуждение темы на reddit.

Или в Twitter:

Joshoon @Joshoon @telegram I am getting double notifications (Sometimes even three) for every single message on iOS. More people are having this problem. TwitterJuly 31st, 2015 at 12:22

Ещё в Twitter:

Marco De Nadai @denadai2 @telegram There are problems with notifications. I have double notifications on the iPhone and I have to enter in the chats to hide them

ctrld упоминал об этом баге тоже, в подкасте ZeroIQ и слак Apple-Russian . Я писал репорты, думал так на всех iPhone 6, но нет, а решается вопрос очень просто:

1) Удаляем приложение и данные.

Settings -> General -> Storage & iCloud Usage -> Telegram -> Delete All

2) Перезагружаем телефон.
3) Устанавливаем Telegram.
4) Profit!


iOS

Управление конфигурационными файлами 2016

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

Установка происходила очень просто:

git clone https://github.com/glushchenko/dotfiles.git ~/.dotfiles  
cd ~/.dotfiles && ./bootstrap.sh

После чего все конфиги из репозитория, сохранялись в ~/.dotfiles и линковались в домашний каталог (~/).

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

За время использования данного подхода было выявлено несколько недостатков:

  • На linux машинах разворачивался мусор (например ненужные конфиги для macOS, хранящиеся в этом же репозитории). Они не мешают конечно, но глаз постоянно за них цепляется.

  • Загрузку и установку зависимостей, например zsh, нужно делать отдельно, после чего руками переключаться на zsh.

Решение

Поведение скрипта bootstrap.sh полностью сохранено, добавлены две важные для меня фичи:

1) Линковка определенных сетов конфигурационных файлов (мои конфиги .dotfiles/bundle), в зависимости от необходимого окружения.

Теперь у меня на mac запуск bootstrap.sh происходит так:

./bootstrap.sh macOS

# или путь к бандлу

./bootstrap.sh bundle/macOS

А так выглядит конфиг бандла ~/.dotfiles/bundle/macOS:

.gitconfig  
.microrc  
.vim  
.vimrc  
.tmux.conf  
.tmux.macOS.conf  
.zsh  
.zshrc  

В данном примере будут прилинкованы только перечисленные файлы.

2) Написание собственных скриптов, которые бы запускались перед линковкой. Мне это нужно для предустановки самих программ, перед линковкой конфигов к ним. Например запускаем линковку бандла macOS:

./bootstrap.sh bundle/macOS

Далее происходит проверка, на существование исполняемого скрипта bundle/macOS.sh, и если он существует, то bootstrap.sh его исполняет.

Например я написал себе bundle/macOS.sh для сета macOS, который проверяет установлен ли brew, и если нет, то устанавливает его и зависимости:

#!/usr/bin/env bash

# install brew if not exist
if [ ! -f $(which brew) ]
then
    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

    # update packages
    brew update

    # install packages
    brew install tmux
    brew install reattach-to-user-namespace
    brew install minidlna
    brew install vim
    brew install dnsmasq
fi 

Или базовая настройка linux (debian based) машины — bundle/linux.sh:

#!/bin/bash

sudo apt-get update
sudo apt-get install -y tmux vim zsh

chsh -s $(which zsh)

Устанавливает tmux, vim и zsh, переключает терминал по умолчанию на zsh.

⭐️ Примеры в репозитории на GitHub


CLI

Украинская раскладка клавиатуры для Mac

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

Всё хорошо, но украинским языком я тоже пользуюсь, а подключать третью раскладку не хочется, сами понимаете почему. Решение я нашёл на GitHub: дополненную русскую клавиатуру с украинскими буквами, если зажать Option. На её основе, для себя, я сделал2 модификацию, в которую вошли:

  • украинские буквы с зажатым Alt (їґєі), как в оригинальной украинской раскладке
  • точка и запятая перенесены на место вопроса и слеша, и наоброт, как в раскладке Бирмана
  • типографика сохранена (перенесены в другое место только квадратные скобки)
  • русские буквы как в оригинальной русской раскладке на Mac (буква ё на месте, справа)
  • добавлен знак национальной валюты ₴
  • клёвая иконка украинского флага, вместо страшных "серпов Бирмана"
По умолчаниюShiftAlt

Репозиторий на GitHub

Чтобы установить, скопируйте файлы в ~/Library/Keyboard Layouts/ и выберите раскладку в настройках System Preferences -> Keyboard -> Input Sources -> Others -> Ukrainian (Russian).

Обновление 19/09/2016:
Тема жуткий баян, ctrld оказывается написал об этом шесть лет назад, а я только допёр. Пост удалять не буду, вдруг кому-то пригодится 😜

  1. В обычной русской раскладке Mac и PC неудобно набирать точку и запятую, через комбинацию цифр + Shift (или Control + Option) 

  2. Сборка произведена при помощи Ukelele 🍻