• Почему список не отчищается?

    @Alex_At_Net
    Обращайтесь, помогу - https://t.me/codecraft_phd
    потому что list и list_1 указывают на разные списки.

    Можете проверить, добавив точку остановки на преверяющий if в делегате:

    btn.onClick.AddListener(()=>{
      if (list == list_1) { // breakpoint
        // log "=="
      } else {
         // log "!="
      }
      list_1.Clear();
    })
    Ответ написан
  • Возможна ли фикстура для отката БД после каждого теста?

    @Alex_At_Net
    Обращайтесь, помогу - https://t.me/codecraft_phd
    Соединение к базе, конечно, надо шарить. Иначе вы действительно открываете транзакцию в одном соединении, а тестируете в другом.

    Другая проблема, которую вы упомянули, это наложение тестов друг на друга. Использование транзакций, в теории, создает версии таблиц, которые индивидуальны для соединения. На практике, более-меннее сложные изменения требуют блокировки таблиц - в результате транзакции все равно будут тормозить друг друга.

    Я бы решал это проблему через несколько версий тестовой базы (database pool). Когда тест начинается, ему назначается база и открывается транзакция (если есть возможность шарить соединение), либо просто база ресетится на начальное состояние через скрипт инициализации.

    Таким образом, тесты работают паралельно и независимо.
    Ответ написан
    Комментировать
  • Для чего нужен nodejs?

    @Alex_At_Net
    Обращайтесь, помогу - https://t.me/codecraft_phd
    самое простое объяснение: node.js - это exe-файл `node.exe`, который выполняет инструкции из .js файла. Запускать из коммандной строки:

    node.exe server.js

    Инструкцией в JS файле может быть: создать web-server, который на запрос /users возвращает HTML строку со списком пользователей.

    server.js файл может быть таким:

    require('http').createServer((req, res) => {
        res.writeHead(200, {'Content-Type': 'text/plain'});
        res.end('Привет!');
    }).listen(3000, () => { });


    express - это набор функций (в примере выше require, createServer - вызовы функций), которые упрощают написание правил "запрос -> генерация ответа". Посмотрите на примеры: https://expressjs.com/en/starter/hello-world.html

    хост-провайдер, в данном случае, предоставляет машину, с windows или linux, на которой можно запустить node.exe с приведенным server.js. Хост провайдер, в отельной системе, настраивает так, что запросы www.mysite.com направляются на эту машину, на её 3000 порт.

    php - это, в большинстве случаев, модуль Web-server-а. В терминах этого примера, php - это функция, которой передается php файл, а на выходе - строка результата. Например:

    require('http').createServer((req, res) => {
        res.writeHead(200, {'Content-Type': 'text/plain'});
        res.end(php('c:\\projects\\app\\main.php')); // вызов PHP
    }).listen(3000, () => { });
    Ответ написан
    7 комментариев
  • Как отправить форму используя fetch, обработать в php и вернуть ответ?

    @Alex_At_Net
    Обращайтесь, помогу - https://t.me/codecraft_phd
    `e` в данном случае - объект события. `FormData` ожидает HTML элемент FORM. Попробуйте взять `e.target`.

    let callBack = new FormData(e.target);
    Ответ написан
    Комментировать
  • Как запускать C# на сайте?

    @Alex_At_Net
    Обращайтесь, помогу - https://t.me/codecraft_phd
    C# работает на сайте точно также как и PHP - код, который вы вставляете в HTML разметку, выполняется на сервере и его результат как-бы заменяет собой код на странице. Соответственно, что бы также сделать с C#, как вы делали с PHP, сервер должен это поддерживать. Технологии, которые надо искать на хостере: ASP.NET или .NET core.

    Вот посмотрите, этот туториал: https://www.w3schools.com/asp/webpages_intro.asp

    Если будут еще вопросы, срашивайте.
    Ответ написан
    1 комментарий
  • Как автоматически парсить новые твиты?

    @Alex_At_Net
    Обращайтесь, помогу - https://t.me/codecraft_phd
    Вот сюда: https://developer.twitter.com/en/docs/twitter-api

    Пример того, что вы спрашиваете: https://github.com/iamstarkov/get-tweets
    Ответ написан
    Комментировать
  • Почему с ошибкой обрабатывается символ пробела в Javascript-е?

    @Alex_At_Net
    Обращайтесь, помогу - https://t.me/codecraft_phd
    рискну предположить, что пробелы в WScript.Shell.Run играют такую же роль, какую они играют в cmd - разделение параметров коммандной строки. Попробуйте использовать кавычки для экранирвания, т.е.

    mshta javascript:new(ActiveXObject)('WScript.Shell').Run('"'+decodeURIComponent(escape('%1'.substr(9)))+'"'),window.close()
    Ответ написан
    1 комментарий
  • Как правильно распарсить страницу на c#?

    @Alex_At_Net
    Обращайтесь, помогу - https://t.me/codecraft_phd
    В общем случае решение этой задачи можно сделать только с помощью OCR (optical character recognition): рендерите страницу и скармливаете её OCR движку. На выходе получаете некий процент (близкий к 100%) распознанного текста.

    Все остальные частные случаи - это простой HTML парсинг + исключения для каждого конкретного сайта или CMS. Если захватывается скрипт - удали script теги из документа перед тем как брать текстовый контент. И т.д.
    Ответ написан
    Комментировать
  • Как работать с интерпретатором V8 для JavaScirpt?

    @Alex_At_Net
    Обращайтесь, помогу - https://t.me/codecraft_phd
    Посмотрите https://codeforces.com/blog/entry/10024?locale=ru и https://codeforces.com/blog/entry/77741

    readline(), похоже, просто читает строку из stdin. Следующий вызов читает следующую строку.
    Ответ написан
    Комментировать
  • Почему не работает код?

    @Alex_At_Net
    Обращайтесь, помогу - https://t.me/codecraft_phd
    Ваш код выглядит правильно. Я думаю, что лучше всего будет пропробовать распечатать запрос. Например, сохраните его в файл или в лог. Проверьте, что запрос с WHERE корректно собрался.
    Ответ написан
    3 комментария
  • Как исправить ошибку при добавлении SQL в таблицу?

    @Alex_At_Net
    Обращайтесь, помогу - https://t.me/codecraft_phd
    Конечно много. Экранируйте кавычки или используйте другие окаймляющие кавычки. Например для MySQL можно написать так:

    Update dle_post Set xfields = xfields + '||cou....'  Where id = '23285';


    Также кавычки можно экранировать двойной кавычкой:

    Update dle_post Set xfields = xfields + "||country1|<a href=""/countr..."  Where id = "23285";
    Ответ написан
    4 комментария
  • Почему не происходит JS memory leak?

    @Alex_At_Net
    Обращайтесь, помогу - https://t.me/codecraft_phd
    JS язык со сборкой муссора. Когда неспользуемые объекты удаляются, удаляется весь граф. Наличие циклических ссылок не приводит к memory leaks. Что бы от возник должен быть именно путь от одного из roots к объекту.
    Ответ написан
  • Cоставить sql запрос?

    @Alex_At_Net
    Обращайтесь, помогу - https://t.me/codecraft_phd
    Используйте альясы:

    create table Table1 (Code int, Field1 int, Field2 int);
    create table Table2 (Code int, names varchar(255));
    insert into Table1 values (1, 1, 2);
    insert into Table1 values (2, 2, 1);
    insert into Table2 values (1, "names1");
    insert into Table2 values (2, "names2");
    
    select t2a.names, t2b.names from Table1 t1, Table2 t2a, Table2 t2b
    where t1.Field1 = t2a.Code and t1.Field2 = t2b.Code;
    Ответ написан
  • Как реализовать такой "калькулятор*?

    @Alex_At_Net
    Обращайтесь, помогу - https://t.me/codecraft_phd
    Решать через if - самое правильное в этом случае. 3 переменных по 3 пункта - это всего 27 комбинаций. Если на каждую написать свой if, то работоспособность гарантирована. Предположу, что вы попробовали оптимизировать и свернуть некоторые if-ы и допустили ошибку. Тогда просто достаточно её исправить. Если же вы уверены, что ошибки нет (и её действительно нет), то эту задачу, увы, решить алгоритмически не представляется возможным :-)
    Ответ написан
    Комментировать
  • Как отослать несколько запросов к БД MySql в одном get-запросе?

    @Alex_At_Net
    Обращайтесь, помогу - https://t.me/codecraft_phd
    Вы можете сделать следующий запрос из результата предыдущего:

    app.get('/', function(req,res) {
        connection.query('SELECT ...', function (err, rows1) {
            if (err) throw err;
            connection.query('SELECT ...', function (err, rows2) {
               if (err) throw err;
               res.render('index', {menu: rows1, articles: rows2});
           });
        });
    });


    Есть и другие механизмы: promises, async/await, async.js.

    База и запрос, как на мой взгляд, норм.
    Ответ написан
    Комментировать
  • Функция которая переводит число в миллионы?

    @Alex_At_Net
    Обращайтесь, помогу - https://t.me/codecraft_phd
    Что-то вроде такого:

    function test(value) { return value / 1000000; }
    Ответ написан
    Комментировать
  • Как найти минимальную последовательность из n элементов, сумма которых была бы >= x, даже если вычесть из последовательности любые k элементов?

    @Alex_At_Net
    Обращайтесь, помогу - https://t.me/codecraft_phd
    Из формулировки вопроса, как мне кажется, эта задача должна решаться аналитически.
    Почему все n элементов не могут быть равны x / (n - k)? Тогда удаление любых k даст x.
    Ответ написан
    Комментировать
  • Как научиться писать абстрактный код?

    @Alex_At_Net
    Обращайтесь, помогу - https://t.me/codecraft_phd
    Я могу посоветовать во время написания кода думать о тестировании - как именно написать unit test на конкретную функцию. Или как написать тест, который эмулирует некоторый процесс, в котором участвует несколько элементов. Если в приложении используется UI или DB, то как оттестить без них? К чему это приведет - к тому, что вы будете думать о коде как совокупности агентов или некоторых функций с низкой связностью. Т.е. каждую из них можно абстрагировать, подменить, отрефакторить и т.п.
    Ответ написан
    Комментировать
  • Как сделать лучше реализовать двойной запрос?

    @Alex_At_Net
    Обращайтесь, помогу - https://t.me/codecraft_phd
    Если я правильно понял, на основе пользовательского ввода надо получить записи из базы. При этом если в вводе несколько одинаковых чисел, то записей надо получить по количеству этих чисел. Даже если это возможно, то это очень неоптимально, т.к. данные в этих строках будут абсолютно одинаковые. Намного проще получить данные из базы и потом перестроить в нужную структуру в коде.

    Что касается возможности сделать это одним запросом... Ну можно сделать нечто похожее на один запрос: если база поддерживает batch queries, то можно несколько запросов добавить в одну строку и отправить. Ну или хранимую процедуру сделать. Про существование механизма, который бы на основе успешности выборки сделал insert одним запросом - не слышал никогда
    Ответ написан
    1 комментарий
  • Как вернуть значение из модуля?

    @Alex_At_Net
    Обращайтесь, помогу - https://t.me/codecraft_phd
    Надо использовать такой-же паттерн, который реализован в функции MongoClient.connect(...):

    function insertChat(url, callback){
      MongoClient.connect(url,options, function(err, client){
        ...
        collection.findOne(function(err, result){
          ...
          callback(res);
        });
      });
    }
    
    database = require('./dbtest.js');
    var urlDb = 'mongodb://localhost:27017/chat';
    insertChat(urlDb, result => console.log(result));
    Ответ написан