• Что делать, когда растет база данных?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    Я бы сначала привёл в порядок индексы таблицы, так как тот же поиск по неиндексированному полю - это очень плохо.
    Далее, можно сделать аналогичную по структуре таблицу а-ля "order_archive", туда автоматически переносить все старые/выполненные/еще-по-каким-то-условиям-отобранные, короче, уже не актуальные заказы. И если нужно какую-то статистику, искать уже по ней, не трогая актуальные. Желательно этот поиск вынести с рабочего сервера, интернет-магазину ни к чему видимые пользователями лаги.
    В довесок к вышеперечисленному, если хочется очень быстрых запросов в плане статистики, можно настроить Sphinx и искать по нему, он очень быстр (пробовал), или ElasticSearch (собираюсь пробовать)
    Ответ написан
    Комментировать
  • Текущий курс обмена валют, WTF?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    1 рубль = 0.0282262 доллара, не?)
    Ответ написан
    Комментировать
  • Шаринг в одноклассники режет якоря (#something) - как обойти?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    Сокращатели ссылок помогут, типа bit.ly
    Ответ написан
    Комментировать
  • Как лучше хранить много текстовых данных в Android?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    Пробовал когда-то программировать для Android, и вроде как SQLite там - стандарт, а не костыль, и для работы с ним все быть должно. Просто надо почитать документацию и принять, что там написано.
    Опять же, на раз гуглятся tips & tricks про использование SQLite в разработке под Android: habrahabr.ru/post/205620/, где вторым пунктом идет создание и первоначальное наполнение БД.
    Ответ написан
    Комментировать
  • Какой скрипт PHP авторизации выбрать?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    Loginza, uLogin - для авторизации через сторонние сервисы. C uLogin'ом как-то больше понравилось работать.
    А если вы и правда хотите полноценную систему пользователей для самописного проекта, то и правда, напишите свою же)
    Ответ написан
  • Как реализовать протокол WebSocket в проекте на GWT?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    bombermine.ru - у них точно вебсокеты, давно где-то читал, что вроде GWT
    Ответ написан
  • Как осуществить возврат денежных средств при отказе в оказании услуги?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    Вы чего сюда пишите, неужели не проще с человеком откорректировать объявление и продумать вообще схему работы для таких вот случаев? У вас всё-таки платная доска, а не помойка. Он вам что, злостно матом там написал или заспамил?
    Ответ написан
  • Как отслеживать события, если JS подключается динамически по аяксу (после построения дом дерева)?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    $(document).on('click', '.target-class', function(e){
      // doit
    })
    Ответ написан
    Комментировать
  • Мы ищем PHP-программиста или разработчика. И реально ли его найти на такую ЗП в Москве?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    "PHP-разработчик" даже как-то не звучит, если честно, но это субъективное. А вообще, помимо PHP, указаны другие серверные языки: Erlang и Perl. Может, это "Веб-разработчик"?
    Ответ написан
    2 комментария
  • Как мне сделать правильный ajax запрос?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    Можно при потере фокуса полем ввода города, отправлять введенное туда значение на сервер, там пробовать искать в БД город по значению, и если есть - возвращать область и страну.
    Ответ написан
  • Как устранить проблему пропусков при записи в myisam таблицу?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    InnoDB - транзакционное хранилище, и если вы явно не стартуете транзакцию, каждый ваш запрос неявно оборачивается в транзакцию (если не настраивать это иначе, в вашем случае, думаю такого не было). Если вы начнете явно открывать транзакцию перед вставкой ваших многих тысяч записей, и в конце коммитить, прирост по скорости будет раз в 100. Попробуйте так для начала, а про пропуски звучит, если честно, бредово как-то.
    Ответ написан
    8 комментариев
  • Как вставить текстовое значение в ноду XML, используя Python и xml.dom.minidom?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    Строго говоря, "просто текст" внутри элемента - это вложенный элемент, типа text node, вот так работать должно:
    element.appendChild(xml.createTextNode('value!'))
    Ответ написан
  • MYSQL Insert - импорт json файла с большим количеством данных - как?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    Из личного опыта:
    - "сервер похоже не вывозит выпадая с 500 ошибкой" - а лог ошибок на что? Там все написано, почему падает.
    - самое страшное - делать запросы на изменение данных вне явно открытой транзакции в транзакционную таблицу (InnoDB). set autocommit=0, стартуете транзакцию и можно циклом вставлять данные. Неявная транзакция на каждый запрос замедляет работу раз в 100-200.
    - вариант @zelenin'а c пакетным запросом - вообще не пробовал, но может быть хорошей альтернативой явным транзакциям.
    - нет никакой нужды выполнять такое через веб, и иметь нюансы, с ним связанные - таймлимиты php и самого веб-сервера. Выполняйте импорт, запуская скрипт из командной строки. Я так демонов делал, работали по принципу "запустил и забыл", но это уже совсем другая история.
    Вообще ~1300 записей о отелях и 32000 фотки (чисто url'ы с описаниями, наверно?) - не так много данных, скорее всего узкое место у вас - именно передача данных из PHP в MYSQL.
    Ответ написан
    6 комментариев
  • Django request в модели - как менять ссылку?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    Сам с Django работаю недолго, но есть мнение, что модель ничего не должна знать о реквестах. Поэтому я бы урл формировал не в модели, а, например, во views.py
    Ответ написан
    2 комментария
  • Как ускорить web-сервер на флешке?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    Если задача состоит в том, чтобы приемлемо быстро работало на сменном носителе (а не именно на флэшке), то может внешний ssd-диск попробовать?
    Ответ написан
    Комментировать
  • Стоит ли реализовывать идею?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    У меня однажды возникла чуть видоизменённая идея.
    Не знаю как насчет просто поездок на машине, хоть и по "красивым местам", но вот если человек занимается чем-то более-менее экстремальным или необычным, то пусть у него будет девайс, с камерой, на котором будет стоять приложение. В веб будет идти: аудиовидеопоток, gps-координаты и иные характеристики (скорость, высота и т.п.). Все это можно будет в реальном времени просматривать на странице - эдакий ЦУП :) В плане буквы У, которая в этой аббревиатуре означает "управление" - ну само собой комментарии, чаты и прочее социальное.
    Осталось только, как отметил @begemot_sun, исследовать, будет ли интересно наблюдать в реальном времени за: катанием сноубордистов, велосипедистов, полетами парапланеристов, парашютистов.. Почему бы и не понаблюдать участниками бреветов, или за авантюристами, что решили проехать на велике из Самары в Москву (на спине имея солнечную батарею для подпитки девайса)
    И кстати, есть вот такое, года 3 назад нашел, пощёлкал по разным местам маршрута, интересно довольно-таки.
    Ответ написан
    4 комментария
  • Как осуществить обработку данных на сервере node.js ?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    Такую ошибку (1) я видел только в одном случае - когда делается кроссдоменный аякс-запрос, не проходящий через same-origin policy, без соответствующей настройки.
    Ошибка (2) просто логичное следствие (1)

    Посмотрите вот это, и в целом гугл по запросу "crossdomain ajax".
    Ответ написан
    Комментировать
  • Как запустить uwsgi сервер без перехвата консоли?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    Только недавно попробовал небольшой тестовый проект развернуть (сам в Python&Django пока двухмесячный опыт только имею). В итоге всё получилось, запустил uwsgi в так называемом "Emperor mode". Используется virtual environment. Устанавливается uwsgi (pip install) в систему, кстати, а не в venv.

    Создается файл /etc/init/uwsgi.conf с содержимым:
    # Emperor uWSGI script
    
    description "uWSGI Emperor"
    start on runlevel [2345]
    stop on runlevel [06]
    
    exec uwsgi --master --die-on-term --emperor /etc/uwsgi/vassals


    В папку /etc/uwsgi/vassals помещаются конфиги проектов (по одному на каждый проект), с примерно таким содержимым:
    # mysite_uwsgi.ini file
    [uwsgi]
    
    ## process-related settings
    # master
    master          = true
    # maximum number of worker processes
    processes       = 3
    # the socket (use the full path to be safe
    socket          = /home/user/virtualenvs/mysite/uwsgi.sock
    # ... with appropriate permissions - may be needed
    chmod-socket    = 666
    # clear environment on exit
    vacuum          = true
    # user, group
    uid=mysiteuser
    gid=mysitegroup
    
    ## Django-related settings
    # the virtualenv (full path)
    home            = /home/user/virtualenvs/mysite/
    # the base directory (full path)
    chdir           = /home/user/virtualenvs/mysite/www
    # Django's wsgi file
    module          = mysite.wsgi


    Теперь uswgi управляется как сервис: sudo service uwsgi (start|status|stop|restart и т.п.) и никаких занятых консолей.

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

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    Если вопрос касается именно курсора мыши, то да, никак (без системного доп.софта), если же суть в просмотре действий пользователя и управлении страницей, то извратиться можно. Навскидку: просмотр реализуется, как в Яндекс.Метрике, управление теоретически можно реализовать посредством вебсокетов, отправляя странице инструкции куда нажать (click()), поместить фокус в поле ввода (focus()), задание значений полям ввода (кроме, наверно, поля пароля)
    Ответ написан
    Комментировать
  • Есть ли аналоги supervisord и в чем их преимущества?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    Мы пользуемся supervisord для управления php-воркерами для Gearman.
    Работает стабильно, хотя есть такой вот недочет: редко бывает, что рестарт сервиса не срабатывает и воркеры не убиваются. Насколько критично, решает каждый сам, нас раньше бесило (при релизе кода рестарт делался и бывало что не срабатывало), сейчас пофиксили - убрали вообще рестарт, воркеры сам определяют, выкатился ли новый код и корректно себя завершают, супервизор стартует заместо завершившихся воркеров новые.
    Есть возможность в конфиге перенаправить из воркеров потоки вывода, чем с радостью и пользуемся для логирования.
    Ответ написан
    2 комментария