• Как организовать работу с mysql?

    ubernoob
    @ubernoob
    Ничего не делать, он не создаёт нагрузки когда на него нет запросов
    Ответ написан
    3 комментария
  • Почему LIMIT так сильно влияет на скорость?

    @AlikDex
    1) Проверьте селективность запроса (гугл в помощь).
    Вероятнее всего будет лучше сделать (т.к. компаний скорее всего меньше чем чеков):
    SELECT * FROM `warehouses_changes` WHERE (`company`=1) AND (`bill`=0)  ORDER BY `date` DESC LIMIT 20;


    2)Удалите текущий индекс, и для этого запроса сделайте:
    CREATE INDEX warehouses_changes_date_bill_company ON warehouses_changes (company, bill, date);

    И у вас запрос будет занимать меньше половины секунды. Возможно даже тысячные доли секунды.

    Подсказка: Индекс следует делать именно в том порядке, в котором делаете выборку данных. Т.е. первым параметром у вас стоят компании - следовательно в индексе должно стоять первым колонка company, потом чек и сортировка `date`.
    Ответ написан
    Комментировать
  • Почему LIMIT так сильно влияет на скорость?

    @lnked
    Попробуйте так выполнить оба запроса, увидите что с лимитом выполняется быстрее
    SELECT SQL_NO_CACHE * FROM `warehouses_changes` ...
    Ответ написан
    Комментировать
  • Почему LIMIT так сильно влияет на скорость?

    alsopub
    @alsopub
    Если вы их выполняли именно в этой последовательности, то ничего странного нет.
    В первом случае была перелопачена база, отобраны 20 записей, а во втором случае - все уже лежало в кеше.
    Ответ написан
    Комментировать
  • Почему LIMIT так сильно влияет на скорость?

    @lubezniy
    Думаю, стоит попробовать date вывести в отдельный индекс. Даже несмотря на Sending data.
    Ответ написан
    Комментировать
  • Почему так много памяти сьедает словарь?

    fastpars
    @fastpars
    Предполагаю что вы не закрыли Body в http.Response.

    На вопрос "Почему не работает код?" предлагаю вам не стесняться и показывать этот самый код.
    Ответ написан
    2 комментария
  • Почему так много памяти сьедает словарь?

    откройте для себя memcached или redis
    оно будет, конечно, помедленней, но избавит от необходимости хранить кучу хрени в рентайме и потери данных при креше приложения
    redis сохранит данные и в случае перезапуска сервака
    Ответ написан
    1 комментарий
  • Нужен совет по замене крона?

    taliban
    @taliban
    php программист
    php.net/manual/en/function.flock.php
    Не изобретайте велосипед, все уже придумано до вас
    запустился скрипт, лочит файл, если удалось, работает, нет, умирает
    если время лока больше ХХХ то предидущий скрипт завис, насильно снимаем блокировку, работаем
    Ответ написан
    Комментировать
  • Работает ли UPnP через несколько роутеров?

    Jump
    @Jump
    Системный администратор со стажем.
    Нет.
    По крайней мере не встречал такого.
    Для этого надо чтобы первый роутер в цепочке по своей инициативе отправил запрос на открытие порта на второй.
    Поэтому порты будут проброшены на первом от вас роутере.
    Ответ написан
    3 комментария
  • ТИц, PR, ссылки больше можно не использовать?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Ссылки следует наращивать естественным образом. Публикуйте хороший контент и люди сами начнут на вас ссылаться.
    Ответ написан
    4 комментария
  • Как отслеживать открытие коммерческого предложения?

    @Beltoev
    Живу в своё удовольствие
    Вы ведь почтой коммерческое предложение рассылаете?

    В таком случае можно для каждого клиента генерировать уникальную ссылку для скачивания и уже таким образом отслеживать, скачивал ли клиент документ (а скачав обычно сразу и открывают). Тут можно и цели в Google Analytics для удобства добавить.

    Либо отказаться от PDF и остаться на DOCX, добавив в документ макрос на открытие, который бы стучался по адресу для подсчета открытий (например, site.ru/counter). Правда, у MS Word есть настройка безопасности, которая отключает макросы в файлах, скачанных из Интернета.

    Либо, более универсальный вариант в DOCX без макросов: добавить изображение, которое доступно, например, по адресу site.ru/image.jpeg. На самом сайте по такой маске запускается наш скрипт, который засчитывает новое открытие КП и возвращает изображение, которое успешно отображается в документе. Можете вообще на 1x1 px белую точку где-нибудь в углу документа ссылаться (так, например, работают CPA-партнерки для отслеживания действий).
    Подозреваю, что такой сценарий не сработает в PDF. Не проверял
    Ответ написан
    1 комментарий
  • Как пишутся системы оплаты для сайта?

    @qweqwa
    1. Тебе нужно юридически договориться (заключить договор, получить аккаунт) в каждой из интересующих тебя систем.

    2. После чего (а может быть и заранее) ты получишь описание их API, примеры, и ключи доступа.

    3. После чего технически все легко, если ты программист настоящий, а не вышел погулять просто.

    4. С вебманями и т.п. - это легко. И даже договор можно заключать не в письменной форме, а онлайн.

    5. С Visa/Mastercard - тоже несложно. Только если твой оборот менее нескольких сотен миллионов долларов - никто с тобой и разговаривать не будет.

    6. Исходя из пункта 5, целесообразно все же через посредников. Посредники первой линии - это платежные системы Cyberplat, Payonline и т.п.
    Ответ написан
    Комментировать
  • Как пишутся системы оплаты для сайта?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Как осуществляется написание платежной системы касательно visa и mastercard или для конкретного банка? что делается в данном случае? (Допустим требуется работа со сбербанком и альфабанком).

    Из личного опыта:
    a. Приезжаете в офис банка у которого есть услуга "интернет эквайринг", показываете своё юрлицо, уставные документы, бенефициаров, обороты от 50 млн в месяц.
    * некоторые работают и с меньшими оборотами, но % будет крайне не выгодным.
    ** без запущенного и работающего проекта идти в банк бессмысленно.
    b. Ждете 2-6 недель пока СБ банка проверит все.
    c. Ждете 2-4 недели пока банк подпишет договор
    d. Получаете реквизиты и документацию API конкретного банка.
    e. Реализуете
    f. Ждете 1-2 недели пока банк проверит что у Вас все согласно их протоколу.
    g. Получаете боевые реквизиты.

    Учтите что:
    1. Если Ваши объемы меньше чем 50млн+ в месяц - с вероятностью 99% Вам будет СИЛЬНО выгоднее работать через посредника. Посмотрите на uniteller.ru , payture.com/ru , payler.com - если Вы будете достаточно убедительны на переговорах, вполне реально сторговать их до 2-2.5% даже на маленьких оборотах (1млн-5млн)

    2. Прямые API банков мягко говоря не современны. Как правило там не будет ни удобного личного кабинета, ни вменяемой службы поддержки - ничего. Зато будут проверки, требования бумажной отчетности и прочие милые сердцу советского бюрократа вещи.

    3. Риски при работе через посредника - по факту минимальны. Все приведенные выше делают выплаты ежесуточно, т.е даже если посредник накроется - Вы максимум рискуете дневным оборотом.

    С учетом данных пунктов, по моему мнению прямой договор с банком имеет смысл если у Вас настолько большие обороты - что разница в десятые доли процента окупает весь этот геморрой.
    По факту есть море проектов с большими оборотами (mamba, badoo, etc) кто продолжает работать через агрегатор, минимизируя расходы на юристов, бухгалтеров, техническую поддержку работы шлюза итд итп.
    Ответ написан
    1 комментарий
  • Безопасно ли для батареи частое включение/выключение питания?

    @ravil666
    IT-специалист , КИПиА
    если NiCa то не долго , если LiPol то контроллер должен нормально регулировать заряд-разряд
    Ответ написан
    Комментировать
  • Безопасно ли для батареи частое включение/выключение питания?

    Jump
    @Jump
    Системный администратор со стажем.
    Аккумулятору все равно, как часто вы будете включать и отключать зарядку.
    Главное чтобы точно выдерживалось напряжение заряда, не превышался ток заряда, и не возникало перезаряда.
    Все эти параметры должен обеспечивать контроллер заряда.
    Просто смотрите чтобы у вас был хороший контроллер.

    Для более точной информации укажите тип батареи, тип контроллера заряда, и батарей.
    Ответ написан
    1 комментарий
  • Свои сертификаты SSL безопаснее, чем купленные?

    Jump
    @Jump
    Системный администратор со стажем.
    Это будет просто тупо безопаснее и бесплатно

    Это будет бесплатно - абсолютно верно.
    Но это не будет безопаснее, это будет точно так же.
    Поясню - сертификат какой бы он ни был вообще не влияет на безопасность.
    Сертификат лишь подтверждает личность вашего собеседника.
    Если кто-то использовал MITM, то это значит лишь одно - собеседники не проверили сертификаты.
    Вот и все.
    Т.е MITM работает только тогда, когда пользователи невнимательны.

    Использовать свои сертификаты или покупные решать вам.
    Выбрать очень просто - если все те, кто будет пользоваться каналом, вашим сертификатам доверяют - то конечно нет смысла платить.
    Ответ написан
    2 комментария
  • Как получить названия БД исключая системные?

    yarkov
    @yarkov Автор вопроса
    Помог ответ? Отметь решением.
    Рабочий скрипт:
    #!/bin/bash
    #
    
    DB_USER=root
    DB_PASSWORD=root
    DB_HOST=localhost
    
    NOW=$(date +"%d-%m-%Y")
    DUMP_FOLDER=${PWD}/dump/${NOW}
    
    [ -d ${DUMP_FOLDER} ] || mkdir -p ${DUMP_FOLDER}
    
    DB_LIST=$(echo "SHOW DATABASES WHERE \`database\` != 'mysql' AND \`database\` != 'phpmyadmin' AND \`database\` NOT LIKE '%_schema';" | mysql --host=${DB_HOST} --user=${DB_USER} --password=${DB_PASSWORD})
    
    for DB_NAME in $DB_LIST
    do
        if [ ${DB_NAME} != 'Database' ];then
            DB_FOLDER=${DUMP_FOLDER}/${DB_NAME}
            [ -d ${DB_FOLDER} ] || mkdir -p ${DB_FOLDER}
            TABLE_LIST=$(echo "USE ${DB_NAME};SELECT \`table_name\` FROM information_schema.tables WHERE \`table_schema\` = '${DB_NAME}' AND \`table_name\` NOT LIKE 'Tables_in%';" | mysql --host=${DB_HOST} --user=${DB_USER} --password=${DB_PASSWORD})
            for TABLE_NAME in $TABLE_LIST
            do
                if [ ${TABLE_NAME} != 'table_name' ]; then
                    mysqldump --host=${DB_HOST} --user=${DB_USER} --password=${DB_PASSWORD} -B ${DB_NAME} --tables ${TABLE_NAME} > ${DB_FOLDER}/${TABLE_NAME}.sql
                fi
            done
        fi
    done
    Ответ написан
    Комментировать
  • Как получить названия БД исключая системные?

    savostin
    @savostin
    Еще один программист
    DB_LIST=$(echo "SHOW DATABASES where \`database\` != 'mysql' AND \`database\` not like '%_schema';" | mysql --host=${DB_HOST} --user=${DB_USER} --password=${DB_PASSWORD})
    Ответ написан
    9 комментариев
  • Как запустить на VDS игру? Или как вообще поступить в моей ситуации?

    @cijiw
    Современные ВДС, а уж тем более поддерживающие Винду, довольно точно эмулируют реальный компьютер.
    Кроме аппаратной поддержки 3D графики.

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

    С выделенными серверами - та же проблема. Изначально на них никто не ставит видеокарт.
    Правда, если они на обычных современных десктопных процессорах и вам хватает обычного встроенного в Intel видео, то можно попытаться с ними.

    Одни из самых дешевых выделенных - например на Kimsufi.
    Ответ написан
    8 комментариев
  • На сколько безопасна защита "админки" сайта через http basic auth?

    kursorik2
    @kursorik2
    Junior-Developer
    Самый простой способ защиты для параноиков: после каждого успешного входа в админку, ренеймится ее папка а на странице высвечивается новый адрес для будущего входа вида:
    site.ru/h5fdurgi5dvbgersfhgrc73ghi6d3b6s/admin.php

    Proof of concept: [PHP]

    Размещаем в файле %admin%.php (в самом верху после <?):

    $admin = "%admin%"; // название главного файла админ-панели
    $keyprint = file_get_contents('secretfile.txt'); // получаем значение отпечатка ключа (с БД или файла)
    if(file_exists(trim($keyprint))) {
    $md5_hsh = md5(rand(10000,99990)); // генерируем новый ключ
    rename(trim($keyprint),$md5_hsh); // Переименовывание старой админки
    file_put_contents('secretfile.txt', $md5_hsh); // перезаписываем файл или значение в БД с новым ключом
    $result = "http://site.ru/'.$md5_hsh.'/'.$admin.'.php"; // выводим адрес будущей админки
    } else {
    $result = 'Директория не существует, что-то пошло не так.';
    }


    В любом удобном месте HTML кода в Админ-панели, размещаем ссылку:

    <input type="text" value="<?=$result?>" style="width: 100%;" name="admin_patch">
    Ответ написан
    1 комментарий