Страницы

понедельник, 8 октября 2012 г.

Валидация телефонного номера

Поискал в сети, всё что-то не подходящее, написал своё.
Реализация на JavaScript:
var phone = function (str0) {
var str = str0||"",
re1 = /^((\+?7)|8)[-\s]?(\(\d{3}\)|\d{3})[-\s]?\d{3}[-\s]?\d\d[-\s]?\d\d$/,
re2 = /^(8?[-\s]?(\(\d\d[-\s]?\d\d\)|(\d\d[-\s]?\d\d)))?[-\s]?\d\d[-\s]?\d\d[-\s]?\d\d$/;
if (re2.test(str) || re1.test(str)) return true;
else return false;
}

Первое правило проверяет мобильные номера, например:
8(916)3267527
8(916)326-75-27
8 (916) 326 75 27
8 916 326-75-27
8 916 326 75 27, ...
тоже самое, но с +7.

Второе правило проверяет городские (областные) номера, например:
8(8182)218920
8 8182 21 89 20
8182 218929
218929
21-89-29, ...

четверг, 13 сентября 2012 г.

mod_rewrite + mod_proxy Apache 2.2 и обработка параметра в адресной строке

Задача

Обработать нужные параметр в адресной строке. Конкретно - выдать forbidden при использовании определённого параметра:
http://example.com/?foo=bar - forbdden

Проблема

Во-первых, оказалось, что команда mod_proxy PxoxyPassMatch не обрабатывает параметры в строке, т.е. такое не прокатит:
ProxyPassMatch foo=bar !
Во-вторых, использование правила mod_rewrite тоже не сработало:
RewriteEngine On
RewriteCond %{QUERY_STRING} foo=bar
RewriteRule ^.*$  - [F,P]
Точнее, оно работает, если нет других правил в mod_proxy, но они были, и вначале обрабатывались они. Казалось бы параметр [P] должен был заставить воспринимать rewrite как proxy, и просто записать это правило выше, но ничего подобного.

Решение

Rewrite правило, записанное выше, надо было просто поместить в <Location /></Location> и mod_rewrite стал срабатывать первым. На официальном сайте об этом ни слова, более того, там написано это:
The rewrite engine may be used in .htaccess files and in <Directory> sections, with some additional complexity.
Although rewrite rules are syntactically permitted in <Location> and <Files> sections, this should never be necessary and is unsupported.
В интернетах пишут, что mod_rewrite должен первым срабатывать, но такого не произошло, поместив правила в <Directory>   (они кста и без включения в него работают норм по себе).

пятница, 24 августа 2012 г.

Photo Google+ vs Picasa

С появлением Google+ Photo возникла некая неразбериха у меня в голове, в чём его разница с Picasa. И тот и другой предоставляют доступ к одним и тем же фотографиям, но немного отличаются по возможностям.

Picasa удобнее и богаче по функционалу, тут с лёгкостью можно создать public link на фотку или добавить пользователей для совместного использования альбома. Зато в Google+ photo нет ограничения на объём заливаемых фоток. Получается отличный облачный сторедж всех своих фоток. Для удобства закачать большой объём фотографий попробовал десктопную программу Picasa. Оказалось, она использует старый API, и поэтому учитывает объём залитых фотографий.

Поэтому исходя из необходимости иногда пользуюсь интерфейсом пикасы, а иногда гугл+ фото.

https://picasaweb.google.com/home
https://plus.google.com/u/0/photos/

суббота, 11 августа 2012 г.

1С-программист

Вспомнилось тут из школьного.

Ехал в поезде то ли в из Питера в Архангельск, то ли из Архангельска в Карпогоры. В купе ехал парень, уже отучившийся в университете, наш местный. А я тогда закончил 8 или 9 класс. Интересно было, кем он работает. И он сказал, что 1С-программистом. Тогда я подумал, какой он крутой, разрабатывает игры. Ещё помню спросил, сложно это или нет. Он ответил, что не сложно.

Потом уже несколько лет спустя всё встало на свои места :-)

Чего я про 1С-то сегодня вспомнил.
Наткнулся на замечательную ссылку: CouchDB + 1С-Предприятие 8.2, был в шоке узнать, что и такое бывает.

среда, 8 августа 2012 г.

Переехал на blog.dander.ru

Теперь совсем как взрослый :)
Давно хотел, а дел-то на 5 минут.
Руководство по переносу здесь.
Единственное, sweb потребовал IP для изменения CNAME, доменное имя ghs.google.com ему не понравилось =/

UPD Ага, первые последствия: сервисы, завязанные на старый домен не знают о новом. От этого не работает виджет вконтакте и не создался твит с новым сообщением. Ок.

