SEO сайта, аудит, контент, копирайтеры, реклама

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

Сегодня, в меру своих сил и возможностей, расскажу про оптимизацию своего сайта для поисковых систем. Какими сайтами для проверки пользуюсь, что подправить в functions.php вашей темы, чтобы запись нормально смотрелась при репостинге в социальных сетях типа ВКонтакте и Facebook. Заодно поделюсь плагинами для ускорения работы сайта.

Плагины для WordPress

Начну с конца — плагины для WordPress. Их у меня установлено несколько: WP Super Cache, Autoptimize, Async JavaScript и EWWW Image Optimizer.

WP Super Cache

Плагин для кеширования страниц вашего сайта. Дело в том, что каждая страница в WordPress создается динамически при любом обращении. Динамическая страница каждый раз генерируется налету и лезет в базу данных. Этот плагин сохраняет сгенерированную страницу в кеш и отдаёт пользователю простой статический html файл, что экономит ресурсы сервера.

Ссылка для скачивания и установки: WP Super Cache.

Autoptimize

Простой и удобный плагин для объединения и минификации файлов JavaScript и стилей. В каждой вашей странице используется множество JavaScript и CSS файлов — от плагинов и темы. С помощью этого плагина (в идеале) у вас подключается всего два файла: один JavaScript и один CSS.

Ссылка для скачивания и установки: Autoptimize.

Async JavaScript

Плагин для выставления флажка defer для всех JavaScript файлов. В обычном случае браузер разбирает эти файлы последовательно, по мере обнаружения их в HTML коде. С этим флажком браузер откладывает парсинг файлов и занимается этим паралельно с загрузкой страницы.

Ссылка для скачивания и установки: Async JavaScript.

EWWW Image Optimizer

Плагин пережимает картинки без потери качества. Поддерживает форматы JPEG и PNG. Есть функция создания файлов типа WEBP, который браузер незаметно отдает вместо запрашиваемых для экономии трафика. Посетитель, что любопытно, не замечает подмены даже если попробует этот файл сохранить. Как это работает — понятия не имею, скорее всего замешано какое-то колдунство.

Ссылка для скачивания и установки: EWWW Image Optimizer.

Исправления functions.php вашей темы

В каждой теме WordPress есть файл functions.php, где происходит настройка темы и прочий тюнинг. Правильный подход для настройки своей темы — это написать свою с нуля или создать дочернюю и менять всё в ней, а по-хорошему создайте свой мини-плагин, где добавляйте всё это барахло, чтобы никак не зависеть от темы.

В этом файле у меня сделано добавление meta тегов для помощи поисковым системам и социальным сетям плюс небольшие вспомогательные фрагменты.

Мета-теги og:type, og: description, og:image, og:title

Добавление мета-тегов og:title, og:description, og:type, og:url, og:locale, og:image и description к посту. В качестве og:description и description берётся первые 55 слов из вашего поста. Эти теги помогают социальным сетям создавать предпросмотр страницы, если вы решите ею поделиться.

Исходный код

function b2k_og_meta() {
    if (!is_singular()) {
        return;
    }
 
    global $post;
    $description = esc_attr(wp_trim_words($post->post_content, 55));
 
    $tags = array();
    $tags['og:title'] = '<meta property="og:title" content="'.get_the_title().'"/>';
    $tags['og:description'] = '<meta property="og:description" content="'.$description.'"/>';
    $tags['og:type'] = '<meta property="og:type" content="article"/>';
    $tags['og:url'] = '<meta property="og:url" content="'.get_the_permalink().'"/>';
    $tags['og:locale'] = '<meta property="og:locale" content="'.get_locale().'"/>';
    $tags['description'] = '<meta property="description" content="'.$description.'"/>';
 
     $images = get_posts(array(
        'post_status'    => null,
        'post_type'      => 'attachment',
        'post_parent'    => get_the_ID(),
        'post_mime_type' => 'image',
        'order'          => 'ASC'
    ));
 
    if ($images) {
        foreach ($images as $img) {
            $url = wp_get_attachment_url($img->ID);
            $tags[$url] = '<meta property="og:image" content="'.$url.'"/>';
        }
    }
 
    echo implode("\n", $tags);
}
add_action('wp_head', 'b2k_og_meta');

