12 August 2016

Поддержка git сабмодулей для Capistrano 3

Из коробки Capistrano 3й версии не умеет клонировать репозиторий с сабмодулями. А проекты с сабмодулями есть и деплоить их как-то надо. Решением может быть мой плагин для Capistrano - capistrano-git-submodule-strategy .

28 June 2016

Фикс черного шрифта на тёмном фоне в gtk приложениях

В частности в Thunderbird под Ubuntu 16.04 меню рисуется чёрным шрифтом на тёмном фоне если применена тёмная тема. Нечитабельно.

Фиксится созданием файла ~/.config/gtk-3.0/gtk.css со следующим содержимым:
GtkPaned, GtkEventBox {
  color: @fg_color;
  background-color: @bg_color;
}

GtkPaned:backdrop, GtkEventBox:backdrop {
  color: @fg_color;
  background-color: @bg_color;
}

16 June 2016

Кеширующий прокси для композера

Есть у композера одна беда - он постоянно лазает на гитхаб за исходниками или тарболами. За тарболами он, кстати, лазает по апи. И тут вырисовывается сразу несколько проблем:

  • А что если гитхаб забанит ip за большое кол-во запросов? (актуально, например, для офиса)
  • А что если органы опять забанят гитхаб за непотребство какое-нибудь?
  • А что если автор какой-нибудь либы решит её удалить, а у вас на неё полсайта завязано?

30 May 2016

JetBrains vs XNeur

Кто не знает, xneur - это аналог Punto Switcher для Linux. Удобная штука, даже работает. Но никак не получается добавить JetBrains IDEA в исключения. Насколько понимаю, этот косяк затрагивает все IDE от JetBrains, основанные на IDEA: PhpStorm, WebStorm, PyCharm, RubyMine, etc

Слегка погуглив нашёл инфу, что нужно в игнор добавить не jetbrains-idea, а FocusProxy .
Вуаля, работает!

06 December 2015

isset vs array_key_exists - новые реалии

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

Буквально на днях вышла официально в свет 7я версия php и стало любопытно как поменялась ситуация.

И ситуация таки поменялась с точностью до наоборот. Во-первых, php7 функция isset стала работать раза в два быстрее чем в php5.6. А во-вторых array_key_exists стала работать быстрее функции isset. Самую малость, но быстрее.

Результаты тут: https://3v4l.org/gQe30

07 January 2015

Неработающий bluetooth после сна на ноуте с Liniux Ubuntu/Mint

Если у вас ноутбук с:
  • Ubuntu 14.04 и новее или Mint 17 и новее
  • неработающим bluetooth после сна
то есть простое решение:

06 January 2015

Неработающая регулировка яркости после сна на ноуте с Liniux Ubuntu/Mint

Если у вас ноутбук с:
  • Ubuntu 14.04 и новее или Mint 17 и новее
  • Intel'овской графикой
  • неработающим управлением яркостью после сна
то есть простое решение:

22 May 2014

git global ignore


run
touch ~/.gitignore_global
git config --global core.excludesfile ~/.gitignore_global
put this to ~/.gitignore_global 
# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so
 
# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
 
# Logs and databases #
######################
*.log
*.sql
*.sqlite
 
# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
# IDE settings
######################
.idea/
atlassian-ide-plugin.xml

04 April 2014

capistrano 3 scm local

В 3й версии Capistrano нет возможности деплоить код не из репозитория а из локальной папки. Во 2й версий такая возможность была (set :scm, :none)

Вот gem'чик, который решает эту проблему: https://rubygems.org/gems/capistrano-scm-local

Использование элементарно:
#Gemfile
source 'https://rubygems.org'
gem 'capistrano-scm-local', '~> 0.1'

#Capfile
require 'capistrano/scm-local'

#deploy.rb
set :scm, :local
set :local_strategy, :archive
set :repo_url, 'path/to/source'
local_strategy может быть :default или :archive
:default - тупо рекурсивно через scp выкачивает папку исходниками
:archive - пакует исходники в tar.gz, выкачивает и распаковывает

25 January 2014

How to disable ALT-` (tilde, apostrophe) in Linux Mint 16 Cinnamon

dconf-editor
  1. org/cinnamon/muffin/keybindings
  2. org/gnome/desktop/wm/keybindings

change "switch-group" from ['<Alt>Above_Tab'] to ['<Super>Above_Tab']
then logoff, logon


16 July 2013

Лечение медленного входа по SSH в Ubuntu

/etc/nsswitch.conf
заменить
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns 4 mdns
на
hosts: files dns

29 December 2012

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

Сделано на основе SyntaxHighlighter

Плюс свой небольшой скрипт для минимизации вставок в шаблон блога.

16 October 2012

isset vs array_key_exists

Я почему то всё время считал, что функции isset и array_key_exists должны работать с одинаковой скоростью. Ну просто исходя из принципа работы хеш-массивов.

Однако же нет.

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

07 October 2012

Как открыть PWI на PC

Остались от Windows Mobile файлы заметок с расширением pwi и очень хочется их открыть. Но ни ворд, ни блокнот не открывают, но всё же нашлось 1 средство.
Если заметка текстовая, то открывается она вполне успешно с помощью TextMaker Viewer (слил к себе).
С рукописными надо заморачиваться с эмулятором.

06 June 2012

Трекинг исходящих ссылок и скачек в Google Analytics

Однажды возникла задача тречить не только переходы по сайту, но также скачки файлов и уходы с сайта.
Тогда я написал скрипт, расширяющий стандартный трекер GA.

19 April 2012

Chrome vs Wine

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

07 April 2012

Как не потерять настройки сервера

В Ubuntu есть пакет etckeeper, который позволяет сохранять изменения /etc в репозитории git|hg|bzr