Задать вопрос
  • Как сделать кнопку читать далее?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Целых три варианта:
    1. DIV+CSS: overflow: hidden (по клику - убираем свойство hidden через JS)
    2. Jquery: api.jquery.com/load (грузим с сервера динамически)
    3. NewPage (делаем переход на полную версию публикации)
    Ответ написан
    1 комментарий
  • Что почитать об архитектуре приложений и фреймворков на php?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Проблема в том, что сам язык я знаю, но совершенно не имею представления о правильной архитектуре приложений на php.
    Касательно веб-сайта: базовая архитектура и все этапы разработки: https://sitecoder.blogspot.ru/p/blog-page_23.html
    Ответ написан
  • Что вкладывается в понятие "портфолио"?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Портфолио - это Ваши работы, которые должны продемонстрировать потенциальному Заказчику/работодателю: на что Вы способны как специалист в данной сфере.

    Судя по вопросу, Вы хотите заниматься front-end'ом.
    Можете создавать шаблон на любом хостинге, включая https://github.com или surge.sh для демонстрации Заказчику реальной "живой" вёрстки.
    Чтобы посмотреть, ему не нужно будет что-то скачивать: он просто перейдёт по ссылке, которую вы ему дадите в своём портфолио с картинкой на эту работу.
    Ответ написан
    Комментировать
  • Почему PHP скрипт занял всё место на диске?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Классический stackoverflow.
    Сдаётся мне, что "раздуло" своп из-за использования стандартных PHP-функций на нестандартных объёмах данных. Т.е. алгоритм не рассчитан на работу с входными данными такого объёма.
    Ищите: где у Вас bottleneck-функция в коде алгоритма.
    Ответ написан
  • Как полиция ищет людей по аккаунтам в социальных сетях?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    С помощью вот этого:
    m_158454.jpg
    Но простым смертным можно и так: sitesputnik.ru
    Ответ написан
    Комментировать
  • Как правильно и лучше написать поясняющий текст и как лучше его воспримет человек?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Деревья
    ---------
    1. Высадка деревьев - однократно
    2. Поливка деревьев - ежедневно
    3. Забота и уход за деревьями - постоянно

    Нужно, чтобы:
    1. для людей: читать было мало, а смысла было - много.
    Желателен сохранённый порядок действий (как я написал выше).
    2. для ПС: входили все нужные SEO-ключи
    Ответ написан
    2 комментария
  • Как присвоить переменным все элементы массива?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    json_decode и дальше можно так
    Ответ написан
    Комментировать
  • Какой принцип создания упрощенной физики в игре?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Самый реальный: читать оф. документацию.
    Максимально просто: держите карту всех непроходимых статичных объектов, включая стены, в памяти и проверяйте возможное пересечение до перемещения. Если есть пересечение - укорачиваем вектор перемещения до непосредственного пересечения с объектом и перемещаем туда объект.
    Вопрос в том, что если будут движущиеся непроходимые объекты, то проверять пересечения придётся все равно геометрически и радиально, высчитывая вписывание круга (шара) в многоугольник (многогранник). Поэтому это - "велосипед". Стандартные средства "движка" - справятся однозначно быстрее.
    Ответ написан
    Комментировать
  • Как забанить по Ip или домену Конкурента?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Усложнить парсинг - способов масса:
    1. Запретить просмотр исходного кода материала со всех IP, кроме поисковиков.
    2. Для остальных - отображать материалы единым целым изображением с водяными знаками или использовать JS-обфускацию с таймером-задержкой при подгрузке контента статьи для определения автоматического парсинга, а также следить за событием выделения и копирования текста на странице.
    3. Можно раскидывать текст по слоям, но это достаточно сложно сделать с сохранением адаптивности шаблона.
    4. Можно изображения резать по диагонали или как угодно и загружать по слоям.
    5. Можно делать частичное наполнение, чтобы получить индексацию по ключам.
    6. Можно использовать умышленно разный язык, чтобы буквы разного языка выглядели бы одинаково, а затем - незаметно после парсинга конкурентом, заменять всё на нормальные (нужного языка). В итоге - у него будет для ПС - говноконтент)
    7. Можно ключи текста заменить местоимениями или писать антонимы.

    Т.е. задача: чтобы конкурент делал больше работы по обеспечению SEO, чем Ваша система в автоматическом режиме. Только тогда он поймет, что тратит больше времени и это бессмысленно делать с Вашим сайтом.
    Ответ написан
    24 комментария
  • Возможно ли создать программу сортировщик ютуба?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    так вроде он ща так и делает....
    Ответ написан
  • Как реализовать смену фона SVG?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Самое простое - сделать такой эффект через спрайт-анимацию.
    https://www.kirupa.com/html5/sprite_sheet_animatio...
    Ответ написан
    Комментировать
  • Старт проекта в регионе или по всей России?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Тут только 3-й путь:
    1. на всю страну и сразу с сегментацией по населённым пунктам и с возможностью их дальнейшего добавления пользователями (название, положение на карте и узнаваемый графический образ: герб города, чем славится место: культурное место/сооружение/постройка (башня, кремль, монастырь и т.п.)/мануфактура/и т.д. в "шапку").
    2. Возможность указания разных типов зон, где была утеря вещи:
    • площадь (многоугольник),
    • вдоль заданного пути на местности с коридором шириной N метров,
    • в метро на перегоне от станции A до станции B.

    3. Возможность гео-позиционирования для удобного выбора ближайшего населённого пункта к месту утери и самой точки утери.
    Ответ написан
    Комментировать
  • Почему происходит Refresh?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Заменить
    "index?p=$id_q"
    на
    "?p=$id_q"
    Ответ написан
  • Как максимально обезопасить от взлома переписку по Email с контрагентами?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Защита от "взлома" почтового аккаунта:
    1. Разрешите вход только с подсетей Вашего провайдера, где Вы снимаете почту.
    2. "Сильный" пароль
    3. Используйте двухфакторную аутентификацию
    4. Если сервер Ваш - можете использовать авторизацию по сертификату.

    Шифрование переписки:
    1. Свой почтовый сервер с поддержкой SSL/TLS
    2. Web-"морда" с почтовым интерфейсом и SSL/TLS шифрованием трафика.
    Сервис проверки: www.checktls.com
    Ответ написан
    1 комментарий
  • Как выбрать все классы, которые содержат определенное свойство?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Ответ в "лоб": regex.
    1. Если заменить интервал - можно обычной заменой по всему файлу.
    2. Если что-то еще - нужен уже итеративный подход: поиск+редактирование.
    Ответ написан
    2 комментария
  • Почему я не могу подключится к IRC серверу?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Ответ написан
    Комментировать
  • Система контроля входящего трафика на Windows?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    но - как я узнаю эти IP, какие есть программы для мониторинга входящего трафика.
    вопрос был про поведенческий фильтр, однако никто этого не понял.
    Действительно, найти хороший и бесплатный поведенческий фильтр под винду - сейчас проблема.
    1. Однако, есть схема "зеркалирования" порта на выделенную машину-арбитр для оценки трафика и "отбивки" сигнала блокировки/разблокировки на iptables на серверную машину (установка правил соединений).
    Т.е. эта система будет выступать в роли "охранника" для Вашего сервера.
    2. Если речь идёт ТОЛЬКО о OpenServer-портах, то можно настроить ту же систему на самой windows, мониторя лог обращений к web-серверу, анализируя его и прописав определенные правила, открывать или закрывать доступы.
    3. Можно делать мониторинг на основе prepend_file=... через php.ini, чтобы наиболее удобно записывать все обращения и затем анализировать их.

    Самый простой триггер:
    1. IP не является из диапазона подсетей поисковых роботов (или одним из их IP)
    И
    2. IP не находится в Вашей стране
    И
    3. Запросы к первым 3-м разным страницам происходят с интервалом менее 3-х секунд =>можно сразу блокировать по выделенному диапазону сети провайдера перманентно (не забудьте про сервисы анализа web-страниц, которыми Вы возможно будете пользоваться - они должны быть в белом списке).
    Ответ написан
    Комментировать
  • Как сделать скриншот с помощью JavaScript?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    мне нужно заскриншотить img без изменения и выложить на этой же странице
    что мешает по событию onload взять копию объекта и отобразить в другом img на этой же странице?
    Ответ написан
    Комментировать
  • Как расшифровать файл javascript?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    /** @type {Array} */
    var _0x6e0a = ["random", "floor", "\n", "URL GOTO=http://ad-social.org/in/earn?soc=in&type=like", "SET !TIMEOUT_STEP 0", "TAG POS=1 TYPE=A ATTR=CLASS:openTask<SP>btn&&ONCLICK:openTask*;&&HREF:javascript:;", "WAIT SECONDS=5", 'SEARCH SOURCE=TXT:"404 Not Found"', "TAB CLOSE", 'SEARCH SOURCE=TXT:"\u0417\u0430\u043a\u0430\u0437 \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d... \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043e\u043d \u0443\u0436\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d, \u043b\u0438\u0431\u043e \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d \u0438\u0437-\u0437\u0430 \u043d\u0430\u0440\u0443\u0448\u0435\u043d\u0438\u0439, \u043b\u0438\u0431\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u0438\u043c\u0435\u043d\u043d\u043e \u0412\u0430\u043c\u0438. "',
        "ONDIALOG POS=1 BUTTON=OK CONTENT=", "WAIT SECONDS=1", "TAG POS=1 TYPE=A ATTR=CLASS:skip-task-btn&&HREF:javascript:;", "WAIT SECONDS=2", "SET !TIMEOUT_STEP 15", 'SEARCH SOURCE=TXT:"\u00a9 2016 Instagram"', 'SEARCH SOURCE=TXT:"\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0434\u0430\u043d\u043d\u0430\u044f \u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430."', "TAG POS=1 TYPE=A ATTR=TXT:\u041d\u0440\u0430\u0432\u0438\u0442\u0441\u044f",
        "WAIT SECONDS=", "URL GOTO=http://ad-social.org/in/earn?soc=in&type=follower", "TAG POS=1 TYPE=BUTTON ATTR=TXT:\u041f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u044c\u0441\u044f"
    ];
    /**
     * @param {number} opt_attributes
     * @param {number} expectedNumberOfNonCommentArgs
     * @return {?}
     */
    function getRandomInRange(opt_attributes, expectedNumberOfNonCommentArgs) {
        return Math[_0x6e0a[1]](Math[_0x6e0a[0]]() * (expectedNumberOfNonCommentArgs - opt_attributes + 1)) + opt_attributes;
    }
    var n = _0x6e0a[2];
    for (;;) {
        iimPlayCode(_0x6e0a[3]);
        /** @type {number} */
        i = 0;
        for (; i < 6; i++) {
            e = iimPlayCode(_0x6e0a[4] + n + _0x6e0a[5]);
            if (e < 0) {
                iimPlayCode(_0x6e0a[6]);
                break;
            }
            z0 = iimPlayCode(_0x6e0a[4] + n + _0x6e0a[7]);
            if (z0 > 0) {
                iimPlayCode(_0x6e0a[8]);
                iimPlayCode(_0x6e0a[3]);
            }
            z = iimPlayCode(_0x6e0a[4] + n + _0x6e0a[9]);
            if (z > 0) {
                iimPlayCode(_0x6e0a[8]);
                iimPlayCode(_0x6e0a[10] + n + _0x6e0a[11] + n + _0x6e0a[12] + n + _0x6e0a[13]);
                iimPlayCode(_0x6e0a[3]);
            } else {
                iimPlayCode(_0x6e0a[14] + n + _0x6e0a[15]);
                z1 = iimPlayCode(_0x6e0a[4] + n + _0x6e0a[16]);
                if (z1 > 0) {
                    iimPlayCode(_0x6e0a[8]);
                    iimPlayCode(_0x6e0a[10] + n + _0x6e0a[11] + n + _0x6e0a[12] + n + _0x6e0a[13]);
                    iimPlayCode(_0x6e0a[3]);
                }
                iimPlayCode(_0x6e0a[4] + n + _0x6e0a[17]);
                iimPlayCode(_0x6e0a[18] + getRandomInRange(3, 5));
                iimPlayCode(_0x6e0a[8]);
                iimPlayCode(_0x6e0a[18] + getRandomInRange(15, 20));
                iimPlayCode(_0x6e0a[3]);
            }
        }
        iimPlayCode(_0x6e0a[19]);
        /** @type {number} */
        i = 0;
        for (; i < 6; i++) {
            e = iimPlayCode(_0x6e0a[4] + n + _0x6e0a[5]);
            if (e < 0) {
                iimPlayCode(_0x6e0a[13]);
                break;
            }
            z0 = iimPlayCode(_0x6e0a[4] + n + _0x6e0a[7]);
            if (z0 > 0) {
                iimPlayCode(_0x6e0a[8]);
                iimPlayCode(_0x6e0a[19]);
            }
            z = iimPlayCode(_0x6e0a[4] + n + _0x6e0a[9]);
            if (z > 0) {
                iimPlayCode(_0x6e0a[8]);
                iimPlayCode(_0x6e0a[10] + n + _0x6e0a[11] + n + _0x6e0a[12] + n + _0x6e0a[13]);
                iimPlayCode(_0x6e0a[19]);
            } else {
                iimPlayCode(_0x6e0a[14] + n + _0x6e0a[15]);
                z1 = iimPlayCode(_0x6e0a[4] + n + _0x6e0a[16]);
                if (z1 > 0) {
                    iimPlayCode(_0x6e0a[8]);
                    iimPlayCode(_0x6e0a[10] + n + _0x6e0a[11] + n + _0x6e0a[12] + n + _0x6e0a[13]);
                    iimPlayCode(_0x6e0a[19]);
                }
                iimPlayCode(_0x6e0a[4] + n + _0x6e0a[20]);
                iimPlayCode(_0x6e0a[18] + getRandomInRange(3, 5));
                iimPlayCode(_0x6e0a[8]);
                iimPlayCode(_0x6e0a[18] + getRandomInRange(15, 20));
                iimPlayCode(_0x6e0a[19]);
            }
        }
    };
    Ответ написан