PostgreSQL coub express.js freeware git jquery laravel links linux macos mysql node.js php powershell python ubuntu vim virtualbox анекдот блог игры интересно стихи цитаты

Рвется ssh соединение? Лечится так:
sudo vim /etc/ssh/sshd_config
# добавляем строки
ClientAliveInterval 30
ClientAliveCountMax 2
Здесь написано что раз в 30 секунд будет отправлен "пустой" пакет для того чтобы удерживать живым соединение.
Теперь тестируем конфиг
sudo /usr/sbin/sshd -t
Ели все в порядке, то ошибок тест не покажет.
Теперь перезапускаем сервис и на этом всё.
sudo service ssh restart

Со стороны клиента удержания коннекта можно добиться добавив строки
Host *
ServerAliveInterval 45
В файл конфигурации ~/.ssh/config


Задача: реализовать функцию копирования в буфер обмена ссылки на опубликованный на Я.Диске файл.
Вообще в природе есть готовые решения, но меня они как-то не впечатлили.
Будем пользоваться
  1. yandex-disk - Собственно сам консольный клиент Yandex.Disk
  2. xclip - утилитка для копирования всякого в буфер обмена
  3. notify-send - утилита для отправки оповещений на уровне оконного менеджера (здесь xfce)
Ставим клиент Я.Диск-а, ставим xclip из репозитория. Дальше открываем Thunar -> Edit -> Configure custom actions..
Добавляем новое действие. Вот такой командой пользуемся для публикации выбранного файла, копирования ссылки в буфер и отправки нотиса о завершении процедуры
mm=`yandex-disk publish %f`;echo -n $mm | xclip -sel clip;notify-send $mm
Выглядеть новая команда будет примерно так (иконку можно взять тут).


Для быстрого постинга скриншотов, думаю вполне подойдет Shutter (ставится из репозиториев). Его можно настроить для сохранения скриншотов сразу в папке Я.Диск-а, настроить качество и формат скриншотов. В нем же есть небольшой графический редактор который позволяет кропать изображения, рисовать рамки-стрелки и т.д. Правда чтобы активировать редактор в Shutter нужно поставить ещё кое-что (по состоянию на сегодня это всё ещё требуется, странно что не ставится всё сразу).
sudo apt-get install libgoo-canvas-perl gnome-web-photo
Как установить Shutter дефолтным инструментом в XFCE можно почитать например тут. Кажется это всё. Закончили упражнение.


Проблема: в vim ломается цветовая схема под screen в терминале (у меня стандартный терминал прижился, но похоже в iTerm тоже самое).
Коротко решение - установить screen из brew и убедиться что загружен именно он. Никакие игры с $TERM тут не помогут просто, проблема в самом screen-e.
### default mac os (10.10) screen
$ /usr/bin/screen -v
Screen version 4.00.03 (FAU) 23-Oct-06
### brew screen
$ /usr/local/bin/screen -v
Screen version 4.02.01 (GNU) 28-Apr-14
### default screen have to be
$ which screen
/usr/local/bin/screen
Thank's to Phillip Hallstrom After much googling I figured out that the default ‘screen’ in OSX doesn’t support 256 colors. Annoying.


А дело в том что включен автоиндент. Он и пытается "всё исправить". Вариант решения такой может быть
# перед вставкой кода
:set paste
# после вставки
:set nopaste
vim


Стандартный механизм настройки окружения описан тут. Простой он как двери в милиции, опирается на ответ gethostname() и выглядит вот так
$env = $app->detectEnvironment([
  'env-one-name' => array('hostname1.local'),
  'env-two-name' => array('hostname2')
]);
Все удобно, понятно. Одно "но" заключается в том, что на одном хосте при таких условиях два окружения не потестируешь. Решение я предлагаю такое
$env = $app->detectEnvironment(function(){

  // by path
  if (stristr(__DIR__, 'demo-env-folder-name')) {
    return 'demo';
  }

  // by hostname
  $hostname = gethostname();

  switch ($hostname) {
    case "hostname1.local":
      return 'env-one-name';
    break;

    case "hostname2":
      return 'env-two-name';
    break;

    default:
      return 'production';
    break;
  }
});
Таким образом будем в текущем пути искать название папки для выбранного окружения, то есть для папки /the/path/to/project/demo-env-folder-name будет включено окружение demo, а для других папок будет использоваться определение по хосту, то есть оригинальное. Конечно, есть определенная опасность словить не то окружение после переноса проекта третьими гражданами (которые не в курсе таких поворотов сюжета), но оповещение коллег о таких вещах я считаю должно быть на совести разработчиков. Да и поправить если что легко.


aghr