Автоматический переход на страницу при поиске

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

Исходный код

function b2k_redirect_single_post() {
    if (is_search()) {
        global $wp_query;
        if ($wp_query->post_count == 1) {
            wp_redirect( get_permalink( $wp_query->posts['0']->ID ) );
            die;
        }
    }
}
add_action('template_redirect', 'b2k_redirect_single_post');

Добавление ссылок на следующую страницу и предыдущую

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

Исходный код

function b2k_rel_next_prev() {
    global $paged;
 
    if ( get_previous_posts_link() ) { ?>
        <link rel='prev' href='<?php echo get_pagenum_link( $paged - 1 ); ?>' /><?php
    }
    else if (is_singular()) {
        $prev_post = get_previous_post(true);
        if (!empty($prev_post)) { ?>
            <link rel='prev' href='<?php echo get_permalink($prev_post->ID); ?>' /> <?php
        }
    }
 
    if (get_next_posts_link()) { ?>
        <link rel='next' href='<?php echo get_pagenum_link( $paged +1 ); ?>' /><?php
    }
    else if (is_singular()) {
        $next_post = get_next_post(true);
        if (!empty($next_post)) { ?>
            <link rel='next' href='<?php echo get_permalink($next_post->ID); ?>' /> <?php
        }
    }
}
add_action('wp_head', 'b2k_rel_next_prev');

Отключение страниц автора

Яндекс.Робот гораздо глупее робота от Гугла, поэтому в первую очередь он умудрился найти страницы вида https://адрес.сайта/что-то-там/evgenii.zhirnov/. Чтобы этого больше не происходило, страницы такого типа отключаются вот этим кодом.

Исходный код

function b2k_disable_author_page() {
    if (is_author() && !is_404()) {
        global $wp_query;
        $wp_query->set_404();
        status_header(404);
        nocache_headers();
    }
}
add_action('template_redirect', 'b2k_disable_author_page');

Открывать все ссылки в новом окне

Не знаю, как вы, а я привык, чтобы все ссылки открывались в новом окне, поэтому обычно открываю их кликом средней кнопки мыши. Данный скрипт добавляет атрибут target="_blank" всем ссылкам на сайте.

Исходный код

function b2k_target_blank($content) {
    $content = preg_replace_callback(
        '/<a[^>]*href=["|\']([^"|\']*)["|\'][^>]*>([^<]*)<\/a>/i',
 
        function($m) {
            $url = $m[1];
            $desc = $m[2];
            return '<a href="'.$url.'" target="_blank" rel="noopener">'.$desc.'</a>';
        },
        $content);
 
    return $content;
}
add_filter('the_content', 'b2k_target_blank');

Полезные ссылки

CY-PR.com

Проверяет сайт целиком на предмет индексации разными поисковиками. После регистрации позволяет обновлять информацию каждые 24 часа.

Ссылка: CY-PR.com.

Reflex grid

С помощью reflex.css сделана тема на моём сайте, так что упомяну из благодарности. Это всего лишь файл стиля, который разбивает сайт на 12 виртуальных колонок. К примеру, центральная часть моей темы занимает 9 колонок на широком экране, правая часть — 3 колонки. При низком разрешении экрана, обе части занимают 12 колонок, на всю ширину экрана.

Ссылка на документацию: Reflex grid.

Постскриптум

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

За семь лет ковыряния своего блога немного стал разбираться в PHP, HTML, CSS и JavaScript. На самом деле, это несложно — попробуйте и всё у вас получится.

Пару слов про моделизм на три страницы

Последний раз писал про моделизм, когда загрунтовал два танка из балончика серой грунтовкой Tamiya и успокоился — кисточек нет, красок нет руки из жопы. Отложил всё в сторонку и забыл.

Модель Т-34 после грунтовки

Потом в больнице собрал колёсный танк БТ от безделья:

Модель колесного танка БТ-7 в масштабе 1:35

Затем в санатории склеил ракетную установку Тополь-М:

Модель Тополь-М в масштабе 1:35

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

Долго ли, коротко ли, а красить надо начинать. У родни позаимствовал кисточек и маленьких баночек с красками от наборов «роспись картин по номерам». Затем взял твёрдой рукой танк Т-34 и всё испортил и намалевал на нём что-то несуразное.

