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

Как все уже успели заметить, весь контент на Либератуме можно условно разделить на 3 категории: эксклюзив, блоги и копипаст. Поговорим о копипасте: что он делает на Либератуме и по какому принципу отбирается?

Копипаст нужен. Попытаюсь объяснить зачем. Часто выходят новости, которые имеют ключевое значение в понимании истории развития Линукса. Разумеется, такие новости не упускают крупные СМИ с профессиональными журналистами и именитыми IT-шниками в консультантах. Что делать с такой новостью? Пытаться пересказать своими словами? Глупо! Написать самостоятельно с нуля только ради оригинальности? Еще глупее! Вот и остается — копипастить. Но вопрос в другом: новости выходят тысячами, а я отбираю 3-5 штук в день. Как мне удается просматривать нечеловеческий объем данных и отбирать для читателей самое интересное, экономя им вам 1-2 часа личного времени? Вот и в ЛС у меня практически каждый день спрашивают:

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

Вынужден признаться — заимел. Это самописный софт на C# (каюсь), который тянет RSS-ленты, потом передает их парсеру, парсер вытягивает по шаблону полный текст и пытается из всего объема статьи вытянуть суть. В 2-3 предложения.

Самое интересное — как вытянуть суть. Тут я думал не долго, а очень долго. В итоге мне пришел на ум алгоритм, который примерно в 75-80% случаев показывает правильный результат, что лично для меня вполне приемлемо. Итак, алгоритм:

  1. Текст нормализуется (удаляются лишние пробелы, отступы, пустые строки, лишние знаки и т.п.).
  2. В тесте выделяются ключевые слова — те, которые встречаются чаще всего.
  3. Из списка ключевых слов исключаются стоп-слова — слова, которые встречаются часто, но не несут никакой полезной нагрузки (например, это союзы, предлоги, частицы и т.д.).
  4. Текст разбивается на предложения по простому регулярному выражению "\.\s+".
  5. Над каждым предложением проводится операция TrimEnd() с определенным аргументом (new char{бла-бла-бла}) — отсекается мусор в конце каждого предложения.
  6. Исходим из того, что текст в начале очень важен, в конце статьи тоже очень важен, но чуть менее, а на остальном промежутке важность плавно варьирует от умеренной до слабой, а потом чуть-чуть обратно (формулу рассекречу чуть позже).
  7. Используем иные факторы, свидетельствующие в пользу важности того или иного предложения с точки зрения понимания общего смысла (цифры, даты, имена и т.п., а точнее — их положение в тексте).
  8. Находим средневзвешенное значение всех факторов для каждого предложения и составляем таблицу рангов.
  9. Выводим в таблице предложения по рангу.
  10. Показываем юзеру несколько первых предложений с возможностью дозированного показа остальных.
  11. PROFIT!

Примеры ранжирования предложений по важности для понимания общего смысла статьи

Получаем прекрасную RSS-читалку. Вот примеры (не по Линуксу, чтобы читатель оценил качество алгоритма беспристрастно):

«Американцы создали питьевой крем от загара». Суть: «По словам производителя, питьевой крем обеспечивает защиту с помощью вибрирующих молекул воды, отражающих до 97% лучей UVA и UVB спектра». Сразу понятно, после «вибрирующих молекул воды» можно не читать.

«Вредную пищу могут приравнять к табачным изделиям». Алгоритм выдал: «Так, в 2010 году от ожирения умерло 3,4 миллиона жителей планеты, а ровно пять лет назад их насчитывалось гораздо меньше — 2,6 миллиона. Нездоровую пищу в скором времени могут поставить в один ряд с табачными изделиями». Вывод на основе сводки: от жирной еды действительно мрет много человеков — 3 400 000 в год. На порядок-два больше, чем в любой современной войне. Новость действительно достойна прочтения.

«Британским детям могут разрешить менять пол». Суть: «Фонд, работающий в британской системе здравоохранения, предлагает выписывать 9-летним детям препараты, которые тормозили бы наступление половой зрелости». Слов нет, педерасты взялись за 9-летних. ;)

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

Что дальше?

