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





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

понедельник, 30 апреля 2012 г.

Поиск дублей в базе данных. Очень быстрый способ

Появилась задача найти все дубли в базе данных и удалить их. Единственное решение видел только в написании php скрипта с вложенными друг в друга циклами и проверки значения нужных полей и неравенства id, но скрипт работает очень медленно. В sql есть много возможностей кроме основных операций и решил попробовать найти решение в самом языке.

select Поле_для_проверки_на_дубль, count(*) from имя_базы group by Поле_для_проверки_на_дубль having count(*) > 1;

Этот способ работает очень быстро, 11000 записей переваривает за пару секунд и нашел 320 дублей.

После этого осталось только выполнить запрос скриптом и удалить

$result = mysql_query("select Поле_для_проверки_на_дубль, count(*) from имя_базы group by Поле_для_проверки_на_дубль having count(*) > 1;");

while ($row = mysql_fetch_assoc($result))
{
    echo "Есть дубль ".$row['id']." - ".$row['Поле_для_проверки_на_дубль']."<br/>";
    $result2 = mysql_query("DELETE FROM имя_базы WHERE id='".$row['id']."';");
}


Еще один способ

SELECT *
FROM `items`
WHERE CONCAT( `items`.`brandid` , `items`.`model` )
IN (


SELECT CONCAT( `items`.`brandid` , `items`.`model` ) AS x
FROM `items`
GROUP BY x
HAVING COUNT( x ) >1
)
 

пятница, 27 апреля 2012 г.

Как не навредить сайту при проведении технических работ

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


<?php
header('HTTP/1.0 503 Service Unavailable'); header('Retry-After: '.(14*60*60)); // заходите через 14 часов
?> 

Эта операция позволяет не потерять проиндексированные страницы. 

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

четверг, 12 апреля 2012 г.

Samsung Galaxy Note N7000: Первые впечатления

Девайс супер!

Этот вывод я делаю через недельного его использования. В первый и второй день очень пугал размер. Сейчас не могу и представить как люди могут пользоваться меньшими устройствами. Я сам человек среднего роста и не особо большой рукой, но держать его мне удобно. Само собой больше удобнее будет с ним работать именно мужской половине человечества, для дам он действительно будет не удобным.

Фотокамера меня порадовала, сравнивать правда было особо не с чем, до этого был HTC Touch Diamond 2  c 5-ю мегапикселами. Сколько тут реальных не знаю, но написано 8. Главное отличие, что есть встроенная вспышка. Автовспышка работает очень качественно и корректно для меня. Хотя я не фотограф мне судить сложно.

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

В данный момент заказал себе держатель для авто + комплект зарядки, аккумулятор, 4 чехла, пленки на ebay.

GPS ловит быстро, буквально за 10 секунд можно начать прокладывать маршрут после включения.

Софт весь есть. Нашел все аналоги программ от Windows Mobile и все бесплатные. Выводы делать рано, но при тестовых проверках весь софт с со всем справлялся. И главное очень все между собой интегрируется, что очень радует.
http://mcgrp.ru/smartfonyi-i-kommunikatoryi-SAMSUNG-Galaxy-Note.html

понедельник, 9 апреля 2012 г.

Samsung Galaxy Note N7000: Софт маст хайв

AdSense Dashboard отображает статистику заработка в системе Google Adsense. Имеет удобный интерфейс где отображается доход на сегодняшний и вчерашний день, а также за месяц и с начала работы в системе. Обновление происходит автоматически раз в полчаса.

DailyRoads Voyager делает из телефона видеорегистратор. По отзывам самый лучший из бесплатных и многих платных решений.

Dropbox кто пользуется, тот оценит преимущества данного клиента для Андроид устройств. После установки появляется в контекстном меню для быстрой отправки различного контента в облако. Позволяет очень удобно синхронизировать приложение keepass.

ES Проводник проводник для работы с файловой системой. При получении root прав становится вообще незаменимой вещью для установки не официального софта и патчей.

Evernote пока не оценил достоинств на коммуникаторе, отзывы о нем очень хорошие. Надеюсь смогу его приспособить для своих задач.

KeePassDroid версия хранилища паролей для андройда. Синхронизируется через dropbox как всегда 10 из 10.

Ping & DNS софт для админов. Вполне выполняет свою функцию. Доволен.

ConnectBot опять же для админов. Клиент для ssh и telnet Пока не юзал, но отзывы очень хорошие. Есть проблемы с кодировкой в telnet

