• Не могу найти работу стажёром?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    >>стоит ли звонить на прямую в разные компания чтобы узнать нужен ли стажер ?
    Вопрос из серии "А стоит ли мне с девочкой..... или она сама... ?"

    Возможно Вы не русский и поэтому поделюсь мудростью наших предков "Без труда не вынуть и рыбку из пруда". Я к тому что без "действия" цель не будет достигнута. А у Вас есть ярко выраженная цель "работать джуниором". Не важно какое Вы предпримите действие, лишь бы оно вело к достижению этой цели!
    Ответ написан
    Комментировать
  • Что такое замещение в ООП?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Возможно Вы об этом:

    class Фигура:
      virtual void нарисоватьСебя() = 0;
    
    class Круг : public Фигура:
      virtual void нарисоватьСебя() {
      // код рисующий круг
      }
    
    class Квадрат : public Фигура:
      virtual void нарисоватьСебя() {
      // код рисующий квадрат
      }


    У Вас есть множество фигур, но каждая выглядит по своему. Тем не менее каждую можно нарисовать. Получается, что изучая множество объектов, вы выделяете общие для всех свойства и действия и формируете "Абстракцию", в данном примере "Фигура". Когда Вы обобщили и сформулировали абстракцию в коде, настает время описать детали о Круге и Квадрате. Когда Вы пишите нарисоватьСебя() для квадрата , то Вы замещаете код написанный в "Фигуре". Таким образом Вы переходите от общего к частному.
    Ответ написан
    2 комментария
  • Нужен ли антивирус для LINUX, какой выбрать?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Для обычного пользователя:
    1. Нужно иметь мозг!
    2. Делайте бэкап!
    3. Не проводите финансовых операций : покупка или оплата чего-нить, для всего этого есть VirtualBox + с какой-нить только что поставленной системой. Когда решили оплатить чего-нить, скопировали файлы виртуалки, запустили и оплатили
    4. Возненавидьте работу под root, но полюбите sudo
    5. При малейшем подозрении, восстановитесь из бэкапа

    Много мозгов не надо, самую малость, и никакой вирус не страшен
    Ответ написан
    Комментировать
  • Зачем у программиста на столе второй монитор установлен вертикально?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Херово рефакторят, поэтому стремятся чтобы вся функция влезла в пределы экрана.
    Ответ написан
    Комментировать
  • Как всё успевать и не быть роботом?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Есть такая поговорка "Скажи мне кто твои друзья и я скажу кто ты". Если хотите чему-то научиться и координально поменять свою жизнь и самого себя, то настоятельно советую поместить себя именно в то окружение, где по большей части те люди на которых Вы бы хоть немного но хотели быть похожими и у которых можно многому научиться.

    Это мой собственный опыт.

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

    Все это дало мне то, что неявным образом у меня сформировалось мышление, привычки, действия, ритуалы и др. таким образом, что аж диву даешься "И это я?". К примеру от математиков прям железобетонно вбилось в голову фраза "Необходимо и достаточно", т.е. есть задача значит надо сделать настолько мало насколько это возможно, но при этом чтобы задача была решена!

    Рекомендую Вам прежде всего надо спросить себя "А что именно хочу?" и "Какие у меня мечты?". Ежедневно спрашивать себя "Какие задачи должен сегодня сделать чтобы хоть на чуть чуть приблизиться к моим мечтам?".
    Ответ написан
    6 комментариев
  • Unittest в корне python проекта?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    У меня сделано так:
    1. Кладу все тесты в папку tests , которая в корне проекта
    2. Файлы с тестами называются так чтобы в начале имени было test_
    3. Написан такой вот код по запуску тестов:
    import unittest
        tests = unittest.TestLoader().discover('tests', pattern='test_*.py')
        unittest.TextTestRunner(verbosity=2).run(tests)

    4. У меня тесты рассортированы в подпапки\подпакеты по функциональности которую они тестируют
    Ответ написан
    Комментировать
  • Должен ли .dll показывать версию, имя и тд в свойствах файла?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Имею опыт работы антивирусным экспертом в одной из компании нашей необъятной Родины. Скажу, что ДА, нужно!
    Ответ написан
    Комментировать
  • Надоело говнокодить, как заставить себя продолжать?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    1. Спать больше. Не менее 7 часов в сутки. Т.е. ложиться не позже 1:00 и вставать не раньше 8:00
    2. За каждую сделанную задачу надо себя вознаграждать из списка "действия и вещи что меня радуют", к примеру любите кушать мороженное записывайте в список, любите в ванной лежать, туда же и т.д. и т.п. Как только начинаете делать задачу, сразу договоритесь с самим собою: "как завершу задачу, сразу "возьму пряник""
    3. Чаще смотреть позитивные вещи, не связанные с работой воообще!!!
    4. Учиться по мимо работы и другим полезным вещам, к примеру тайм-менджменту, улучшение английского и др.
    5. По утрам отжиматься, зарядку

    вообщем много чего!
    Ответ написан
    2 комментария
  • Какую литературу/ресурсы посоветуете для решившего открыть компанию в сфере ИТ в России?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Если Вы не умеете хорошо работать в рамках компании, то в свободном плавании Вы точно не уживетесь.
    Первое: По той причине что в свободном плавании таких как Ваш директор чуть ли не каждый второй, а Вам еще придется их облизывать!
    Второе: Придется работать в десятки раз больше!
    Третье: Придется выучить много всего юридического и финансового
    Четвертое: Это все придется в одну единицу времени и ВСЕ СРАЗУ

    Так, что сначала научитесь "продавать" Вашему директору что-то что позволит Вам хорошо ужиться с ним. А только потом уже стоит думать о своем бизнесе
    Ответ написан
    3 комментария
  • Стоит ли и где искать студенту подработку на лето?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Ваши цели размыты! Ничего непонятно из того что Вы хотите достичь?
    Прежде всего начинайте с вопросов: "Если ради опыта,то для чего?", "Если ради денег, то на что потратить и сколько надо?". Я бы рекомендовал определиться с Вашими жизненными ценостями и целями. В зависимости от них Ставить вопрос : "Что именно я могу сделать прям вот за эти 2 месяца для достижения одной из жизненной цели?".

    К чему все это? У нас у всех есть только одна жизнь и она не повторится. Как правило, люди хотят жить хорошо, но проблема в том, что они не планируют или не мониторят насколько близко они приблизились к своему "хорошо".

    Рекомендую просмотреть внутрь себя и поспрашивать себя: "Мужик. А ато надо-то?"
    Ответ написан
    Комментировать
  • Какие цели преследует Dependency Injection?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    DI это способ создать интерфейсы там, где их не было ранее, но они вдруг понадобились сейчас. Интерфейсы вводятся не просто так, а для решения какой-либо задачи. Отойдя от программирования и взяв в качестве примера ситуацию с аппаратным обеспеченим, то мы поймем, что люди очень сильно выиграли когда решили разделить вычислительные средства на материнская плата, ЦПУ, ОЗУ, Жесткий диск и др. Да, они усложнили введя интерфейсы, но при этом повысилось удобство эксплуатации и возрасла скорость разработки. Скорость изготовления частей возрасло за счет того что отдельный компонент изготовить проще, чем целую систему! Более того компонент может быть с разными характеристиками, ценою и изготавливаться многими компаниями на различных производственных мощностях. Возвращаясь к DI : программист выигрывает за счет того что теперь значительно легко установить новый компонент. К примеру дав интерфейс программисту на стороне, дав ему модульные тесты(в качестве "живого" ТЗ) вы получаете дополнительное время, т.к. пока пилится компонент стороним программером Вы можете пилить другую часть системы, а принять работу можно по прохождению модульных тестов и быть уверенным, что это то что Вы хотели, если конечно хорошо продумали модульные тесты ;)
    Ответ написан
    Комментировать
  • Как внедрится в процесс?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    А какую цель Вы преследуете? Если автоматически анализ виндовых приложений, то почему не воспользоваться общеизвестными способами:
    1. WinDbg + pykd(pykd.blogspot.ru)
    2. Immunity Debugger

    можно попробовать посмотреть на:
    winappdbg.sourceforge.net
    Ответ написан
    Комментировать
  • Как протестировать большой объект не создавая его в каждом тестовом методе?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Вот две из основных характеристик модульного теста "Скорость выполнение", вторая "Простота написания". Если эти два качества сложность достич, то Вы пишите тест другого типа, не модульный! Возможно интеграционный.

    С Файлом в тестах имеет смысл работать только и только тогда, когда Вы тестируете класс по работе с файлом. К примеру тест для std::fstream из C++ стандартной библиотеки или FileInputStream из java библиотеки. НО! За качество стандартных библиотек разработчики не несут ответственности.

    Другими словами Вам надо избавиться от факта использования файла в ваших тестах! Возможно Вашему классу нужно работать с интерфейсом стрима и свести работу с файлом через файловый стрим, в production коде и через Memory стрим, если это тестовый.

    Чтобы избежать создания объекта класса в каждом тесте, надеюсь Вы хотите убрать дублирующие строчки, то Вы можете вынести создание объекта в setUp() подобный метод или вынести создание в Factory-класс и тогда использование фабрики будет занимать одну строчку в тесте, что значительно лучше!
    Ответ написан
  • Как протестировать код который работает с shell командами?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Ну вот Вы сами и сформулировали ответ на свой вопрос. Попробую пояснить. Модульный тест, хороший тест, обладает качеством: его просто написать! Даже вопроса не возникнет, о том, а как написать-то? Если же написать сложно, то Вы, возможно, пытаетесь написать тест на код в котором выполняется более чем одна задача!

    Сейчас вижу, что у Вас в методе выполнется минимум два не связанных между собою действия:
    1. Создание дескриптора
    2. Выполнение какого-то действия с применением этого дескриптора

    Их надо тестировать по отдельности! Для действия №1 Вы можете написать тесты:
    1. Позитивный: это когда 0, 1, 2
    2. Негативный: когда меньше нул или больше 2

    Для действия №2: Вы тоже можете написать минимум два теста с правильным и не правильным дескриптором
    Ответ написан
  • Что необходимо установить для того, чтобы удобно программировать при изучении Python?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    "Без труда не вынуть рыбку из пруда" (с) не мое.
    Я к тому, что избегая одних трудностей не надо создавать другие. При изучении язык для Вас должно быть важным изучить язык так, чтобы Вы могли им пользоваться и мыслить в его терминах. Чтобы голова думала о решении проблемы, а не о том, как это можно выразить с помощью языковых конструкций. Исходя из этого думайте не о том как бы проще написать, а как закрепить языковые конструкции и идиомы в Ваши пальцы!

    Моя рекомендация: Python 3.4 + Sublime Text 3 + Far3 . Консоль и метод "пристального взгляда" в качестве отладочного способа привьет Вам понимание языка. Рекомендую так, потому что на первых порах Вам врядли удастся сделать очень большие приложения. А при небольших по размеру приложений пристальный взгляд и printf-отладка куда лучше закрепляет навыки чем быстрое тыкание в IDE
    Ответ написан
    Комментировать
  • Что должно уметь удобное python приложение для бекапа веб-приложений?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    А Вы спросите себя: "Если я завтра приду и сервер где работало приложение вдруг приказал долго жить, то какие данные мне нужны для БЫСТРОГО восстановление работы приложения?". Как только сможете перечислить, сразу же поймете ответ на свой вопрос ;)
    Ответ написан
    1 комментарий
  • Порекомендуйте литературу а так же интернет-ресурсы для тестирования?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Рекомендую сперва посмотреть Software QA Course от Михаила Портнова. Затем почитать про "жесткое обращение с багами", так и писать в гугле.
    Ответ написан
    2 комментария
  • Как убрать разделительные линии в PyCharm?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Вам бы английский подучить. Настоятельно рекомендую. Для запроса в гугл Вам понадобятся слова "методы", "разделитель". По-английски это 'methods' , 'separator' .

    1. В адресной строке наберите 'google.com'
    2. В открывшейся страничке наберите "pycharm methods separator'
    3. Искать или 'pycharm help' или 'stackoverflow'(наверное кто-то уже спрашивал подобное)

    Таким образом Вы легко наткнетесь на "https://www.jetbrains.com/pycharm/help/editor-appe..."
    Ответ написан
    5 комментариев
  • Что делать с ошибками в logging.Handler?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Зарегистрировать не только SMTPHandler но и файловый.
    Ответ написан