• Как в mysql ускорить запрос с GROUP BY?

    Собственно ответ уже был дан выше и отличный по качеству. Хотел лишь уточнить одну "глобальную" мысль. Довольно часто единственным реальным способом ускорить запрос с group by явлется поиск варианта запроса где удастся обойти group by. Потому что группировка по своей сути подразумевает что: вначале мы создаем временное хранилище, туда отгружаем подходящие строки, а после этого по ним пробегаемся ещё процессом группировки (сравнения каждого с каждым). Большие по размеру группировки довольно часто и вовсе вызывают требование создавать для неё временный файл. Ну и сам способ вычисления группировки - небыстрая штука.
    Ответ написан
    Комментировать
  • Как написать регуляку для поиска файла?

    ([^\.^\\^\s]+)\.[^\.^\\^\s]+$ По идее так

    В первой группе выделяем всё что не точка, не слэш и не пробел, и с длиной 1 или более (символ плюс за квадратными скобками). И определяем это как ответ. Следом за ответом должна быть точка, за которой следует всё что угодно кроме точек, слэшей или пробелов это квадратная скобка, знак плюс аналогично - означает что должно быть 1 или более символов. А знак доллара в конце означает что далее строка заканчивается.
    Ответ написан
    Комментировать
  • Лучшие практики создания одностраничных сайтов?

    Раз уж вы упомянули Rails - то дам небольшую справку по этому вопросу.
    Для этого существует специальный gem trubolinks. В Rails 4.0 и выше он включён по-умолчанию. Его суть как-раз таки в том, что turbolinks.js перехватывает клик по ссылке, и на адрес, куда вы хотели перейти - отправляет запрос в json, получает ответ в json, после чего перерисовывает внешний вид страницы, и меняет в браузере её адрес.
    Но такой подход не подразумевает в принципе одностраничные сайты. Тут суть в том, что мы прогружаем с сервера только то, что нам нужно для отображения.
    А вообще самый общий ответ простой - сервер должен уметь отдавать по каждому адресу ответ в том виде, в котором он получает запрос: если это был обычный GET или POST запрос - возвращает HTML-страницу. Пришёл запрос на json - отдаёт json
    Например в Rails если по запросу /users/show/1 возвращается html страница, то json будет возвращаться по адресу /users/show/1.json, xml - /users/show/1.xml
    То есть самое простое правило выглядит так система по любому адресу сайта должна уметь отдавать как полный html, так частичный, так и json. Чтобы любой пользователь, открывший какую-то страницу мог взять её адрес, переслать другому, и тот увидел бы аналогичное (вне зависимости от истории его нахождения и действий на сайте)
    Но я не могу понять - как это соотносится с одностраничными сайтами? Это лишь методика перерисовки изображения страницы без полной её перезагрузки.
    Ответ написан
    Комментировать
  • Как сделать сортировку постов по рейтенгу в mongoid?

    Звиняйте, но у вас тут сразу несколько ошибок:
    1. В начальных условиях рейтинг отрицательный что несколько странно. Обычно изначальный рейтинг должен быть 0. -1 там ошибка - лучше просто запретить голосовать за себя.
    2. При таком подходе вам нужны aggregations. Только я бы в таком случае как - минимум ограничивал поиск по дате, и по количеству голосов.

    Причина в том что тут нет никакой магии - агрегации достаточно тяжелы в расчётах, и копать ими ради рейтинга несколько сотен тысяч топиков с 10-летней давностью не имеет смысла.
    Смотрите пример тут: stackoverflow.com/questions/20585135/mongodb-get-a...
    Ответ написан
    Комментировать
  • Перенос блога с Wordpress MU на отдельный сайт

    Настройки лежать в одной таблице. Точное название не помню — что то типа wp_config. Попробуйте тупо переподнять дамп на новой версии WP (которая не MU) поверх уже развёрнутой версии. В принципе те настройки, что не нужны для не MU должны быть просто проигнорированы. Ну и папку с плагинами скопировать не забудьте.
    Это примерный алгоритм. Идея, а не точная пошаговая инструкция. Экспериментируйте в общем. :)
    Ответ написан
    Комментировать
  • Диагностировать неисправность?

    Либо видеокарта, либо блок питания. Теоретически, если он был под предел, может и такие чудеса выдавать.
    Ну а вообще, если возможно — найдите и купите (видел порой по 300 рублей) master-tv.com/article/post/ Индикатор POST кодов. Если такой возможности нет — экспериментируйте. Могла, например, прилететь оперативная память. Без нее ПК не запустится и ничего не покажет. Кстати, если у вас на матплате ничего не подключено к разъёму Speaker — то вы никакого предупреждения не услышите. Нечему пищать будет :)
    Ответ написан
    Комментировать
  • Postgres, foreign key to parent(in inheritance mean) table:imposible?

    ZiNTeR
    @ZiNTeR Автор вопроса
    Оказалось что ответ на данный вопрос есть в инструкции для Postgres. Дословно: There is no good workaround for this case.

    www.postgresql.org/docs/9.1/static/ddl-inherit.html
    Ответ написан
  • Как вредоносный код попал на сайт

    А вы не задумываетесь о том, что в первый и второй раз вирус мог попасть разными путями? Первое попадание — скорее всего стыренный из FTP клиента пароль.
    По нему произошло соединение. И после этого не ресурс был засунут php-шелл для дальнейшей работы. Из уже данного шелла скорее всего и были «исправлены» ваши js-файлы.
    Вы сменили пароли, вычистили js-ы, а изменения в PHP вы посмотрели?
    Вам теперь нужно не только вылечить компы (скорее всего там сидит вирус), но и копать ваш собственный сайт на предмет внедрённых туда «доработок»…
    Ответ написан
  • Валидация сайта на W3.ORG и выдача в Яндексе

    Валидация для SEO не панацея, а лишь один из инструментов — помогает выявлять и исправлять недочёты. Некоторые из них могут влять на результаты в поиске, некоторые — нет.
    Ответ написан
    Комментировать
  • Как в Zend Framework выводить отфарматированный html?

    Помимо шаблона, это можно осуществить на уровне плагина к Front_Controller — примерно на уровне postDispatch. Копай Bootstrap
    Также сжатие может быть на уровне сервера — смотри установленные модули.
    А вообще лучше юзай Firebug (под Firefox) либо Инструменты Разработчика (под Google Chrome) — так удобнее.
    Ответ написан
    2 комментария
  • Как дебажить залипания в связке nginx+php-fpm?

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

    В противном случае ваш сервер можно будет положить тупым «зажать F5» + более менее приличный канал.

    Если у вас не используется кэширующий механизм, и не прописаны ограничивающие iptables — попробуйте на главной странице в браузере зажать F5, и посмотреть htop на сервере. Узнаете много интересного :)

    Уход с Apache на Nginx это ещё не решение проблемы — вы просто уменьшили количество сожранной памяти на процесс, а не объём суммарной памяти.

    P.S. Сервер умирает тогда, когда оперативная память на процессы заканчивается, и начинает пилиться своп — тогда «вода поступает в трюм быстрее, чем вы ее успеваете вычерпывать».
    Ответ написан
    Комментировать
  • Литература по проектированию?

    Ну напишите тому-же Гайдару — он достаточно отзывчивый и позитивный человек.

    Думаю что он знает и подскажет где можно купить его книгу — ваш К.О. :)
    Ответ написан
  • Как наказать мошенические обменники онлайн валют?

    Если готовы биться за минимальные шансы — ищите специализирующего на IT юриста, собирайте данные, пишите заявления и пинайте отделы вида К. Если-же хотите быстро, и «чтоб не париться» — тогда никак, считайте что вы эти деньги заплатили за урок жизни мошеннику.
    Ответ написан
    Комментировать
  • RU-CENTER шлёт уведомления о якобы некорректных данных в whois

    В теории регистрация на неверные данные ведет к потере домена. Отсюда лучше звонить, стучать в колокола и выяснять что им не нравится.
    Ответ написан
  • На каком основании блочатся публикующие чужие посты?

    Вопрос не о человеке, а о том, что от этого правила страдает сообщество. В конце-концов благодаря этому правилу может недополучить интересной информации. Обычно, когда автор берется перепубликовать чужой материал, то он этот материал с 10 сторон оценит, и он будет качественным и интересным.
    Когда я только-что пришел на Хабру некоторым странным я тут тоже не понравился, и получил минус. И спасибо паре человек — я написал статью и отправил им чтобы прочитали, а они мне дали + в карму для публикации.
    Новичек на Хабре, получается, первые шаги делает по минному полю. И первый-же шаг может оказаться последним. А теперь посмотрите на тот бред, который постоянно на главную вылезает: постоянные желтые перепечатки со всяких «недокомпьютеррр». В принципе идет одна интересная статья на главной в несколько дней.
    Всё остальное порой сборище сплетен и мусора. Как сейчас помню совершенно угарную тему на главной: как писать служебные документы
    Но на фоне остальной копирастии в этот день материал даже в принципе читался…
    Ответ написан
    3 комментария
  • OpenID библиотека для PHP

    framework.zend.com/manual/ru/zend.openid.html

    Попробуйте покопать тут — реализация от Zend
    Ответ написан
    Комментировать