• Как найти те коммиты в которых фигурирует изменение ключевого слова?

    @fregate
    Пишу, думаю
    Или гит биссект, если предыдущие методы не помогли. Если известна точка, когда все работало правильно
    Ответ написан
    Комментировать
  • Как скачать сайт с Google FireBase?

    @fregate
    Пишу, думаю
    1. Просто скачать сайт каким либо загрузчиком сайтов
    2. Установить консоль firebase локально и там авторизоваться с данными этого проекта
    3. Выбрать в ней уже имеющийся проект (вот этот)
    4. Поправить что нужно
    5. Сделать деплой.

    Вроде должно получиться
    Ответ написан
    Комментировать
  • Как добавить библиотеку в flutter?

    @fregate
    Пишу, думаю
    А библиотеки добавлены в pubspec.yaml? в секцию dependencies? И потом сделаны обновления?
    Ответ написан
    Комментировать
  • Как отправить письмо с помощью golang?

    @fregate
    Пишу, думаю
    Если не принципиально использование smtp пакета, то я делал вот так:
    import (
    // ...
    	gomail "gopkg.in/gomail.v2"
    )
    
    func makeMailer() (*gomail.Dialer, error) {
    	smtp := "SMTP_MAIL_ADDRESS"
    	port, err := strconv.Atoi("PORT_NUM")
    	if err != nil {
    		fmt.Println("error parsing smtp port.", err)
    		return nil, err
    	}
    	name := "MAILER_AUTH_NAME"
    	pwd := "MAILER_AUTH_PWD"
    	if port == 0 || smtp == "" && name == "" {
    		return nil, errors.New("invalid mailer parameters")
    	}
    
    	return gomail.NewDialer(smtp, port, name, pwd), nil
    }
    
    func send() (*..., error) {
    	mailer, err := makeMailer()
    	if err != nil {
    		return nil, fmt.Errorf("can't create mailer. %v", err)
    	}
    
    	recipient := "MAILER_RECIPIENT"
    	if recipient == "" {
    		return nil, fmt.Errorf("empty recipient")
    	}
    
    	m := gomail.NewMessage()
    	m.SetHeader("From", "MAILER_AUTH_NAME")
    	m.SetHeader("To", "MAILER_RECIPIENT")
    	m.SetHeader("Subject", "MAILER_SUBJECT")
    	m.SetBody("text/plain", "MAIL_BODY_TEXT")
    
    	err = mailer.DialAndSend(m)
    	if err != nil {
    		return nil, fmt.Errorf("can't send digest. %v", err)
    	}
    }
    Ответ написан
    Комментировать
  • Постоянно приходится черри-пикать фиксы в master, а я помню, что это вроде потом вызывает проблемы при мерже из develop — как быть?

    @fregate
    Пишу, думаю
    Потому что надо сначала из фича-ветки мержить в девелоп, а потом уже в мастер.

    Более того, если есть релизы, то становится еще бодрее. Например, захотели сделать фикс в одном из релизов и цепочка будет выглядеть как:
    releaseM, release(M+1)... release(N), develop, master
    Зачастую все эти перекидывания делаются не руками, конечно, а на CI раз в день, и если не смогли роботы это все сделать, то отправляется на фикс кому-то из разработчиков, для ручного разрешения конфликтов.
    Ответ написан
    Комментировать
  • Как исправить код?

    @fregate
    Пишу, думаю
    Тут больше похоже на чистый С
    для этого там используется getc() в цикле или gets()

    если же использовать c++, то std::cin >> input_string
    Ответ написан
    Комментировать
  • Жив ли самомодифицирующийся код?

    @fregate
    Пишу, думаю
    Выглядит, что сейчас это заменено машинным обучением и обработкой данных, полученных от работы клиента с ПО, обратно в систему.
    То есть игры, которые подстраиваются под ваш стиль прохождения или возможности. Или, например, DLSS 2.0 от NVidia, которая позволяет увеличивать картинку без видимых потерь качества, если разработчики натренируют алгороитм и тд
    То есть поведение меняется изза внешних каких-то факторов. Сами машинные инструкции не меняются. Я думаю, что в эту сторону эволюционировало все.
    Ответ написан
    2 комментария
  • Как с помощью QT вывести на монитор 10-битное изображение?

    @fregate
    Пишу, думаю
    partA = static_cast<uint8_t>((color &0xFF00) >> 8); // == 0 всегда
    partB = static_cast<uint8_t>(color &0x00FF); // 0..255

    за 1024 точки partB 4 раза проходит от 0 до 255 - по-этому вы видите 4 градиента.
    вы неправильно создаете его

    16 бит grayscale - значит, значение тона меняется от 0..65535, вам необходимо "сжать" этот диапазон в 1024 точки то есть каждая точка в горизонтали должна заполняться как-то так:
    for (ushort color = 0; color < 1024; color++)
          arr->append (color * 64);  // * 65536/1024

    таким образом каждая точка будет увеличиваться на нужный шаг. если хотите сделать "челлендж" своему монитору, то вам нужно не весь ряд отобразить, а отобразить именно 10-20 тонов, тогда вам нужно "разжать" 10-20 тонов на 1024 точки - тут вы уже справитесь, я думаю.
    Ответ написан
  • Лучшие gamedev блоги?

    @fregate
    Пишу, думаю
    А еще
    https://www.reddit.com/r/gamedev/
    Туда с очень многих блогов люди скидывают статьи (и сами пишут), так что через какое-то время активного чтения у вас может появиться свой набор блогов, которые будут наиболее полезными.
    Ответ написан
    Комментировать
  • Как на сервере(php) прервать обработку, прерванного AJAX запроса?

    @fregate
    Пишу, думаю
    Смотря, конечно, какой запрос и сколько выполняется.
    Например, на сервере создается пул задач и какой-нить PoolWorker берет оттуда задачи и выполняет в порядке очереди.
    Что-то отправило с сайта задачу, которую поместили в пул. Потом что-то отменяет эту задачу.
    Получаем запрос на отмену, проверям пул, если есть - удаляем задачу, если нет - то смотрим в уже запущенных задачах (потоках), если есть - закрываем поток.
    Понятно, что это все асинхроно, иногда задача будет успевать исполнится. Как сделать синхронно, не очень понятно.
    Ответ написан
    Комментировать