Apache 2.2 + SSL на Windows 7

Зачем это всё надо спросите вы? А вот понадобилось :)

Скачиваем

Итак. У нас есть Windsows 7. Осталось скачать Apache (httpd-2.2.22-win32-x86-no_ssl.msi) и OpenSSL (Win32OpenSSL-1_0_1c.exe)  или 2 в 1  Apache с включенным OpenSSL (httpd-2.2.22-win32-x86-openssl-0.9.8t.msi).

Устанавливаем

Установку Apache описывать не буду. Там всё понятно.
Я вначале не знал, что можно воспользоваться OpenSSL включённым в Apache, поэтому качал отдельно. OpenSSL не установится без Visual C++ 2008 Redistributables.
Вкратце об OpenSSL:
OpenSSL — криптографический пакет с открытым исходным кодом для работы с SSL/TLS. Позволяет создавать ключи RSA, DH, DSA исертификаты X.509, подписывать их, формировать CSR и CRT. Также имеется возможность шифрования данных и тестирования SSL/TLS соединений.

Настраиваем

Сперва подключим модуль SSL в Apache и файл конфигурации SSL. Для этого откроем httpd.conf (например, c:\Program Files(x86)\Apache Software Foundation\Apache2.2\conf\httpd.conf) и раcкомментируем строки:
#LoadModule ssl_module modules/mod_ssl.so
#Include conf/extra/httpd-ssl.conf
Теперь создадим необходимые ключи и самозаверенный сертификат.

Создание ключей

Открываем командную строку с OpenSSL (c:\Program Files(x86)\Apache Software Foundation\Apache2.2\bin\openssl.exe) (можно, как обычно, в командной строке, но с командой openssl и указанием пути до неё). И укажите свой путь до openssl.cnf, возможно он совпадёт с моим:
OpenSSL> req -config ..\conf\openssl.cnf -new -out server.csr
Там можно ничего не вводить, кроме пароля - он дальше потребуется. A challenge password и An optial company name необходимо пропустить (не знаю зачем). В результате этой команды в нашей директории появятся два файла privkey.pem и server.csr.
Сгенерируем ключ сервера server.key (потребуется ввести пароль, который задали ранее):
OpenSSL> rsa -in privkey.pem -out server.key
Осталось сгенерировать сертификат, например на 365 дней:
OpenSSL> x509 -in server.csr -out server.crt -req -signkey server.key -days 365
Создадим отдельную папку для сертефикатов (c:\Program Files(x86)\Apache Software Foundation\Apache2.2\conf\cert) и переместим туда все получившиеся файлы server.key, privkey.pem, server.csr и server.crt.

Настраиваем дальше

в файле настройки SSL (c:\Program Files(x86)\Apache Software Foundation\Apache2.2\conf\extra\httpd-ssl.conf) меняем путь к server.crt:
SSLCertificateFile "C:/Program Files(x86)/Apache Software Foundation/Apache2.2/conf/cert/server.crt"
и к server.key:
SSLCertificateKeyFile "C:/Program Files(x86)/Apache Software Foundation/Apache2.2/conf/cert/server2.key"
Перезапускаем Apache ииии...
Вариант 1: сервер перезапустился, https://localhost работает.
Вариант 2: ничего не работает! т.е. не запускается Apache. Пишет ошибку:
The requested operation has failed
Как у меня и случилось. Это и сподвигло написать статью на будущее.
Пока не сползал в error.log, не понял в чём дело. А проблема известная и даже описана в вики apache, и предложено несколько решений.

Проблема

В httpd-ssl.conf есть такой пункт:
SSLSessionCache  "shmcb:C:/Program Files(x86)/Apache Software Foundation/Apache2.2/logs/ssl_scache(512000)"
Windows 64-bit устанавливает 32-bit приложения в Program Files(x86), ошибка как раз из-за этих скобок.

Решение

Я создал ярлык Apache для C:/Program Files(x86)/Apache Software Foundation/Apache2.2/ и поместил его в корень.
Затем в той строке, где возникает ошибка, изменил путь с применением ярлыка:
SSLSessionCache  "shmcb:C:/Apache/logs/ssl_scache(512000)"
Перезапускаем Apache. Заходим на https://localhost, работает!

Винда есть винда - грабли везде.

среда, 1 июня 2011 г.

Google +1

Google запустил свои кнопки "like" под названием "+1". В blogger.com эта фича добавилась автоматически.
Если кратко, все помеченные вами +1 страницы будут отображаться в профиле гугла, так же это всё будет видно вашим друзьям, и плюсы будут выдаваться при выдаче в поиске.
Подробней:
Код для кнопки
The +1 button for websites: recommend content across the web
Google открыл кнопку "+1" для сторонних сайтов

