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

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

 , , ,


1

2

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

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

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

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

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

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

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

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

★★★★★

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

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

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

я в пыхе не шарю, но покажите, а то у всякого своё представление о лапшовости

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

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

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

Где пыхера то нормального взять?

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

Почему вот такие то попадаются?

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

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

А ты посмотри внимательнее что там рыгулируется и как )) И это только одна макаронинка.

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

типичная перловая регулярка

То есть, ты таки считаешь, что парсить HTML регулярками — это нормально?

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

Ни разу в жизни мне не приходилось вручную парсить HTML, не знаю.

next_time ★★★★★
()
Ответ на: комментарий от i-rinat

Видишь же — старался

Этот, видимо, тоже старался:

/<a href="([^<http>].*?)"/s

Для Ъ: откр галка, буква a, ОДИН пробел с кодом 13, последовательность символов href=", подмаска в которой может ничего и не быть, но, там будет все что угодно кроме символов <http> в любом порядке, ну т.е. по этой логике, не h не t не p в ссылке тоже быть не может.

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

у пробела аски код 32, а 13 и 10 это CR и LF перенос строки.

извините, я не в тему, просто хотел блеснуть %) знаю аски коды символов наизусть, программёрская жысть заставила. =)

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

Этот, видимо, тоже старался:

Конечно. Видишь «/s»? Он учёл, что в ссылке могут быть переводы строк. Его тоже надо похвалить.

ну т.е. по этой логике, не h не t не p в ссылке тоже быть не может.

Только первый символ.

Кстати, а в каком виде ты ждал решения? Регулярками?

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

[\s]{1}

Какая-то странная магия. Я не понял, чем это отличается от просто \s.

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

не, не обратил на это внимания. Теперь понятно.

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

Ну да, я пока домой ехал, уже понял что сморозил, и даже подумал что кто-нибудь успеет это подметить, чо уж тут ))

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

знаю аски коды символов наизусть, программёрская жысть заставила. =)

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

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

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

Уникод, небось, учат, пока никто не видит!

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

программёрская жысть заставила. =)

Ты хотел сказать «сторожевая»?

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

у пробела аски код 32

Кстати, говорить нужно в шестнадцатеричной системе счисления, а то не илитарно

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

preg_match_all"/<[Aa][\s]

DOM появился в PHP лет 7 назад. Использование регулярок для парсинга HTML-ссылок с тех пор — редкостное извращение или редкостный консерватизм :)

Что ты со своим регекспом будешь делать с чем-то типа <a href="href-example.html" title="Пример использования href=" />[br]<a href=? А уж сколько в Интернете кода, типа <a href="it's a test">...

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

Где пыхера то нормального взять?

Попытаться найти программиста на нормальных языках, который не против пописать на пыхе.

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

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

Рекомендую в словаре посмотреть определение термина «норма» ;)

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

Фигня. JS к этому располагает намного больше :)

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

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

Да, в новые времена это уже почти не актуально :)

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

у пробела аски код 32

Кстати, говорить нужно в шестнадцатеричной системе счисления, а то не илитарно

Вопрос не в элитарности. Шестнадцатеричный код тупо запоминать легче, там ряды повторяются. В десятичной системе я ASCII и сам не знаю, только переводя в уме из hex :)

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

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

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

Это mc/syntax головного мозга :)

А я всё думал, где же я это видел.

Кстати, неужели никто кроме меня не пытается с этим извращением работать? Я всё пытаюсь реализовать подсветку Markdown, но сильно не хватает возможностей mc/syntax подсветки :-/ В первую очередь ради заголовков через подчёркивание и т.п.

С тоской вспоминаю Far/Colorer... Вот там всё можно было, пусть и на богопротивном XML :)

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

Недавно мелькал форк MC с встроенным Lua

Не думаю, что на Lua там можно подсветку синтаксиса задавать. Вообще, был mcedit с подсветкой через colorer, но умер уже лет 10 назад: http://colorer.sourceforge.net/mc.html

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

Не думаю, что на Lua там можно подсветку синтаксиса задавать.

Прямо сейчас, наверное, нет. Но если не загнётся, вполне могут добавить.

i-rinat ★★★★★
()
Ответ на: комментарий от goingUp

middle-endian?

По умолчанию hexdump читает по два байта в little-endian, но показывает их в big-endian. В итоге в выводе каждые два байта переставлены местами. Это дико.

$ echo 0123456789 | hexdump
0000000 3130 3332 3534 3736 3938 000a          
000000b
$ echo 0123456789 | hexdump -C
00000000  30 31 32 33 34 35 36 37  38 39 0a                 |0123456789.|
0000000b
$ 
i-rinat ★★★★★
()
Ответ на: комментарий от 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

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

Deleted
()
Ответ на: комментарий от 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 ★★★★★
()
Ответ на: комментарий от deep-purple

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

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

Хрен бы с этим всем, хоть один учел что ссылки могут быть в <!-- --!>, ссылки в жабаскрипте, etc?

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