Тьфу в лицо вашим Заказчикам (с вас что взять — просто деньги отработали). Вы же знаете хотя бы нормы расстояния между зданиями, в зависимости от их высоты, нормы площади дворовых территорий? Заказчик учёл правила распределения жилых зон, пром. зон, спальных районов, и расчёта коммуникаций (особенно транспортных)?
Технически, статья конечно замечательная, спасибо — действительно интересно… Но мое средне-техническое строительное образование не приемлет! А уж ваше — даже не знаю…
«77% пользователей задали только один вопрос, 65% ответили только на один вопрос»
Эти цифры ничего не говорят об удовлетворённости пользователей. Это не развлекательный или новостной сайт, тем более не социалка, для которой главное чтобы все что-то писали, поэтому эта статистика не говорит ничего об удовлетворённости. Я — программист, и я знаю зачем я хожу на SO, и как это происходит. Я сижу и делаю работу, я «в потоке», и тут — проблема, которая хочет выбить меня из потока. Захожу в Гугл (не в SO, ни разу не использовал внутренний поиск), Гугл предлагает мне SO, открываю страницу, в большинстве случаев практически не читая вопроса/ответа проглядываю код в ответе, и использую его. Причём использую как можно скорее, пока совсем не выпал из потока. Всё! Я удовлетворён на 100% тем что просто дальше делаю свою работу, через 30 секунд забыв что вообще был на SO. Как эту удовлетворённость можно извлечь из статистики задающих вопросы и отвечающих на них?
Вообще, 4 млн. зарегистрированных пользователей, скорее всего, лишь малая часть из тех, кто получает огромную пользу от сайта вообще не регистрируясь на нём. Как посчитать их удовлетворённость? Лично я за годы использования SO один или два вопроса задал, но при этом ответов я за то же время получил тысячи, просто найдя уже готовые решения.
Да, мой предыдущий комментарий, мягко говоря, не имеет солидной исследовательской базы, но и сама статья в общем-то — просто чушь. Любой продукт можно закидать экскрементами, имея на то большое желание, но только вреда особого не будет, если продукт хорош. Пара-тройка авторов статей раз в год собирают экскременты и кидают их в вентилятор, а 31 млн посетителей в месяц просто используют продукт дальше, в большинстве случаев вообще не зная об очередной разоблачающей статье…
В общем-то не обязательно быть знакомым с SO для того, чтобы сделать выводы исходя лишь из текста самой статьи:
более 4 млн. зарегистрированных пользователей
Далее по тексту статьи негативные отзывы чуть более десятка людей.
PS Я сам участник SO, есть вопросы и ответы, пусть и немного. Удивился заголовку статьи, особенно тому, что это перевод. Я это к тому, что русская версия пожиже будет, всякой чуши в вопросах более чем хватает. Заметил тенденцию на ru.SO — учащиеся нередко задают вопросы даже не попытавшись самостоятельно поискать. Плюс спрашивают про технологии, устаревшие 10 лет назад…
За других говорить не буду, но моё личное решение касательно сборки с Maven — не использовать для сборки Maven, по крайней мере в dev-окружении. Вместо этого предпочитаю собирать средой разработки Idea. Причина, если кратко — у среды разработки есть контроль версий файлов, который она и использует для инкрементальной сборки. Результат — сборка длится считанные секунды независимо от размера проекта, длительность зависит только от количества изменений, внесённых после предыдущей сборки. Да, Maven отлично справляется с конфигурацией проекта, и именно его файлы конфигурации я использую для генерации артефактов в среде разработки. Но как только все нужные зависимости подключены, я про Maven забываю…
Если Вы считаете, что будете жить вечно, то да — изучайте N технологий/техник/наук/спецификаций/прочее, которые кажутся важными человеку, написавшему именно эту статью. Плюс тысячи статей с технологиями/… от тысяч уважаемых профессионалов про не менее важные вещи. И только потом начинайте писать реальный код, выходящий за рамки Hello World-ов. Это примерно то же самое, что и закончить ВУЗ по специальности: с одной стороны, нельзя сказать что Вы не специалист, с другой — совсем не факт, что Вы можете здесь и сейчас реально помочь реальному проекту. Разница с ВУЗ-ом лишь в том, что он даёт «корочку», которая имеет хоть какой-то вес. А какие рекомендации даст «Bill Sourour» вашему потенциальному работодателю при попытке устройства на работу?
Занимался чем-то похожим в свободное время, за год купил 400 доменов и развернул вручную на них сайты. Целью было сделать т.н. «сетку (говно-)сайтов», которая за счёт ссылок друг на друга (т.н. перекрёстных ссылок) получит авторитет в глазах поисковиков. После этого начать продавать ссылки из этой сетки на сторонние сайты, пытающиеся продвинуться в выдаче поисковиков. Наполнял сайты размноженными статьями — это когда берется некий текст, в нём для слов и фраз подбираются синонимы, и специальная программа путём перебора всех возможных вариантов генерирует сотни текстов. На первом этапе, когда сайтов было 20 всё шло хорошо: страницы заходили в индекс, показатели авторитетности росли. На радостях начал клепать сотни новых сайтов, разбивая на группы. Новые сайты так и не вошли в индекс, а первая двадцатка вскоре вылетела из индекса, а показатели авторитетности обнулились. После года-двух ожидания стало ясно, что изменений к лучшему уже не будет. Снятие перекрестных ссылок не помогло. В конце-концов слил почти все сайты, оставив около 30-ти подающих признаки жизни. До сих пор живут, рука не поднимается их грохнуть…
А началось всё с нормального (не говно-) сайта, информационного блога, за счёт продажи рекламы с него и оплачивались эксперименты с сетками. Сайт жив до сих пор, полторы сотни посетителей в день, но денег уже не приносит. Запустил свой стартап, онлайн-сервис, потихоньку развиваю его.
Многие говорят о том, что не надо обманывать поисковики, лучше делайте что-то для людей. Так-то оно так, но огромные деньги, крутящиеся в сфере SEO говорят о другом. Правда, как обычно, где-то посередине…
Яндекс заинтересован в выдаче показывать лучшие сайты
Яндекс, как и абсолютное большинство других компаний, в первую очередь заинтересован в том, чтобы зарабатывать деньги. Они бы с радостью плюнули на выдачу и лучшие сайты, но тогда высок шанс потерять пользователей, а пользователи = деньги. Они не зарабатывают на поиске, они зарабатывают на рекламе, которую показывают в поиске. И там алгоритм простой — плати больше, будут показывать чаще. А поиск — лишь площадка для показа рекламы.
сайт появится в ТОПе, это факт
Я несколько лет крутился в сфере SEO, и одна из главных вещей, которую усвоил — в поисковой оптимизации нет никаких гарантий ни для кого. Ваше заявление — полнейшая чушь. Да, если ваш сайт незаслуженно забанен Яндексом, то обращения в службу поддержки дадут шанс того, что когда-то его вручную оттуда «вытащат», и он появится в поиске, где-нибудь на 10-й странице. Но попасть в ТОП выдачи попросив об этом службу поддержки?!
Деревни по берегам почти все пустые… основной источник денег — пенсии пенсионеров
Мне кажется, что вы не противоречите друг другу. Пока знакомый сидел в деревне через ADSL, его с берега не видно было. А потом он уехал (и вряд ли вернётся, как и многие другие), то остались одни пенсионеры…
Статей с успешными методами продвижения сайтов, по-моему, уже больше, чем самих успешных сайтов. Сама статья, конечно, логичная и во-многом адекватная (но не во всём), но пользы от неё не больше, чем от других таких же. Ладно, статья, но вот это уже слишком:
алгоритм будет скорректирован в Вашу пользу и сайт появится в ТОПе, это факт
Добавлю: рекурсивных подзапросов может быть несколько в одном SQL-запросе. В начале объявляется WITH RECURSIVE, далее следуют как рекурсивные, так и обычные подзапросы, каждый со своим алиасом. Необязательно осуществлять выборку непосредственно из рекурсивного запроса, его можно, например, джойнить с обычной выборкой из таблицы. Использовал такой подход при формировании отчётов. Выглядит примерно так:
WITH RECURSIVE
tree_query_1 AS (... --рекурсивный запрос
UNION ALL...
),
tree_query_2 AS (... --рекурсивный запрос
UNION ALL...
),
simple_query_1 AS (... --нерекурсивный запрос
--no UNION
)
--далее строим отчёт, используя объявленные выше запросы
SELECT
t1.field1,
(SELECT field2 FROM simple_query_1 WHERE id = t1.field2) --используем в блоке SELECT
FROM table_1 t1
INNER JOIN tree_query_1 t2 ON t1.field3 = t2.field4 --используем в JOIN
LEFT JOIN (SELECT * FROM tree_query_2 WHERE...) -- используем в подзапросе в JOIN
Как видно из примера, возможности широкие, и это «рецепты» от не специалиста по СУБД и не знатока PostreSQL…
Это просто замечательно, но возникают 2 вопроса:
1. Писать на 8-ке понятие растяжимое — то же ФП, например, насколько активно используется?
2. Как насчет "что сделало бы проект реально более читабельным/поддерживаемым/производительным/т.д" — проекты на 8-ке чем лучше проектов на 7-ке/6-ке/5-ке? Производительность, трудозатраты, ошибки: если на конкретном проекте сменить синтаксис на 5-ку, например, станет ли он от этого набором жуткого говнокода?
Я 13 лет в Java EE (про мужиков, которые пилят сервера) и еще ни разу не встретил ни в одном проекте синтаксиса выше Java 5. Я сам хотя бы Generics активно пользую, а чужие проекты открываю, так там вообще на Java 1.4 остановились (и это не легаси, а свежие проекты, использующие Java 6-7, причем разработанные матерыми профи). Сам тоже смотрю нововведения и не вижу ничего, что сделало бы проект реально более читабельным/поддерживаемым/производительным/т.д… Да, это всё классные штуки, но мне доводилось разбирать код, в котором «классные штуки» применялись как вещь в себе, просто ради попробовать, и это была жуть… Синтаксический сахар — вещь на любителя, а если в проекте работает более одного человека, то тут уже можно начать и о вкусах спорить…
Lucene 4: 2012-й год
Hibernate Search 5: 2015-й год
… без комментариев.
В любом случае, проект не стал менее специфическим, я не очень представляю себе круг задач, для которых он предназначен. Огромный оверхед над Lucen-ом ради экономии, в лучшем случае, нескольких строчек кода, которая компенсируется дополнительными строчками конфигурации. Если пытаться полноценно использовать полнотекстовый поиск, то Hibernate Search не избавит от надобности изучать Lucene. А если вы разобрались с Lucene, то зачем тратить время на изучение обертки над ним? Это ведь не ассемблер, это полноценная библиотека с полным набором высокоуровневого API, зачем надстраивать над ней ещё что-то? Масло масляное…
Все сказанное в статье про Hibernate — чушь, больше всего доставляет заголовок — «MyBatis как более быстрая альтернатива Hibernate». Нет опыта работы с Hibernate — не пишите про него, зачем портить неплохую статью ничем не подтвержденными сравнениями?! Hibernate может и сам генерировать SQL, а может предоставить это разработчику. Если у автора нет достаточного опыта работы с Hibernate, зачем писать о том, что он медленнее?
«MyBatis мапится не на таблицы, а на SQL запросы»
Hibernate тоже так умеет, но почему-то в статье эта возможность — прерогатива только MyBatis-а
MyBatis при разумном использовании может дать ощутимый прирост в скорости работы приложения
А Hibernate при таком же разумном использовании не может, не?
MyBatis можно использовать совместно с Hibernate там где это действительно нужно
Да ладно, серьезно? Будете на одном проекте два ORM-а разворачивать?
На личном опыте вывел для себя «Первое правило в использовании Hibernate Search»: не использовать Hibernate Search. Никогда. Применял как Hibernate Search, так и «голый» Lucene, и понял что не вижу смысла существования Hibernate Search. Если вам не требуется тотально положить в индексы Lucene всю свою базу, т.е. если у вас только пара-тройка таблиц требующих неточного поиска — используйте чистый Lucene. Последний раз, когда я внедрял неточный поиск, отказ от использования Hibernate Search ускорил индексацию на порядок, и уменьшил размер индекса на 20-30%.
Да и вообще, Hibernate Search, судя по всему, умирает. Давно уже вышел Lucene 4, но последний Hibernate Search до сих пор работает на 3-ей версии.
Вопросы:
1. Насколько велика дополнительная нагрузка на СУБД?
2. Периодическое обновление означает что будут сниматься мгновенные данные на момент подключения или Oracle может дать также историю с момента предыдущего снятия данных?
3. Можно ли подключить вашу библиотеку (без GUI) к серверному Java-приложению, чтобы она сохраняла данные в портабельном виде, а затем периодически переносить сохраненные отчеты и просматривать на своем компьютере?
Насчет моего «при чем тут Хабр?», Ваше «просто ради хорошего настроения в пятницу» — вполне достойный ответ, хотя привычка превращать Хабр по пятницам в ЖЖ-чку довольно неоднозначна, и для подобных вещей даже сделали отдельный ресурс…
А по теме статьи — мне кажется, что если стартаперу постоянно нужна внешняя мотивация, в т.ч. и в виде таких не информативных статей, то, может быть, пора бросить это дело и спокойно работать на дядю? Пусть он мотивирует его делать хоть что-то…
Технически, статья конечно замечательная, спасибо — действительно интересно… Но мое средне-техническое строительное образование не приемлет! А уж ваше — даже не знаю…
Эти цифры ничего не говорят об удовлетворённости пользователей. Это не развлекательный или новостной сайт, тем более не социалка, для которой главное чтобы все что-то писали, поэтому эта статистика не говорит ничего об удовлетворённости. Я — программист, и я знаю зачем я хожу на SO, и как это происходит. Я сижу и делаю работу, я «в потоке», и тут — проблема, которая хочет выбить меня из потока. Захожу в Гугл (не в SO, ни разу не использовал внутренний поиск), Гугл предлагает мне SO, открываю страницу, в большинстве случаев практически не читая вопроса/ответа проглядываю код в ответе, и использую его. Причём использую как можно скорее, пока совсем не выпал из потока. Всё! Я удовлетворён на 100% тем что просто дальше делаю свою работу, через 30 секунд забыв что вообще был на SO. Как эту удовлетворённость можно извлечь из статистики задающих вопросы и отвечающих на них?
Вообще, 4 млн. зарегистрированных пользователей, скорее всего, лишь малая часть из тех, кто получает огромную пользу от сайта вообще не регистрируясь на нём. Как посчитать их удовлетворённость? Лично я за годы использования SO один или два вопроса задал, но при этом ответов я за то же время получил тысячи, просто найдя уже готовые решения.
Да, мой предыдущий комментарий, мягко говоря, не имеет солидной исследовательской базы, но и сама статья в общем-то — просто чушь. Любой продукт можно закидать экскрементами, имея на то большое желание, но только вреда особого не будет, если продукт хорош. Пара-тройка авторов статей раз в год собирают экскременты и кидают их в вентилятор, а 31 млн посетителей в месяц просто используют продукт дальше, в большинстве случаев вообще не зная об очередной разоблачающей статье…
Далее по тексту статьи негативные отзывы чуть более десятка людей.
PS Я сам участник SO, есть вопросы и ответы, пусть и немного. Удивился заголовку статьи, особенно тому, что это перевод. Я это к тому, что русская версия пожиже будет, всякой чуши в вопросах более чем хватает. Заметил тенденцию на ru.SO — учащиеся нередко задают вопросы даже не попытавшись самостоятельно поискать. Плюс спрашивают про технологии, устаревшие 10 лет назад…
Врёшь НАТОвская морда, не может солдат съесть в день два мешка брюквы!
А началось всё с нормального (не говно-) сайта, информационного блога, за счёт продажи рекламы с него и оплачивались эксперименты с сетками. Сайт жив до сих пор, полторы сотни посетителей в день, но денег уже не приносит. Запустил свой стартап, онлайн-сервис, потихоньку развиваю его.
Многие говорят о том, что не надо обманывать поисковики, лучше делайте что-то для людей. Так-то оно так, но огромные деньги, крутящиеся в сфере SEO говорят о другом. Правда, как обычно, где-то посередине…
Яндекс, как и абсолютное большинство других компаний, в первую очередь заинтересован в том, чтобы зарабатывать деньги. Они бы с радостью плюнули на выдачу и лучшие сайты, но тогда высок шанс потерять пользователей, а пользователи = деньги. Они не зарабатывают на поиске, они зарабатывают на рекламе, которую показывают в поиске. И там алгоритм простой — плати больше, будут показывать чаще. А поиск — лишь площадка для показа рекламы.
Я несколько лет крутился в сфере SEO, и одна из главных вещей, которую усвоил — в поисковой оптимизации нет никаких гарантий ни для кого. Ваше заявление — полнейшая чушь. Да, если ваш сайт незаслуженно забанен Яндексом, то обращения в службу поддержки дадут шанс того, что когда-то его вручную оттуда «вытащат», и он появится в поиске, где-нибудь на 10-й странице. Но попасть в ТОП выдачи попросив об этом службу поддержки?!
Мне кажется, что вы не противоречите друг другу. Пока знакомый сидел в деревне через ADSL, его с берега не видно было. А потом он уехал (и вряд ли вернётся, как и многие другие), то остались одни пенсионеры…
Нет, ну правда, ВЫ ЭТО СЕРЬЁЗНО?!
Как видно из примера, возможности широкие, и это «рецепты» от не специалиста по СУБД и не знатока PostreSQL…
1. Писать на 8-ке понятие растяжимое — то же ФП, например, насколько активно используется?
2. Как насчет "что сделало бы проект реально более читабельным/поддерживаемым/производительным/т.д" — проекты на 8-ке чем лучше проектов на 7-ке/6-ке/5-ке? Производительность, трудозатраты, ошибки: если на конкретном проекте сменить синтаксис на 5-ку, например, станет ли он от этого набором жуткого говнокода?
Hibernate Search 5: 2015-й год
… без комментариев.
В любом случае, проект не стал менее специфическим, я не очень представляю себе круг задач, для которых он предназначен. Огромный оверхед над Lucen-ом ради экономии, в лучшем случае, нескольких строчек кода, которая компенсируется дополнительными строчками конфигурации. Если пытаться полноценно использовать полнотекстовый поиск, то Hibernate Search не избавит от надобности изучать Lucene. А если вы разобрались с Lucene, то зачем тратить время на изучение обертки над ним? Это ведь не ассемблер, это полноценная библиотека с полным набором высокоуровневого API, зачем надстраивать над ней ещё что-то? Масло масляное…
Hibernate тоже так умеет, но почему-то в статье эта возможность — прерогатива только MyBatis-а
А Hibernate при таком же разумном использовании не может, не?
Да ладно, серьезно? Будете на одном проекте два ORM-а разворачивать?
Да и вообще, Hibernate Search, судя по всему, умирает. Давно уже вышел Lucene 4, но последний Hibernate Search до сих пор работает на 3-ей версии.
1. Насколько велика дополнительная нагрузка на СУБД?
2. Периодическое обновление означает что будут сниматься мгновенные данные на момент подключения или Oracle может дать также историю с момента предыдущего снятия данных?
3. Можно ли подключить вашу библиотеку (без GUI) к серверному Java-приложению, чтобы она сохраняла данные в портабельном виде, а затем периодически переносить сохраненные отчеты и просматривать на своем компьютере?
А по теме статьи — мне кажется, что если стартаперу постоянно нужна внешняя мотивация, в т.ч. и в виде таких не информативных статей, то, может быть, пора бросить это дело и спокойно работать на дядю? Пусть он мотивирует его делать хоть что-то…