UPD:
1. Удачно плюсанул пост :)
















2. Кнопка почему-то только на главной странице и в архиве.
3. Куда-то пропала трансляция в твиттер, я уже и забыл через какой сервис настроено было :) так давно сюда ничего не писал. UPD: а нет, заработало, долго только.
4. Плюсаните ещё кто-нибудь, пожалуйста, посмотрю, что в поиске выдавать будет

вторник, 8 марта 2011 г.

DISQUS сервис комментариев для Blogger.

И от Умпутуна бывает польза. Как известно, сайт radio-t переехал на blogger, систему для комментариев использовали Disqus. Установил себе (заходите на сайт, выбираете платформу, в которой хотите использовать, следуете указаниям, профит!), импортировал старые комментарии, поставил автоматическую синхронизацию комментариев в Blogger, на всякий случай. И всё, всё комментируется, ветки комментариев создаются, мне понравилось. Можно и CSS свой прописать. Может и пропишу.


Для меня всегда проблемой было заходить в dashboard и смотреть, комментил мне кто чего или нет — я забывал об этом. Сейчас проблема решена. Заодно отключил комментарии от Facebook. Да и ещё некоторые лишние фичи отключил, а то страницы малость тормозили.

воскресенье, 6 февраля 2011 г.

Полифазный сон. День 4.

Был на дне рождении. Добавлять что-то наверно излишне.
4.00 — 9.00
14.40 — 15.31

Как видно, полифазность сохраняется :) Но ничего хорошего от убермена уже не жду, да и он от меня наверно тоже.
Может спать по другому режиму: ночью до 1.5-3 часа. Днём два раза по 20 минут.
Сегодня же ещё воскресенье и я попробую быть убермэном.

Пойду посплю 20 минут, удачи мне.

UPD: вместо 20 минут проспал, как сурок. Эксперимент закрыт на 5ом дне.

пятница, 4 февраля 2011 г.

Полифазный сон. День 2. День 3.

2 день эксперимента прошёл достаточно неплохо:
3.00 — 3.20 (3.09 — 3.26) 17м
7.00 — 7.20 (6.45 — 8.06) 1ч21м
вроде просыпаешься, а вставать не хочется. Не хватает выдержки.
11.00 — 11.20 (11.09 — 11.26) 17м
15.00 — 15.20 (14.40 — 16.16) 1ч36м
19.00 — 19.20 (19.40 — 20.12) 32м
23.00 — 23.20 (23.00 — 23.40) 40м
Итого: 4ч43м


А вот третий день начал с глубокого сна в 6 часов:

3.00 — 3.20 (3.05 — 9.00) 5ч55м

Может это и к лучшему. День обещает быть непонятным, и спать непонятно когда. Так что на эти сутки достаточно.

четверг, 3 февраля 2011 г.

Полифазный сон. День 1.

Предыстория.
Ещё со школы со сном у меня не заладилось: ложился поздно (поздно вечером — ночью делал уроки), вставал рано.
В университете стало ещё беспорядочней: ложился под утро, в дополнение спал вечером. Иногда не спал вечером. Иногда пытался наладить режим сна, как у нормальных людей. Но проблема: я очень не люблю ложиться спать, я буду сидеть до последнего. А это может затянуться.
Когда-то на хабре встречал статьи о практическом применении. Но не заинтересовало.

Ближе к делу.

понедельник, 15 ноября 2010 г.

Какой вы аналитик?

Аналитик в зачатке.
21 балл из ста в тесте
«Какой вы аналитик?»

 

хреновый я аналитик

суббота, 9 октября 2010 г.

День Джона Леннона

Вначале я досматривал фильм «Nowhere Boy»:
«Nowhere Boy» (русск. «Ма́льчик из ниотку́да»), прокатное название «Стать Джоном Ленноном» — художественный биографический фильм о Джоне Ленноне. Фильм поставлен по мотивам книги сводной сестры Леннона — Джулии Бэрд «Частная жизнь Леннона: нерассказанная история от его сестры». Режиссерское кресло в этом проекте доверили известной британской художнице и инсталлятору Сэм Тейлор-Вуд.
Фильм интересный, если интересно с чего начинался Битлз.

В процессе просмотра увидел в гугле логотип: Джону было бы сегодня 70 лет.


четверг, 7 октября 2010 г.

Виджет ВКонтакте "Мне нравится" в Blogger

Зачем что-то выдумывать, ВКонтакте сам прекрасно описал, зачем это надо:

Виджет "Мне нравится"

