Очередная попытка переехать на Mac OS

Уже в который раз пытаюсь уйти с Ubuntu. Вариантов миграции совсем не много. Самый очевидный - это MacOS X.

В этот раз меня даже не сильно раздражает эта ОС. Вполне сносно можно жить, если допилить ее до вменяемого состояния.

Переходы по словам в консоли

Ни для кого не секрет, что родной терминал в маке довольно убог и все используют iTerm2. Настроить на переход по словам с помощью Alt/Option довольно легко. Инструкций в интернете полно.

После этих настроек все становится хорошо и довольно удобно.

Закрытие последней вкладки в Safari

В Safari, как и в других браузерах, можно закрепить несколько вкладок. Но от этого есть неприятный сайдэффект. Если нажать Cmd+W на последней не закрепленной вкладке, то Safari закрывает все окно. В остальных браузерах тебя просто перебрасывает на закрепленную вкладку.

Исправить можно в системных настройках клавиатуры путем добавления Shortcut (горячей клавиши).

Опишу для англоязычной системы, т.к. я использую систему именно на английском языке.

В разделе "App Shortcuts" создаем новую комбинацию клавиш для приложения Safari.

В Application выбираем Safari, в Menu item пишем "Close Tab" (регистр букв имеет значение), и в Keyboard Shortcut нажимем Cmd+W.

Все. После этого по нажатии в последней вкладке Cmd+W будет закрыта вкладка и открыты Favorites.

Если у вас система на русском языке, то в Menu item надо ввести название пункта меню в Safari, которое вы хотите чтоб вызывалось по нажатию Cmd+W.

Пока на этом все. Будем пробовать ужиться на этой системе.

Передвигаемся в консоли без стрелок

Сегодня совсем небольшая заметка...

В MacOS меня жутко раздражжает, что нельзя прыгать по словам в консоли (да, я в курсе, что можно это настроить сторонним софтом).

А вот век живи и век учись... Таки можно, и вот как:

Moving in cli

Как переехать в Amazon

Предпосылки

До переезда мы арендовали несколько bare metall серверов в SoftLayer.

На всех из них крутились KVM виртуалки, была своя выделенная подсеть (даже не так, несколько подсетей). Поддерживать все это было то еще удовольствие.

Немного спасал OpsCode Chef, но не сильно. Т.к. три ветки в git, которые сливать в кучку не всегда нормально удавалось из-за шифрования критичных вещей.

Не спрашивайте почему так. Это историческое наследие и выкорчевать его было не так просто.

Последней каплей стало то, что у нас как-то пошла небольшая нагрузка и на двух физических серверах тупо не хватило памяти, чтоб добавить ее в виртуалки. Пришлось ждать два дня, пока поддержка SoftLayer'a добавит нам планки.

В этот момент было принято волевое решение - хватит это терпеть. Пора отказываться от такой схемы работы.

Подготовка инфраструктуры

Было понятно, что переезжать куда-то, кроме облаков, нет смысла. Только там есть та самая динамика, которая нас сможет удовлетворить.

Выбор не велик - DigitalOcean и Amazon AWS. Поскольку DO не предоставляет HIPAA и HiTrust, то выбор стал очевиден сразу.


Читать далее...

Jenkins + LDAPS + самоподписные сертификаты

Проблема

При попытке сконфигурировать Jenkins для подключения к LDAP серверу с использованием шифрования данных получаем ошибку:

Unable to connect to ldaps://ldap.example.com:636 : javax.naming.CommunicationException: anonymous bind failed: ldap.example.com:636 [Root exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target]

javax.naming.CommunicationException: anonymous bind failed: ldap.example.com:636 [Root exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target]
    at com.sun.jndi.ldap.LdapClient.authenticate(LdapClient.java:198)
    at com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2788)
    at com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:319)
    at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:192)
    at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:210)
    at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:153)
    at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:83)

Она говорит нам, что Java не осилила TLS (SSL) из-за того, что у нас самоподписной сертификат.

Лечение

Заходим на сервер с Jenkins (если у вас он в доккере, то делайте все, что описано ниже внутри доккер контейнера).
Читать далее...

