Задать вопрос
  • Как сделать так, чтобы при добавлении информации в базу использовались сразу все пользователи?

    Adamos
    @Adamos
    Я бы сделал кроме личных сообщений - оповещения (те, которые всем). Можно в той же таблице, просто с нулевым адресатом.
    И к ним дополнительную таблицу - последний id оповещения, которое получил пользователь.
    Все оповещения, которые еще им не были получены, выдаются ему при первом же входе, при этом в таблицу заносится id последнего выданного.
    Хотя им неплохо бы и срок жизни иметь - через год-два смысла в них точно не будет...
    Ответ написан
    Комментировать
  • Какую выбрать структуру данных для многомерной разреженной матрицы?

    Adamos
    @Adamos
    > Массив массивов. Жирный минус: непонятно, как искать и обходить занятые элементы? Организовать полный цикл со стопицциот индексами и проверками на undefined? Оно искать будет до всемирного потопа.

    Вообще-то проход
    for(var index in array) { ... }
    никаких undefined не выдает, будут перебираться только реально существующие ключи и значения. Никакой карты или хэшей здесь явно не требуется - это все реализовано в самом языке.
    Ответ написан
  • Потянет ли данная конфигурация?

    Adamos
    @Adamos
    Блок питания - зачем 500 Вт? Чтобы больше платить за свет? В этой конфигурации и 300 Вт сожрать нечему.
    Материнка - на сколько она дешевле, чем ASUS или Gigabyte на том же чипе? Если разница в 200-300 рублей - лучше на "второй эшелон" не смотреть вовсе, поберечь нервные клетки для будущего.
    Ответ написан
  • Правильно ли ставить таймзону для PHP равной таймзоне пользователя?

    Adamos
    @Adamos
    Для каждого пользователя своя таймзона, да еще и по айпишнику? Бред какой.
    А если он через проксю? А если это айпишник какого-нибудь Мегафона на всю Россию?
    Вам нужен весь этот геморрой?
    Держите все время в Гринвиче и не выдумывайте велосипедов.
    Если его надо показать в поясе пользователя - лучше всего с этим справляется сам браузер - javascript в нем знает реально выставленный на компьютере часовой пояс, а не гадает по IP,
    Ответ написан
    1 комментарий
  • Почему программа зацикливается при переборе?

    Adamos
    @Adamos
    Судоку решается так:
    1. проходим по всей таблице и для каждой ячейки определяем, какие цифры в ней могут быть, по уже имеющимся.
    2. проходим по всем ячейкам. Если там может быть только одна цифра - заносим эту цифру в ячейки и исключаем ее вариант из всех ячеек, которые "бьет" данная. Выставляем флаг "были изменения".
    3. проверяем варианты на всех линиях в поисках единственного места, где может стоять цифра. Если находим такое место - вписываем цифру, "бьем" ячейки, выставляем флаг.
    4. если выставлен флаг "были изменения" - возвращаемся в п. 2
    5. если поле не заполнено полностью, значит, решения нет.
    И никакой перебор с возвратом здесь на хрен не нужен.
    Ответ написан
  • Как заштриховать картинку?

    Adamos
    @Adamos
    Если в img лежит png, в котором "море" белое, а Европа - прозрачная, то свойством background этого img можно творить любые динамические чудеса.
    Ответ написан
  • Как исправить странное поведение group by?

    Adamos
    @Adamos
    select * from `product_options`
    inner join `product_option_values` on `product_options`.`id` = `product_option_values`.`option_id` AND `product_option_values`.`product_id` in (1,2,3)
    group by `product_option_values`.`value`
    Ответ написан
  • Существуют ли универсальный framework на PHP активно использующий ООП для разбора, импорта и экспорта таблиц?

    Adamos
    @Adamos
    Проблема, собственно, не в том, что CMS разные.
    Проблема в том, что Ёксель - это не данные. Это всего лишь таблицы.
    А чтобы "творить чудеса", на вход все-таки нужно получать данные.
    Так что единственный путь, который хоть куда-нибудь ведет - это отбрасывание костылей и исключение Ёкселя из техпроцесса в принципе.
    Пока это не сделано - портянки и головная боль неизбежны.
    Ответ написан
    4 комментария
  • Можно ли обойти антивирус android приложения Сбербанка?

    Adamos
    @Adamos
    Совершенно правильно ругается. SMS-ки и нужны для того, чтобы подтвердить, что какое-либо действие выполнил пользователь.
    Исключив пользователя из этой цепочки, приложение может автоматически сделать, например, перевод со счета пользователя автору приложения...
    Ответ написан
    Комментировать
  • Шифрование пароля от БД на сервере?

    Adamos
    @Adamos
    Серверу все равно понадобится пароль в открытом виде, чтобы обращаться к базе.
    Так что при шифровании пароля придется все необходимое для его расшифровывания держать на том же сервере.
    Получается не безопасность, а профанация.

    Пароль БД не защищают от администратора сервера, его защищают от пользователей веб-сервера. Для этого шифрование не требуется.
    Ответ написан
    Комментировать
  • Как ускорить запрос к базе данных MySQL?

    Adamos
    @Adamos
    Видимо, таким образом, медленно и печально, идет процесс нормализации базы - превращения этого чудища со столбцом на 30-40 элементов в отдельную таблицу фраз и таблицу связей между 1otsev и фразами.
    Но вы маетесь ерундой, дергая таблицы по одной и делая запросы в цикле.
    1. Добавьте UNIQUE индекс на `frase`, и используйте INSERT IGNORE, после этого база сама не даст вставить дубль.
    , как совершенно справедливо посоветовал Rsa97.
    2. Прочитайте ВСЮ таблицу 1otsev и составьте массив фраз, которые должны быть в таблице key, в самом скрипте - не мучайте зря базу, уникальные значения и РНР отличать умеет.
    3. А уже потом этот массив ОДНИМ запросом запихните в таблицу key.
    4. Ну, и после этого можно будет прочесть таблицу key, спокойно пройтись еще раз по 1otsev, для каждой строчки составить данные для таблицы соответствий и опять-таки ОДНИМ запросом записать их. И еще одним - удалить этот дурацкий столбец с перечислением.
    Вряд ли это займет больше часа...
    Ответ написан
    Комментировать
  • Linux или windows под веб-разработку с фреймворком yii2?

    Adamos
    @Adamos
    Менять Windows на Linux не стоит.
    Стоит выкинуть Windows, когда вы уже поймете, что он вам на хрен не нужен.
    Пока этого нет - будут метания, темы на форумах и прочее прожигание времени впустую.
    Ответ написан
    Комментировать
  • Как наити участки кода где идет большая задержка?

    Adamos
    @Adamos
    1. Сделайте отчет не в PhpExcel, а просто в HTML.
    2. Если и он делается долго - проверяйте логику, вставляя сверку microtime.
    3. Когда добъетесь быстрого вывода отчета, сохраните этот HTML в файл с расширением XLS и не связывайтесь со всякими убогими форматами.
    Ответ написан
  • Xорошие статьи про защиту в php?

    Adamos
    @Adamos
    Входящие данные не надо защищать. Их нужно очищать от потенциально опасных включений.
    Если данные пойдут в базу - пропускать их через плейсхолдеры и никогда не включать в запросы "сырые" строки.
    Если данные будут выводиться пользователю - превращать любые символы, используемые в разметке, в HTML-версию этих символов.
    Если данные сохраняются в файлы - убедиться, что в этих файлах именно данные ожидаемого типа и что они недоступны по прямому запросу.
    Ну, и внутренняя логика не должна зависеть от входящих данных - все управляющие элементы должны оставаться на сервере, так как снаружи может прийти все, что угодно. В принципе.
    Конец статьи.
    Ответ написан
    Комментировать
  • Как сравнять много файлов по содержимому?

    Adamos
    @Adamos
    Если хочется наглядности и интерактивности - Meld весьма неплох.
    Ответ написан
    Комментировать
  • Как посмотреть все глобальные переменные прользователя?

    Adamos
    @Adamos
    Просто используйте нормальную IDE, со статическим анализатором, в работе.
    И у вас не будет таких странных желаний.
    Ответ написан
  • Возможно ли в C++ повторное выделение памяти в стеке под переменную?

    Adamos
    @Adamos
    Операция = для компилятора С++ означает "вычислить правую часть и присвоить левой результат вычисления". Что до этого было в переменной, которая была в левой части - не играет вообще никакой роли.
    Ответ написан
    2 комментария
  • Остановить javascript?

    Adamos
    @Adamos
    Ставишь какой-нибудь FireBug, открываешь сайт, смотришь скрипты, ставишь брэкпойнт на эту функцию, обновляешь страничку.
    Вуаля! Скрипт остановился ровно на нужном месте.
    Ответ написан
    Комментировать
  • Как можно это сделать на канвасе или на svg?

    Adamos
    @Adamos
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <svg width="210mm" height="297mm" viewBox="0 0 744 1052">
      <g>
        <path d="m 121.5833,447.91595 c 0,15.82784 16.05723,22.59482 29.70588,22.59482 6.42289,0 13.99273,-1.26164 19.95685,-3.78492 19.26868,-8.14331 26.60913,-24.54463 34.17897,-42.32228 14.22212,-2.63798 34.06428,-16.51602 34.06428,-29.13242 0,-3.44083 -1.83512,-5.50533 -5.73473,-5.50533 -5.96412,0 -13.76334,5.73472 -17.89235,9.86373 -6.3082,-7.79923 -16.17193,-13.30457 -26.95321,-13.30457 -13.41926,0 -24.88872,7.79923 -24.88872,20.07154 0,12.7311 14.45151,19.84216 27.18261,19.84216 2.29389,0 4.35839,-0.34409 6.42289,-0.45878 -10.09312,22.13605 -18.46582,43.35453 -46.91006,43.35453 -10.32251,0 -26.15036,-5.73472 -26.15036,-18.23643 0,-15.13968 15.59846,-25.80627 29.70589,-25.80627 8.60209,0 19.15399,3.32614 19.15399,13.64865 0,11.81354 -11.58415,17.77766 -22.02136,17.77766 -9.97842,0 -14.33681,-3.44084 -14.79559,-3.44084 -0.34408,0 -0.57347,0.22939 -0.57347,0.57347 0,0.68817 6.65228,4.2437 15.59845,4.2437 11.12537,0 23.1683,-7.22576 23.1683,-19.03929 0,-12.15762 -11.81354,-17.20418 -22.25074,-17.20418 -14.79559,0 -30.96752,10.09312 -30.96752,26.26505 z m 45.41903,-43.12515 c 0,-10.89598 10.09312,-17.08949 22.36544,-17.08949 9.17556,0 19.26868,4.70248 25.57688,12.6164 -6.53759,6.76698 -11.81354,14.56621 -15.94254,22.59483 -1.37634,0.34408 -3.44084,0.34408 -5.50534,0.34408 -11.01068,0 -26.49444,-7.11106 -26.49444,-18.46582 z m 71.11061,-9.51965 c 0,12.04293 -18.35112,24.77402 -31.77038,26.72383 2.98205,-6.3082 5.96411,-13.18987 10.66659,-18.9246 2.40858,3.09675 4.01431,6.65229 4.35839,6.65229 0.22939,0 0.45878,-0.1147 0.45878,-0.45878 0,-0.45878 -3.09675,-5.73473 -4.129,-7.11106 3.09675,-4.3584 10.55189,-11.01068 16.17193,-11.01068 2.75266,0 4.24369,1.72042 4.24369,4.129 z" />
        <path style="fill:#000000;fill-opacity:0.5;stroke:none;" d="M 88.572266 252.36133 L 88.572266 655.21875 L 620 655.21875 L 620 252.36133 L 88.572266 252.36133 z M 251.40039 293.49023 L 377.11523 336.34766 L 402.85742 466.64844 L 302.88477 554.0918 L 177.16992 511.23438 L 151.42773 380.93359 L 251.40039 293.49023 z " />
      </g>
    </svg>
    Ответ написан
    Комментировать