← Форум · Повна версія · EN · RU · UK

В Comodo соискателям ебут мозги, предлагая за два дня написать антивирус на C++

legacy_Жук_- · 17.08.2017 · 0 балів · 0 переглядів

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

Disclaimer
_Впереди вас ожидают теоретические рассуждения, немного C++ кода и алгоритмов. В общем, статья получилась с техничесмким уклоном. Особо неокрепшим умам просьба воздержаться от прочтения. Весь код, упомятый здесь, не приаттачен, поскольку не вызовет интереса у широкой аудитории и не несёт какой-либо практической ценности
отдельно от статьи._

Итак, поехали. Один мой коллега, так уж вышло, начал поиски работы по вакансии Middle/Senior C++ developer. Да-да, есть жизнь за пределами ангуляров. В какой-то момент к нему постучалась hr и предложила “интересную” вакансию в Comodo. Для тех, кто вообще «не в кугхсе», компания разрабатывает продукт Comodo Internet Security и достаточно
известна в мире кибербезопасности (не так известна, как ProtectMasters, но всё-таки):

https://ru.wikipedia.org/wiki/Comodo

И чуть больше про сам продукт можно найти здесь:

https://ru.wikipedia.org/wiki/Comodo\_Internet\_Security

У компании есть офис в Киеве, куда, собственно, она и хотела бы нанять ещё девелопера (или нескольких). Всё складывалось вполне обычно, но ВНЕЗАПНО закрутилось с новой силой.

Описание вакансии и требований

Для начала ознакомимся с описанием вакансии и требованиями к кандидату:

https://www.work.ua/ua/jobs/2118094/
http://telegra.ph/MiddleSenior-C-Developer-08-02

Первый мелкий факап бросается в глаза практически сразу:

картинка не сохранилась в архиве

Что же это за требования такие, в которых опыт работы от 2-х лет, а опыт коммерческой разработки под винду минимум 3? И я молчу про 5 лет опыта в плюсах. Но не будём доёбываться, в целом глянем на требования:

картинка не сохранилась в архиве

Если кратко, то кандидат должен знать C++, многопоточность, STL, COM/ATL. Остальное – будет плюсом.

“С хуя ли мы так всё детально обсасываем?” — спросит любознательный читатель. А потому, что комодо даёт кандидатам тестовое заданьице. И не какое-нибудь там на 30-40 минут, а, сука, целый проект.

Тестовое задание – напиши антивирь

Заводят на тестовое вас определённым хитрожопым способом. Вначале разговор идёт о том, что вы умнейший и милейший человек. Конечно, никто не сомневается в вашем опыте и скилах, но нужно, чтобы вы показали свой продакшн код.

Как правило, да что там – в 99,99 % такой код показать вы нихуя не сможете, потому что педалили продакшн за бабки и под NDA. А, значит, если покажете, то нарушите условия договора со своим предыдущим заказчиком. Контрибьютить в опенсорц за “спасибо” любят немногие. А даже если и любят, то фикс бага в три строчки вряд ли покажет твоё неимоверное владение паттернами и новым стандартом плюсов. Была тут статьейка на ебаненьком, как гнобить разработчиков – читай про опен репозитории там.

Вот мы и подходим к тому, что показать ты можешь только своё еблище в скайпе. Рекрутёру очень-очень жаль. Но выход есть – тестовое задание. Тебе-то с твоим опытом и навыками его сделать – как два пальца! И щедрая компания комодо готова ждать даже несколько дней, всё для тебя. Бери весло и хуярь только. И вот оно – тестовое – уже летит тебе в скайп:

You need to develop simple malware detector.

Scanner

Scanner is core component implemented as shared library (DLL). Scanner component must be able
to:
— Scan file by path
— Scan array of bytes
— Load signatures file

Implement appropriate methods in the scanner interface.
Malware detection algorithm is the following: if scanned file contains any of predefined byte
sequences, it is considered infected.
The sequences are stored in the regular text file separated by newlines, in the following format:
HexString.{GUID}

Examples:
01ABEDFF55.{ab306a70-0fd2-4b4b-84fe-f9ebd899d90f} EE21DEAD827739ACCD028FFC.{5c34b10f-3f6d-4bbb-b9ec-2faa1ee07660}
If appropriate sequence is found, scanner must return its GUID. Use file mapping to increase
scanning performance.

Client

Client is UI or console application. Client application must be able to:
— Uses Scanner component to recursively scan specific folder.
— Scanning progress must be displayed.
\-Scanning must be performed in the thread pool (2 threads per CPU core).

Bonus tasks (optional)

— Use modern C++11, C++14
— Implement Scanner and Client as separate processes with an IPC.
— Implement Scanner component as COM object in an in-process or out-of-process COM
server using ATL. Use ATL classes in Client application.
— Unit tests for Scanner classes.
—————————————————————-
You are free to refer to any documentation/internet etc.
Task estimated time: 1 — 2 days.

В сухом остатке – новый стандарт, а также ATL/COM – не являются обязательными навыками, но будут плюсом. Про WinAPI не говориться вообще.

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

Плюс, как вы заметили, никакой технический специалист пока на горизонте не появлялся – тестовое даёт hr, не отстреливающий нихуя – просто бери и делай, там видно будет.

Выполнение тестового

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

Была сделана динамическая библиотека и исполняемый файл. Система сборки cmake, поддерживаемые оси – винда, мак и убунту. Было решено, что антивирус должен поддерживать как можно больше платформ, потому от решений типа COM/ATL стоит отказаться. Использовался новый стандрт С++ а также QtCore. Код покрывался тестами (gtest).

По функциональности всё было реализовано (сканирование, обход директорий и поддиректорий, отображение прогресса и т.д.) и работало на винде и убунте – за пару дней успел протестить только их. Было потрачено 4 вечера. Конечно, всё было не идеально, но товарищ отправил то, что было. Стал ждать фидбэка.

Для тех, кто не в курсе, что есть COM:
https://ru.wikipedia.org/wiki/Component\_Object\_Model

Простыми словами – это срань, прибитая к винде гвоздями и разработанная очень давно. В современных продуктах от неё отказываются, т.к. абсолютно непереносима на другие ОС.

ATL – срань, которая выходит из предыдущей срани, и нужна для использования первой:
https://ru.wikipedia.org/wiki/Active\_Template\_Library

Использование этого говна под большим вопросом в продуктах секьюрити, которые должны идти в ногу со временем и/или впереди планеты всей.

Сука, фидбэк

Наконец, настал этот день – день фидбэка. Он пришёл – вот он:

Добрый день!Спасибо, получили Ваше тестовое задание. По нему уже пришел фидбек:
usage of QFile instead of native file mapping and QThreadPool instead of STL or native windows threads as well as many controversial design decisions force us to think candidate is not suitable for our project

Всё! 4 вечера были проёбаны. И теперь ты знаешь, что после создания экземпляра QFile всё пошло по пизде. Если прочитать более вдумчиво, то парни хотят, чтобы вместо кроссплатформенных решений ты юзал API операционной системы. И если с файловым маппингом это ещё куда ни шло, то с потоками в Qt был реализован паттерн map/reduce, который в новый стандрат STL пока ещё не вошёл. Есть только предложение, парни, proposal:

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3446.pdf

Про many controversial design я вообще не понял – что это, блядь, за срань? Человек потратил 4 вечера, хули вы тут взагали по загалям пишете? Где нормальный фидбэк?

Парням, видимо, через некоторое время стало стыдно, и пришёл более полный фидбэк.

Фидбэк 2 – перезагрузка

Более полный фидбэк содержит на несколько строчек больше – рассмотрим их все.

1) Checker.cpp: Checker::Knuth_Morris_Pratt() throw std::runtime_error("Pattern not found");
_Why «throw» instead for the «return bool»?_

Для поиска сигнатур использовался алгоритм Кнута-Морриса-Пратта. И пацанов вообще не смутило, что использовался именно он. А должно было, ведь для поиска сразу нескольких сигнатур он не подходит, а подходит Ахо-Корасик:
https://en.wikipedia.org/wiki/Aho%E2%80%93Corasick\_algorithm

И парни из Comodo могли бы это заметить, но увы. Доколупались они к генерации исключения вместо возврата кода ошибки. Да будет вам, хлопцы-комодцы, известно, что «Чистый код» Роберта Мартина советует как раз генерировать исключения, ведь это добавляет в наш код наглядности. В общем, эта тема весьма холиварна, а вот эффективность алгоритмов – нет. Парень не успел реализовать Ахо-Корасик за 4 дня, а вы нихуя не отстрелили этого в своём же тестовом.

2) Dispatcher.cpp: void Dispatcher::SetGuid(const std::string& Guid) { memset(guidMemory, 0x00, GUID_SIZE); memcpy(guidMemory, &Guid[0], Guid.length()); }
_What happened when Guid length will be greater then GUID\_SIZE?
(Да, этот метод вызовется лишь после проверок на валидность строки
гуида, но все же)_

Весь код не приводится здесь, как вы помните. Поэтому я кратко поясню ситуацию. У нас есть буфер фиксированоого размера, в него копируются данные из строки. Размер строки не фиксирован, поэтому для его определения используется метод length(). Здесь возможны 3 случая:
— строка длиннее буфера (то, чего парни опасаются), тогда может быть переполнение буфера;
— строка и буфер одинаковой длины, это нормальное поведение;
— строка короче буфера (парни не учли этот вариант).

Для того, чтобы исключить первый и последний вариант, строка перед подачей в рассматриваемый выше метод, проходит предварительную проверку на валидность. Невалидные строки не попадут сюда никогда. Таким образом, комодцы повторили поведение статического анализатора, именуемое как false positive. Т.е. приколупались к вполне нормальному куску кода.

Комодцы, рекомендую вам курс:
https://www.coursera.org/learn/software-security

Где на пятой неделе вам расскажут, каким образом статический анализатор должен проверять безопасность кода, как это достигается математически, а также что можно считать уязвимостью, а что – нет.

3) Mapper.cpp: Mapper::Mapper(const char* fileName) auto tmp = file.map(0, file.size()); if (!tmp) { throw std::runtime_error("Unable to map file"); } buffer.reset(new uint8_t[file.size()]); — Недопонимание идеи маппинга файла?
memcpy(buffer.get(), tmp, file.size()); — А что если память для
buffer не выделилась?

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

Теперь вторая их претензия, что будет, если память не выделилась. Комодцы сами говорят про стронг скиллз в плюсах, и так косячат. Если память не выделилась – будет исключение, и до memcpy дело не дойдёт. Почитайте, комодцы, вам будет полезно:
http://www.cplusplus.com/reference/new/operator%20new/

4) Scanner.cpp: const char* GetInfectedFileGUID(const char* path) Can return nullptr, valid GUID string and empty GUID (0000-0000-...)
_And all these results will be printed as founded matches._

А вот этот пиздёжь даже комментировать тяжело. Как вы помните, антивирь работал, его тестировали. А значит – он собирался и запускался. Если бы комодцы достали руки из жопы и запустили эту поделку, то увидели бы лог, в которого таких “founded matches” почему-то не было. Возможно, потому, что они нихера не могут читать в статике код. Парни, что это – недопонимание С++?

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

Вывод.

1\. Мопед не мой, я только написал статейку на ебаное. Сам код тестового я не писал, его писал другой человек. Но он положил на вас, Comodo, хуй, и я бы положил, если бы вы не начали стучать мне в linkedin с этой сраной вакансией.

2\. Убеждаюсь, что делать какие-то тестовые, не поговорив с техническими специалистами “до” — пустая трата времени. Также как и трата времени – общение с фриланс рекрутерами. Конечно, хотелось бы общаться с рекрутерами компании напрямую, если уж без рекрутёров никак. Но могу сказать из своего личного опыта, что рекрутёры в больших компаниях заняты рассказами друг другу о том, как они на выходных в клубешниках с причмокиванием сосали писюны. На работу времени не остаётся. Вот и приходится нанимать сторонних фрилансеров.

3\. Комодо затеяли какую-то хуйню. То ли там у руля сидит дебил, который вообще без дупля во всех этих технолоГейях, то ли нужно показать руководству, что в Украине некого нанимать. И потом в ход можно пустить кумов, сватов, братов и прочих? Хуй его знает, но что-то там явно не здраво.

4\. Читатель, если ты захотел в Комодо, возможно, тебе не стоит тратить своё время на людей, у которых цель – просто поебать тебе мозги?

5\. Комоды, комодцы, комодовцы! Ну нахуя вы это делаете? Получается, что вы заявили достаточно высокую зп на вакансию, но никого не хотите нанимать? Кандидаты рвут жопы, рекрутёры рвут жопы – а вам это не стоит ни копейки, ведь вы платите за результат, а его нет.

6\. Рекрутёр! Не трать своё время – эта вакансия будет висеть вечно.

7\. Редакция, жду ваших комментов. Интересно мнение со стороны. Кто виноват, кто прав, что
делать?

Комментарий ебаной редакции

Дорогой Анонимус! Спасибо за отличную статью. Шарящих в «плюсах» в редакции нет, поэтому по технической части остается лишь поверить на слово. Касательно тестовых заданий на несколько дней, то здесь, конечно, тонкий вопрос. С одной стороны, время всегда жалко, поэтому неплохо бы таки перед приступлением к заданию пособеседоваться с технарем, чтоб вы друг друга поняли и чтоб не было явного кидка. Большие задания (больше, чем на полдня, а то и на несколько дней) — это настоящая роскошь, несколько часов/дней жизни. Как правило, стороны понимают это, поэтому действует негласное правило — если решение худо-бедно работает, контора не ебёт мозги и берет человека на работу. Ведь по сути это работающая программулина, законченный мини-проектец. Даже если никто его никому впаривать небудет, это завершенный кусок работы, на который были затрачены личное время и усилия — это уже достойно уважения. Исходя из вышеперечисленного, можно сделать вывод, что либо у Комодовцев нет опыта в найме, либо им не горит и они перебирают кандидатами, пренебрегая их лояльностью и особо не парясь. Что ж, ну, будут, значит, и дальше разрабатывать своё Комодо ограниченными ресурсами. Другу же совет — если речь идет о драгоценном времени — лучше по сто раз переспросить HRшу на предмет контакта с технарем и четко дать понять, что личное время — на вес золота.


Коментарі (272)


legacy_Фронтендер_от_Бога · 17.08.2017 · 0 балів · відповісти

А шо такое C++?

legacy_Хипстер · 17.08.2017 · 0 балів · відповісти

Язык для инвалидов умственного труда

legacy_Руби_лучше_всех · 17.08.2017 · 0 балів · відповісти

я не пидар

legacy_БОГ_1 · 17.08.2017 · 0 балів · відповісти

Ты можешь написать что угодно, но мы знаем правду

legacy_фыв · 25.08.2017 · 0 балів · відповісти

отвечу на поставленный собой же вопрос:
1\. Пункт «Описание вакансии и требований». Глупый наезд на требования к соискателям — он уныл более чем полностью. АМ считает, что за меньше чем 5 лет можно стать помидором в С++? Флаг ему в одно место, и пожелаем ему чтобы он с такими помидорами-С++ сам работал всю свою никчемную жизнь.
2\. Удивление что надо портатить «кучу» своего времени и сделать тестовое…. RLY? — кто считает также как и автор — можем поспорить на тему тестовых отдельно
3\. Удивление временным периодом — 1-2 дня — как будто кто то ожидает что надо будет прогать 24-48 часов — то что в тестовом задании пишеться за 4-8 часов с написанием черновика, его причесыванием-рефакторингом, и вылизыванием кода
4\. «Гарантии трудоустройства никто не даст»? RLY?
5\. Удивление что задание выдал HR — а кто его должен выдавать? Может тот кто раскажет как его делать? Если мозга не хватает понять что просят …
6\. Кандидат проебал 4 вечера — хотя срок был 2 дня. Кто ему доктор?
7\. Кандидат мог взять 2 выходных — если понимал что не успеет за 2 дня. Но он взялся за тестовое сразу, а не попросил тестовое на выходные (полное право кандидата, когда ему делать тестовое).
8\. Кандидат взял какую то Qt срань для низкоуровневых вещей, хотя про Qt в задании ничего сказано не было, а наоборот было пожелание использовать stl в котором всё это есть в новых стандартах, которые просили применять.
9\. Кандидат получил объективный фидбек, но к сожалению ЧСВ не позволило ему принять его (тем более ему расписали что к чему)
10\. Про алгоритмы я молчу — раз разрабы это не упомянули — там был вопрос не как эффективно накатать — а посмотреть что сможет сделать чувак вообще, а не как написать супер эффективно
11\. memset & memcpy в C++ коде? RLY? да ещё и с откровенной дырой и затиранием памяти. Ну и кроме того что есть замечательный класс boost::uuid, чтобы не передавать строку, на крайняк прописать std::array
12\. исключения в софте требующем быстродействия отключаются (но конечно вопрос спорный, тут вероятно если бы не было факапов выше, они могли бы поспорить на дальнейшем техническом собесдовании-обсуждении)
13\. Отсутсвие проверок кодов ошибок и состояния файлов и выделения памяти (в случае если код компилиться с отключенными исключениями)
14\. Чувак выделывается знанием cmake вместо знания С++

Итог: то есть чувак прислал им код, повыделавывшись знанием Qt вместо запрашиваемого stl, но при этом у него в С++ коде всякие memcpy, memset и тот самый пресловутый new, и выдав в итоге нагора код, который может многократно «выстрелить в ногу»

Вкратце для многих на будущее Qt — это для GUI, stl > boost > qt — если уж пошло, и надо стараться минимизировать использование последних, и брать только то, чего нет в stl

ну кто так пишет на плюсах то в 2017?

так что я могу сказать как С++ — КГ/АМ, ё-айти не хватает технического редактора чтобы не пропускать этот позор

legacy_фыв · 25.08.2017 · 0 балів · відповісти

на тему тестовых:
если ты реально крут (а это означает что ты с ЛЕГКОСТЬЮ выполнишь тестовое, знаешь за сколько, и знаешь что успеешь в запрашиваемые сроки), то это означает, что ты и правда его сделаешь, пройдешь этот тест и получишь офер, и вот этот офер ты можешь легко пододвинуть на свой собственный рейт \* на количество часов потраченных. И получишь за год на целых (12\*рейт\*количетсвоЧасов) «убитых енотов» больше.

если ты такой гордый и принципиальный, и не хочешь делать тестовые — шлёшь всех нахер,
вариант продавить оплату тестового задания — когда она должна быть сделана? по какому факту — если соискатель прислал «хелоу ворлд»? каким рейтом? как трекать время? куча вопросов без ответов. Но по хорошему, если ты уж такой приниципиальный — так напиши код, который не стыдно показать — вокруг есть куча задач, которые требуют автоматизации, потрать раз в жизни те самые 4 дня, чтобы каждый раз не попадаться на вот таком моменте. Или хотя бы используй код, написанный на каком то предыдущем тестовом. Правда тот код что в статье я бы не показывал никому.

но обычно тестовые больше 4-8 часов не даются, а я написал что подобные задания (как в тексте) делаются за 4-8 часов, что не так много — особенно если взять их на выходные (все равно на выходных кодить ты будешь — какая разница что?)

и на последок, потратить 1.5 часа на техническое собеседование с малопонятными вопросами по скайпу и кодингом в google docs, а потом на ещё одно и скорее всего уже у доски лично + дорога, намного больше гемора и меньше удовольствия чем покодить «для себя» тестовое, развернувшись по полной — создав свою архитектуру, используя любимый кодинг-стайл и т.д.

legacy_Капитан_Говна_1 · 17.08.2017 · 0 балів · відповісти

Ангулярский выпиздок, нахуй пошел!

legacy_Ангулярщик · 17.08.2017 · 0 балів · відповісти

Теперь я понял, почему Рыба и Жук не признались, что они кресты знают!

😀😀😀

legacy_Scala-гребец · 17.08.2017 · 0 балів · відповісти

Вот тут годный совет есть: http://labor-union.wikia.com/wiki/Lifehacks

Никогда не соглашаться на бесплатные стажировки или стажировки за МРОТ/еду. Никогда не выполнять тестовые задания задаром. Любая работа на дядю должна хорошо оплачиваться.

И еще там куча годных советов:

Заниматься исключительно вашими должностными обязанностями и не позволять навешивать на себя чужих. Если ваша должность — Software Engineer или Senior Software Engineer, то вы должны и обязаны заниматься разработкой софта. Никакое ручное или полуавтоматизированное тестирование, никакое обучение джуниоров, никакое преподавание в вузе, никакое замещение тимлида в течение двух недель (на время которых вам, кстати, не повысят вашу почасовую ставку), никакое проведение семинаров, никакая уборка помещений, никакие погрузочно-разгрузочные работы не входят в список ваших обязанностей. Современный технический специалист не должен позволять управленцам садиться ему на шею и ездить на нем. Занимайтесь только разработкой софта, делайте свою работу хорошо, становитесь отличным техническим специалистом и безгранично развивайтесь в этом направлении.

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

Легко менять компании, если вы почувствовали, что на текущем месте работы развитие вас как технического специалиста идет недостаточно быстро. Никогда не привязывайтесь ни к работе, ни к работодателю, ни к коллективу. Выходите из зоны комфорта раз и навсегда. Вообще не привязывайтесь ни к людям, ни к работе. Также не тратьте ваше время на женщин, особенно, если они не понимают важности ваших профессиональных интересов, тормозят ваше развитие, расхищают ваше время, внимание, деньги и прочие ресурсы или требуют от вас наличия каких-либо социальных статусов, особого положения в обществе, смены профессии, перехода на управленческие должности и так далее.

И так далее.

legacy_грєбун · 18.08.2017 · 0 балів · відповісти

Если не брать на себя интересной работы НЕ входящей в твой нынешний рейт то он будет стабилен как могильный камень.
Важно понимать что не стоит брать тупую работу которую на тебя скидывают и самому выбирать как и куда расти

legacy_Лактобактерия · 18.08.2017 · 0 балів · відповісти

\> Если не брать на себя интересной работы НЕ входящей в твой нынешний рейт то он будет стабилен как могильный камень.
Это и есть:

Требовать давать вам только те задачи, на которых реально можно стремительно вырасти. Если вы — студент, то требуйте задач уровня миддла. Если вы — миддл, то требуйте задач уровня синиора. Если вы — синиор, то требуйте задач уровня архитектора

legacy_ЯбудуУстанавливатьВСЕигры · 18.08.2017 · 0 балів · відповісти

«Также не тратьте ваше время на женщин»

Uspeh yaNeTrachuVremyaNaZhenshin = new Uspeh();

Uspeh zhenshiniNeTratyatVremyaNaMenya = new Uspeh();

boolean hozyainZhizni = zhenshiniNeTratyatVremyaNaMenya.equals( yaNeTrachuVremyaNaZhenshin );

System.out.print( hozyainZhizni );

legacy_Danu · 19.08.2017 · 0 балів · відповісти

Да это же школьник писал. К тому хе, тупой, как пробка. А работе не имеет ни малейшего понятия. Вот, несколько мною выбранных «перлов»:

Если вас заставляют писать документацию к вашему проекту или к части проекта, то не стоит разжевывать все такого состояния, чтобы понял первый встречный.
Также регулярно сливайте к себе домой исходные коды всех проектов компании, новые версии клиентских баз и так далее.
От мыслей «Ох, что же подумает мой начальник» и «Ох, что же подумают мои коллеги» вам нужно избавиться раз и навсегда.
Купите себе бумажную книгу «Трудовой кодекс Российской Федерации» и держите ее все время на вашем столе на работе. Во время обеденного перерыва или вынужденного простоя перечитывайте у всех на виду данную книгу, вызывая приступ лютой бессильной злобы у вашего руководителя.
Как выжить в РФ инженеру? … Во-вторых, завести себе ИП, а еще лучше — ООО.
И никогда не соглашайтесь работать в штате. Работайте как инженер только в качестве ИП или ООО «Иван Иванов Инжиниринг».

legacy_Ушат_Помоев · 18.08.2017 · 0 балів · відповісти

а эта такой язык программирования, на котором написан браузер, в котором ты спрашываиш «шо жэ эта такоя»… о как!
PS: надеюсь шо вапроса про «шотакое бравзер» нипаследуид…. гыгы.

legacy_Хипстер · 17.08.2017 · 0 балів · відповісти

Крестоебы хуже обезьян

legacy_Плюсовик · 17.08.2017 · 0 балів · відповісти

Хипстота хуже крестоёба.

legacy_дядя_вася_2 · 17.08.2017 · 0 балів · відповісти

COM/ATL — это же говно мамонта, 10 лет назад это было актуально.

legacy_лёгкий_Митин_клитр · 17.08.2017 · 0 балів · відповісти

COM/ATL — это и не кресты, это клоунада.

legacy_старый_хер · 17.08.2017 · 0 балів · відповісти

ATL поделка для visualC, типа упрощающая разработку COM серверов. COM/COM+/DCOM всего лишь спопсоб имея контракт,(интерефейс) дернуть имплементацию на сервере, ну и проч. DCOM — был мертв, т.к. были секьюритные дыры. CORBA убила DCOM.

legacy_Ушат_Помоев · 19.08.2017 · 0 балів · відповісти

конечно хуже! теорема доказывается из аксиомы «люди хуже животных» прямой подстановкой….

legacy_пейсатель · 19.08.2017 · 0 балів · відповісти

бородатое, берущее в рот хуйло, ниасилившее сишные двойные указатели на функцию, возвращающие указатель на функцию, которая принимает тройной указатель на функцию, которая принимает двойной указатель на функцию, которая принимает указатель на bool

legacy_Тамада_собачьих_свадеб · 17.08.2017 · 0 балів · відповісти

Антивирусные галеры всегда выделялись неадекватностью

legacy_онаним · 17.08.2017 · 0 балів · відповісти

как и их продукты.

legacy_Бенис · 17.08.2017 · 0 балів · відповісти

Хули взять с виндового быдла?

legacy_КлятыйКацап · 17.08.2017 · 0 балів · відповісти

я веду светские беседы с богоподной кортаной на винде и пишу к ней ботов, которые расширяют ее функционал
а вы дальше ебитесь со своим терминалом

legacy_пициносец · 17.08.2017 · 0 балів · відповісти

Я понимаю только как формы тыцкать, по выходным читаю мануал по ангуляру.

Такой код я не понимаю, статья говно.

legacy_anon_28 · 17.08.2017 · 0 балів · відповісти

\>> Task estimated time: 1 — 2 days.
Ебался недавно тож с одним тестовым неск. дней, которое было оценено в 32 часа. Хз на кого оно было расчитано, учитывая что в описании вакансии не было ни одного требования связанного с тематикой заданий. Видимо времена такие.
\>> Почитайте, комодцы, вам будет полезно
Понятное дело никто нихуя читать не будет, но теперь хотя бы ясно почему Комодо всё-таки больше известен своей малварой.

legacy_Москаль · 17.08.2017 · 0 балів · відповісти

У них IDE неплохая есть.
И даже ее free-версия Comodo edit

legacy_Хипстер · 17.08.2017 · 0 балів · відповісти

А вывод один — 4 дня ебаться с тестовым, что бы в итоге у тебя забомбило, что парни с Комодо не считают тебе тру прогером. Крестоебы унижают крестоебов. Пиздец днище. Ангулярщики в отличии от этих пидаров как братья.

legacy_Ноулайфер_с_зп_200_испытывающий_счастье · 17.08.2017 · 0 балів · відповісти

Причем те, кто унижает — сами нихуя не знают.
У меня лычка Синьор, а я как-то разговаривал со Staff, так он даже не знал, что такое метапрограммирование.
Т.е. лычки в компаниях зависят только от общего опыта работы и, инонда, от знакомыхмв этой компании.

legacy_Туалетная_бугага · 17.08.2017 · 0 балів · відповісти

в 95% компаний при упомянании метапрограммирования или ебучей рефлексии на меня смотрели вот так О\_о

что блять все эти люди там делают? какой долбоёб их нанял? нет ответа

legacy_Вася · 18.08.2017 · 0 балів · відповісти

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

legacy_3д_дизайнер_умывальника · 17.08.2017 · 0 балів · відповісти

я как-то делал тестовое для пидаров из Ulysses Graphics — проебал около 30 часов времени в итоге даже не удосужились сказать причину отказа.

legacy_Ангулярщик · 17.08.2017 · 0 балів · відповісти

Нихуясе, первый раз код на ебаном вижу

😀😀😀

legacy_Хипстер · 17.08.2017 · 0 балів · відповісти

Это не код, а параша какая-то.
Вот код:

import { Component } from «@angular/core»;

@Component({
selector: «krestoeb-neudachnik»,
template: «krestoebi {{ kto }}»
})

export class AppComponent { kto = «lohi»; }

legacy_Ангулярщик · 17.08.2017 · 0 балів · відповісти

Два яблочных смузи этому господину!

😀😀😀

legacy_я_твой_код_и_маму_шатал · 17.08.2017 · 0 балів · відповісти

О! перепись фронтенд — пидаров?
CSS-ку вам смазаную реактом в жопу!

Кто вас за программистов считает — в приличной компании клавиатуру таким протирать бы не доверили!

legacy_Ноулайфер_с_зп_200_испытывающиймсчастье · 17.08.2017 · 0 балів · відповісти

Сейчас самый востребованный работник – это офисный раб, подмечает Владислав Быханов, партнер хедхантинговой компании Cornerstone: «Он послушен, ответственен, толков, знает свое дело и место».

Все работодатели давно перестроились и охуели. Теперь они открыто говорят, что им нужны лохи аутисты, которые не строят из себя выскочек, а молча жрут говно.
Хотеть карьеру и большую ЗП стало плохо, т.к. это мешает владельцу купить новый 911й.
В таких условиях тестовые задания перестроены лишь на одно: объяснить всем вокруг, что они недостойны даже 100 тысяч в месяц (раньше зп по 170 в мск были)

legacy_anon_28 · 17.08.2017 · 0 балів · відповісти

В продуктах у вас можно найти и 400 в мес. Но эта сумма скорее вызвана неадекватными требованиями/собесами и денег этих понятно никто не даст даже второму торвальдсу, никому больше не нужны все эти верифицируемые модели синхронизации на сети петри, нужно знать конкретные детали реализации вроде имен функций да параметров типа «ты посмотри хуйню он какую-то нарисовал, ну что за дебил, ты давай-ка расскажи нам лучше за стандарт. Васян, а ну загугли че там за хуйня есть в новом стандарте, пусть отвечает раз уж приперся».

legacy_Кек · 17.08.2017 · 0 балів · відповісти

http://labor-union.wikia.com/wiki/Main

legacy_Scala-гребец · 17.08.2017 · 0 балів · відповісти

Оттуда:

Галеры любят паразитировать на вузах, встраиваясь в процесс обучения за взятки деканам и заманивая студентов к себе. Менеджеры и тимлиды с галер тщательно скрывают от студентов свою паразитическую сущность, гордо именуя себя ведущими мировыми IT-компаниями и рассказывая, что основной офис у них находится в США. Галерное руководство скрывает от студентов тот факт, что галера их будет десятилетиями продавать иностранным клиентам с наценкой в 3 — 3,5 раза, навариваясь на них. Работа на галере преподносится для студентов как безальтернативный путь, потому что второй вариант — это работать на российских заказчиков за копейки. Про третий путь (самостоятельный поиск постоянной удаленной работы в США на long-term-проектах и удаленный консалтинг по контрактам) тимлид и менеджер никогда не расскажут студентам. Деканов факультетов эта ситуация устраивает по понятным причинам. Вузы вообще не учат тому, как студенту-программисту можно начать работать самостоятельно, как общаться с клиентами, находить их в США удаленно, вести переговоры посредством email или Google Hangouts, подписывать NDA, подписывать контракты. Вузы не учат юридическим аспектам самостоятельной работы на иностранных заказчиков, не учат тому, какими бывают контракты (time and materials, fixed-price, cost-plus). Вузы не учат тому, что, например, три друга-студента, ударившиеся в различные смежные специализации, могут втроем начать вместе работать на американского клиента, минуя всякие галеры, либо же могут втроем устроиться на галеру, затем увести клиента (что ТК РФ не запрещает), затем сразу уволиться с галеры и продолжить втроем работать из своих квартир на того же самого клиента или его бизнес-партнеров.

legacy_Scala-гребец · 17.08.2017 · 0 балів · відповісти

Еще оттуда:

Никогда не прогибаться на собеседованиях и не снижать планку денежных требований, даже если тот, кто вас собеседует, открыл свежайший стандарт вроде C++14 и, читая его сверху вниз и задавая вам вопросы, обнаружил, что вы не знаете чего-то. Всего знать и помнить невозможно, и это нормально, ведь в реальной работе вы всегда сможете в случае необходимости открыть PDF-документ с тем же стандартом и быстро вспомнить или понять конкретную вещь. Сейчас во многих компаниях самый востребованный сотрудник — это аутист и офисный раб, который легко позволяет окружающим снижать его самооценку, поэтому вам никогда нельзя прогибаться ни под кого. Современные собеседования все больше напоминают ментовские допросы и представляют собой не отборы компетентных кадров, а акты психологического отбора рабов. На собеседовании специально обученные люди могут обвинить в незнании C++ даже Бьерна Страуструпа. Если вы поняли, что данной конкретной компании требуется не компетентный разработчик, а галерный раб, то тут же прерывайте собеседование и вежливо прощайтесь навсегда.

legacy_Кек · 17.08.2017 · 0 балів · відповісти

Особенно это. Вангую, 95% программеров зафейлится на этом пункте:

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

legacy_уцкжцудьезщаьзацуа · 17.08.2017 · 0 балів · відповісти

Дев, даже синьор, имеет такое же отношение к архитектору, как морская свинка к морю.

legacy_У_станка · 17.08.2017 · 0 балів · відповісти

Исходя из написанной хуйни кандидата, «мидсеньора» блядь, прохуесосили совершенно по делу.

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

legacy_Ноулайфер_с_зп_200_испытывающий_счастье · 17.08.2017 · 0 балів · відповісти

Написано слабо, но не в этом дело.

legacy_У_станка · 17.08.2017 · 0 балів · відповісти

Дело в том, что вакансия — нормальная. Переборщили с тестовым — ну так не делай. Если сделал — то сам решил своё время потратить. А написанная критика по существу показывает, что автор — безграмотный еблан и был послан на хуй заслуженно на все сто.

legacy_Вася · 18.08.2017 · 0 балів · відповісти

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

legacy_РЕАКТ_СИЛА_-_АНГЛУЯР_МОГИЛА · 17.08.2017 · 0 балів · відповісти

Недавно попался на рекрутерскую прокладку (ну тоесть у них есть свой сайт для РЕКРУТМЕНТА, но к работодтелю или хотя бы ХР они вас обработают сами).
И в общем у этой ебаной прокладки — 2 теста всегда тебе кидают, когда подаешься на любую вакансию.
1 сука — пародия на iq тест, сиди блядь и продолжай цепочку, реверсивно инженируй и т.д. Идет он блядь час.
2 ой тест — тест на знания «ПРОГРАММИРОВАНИЯ», ну тоесть тупо там всё подряд. Ты можшеь подаваться на жс разработчика, а в этом тесте из 40 вопросов 10 будут по C++, 10 по Джаве, 10 по питону и т.д. — вообще охуенно. Ну и он тоже занимает где-то час (я по интуиции с универа еще помнил всякого), еще был устарелый ЖС и всякое говно мамонта про верстку таблицами, лол.
И потом прокладка торжественно отправляет твое сиви и прилепляет к нему эту ебату — РАБОТОДАТЕЛЮ ТОЧНА БУДЕТ ПОЛЕЗНА И ОХУЕННА и приходит ответ что вакансия мертва )))00
Тоесть блядь времени на придумывание этой хуйни было, а придумывать механизм очищения вакансий — не было ))00
А я проебал несколько часов жизни в пятницу на эту хуйню.

legacy_онаним · 17.08.2017 · 0 балів · відповісти

ссылку в студию.

legacy_Галерный_раб · 17.08.2017 · 0 балів · відповісти

Случайно контора не Nix Solutions?

legacy_погонщик_из_никсов · 17.08.2017 · 0 балів · відповісти

Ну-ка пиздуй обратно писать Connection, бииистра

legacy_Ноулайфер_с_зп_200_испытывающий_счастье · 17.08.2017 · 0 балів · відповісти

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

legacy_однояйцевый · 17.08.2017 · 0 балів · відповісти

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

legacy_Ноулайфер_с_зп_200_испытывающий_счастье · 17.08.2017 · 0 балів · відповісти

Когда я так сделал (поймал собес. на незнании) — мне даже не сказали результат.

legacy_peppa · 17.08.2017 · 0 балів · відповісти

Все потому что кроме того типа, которого ты обоссал, никто не знает твоих скилов, HR это все до пизды.
А он умывшись сказал что ты последний днарь) Так же пару раз было, обидно(

legacy_Ноулайфер_с_зп_200_испытывающий_счастье · 17.08.2017 · 0 балів · відповісти

Все потому, что я достаточно хорошо технически подкован, а еще я выполнил кмс по лифтингу в awpc и в свои 27 при росте 187 вешу 97кг нежирной мыш. массы., т.е. не качок, но очень атлетично сложен.
Уверен, что тут есть такие же люди и они подтвердят, что на собеседованиях сидят дрыщи с проплешинами на голове и когда я прихожу, случается две вещи:
1) Уже видно, что я не аутист и не раб, сломать не получится.
2) Я только вошел, но уже понравился HR и не понравился псевдоспецам на кредитных солярисах… Надо видеть их лица, т.к. на должность разраба ожидали аутиста в дырявых штанах.

legacy_мокрый_палец · 17.08.2017 · 0 балів · відповісти

\>> не раб
…и пришел на галеру на собес? Не рабы в основном менеджмент — нихуя особо не делают и взвешивают бабки.
\>> т.е. не качок, но очень атлетично сложен.
…если ты не бройлер а только атлетично сложен то этого не видно даже под футболкой в сеточку и коротких кожаных шортах, поэтому самка врятли поведется.
\>> но уже понравился HR
…хрюша на собесе это просто прокладка для отсеивания полных неадекватов (в теории), поэтому твое ЧСВ явно на небесах.

legacy_Ноулайфер_с_зп_200_испытывающий_счастье · 17.08.2017 · 0 балів · відповісти

Ладно

legacy_Колёк · 17.08.2017 · 0 балів · відповісти

Статья от какой-то обиженки, а эти неумелые попытки выдать свой проёб за «мопед не мой, эт товарищ ходил, не я» просто умиляют. Признайся, блять, как нормальный мужик, что это твой собес, а не выдумывай воображаемых друзей.

А чего стоят нелепые оправдания этой ранимой девочки. Тебе ж сука в задании написали «Implement Scanner component as COM object in an in-process or out-of-process COM server using ATL. Use ATL classes in Client application», нет блять, я ж самый умный, сам себе придумаю требований (желательно с использованием своего любимого фреймворка), сам их решу а потом обижусь, когда нахуй пошлют и накатаю статью на ёбаное. А не проверять валидность параметра внутри библиотечного метода и оправдываться «ну он же в моём приложении вызывается в местах с проверкой, поэтому в метод пойдут проверенные гуиды, мамая клянусь братуха» — просто адский ад, сеньора сразу видно.

4 вечера он потратил, АЖ 4 СУКА ВЕЧЕРА ОТНЯЛИ У ТАКОГО ВАЖНОГО ЧЕЛОВЕКА, МИДЛА С++! А времени для написания этого высера не жалко было? Вердикт: кг/ам.

legacy_cpp_coder · 17.08.2017 · 0 балів · відповісти

Согласен полностью. Тестовое задание вполне вменяемое, и реально проверяет необходимые для этой вакансии навыки.
Друг автора потратил 4 дня на задание, при этом понял его по-своему. По пунктам:
1\. Никто не просил туда тянуть Qt, написано же «Client is UI or console application».
2\. Про треды на CPU — проверка как кандидат владеет вопросом, это must have в такого рода продуктах.
3\. ATL/COM — это optional. К чему возмущаться, что это «это срань, прибитая к винде гвоздями и разработанная очень давно» ?
Другу не пришло на ум, что эти компоненты нужно знать не для того, что на них пишется продукт, а то что они также могут/должны мониториться анитивирусом как вероятный вектор атаки зловредов и прочей херни ? Или старый софт уже не нужно проверять ? Да и в новом также нередко используют эти технологии.
И не нужно забывать, что основная часть клиентов антивирусов как раз сидят на винде. Фраза
«Было решено, что антивирус должен поддерживать как можно больше платформ, потому от решений типа COM/ATL стоит отказаться» вообще идет в разрез с требованиями задания.
4\. Игнорирование файлового маппинга(который к слову есть на всех плтаформах), высеры про «алгоритм Кнута-Морриса-Пратта», «Ахо-Корасик» и «Чистый код Роберта Мартина» говорит, что парня понесло вообще не туда.
Про исключения лучше бы вообще не писал. Пусть поговорит с любым системным прораммистом, почитает про SEH, или Рихтера. Это блять не уютная джава,в которой можно и нужно все заворачивать в эксепшены.
Дальнейшую истерику уже и комментировать не охота.
Диагноз — пациент срр-шник уровня галеры, работающий на саппорте индусских проектов. В кресты пришел с либо с веба либо с курсов(судя по его ссылкам), хз что хуже. Если хочет лезть системное программирование — пусть учит ПРАВИЛЬНУЮ мат часть и нарабатывает опыт в этой области. Хотя, судя по ЧСВ — эти советы бесполезны.
То что «комодцы не нашли ни одного» косяка, не говорит о том, что они тупые и меркнут перед гением автора. Просто после всего остального сразу стал понятен уровень кандидата и тратить на него свое время было бы глупо.
ЗЫ. Достали уже эти скороспелые cpp-шники, нахватавшиеся вершков из разных источников и думающие, что простое упоминание C++ должно заставлять простых смертных падать перед ними на колени.

legacy_CSSTraineeMiddleQAArchitectDeveloperSeni · 17.08.2017 · 0 балів · відповісти

QA>C++

legacy_Гудвин · 17.08.2017 · 0 балів · відповісти

Шо, бомбануло, комодо? Та если б я на собес к тебе попал, то смешал бы там с говном тебя. Давай уже ссылки на правильную матчасть — на Windows internals хотя б, а то рихтера почитать. Питрек! Вот кто писал про сехи, так что не пизди мне тут, нуб

legacy_Merlin · 17.08.2017 · 0 балів · відповісти

«обидно за пидарское поведение. Тестовое было отличненько сделано.»
Малолетний неудачник-соискатель-говномешатель погуглил умные слова и решил реабилитироваться ? Ссылки ему подавай, лолка малолетняя… Если вместо головы жопа и из нее же руки растут — то тебе дорога в 1С, а не рассуждать с умным видом про вещи о которых понятия не имеешь.

legacy_Не_Москаль · 17.08.2017 · 0 балів · відповісти

Такое же впечатление возникло.
Добавлю только, что на хуй не впёрлась эта ваша кроссплатформенность в такого рода продуктах. Антивири нужны только под винду — вот и пишите их под винду, с использованием пусть и прибитых гвоздями, но нативных технологий целевой ОС.
Баттхерт перфекциониста, который даже не знаю откуда мог такой взяться в мире крестоёбов.
С другой стороны, тестовое задание более чем на 4 часа — а не пошли-ка вы нахуй.

legacy_Гудвин · 17.08.2017 · 0 балів · відповісти

Николя, ты узрел, что это с пометкой optional? сам ты мидл, слепыш

legacy_winrar · 17.08.2017 · 0 балів · відповісти

https://lurkmore.to/%D0%9E%D0%B4%D0%B8%D0%BD\_%D0%BC%D0%BE%D0%B9\_%D0%B4%D1%80%D1%83%D0%B3

legacy_Джанго · 17.08.2017 · 0 балів · відповісти

Блядь. Вот обычно со всем согласен, но жаловаться на тестовое задание на каких-то сраных 2 дня? Та блядь, на дрочку за неделю уходит больше. Еще и оплачивать выполнение тестового (причем явно тестового, а не продакшен-левел)? Автор зажрался вообще.

legacy_Гудвин · 17.08.2017 · 0 балів · відповісти

Да не 2 дня жалко, обидно за пидарское поведение. Тестовое было отличненько сделано.

legacy_уцкжцудьезщаьзацуа · 17.08.2017 · 0 балів · відповісти

Отлично для индуса.

legacy_Вася · 18.08.2017 · 0 балів · відповісти

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

legacy_Хулахуп · 17.08.2017 · 0 балів · відповісти

Кинул вам пару массивов за щеку. Парсите

legacy_Ангулярщик · 17.08.2017 · 0 балів · відповісти

Массивы не воспринимаем, только по отдельным переменным. Так что в ответ закинули тебе список из LONGINT variables. Считывай!

😀😀😀

legacy_С_В_Е_Т_Л_А_Я_2 · 17.08.2017 · 0 балів · відповісти

Очередное позорище. Соискателя напрягло, что компания ищет людей с хорошим опытом и поразило, что есть люди, использующие плюсы и по 10 лет. Несчастный задрот, явно изучал Жабу и решил, что на плюсах он тоже сможет всё. И о чудо, его код признали убогим 🙂
Невежда не знал старый добрый СОМ? Позорище! Любая девочка из HR отлично владеет СОМ, DCOM, ActiveX . Это же классика технологий Windows.

🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂

legacy_Тамада_собачьих_свадеб · 17.08.2017 · 0 балів · відповісти

Главное, чтобы знала технологию РТОМ

legacy_301й_спартанец_на_галере · 17.08.2017 · 0 балів · відповісти

РТОМ они все знают, легкий порог вхождения в эту технологию, а в дальнейшем и вхождения технологий в них

legacy_Метро_секшуал · 17.08.2017 · 0 балів · відповісти

Может и знают, но почему-то, не редко на продакшене, их навыки вызывают вопросы и частенько не соответствуют зарплатным ожиданиям.

legacy_Дед-ебун · 17.08.2017 · 0 балів · відповісти

Хочешь жопой мою сиську отсосать?

legacy_Дед-ебун · 17.08.2017 · 0 балів · відповісти

Хочешь? Хочешь?
ХОЧЕШЬ

legacy_Гудвин · 17.08.2017 · 0 балів · відповісти

Кто тебе сказал, что соискатель не использует плюсы 10 лет?

legacy_старый_хер · 17.08.2017 · 0 балів · відповісти

кому нужна старая толстая жопа светлой, кроме алкащей.

legacy_301й_спартанец_на_галере · 17.08.2017 · 0 балів · відповісти

бля, по моему несколько вечеров на тестовое задание — это нормально, а то, что вакансия может висеть вечно — так это нормальная практика, перебирают людей, если найдется такой, который и на отлично им антивирус напишет, и на собесе будет петь, стихи рассказывать, жонглировать, то такого неадеквата, возможно, и наймут

legacy_Метро_секшуал · 17.08.2017 · 0 балів · відповісти

На неоплачиваемую стажировку 😂

legacy_Быдлокодер_1 · 17.08.2017 · 0 балів · відповісти

Правда в том, что крестоёбы в интернетах — это люди, которые в большинстве своём ничего сложнее простых консольных приложений не писали, но зато знают все косяки пхп/джс и прочих скриптовых языков и при каждом удобном случае, петушатся этим.
Нормальный более менее опытный кодер знает и понимает, где и как лучшее применить тот или иной инструмент, коими и являются языки программирования.

legacy_Ноулайфер_с_зп_200_испытывающий_счастье · 17.08.2017 · 0 балів · відповісти

По-твоему UI это сложно? В большинстве ide их сейчас рисуют, а не кодят как в старые времена.
Я сам крестоеб, но даж сайты редизайнил работая в хостинге.

legacy_Это_кодинг_на_крестах · 17.08.2017 · 0 балів · відповісти

Конечно сложно, красивый дизайный сделать намного сложнее нежели набыдлокодить на крестах.

legacy_смузихлеб_1 · 17.08.2017 · 0 балів · відповісти

то ли орать с тебя то ли задизайнить тебе за щеку

legacy_Авцехуево_нет · 23.08.2017 · 0 балів · відповісти

Давай друг другу майнить на грудь?

legacy_уцкжцудьезщаьзацуа · 17.08.2017 · 0 балів · відповісти

Ну, порисуй.

legacy_Крестоносец · 17.08.2017 · 0 балів · відповісти

Я думаю в плюсы приходят скорее из-за непреодолимых ограничений других языков. Плюсы наиболее универсальны, хоть писать и в разы более трудоёмко. Сам хоть и топлю за них, считаю, что питон для своих задач хорош, да и жиэс няшка :3

legacy_Шкода · 17.08.2017 · 0 балів · відповісти

Не згоден з автором в двох моментах:
1\. Незнаходження сигнатури це нормальний кейс, навіть більш ймовірний, ніж знаходження. Тому вертати потрібно false при незнаходженні, а не кидати exception, exception — коли щось йде не за планом, а не в стандартних ситуаціях.
2\. new вертатиме null для VC6 компілятора, замість кидання bad\_alloc exception. Звісно, в усіляких embedded системах де exceptions випиляні для економії пам’яті, new теж вертає null, коли не може виділити пам’ять, але антивірус, ясна справа, не для embedded, тож практичне значення має лише VC6 варіант. І щось мені підказує, що не даремно комодо просять COM і ATL замість кросплатформенного коду — очевидно, у них там тонни легасі коду, що компілюється тільки під VC6, а якщо і перейшли на щось сучасне, то для збереження зворотньої сумісності прилінкували nothrownew.obj.

legacy_Папкин_ухаед · 17.08.2017 · 0 балів · відповісти

VC6 в 2017м? Серьезно?

legacy_Шкода · 17.08.2017 · 0 балів · відповісти

Ну а що — компанія старенька, легасі коду повно, якщо і перейшли на щось сучасніше, то прилінкували nothrownew.obj — і не треба заміняти if(!щось\_там) на обробку винятків у кількох тисячах рядків коду.

legacy_Папкин_ухаед · 17.08.2017 · 0 балів · відповісти

Перевести легаси код на чтото поновее гараздо практичней чем мучасть старую студию. Она хоть на 7ке заводится и работает? Или в подарок к 6й студии идет пень на ХП?

legacy_Шкода · 17.08.2017 · 0 балів · відповісти

Так стару студію не потрібно мучити. Береш найновішу студію, береш старий код, компілюєш новою студією, лінкуєш nothrownew.obj — і new тобі преспокійно повертає нуль замість кидання винятків, коли пам’яті не вистачає, відповідно не потрібно переписувати старий код, який розраховує на нуль, а не на винятки

legacy_Папкин_ухаед · 18.08.2017 · 0 балів · відповісти

Шта? Этот фокус перестал жить после 2003ей.
for (int i = 0….) и пиздарики.

legacy_Гудвин · 17.08.2017 · 0 балів · відповісти

Как ты, блядь, олень, в вижал студии шестой новые 11 и 14 стандарт будешь юзать? Хули ты ide с компилятором мешаешь вообще?

legacy_Шкода · 17.08.2017 · 0 балів · відповісти

І 11, і 14, і 17, і навіть 20 сумісні з 98. А стару студію використовувати не обов’язково з кодом, який писався в розрахунку на компіляцію з VC6 — з найновішою студією лінкуєш nothrownew.obj і отримуєш поведінку new таку ж, як і з VC6.

legacy_Гудвин · 17.08.2017 · 0 балів · відповісти

Ага, хуй они слинкуются, парень. Попробуй полинкуй. Думаешь, нахер статик либы в платных продуктах собирают для каждой студии отдельно?

legacy_Шкода · 17.08.2017 · 0 балів · відповісти

Ліньки перевіряти, повірю на слово.

legacy_Папкин_ухаед · 18.08.2017 · 0 балів · відповісти

А че в чистом коде разве не написано про Platform Toolset? Лучше бы ты С++ хотя бы на уровне мидла выучил, чем всякую архитектурное поебонь для взрослых читать 🙂

legacy_Крестоносец · 17.08.2017 · 0 балів · відповісти

\>>> Why «throw» instead for the «return bool»?
Если я всё правильно понимаю, вызывается исключение для того, чтобы просигнализировать о ненайденной сигнатуре. Но в плюсах обычно не принято вызывать исключение при каждом пуке. Исключение — на то и исключение, что сигнализирует об исключительной ситуации, о неожиданности, которой в нормальных условиях случиться не должно. А ненайденная сигнатура — вполне себе обычная ситуёвина. Так что рили вызов исключения тут не совсем уместен. Он вам не питон! Но в рамках задания на пару дней действительно скорее приебались на пустом месте.
\>>> What happened when Guid length will be greater then GUID\_SIZE?
Трудно сказать, не видя остального кода, насколько справедлива эта претензия. Но в целом, разнесённость проверки и кода, который в ней нуждается, попахивает… Однако меня больше триггерит это:
\>>> &Guid\[0\]
Ай ай ай… Лезть в кишки строки через указатель на первый элемент вместо специального интерфейса для прямого доступа к данным data()… А вдруг в какой-то ебанутой реализации stl букавки хранятся в std::list? А вдруг в каких-то реализациях строка хранится по кускам?
В общем, как я понял, Comodo — отличная контора как раз для таких педантичных ублюдков говнокодеров фашистов, как я. Впрочем, в рамках тестовой задачи на пару дней все эти предьявы всё же скорее притянуты и говорят об их крайней охуевшести.

legacy_Крестоносец · 17.08.2017 · 0 балів · відповісти

Хотя… Если на сеньора то в принципе наверное и оправданно. Не мне говнокодеру судить.

legacy_Ноулайфер_с_зп_200_испытывающий_счастье · 17.08.2017 · 0 балів · відповісти

Ну и чушь, особенно про буковки у STL в листе.

legacy_Крестоносец · 17.08.2017 · 0 балів · відповісти

Ну это утрированно, понятно что так вряд ли будет

legacy_Папкин_ухаед · 17.08.2017 · 0 балів · відповісти

::data() появился с С++ 11.
А вдруг по кускам не бывает — не бывает, есть c\_str() который явно не собирает строку по кускам.

legacy_Крестоносец · 17.08.2017 · 0 балів · відповісти

Чтобы не было «а вдруг» есть стандарт, в стандарте это «явно» не прописано, значит «а вдруг» имеет место быть. Я знаю точно, что c\_str/data вернёт указатель на непрерывно размещённые данные, про &str\[0\] я знаю только то, что это указатель на символ. Всё.

legacy_Папкин_ухаед · 17.08.2017 · 0 балів · відповісти

А головой подумать? 🙂 с\_str() — константный метод, за которым нет необходимости чистить память, если данные не сплошные — как он будет работать?

legacy_Крестоносец · 17.08.2017 · 0 балів · відповісти

Ну, например, при необходимости получения c\_str внутренняя структура меняется, кусочки строки склеиваются в единую область, на которую и возвращается указатель. Метод константный — ну ок, делаем данные через mutable, для пользователя будет полная видимость константности.

legacy_pal · 17.08.2017 · 0 балів · відповісти

в стандарте с++11 это явно прописано, символы хранятся последовательно. однако, идиоматичнее использовать .data()

legacy_pal · 17.08.2017 · 0 балів · відповісти

data был всегда, с 11 он null-terminated

legacy_Папкин_ухаед · 18.08.2017 · 0 балів · відповісти

Да, ты прав, у стринга была всегда, с 11 там front и back добавили 🙂 А вот у вектора с которым я стринг перепутал добавили только с 11 🙂

legacy_Евгений_1 · 17.08.2017 · 0 балів · відповісти

Я всегда предпочитаю тестовые задания вместо рассказов о том какой я охуенный. Я в данном случае товар, и время которое я трачу на тестовое, это расходы на маркетинг. Покупатель должен быть уверен что берет качественный товар который стоит тех денег который за него просят. Рассказы про годы опыта мало что значат, так как не известно чем ты эти годы занимался. На месте соискателя в статье я бы перед выполнением задания попросил бы прояснить неясные моменты. А после получения обратной связи, я бы переделал задание и послал его снова. В данном случае тестовое задание выявило у соискателя неспособность лидировать проект и даже при неблагоприятных условиях довести его до состояния удовлетворяющего требованиям заказчика, особенно если сам заказчик косячит с требованиями. Что в реальной жизни встречается постоянно.

legacy_Чорный_властелин · 17.08.2017 · 0 балів · відповісти

Послал тестовое задание тебе за щеку.
Проглатывай.

legacy_Евгений_1 · 17.08.2017 · 0 балів · відповісти

Спасибо милый, я ценю твоё внимание и заботу. Надеюсь и дальше будешь делать мне приятные сюрпризы.

legacy_Евгений_1 · 17.08.2017 · 0 балів · відповісти

И ещё, навыки проверяемые в тестовом задании должны соответствовать описанию вакансии. Если не соответствуют, то требовать другое тестовое задание по причине не соответствия.

legacy_ЕбисьКонем · 17.08.2017 · 0 балів · відповісти

Ну да, кодерам больше ж делать нехуй, кроме как «инвестировать в маркетинг». Я тут давеча маляра для поклейки обоев искал, так блять у большинства ни портфолио, нихуя, а о том, чтоб пару полос черновых обоев поклеить в качестве тестового, вообще речь не идет, в лучшем случае глянут как на идиота и все. Не понимают, бляди тупые, важности расходов на маркетинг, не то что кодерки:
— Хотите индивидуальные интервью в кучу этапов с двумя СЕО, тремя лидами и домработницей фаундера, где именно последняя завернет вас, раскинув карты таро? Та пжалста!
— Тестовое на неделю просратых вечеров? Всегда готов!
— Педалить какую-то хуйню в опенсорц, потому что лох и ноулайфер Вася педалит, и его за это хвалят? Ну, надо, значит надо!
— Раскорячиться а-ля goatse и дать сфоткать себя для доски почета на стене офиса любимого работодателя? Почему бы и нет?

Тьфу, блять, соски-спермоглотки какие-то. Может начнете себя хоть немного уважать?!

legacy_Евгений_1 · 17.08.2017 · 0 балів · відповісти

Сравнение с маляром не корректно. Представим что вы взяли маляра в штат в вашу компанию, сколько времени займет понять что маляр профессионально не компетентен? Допустим неделя. А сколько займет найти нового? Допустим еще неделя. Тем самым вы рискуете потерять неделю зарплаты маляра (при условии что он не выполнил никакой работы) и 2-е недели времени. Вот ваш максимальный риск в случае неправильного выбора. Однако в случае с разработчиками, ваши риски как по деньгам так и по времени значительно выше, и вы хотите эти риски уменьшить. Соискатель тоже рискует, придя к вам работать на должность на которую он не подходит, он рискует быть уволенным через примерно 3 месяца и вынужден будет тратить свое время на поиски работы при этом не получая дохода, что равносильно убытку. Поэтому, с учетом специфики, каждая сторона имеет право на более тщательную проверку контрагента, чем в случае с маляром.

legacy_ЕбисьКонем · 17.08.2017 · 0 балів · відповісти

Чувак, ты сравни бюджеты корпорации, и мои, как физ. лица, и прежде чем втирать о безусловном размере потенциальных рисков, подумай сам, по-человечески, кто больше пострадает, я, если мне криворукий абизян перехерит материалов на сотни баксов, или компания, пусть даже выгнавшая 5К-баксового дева с испыталки? Это во-первых.

Во-вторых, тестовое, кагбе, никакую проблему рисков и не решает. Если контора не уверена в моем CV, не уверена в моем участии во всех перечисленных проектах, то как она может тупо быть уверенной, что тестовое лепил я, а не лошок-Васёк за пачку доширака?

В-третьих, да, как раз то, о чем ты сам написал, «соискатель тоже рискует». Только хуй как проверишь, что после недели, просратой на тестовое, поработав месяц-два, не окажется, что гениальный заказчик решил завязывать пилить убийцу пейсбука, все свободны, все идут на хуй, а горе-стартапер собирает новую команду для запила операционки с нескучными обоями… повторяя цикл смены настроений еще через два месяца.

Ну и в-четвертых. Сугубо субъективный фактор. Вот мне лично ни разу не удалось устроиться в шарагу, где пришлось проходить больше двух этапов интервью и тестовые дольше часа-двух. От друзей, знакомых слышу аналогичные мнения. Тут уж вполне очевидные вопросы напрашиваются сами собой.

legacy_ЕбисьКонем · 17.08.2017 · 0 балів · відповісти

Вспомнился опыт одного знакомого. Собесы, тестовые, хуё-моё, оффер, смачный adiós на текущем месте работы, первый рабочий день на новом, кхм… а сорцов-то, цукоёбаныйтынахуй, НЕТ! То ли сбилжено все, то ли обфусцировано, не помню. Тык-мык, хуяк-пиздык, попытка объяснить заказчику, в какой он на самом деле жопе, выдача эстимейтов на запил всего продукта с нуля, и через пару недель безуспешного решения заказчиком вопросов с предыдущими разрабами — всем спасибо, все свободны.
При том, речь не о говно-заказе на апворке, а о вполне себе среднеразмерногалерной вакансии. Интересно, сейлзам успели дать бонусов за приведенного кастомера? Если да, могли б поделиться с тем моим знакомым, ему-то после этого цирка пришлось еще пару недель искать подходящую работу.

