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

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

 , , ,


1

2

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

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

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

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

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

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

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

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

★★★★★

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

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

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

Sadler ★★★
()

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

В других ценовых категориях, не?

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

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

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

te111011010
()

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

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

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

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

goingUp ★★★★★
()

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

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

Вангую, большинство людей, работающих за 60к, не имеют «хорошее знание PHP». И уж тем более MySQL - это ужос нафиг какая бездна информации и скилла.

Вот в том и проблема, из вакансии непонятно, что такое «хорошее». Нормальные формы рассказать - это хорошее? Или 33 способа оптимизировать план запроса? Или сертификат с sql-ex.ru? Или может там, просто select * сделать - может это «хорошее»?

Очень сильно рекомендую уточнить вакансию, короче. Что именно, как, сколько вешать граммов.

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

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

Забавно, но у меня с ними сразу вопросов никаких не возникло. Воспринимал как прямое расширение синтаксиса DOS glob. (с Linux тогда ещё знаком не было, что-то около 1996-го).

KRoN73 ★★★★★
()

Все дело в требованиях. Вот пишите вы «Нужен PHP-погроммист». Вот и идут быдлокодеры. Язык с низким порогом вхождения, широкий простор для быдлокода. Я сейчас с ужасом смотрю на свой фрилансовый PHP-код школьных времен. Это что-то невероятное. Зато когда я начал писать на ASP.NET + C# и JSP мозги начали вставать на место. Я стал следить за чистотой кода, за тем для чего используются переменные и следовательно начал следить и за реализацией. Так и код на PHP стал чище.

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

Nedis
()
Ответ на: комментарий от stevejobs

в нем использовать QtWebKit, из DOM честно получить все ноды-ссылки, и после обработки пульнуть обратно в PHP

Что запрещает использовать сразу нативный PHP DOM? Он нормально парсит невалидный html.

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

нужно на C++ написать модуль к PHP, в нем использовать QtWebKit, из DOM честно получить все ноды-ссылки, и после обработки пульнуть обратно в PHP. Ну написать пул из webkit'ов, конечно. За день, наверное, не получится, неделю надо точно.

Надо поднять http-сервис вылавливания ссылок на phantomjs и обращаться к нему из рнр-кода ☺

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

Вилка: 40-60к.

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

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

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

Вилка: 40-60к.

Вот программиста уровнем на эту цену и получите :) Нормальный за эти деньги будет работать только со свободным графиком и не более половины рабочего времени. Независимо от языка программирования.

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

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

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

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

ни разу не нужно было, написал первое что пришло в голову :)

ну еще работодателю можно показать, какой ты невперенный спец, умеешь в C++, написание системного софта, многопоточность, написание плагинов для php и apache, и вообще выложил тестовое на гитхаб под лицензией AGPL, а не как всякие быдлокодеры до конца жизни сайтики какие-то писать... хотя вакансия-то... wait, oh shi~

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

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

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

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

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

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

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

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

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

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

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

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

да ты поди еще на перле писал

Да, на нём, как раз, с регулярками и познакомился. Где-то до 2001-го на нём ковырялся.

KRoN73 ★★★★★
()

Кстати, вот вопрос насчет регулярок. Как сделать слугификацию и разслугификацию строк? Кроме регулярок способы есть? В смысле «Abc Def &_£$\%==÷×+_ Ghj» ---> «abc-def-ghj» ---> «Abc Def Ghj».

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

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

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

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

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

Ппц какой-то. Почитать справку по DOMDocument - дело 10 минут

Там потом ещё xquery разбирать. Так что в гипотетическом случае, когда PHP знаешь, а DOM-функции нет, то сразу лезем на packagist.org, смотрим фильтр по «DOM» и юзаем самые популярные решения, типа:

https://github.com/symfony/DomCrawler
https://github.com/zendframework/zend-dom
https://github.com/theseer/fDOMDocument

Получится быстрее, чем учить DOM :) Кстати, в how-to под Zend как раз показан пример с выдёргиванием ссылок (в элементах заданных классов).

KRoN73 ★★★★★
()

Тимлид это сотка собеседований, если не по рекомендациям.

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

Ну, для тех ЯП которые искаропки умеют многобайтки, можно перебирая посимвольно убрать лишнее. А у пыха есть костылик preg_split и всякие там mb_* так что в целом можно выкрутится.

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

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

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

i-rinat ★★★★★
()

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

Готовых нет, но в университетах есть исходный материал. Твори.

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

Ша... Чел уходит в отпуск, завтра последний день у него.. Как ты думаешь на кого это все свалится? )))

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

Да. Именно так и сделал. Убрал регулярками лишнее, привел к нижнему регистру с mb_strtolower, обратная капитализация через mb_convert_case. Есть ли менее костыльные способы? Каждый раз применяя регулярки я чувствую себя школьником:)

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

Готовые есть, но нужно ждать когда они уволятся.

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

но это Zend, там много чего можно, вопрос как с этим решением поступил бы автор? :) посчитал бы за слишком простое решение отсеяв соискателя?

Frost ★★★
()
Последнее исправление: Frost (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.