Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Имеет ли право хостинг отключить доступ к файлам при истечении срока оплаты?

Лучший ответ:
Вы в дебри какие-то полезли: вольво, гаражи, аренда…
Ситуация проста и вообще не требует никакого юридического анализа: услуги предоставляются на предоплатной основе, нет оплаты — блокируется предоставление услуг. Это соответствует законодательству. Стоимость услуги указана в договоре и составляет 150 рублей; стороны по этому пункту пришли к соглашению в момент заключения договора, поэтому странно требовать чего-то, имея на счету 10 рублей. 
Ваши аргументы про «да мне только файлы забрать; им жалко, что ли» уместны в бытовых повседневных отношениях со знакомыми или родственниками, где вопросы регулируются путём убеждений или просьб. Заключив же договор с хостером, вы вступили в отношения, регулируемые законодательством. А законодательство говорит, что стороны в договоре должны выполнять принятые на себя по договору обязательства. В случае неисполнения обязательств одной стороной другая имеет право отказаться от принятых на себя обязательств — что и произошло в вашем примере.

Худший ответ:
Доступ к файламм является частью комплекса хостинговых услуг. В данном случае хостер прав. Поступает не по-человечески, но прав. 
Если компания большая — можете не пытаться спорить и угрожать — им плевать.
Вопрос: Как сделать прием push notifications в Windows 7\XP в своей программе?

Лучший ответ:
А в чем проблема-то?

Берем TCP сокеты и вперед. 
TCP-соединение в пассивном состоянии (без передачи трафика) не требует никаких ресурсов.

Худший ответ:
Есть решение в виде сервиса — pusher.com. Бесплатный пакет 100,000 сообщений в день.
Для всех наиболее распространенных платформ.
Вопрос: Как лучше организовать сетевую печать, если используется печать локально и из RDP-сеанса с сервера?

Лучший ответ:
перевести все принтера в сетевой режим, где это возможно. На терминале включить easy print и установить х32 и х64 драйвера принтеров. Включить проброс портов и принтеров по умолчанию. В дальнейшем принтера будут автоматически пробрасываться в RDP сессию. При условии что все принтера умеют пробрасываться (некоторые серии принтеров HP не позволяют пробрасывать их с помощью easy pring, этакая защита от коммерции, всякие HP CP15xx)
Второй вариант, поднять на какой то машине или на том же терминале сервер принтеров, отключить проброс и настроить на нем каждый принтер.
У меня порядка 30и принтеров даже через нат пробрасываются с помощью easy print. В основном принтера kyocera (разных годов выпуска) и HP enterprise класса (HP p3015, p4015) С помощью easy print все работают, легко подбрасываются в терминальную сессию. Сбои с принтерами редкие, в основном проблема на машинах с windows XP, но там проблему решил с использованием универсального драйвера для HP P4015dn.
Я по этому и склоняюсь к easy print, т.к. даже с OS X и Linux пробрасываются принтера.
У нас принтер серверов не используется кстати, ибо много маленьких офисов, а принтера должны работать автономно, даже если к серверам нету доступа.
Единственное, на терминальном сервере поднять задачу раз в сутки или раз в неделю делать: 
net stop spooler
net start spooler

Худший ответ:
Смотрите на свой принтер если он поддерживается в CUPS  который на  Linux
ставите Linux, настраиваете и печатаете получается сетевой принтер, у меня частично так настроено... старые добрые Samsung ML2010 и парочку струйных...
единственное это какое-нибудь старенькое железо придется поставить и UPS
Вопрос: Ребят есть русская документация по Python?

Лучший ответ:
в одной итальянской семье отец завещал все самому ленивому сыну

Худший ответ:
Лутц, Саммерфилд, Прохоренок...
Вопрос: Есть ли аналог команды show processes cpu sorted на коммутаторах d-link?

Лучший ответ:
 Есть ли аналог команды show processes cpu sorted на коммутаторах d-link ? Смотря что вы имеете в виду под аналогом (какая функциональность вам нужна). Утилизацию процессора можно узнать при помощи команды show utilization cpu. 
