• Права и ответственность за пользовательские 3D модели?

    riky
    @riky
    Laravel
    кому принадлежат права на фотографию памятнику ленину? государству?
    нет, фотографу.
    отдельный вопрос только если на фото запечатлены люди, тогда распространение этого фото идет с согласия модели.
    с моделями думаю вопрос аналогичный.
    Ответ написан
    5 комментариев
  • На чем сделать быстро прогу под windows новичку?

    @bnytiki
    C# - для десктопного ПО под Windows лучшее решение на сегодня.
    Ответ написан
    8 комментариев
  • Где делятся знаниями гиганты игровой индустрии?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Много где: пишут в блогах компаний, на гамасутре, публикуют статьи в книгах-сборниках вроде Game Programming Gems, выступают на конференциях. Про Game Developers Conference слышали? У них есть канал на ютубе, битком набитый презентациями. На крайняк можно написать конкретным разработчикам и спросить интересующую информацию.
    Ответ написан
    Комментировать
  • Доступ к this из callback?

    Utils.loadTemplate(path, el => this.callback(el))
    Ответ написан
    Комментировать
  • Стоит ли обновлять Windows 7?

    @di23
    Ответьте себе на вопрос: "А что мне не хватает в Windows 7 что есть в 10-ке?"
    Если не можете ответить, то смысл это делать? Увы в компании мелкомягких новое не всегда значит лучшее.
    Ответ написан
    3 комментария
  • Как найти неправильно поставленные скобочки { и } в C++?

    Olej
    @Olej
    инженер, программист, преподаватель
    В коде куча строк, но вот как найти среди них одну скобочку, которая ломает весь код...

    1. Куча - это сколько? 5000? 10000? ... а не нужно писать код простынями в один файл.
    2. Либо загнать код в редактор/IDE с разметкой (я люблю Geany), чтобы он вам показал разметку.
    3. Либо комментариями исключать внутренние блоки {} пока на верхнем уровне не выявится непарность.
    Ответ написан
    Комментировать
  • Обучение программированию ребенка?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Изначально, учить нужно не языкам и технологиям, а базовым принципам устройства этого мира, пониманию логики и принятия решений, умению находить новые решения простых задач с максимально возможным результатом.

    Всё это должно быть в игровой форме и максимально быть интересным и простым для понимания.

    Например, на прогулке можно спросить:
    Как отмерить ровно 2м веревки, если есть длинная верёвка неизвестной длины и рядом столб, диаметром 50 см?

    И подобные.

    Как только он научится правильно принимать простые логические решения, он - уже программист!

    Останется ему (уже без Вашей помощи!) выучить любой язык, чтобы стать кодером и воплотить логику своих мыслей в алгоритм в виде кода.
    А 3D, C, OSI или еще что - это уже вопрос десятый...
    Ответ написан
    69 комментариев
  • Почему не работает unsigned long double* в с++?

    Ocelot
    @Ocelot
    В C++ нет типа unsigned long double. Signed и unsigned применимы только к целочисленным типам, вещественные - всегда со знаком.
    Ответ написан
    5 комментариев
  • Почему this NULL в istream_iterator?

    @Mercury13
    Программист на «си с крестами» и не только
    Операторы перегружены правильно.

    А вот и нет. Ваша ошибка
    std::istream& operator>>(std::istream& s, Pnt& p)   // убрать const!

    Не обязательно, но можно.
    explicit Pnt(int s) {…} // добавить explicit!
    Что получается? Мы пытаемся считать в неизменную p.a. Прямое s >> p.a; не подходит — поле-то неизменное. И тут, как ни странно, находится цепочка: создать временный Pnt и снова вызвать саму себя!

    Добавить explicit: запрещаем вызывать этот конструктор неявно.
    Убрать const: расфиксировать p.a.

    Также у вас ошибка в перегрузке операции «присвоить».
    Pnt& operator=(const int a) {
           this->a = a;
           return *this; // ну забыл!
         }


    Насчёт explicit. Конструкторы с одним параметром вообще стоит делать explicit всегда, когда объект семантически отличен от параметра. Например, VeryLongInt(10) или Complex(10) — это та же десятка, и explicit можно опустить. А Vector(10) — динамический массив из 10 элементов ≠ десятке, тут explicit нужен.
    Ответ написан
    1 комментарий
  • Что посоветуете улучшить в компьютере?

    dom1n1k
    @dom1n1k
    Память и SSD, уже после них процессор.
    Ответ написан
    Комментировать
  • Что такое build в версии приложения?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Каждый раз, когда продукт собирается из исходников - это build

    Большой номер может быть по разным причинам.
    1. Очень много коммитов (на каждый отдельный билд).
    2. При переходе на более новые версии, номер билда не обнуляли а округляли с запасом. например v 1.0-1, v1.0-2, v1.0-3, v2.0-100, v2.0-101
    так могли с запасом и до тысячи округлить.
    3. Номер билда может содержать не просто инкремент, а например дату
    16082501, 16082502
    4. Какие-то свои заморочки.
    Ответ написан
    Комментировать
  • Что посоветуете улучшить в компьютере?

    kykyryky
    @kykyryky
    Поставьте SSD, а на него винду.
    Ответ написан
    Комментировать
  • Зачем нужен Dependency Injection в Android разработке?

    artemgapchenko
    @artemgapchenko
    Начать неплохо бы с понимания того, что такое DI. Обратимся к википедии:

    Внедрение зависимости (англ. Dependency injection, DI) — процесс предоставления внешней зависимости программному компоненту.

    Если выражаться не канцеляритом, а обычным русским языком, то DI - это когда вы своему компоненту (например, классу) предоставляете нужные для него зависимости извне, а не создаете их сами в конструкторе, или через инициализацию в месте объявления поля. То есть не так:

    public class Api {
    	....
    	private final HttpClient client = new OkClient();
    }

    А, например, так:

    public class Api {
    	....
    	private final HttpClient client;
    
    	public Api(@NonNull HttpClient client) {
    		this.client = client;
    	}
    }


    И что нам это даёт?

    Ну, очевидно, нам теперь проще менять зависимости. Нужна вам другая реализация абстрактного класса HttpClient - взяли, и передали её через конструктор, или через метод-setter. В случае с первым куском кода, вам пришлось бы ещё и класс Api переписывать, что в случаях, отличных от тривиальных, может привести к ошибкам. Получается, что ваш класс теперь закрыт от изменений (смотрим Open/Closed Principle).

    Окей, а на практике-то какие бенефиты?

    Во-первых, вы теперь можете написать инициализацию вашей программы через конфигурационные файлы. Скажем, на старте будет читаться простенький текстовый файл, который определяет, какой httpclient использовать, какие настройки доступа к бд применять и так далее, и, исходя из этого, будут определяться зависимости.
    Во-вторых, вам теперь существенно проще писать тесты. Написали вы, скажем, какой-нибудь парсер, который принимает InputStream, содержащий в себе данные json-объекта, как-то хитро его парсит, и выдаёт вам объект вашей бизнес-модели. В приложении этот парсер будет принимать на вход реализацию InputStream'а, которая берёт данные из сети, а в тестах - реализацию, которая просто читает файл с диска (потому что тесты должны выполняться часто и быстро, и ваша задача в тесте - протестировать ваш парсер, а не скорость сетевого соединения).

    Вот, в общем-то, и всё. А Dagger - это просто библиотека, которая автоматизирует ручное внедрение зависимостей, равно как и другие DI-библиотеки.

    P.S. В некоторых случаях чрезмерное увлечение DI может привести к нежелательным эффектам, вроде чрезмерного усложнения кода, поэтому внедряйте аккуратно. Понимание приходит с опытом.
    Ответ написан
    Комментировать
  • Определение мест съемки по фото?

    @vashaaa
    Юх с горы
    Нет пока ещё такого сервиса. Подождите ещё пол года пока гуголь с ЦРУ с помощью пакемон го отснимут все, абсолютно все и выложат это опять же в гугль карты или ещё куда, потом уже по этим наверное гексабайтам информации будут писать какие-то апи для нужд подобных вашим.
    Ответ написан
    Комментировать
  • Emscripten - где производительность?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Попробовал написать рекурсивный фибоначи на чистом asm.js:
    (function(std, env, heap) {
        'use asm';
        function fib(n) {
            n = n|0;
            if((n|0) < (2|0)) {
                return 1|0;
            }
            return (fib((n|0) - (1|0)) + fib((n|0) - (2|0)))|0;
        }
        return fib;
    }(
        {},
        null,
        new ArrayBuffer(0)
    ));

    Действительно медленнее чем на js
    Причина очевидна: asm.js не оптимизируется никак, это готовые инструкции для виртуальной машины (например v8)
    Обычный js перед компиляцией прогоняется через оптимизатор, который успешно преобразует хвостовые рекурсии в цикл

    Делаем вывод, emscripten пока не умеет оптимизировать хвостовые рекурсии
    И кстати какую опцию оптимизации вы отдавали в em++ ?

    P.S. насчет производительности, у меня хэширующий алгоритм (crc64 с солью) после полного переписывания с js на asm.js дал прирост производительности в 21.7 раз (node 6.3.1 v8 5.0.71.57)
    Ответ написан
    2 комментария
  • Как живётся программисту без дискретной видеокарты?

    @mik222
    Странные вам тут ответы понаписали.
    Дискретная видео карта must have
    если вы захотите(а вы захотите) поэкспериментировать с machine learning.
    Скорость просчитывания нейронной сетки на CPU запросто раз в ~8-10 меньше чем на GPU.
    =============
    Самый быстрый CPU, кстати тоже не обязательно. А вот вещи типа SSD, high dpi дисплея и эргономичной клавиатуры достаточно важны.
    Ответ написан
    6 комментариев