Архив / web

RSS лента

Ошибка при использовании imputmask и validator

При совместном использовании плагинов https://github.com/RobinHerbots/jquery.inputmask и https://github.com/yairEO/validator при пустом поле inputmask возникала ошибка:

Uncaught TypeError: Cannot read property ‘replace’ of null

Лечится путём замены строки

field.data( 'val', field[0].value.replace(/^\s+|\s+$/g, "") );  // cache the value of the field and trim it

на

// if the field value is null. May be with RobinHerbots/jquery.inputmask plugin.
var fieldVal = !field[0].value ? '' : field[0].value.replace(/^\s+|\s+$/g, "");
field.data( 'val', fieldVal );  // cache the value of the field and trim it

В методе checkField.

Также исправленную версию можно скачать у меня в GitHub

brothersstore.ru

Некоторое время назад мне начали приходить странные письма о необходимости продления домена brothersstore.ru (уже свободен) от Naunet. Домен в общем-то не мой и никогда мне не принадлежал, но письма приходили.

Написал в техподдержку по этой причине. Как оказалось, мой адрес был указан как контактный. Других адресов указано не было. ТП предложила восстановить доступ к аккаунту и скинула ссылку на восстановления пароля по имени домена. На почту пришло письмо и я действительно получил возможность сменить пароль к аккаунту.
Читать полностью →

10 лет домену

По данным whois сегодня моему исполняется 10 лет.

whois

А вчера заметил, что в блоге примерно полтора года работала только главная страница. Какая-то неведомая хуфигня почистила .htaccess и даже не сообщила. Тварь.

Аналог strtotime в Java

На работе пишем новый проект, который перевернёт мир рекламы. Проект пишем на Java. Почему на Java? Хуй его знает. Без меня решили. Пишем, так пишем. Значит надо учить Java. Язык хороший, мощный. Немного смущает строгая типизация и линейное мышление, привитое php.

А ещё иногда очень не хватает простых функций вроде strtotime.

Для форматирования даты в нужный формат в php требуется 2 функции: strtotime и date.

date('Y-m-d', strtotime('дата в любом формате'));

В Java всё немного иначе.

// Создаём объект SimpleDateFormat для даты из которой будем форматировать. Дата должна быть указанного формата.
SimpleDateFormat dateSourceObject = new SimpleDateFormat("dd.MM.yyyy");

// Создаём объект SimpleDateFormat для даты в которую будем форматировать.
SimpleDateFormat dateResultObject = new SimpleDateFormat("yyyy-MM-dd");

// Форматируем дату
dateResultObject.format(dateSourceObject.parse('дата в формате dd.MM.yyyy'));

Плюсы в Java:

  • Строгая типизация
  • ООП
  • Java это круто

Плюсы в php: просто и быстро

Для преверженцев ООП есть вариант и в php:

$date = DateTime::createFromFormat('j-M-Y', '15-Feb-2009');
echo $date->format('Y-m-d');


Правда здесь необходимо указать формат даты, из которой будем форматировать.

Резервное копирование БД

Понадобилось создавать резервную копию базы. Но дамп надо было хранить на другой машине, недоступной из сети. Т.к. база занимает более 80Gb и постоянно растёт каждую таблицу необходимо было поместить в отдельный файл для случаев, если необходимо восстановить данные одной таблицы.

Для этого был написан такой скрипт на sh:

#!/bin/sh

DATE=`date -d "yesterday" +"%Y-%m-%d"`
DIR=%backups path%

HOSTUSER=%ssh user name%
HOSTNAME=%ssh host%

DBBASE=%database name%
DBUSER=%database user%
DBPASS=%database password%

echo "Create dir $DIR$DATE"
mkdir -p $DIR$DATE

for TABLE in $(ssh -p 222 $HOSTUSER@$HOSTNAME -C "mysql -B -s -u$DBUSER -p$DBPASS $DBBASE -e 'show tables'")
do
    echo "Create dump for table $TABLE"
	ssh -p 222 $HOSTUSER@$HOSTNAME -C "mysqldump -u$DBUSER -p$DBPASS $DBBASE $TABLE | gzip -c" > $DIR$DATE/$TABLE.sql.gz
done

echo "Create full archive"
tar -czvf $DIR/$DATE.sql.tar.gz $DIR$DATE

echo "Remove dir $DIR$DATE"
rm -rf $DIR$DATE

echo "Finished"

Также скрипт можно взять на GitHub

Восстановление пароля PostgreSQL 9.1

1) Открываем файл /etc/postgresql/9.1/main/pg_hba.conf
2) Находим сточку local all postgres peer
3) Меняем на local all postgres trust
4) Перезагружаем базу:

service postgresql reload

5) Логинимся в PostgreSQL без пароля:

psql -d template1 -U postgresql

6) Меняем пароль:

ALTER USER postgres WITH PASSWORD 'newpassword';

7) Возвращаем строчку на своё место local all postgres peer

Антипиратский закон

Радуемся, прыгаем и веселимся!

Петиция против «антипиратского» закона набрала более 100 тысяч голосов буквально за месяц и одну неделю. Это небольшая победа. Небольшая — потому что дальше документ о «запрете произвольных блокировок сайтов» предстоит проанализировать специальной экспертной группе федерального уровня. Что будет дальше — пока не известно, но мы будем надеяться на лучшее.

Искренне надеюсь на то, что петицию рассмотрят и примут правильное решение, а не забудут о ней, как это бывает обычно.

Спасибо всем, кто поддержал эту петицию!

Instagram добавил возможность съёмки видео

instagram
Вчера вечером instagram выпустил обновление приложения, чем полностью убил приложение vine (мобильное приложение, позволяющее создавать короткие, до 6 секунд видеоролики). Теперь в instagram можно снимать и видеоролики длинной до 15 секунд. Также примечательно, что из видео можно вырезать кадр, чтобы поставить его на обложку ролика.

Установка NetBeans 7.2 на CentOS 6.3

Есть несколько вариантов установки NetBeans.

Если в системе ещё не установлена Java, можно установить NetBeans вместе с Java.
Устанавливаем Java. Необходимо выбрать пакет JDK 7u9 + NetBeans.
Вместе с Java установится и NetBeans. В данном случае не будет установлен модуль PHP.

Читать полностью →

Установка php 5.6 на CentOS 6.3

Чтобы поставить php 5.4 на CentOS необходимо подключить дополнительные репозитории:


rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

Теперь ставим php из репозитория remi:


yum --enablerepo=remi,remi-test install php php-common php-devel

И добавляем необходимые модули:


yum --enablerepo=remi,remi-test install php-pear php-pdo php-mysql php-gd php-mbstring php-mcrypt php-xml

Также будет полезно установить акселератор, например Alternative PHP Cache:


yum --enablerepo=remi,remi-test install php-pecl-apc