Pull to refresh
1
0
Дмитрий Кожевин @Stinkie

User

Send message

MySQL: Поиск по FULLTEXT индексу вешает базу. Решение проблемы

Reading time1 min
Views911
Ловил несколько месяцев назад один трудноуловимый баг с поиском по базе. А сегодня, прочитав топик HTTP, RFC 3986 и браузеры, решил рассказать общественности, вдруг у кого-то тоже всплывет.

Проблема
Есть сайт в UTF8. Есть MySQL база в UTF8 и FULLTEXT индексом. Поиск по нему идет в BOOLEAN MODE. При определенном виде запросов БД перестаёт отвечать. Причем только для одной БД в рамках сервера MySQL. Нормальный перезапуск демона не срабатывает, получается ребутнуть только жестким mysql -9.
Замечена такая неприятность на MySQL 5.0.51a и выше

Почему?
А дело всё в том, что это какой-то странный баг самого MySQL и решать они его почему-то не торопятся. Оказывается, если фраза для поиска будет в cp1251 кодировке, а база в UTF8, то на N-ном таком запросе БД повиснет в состоянии FULLTEXT Initialization, причем залочит все таблицы, а не только одну с индексом. Проявляется не с первого запроса, но раз-два в день может случаться.

Лекарство
Перед подстановкой поисковой фразы в запрос переконвертируем её в UTF8, если надо.

Кто виноват?
А вот тут я расскажу, при чем тут топик, который мне напомнил эту историю.
Я поддерживаю один сайт, как хобби. С сайта можно поставить поисковый плагин к браузеру в формате OpenSearch. Как выяснилось, браузеры некоторых пользователей при поиске через этот плагин почему-то думают, что сайту нужна Windows-1251 кодировка. Откуда у них такая уверенность, я не знаю. Возможно Firefox запомнил, что когда-то давно сайт был в Windows кодировке. Возможно на это влияет отсутствие кодировки в коде плагина. А может просто магнитные бури, проблема-то появлялась раз-два в день :)

Ссылка на багрепорт
bugs.mysql.com/bug.php?id=37067
Total votes 22: ↑21 and ↓1+20
Comments4

Роботов обеспечат единой ОС

Reading time1 min
Views2.3K
image

На прошедшей в июле в Пасадене (США, штат Калифорния) Международной конференции по искусственному интеллекту стало известно о намерениях крупнейших разработчиков робототехники стандартизировать программы обучения роботов на базе единой платформы. Это позволит конструкторам перестать «снова и снова изобретать велосипед».
В настоящее время роботы конструируются сугубо индивидуально, то есть «железо» и софт проектируются каждый раз с нуля. Однако ученые из Стэнфорда
Читать дальше →
Total votes 45: ↑38 and ↓7+31
Comments68

«Пустые места» на звездном небе

Reading time1 min
Views1.9K
Долго думал над названием. Первая мысль — «Я фигею» (читать матом), но этическая составляющая моей личности пересилила.



Воистину, представить себе размеры вселенной — НЕМЫСЛИМО.
UPD Qmax сделал субтитры, за это ему большое человеческое спасибо.
Total votes 101: ↑91 and ↓10+81
Comments139

Матовый дисплей не только у 17-дюймового Macbook Pro. 50 баксов. От Apple

Reading time1 min
Views1.6K
Наконец-то они доперли! Вчера в американском Apple Store увидел опцию «матовый экран» у 15-дюймового Macbook Pro. Стоит 50 баксов.

Наконец-то! Доперли. Через год ждем в России?
Total votes 18: ↑12 and ↓6+6
Comments11

Обзор электронной книги Orsio b731

Reading time11 min
Views7.7K
Вот и “на моей улице случился праздник” — утомительное и непродолжительное чтение с разрешения 320х240 перешло на продолжительно комфортное чтение с разрешения 800х600.

image

Обзор, трафик.
Читать дальше →
Total votes 134: ↑121 and ↓13+108
Comments269

Native Client: одной ногой в офлайне