Видеонаблюдение дома

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

Для начала я порылся в закромах и нашел Noname Chinese IP Camera, которая умеет слать поток куда-то в Китай, а значит его можно попробовать поймать.

Подключаем камеру и пытаемся посмотреть, какие открытые порты она имеет:

$ sudo nmap -A 192.168.1.156

Ответ впечатляет разнообразностью:
Читать далее...

Мультитач в Ubuntu

Давно хотел нормальные жесты в Ubuntu и все никак не получалось найти способ, чтоб это заработало. Удобно же сделаны рабочие места в той же MacOS.

И вот сегодня нашел проект, который позволяет это все сделать абсолютно безболезненно.

Заводится с полпинка.

У товарища не захотело переключать рабочие столы с ходу. Решилось заменой в конфиге на xdotool. Примеры есть в самом конфиге. Пользуйтесь на здоровье. ;)

Amazon AWS

Мне очень нравится работать с Amazon AWS. Особенно если эта работа происходит с помощью Packer и Terraform. Эти инструменты позволяют формировать инфраструктуру быстро и непринужденно.

Но в этом есть подводные камни.

Всегда надо читать условия использования сервиса Amazon, т.к. там могут быть существенные ограничения, например, на скорость доступа к сервису. Потом может быть больно. ;)

Еще раз - всегда читайте то, что пишет Amazon о сервисе и условия предоставления услуги. Яркий тому пример - Amazon EFS.

Есть ли жизнь с Chrome

Поскольку у меня в ноуте памяти 16 ГБ решил попробовать перейти таки на Google Chrome.

Говорят он жрет память как не в себя, но у меня ее довольно много, чтоб об этом задумываться. А вот интеграция с сервисами известной компании у него всяко лучше, чем у FireFox.

Ну и заодно посмотрим что там поменялось за последние 5-6 лет, которые я его не использую.

Дайвинг - больше, чем просто хобби

Съездили с женой в отпуск и она подарила мне курс CMAS One Star Diver. Это такой аналог PADI Open Water Diver.

Прошел курс, успешно сдал экзамен (теория + практика). Т.е. теперь я сертифицированный дайвер. :)

Я и до этого погружался до 12 метров. Было вполне нормально. Но сертификация дала возможность структурировать разрозненные знания. Плюс к этому - новые знания о планировании погружений, как действовать в ситуации окончания воздуха в баллоне...

Очень интересно, немного экстримально и очень красивые глубинные ландшафты и обитатели подводного мира.

После окончания курса, так уж вышло, сразу пришлось воспользоваться знаниями и возвращаться на октопусе buddy. :) Слишком много дышу под водой.

Всячески рекомендую всем подобный курс. Это очень интересно и познавательно. Плюс сообщество дайверов - это отдельная тема. ;)

30+ Linux команд, которые необходимо знать

30+ простых команд, которые помогут работать в консоли:

  • ls - list, выводит список файлов в каталоге
  • mkdir - make dir, создать каталог
  • pwd - print working dir, показать текущий каталог
  • cd - change dir, сменить каталог
  • rmdir - remove dir, удалить каталог
  • rm - remove, удалить файл/каталог
  • cp - copy, копирование файлов/каталогов
  • mv - move, переместить файл/каталог
  • cat - concatenate/print, объеденить или вывести содержимое файла
  • tail - вывести конец файла
  • less - вывести содержимое файла
  • grep - фильтровать содержимое файла
  • find - поиск файлов
  • tar, gzip, unzip - архивирование/разархивирование файлов/каталогов
  • help - краткая справка
  • whatis - однострочное описание команды
  • man - manual, подробная справка о команде
  • exit - закрытие текущей сессии терминала
  • ping - проверка доступности удаленного хоста
  • who - кто использует текущий компьютер
  • su - switch user, переключить пользователя
  • uname - информация о текущем компьтере
  • free - показать объем свободной памяти
  • df, du - показать статистику использования диска
  • ps - processes, показать выполняемые процессы
  • top - статистика выполняемых процессов
  • shutdown, halt - выключить/перезагрузить компьютер