2011-02-24

Сколько стоит звонок в Саратов через Skype?

Собираюсь в небольшую заграничную поездку, задался вопросом сколько будет стоить звонок через Skype на мобильник в Саратов. На сайте Skype написано что это будет стоить примерно щесть центов.

Положил денег на счет, сделал звонок длительностью одна минута. Со счета сняли около 15 центов.

P.S. При продолжительных звонках, однако, эта величина, действительно, становится равной шести центам. Положил на счет десять долларов и за неделю не ограничивая себя разговорами потратил около шести долларов. Весьма и весьма не дурно.

 

Оставить комментарий

 
  2011-02-22

Почему все мужчины смотрят на женскую грудь?

Замечали ли вы, что мужчины смотрят женщинам на три части тела: на грудь, попу и на лицо. Причем этот процесс протекает совершенно неосознано, мужчины практически не могут это контролировать. Просто взгляд сам собой скользит в нужном направлении. Почему так происходит?

Все просто - это позволяет сразу оценить насколько женщина интересна для продолжения рода. Возможно, это звучит слишком упрощённо и цинично, но мне кажется люди уже достаточно созрели что бы перестать прикрываться идеями Эпохи Возрождения, вроде того, потому что это красиво, или потому что женское тело само по себе прекрасно и привлекательно. Женское тело так же привлекательно для самцов вида homo sapiens как тело самки гориллы привлекатильно для горилл-самцов.

Да да, человек это примат, учили, кажется, в школе теорию Дарвина. Конечно, всегда найдется тот, кто с теорией Дарвина не согласен и кивает на Библию, мол, человек создан по образу и подобию Бога, но разве там сказано, что все остальные животные созданы по образу и подобию кого то друго? Не сказано. Современная генетика вам это легко докажет и покажет — все живые существа на земле созданы из одних и тех же кирпичиков. Так что давайте смиримся с тем, что мы недалеко ушли от мира животных, (а скорее, даже, совсем, от мира животных не ушли) и посмотрим, какие в этом есть приятные стороны.

Читать далее...

 

Коментариев: 6

 
  2011-02-19

Настройка OpenVPN

Так получилось, что моя домашняя рабочая станция практически всегда находится во включенном состоянии и всегда в подключена к Internet. Иногда бывают ситуации, когда нужно получить доступ к домашней машине из другого места, например с работы, или с Нетбука по WiFi, или с телефона через GPRS или 3G.

Полбеды что домашний компьютер имеет динамический IP адрес, хуже всего, что этот IP адрес закрыт извне заботливым Интернет-Провайдером.

Давно вынашивал идею настроить VPN и сегодня её, наконец, реализовал. Для этого на линодовский VDS я поставил openvpn (да здравствует линодовский VPN!) OpenVPN настраивается очень просто на официальном сайте OpenVPN есть подробнейшая инструкция как это сделать далее, настраиваем клиентскую часть openvpn на всех машинах, которые хотим объединить в сеть, запускаем, готово - у нас есть собственная виртуальная защищенная сеть где все компьютеры имеют собственный внутренний IP адрес вида 10.8.0.x.

Заработало все практически без проблем, единственное смутило, что пример server.conf в юбунтовском пакете почему то оказался зазипованным (зачем они так сделали?) и не совсем очевидно было как настроить статические IP для всех клиентов.

Зато теперь я вижу со своего нетбука домашний компьютер по его внутреннему адресу где бы я не находился.

Кроме этого, всегда можно попасть на домашний компьютер просто зайдя на VPN сервер, например через терминал с мобильника или с другого компьютера.

 

Коментариев: 1

 
  2011-02-18

DNSBL

Потребовалось проверить некий IP адрес на наличие в блеклистах. Обычно для проверки занесен ли адрес в блеклист используют класс pear Net_DNSBL но у меня локально он наотрез отказался работать корректно, к тому же он требует чтобы PHP был не ниже 5.3.x.x. Такое его поведение мне не понравилось, поэтому решил разобраться как на самом деле происходит проверка. Оказалось все банально до пошлости: сам блеклист есть не что иное как набор DNS файлов на некоем сервере. Допустим, нужно проверить есть ли IP 1.2.3.4 на блеклисте 'db.wpbl.info' для этого просто достаточно проверить существует ли субдомен: 4.3.2.1.db.wpbl.info (обратите внимание - IP указывается в обратном порядке). Если существует - адрес в блеклисте, если нет - на нет и суда нет. Функция checkdnsrr нам в помощь.

