Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Практическое применение f((yield x))?

Лучший ответ:
Когда вам нужно создать "плоский" итератор, из которого поочерёдно вылетают аргументы/результат некоторой функции.# coding=utf-8

def f(x):
    return u',\n {}.\n'.format(x.lower())

print(u''.join(f((yield i) or i) for i in [
    u'Ветер с моря дул',
    u'Нагонял беду',
    u'И сказал ты мне',
    u'Больше не приду'
]))

Худший ответ:
Ну и чудище. Похоже на косяк Guido.
"there is no reason to do it this way".
UPDATE
так чуть длиннее, но не вызывает у меня отвращения:>>> from itertools import chain
>>> def f(val):
...     return "Hi"
... 
>>> list(chain.from_iterable((a, f(a)) for a in [1, 2, 3]))
[1, 'Hi', 2, 'Hi', 3, 'Hi']
Вопрос: Почему ПК загружается только после сброса BIOS? Почему появились иероглифы в BIOS?

Лучший ответ:
Отвал моста или видеочипа, возможна битая память если встроенное видео

Худший ответ:
Видеокарте конец.
Вопрос: &quot;Правда ли, что Hell располагает перепиской Навального&quot;, или &quot;Можно ли подделать тексты писем в формате TBB&quot;?

Лучший ответ:
Даже если это невозможно или чрезвычайно сложно, зачем вообще подделывать письма в формате TBB? Достаточно написать нужное содержимое в формате EML (простой текстовый формат) или создать в любом другом почтовике, откуда его импортировать в EML и подправить заголовки для пущей правдоподобности, после чего импортировать этот EML-файл в Бат, и письмо окажется в базе Бата, в формате TBB.

А вообще, Каганов уже хорошо высказался на этот счёт.

Худший ответ:
Что-то я не понимаю. Если речь о TBB — значит у них есть дамп Bat-а? Они что, ноут выкрали?
Вопрос: Что-то стремительно съедает место на диске С: на сервере. В чем проблема?

Лучший ответ:
Включите отображение скрытых файлов и папок в проводнике, да посмотрите еще раз.
Магии не бывает.
Может свапится, может еще что то.

Худший ответ:
Мне кажется дело в логах. С Windows не дружу, поэтому не знаю где хранятся логи:)
Вопрос: Как быть с событиями onclick и вложенными элементами?

Лучший ответ:
<div onclick="func_a()">
    <div onclick="func_b(event)"></div>
</div>
<script type="text/javascript">
    function func_a() {
        alert('a');
    }
    function func_b(e) {
        e.stopPropagation();
        e.cancelBubble = true; // для IE
        alert('b');
    }
</script>
Читать подробнее: 
— https://developer.mozilla.org/en-US/docs/Web/API/E...
— https://msdn.microsoft.com/en-us/library/ms533545(...

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

Лучший ответ:
Посоветую изучить PHP или найти профи, который напишет)

Худший ответ:
Если новичек, то на php. Запоминать лучше с помощью сессий. Плагины,  смотря какие цели у кабинета
Вопрос: Как максимально быстро узнать IP для множества доменов?

Лучший ответ:
распарралелить проверку?

Худший ответ:
Пример на python+gevent: www.gevent.org/intro.html#example
Можно параллельно по 10к запросов "подбрасывать"
Вопрос: Есть ли аналоги Packet Tracer для Juniper?

Лучший ответ:
вроде gns3 умеет juniper

Худший ответ:
Хотелось бы потренироваться. GNS3 умеет запускать образы Olive (JunOS, скомпилированный с поддержкой x86-оборудования). Еще есть Junosphere - виртуальная лаба в интернете за деньги. Прямого аналога PacketTracer  не могу припомнить.
Вопрос: Куда пропал выбор шаблона страницы в wordpress?

Лучший ответ:
Переключите тему на другую, затем верните её назад.

Худший ответ:
Все разобрался. Я тупо забыл файл с шаблоном туда залить)))
Вопрос: Тему для дипломной работы?

Лучший ответ:
Для научной ценности нужно придерживаться примерно такой структуры:
1. Находим проблему.
2. Делаем обзор существующих решений.
3. Определяем их недостатки.
4. Предлагаем своё решение, исправляющее все (скорее, несколько) из этих недостатков.
5. Проводим эксперименты, подтверждающие, что наше решение 1) действительно решает проблему, и 2) делает это лучше существующих решений.