Сейчас меня все время занимает следующая идея: берем 3-5 предложений из полученной сводки, индексируем, индексы подаем на вход нейронной сети. Обучение проводить по результатам просмотра анонсов. Не заинтересовало — 0, заинтересовало и время просмотра максимальное — 1. После обучения на выборке за несколько месяцев получаем систему, которая научится подбирать новости по интересам и мне даже не придется читать сводку. В качестве нейронной сети можно взять C#-обертку к легендарной библиотеке FANN, либо написать свою.

Для чего я все это написал?

Система рабочая, скоро появятся элементы ИИ и будет вообще круто. Возможно, затем все это будет выложено в open source. Прошу в каментах предлагать смелые и оригинальные идеи по улучшению программы, а срач и просто сообщения от имбецилов оставить при себе.

Самым плодовитым на идеи юзерам эксклюзивно достанутся первые версии программы. Не будет идей — не будет и оупенсорса. Благодарю за внимание!

Ваша оценка: Нет Средняя оценка: 5 (4 votes)

Выкладывай на гитхаб!

Ваша оценка: Нет
pomodor

Запихнул в анализатор «Войну и мир». Программе эффектно сорвало башню. Пришлось кое-что подкрутить и перекомпилировать в 64-бита. После заработало. Теперь я знаю содержание гениального романа Льва Толстого в одном предложении. Буду продавать эту квинтэссенцию творчества Толстого школьникам, не желающим читать ВиМ целиком. ;)

Ваша оценка: Нет Средняя оценка: 5 (5 votes)

Копипаст нужен

Наверное, нужен. Но, как говорят, плохо влияет на потенцию индексируемость…

самописный софт на C#

Странный выбор для линуксоида, но, видимо, тут вам виднее.

За описание алгоритма спасибо, но по одному алгоритму судить об эффективности системы не представляется возможным. А без этого идеям трудно будет появиться, потому что часто они возникают в процессе использования. Другое дело, если бы был веб-сервис, который можно попробовать прямо здесь и сейчас. В условиях обилия информации вокруг, такой сервис точно был бы интересен. Правда, тут другая проблема — не очевидно, насколько можно доверять свои данные стороннему веб-сервису… Впрочем, большинство из-за этого, как говорится, «не парится». Как, впрочем, и из-за многого другого.
Сама идея подобной системы, конечно, выглядит интересной. Но, как я понимаю, всё, что пока умеет программа — более-менее грамотно составлять аннотации. Делать вывод о достоверности, качестве и полноте информации программа не умеет (а жаль, было бы здорово, если бы она это делать умела), эта задача по-прежнему возложена на читающего, который должен быть неплохим специалистом во многих областях, чтобы делать вывод об этом самостоятельно. Такому специалисту подобная программа несомненно может очень помочь, но от рутинной работы по чтению и анализу всего-всего всё равно не избавляет. А для этого в любом случае нужно опыт и хоть какое-то образование иметь (не путать с «корочками» ;)).

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

А откуда это понятно? Вот я (допустим) полный гуманитарий, ничего абсолютно не понимаю в физике, и я тут (допустим) не вижу ничего подозрительного. Как, предположу, и 95% населения. ;)

Алгоритм выдал: «Так, в 2010 году от ожирения умерло 3,4 миллиона жителей планеты, а ровно пять лет назад их насчитывалось гораздо меньше — 2,6 миллиона. Нездоровую пищу в скором времени могут поставить в один ряд с табачными изделиями». Вывод на основе сводки: от жирной еды действительно мрет много человеков — 3 400 000 в год. На порядок-два больше, чем в любой современной войне. Новость действительно достойна прочтения.

Много или мало — понятие относительное. Чтобы сказать наверняка, нужно хорошо владеть цифрами. Я вот не знаю (наверное, к счастью), сколько людей гибнет в любой современной войне — в отличие от того же Google.

«Фонд, работающий в британской системе здравоохранения, предлагает выписывать 9-летним детям препараты, которые тормозили бы наступление половой зрелости»

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

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

По идее, что-то подобное может сделать Google или Facebook, всё необходимое для этого у них есть. И государству заодно удобно будет.

Для чего я все это написал?

Ммммм… найти спонсоров? :)

Ваша оценка: Нет
pomodor

