• Как загрузить на httpS сайт скрипт с другого сайта, который не httpS?

    @Fixid
    Nginx proxy_pass и подключать по локальному адресу.
    Или выкачать его на свой сервер к своим ресурсам
    Ответ написан
    Комментировать
  • Php, какая цель использование регулярных выражений?

    copist
    @copist
    Empower people to give
    Ответ на вопрос очень легко гуглится. Это настолько популярная тема, что написано уже килотонны материалов на всех языках. Есть предположение, что Sergey0808 получил вопрос на собеседовании и решил не парить голову. Но судя по ответам, тут только много весёлых ребят, которым нечем было занять пятничный вечер :)



    Практические примеры:
    • Проверка валидности URL, имейла, чисел, даты, времени
    • Поиск URL, email, дат, времени в заданном тексте
    • Удаление HTML тегов или иных шаблонных фрагментов, не несущих ценности
    • Обрамление URL, имейла, числа, даты, времени дополнительными HTML тегами, к которым позже с помощью JS добавляются виджеты URL, email, календарь. Например - открыть URL в другом окне, добавить в календарь событие на дату
    • Разбиение строки на части с замысловатым разделителем
    • Работа различных шаблонизаторов основана на замене регулярных конструкций с помощью preg_replace_callback. Например {{ var }} -> <?php echo $var ?>
    • Маршрутизация URL в серверных фреймворках - какой код выполнить в зависимости от URL. Например если на сервер пришёл запрос /admin/user/edit/1 - то выполнить код из модуля Admin класса UserController метода editAction с входным параметром "1"

    Ответ написан
    Комментировать
  • Как периодически менять содержимое буфера обмена?

    @Otrivin
    junior full-stack сисадмин
    Можно велосипедом на экселе :-S

    Создается лист, в ячейки вбиваются фразы.
    Пишется макрос, который раз в заданный промежуток времени проходит по ячейкам сверху вниз и копирует их содержимое в буфер.

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

    Moskus
    @Moskus
    Запустить VLC из командной строки, скормив ему нужный файл и добавив опции --video-filter=motiondetect для включения фильтра детектора движения, по вкусу - --rate= для скорости воспроизведения, ну и -vv >logfile.txt - для вывода сообщений в текстовый лог, который потом предстоит изучить.
    Ответ написан
    5 комментариев
  • Как обрабатывать данные в случае, если может придти массив объектов или просто объект?

    Сделайте что-то типа:
    input = Array.isArray(input) ? input: [input];
    // дальше работаем с input как с массивом
    Ответ написан
    5 комментариев
  • Зачем шифровать скрипты, например PHP с помощью ionCube 9?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    А если серьезно, то это у них вроде ускоряет загрузку скриптов. Что-то типа компиляции в байт-код.

    маркетинг шит 146%
    не может быть быстрее при как минимум еще одной обработке сверху в видел модуля для запуска закодированного кода. Ресурсов наоборот больше сожрёт, скорость в лучшем случае не упадёт.

    Объясните, зачем он? Когда применяется? Приведите реальный пример.

    когда продаешь самохостящийся продукт на php в котором есть проверка лицензии или просто супер гениальные алгоритмы которые не хочется раскрывать. Чаще конечно никаких гениальных вещей там нет и шифруют только ради проверки лицензии и отключения софта когда лицензия кончилась.

    Как правило все версии(кроме самых самых свежих) любого шифровальщика относительно легко раскрываются с помощью гугла/форумов DeZender'ов или даже онлайн сервисов.
    Вскрытие не всегда бесплатно естественно и не всегда прокатывает(точность не 100% при восстановлении, суть уловишь, но исходиники будут не рабочие).
    Суть вскрытия в удалении/обходе проверки лицензии.
    Т.к. особо там ничего не придумаешь, то проверка лицензии это зачастую просто запрос на сайт продавца из разряда
    $license_ok = file_get_contents("http://shopcms.com/check_license.php?domin=customer.com");
    if($license_ok) {
    //ok
    } else {
    die("Pay for license");
    }


    Поэтому обходится примерно так:
    Без изменения оригинального кода и работой с зашифрованынми исходниками(в случае если расшифровать не удалось до конца, но суть проверки лицензии понятна)
    1. Заворачиванием сайта продавца на локалхост с вечной лицензией. (прописать в hosts файл)
    2. Подменой глобальных переменных($_SERVER) чтобы проверялся домен на котором есть лицензия. (вставить в index.php или другое место где исходники открыты)

    Если исходники расшифровались правильно и работают
    3. Выпиливанием проверки лицензии из исходников.

    Лень искать, а точнее поиска нет по овтетам, но уже писал.
    Я считаю что шифрование никак не увеличит продажи или защитит от мамкиных хакеров.
    Кто очень хочет - он будет ломать, в случае неудачи просто не будет пользоваться.
    Кто адекватный - будет платить в любом случае за СЕРВИС/ОБСЛУЖИВАНИЕ. Т.е. получать обновления и поддержку разработчиков.

    ОЧЕНЬ много скриптов лежат взломанные или ходят по рукам массово, но я не видел чтобы разработка хоть сколько-то хорошего продукта после этого прекращалась или закрывалась по финансовым причинам.
    Даже думаю это положительно сказывается на продкуте и его клиентах какой никакой пиар.

    Возможно даже можно сравнить с борьбой с пиратами.
    Закрывают торренты, видео сайты, судятся из-за "упущенной прибыли".
    При этом продолжают снимать и прибыли только растут с годами.
    Никто так и не доказал что раздача кинца/игор на торренте равняется потери прибыли.
    И опять же даже наоборот помогает некоторым продуктам увиличивать аудиторию.

    PS. Забыл решение написать грамотное по моему мнению.

    1. Если у вас действительно супер-пупер секретный алгоритмы которые никто не знает или может повторить.
    Использовать исключительно модель SaaS или производить вычисления через ваш сервер(но продукт всё равно будет стоять на сервере клиентов).

    2. Если никаких алгоритмов взлома гугла/пентагона/игил/телеграма там нет.
    Просто отдавать открытые исходники для работы.

    3. Если вы пишите очень плохой код и вам стыдно или хороший код, но вы жадный.
    Используйте SaaS.
    Технологии позволяют привязать домен клиента к вам, создать ему отдельное рабочее пространство(виртуалку/сервер) и всё что только придумать можно.
    Ответ написан
    4 комментария
  • Зачем шифровать скрипты, например PHP с помощью ionCube 9?

    @Eugeny1987
    Работаю с HostCMS
    ionCube нужен для защиты вашего кода от правок, нелегального использования и т.д.
    Ответ написан
    2 комментария
  • Временное убежище на случай падения хостинга?

    @BorisKorobkov
    Web developer
    Поскольку хост стоит 100 рублей в месяц -- платить за временное решение хочется меньше.

    Если вы оцениваете результат вашей работы (сайт) дешевле 100 руб/месяц, значит, ваша работа - полный трэш. Такое никто и не заметит, если сайт упадет. Так что можно и не париться.
    А если ваша работа стоит сотни тысяч рублей, то жмотиться сотни рублей - это нищебродство
    Ответ написан
    5 комментариев
  • Что должен знать senior frontend developer?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Я бы сказал, что ответ Александр Вульф тянет скорее на крепкого middle. Senior еще должен как минимум писать юнит-тесты, знать git на уровне git rebase --interactive и git push --force-with-lease, иметь практическое знакомство с TypeScript или Flow, и на базовом уровне разбираться в ООП и ФП паттернах (не совать синглтоны куда не надо, соблюдать SOLID, отличать хотя бы фабрику от фасада, узнавать трансдьюсер и т.п.).
    Ответ написан
    3 комментария
  • Как работать с булевыми методами?

    devellopah
    @devellopah
    d - это NodeList (список узлов), не имеющий метода hasAttribute()

    попробуй так (es5 версия)
    var tags = ['div', 'span', 'ul', 'li', 'p', 'script', 'h1', 'h2'];
    var forEach = Array.prototype.forEach
    
    tags.map(function(tag) {
      var list = document.querySelectorAll(tag);
    
      forEach.call(list, function(el) {
        el.className && console.log(el.className)
      })
    })
    Ответ написан
    2 комментария
  • Как вы управляете своими серверами?

    SSH доступы хранятся в файле ~/.ssh/config – там прописаны ip, username и пр. Например:
    Host vs1
            HostName  123.123.122.122
            User root
            Port 35693
    Host vs2
            HostName  123.123.125.125
            User root
            Port 39674


    Алиасы эти стараюсь давать сообразно проекту / назначению машины. И подключение выглядит просто: ssh vs1

    Но при большем числе коробок в парке надо будет искать какое-то более «умное» решение – чтобы быстро определять, у какого провайдера какая коробка, какой конфиг, тариф, не прозевать оплату, оптимизировать стоимость, оптом управлять сразу несколькими коробками.

    Надо будет разобраться с Ansible.
    Ответ написан
    2 комментария
  • Каким образом можно изменить стандартный запрос на сохранение к базе в Laravel?

    abler98
    @abler98
    Software Engineer
    В модель:
    protected $primaryKey = 'mac';
    public $incrementing = false;


    И как можно так говнокодить на laravel?

    Примерно так можно сделать:
    Networkcard::where('mac', $request->get('mac'))->update($request->all());
    return redirect()->back(); // Думаю это подойдёт

    В модели определить $fillable (поля для быстрого обновление)
    Ответ написан
    6 комментариев
  • Как исправить ошибку js для OPERA?

    У стрелочных функций нет поддержки в Opera.

    Используйте Babel. Дело не в jQuery.
    Ответ написан
    Комментировать
  • PHP: Почему Class not found если use в другом файле?

    dubr
    @dubr
    пыхарь
    Почитайте доку для разнообразия.
    Неймспейсы и директивы use работают на уровне файлов. То есть use связывает полное имя с кратким/алиасом только в том файле, где его написали.
    Ответ написан
    Комментировать
  • Как правильно составить регулярное выражение?

    dubr
    @dubr
    пыхарь
    * влияет на предыдущий символ. Ваша регулярка ищет символы: "n" (1 шт), "i" (1 шт), "c" (0 и более шт).

    Зачем вам тут вообще регулярка - не понимаю, по ощущениям скорее всего надо делать как-то иначе =) Если таки хочется получить регуляркой часть после nic (если я правильно понял ход мысли), то как-то так:

    <?php
    preg_match("~^nic(.+)$~", "nic0000-0000-0000", $matches);


    В $matches будет
    array (
      0 => 'nic0000-0000-0000',
      1 => '0000-0000-0000',
    )


    А, ну вот GTRxShock воспроизвел примерно то же самое, пока я писал =) Его вариант ловит цифры и дефис после nic в любом месте строки. Мой - все, что после nic, если строка начинается с nic. Какой лучше - хз, надо смотреть на ваши строки =)
    Ответ написан
    5 комментариев
  • Что означает модификатор default() в Laravel - Migrations?

    Sanasol
    @Sanasol Куратор тега Laravel
    нельзя просто так взять и загуглить ошибку
    непонятное для новичка описание.

    в гугл транслейт забанили

    default - стандартное
    value - значение

    если в запросе вообще не указывать этот столбец то будет проставлено сатндартное значение.
    $column2->default('nothing to do here');

    insert into table (`column1`) values ('value1'); // column2 = nothing to do here
    Ответ написан
    6 комментариев
  • Node.js(как вариант для хранения временных данных)?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    В БД (или быстрый кэш, типа Redis). Причин несколько:
    • Ваше приложение может упасть. Игрокам не понравится, если у них вдруг пропадут карты. БД тоже падают, но вероятность этого гораздо меньше (у них больше разработчиков и тестеров).
    • Массивы в памяти не масштабируются. Положим, пару десятков одновременных партий в памяти держать можно, но когда счет пойдет на тысячи, это будет жрать RAM, плюс тормоза на GC. А БД можно вынести на отдельный сервер и даже на отдельный кластер.


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

    У меня дискретной математики не было, но решал бы так. Есть утверждения:
    Л: Пс Бд
    П: Лс Бд
    Б: Лс Пе

    Найдём пару утверждений из которых один оба раза сорвал, другой оба раза сказал правду. Поскольку утверждения Л-П связаны через Бд, а П-Б через Лс, остаётся пара Л-Б – кто-то из них оба раза правда, другой оба раза ложь.

    Ложное утверждение обозначу с воскл. знаком (логическое НЕ) – например, !Лс.

    Итак, один раз соврал и один сказал правду, выходит, Пончик: П: !Лс Бд

    Чтобы Лс было ложным, надо так же сделать ложными утверждения Б. Значит, Б оба раза соврал, а Л оба раза сказал правду:
    Л: Пс Бд
    П: !Лс Бд
    Б: !Лс !Пе

    Итого, точно знаем: Пс и Бд. Остаётся Ле.
    Ленчик – ель; Пончик – сосна; Батончик – дуб.

    upd. Таблица истинности так составляется?
    Л П Б  Пс Бд  Лс Бд  Лс Пе
    0 1 2  0  0   1  1   0  1  конфликт Бд и Лс
    0 2 1  0  0   0  1   1  1  конфликт Бд и Лс  
    1 0 2  1  1   0  0   0  1  конфликт Бд
    2 0 1  0  1   0  0   1  1  конфликт Бд и Лс
    1 2 0  1  1   0  1   0  0  ОК
    2 1 0  0  1   1  1   0  0  конфликт Лс

    Переменные три: истинность утверждений каждого персонажа. Три возможных состояния: 0 – оба раза соврал, 1 – оба раза правда, 2 – соврал-правда. Дальше раскрываем их значение по каждому из утверждений (0 ложь, 1 истина). Во всех вариантах, кроме одного возникают логические конфликты.
    Ответ написан
    Комментировать
  • Можно ли вернуть деньги, списанные регистратором доменных имен?

    Скорее всего оспорить покупку с 1and1 не получится – у них юристы, мелкий текст и формально они окажутся правы. Попробуйте через Сбербанк оспорить платёж по карточке – сходите в отделение.

    Возможно, с вас сразу сняли за 5 лет обслуживания домена: $0.99 за первый год и по $15 за 4 следующих. Вы сноски смотрели? Например, на главной у них привлекательные цены на домены:
    c7f0300fa57643d7ad734546f5810c34.png
    Но рядом мелкие цифры, а внизу страницы неприметная ссылка, раскрывающая блок с разъяснениями:
    bbc43530860242a6b75ac839dfae06e2.png
    "Payable in advance" (оплачивается вперёд) вполне может означать, что вперёд аж за 5 лет оплачивается сразу.

    Ещё ниже про 1–6 пишут:
    f778ba32ed6244f0a7428d47595df3e2.png – вы же российской карточкой платили, значит, на вас, вне "US territories", этот оффер не распространяется. Первичный платёж в $1 – просто проверка работоспособности карточки.

    В их правлах (Terms & Conditions, T&C) про возврат денег значится, что по доменам они ничего не возвращают: 5e7e14b8fb8c4ddfb33abb251d8febb4.png

    Так что, либо через Сбербанк отменяйте транзакции без подтверждения, либо, увы, «наслаждайтесь» доменами.
    Ответ написан
    Комментировать