Модель Т-34 (корпус) в масштабе 1:35

Будь художником, сказал бы: «Я так вижу» и «Художника обидеть может каждый», поставил бы этот «шедевр» на полку и забыл. Но я не художник и меня хрен обидишь. Поэтому пошёл на поклон к нашим дизайнерам-художникам и упав на колени ненавязчиво поинтересовался — как вообще красить это дело, может секрет какой есть? Для примера, они красят вот так:

Модель космодесантника

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

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

Модель Тигра и Т-34 в масштабе 1:35

Извините за качество съёмки, руки дрожали от волнения и стакана вина.

В видео-уроках встречал такую тему, как легенда для модели. Например, танк подорвался на мине, поэтому два катка у него заменены с обрезиненных на полностью металлические и покраска соответствующая легенде. У моего танка тоже есть легенда: два пьяных маляра ночью покрасили танк и их за это расстреляли, а потом отправили в ГУЛАГ. Суровые времена были, что поделать.

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

Получилось вот так:

Модель Т-34 в масштабе 1:35

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

Следующий этап — высветление и затенение масляными красками, смешанных с уайт-спиритом. Если окна не открывать в этот момент, то бесплатно мультики покажут.

Какие выводы по покраске кистью сделал:

  • кисточка должна быть достаточно большая, с мягким ворсом
  • краску разводить водкой и добавлять лак
  • красить в несколько слоёв
  • на резиновых гусеницах держится только грунтовка
  • автор — рукожоп
  • необходим аэрограф для закрашивания больших площадей

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

Дела админские на сервере

От безделья решил обновить операционную систему на сервере. Сайт находится на VDS, поэтому обновить операционку можно только удалив всё нахрен и поставить чистую систему.

Раньше стояла FreeBSD 9.3. Всем прекрасна, консольна и стабильна, но поддержка закончилась пару лет назад и все приложения были старенькие совсем. Обновить их нельзя, потому что система портов больше не поддерживает старые версии FreeBSD — компилятор поменяли с GCC на модный Clang.

Теперь стоит FreeBSD 10.3. Стало совсем круто: все приложения свежие, новенькие с патчами безопасности и всё такое.

На сервере приложений всего ничего, вот список:

  • nginx (веб-сервер)
  • php (язык программирования)
  • mysql (база данных)
  • bind (ДНС)

Почта ходит через гугл.

Вот эти четыре приложения и обеспечивают работу сайта. Круто, да? )

Заодно проверил систему резервного копирования. Состоит из трёх частей:

  • сохранение базы данных с помощью mysqldump
  • архивирование папок /etc, /usr/local/etc, /var/db/pkg
  • архивирование папки с wordpress

Работает архивирование и восстановление прекрасно, как и планировалось.

«Занимаюсь всякой хернёй»

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

Привезите нам ещё этой херни!

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

Перво-наперво, купил модель фирмы ZVEZDA немецкого танка Tiger в масштабе 1:72 для сборки без клея. Собрал основную часть и тут сломалась гусеница. «Так вам фашистам и надо!», — подумал я и пошёл смотреть ролики в интернете на тему «Как собрать модель для сборки без клея без использования клея кривыми руками растущими из задницы». Оказывается, дело это непростое, требует специальных инструментов и, разумеется, специальный забористый клей.

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

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

Отдельно хочу рассказать про пилку для ногтей. Поскольку увидел эту вещь впервые в новом состоянии из упаковки. В косметическом магазине как-то постеснялся говорить, что покупаю у них пилку для танка, поэтому просто спросил жеманно оттопырив мизинчик: «Какую посоветуете?». Мне немедленно выдали хорошую пилку с двумя сторонами. Внимательно приглядевшись к пилке с целью распознать хорошая она или нет (ПОНЯТИЯ НЕ ИМЕЮ) заметил циферки, которые вроде должны обозначать размер зерна Сваровски в микрометрах (мкм), как у наждачной бумаги. Немного подумав, взял пилку с четырьмя типами жёсткости. От 300 до 2000. Добравшись до компьютера, решил проверить свою догадку. Догадка оказалась неверна. Цифры эти в так называемых «гритах», которые обозначают количество абразивных частиц Сваровски на один квадратный сантиметр. Короче, у баб в мире моды всё не как у людей. Уже есть три маркировки зернистости (ГОСТ, ISO, размер зерна), но надо придумать ещё одну.