Обязательность пунктов 2-5 накладывает ограничения на выбор пункта 1, о котором Вы спрашиваете. 
Собственно, у Вас два варианта: либо php+mysql+js является объектом исследования, либо — инструментом. В первом случае можно поизучать производительность, предложить какой-нибудь свой плагин, оптимизирующий эту связку для какой-то конкретной задачи (например, посмотрите что можно оптимизировать в каком-нибудь open-source проекте). Во втором случае, когда php+mysql+js лишь инструмент, — задача может быть какой угодно: хоть моделирование жидкостей, хоть криптография, хоть финансовое прогнозирование — руководитель Вам подскажет.

Худший ответ:
Банально, но актуально. Делайте социальную сеть.
Вопрос: Можно ли стать программистом гуманитарию?

Лучший ответ:
Тестировщиком легко сможет стать. Примеров масса, даже среди знакомых.
Вот программистом сложнее, у меня самого юридическое образование. Было очень сложно переквалифицироваться и заняло годы. В 30 лет такой процесс начать сложнее, тут нужен просто феерический энтузиазм и интерес к профессии.

Худший ответ:
Сам ничего не понимаю ни в программировании, ни в лингвистике, но у меня есть друг-лингвист, который ушёл в компанию, занимающуюся разработкой электронного словаря.
Посмотрите вакансии вроде этих - где требуются знания и лингвистики, и программирования
spb.hh.ru/vacancy/14608156
career.ru/vacancy/14476767
Вопрос: PDO как сделать простейшую транзакцию?

Лучший ответ:
Можно ли как-то достоверно узнать id именно этой вставленной записиМожно, он хранится в LAST_INSERT_ID()The ID that was generated is maintained in the server on a per-connection basis. This means that the value returned by the function to a given client is the first AUTO_INCREMENT value generated for most recent statement affecting an AUTO_INCREMENT column by that client. This value cannot be affected by other clients, even if they generate AUTO_INCREMENT values of their own. This behavior ensures that each client can retrieve its own ID without concern for the activity of other clients, and without the need for locks or transactions.Гласит документация.
Есть только несколько особенность, на которые стоит обратить внимание:... LAST_INSERT_ID() returns a ... value representing the first automatically generated value successfully inserted for an AUTO_INCREMENT column as a result of the most recently executed INSERT statement. The value of LAST_INSERT_ID() remains unchanged if no rows are successfully inserted.

Худший ответ:
Альтернативный вариант узнать последний ID - это выбрать максимальный ID (они же автоикрементируются?):SELECT MAX(`id`) FROM `some_table`
Этот подход более рационален, когда происходит несколько вставок, в том числе и в транзакциях.
Вопрос: Касса для сайта, с мин. комиссией. Есть такие?

Лучший ответ:
Я.Касса работает со всем чем можно вообще, карты, банки, терминалы, салоны связи. Подключаете её и не паритесь.

Худший ответ:
А юр лицо есть?
1) Яндекс касса работает только с юр.лицами. Вообще насколько я знаю любой известный агрегатор работает только с юрлицами 
2) Если сайт продает услуги и оборот меньше 500т.р в месяц - яндекс касса берет 3.5-5% в зависимости от способа оплаты. https://kassa.yandex.ru/terms
В целом мне кажется что на Ваших оборотах разброс в 1-2% не окупит времени потраченного на смену платежки даже в длинной перспективе.
Вопрос: В чем может быть проблема, часто подгорают контакты питания процессора?

Лучший ответ:
Причина увеличенное сопротивление при большом токе. Т.к. разъем, значит плохой контакт, причем может быть непосредственно в разъеме, а может в месте соединения с платой, может в месте соединения проводов и наконечников.

Худший ответ:
Замените разьемы и конденсаторыпроблема в китайском качестве разьемов.
Вопрос: Как проверить, какой версии программа в debian wheezy backports?

Лучший ответ:
testing и backports - совершенно разные репозитории. 
testing - репозиторий следующего (тестируемого в данный момент) дебиана. 
backports - бэкпортированные в текущий stable-debian пакеты. Само собой, не все пакеты из тестинга бэкпортируются - рук не хватает, да и некоторые пакеты вовсе не могут быть бэкпортированы (из-за несовместимости с пакетами в базовом репозитории). 
Если вам нужен пакет из тестинга - подключите его с минимальным приоритетом: 
 deb ftp.us.debian.org/debian testing main contrib non-free в /etc/apt/sources.list