Если вас интересует утилизация процессора каждым процессом, то не думаю, что эти данные возможно получить. Я даже не уверен, поддерживает ли ОС коммутаторов D-link процессную многозадачность.

Худший ответ:
нет
Вопрос: Есть ли смысл в хакинтоше на моем железе?

Лучший ответ:
Есть такой полезный ресурс 
Там есть и списки совместимости для каждой версии OS X.
Посмотрите, если Ваше железо подходит то проблем не будет. В любом случае там же на форуме много тем где ребята выкладывают кексты, dsdt и все прочее для удачного запуска.
Сам собирал хак по этим спискам, работало все 2 года без проблем.

Худший ответ:
Вроде как видео не запустится. Можно обновить процессор, взять минимум с HD 3000 и всё будет нормально.
Вопрос: Как организовать хранение сниппетов верстки?

Лучший ответ:
Github Gists - для него есть десктопное приложение GistsBox а также плагин для продуктов от JetBrains

Худший ответ:
Sass + Compass, как вариант.
Вопрос: URL в MVC. Обязательно ли это?

Лучший ответ:
MVC как паттерн вообще никак не задает схему url, MVC может быть вообще не для веба.
Конкретные реализации могут использовать ту или иную схему для url, но это выбор авторов этих реализаций и к самому паттерну не имеет отношения.

Худший ответ:
Согласно вашему мнению это не подходит,  так как вы должны позаботиться о роботах яндекса и гугла
mysite.ru/articles/show/cat/cat_name/article/artic не правельно
Правельно mysite.ru/<имя категории>/<под категории>/article--.html вот так еше куда не шло
Также если пользователь или робот открывает страницы
mysite.ru/<имя категории>/<под категории> 
Он должен видить контент тут
mysite.ru/<имя категории>
тут
При такой структуре 
mysite.ru/articles/show/cat/cat_name/article/artic...
Пользователь и робот не будет видеть контент 
mysite.ru/articles/show/cat/cat_name/article/ тут не увидит
mysite.ru/articles/show/cat/cat_name/ тут что то покажем.
mysite.ru/articles/show/cat/ тут нету контента а должен быть
mysite.ru/articles/show/ и тут тоже нету контента.
Пустых директорий как правило быть не должно.
Вопрос: Как при помощи jQuery поменять контент у псевдоэлемента ::before?

Лучший ответ:
А не проще ли попробовать такой подход:
в css прописать#icon:before {
    ...
}
#icon.second:before {
    .....
}
и менять у #icon класс на js?

Худший ответ:
Решением послужило добавление нового span-а, в котором через css была прописана вторая картинка. Через jQuery просто меняется css-свойство "opacity" каждого из span-ов.<span id="icon-1"></span>
<span id="icon-2"></span>#icon-1 {
	opacity: 1.0;
}
#icon-2 {
	opacity: 0.0;
}
#icon-1::before {
    content: url("../image/search-dark.svg");
}
#icon-2::before {
    content: url("../image/search-light.svg");
}$('#icon-1').animate({'opacity':'0.0'},400);
$('#icon-2').animate({'opacity':'1.0'},400);
Вопрос: Нужно ли хорошо знать математику, чтобы стать программистом? (в частности PHP разработчиком)

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

Худший ответ:
В последний раз более-менее серьезная математика мне понадобилась, когда я делал курсовые :)
Вопрос: Как в bash-скрипте подставить в строку, взятую из файла, значение заданной в скрипте переменной?

Лучший ответ:
последнюю строку замени на:eval "echo $STRING"

Худший ответ:
Если влоб то самый тупой вариант который приходит в голову, заменить последнюю строку наecho $STRING | sed -e 's/\$VAR1/'$VAR1'/g' -e 's/\$VAR2/'$VAR2'/g'
Вопрос: Где можно больше почитать про modx?

Лучший ответ:
Вот тут: https://modx.pro/
Уже бесплатные курсы: https://bezumkin.ru/training/