самописный софт на C#
Странный выбор для линуксоида

Да, я согласен, что странный. Но что можно использовать из нестранного, чтобы быстро проверить свои идеи на прототипе? Джаву использовать не хотелось, так как это уже пройденный шаг. C/C++ не годится, так как замучаешься строчить код, чтобы сделать то, что на других языках делается за минуту. Да и прямая работа с памятью — это на большого любителя. К тому же, основное преимущество C/C++ — производительность — не так актуально для домашнего использования на компе с i7 и 16 Гб ОЗУ. Раньше пользовался Ruby, но сказывается его самопальность — то что-то не работает, то кодировку изменят, что еще какая напасть. А, ну и возможности построения графического интерфейса смехотворные. Ну и так далее.

C# — это попытка MS запилить свою Джаву, но с учетом всех открывшихся слабых мест. Под C# есть нормальные свободные IDE, скомпилированные программы можно запускать в Linux хоть с помощью Mono, хоть через Wine. И самое главное преимущество C# — стандартная библиотека классов. Только берешься что-то написать — а это уже есть. :)

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

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

насколько можно доверять свои данные стороннему веб-сервису

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

Но, как я понимаю, всё, что пока умеет программа — более-менее грамотно составлять аннотации.

Да, но даже не для всяких текстов. Небольшие новостные статьи (а-ля Лента.ру) обрабатываются на ура. Развернутые научные статьи, художественная литература и т.п. — нет. Видимо, там другая зависимость важности от положения ключевого слова в тексте, если она вообще есть. Так что даже до автоматического аннотирования текстов еще очень далеко. :)

Делать вывод о достоверности, качестве и полноте информации программа не умеет

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

после «вибрирующих молекул воды» можно не читать.
А откуда это понятно?

Разумеется, никто не заменит человеку мозги. Но у программы немного другое предназначение. Она не должна проверять гипотезы, а должна находить в огромном массиве то, что юзер хотел бы прочитать. Другими словами, если юзер интересуется «вибрирующими молекулами», он должен каждый день получать всю доступную информацию по этой теме. И тут программа уже может помочь. Она отфильтрует статьи, где эта тема рассматривается как основная от тех статей, где «вибрирующие молекулы» упомянули в комментариях, в переносном смысле или просто кто-то стебется над этим понятием.

найти спонсоров?

Я, конечно, верю в волшебство, но не настолько же. :) К спонсорам идут тогда, когда уже можно показать на чем предполагается зарабатывать. Цель — сбор идей. Несколько раз обсуждение на этом сайте помогало. Например, когда я внедрял парсер комментариев. Я спросил мнение публики и народ доходчиво объяснил, что половина из задуманного
работать не будет и мне даже объяснили почему. :)

плохо влияет на потенцию индексируемость…

Заблуждение. Первый найденный пример — gigamir.net. Состоит принципиально из одного копипаста. 150 тыс. страниц в Яндексе, 900 тыс. в Гугле. Другое дело, что копипаст не ранжируется высоко.

Ваша оценка: Нет

Джаву использовать не хотелось, так как это уже пройденный шаг. C/C++ не годится, так как замучаешься строчить код, чтобы сделать то, что на других языках делается за минуту. Да и прямая работа с памятью — это на большого любителя. К тому же, основное преимущество C/C++ — производительность — не так актуально для домашнего использования на компе с i7 и 16 Гб ОЗУ. Раньше пользовался Ruby, но сказывается его самопальность — то что-то не работает, то кодировку изменят, что еще какая напасть. А, ну и возможности построения графического интерфейса смехотворные. Ну и так далее.

Что-то подобное часто встречаю в разных местах от программистов, которые при этом добавляют ещё хвалебные отзывы об MS Visual Studio, каковая, как говорят, действительно неплоха. После чего обычно следует риторическое высказывание-вопрос в духе «Ну вы же понимаете, почему у этого вашего линукса до сих пор 1%?».
На самом деле жаль, если в этой системе так до сих пор и не смогли предложить чего-то удобного, что притягивало бы программистов на Linux. Пока что, если верить Сергею Голубеву, Linux в основном подходит для писателей и журналистов…