Reading time1 min
Views5.2K
В понедельник в Google Code Blog вышел анонс нового эксперимента веб-гиганта. Технология Native Client призвана ускорить веб-приложения благодаря прямому доступу к ресурсам центрального процессора на локальном компьютере пользователя.

В пакет Native Client будут входить runtime-плагин для браузера и набор утилит для компиляции, основанных на GNU Compilation Tools. Они позволят веб-приложению, работающему в браузере, в то же время использовать модули, самостоятельно выполняющиеся на ПК. Плюсы от такой модели приложения очевидны: пропадает необходимость перекачивать по каналу «клиент-сервер» большие объемы данных в сетевых приложениях вроде видео- и графических редакторов.

Чтобы обеспечить в приложениях, работающих с Native Client, должный уровень безопасности, Google вводит жесткие ограничения для разработчиков: а) каждое приложение должно быть написано в соответствии с определенными структурными критериями для легкого дизассемблирования; и б) в офлайновых модулях не должны содержаться определенные цепочки инструкций. Такой подход к обеспечению безопасности, однако, сразу вызывает мнение, что Google просто хочет оградить разработчиков, как всегда не пуская их глубоко в свою платформу.

Свои разработки под Native Client можно начинать уже сейчас. Исследовательская версия пакета уже доступна для скачивания и обещает работать на всех популярных ОС под x86 и во всех популярных браузерах, кроме Internet Explorer и Safari на MacOS. Версии для других аппаратных и программных платформ должны появиться в скором будущем.
Total votes 38: ↑37 and ↓1+36
Comments46

Терминальный сервер на OSX

Reading time3 min
Views20K


Как выяснилось, серверная версия OSX не содержит такой полезной функции, как терминальные сессии (несколько удаленных подключений с GUI). С другой стороны, несколько пользователей одновременно GUI использовать могут (через Fast User Switching). Сегодня я решил поковырять этот механизм и выжать из него максимум возможного.

вперед, к окошкам!
Total votes 47: ↑38 and ↓9+29
Comments26

Motorola Droid — новый аналог iPhone с OS Android

Reading time1 min
Views1.6K


Скоро у Apple iPhone появится очередной конкурент в лице Motorola Droid с операционной системой Android. Была развёрнута целая анти-айфоновская компания с созданием сайта-видео www.DroidDoes.com. Делается акцент на отсутствие у iPhone вспышки, съемной батареи, физической клавиатуры и др.

Motorola Droid будет в себе сочитать:
  • 5-мегапиксельную камеру (со вспышкой),
  • Операционную систему Google Android 2.0,
  • Мультизадачность,
  • Физическую клавиатуру и сенсорный экран.
Вкупе со стильным дизайном детище моторолы может и не станет убийцей культового айфона, но лицом OS Android — вполне. (несколько фоток под катом)
Читать дальше →
Total votes 46: ↑39 and ↓7+32
Comments138

Quake2 на HTML5, без плагинов

Reading time1 min
Views9.5K
В блоге Google Web Toolkit появилось сообщение, что разработчики из Гугль смогли прикрутить Quake2 (вернее проект Jake 2 — порт на java) к GWT.

Были использованы следующие технологии: WebGL, Canvas API, html5-тег audio, Local Storage API и WebSockets.

Для того, чтобы заставить работать Jake 2 с GWT, пришлось сделать некоторые доработки:
— Переписать рендеринг под WebGL.
— Переделать работу с сетью (для многопользовательской игры) с UDP на WebSockets.
— Сделать все подгрузки ресурсов асинхронными.
— Сделать реализацию Java NIO буферов в GWT, используя массивы WebGL.
— Реализовать эмуляцию простой файловой системы для сохранения игр.

На сегодняшний день поддерживаются лишь Webkit Nightly Builds (Mac OS X) и Chrome Development Branch.



Сайт проекта: quake2-gwt-port

UPD: Как я вижу, сие можно запустить на AppEngine. Если вдруг кто-то развернет там это приложение и потестит, расскажите потом плиз, насколько это все нагружено, сколько проца/трафика/etc. потребляет. А то интересно, но у самого времени совсем на это нет.
Total votes 77: ↑71 and ↓6+65
Comments64