Худший ответ:
Официальную документацию почитайте, много полезного есть
Вопрос: Как сделать, чтобы один прозрачный блок перекрывал другой?

Лучший ответ:
Сделать обертку для второго дива с overflow: hidden не вариант?
codepen.io/anon/pen/yNpjgW

Худший ответ:
Например так, с помощью position: absolute;
jsfiddle.net/IonDen/Lb8Lj4xa
И в другом порядке с помощью z-index:
jsfiddle.net/IonDen/Lb8Lj4xa/1
Вопрос: Как раздать wifi с телефона на другие устройства?

Лучший ответ:
Ребят, вы ну вы что...
У самого, был опыт в раздаче интернета, когда в больнице лежал.
В андройде есть функция "режим модема"
Даже беглое гугление выдало:

Худший ответ:
Никак, в телефоны ставят один (и почти всегда - достаточно тупой) wifi-модуль, который в режиме репитера работать не умеет.
Вопрос: Google Apps Script с чего начать изучение?

Лучший ответ:
Дэвид Флэнаган, Javascript - Подробное руководство. Библия JS, имхо. Даст базовые знания, правильное понимание сущностей. Кроме того, Крокфорд приводит ее в пример как единственный правильный источник информации о языке.
Практикум по JS - codeschool.com. Заодно и английский подтянете, там все преподаватели говорят доступно и просто.
В целом, с русскоязычными материалами непросто, т.к. первоисточники в подавляющем большинстве на инглише. В вашем случае главный источник это https://developers.google.com/apps-script/articles. Туториалы, примеры, картинки.

Худший ответ:
Дэвид Флэнаган, Javascript - Подробное руководство. Библия JS, имхо. Даст базовые знания, правильное понимание сущностей. Кроме того, Крокфорд приводит ее в пример как единственный правильный источник информации о языке.
Практикум по JS - codeschool.com. Заодно и английский подтянете, там все преподаватели говорят доступно и просто.
В целом, с русскоязычными материалами непросто, т.к. первоисточники в подавляющем большинстве на инглише. В вашем случае главный источник это https://developers.google.com/apps-script/articles. Туториалы, примеры, картинки.
Вопрос: Какую Open Source CRM на Java выбрать, в котором есть возможность использовать GPS навигацию?

Лучший ответ:
Если веб, то при чем тут java
Если java, то при чем тут ios
Определись с ТЗ

Худший ответ:
"Навязывать" - плохая идея. очень плохая.
iOS native - Swift, Сишка.
сервер сайд вариант - да что угодно - Asp.Net, NodeJS, Rails, Java, Python, Perl наконец.
Опенсорс CRM - это понятие как бы так сказать - очень странное. - дефолтные варианты придется допиливать, перепиливать, искать плагины темы и все такое, включая эту вашу GPS (и что вы под этим имеете в виду мне не очень понятно)
ну а платные CRM - вам какая разница на чем они сделаны - вы клиент - платите, получаете функционал.
И я вас разочарую - на коленке вы эти продукты сами будете допиливать допиливать и допиливать и ничего кроме допиливать..
Вопрос: Как получить job offer из США? дайте советов, может есть опыт?

Лучший ответ:
Завести хороший линкед ин и аккаунт на гитхабе полный вашего опыта.

Худший ответ:
Есть сайты, где выкладывают вакансии работодатели, которые спонсируют рабочую визу H1B и Грин Карту. Регистрируйся там и рассылай свое резюме.
Вопрос: Кеш ajax-запросов в jquery — где здесь логика?

Лучший ответ:
Видимо люди считают, часто бывает так что запрос с одинаковыми параметрами по одному и тому же адресу возвращает одно и тоже, а значит можно кэшировать. Если Вас такое поведение не устраивает — отключайте кэширование.

Худший ответ:
потому что _не_ скрипты и jsonp — статика, остальное динамика. Те же html странички кешируют на долго, а пхп (даже с одинаковыми параметрами гет) нет, ибо на то они и «динамические».
Вопрос: Yii: rules и очень много сценариев, в которых чёрт ногу сломит?

