Задать вопрос
  • Подойдет для простого букинга?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Для ООООЧЕНЬ простого букинга с большой натяжкой.

    Не вижу собсно отелей (или он будет один? Тогда это не букинг, а бронирование в отеле)

    Не вижу типов комнат (возможно это сайт бронирования конкретной квартиры покомнатно?)

    Эмоунт - это деньги? Тогда тип флоат не подходит.

    Что за фючеред_имэйдж? еще и интежер...

    Где опции в номере? Или в комнатах квартиры все удобства на улице и это где то отдельно текстом прописано?

    Короче пока на 2 с плюсом...
    Ответ написан
    6 комментариев
  • На чем лучше делать ML-движок/модель - на Python или C++? Где библиотек больше и т.п.?

    @dmshar
    Если вы не понимаете преимущества и недостатки этих языков именно в задачах ML, а кроме того, вы в одну кучу намешали "ML-движок" и "ML-модель" , то это просто означает что у вас (и вашей команды) знания в области ML реально нулевые. В таком случае писать самостоятельно "ML-движок" я бы вообще поостергся. Как вам уже посоветовали - нанимайте людей, которые имеют соответствующую экспертизу, они и на ваши вопросы вам ответят. Опыт в программировании и опыт в ML - это близкие, но совершенно различные скилзы.
    P.S. Про вопрос - а ЗАЧЕМ самостоятельно писать "ML-движок" - я вообще умолчу.
    Ответ написан
    1 комментарий
  • Не удается получить дочерний элемент родителя, в чем проблема?

    mizutsune
    @mizutsune
    I will live forever in the flame of your eyes.
    Свойство children хранит в себе псевдомассив дочерних элементов. Дочерними элементами считаются все теги, которые непосредственно расположены внутри блока. Подробнее можно прочитать в документации.

    Ну, а так... интересная конечно строка:

    var parent = this.closest('div').className;

    Как вы думаете что содержит в себе переменная parent? HTMLElement или строку содержащую селектор класса выбранного элемента?

    В общем правильнее сделать так:

    const parent = this.closest('.parent-selector');
    const child = parent.querySelector(".b24-form-control-label");


    И вообще, пора бы уже использовать const/let вместо устаревшего var.
    Ответ написан
    Комментировать
  • Выбор архитектуры: web или desktop?

    @rPman
    Web - на два порядка проще (читай дешевле) для разработки за счет повышенного требования ресурсов на клиентской стороне.

    Десктоп - возможно создание очень эффективных приложений но за счет очень дорогой поддержки всего разнообразия устройств и операционных систем (в веб этим занимается браузер и даже в этом случае приходится напрягаться)

    И главное, из веб приложения достаточно легко (например с помощью electron) можно сделать десктопное приложение.

    p.s. как бы я не нелюбил веб, который тянут даже туда где не надо, но его плюсы неоспоримы а страдающие клиенты от тормозов приложений, требующих топовое железо для простого чата... кто нас слушает?

    Кстати, один момент, тормозные веб приложения это не потому что веб такой плохой, это потому что разработчики ленятся делать все как следует. Рынок заполонили низкокачественные разработчики на основе веб. Помни об этом!
    Ответ написан
    Комментировать
  • Существует ли программа, отслеживающая изменения на заданных страницах сайтов?

    @As56
    Это самому написать легко
    Ответ написан
    Комментировать
  • Как можно с помощью js css, сделать линии на сайте, которые будут следовать за курсором?

    JRK_DV
    @JRK_DV
    Рецепты https://codepen.io/jrkdv/full/LKLXdq
    на указанном сайте в отдельном js файле подключается функция "initOciliator" она и создаёт анимацию
    https://codepen.io/jrkdv/full/qBYYPyw
    изменил оригинальную функцию на 200 строке, добавил смену цвета
    Ответ написан
    7 комментариев
  • Почему везде используют const вместо let в JS?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Редактор кода домой не отпустит, пока переменную, которую нигде не изменяют,
    не объявить вместо let — const )

    Иммутабельность должна быть явной!

    При чтении кода гораздо удобнее для понимания изначально знать, что от константы сюрпризов не ждать.
    А переменную стоит посмотреть внимательнее: где, как, зачем и на что меняют.
    Ответ написан
    Комментировать
  • Как отфильтровать ненужные записи?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Object.values(data)
      .flatMap(({ person }) => Object.values(person))
      .filter(({ age }) => age === 18)
    
    // [ { name: "alex", age: 18 } ]
    Ответ написан
    2 комментария
  • Как подменить IP при раздаче с роутера?

    REZ1DENT3
    @REZ1DENT3
    web-developer
    Поднимаешь в РФ VPN (или арендуешь VPS в РФ) и подключаешься к нему на роутере. Заворачиваешь только необходимый трафик на роутере/пк в этот VPN.

    Те, тебе в любом случае нужен мост к серверу в РФ, чтобы ходить через него на необходимые сервисы.
    Ответ написан
    1 комментарий
  • Как скопировать текст из iframe в переменную js?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Если в iframe загружена страница с того же origin (протокол + домен + порт) откуда загружена текущая - то Вы имеете полный доступ к его window через свойство contentWindow. Соответственно можете обращаться к его DOM, глобальным переменным, менять их и т.д.

    Если в iframe будет страница с другого origin, то ничего этого нет, с ней можно лишь общаться через postMessage api, но если страница не Ваша, то и скрипт для обработки postMessage + каких-либо еще действий Вы туда не вставите.

    Если сторонний сайт отдает нормальные CORS заголовки при запросе с Вашего сайта (что судя по вопросу не так, но все же), то можно скачать страницу как текст через fetch api и распарсить ее через DOMParser.

    В противном случае остается только делать прослойку у себя на сервере, тут простор фантазии может быть очень широким, от банального reverse proxy прямо в nginx до чего-то более умного на любом серверном ЯП.
    Ответ написан
    Комментировать
  • Как сочетать BEM и динамический контент?

    qfox
    @qfox
    Ответы есть у меня
    У вас здесь 2 проблемы:
    • нужны ли классы для динамического контента;
    • как, если нужно, модифицировать структуру динамического контента.

    Проблема структуры не относится к BEM, она относится к семантике и SEO.

    Если же не смотреть на структуру и тэги (использовать ли small внутри или span, заворчивать ли в article) — то вопрос в сущности нужны ли классы на динамическом контенте или нет. Учитывая, что контент динамический, и нет необходимости иметь классы на тэгах, то допустимо сделать каскад на тэги от некоторого блока: например, dynamic-content или content, text.

    Почему именно теги? Потому что WYSIWYG по умолчанию генерирует теги. Но вы можете использовать какие-то доп. инструменты, которые подправят итоговый html, расставят классы и т.д. (например, с помощью инструментов типа https://github.com/posthtml/posthtml ).

    При необходимости можно дополнительно пометить стили тегов классами.

    <div class="text">
      <h1>Caption <small>Some Foo Bar</small></h1>
      <article>
        <p>Lorem ipsum...</p>
        <div class="text__p">Dolor sit...</div>
      </article>
    </div>


    .text h1, .text__title { /* main title styles */ }
    .text h1>small, .text__sub-title { /* sub-title styles */ }
    .text p, .text__p { /* paragraph styles */ }


    Таким образом вы инкапсулируете все пользовательские стили в одном месте (одном блоке) и не имеете проблем с созданием контента.
    Ответ написан
    2 комментария
  • Как пользоваться BEM?

    Machinez
    @Machinez
    1) Всё верно.

    2) В стилях блока мы описываем только его внешний вид, внутренние отступы и т.д, блок не знает где он находится и какой его размер, позиционировать можно элементы.
    к примеру у нас есть блок авторизации в хедере
    <header class="header">
      <div class="header__auth">
        <div class="auth">
          <div class="auth__item"></div>
          <div class="auth__item"></div>
        </div>
      </div>
    </header>

    в .header__auth мы описываем положение и размер элемента, в .auth описываем внешний вид.

    3) Только класс элемента, но бывают исключения, например используя модификаторы иногда можно воспользоваться каскадом.

    4) Может, называете точно так-же как и другие элементы
    пример:
    <ul class="props__list">
        <li class="props__item">
            <span class="props__label">Weight:</span>
            <span class="props__value">128</span>
        </li>
    </ul>

    хорошие примеры можете посмотреть тут

    5) Не совсем понял вопроса.

    6) cf = clearfix, общепринятый класс, используется как исключение из правил БЭМа, хотя и не приветствуется. Для интерактивности и щелчков нужно использовать модификаторы.
    пример:
    <a class="button button--is-active">click me</a>
    Ответ написан
    2 комментария
  • Без bem поддержка проекта сложна?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Системный подход должен быть, неважно какой. Если есть прослеживаемая система - поддерживать можно.
    Лично мне БЭМ больше импонирует. Но это скорее потому, что я чаще всего с ним работаю.
    Ответ написан
    Комментировать
  • Как разослать всем уведомление, не циклом?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Делаете составной уникальный ключ (`user`, `ho`) , после чего всё сводится к двум запросам
    INSERT INTO `mail` (`user`, `to`, `text`, `time`)
      SELECT 2, `id`, :text, :time
        FROM `users`
        WHERE `id`  != 2;
    
    INSERT INTO `contacts` (`user`, `ho`, `delete`, `time`)
      SELECT *
        FROM (
          SELECT `id`, 2, 0, :time
            FROM `users`
            WHERE `id` != 2
          UNION ALL SELECT 2, `id`, 0, :time
            FROM `users`
            WHERE `id` != 2
        ) AS `t`
      ON DUPLICATE KEY UPDATE `delete` = 0, `time` = VALUES(`time`);

    А вообще, какой-то жуткий легаси у вас. Библиотека mysql_ уже давно почила в бозе.
    Ответ написан
    31 комментарий
  • Как через os/exec запустить сторонний exe файл в GoLang?

    При использовании exec.Command, первым аргументом там всегда исполняемый файл, а дальше идет перечисление аргументов, которые этому исполняемому файлу будут передаваться. Причем, их не надо экранировать.

    Несколько примеров:
    path := `c:\Program files\some program\program.exe`
    // аналогично вызову в консоли start "c:\Program files\some data"
    cmd := exec.Command("start", path)
    ......
    
    // аналогично вызову в консоли "c:\Program files\some program\program.exe"
    cmd := exec.Command(path)
    ......
    
    // аналогично вызову в консоли some_prog.exe -flag1 value1 -flag2 value2
    cmd := exec.Command("some_prog.exe", "-flag1", "value1", "-flag2", "value2")
    ......


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

    Кстати, если вам просто нужен полный ответ команды stdout+stderr, можете использовать метод cmd.CombinedOutput(). Он выполнил программу, дождется ее завершения и вернет полностью то, что она писала в консоль.
    Ответ написан
    7 комментариев
  • Почему тут не нужен return?

    nazares
    @nazares
    Software Engineer
    потому что return в цикле прервет цикл после первой же совпадении условия и в итоге посчитает только самый первый делитель его же и вернет.

    function getDivisorsCnt(n){
        let counter = 0
        for (let val=1; val<=n; val++){
          if (n % val === 0 ){
            counter +=1
          }
        }
      return counter;
    }
    console.log(getDivisorsCnt(12))
    Ответ написан
    1 комментарий
  • Как реализовать поставленную задачу?

    sHinE
    @sHinE
    веб-разработчик, php/js/mysql и сопутствующее
    Регуляркой вырезаете количество секунд.
    Создаёте промис.
    Делаете таймаут на резолв промиса с переданным именем через полученное количество секунд
    Возвращаете промис.

    Я бы как-то так сделал.
    Ответ написан
    1 комментарий
  • Как вернуть результат промиса в переменную?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Ответ написан
    Комментировать
  • Как спарсить подобный сайт?

    fenrir1121
    @fenrir1121
    Начни с документации
    Как спарсить подобный сайт?
    Подобный чему?

    Сайт может блокировать аккаунты на несколько часов, что и происходит примерно через 30 минут парсинга.
    Что за операции, что вам не хватает 30 минут?

    Сначала пробовал работать через api сайта.
    Демонстрируйте код.

    Логинился в селениуме, получал заголовки и делал запросы на нужную мне информацию
    Так через api или селениум, вы определитесь.

    Можно ли попытаться выдать селениум хром за сафари на iPhone, и есть ли вообще в этом смысл?
    Вы сами пишите что парсинг возможен только из под аккаунта и блочится аккаунт. Очевидно сайту все равно сколько устройств вы имитируете, если аккаунт один и тот же.
    Ответ написан
    3 комментария
  • Какой курс по пентестингу выбрать?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    https://training.csilinux.com/

    в форумах и телегах посмотри промо, чтобы бесплатно было, если вдруг он платный
    Ответ написан
    2 комментария