• Как подключиться к WIFI из сайта?

    @deliro
    Напомнило баян с башорга про "драйвера для cd-rom находятся на диске"
    Ответ написан
    Комментировать
  • Что во Vue надо изучать чтоб получилось такое (см.вн)?

    Fragster
    @Fragster
    помогло? отметь решением!
    Перед изучением vue надо изучить js (хотя бы манипуляции с dom, event loop, промисы, async/await)
    ну и параллельно html/css

    А в вопросе упоминается базовый функционал vue-router
    Ответ написан
    1 комментарий
  • Картинка залита черным (80%). Как убрать заливку на некоторой части картинки (прозрачная маска)?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Ответ написан
    Комментировать
  • Как объединить массивы объектов по значениям одного из свойств их элементов?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const merge = (key, ...arrs) =>
      Object.values(arrs.reduce((acc, arr) => (
        arr.forEach(n => Object.assign(acc[n[key]] ??= {}, n)),
        acc
      ), {}));
    
    
    const result = merge('id', sum, arr1, arr2);

    или

    const merge = (key, ...arrs) =>
      Array.from(arrs
        .flat()
        .reduce((acc, n) => {
          const k = key(n);
          return acc.set(k, Object.assign(acc.get(k) ?? {}, n));
        }, new Map)
        .values()
      );
    
    
    const result = merge(n => n.id, sum, arr1, arr2);
    Ответ написан
    4 комментария
  • Почему не работает отладка для Go в VS Code?

    Судя по тексту ошибки, у вас нет корректного go.mod в корне проекта. Создайте его командой go mod init somename вместо somename принято ставить путь к репозиторию вашего проекта, но можно и просто имя.
    Ответ написан
    4 комментария
  • Как сделать JS, что бы он запускался только при первом визите на сайт?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    иф (кука есть) {
     ретурн 
    }
    елс{
    выполнять скрипт;
    записать в куки;
    }
    Ответ написан
    2 комментария
  • Как сгенерировать уникальный id для v-for?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Если на вас ругается среда то вы явно косячите.
    Добавьте в ид в отдачу есть он у вас в базе, что вы жметесь
    Ответ написан
    Комментировать
  • Как сделать border для шестиграника?

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

    Alexandroppolus
    @Alexandroppolus
    кодир
    если список должен обновляться по инициативе сервера, то WebSocket в помощь
    Ответ написан
    Комментировать
  • Где брать макеты для приложений?

    @alekcena
    Нелинейный наставник
    Комментировать
  • Как сделать slash команду telegram?

    alexeyvolodin
    @alexeyvolodin
    истина где-то рядом
    Я бы посоветовал почитать документацию библиотеки.
    В первом примере данной библиотеки есть реализация команды.
    Плюс там в исходниках есть примеры.
    Ответ написан
    Комментировать
  • Как определить, что пользователь просмотрел уведомление?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    у каждого элемента добавьте свойство isNew
    Дальше пробегаетесь по ним при открытии панели уведомлений и сбрасываете те которые помещаются в контейнер.
    Дополнительно добавьте фильтр New\All
    После определения отправляйте запрос на сервер с обновлением статуса, либо все храните на клиенте, допустим в локалсторадже
    Ответ написан
    Комментировать
  • Почему код ломает файл?

    Rst0
    @Rst0
    Если не ошибаюсь, все переменные с названием location будут возвращать объект location вместо ожидаемого значения.
    console.dir(location)

    docs/Web/API/Window/location
    Ответ написан
    3 комментария
  • Нужно ли везде использовать TypeScript? или это хайп?

    Xuxicheta
    @Xuxicheta
    инженер
    Нужно ли везде использовать TypeScript?

    ну видимо нет.

    или это хайп?

    нет

    Есть ли смысл использовать Typescript в пет проектах?

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

    типа создал мини игру 15 строчках кода на TypeScript?

    как хотите, ради 15 строчек мне было бы лень настраивать конфиг, но я бы точно писал всегда на ts если бы оно поддерживалось по дефолту.

    Или он только в крупных проектах нужен? и вообще все прям без него будто не могут писать судя по отзывам или это какойто хайп или реклама Microsoft

    еще раз. ts - удобнее и надежней.
    Ответ написан
    2 комментария
  • Почему Go с горутинами работает на одном ядре?

    EvgenyMamonov
    @EvgenyMamonov Куратор тега Go
    Senior software developer, system architect
    Горутины выполняются на разных процессорах как и должны, у вас четвёртое число слишком большое, все горутины завершают выполнение, а одна продолжает работать. По этому и создаётся впечатление, что они все работают на одном ядре.

    Чтобы в этом убедиться добавим два fmt.Printf, чтобы получилось вот так
    package main
    
    import (
        "fmt"
        "runtime"
        "sync"
    )
    
    var wg sync.WaitGroup
    
    func main() {
        runtime.GOMAXPROCS(8)
        arr := []int{1343434, 1343434300, 234343400, 334343434000, 400434340, 203434340, 4232, 23545, 15535, 353535, 33434434, 5334345, 3533434345, 3535}
        for idx, el := range arr {
            wg.Add(1)
            go test(el, idx)
        }
        wg.Wait()
    }
    
    func test(el int, idx int) {
        fmt.Printf("%d started: %d\n", idx, el)
        for i := 0; i < el; i++ {
            el = el - 1
        }
        fmt.Printf("%d completed: %d\n", idx, el)
        defer wg.Done()
    }


    Вывод будет примерно таким
    4 started: 400434340
    8 started: 15535
    8 completed: 7767
    13 started: 3535
    13 completed: 1767
    6 started: 4232
    6 completed: 2116
    10 started: 33434434
    3 started: 334343434000
    7 started: 23545
    7 completed: 11772
    5 started: 203434340
    12 started: 3533434345
    11 started: 5334345
    2 started: 234343400
    1 started: 1343434300
    11 completed: 2667172
    9 started: 353535
    9 completed: 176767
    0 started: 1343434
    0 completed: 671717
    10 completed: 16717217
    5 completed: 101717170
    4 completed: 200217170
    2 completed: 117171700
    1 completed: 671717150
    12 completed: 1766717172

    При внимательном просмотре станет видно, что нет записи 3 completed.

    меняю элементы с индексами 4 и 5 на такие же числа 334343434000, 334343434000, т.е. делаем чтобы все горутины отработали, но чтобы 3 осталось, т.е. вот так

    arr := []int{1343434, 1343434300, 234343400, 334343434000, 334343434000, 334343434000, 4232, 23545, 15535, 353535, 33434434, 5334345, 3533434345, 3535}


    Запускаем заново и видим, что теперь 3 ядра отлично загружены
    %Cpu0  :  0.3 us,  1.0 sy,  0.0 ni, 98.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    %Cpu1  :100.0 us,  0.0 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    %Cpu2  :  1.7 us,  0.7 sy,  0.0 ni, 97.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    %Cpu3  :  1.6 us,  2.9 sy,  0.0 ni, 95.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    %Cpu4  :100.0 us,  0.0 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    %Cpu5  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    %Cpu6  :100.0 us,  0.0 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    %Cpu7  :  5.6 us,  1.0 sy,  0.0 ni, 93.4 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    Ответ написан
    Комментировать
  • Деобфусцировать js имеющий _0х?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Защита основана на том факте, что дешевле сделать своё собственное решение, чем вскрывать защиту. Так что выбор простой:
    1) Заплатить тому, кто написал оригинальный скрипт.
    2) Заплатить другому, кто может написать такой же скрипт.
    3) Чуть больше заплатить тому, кто снимет защиту.

    Лично я на твоём месте выбрал бы платить меньше, а не больше.
    Ответ написан
    Комментировать
  • В чем сложность поддержки проектов на Go?

    EvgenyMamonov
    @EvgenyMamonov Куратор тега Go
    Senior software developer, system architect
    Более четырёх лет пишу на Go, лично для меня поддерживать проекты на других языках сложнее ))
    До Go много лет писал на Perl/PHP/Python/Java/C/Ruby on rails/JavaScript и "крутил" еще не мало чего.
    Сейчас пишу только на Go и Python.

    Основная сложность в Go - это то, что если вы начинаете писать "криво" - то писать так очень трудно :))
    Подход к реализации в Go достаточно непривычный для тех, кто приходит из скриптовых языков.
    Например запрет циклических импортов - это самое первое, что "взрывает" мозг :)
    Нужно время чтобы адаптироваться после скриптовых языков.

    Про обработку ошибок - это да, это, пожалуй, единственное что мне не нравится в Go.
    Для себя я решил эту проблему за 1-2 часа :) и больше меня это не беспокоит.

    По ООП - в Go оно есть, лично мне оно нравится намного больше, чем ООП в других языках ))
    Всё, что реально нужно - всё есть, но при этом ничего лишнего нет.
    Интерфейсы - просто прекрасны :)) Каналы, горутины - это просто "счастье" :))

    А если объективно - то я бы не стал говорить о сложности поддержки проекта применимо к какому то конкретному языку.

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

    А когда в таком проекте нужно что-то доработать или исправить ошибку, то почти всегда очень не просто найти то место, где нужно править, и после правок в одном месте, как правило, что-то ломается в другом :)

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

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

    Хочется добавить, что как бы не писали про Go, что он простой и т.д. - он явно сложнее Python/PHP и т.д.
    Это еще один повод сказать, что поддерживать код на Go сложно ))

    Также стоит учитывать, что проекты которые пишут на Go зачастую сложнее, чем проекты для которых выберут скриптовый язык. Go выбирают когда планируются большие нагрузки, параллельная обработка чего-либо и т.д., а это, в свою очередь, дополнительно усложняет проект.
    Ответ написан
    7 комментариев
  • Что выбрать для телеграм бота? Вебхуки или лонгполлинг?

    EvgenyMamonov
    @EvgenyMamonov Куратор тега Go
    Senior software developer, system architect
    "Long polling" периодически опрашивает телеграм сервер, за счёт этого пользователю будет казаться, что бот "торзмозит", т.к. между отправкой сообщения от пользователя и до получения ответа будут паузы.
    По крайней мере у меня было именно так.
    Еще стоит сказать о том, что "Long polling" не подойдёт если говорить о нагрузках.

    После перехода на WebHook'и - сразу заработало всё очень резво.
    Также с использованием WebHook'ов у вас будет возможность горизонтально масштабировать бота в случае роста нагрузок.
    Если бы у меня стояла такая задача - я бы использовал WebHook'и.
    Ответ написан
    3 комментария