При помощи виджета "Мне нравится" Вы можете за 5 минут добавить к материалам Вашего сайта соответствующую галочку. Это позволит Вашим посетителям одним нажатием кнопки мыши выразить своё отношение к статье и, что не менее важно, моментально поделиться ссылкой на статью с друзьями. Этот процесс осуществляется без необходимости ввода какой-либо информации со стороны пользователя, поэтому ссылка на такую статью сможет быстро распространиться по социальному графу ВКонтакте.  
Алгоритм действий практически тот же, что и для Facebook.

суббота, 25 сентября 2010 г.

Комментарии в Blogger под профилем Facebook

Тащемта, сделать такое чудо не сложно. Голый копипаст.
Будет выглядеть как-то так:




1. Заходим в facebook developers. Заполняем поля:
  • Site map -- название сайта (приложения). Например: dander comments.
  • Site URL -- ссылка на сайт, куда хотите прикрепить виджет. Например: http://denisoffav.blogspot.com
  • Create application.

среда, 22 сентября 2010 г.

It Don't Matter If You're Black Or White.


Intro.

Сегодня закончился турнир среди первокурсников Поморского Государственного Университета. 

Неожиданно узнал, что игры будут, а так как я главный по спортивным делам на физическом факультете, то и надо было вразумить, донести до перваков, чтобы участвовали и выигрывали, защищали честь факультета. Павел Маренич (студент-футболист и по-совместительству один из судей турнира) помог капитанам, показал им, где комната отдыха в 3ем общежитии, в которой в понедельник прошла жеребьёвка. В ходе неё определили 4 группы по 3 команды. От нашего факультета заявилось две команды: команда 11 группы — физики и команда 13 группы — айтишники. У матфака, например, вообще 3 было. Турнир проходил в два дня: вторник и в среду. Каждая команда в группе сыграла по две игры. Как-то это дело считается, и одна команда из группы выходит сразу в полуфинал.

среда, 15 сентября 2010 г.

Список Шиндлера. "Тот, кто спасает одну жизнь, спасает весь мир".

Охрененный фильм.
Вообще, я ухожу от просмотра сериалов (не могу найти что-нибудь интересное). Начал просмотр фильмов, которые давно хотел посмотреть. Качаю на рутрекере в хорошем качестве, порядка 4-6 Гб за фильм.
Первым фильмом стал "Загадочная история Бенджамина Баттона", поставил 9 из 10 на кинопоиске, сейчас досмотрел "Список Шиндлера" (10 из 10).



суббота, 11 сентября 2010 г.

Конкурс от trendclub

Очень давно я не участвовал ни в каких конкурсах. Возможно в инете вообще никогда. Я зарегистрирован в trendclub.ru, поэтому по почте достаточно часто приходят приходят письма с  различными конкурсами от них. Вот содержание последнего письма:

вторник, 24 августа 2010 г.

Калининград, или Туда и обратно. Часть 1. "Куршская коса, Архангельск идёт к тебе!"


Уже как-то и не туда и не обратно :)
О том, что я поеду в августе в Калининград, я уже писал, но без каких-то подробностей.
Но и сейчас я не буду заострять внимание на сборы, дорогу, сам Калининград и различные истории до посещения Куршской косы. Тем более часть этого можно прочитать в блоге "Путешествия" социальной сети Архангельской области. Писала подруга и я немного.



А теперь про косу.


среда, 28 июля 2010 г.

Разблокировка Huawei E1550

В одном из предыдущих постов я писал, что приобрёл мегафон-модем. Модель называется  Huawei E1550, вот скудненькое описание  на яндекс-маркете. Зато в комментах я обнаружил, как его можно разлочить:
ANDROID:
Комментарий: В инете можно найти генератор NCK кода для разлочки, называется v4mpire_unlocker. Ноги растут с форума: http://forum.gsmhosting.com/vbb/f25/
 Всё оказалось просто очень просто:
  1. Скачать можно тут (продублировал у себя в google docs);
  2. Запустить (где-то было написано, что надо отключить антивирь, я же ничего не отключал, avast не заругался на файл);
  3. Вводим IMEI (я его нашёл на коробочке с модемом) в поле справа от кнопки CALC, получаем 2 кода. Первый (Flashing) у меня не подошёл, а второй (Unlocking) то, что надо:

  4. Вводим эти 8 цифр в окно запроса кода (у меня оно автоматом появилось в программе от Мегафона).
  5. PROFIT!
Сеть поймалась, APN подхватилось, подключение создалось.

UPD: Включив обратно билайновскую симку в телефон, получил смс, что я воспользовался WAP'ом (2.5 рубля за 10 кб), хорошо хоть я сразу соединение разорвал. APN значит всё таки надо настраивать.