• Где искать единомышленников для создания проекта?

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

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Осилите Кнута, осилите в дальнейшем все что ни попадется на глаза. Уверяю, строчка в резюме "Осилил Кнута" может сослужить Вам очень хорошую службу!
    Ответ написан
    5 комментариев
  • Чем лучше всего визуализировать граф в С++/CLI?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Оформить в виде консольной утиллиты, выводить в STDOUT и подавать в python-Скрипт использующий matplotlib. К примеру
    Ответ написан
    Комментировать
  • Какую лучше взять книгу по C++ для начинающего?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Есть подобная тема Книга Стивена Прата по C++ для начинающего?. Кстати. Перед тем как учиться C++ рекомендую улучшить навыки по использованию google. Ибо экономит Ваше же время! К примеру это Search Operators.

    З.Ы.: Про гугл не стебусь, а на полном серьезе. Если меня забанят в гугле это будет один из самых печальных моих дней
    Ответ написан
    Комментировать
  • Книга по Java, стоит ли её купить?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Не надо ничего покупать.
    1. На YouTube есть видео-лекции по Java
    2. После этого справочник и очень много говнокодить
    Ответ написан
  • Как в API приложения разрабатываемое на Flask добавить получение большого бинарного файла?

    EvilsInterrupt
    @EvilsInterrupt Автор вопроса
    System programming, Reversing Engineering, C++
    Помогли советы, ответы и личная консультация Алексей и @Gen1us2k.

    Конечный итог:

    Сторона сервера, т.е. мое приложение:
    Как то так:

    app.config['UPLOAD_DIR'] = config.UPLOAD_DIR
    
    @app.route('/uploads', methods='POST')
    def upload_file():
       file = request.files['file']
       filename = secure_filename(file.filename)
       file.save(os.path(app.config['UPLOAD_DIR'],filename))


    2.
    Сторона клиента. Для тестовых целей, чтобы написать модульный тест проверяющий мое веб-приложение на Python воспользовался библиотекой requests. Достаточно легко гуглится и легко используется
    Ответ написан
    Комментировать
  • Как тестировать cmd скрипты на python?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Тестировать рекомендую на базе unittest модуля.
    Мои рекомендации:
    1. Тесты часто ломаются с абсолютными путями. Вывод: заготовить заранее шаблоны, которые относительно какого-либо каталога. А перед проверкой "действительный" результат подредактировать путем вычленения корневой директории
    2. Тесты часто ломаются связанные с датой. Вывод: Перед тестом задать дату от которой отталкиваться и смотреть на "не более N секунд" или "дата1 не больше даты2, которая 2 строчками ниже" и т.д. и т.п.
    3. Тесты часто ломаются если меняется IP . Вывод: привязываться только к тому что есть IP и что он рабочий, но какое его значение "фиалетово" или задать диапазон в которых он выделяется

    Наборы:
    1. Одна функциональность - один набор
    2. Если функциональность под разными углами смотрите все равно это один набор, но разные тесты
    3. В тестах чаще думайте о вынесении конфигурации куда-либо в словарь, чтобы можно легко было написать новый тест

    Мой вам совет: Если тест уже ничего не тестирует, не бойтесь мысли "Я же его столько писал, столько времени потратил", удалите его! Он свое отслужил.
    Второстепенный совет: Всегда и как можно чаще просматривайте тесты на хрупкость и актуальность на "сегодняшний момент"
    Ответ написан
    Комментировать
  • Насколько хорош Python для веб-приложений?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Пишите на PHP. Пишите хоть что-нибудь! Пишите столько сможете. Пишите за что платят. Пишите что интересно. Но пишите на PHP. А потом попробуйте Python. После этого таких вопросов у Вас не будет. Более-того, когда увидите кого-то кто советует "пых" для веба Вы не будете разубеждать. По той причине, что любой программист ОБЯЗАН наступить хотя бы разок на грабли. Только метод "наступание на грабли" лучше всех учит правильным вещам. Я еще не видел ни одного программиста, который наступил бы 20 раз на грабли и чему-то бы не научился.

    Так что вперед, к программированию на "пыхе" ;)
    Ответ написан
    6 комментариев
  • Как получить данные из dll на линуксе?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    А почему нельзя поднять Windows на VirtualBox ?
    Ответ написан
    Комментировать
  • Что такое машина Тьюринга и какое отношение она имеет к программированию?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Странно что Вы вообще к компьютеру не докапываетесь. Ведь по сути любое вычислительное устройство это 2 инструкции. Одна из них NOT , а другая либо AND либо OR. Вот на этих двух NAND или NOR строится ВСЕ вычислительные устройства!
    Ответ написан
    4 комментария
  • Как подключить библиотеку на c++ к проекту на go?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Есть общепринятый подход с использованием cgo. Об этом читать в ответе на вопрос из FAQ-a: Do Go programs link with C/C++ programs?
    Ответ написан
    Комментировать
  • Как узнать в каком месте csv файла ошибка?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Варианты решений:
    1. Если программа не Ваша, то поищете csv-linter
    2. Если программа Ваша, то примените log.debug(....)
    3. Если программа не Ваша, то на пишите скрипт lint-ер сами.

    Про нумеровано в порядке предпринимаемых действий.
    Это мое мнение, но думаю есть решение по-лучше!
    Ответ написан
    Комментировать
  • Как можно ещё сократить количество строк в коде?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Александр
    1. Как уже говорили в одном из ответов Вам надо дать отличные названия и убрать комментарии. Есть такое правило, если есть кусок кода, который хочется прокомментировать, то стоит этот кусок выделить в отдельную функцию и дать ей хорошее названии
    2. Функции нужно стремиться оформлять так чтоб они меньше побочных эффектов производили. Должна одна что-то спрашивать у юзера и выводить ему результат, а другие должны для нее выполнять вычислительную работу. У Вас же raw_input в одном месте, print в другом. Не зачем так писать.
    3. Не обязательно в маленькой функции писать обработчик исключений. Вынесите это в высокоуровневый код.

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

    EvilsInterrupt
    @EvilsInterrupt Автор вопроса
    System programming, Reversing Engineering, C++
    Собственно проблема не решаема, т.к. есть баг в ADB. Оказывается это давно известно.
    Ответ написан
    Комментировать
  • Как вносить правки в dist-packages в Питоне?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Найти этот модуль на гитхабе\битбакете или еще где и предложить свой pull-request.
    Ответ написан
  • Что включает в себя работа тестировщика?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Работал и программистом и тестировщиком. Вторая интереснее. И для бизнеса важнее.

    Приведу пример:
    * Вендор затратил усилия, разработал прошивку, программы, дизайнеры все хорошо придумали и вот Вы находясь в магазине и держите в руках мобильный телефон, который давно ждали и хотели купить. Вдруг Вы понимаете, что хочете поделиться радостью со своей женой\девушкой\другом , пытаетесь сделать звонок а телефон не звонит!

    Вопрос: Будет ли для Вас как пользователя хоть что-то значить в плане разработки? Будете ли Вы его покупать зная что он не звонит?

    Другими словами: Тестировщик обладает правом наложить веское слово "Продукт в релиз я бы не выдавал". В случае веских аргументов, читай задач с описанием серьезных ошибок Product-Owner его слова примет к сведению.

    История ИТ знает как компания Intel меняла процессоры из-за ошибки в расчете вещественных чисел. Это колоссальные убытки для компаний!

    Да. Как разработчик я отлично понимаю мысль "чтобы что-то продать надо что-то это сделать", но куда важнее чтобы это "что-то" было надлежащего качества, иначе все усилия в никуда!

    Нет, ну правда, какая Вам разница сколько паттернов проектирования, алгоритмов или идиом было применено при разработке, если продукт не работает? Лично я беря мобильный, проверяю его работу по основным функциям и в случае чего беру другую модель, возможно другого вендора!

    Так, что тестирование это оочень важно! Да и программирования там тоже не мало, т.к. в ручную все проверять это утопия
    Ответ написан
    Комментировать
  • Какие знания и умения будут полезны для работы с чужим кодом?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Не скажу, что очень большой знаток и умелец.
    Поясню только свой опыт.
    1. Пока работает код как надо - НЕ ТРОГАЙ его. Другими словами не обязательно что-то изменять. Вместо изменения можно написать обертки, другими словами вспомнить что существует паттерн проектирования Фасад.
    2. Если же трогать нужно и в унаследованном коде бага - НАПИШИТЕ ТЕСТЫ. Не стоит на себя надеяться. Не надо из себя строить рэмбо. Подумайте как вы проверите результат своей работы после изменения? Другими словами, починив одно легко сломать что-то другое.
    3. п.1 и п.2 со временем дают набор оберток и набор тестов, которые позволят Вам планировать работы по рефакторингу. Да, его надо бросаться делать не сразу, а только после серьезного набора тестов и оберток из вами написанного кода.
    4. Чаще спрашивайте у заказчика о том, все ли фичи нужны или какие-то уже не приносят дохода? Другими словами : нет кода - нет багов и нет проблем с поддержкой!
    Ответ написан
    Комментировать
  • Как записать в set?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    То что Вам надо называется "Как разбить строки используя свой собственный делимитер". В гугл это задается примерно так:
    1. Открыть google.com
    2. Написать "C++ how to split string"
    3. Нажать на Enter

    У меня получилось найти How to split a string in C++

    P.S.:
    В современном C++11 появился модуль по работе с регулярными приложениями. Я к тому что текст можно очень серьезно анализировать, если Вы можете писать регулярки ;)

    Факты о STL-контейнерах:
    * Позволяют вернуть итераторы
    * Позволяют создать самих себя на основе итераторов

    Имея вектор можем вернуть его итераторы. Имея итераторы от вектора можем создать множество на основе итераторов от вектора
    Ответ написан
    Комментировать
  • Как правильно построить URL в идеологии REST?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Может поможет:
    * pyvideo.ru/video/87/python-rest-api
    * thenextcode.ru/post/10-kak-pravilno-delat-rest-api...
    * habrahabr.ru/post/38730

    Насколько я понял выигрывает тот API, что содержит:
    * версию
    * существительные
    * Стремится не содержать глаголов

    GOOD:
    super-puper-api/ver1/resource

    BAD:
    super-puper-api/getResources
    Ответ написан
    3 комментария
  • Какую библиотеку C/C++ выбрать для рисования графиков функции?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Tufitko
    Вам уже Армянское Радио советовал про Unix-way. Можно поступить немножко по-другому. Вы пишите консольную программу, печатающую на stdout в виде csv-формата. Далее с помощью python-а и библиотеки к нему matplotlib.org/ получаете более дешевый в разработке и в тоже время кросс-платформенный вариант ;)
    Ответ написан
    Комментировать