Remember The Milk задачи. Единственное что не хватает в evernote и сервисах гугла. Лично для меня удобнее, чем календарь с напоминалками.

Будильник Xtreme очень простая и удобная настройка. 10 из 10

Мемиана сервис для синхронизации контактов из большинства систем коммуникаций. Ищет дубли и позволяет их корректно объединить.

Телефонный Шпион программа для записи телефонных переговоров. Не требует root прав для корректной записи и установки дополнительных патчей.  При стандартных настройках собеседника слышно плохо, но если в установках задать автоматический уровень громкости, то пишет отлично.

Яндекс.Навигатор порадовала программа. Яндекс всегда меня радовал своими сервисами. Многие его сервисы намного удобнее, чем у основного конкурента.

Skype  клиент для всем известного сервиса ip телефонии. После установке при звонке какому либо контакту отображается меню с выбором типа звонка. Обычный телефон или через Skype клиент.

Блокировка звонков можно блокировать как звонки, так и смс. Очень удобный импорт из принятых смс сообщений или из списка контактов.

Barcode Scanner программа для распознавания qr кодов, работает шустро. Почему нет встроенной программы в самом андроиде - загадка.

GTask менеджер задач, рекомендуют пользователи + происходит синхронизация с google. Есть частичная русификация, будем надеяться на полную.

Все эти приложения ставятся через сервис Google Play и отлично без тормозов и глюков(по крайней мере не замечено) на устройстве Samsung Galaxy Note N7000
http://mcgrp.ru/smartfonyi-i-kommunikatoryi-SAMSUNG-Galaxy-Note.html

четверг, 5 апреля 2012 г.

Ошибка: failed with exit status 255


Эта ошибка возникает из за указания относительного пути в исполняемом файле php скрипта при запуске его по cron. То есть внутри указан путь в виде "../config/func.conf.php", а для исполнения нужно указать полный путь /var/www/site/config/func.conf.php .

Также если вдруг не происходит исполнения скрипта, то нужно проверить указан ли полный путь к интерпретатору php и выставленны ли правильные права на скрипт.

понедельник, 2 апреля 2012 г.

Ошибка: bad protocol version identification

Полез я однажды на сервер по ssh через putty и получил вместо запроса логина полную версию своего ssh сервера. После нажатия кнопки Enter просто завершалась сессия. Первая мысль появилась, что сервак наконец то хакнули, залез на сайт, но сайт работал. Так как доступа по ssh не было пришлось лезть через клиента vsphere мониторить виртуалку.

Перезапуск сервера проблему не решил. Полез смотреть кто ко мне логинился в /var/log/auth.log
Вроде ничего страшного не было, но обнаружил такую ошибку:
bad protocol version identification '' бла... бла... бла... мои ip
Полез в гугл, оказалась, что подобная проблема возникала у человека который пытался подключится telnet ом к SSH.

Так и оказалось, не так давно правил настройки для соединения со своим сервером, правил настройки кодировки и сохранял изменения и видать нечаянно переключил протокол вместо ssh стоял raw. Переключил тип протокола, указал правильный порт сохранил и все заработало.

воскресенье, 1 апреля 2012 г.

Apache2 + subversion установка на Debian

Предполагаю что apache2 у вас уже стоит ставим subversion + дополнительный модуль для apache
apt-get install subversion libapache2-svn 
Для самого репозитория понадобиться указать домашний каталог. Его можно указать абсолютно в любом месте. Я указал в качестве рабочего домашний каталог пользователя user. Создаем там каталог repos:

cd /home/user
mkdir repos

Далее создаем тестовый репозиторий
svnadmin create /home/user/repos/test
 
Меняем права для возможности доступа вэбсервера к каталогу
chown -R www-data: /home/user/repos
 
Копируем настройки модуля apache в бак и создаем файл со своими настройками
cp /etc/apache2/mods-available/dav_svn.conf /etc/apache2/mods-available/dav_svn.bak
nano  /etc/apache2/mods-available/dav_svn.conf

<Location /svn>
DAV svn
SVNParentPath /home/user/repos/
AuthType Basic
AuthName "My Repository"
AuthUserFile /home/user/passwd
Require valid-user</Location>
 
 

Далее создаем пользователя для http доступа к репозиторию и задаем пароль
htpasswd -c /home/user/passwd admin
 
Задействуем модули и перезапускаем apache
a2enmod dav dav_fs dav_svn
/etc/init.d/apache2 force-reload
 
  
Юзаем через http://адрес/svn/test