Говнохостинг на PHP тут не годится

Почему?

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

Но ведь это то самое, что так любит Google. Он, правда, много чего ещё любит…

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

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

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

Так и есть, но говорят, что с появлением искусственного интеллекта эту проблему смогут решить. Ну, обещают, по крайней мере. :)

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

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

Разумеется, никто не заменит человеку мозги

Телевизор! :D

у программы немного другое предназначение. Она не должна проверять гипотезы, а должна находить в огромном массиве то, что юзер хотел бы прочитать. Другими словами, если юзер интересуется «вибрирующими молекулами», он должен каждый день получать всю доступную информацию по этой теме. И тут программа уже может помочь. Она отфильтрует статьи, где эта тема рассматривается как основная от тех статей, где «вибрирующие молекулы» упомянули в комментариях, в переносном смысле или просто кто-то стебется над этим понятием.

Да, согласен, это полезно. Но если бы при этом программа могла сообщить, что эта статья с вероятностью 74% является мусором, а вот та — с вероятностью 5%, это могло бы сильно помочь. Вопрос в том, как эту вероятность получить? Боюсь, что пока он скорее риторический.

Заблуждение. Первый найденный пример — gigamir.net. Состоит принципиально из одного копипаста. 150 тыс. страниц в Яндексе, 900 тыс. в Гугле. Другое дело, что копипаст не ранжируется высоко

Возможно, у них ещё какие-то методы раскрутки есть. Тут я не готов ничего утверждать, просто говорю о том, что слышал. Поскольку алгоритмы ранжирования поисковиков есть великая тайна, ведомая только посвящённейшим из посвящённейших шаманов, остаётся только верить людям на слово. :)

Ваша оценка: Нет

Кстати, вдогонку про «вибрирующие молекулы»: бывает так, что в одном коротком комментарии среди кучи постороннего мусора может проскочить очень полезная информация, например, ключевые слова для поиска или ссылки. Способна ли программа учесть этот вариант?

Ваша оценка: Нет
pomodor

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

Ваша оценка: Нет

А тут есть риск попасть в бесконечную рекурсию…

Ваша оценка: Нет
pomodor

Почему? Достаточно указать глубину просмотра. Например, 2: текст из RSS-ленты парсится, паук проходит по всем ссылкам из этой статьи и на этом останавливается. Если ходить на большую глубину, то это уже Гугль какой-то получится. :)

Ваша оценка: Нет

Достаточно указать глубину просмотра. Например, 2: текст из RSS-ленты парсится, паук проходит по всем ссылкам из этой статьи и на этом останавливается.

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

Если ходить на большую глубину, то это уже Гугль какой-то получится. :)

…действующий квадратно-гнездовоым методом бот, у которого может быть что-то вроде Article Rank ;)

Ваша оценка: Нет
pomodor

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

Ну, как бы есть Eclipse, который неплох и продвигается крупными конторами, вроде Google и IBM. Кстати, на Eclipse базируется официальные средства разработки под Android. Должна работать в Линуксе Intellij IDEA, есть NetBeans... Думаю, программисты не притягиваются не по этому. Линукс пишут, в основном, любители и энтузиасты. Даже серьезные проекты выросли из хобби. А все потому, что в серьезные проекты нужны серьезные инвестиции, а как потом выходить на окупаемость, если изначально понятно, что потенциальных покупателей Linux-софта где-то в 100 раз меньше, чем желающих купить этот же софт, но под Windows. В общем, все сводится к пресловутому 1%: Linux не нужен потому, что никому не нужен.

Говнохостинг на PHP тут не годится
Почему?

Так из-за ресурсов. Главным образом, из-за требований к памяти. Ее нужно много, намного больше, чем прописано в memory_limit на большинстве говнохостингов. А еще нужно учитывать, что одновременных юзеров может быть тоже очень много и требования к памяти увеличиваются пропорционально. И второе — доступные ЯП. Ну не писать же такую систему на богомерзком PHP...

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

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

Но если бы при этом программа могла сообщить, что эта статья с вероятностью 74% является мусором

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

Ваша оценка: Нет

Линукс пишут, в основном, любители и энтузиасты.

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

…в серьезные проекты нужны серьезные инвестиции, а как потом выходить на окупаемость, если изначально понятно, что потенциальных покупателей Linux-софта где-то в 100 раз меньше, чем желающих купить этот же софт, но под Windows. В общем, все сводится к пресловутому 1%: Linux не нужен потому, что никому не нужен.

Есть такая проблема, да. Нужен толчок, тогда что-то может измениться. Тут стоит пожелать удачи компаниям Valve и Canonical (да, знаю, что они нынче, мягко говоря, не Робин Гуды, но нельзя отрицать, что за прошедшие лет 5 команда Шаттлворта всё же сделала для Linux много полезного).

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

В теории, так оно и есть. Если количество пользователей будет велико, то требования, конечно, вырастут. Но если сделать, например, ограниченный доступ (хотя бы на период тестирования), то, возможно, этого бы хватило? (хотя я страсть как не люблю всякие ограничения… >_<)

И второе — доступные ЯП. Ну не писать же такую систему на богомерзком PHP...

Не вижу ничего плохого в PHP, IMHO, язык как язык, хотя знаю, что отношение многих разработчков к нему неоднозначное (во многом, пожалуй, справедливо), однако предположу, что чисто теоретически его возможностей должно хватить (опять же, производные языки и фреймворки есть же).
Ну или NodeJS, например.
А вот интересно даже, будет ли программа, написанная на C# и, в частности, на .NET framework, работать на unix-хостинге?

На самом деле, ничего интересного.

Ну, лейтмотив у них же должен быть. Даже если речь расписана на два часа, в ней должно быть нечто главное, кульминационная часть, так сказать. Ведь любое выступление должно преследовать какую-то цель. Хотя, говорят, конечно, что «язык дан разведчику, чтобы скрывать свои мысли», видимо, к политикам это тоже относится, а уж если обе профессии мастерски совмещать… :) :P

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

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

Враки, замаскированные под научную статью, разумеется, таким методом не засечь.

Ага. В этом и проблема. Статья может выглядеть вполне научной, но не быть при этом достоверной. И если в случае с вибрирующими молекулами, имея за плечами хотя бы 10 советской школы, можно догадаться, что тут что-то не так, в гуманитарных науках (или «науках» ;)) это может быть несколько сложнее.

Ваша оценка: Нет
pomodor

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

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

но нельзя отрицать, что за прошедшие лет 5 команда Шаттлворта всё же сделала для Linux много полезного

Почему нельзя? Можно! Как раз за 5 лет Шаттлворт очень многое сделал, чтобы втоптать Linux в грязь. Вообще, историю Canonical можно поделить на две части: до 2009 года и после. До 2009 года контора действительно сделала очень много полезного.

Но если сделать, например, ограниченный доступ (хотя бы на период тестирования), то, возможно, этого бы хватило? (хотя я страсть как не люблю всякие ограничения… >_<)

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

Не вижу ничего плохого в PHP

Ох, это такая тема, на которую можно общаться годами... ;) Только вершина айсберга: http://habrahabr.ru/post/142140/

А вот интересно даже, будет ли программа, написанная на C# и, в частности, на .NET framework, работать на unix-хостинге?

Удивительно, но будет. :) Правда, медленно. Речь об ASP.NET через модуль mod_mono к Apache. Слышал, что ведутся какие-то эксперименты с собственным сервером на C# и вот там производительность вполне на уровне, правда пока все сильно глючит.

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

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

Ваша оценка: Нет

Я неточно выразился. Не Линукс, а программы под Линукс.

Если что, игры под Linux, которые наконец-то начали появляться относительно массово (по сравнению с тем, что было года 3-4 назад), — тоже программы. ;)

Почему нельзя? Можно! Как раз за 5 лет Шаттлворт очень многое сделал, чтобы втоптать Linux в грязь. Вообще, историю Canonical можно поделить на две части: до 2009 года и после. До 2009 года контора действительно сделала очень много полезного.

Не буду спорить. Сам не люблю Unity и не в восторге от рекламного мусора (хотя понимаю и уважаю желание подзаработать, с учётом того, что всё это легко отключается). Но уверен — не будь Ubuntu, не было бы сейчас в Steam столько игр под Linux, как и Steam Machine той же. Возможно, впрочем, что было бы попозже…

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

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

