Запуск бинарников и скриптов через fzf, нахуя не спрашивайте.
TERMINAL="urxvt --geometry 160x18+30+200 -title fzf_run -e"
ROOT="/"
fzf_invoke()
{
export FZF_DEFAULT_COMMAND="find $1 -type f -executable -not \( -name \"*.so\" -or -name \"*.so.*\" \)"
cmd=$(fzf --tiebreak=end)
if [ $? -eq 0 ]; then
nohup "$cmd" 2>/dev/null &
sleep 0.1
fi
}
if [[ ! -z $1 ]]
then
ROOT=$1
fi
$TERMINAL sh -c "$(declare -f fzf_invoke) && fzf_invoke $ROOT"
bindsym Control+q nop
палю новую прохладную про hype driven development: короче посоны в рабстве запускали в kubernetes контейнерезированную опердень на go, которая sort of k/v store, проксируящая данные определенным образом в big table. Многие пользователи сервиса жаловались, что при высокой нагрузке иногда случаются лаги, от которых просаживается latency, лаги исчезают через некоторое время, потом опять появляются, etc.
стал дебажить копать это говно (типа ssh'ишься в контейнер, там никаких тулов нет, поставить ничего нельзя, остается только стандартный набор утилит командной строки и сраный go), выяснилось, что на самом деле сервис течет, как сучка. Когда ядерный OOM killer убивает опердень, как самый жирный процесс, kubernetes перезапускает контейнер с этой же оперденью либо на той же машине, либо на одной из незагруженных машин в кластере. Логи старого контейнера, в котором ебается опердень стираются и становятся недоступны.
Вот так в компании больше полугада тек сервис, который модненько перезапускался, оставляя всех в неведении о собтсвенной текучести
Упростил реальный кейс до двух таблиц (объекты и связи между объектами) и функции, которая по id объекта возвращает id привязанного к нему объекта. Суть в использовании именно функции для джойна, а не прямом джойне таблиц.
Заполняем таблицы небольшим количеством данных — в примере всего 500 объектов, половина из которых имеет связь. http://sqlfiddle.com/#!15/4881e1/6 и делаем два запроса с джойном функции:
/* (SLOW) */
-- функция вызывается 500*500 раз, после чего делается джойн вложенным циклом
-- Execution Time: 5242ms
explain analyze select obj.id, ot.id
from toobject obj
left join toobject ot on ot.id = to_getidref(obj.id);
/* (FAST) */
-- функция вызывается 500 раз в сабквери, после чего делается хеш джойн
-- Execution Time: 19ms
explain analyze select obj.id, ot.id
from toobject obj
left join toobject ot on ot.id = (select to_getidref(obj.id));
Чят, покажи свой .xinitrc/.xsession
i3&
xbindkeys&
bash /home/dc/dscr/kbd.sh&
~/opt/dropbox/dropboxd&
xbindkeys&
i3-msg 'workspace 10; exec urxvt -e wicd-curses'
~/Dropbox/scripts/kbd.sh&
xxkb&
i3-msg 'workspace 2; exec emacs'
sleep 1
i3-msg workspace 4
i3-msg 'workspace 4; exec emacs'
sleep 1
i3-msg 'workspace 4; exec emacs'
~/dscr/runflux.sh&
i3-msg 'workspace 1; exec firefox'
i3-msg 'workspace 3; exec urxvt'
xsetroot -solid "#333333"
tail -f /dev/null
емаксеры-педалисты, вы ноги держите на педалях или сбоку?