Как создать уникальный индекс при том, что в таблице есть дубликаты

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

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

ALTER TABLE `table_name` ADD UNIQUE INDEX `my_unique_index` (`field1`, `field2`);

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

 ALTER IGNORE TABLE `table_name` ADD UNIQUE INDEX `my_unique_index` (`field1`, `field2`);

 Не благодарите. ;)

Онлайн детектор кириллицы

У нас на работе была небольшая проблема с одним сервисом: разработчик случайно или специально оставил в заголовке сайта кириллическую букву “с” вместо латинской. Это было довольно критично, потому что наши сервисы трекаются гуглом и разными поисковиками. 

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

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

http://latincheck.lifeline.su 

На странице About можно прочитать обо всех возможностях.

Настройка связки xdebug + vagrant + phpStrom

Есть задача: нужно отдебажить с помощью xdebug страницу в web приложении. Самый очевидный способ — это поставить брейкпоинт на строке и запустить страницу в броузере. Но не все так просто. Все мануалы, которые я находил говорили всегда о том, что надо настроить xdebug на какой-то сервер, потом нажимаешь кнопку и в броузере запускается конкретная страница. Это сложновато и неудобно, если по многу раз нужно перезапускать несколько страниц или скриптов. Нужно, чтобы при нажатии на кнопку листенера и запуске любой страницы, дебагер попадал на брейкпоинт. Но сделать это — пляски с бубном.

Что только я не делал, но в итоге нашел решение тут.

Самая главная опция:

xdebug.remote_autostart = on

Вуаля, все начинает работать. 

Ubuntu 13.10. Эпопея про то, как я настраивал второй монитор для лэптопа HP Pavilion dv7 с картой radeon HD 6700

Итак, стояла у меня убунта 13.04. Решил установить 13.10. Обновился, второй монитор не работает, хотя подключен к VGA выходу.

Начинаем гуглить. НИЧЕГО толкового, кроме установи драйверы, бла-бла. Сразу подумал, что убунта меня отымела хорошенько.

Скачал проприетарные  драйверы ATI, установил, переконфигурил xorg.conf, перезапустил комп — черный экран. Гуглить не могу. В итоге через телефон нашел решение того, как искоренить проприетарные драйверы. Искоренил, загрузился, а проблема-то не решена: второй экран по-прежнему темный.

Решил скачать драйверы бета версии. И… они подошли! Ура. Но второй монитор все равно не определялся. Что делать? Есть такая консольная утилита, которая управляет экрамани: xrandr. У нее есть довольно простой набор опций, с помощью комбинаций которых, я добился включения второго экрана. Но… видимо из-за того, что драйверы были-то бета-версии, оба экрана стали мерцать, мигать, короче, воплощаясь в самый ужасный страх эпилептика.

Удалил драйверы видеокарты бетаверсии, установил opensource встроенные из коробки, и… включил второй экран с помощью  xrandr:

 xrandr –output VGA1 –auto –left-of LVDS1 –output VGA1 –scale 1.0001×1.0001

Все работает. И на это я убил практически 2 рабочих дня. Вопрос: стоило ли это того? Мой ответ “нет”.

Так что, ребятушки, устанавливайте убунту, только хорошо подумав.

 

Ubuntu 13.10

С каждым новым релизом убунты я все больше убеждаюсь, что система становится все хуже и хуже. Где те стабильные версии 9.10, с которой я начинал? Итак, мне удалось побороть проблему видео драйверов на лэп топе HP Pavilion dv7, но:

  1. Не работает переключение раскладки Alt + Shift. Да-да, вы не ослышались, и это официальный баг.
  2. Не работает подключение второго монитора. Такая простая функция НЕ РАБОТАЕТ!!! И решения этой проблемы нет в интернете. ВООБЩЕ.

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

Официально заявляю: убунту испортилась и стала полным говном. Если раньше решение проблем можно было найти в инете, и его точно можно было найти, то сейчас решение можно найти не для всех очень актуальных проблем.

Pepsi halloween

Thrift shop

Меня зацепило =)

Комментарии

Из-за огромного количества спама я ввел премодерацию комментариев. Так что комменты не появятся сразу.

Почему небо темное ночью?

Не потому что солнце не светит, оказывается.

Лучший способ установить sun JDK

http://www.gaggl.com/2012/04/installing-java6-jdk-on-ubuntu-12-04/

Смотрите этот апдейт UPDATE: [07-Aug-2012]

цифровые часики

Вы такое могли себе представить?

Читать далее »

Следующая страница »