Лучший ответ:
Совершенно необязательно городить весь огород в одной модели.
К примеру, все телодвижения с емейлом/паролем (смена, напоминалка итд) отлично укладываются в обычную модельную форму.
Детально не смотрел, но местами кажется, что Вы прописываете некоторые поля для ВСЕХ сценариев. Это необязательно.
Вообще, проблема ада сценариев отлично решена в Yii2 разделением собственно правил валидации и сценариев валидации. С другой стороны, шаблоны приложений yii2 недвусмысленно намекают, что по отдельным формам такие штуки все равно разбивать проще :)

Худший ответ:
В вашем случае можно попробывать разнести логику по поведениям, либо просто сделать базовый класс модели User (в котором прописываете правила и поведение для всех пользователей)  и наследоваться от него типа AdminUser extends User, Moderator extends User и тд
Можете даже фабрику сделать, чтобы например по определенному полю в бд инстанцировалась нужная модель.
Вопрос: Договор публичной оферты, Анонимность?

Лучший ответ:
Публичная оферта - это когда какое-то конкретное лицо предлагает что-то неопределённому кругу лиц. Поэтому это конкретное лицо должно указать свои данные (чтобы идентифицировать себя). Соответственно, ни о какой анонимности здесь речи быть не может.

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

Лучший ответ:
Я в таких случаях пишу себе самому письмо на почту. При этом ставлю в теме специальную пометку, которая позволяет фильтру положить письмо в отдельную папку. Когда есть свободное время пролистываю и удаляю наивные и откровенно глупые идеи (свежий взгляд это очень важно). Остальное по мере сил пытаюсь реализовать.

Худший ответ:
Вот если честно — всегда держу в голове, пока не доберусь до компа или бумажки. Обычно тогда к моменту нотирования мысли упорядочиваются и потом легче читаются. А из нотификаторов использую OneNote. К тому же он есть и для win-телефонов.
Вопрос: Есть ли хороший веб файловый-менеджер который работает через FTP?

Лучший ответ:
FAR-Manager (только им и пользуюсь)

Худший ответ:
Двухпанельный файловый менеджер для веб Cloud Commander может вам подойти. В нём есть редактор с подсветкой синтаксиса и консоль.
Вопрос: Возможна ли работа web-приложения без CGI?

Лучший ответ:
Существует достаточно большое количество технологий решающих задачу коммуникации веб-приложения и клиента (связка веб-сервер+CGI только одна из них). Я могу выделить три класса таких технологий (кто-то может по другому их разделить, это не для спора):
 — CGI-like, когда сервер перенаправляет запросы в экземпляр приложения, которое запускается как отдельный процесс в системе, и использует результат выполнения для отдачи клиенту;
 — Fast-CGI-like, когда приложение работает как демон и обслуживает запросы веб-сервера;
 — Сервера приложений, которые в собственном контексте выполняют код и обслуживают запросы.
Отдельно можно поставить комплексные сервера-приложения, которые сами выполняют все функции, как приложения, так и сервера.
Выбор технологии зависит от языка и уровня навыков.
CGI прост, но почти по всем параметрам уступает FCGI. Обе технологии используются, в основном, при работе с скриптовыми языками (Perl, PHP).
Сервера приложений — это преимущественно Java мир. Много специфики.

Худший ответ:
Запросто (вебсокеты). В этом случае и без веб-сервера можно обойтись.
Вопрос: Как в jQuery при клике на ссылку передать её title="xxx" в форму ответа?

Лучший ответ:
Значение заменяется или добавляется к существующему?
В любом случае метод .val().$("a#source-link").on("click", function(event) {
  event.preventDefault();
  var link_title = $(this).attr("title");
  /* если заменяется: */
  $("input#target-textfield").val(link_title);
  /* если добавляется: */
  $("input#target-textfield").val(function(index, value) {
    return value + link_title;
  });
  return false;
});
Советую пройти этот курс.

