?

Log in

В redis есть возможность получить список ключей по маске (команда KEYS). В результате можно узнать, есть ли у нас определенный набор ключей подпадающих под шаблон. Например, если для ключей хранящих данные о пользователях использовать префикс 'user.id.идентификатор_пользователя', то узнать закэшированных пользователей можно командой:


redis-cli -n 0 KEYS 'user.id.*'


Но вот удалить группу ключей подпадающих под определенную маску нельзя. Команда DEL требует конкретные имена ключей, а FLUSHDB удалит все ключи. Задача нерешаемая на уровне redis-а, но решаема на уровне командной строки. Делается так:


redis-cli -n 0 KEYS 'user.id.*' | xargs redis-cli -n 0 DEL

Метки:

Обычно при установке mysql apt требует пароль для root-а. Таким вот скриптом можно это процесс провести в неинтерактивном режиме:

#!/bin/bash
apt-get install -f -y pwgen > /dev/null;
MYSQL_PASS=$(pwgen -s 12 1);

cat <<MYSQL_PRESEED | debconf-set-selections
mysql-server-5.1 mysql-server/root_password password $MYSQL_PASS
mysql-server-5.1 mysql-server/root_password_again password $MYSQL_PASS
mysql-server-5.1 mysql-server/start_on_boot boolean true
MYSQL_PRESEED

DEBIAN_FRONTEND=noninteractive apt-get install -f -y mysql-server

echo "MySQL Password set to '${MYSQL_PASS}'. Remember to delete ~/.mysql.passwd" | tee ~/.mysql.passwd;


Пароль сохраняется в файл ~/.mysql.passwd который после завершения стоит удалить.
jQZoom достаточно известный плагин к jQuery для создания эффекта лупы к фотографиям. Всем он хорош, но в случае если через DOM на странице изменить набор фоток для которого он работает, то в самой лупе по прежнему буду показываться старые. Гугл выдает слишком уж замороченные решения которые не получается использовать в своем случае. Изучив исходник плагина нашел простое и гарантированное решение:

var api = null;
api = $('.jqzoom').data("jqzoom");
if (api) {api.init()};

т.е. просто делаем переинициализацию плагина в ходе которой он перечитает измененный DOM и развесит все необходимые обработчики.

Метки:

Редко я что пиарю, сфера деятельности не та, но вот журнал svictorych-а хочется рекомендовать к подписке. Автор - владелец бизнеса и пишет о работе с людьми с точки зрения владельца бизнеса. Поэтому с одной стороны вроде бы должно быть интересно разным управленцам. Но. И работнику почитать подобные темы будет полезно. Хотя бы для того, что бы задуматься что происходит внутри конторы и почему. Возможно это поможет в поиске компании своей мечты. В любом случае это хороший повод задуматься.
Порой требуется взять (x)html страницу и получить отформатированный файл. Возник вопрос, как из исходной, порой минимизированный страницы, получить нормально отформатированный файл? Оказывает, что вопрос решаем утилитой xmllint:

xmllint --format --recover --encode utf8 --output output_file.html input_file.html


Хотя у меня получилось не с первого раза (или зачем ascii2uni?)Свернуть )
P.S. По умолчанию xmllint для форматирования использует два пробела. Любителям tab-ов нужно установить XMLLINT_INDENT переменную окружения. Можно командой export XMLLINT_INDENT="Ctrl+v,Ctrl+i" (export XMLLINT_INDENT="\t" не сработает), а еще лучше прописать это в ~/.bash_profile

Метки:

My tweets

Метки:

Огорчим «жуликов»?