По аналогии с  http://www.dnsbl.info/dnsbl-database-check.php сделал аналогичный сервис у себя на сайте - на всякий случай.

Кстати, оказалось что ренетовский IP через который я выхожу в Internet находится сразу в нескольких блеклистах из этого списка.

 

Оставить комментарий

 
  2011-02-17

Не все индексы одинаково полезны

Имеется InnoDB табличка, небольшая - меньше миллиона записей, делаем такой запрос (нужно получить top10 доменов):
> select dlvDestinationDomain, count(*) from email_accounting where jobid="11837" group by dlvDestinationDomain order by count(*) desc limit 10

созданы следующие индексы:

PRIMARY BTREE id
jobId BTREE jobId
dlvDestinationDomain BTREE dlvDestinationDomain
dlvDestinationDomain_2 BTREE dlvDestinationDomain
A
jobId_3 BTREE jobId
A

Обнаружилась забавная вещь: некоторые индексы не только не ускоряют но и замедляют агрегатные запросы:

вообще без использования индексов:

mysql> select dlvDestinationDomain, count(*) from email_accounting IGNORE INDEX(dlvDestinationDomain_2, jobId_3, jobId, dlvDestinationDomain) where jobid="11837" group by dlvDestinationDomain order by count(*) desc limit 10;

3.09 секунды

используя индекс по jobId дает небольшой прирост производительности:

mysql> select dlvDestinationDomain, count(*) from email_accounting FORCE INDEX (jobId) where jobid="11837" group by dlvDestinationDomain order by count(*) desc limit 10;

2.13 секунд;

использование составного индекса по jobID и dlvDestinationDomain сделало все гораздо веселее:

mysql> select dlvDestinationDomain, count(*) from email_accounting FORCE INDEX (jobId_3) where jobid="11837" group by dlvDestinationDomain order by count(*) desc limit 10;

0.39 секунд;

ипользование ключа с полям в обратном порядке  (dlvDestinationDomain и jobID) работает гораздо хуже:

mysql> select dlvDestinationDomain, count(*) from email_accounting FORCE INDEX (dlvDestinationDomain_2) where jobid="11837" group by dlvDestinationDomain order by count(*) desc limit 10;

1.36 секунд;

А вот использование ключа только по dlvDestinationDomain заставляет MySQL думать почти две минуты:

mysql> select dlvDestinationDomain, count(*) from email_accounting FORCE INDEX (dlvDestinationDomain) where jobid="11837" group by dlvDestinationDomain order by count(*) desc limit 10;

1 минута 48 секунд;

Кстати, заметил, что использование jobid="11837" (jobid у меня текстовое) заметно прибавляет скорости против jobid=11837. Не зря в strict моде MySQL грязно ругается на такие преобразования, ох не зря...

Upd. Во всем оказались замешаны настройки InnoDB, если увеличить в my.cnf значение переменной innodb_buffer_pool_size то скорость выполнения агрегативного запроса с индексом по группируемому полю заметно возрастает и картина меняется на прямо противоположную.

 

Оставить комментарий

 
  2011-02-15

О свободе слова в Интернет

Вчера рассказали изумительный стишок:

Товарищ верь, пройдет она,
И демократия и гласность,
Но Комитет Госбезопасность,
Запомнит ваши имена!

 

Коментариев: 3

 
  2011-02-11

Покатался с горки

Сегодня сходил покатался с горки на Первой Дачной, всего за этот год это получился уже четвертый раз когда я выбрался покататься. Катался на горнолыжной базе "Роща".

В прошлые разы немного поснимал телефоном, и наконец, смонтировал то что получилось:

 

Коментариев: 1

 
  2011-01-20

Функция преобразования даты из ISO 8601

Потребовалось обработать логи в которых дата хранилась примерно в таком формате 2010-12-03T18:34:33-0500. К сожалению в PHP нет толковой функции для преобразования строкового представления даты в timestamp. Как показала практика strtodate совершенно не учитывает последние четыре знака в строке которые она просто отбрасывет.