Худший ответ:
$(function() {
    var textArea = $("#you_textarea_id"),
        button   = $("#you_button_id");

    button.on("click", function() {
        textArea.val($(this).attr("title"));
    });
});
Вариант с модальным окном$(function() {
    var button   = $("#you_button_id"),
        modal    = $("#you_modal");

    // При клике ставим модальному окну дата атрбут с тайтлом кнопки
    button.on("click", function() {
        modal.data("button-title", $(this).attr("title"));
    });

    // При откритие модального окна берем дата атрибут
    // и ставим его в поле ввода
    modal.on('shown.bs.modal', function (e) {
        var textArea = $("#you_text_area"),
            title    = $(this).data("button-title");

        textArea.val(title);
    })
});
Вопрос: Как продвигать SPA и RIA?

Лучший ответ:
1. HTML5 History API
2. Изоморфные приложения и еще

Худший ответ:
Да это так, однако сейчас проще использовать history api браузера и иметь совершенно обычные url. Коль тут еще стоит тэг react.js, то рекомендую посмотреть на роутер react-router. И нужно не забывать, что приложение нужно будет рендерить и на сервере по прямым запросам
Вопрос: Как повернуть башню танка на объект?

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

Худший ответ:
Подсказка : воспользуйтесь элементарными тригонометрическими формулами. Вам, по сути, нужно визуализировать движение башни "внутри" круга, вычисляя градус башни.
Вопрос: Создание html-верстки, starter kit

Лучший ответ:
Это называется фреймворк. Да, лично я использую свой собственный, т.к. не понимаю, как можно каждый раз убивать столько времени на один и тот же процесс.

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

Лучший ответ:
Запомните Windows- регистронезависим, Linux - регистрозависим. 
Пройдитесь по ВСЕМ контроллерам, и проследите что бы с роута перенаправляло на контроллер у которого имя полностью совпадает с тем что вы ввели в роуте.
тоесть есть в роуте HomeController, а контроллер называется homeController, для линукса разные вещи.

Худший ответ:
.htaccess скопировали?
Вопрос: Нужно много советов. Хелп блин… Управление бизнесом

Лучший ответ:
Софт с бардаком бороться не помогает. 
Отстройте нормально процессы, зафиксируйте владельцев процессов — они будут в рамках них порядок наводить. Владельцев процессов потом и нагибайте если что не так. Не ленитесь писать бумажки, чтобы фиксировать решения.
И только потом автоматизируйте.
Сами же от своего руководителя берите только понятные задачи при этом вместе с полномочиями по решению, и решайте именно их, при этом так же фиксируйте постановку задач, делегирование полномочий, решения в протоколах/приказах и т.п.

Худший ответ:
Мы в конторе используем GLPI, но в качестве трекинг-системы заявок, но возможности у GLPI достаточно серьезные и эскалация поддерживаетя. GNU. FREE. Demo
Вопрос: Существует ли адаптивная тема для бэкенда MODX?

Лучший ответ:
В новой версии MODX, которая сейчас в разработке будет мобильный дизайн админки.
А пока вот что можно испробовать:
https://github.com/pdincubus/MODX-Revolution-Respo...
rtfm.modx.com/extras/revo/handyman

Худший ответ:
1. Вы должны уточнить версию Modx
2. Для версии 2.3 я не встречал сторонних тем и шаблонов
3. Если у вас имеется iPhone, то можете воспользоваться приложением mxManager
Вопрос: Изучение Java: мотивация, перспективы, краткий план?

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

Худший ответ:
У меня самого подобная ситуация как и у тебя.
Если есть желание пообщаться с тебе подобным, черкни на transnat@mail.ru, очень буду рад ;)
Вопрос: Выбор HDD плеера

Лучший ответ:
Я когда-то взял по акции в розетке Apacer AL460, емнип, за 60$. Винт в него не ставится, но в нем ethernet. С тех пор не вижу смысла в медиаплейерах с винтом. Имхо, гораздо удобнее иметь отельно NAS, отдельно полейер. Как-то пофункциональнее получается за сравнимые деньги. Может и вам стоит посмотреть на безвинтовый плейеры + NASики?

