Как съездить в Финляндию бесплатно туда и обратно?

На халяву и уксус сладкий, и хлорка - творожок

Отвечаю сразу и всем: совсем бесплатно — никак. Только если супруг состоятельный. Но за 500 ₽ или за 50 € вполне возможно.

image

Туристическая компания СканТур и супермаркет LIDL в Финляндии, что в Лаапаенранте, предлагает бесплатные автобусные туры заграницу из Петербурга прямо в иностранный магазин. Условие такое: или покупаешь на сумму не менее 50 евро или платишь за поездку 500 рублей. Но чеки никто не проверяют — настоящему джентельмену верят на слово. Автобус вполне комфортный, туристического вида.

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

В Финляндию всегда ездил на машине. У машины есть свои недостатки. Например, трезвый водитель (а это как раз таки я) и очереди на таможне. С другой стороны, в машине ни от кого не зависишь. Не нравится пассажир — высадил его на хрен или прямо в России, или в Финляндии. Пусть делает что хочет. Ещё один плюс машины — можно взять с собой электрический чайник и напиваться чаем и кофе, ещё можно лапши заварить или картошки растворимой. В автобусе горячий кипяток отсутствует, зато можно поспать, чего водитель в машине лишён.

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

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

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

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

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

Добавляем Social Likes Next на сайт с WordPress

В прошлой заметке я рассказывал как добавить Social Likes на сайт с WordPress, с тех пор прошло много времени и появилась новая версия Social Likes под названием Social Likes Next. Отличается от предыдущей тем, что иконки теперь в SVG формате и для работы не требуется загрузка jQuery.

Шаг первый (скачиваем скрипт и файл стилей)

Скачиваем social-likes.min.js, например отсюда или отсюда в папку js вашей темы.

Скачиваем social-likes_flag.css, например отсюда или отсюда в папку css вашей темы.

Шаг второй (подключаем файл стилей и скрипт)

В файле functions.php вашей темы вставляем следующие строки

function b2k_enqueue_js_and_css() {
    wp_register_script(
        'social-likes',
        get_stylesheet_directory_uri() . 'js/social-likes.min.js',
        array(),
        false,
        true);
 
    wp_enqueue_script('social-likes');
 
    wp_register_style(
        'social-likes',
        get_stylesheet_directory_uri() . 'css/social-likes_flat.css');
 
    wp_enqueue_style('social-likes');
}
 
add_action('wp_enqueue_scripts', 'b2k_enqueue_js_and_css');

Шаг третий (добавляем кнопки в конце каждого поста)

Вставляем данный скрипт в functions.php

function b2k_social_likes($content='') {
    global $post;
 
    $buttons = array();
    $buttons['vk'] = '<div data-service="vkontakte" title="Поделиться ВКонтакте"></div>';
    $buttons['fb'] = '<div data-service="facebook" title="Поделиться в Facebook"></div>';
    $buttons['twitter'] = '<div data-service="twitter" title="Поделиться в Twitter"></div>';
    $buttons['plusone'] = '<div data-service="plusone" title="Поделиться в Google+"></div>';
    $buttons['ok'] = '<div data-service="odnoklassniki" title="Поделиться в Одноклассниках"></div>';
    $buttons['telegram'] = '<div data-service="telegram" title="Поделиться в Telegram"></div>';
    $buttons['linkedin'] = '<div data-service="linkedin" title="Поделиться в LinkeIn"></div>';
    $buttons = implode('', $buttons);
 
    $tags = array();
    $tags['class'] = 'class="social-likes"';
    $tags['data-title'] = 'data-title="' . $post->post_title . '"';
    $tags['data-url'] = 'data-url="' . get_permalink($post->ID) . '"';
    $tags = implode(' ', $tags);
 
    $main = '<div ' . $tags . '>';
    $main .= $buttons;
    $main .= '</div>';
 
    $content .= $main;
 
    return $content;
}
add_filter('the_content', 'b2k_social_likes');

Шаг четвертый (просим читателей поделиться заметкой)

Если вам интересна данная заметка, жмите любую кнопку снизу страницы, ставьте лайк, меня зовут Евгений, пока!

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">'.$desc.'</a>';
        },
        $content);
 
    return $content;
}
add_filter('the_content', 'b2k_target_blank');

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

GTmetrix

Проверка скорости загрузки страницы. Выдаёт кучу полезной информации и подсказок для оптимизации.

Смотрите сами: GTmetrix.

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

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

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

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

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

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

Ремонт комнаты длиною в год

В начале прошлого года решил срочно отремонтировать комнату, потому что за последние семнадцать лет она изрядно поистрепалась как и я сам. Сказано — сделано. Спустя год ремонт завершен и можно подвести итоги. Вложено куча денег (на самом деле — нет) и нервов (на самом деле — да). Но обо всём по порядку.

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

Фотография комнаты

Энергетика была плохая, если вы понимаете о чём я. Я, к примеру, не понимаю — что такое энергетика, феншуй и прочая требуха. А вы?

Было принято волевое решение разделить визуально комнату на две части: сени и гостиная. В сенях валенки снять, тулуп и коня привязывать. В гостиной принимать коньяк гостей и пыриться в телик.

Комната в виде фигурки из тетриса

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

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

Фанера и черновой пол

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

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

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

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

Схема выключателя с двумя клавишами

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

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

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

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

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

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

Сутки морально готовился клеить их самостоятельно, поскольку такой работой мне категорически заниматься нельзя, но просить о помощи очень не люблю. Это, кстати, чуть не стало причиной моего обморока на Финляндском вокзале, где я простоял почти два часа. Как-то неловко было светить корсетом и упрашивать, чтобы мне освободили стульчик, поэтому стоял на чистом энтузиазме, цепляясь слабеющими ручками за стену. Улыбаемся и машем, улыбаемся и машем! )

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

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

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

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

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

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

P.S. Фотографии позже добавлю когда нарисую.