В /etc/apt/preferences: 
 Package: *
 Pin: release a=testing
 Pin-Priority: -50
Тогда пакеты из тестинга не будут ставиться до тех пор, пока вы явно не укажете версию из тестинга при установке пакета (это нужно, что бы apt-get upgrade не поломал вам полсистемы. Да и установка обычного пакета в stable с подключенным тестингом может дров наломать).

Худший ответ:
Ниче не понимаю. Вот тут ищу, получается, что lmms свежей нету вообще в wheezy-backports? 
https://packages.debian.org/search?suite=wheezy-ba...
То же самое касается chromium-browser. Нету его просто в wheezy-backports:
https://packages.debian.org/search?suite=wheezy-ba...
Вопрос: Вопрос к тем, кто занимается переводами... Какие программы используете?

Лучший ответ:
У меня мама работает переводчиком более 30 лет. Переводит в основном технические статьи про оборудование на атомных станциях. Она использует следующую связку, сначала прогоняет текст через гугл транслейт, потому что он переводит действительно неплохо, а потом с использованием словарей Lingvo, Trados'а (потому что стандарт) и интернета уже приводит текст к читаемому виду.

Худший ответ:
Если девушка учитель английского, то ничего кроме спецтерминов ей и не должно понадобиться. То есть яндекс-словарей вполне достаточно.
Вопрос: Как SQL-запросом сделать из повторяющихся строк столбцы?

Лучший ответ:
Для sqlite так:SELECT Дата ,
 SUM(CASE WHEN  Продукция = 'Отруби' THEN  количество END ) as otrubi,
 SUM(CASE WHEN  Продукция = 'Перья' THEN  количество END ) as peria,
 .....
FROM таблица
GROUP BY Дата
Для mssql/oracle, если сущностей много, можно использовать PIVOT.

Худший ответ:
select
m.date,
(select sum(kolichestvo) from mytable p where p.produkt='Отруби' and p.date=m.date) as OTRUBI,
(select sum(kolichestvo) from mytable p where p.produkt='Перья' and p.date=m.date) as PERIA,
(select sum(kolichestvo) from mytable p where p.produkt='Пшено' and p.date=m.date) as PSHENO,
(select sum(kolichestvo) from mytable p where p.produkt='Картон' and p.date=m.date) as Karton,
(select sum(kolichestvo) from mytable p where p.produkt='Кирпич' and p.date=m.date) as KIRPICH

from mytable m
group by m.date
order by m.date
Вопрос: Какой визуальные редактор используется в Toster.ru?

Лучший ответ:
@junart wysiwyg  это общее название wysiwyg визуальных редакторов ru.wikipedia.org/wiki/WYSIWYG
У тостера - самописный

Худший ответ:
Самый простой и удобный. textarea с хорошей валидацией + кнопки быстрой вставки тегов. И да, это совсем не визивиг.
Вопрос: Насколько хорошо стоит изучить C++, чтобы легче было перейти к изучению Java?

Лучший ответ:
Еесли планируете потом рабоать только с Java, можете не учить C++, синтаксис, да, похож. А вот подходы абсолютно разные.

Худший ответ:
Если хотите в будущем заниматься исключительно Java, то учите С++ в объеме классы + наследование + полиморфизм. Особое внимание уделите указателям. Qt не советую, потому что оно к джаве никаким боком. Лучше это время потратьте на изучение STL и шаблонов.
Вопрос: Кому проще устроиться?

Лучший ответ:
Проще всего устроиться джуниору с мозгом, всё остальное вторично.

Худший ответ:
Открой headhunter или другую биржу вакансий и поищи число интересных тебе вакансий и сравни.
Вопрос: Какой Linux подойдет лучше?

Лучший ответ:
в вашем случае лучше взять новый ноут. =)

Худший ответ:
1. wget
2. ... уже ~9 лет на ubuntu, не разваливается. Что я делаю не так?
3. Смотри под дистрибутив И его desktop окружение
4. Для Ubuntu: ПКМ на папке -> Свойства -> Общедоступная папка для локальной сети...
5. Gnome/KDE/XFCE/LXDE это поддерживают.
Посмотри XUbuntu, там требования довольно низкие к железу.
Вопрос: Как в Java 7 сериализовать, вернее сохранить байт код функций с возможностью дальнейшей загрузки?

