Вывод телефонов регионального представительства по IP-адресу посетителя. Скрипт на основе API Яндекс карт

Периодически возникает задача определения на сайте города по IP-адресу и вывода регионозависимой информации, например телефонов представительства.

Одним из вариантов решения является использование geoip-расширения PHP, особенно если мписок представительств расширяется, но чаще всего их список меняется редко, а решение нужно предоставить минимально-работающее.

Представленное решение чисто клиентское и работает на javascript, используя функционал API Яндекс карт. Оно будет работать не только для посетителей из указанных городов, но и из указанных регионов. Например, для пользователя из г.Кинель Самарской области, будет отображаться телефон представительства в г.Самара.

Continue reading


Увеличить скорость загрузки сайта по мнению Google

У Google есть инструмент для замера скорости загрузки сайта, где он даёт ей оценку от 0 до 100. А так же рекомендации по исправлению. Большинство рекомендаций выполняются добавлением в .htaccess сайта следующего кода
Continue reading


Удалённое управление питанием сервера(включение, выключение, перезагрузка) через IPMI в Linux(Debian, Ubuntu)

Для начала у нас должны бить доступы к управлению сервером по IPMI. Выдаются провайдером сервера и представляют из себя:

  1. IP-адрес — {IP}
  2. Имя пользователя — {USERNAME}
  3. Пароль — {PASSWORD}

Установим необходимое ПО

apt-get install ipmitool

Continue reading


DSN (уведомление о доставке письма) для Exim, если родной DSN-патч не работает

Сразу условлюсь. Если есть возможность поставить родной DSN патч на exim, то лучше сделать это. К сожалению, после версии 4.63 это не так тривиально.

Для остальных случаев можно пойти обходным путём, который выглядит так.
Continue reading


Удаление из ssh-бана IP-адреса, помещеного туда fail2ban

Иногда возникает ситуация, когда довольно сурово настроенный fail2ban помещает в бан ваш IP-адрес после случайно неверно набранных ssh логина-пароля.

Сперва-наперво зайдите на сервер с другого IP из под рута и определите, действительно ли этот адрес находится под баном

root@services:/# /sbin/iptables-save|grep 46.20.67.32
-A fail2ban-ssh -s 46.20.67.32/32 -j DROP

Да, действительно наш адрес дропается правилом iptables

Удалим его оттуда

root@services:/# iptables -D fail2ban-ssh -s 46.20.67.32/32 -j DROP

Вот и всё.


Байесовский наивный классификатор. Пример реализации на php

В своё время для классификации объектов мною был пару раз использован наивный байесовский классификатор, но написать заметку (больше для себя), в которой систематизировать полученный опыт у меня дошли руки только сейчас.

Тут не будет рассмотрена вся математика, лежащая в основе этого мощного инструмента. Так что на неровности в использовании терминов внимания не заостряйте ;-). Будет дан пример конкретной реализации. Конкретно на классификации дополнительных соглашений к договорам по типам, основываясь на имени записи. Так уж получилось, что предыдущий разработчик информационной системы решил не составлять для них общий справочник, и при стандартизации работы встал вопрос что делать с уже накопленной базой.
Continue reading