• Как правильно показывать колонки flexbox вне родительского ряда?

    maralov
    @maralov
    фронт-джун
    Во флексах вы не можете из одно контейнера переместить элементы в другой контейнер
    В ваше примере нужно или переделать структуру или гриды или JS выдергивать кнопки и помещать их в другой контейнер (https://habr.com/ru/post/502028/) или оставить как есть дублировать в хедере кнопки в целом допустимо
    Ответ написан
  • Обязательно ли переносить наклейку Windows 10 OEM с коробки на компьютер?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Я знаю, что OEM лицензия для сборщиков ПК
    Именно. Вы не можете получить доступ к ключу не открыв конверт. Открывая же его вы принимаете лицензию для сборщиков.
    1. Определения.
    ...
    f. «Cборщик систем» — это изготовитель оборудования, сборщик, восстановитель или предустановщик ПО, реализующий Пользовательскую систему (системы) третьему лицу.
    2. Авторизованное распространение и принятие.
    Чтобы распространять программное обеспечение из Пакета, вы должны быть Сборщиком систем и принять условия этой лицензии. Открывая этот Пакет, вы принимаете настоящую лицензию. Если вы решили не принимать настоящую лицензию, немедленно верните нераспечатанный Пакет дистрибьютору. Вы можете распространять нераспечатанные Пакеты только на своей территории. Сведения о территории, в отношении которой вы имеете право на распространение, см. на веб-сайте www.microsoft.com/oem/sblicense/territory. Вы можете возвращать только Пакеты, которые не открывались.
    То есть, вы имеете право купить или собрать компьютеры и установить на них OEM-windows, но после этого обязаны продать эти компьютеры. Использовать их для себя будет нарушением лицензии.
    Что касается наклеек, то тут опять же действует лицензия для сборщиков.
    6. Наклейка сертификата подлинности («COA»).
    Наклейка COA должна быть нанесена на переднюю, заднюю, боковую или верхнюю панель корпуса Пользовательской системы. Если Пользовательской системой является ноутбук или планшетный компьютер, COA должна быть нанесена на нижнюю панель Пользовательской системы.
    Ответ написан
  • Как вернуть setTimeout?

    dollar
    @dollar
    На чёткий вопрос - чёткий ответ.
    let is_paused = false;
    const timeout = setTimeout(() => {
      if (is_paused) return;
      console.log("timeout!");
    }, 1000);


    Тогда снимать и возвращать таймер можно просто:
    is_paused = true; //снять
    is_paused = false; //вернуть


    А вот это вообще не имеет смысла:
    const fn = () => timeout;
    Потому что timeout - число (номер таймера). Так что fn() всегда будет возвращать некую числовую константу, которую можно получить и так, обращаясь непосредственно к timeout, которая не меняется. То есть timeout - не ссылка на объект таймера, а просто число.

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

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    xdebug+phpstorm (или другая ide, но со штормом лучше). Один раз надо отмучаться и разобраться, дальше будет легче. В качестве API клиента - Postman (там можно настроить, чтобы запрос из него активировал xdebug)
    Ответ написан
  • Как сделать считывание с input и вывод в output на C#?

    Casper-SC
    @Casper-SC
    .NET программист
    using System;
    using System.IO;
    
    namespace InputOutputExample
    {
        class Program
        {
            static void Main(string[] args)
            {
                string inputFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "input.txt");
                string outputFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "output.txt");
    
                using var input = new StreamReader(File.OpenRead(inputFile));
                Console.SetIn(input);
                
                using var output = new StreamWriter(File.OpenWrite(outputFile));
                Console.SetOut(output);
    
                string line = null;
                while ((line = Console.ReadLine()) != null)
                {
                    Console.WriteLine(line);
                }
            }
        }
    }


    5f539743c3eec503656175.png

    5f53974b97194787313157.png
    Ответ написан
  • SQL-инъекция. Могли бы подсказать, что можно сказать об этом?

    @FanatPHP
    Чебуратор тега PHP
    Бояться надо не тех запросов, которые вернули 500, а тех, которые вернули 200.

    500 означает что атака не прошла.
    То что ты здесь видишь - это не инъекция, это попытки, проверка на инъекцию. Неудачные.
    Удачные ты здесь не увидишь.

    В принципе, то что код возвращает 500 - это тоже косяк. Это значит что код кривой и потенциально там может быть инъекция. Ну или не может - не видя кода сложно сказать.

    Двигаться в нправлении нанять специалиста
    Ответ написан
  • SQL-инъекция. Могли бы подсказать, что можно сказать об этом?

    DevMan
    @DevMan Куратор тега Базы данных
    да, это выглядит как инъекция.
    но, если это прост сохраняется/выводится и НЕ имеет непосредственного влияния на базу, то беспокоится особо не о чем.
    кроме анализа откуда такое прилетает и блокировки, если возможно.
    Ответ написан
  • Годен ли уже сейчас Blazor для крупных проектов в интернете?

    @relov
    Разрабатываю на c#
    Использую blazor wasm + asp.net core в нескольких проектах (админки и пет проект), проблем нет. единственный минус это относительно большой размер приложения (клиенту при первой загрузке приложения нужно выкачать около 3 мб рантаймов + клиентский код, в последствии они закешируются. Частично решить эту проблему можно включив сжатие на вебсервере, использовать линкер, который удалит неиспользуемый код из релиз сборки, использовать отложенную загрузку). так же есть возможность серверного предрендринга, тогда страница загрузится моментально, после чего в фоне выкачаются рантаймы и приложение инициализируется. подробнее можно почитать тут https://medium.com/@srpeirce_67604/server-side-ren...
    Ответ написан
  • Битрикс загибается?

    И да и нет.
    Битрикс 24 как продукт компании куда как интересней и развивает он его явно активнее чем просто битрикс
    НО б24 сделан на битрикс так что полное вымирание ядра явно не грозит.
    Но кризис на лицо.
    Так же нужно понимать что рынок битрикс сужается
    снизу теперь его поджымают конструкторы, а в топе самопись.
    так же как вы заметили обратная совместимость битрикс дает о себе знать, на их месте я бы уже давно отказался от поддержки обновлений начиная с 7 версии, это же маразм никто в жизне не будет поднимать 7 битрикс до 20.
    Но политика партии, скорее всего все прийдет к тому же что и у php рано или поздно отказавшись от старого кода написав все заново, но время ввода D7 на рынок говорит то том что эта стратегия была провальна, выводить технологиию 10 лет это даже не смешно.
    Так же нужно понимать что у разрабов битрикса уже сложилось свое мнение.
    К примеру разговаривая с Садониным я спросил у него собираются ли они как-то изменять "эрмитаж" на что они сказали что он работает заебись, и никаких изменений не требуется!!!!
    Дада Вот это убожество по их мнению в 2020 совершенно нормально работает.

    В общем
    - Да интерес битрикс к битрикс падает в следствие б24
    - обратная совместимость делает невозможность сделать действительно достойный релиз.
    - застой технологии как таковой. С появлением kubernetas рано или поздно битрикс должен или перебраться полностью в облако или издохнуть или найти 3 путь, как и остальные движки.
    - Судьба php на данный момент находится ровно в той же позиции что и битрикс, оно все еще доминирует на рынке веба но есть куча мощьнейших конкурентов которые не дремлят.
    + Битрикс де факто еще является стандартом екомерц в РФ , и по факту его заменить тупо нечем.
    Делать проект с бюджетом в 1-10 млн на самописи это маразм, так что тут битриксу замены нет.
    В топовом сегменте битрикс никогда и не использовался, за исключением собственно чистого екомерц да и то как исключение.
    Ответ написан
  • Как обработать клик по каждому Counter-у в каждом дочернем компоненте?

    0xD34F
    @0xD34F
    Храните значения count отдельно в каждом экземпляре Child.

    Или все вместе в Parent, и передавайте их в Child вместе с функцией, которая будет устанавливать новое значение.
    Ответ написан
  • В чем разница между 1fr и auto?

    MykolaPetiukh
    @MykolaPetiukh
    Директор кафе
    auto занимает ширину исходя из своего контента.
    fr — исходя из оставшегося места
    Ответ написан
  • Что изучить для удаленной работы с нуля без перспектив офиса?

    CityCat4
    @CityCat4
    Если я чешу в затылке - не беда!
    Ничего. Ну в смысле ничего не получится :(

    Огромная, чудовищная, невероятная конкуренция, которая сейчас в связи со всей этой байдой - только усилилась. "Миллионы индусов" - это не оборот, это реальность. И не только индусов - миллионы людей пашут в веб-программировании как макаки за пачку доширака. Вы уверены, что сможете их обойти при том, что общаться голосом с заказчиком Вы не сможете? (А составить текстовый документ - для некоторых людей это подвиг, равный победе Геракла над Немейским Львом и Лернейской Гидрой, вместе взятыми - я знаю отличных спецов, которые блистательные проектировщики, но спасуют перед служебкой из трех строк).
    А на удаленку джунов не берут - как его контролировать и кто будет отвечать за сорванный дедлайн? Хотя сейчас, опять же со всем этим жутким бардаком, может и берут...
    Если Вы в РФ - обратитесь в службу занятости. Есть такая вещь, как инвалидская квота для работодателей.
    Ответ написан
  • Какая разница между CURLOPT_COOKIEFILE и CURLOPT_COOKIEJAR в curl?

    glebovgin
    @glebovgin
    Full Stack Web Developer
    CURLOPT_COOKIEJAR - файл, куда пишутся куки после закрытия коннекта, например после curl_close()
    CURLOPT_COOKIEFILE - файл, откуда читаются куки.

    Так что используйте оба параметра, не ошибетесь.
    Но вообще документация - сильная штука.
    Ответ написан
  • Как передать куки вторым запросом в cUrl?

    OAPrilepa
    @OAPrilepa
    web developer
    Старый код, логинимся и получаем куки в строку:
    // Отправка POST запроса с получением печенек:
    function send_post_get_cookie($URL='', $PostData=Array(), $cookie='')
    {
        // Отсекаем пустые вызовы:
        if (strlen($URL)<=0) return false;
        // Скопировал строку из FireBug:
        $ua = 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.13) Gecko/20101203 MRA 5.7 (build 03796) Firefox/3.6.13';
        // Инициализация объекта:
        $ch = curl_init($URL);
        // показывать заголовки (в них куки):
        curl_setopt($ch, CURLOPT_HEADER, 1); 
        // не показывать тело страницы (для экономии траффика):
        curl_setopt($ch, CURLOPT_NOBODY, 1); 
        // это чтобы прикинуться браузером:
        curl_setopt($ch, CURLOPT_USERAGENT, $ua);
        // можно ставить еще вот это, если удаленный сервер проверяет:
        // curl_setopt($ch, CURLOPT_REFERER, $URL);
        curl_setopt($ch, CURLOPT_POST, 1);
        // включение полей POST в запрос:
        curl_setopt($ch, CURLOPT_POSTFIELDS, $PostData);
        // если нужны печеньки, установим:
        if (strlen($cookie)>0)
            curl_setopt($ch, CURLOPT_COOKIE, $cookie);
        // тормозим стандартный вывод:
        ob_start();
        // запускаем запрос:
            curl_exec ($ch);
            curl_close ($ch);
            // получаем заголовки в массив:
            $headers = explode("\n", ob_get_contents());
        ob_end_clean();
        // выдираем строку печенек:
        for ($i=0, $cnt=count($headers); $i<$cnt; $i++) 
            if (strpos($headers[$i], 'Set-Cookie:') !== FALSE)
                $cookie .= substr($headers[$i], strpos($headers[$i], 'Set-Cookie:')+strlen('Set-Cookie:')); 
        // и возвращаем результат:
        return $cookie;
    }


    А потом используем ее в других запросах, к примеру загружаем файл после авторизации:
    // Сохранение файла с удаленного хостинга:
    function save_get_file($URL='', $cookie='')
    {
        if (strlen($URL)<=0) return false;
        $filename = $_SERVER['DOCUMENT_ROOT'].'/upload/tmp/'.date('YmdHis_').rand(99,9999999).'.tmp'; 
        $fp = fopen($filename, 'w');
        if (!$fp)
            return false;
        else
        {
            $ua = 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.13) Gecko/20101203 MRA 5.7 (build 03796) Firefox/3.6.13';
            $ch = curl_init($URL);
            curl_setopt($ch, CURLOPT_USERAGENT, $ua);
            curl_setopt($ch, CURLOPT_FILE, $fp); // чтобы выгрузить в файл;
            if (strlen($cookie)>0)
                curl_setopt($ch, CURLOPT_COOKIE, $cookie);
            curl_exec ($ch);
            curl_close ($ch);
            return $filename;
        }
    }
    Ответ написан