Внедряется за пару минут буквально, больше времени на выписку сертификатов и их заливку уходит. Ничего нигде не падает, из софт-специфик вещей приходилось только немного подкрутить конфиг Mediawiki, чтобы она не выдавала mixed-content, а тому же Вордпрессу, phpBB и куче всего прочего — вообще до фонаря, абсолютно так же работает, как и напрямки.
Напишу на случай, если кто-то будет делать pHash по описанию в этой статье. В статье написана ЧУШЬ. Правильный алгоритм DCT-pHash такой (описан в phash.org/docs/pubs/thesis_zauner.pdf, раздел 3.2.1):
1. Картинка уменьшается до 32×32
2. Переводится в grayscale
3. Применяется DCT 32×32
4. (вот тут разница) Из полученной матрицы 32×32 берётся подматрица 8×8 со сдвигом 1×1 от верхнего левого угла (!). То есть, если наша 32×32 пронумерована как 0..31×0..31, то мы берём пересечение 1..8×1..8.
5. Вычисляем среднее значение величин полученной матрицы
6. Составляем из 64 величин матрицы 64-битовый массив, в котором бит равен 1, если значение величины больше среднего, 0 если меньше.
«На первый взгляд картинка кажется бессмысленным набором шарообразных очертаний, но если присмотреться, то можно заметить, что тёмные области соответствуют тем же областям на фотографии (причёска и полоса на заднем фоне в правой части фотографии.»
Это бред, картинка и её фурье-образ могут быть похожи только случайно.
Я тоже сильно привык к screen, но иногда бывает, что он зависает\залипает, ни как не могу выяснить причину. Те он так зависает, что даже не возможно сделать detach и в новом терминале не возможно сделать screen –x session. Приходится его kill -9.
Еще я очень привык что screen у меня запускается по алиасу:
alias live='
if [ -n "`screen -ls | grep LIVE`" ]; then
if [ -n "`screen -ls | grep LIVE | grep Attached`" ]; then
if [ -z "`echo $TERMCAP | grep screen`" ]; then
echo "Enter into Atached screen";
sleep 2;
screen -x LIVE ;
else
echo "in LIVE" ;
fi
else
screen -r LIVE ;
fi
else
screen -S LIVE -c .screenrc.live ;
fi'
если screen с сессией live не запущен, запустить его и перейти в него, если сессия live есть, и не подключена ни к одному терминалу просто войдем в эту сессию, если сессия live существует и подключена на другом терминале, то сообщим об этом, ждем 2 секунды и войдем в сессию, а если мы находимся в этой сессии, то просто сообщаем, что уже тут.
Те все, что мне нужно сделать в терминале после перезагрузки (бывает и такое) это набрать live. На работе не забыть нажать C-a d, а по приходу домой просто набрать live.
А в .screenrc.live (настриваем по вкусу рабочее окружение):
Спасибо за пост, буду пробовать tmux. Правда в посте не хватает пару слов о том, как вывести список сессий и как вернутся в нужную сессию.
C-b d – отключится от сессии
tmux list-sessions – список сессий
tmux attach-session -t 0 – вернуться в нужную сессию
#include <stdio.h>
#include <unistd.h>
#define RED "\033[1;32;41m"
#define GREEN "\033[5;30;42m"
#define OLDCOLOR "\033[0;0;0m"
main(){
if(isatty(STDOUT_FILENO)) printf(RED "This is a TTY! " GREEN "Output may be colorized!" OLDCOLOR "\n");
else printf("This is pipe, no colors!\n");
}
# cat /etc/dnsmasq.hosts | wc -l
48306
Базы обновляю при помощи скрипта в cron.
http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&startdate[day]=&startdate[month]=&startdate[year]=
http://winhelp2002.mvps.org/hosts.txt
http://malware-domains.com/files/domains.zip
http://adaway.org/hosts.txt
http://someonewhocares.org/hosts/hosts
set -g prefix C-a
Внедряется за пару минут буквально, больше времени на выписку сертификатов и их заливку уходит. Ничего нигде не падает, из софт-специфик вещей приходилось только немного подкрутить конфиг Mediawiki, чтобы она не выдавала mixed-content, а тому же Вордпрессу, phpBB и куче всего прочего — вообще до фонаря, абсолютно так же работает, как и напрямки.
1. Картинка уменьшается до 32×32
2. Переводится в grayscale
3. Применяется DCT 32×32
4. (вот тут разница) Из полученной матрицы 32×32 берётся подматрица 8×8 со сдвигом 1×1 от верхнего левого угла (!). То есть, если наша 32×32 пронумерована как 0..31×0..31, то мы берём пересечение 1..8×1..8.
5. Вычисляем среднее значение величин полученной матрицы
6. Составляем из 64 величин матрицы 64-битовый массив, в котором бит равен 1, если значение величины больше среднего, 0 если меньше.
«На первый взгляд картинка кажется бессмысленным набором шарообразных очертаний, но если присмотреться, то можно заметить, что тёмные области соответствуют тем же областям на фотографии (причёска и полоса на заднем фоне в правой части фотографии.»
Это бред, картинка и её фурье-образ могут быть похожи только случайно.
Еще я очень привык что screen у меня запускается по алиасу:
если screen с сессией live не запущен, запустить его и перейти в него, если сессия live есть, и не подключена ни к одному терминалу просто войдем в эту сессию, если сессия live существует и подключена на другом терминале, то сообщим об этом, ждем 2 секунды и войдем в сессию, а если мы находимся в этой сессии, то просто сообщаем, что уже тут.
Те все, что мне нужно сделать в терминале после перезагрузки (бывает и такое) это набрать live. На работе не забыть нажать C-a d, а по приходу домой просто набрать live.
А в .screenrc.live (настриваем по вкусу рабочее окружение):
Спасибо за пост, буду пробовать tmux. Правда в посте не хватает пару слов о том, как вывести список сессий и как вернутся в нужную сессию.
C-b d – отключится от сессии
tmux list-sessions – список сессий
tmux attach-session -t 0 – вернуться в нужную сессию
C-b после C-a в screen ужасно не удобно…
'this[...] =' заполняет свойства объекта, созданного через new function. Более явно это можно было бы записать так: