LINUX.ORG.RU
решено ФорумTalks

Сегодня рассмотрели троих кандидатов, и...

 , , ,


1

2

Шеф дал объявление на вакансию пыхера.
За вчера и сегодня пришло три решения тестового задания.

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

1) внутренние 2) внешние 3) находящиеся внутри тега <noindex> и/или имеющие атрибут rel со значением nofollow.

Это жесть, я вам скажу.
Первые два нагавнякали лапши.
Вся лапша работает ПО РАЗНОМУ, выпарсивает на разных сайтах разные наборы ссылок.

У третьего автора тоже лапша, но его лапша особенная — она заточена на парсинг ТОЛЬКО ОДНОГО сайта, по остальным говорит что ссылок нет ни одной.

Ааааааааааааааааааааааа!!!!!!!!! Хочу это все развидеть!

Я правда не видел сам текст вакансии.
Возможно в ней что-то (кеш|требования) слишком занижено, вот и попадаются такие «тимлиды»..

З.Ы.: Это не показуха илитарности. Это вопрошение: где искать вменяемых пыхеров?

★★★★★

Последнее исправление: deep-purple (всего исправлений: 1)

Ответ на: комментарий от Frost

Отнюдь! Если бы соискатель взял из зенда, значит он не велосипедист + еще и зенд знает.

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от deep-purple

Хорошее знание PHP‚ MySQL. Опыт работы с CMS. Понимание HTML верстки‚ CSS.

Так нужен бекендер, фронтендер или контент-менеджер? Хотя за 40к можно нанять студента-оркестр, который будет делать все, но регулярками :)

drull ★☆☆☆
()
Ответ на: комментарий от deep-purple

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

drull ★☆☆☆
()
Ответ на: комментарий от Axon

Да даже я, не написав на php ни строчки за всю жизнь, и вообще, по большому счёту, не имея отношения к программированию, слышал про xpath, DOM и непригодность регулярок для парсинга HTML!

Трудоустраивайся, PHP по ходу выучишь.

quiet_readonly ★★★★
()
Ответ на: комментарий от drull

Я конечно понимаю что не бывает бекендеров пхп, ни разу в глаза не видевших хтмл и цсс

Как раз сейчас пытаемся переучить одного PHP-фронтендера, который в CSS не рубит, а всё пытается править а ля 1990-е сериями <font><center><img>... :) При чём исключительно в невалидных форматах атрибутов и парности.

KRoN73 ★★★★★
()

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

А ты сам-то на собеседовании быстро такое сделаешь для любого сайта, ушастый?

Особенно с domdocument, ага, который падает от незакрытых тэгов, и при неуказанной кодировке, которую сайты могут вообще не отдавать, или отдавать неверную.

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

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

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

risenshnobel ★★★
()
Ответ на: комментарий от KRoN73

фронтендера,
в CSS не рубит, а всё пытается править а ля 1990-е сериями <font><cen

Может проще нафиг из профессии?

drull ★☆☆☆
()
Ответ на: комментарий от drull

Может проще нафиг из профессии?

Там хитрое распределение по обязанностям. Вообще, он менеджер :D Но как-то исторически складывается, что все фронтендные дела «а вот тут на пиксель опустить, тут шрифт потемнее сделать» шеф его делать заставляет :)

Я-то — бэкендер по сути. И работаю обычно удалённо и по ночам. А шеф любит вносить правки «немедленно, тут и сейчас».

KRoN73 ★★★★★
()
Последнее исправление: KRoN73 (всего исправлений: 1)
Ответ на: комментарий от risenshnobel

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

drull ★☆☆☆
()
Ответ на: комментарий от KRoN73

Вообще, он менеджер :D Но как-то исторически складывается, что все фронтендные дела «а вот тут на пиксель опустить, тут шрифт потемнее сделать» шеф его делать заставляет

А, знаю, бывает :)

drull ★☆☆☆
()
Последнее исправление: drull (всего исправлений: 1)
Ответ на: комментарий от drull

Это домашнее задание.

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

И в комментарии вполне можно написать что поддомены - это внешние ссылки.

Вот такие нюансы, надеюсь, были описаны в задании.

risenshnobel ★★★
()

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

SpaceRanger ★★
()
Ответ на: комментарий от risenshnobel

