• Как установить капчу (желательно 2 версии гугл) между сервером (сайтами) и пользователем?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Скорее всего, это не удастся, т.к. токен гугл-капчи привязывается к конкретному домену.
    Проще - ограничить доступ для всех незарегистрированных, кроме списка ip-адресов/подсетей поисковых ботов.
    Ответ написан
    2 комментария
  • Нужно ли делать проверку получаемых данных в AJAX-запросе?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Зависит от логики конкретного проекта.
    Если данные в базе не валидированы (что довольно странно?!), то нужно.
    Ответ написан
    Комментировать
  • Как победить в олимпиаде по программированию?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Подскажите, пожалуйста, с чего же все-таки именно начать?
    1. Нужно научиться понимать текст и требования задачи.
    2. Находить несколько (а лучше - все возможные) вариантов (алгоритмов) решения поставленной задачи (а их всегда более 1-го), и выбирать наиболее быстрый.
    3. Научиться чётко и по шагам формулировать алгоритм/блок-схему решения (в голове или на бумаге) до начала написания кода в целях экономии времени на отладку кода и при поиске и устранении возможных ошибок.
    4. Научиться чётко и с первой попытки конвертировать алгоритм в код на выбранном языке программирования.

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

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Установите стиль в css:
    pointer-events: none;
    Но лучше, дополнительно блокируйте реакцию сервера при переходах по таким ссылкам (проверяйте на сервере!), если пользователь не авторизован.
    Ответ написан
    Комментировать
  • Как лучше организовать систему уведомлений?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Уведомление - присылает не юзер, а система. Поэтому поле senderUserId - лишнее, как и receiverUserId.

    Полей должно быть всего 5:
    id:uint,
    type:uint,
    userId:uuid,
    isRead:bool,
    created:timestamp

    А кто именно прислал и какое именно уведомление, находим через таблицу типов уведомлений notification_type.
    А там: id и notifycation_table (у Вас их 4. те, что слева).
    Используя id(уведомления), notifycation_table и userId (для кого уведомление), мы находим сразу все подробности нужного уведомления.

    Т.е, поиск ведём от общей таблицы уведомлений в 3 итерации: "погружение" выборки (запрос будет один, разумеется, но выполнится он гораздо быстрее), а не наоборот (как сейчас сделано у Вас).
    Ответ написан
  • Как ускорить PHP FPM?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Блокировка сессий скорее всего у Вас.
    Для группы пользователей "все"/"everyone" - сессий внутри кода обработки быть не должно.
    Проверьте тестом ab на скрипт без сессий.
    А потом - с сессиями (с изменением хотя бы одной сессионной переменной).
    И посмотрите на разницу в скорости обработки.

    Посмотрите на тайминги выполнения запросов/ответов к БД.
    Кэшируйте часто используемые и редко изменяемые данные в памяти (профиль или боковые панели веб-страницы, к примеру) и обновляйте кэш при их модификации (отслеживайте "флагом" с простым запросом в БД, например).
    Ответ написан
    4 комментария
  • Чем грозит регистрация на сайте без защищенного соединения?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Включаете в браузере анонимный режим.
    2. Находите сервис временной почты.
    3. Получаете временный e-mail адрес.
    4. Регитесь с неиспользуемым (вами) паролем.
    5. Скачиваете то, что хотели.
    6. Проверяете антивирусом то, что скачали.
    7. Забываете временный акк на след. день.

    Нужно ещё что-то скачать (не в этот день, а позднее) - повторяете всё с пункта 1.

    PS: Можно использовать tor-браузер для большей анонимности.
    Ответ написан
    Комментировать
  • Формирование зарплаты у веб разработчиков?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Хороший вопрос!
    Я интересовался и получил ряд ответов от самих Заказчиков. Так, сказать, их мировозрение в этом плане.

    Со стороны Заказчиков:
    1. Раз ты работаешь на фрилансе - ты лох, потому, что не смог никуда устроиться.
    2. Если ты фрилансер - ты раб, который зарабатывает, чтобы не умереть с голоду. Поэтому, много тебе и платить не за чем.
    3. Нет гарантий для нас, что ты сделаешь всё на совесть. Мы не понимаем как сделать самим и, при этом, хотим хорошо сэкономить.
    4. (Про время) Мы оцениваем не сложность проекта и твоё умение и опыт, а время, которое никак не может быть дороже медианы фриланса по этому направлению.
    5. Нам нужно быстрее, т.к. это получается дешевле для нас, т.к. мы оцениваем время, а не сложность нашего проекта.
    6. Все фрилансеры низкоквалифицированные рабы.
    7. Каждый, кто мнит себя опытным и будет просить больше, будет сидеть без работы, т.к. высокая конкуренция и есть большой выбор исполнителей на рынке за копейки.
    8. Фриланс - это рабы IT сферы для нашего бизнеса.
    9. Мы всегда ищем тех, кого сможем обмануть в плане оплаты за работу и их почти 100%.
    10. Нам ничего не стоит сбросить сумму оплаты в любой момент сославшись на угрозу отрицательного отзыва.
    11. Мы не дорожим репутацией, в отличие от фрилансеров.
    12. Вы сами ничего не делаете: всё берёте с гитхаба уже готовое. За что вам платить?!

    (и ещё можно продолжать и продолжать...)

    И сразу возникает вопрос:
    Ждать ли роста дохода фрилансеров IT-сферы и когда?
    Ответ прост: когда все IT-шники поймут, что нужно ценить труд друг друга, что они не конкуренты друг другу, а единый целый "организм", который может сам за себя постоять и накормить вне зависимости от места работы и размера дохода.
    Итог: Не нужно работать и "ломать" глаза на тех, кто этого не понимает, а значит, и НЕ ЦЕНИТ!

    А пока разделяйте качество своих трудозатрат на "хлеб" и на "работу" и сразу озвучивайте 2 суммы заказчикам.
    Ответ написан
    10 комментариев
  • Как можно подгрузить числа в масив с websoket?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    const socket = new WebSocket("ws:url");
    arr = [];	
      function startBtn() {   	
        socket.addEventListener('message', function (event) {
          let data   = event.data;
           	pars   = JSON.parse(data);
            values  = pars.value;                               
            Array.prototype.push.apply(arr,values); 
        });
        return false;
      }
    Ответ написан
    2 комментария
  • Как перемешать массив одинаково для всех?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Я задавал похожий вопрос.
    Посмотрите.
    Ответ написан
    Комментировать
  • Как разобраться в теме систем поддержки принятия решений?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    система поддержки принятия peшений в мaлом бизнесе
    Что это вообще за ДИЧЬ?!
    1. "Поддержки" кого или чего?!))
    2. Почему только в малом бизнесе: в чём разница с другими бизнесами?!)))

    И "вишенка на торте":
    На чем она должна основывать свои предложения?
    ответ прост: на неких целевых выводах, построенных на основе неких абстрактных данных, предоставленных тем или чем, кого должна такая система поддерживать!))

    Общий алгоритм: цель (вход) -> список последовательных действий (выход).
    Ответ написан
  • Как проверить наличие слова "цвет" и достать второе слово?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    "Цвет черный" или "Цвет светло-голубой".
    достаточно найти: "черный" или "голубой".
    Таблицу всех названий цветов можно взять на википедии.
    Ответ написан
    Комментировать
  • Как написать функцию hash hmac с алоритмом sha256 на js?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. wiki + руками и головой
    2. Найти готовую js-либу и скопировать нужное из неё к себе в код проекта.
    Ответ написан
    Комментировать
  • Как с гарантией определить, что сайт открыт на смартфоне или планшете?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Через touch-детект.

    И можно добавить ещё проверку ориентации экрана: тут и navigator.userAgent.

    Или так:
    if(window.matchMedia("only screen and (max-width: 760px)").matches) {
    //mobile device
    } else {
    //not mobile device
    }

    Или через проверку наличия гироскопа:
    var gyroPresent = false;
    window.addEventListener("devicemotion", function(event){
        if(event.rotationRate.alpha || event.rotationRate.beta || event.rotationRate.gamma)
            gyroPresent = true;
    });
    Ответ написан
    Комментировать
  • Вопрос из собеседования JavaScript, ответ?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    линк
    Принцип всплытия очень простой.
    Когда на элементе происходит событие, обработчики сначала срабатывают на нём, потом на его родителе, затем выше и так далее, вверх по цепочке предков.
    Ответ написан
    8 комментариев
  • Как решить задачу на C++ быстрее чем за n^2?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Сложность тут линейная: O(n)
    Шифрование/дешифрование - однопроходные.

    При шифровании:
    Слева - сам символ (его код), справа - символ с кодом его позиции.
    (в центре - "смесь")

    Расшифровка - в обратном порядке.

    PS:
    Но чтобы получить номер нода в списке, придется пройтись по списку, а это уже n^2.
    нужно добавить ещё одну грань до куба с векторами смещений.
    Ответ написан
  • Существует ли сервис для отслеживания окончания срока регистрации своих доменов?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Своевременно читать письма от регистраторов на этих почтовых ящиках не получается.
    создайте фильтр уведомлений с пересылкой на отдельный почтовый ящик, а его - подключите там, где удобно хотите отслеживать.
    Ключевые слова фильтра можно задать легко - это ваши домены.
    Ответ написан
    Комментировать
  • Какие есть бесплатные CMS для проведение конкурсов?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Задача: Создать платформу или выбрать CMS
    "ну или, там, создать сервис какой-нить, например, или сайт... да-не важно что: всё равно ж это всё одно и то же... только пишут по-разному..."
    Как-то так, вот и получилось...)))

    Пока видна цель не "сделать качественно", а "сделать нахаляву и быстро".

    Есть масса способов, но я их не буду озвучивать: не вижу смысла ввиду полного невладения предметной областью.
    Посоветую, лишь, аутсорс (или, что ещё хуже, фриланс).
    Ответ написан
    Комментировать
  • Как понять, что идея для сервиса понравиться людям?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Сделать лэндинг и там сделать работающий демо-прототип корневого функционала сервиса, чтобы все могли "пощупать" без регистрации и понять для себя: нужность, необходимость и перспективы использования функционала, удобство и простоту использования, платные дополнительные возможности.

    Если заинтересуются - дать возможность подписки на новости по почте, автоматически проведя ненавязчивую регистрацию с помощью проверки доставки письма.
    Ответ написан
    Комментировать
  • Как отправлять контент подписчикам по подписке?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Гуглите email bridge to im-chats.
    Ответ написан
    Комментировать