Задать вопрос
  • В чем причина прерывной работы интернета на ПК?

    @pfg21
    ex-турист
    порт усб неконтачит, свисток не до конца воткнут, порт усб чутка сожми, антенна в месте изгиба надломилась, просто комп стоит в неудачном интерференционном месте, драйвера перестали дружить с очередным обновлением микрософта...
    чистишь комп, перетыкаешь все разъемы, в общем проводишь ТО компутера (кторое должно быть ежегодным и никогда не помешает), потому думаешь дальше...

    для стационарного компа выкинь вафлю нафих. протяни 1 гбитный провод и живи спокойно.
    Ответ написан
    Комментировать
  • Discord bot Нужно написать Скрипт. Сколько стоит написать скрипт?

    Alexandre888
    @Alexandre888 Куратор тега Боты
    Javascript-разработчик
    Сколько стоит написать скрипт?

    до тысячи рублей.
    заказать можно здесь > freelance.habr.com
    Ответ написан
    Комментировать
  • Можно ли использовать один метод для 2-х роутов?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    Можно. Даже для трёх можно. И для десяти тоже.
    Ответ написан
    Комментировать
  • Могу ли я в чистом javascript в асинхронной функции подождать возникновения события?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Первое что нужно понимать, что async/await - это всего лишь синтаксический сахар над промисами, а значит имеет все особенности работы с ними:
    Во-первых, промис может разрешится (или отклонится, но в этой задаче reject не нужен) только единожды. Это сильно отличает их от событий, которые могут происходить многократно.
    Во-вторых, промисы обрабатываются на особой фазе event loop называемой microtasks, что опять же отличается от событий, которые выполняются на другой фазе (tasks). Это означает, что обработка промиса (колбэк метода then, или сахар над ним в виде await оператора) всегда произойдет асинхронно от возникновения события. Это накладывает ряд ограничений, например не получится сделать preventDefault у объекта или не получится запустить действия требующие синхронной работы из trusted события (play не muted video/audio, вход в фулскрин и тд).

    В простом варианте можно слушать событие разово, для чего можно использовать параметр once. Так же для оптимизации можно использовать параметр passive, так как нам все равно поздно вызывать preventDefault, а в некоторых случаях это может дать нам оптимизацию. Ну и управлять параметром capture попросту бесполезно, так как обработка будет в любом случае после обеих фаз. В итоге для этого можно пользоваться такой функцией хелпером:
    function listenOnce(target, event) {
        return new Promise(resolve => {
            target.addEventListener(event, resolve, {
                once: true,
                passive: true
            });
        });
    }
    
    // использование
    const event = await listenOnce(document, 'DOMContentLoaded');
    console.log(event);


    Если же нужно слушать событие многократно, то разумно обернуть прослушивание события в асинхронный итератор. Здесь так же присутствуют все ограничения связанные с промисами, но за счет того, что у нас будет итератор по множеству промисов, мы сможем слушать событие многократно. так же тут нужно предусмотреть возможность отписаться от события. Хелпер для данного случая получится такой:
    function listen(target, event) {
        let currentResolve = () => {};
        const handler = event => currentResolve({value: event, done: false});
        return {
            [Symbol.asyncIterator]() {
                target.addEventListener(event, handler, {passive: true});
                return {next: () => new Promise(resolve => {
                    currentResolve = resolve;
                })};
            },
            stop() {
                target.removeEventListener(event, handler);
                currentResolve({done: true});
            }
        };
    }
    
    // использование
    for await(const event = listenOnce(window, 'scroll')) {
        console.log(event);
    }
    
    // с отпиской
    const eventIterator = listenOnce(window, 'scroll');
    let count = 10;
    for await(const event = eventIterator) {
        console.log(event);
        if(--i === 0) {
            eventIterator.stop();
        }
    }
    Ответ написан
    4 комментария
  • Могу ли я в чистом javascript в асинхронной функции подождать возникновения события?

    lazalu68
    @lazalu68
    Salmon
    Конечно можете. После await у вас должен идти промис, который будет ресолвиться из обработчика события. Если речь о событиях DOM, то как-то так:

    HTMLElement.prototype.waitFor = function(event_name) {
        if (event_name) {
            return new Promise((res, rej) => {
            	const listener = function() {
            		res()
            		this.removeEventListener(event_name, listener)
            	};
    
            	this.addEventListener(event_name, listener);
            })
        } else {
            throw 'No event passed to waitFor method!';
        }
    }
    
    async function foo() {
    	const start = new Date();
    	await document.querySelector('body').waitFor('click');
    	console.log('uspeshno dojdalis clicka, jdali celih ' + ((new Date().getTime() - start.getTime())/1000) + ' sekund');
    }
    
    foo();
    Ответ написан
    7 комментариев
  • Что почитать по разработке безопасных сайтов на php, если уже знаком с asp.net?

    DevMan
    @DevMan
    на пхп точно такие же принципы и подходы к безопасности как и на асп/яве/питоне/любом другом языке.

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

    cr1gger
    @cr1gger
    Все дороги ведут в Рим — встретимся в Риме!
    учить фрейм
    Ответ написан
    Комментировать
  • Что учить laravel или ООП?

    @Kostik_1993
    Web Developer
    Сначала учите язык. Далее учите как писать ООП на этом языке. После этого учите фреймворк на этом языке
    Ответ написан
    Комментировать
  • Что учить laravel или ООП?

    like-a-boss
    @like-a-boss
    Признайся,тебяТянетНаКодМужика,ты—программный гей
    Не хочу изучать буквы, хочу сразу говорить и писать с ошибками.
    Ответ написан
    1 комментарий
  • Объясните на понятном языке, что такое URL обратного вызова?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    callback url - чужой сервер сделает в нужное время запрос на ваш сервер.
    Примеры.
    Платежные агрегаторы делают
    а) пречек - передают информацию что вам хотят оплатить . в ответ нужно дать согласие на принятие денег.
    Типа проверка того что ваш сервер готов отдать товар и сам сервер живой и можно с клиента списывать в вашу пользу деньги.
    б) авизо - деньги с клиента реально списаны.

    Интеграция с телефонией
    дергает ваш сервер CRM о событиях (идет вызов, принят вызов, начат разговор, беседа завершена)

    Телеграм бот - сервер присылает апдейты моментально. Вам не нужно дергать апи по крону чтобы их получить.

    Ну и другие случаи интеграции с АПИ, когда инициатором события должен выступать чужой сервер
    Ответ написан
    Комментировать
  • Почему выкидывает ошибку "нарушение прав доступа" и деление на ноль, но ноля нет?

    Берёте дебаггер и по шагам выполняете код.
    Вместо вас тут никто отладкой заниматься не будет
    Ответ написан
    Комментировать
  • Стоит ли использовать Node.js на сервере оплаты?

    dkrylov
    @dkrylov
    Node.js - хотел бы, но останавливает то, что при неотловленном исключении, сервер падает целиком.


    1) Так сделайте так, чтобы исключение отловилось
    2) Так сделайте очередь в бд с транзакциями, и чтобы нода их постепенно оттуда обрабатывала, и записывала статус обработки.
    3) Так повесте логгирование на какое нибудь событие (транзакция не обработана, сервер перезапущен), чтобы в случае проблем, быть вовремя уведомленным

    P.S. Что PHP, что NodeJS, что Java, успешно справиться с Вашим заданием, если всё корректно задизайнить.
    Ответ написан
    Комментировать
  • Что быстрее отработает - регулярки или includes?

    Kozack
    @Kozack Куратор тега JavaScript
    Thinking about a11y
    Берёшь одно, второе, запускаешь, измеряешь время исполнения. Профит.
    Ответ написан
    1 комментарий
  • Гарантийный ли случай процессора?

    15432
    @15432
    Системный программист ^_^
    А где гарантийный случай? Вы сами повредили процессор своими действиями. Вот если бы он работал, работал и сгорел, причём не от перегрева - тогда ещё ладно.
    Ответ написан
    Комментировать
  • Максимально бесшумная клавиатура?

    GavriKos
    @GavriKos
    Есть силиконовые клавиатуры, их еще в трубочку можно свернуть - думаю будет достаточно бесшумно, а главное - они доступны и недорогие. Например вот - https://aliexpress.ru/item/32672663177.html?spm=a2.... Гуглить что то вроде Flexible Keyboard

    Но - если плохо зафиксирован стол и зверюшки такие чувствительные - то и вибраций испугаются от набора текста.
    Ответ написан
    2 комментария
  • Возьмут ли на работу в IT с дипломом менеджера?

    alex4answ
    @alex4answ
    В целом нет, скилы важнее диплома, но все зависит от позиции и компании, в некоторые компании без диплома не берут на определенные позиции (например тот же системный аналитик).

    Почти всегда в вакансии пишут в требованиях, если там есть пункт "Наличие высшего технического образования в IT сфере", то да, скорее всего он нужен :))), но далеко не факт что без него не возьмут.

    Диплом скорее служит индикатором того, что человек +- понимает как работают вещи, а не прошел конкретно узкоспециализированные курсы, например frontend разработчика, и просто по шаблону делает, он может слепить приложение, но абсолютно не понимает как это работает (я встречал таких лично, серьезно, особенно в веб, битрикс и тп)

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

    @ComodoHacker
    Универсальный совет: делайте на том, что лучше знаете.

    Расчеты тут все-таки есть, хоть и несложные. Конструктор такой вряд ли найдете. Все конструкторы, что я видел, ориентированы на сайты для бизнеса, магазины и т.п.

    Основной выбор будет — где выполнять алгоритм подбора, на клиенте или не сервере. Если на клиенте, то нужно подтягивать на него исходные данные, либо все сразу, либо по мере надобности.
    Ответ написан
    Комментировать
  • Почему приватные свойства класса в dart все же доступны?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    В Dart нет специальных ключевых слов (public; private; protected) то есть спецификаторов доступа, по этому все идентификаторы «публичны» по умолчанию. Вопрос инкапсуляции решен соглашением: приватными считаются все члены класса, чье имя начинается с подчеркивания "_".


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

    vvpoloskin
    @vvpoloskin
    Инженер связи
    2) Архитектора

    Толковый архитектор по сути технический (ну или продуктовый) РП. Остальное - просто проектировщик.
    3) Руководителя проекта

    Когда надоедает смотреть, как ломаются и мухлюют менеджеры.
    Какие плюсы и минусы у каждого из вариантов?

    Аналитики слишком разные бывают и у всех все по разному. А на счёт РП и Архитектора готовьтесь к тому, что будете в рабочее время только сидеть на ВКС или на очных встречах, а непосредственную работу делать после рабочего времени. Также предстоит очень много читать (нормально, если читаешь 100-150 страниц в день). Ну и умение планировать задачи, добиваться их выполнения от совершенно рандомных людей, с вами никак несвязанных.
    Ответ написан
    Комментировать
  • Как установить Ubuntu, если зависает экран на логотипе Ubuntu?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Обычно Linux-дестрибутивы во время установки реагируют на комбинации клавиш Ctrl-Alt-F1, Ctrl-Alt-F2, Ctrl-Alt-F3 и Ctrl-Alt-F4. Как правило этих комбинаций хватает для переключения на консоль логов и на консоль с командной строкой. Переключение на графический экран вполне может оказаться на Ctrl-Alt-F6 или на Ctrl-Alt-F8.
    P.S. Если не срабатывает Ctrl-Alt-F1 - пробуйте Alt-F1.
    Ответ написан
    Комментировать