Итак, деталь кусачками особыми отделили от литника, ножом модельным лишнее отрезали, надфилем прошлись разок, чтобы совсем красиво было. Берём деталь толстыми пальцами рук, прикладываем по месту и она такая херак и улетела в неизвестном направлении. Чтобы такого не происходило, нужно купить пинцет. В сильных кривых руках незаменимая вещь. Прикладывать деталь по месту крепления станет гораздо проще. Меньше мата, истерик и слёз, короче говоря.

Итого общий набор получается такой: особые кусачки, модельный нож, пинцет, набор надфилей или пилка для ногтей. Плюс клей специальный для пластика.

Набор моделиста: пинцет, нож, кусачки и клей

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

После закупки всего необходимого, собрал две модели танков фирмы ZVEZDA: Tiger и Т-34 в масштабе 1:72. Собрал с клеем для прочности. Теоретически есть возможность собрать эти модели без клея, но я этой возможностью не воспользовался.

Модель Т-34, масштаб 1:72, фирма ZVEZDA

Модель Tiger, масштаб 1:72, фирма ZVEZDA

Следующим шагом собрал танк Т-72 с активной бронёй в масштабе 1:35. Честно говоря, он мне не особо понравился по внешнему виду, но надо с чего-то начинать. Поэтому в качестве первой модели такого масштаба выбрал вот такой танк. С первого раза было сказано много мата, безвозвратно потрачен моток нервов. Особенно «удалась» сборка гусениц. Собирал их дней пять, а может и дольше. Тренировка усидчивости и борьба с импульсивностью. Так-то считаю оптимальным способом медитации — ломать кувалдой кирпичные стены. А тут две маленькие детальки не хотят друг к другу клеиться. Слегка бесит, короче.

Модель Т-72 с активной бронёй, масштаб 1:35, фирма ZVEZDA

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

Для этих целей частично собрал два танка: Tiger и Т-34 в масштабе 1:35. Потом загрунтовал, сделал прешейдинг, нанёс базовый слой краски, покрасил отдельные детали, сделал потёки ржавчины и покрыл матовым лаком. Получилось вполне симпатично, не правда ли?


Модель Т-34. Работа настоящего мастера

Ага, щаз-з-з! Нет конечно же. Сначала собрал, потом в интернет пошёл — ролики смотреть да уму-разуму набираться. Узнавать что-то новое так интересно, ребята! На самом деле, чувствуешь себя криворуким рукожопом и с каждым роликом всё сильнее и сильнее. Посмотрев, как умные люди делают, поспрошав коллег-художников на работе, метнулся кабанчиком в магазин моделей и купил грунтовку серого цвета в баллончике. Грунтовка наносится перед покраской для того, чтобы краска крепче держалась. Бывает разных цветов: чёрная, белая, серая, иногда даже зелёная. Взял серый цвет, потому что в обучающих роликах правильные пацаны используют именно этот цвет для танков и прочей военной техники.

В далёком 2010-м году отсутствие грунтовки стало причиной того, что танк был заброшен после частичной покраски колёсиков в чёрный цвет. Чёрная краска растекалась, пачкала всё и всех вокруг и это жутко бесило. Кое-как, с грехом напополам, тот танк был собран, частично покрашен, а потом заброшен в дальний угол, где благополучно сгнил со временем. Вот фотографии семилетней давности:

Модель танка от рукожопа

В этот раз грунтовка легла на удивление хорошо и ровно. Любо-дорого смотреть. Модели получились ровного серого цвета как и планировалось. Вот что значит ролики обучающие смотреть. Чудо какое-то.

Модель Т-34 после грунтовки

Модель Tiger после грунтовки

Следующий шаг в моей карьере моделиста — это нанесение прешейдинга и базового слоя. Эту процедуру можно проделать кисточкой, а можно аэрографом. Аэрограф цены немалой, вдобавок к нему необходимо купить компрессор (желательно с ресивером). Стоит такой набор художника-аэрографиста в районе семи-восьми тысяч рублей. Что поделать, буду откладывать денежку с завтраков и реже кушать. Так-то конечно его можно и завтра купить, но так будет неинтересно.

