• Какой из двух ноутбуков выбрать для web разработки?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    Пользуюсь pro 13 20 года с 16 гб, основа - веб разработка (phpstorm, docker, pycharm). Никаких проблем не испытываю от слова совсем (можно притянуть за уши то что батареи при работе с докером хватает на полтара часа, но у знакомого новый macbook m1 pro, с той же нагрузкой на 4 часа хватает).
    У m версии были траблы с докером по началу (сейчас вроде лучше). Касаемо оперативки, у m1 потребление, на сколько знаю, оптимальнее.
    В конечном счете, если бы я сейчас выбирал, то взял бы pro (лучше видео, экран), если мне не принципиально время работы. Ну или новые pro с m1.
    Ответ написан
    1 комментарий
  • Как в GO pool worker остановить горутины?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Доработать worker pool:

    Внутри каждой горутины слушать ctx.Done из context.context, который вы передадите в каждую рутину, кроме того еще создать cancel() функцию, которую вы будете вызывать в случае если вам надо...

    При вызове данной функции все горутины получат уведомление в select и завершатся.

    Как будет выглядеть горутина: бесконечный цикл, внутри селект на ваш канал с jobs и на ctx.Done(), если ctx.Done() не пришел (вызван будет например ошибкой в др местах), то будет читаться канал с джобами, но если придет ctx.Done() , то делать return

    for {
         select {
         case job := <-jobs:
                // work with job
         case <-ctx.Done():
              c.logger.Errorf("shutdown cancelled: %v", ctx.Err())
              return // выход из горутины
          }
         }
    }
    Ответ написан
    Комментировать
  • Выполнение/вызов функции из Go файла при нажатии на кнопку html?

    EvgenyMamonov
    @EvgenyMamonov Куратор тега Go
    Senior software developer, system architect
    Алгоритм у вас будет примерно таким...
    При нажатии на кнопку у вас будет вызвана функция (обработчик события onClick у кнопки).
    В этой функции вы сделаете AJAX запрос по протоколу HTTP на ваш сервер, где запущено ваше ПО на Go.
    В main.go вы запускаете HTTP сервер, который примет запрос от вашей функции JavaScript, обработает его и ответит.

    Разберём самый простой вариант с методом GET, чтобы вам было проще тестировать.

    На сервере (своём компьютере) запускаете main.go примерно такого содержания
    package main
    
    import (
        "fmt"
        "net/http"
    )
    
    func helloHandler(w http.ResponseWriter, req *http.Request) {
        fmt.Fprintf(w, "hello\n")
    }
    
    func main() {
        http.HandleFunc("/hello", helloHandler)
    
        http.ListenAndServe(":8081", nil)
    }

    Этот сервис будет слушать порт 8081 любого IP адреса на сервере, где будет запущен.
    Предположим, что вы тестируете на своём компьютере, в этом случае для проверки вам нужно в браузере откройте url `127.0.0.1:8081/hello`
    После этого вы должны увидеть в ответе просто текст: "hello".
    Когда этот этап будет завершен - вы сможете перейти к вызову этого URL уже из JavaScript.
    Для этого можете использовать то, что вам привычнее, если такого нет - можете воспользоваться этим примером
    const req = new XMLHttpRequest();
      const url='http://127.0.0.1:8081/hello';
      req.open("GET", url);
      req.send();
      req.onreadystatechange=(e)=>{
        console.log(req.responseText)
      }

    PS: Если не понятно или что-то не получится - пишите, помогу разобраться.
    Ответ написан
    21 комментарий
  • Как почистить Git-репозиторий?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Вот несколько фактов, которые помогут понять как работает Git.
    • Файл .gitignore действует только на ещё не отслеживаемые файлы.
    • Файл .gitignore предназначен для описания того, что мы не хотим СЛУЧАЙНО добавить в репозиторий. Либо не хотим случайно удалить переключив ветку.
    • Мы можем ПРИНУДИТЕЛЬНО добавить в репозиторий ЛЮБОЙ файл, даже если он описан в .gitignore.
    • Добавление файла в .gitignore не удалит сам файл из репозитория. Если файл УЖЕ в репозитории, то он продолжит отслеживаться, независимо от наличия .gitignore.
    • Если больше не хотим отслеживать какой-то файл, то просто удаляем его из репозитория. Ключ --cached позволит оставить файл в рабочем каталоге текущего репозитория если он нужен.
    git rm --cached -- '.DS_Store'
    git commit

    Но последний рецепт сработает только на одном компьютере. Если коллеги переключатся на этот коммит, то файл удалится у них из рабочего каталога.
    Ответ написан
    4 комментария
  • Здравствуйте столкнулся с проблемой, хочу написать прогноз погоды на телебот на мой код не работает?

    GavriKos
    @GavriKos
    хочу написать прогноз погоды

    как это сделать

    запрограммировать.

    Вот честно. Хотите написать - пишите. Хотите чтобы за вас написали - платите. Где ваши попытки написать что то, алгоритмы, хотя бы измышления как эту проблему решить?
    Ответ написан
    Комментировать
  • Зачем нужны "ссылочные" методы и почему они не удовлетворяют интерфейсам?

    WinPooh32
    @WinPooh32
    Stack Overflow answer searching expert
    *Human и Human это два абсолютно разных типа данных.
    Значит и реализацию для интерфейсов для каждого типа надо делать отдельно.

    *Human - указатель на значение типа Human.
    Ответ написан
    Комментировать
  • Как сделать вывод данных после ввода с использованием рекурсии(без циклов и goto)?

    includedlibrary
    @includedlibrary
    Без циклов никак. Нужно сохранять ответы в массив, а потом их по очереди выводить. Для этого собственно и нужен будет цикл
    Ответ написан
    Комментировать
  • Как создать мобильное приложение для управления бойлером?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    В теории все достаточно просто. Работа делится на три независимые группы: серверная часть (S), контроллер (C), приложение (A).
    1) Все три части обмениваются информацией:
    - S -- C - описываете протокол взаимодействия и передаваемые структуры данных. Например протокол REST, данные в JSON, формат данных такой-то, ответы такие-то, эндпоинты такие-то и для того-то. Ну или протокол MQTT, схема очередей такая-то, данные такие-то...
    - S -- A - протокол GraphQL, схема такая-то...
    2) Создаете тестовые данные и тестовые ответчики с развертыванием архитектуры (или без развертывания)
    3) Передаете все это разработчикам
    4) Есть что идет не так, данных там не хватает, в форматы не помещаетесь - пишете задачу и согласуете прямо с пункта 1), то, что не согласовано
    5) Согласовывать нечего, принимаете продукт, проверяя его на тестовых данных пунктов 1) и 2)
    6) Готовый продукт передаете заказчику
    7) Если что-то идет не так, возвращаетесь на пункт 4)
    Ответ написан
    9 комментариев
  • Как в GO вывести в template struct?

    @ghostiam
    На Go писатель, серверов пинатель.
    Поля структуры должны быть экспортируемые (Начинаться с заглавной буквы), тогда будет доступ к этим полям из шаблона.
    Ответ написан
    1 комментарий
  • Golang. Вызвать функцию из другого файла

    Tyranron
    @Tyranron
    Если файлы лежат в одной директории и оба в package main, то никаких проблемы быть не должно, даже если именуете с маленькой буквы.
    Подозрвеаю что проблема в способе запуска программы. Для go run такое не прокатит, он умеет цеплять только одиночные файлы. Нужно скомпилить директорию и должно быть все в порядке.
    Ответ написан
    1 комментарий
  • Как контролировать открытие двери холодильника в оповещениями?

    GavriKos
    @GavriKos
    Самое простое - начните с ардуины +доп.модулей типа термодатчика, геркона и вайфайки. Это самый быстрый вариант.
    Ответ написан
    Комментировать
  • Почему не хочет вытаскивать данные ИЗ бд или не работает переменная?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1)
    WHERE `ID`={$_GET['id']}
    за такое в приличном обществе бьют клавой по кумполу, до полного просветления.
    2) есть важнейшая функция, которую почему то все новички игнорируют - var_dump(); 100% решает проблемы, главное - правильно и часто использовать.
    3) Если есть запрос и возникает проблема с его использованием - выводите запрос (как строку) и запускайте этот запрос "вручную", например через пхпмайадмин.
    4) Вангую что вывод ошибок и варнингов у вас выключен. Смотрите логи или включите вывод ошибок.
    Ответ написан
    1 комментарий
  • Как получить значение свойства элемента по ID в Битрикс?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Метод GetByID не возвращает свойства элемента, а является простой прослойкой для getList запрашивающий все свойства.

    Явно используйте CIblockElement::getList для получения свойств

    $resElement = \CIBlockElement::GetList(
        [],
        [
            'IBLOCK_ID' => 5,
            'ID' => 371,
        ],
        false,
        false,
        [
            'ID',
            'IBLOCK_ID',
            'PROPERTY_SLOGAN',
            'PROPERTY_COPY'
        ]
    );
    
    if ( !($element = $resElement->getNext() ) )
    {
        echo "Элемент не найден";
        return;
    }
    
    var_dump($element);
    Ответ написан
  • Что производительней - сортировка массива средствами php, или выборка и сортировка запросом mysql?

    Sergei_Erjemin
    @Sergei_Erjemin
    Улыбайся, будь самураем...
    Если есть индекс по полю для которого строится сортировка -- то mySQL быстрее. И чем больше записей, тем сильнее и сильнее это будет заметно.

    В nosql индексов обычно нет и потому там иногда на стороне приложения сортировка быстрее... особенно для сложных запросов... и порой сортировку на стороне базы построить даже сложнее (например, в случае если данные размазаны по кластеру и для сортировки их сначала надо собрать)
    Ответ написан
    4 комментария
  • Как написать программу "Максимальное значение"?

    @Ostic
    Программист - любитель
    int[] nums={6,-1,-2,-3,0,1,2,3,4};
    Arrays.sort(nums);
    System.out.println( "Minimum = " + nums[0] );
    System.out.println( "Maximum = " + nums[nums. length-1] );
    Ответ написан
    Комментировать
  • Как написать псевдо 3д игру на Pascal?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Если в массивах ты не разобрался, то ты даже не джуниор, а намного ниже.
    Ты сам себя миддлом назвал что ли?
    Ответ написан
    4 комментария
  • Как перевести этот код C++ на python?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    1. Изучить C++
    2. Изучить Python
    3. Перевести код
    4. PROFIT
    Ответ написан
    Комментировать