• HTTP и Закон

    @egorinsk
    Хочу дополнить, что даже если вы легально выкачаете, к примеру, не защищенный исходный код чужого сайта, вы не получаете авторских прав на него, и не можете его распространять (но можете распространять ссылку). Мне так кажется.
    Ответ написан
    Комментировать
  • Страница ошибки страницы ошибки - нужна ли?

    @egorinsk
    Если фреймворк/приложение использует для вывода ошибок шаблоны/обработчики/какой-то код, который может выбросить исключение, вполне логично поставить верхний обработчик с кодом вроде

    if (!output_started) { header("$protocol 500 Fatal Error"); }
    die(«Fatal Error»);
    Ответ написан
    Комментировать
  • Как сделать конвертацию MIDI в wav?

    @egorinsk
    Это сложно, так как в Midi записаны только ноты и некоторые аспекты игры, но не особенности звучания инструмента.

    Чтобы более-менее прилично имитировать игру на инструменте надо не банк семплов скачать, а специализированный железный или софтверный синтезатор. Т.е., к примеру для фортепиано нужно качать (ой, в смысле, покупать) один софт, вроде Pianoteq, для бас-гитары другой (к примеру, Scarbee Pre Bass), для других инструментов третий, настроить и подсоединить их все к секвенсеру (например, Ableton Live), отрендерить трек… замучаетесь, а если за деньги покупать то еще и дорого. Под Linux это все еще сложнее, так как под него музыкальный софт не выпускают.
    Ответ написан
    1 комментарий
  • Реализация std::vector?

    @egorinsk
    > Интересует больше не сам вектор, а тысячи нюансов, которые возникают при написании большинства контейнеров

    По моему, это описывается в какой-то статье или книжке Бьерна Страуструпа (вот не помню в какой :) ). Именно все эти виды операторов. То, что вы знаете про различия между константным и неконстантным оператором, вселяет надежду, что у вас это получится.

    Также (если вы вдруг не видели). можете почитать известный C++ FAQ, там что-то упоминается про операторы: www.parashift.com/c++-faq-lite/

    Что касается реализации, подозреваю, без шаблонов вы тут не обойдетесь (ну разве что напишете контейнер для хранения байт и ссылок void* и будете все это кастовать), так что в итоге должно что-то вроде STL-ских исходников и получиться.

    Что касается «грамотного стиля написания», тут наверно важна в первую очередь понятность, читаемость человеком и правильные имена идентификаторов.
    Ответ написан
    Комментировать
  • Как сделать динамическое обновление контекта, запрашиваемого через JSON?

    @egorinsk
    Вконтакте используется какая-то бибилиотека для веб-сокетов, а на серверах наверно стоит сишный (или не сишный?) демон, специально написанный для этой цели. Если сможете повторить такую конструкцию, будем рады видеть вашу статью с описанием на Хабре.
    Ответ написан
    3 комментария
  • Где хранить IP пользователей?

    @egorinsk
    На 1 IP могут быть десятки. сотни, тысячи пользователей. Например, у Гугл есть специальный алгоритм определения числа пользователей за IP. Можете погуглить PDF.

    Но в вашем случае, это излишне сложно — хватит ограничения на 1 голос с IP.

    Хранить — сделайте таблицу вида user_ip INTEGER(...), article_id, vote. Такая таблица, в случае правильнйо расстановки индексов, работает быстро и легко кешируется в случае надобности.
    Ответ написан
    1 комментарий
  • MySQL кеширует запросы даже при выключенном кешировании?

    @egorinsk
    Если бы результат брался из кеша, он бы не выполнялся 1-2 секнуды, а 1-100 мс. Скорее всего, просто куски файлов с диска попадают в кеш ОС и при повторном запросе берутся из памяти.

    Если вы работаете под Линукс, кеш ОС (для чистоты эксперимента) можно сбросить записью единички куда-то в /proc (гуглите), внутренние буфера mysql сбрасываются перезапуском демона.

    Т.е. делаете service mysql stop, сбрасываете кеш ОС, service mysql start и выполняете запрос.
    Ответ написан
    Комментировать
  • Нормально ли хрипение звука на ноутбуке при 100% нагрузке на процессор?

    @egorinsk
    Если под Windows — традиционно мультимедиа приложения имеют высокий приоритет, и единственное, что их может остановить — драйвера. Например, у меня при вынимании сетевого кабеля на долю секунды прерывается звук (привет индусам, накривокодившим драйвер сетевой карты). Видимо, у вас что-то подобное имело место.
    Ответ написан
    Комментировать
  • Смешение каналов активной акустики?

    @egorinsk
    Некоторые звуковые карты «умные» (например, мерзкий реалтек) — пытаются определить тип подключенного в гнездо устройства. Может, у вас такая карта и она видит вашу акустику как монофоническое устройство? Можно попробовать поковырять настройки звуковой карты.
    Ответ написан
    2 комментария
  • Aсинхронную очередь заданий для PHP?

    @egorinsk
    > высоконагруженный
    > 200.000 в день
    Ответ написан
    Комментировать
  • Вещание музыки в интернете?

    @egorinsk
    На самом деле, играть музыку можно обходными способами: поместив плеер ютуба, яндекс-музыкиб myspace и подобных сервисов и управляя им через API. В этом случае Михалкову придется судиться с ютубом, а не с вами.
    Ответ написан
    Комментировать
  • Iframe внутри блока с фиксированными размерами и overflow:hidden растягивает окно браузера на андройде?

    @egorinsk
    По моему, мобильные браузеры обрабатывают фреймы и ифреймы особо. В руководстве к мобильному сафари у Эппл, например, это описано. Так что вам лучше погуглить документацию к браузеру андроида.
    Ответ написан
  • Вещание музыки в интернете?

    @egorinsk
    Плашку повесить вы можете, но закон не разрешает распространять, копировать и воспроизводить защищенный АП контент без договора с правообладателем или организацией по защите АП.
    Ответ написан
  • PHP класс роутера

    @egorinsk
    Ошибка тут одна главная — дурацкие названия. Что еще за DRouter и MCA?

    Также, почему параметры module/action пишутся в request? Также, нафига делать unset локальным переменным? Думаете, счетчик ссылок без этого не обнулится? Также, неявный addcslashes надо заменять на явное экранирование спецсимволов — или заменить ограничивающие ругулярку слеши на другой символ.

    Код так себе, но в популярных фреймворках примерно такой же, так что сойдет.

    Я бы сделал индекс для ускоренного поиска роута без тупого перебора всех регулярок. Это так примитивно.

    Также, я не понимаю, откуда взялась мода делать HTTP-редиректы и ответы через выбрасывание исключений. Кто придумал это? Какому из паттернов это соответствует?
    Ответ написан
  • FFmpeg + iPhone

    @egorinsk
    Никто вам не напишет хорошей строки, потому, что половина человек не знает, что значит какая опция, другая половина слушает MP3 в 192 Кб/с и смотрит фильмы с любительской озвучкой или русскими субтитрами и ее это устраивает.

    И вы будете на хорошем высокодетальном экране смотреть на джипеговские квадратики. А бедный Стив Джобс — вертеться в гробу.

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

    @egorinsk
    Бросайте яву. На PHP парсер пишется в 10 строк: curl_init(), curl_exec(), preg_match_all(), mysql_connect(), mysql_select_db(), mysql_query(). Параметры функций подставьте сами, исходя из условий вашей задачи.
    Ответ написан
    2 комментария
  • Какой фрэймворк учить и по каким мануалам?

    @egorinsk
    CakePHP уродливый внутри и давно устарел. Сейчас все юзают Yii. Kohana — не самостоятельный фреймворк, а улучшенная версия CI. Symphony — вроде тяжелый и оверинженеренный монстр, который включает в себя неуклюже скопированный из Java ORM.

    Есть также мнение, что лучше всего было бы вообще перейти с PHP и недофреймворков на что-то серьезное, например Java (Гугл использует Java и С++ для своих сервисов, например) или хотя бы python, если яву не осилить.
    Ответ написан
    8 комментариев
  • Алгоритм работы работы индекса с использованием wildcards?

    @egorinsk
    Что за ИДЕ? Эклипс вроде бы ищет тупо перебором файлов, а если у вас много памяти, эти файлы постепенно оседают в кеше и поиск фактически ведется в памяти.

    Другие ИДЕ могут создавать для этого индексы. Индексы бывают разные. Самый примитивный индекс — когда исходный код разбивается на слова, но он не позволяет искать по кусочкам слов или маске.

    Понятно, что, к примеру, гугловцев такой примитивный подход не устроил. Потому, когда они делали в google code поиск по регулярным выражениям, они придумали свой алгоритм построения индекса: один из вариантов построения триграмного индекса для поиска по регулярным выражениям: swtch.com/~rsc/regexp/regexp4.html Можете почитать, если интересно.
    Ответ написан
    1 комментарий
  • Замена обычных кавычек на кавычки-елочки

    @egorinsk
    Это либо нельзя, либо крайне сложно сделать 1 регуляркой. Вам надо написать парсер HTML (можно воспользоваться впрочем встроенным в PHP DOM, но использовать готовые решение — для слабаков), который будет бить входной поток на тег, содержимое аттрибута, текст между тегами, а вот уже в содержимом аттрибутов и тексте между тегами менять вид кавычек.

    Надо учесть, что в HTML кавычка также может быть представлена как §quot;
    Ответ написан
    1 комментарий
  • CMS для сайт-афиша?

    @egorinsk
    На готовом движке можно сделать такой сайт, но скорее всего плохой.
    Ответ написан