Но да, вы продолжайте делать заёбистые тестовые, по-порядочному уходить с текущего места работы, не пытаясь усидеть на двух стульях в целях перестраховки хотя бы пару-тройку недель. Только это… в транспорте на меня не дышите, а то кончой воняет.

legacy_Евгений_1 · 17.08.2017 · 0 балів · відповісти

С вопросом как находить хороших работников и как найти хорошее место работы, бьются «лучшие умы» и тупые ХРюши. Абсолютно хороших решений нет. Есть только хуевые. Вопрос что из хуевого лучше. Работник не гарантирует что не сьебется посреди проекта. Работодатель не гарантирует что через пару недель у него все не накроется пиздой и всех уволят. Нужно смотреть на все аспекты, и более тщательно подходить к выбору.

По сути есть 3 способа найма: по рекомендации, по интуиции, по тестам. Ну и комбинации между ними. Я написал что из этих 3-х я предпочитаю тесты, так как в случае тестов у меня больше контроля над результатом процесса.

CV может быть верным но этого недостаточно. Тоесть пишет человек что у него 5 лет опытах в крестах, и что участвовал в таких-то проектах, что это значит на практике? Как понять его уровень? Лишь по тому как он говорит? А если человек не разговорчив?

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

legacy_Григорий_Бритва · 17.08.2017 · 0 балів · відповісти

Охуел от твоего объяснения.
Представим что у нас есть число x. Число x = 7.
Если нам нужно найти число y, то с учетом специфики числа y, оно больше числа x.

legacy_Евгений_1 · 17.08.2017 · 0 балів · відповісти

Вот еще одно обьяснение: Главное, что я понял общаясь с ИТшниками — большинство не могут понять что такое управление рисками. А потому делают 2 ошибки: Идут работать в конторы где заведомо известно что риск быть кинутым высокий а потом тут плачутся когда их кинули за борт. Не понимают что в процессе найма работодатель пытается снизить риски найма неподходящего работника. Все время ИТшники пытаются сравнить программеров то с художниками то с малярами. — Нихуя вы ни Пикассо, но и не маляры, а потому и платят вам больше но и спрашивают с вас тоже больше. И напоследок цитата: «Управление рисками — это процессы, связанные с идентификацией, анализом рисков и принятием решений, которые включают максимизацию положительных и минимизацию отрицательных последствий наступления рисковых событий.»

legacy_бутылка_из_под_шампусика · 18.08.2017 · 0 балів · відповісти

единственный вменяемый комментатор на ебаном, респект Женек

legacy_Грегор_Джавович · 17.08.2017 · 0 балів · відповісти

\> — Хотите индивидуальные интервью в кучу этапов с двумя СЕО, тремя лидами и домработницей фаундера, где именно последняя завернет вас, раскинув карты таро? Та пжалста!

Бля, это про Genesis (который на подоле). Надо будет как-нибудь написать про эту гнилую контору, там говна на пару месяцев чтения можно насобирать.

legacy_full_heap_engineer · 17.08.2017 · 0 балів · відповісти

\> Use modern C++11, C++14

а чего сразу не С++20? кому нужен этот модерн, технологии будущего — вот наш девиз!

legacy_Скромное_обаяние_буржуазии · 17.08.2017 · 0 балів · відповісти

1) Checker.cpp: Checker::Knuth\_Morris\_Pratt()
throw std::runtime\_error(«Pattern not found»);
Why «throw» instead for the «return bool»?

Привед дебилушка. Ты будешь проверять миллион файлов, и на чистых файлах 999000 раз бросать исключение ?? Это крайне тупая трата ресурсов.
2) Dispatcher.cpp: void Dispatcher::SetGuid(const std::string& Guid)
{
memset(guidMemory, 0x00, GUID\_SIZE);
memcpy(guidMemory, &Guid\[0\], Guid.length());
}
What happened when Guid length will be greater then GUID\_SIZE?
И публичный метод без проверки торчит наружу библиотеки — да это ж эпик !!
3) Mapper.cpp: Mapper::Mapper(const char\* fileName)
auto tmp = file.map(0, file.size());
if (!tmp)
{
throw std::runtime\_error(«Unable to map file»);
}
buffer.reset(new uint8\_t\[file.size()\]); — Недопонимание идеи маппинга файла?
memcpy(buffer.get(), tmp, file.size());

Блин, взрослый же человек,должен же понимать , что проект пойдет на свалку после собеседования и никаких деобсфукаторов не будет.А показывает себя дураком.
4) Если в резюме есть упоминание какой-либо технологии,- следут её впихнуть и к месту , и даже там где немного не к месту, — вместо этого строчим на qt

Я , такого фрукта взял бы только как джуна на 327 баксов.

legacy_Папкин_ухаед · 17.08.2017 · 0 балів · відповісти

кстати насчет исключения, при грамотной обработке — никакой траты ресурсов не будет, но это при грамотной и грамотном коде, а тот факт что бросается стандартный экзепшен с текстовым сообщением — заставляет в этом усомнится.

legacy_уцкжцудьезщаьзацуа · 17.08.2017 · 0 балів · відповісти

Ага, stack unwinding магически рассосётся.

legacy_оккупатор · 17.08.2017 · 0 балів · відповісти

Да-да, -fno-exceptions и пизда.

legacy_Гудвин · 17.08.2017 · 0 балів · відповісти

Не пизди. Проверка гуида там идёт до этого вызова, он проверяется на соответствие регулярному выражению. И в том и теория статического анализа — если есть одна проверка, далее не надо делать ещё 100500 просто потому, что ты увидел memcpy. Определись — с одной стороны проект на свалку и деобфускаторов не будет, с другой исключения работают слишком медленно для продакшена. Хуйню пишешь

legacy_Папкин_ухаед · 17.08.2017 · 0 балів · відповісти

Если метод не публичный, то фиг с вами 🙂 Одна проверка есть и хватит…
Только что такое есть буфер? И почему внутри буфер, а снаружи строка? Где копирование нуль терминатора? Или типа скопировал строку в буер без нуль терминатора, но по фиксированному размеру — и получил байт представление гуида?
В этом методе что с точки зрения стилистики, что здравого смысла, что всего прочего — какая то хуита.

legacy_Джун_вайтишник · 17.08.2017 · 0 балів · відповісти

А-а-а-а!!!
Замолчите 😭

legacy_anon_30 · 17.08.2017 · 0 балів · відповісти

Бамбануло походу

legacy_Шкода · 17.08.2017 · 0 балів · відповісти

Я, до речі, теж у Комодо співбесідувався, не взяли. З тестовим пронесло — показав початковий коміт бібліотечк з використанням COM — все одно в production той код пішов повністю переписаний, тож тестового не просили писати. А от на співбесіді сам налажав — кілька днів не висипався, пропустив очевидний витік пам’яті в коді, який дали рев’ювити, та і алгоритмічну помилку не помітив.

legacy_Папкин_ухаед · 17.08.2017 · 0 балів · відповісти

Это просто трешак и угар…

1\. Даже имбицилу должно быть понятно после прочтеня ТЗ что одна из его задач — как раз проверить знание WinAPI.
2\. Кросс платформенное решение на QT для simple Malware detection? Серьезно? QFile вместо File Mapping? Серьезно? А сколько там копирвоаний памяти? Тестировали? А что если натравить ваш сканер на 100гб папку с гигабайтными файлами? Сразу грохнется или к новому году закончит?
3\. «Чистый код кричали они» throw std::runtime\_error(«Pattern not found»); — а где ж там хенделр то, так что бы понимать докуда вы чистый код дочитали?
4\. memset(guidMemory, 0x00, GUID\_SIZE);
memcpy(guidMemory, &Guid\[0\], Guid.length());
Это что за пиздец? Что такое guidMemory и где он обьявлен? &Guid\[0\] серьезно? старый С++ &(guid.front()), новый guid.data().
Если гуид в стринг формате — что это за секс с его копированием, если он в байт формате — то почему обернут стрингом? Или афтар просто не знал как сконверитровать гуид?
5\. buffer.reset(new uint8\_t\[file.size()\]); а если файл в гиг, а если в 10? А какой деаллокатор по умолчанию простите у std::shared\_ptr?
6\. Вы там определитесь вы на чем пишете? Ацкая смесь Qt, stl, old C…
7\. Написать кор — там реально на 4-6 часов, за еще 4-6 вполне реально прикрутить бонусные свистоперделки если владеть стеком.

З.Ы. Я не имею никакого отношения к комодо, и против разного рода тестовых заданий для Синьоров\\Мидлов, но есть несколько НО:
1 — Взялся за гуж — не ной, я к примеру в паре мест прекращал разговор как только речь заходила о ТЗ.
2 — Наговнокодил — прими как должное фитбек, а не ной по интернетам какой ты классный а все не дартаньяны.
3 — собеседуюсь на синоьра, хорошо бы С/С++ знать и понимать, а не писать гавно прикрываясь умными или не очень книжками и курсами типа курсеры или чистого кода, а так же знаниями википедии и алхоритмоф (по педивикии), но блиать жалобами на то что варемени дескать небыло.
4 — И вообще даже в ранге мидла не мешало бы знать, что медленнго работающее, но раблотающее и стабильное приложение, это намного лучше чем быстрое и с патернами и по книжкам, но так же быстро падающее в корку.

legacy_Папкин_ухаед · 17.08.2017 · 0 балів · відповісти

кстати я тоже затупил, так как не привык видеть стрингов в том месте от слова вообще, у std::string есть замечательный метод c\_str() 😉

legacy_Гудвин · 17.08.2017 · 0 балів · відповісти

Тестили на 2 тб винте, в кор дамп не вывалилось. В комодо тож могли запустить и потетстить, если бы у них завалилось — могли бы ткнуть носом, типа, вот валится. А так то всё влажные домыслы.

legacy_С · 17.08.2017 · 0 балів · відповісти

эхх…мое любимое, а тестили под нагрузкой? Например стартанули на 8и ядрах….а потом паралелльненько make -j 12 для кернеля, или хоть того же qt ? И че там будет? Вот хром нахрен в аут уходит и систему за собой тащит — какой-то там планировщик у него сума сходит. У меня уже в мейках больших проектов забито killall chrome

А на 1 ядре тестили? А аффинити меняли?)

…чойто мне кажется полезут недоделки.

legacy_Папкин_ухаед · 17.08.2017 · 0 балів · відповісти

И как? Сколько раз удалось по 1гб проаллоцировать подряд? 🙂

legacy_Гудвин · 17.08.2017 · 0 балів · відповісти

Парень, на х64 осях удалось и не раз, и не два. Но тебе не понять

legacy_full_heap_engineer · 17.08.2017 · 0 балів · відповісти

Постучалась ко мне недавно HR из сциклума, как раз на комодо. Все заебоны автора про кроссплатформенность им на самом деле до сраки — они пилят разные версии под винду, мак и линух (под мак\\линух пилят 3 тела в Одессе, сейчас хотят разделить и набирают команду под линух), до технической части у меня не дошло — требовали командировки к заказчику, и я сразу сказал, что идите лесом, и слава б-гу, как оказалось

legacy_Максимилиан_Ломт · 17.08.2017 · 0 балів · відповісти

\> Как правило, стороны понимают это, поэтому действует негласное правило — если решение худо-бедно работает, контора не ебёт мозги и берет человека на работу.
В идеальном мире)
Есть такое ебаное понятие — мониторинг рынка. Очень похоже на описанное.

legacy_Гусь · 17.08.2017 · 0 балів · відповісти

Что такое Комодо и нахуй оно нужно?

legacy_full_heap_engineer · 17.08.2017 · 0 балів · відповісти

в гугле забанили?
а по поводу второго вопроса — оно нахуй никому не нужно

legacy_Гусь · 17.08.2017 · 0 балів · відповісти

Это был риторический вопрос, пиздюк

legacy_full_heap_engineer · 17.08.2017 · 0 балів · відповісти

как будто это означает запрет на выебывание

legacy_Папкин_ухаед · 17.08.2017 · 0 балів · відповісти

Да, кстати, «Как правило, стороны понимают это, поэтому действует негласное правило» — та прекращайте, если бы мне нежун был не мидл, а хотя бы мидлосиньор — то после такого ТЗ хоть оно 10 раз работай, я бы кандидата не брал — ибо времени бегать за ним и учить его не говнокодить — ни у кого нет.

legacy_zalupa · 17.08.2017 · 0 балів · відповісти

Как по мне вполне адекватное задание. Знающим язык человеком делается за вечер 4-5 часов.

legacy_zalupa · 17.08.2017 · 0 балів · відповісти

добавлю, что это к вопросу о девальвации значения самой лычки «сеньор».

legacy_rewrewrwerewrewr · 17.08.2017 · 0 балів · відповісти

Чувак — реально лох. Жопу рвать было не нужно.

legacy_знаток_1 · 17.08.2017 · 0 балів · відповісти

Щас вообще модно давать тестовые задания или приглашать на собеседование в другой город за свой счёт.
Потом можно и отморозиться, ведь никто никому не обязан

legacy_наркоман_1 · 17.08.2017 · 0 балів · відповісти

люблю с++ срачь
вообще юзать Qt торт, а чистые плюсы и всякую хуйню типа бустов — ну их нахуй

только вот нахуя в CMake это все упаковал если все в профайлах можна напиздовать, или есть в этом какойто профит?

legacy_Крестоебы_хуже_пидорасов · 17.08.2017 · 0 балів · відповісти

—>> Юзать Qt
—>> 2017 год

Мальчик, ты только из комы вышел?

legacy_наркоман_1 · 17.08.2017 · 0 балів · відповісти

схуяли? обясни что пиздже

legacy_Крестоебы_хуже_пидорасов · 17.08.2017 · 0 балів · відповісти

Назови хоть 1 серьезный проект, команду, тд которая использует Qt как основной инструмент в 2017 году.

legacy_zalupa · 17.08.2017 · 0 балів · відповісти

KDE

legacy_смузихлеб_1 · 17.08.2017 · 0 балів · відповісти

что ты несешь, полуумный? в гугле забанили? держи навскидку
Opera, VLC Player, Skype, Google Earth, KDE, Photoshop, VirtualBox
QT это самый пиздатейший кроссплатформенный движек с овердохуя компонентов

legacy_full_heap_engineer · 17.08.2017 · 0 балів · відповісти

Qt не инструмент
что до проектов — ну выбери какой-нибудь https://en.wikipedia.org/wiki/Category:Software\_that\_uses\_Qt

legacy_anon_31 · 17.08.2017 · 0 балів · відповісти

Пешы на 1С, немытый.

ЕСЛИ (я поц) ТО
надо\_выпить();
ИНАЧЕ
уколоться();
ЗАЕБИСЬ

legacy_Правдоруб · 17.08.2017 · 0 балів · відповісти

Меня при поступлении попросили написать консольный сниффер, ловящий после запуска первых 10 пакетов HTTP, залогировать и закрыться.
Написал, прошел.

legacy_Крестоебы_хуже_пидорасов · 17.08.2017 · 0 балів · відповісти

Каждому С++-шнику надо ознакомится с этим платиновым тредом на скуль.ру, а потом приходить сюда и плакать.