Пришлось парсерить строчку ручками и вот что получилось:

function covertdate($date){
	preg_match('/(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})([-+])(\d{2})(\d{2})/', $date,$res);
	list($d,$year,$month,$day,$hour,$minute,$second,$digit,$zonehours,$zoneminutes) = $res;
	
	$offset = ((int)($digit."1"))*($zonehours*3600+$zoneminutes*60);
	
	$timestamp = gmmktime($hour,$minute,$second,$month,$day,$year)-$offset;
	return $timestamp;
}

 

 

Коментариев: 1

 
  2011-01-15

Заголовок

Мы живем в удивительное время. Время когда любая информация доступна просто так на халяву. Время когда не поднимая задницы от стула можно получить все что угодно. Время когда для того чтобы создать что то новое совсем не обязательно работать руками - достаточно чтобы на плечах была голова.

Сейчас, чтобы узнать что либо неофициальное не обязательно слушать Голос Америки по ночам - достаточно найти нужный сайт в Интернет. Чтобы создать шедевр живописи - не нужно годами смешивать краски работая подмастерьем у придворного художника. Чтобы изучать боевые искусства не нужно сорок лет готовить еду, убираться и работать на своего Мастера.

Что, информация, блин, вся на английском? Но выучить иностранные языки - легко. Они кругом эти иностранные языки. Половина спама приходящего в мой почтовый ящик предложение выучить какой-нибудь язык. Хочешь Английский, хочешь Японский, хочешь Немецкий -  пожалуйста. Они кругом. Чтобы получить доступ к литературе на иностранных языках совсем не обязательно идти в магазин Интеркнига на Советской, который еще двадцать лет назад был единственный Саратове. Сериалы, мультфильмы, кино - пожалуйста все это для вас на языке оригинала. Не нравится учить тексты - можно учить песни - это даже интереснее.

Чтобы отправиться на другой материк не нужно несколько месяцев жить в корабле, болеть цингой и есть вяленую рыбу. Но ведь это так сложно сделать визу и купить билет на самолёт.

Мы живём в время безграничных возможностей. Сейчас любой ботан может стать Марком Цукербергом, Линусом Торвальдсом, Сергеем Брином или Билом Гейтсом. Любой. Может.

Но...

Реально Цекербергами становится один на Миллиард.

Миллионы слушают новости про Викиликс - реально скачивают и читают эти документы - единицы.

Хорош читать чужие блоги. За работу. Когда настанет время уходить из этого мира - а оно обязательно настанет, оглянувшись назад, сможешь ли ты сказать что использовал на сто процентов все те возможности которые были тебе дарованы? Был ли ты безупречен?

 

Коментариев: 3

 
  2011-01-11

Хлебопечка

С тех пор как в семье появился этот домашний зверёк мы совсем перестали покупать хлеб в магазине.

Зато теперь мы закупаем муку всевозможных видов — пшеничную, ржаную, рисовую, разрыхлители, дрожжи, мак и т.д. и т.п.

Достаточно загрузить в хлебопечку все необходимые ингредиенты в правильном порядке и в правильных пропорциях и на выходе получается вкусная горячая бухaнка.

Выпекание занимает чуть больше трёх часов. Оказывается, для хлеба важным является порядок загрузки ингредиентов — важно, сначала залить воду, затем положить соль и другие ингредиенты, затем засыпать муку и в уже самом конце на муку положить дрожжи. Если дрожжи положить в воду — это их убъёт и ничего не получится. Именно так я загубил свою первую буханку. Кстати, сухие дрожжи лучше  покупать в маленьких пакетиках - в больших пакетиках они почемуто работают хуже.

Ещё важно соблюдать правильные пропорции продуктов - стоит немного положить больше воды или дрожжей и хлеб осядет но если положить больше муки то хлеб получится недостаточно мягким и клёклым. Для лучшего результата желательно на кухне иметь электронные весы.

Но зато, если все условия соблюдены идеально, на выходе получается вот такая изумительная буханка:

Приятного аппетита!

 

Оставить комментарий