Оригинал взят у borisakunin в Огорчим «жуликов»?
     Как и многие из вас, я долго ломал голову над вопросом: участвовать в выборах или присоединиться к народному движению «Нах-нах». Моим сомнениям положила конец мудрая предвыборная стратегия правящей партии.
     Поскольку 4 декабря в Москве меня не будет, я, так еще и не определившись, решил на всякий случай взять открепительный талон.
     Оказалось, что в Москве это очень и очень непросто. На сайте избирательной комиссии разглядеть свой переулок я не смог (убедитесь сами). Адрес и телефон комиссии тоже отсутствуют. Нет этих данных и на плакатах, бодро зовущих меня на выборы.
     В моем квартале я обнаружил всего 2 (два) таких плаката. На обоих хулиганские надписи (не иначе веселые поросята из «Нах-наха» поработали), а куда «приходить и голосовать!» – непонятно.

     На подъездах тоже ничего не вывешено. И вообще: я вдруг сообразил, что предвыборных призывов у нас в городе как-то  сильно меньше, чем во все предыдущие разы.
     Талон я все-таки добыл, но для этого пришлось проявить незаурядную настырность с использованием интернета и звонками (двумя) в Избирком, где у моей жены первым делом зачем-то спросили ФИО. Наконец, мы с трудом отыскали избушку без окон-без дверей (и тем более без вывески), где находится участковая избирательная комиссия.
     Нашему приходу там ужасно удивились. На вопросы о причине странной конспиративности смущенно отводили глаза. Когда я спросил: «Разве вы не хотите, чтобы на выборы пришло много народу?» - промолчали.
     Какой-то парадокс, подумал я. Везут тыщи «нашистов» в столицу поднимать процент явки, а от местных избирателей прячутся.
     И снизошло на меня сатори. И открылся Третий Глаз, и узрел я Истину.
     Она проста.
     «Партия жуликов» не хочет, чтоб москвичи пришли голосовать. Боится. Если москвичи придут и проголосуют, то результаты сильно огорчат кремлевских наперсточников. Обнаружится, что собственная столица их на дух не переносит: Кремль живет, под собою не чуя Москвы.
     И тут я решил, что свой открепительный талон непременно использую – пускай даже и не в Москве. Вредность – одна из коренных российских национальных черт. Я ею тоже не обделен.
     Послушайте, дамы-господа, а давайте огорчим «жуликов». Давайте не поленимся, пойдем и используем «свой шанс повлиять на политику страны», если уж нас уговаривают так ненастойчиво. Я, например, чертыхаясь, отдам свой голос за кислое «Яблоко».

Почему все-таки за «Яблоко» Свернуть )
      Друзья «нах-нахи», повзрослейте уже, пожалуйста! Поймите: ваша школярская инициатива как нельзя лучше устраивает «жуликов». Пробойкотируете вы выборы или, озорно похрюкивая, сжуете бюллетень – это им все равно. Лишь бы вы не проголосовали за кого-нибудь другого.
     Кстати о школярстве. Мне тут один молодой человек со смехом рассказывал, как их на работе заставляют фотографировать на мобильник избирательный бюллетень, где напротив сами-знаете-какой партии должна стоять галочка. «Я сфоткаю, не проблема, - сказал сей вполне аполитичный  юноша. - И приколюсь: после возьму да навтыкаю галок всем партиям. А нé фига».
     Я же говорю: вредная у нас нация.
 
 

Метки:

Сравнивал скорость сериализации/десериализации и потребление памяти для JSON (v1.2.1), serialize и igbinary (v1.1.1) на массиве в 4МБ. Для PHP 5.3.8 получилось:
 encodedecodememory
serialize100%100%100%
JSON246%106%129%
igbinary248%200%452%

Т.е. igbinary сработал в 2 раза быстрее отведя в 4,5 раза меньше памяти под выходную строку. С такими показателями это хороший кандидат на замену стандартного механизма.

Метки:

Smarty VS ctpp

 Провел тест на использование двух шаблонных движков в PHP: Smarty и ctpp. Если кратко, то без PHP акселераторов ctpp быстрее раз в 15, с акселераторами в 3 (с eAccelerator немного шустрее, чем с XCache).

Технические подробности под катомСвернуть )

Метки:

Оригинал взят у svictorych в А теперь про прогрессивную шкалу НДФЛ
Сварщик Василий - молодой предприниматель - за месяц работы сварил десять парковых скамеек по десять тысяч рублей за штуку. Валовая прибыль без учёта налогов составила 10000 рублей в месяц. Сварщик Пётр - конкурент Василия - сварил за месяц работы двадцать скамеек и тоже реализовал их все по аналогичной цене. Валовая прибыль без учёта налогов составила 20000 рублей в месяц. Очевидно, что Пётр в два раза больше работал, произвёл в два раза больше продукции и заработал в два раза больше. Так ли это? 

При плоской шкале НДФЛ в карманах обоих сварщиков останется: у Василия 8700 рублей, у Петра 17400 рублей. Пётр работал в два раза больше Василия? 17400/2=8700 рублей. 

Что мы увидим при прогрессивной шкале НДФЛ? Не будет заостряться на том, какая прогрессия и с каких порогов облагается, а рассмотрим задачу в общем виде. Допустим, имеем следующую прогрессивную систему НДФЛ: при доходе до 10000 рублей платим 13%, а при доходе выше 10000 рублей 20%. Считаем. у Василия, как и в прошлый раз, останется 8700 рублей, а у Петра останется 10000-13%=8700 плюс 10000-20% = 16700 рублей. 

Таким образом, одна и та же работа оплачивалась по-разному: за работу по производству одной лавки Василий получил 870 рублей, а Пётр 835 рублей. То есть труд Пётра, работавшего вдвое больше Василия, производившего вдвое больше продукта, заплатившего в совокупности бОльший налог в бюджет (3300 рублей против 1300), оценивается на 35 рублей дешевле за каждую единицу продукции. 

Вопрос: почему это может считаться справедливым? За что поощрён Василий и почему труд Петра стоит дешевле при прочих равных?