Python Tips, Tricks, and Hacks (часть 3)

Reading time6 min
Views49K
В этой части статьи рассматриваются уловки для выбора одного из двух значений на основе логического условия, передача и получение произвольного числа аргументов функций, а также распространенный источник ошибок — тот факт, что дефолтные значения аргументов функции вычисляются только один раз.
Читать дальше →
Total votes 67: ↑63 and ↓4+59
Comments48

Python Tips, Tricks, and Hacks (часть 2)

Reading time6 min
Views133K
Содержание

Списки. Свёртка списка (reduce). Прохождение по списку (range, xrange и enumerate). Проверка всех элементов списка на выполнение условия (all и any). Группировка элементов нескольких списков (zip). Еще несколько операторов для работы со списками. Продвинутые логические операции с типом set.
Словари. Создание словаря с помощью именованных аргументов. Преобразование словаря в список и обратно. «Dictionary Comprehensions».
Читать дальше →
Total votes 69: ↑66 and ↓3+63
Comments30

Легко ли быть предпринимателем? Основные мифы и легенды, которые необходимо развеять…

Reading time5 min
Views3.1K
Ровно четыре месяца как мы находимся в самостоятельном плавании по волнам собственного бизнеса. Мы как никогда чувствуем себя «в седле» и испытываем огромный душевный подъем. Однако есть сложности, которые приходится преодолевать стартаперу; о них и о своем личном опыте я и хочу поведать.

Обрушились многие мифы и представления о том, как «просто и легко» заниматься собственным делом. Любой, кто начинает свое дело, полон радужных надежд и ожиданий того, что вот совсем уже скоро он станет миллионером и будет запросто руководить большим коллективом, сотрудники будут исключительно замотивированы и мотивация их будет такой же сильной, как ваша, а сами вы будете принимать только правильные и своевременные решения. И, наверное, так все и будет, но только не сразу. По пути можно разбиться о скалы разочарования. Спокойный дрейф в этой ситуации вас не спасет, поскольку другие так и норовят быть впереди, и вам тоже нужно нестись на всех парусах. Времени на раздумья очень мало. В такой ситуации очень важно понимание реальности на старте. Про основные мифы, предлагаю поговорить сейчас.

Миф 1. Я создам свое дело и буду полностью свободен.

Читать дальше →
Total votes 138: ↑111 and ↓27+84
Comments106

JetBrains PhpStorm (AKA WebIDE) — публичная сборка 94.335

Reading time2 min
Views3.5K
В этой сборке вас ждут:

Новое имя. Два варианта Web IDE получили свои официальные названия: JetBrains WebStorm и JetBrains PhpStorm. Брендинг еще не закончен так что вы увидите знакомые белые сплэши и иконки WI в самых разных местах. Цель разработки остается прежней — идеальный инструмент для PHP/JS разработчиков и веб-дизайнеров.

Полностью настраиваемый PHP formatter – эта фича получила наибольшее количество голосов в трекере.
Читать дальше →
Total votes 41: ↑35 and ↓6+29
Comments108

Добавляем свои поисковые системы

Reading time2 min
Views51K
Что мне нравится в Google Chrome, так это возможность очень удобной работы с разными поисковыми системами: ввел ключевое слово, пробел и печатаешь запрос. Однако этой функцией пользуются на 100% далеко не все.

Сегодня я хочу рассказать, как добавлять свои «поисковые системы» (это, на самом деле, могут быть не только поисковые системы) и тем самым повысить производительность работы в Интернете.

4.75 КБ

Где это все настраивается? Смотрим картинку:
Читать дальше →
Total votes 141: ↑110 and ↓31+79
Comments95

Простой консольный прогрессбар на питоне