Треду 10 лет но в нем сама суть плюсов и их ЧСВ.

(Так как ссылки не прпоускает мочератор, то идешь в Гуглъ и вбиваешь «Луговский С++ форум sql ru» и клацаешь по первой ссылке)

legacy_Скромное_обаяние_буржуазии · 17.08.2017 · 0 балів · відповісти

Луговской, перелогинтесь !

legacy_Крестоебы_хуже_пидорасов · 17.08.2017 · 0 балів · відповісти

Увы-увы. Его присутствие сделало бы слишком много чести ебаному

legacy_тим_синьер · 17.08.2017 · 0 балів · відповісти

ебашу коньяк в 12 дня, мне похуй взял сикдей

legacy_anon_32 · 17.08.2017 · 0 балів · відповісти

Ебани еще несколько стопарей и напиши об этом своему СТО! он еще бухла подгонит, шышек и пару сочных хрюш пришлет танцевать на стол!!! 💯пудоф!!

legacy_бородатый_задрот_в_растянутом_свитере · 17.08.2017 · 0 балів · відповісти

тут обе стороны еще те тормоза, по предъявам со стороны КОМОДА — за стиль и решения — им нужен типа СИСТЕМНЫЙ ПРОГРАММИСТ при чем с упором больше на С, а не на С++, но внятно оформить требования не спромоглися :o(

Автор вместо того, чтобы махать хуем и рассказывать за свои UI скилы и то, как он прибивает гвоздями симейк и куте,
лечше б задумался о том, что использовать memset/memcpy для копирования строк это ОПАСНЫЙ КОД!!! Поищите про
strlcpy. С мапингом файлов получилось в стиле «отличное враг хорошего» т.к. мапинг можно рассматривать как оптимизацию
и то частную (файлы бывают и очень большими). Лучше было продемонстрировать способность написать сервис (я так
понял, что кОмОдЪ фигачит только под вЫЫнь). Да и исключения которые с горящими глазами ПрОпОвЕдНиКи чистого цпп
пихают хде не попадя хороши в примерах, а на практике если система взаимодействующих процессов ведет себя не так,
намного эффективнее старый стиль с препроцессрорными директивами и анализом кодов возвратов (к слову именно из-за этого он еще и не вымер).

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

P.S. Я не работник КоМоДа — просто проходил мимо :o)

legacy_уцкжцудьезщаьзацуа · 17.08.2017 · 0 балів · відповісти

Ну, комодо внятно изложил. Автор — на мидла тянет с трудом. Надо делать, что просят, а не фантазировать.

legacy_Крестоносец · 17.08.2017 · 0 балів · відповісти

CMake к Qt гвоздями прибивать не надо, они уже вроде давно женаты и с детьми

legacy_бородатый_задрот_в_растянутом_свитере · 17.08.2017 · 0 балів · відповісти

Главное шоб не развелись 🙂
Интересно кто подаст на алименты, а кому дети достануться?

legacy_Фейспалм · 17.08.2017 · 0 балів · відповісти

Аффтар и его воображаемый друг — неквалифицированные говнокодеры. Сами себе придумали часть требований, наговнокодили, а теперь возмущаются. В коде судя по всему дикий микс древних C примитивов, Qt и STL.

По возмущениям комментариями ревьювера — практически все «не в кассу»:
1\. Возвращать эксепшеном состояние проверки «найдена нужная сигнатура или нет» — дичь. Не говоря уже о производительности, с логической точки зрения «сигнатура не найдена» — вполне легальная ситуация, которая не является исключительной. Это просто кусок основной логики.
2\. Публичный метод без проверки входных данных — лажа, и оправдания «оно там где-то проверяются» не канают, аффтар просто подтверждает свою криворукость.
3\. Оправдание про копирование выглядит притянутым за уши, не было этого в условии, ну и ладно. Оператор new — да, на современных платформах бросается эксепшенами, но и это можно переопределить. Так что претензия аффтара скорее да, чем нет, но тоже неоднозначна.

Претензия к ревьюверам в английском — «founded», блеать, означает «основан» а не «найден», выучите в конце-концов элементарные неправильные глаголы.

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

legacy_бородатый_задрот_в_растянутом_свитере · 17.08.2017 · 0 балів · відповісти

И ваще мебелью не интересуюсь :o)

legacy_Халявщик-партнер · 17.08.2017 · 0 балів · відповісти

мой кот уже написал тест лучше и быстрее

legacy_Системщик · 17.08.2017 · 0 балів · відповісти

Автор аутист. Антивирусы заточены под Windows, его адекватно попорсили написать ПОД ЕБАННЫЙ ШИНДОУС с использованием winapi, а он с какого то хуя решил использовать высокоуровненные кросплатформенные решения и Qt. В такой сфере как антивирусные продукты уклон делается на системщину и там нахуй его «современный C++» не нужен. Хочешь создать трiд? Юзаешь CreateThread на прямую без абстракций-хуякций. И так во всем.

Хорошо что этого дебила не взяли на работу. Он бы там в первый же день охуел от того на сколько их код отличается от его подходов. С++ макаки воистину ничем не лучше веб-макак и прочих ангулярщиков. С++ макака это такой пидарас который нихуя не разбирается в том что и как работает. Но при этом мнят себя илитой.

мимо Си-бог

legacy_Тамада_собачьих_свадеб · 17.08.2017 · 0 балів · відповісти

MOV ЩЕКА, ЧЛЕН тебе, проверяй

legacy_Туалетная_бугага · 17.08.2017 · 0 балів · відповісти

intel-cинтаксис сасает, как и ты

legacy_смузихлеб_1 · 17.08.2017 · 0 балів · відповісти

ORG #8000

LD A, \[CHLEN\]
LD \[SCHEKA\], A
RET

CHLEN DB #FC
SCHEKA DB 0

legacy_дядя_вася_2 · 17.08.2017 · 0 балів · відповісти

Кроме KMP есть Z algorithm http://www.geeksforgeeks.org/z-algorithm-linear-time-pattern-searching-algorithm/. Так что читайте блять кормана.

legacy_anon_28 · 17.08.2017 · 0 балів · відповісти

ОП, кстати, в своих анализах верно указал, что нужно было автоматный ахо-корасик юзать. Какой смысл тут с Z хз.

legacy_Угонщик_гироскутеров · 17.08.2017 · 0 балів · відповісти

Сеньор Крестушок на связи.
Автор статьи, как и его друг (назовём его Игорь-Пигорь) — июни. Объясню почему:

1\. Тестовое задание предельно ясно написано и весма-таки простое.
2\. В задании написано чёрным по белому, «ДЕЛАЙ, СУКА, ПОД ВИНДУ, ИСПОЛЬЗУЯ WIN API И НЕ ВЫЁБЫВАЙСЯ». Пигорь же зачем-то выебнуться решил и захуячил кроссплатформенно, используя высокоуровневую Qt-прокладку. А знает ли дорогой Пигорь, что использование GPL фреймворков подразумевает линкование динамических библиотек, а не статических? Это открывает неплохой путь для злоумышленников для подмены соответствующих DLL. Если же, он использовал статическую линковку, то по-любому нарушил права LGPL, если у него не куплена соответсвующая лицензия индивидуального Qt-разработчика.
3\. Пигорь так же зачем-то бросается исключениями, хотя, такая вещь как исключения в C++ — весьма дорогая в плане производительности и stack unwinding кода, который генерится на этапе компиляции. Идеальным было бы использовать C API для Scanner DLL, не плюсовой, т.к. с плюсовым интерфейсом всегда возникают проблемы совместимости из-за name mangling’а разными компиляторами и использования разных STL рантаймов.
4\. Пигорь не слышал про assert’ы? Когда это однозначно ошибка разработчика, почему не выставить assrtion failed вместо бросания исключением?
5\. memcpy, memset? Очень опасные функции, которые отстреливают тебе ноги при любом удобном случае.
6\. Копирование всего файла в память — поебистика. А если файл дохуя терабайт весит, то что? Это серьёзный косяк. Они явно ожидали использования функции CreateFileMapping в коде Пигоря.

Моё мнение, комодовцы всё правильно сделали, что отшили Пигоря. Единственное, что выбесило — это кривой английский в ответах. Зачем вообще общаться с соотечественниками на КРИВОМ английском?
Как я понял, им нужен чувак, который разбирается именно в виндовом программировании и сможет поддерживать их старые кодовые базы и контрибьютить в новые проекты на C++11, C++14. Блестать знаниями кроссплатформенного программирования на Qt было совсем не нужно. Qt сейчас знают почти все адепты касты C++, так что, это попса и не используется в их проектах. COM/ATL — бородатые технологии, которые, скорее всего, используются в старых проектах, которые нужно поддерживать. В новых, они, конечно, вряд ли их юзают.

Короче, Пигорь крестушок с завышенным ЧСВ, а автор статьи дятел.

legacy_Тамада_собачьих_свадеб · 17.08.2017 · 0 балів · відповісти

как боженька смолвил

legacy_Гудвин · 17.08.2017 · 0 балів · відповісти

Где ж ты, пидарас, увидел там, что явно написано юзать winapi? Под винду — под винду тестовое компилится, об этом же сказано было в статье. Про лицензию qt — да, ты прав, но коммерческая лицензия покупается. Прикинь, её реально купить. И сделать это проще, чем портировать винапи поделку на андроид, реалли. Если ты по поводу того, что кутэ юзалось в тестовом, то пацанам отправили исходники. Лицуха не нарушалась.

Давайте для всех поясню пару моментов — нахуя там кутэ? В основном, из-за паттерна map/reduce. В остальных местах — простота и кроссплатформенность. Второе — нахуя там опасные функции для работы с гуидами? Там библиотека. В библиотеке есть такое понятие, как манглинг экспортов. Extern C отключит манглинг, но нужно юзать встроенные типы. Манглинг нужно отключать, иначе библиотеку не заюзаешь из ехе, собранного другим компилятором. Студия и мингв, например, манглят по-разному.

legacy_Угонщик_гироскутеров · 17.08.2017 · 0 балів · відповісти

В требованиях к самой вакансии прослеживается точные намёки на WinAPI, а в задании в бонус тасках COM/ATL. Если ты не долбоёб, то смекнёшь чего от тебя ждут.

Пигорь, залогиньтесь.

legacy_бородатый_задрот_в_растянутом_свитере · 17.08.2017 · 0 балів · відповісти

Намеки — это не сказанное явным образом, поставте себя на место интервьюируемого,
смогли бы вы намного лучше, при желании сделать по проще — я думаю вряд-ли.
На словах все мастера махать хуем, а как дойдет до дела …

Мебельному изделию надо было точнее прописывать задачу, а то выглядит как
самолюбование имбецила-олимпиадника в стиле «а что там рассказывать и так все понятно»,
да и постановка задачи не технарем, с возможностью прояснить не понятные моменты вызлядит
как банальное НЕ УВАЖЕНИЕ к потенциальному сотруднику — будите по проще 😉

Ну а автору я б посоветовал всетаки научится справляться со стрессом, там нужно
было не рваться в бой с первым выстрелом, а попытаться прояснить не понятные моменты,
и если ЭТИ КАДРЫ не способны проявлять элементарную АДЕКВАТНОСТЬ и УВАЖЕНИЕ
в человеку который потратил на вас время то и нах сии НАРЦИССЫ нужны,
дальше могло быть сплошное садомазо.

legacy_Гудвин · 17.08.2017 · 0 балів · відповісти

Где, сука, точные намёки на винапи? Где?

legacy_Угонщик_гироскутеров · 17.08.2017 · 0 балів · відповісти

\>Strong knowledge of Windows API
\>Experience in commercial development for the Windows environments
Ни слова про Qt, cross-platform, \*nix. Смекаешь?

Тебе знакомо понятие «оверинжиниринг»? В требованиях было указано UI либо консольный клиент. Какого хуя тащить такую громоздкую зависимость как Qt (она реально громоздкая, инфа 100%)? Ради того, чтобы налабать одну формочку? Можно было консолью обойтись!
Ради мнимого map/reduce из QtConcurrent? Да ебись оно конём! Крестоблядство скатывается в дельфи-говнокодинг с использованием VCL, когда на любой чих дельфи-макаки бежали в интернет искать готовый компонент.
В интернете полно примеров реализации thread pool’ов с использованием STL/Windows API. Ради этого не нужно было тащить целый фреймворк.
Это значит, что у Пигоря полностью отсутствует инженерная культура, поощряющая использование данного тебе инструмента на максимум — Пигорь идёт нахуй со сцены, следующий!

legacy_Гудвин · 17.08.2017 · 0 балів · відповісти

Сука, ну в статье же qtcore написано, какие кнопочки, хоть бы тестовое глянул, пидар

legacy_Угонщик_гироскутеров · 17.08.2017 · 0 балів · відповісти

И стоило только ради потоков тянуть QtCore? Ты ёбнулся? Мало того, что это всё равно сильно дохуя, всё равно что стрелять из пушки по воробьям, так ещё и накладывает обязанности на собирающую сторону, устанавливать полностью весь фреймворк Qt.
Не отмазывайся, Пигорь, ты всё равно проиграл.

legacy_уцкжцудьезщаьзацуа · 17.08.2017 · 0 балів · відповісти

Да не бомбит у меня! (с)

Так ты ещё и тупой, сука.

legacy_Грегор_Джавович · 17.08.2017 · 0 балів · відповісти

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

legacy_Папкин_ухаед · 17.08.2017 · 0 балів · відповісти

А я один не понял, как отключение декорация имен способствовало тому, что метод класса принимает std::string, а данные хранит у себя как char\[\]?

legacy_TL · 17.08.2017 · 0 балів · відповісти

пайти вайти в РБ )))

FYI

https://tech.onliner.by/2017/08/17/pojti-v-it-3

legacy_Startuppa · 17.08.2017 · 0 балів · відповісти

Хотел излить тонну бугурта на пидрильную статью и степень уебищность автора и его его друга, но почитал комменты выше — уже все расписали нет смысла повторяться. Итог: июни максимум, и с таким гонором нахуй в айти не нужны никому — пусть улицу подметают лучше, и не портят своим пиздежом репутацию крестовиков. Сука, бросать исключение на каждую ненайденную из овер 9999999 сигнатур — это просто пиздаааа…. 11 индусских кодеров из 10. Мартин блять советует… Хуяртин, ебанаврот!

Добавлю лишь, что КОМ/АТЛ и иное некро-говно указаны \_как опшионал\_ не просто так, и уж не в коем случае не потому, что комодовцы хотят на нем писать. Я на 99% уверен, что у них уже есть большой пакован легаси-кода, от которого никуда не деться и переписать тоже никто денег/времени не даст, и с которым им надо уживаться. А потому, естественно что для них хорошо, если нанимаемый уже видел и знает что это за дичь — адаптация пройдет быстрее.

legacy_Гудвин · 17.08.2017 · 0 балів · відповісти

Что ты там хотел? Уже всем понятно, что гневные комменты выше писал один и тот же ссаный мудак из комодо, и не лень было парню перелогиниваться. Ну хоть так тебя, пидара, заставили делать свою работу. Если человек тратит пару дней на твоё тестовое, будь добр потратить 20 минут на развернутый ответ. Это же часть твоей работы, унылое ты падло.