З.Ы.: единственный недостаток AL460 — не воспроизводил многоканальный DTS. пролечил прошивкой софта от старших версий, теперь звук иногда воспроизводится :") в остальном более чем доволен — детям мультики смотреть — идеально, да и я за неимением отдельной акутстики в DTS смысла не вижу.

Худший ответ:
Пользуюсь вот такой штукой, по вашим требованиям не удовлетворяет только установка hdd, в данную модель можно подключать устройства только по usb. Торрент клиент устанавливается с неофициальной прошивкой, wi-fi с помощью usb адаптера. Само устройство работает отлично пользуюсь примерно год, с HD видео и различными форматами проблем не возникало, довольно часто смотрю на нем youtube, с ним единственная проблема что нельзя искать ролики с русскими именами (отсутствует клавиатура для ввода русских букв)
Вопрос: Переход с PHP на Java или Python. Что выбрать?

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

Худший ответ:
Если нужно только для собеседования и демонстрации скиллов, то я бы выбрад Java, как сферический ООП в вакууме. Хотя тонкостей хватает и там.
Если надо продемонстрировать навыке веба, то лучше Python, поскольку Web-Python гораздо ближе к ПХП по принципу работы. Web-Java, ИМХО, кардинально отличается от PHP, поэтому придется потратить время для того чтобы вникнуть как там все устроено.
Если смотреть с точки зрения работы, то Java более перспективна, т.к. почти что стандарт энтерпрайза де-факто, а Python это только часть веб-рынка.
Вопрос: Нужно ли складывать много маленьких JS файлов в один большой?

Лучший ответ:
Если вы используете HTTP2 - то не обязательно, но это врядли.если загрузить асинхронно 10 файлов по 100кб то это будет быстрее чем один 1МБ файл
А если загружать по 80 файлов по 10кб то это будет медленнее чем 10 файлов по 100кб, так как расходы на установление соединения будут больше чем время ожидания доставки очередной порции данных.
Браузер делает запросы за ресурсами паралельно (можете в дебагере браузера посмотреть, там же информация о том кто блокирует загрузку), так что загрузка нескольких файлов будет быстрее загрузки одного большого. Но, даже с учетом keep alive, браузер не может реюзать полноценно при таком раскладе соединения, и он будет их плодить в большом количестве, и чем больше их, тем больше нагрузка на сервер, тем медленнее будет получаться статика. Так что нужно найти баланс.
Я бы предложил разделить все на:
 - angular.js
 - vendor.bundle.js - все сторонние модули и прочее
 - app.bundle.js - все файлики приложения.
тогда да. асинхронная загрузка будет быстрее.

Худший ответ:
 работодатель говорит: "если загрузить асинхронно 10 файлов по 100кб то это будет быстрее чем один 1МБ файл" 
Работодатель тупенький, это нормально. 
Аргумент простой: создайте 1000 файлов на диске, общим весом в Х мегабайт.
Создайте рядом один файл таким же весом.
Предложите работодателю скопировать то и другое по очереди. И сравнить время. 
Думаю, этого эксперимента хватит даже для самых упоротых.
Вопрос: Для чего используется этот css код?

Лучший ответ:
Почитайте про clearfix. Так очищают поток при использовании плавающих элементов.Дополню ответ:
Это часть micro clearfix hack Галлахера 
Собственно, код:/**
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *    contenteditable attribute is included anywhere else in the document.
 *    Otherwise it causes space to appear at the top and bottom of elements
 *    that are clearfixed.
 * 2. The use of `table` rather than `block` is only necessary if using
 *    `:before` to contain the top-margins of child elements.
 */
.cf:before,
.cf:after {
    content: " "; /* 1 */
    display: table; /* 2 */
}

.cf:after {
    clear: both;
}

/**
 * For IE 6/7 only
 * Include this rule to trigger hasLayout and contain floats.
 */
.cf {
    *zoom: 1;
}

Худший ответ:
почему не можете попробовать этот же вопрос задать яндексу? вы не поверите, но он быстро умеет отвечать!
yandex.ru/yandsearch?text=css%20after&lr=22
htmlbook.ru/css/after