• Стоит ли использовать малоизвестные технологии при разработке, чтобы "привязать" к себе заказчика?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Привязывать к себе заказчика надо не использованием специфичных технологий, а качеством и сервисом.
    По опыту, стоимость разработки проектов такого рода - много меньше стоимости их годовой поддержки. Соответственно захотят от вас избавиться - найдут человека который быстро перепишет все с нуля.

    Помимо этого есть вопрос репутации. Довольный клиент рассказывает 1-2 людям. Недовольным - 10рым.
    Это относится к вообще любым серым приемам. Можно и исходный код зашифровать, что уж стесняться.
    Ответ написан
    Комментировать
  • Git - как использовать измененный файл во всех ветках?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Собственно, для этой задачи есть gitignore.
    В корне репозитория создаете файл .gitignore, в него просто записываете путь к файлу, который нужно игнорировать (относительно корня репозитория).
    Далее нужно исключить его из кеша, т.к. гит не уберет его из трекинга, если он уже там был. Команда:
    git rm --cached имяфайла
    Ответ написан
    3 комментария
  • Как создавать динамические библиотеки в C++ под Linux?

    EvgenijDv
    @EvgenijDv
    C/C++ programmer
    gcc позволяет создавать статические и динамические библиотеки. Используйте параметр линковки -shared и на выходе получите файлик .so - что в linux и есть аналог .dll
    Вот тут все параметры линковки
    Ну и примерчик:
    gcc *.o -shared -o file.so [-l<libraries>]
    Ответ написан
    4 комментария
  • Какую ОС поставить на старый ноутбук?

    Gromobanan777
    @Gromobanan777
    Self-employed professional
    Lubuntu или другой debian-основанный дистрибутив с легковесным окружением типа LXDE, Razor-qt, Fluxbox, Cinnamon (если непривычно). OpenOffice/LibreOffice - да, но форматирование документов может страдать. И да, WinXp? why not? Драйверов в сети вагон и маленькая тележка.
    Ответ написан
    2 комментария
  • Какую ОС поставить на старый ноутбук?

    miraage
    @miraage
    Старый прогер
    Я матери поставил xubuntu. Юзает хром, скайп, либреофис (райтер, кальк) - довольна.
    Ответ написан
    Комментировать
  • Какую ОС поставить на старый ноутбук?

    EvgenijDv
    @EvgenijDv
    C/C++ programmer
    XUbuntu лично мне очень нравится. Стоит на нетбуке с более слабым процессором, чем у вас и таким же количеством оперативки. Не могу сказать, что все летает, но после перехода с винды, которая там стояла изначально, жить стало гораздо легче. Если документы не сильно заморчоенные, то для этого есть ОпенОфис или ЛибреОфис. А вот если в документах сложное форматирование текста, обилие формул и макросов, то тут ОО не всегда может правильно разобрать всю эту кашу.
    Ответ написан
    3 комментария
  • Как правильно утилизировать старую ненужную технику?

    Gromobanan777
    @Gromobanan777
    Self-employed professional
    Согласен с вышесказанным. Отдайте в малоимущие семьи, и будут все счастливы.
    Ответ написан
    Комментировать
  • Как правильно утилизировать старую ненужную технику?

    zmeyjr
    @zmeyjr
    Дисклеймер в профиле.
    Доброе.
    Подарите нуждающимся, если работают. У нас Мурманске сервисные центры принимают старую технику. В Москве есть организации, которые занимаются утилизацией старой техники.
    Ответ написан
    Комментировать
  • Можно ли передавать в качестве параметра шаблона указатель на функцию?

    AxisPod
    @AxisPod
    Используя typedef можно.
    ideone.com/tzKAng

    Но не стоит этого делать :) В данном случае на каждую пробрасываемую функцию будет генериться свой код. Во вторых тут уже никак не прокинуть std::function, с лямбдами тоже ничего скорее всего не выйдет, про std::bind вообще молчу.
    Ответ написан
    1 комментарий
  • Какие посоветуете ссылки на видео уроки по с++?

    @RPG
    Люди забрасывают видеоуровки по простой причине - уже полтора столетия, как были изобретены книги. Для самообучения сложно придумать что-то лучше. Видеоряд имеет массу недостатков - сложно искать, мало информации, много воды, это долго и нудно.

    Поэтому не мучайте себя.
    Ответ написан
    1 комментарий
  • Linux: подмена имени бинарника - какие непредсказуемые последствия?

    @dykky
    1. Это абсолютно нормальный подход.
    2. Если вызов проги - последнее действие скрипта, то лучше делать не подпроцесс, а замещать текущий процесс прогой, что экономит немного памяти и сохраняет отношения parent-child для сигналов (т.е. после отработки скрипта родительская прога получит абсолютно такое же состояние дочернего процесса, как и до подмены проги на скрипт):
    #!/bin/sh
    
    # некоторые действия: 
    # обработка входных параметров, 
    # установка дополнительных переменных окружения, 
    # и т.д. ...
    
    exec path_to_dir/progX_orig $*

    3. Параметры в прогу лучше передавать так, как они были переданы в скрипт, а конструкция $* произведёт репарсинг аргументов.
    Т.е. последняя строчка, с учётом п.2, на мой взгляд, должна выглядеть так
    exec path_to_dir/progX_orig "$@"
    Ответ написан
    Комментировать
  • Какие вы дадите советы начинающим разработчикам инди-игр на мобильных платформах?

    MegaMufa
    @MegaMufa
    Дайте наставления юным первопроходцам

    Это, конечно, врядли.

    А по делу:
    Мой вам совет: не недооценивайте 3d игры.
    Игры буду нацелены на увлекательность и креативность, так что о 3D играх речь не идет.

    Это здорово и похвально, что вы ставите такие цели. Но 3d движок вам при этом не помешает. С кокосом я работал совсем чуть-чуть, поэтому не могу быть до конца объективным. Но на плюсах разрабатывать несколько труднее, чем на шарпе. Почему бы не попробовать unity3d? Зафиксируйте камеру сбоку в одном положении и вид будет, как в 2d, но при этом повысится скорость разработки.

    Я ни в коем случае не призываю вас отказываться от плюсов. Я очень люблю этот язык и считаю, что он на пару с Haskell может решить все проблемы человечества от корумпированого правительства до старения и смерти :-)

    Но если вы только начинаете делать игры, может стоит сосредоточиться на более высокоуровневых задачах, что бы больше внимания уделить геймдизайну и игровой механике. Сделайте одну игру (все равно первая выйдет комом) на юнити. Он дает кучу разных и удобных инструментов, которые сильно облегчают процесс разработки. А когда получите полное видение картины - делайте обоснованный выбор. Я бы сделал так.

    И не забывайте, что в статьях вы чаще всего читаете мнение их авторов. Следите за тем, что бы ваше мнение было обоснованным, а не слепо доверяете всему, что читаете.

    Ну, а в общем: просто пишите игры. Да, да. Все так просто: сядьте и пишите. Никакая теория не даст вам тех знаний, какие вы получите на практике. Удачи в ваших начинаниях.
    Ответ написан
    Комментировать
  • Разложение cosec в ряд Тейлора C++?

    ManWithBear
    @ManWithBear
    Swift Adept, Prague
    Советую почти полностью переписать код, хорошенько его оптимизировав. Например бессмысленно находить каждый раз 2^(2n+1), зная значение 2^(2n-1). Тоже самое для факториала.
    В итоге нахождение косинуса поместится в 1 цикл и для определения достижения необходимой точности не понадобится 2жды вызывать две довольно затратные функции.

    UPD. И в этом условии:
    abs(f(n,sum)-f(n+1,sum))<epsilon
    должен стоять знак больше

    UPD2. для double и float лучше использовать функцию
    double fabs (double x);
    float fabs (float x);
    long double fabs (long double x);


    UPD3. По поводу оптимизации, я имел в виду нечто такое:
    double sin(double x, double EPS) {
        double result = x;
        double delta = x;
        for (int n=1; fabs(delta)>EPS; n++) {
            delta *= x/(2*n)*x/(2*n+1);
            delta *= -1;
            result+=delta;
        }
        return result;
    }
    double cosec(double x, double EPS) {
        return 1.0f/sin(x, EPS);
    }
    Ответ написан
    5 комментариев
  • Какую IDE использовать для разработки на C++?

    @FoxInSox
    Поделюсь с вами сокровенной тайной как найти ответ на 99% вопросов: вводите в Гугле ключевые слова вопроса, т.е. в вашем случае это "С++ OSX IDE" и вуаля ответ найден:

    stackoverflow.com/questions/2805895/c-ide-for-osx
    stackoverflow.com/questions/220644/c-ide-for-macs?lq=1
    Ответ написан
    Комментировать
  • Почему происходит утечка памяти?

    @encyclopedist
    Согласно стандарту, порядок вычислений может быть разным, в том числе таким:
    tmp1 = new int(42);
    tmp2 = seed();
    tmp3 = std::shared_ptr<int>(tmp1);
    foo(tmp3, tmp2);

    В таком случае, если seed бросает исключение, возникает утечка памяти.
    Именно для избежания этой проблемы в стандарте предусмотрена вспомогательная функция make_shared. Исправленный вариант вашего кода будет выглядеть так:
    foo(std::make_shared<int>(42), seed());
    Помимо безопасности, также можно получить повышение производительности, поскольку make_shared может сделать одно выделение памяти вместо двух.
    Доп ссылки:
    herbsutter.com/2013/05/29/gotw-89-solution-smart-p...
    stackoverflow.com/questions/20895648/difference-in...

    Update
    Насчёт порядка вычислений стандарт говорит следующее:
    [intro.execution] Paragraph 15:
    When calling a function (whether or not the function is inline), every value computation and side effect associated with any argument expression, or with the postfix expression designating the called function, is sequenced before execution of every expression or statement in the body of the called function. [ Note: Value computations and side effects associated with different argument expressions are unsequenced. — end note ] Every evaluation in the calling function (including other function calls) that is not otherwise specifically sequenced before or after the execution of the body of the called function is indeterminately sequenced with respect to the execution of the called function.

    Таким образом, вычисление этих tmp1 и tmp2 в нашем случае является неупорядоченным (unsequenced).
    Ответ написан
    3 комментария
  • Есть что дополнить в правилах бота для карточной игры в дурака?

    @killla
    RULE: ПРАВИЛА ПО КОТОРЫМ БОТ ДЕЛАЕТ ХОД

    ходить с парных карт, независимо от достоинства
    (если есть две восьмерки и семерка, лучше ходить с восьмерки)

    учитывать масти
    (если на руках много карт одной масти, лучше ходить с другой масти, тогда вероятность докинуть карту больше)
    (если очень много старших карт одной масти у тебя на руках (или ушли), то, наоборот, ходить с этой масти - вытаскивать козыри у противника)

    запоминать ушедшие козыри
    (к концу партии можно вычислить, какие козыри у противника на руках)

    да и не только козыри, с "хорошей памятью" можно знать все карты, которые на руках у противника в конце партии)
    Ответ написан
    2 комментария
  • CLR Windows Form - как определить, есть ли в строке слова-палиндромы?

    @AlexP11223
    WinForms-то тут причем? Из задания
    Дана строка символов. Определить, есть ли в строке слова-палиндромы. 
    Если есть, то отметить каждое слово символом % в начале и в конце слова (например, %топот% ).
    ясно, что от винформс требуется лишь два сверхсложных действия: прочитать строку из текстбокса и записать результат.
    А что уж вы там с чекбоксами с говорящими именами cb_1 и cb_2, и прочими элементами, делаете никому не понятно.
    В общем разделяйте нормально задачу на подзадачи и решайте их.
    Ответ написан
    Комментировать
  • Генерация с помощью комбинаций массива определенной длины из элементов с типом массив символов?

    tsarevfs
    @tsarevfs Куратор тега C++
    C++ developer
    Можно так.
    Ответ написан
    Комментировать
  • Как использовать ctypes, c++ и python?

    @C00Lman
    extern "C" надо перед функциями писать, чтоб компилятор в dll-ке называл их по C-шному, а не по C++-ному
    Ответ написан
    Комментировать
  • Как осуществить чтение больших файлов на QT?

    Trrrrr
    @Trrrrr
    А что вам надо конкретно делать?
    Вы в состоянии обрабатывать данные по мере загрузки файла?
    Какраз отображать файл в память не следует если он очень большой, можно использовать fopen fread по частям.

    У меня есть подозрение что не в файле дело а в банальной нехватке памяти, поэтмоу просто попробуйте собраться под х64
    Ответ написан
    Комментировать