на собеседовании

Это было домашнее тестовое задание.

А ты сам-то

Да, я ж писал что за 15 минут сделал.

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

Было учтено. Ну как учтено. Тут тонкая хрень. Отбрыкивает невалид вроде. У пыха нет проброса до опции libxml которая включает попытки фикса дерева. Не, в доках она есть, но я уже не помню и искать лениво. И там какие-то траблы с версиями были. Кароче отбрыкивает. А чтоб не срало — собаку поставил.

А ссылки с www и без www на одном домене

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

ссылка на поддомен - она внешняя?

Ессно!

тэг base и редирект

Не было учтено, 15 мин же.

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от risenshnobel

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

drull ★☆☆☆
()
Ответ на: комментарий от SpaceRanger

как ты можешь так говорить

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

deep-purple ★★★★★
() автор топика

Бложить/офтопить. Сейчас только что выкинул такой образчик кода упомянутого выше фронтендера :)

<div style="text-align: center"><TABLE border=0 cellPadding=2 cellSpacing=0 height=20 width="100%">
<TR vAlign=top>
<TD colSpan=3 height=1 width=1><IMG alt="" height=1 src="/img/sp.gif" width=1></TD></TR>
<TR vAlign=top>
<TD bgColor=#808080 height=20 style="BORDER-BOTTOM: #999999 1px solid; BORDER-LEFT: #999999 1px solid; BORDER-TOP: #999999 1px solid" width=10><IMG alt="" height=20 src="/img/sp.gif" width=10></TD>
<TD  bgColor=#808080 align=leftclass=-tlink height=26 style="BORDER-BOTTOM: #999999 1px solid; BORDER-TOP: #999999 1px solid; font-family: tahoma, verdana, Arial; font-size: 12px; color: ffffff;" vAlign=middle width="100%">
<a href="/pt4/" style="color: #ffffff; font-size: 13px; font-weight: 700;"><b sty-le="font-weight:600;">Внимание! Началось тестирование xxxxxxxxxxxxxxxxx <b style="font-weight:900; color: #ffffff;">xxxxxxxxxxxxxx</b>. Доступ к xxxxxxxxxxxxxxxx.</a></B></TD>
<TD bgColor=#808080 height=26 style="BORDER-BOTTOM: #999999 1px solid; BORDER-RIGHT: #999999 1px solid; BORDER-TOP: #999999 1px solid" width=10><IMG alt="" height=20 src="/img/sp.gif" width=10></TD></TR>
<TR vAlign=top>
<TD colSpan=3 height=1 width=1><IMG alt="" height=1 src="/img/sp.gif" width=1></TD></TR></TABLE>
</div>

Если кому-то лениво разбираться, это — белая надпись на сером фоне. Выравненная по центру :D

KRoN73 ★★★★★
()
Ответ на: комментарий от deep-purple

А чтоб не срало — собаку поставил.

В 99% случаев собака — индикация ошибки в логике, дизайне, использовании... :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

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

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

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от quiet_readonly

Трудоустраивайся, PHP по ходу выучишь.

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

Axon ★★★★★
()
Ответ на: комментарий от vostrik

Автоматизаторы «в свободном плавании» - это миф, кмк. Вообще на рынке тестирования полный ахтунг, сплошные абазяны-кликеры.

leave ★★★★★
()
Ответ на: комментарий от Sadler

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

leave ★★★★★
()
Ответ на: комментарий от deep-purple

