• Вопрос про LocalStorage, почему?

    @VadimFox
    Не актуально =)
    В setCartData не передаете данные (Параметр "O")


    Вы упустили перед записью получение уже записанных данных и добавление их в массив, таким образом вы просто записываете новую информацию по верх старой.

    я понял - он же данные не видит после обновления а конечно как если он не получает, их поэтому и пишет заново.
    @Вячеслав Коростин
    Ответ написан
    Комментировать
  • Вопрос про LocalStorage, почему?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    setCartData();

    похоже, корзинку-то забыли. Сохраняется пустота.
    spoiler
    наверное, надо так:setCartData(pay);
    Ответ написан
    1 комментарий
  • Почему transition работает так нестабильно?

    wapster92
    @wapster92 Куратор тега CSS
    Для таких целей нужно использовать событие transitionend, а не setInterval. По твоему сценарию скорее подойдет setTImeout. Но тоже могут возникнуть проблемы.
    Ответ написан
    Комментировать
  • Как в данном примере значения попадают в лямбда-функцию?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    multiplier возвращает список return [...] из 4 элементов, каждый элемент которой - лямбда-функция

    >>> multiplier()
    [<function multiplier.<locals>.<listcomp>.<lambda> at 0x10aa5b620>, <function multiplier.<locals>.<listcomp>.<lambda> at 0x10aa5b510>, <function multiplier.<locals>.<listcomp>.<lambda> at 0x10aa5b598>, <function multiplier.<locals>.<listcomp>.<lambda> at 0x10aa5b840>]


    Мы по нему итерируемся, в цикле присваивая параметру m эти лямбда-функции:
    >>> m = lambda x, i=0: i*x
    >>> m(2)
    0
    >>> m = lambda x, i=1: i*x
    >>> m(2)
    2
    ...

    лямбда осуществляет замыкание переменной i
    и передаем недостающий параметр x в лямбду
    Ответ написан
    5 комментариев
  • В каких областях сейчас используются такие языки как VB.NET и Turbo Pascal?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Турбопаскаль может использоваться в образовательных целях. Проекты которые сейчас, пишут на Дельфи.

    VB.NET вполне может использоваться внутри, где уже есть какая-то внутренняя система на базе .Net.
    Редко нужен чистый VB.Net разработчик, обычно это совмещено с ASP.net, MS SQL, C#. Работа - в поддержке текущего легаси, интеграция с различным другим софтом.
    Но публичные серьезные сервисы на VB.net не делают, делают на .Net, C#
    Ответ написан
    Комментировать
  • В каких областях сейчас используются такие языки как VB.NET и Turbo Pascal?

    @evgeniy_lm
    Из названия понятно, что VB.NET используется там же где и С#.
    Turbo Pascal последний раз обнавлялся в 1994 году и с 1996 года официально не поддерживается (читай использование не рекомендуется). Сейчас TP крайне редко используется в школах и ВУЗах преподами информатики которым далеко за 70 и их более молодыми коллегами которые в школе по информатике имели 3- и более ни где.
    В принципе если вы не плохо владеете ТР то можете воспользоваться его современным аналогом Free Pascal, а для разработки оконных приложений существует IDE Lazarus. Правда за 25 лет очень многое изменилось и на FP приложения пишутся совсем иначе чем на ТР, хотя синтаксис похожий и даже более менее сохранена совместимость
    Ответ написан
    Комментировать
  • Как проверить двумерный массив на наличие в нем одномерного массива?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Сделаем функцию, которая проверяет равенство содержимого двух массивов - сравниваем длины, затем проверяем, что каждый элемент одного массива равен элементу с тем же индексом в другом массиве:

    const isEqual = (a, b) =>
      a.length === b.length && a.every((n, i) => Object.is(n, b[i]));

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

    const includes = (arrs, search) =>
      arrs.some(n => isEqual(n, search));

    Всё: console.log(includes(array, [ 21, 81 ]));.
    Ответ написан
    Комментировать
  • Как определить, от какой именно формы приходит post-запрос, если форм на странице несколько?

    @iddqda
    network engineer, netdevops
    еще можно отправлять разные формы в разные route
    или отправлять не браузером, а JS и напихать в запрос чего угодно чтоб отличать

    document.getElementById("myForm").addEventListener('submit', (event) => {             
            const data = new FormData(event.target);
            data.append('formname','myform');
    
            fetch("/formproc", {
                method: 'POST',                                            
                body: data
            })
            .then((response) => response.text())
            .then((data) => {
                console.log(data);            
            })
            .catch((error) => {            
                console.log(`error: ${error}`);
            });
            event.preventDefault();  // если не нужно перегружать страницу
        })
    Ответ написан
    Комментировать
  • Как лучше обыграть валидацию форм, если на странице 2 формы?

    @iddqda
    network engineer, netdevops
    во первых валидацию можно написать на js
    document.getElementById("myForm").addEventListener('submit', (event) => {        
            const data = new FormData(event.target);
            if(!formValid(data)) {
                  event.preventDefault();  // отменяем action формы
                  return;
            }
    })


    а во вторых можно не перегружать страницу
    точно так же сделать свой обработчик на submit
    в нем fetch post (ajax умер давно)
    document.getElementById("myForm").addEventListener('submit', (event) => {             
            const data = new FormData(event.target);
            fetch("/register", {
                method: 'POST',                                            
                body: data
            })
            .then((response) => response.json())
            .then((data) => {
                // тут рисуешь алерты в DOM
            })
            .catch((error) => {            
                console.log(`fetch.post response came up with an error: ${error}`);
            });
            event.preventDefault();
        })

    а со стороны фляги
    if request.method == 'POST':               
       data = request.form
       ok, err = validateForm(data)
       if not ok:
           return jsonify(err)
       DoRegisterUser(data)
       return redirect(url_for(index))


    в третьих если все же хочется оставить валидаторы wtf то просто надо сохранить состояние карточки
    для этого при переворачивании карточки добавить/убрать бит в cookie
    а при перезагрузке страницы прочитать этот бит и повернуть карточку нужной стороной
    https://www.w3schools.com/js/js_cookies.asp

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

    @Che603000
    c 2011 javascript
    Как запомнить положение карточки до перезагрузки страницы?

    Cамое простое решение - использовать sessionStorage. Запишите состояние страницы. (какая сторона карточки активна). Тогда Вы можете получить это состояние после перезагрузки и показать нужную сторону.

    const stateCard = localStorage.getItem('card');  // получить активную сторону карты
    if(stateCard === 'register'){
     // сделать активной регистрацию
    } else {
     // сделать активным вход
    }
    ...
    function onSubmit(){
       localStorage.setItem('card', 'register'); // установить активную сторону карты
       ....
    }


    док sessionStorage
    https://developer.mozilla.org/ru/docs/Web/API/Wind...
    Ответ написан
    Комментировать
  • Для Flask / Django нужны CMS?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Сайт можно разработать, используя только язык программирования. Вам придётся весь необходимый функционал написать самостоятельно, но при это написать можно как угодно и производительность будет зависеть только от вашего мастерства.

    Можно сэкономить себе время и силы, используя библиотеки, но это наложит на вас ограничения, писать придётся с учётом API библиотек. Да и привнесённые библиотеками абстракции начнут влиять на скорость работы кода.

    Можно ещё больше ускорить разработку и сократить трудозатраты, если взять фреймворк (например Django или Flask), но и ограничений станет ещё больше, как и влияния на производительность.

    Наконец, можно взять CMS и свести разработку до примитивного конфигурирования, но на этом уровне вы будете со всех сторон зажаты ограничениями низлежащих библиотек, фреймворка и самой CMS, а производительность у CMS печальная до безобразия.

    Вам выбирать какой баланс между ручной работой и свободой действий выбрать, на каком уровне абстракции и унификации остановиться.
    Ответ написан
    Комментировать
  • Как центрировать img внутри div?

    potapchino
    @potapchino
    object-fit: cover


    object-fit: contain
    Ответ написан
    Комментировать
  • IDE с Искусственным интеллектом улучшающим код программы?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    А зачем собсна тогда нужен будешь ты?

    Если AI может предложить более оптимальный алгоритм, то он уже должен понимать, какая должна быть конечная цель. Т.е. он знает что нужно сделать, как нужно сделать. Для чего нужен тогда ты сам? Запустить IDE?
    Ответ написан
    6 комментариев
  • Как лучше всего передать значение переменной из одного файла js в другой?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    localStorage
    Ответ написан
    Комментировать
  • Как работает эта строка numpy.reshape?

    adugin
    @adugin Куратор тега Python
    Вы читаете документацию не к той функции: вам надо читать numpy.ndarray.reshape. И там английским по белому в Notes сказано следующее: Unlike the free function numpy.reshape, this method on ndarray allows the elements of the shape parameter to be passed in as separate arguments. For example, a.reshape(10, 11) is equivalent to a.reshape((10, 11)).

    Число -1 означает не "любые данные", а то, что numpy пересчитает одну недостающую размерность исходя из размера данных и остальных известных размерностей. Например, возьмём RGB-картинку 640х480: (480, 640, 3). В то же время эту структуру можно рассматривать как пачку (батч) из трёх ч/б картинок: (-1, 480, 640, 1), где вместо -1 numpy автоматически рассчитает число 3. У вас size - это не размер массива, а размер одного его измерения. Для того, чтобы понять, как это работает, разберитесь, как numpy размещает данные в памяти и что такое stride.

    Последний аргумент не означает grayscale, он обозначает, что размерность массива в последнем измерении равна 1. Для картинки это иногда можно интерпретировать как grayscale.
    Ответ написан
    Комментировать
  • Как создавать приложения на Electron без интернета?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Если нет интернета - откуда вы все это возьмете?
    Если у вас есть интернет где-то в другом месте - то сделайте там все нужные npm install, потом скопируйте папку node_modules - там будет все нужное,
    на том компе где нет интернета достаточно просто node_modules скопировать, ничего устанавливать не нужно.
    Ответ написан
    5 комментариев