Ох, это такая тема, на которую можно общаться годами... ;) Только вершина айсберга:

Это я читал. В принципе, убедительно, но это не помешало много чего сделать на PHP. Сам я в нём не настолько хорошо разбираюсь, так что ни критиковать, ни заниматься апологетикой не готов. Но если сравнивать его с другими языками… думаю, тут уместно будет вспомнить фразу из одного знаменитого фильма: «У каждого свои недостатки!». :)

Удивительно, но будет. :) Правда, медленно. Речь об ASP.NET через модуль mod_mono к Apache.

Если я правильно понимаю, то, по крайней мере, по духу, это что-то типа Wine. Гм… :/

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

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

Ваша оценка: Нет
pomodor

Но уверен — не будь Ubuntu, не было бы сейчас в Steam столько

А я вот совершенно не уверен. Не стоит переоценивать вклад Ubuntu в развитие Линукса. С позиции этого самого вклада, Ubuntu = Debian Testing. Ну так и что помешало бы Valve взять Debian Testing в качестве основы для своей ОС? Неужели отсутствие Unity и полудохлого Mir?

но это не помешало много чего сделать на PHP

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

Но все встает на свои места, если вспомнить первоначальное значение аббревиатуры PHP — Personal Home Page Tools. Для этих целей инструмент подходит идеально, ну а большего требовать мы не в праве. ;)

Если я правильно понимаю, то, по крайней мере, по духу, это что-то типа Wine.

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

почему бы его не использовать? Или тут есть проблемы юридического характера?

Никаких проблем нет, просто в этом нет смысла. Напоминаю, программа тянет RSS и уже по содержащимся там ссылкам переходит. Так вот, вряд ли кто-то пожелает подписаться на RSS дорвея. :) Следовательно, выявлять белиберду нет смысла. Один раз заметив сгенерированную статью, просто избавляемся от RSS-фида.

Ваша оценка: Нет

Не стоит переоценивать вклад Ubuntu в развитие Линукса.

Недооценивать тоже не стоит. ;)

С позиции этого самого вклада, Ubuntu = Debian Testing

Это если смотреть в сугубо техническом аспекте. Но главное достижение Ubuntu не в этом, а в том, что она сделала PR Linux. Благодаря Ubuntu (ну и Mandriva ещё, но в куда меньшей степени) народ вообще начал узнавать что-то о Linux и пытаться пробовать работать в нём. До этого Linux'ом неопытного чайника только напугать можно было (да и у опытных-то в то время особого интереса не было).

Ну так и что помешало бы Valve взять Debian Testing в качестве основы для своей ОС? Неужели отсутствие Unity и полудохлого Mir?

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

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

Эффективность — понятие относительное. :) А для новичков он вполне подходит. Проблем, конечно, хватает, и наверняка есть задачи, для которых PHP — не лучший выбор, но утверждать, что он не годится ни для чего, кроме как простых домашних страниц, я бы всё-таки не стал. ;)

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

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

Никаких проблем нет, просто в этом нет смысла. Напоминаю, программа тянет RSS и уже по содержащимся там ссылкам переходит. Так вот, вряд ли кто-то пожелает подписаться на RSS дорвея. :)

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

Ваша оценка: Нет
pomodor

Эффективность — понятие относительное.

Почему? По-моему, самое что ни на есть объективное. Если Вася кодит на PHP и тратит на отладку неделю, а Коля ваяет на C# и тратит на отладку 1 час, то можно предположить, что работа Васи является низкоэффективной.

ЗЫ относительность тут в том смысле, что если зарплата Васи пропорционально ниже зарплаты Коли, то работодатель может нанять n коль и выйти на запланированную эффективность при тех же затратах. ;)

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