Лучший ответ:
Насколько я знаю, этого сделать нельзя. Вот тут подробно описано, что происходит и что получается при сериализации: https://habrahabr.ru/post/60317/ Кратко: байткод методов туда не пишется. 
Но, мне кажется, вашу задачу можно решить без сериализации. Создать jar с этими классами, потом загружать его динамически. stackoverflow.com/questions/11016092/how-to-load-c...

Худший ответ:
javassist или asm  какой-нить не стоит рассмотреть?
Вопрос: Как различать объект DOM и объект Object в JS?

Лучший ответ:
var isDomElement = document.getElementById('someId') instanceof HTMLElement;

самое важное: создать объект класса HTMLElement и его наследников просто так нельзя, т.е. нельзя написать 
var el = new HTMLElement();

Худший ответ:
> document.body+''
"[object HTMLBodyElement]"
> document.querySelector('div')+''
"[object HTMLDivElement]"
> document.querySelector('span')+''
"[object HTMLSpanElement]"
Или то же самое - .toString() (это в Firefox) - начинает становиться некоторым стандартом. Раньше JQuery 1.x определяла DOM-элемент наличием свойства .attributes, когда разброс по выдачам у браузеров был велик.
Вопрос: Как организовать возможность какого-либо действия пользователя 5 раз в 3 суток?

Лучший ответ:
Не нужно никакого Cron`а и хранения попыток проголосовать.
Создаете табличку, где будут логгироваться голоса:CREATE TABLE IF NOT EXISTS `votes_log` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `user_id` int(10) unsigned NOT NULL,
  `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
При попытке проголосовать делаете запрос в базу:SELECT COUNT(*) FROM `votes_log` WHERE date > DATE_SUB(NOW(), INTERVAL 3 DAY) AND user_id=?
Этот запрос возвращает сколько раз проголосовал пользователь за последние 3 суток.
Если меньше 5-ти - принимаем голос (и записываем в эту таблицу).

Худший ответ:
ммм.... откуда тут взялся cron.... просто храните даты голосований, заведите отдельную табличку куда сваливайте кто, за кого и когда проголосовал. Далее простая проверка.
Вопрос: Обновление системы только через Wi-Fi

Лучший ответ:
Вы немного неправильно сформулировали вопрос, указав только версию, но не указав сам девайс. Например в SGNII на 4.1.1, все с этим в порядке:

Так что, это зависит не только от версии Android, но и от прошивки.

Худший ответ:
Решил проблему установкой программы по контролю трафика с возможностью установки лимита. Хотя считаю, что режим получения OTA-обновлений только по Wi-Fi в чистом Android все же не был бы лишним…
Вопрос: В чем разница между этими вариантами кода?

Лучший ответ:
1 выполняется сразу, 2 после загрузки страницы.

Худший ответ:
Я как понял в данном случае ее нет, тут от доллара джикверевского в начале смысла ноль
Вопрос: Как заказать разработку приложения для iPhone/iPad

Лучший ответ:
1. Заключить соответствующий договор?
2. Нанять разработчиков к себе в офис и держать под контролем разработку?
3. Делать проект в партнерстве(за %)?
4. Разбить разработку на несколько частей и поручить их независимым друг от друга людям?
5. Написать самому?

Худший ответ:
) а ещё же рисовать надо интерфейс…
Вопрос: Какой жесткий диск выбрать?

Лучший ответ:
Подозреваю что у вас проблемы со свободным местом на озу, отсюда и треск - постоянный своп.  
для начала надо разобраться с тем что куда и зачем пишет
download.sysinternals.com/files/ProcessMonitor.zip
рекомендую - можно подглядеть кто шалит с обращениями к диску.

Худший ответ:
Берите SSD не пожалеете.P.S. Посоветуйте хорошую программу для тестирования жесткого диска (такую чтобы не грохнула его окончательно :)) 
Лучше victoria не придумали
Вопрос: Какой выбрать алгоритм для решения задачи?

Лучший ответ:
Так вроде это классическая задача коммивояжера. В википедии описаны алгоритмы решения этой задачи. Проанализируй все и выбери оптимальный.

