• C# или C++ для знающего C#?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Вам всего 15 лет! Чего паритесь то? Детей кормить надо? Жену одевать, содержать надо? На квартиру зарабатывать надо?

    Нет же ! У вас времени дофига! Пробуйте как можно больше. Ищите себя. Если вас к чему-то тянет, то и не стоит себя отговаривать. Вот когда будет 25, тогда и начните фокусироваться в строго очерченном направлении, а до тех пор пробуйте и эксперементируйте!
    Ответ написан
    1 комментарий
  • Можно ли инициализировать статический массив алгоритмом?

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

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Что рекомендую почитать :
    1. Что такое CPU bound, IO Bound, Memory Bound?
    2. Что такое GIL ?

    Если кратко, то:
    1. В Python-е "мультипоточность" решается в различных процессах, из-за п.2
    2. Знайте свою ситуацию как можно лучше!
    Если у вас все упарается в IO, к примеру много запросов от пользователей, то это одно. А если очень большой вычислительный процесс, к примеру подбор пароля, накладывание защиты, виртуализация кода и т.д. и т.п. это другое.

    Программисту достаточно часто приходится регулярно жертвовать чем-либо, чтобы что-то другое стало по-лучше. К примеру памятью лишь бы ЦПУ сэкономить, либо ЦПУ чтобы IO было по-круче.
    Ответ написан
    3 комментария
  • Закладки Firefox - чем обрабатывать, если их 'много', ПК, ведь, подвисает?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Вопрос требует уточнения. Попробую сделать предположение, что речь идет про открытые вкладки. Если это так, то автор не умеет настроить процесс работы за компом. Много открытых вкладок это ЗЛО!

    Процесс работы за браузером прост:
    0. Работа с бразером начинается с чистого листа. Нет ни одной открытой вкладки!
    1. Открывай и гугли то, что касается задачи
    2. Если нашел что-то по делу и тебе это кажется полезным и для будущего использования, то добавь в закладки
    3. Все что не нужно безжалостно закрывется
    4. В конце дня или после решения задачи закрывай все открытые вкладки. То что надо записано в закладки или в комментарии к задаче в баг-трекере

    Если это не так, то получаешь доп.инструмент для развития прокрастинации. Оно тебе надо?
    Ответ написан
    Комментировать
  • Как учиться новому после рабочего дня?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    1. 9 часов. Это уже ошибка. КЗОТ писали не дурни. 8 часов достаточно для работы, если человек не чаи пьет
    2. Пересмотрите процесс работы. По приходу на работу сначала делать самые важные. Прошу прочесть внимательно: сначала важные, а только потом срочные и другие. Отличие важных от срочных в том, что одни, как правило, делаются разово и про них забываются, а другие хоть и не срочные, но они влияют стратегически.
    3. Уделяйте время на то, чтобы подумать над "светлым будущим", т.е. создать\актуализировать список страгеческих целей и задач
    4. Делайте утром зарядку. Растяжку, отжимания, приседания. Это влияет на энергетику в организме
    5. Делайте перерывы во время работы.
    6. Чаще пейте воду
    7. Займитесь спортом. На своей шкуре опробовал и четко знаю то, что до занятия плаванием делал меньше, чем сейчас
    8. Окружите себя теми, кто куда-то стремится. Это не значит что надо всех других послать в Южную Америку на оз. Нахой. Это значит, что надо чаще общаться с одним типом людей и меньше с другим
    9. Стремитесь работать на результат, а не подсчет "жопочасов". В дальнейшем ставьте работодателю на собеседовании вопрос "Вам нужны жопо-часы или результаты?". Старайтесь выявить жмотов. Если вы вдруг справились не за 5, а за 4 часа, а работодатель жмотится и боится выделить время на самообучение сотрудника, хотя эти же знания будут применены при решении рабочих задач, то уходите от такого работодателя!

    Не смотря на то, что возникает соблазн прочесть еще одну главу в книге или что-то попрограммировать в ущерб занятиям спортом не стоит этого делать! Спорт обогащает энергетикой! При нём много чего развивается. К примеру из физических качеств развиваются выносливость и мышцы, а среди психологических стрессоустойчивость и упорство.

    После работы лучше тупить. Мозг должен "отдыхать". То есть заниматься структуризацией, обработкой того, что произошло за день.

    Старайтесь избегать рывко-образной работы. Все должно быть стабильно. Пусть даже небольшими кусками работы, но стабильно и бессбойно!
    Ответ написан
    6 комментариев
  • Как развивать логику для решения задач?

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

    Кто сказал? Где критерий, что вы должны, а что нет?

    Не знаю занимались вы спортом или нет, но приведу пример: Занимаясь плаванием я получаю от тренера задачу проплыть в полной координации кролем на груди бассейн на 25 м на одном вдохе. И когда остается 8-10 метров мне реально не хватает воздуха. У меня 2 варианта: 1. Сделать вдох 2. Терпеть не хватку и из последних сил тянуть к стенке и во чтобы то не стало доплыть!

    В программировании тоже самое. Вы ставите себе цель. Задаете себе вопрос стоит ли ее достигать и если надо, то во чтобы то не стало добивайтесь!
    Ответ написан
    Комментировать
  • Чем осуществить парсер/граббер защищенного сайта?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Ну если человек сидит с одного IP и его не банят, значит надо сделать так, как будто по сайту ходит "человек".

    Для этого предлагаю вспомнить общеизвестную задачу "банерокрутилку". Имеется N банеров. Их надо прокрутить каждый по 1 разу и за K секунд.

    В вашем случае в качестве банеров выступают URL-ы. K секунд делим на Т url-ов и получаем время на каждую ссылку. Но. Чтобы внести не детерменированность, то делаем это с разными промежутками времени перед между очередной итерацией парсинга.

    Посмотрите внимательно на вывод:
    site.ru/?page1
    site.ru/?page2
    ...
    site.ru/?pageN .

    Видите?

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

    Как правило люди пишут "влоб" потому что головою думать не хотят!

    Надо сделать "прогулку" по сайту так: site.ru/?page15, site.ru/?page179, site.ru/?page1, ... Одну страничку за 5 сек посмотрели, а другую 1минуту и т.д. Понаблюдайте за собою, как вы ходите по сайтам? Вы разве за 1-2 сек успеваете прочесть статью? Уверяю вас вы хаотично бродите по сайту. То в личные сообщения, то в избранные, то в поиск заглянете, то из выдачи поиска по какой-то статье. Вот и в парсинг вносите хаотичность

    Конечный вывод в том, что вам нужно выбирать между:
    • Если хотите быстрый парсинг, значит больше прокси
    • Если хотите с одного IP, то придется пожертвовать временем работы
    Ответ написан
    2 комментария
  • Как написать тест-кейсы на идентичные экраны?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Data Driven Testing?

    @testing.parameters[(2, 2, 4), (2, 3, 5), (3, 15, 18]
    def test_sum(a, b):
       assert(sum(a,b) == c)
    Ответ написан
    3 комментария
  • Где найти честного программиста на почасовую оплату?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Любой работодатель желающий поставить что-либо мне на комп для слежения вызывает отторжения.

    Если нет доверия, то не будет и взаимовыгодного сотрудничества.

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

    А если у человека кроме денег ничего нет, то и работать смысла с ним нет. Если руки из плеч деньги можно найти и в другом месте.

    Я к тому, что вам, автору вопроса, следует искать того с кем хоть какое-то время "вам по пути". А это предполагает общение с будущим "партнером" и не поверхностное. Не следует искать того, кто круто пишет код, но при этом не "горит". Посмотрите на github, bitbucket, может еще куда. Посмотрите блоги. Смотрите не просто как на еще одного чела знающего что такое while и for, а как на человека обладающего своим внутреннем миром. Загляните в него. Будет понимать, что им движет и следовательно знать чем мотивировать. Имея мотивированного человека не надо будет подгонять и подталкивать.
    Ответ написан
    Комментировать
  • Аналог книги "Программист прагматик" для менеджеров проектов, бывает такое?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    А чем вам не нравится "Мифический человеко-месяц" ?
    Ответ написан
    3 комментария
  • Что делать если project manager идет на поводу в клиента?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    А что вы хотели? Не разработчики же деньги дают, а клиенты! Хочешь денег значит надо думать о клиенте и хорошо понимать поговорку "Любой каприз за ваши деньги". НО. При этом надо четко доносить до руководителя о сроках реализации с ВНЯТНЫМ пояснением почему! При этом убедиться, что он об этих рисках ооочень хорошо осведомлен и понимает их также как и команда разработчиков
    Ответ написан
    Комментировать
  • Какие есть онлайн огранайзеры для развёртывания на своём сервере?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    А какую задачу решает любой органайзер? Прежде всего "Сделать задачу в срок".
    Любой багтрекер это умеет, примеру Jira. И время поставить, и задачу описать и заголовок и к проекту отнести и тегов добавить и много чего.

    Уверяю вас при использовании Jira и привычкой смотреть в баг-трекер о задаче забыть сложно!
    Ответ написан
    5 комментариев
  • Как при работе единственным веб-мастером-на-все-руки в компании максимально эффективно прогрессировать в веб-разработке?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Ответы уже дали. У вас не так много вариантов:
    1. Уходить в другую контору на оговоренный участок работы, к примеру бэкэнд
    2. Уходить в другую контору тим-лидом и направлять усилие коллектива на достижение конечного результата, тут фулстек надо знать
    3. Договориться по месту: либо у меня п.1 и п.2 и вы ищите "и швец и жнец и на дуде игрец" в лице другого человека, либо мы договариваемся о новых сотрудниках и я развиваюсь как тим-лид

    Сейчас на вас повесили весь веб, а потом "тыж программист, че, чайник починить не можешь?". Надо уметь выставлять рамки и ясно говорить "Об этом мы не договаривались, а все дополнительное по желанию и за деньги" и точка!
    Ответ написан
    Комментировать
  • По поводу антивирусов (Linux/Windows)?

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

    Я к тому, что простых решений, как вы хотите нет. Нужно отдавать себе отчет. Что сканирование на вирусы на Linux машине на предмет малвари под Windows будет в разы хуже чем на Windows машине.
    Ответ написан
  • В чем разница между Requests и Selenium?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Selenium это управление браузером используя webdriver. А Request это библиотека. Чем запущенный Google Chrome лучше чем Request? Да их сравнивать не нужно, это разное!

    Об этом на selenium2.ru прямо первой строчкой указано"Selenium -- это инструмент для автоматизированного управления браузерами."

    Когда вы используете Selenium вы пишите код по управлению драйвером. Да, вы можете это сделать на Python, но ведь можете и на любом другом языке.
    Ответ написан
    Комментировать
  • Что такое "call back interface"?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Для чего?

    Допустим ты пришел в мед.учреждение за справкой по какому-то там специалисту и к примеру справка будет делаться 4 часа. В конечном итоге ее можно будет забрать в регистратуре.

    У тебя две стратегии:
    1. Каждые 5 мин. подходить в регистратуру "А справка на фамилию Пупкина готова?"
    2. Оставить визитную карточку с телефоном на Пупкина и попросить позвонить, как будет готова справка.

    Какая стратегия более удобная? ;)

    Это принцип "Не звоните нам, мы сами вам позвоним".

    Так и в программировании есть некий код, который вызовут при наступлении некоторых условий(сеть доступна, файл появился, кнопку нажали, программа выключается и др.)

    Код, который вызывают это callback - "Обратный вызов". Некоторые условия - это событие.

    В примере выше callback-ом является Пупкин, а событием является "справка готова".
    Ответ написан
    Комментировать
  • Python без Django etc, что остается в итоге?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    >>но питон обычно интересен в веб разработке
    Ошибаетесь!
    Этот язык в вебе далеко не в mainstream.
    Но достаточно прочно удерживается свою позицию в топ-5.

    Его применяют при решении разногого рода задач, а не только в вебе. К примеру:
    * Reversing engineering. Вот топ-инструментов для реверсера IdaPython, IdaHiew, pykd(плагин для WinDbg)
    * Системное администрирование. Для админа или bash или python это не заменимая вещь!
    * Программы с GUI: К примеру Sublime Text слышали?

    А если уж вебом решили заняться, то сейчас мне кажется нужно смотреть не в сторону Django+Python, а в другую сторону JavaScript+NodeJs.
    Ответ написан
    9 комментариев
  • Веб-приложение на С++, реально?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Да. Реально. Но зачем?
    Каждому языку свой спектр задач и C++ в веб-разработку вписывается, но не там, где вы ищите. Посмотрите цикл про highload от mail.ru на youtube и будет понятнее где нужно использовать C++ в мире веб
    Ответ написан
    Комментировать
  • Как понять рекурсию в Python?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Прежде чем изучать рекурсию поймите сначала рекурсию.

    Рекурсия это способ решения задачи путем ее упрощения до такого состояния, когда задачу уже можно взять и решить, а не упрощать.

    Вам уже привели пример со степенью:
    2 ^ 2
    Известно что если упростить до:
    2 ^ 0 , то мы должны получить результат 1
    Вот и упрощайтее задачу возведения в степень до того, чтобы текущий показатель степени стал равным 0.

    def pow(num, n2):
    1 if n2 == 0 else num * pow(num, n2-1)


    И да, рекурсивно полезно мыслить. Не забрасывайте попыток разобраться.
    К примеру обход деревьев куда проще рекурсивно , чем в виде итеративного решения.

    Также, рекомендую почитать SICP. Эта книга дает ясное понимание между двумя нюансами по поводу рекурсии, о которых не каждый программист знает. Пример задачи : Напишите рекурсивную функцию вычисляющую факториал итеративно. Еще раз обращу внимание на формулировку: функция рекурсивная, а вычислить итеративно! Все это не бред и вполне логично, подробнее в SICP
    Ответ написан
    Комментировать
  • Ветки развития. Куда бы вы пошли из helpdesk?

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

    Платят не за популярность профессии, а за решение проблем! Но конечно же нужно на собеседовании спрашивать в лоб: "Вы платите за результат или за жопо-часы?".

    Есть два основных типа работодателей:

    Тип работодателей №1:
    На собеседовании говорят, что им важен результат. На деле, как только специалист справляется со своими задачами и начинает заниматься своими, к примеру фриланс-заказы, то начинаются обиды. Якобы он мог бы подойти и спросить чем бы еще занять. Это подход в НИКУДА.

    Тип работодателей №2:
    Также говорят, что им важен результат. На деле все так и есть. Если за день не осилил и не сделал дневную норму, то хоть ночью оставайся или бери работу на дом.

    На мой взгляд стремиться нужно ко второму типу работодателей. Это более честные рыночные отношения.
    При общении с таким типом работодателей нужно ЗАРАНЕЕ договариваться об объеме работы на день\неделю и четко осознавать, что может человек, а что нет. При таком договоре человек выигрывает в том, что если он научился справляться быстрее, то может заниматься своими делами зная, что никто не будет хавать мозг. А если начинают, то можно поднять наверх договоренности и задавать вопрос в ЛОБ. Что собственно мною и применяется. Есть вероятность, что некоторые отсеются, но разве у Вас есть задача нравиться всем? Но по мне так лучше сразу отфильтровать дебилов и работать с вменяемыми людьми.

    Из всего этого вывод один: Чем бы вы не занимались, лишь бы были виртуозом и всегда развивались. На одном месте можно заниматься многим и при этом честно выполняя свою работу. Всегда можно что-то автоматизировать, зарефакторить, улучшить или еще что-то, чтобы нагрузки по текущей работе было меньше и менее стрессово
    Ответ написан
    2 комментария