По поводу иксепшенов — приебываться надо к алгоритму, а не иксепшенам. В худшем случае кмп работает линейное время, плюс потом делается генерация исключения за О(1), так что да-да ты правильно заметил, что ненахождение паттерна — самая частая ситуация, но ты не знаешь, баран, что с этим делать.

legacy_крестовый_рыцарь · 17.08.2017 · 0 балів · відповісти

Какой же ты долбаёб. Ни один человек который на плюсах пишет хотя бы пару лет и имеет дело с нормальным кодом не будет выбрасывать исключение при ненахождении паттерна. Это даже без объяснений выбивается из колеи и режет глаза ++ разрабам.

Всем абсолютно похуй какой из абоссаных алгоритмов ты спиздишь с emaxx, им нужно проверить уровень владения плюсами. И автор со своим воображаемым другом показали, что уровень пиздец какой никчёмный. Это пиздец как неочевидно, что функция вроде contains() выбрасывает исключение, а не возвращает false, например. Ни один добаёб не собирается читать код твоей сраной функции чтобы узнать какое дерьмо ты решил оттуда выбрасывать. Особенно std::runtime\_error — это верх ебантизма.

Даже из обоссаной статьи ясно что оно тут не подходит: http://en.cppreference.com/w/cpp/error/runtime\_error
» It reports errors that are due to events beyond the scope of the program and can not be easily predicted. »
Конечно, отрицательный результат проверки хуй предскажешь, это же охуеть какая внештатная ситуация.

И причём тут сложность вообще? Ты пиздец какой даун, если любую строчку кода сложностью измеряешь. Создание потока это тоже O(1)?

PS накидал исключений тебе за щеку, обрабатывай

legacy_бородатый_задрот_в_растянутом_свитере · 17.08.2017 · 0 балів · відповісти

Девочки не ссорьтесь :o)

Согласен, девелопер с исключениями херню сморозил — я б не отождествлял
это с не знанием плюсов, скорее с новизной предметной области.
Не кажный день тебе предлагают антивирь за два дня нафигачить,
тут и не такое можно выдать 😀

А вот комод повел себя не красиво, я б скажал даже по свински — технарь
мог и снизойти до аудиенции интерьвьюируемому.

К слову я, за комодЪ узнал только из этой статью,
он шо, внатуре, антивирь пишут или так стебаюцца?

legacy_крестовый_рыцарь · 17.08.2017 · 0 балів · відповісти

Причём тут предметная область? Смена места работы разраба очень часто соответствует смене предметной области, но это не значит, что все начинают писать, как дно.

Да и какой антивирь. Тут задание детское — найти паттерн байт в файле. Что теперь блять если ты через curl скачал html страничку — браузер нафигачил? А если форму склепал — веб приложение?

legacy_бородатый_задрот_в_растянутом_свитере · 17.08.2017 · 0 балів · відповісти

По сути тут тестилось знание пляццкого WinAPI и знание алгоритмов поиска подстроки в строке. Не поверю что большинство C++ UI-щиков сами имплементируют постоянно такие алгоритмы 😉
Большинство дальше доки QString и не ходило.

Ребята вы говорили и говорите про свое на своем языке, бросайте ломать копья
ОБА НЕ ПРАВЫ!

legacy_хайзенберг_1 · 17.08.2017 · 0 балів · відповісти

При разработке антивируса под шиндус требуется знание шинапи. Какая неожиданность!

legacy_на_хую_вертел · 17.08.2017 · 0 балів · відповісти

хватит пиздеть вы две прыщавые сучки

legacy_бородатый_задрот_в_растянутом_свитере · 17.08.2017 · 0 балів · відповісти

Сама дура 😛

legacy_крестовый_рыцарь · 17.08.2017 · 0 балів · відповісти

спиннер ты на хую вертел, дрочер мамин

legacy_уцкжцудьезщаьзацуа · 17.08.2017 · 0 балів · відповісти

Ну, интрервьюер ничего объяснять не должен. Но на вопрос ответить обязан, если задали

legacy_Грегор_Джавович · 17.08.2017 · 0 балів · відповісти

Я не из комодо, а ты дебил.

legacy_Папкин_ухаед · 17.08.2017 · 0 балів · відповісти

Не, баран у нас автор, тоесть судя по всему ты…
Ты бросаешь типовой экзепшен, тоесть ты по умолчанию не можешь разрулить ситуации когда у тебя системная ошибка, а когда бизнесс ошибка, эьто проеб с экзепшеном номер раз.
Далее — я чуть более чем уверен, даже не видя остального кода. что у тебя там не обернут трай кетчем блок поиска и вывода месседжа, и он находится выше, это два.
И три, я опять таки чуть более чем полностью уверен. что тела как минимум твоих деструкторов трайкетчем не обернуты, и спокойно могут плюнуть исключение, и так сказать без палева мы приходим к той ситуации когда ты своими руками загоняешь в стек второй экзепшен подряд со всеми вытекающими. А ведь ты просто хотел сказать что у тебя сигнатура не найдена.

legacy_Гудвин · 17.08.2017 · 0 балів · відповісти

Иксепшены в деструкторах? Да ты еблан знатный

legacy_С · 17.08.2017 · 0 балів · відповісти

ты кароче так злишся, шо нихуя не понял (это я так на июня типа намекаю) ….он имел ввиду, что наверняка есть деструкторы, которые не noexcept, а т.к. при вызове твоего эксепшина сработает и такой дктор, то есть не нулевая вероятность выхватить и от него повторный эксепт.

legacy_Папкин_ухаед · 18.08.2017 · 0 балів · відповісти

Зачем далеко ходить? 🙂
buffer.reset(new uint8\_t\[file.size()\]);
Вот тут наш дорогой кросплатформенный поциент сам себе набрасывает потенциальный экзепшен…
Хотя даже если ему сказать что это андефайнед бехевиор и так писать нельзя — он все равно не поймет 🙂

legacy_Папкин_ухаед · 18.08.2017 · 0 балів · відповісти

🙂 Прикинь, да, деструкторы по умолчанию бросают исключения, все, и подавлять их должен ты. если ты начинаешь использовать исключение как средство логики.

legacy_ичинка · 17.08.2017 · 0 балів · відповісти

Я б мог написать антивирус и на ангуляре в браузере такой. И мой будет не чуть хуже этого, потому что рекрутер взял себе qt и прочии абстракции облегчалки жизни, я чем хуже буду? Коню понятно что надо было делать на лоу левел апи. Написали что давай COM, dll. Нет, хочу qt и кроссплатформенность.

legacy_хайзенберг_1 · 17.08.2017 · 0 балів · відповісти

Вполне нормальные требования. Тестовое задание на 1-2 дня — тоже нормально, особенно если им нужен именно разработчик а не формошлеп. Ну а остальные проблемы чисто из-того что разбором тестового задания занимался какой-то долбаеб (остальные видать были заняты).

legacy_expert · 17.08.2017 · 0 балів · відповісти

Сроки ебанутые, такое минимум неделю делать.

legacy_хайзенберг_1 · 18.08.2017 · 0 балів · відповісти

Тут проблема в том что работодатель не смог объяснить что ему нужно, а соискатель не смог понять. Такое обычно случается если идиоты оба.

legacy_expert · 18.08.2017 · 0 балів · відповісти

Задание вполне понятное, но очень объемное.
Видно что контора ожидает себе гребца у которого каждый рабочий день состоит из 20 часов но будет оплачено только восемь часов.

legacy_Распятый_эйчарчик · 17.08.2017 · 0 балів · відповісти

Любое тестовое задание это хуета, не стоящая потраченного времени.
Тем более антивирус/шашки с искусственным интеллектом/модуль запуска Светлой в Тёмную.

legacy_Страшный_сон_путина · 17.08.2017 · 0 балів · відповісти

Представил как молодой и энергичный инноваторский светлый ум апплаится инженером на очередной ооо «рыбстройхозпром», и там старые пердуны втирают ему совковые госты, отметая нахуй все инновации… Потом еще удивляются, почему их компания говно, а их продукты никому нахуй не нужны, хотя на рекламу в печатной газете регулярно выделяется треть бюджета предприятия.
Чего хотел соискатель в компании, которой после 20 лет истории нужны ссылки на вики при упоминании?) И так ведь ясно, что они — унылое говно)

legacy_Хуй_зед_райд · 17.08.2017 · 0 балів · відповісти

Тестовое делать заставляют. Совсем охуели.

legacy_трудовик · 17.08.2017 · 0 балів · відповісти

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

legacy_Вася · 17.08.2017 · 0 балів · відповісти

Да там писать сам сигнатурный сканер как нехер делать. Просто алгоритм Ахо Корасика обернуть в красивую обертку.
Правда потом дальше всеравно мозги ебут и выясняется что им вовсе чел не в антивирус был нужен а в какую то унылую хрень типа их браузера.
Был у них, делал задание, послал после таких разговоров нахрен.

legacy_expert · 17.08.2017 · 0 балів · відповісти

Вы ебанашки вместо COM (ATL) начали городить QT и какие вы блядь синьоры после этого нахуй?

скасувати

legacy_Рейхсфюрер_СС · 17.08.2017 · 0 балів · відповісти

Только Rust и C с лиспом и асамом, плюсы для моральных уродов.

legacy_Ушат_Помоев · 17.08.2017 · 0 балів · відповісти

Пидорнули пацанчика поделом, ибо нехуй даже пытаться с Qt в системное программирование. Это могло быть единственным и достаточным аргументом на отсев. Кутэ вообще должно было сдохнуть чёрти когда, ибо костыли для новобранцев и имбецилов от программирования. Своего рода Delphi, заквашенное на плюсах. Собсно, фидбэчина :»usage of QFile instead of native file mapping and QThreadPool instead of STL or native windows threads as well as many controversial design decisions force us to think candidate is not suitable for our project» — это то, как раз, хоть и косвенная, но феерическая квинтэссенция обозначенного выше тезиса: Qt? На хуй иди!

Ну и по заданию скажу, что справился бы за день легко. Как два байта переслать. А если клиент библиотеки консольный, то за полдня. Ну и нахуй вообще сторонние либы притягивать за уши, когда из стандартных средств у плюсов из коробки минимум три способа доступа к файлам (для каждой из трёх платформ), в наличии стандартный способ работы с потоками/синхронизацией, неебический набор контейнерных классов, пиздатые строковые возможности и полный интернет разных нужных иногда экзотических и извращенных, но всё-же фич…… Единственно, что нужно помнить при кроссплатформе — это то, что пизженный сырой функционал надо заворачивать в удобные врапперы-бриджи и рассовывать по категориям, формируя что-то, именуемое в народе «фасадом».
Теперь, по заданию. Прежде всего: «You need to develop simple malware detector.» — это нихуя не резидентный антивирус, перехватывающий весь файловый (а то и вообще весь) ввод-вывод в системе, обладающий эвристиками, детектящими активности, похожие на вирусную деятельность, помимо базы сигнатур. Это просто всего-лишь(!) сканер командной строки.
теперь читаем very вниматочно!
— Scan file by path
сканировать 1 (адын щтука) файл по заданному пути. не? а как по мне — так да. зачем обходить рекурсивно директорий? ну а с другой стороны, обход директория — рекурсивная функция длиной в 50 строк на чистейшем плюсе (и это с учетом кроссплатформы), одним из аргументов которой идёт функтор (можно шаблоном запузырить), колбэчно вызываемый на каждый найденный файл. Иначе говоря, задание упрощается донельзя: «пишем консольный сканер для одного файла, путь к которому передаётся в командной строке». Единственная «сложность» — это распилить код на две части — типа клиент и типа сервер, и реализовать «сервер» в дэлэлэ. Пиздец! Пишем антивирус блеать!
— Scan array of bytes
сканировать массив байтов. чушь какая-то… не сказано ведь, откуда их брать! а методов-то больше, чем у ебливого тузика мандавошек… скипаем до выяснения. если у них возникнут вопросы — попиздим и выясним. скорее всего, имеется в виду сканирование байт в этом самом злосчастном файле. но и так придётся писать функционал сканирования массива байтов — мы ведь в любом случае сканим память, даже если это замапленный файл. А добавлен этот элемент в список скорей всего для количества, ибо перечисление фич в виде списка из двух айтемсов — это уже за гранью добра и зла.
— Load signatures file
загрузка файла сигнатур. собсно, без оной самое сканирование невозможно, так что тут просто ордер перечисления неверный. как реализовать загрузку сигнатур? сука, std::getline на текстовом файле. простейший токенайзинг по символу «.» на две части (у C++ есть минимум 2 метода искаропки для этого) и закидывание в std::map с предварительным преобразованием строки в UUID (он же GUID, по структуре).
Ну а по предъявсленному коду (хоть и немного его предъявлено) можно с долей уверенности сказать, что код «ниразу ничоткий»(с), говённый код. Городушки какие-то. Ну вот нахуа предварительное обнуление буфера перед копированием туда содержимого аргумента функции?! Лишняя работа! Оверхед. Причем, двойной. Ведь GUID\_SIZE == Guid.length(), исходя из пояснений к функции. А если уж очень надо косить под asciiz, то просто
….
memcpy(guidMemory, &Guid\[0\], Guid.length());
// sizeof(guidMemory) должен всегда быть >= (Guid.length() + 1)
guidMemory\[Guid.length()\] = 0;
….
Ну и вообще, хуёвая логика-практика: проверять аргумент функции на валидность перед ее вызовом во всех местах, а не в самой функции — тоесть, централизованно…

Теперь, файл-маппинг…. пишем бридж (выдумываем универсальный интерфейс или нагло пиздим готовый откуда-либо) и реализуем 3 имплементации — под венду, линухс и мокасины. Получается чисто, да и кода не так уж много. Сами имплементации качаем с инета, если в гугле не забанены или пишем на коленке за 20 минут (если все-таки забанены 😉 опыта ведь вагон с перроном). Это чтоб не тащить за собой мелеарды трелеоноф иксобайт Qt…. Да и ваще, любой библиотечный мусор.
Еще цытатки:
цытатко: «Парней здесь смутило, что товарищ маппит файл в память, а потом из замапленного куска делает копию….. Во-первых, такое копирование, даже будучи избыточным, вполне корректно работает. Во-вторых, ни один антивирь сейчас не работает с маппами только для чтения, потому что ему нужно делать эмуляцию, деобфускацию и всякого рода преобразования с исходным файлом.».
Да блядь…. ебучие рога! читаем задание более вниматочно и не выдумываем ничего своего! надо просто просканировать файл. не надо ничего эмулировать, ничего записывать. просто, сцуко, просканировать. это задача такая поставлена. если ты шото там додумал, то ты даун. и тебя отсеивают, дауна. а потомучта даун, блядь. даун, усложняющий всё во сто крат, дай тебе, дауну, волю, даун ты этакой! даун….
цытатко: «….Тем не менее, представленное решение тоже было рабочим!»
Тем не менее, но и тем не более. Не по заданию. Наблюдаем еще один оверхед. Тенденция, однако… даун?

Ну и вдогонку пару брёвен…. Хлопец решил сыграть в лотерейку (сделать тестовое). И его отбрили (не выиграл лотерею — бывает). Пускай это не станет поводом к печали, ибо всё одно наша жизнь суть броуновское движение против диссипативных сил правительства.

legacy_Ушат_Помоев · 17.08.2017 · 0 балів · відповісти

о! какой-то нубстер минусанул )))))))))))

legacy_test_1 · 18.08.2017 · 0 балів · відповісти

это Гудвин минусит, который и есть автор гениального кода из статьи, который вполне заслуженно посмели обосрать в коментах