Худший ответ:
Если есть память N*2^N, где N - число городов, то можно воспользоваться динамикой по набору пройденных городов плюс последнему городу, где оказался коммивояжер. Для каждого такого сочетания запоминаем минимальное количество топлива, которое потребовалось, чтобы добраться до этой ситуации и город, из которого приехали в последний город. Потом для всех ситуаций проезжаем из последнего города по всем рёбрам, и попадаем в ситуации, где посещённых городов на 1 больше. Снова для каждой находим оптимальный (по топливу) путь, по которому мы туда попали... и так, пока топливо не кончится. После чего проходимся по всему списку, и смотрим, где больше собрано призов.
До 20-25 городов должно работать разумное время. Дальше придётся искать эвристики.
Вопрос: Как в wordpress обратиться к custom функции?

Лучший ответ:
Системная страница уже существует, admin-ajax.php
Читайте про хуки - actions and filters.
А вообще в мире WordPress есть 2 типа вызова функций. Один - использовать самым обычным образом в потоке (например, вставить в шаблоне какой-то страницы и в этом месте на страничке получить результат работы этой функции), другой - подключать функции с помощью хуков в определенные "опорные точки". Подключенные функции будут выполняться WordPress'ом по мере достижения этих точек.

Худший ответ:
Если функции темы запиханы в какой-нибудь functions.php, то как и везде, они будут доступны глобально. В целом это фундамент любого языка и, само собой, это нормально. А если разработчик темы сделал все по-хорошему, то через пространства имен.
Аякс в wordpress работает иным способом.
Вопрос: Как это поместить в 1 div?

Лучший ответ:
Эммм... Вот так?$c = Comment::getComByNewsId($_GET['id']);
echo "<div id='one-div-to-rule-them-all'>";
foreach ($c as $v){
  echo "<div class=comment>";
    echo "<h6>".$v['login'].$v['date']."</h6>";
    echo "<p>".$v['content']."</p>";
  echo "</div>";
}
echo "</div>";

Худший ответ:
Прошу следующий раз выкладывать фото побольше, ничерта не вижу.
(запрос твой)
echo "";
(сюда кидаешь свой foreach)
echo "";
Но это не очень грамотно если судить с красоты кода.
Правильный код был бы такой:
$arr = Comment:: // get comments
$html = $controller->view_array('filename2.php', $arr);
$data['html'] = $html;
$output = $controller->view('layout.php', $data);
echo $output;
Вопрос: Kнигу о системном программировании?

Лучший ответ:
Для начала нужно понять, отчего нельзя в заголовках писать C/C++, а потом решить, что нужно таки Си или С++, но видимо всё-таки Си?

Худший ответ:
Managing Projects with GNU Make, Third Edition

UNIX. Профессиональное программирование
Вопрос: Shopotam, Alienware 18 и таможенная пошлина?

Лучший ответ:
Интересная вот ситуация с точки зрения здравого смысла.......
Можно понять человека, залезающего в долги для покупки хотя бы небольшого, но своего собственного "свечного заводика".
Можно также понять студента, который одалживает на покупку ноута за 300-400 $ для учёбы.
Но в данном случае - ЗАЧЕМ !?

Худший ответ:
Подобные покупки не делал, но с таможней часто встречался одно время. И если честно, то шансы безпошлинно провезти посылку в 5000$ практически отсутствуют, разве что в декларации написать что б/у, со сломанным экраном и сделать инвоис до 1000 евро, но это тоже не самый благоприятный путь, если вдруг захотят проверить содержимое.
Вопрос: Как развить программистское мышление?

Лучший ответ:
Как ни странно, нужно программировать. И мыслить при этом.

Худший ответ:
Я в универе учил C++, даже лабораторные делал, но как-то не пошло... теперь тоже учусь программировать на Java
Вопрос: От меня идет спам вконтакте. Как?

Лучший ответ:
Обычно всему виной приложения «Скачать видео и музыку из контактика».
Вроде бы даже на хабре недавно была статья про одно такое приложение.

ПС: Внимательно смотрите разрешенные действия для приложения.

Худший ответ:
vkontakte.ru/settings
почти в самом низу: «Безопасность вашей страницы» -> «Просмотреть историю активности».
Если обнаружете подозрительные входы: значит ваш пароль украден.
Вопрос: Какой стек технологий в программировании быстрее всего освоить с нуля?