А ещё я собрал БТР-70. Красить его не собираюсь в ближайшем будущем, поэтому склеил его в монолитный кусок пластмассы. Модель в масштабе 1:35, фирма ZVEZDA, пластик отвратительного качества. Ни одна тоненькая перемычка нормально не отделилась от литника. Сначала хотел собрать для последующей окраски, но увидев, что получается в итоге — плюнул на это дело. Отдельно хотел бы отметить стеклышки из прозрачного пластика, которые по планам полностью закрыты бронёй. Зачем так делать — вопрос риторический.

Модель БТР-70, масштаб 1:35, фирма ZVEZDA

Сразу же вслед за БТР-70, пока инструменты не остыли, начал собирать вертолёт МИ-24. И это, дорогие читатели, какой-то взрыв мозга. Очень много мелких деталей. Двигатель вертолёта, если не ошибаюсь, состоит из девяти частей, а каждая турбина состоит из семи частей. При этом всё вместе помещается на спичечном коробке. Вообще, летающая техника типа вертолётов и самолётов требует больших навыков, чем танки и прочие ползающие по земле бронированные аппараты. Потому что красить их надо в процессе сборки. Прошло немало времени прежде, чем до меня дошло, что кресло в инструкции такое разноцветное не потому, что состоит из нескольких деталей, а потому что в схеме сборки сразу же указаны цвета для покраски. Пилотов в вертолёт клеить не стал, потому что людей не очень люблю в моём варианте сборки вертолёт будет стоять на земле и они там ни к чему.

Частично собранный вертолёт, масштаб 1:75, фирма ZVEZDA

На многих форумах момент сборки модели опущен. Товарищи-моделисты сразу пишут про стадию окраски. Из-за этого создается впечатление, что сборка модели из мешка пластиковых деталей — плёвое дело. Не надо так!

Мне тут уже поведали доброжелатели, что клеить танки, цитирую: «Заниматься хернёй». Так что, если надоест заниматься хернёй, то всегда можно выбрать алкоголизм. Порог вхождения в хобби под названием «алкоголизм» гораздо ниже, чем в моделирования. Знакомства с новыми людьми, путешествия в доселе неизвестные города и страны. А проснуться рядом с незнакомой особью женского пола чёрт знает где — вообще впечатлений масса. Особенно, если у неё трое детей, различает она их по отчеству, а муж — только с зоны откинулся и стоит рядом с кроватью в момент пробуждения. Адреналин во все места!

На всякий случай оставлю пока алкоголизм в качестве плана «Б».

P.S. Кстати, на коробках фирмы ZVEZDA на главной картинке стоит подпись «А. Жирнов». Так же пишутся инициалы моего отца. Вот и не верь после этого в совпадения и приметы.

Меняем формат вывода плагина WP-PostRatings

Плагин WP-PostRatings использует функцию number_format_i18n() для вывода рейтинга в числовом виде, используя данные локали. В русском варианте цифры выглядят так: «Рейтинг статьи 4,80 из 5». Как программисту, мне неприятно было видеть запятую в виде разделителя и лишний ноль в конце. Хотя математически все соответствует русским стандартам.

Существует способ поменять формат вывода, но для этого придется править исходники плагина.

Процедура довольно простая: открываем файл wp-postratings/wp-postratings.php в редакторе плагинов. Находим такие строчки:

$value = str_replace("%RATINGS_MAX%", number_format_i18n($ratings_max), $value);
$value = str_replace("%RATINGS_AVERAGE%", number_format_i18n($post_ratings_average), $value);

И меняем функцию number_format_i18n() на number_format():

$value = str_replace("%RATINGS_MAX%", number_format($ratings_max, 1, '.', ''), $value);
$value = str_replace("%RATINGS_AVERAGE%", number_format($post_ratings_average, 1, '.', ''), $value);

После этой процедуры рейтинг будет выводится так: «Рейтинг статьи 4.8 из 5.0». Число в скобках означает количество цифр после запятой.

Блог Евгения Жирнова