• Как установить модуль в python 3?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Совет: Отвыкайте ставить модули в общую кучу. Вместо этого используйте виртуальные среды. virtualenv, или модуль venv из стандартной библиотеки.

    Сделайте такое:
    1. создайте папку {your-project-name}
    2. cd {your-project-name}
    3. Запустите cmd.exe
    4. В открытой консоли выполнить "c:\python34\python.exe -m venv pyenv"
    5. Оставаясь в консоли выполните "pyenv\scripts\activate.bat"
    6. Распакуйте архив вашего patool
    7. Зайдя в папку архива выполнить 'python setup.py install'

    Возможно консоль cmd.exe придется запустить под админом. Есть небольшая вероятность, что это потребуется сделать
    Ответ написан
  • Не избыточны ли коментарии?

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

    Рекомендую поступать так:
    1. Если код нуждается в комментариях, то напишите по-английски, а затем создайте новый метод с использованием этого комментария и перенесите туда этот кусок кода. Возьмем к примеру Ваши "удаляет все записи" на код "clear : function(){" . Как бы вы написали по-английски? Наверное так "clear all records' , а почему бы текущего названия метода clear() не использовать комментарий clearAllRecords() ?
    2. Задавайтесь вопросом: "Если это не открытый метод и я хочу закомментировать его, то может быть мне стоит его переписать?". Открытые методы это интерфейс, которым будут пользоваться другие программеры. Он ОБЯЗАН быть задокументирован. А внутренний код либо покрывается модульным тестом, который поясняет для чего нужен кусок кода и какой должен давать результат и дает ли? Другими словами ваш модульный тест это САМЫЙ лучший вид документации
    3. Пишите всегда комментарий об алгоритмах, стандартах, положениях, хитрых трюках. К примеру "Этот алгоритм взят из книги Кнута том 2 стр. ЧЧЧЧ", тогда ваш коллега в случае сомнений пойдет и почитает как работает этот код в теории и поймет как должен работать и сравнит с тем что есть
    4. Если же модульного теста нет, значит поленились и это вполне возможно тема для рефакторинга. На простой код, просто написать тест! То есть простой код - читать просто и тестировать просто!
    Ответ написан
    4 комментария
  • Как помочь организму адаптироваться к резкому изменению графика?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Я бы порекомендовал вспомнить весь процесс погружения в ночной режим и после этого поступить также, но в обратном порядке с тем же темпом. К примеру вы погружались медленно, день за днем. Значит и обратно, тоже день за днем, но раньше ложиться.

    Что рекомендую:
    1. Утром отжиматься, подтягиваться, зарядку делать. Как отче наш
    2. На ночь открывать окна. Лучше спать в дубаке закутавшись в одеяло, но со свежим воздухом
    3. Во время работы делать перерывы с физическими упражнениями
    4. В день не менее 1км ходить\бегать
    5. На ночь тупо читать какую-нить не сложную литературу. К примеру усыпляюще действует учебник по технике безопасности на промышленных заводах. Как начнешь читать про какой-нибудь огнетушителе, то сразу начинает клонить в сон
    Ответ написан
    2 комментария
  • Поддерживает ли Python нативно графические интерфейсы?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Скачайте и посмотрите на Sublime Text
    Ответ написан
    Комментировать
  • Регрессионое автотестирование бизнес-процессов - как правильно?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    1. В тестах развилок не может быть! Другими словами Вы всегда должны разбивать тестируемый код на участки. До условия это один участок кода. Ветка кода с if-true(т.е. когда условие true). И ветка кода с if-false(т.е. когда условие ложно). Это три разных тестовых сценария. Вам будет проще для сопровождения.

    Тесты должны быть как можно проще!!! Было А, нажали что-то, Должно быть Б. Если не так, то заводим багу!

    2. Прежде чем писать тест надо задаться вопросом "А если здесь будет бага, то что это будет значить для бизнеса?" ответ "Клиенты массово будут просить денег обратно" - значит надо писать тест "Клиент купит, но будет недоволен" - нужно думать стоит ли писать тест? Вдруг есть более важные участки кода
    Ответ написан
    2 комментария
  • Стоит ли учить ассемблер для глубокого понимания архитектуры компьютера?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Удивляюсь, что не задали вопроса: А стоит ли вообще программировать?
    Про ассемблер: Конечно стоит!
    У Джоэла Спольски есть статья про то как протекаются абстракции. Все дело в том, что пока якобы на высоком уровне программирования все идет хорошо и Вы думаете, что все ОК и не паритесь. Но как только сталкиваетесь с нетривиальной проблемой, то тут же начинаете плясать с бубном. "привязка к железу" развивает мышление в более строгим. Ведь ни один из программистов не задается вопросом "А стоит ли учить математику?". Вернее задаются, но это маргиналы. Так и с ассемблером. Он развивает программиста таким образом, что после его понимания это уже будет более качественный программист по отношению к прежнему уровню.
    Ответ написан
    1 комментарий
  • Что является хорошим тоном в c++?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Знать оба способа положено!

    Способ "Сначала объявление, а потом где-нибудь определение" позволяет:

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

    Начинающим рекомендуют как раз-таки именно такой способ. А спустя время, когда у них развивается чувство кода, прекрассного, т.е. навыка писать достаточно структурированный и ясный код, то они сами того не замечая переходят на второй способ "Только тело без каких-либо предварительных объявлений" там где это возможно.
    Ответ написан
    Комментировать
  • Как правильно указать тип ответа для REST API?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Я бы предпочел второй способ. Указывание типа ответа вполне логично. Явное лучше чем неявное.
    Еще Вы можете без параметров, а прямо в endpoint-е от URI:

    На псевдо-питоне:
    @app.route('employes/<uiid:string>/format/<type:string>')
    def get_empoyes(uuid, type):
       if type == 'json':
         pass
       elif type== 'xml':
         pass
       elif type == binary:
         pass
       else:
         abort(404)


    Также отмечу, что ответ лучше всегда сопровождать с content-type. А то некоторые забывают и приходится писать детекторы формата ;(((

    P.S.:
    По выбору имен. Имя 'type' ни о чем не говорит. Тип чего? Ответа? А может тип служащего? Тип автомобиля на котором ездит служащий?

    P.S. #2:
    Рекомендую почитать статью-перевод на хабре "RESTful API для сервера – делаем правильно" и книгу, которую привели в конце части 2
    Ответ написан
    Комментировать
  • Что делает программиста программистом?

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

    Программист это прежде всего "Здравый смысл" и "Аналитический склад ума".
    Ответ написан
    Комментировать
  • Когда использовать указатели на объекты при объявлении в C++?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    1. Способ это переменная создаваяемая на стеке.
    2. Это переменная создаваемая в динамической памяти. Если конечно Вы или "Ваш друг" с оператором new ничего не сделали.

    Динамическая память куда большего размера чем область стека
    Ответ написан
  • Правда ли OTR шифрует все, кроме первого сообщения?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    С такими вопросами не вольно вспоминается следующее:
    “On two occasions I have been asked, ‘Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?’ […] I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question.”
    —Charles Babbage, Passages from the Life of a Philosopher
    (1864)
    Ответ написан
    Комментировать
  • Дизайн интерфейсов. Правда ли, что это перспектива в будущем?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Хотите кушать : учите математику! Зная математику мозги будут так работать, что голодным никогда не будете! Тут Вам и криптография, тут и BigData , и поисковые технологии и много много много всего!
    Ответ написан
    4 комментария
  • Что такое тестовый набор?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Почитайте книгу про жесткое обращение с багами
    Ответ написан
    Комментировать
  • Какую книгу по С++ выбрать?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    1. Учиться использовать google. Этот вопрос на этом сайте уже так много раз задавали, что даже удивляешься терпению участников тостера
    2. По сути вопроса: Посмотрите по моим ответам, т.е. заглянуть в профиль. Я уже не раз на этот вопрос отвечал.
    Ответ написан
    Комментировать
  • Не могу понять, что такое VOID в С++?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Влад Конвой Все просто. Из курса Computer science. Рекомендую почитать SICP!!!

    В математике На вопрос "Как это выглядит?" отвечает "функция". А на вопрос "Как же это получить?" отвечает "процедура".
    В С-подобных языках именованные вычисления оформляются в виде функций. Но функции в С-подобных языках отвечают на оба вопроса и нет ни одного способа разграничить. Функция в С-подобных всегда должна что-то вернуть! Какой-то результат! Какой-то новый объект. Но что-то новая вернуть по-любому должна!

    Теперь, а как же быть если хочется хоть как-то разграничить на функции и процедуры? Вот для этого есть "костыль" в виде 'void'! Другими словами это способ сказать читающему код: "мы ничего не возвращаем, мы только создаем". Это и есть "как это получить?" в таких функциях только производство чего-то нового. Нарисовать окно, зашифровать диск, послать другу .... А в в функциях возвращающих результат можно уже написать в терминах математики, то есть как что выглядит, но ни как что получается ;)
    Ответ написан
    Комментировать
  • Какую книгу посоветуете?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Сначала о самых главных навыках ЛЮБОГО программиста:

    1. Непрерывно улучшать чтение\письмо по-английски!
    2. Уметь искать ответы в google.com или др. поисковую технологию
    3. Всегда, всегда задаваться вопросом: "А может кто-то уже решил мою проблему?" и пользоваться навыком из п.2.

    По сути вопроса:
    1. Если опыта программирования нет, то я бы рекомендовал прочитать "C++ за 21 день" от Дж. Либерти
    2. Если опыт есть, то читать книгу Лафоре про Объектно ориентированное программирование на C++
    3. На этой стадии опыт написания кода уже есть, поэтому Стив Макконел с его Совершенным кодом
    4. После этого читаются правила от Скотта Майерса, но через призму скептицизма. На этом этапе уже должен быть достаточно опыта чтобы понять что вам подходит, а что нет
    5. Чтение Рефакторинга от Фаулера
    6. Только на этоп этапе читать Страуструпа. Читать вдумчиво. Читать так, чтобы каждое его слово и каждая его мысль была понята, прочувтвована

    Практикуясь той или иной фиче языка, идиоме рекомендую на реализациях алгоритмов сортировок, структур данных и всем что связано с алгоритмами.

    Да, и читать надо по-умному! Для программиста чтение проф.литературы означает "Непрерывно вбивать код" и пытаться применить хотя бы в каком-нибудь 'hello world'-е изучаемой технологии или языке или идиоме. Только постоянная долбежка позволяет вбить в память пальцев нужные и правильные вещи на уровне инстинктов, которые экономят время при создании больших программных проектов.

    UPD:
    Один из нюансов чтения проф.литературы заключается в том, что почти никогда нет возможности прочитать с первого раза! Будьте терпеливы, т.к. наверняка Вам придется перечитывать как минимум абзац, не редкостью будет перечитывание 2-3 страниц, а иногда и целой главы с начала. Процесс проф.литературы - итеративный. С первого раза формируется "общее" представление с "дырыми" по прочитанному материалу. Повторное чтение закрывает часть этих "дыр". А паралельная практика при этом дает еще ясное понимание того как надо и как не надо и где именно у Вас не получается.
    Ответ написан
    3 комментария
  • Bios состоит из последовательности команд из набора инструкций той машины, на которой он записан?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    lexaxaxa:
    Подскажите где Вы берете то что курите. Тоже хочу такое!

    А по делу:
    1) BIOS не выполняет процесс
    2) BIOS и CPU это разное! Одеяло и падушки это разное ведь!
    3) Процессор получает на вход машинные инструкции, декодирует, выполняет и взаимодействуя с другими вычислительными частями системы отдает им результат
    4) В BIOS содержится программный код, который и выполняет процессор.
    Ответ написан
  • ООП. Почему выводится none?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    /offtop: Рекомендую использовать ключевое слово __slots__ . Это позволит уменьшить размер объекта класса.
    Ответ написан
    1 комментарий
  • Ошибка Питона invalid syntax при написании пустой строки?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    >>while r=" "
    Если это было написано с целью проверить стрку на пустоту , то рекомендую заменить на:
    >>while not r:
    Ответ написан
    Комментировать
  • Нужно ли владеть С++ чтобы начать использовать технологию Cuda?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Ответ написан
    Комментировать