вторник, 31 декабря 2013 г.

Yandex Диск: Символические ссылки

Сервис Яндекс Диск умеет работать с символическими ссылками в отличие от Google Drive (на момент написания). В работе клиента для linux  выявлен ряд особенностей, которые хочется отметить:

  1. В случае вложенных ссылок яндекс диск не отличает их и копирует содержимое повторно. В принципе это функциональность объяснима, для клиента все ссылки одинаковы. Под вложенными ссылками я понимаю ссылки на элементы в пределах одной родительской директории. Например, в папке photo отсортированы фотографии по годам, внутри каждого года по дням. Есть желание создать отдельную папку events в директории photo для хранения ссылок на определенные события (день рождения, свадьба), т.е. наша свадьба -> 200Y/200Y-MM-DD. В этом случае клиент яндекс диск повторно скопирует папку в хранилище. Выход: исключить из синхронизации пути с вложенными ссылками.
  2. Исключения папок из синхронизации. Невозможно исключить из синхронизации еще не созданные каталоги. Нужно сначала их создать, затем добавить в exclude-dirs. Внимание! При заполнении exclude-path в конфигурационном файле к первой директории добавляется полный путь к конфигу. Очевидно это баг. Поэтому первой стоит указать фейковую папку, затем через запятую относительные пути к папкам для исключения из синхронизации. Пример конфига:
    (config.cfg)
    auth="/home/user/.config/yandex-disk/passwd"
    dir="/media/work/clouds/yandex_disk"
    exclude-dirs="fake_dir_see_ps_aux,photo/events"
  3. Удаление папки .sync не влечет никаких проблем. Папка пересоздается при перезапуске демона.

пятница, 2 августа 2013 г.

Перестало запускаться расширение Mouse Gestures для Chrome

После очередного обновления chrome или его расширения mouse gestures, точно уже не помню, расширение перестало работать. Подгружалось с сообщением "Не могу запуститься. Перезагрузите страницу". Решение оказалось простым, нужно почистить настройки хрома, в том числе настройки расширений.

понедельник, 29 июля 2013 г.

Настройка Aptana в Ubuntu 12.04

Прокси
Много времени было потеряно на настройке прокси для аптана. В качестве проверки использовалась загрузка страницы home. Как оказалось позднее, настройки прокси подхватываются при настройках manual, username в формате DOMAIN\username. Свободно устанавливается дополнительное ПО. Но страница home так и не работает.

Indexer
Если по умолчанию не заработала индексация содержимого, то необходимо в настройках проекта явно указать зависимость от рельсов и руби в закладке Project Natures

четверг, 25 июля 2013 г.

Установка ruby при помощи rbenv с поддержкой openssl

Перед выполнение команды rbenv install ...ruby_version... необходимо поставить в систему требуемые пакет, тогда инсталляция пройдет с поддержкой openssl.

sudo aptitude install build-essential zlib1g-dev libreadline-dev libssl-dev libcurl4-openssl-dev

Проверить можно след. образом:
irb
require 'openssl' # =>true

среда, 26 июня 2013 г.

Памятка по bundle

Bundler управляет зависимостями руби приложений.
Существует много различных команд бандлера. Рассмотрим основные из них, а также стандартный workflow.
Основные команды:
bundle install - скачивает все зависимости из Gemfile для вашего приложения. Если не существовал Gemfile.lock, то из удаленного репа скачиваются зависимости и происходит установка. Если Gemfile.lock существовал, и Gemfile не был изменен, то все зависимости разрешиются из Gemfile.lock. Если Gemfile.lock существовал, и был обновлен Gemfile, то все зависимости, которые не обновлены, будут выбираться из Gemfile.lock, а новые перерезолвятся согласно Gemfile. Команда install обновляет кеш (vendor/cache). Команда install  при выполнении сначала проверяет не установлен ли уже гем. Если не установлен, то гем выбирается из кеша, если он там присутствует, иначе - выкачивается из инета. В любом случае проверяется формат гемов (подходит ли на данную платформу) через инет (можно отключить опцией --local).

bundle install --deployment - устанавливает зависимости на продакшн сервер. Нельзя использовать на машине разработчика, т.к. возникнут проблемы при изменении Gemfile. Флаг --deployment должен удовлетворять ряду соглашений:

  1. инсталлирует гемы в vendor/bundle
  2. требует up-to-date Gemfile.lock
  3. если был запущен bundle package, то будет выбирать пакеты из vedor/cache
UPD: у себя при развертывании на продакшн отказались от ключа --deployment, т.к. приходится каждый раз производить инсталляцию в папку vendor/bundle. А это достаточно затратно по времени (в нашем случае 8 мин). На сервере может находиться только один проект, поэтому ничего страшного не произойдет при инсталляции гемов в систему.


bundle update - обновляет зависимости и Gemfile.lock

bundle package - фиксирует гемы в vendor/cache

Стандартный workflow:
  • создаем Gemfile, выполняем установку гемов bundle install
  • добавляем Gemfile и полученный Gemfile.lock в систему контроля версий
  • при работе на другой машине разработчика выкачаем рабочую копию репа и просто выполняем bundle install
  • при развертывании выполняем bundle install
  • после изменения Gemfile для получения новых зависимостей выполняем bundle install (обновится Gemfile.lock и кеш). Необходимо убедиться, что Gemfile.lock сохраниться в 
  • для обновления ВСЕХ гемов можно выполнить bundle update


понедельник, 10 июня 2013 г.

unoconv UnoException Unsupported URL

Утилита unoconv испускает исключение UnoException: Unsupported URL в том случае, если в процессах завис процесс soffice (/usr/lib/libreoffice/program/soffice.bin -headless -invisible -nocrashreport -nodefault -nofirststartwizard -nologo -norestore -accept=socket,host=localhost,port=2002;urp;StarOffice.ComponentContext)

пятница, 7 июня 2013 г.

Подключение Ubuntu в домен windows (Active Directory)

Очень удобный пакет likewise-open.

Сервис Windows slave не запускается автоматическиr на jenkins

Для winxp (с другими не наблюдалось) характерна проблема при использовании в качестве сервиса jenkins-slave. Периодически не производился запуск машины из веб-оболочки jenkins. При ручной загрузке винды и попытке запустить сервис jenkins, выдавалось сообщение "Служба ... была запущена и затем выключена, т.к. ничего не делает". Решение найдено на странице тут. Нужно просто очистить журнал событий (Панель управления-Администрирование-Просмотр событий)

понедельник, 4 марта 2013 г.

Enterprise Application на QT

Обязательное разложение системы на слои: datasource, domain, presentation. Использование шаблона MVP. Основная цель MVP - обеспечить пригодность к тестированию на всех уровнях, в том числе и контроллеров, т.к. не требуется создание конкретные вьюх. Управление стилями приложения можно производить при помощи setStyleSheet. Дополнительно должны использоваться шаблоны ValueObject (например, для Money), ORM (odb, QxOrm), библиотека печати exaro.