legacy_Тамада_собачьих_свадеб · 17.08.2017 · 0 балів · відповісти

У меня встал

legacy_Страшный_сон_путина · 17.08.2017 · 0 балів · відповісти

Ну тогда упростим все к ебеням)
grep -f sigs path

legacy_Ушат_Помоев · 17.08.2017 · 0 балів · відповісти

Всё должно быть изложено так просто, как только возможно, но не проще. Это дедушка Эйнштейн задвинул. В этом я с ним согласен, хотя ни ОТО, ни СТО не люблю.

legacy_Гудвин · 17.08.2017 · 0 балів · відповісти

Парень, еблан ты, твоё начальство выгонит тебя ссаными тряпками на мороз

legacy_Ушат_Помоев · 17.08.2017 · 0 балів · відповісти

Еблан Дебилов — это мой односельчанин. А я — Ушат Помоев. Ты не путай! )))))

legacy_Гудвин · 17.08.2017 · 0 балів · відповісти

Сложил тебе за щеку пару ссаных тряпок. Не благодари, код ошибки в твоём днк возвращать не нужно

legacy_Ушат_Помоев · 17.08.2017 · 0 балів · відповісти

неаргументируемые лучи поноса…. признак баттхёрта? ну и по какому поводу пукан шкварчит? я же вроде-как не собирался писать статью-детектор!

legacy_Ушат_Помоев · 17.08.2017 · 0 балів · відповісти

меня терзают смутные сомненья…. а не под ником-ли Гудвин скрывается автор статьи AKA Жук?!
)))))))))))))))))))

legacy_оккупатор · 17.08.2017 · 0 балів · відповісти

В реальном боевом C++, особенно в системном коде, исключения не используются и типично отключены к чертям. Маппинг, если мне память не изменяет, возможен с copy-on-write.

legacy_Ушат_Помоев · 17.08.2017 · 0 балів · відповісти

исключения навзничь отключаются (в g++ ключом -fno-exceptions) обычно только при написании ОСей и дров, ибо runtime тоже отключено. а так — по желанию. Маппинг возможен, если платформа поддерживает MMU и страничеую адресацию ))))

legacy_оккупатор · 17.08.2017 · 0 балів · відповісти

У нас в гейдеве исключения по жизни выключены.

legacy_Ушат_Помоев · 19.08.2017 · 0 балів · відповісти

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

legacy_Лайкабос · 17.08.2017 · 0 балів · відповісти

Прочитал о тестовом — и решил что автор статьи лошара. Во первых какое нахуй нда, если ты ищешь новую компанию? Ну поменяй там в своем коде какой нибудь нейминг конвеншн и выдай. Но скорее всего у автора просто никакого полноценного кода и не было, тупо джуном минор баги фиксил.

Во вторых тестовое задание элементарное же. Далее на православном админском баше, через sed со счётчиком посимвольных совпадений это можно сделать, а через find exec grep ‘pattern’ вообще в одну строчку. Многопоточность? Запускаем пару процессов со своими тасками, пусть ядро поточностью занимается. Венда? Пусть антивирус поднимает юникс виртуалку и туда копирует сканируемое файло 😀
Да даже на жабаскрипте работа с блобами и воркеры — все элементарно.

Я хуй знает как там на крестах, но уверен что не сложнее. Так что автор — формошлеп и мудак, а креатив — говно.
И да, Комодо — пидар контора задрипаная, хуй бы там работал когда.

legacy_Лайкабос · 17.08.2017 · 0 балів · відповісти

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

legacy_Ушат_Помоев · 17.08.2017 · 0 балів · відповісти

не, ну вызвать греп — это просто, однако, на винде его нету. придётся тянуть для винды скомпиленный бинарь…. подмять сырцы грепа? как вариант. )) только надо помнить , что в любой момент могут попросить чего-то добавить. расширить, так сказать, функционал. так что такое (чрезмерное) упрощение концепции чревато боком, а то и раком…

legacy_гусь_1 · 17.08.2017 · 0 балів · відповісти

Тыц-пыздыц

legacy_Мимо_Крокодилов · 17.08.2017 · 0 балів · відповісти

\>> new uint8\_t\[file.size()\]

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

legacy_Ушат_Помоев · 17.08.2017 · 0 балів · відповісти

100%

legacy_Рваная_жопа_с_горящими_глазами · 17.08.2017 · 0 балів · відповісти

как и его друга-защекана

legacy_Ушат_Помоев · 17.08.2017 · 0 балів · відповісти

точно…. хотя-бы за то, как нежно и практически трепетно он называет этих еблобанов с комоды «парнями»))))))))))

legacy_Гудвин · 17.08.2017 · 0 балів · відповісти

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

legacy_Ушат_Помоев · 19.08.2017 · 0 балів · відповісти

хехе, зато если файл попадётся размерами больше оперативы, ебать система насвопается от души. будет щщастячко, если винт ССД будет! а 32-х битная так ваще пошлёт нахуй свыше 2 гектар выделять.
PS: насчет этих всех скобок за щеку… детски сад, чесслово! мы тут за дело трындим — а тебе безобразия какие-то в голову лезут, школота неокуклившаяся.

legacy_полинаркоман · 18.08.2017 · 0 балів · відповісти

автор конечно быдлокодер, а иметь опенсоурс проекты (хотя бы один) я думаю как минимум нехуйовая визитная карточка
У меня тоже хуйня своя была года 2 назад
сразу скажу я не мну себя каким то мега крутым кибербогом с++, всегда рад код ревью и критике
в Developex проходил собеседование на Qt разраба,

1\. Вначале стандартный пиздеж с HR
2\. Через пару дней напиши реализуй ебучюю фцию на бинарных деревьях за полчаса (лулзьно что в требовании написано было что нельзя гуглить (наивные, ну ясно что пошла копипаста/копираста 2 напаса пару коментов ну и отослал этот высер)
3\. Получаю положительный отзыв, говорит HR типа «го тех. собеседование». ну го
4 Попиздели-попиздели о плюсах бинарных сдвигах и всякой разной хуйне, вроде норм все, лажал минимум
5\. Получаю ответ от HR, вы прошли техническое собеседование, теперь последнее задание на пару дней

нахуярь прогу с UI для рекурсивного поиска заданного текста по графу web страниц который строиться через найденные ссылки в заданой юрл ну и плюс что бы можно было задать параметры типа максимальное количество юрл и количество одновременных закачок страниц

я по своей природе немного тугодум и любитель шишек, день подумал, покурил, на второй нахуярил код, на третий просмотрел подправил чутка что бы код был почище и понятнее, ну и отправил этот высер

  1. через пару дней HR говорит го финальное тех. собеседование, я начинаю думать да заєбали уже, ну го хуле там, наверное о тестовом задании поговорить хочет чот, забазарили дату время

7) Пришел тот самый день, звонок в ебучий конченый высер под названием скайп
поздоровались, уже какойто другой парниша, и начинает он меня спрашивать всякую плюсовую хуйню
я такой говорю, стопеда, а что там с тестовым заданием? в ответ получаю вопрос «ты вообще о каком тестовом задании говориш, нихуя не знаю и не слышал» после этого чот вообще обидно стало, нахуя я это тогда все делал, на все следующие вопросы я начал не уверено отвечать и лажать, одним словом — провал.

получаю письмо-копипасту уже на англ от HR, «Спасибо что пришли к нам в офис на собесодование, спасибо за интерес, бла бла бла, вы нам не подходите»

вот така хуйня малята, випезделся, спасибо

legacy_minzdrav · 19.08.2017 · 0 балів · відповісти

Минздрав предупреждает: проходить такие собесы чревато появлением анальных трещин.

legacy_Калян · 18.08.2017 · 0 балів · відповісти

С чего столько шума? Это же вполне стандартная практика: вакансия есть всегда, задрачивают тупейшими вопросами, потом из всех выбирают тех кто готов прогнуться под худшие условия. Вы нам конечно не подходите и код у вас говно и знать вы ничего не знаете, но мы снизошли до вас(когда появилось реальное место в проекте), что правда предложить можем 20-50% от того что предлагали в вакансии.
Ему ещё раз напишут через два три месяца. Далее варианта 2
Я уже работаю за 95 % от вашей вакансии, менее чем за 120% не вижу смысла сраться с хорошей компанией.
И конечно тупо послать их вместе с их отношением к людям, ведь дальше они его не улучшат!

legacy_е_ИТ_девелопер · 18.08.2017 · 0 балів · відповісти

Аффтар лошара и долбоеб. Единственная реальная причина, по которой тебя послали нахуй — твой сканер работал МЕДЛЕННО. Все остальне — формальные отмазки, хотя и этого было бы достаточно для посылания тебя нахуй.

legacy_Гудвин · 18.08.2017 · 0 балів · відповісти

Он был быстр, как ветер. Быстрее твоего папки, который не успел вытащить, и родился ты

legacy_Ушат_Помоев · 19.08.2017 · 0 балів · відповісти

какой алгоритм поиска использовал?

legacy_Дмитрий · 18.08.2017 · 0 балів · відповісти

Стандартный прием галеры, чтобы взять работника терпилу подешевле
1) Даем километровое задачние
2) Кто выполнил такое бесплатное — терпила
3) Начинаем чмырить терпилу, типа ты лузер, код плохой и так далее
4) Могу поспорить на что угодно — через 1-3 месяца бы написали:
типа Вы лузер, но 500$ мы для Вас найдем на позицию джуна … с задачами сеньера
Занавес

legacy_expert · 18.08.2017 · 0 балів · відповісти

Нахуй кому нужен работник (даже за $500) который на каждую маленькую хуйню в проекте будет цеплять QT, Boost или другие велосипеды с гитхаба.

legacy_Дмитрий · 18.08.2017 · 0 балів · відповісти

Ждем твоего решения описанной в статье задачи.
Причем кроссплатформенное. За 4 дня.

legacy_expert · 18.08.2017 · 0 балів · відповісти

По заданию четко прослеживается что нужна была только винда.

legacy_Ушат_Помоев · 19.08.2017 · 0 балів · відповісти

+1

legacy_Григорий_Бритва · 18.08.2017 · 0 балів · відповісти

2005: Фаеррезист нахуй? Там ималейт импрувед, сука, возможность резиста КРАЙНЕ МАЛА.
2010: Глад отсосет у Хавка? Та я тя в рот и жопу выебу, дай только зарядиться.
2017: Фреймворк1 нейм лучше фреймвокрнейм2! Использовать фреймворк3? Да ты сука охуел он тут не к месту! Стандартны Хуйсосницкого!

Когда человечество поймет, что в таких спорах нет истины?

legacy_Kurwa · 18.08.2017 · 0 балів · відповісти

\> Но могу сказать из своего личного опыта, что рекрутёры в больших компаниях заняты рассказами друг другу о том, как они на выходных в клубешниках с причмокиванием сосали писюны.
Посасывал писюн в клубешнике, а потом рассказывал об этом другим, значит. Ты же пидр!

legacy_Гудвин · 18.08.2017 · 0 балів · відповісти

Как там — начальство уже ебёт тебя в жопку? Говорят, что теперь понятно, из-за кого вакансию так долго закрыть не могут? Смотри, чтобы пукан сильно не подгорал, а то начальство выгонит тебя нахуй, ибо неудобно. Хехе, ебаный ты пистон.

legacy_СукаНЕНАВИЖУ · 18.08.2017 · 0 балів · відповісти

Очко пичет, бляяяяяя! Хорошо хоть начальник по старой дружбе увольнять не стал, но обязанности-то добавились и все из-за тебя!!!

legacy_var_ты_дыбил · 19.08.2017 · 0 балів · відповісти

я ебу зачем вы тратите время на крестовые посиделки, блядь
при своих 1500$, я нихуя почти не понял

legacy_Человек-программист · 19.08.2017 · 0 балів · відповісти

Кг/ам. Тебя попросили конкретно сделать консольную утилиту и длл под Винду, и показать что ты знаешь тредпул и поиск подстрок в строке. Какого хуя появилось qt, Линукс мак и виндовс? Чувак ты получил задание, но сделал по своему. Я бы тебя тоже на работу не принял.

legacy_Хуй_с_горы_1 · 19.08.2017 · 0 балів · відповісти

Из статьи следует, до оно под виндами работало, консольная аппликуха была и длл, и поиск подстроки в строке. Так шо хуй его знает, приебываться захотелось с кроссплатформенностью. А чувак не оценил. Я ебал эти разборки читать. Тут хуй проссышь шо за хуйня. Но тестовое на 2 дня та ну нахуй

legacy_Ушат_Помоев · 19.08.2017 · 0 балів · відповісти

Ненене, из задания следует, шо они хотели токо винду, а еще хотели COM (желательно out-of-proc server), знания ATL и знания алгоритма Ахо-Корасик (ДКА для поиска множества подстрок в строке), многопоточность и файловый мемори маппинг и всё это через STL.
А вот Qt и кроссплатформенность они не сильно приветствуют. Я думаю, кроссплатформенность им просто допизды, а вот на Qt у них зуб наточен конкретно и особо, учитывая фидбэк.

legacy_Ушат_Помоев · 19.08.2017 · 0 балів · відповісти

плюсую. он под ником «Гудвин» читает каменты. скоро должен заявиться и к тебе. он неотвратим как конечный автомат. отработает как машина тьюринга — строго по перфоленте обложит залупами и скроется вночи как чёрный ниндзя, неуловимый как Джо из анекдота.

legacy_ЁптаЁжик · 19.08.2017 · 0 балів · відповісти

Я в ваши плюсы не могу но могу одно заметить, что у тебя прям дохуища времени каменты страчить. Не западло? Аффтар ламер мейби, не силен не знаю. Но тут сраться в коментах? Чую не зря тебя пропесочили.

legacy_Ушат_Помоев · 20.08.2017 · 0 балів · відповісти

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

legacy_злоебучий_еблан · 20.08.2017 · 0 балів · відповісти

Это еще херня. В юбисофте как тестовое мне впарили сделать полноценную игру за неделю с нуля. И это учитывая тот факт, что у меня есть основная работа (когда я это должен был делать — их ебало мало). Как полагается, с шейдерами, звуками, физикой. В общем — малость подмарафетить и хоть в прадакшин. Все обязательные кейсы сделали большую часть «было бы хорошо». Ответ получил одной строчкой, дословно не помню, но смысл был таков «мы долго смотрели, доебаться ни к чему не смогли, но у вас странный стиль, поэтому идите нахуй». После чего хрюша погурзился в среду с температурой -273C и больше ни на какие вопросы не отвечал.

legacy_Ушат_Помоев · 20.08.2017 · 0 балів · відповісти

а тебя на ренрерщика брали, или на генералиста?

legacy_тупой_синьер · 21.08.2017 · 0 балів · відповісти

ест же на ютубе видосы типа делаю майнкрафт за 5 часов

legacy_A_D · 27.08.2017 · 0 балів · відповісти

\> Доколупались они к генерации исключения вместо возврата кода ошибки. Да будет вам, хлопцы-комодцы, известно, что «Чистый код» Роберта Мартина советует как раз генерировать исключения, ведь это добавляет в наш код наглядности.

ОП, автор кода, Мартин и комодцы — ковбои-пидорасы, см. https://hackernoon.com/error-handling-in-c-or-why-you-should-use-eithers-in-favor-of-exceptions-and-error-codes-f0640912eb45


← Форум