Reading time3 min
Views31K
В связи с некоторыми вычислениями на питоне (например, подсчётом коэффициента симметрии карты реликтового излучения) мне захотелось сделать процесс более наглядным. Ну хотя бы добавить прогресс-бар. Скучно, знаете ли, сидеть перед пустой консолью и втыкать на запущенную команду. То ли работает, то ли висит… с ходу не понять. А делать какой-нибудь лог исполнения не хочется, так как потом в полученом хаосе глаз теряется.
Недавно нашёл выход: модуль progressbar.
Total votes 67: ↑63 and ↓4+59
Comments30

Идея расширения для Google Chrome

Reading time1 min
Views1.8K
С появлением расширений для Google Chrome, довольно-таки большое количество людей и компаний начали их делать. Причем многие получились качественными, удобными и полезными. Ну а поскольку этот браузер даже с количеством расширений ~20 штук работает не менее шустро и стабильно (ИМХО), то ничто не заставляет себе в этом отказывать, кроме одного небольшого нюанса — уменьшения адресной строки.
Именно поэтому ко мне пришла идея сохранить нужные мне расширения, не уменьшая адресную строку, а именно в такой реализации:
Набросал за несколько минут, поэтому пожалуйста, не нужно «минусовать» только за некачественный набросок.
Так вот, идея есть, но вот реализовать её у меня нет абсолютно никакой возможности. Поэтому опубликовал я её для тех, кто умеет делать расширения.
Ну а если кто-то знает уже существующее расширение с подобным функционалом, то буду признателен за информацию о нём.
Total votes 98: ↑63 and ↓35+28
Comments43

Рисуем координаты на карте с помощью PHP + GDLib

Reading time2 min
Views8.5K
Так сложилось что по долгу своей службы я занимаюсь гео-поиском. И зачастую мне нужно показать на карте координаты пользователей, для того чтобы сделать какие-либо анализы. Для этой цели я, до определенного времени, успешно использовал Google Maps, пока, однажды, мне не понадобилось нанести на карту не много не мало 16 млн. координат.

Как я это сделал?
Читать дальше →
Total votes 65: ↑58 and ↓7+51
Comments21

Альтернатива визивига или новый инструмент?

Reading time2 min
Views2K
В нашей компании мы всегда стараемся следить за достижениями прогресса и использовать все новейшие разработки. Конечно, это сложнее, чем идти протоптанными дорожками и не всегда находит одобрение, но такова судьба всех первопроходцев. Сегодня хотелось бы рассказать о нашем редакторе отчётов, который был разработан для нашей социальной сети Геоид.

При разработке интерфейсов всегда надо опираться на то, что чем больше возможностей даёшь пользователю, тем более неправильно он их использует. Целые тома рукописей известных и не очень писателей, написанные без использования красных букв на зелёном фоне, жирных выделений и подчёркиваний с перечёркиваниями, остаются великими произведениями. Наша задача, если и не пробудить в пользователе второго Александра Сергеевича, то, как минимум, помочь ему легко, гибко и удобно написать красивую статью, но при этом полностью исключить возможность её испортить. Это не ограничение свободы, это лишь свод законов, которые мы не даём нарушить. Это правила, по которым, в конечном счёте, живёт общество. И любая социальная сеть, по своей сути, является своеобразным государством со своими гражданами (пользователями) и чиновниками (администраторами ресурса). Но, это уже совсем другая история, вернёмся к нашей теме…
Читать дальше →
Total votes 101: ↑81 and ↓20+61
Comments102

Browsera — новый инструмент тестирования сайта

Reading time2 min
Views5K
Browsera — сразу определимся что это не ещё один сервис бесплатных скриншотов. Этот сервис позволяет проводить атоматизированнное тестирование кросс-браузерности вашей вёрстки, то есть читается ваш html код, стили, скрипты — и моделируется их отрисовка в соответствии с особенностями того или иного браузера. Впрочем, сервис также генерирует скриншот для каждого браузера: будет что отослать верстальщику.

image
Читать дальше →
Total votes 80: ↑71 and ↓9+62
Comments29

Information

Rating
Does not participate
Location
Щелково, Москва и Московская обл., Россия
Date of birth
Registered
Activity