Лучший ответ:
Как насчет JavaScript?
Если интересно – посмотрите мою лекцию про полный цикл разработки веб-приложений на JS (и клиент, и сервер) habrahabr.ru/post/199472/

Худший ответ:
PHP
JavaScript
HTML5\CSS3
SQL
и желательно узнавать новые плюшки которые нужны в мире
я с лета начал  конкретно изучать программирование  сам. до этого был совсем мизерный опыт скриптописпния на всяких игровых ботов для нескольких MMORPG. С самого начала  начал изучать такую штуку как  AutoHotKey, это скриптовый язык для винды, можно написать скрипты по автоматизации некоторых действий, по началу скучновато было , делать воде даже нечего было, потом я понял как можно делать HTTP запросы на серверы и начал изучать API вконтакте для некоторых автоматизаций. Было интересно изучать программирование только в те моменты когда самому что то нужно и  сам же можешь сделать такой инструмент.  
  В конце лета пересел на PHP. по началу было туговато, синтаксис учил. Было не сложно его понять потому что AHK синтаксис очень похож на пхп и  я гдето за недели полторы понял почти все что мне надо было, еще недели две изучал функции, немного тренировался и вникал в ООП(до сих пор еще вникаю но уже многое стало ясно). Далее резко перекинулся на CSS\HTML , для своих целей над было. Далее был перерыв в изучении пхп и затем пошел в JavaScript. Тут в понимании что вообще происходит было намного сложнее, что такое Callback функция и как с ней работать я узнал тока изучая яваскрипт, вообще для начала изучения не советую яваскрипт. Следующие три месяца я писал на яваскриптах, делал расширения для гугл хром  и прочую фигню для тренировки.  На данный момент устроился джуниор программистом PHP и по сути ради обучения далее в программировании. Я учился в инсте год на программиста  и в итоге месяца полтора самообучения узнал больше чем за год в инсте. ГУд лак короч.
Ну и в догонку. Щас очень вдохновляет Node js и его ща изучаю в свободное время.
Вопрос: Как правильно удалить объект из массива?

Лучший ответ:
Как вам уже правильно подсказали, проще воспользоваться унарным оператором delete.

var data = [
    {text: 'College', id: 1},
    {text: 'University', id: 2},
    {text: 'School', id: 3}
];

data.map(function (elt, index) {
    if(elt.id === 2) {
        delete data[index];
    }
});

Худший ответ:
delete data[i]; не нравится?
а data.splice()?
Вопрос: Почему аккумуляторы АА не соразмерны батарейкам АА?

Лучший ответ:
Может быть вы купили какие то совсем левые аккумуляторы? Никогда с таким не сталкивался.
Ну и если верить wiki - размер даже по спецификации может слегка гулять.An AA cell measures 49.2–50.5 mm (1.94–1.99 in) in length, including the button terminal—and 13.5–14.5 mm (0.53–0.57 in) in diameter. The positive terminal button should be a minimum 1 mm high and a maximum 5.5 mm in diameter, the flat negative terminal should be a minimum diameter of 7 mm.[1]en.wikipedia.org/wiki/AA_battery

Худший ответ:
Немного отличаются, да. Я думаю аккумуляторы делают толще, чтобы их ёмкость увеличить.
Вопрос: Row в Bootstrap?

Лучший ответ:
нет

Худший ответ:
Все зависит от дизайна. 
все колонки .col-md-X имеют внутренний отступ по 15px слева и справа. 
Если он вам не нужен - тогда надо или внутрь вставлять .row или оборачивать им группу .col...
Вопрос: Как работает кеш страницы статьи на Хабре?

Лучший ответ:
Всю страницу обычно не кешируют, никогда не знаешь какой плагин будет добавлен позже, который потребует частого обновления. Хотя в таких ситуациях неплохо подходит double render. Результат первой отрисовки кешируется (пост, комменты), а вторая всегда активна (персональные данные, sidebar).

Кешировать можно все комментарии поста одной простыней (пост.id -> HTML), сбрасывая при новых постах. Рисовать коменты дело не сложное.

Худший ответ:
А в чем проблема? При использовании комментариев на основе materialized path все комментарии можно выбрать одним запросом по индексам, а потом преобразовать в дерево при выводе.
Мне кажется, что комментарии как раз и не кешируются здесь.