Да я не утверждаю, так как хорошо знаю, что Вконтакт и Фейсбук написаны на PHP и их трудно назвать простыми домашними страницами. Я о том, что PHP вырос из этого направления и имеет все связанные с ним болячки. Именно поэтому и Вконтакт, и Фейсбук теперь пытаются заменить (и уже успешно заменили) PHP на трансляторы с PHP на C++. Например, у Фэйсбука это HipHop. Внимание, вопрос: если бы владельцы этих ресурсов изначально задумались о проблемах PHP, стали бы они все равно его использовать, чтобы потом перегнать транслятором на C++ или сразу стали бы использовать другие ЯП? :) А вот для мелких проектов (включая сайты класса «Вася Пупкин рассказывает о своем непростом жизненном опыте") PHP по-прежнему хорош.

Ваша оценка: Нет

Если Вася кодит на PHP и тратит на отладку неделю, а Коля ваяет на C# и тратит на отладку 1 час, то можно предположить, что работа Васи является низкоэффективной.

Это только в том случае, если объём работы примерно сопоставимый.

если зарплата Васи пропорционально ниже зарплаты Коли, то работодатель может нанять n коль и выйти на запланированную эффективность при тех же затратах

Не факт, что это обязательно будет эффективнее, кстати. Тут можно вспомнить задачу о девяти женщинах, которым нужно за месяц родить ребёнка. ;)

Внимание, вопрос: если бы владельцы этих ресурсов изначально задумались о проблемах PHP, стали бы они все равно его использовать, чтобы потом перегнать транслятором на C++ или сразу стали бы использовать другие ЯП?

Так ведь эти ресурсы изначально и начинались как любительские проекты. Это потом они выросли до нынешних масштабов. И всё это время они работали на PHP. Вот это я понимаю, универсальность и масштабируемость (об оптимальности при любом масштабе проекта тут не говорим ;))!
Кстати, этот сайт работает под CMS Drupal же, которая, если я не ошибаюсь, тоже ведь на PHP написана. ;)

Ваша оценка: Нет
pomodor

Это только в том случае, если объём работы примерно сопоставимый.

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

можно вспомнить задачу о девяти женщинах, которым нужно за месяц родить ребёнка

Пока искал инфо об этой задаче, нашел описание другой задачи, за решение которой вручили Нобелевскую премию по экономике в 2012 году. Задача о марьяже. Гениально! :) Уже придумал как использовать алгоритм в одной из своих программ. ;)

этот сайт работает под CMS Drupal же, которая, если я не ошибаюсь, тоже ведь на PHP написана

Угу. Только это 6-я ветка, тогда как давно выпущена 7-я. Народ не спешит переходить, так как код распух во много раз, соответственно увеличилось количество ошибок. 8я версия рискует вообще не найти почитателей. А все почему? Отчасти потому, что Drupal, как Вы подметили, на PHP. Когда этот ЯП только появился и был для домашних страниц, в нем использовался процедурный подход. Соответственно и Drupal весь насквозь процедурный — это винегрет из функций (даже хуже — функций-ловушек). Потом в PHP появилось ООП, которое вводилось так, чтобы не нарушить совместимость с предыдущими версиями — то есть, через жопу. Ну и Drupal стали переписывать под ООП. И нельзя сказать, что достигли в этом особых успехов. Некоторые алармисты вообще считают, что Друпалу кабздец.

ЗЫ Хотя я Друпал люблю и считаю его лучей CMS. По крайней мере, Drupal 6, до насаждения ООП.

Ваша оценка: Нет

Когда этот ЯП только появился и был для домашних страниц, в нем использовался процедурный подход. Соответственно и Drupal весь насквозь процедурный — это винегрет из функций (даже хуже — функций-ловушек). Потом в PHP появилось ООП, которое вводилось так, чтобы не нарушить совместимость с предыдущими версиями — то есть, через жопу. Ну и Drupal стали переписывать под ООП. И нельзя сказать, что достигли в этом особых успехов. Некоторые алармисты вообще считают, что Друпалу кабздец.

Но тогда по идее и PHP должен был бы уже прийти кабздец?
И почему тогда не приходит он же другим написанным на PHP CMS?

Ваша оценка: Нет
Отправить комментарий
КАПЧА
Вы человек? Подсказка: зарегистрируйтесь, чтобы этот вопрос больше никогда не возникал. Кстати, анонимные ссылки запрещены.
CAPTCHA на основе изображений
Enter the characters shown in the image.
Яндекс.Метрика