preg_match_all(«/<[Aa][\s]{1}[^>]*[Hh][Rr][Ee][Ff][^=]*=[ '\»\s]*([^ \«'>\s#]+)[^>]*>/», $html, $matches);

люди не знают что html/xml не парсится регулярными выражениями?

aiive
()
Ответ на: комментарий от Deleted

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

deep-purple ★★★★★
() автор топика
Последнее исправление: deep-purple (всего исправлений: 1)
Ответ на: комментарий от deep-purple

Это единственное исключение, хотя оно и есть поддомен, но исторически сложилось что ака одно и то же.

Иногда, кстати, совсем не одно и то же, но не суть.

А если по сабжу, то всё так, в общем-то. Мы на собеседовании, после получасовой беседы на общие темы, давали тестовое задание вида «сделать форму, в которую пользователь вводит данные, которые записываются в базу потом выводятся на этой же или другой странице, не важно, лишь бы выводились», разрешали пользоваться гуглом, давали кучу времени и не требовали изобретать MVC-фреймворк на месте. Только уточняли, что код надо писать с расчётом на реальное применение на реальном сайте и так далее (это была толстая подсказка про то, что надо хоть как-то экранировать данные).

В результате где-то треть испытуемых тупо пропускала sql injection, большая часть забывала экранировать всякую фигню на выводе, отчего срабатывали введённые в поле алерты, а один человек умудрился за 30 минут так и не написать работающий скрипт вообще, зато просил >80к рублей.

risenshnobel ★★★
()
Ответ на: комментарий от deep-purple

ну я уже увидел в топике вилку

Deleted
()
Ответ на: комментарий от deep-purple

собеседовать, и возможно выбирать кандидатов не только по размеру резюме как делает большинство

Deleted
()
Ответ на: комментарий от deep-purple

В нерезиновой нормальная вилка начинается от 100 килорублей. За меньшую сумму будут приходить только без опыта работы.

peregrine ★★★★★
()
Ответ на: комментарий от deep-purple

Жесть же. Как жить то дальше?

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

risenshnobel ★★★
()
Ответ на: комментарий от peregrine

Тут еще вопрос к опыту работы с чем. Т.к. с одним он работал, а с другим не работал. Или, нужно что-то внедрять, а легаси-говнеца тут полно (я правда уже кой-чего разгрёб), так это все разбить на этапы внедрения/миграции, а он с этим дела не имел. Тут, да, придется четко указать какой опыт нам нужен (иначе это будет авто-фото-вело-мото-теле-видео-монтёр) и запастись терпением в ожидании нужного человека.

deep-purple ★★★★★
() автор топика

Вся лапша работает ПО РАЗНОМУ, выпарсивает на разных сайтах разные наборы ссылок.

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

Это вопрошение: где искать вменяемых пыхеров?

А кто к вам поедет пыхать по чуть чуть, там же ипотека и прочие прелести капитализма. Стянули все финпотоки в несколько точек - теперь расхлёбывайте, работайте с теми кто больше никуда не вписался.

Napilnik ★★★★★
()
Ответ на: комментарий от KRoN73

это — белая надпись на сером фоне. Выравненная по центру

Даже при вёрстке вордом меньше говнокода сгенерилось бы.

h578b1bde ★☆
()
Ответ на: комментарий от leave

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

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

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

Sadler ★★★
()
Последнее исправление: Sadler (всего исправлений: 2)
Ответ на: комментарий от drull

От тех кто начинал программировать 20-25+ лет назад этого вполне можно ожидать. Но никак не от Спуфа

Во всём винонат mIRC, на котором писал скрипты для IRC бота под Windows. Если нормальные люди используют 16-тиричную систему (Hex) для указания байта, если некоторые используют хотя бы 8-миричную систему (Oct) как в TCL или даже в Bash, для указания байта... то в mIRC используются тупо ASCII коды.

http://hawkee.com/scripts/12828336/ Вот к примеру скрипт, он показывает информацию об изображениях и кое-чего ещё.

  if ($bfind($+(&,$1),1,13 10 13 10 239 187 191)) return UTF-8
  if ($bfind($+(&,$1),1,13 10 13 10 255 254)) return UTF-16 Little Endian
  if ($bfind($+(&,$1),1,13 10 13 10 254 255)) return UTF-16 Big Endian
  if ($bfind($+(&,$1),1,13 10 13 10 255 254 0 0)) return UTF-32 Little Endian
  if ($bfind($+(&,$1),1,13 10 13 10 0 0 254 255)) return UTF-32 Big Endian
  if ($bfind($+(&,$1),1,13 10 13 10 71 73 70)) return GIF
  if ($bfind($+(&,$1),1,13 10 13 10 137 80 78 71 13 10 26 10)) return PNG

И всё в таком духе. Для работы с бинарными файлами, чтобы найти заголовок, использовались ASCII коды. Волей не-волей их запомнил.

Spoofing ★★★★★
()
Ответ на: комментарий от KRoN73

В туалет загляни — похоже он за собой принципиально не смывает.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.