some image

Обо всем

mysql восстановить все таблицы во всех базах

Обо всем

Для проверки и восстановления всех таблиц во всех базах, например после внештатной перезагрузки сервера, воспользуйтесь утилитой mysqlcheck и в консоле выполните

mysqlcheck -u root -p —auto-repair —check —all-databases

Далее увидев все поврежденные таблицы во всех базах восстанавливаем MYISAM таблицы утилитой myisamchk

myisamchk —silent —force —fast —update-state —key_buffer_size=512M —sort_buffer_size=512M —read_buffer_size=4M —write_buffer_size=4M /var/lib/mysql/database/*.MYI

Как найти что занимает свободное место lunix

Обо всем

Для поиска того, что занимает место на linux сервере я использую простой способ:
В корневой директории исполняю
du -h --max-depth=1 --block-size=1M . | sort -n -r

Получаю отсортированный список файлов и папок, начиная с самых объемных. Далее просто прохожусь по этим папкам той же командой и нахожу проблемы с использованием свободного места. Это позволяет буквально за несколько минут найти папки или файлы, занимающие значительный объем пространства.

Не забываем, что общий объем свободного и занятого пространства можно посмотреть командой
df -h

[Выполнено] Парсер cian.ru с выгрузкой в XML

Обо всем

Выполнен парсер cian.ru с автоматической выгрузкой в XML в формате cian.ru. Парсер подготавливает объявления, подходящие под нужные параметры, к загрузке на циан со своего номера, изменяя, если нужно, цену.

mysql разрешить подключения

Обо всем

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

mysql -u root если вы только установили mysql и пароль не задан или

mysql -u root -p если пароль задан, далее потребуется ввести пароль.

Выполнить следующий запрос:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';

Так же нужно поредактировать /etc/mysql/my.cnf

Поменяйте

bind-address = 127.0.0.1 на #bind-address = 127.0.0.1

Перезапустите mysql сервер

service mysql restart

mysql сменить пароль

Обо всем

Для того чтоб сменить пароль mysql по ssh нужно в консоли залогиниться под любым пользователем с административными правами

mysql -u root если вы только установили mysql и пароль не задан или

mysql -u root -p если пароль задан, далее потребуется ввести пароль.

Cменить пароль любому пользователю можно следующим запросом

UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
FLUSH PRIVILEGES;

[Выполнено] Парсер inteksar.ru; копия каталога

Обо всем

Разработан парсер, собраны все товарные позиции, категории и изображения с сайта inteksar.ru, настроено автоматическое обновление и выгрузка товаров на tiu.ru. Для заказа этого каталога свяжитесь со мной любым способом, указанным в разделе «Контакты».

[Выполнено] Парсер sportoptovik.ru, наполнение магазина контентом

Обо всем

Для заказчика разработан парсер сайта sportoptovik.ru и программа-загрузчик контента в его каталог. Категории, товары, цены, изображения — все загружено в полном обеме.

Для покупки этого парсера свяжитесь со мной одним из способов, указанных в разделе «Контакты».

phantomjs click event, клик на любом элементе страницы не работает

Обо всем

В phantomjs 1.9+ есть очень неприятный баг, связанный с тем, что вы не можете кликнуть по-настоящему практически не по какому элементу. Вы можете вызвать событие click() с помощью jQuery, например, но это не заменяет стандартного поведения браузера. Например, кликнув на label в обычном браузере, вы меняете значение чекбокса, привязанного к нему. Здесь этого нет. Так же здесь нет каскадной передачи клика родительским элементам.
Для решения данной проблемы существует следующий хак, проверен лично на avito.ru:

function mouseclick( element ) { //расширяем возможности phantomjs, делаем новую функцию настоящего клика по элементу
    // create a mouse click event
    var event = document.createEvent( 'MouseEvents' );
    event.initMouseEvent( 'click', true, true, window, 1, 0, 0 );
 
    // send click to element
    element.dispatchEvent( event );
}

page.evaluate( //выполняем яваскрипт на странице, при этом передаем туда созданную ранее функцию
        function( mouseclick_fn ) {
            var element = jQuery( "label[for=service_4]" )[0];
            mouseclick_fn( element );
        },
        mouseclick
    );
setTimeout(function(){
	//проверяем результат
	//обязательно подождите пару секунд после клика по элементу, дайте браузеру сделать то, что вы задумали и пройти всем сопутствующим эвентам
}, 2000);

Autocomplete для списков, стилизация списков, умные списки

Обо всем

Любой человек, разрабатывающий интерфейсы, сталкивается с проблемой удобного выбора из огромного списка значений. Если список большой, его неудобно листать, неудобно делать мультиселект.
Прекрасное решение предлагает http://chosen-sass-bootstrap.herokuapp.com/ для Bootstrap. Я как программист, а не дизайнер, безумно рад что сразу, из коробки, идет, помимо отличной функциональности, еще и классный внешний вид.
Преимущества данного решения:
1) Невероятная компактность.
2) Удобный мультиселект.
3) Автозаполнение
4) Гибкий интерфейс callback’ов.

Пример использования можно посмотреть в моей Базе для риелторов

Enjoy!