Суть любой экспертизы, если упростить, заключается в том, чтобы дать авторитетное заключение: вот это можно сделать так и так, с такими-то ограничениями, а вот это сделать вообще невозможно/нерентабельно по таким-то причинам. Собственно, РКН не имеет технической возможности корректно заблокировать Телеграм на своем текущем стеке технологий. Как эксперт, он должен был заявить, что решение суда технически исполнить невозможно, попытки его исполнить к должным результатам не приведут по таким-то причинам, одновременно будет нанесен такой-то ущерб тому-то и тому-то. Это и должно было случиться, если бы РКН был экспертом, а не тупым подконтрольным исполнителем. И это мой ответ на ваш вопрос — что бы сделало уважаемое техническое сообщество, с моей точки зрения, разумеется.
Неплохие игрушки, но у них есть серьезные конкуренты: электро-самокаты и электро-велосипеды, которые более распространены, стоят дешевле, с таким же весом и запасом хода. Самокаты, например, по компактности чуть уступают колесу и, как мне кажется, чуть превосходят сигвей. И, конечно, велосипеды и самокаты более привычны и устойчивы. Главная проблема почти всех этих устройств, довольно большой вес и габариты, лихо в полную маршрутку с такой штукой не прыгнешь, на себе далеко не поднимешь,- колесо в этом смысле выглядит, пожалуй, интереснее прочих. Но дорого и боязно.
Честно говоря, это использование регулярок, ради использования регулярок, причем там, где в реальных условиях используются совсем другие средства. Но, что не говори, мозги разминает.
Кстати, кто просил ход рассуждений? Рассуждения, например, в этом случае (задании №3) весьма банальны:
Нужен год от 1000 до 2012, это означает, что подходит любой 4х-значный год начинающийся на «1» (1000-1999), т.е: 1\d\d\d или 1\d{3}, также подходит 2000-2009, т.е. 200\d, и 2010-2012, т.е. 201[012]. Таким образом рега, под которую попадут все нужные года выглядит: (1\d{3}|200\d|201[012]) и принципиально по другому это условие с помощью регулярок не запишешь.Похожие размышления для месяца, дня, часа, минут.
Например минуты и секунды бывают от 00 до 59, т.е. первая цифра 0-5, а вторая любая, записывается это [0-5]\d. Для секунд то же самое, но они опциональны по условию.
Посмотрел сколько смог. В целом то все не столько сложно, сколько нудно. На первые два убил час утром, конкретно под тесты реги не затачивал, но и более общий случай, чем те что даны в тестах тоже не рассматривал. Получил:
Я вовсе не спорю. И не пытаюсь говорить за «многих людей», потому что не имею на руках объективных данных по этому вопросу. А вы сейчас действительно на что-то опираетесь? И с автором я не спорю по вопросу, является ли доспустимым слово «ЖЖ» в заголовке сайта кроме ЖЖ, я не СЕО, у меня нет аргументов. Меня лишь сильно смущают примеры. Потому что когда я начал пробовать свои запросы со словом ЖЖ ни один из них не оказался нерелевантным. Кроме запроса автора. Это навело меня на мысль о некотором манипулировании и драмматизировании ситуации. Такова собственно моя позиция.
Давайте. Я далек от SEO и не знаю зачем. Более того, наверное очень сильно зависит от того чьё это было решение.
А теперь вы. Почему вы не просто написали «Мэйл.ру добавил в заголвок слово ЖЖ», а проиллюстрировали надуманными примерами, когда выдача нерелевантна, дабы усилить драмматизм ситуации? Мне правда просто интересно.
Господи! Это бред или заказуха?
Запрос «ЖЖ блоги знаменитостей», при том что мэйл действительно продвигает блоги знаменитостей, или оно релевантнее некуда. Уж сразу писали бы запрос:
Компания начинается не с технологий. Компания начинается с сотрудников. Сотрудники которые плохо отзываются о своей компании в публичных местах наносят ей больший вред, чем недостаточная технологичность.
Именно это я и имел в виду говоря «замыкание» (использует переменные родителей) и «анонимная функция» (не использует)! Я понимаю что технически в некоторых языках это одно и то же.
Мне есть что вам ответить. Похоже это библиотека и стиль там процедурный. Соответственно create_function используется прежде всего, чтобы не засирать глобальное пространство имен (но, кстати, все равно это делает).
А если бы они применили ООП подход?
Во первых они бы избавились от некрасивых
define('PREG_FIND_RECURSIVE', 1);
define('PREG_FIND_DIRMATCH', 2);
…
засунув все константы в класс.
Во вторых они бы сделали сортировку, передав в uasort метод класса и из метода имея доступ ко всем свойствам, в том числе параметрам сортировки.
Разве это не сделало бы код прозрачнее и юзабельнее?
Спасибо! Я старался написать просто и с примерами. За это в основном и получил упреки в том, что в статье нет ничего сверхъестественного. Приятно, что вам она оказалась не бесполезной!
Уже который год обещают цветной e-ink экран, и наработки вроде есть, но пока все выходящие читалки либо с черно-белым e-ink, либо с цветным, но ЖК (со всеми вытекающими минусами). А цвет в читалке вовсе не роскошь — графики или даже раскрашенный код…
За год я убедился, что лично мне в PHP они не нужны. Очевидно же, что мое суждение субъективно. Ваше, кстати, тоже. Мы же с вами выше убедились, что все то же самое можно сделать и без замыканий. При этом я не отказываю вашему коду в практичности. И считаю здорово, что вы нашли им применение. Только не понимаю почему вы так их отстаиваете?
Похоже в вашу компанию очередь из высококлассных программистов, а время вхождения у них ничтожно, раз вы можете себе такое позволить.
/^(1\d{3}|200\d|201[012])\/(0[1-9]|1[012])\/(0[1-9]|[12]\d|30)\s+(0\d|1\d|2[0-3]):[0-5]\d(:[0-5]\d)?$/
Честно говоря, это использование регулярок, ради использования регулярок, причем там, где в реальных условиях используются совсем другие средства. Но, что не говори, мозги разминает.
Кстати, кто просил ход рассуждений? Рассуждения, например, в этом случае (задании №3) весьма банальны:
Нужен год от 1000 до 2012, это означает, что подходит любой 4х-значный год начинающийся на «1» (1000-1999), т.е: 1\d\d\d или 1\d{3}, также подходит 2000-2009, т.е. 200\d, и 2010-2012, т.е. 201[012]. Таким образом рега, под которую попадут все нужные года выглядит: (1\d{3}|200\d|201[012]) и принципиально по другому это условие с помощью регулярок не запишешь.Похожие размышления для месяца, дня, часа, минут.
Например минуты и секунды бывают от 00 до 59, т.е. первая цифра 0-5, а вторая любая, записывается это [0-5]\d. Для секунд то же самое, но они опциональны по условию.
1.
Рега:
/\b(\S+) (\1)\b/gi
Замена:
$1 <strong>$2</strong>
2.
Рега:
/#([\da-f]{1,2})\1\1$|\brgb\((\d+\.\d+|\d\d?|1\d\d|2[0-4]\d|25[0-5])(%?),\s*0*\2\3,\s*0*\2\3\)|rgba\(([\d.]+)(%?),\s*0*\4\5,\s*0*\4\5,|hsla?\([\.\d]+%?,\s*(0%?,\s*[.\d]+%?|[.\d]+%?,\s*(0|100)%?)(,\s*[.\d]+)?\)/i
Для разминки мозгов неплохо, главное, чтобы кто-то не додумался на собеседованиях такое задавать, особенно на бумажке ;)
А теперь вы. Почему вы не просто написали «Мэйл.ру добавил в заголвок слово ЖЖ», а проиллюстрировали надуманными примерами, когда выдача нерелевантна, дабы усилить драмматизм ситуации? Мне правда просто интересно.
ЖЖ
жж знаменитостей
и даже
блоги знаменитостей в ЖЖ
находится именно ЖЖ.
И только по вашему варианту запроса (как для меня, так звучащему довольно ненатурально), находится мэйл.
Запрос «ЖЖ блоги знаменитостей», при том что мэйл действительно продвигает блоги знаменитостей, или оно релевантнее некуда. Уж сразу писали бы запрос:
«Почта Mail.ru создать почтновый ящик ЖЖ»
А если бы они применили ООП подход?
Во первых они бы избавились от некрасивых
define('PREG_FIND_RECURSIVE', 1);
define('PREG_FIND_DIRMATCH', 2);
…
засунув все константы в класс.
Во вторых они бы сделали сортировку, передав в uasort метод класса и из метода имея доступ ко всем свойствам, в том числе параметрам сортировки.
Разве это не сделало бы код прозрачнее и юзабельнее?