• Как всё успевать и не быть роботом?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    > Минимум 8 часов, чтобы были деньги.

    Работать нужно не 8 часов, а головой.
    Ответ написан
    11 комментариев
  • Freelancer.com забрал у меня деньги за конкурс! Что делать?

    Sanes
    @Sanes
    Рассказать всем об этом, чтобы каждый делал выводы!
    Ответ написан
    Комментировать
  • Что нужно знать, прежде чем устанавливать Linux рядом с Windows8?

    edinorog
    @edinorog Куратор тега Windows
    Троллей не кормить!
    нужно знать главное. на двух осях одновременно работать не получится! и смысл с такой загрузкой стремится к нулю. в век виртуализации это глупо
    Ответ написан
  • Хронология познания программирования, или как вы учили C++?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Первый раз попробовал писать на C на курсах по программированию в 9ом классе. Потом на первом курсе института купил книгу Солтер, Клеппер "C++ для профессионалов" (лучше с неё не начинать конечно)... После того, как освоил C++ на достаточном уровне, взялся за Qt, потом за boost (уже чисто по работе). Было и есть много разных книг (легко гуглится и ищется по тому же тостеру), статей, личных проектов и т.п.
    Что касается алгоритма... Читаешь, пробуешь пример, пробуешь в каком-нибудь проекте. Добавить-то больше нечего. Практика == успешное изучение. Ну и забывать про знания в смежных областях не стоит. Операционные системы, работа памяти, проектирование и т.п. Мало просто знать синтаксис языка, нужно уметь решать какие-то задачи практической направленности.
    Ответ написан
    Комментировать
  • Git: объясните «на пальцах» разницу между rebase и cherry-pick?

    @Nkly777
    git chery-pick - ты забираешь комиты из одной ветки в другую, это бывает полезно когда изменения сделаные другим разработчиком в его ветке, прямо сейчас нужны тебе в твоей ветке, и что бы не писать этот код заново, ты забираешь его комит себе в ветку

    git rebase master - ты синхронизируешься с главной веткой в которую коммитят все разработчики проекта, это полезно когда кто-то изменил участок кода с которым ты сейчас работаешь в своей ветке, дабы через неделю ты смог без проблем смержиться с master веткой. Обычно делается каждое утро перед началом рабочего дня и в конце когда фича готова.

    git merge - обычно используется когда у вас 2 и более master ветки (к примеру master и prototype) в этих ветках очень много комитов (и rebase здесь не подходит) и обчно через пару недель, maintainer репозитория наработки из prototype ветки "сливает" в master ветку по средствам этого самого git merge

    P.S. Что бы легче предствить разницу между git merge и git rebase. Представь что merge как собачка на молнии у одежды - "сшивает" комиты по дате их создания.
    В то время как git rebase как пожарная лестница - при применении твои коммиты крепится на конец родительской ветки

    git merge используйте для мержа фич и фиксов в master ветку (как и делает это Github)
    а git rebase используется для своей ветку в которой вы работаете над фичей что бы забрать последние изменения с master ветку (для этого есть очень удобная команда `git pull --rebase origin master`, аналог 3х команд (`git checkout master; git pull origin master; git checkout mybrach; git rebase master`)
    Ответ написан
    2 комментария
  • Как сделать так, чтобы main() возвратила double?

    @raiboon
    Не путайте вывод команды и код выхода. Испльзуйте печать в stdout, к примеру, а из c# читайте.
    "тандартная возможность передачи объекта через буфер между языками" - часто используют для этого очереди. zeromq, к примеру.
    Ответ написан
    1 комментарий
  • Как сделать так, чтобы main() возвратила double?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Вам хочется странного. Код возврата из приложения -- целое число, это жёстко закодировано во многих местах ОС. В POSIX это часть стандарта. В C и C++ это часть стандарта.
    Ответ написан
    3 комментария
  • Как в проекте из c++ и C# кода сделать callback`и меджу языками?

    @DISaccount
    Пишите dll на C. С экспортом функций проблем не возникнет. В шарпе - простые классы обертки с [DllImportAttribute(...)]
    Ответ написан
    1 комментарий
  • Как повысить уровень программирования в общем и в C++ в частности?

    Rulexec
    @Rulexec
    Метатеоретик теории типов
    Больше велосипедов в домашних проектах.

    Например, попробуйте на C++ написать свой HTTP-сервер. Который бы был полностью асинхронен. Чтобы можно было взять вашу библиотеку, создать экземпляр сервера, указать ему порт, навешать хэндлеров на обработку запросов, которым бы передавались объекты для управления запросом (в том числе считывание/запись данных, сервер не должен делать этого сам, приложение должно) и от которого не требовалось бы произвести обработку запроса тут же на месте, а когда ему захочется в будущем.
    Ответ написан
    Комментировать
  • Как найти узкие моменты в MFC проекте, где может сильно проседать производительность?

    AxisPod
    @AxisPod
    Ну ищите по проекту Invalidate и смотрите откуда вызываются. Опять же не факт, что именно Invalidate к этому приводит, посмотрите какие события где летают. Spy++ вам в помощь.
    Ответ написан
    1 комментарий
  • Как прeодолеть зону комфорта, стать фрилансером не обанкротившись?

    kumaxim
    @kumaxim
    Web-программист
    Для начал ответь сам себе на вопрос "А чем тебе неудобна текущая золотая клетка"? Можешь не писать здесь, но определись для себя.

    Далее нужно осознать, что фриланс - это подвид бизнеса. Есть книжка Р.Киосаки "Квадрант денежного потока". Там всех людей, работающих в экономике разделяют на 4 части:
    1. Р - наемные работники
    2. П - предприниматели
    3. Б - бизнес
    4. И - инвесторы

    Фриланс - это сегмент П. Ты работаешь один, возможно зарабатываешь больше чем работая по найму, но вот ты заболел, продуло тебя где-то, температура 38.5.... Сомневаюсь что ты из стали сделан и сможешь в таком состоянии писать код.
    Сегмент П очень хорошо охарактеризовал г-н Залогин из Локус Медиа. Он сказал примерно так: "Вы человек-велосипед - пока крутите педали - едите, как только перестали - упали"

    Переходя к твоему вопросу о выходе из зоны комфорта.
    Первое что рекомендую перед началом своего бизнеса - оплати все долги. Закрой ипотеку, погаси автокредит, все потребительские заемы и т.д. В случае если ты провалишься(первый блин, обычно, комом) по крайней мере ты со своей семьей не под мостом окажешься.
    Второе - содержание семьи. Никакие твои заработки не должны влиять на твою жену/ребенка. Твои родные, как минимум, должны иметь крышу над головой + еду на столе. Посчитай сколько ты платишь за комуналку + еду. Далее умножаешь эту сумму на 24 месяца. Это финансовая подушка твоей семьи.
    Третье - планирование. Бизнес без бизнес-плана - это не более чем хобби. С 16 лет стремился зарабатывать в сети. Продавал ссылки на sape.ru в 2008-2009, работал с трафиком в 2010-2012, продавал китайские безделушки с 2013-2014... Сейчас ушел в разработку одного SaaS-решения. Первые пару месяцев оптимизм из ушей хлещет, думаешь "Да все будет, да это фигня, преодалею...." Но вот начинаются черные полосы: ТИЦ сайта в планируемый апдейт не вырос до нужного значения, твой сайт на 9 месте в выдаче, вместо требуемой тебе 3-4 позиции, товар из Китая на таможне завис.... Да я могу до бесконечности перечислять проблемы, которые возникали у меня... А время - деньги: тебе нужно платить аренду, зарплату, рекламу, кредиты и т.д. Не платишь - начинается ругань, из Максима Александровича я сразу превращаюсь в мошенника, кидалу, сволочь... эх, во общем суть ты понял. Думай на 2 шага вперед, вот что я хочу сказать
    Четверное - не делай бизнес с полного нуля. Перт Осипов(проект Бизнес Молодость) в каком-то из видео говорил, что мы не ценим самое ценное что у нас есть, мы воспринимаем это как должное, когда для других людей это может быть сравни бриллианту среди кучи стекляшек. Вы не первый день работайте в ИТ по какой-то специализации, так ведите эту специализацию и дальше. Занимайтесь своим любимым делом.
    Пятое - не пытайтесь все делать сами. Когда я запустил свой самый первый интернет-магазин по Китайским безделушкам я все делал сам: рисовал дизайн, верстал его, настраивал рекламу, обзванивал клиентов, носил товар на почту.... В общем занимался вообще всем! Причем за всей этой рутиной я не видел, что мой сайт работает не эффективно, я упускаю из виду 20% горячих клиентов, 10% моих бандеролей исчезают в глубинах Почты России... Вы как первое лицо компании должны знать все процессы своего предприятия, иначе Вы не сможете им управлять, но Вам не нужно все процессы делать самому. Отдайте часть на аутсорс или делегируйте наемному сотруднику.
    Шестое - я на этом очень сильно обжегся около 3-х лет назад.... Ставьте своим сотрудникам четко достижимые KPI(ключевые показатели эффективности). Например, есть у меня форма заказ обратного звонка на сайте. Человек пишет туда своего Имя и номер телефона, после чего эти данные попадают в CRM. Для менеджеров, которые у меня обрабатывают вызовы клиентов один из KPI звучит так: перезвонить клиенту в течении 15 минут после поступления от него заявки, если она поступила в рабочее время. Причем все KPI Вы должны сформулировать максимально точно и подробно. Я сам с KPI работаю так: есть у человека базовый оклад и базовый набор KPI, которые ему необходимо выполнять. Если он их выполняет - получает оклад, выполняет лучше - получает оклад + премию. Причем оклад у меня сам небольшой, около 6 т.р., но нижняя з/п у меня примерно в 2,5 раза выше.

    Первые 4 пункта - это как мягко выйти, вторые два - как не свалиться.

    В целом о бизнесе в РФ могу сказать что его делать относительно легко. Достаточно просто делать что-то хорошо и по человечески относится к своим клиентам. Примерно за 1 год Вы нарабатываете определенную базу контактов(поставщики/партнеры/клиенты), которые Вас знают и доверяют Вам. А далее главное все это не растерять.

    Вам могут все Ваши родные/коллеги/друзья говорить "Да ты что, сейчас санкции, налоги, коррупция..." Поверьте, все это херня! Под прессом можно работать и зарабатывать, причем когда его снимут - Вы получите взрывной рост. А все эти отговорки про санкции, коррупцию, высокие налоги... Да просто у кого-то очко играет!
    Ответ написан
    14 комментариев
  • Стоит ли записываться на курсы от geekbrains? Или стоит получить второе высшее образование?

    Дык они правы, даже книги не заменят хороший крепкий интенсив.
    Ответ написан
    Комментировать
  • Книга Стивена Прата по C++ для начинающего?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Вы слишком мало описали Вашу ситуацию! Был ли у Вас опыт программирования? - от этого ответа появляются разные типы "начинающих".

    Если Вы ранее не программировали и только только садитесь за комп с целью написать программу, то рекомендую:
    "Освойте самостоятельно C++ за 21 день", Дж. Либерти

    Если же Вы уже имеете хоть какой-то опыт программирования, то:
    Лафоре "Объектно ориентированное программирование в C++"

    После нее прочтения одно из книг выше рекомендую: Б.Страуструп. Дизайн и эволюция C++ , 2006
    Ответ написан
    Комментировать
  • Как сделать так, чтобы std::set при добавлении объектов сравнивал на повторяемость по моим правилам?

    bogolt
    @bogolt
    Указать ваш компаратор:

    std::set<std::shared_ptr<CString>, MyCompare>
    Который будет сравнивать значения внутри умных указателей.

    Чтобы с пониманием делать такие вещи нужен опыт и некоторые навыки чтения литературы.

    upd:
    using namespace std;
    typedef shared_ptr<string> SString;
    
    class SharedLess
    {
    public:
        bool operator() (const SString& a, const SString& b) const
        {
            return *a < *b;
        }
    };
    Ответ написан
  • Почему при удалении значения не присваеваеться последнее id?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Перестаньте пожалуйста помечать вопросы о базах данных тегами C++ и QT.
    Ответ написан
    Комментировать
  • Как избавиться от мерцания формы при перерисовке формы в MFC?

    AxisPod
    @AxisPod
    Ищите MemoryDC/MemDC, на просторах инета есть куча реализаций. Например: www.cs.unc.edu/~stotts/145/homes/bball/online_code...

    Рисуете всё тудысь, а в деструкторе выплюнет всё в виде одного Bitmap.
    Ответ написан
    4 комментария
  • Как избавиться от мерцания формы при перерисовке формы в MFC?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    • Рисовать на bitmap, по таймеру оный bitmap рисовать в форме.
    • Закопать покойника MFC, сменить на Qt
    Ответ написан
    5 комментариев
  • Почему при передаче указателя на структуру присвоенное значение в функции сбрасывается?

    donkaban
    @donkaban
    Умею рисовать тени
    1. Вы течете по памяти как драное решето. Зачем вообще создавать экземпляры объектов в куче перед вызовом метода, который делает то же самое, создает ДРУГИЕ экземпляры. Указатель вы потеряли, объекты созданные в методе после выхода остались в куче, грустные и одинокие.
    Почему не написать (раз уж вы передаете указатели и у вас есть перегруженный =)
    void SomeClass::someFunc(SYSTEMTIME * _minDate, SYSTEMTIME * _maxDate){
      std::vector<SYSTEMTIME> dates;
      ...
        *_minDate = dates[0]; 
        *_maxDate = dates[1];
      ...

    Либо не создавать экземпляры снаружи, ибо они реально создаются (в том, что вы показали) внутри метода.

    2. Вы передаете указатели ПО ЗНАЧЕНИЮ. То есть копируете. С чего вы думаете, что они изменятся ВНЕ метода? Если очень хочется, передавайте **

    3. https://ideone.com/YhbnBn
    Ответ написан
    1 комментарий
  • Почему при передаче указателя на структуру присвоенное значение в функции сбрасывается?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    А зачем вы в SomeClass::someFunc меняете значения указателей (локальные для функции), вместо того, чтобы менять значения, на которые они указывают? Типа того:
    void SomeClass::someFunc(SYSTEMTIME * _minDate, SYSTEMTIME * _maxDate){
      SYSTEMTIME minDate, maxDate;
      std::vector<SYSTEMTIME> dates;
      ...
        minDate = dates[0]; // тут все хорошо. Новые значения присвоены
        maxDate = dates[1];
      ...
      *_minDate = minDate;
      *_maxDate = maxDate;
    }

    Ну, или если уж необходимо действительно указатели менять, то, например, так:
    void SomeClass::someFunc(SYSTEMTIME * & _minDate, SYSTEMTIME * & _maxDate){
      SYSTEMTIME minDate, maxDate;
      std::vector<SYSTEMTIME> dates;
      ...
        minDate = dates[0]; // тут все хорошо. Новые значения присвоены
        maxDate = dates[1];
      ...
      // что-то сделать с объектами, на которые указывают _minDate и _maxDate, например освободить
      _minDate = new SYSTEMTIME(minDate); // _minDate  присвоен указатель на новый объект.
      _maxDate = new SYSTEMTIME(maxDate); // проветил, _minDate  и _maxDate дейсвтиетльно какие нужно.
    }
    Ответ написан
    1 комментарий
  • Куда деваются объекты в std::vector??

    @onepavel
    Консультация и разработка мобильных приложений
    Вы создали vector в стеке и пытаетесь объект вернуть из метода по значению.
    Возвращая данные по значению они копируются, не так ли ? Походу создается новый пустой вектор,
    который присваивается вашей переменной. А _vect благополучно умирает не выходя из области видимости
    метода. Стоит почитать www.e-reading.link/book.php?book=1002058
    Ответ написан
    3 комментария