{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Блог Web-разработчика",
    "_rss_description": "Блог Web-разработчика",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/webbuild.ru\/blog\/",
    "feed_url": "https:\/\/webbuild.ru\/blog\/json\/",
    "icon": "https:\/\/webbuild.ru\/blog\/pictures\/userpic\/userpic@2x.jpg?1767976638",
    "authors": [
        {
            "name": "Автор блога",
            "url": "https:\/\/webbuild.ru\/blog\/",
            "avatar": "https:\/\/webbuild.ru\/blog\/pictures\/userpic\/userpic@2x.jpg?1767976638"
        }
    ],
    "items": [
        {
            "id": "45",
            "url": "https:\/\/webbuild.ru\/blog\/all\/logotip-dlya-sayta-chongov\/",
            "title": "Логотип для сайта чонгов",
            "content_html": "<p>Немного расскажу о новом логотипе для сайта chong.ru. Это сайт мастерской, которая делает манекены для тренировки кунг-фу. На кантонском они называются чонгом, откуда и пошло название сайта.<\/p>\n<p>На старом лого был изображён один из таких манекенов. Он классической конструкции с двумя опорами и бревном на рессорах. Его преимущество в хорошей устойчивости. А ещё в том, что во время удара бревно «играет»: сначала поддаётся, а затем даёт ответ. Эта особенность тренирует правильную технику.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/chong-logo-gray.png\" width=\"512\" height=\"512\" alt=\"\" \/>\n<\/div>\n<p>Во время обновления сайта я решил поработать и с логотипом. Прежде всего не нравился его цвет. Старый сайт был минималистичным. Поэтому лого окрашен в серый цвет. Похоже на бетон, правда? Бить такой чонг руками вовсе не хочется.<\/p>\n<p>Первым делом я перевёл старый растровый рисунок в вектор. Так его можно масштабировать в любой размер. А затем покрасил в приятный золотистый цвет и даже нарисовал текстуру деревянных волокон. Стало гораздо лучше. Но всё равно казалось, что для логотипа эта конструкция не годится.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/chong-logo-color.png\" width=\"512\" height=\"512\" alt=\"\" \/>\n<\/div>\n<p>Широкой аудитории по фильмам и фотографиям больше знакома упрощённая конструкция без опор и рессор. Если вы никогда не видели классический чонг, то будет сложно с первого взгляда опознать его. Особенно, если представить логотип в небольшом размере. А хотелось бы, чтобы он был узнаваемым.<\/p>\n<p>Я пошел на эксперимент и убрал опоры. Такая модель манекена тоже существует. Здесь бревно устанавливается на деревянной платформе через стальной стакан. Оно лишено преимущества рессор, зато гораздо компактнее и подходит для небольших помещений.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/chong-logo-circle-1.png\" width=\"512\" height=\"512\" alt=\"\" \/>\n<\/div>\n<p>В таком виде логотип стал проще. А главное — без рессор бревно можно изобразить крупнее. Будет проще разглядеть руки и ногу. Именно они делают обычное бревно манекеном для кунг-фу. Теперь всем, кто хоть раз видел такую штуку в кино, сразу понятно: это — чонг.<\/p>\n<p>Чтобы придать логотипу объём и форму я поместил его в круг. А чтобы сделать его интереснее — обрамил узором в виде волны. В китайской символике волна олицетворяет движение, источник жизни и процветание.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/chong-logo-1.png\" width=\"512\" height=\"512\" alt=\"\" \/>\n<\/div>\n<p>По итогу новый логотип нравится мне гораздо больше. Он выглядит одновременно лаконичнее и привлекательнее. Стал более узнаваемым. А ещё его удобнее масштабировать и использовать не только на сайте, но и, например, в печатной продукции.<\/p>\n",
            "date_published": "2026-10-06T22:25:00+03:00",
            "date_modified": "2026-10-06T22:25:40+03:00",
            "tags": [
                "Логотип",
                "Чонг"
            ],
            "image": "https:\/\/webbuild.ru\/blog\/pictures\/chong-logo-gray.png",
            "_date_published_rfc2822": "Tue, 06 Oct 2026 22:25:00 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "45",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/webbuild.ru\/blog\/pictures\/chong-logo-gray.png",
                    "https:\/\/webbuild.ru\/blog\/pictures\/chong-logo-color.png",
                    "https:\/\/webbuild.ru\/blog\/pictures\/chong-logo-circle-1.png",
                    "https:\/\/webbuild.ru\/blog\/pictures\/chong-logo-1.png"
                ]
            }
        },
        {
            "id": "44",
            "url": "https:\/\/webbuild.ru\/blog\/all\/kursy-web-dizayna\/",
            "title": "Как я учился на курсах web дизайна",
            "content_html": "<p>Я собирался добавить на Behance кейс о моей работе над сайтом Chong.ru. Уже подготовил все слайды и оставалось только залить их. Но так и не сделал этого. Я задумался: а точно ли сайт так хорош, как я о нём думаю? Может, мой взгляд после долгой работы замылился? Каковы объективные критерии для оценки дизайна. А ведь есть ещё UI. Насколько удобно пользоваться моим сайтом?<\/p>\n<p>Чем дольше я думал об этом, тем больше сомнений появлялось. Действительно, я ведь нигде специально не учился дизайну. Всё, что я умею — основано на собственном опыте многолетней работы, на прочитанных книгах, статьях из Интернета и на сотнях просмотренных обучающих роликов. Мной овладел синдром самозванца.<\/p>\n<p>Справиться с ним можно только одним способом — пойти на курсы и получить недостающие знания. Проверить боем: существует ли ещё что-то, чего я не знаю о web дизайне? В любом случае это будет полезно, потому что даже самый классный профессионал не может знать абсолютно всё. Я загорелся идеей с курсами и мне не терпелось начать обучение и заново пройтись по искусству дизайна. Не торопясь, шаг за шагом. Классическим академическим методом.<\/p>\n<p>Я не буду здесь называть курс, который я выбрал. Если кому-то интересно, напишите мне в Телеграме, и я отвечу лично. Скажу только, что подобрать хороший курс — это задача посложнее, чем пройти его. Перед покупкой нужно тщательно изучить программу, оценить количество часов по разным темам и объем практической работы. Тот курс, который я прошел, мне по итогу не понравился. Хотя на главный мой вопрос о самозванце ответил.<\/p>\n<p>Итак, я записался на курс web дизайна и пропал на полгода. Ровно столько он длился. Это можно проследить по перерыву в моих постах. Совмещать обучение с работой оказалось довольно сложно. Особенно когда дело дошло до финала, где нужно было создать макет полноценного многостраничного сайта. Пройдя при этом по всем этапам: мудборд, прототип, несколько концепций, сетка, компоненты, дизайн-система и пр.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/20260929_171524.jpg\" width=\"1200\" height=\"900\" alt=\"\" \/>\n<\/div>\n<p>В этом месте творчество внезапно превращается в рутину. И даже небольшой сайт — это очень много рутины. Если совмещать с основной работой, то почти нет времени на отдых на восстановление. В 20 лет можно было запросто всю ночь рисовать, а с утра пойти на работу. Грустно, но теперь так уже не получается.<\/p>\n<p>Большая нагрузка — это неприятно, но терпимо. Главный минус курса для меня оказался в том, что было очень много Фигмы. Ну просто о-о-очень много Фигмы. А её я и так знаю. Я знал, что она там будет, но не ожидал, что в таком количестве.<\/p>\n<p>Мне хотелось больше знаний не по инструментарию, а по самому дизайну. По цвету, форме, композиции, акцентам. Это все тоже было, но до обидного мало. Буквально несколько видеоуроков по 7 — 10 минут. Сложилось впечатление, что эти уроки создали просто чтобы упомянуть эти темы в программе курса. Впрочем, теперь я думаю, что за ними лучше идти на курсы по рисованию, а не веб дизайна.<\/p>\n<p>А вот понравилась больше всего практическая работа с куратором. По моему мнению, куратор спас курс. Она классно объясняла и показывала именно приёмы дизайна. Продемонстрировала завидный опыт и насмотренность.<\/p>\n<p>Всегда хочется сделать просто и красиво. А получается вместо этого простовато и аляповато. Иногда уже не знаешь, как исправить. Хочется бросить и начать заново. Приходит куратор, смотрит одним взглядом и даёт несколько простых советов. И работа сразу получается!<\/p>\n<p>Для меня это было самое классное впечатление на курсе. Хотелось бы перенять этот опыт. Я жалею, что задавал мало вопросов. Здесь сыграла моя интроверсия.<\/p>\n<p>По итогу, что мне дал этот курс? Он подтвердил, что базу я знаю отлично и учить её заново нет смысла. Не существует никаких секретных приемов, знаний или кнопки «Сделать красиво», о которых молчат авторы бесплатных роликов. В какой-то момент магия дизайнера сводится к тому, что он уже много раз видел похожую проблему и быстрее понимает, где именно что-то не работает.<\/p>\n<p>Нет, меня нельзя назвать самозванцем. А вот чего мне действительно не хватает — это импровизации и экспериментов. Как сказал сам автор курса, увидев мою выпускную работу, я много осторожничаю. Местами всё очень ровное по цвету, масштабу и плотности. Поэтому следующим шагом можно учиться сильнее управлять акцентами и позволять себе чуть больше визуальной смелости.<\/p>\n<p>Что же, я согласен с этим выводом. Для меня это главный итог обучения на курсе. Кажется, будто это вовсе не много. Но для меня это ценно — получить свежую оценку своей работы от другого специалиста. За этим я и шел. Я не жалею, что прошел этот курс. В любом случае было интересно поработать с коллегами по цеху и сверить с ними свои знания, опыт и насмотренность.<\/p>\n<p>Перефразируя своими словами: Илья, ты норм! Будь смелее, и всё получится )<\/p>\n",
            "date_published": "2026-09-28T19:30:41+03:00",
            "date_modified": "2026-09-29T18:02:25+03:00",
            "tags": [
                "web-дизайн"
            ],
            "image": "https:\/\/webbuild.ru\/blog\/pictures\/20260929_171524.jpg",
            "_date_published_rfc2822": "Mon, 28 Sep 2026 19:30:41 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "44",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/webbuild.ru\/blog\/pictures\/20260929_171524.jpg"
                ]
            }
        },
        {
            "id": "43",
            "url": "https:\/\/webbuild.ru\/blog\/all\/redizayn-sayta-chong-su-2\/",
            "title": "Редизайн сайта chong.su",
            "content_html": "<p>Я завершил редизайн сайта Chong.su. Напомню, это сайт небольшой мастерской, которая изготавливает тренажеры для традиционных китайских единоборств. Я создал новую тему WordPress, которая уже опубликована и работает на сайте. Теперь обновленная версия радует посетителей и владельца мастерской.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/chongsu.jpg\" width=\"1200\" height=\"800\" alt=\"\" \/>\n<\/div>\n<p>Работа была проделана большая, изменений очень много. Отмечу основные.<\/p>\n<p><b>1. Адаптивность и обновленный визуальный стиль<\/b><\/p>\n<p>Сайт стал адаптивным и теперь корректно отображается на мобильных устройствах. Интерфейс стал легче и современнее. Темная цветовая схема сохранена, но визуальный стиль изменился. Черный и золотистый цвета отсылают к традициям и ремесленному характеру мастерской. В оформлении я постарался добавить китайские через орнаменты в разделителях и в элемениах логотипа.<\/p>\n<p><b>2. Новый логотип<\/b><\/p>\n<p>Я разработал новый логотип. Он стал проще и лаконичнее. Круглая форма удобна для использования не только на сайте, но и в печатных материалах: визитках, упаковке и т. д.<\/p>\n<p><b>3. Переработка текстов<\/b><\/p>\n<p>Тексты были адаптированы для веб-формата. В предыдущей версии страница о мастерской представляла собой большой текст, который рассказывал о мастере, его пути в единоборствах, опыте изготовления тренажеров, моделях и особенностях работы.<\/p>\n<p>Текст был интересный, но слишком длинный. В новой версии он разбит на несколько отдельных страниц. Это уменьшает информационную нагрузку и делает чтение более удобным.<\/p>\n<p><b>4. Новый фотоальбом<\/b><\/p>\n<p>Я переработал оформление фотоальбома. Это важная часть сайта — фактически блог, который показывает ежедневную работу мастерской и помогает подчеркнуть экспертность.<\/p>\n<p>В новой версии фотографии и подписи на превью стали крупнее. Появилась кнопка «Далее», которая подгружает следующую порцию фотографий.<\/p>\n<p><b>5. Переход на WordPress<\/b><\/p>\n<p>Сайт переехал со старой самописной системы управления на WordPress — одну из самых популярных CMS. Теперь его значительно проще поддерживать и обновлять.<\/p>\n<p>Например, владелец может самостоятельно изменить контактные данные или отредактировать некоторые страницы без привлечения программиста.<\/p>\n<p><b>6. Иллюстрации и дополнительные элементы<\/b><\/p>\n<p>Я подготовил новый набор иконок, иллюстрацию для страницы 404 и карту с географией работ мастерской. В будущем хотелось бы сделать эту карту интерактивной — это задача со звездочкой на следующий этап развития сайта.<\/p>\n<p><b>Что дальше<\/b><\/p>\n<p>Сейчас я готовлю кейс об этом проекте для Behance — хочу освоить и эту площадку. И уже в процессе подготовки замечаю некоторые вещи, которые можно сделать лучше.<\/p>\n<p>Поэтому сейчас во мне немного борются перфекционист и прагматик. Скорее всего, сайт я еще буду дорабатывать. А вот стоит ли торопиться с публикацией кейса — пока вопрос.<\/p>\n",
            "date_published": "2026-03-10T20:17:29+03:00",
            "date_modified": "2026-03-10T20:34:18+03:00",
            "tags": [
                "chong.su",
                "web-дизайн",
                "wordpress"
            ],
            "image": "https:\/\/webbuild.ru\/blog\/pictures\/chongsu.jpg",
            "_date_published_rfc2822": "Tue, 10 Mar 2026 20:17:29 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "43",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/webbuild.ru\/blog\/pictures\/chongsu.jpg"
                ]
            }
        },
        {
            "id": "42",
            "url": "https:\/\/webbuild.ru\/blog\/all\/adresnye-podskazki-v-prilozhenii-taksi-42\/",
            "title": "Адресные подсказки в приложении Такси 42",
            "content_html": "<p>В мобильном приложении Такси 42 есть экран выбора адреса. В нём нужно набрать улицу и номер дома. При этом, вовсе не обязательно вводить все слова полностью. Можно пользоваться сокращениями. Например, вместо «ул. Ленина, д. 21» можно набрать «Лен 21». Приложение предложит варианты с подходящими адресами.<\/p>\n<p>В своё время наш бэкенд разработчик вложил много усилий в реализацию этого сервиса подбора адресов. Он действительно очень удобный. Поэтому мы используем его не только в приложении, но и на сайте.<\/p>\n<p>Только вот проблема: не все пользователи понимают, как пользоваться сокращенным вводом адреса. Мы выяснили это, наблюдая за их поведением через Webvisor. Фишка в том, что системе нужен номер дома чтобы подобрать варианты. Без него она будет предлагать только названия улиц. А пользователи не догадываются, что можно пользоваться сокращениями.<\/p>\n<p>А ведь бывают длинные и сложные названия улиц. Например, Большая Воробьёвская. Вот пользователи и вводят его целиком. Бывает, что по три раза опечатываются, стирают и начинают заново. Я серьёзно переживаю, наблюдая за этим. Приложение не должно оставлять у людей негативные эмоции. Хочется подсказать им о быстром способе ввода.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/taxi42-address-screen.png\" width=\"720\" height=\"600\" alt=\"\" \/>\n<\/div>\n<p>Так я и сделал. Пока пользователь не успел ничего набрать, перед ним нет никаких вариантов. Только поле ввода и пустой экран под ним. Полно места для подсказки. Я постарался сформулировать её как можно короче и понятнее. Я продолжу наблюдения чтобы понять, удалось ли мне это.<\/p>\n<p>PS. В своё время у нас в городе на проспекте Ленина, 21 находилась легендарная дискотека Авария.<\/p>\n",
            "date_published": "2026-01-18T20:32:21+03:00",
            "date_modified": "2026-01-18T20:32:07+03:00",
            "tags": [
                "UX\/UI",
                "Такси 42"
            ],
            "image": "https:\/\/webbuild.ru\/blog\/pictures\/taxi42-address-screen.png",
            "_date_published_rfc2822": "Sun, 18 Jan 2026 20:32:21 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "42",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/webbuild.ru\/blog\/pictures\/taxi42-address-screen.png"
                ]
            }
        },
        {
            "id": "41",
            "url": "https:\/\/webbuild.ru\/blog\/all\/smena-hostinga-dlya-sayta\/",
            "title": "Смена хостинга для сайта",
            "content_html": "<p>Долгие годы я использовал для своего сайта хостинг Ru-Центра. А в этом году, когда пришла пора оплаты, неприятно удивился. Стоимость значительно выросла. Я давно не слежу за рынком виртуального хостинга — в этом просто не было необходимости. RU-Центр полностью меня устраивал по всем параметрам: скорость работы сайта, панель управления, служба поддержки и т. д. На динамику цен я тоже не обращал внимания, они тоже вполне устраивали. Раз в год оплачивал хостинг и забывал до следующего раза.<\/p>\n<p>Вплоть до сегодняшнего дня. Сегодня пришло уведомление об окончании срока хостинга. Сумма, которую нужно выложить за следующий год, впечатляет. Не то чтобы она была неподъёмной, ведь всё вокруг тоже растёт в цене. Однако моя внутренняя жаба выразила решительный протест.<\/p>\n<p>Поэтому я помониторил рынок и почитал отзывы. Посмотрел, какие хостинг-провайдеры сейчас считаются самыми надежными и популярными. Сравнил тарифы. У большинства по возможностям планы стоят заметно дешевле. Я долго раздумывал, но против жабы не попрёшь. Решил переезжать.<\/p>\n<p>Может быть, я зря это сделал, если рассуждать рационально. Абсолютная разница в рублях не так велика, чтобы заниматься переносом сайта, перенастраивать почту, привыкать к новой панели управления и т. д. И всё же, душевное спокойствие для меня дороже. Мне комфортнее, когда ня знаю, что не переплачиваю лишних денег.<\/p>\n<p>Кстати, перенос сайта прошел проще, чем я рассчитывал. Новый хостинг радует скоростью и удобством. Называть его я, конечно же, не буду, потому что за рекламу мне не платили. Кому интересно, всегда можно заглянуть в сервис WHOIS.<\/p>\n",
            "date_published": "2026-01-11T18:43:08+03:00",
            "date_modified": "2026-01-11T18:43:05+03:00",
            "tags": [
                "Хостинг"
            ],
            "_date_published_rfc2822": "Sun, 11 Jan 2026 18:43:08 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "41",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "40",
            "url": "https:\/\/webbuild.ru\/blog\/all\/rabota-s-dlinnoy-statyoy-dlya-sayta\/",
            "title": "Работа с длинной статьёй для сайта",
            "content_html": "<p>Работая на редизайном сайта для мастерской чонгов, я обратил внимание на страницу о мастере. Вернее, там не только о нём, а ещё о том, что такое чонг, какие они бывают, как отличить настоящий манекен от подделки, почему чонг столько стоит и др.<\/p>\n<p>Сам по себе текст очень сильный. В своё время я с интересом его прочитал. Чувствуется, что пишет знающий и опытный в своём деле человек. Вот только для сайта страница получается очень длинной. Здесь смешаны сразу несколько тем, и получается смысловой перегруз. В наше время клипового мышления пользователю сложно осилить такой объём.<\/p>\n<p>Поэтому я предложил разделить текст на несколько страниц. Тем более, что он легко бьётся на перечисленные мною темы. Как бы сам просит, чтобы его разделили. Для этого даже не нужны никакие правки.<\/p>\n<p>На каждой странице получилось несколько абзацев с фотографиями. Объём оптимальный. А чтобы сохранить связь между ними я сделал в конце каждой навигационный блок со ссылками на остальные темы. Через них пользователь видит логичное продолжение и может перейти на следующую интересующую его тему. А ещё, такой приём удачен для SEO, т. к. усиливает перелинковку и распределяет вес между страницами.<\/p>\n<p>Я подготовил вариант с разбивкой текста и теперь дело только за согласованием с мастером. Надеюсь, всё пройдёт хорошо. В таком случае приступим уже к разворачиванию сайта.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/chong-navblock.jpg\" width=\"992\" height=\"629\" alt=\"\" \/>\n<\/div>\n",
            "date_published": "2026-01-07T19:42:03+03:00",
            "date_modified": "2026-01-07T19:41:44+03:00",
            "tags": [
                "Длинный текст",
                "Навигация",
                "Сайт"
            ],
            "image": "https:\/\/webbuild.ru\/blog\/pictures\/chong-navblock.jpg",
            "_date_published_rfc2822": "Wed, 07 Jan 2026 19:42:03 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "40",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/webbuild.ru\/blog\/pictures\/chong-navblock.jpg"
                ]
            }
        },
        {
            "id": "39",
            "url": "https:\/\/webbuild.ru\/blog\/all\/redizayn-logotipa-dlya-chong-su\/",
            "title": "Редизайн логотипа для chong.su",
            "content_html": "<p>Я обновил логотип сайта chong.su. Напомню, что это мастерская манекенов для отработки техники кун-фу. Она принадлежит Дмитрию Затуло — моему учителю, у которого я долгое время практиковался. Замечательный мастер как в изготовлении чонгов, так и в технике единоборств.<\/p>\n<p>Исходный вариант представлял собой изображение манекена на поперечных рессорах. Тогда, в 2013 году, мне хотелось создать для сайта брутальную тёмную тему. Поэтому и логотип я выполнил тоже в сером цвете. Он хорошо подходил к стилистике сайта.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/chong-logo-gray.png\" width=\"512\" height=\"512\" alt=\"\" \/>\n<\/div>\n<p>Сейчас, спустя время, серый чонг мне уже не понравился. Кажется, будто он сделан не из дерева, а из бетона.  А хотелось бы как раз передать текстуру и цвет дерева, красиво окрашенного и покрытого лаком. Поэтому я поменял цвет на «деревянный» и даже наложил текстуру.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/chong-logo-color.png\" width=\"512\" height=\"512\" alt=\"\" \/>\n<\/div>\n<p>В таком виде логотип понравился мне гораздо больше. Теперь видно, что манекен деревянный. Он стал более теплым и приятным для глаза. А ещё передаёт ремесленный стиль мастерской, где все изделия — ручной работы. Меня не устраивало только обилие деталей. На крупном изображении они хорошо видны, а вот если уменьшить, то потеряются.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/chong-logo-circle-1.png\" width=\"512\" height=\"512\" alt=\"\" \/>\n<\/div>\n<p>Поэтому я попробовал модель без рессор. Просто бревно с руками и ногой. Для устойчивости его устанавливают на деревянную же платформу в специальный металлический стакан. Кстати, такую модель заказывают в мастерской гораздо чаще. Она компактнее, проще в изготовлении, и на неё уходит меньше материала. Словом, она дешевле. Хотя для практики кун фу рессоры, конечно, лучше. Они создают пружинный эффект.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/chong-logo-1.png\" width=\"512\" height=\"512\" alt=\"\" \/>\n<\/div>\n<p>Чтобы логотип был объёмнее, я поместил его на круглую подложку. Однако, он всё ещё показался простоватым. Тогда я обернул его орнаментом в виде волны. В китайской традиции волна олицетворяет непрерывность, власть, удачу и жизненную силу. В таком виде логотип выглядит законченным, компактным и узнаваемым.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/chong-404.png\" width=\"512\" height=\"300\" alt=\"\" \/>\n<\/div>\n<p>В завершение приведу ещё одну иллюстрацию. Она используется на сайте мастерской для страницы ошибки 404. Я нарисовал эти цифры тоже в виде стилизованных деревянных брёвен и брусков. С такой же окраской и текстурой, как на логотипе. Это подчёркивает целостность стиля и смотрится интересно и оригинально.<\/p>\n",
            "date_published": "2025-12-09T21:16:09+03:00",
            "date_modified": "2025-12-09T21:15:55+03:00",
            "tags": [
                "Логотип",
                "Чонг"
            ],
            "image": "https:\/\/webbuild.ru\/blog\/pictures\/chong-logo-gray.png",
            "_date_published_rfc2822": "Tue, 09 Dec 2025 21:16:09 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "39",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/webbuild.ru\/blog\/pictures\/chong-logo-gray.png",
                    "https:\/\/webbuild.ru\/blog\/pictures\/chong-logo-color.png",
                    "https:\/\/webbuild.ru\/blog\/pictures\/chong-logo-circle-1.png",
                    "https:\/\/webbuild.ru\/blog\/pictures\/chong-logo-1.png",
                    "https:\/\/webbuild.ru\/blog\/pictures\/chong-404.png"
                ]
            }
        },
        {
            "id": "38",
            "url": "https:\/\/webbuild.ru\/blog\/all\/dialog-doplaty-na-sayte-taksi\/",
            "title": "Диалог доплаты на сайте Такси",
            "content_html": "<p>Обновил диалог доплаты водителю на сайте Такси 42. В часы пик желающих уехать бывает гораздо больше, чем водителей на линии. В это время служба такси старается уравновесить спрос надбавками к стоимости. Однако, такси в наше время — это не роскошь, а социально значимый сервис. Поэтому в Такси 42 такие надбавки не бывают большими. Чтобы сделать заказ привлекательнее для водителя клиент может самостоятельно добавить денег.<\/p>\n<p>Часто клиентам бывает сложно выбрать размер доплаты. Это как с чаевыми в ресторане. Сколько отдать чтобы было не накладно для себя и приятно для официанта? Разница только в том, что в ресторане оплата идёт после ужина, а в такси стоимость поездки рассчитывается заранее.<\/p>\n<p>Чтобы помочь клиенту определиться в диалоге доплаты есть готовые варианты: 30, 50, 70 и 100 рублей. Можно выбрать сумму, которая не ударит по кошельку. А можно воспользоваться опцией «Своя сумма» и ввести свой размер доплаты. Обычно так поступают при оплате наличными чтобы добить до круглой суммы и не искать мелочь.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/overprice.jpg\" width=\"1230\" height=\"613\" alt=\"\" \/>\n<\/div>\n<p>Диалог доплаты перекочевал на сайт из мобильного приложения. Там варианты доплаты были сделаны обычными радиокнопками. А для сайта я оформил их тоже кнопками, но обычными. Только сделал их большими, яркими и даже снабдил их красивыми эмодзи. Они призваны подчеркнуть, что за любую сумму водитель и служба такси будут благодарны.<\/p>\n<p>Изменилась и работа диалога: выбор доплаты стал на клик короче. Раньше нужно было кликнуть опцию, а затем кнопку «Принять». Теперь доплата принимается сразу по клику на опции. Обычно, если речь идёт о деньгах, то лишнее подтверждение выбора не помешает. Поэтому первоначальный вариант с двумя кликами был неплох. Однако, в данном случае суммы небольшие, и я отдал приоритет скорости и удобству работы.<\/p>\n<p>По-моему новый диалог выглядит интереснее и лаконичнее. Сейчас на сайте временно работает вариант без эмодзи. Думаю, скоро мы их утвердим, и станет ещё лучше!<\/p>\n",
            "date_published": "2025-11-25T19:05:59+03:00",
            "date_modified": "2025-11-25T19:05:40+03:00",
            "tags": [
                "UX\/UI",
                "Такси 42"
            ],
            "image": "https:\/\/webbuild.ru\/blog\/pictures\/overprice.jpg",
            "_date_published_rfc2822": "Tue, 25 Nov 2025 19:05:59 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "38",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/webbuild.ru\/blog\/pictures\/overprice.jpg"
                ]
            }
        },
        {
            "id": "37",
            "url": "https:\/\/webbuild.ru\/blog\/all\/beta-versiya-prilozheniya-taksi-42\/",
            "title": "Бета-версия приложения Такси 42",
            "content_html": "<p>Мы строили-строили, и наконец построили! Выпустили бету приложения для заказа такси на React Native. Пока только для Android. В планах есть и iOS тоже.<\/p>\n<p>Примечательно, что пока разрабатывалось и тестировалось новое приложение, успел устареть Target SDK 33, который мы закладывали изначально. Теперь Google требует минимальный SDK 35. Пришлось обновляться до React Native 0.82, а также обновлять другие зависимости. Это порядком отняло сил и нервов. Зато, в конечном итоге, всё получилось.<\/p>\n<p>Из наиболее заметных фишек нового приложения могу отметить возможность создания нескольких заказов одновременно. Это бывает полезно, когда нужно развезти большую компанию людей, которая не поместится в одну машину. Например, со свадьбы, корпоратива, спектакля и т. д.<\/p>\n<p>Кроме того, теперь можно добавлять в маршрут промежуточные остановки. Например, если Вася выходит на улице Солнечной, а Петя едет дальше до улицы Вишнёвой, то это сразу можно отметить в заказе. Раньше об этом приходилось договариваться с водителем уже во время поездки. Тот уходил на таксометр, люди из-за этого переживали. Словом, было сложно, а стало просто.<\/p>\n<p>Ещё добавили в меню кнопку «Сообщить о проблеме». Бета версия пока только тестируется, поэтому очень важна обратная связь от клиентов. Особенно ценны будут просьбы, жалобы и предложения именно по работе самого приложения. Но и замечания по работе самого такси тоже будут полезны.<\/p>\n<p>И, конечно, сделано множество мелких изменений в UX\/UI. Надеюсь, они сделаю приложение проще и дружелюбнее к пользователю.<\/p>\n<p>Приложение доступно в Google Play и на Ru-Store. Пока оно в бете, мы копим статистику и смотрим на отзывы. Очень хотелось бы поскорее добраться до Release Candidate. В любом случае, день 11.11.2025 получился очень важным и волнительным для меня.<\/p>\n",
            "date_published": "2025-11-12T19:04:32+03:00",
            "date_modified": "2025-11-12T19:07:55+03:00",
            "tags": [
                "React Native",
                "Приложение такси",
                "Такси 42"
            ],
            "_date_published_rfc2822": "Wed, 12 Nov 2025 19:04:32 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "37",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "36",
            "url": "https:\/\/webbuild.ru\/blog\/all\/uvedomlenie-v-rkn\/",
            "title": "Уведомление в РКН",
            "content_html": "<p>В мае этого года РКН значительно увеличил штрафы за нарушения законодательства в сфере обработки персональных данных. После этого многие поспешили убрать со своих сайтов формы заказа, счётчики, гостевые книги и т. д. Я тоже убрал форму отправки сообщения и Яндекс.Метрику. Оставил только свои контакты, чтобы посетители всё же могли со мной связаться.<\/p>\n<p>Поработав месяц-два в таком режиме, я понял, что он мне не нравится. Во-первых, я всё же хочу получать статистику посещений — то есть вернуть счётчик Метрики. И хочу, чтобы посетители могли отправить мне сообщение прямо с сайта.<\/p>\n<p>А во-вторых, мне было интересно пройти этот «квест» с уведомлением в РКН. Хотелось самому посмотреть, как это работает и к чему приводит. Получить этот опыт, чтобы затем делиться им со своими заказчиками. Говорят, что отправка уведомления якобы может стать поводом для проверки со стороны РКН. Так ли это? Я думаю, что нет. Юрлиц по стране — тысячи, и вряд ли будут проверять каждого: это огромные затраты времени и ресурсов.<\/p>\n<p>Я понимаю, почему многие не хотят с этим связываться. Информация о подготовке сайта к новым правилам противоречивая. Доверия к РКН мало. Сам процесс составления уведомления вызывает много вопросов — слишком многое может пойти не так. А это значит риск получить штраф. Я готов к этому риску. Тем более что для меня, как для физлица, штраф минимальный. Десять тысяч рублей — неприятно, но не смертельно. Для юрлиц штрафы гораздо больше.<\/p>\n<p>Итак, в августе я составил уведомление и отправил его в РКН. Скажу честно: мне помогла жена — она уже проходила это по работе. Форма уведомления есть на сайте РКН. В ней, среди прочего, я указал, какие персональные данные собираю, как их обрабатываю и с какой целью. Я выбрал цель «Осуществление научной, литературной или иной творческой деятельности». Сайт некоммерческий, я ничего здесь не продаю. Только рассказываю о своём опыте веб-разработки через «литературную и творческую деятельность» в блоге.<\/p>\n<p>Если быть точным, я отправил уведомление 24 августа. А первого октября его рассмотрели и приняли. Никакого уведомления об этом мне не пришло — ни на почту, ни куда-либо ещё. Узнать о решении можно только периодически проверяя статус уведомления на сайте РКН.<\/p>\n<p>Сейчас 7 ноября. Пока никто не обращался ко мне с вопросами по поводу работы сайта, не говоря уже о штрафах. Надеюсь, так будет и дальше. А главное — я могу спокойно использовать форму обратной связи и счётчик статистики на сайте.<\/p>\n",
            "date_published": "2025-11-07T19:01:28+03:00",
            "date_modified": "2025-11-07T19:01:21+03:00",
            "tags": [
                "РКН",
                "Уведомление"
            ],
            "_date_published_rfc2822": "Fri, 07 Nov 2025 19:01:28 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "36",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "35",
            "url": "https:\/\/webbuild.ru\/blog\/all\/ubral-dubli-metategov-v-gostevoy\/",
            "title": "Убрал дубли метатегов в гостевой",
            "content_html": "<p>На сайте hotelsmini.ru есть гостевая книга с постраничным выводом. Переход между страницами сделан по старинке — через GET-параметр page. Например:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">\/guestbook?page=2<\/code><\/pre><p>Когда я зашёл в Яндекс.Вебмастер, то заметил проблему: у нескольких страниц одинаковые title и description. Это неудивительно, ведь метатеги у гостевой книги всегда одинаковые и не зависят от параметра page.<\/p>\n<p>Самое простое решение — добавлять к метатегам номер страницы:<\/p>\n<ul>\n<li>«Гостевая книга»<\/li>\n<li>«Гостевая книга — страница 2» и т. д.<\/li>\n<\/ul>\n<p>Это было бы хорошо для статичных страниц. На деле содержимое гостевой меняется по мере добавления новых записей. И если сегодня какая-то запись находится на первой странице, то завтра она может уползти на третью. Поэтому номера страниц никак не помогают ориентироваться. Добавлять их только для разнообразия мне не нравится.<\/p>\n<p>Всё же, для большой гостевой я так и поступил бы. А на hotelsmini.ru гостевая книга занимает всего четыре страницы. Контента немного, поэтому я решил пойти другим путём: сделал отдельную страницу \/guestbook\/all, где собраны все записи без деления на страницы. Она предназначена специально для индексации поисковиками.<\/p>\n<p>Для посетителей ничего не изменилось: они по-прежнему видят обычный постраничный вывод. Только внизу теперь появилась ссылка «Показать все записи» — чтобы Яндекс быстрее проиндексировал новую страницу.<\/p>\n<p><b>SEO-настройки:<\/b><\/p>\n<ul>\n<li>На странице \/guestbook\/all стоит canonical на саму себя.<\/li>\n<li>На страницах с пагинацией (?page=2, ?page=3 и т. д.) я добавил:<\/li>\n<\/ul>\n<pre class=\"e2-text-code\"><code class=\"\">&lt;meta name=&quot;robots&quot; content=&quot;noindex,follow&quot;&gt;\n&lt;link rel=&quot;canonical&quot; href=&quot;https:\/\/hotelsmini.ru\/guestbook\/all&quot; \/&gt;<\/code><\/pre><p>Яндекс проиндексировал страницу «Все записи» уже на следующий день. Теперь остаётся дождаться, когда маленькие страницы исчезнут из индекса.<\/p>\n<p>Такой приём работает не только для гостевых книг. Его можно использовать для любых разделов с пагинацией: каталогов, форумов, фотоальбомов.<\/p>\n",
            "date_published": "2025-10-14T21:51:38+03:00",
            "date_modified": "2025-10-18T18:09:35+03:00",
            "tags": [
                "SEO",
                "Панинация"
            ],
            "_date_published_rfc2822": "Tue, 14 Oct 2025 21:51:38 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "35",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "34",
            "url": "https:\/\/webbuild.ru\/blog\/all\/obratnaya-svyaz-v-mobilnom-prilozhenii\/",
            "title": "Обратная связь в мобильном приложении",
            "content_html": "<p>Добавил в таксишное мобильное приложение кнопку «Сообщить о проблеме». Если клиент испытвает трудности в работе с приложением, он может нажать эту кнопку и написать сообщение службе поддержки. Менеджеры разберут жалобу и свяжутся с клиентом чтобы разрешить её.<\/p>\n<p>Основную часть работы делает система сбора и обработки заявок. И ещё АПИ приложения, которое перенаправляет заявки от клиента в систему. Моя же часть работы состояла в добавлении приложению трёх несложных экранов. Ничего особенного.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/userflow.jpg\" width=\"1072\" height=\"636\" alt=\"\" \/>\n<\/div>\n<p>Наверное, не стоило бы об этом писать, если бы не одна фишка. Клиентские заявки бывают очень объёмными. Людям нравится писать жалобы, и они не ограничивают себя в деталях. Поэтому на экране со списком заявок тексты лучше сокращать до одного-двух предложений.<\/p>\n<p>Обычно для обрезки задают лимит на длину. Например, сто символов. Если текст длиннее, из него берут первые сто символов, а в конце добавляют многоточие. Оно показывает, что есть продолжение. Если пользователь тапнет на заявку, то попадёт на отдельный экран с уже полным текстом.<\/p>\n<p>Проблема в том, что тупая автоматическая обрезка часто приходится на середину слова. Это было бы не страшно, если бы иногда не искажало смысл. А иногда смысл делается и вовсе пошлым. Илья Бирман как-то <a href=\"https:\/\/ilyabirman.ru\/meanwhile\/all\/how-to-cut-text\/\">писал об этом<\/a> в одной из заметок.<\/p>\n<p>Илья предлагает избегать обрезки по середине слова, а вместо этого резать точно по концу предложения. Если же в таком случае фрагмент сильно превышает лимит, то резать хотя бы по ближайшей запятой или пробелу.<\/p>\n<p>Я вспомнил ту заметку и решил применить метод Ильи. Я не стал усложнять и делать поэтапный поиск сначала точки, потом запятых, потом пробелов. У меня текст обрежется по первому ближайшему к лимиту символу из перечисленных. Работает просто и надёжно. А главное, я теперь спокоен, что обрезка не приведёт к конфузу.<\/p>\n",
            "date_published": "2025-10-05T19:36:26+03:00",
            "date_modified": "2025-10-05T19:36:13+03:00",
            "tags": [
                "Userflow",
                "UX\/UI",
                "Приложение такси"
            ],
            "image": "https:\/\/webbuild.ru\/blog\/pictures\/userflow.jpg",
            "_date_published_rfc2822": "Sun, 05 Oct 2025 19:36:26 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "34",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/webbuild.ru\/blog\/pictures\/userflow.jpg"
                ]
            }
        },
        {
            "id": "33",
            "url": "https:\/\/webbuild.ru\/blog\/all\/korpus-thermaltake-core-g3\/",
            "title": "Корпус Thermaltake Core G3",
            "content_html": "<p>Прошло полтора года с тех пор, как я собрал себе новый ПК. Пришло время почистить его от пыли и заменить термопасту. За одно хочу сказать о нём несколько слов.<\/p>\n<p>Конфигурация не примечательна. Это i5-12400 на 32 Gb памяти DDR4. Самое интересное в моём компьютере — это корпус. Я его долго выбирал и искал. О нём и пойдёт речь.<\/p>\n<p>Моё рабочее место — это утеплённая лоджия. Она совсем небольшая, поэтому мне важна компактность. Старый ПК был в обычном здоровенном корпусе. Он выпирал из под стола и занимал под ним половину места. Я постоянно задевал его ногами и страдал.<\/p>\n<p>В новой сборке я задался целью найти компактный корпус, который одновременно был бы вместительным. И нашел Thermaltake Core G3. На тот момент это был один из немногих, если не единственный, корпус формата SFX, в который влезала стандартная ATX плата.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/IMG_5242.jpg\" width=\"1200\" height=\"900\" alt=\"\" \/>\n<\/div>\n<p>Ширина корпуса всего 140 мм, а длина — 370 мм. Забавно, что материнка устанавливается в него вверх ногами. А видеокарта подключается через райзер. В него можно вместить даже двухсекционную водянку.<\/p>\n<p>Правда, опыта эксплуатации водяного охлаждения у меня нет. Поэтому я поставил хороший низкопрофильный кулер от Be Quiet! Через это выбор процессора был ограничен холодными моделями. Для работы мне этого вполне достаточно.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/IMG_5309.jpg\" width=\"1200\" height=\"900\" alt=\"\" \/>\n<\/div>\n<p>Эта модель корпуса уже старая. Её больше не производят и в продаже её нет. Свой экземпляр я нашёл на Авито. Большое спасибо продавцу Марии за отличную сохранность. Впечатление, что до меня корпусом не пользовались. Б\/ушное происхождение выдаёт только приклеенная эмблема Noctua. Мне понравилось, как она смотрится. Поэтому я не стал отдирать.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/IMG_5259.jpg\" width=\"1200\" height=\"900\" alt=\"\" \/>\n<\/div>\n<p>Компьютер получился тихий. Холодный процессор и добротный кулер делают дело. В комплекте с корпусом идут две заводские вертушки на вдув. Вопреки опасениям их тоже практически не слышно.<\/p>\n<p>Конечно, есть и с вои недостатки. Например, пришлось отдать целое состояние за приличный SFX блок питания. Нет портов USB-C. Хотелось бы закалённое стекло вместо пластикового окна. Нет места для вертушки на задней стенке. Отсутствует возможность сделать кабель-менеджемент.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/IMG_5255.jpg\" width=\"1200\" height=\"900\" alt=\"\" \/>\n<\/div>\n<p>С этим можно мириться. В целом решение удачное. Главное — у меня теперь предостаточно места под столом. И я больше не пинаю ногами свой компьютер.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/IMG_5353.jpg\" width=\"1200\" height=\"900\" alt=\"\" \/>\n<\/div>\n",
            "date_published": "2025-09-20T21:54:16+03:00",
            "date_modified": "2025-09-20T21:53:36+03:00",
            "tags": [
                "Железо"
            ],
            "image": "https:\/\/webbuild.ru\/blog\/pictures\/IMG_5242.jpg",
            "_date_published_rfc2822": "Sat, 20 Sep 2025 21:54:16 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "33",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/webbuild.ru\/blog\/pictures\/IMG_5242.jpg",
                    "https:\/\/webbuild.ru\/blog\/pictures\/IMG_5309.jpg",
                    "https:\/\/webbuild.ru\/blog\/pictures\/IMG_5259.jpg",
                    "https:\/\/webbuild.ru\/blog\/pictures\/IMG_5255.jpg",
                    "https:\/\/webbuild.ru\/blog\/pictures\/IMG_5353.jpg"
                ]
            }
        },
        {
            "id": "32",
            "url": "https:\/\/webbuild.ru\/blog\/all\/ataka-botov\/",
            "title": "Атака ботов",
            "content_html": "<p>Таксишный сайт атаковали боты. Они совершают прямые заходы с адресов IPv6 на главную страницу и проводят на ней от 5 до 20 секунд. В первые дни атаки они хаотично скроллили страницу туда-сюда, затем кликали на email в подвале и уходили. А теперь ничего не кликают, только скроллят.<\/p>\n<p>Посещаемость сайта совсем небольшая. Не больше сотни в день, в основном с поисковой выдачи. А с ботами выросла кратно. Они забили все отчёты в Метрике.<\/p>\n<p>Это не DDoS, потому что заходов всё ещё слишком мало чтобы создать серьёзную нагрузку. Это либо прогрев поведенческих ботов, либо атака конкретно на наш сайт с целью компрометации ПФ. В любом случае, хорошего мало.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/taxi_car_under_bots_attack.jpg\" width=\"1024\" height=\"768\" alt=\"\" \/>\n<\/div>\n<p>Самый кардинальный способ борьбы — это отключить IPv6. Среди настоящих посетителей сайта почти никто не заходит с таких адресов. Тем не менее, поступать так не хочется. Поэтому для начала я решил ограничиться капчей на прямые заходы с IPv6. А дальше посмотрим.<\/p>\n<p>Причём, капча простейшая самодельная. Мне интересно, насколько быстро боты её сломают. Пока держится. А когда справятся — повешу Recaptcha от Гугла. Естественно, на странице с капчей нет никакой Метрики. А Google Аналитику мы убрали ещё когда РКН повысил штрафы за неуведомление о трансграничной передаче данных. Хотя, понятно, что отсутствие счётчика не мешает Гуглу с его Хромом собирать статистику.<\/p>\n<p>Итого ботов в отчётах Метрики пока не видно. Статистика посещаемости вернулась к предыдущему уровню. Продолжаю наблюдение.<\/p>\n",
            "date_published": "2025-09-07T22:11:16+03:00",
            "date_modified": "2025-09-07T22:11:06+03:00",
            "tags": [
                "Защита сайта",
                "Такси 42"
            ],
            "image": "https:\/\/webbuild.ru\/blog\/pictures\/taxi_car_under_bots_attack.jpg",
            "_date_published_rfc2822": "Sun, 07 Sep 2025 22:11:16 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "32",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/webbuild.ru\/blog\/pictures\/taxi_car_under_bots_attack.jpg"
                ]
            }
        },
        {
            "id": "31",
            "url": "https:\/\/webbuild.ru\/blog\/all\/bitva-za-uvedomleniya-v-react-native\/",
            "title": "Битва за уведомления в React Native",
            "content_html": "<p>Во время теста нового мобильного приложения для Такси 42 нашел неприятную особенность. Иногда не приходят оповещения о том, что автомобиль подъехал и ожидает. Это случается на слабых устройствах с небольшим количеством памяти. Если одновременно запустить что-то тяжелое, то из-за нехватки ресурсов Андроид «убивает» сервис, следящий за статусом заказа.<\/p>\n<p>В моих тестах этим «тяжёлым» было Яндекс Go. Не секрет, что многие часто запускают несколько приложений такси стремясь уехать подешевле или побыстрее. Я повторял это поведение на стареньком телефоне всего с двумя гигабайтами оперативки. Он не выдерживал нагрузки и принудительно закрывал работающие в фоне приложения. Включая и наше.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/android-vs-taxi42-app.jpg\" width=\"1200\" height=\"800\" alt=\"\" \/>\n<\/div>\n<p>Я стал дебажить библиотеку Notifee, которую использую для фоновой работы с оповещениями. Пришлось залезть к ней «под капот» в нативный Java-код, хоть я и не особо силён в нём. Напомню, что я пишу на React Native.<\/p>\n<p>Так вот, есть два режима, в которых можно стартовать сервис: START_STICKY и START_NOT_STICKY. В первом Андроид будет пытаться заново запустить его после принудительного завершения. А во втором — нет. Так вот, библиотека Notifee использует именно второй режим. И нет никакого способа повлиять на это через параметры или настройки.<\/p>\n<p>Я встал перед дилеммой: форкать и модифицировать Notifee, либо вовсе от неё отказаться и переписать сервис на нативном модуле. Выбор пал на нативный модуль. Править чужой код не зная нюансов — такое себе занятие. Тем более, я за любой способ сделать приложение легче. А тут такая возможность избавиться от целой библиотеки. Заодно попрактикуюсь в написании кода на Java.<\/p>\n<p>Я выкинул Notifee, переписал сервис и вернулся к тестам. START_STICKY помог, но не совсем. В особенно тяжелых случаях Андроид после рестарта сервиса тут же снова его «прибивал». На этот раз окончательно.<\/p>\n<p>Исправить ситуацию могла бы только отмена экономии заряда. По умолчанию Андроид старается оптимизировать работу приложений, чтобы те поменьше тратили батарею. И в фоне закрывает их при первой возможности. Однако, для некоторых приложений оптимизацию можно отключить через настройки. Тогда Андроид не будет их трогать.<\/p>\n<p>Беда в том, что приложение не может само себе отключить оптимизацию. Для этого оно должно запросить разрешение у пользователя. Так устроен Андроид. А просить человека отключить экономию батареи — это несколько нескромно. Лучше так не делать чтобы не оставить негативных эмоций.<\/p>\n<p>Словом, на сегодня проблема решена на половину. Приложение старается перезапустить сервис оповещений после «убийства». Это получается не всегда, поэтому по прежнему сохраняется опасность пропустить оповещение о подъехавшей машине. Хорошо, что оно дублируется звонком от робота.<\/p>\n<p>Хорошим решением было бы использовать push-уведомления вместо сервиса. Возможно, мы перейдём на них. Хотя, сейчас, в условиях ограничений мобильного интернета, всё равно не обойтись от дублирования оповещений звонком. Поэтому пока работаем в этом режиме и копим статистику.<\/p>\n",
            "date_published": "2025-08-21T22:51:48+03:00",
            "date_modified": "2025-08-21T22:51:40+03:00",
            "tags": [
                "Android",
                "Notifee",
                "React Native",
                "Такси 42"
            ],
            "image": "https:\/\/webbuild.ru\/blog\/pictures\/android-vs-taxi42-app.jpg",
            "_date_published_rfc2822": "Thu, 21 Aug 2025 22:51:48 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "31",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/webbuild.ru\/blog\/pictures\/android-vs-taxi42-app.jpg"
                ]
            }
        },
        {
            "id": "30",
            "url": "https:\/\/webbuild.ru\/blog\/all\/uzor-na-sayte-masterskoy-chongov\/",
            "title": "Узор на сайте мастерской чонгов",
            "content_html": "<p>Продолжаю работу над сайтом мастерской тренажеров для Кунг-Фу. Да, знаю, что идёт медленно. Оправданием служит то, что это проект на энтузиазме в свободное время. Для души, так сказать.<\/p>\n<p>Итак, мне понадобился какой-нибудь узор чтобы украсить заголовки на сайте. Так как чонг — это тема китайская, дизайн тоже должен быть с уклоном в китайские мотивы. Я нагуглил китайский орнамент и собрал пачку референсов. Вот они.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/chinese-pattern.jpg\" width=\"1192\" height=\"805\" alt=\"\" \/>\n<\/div>\n<p>По ходу дела оказалось, что в узоры в китайской культуре несут в себе глубокий символизм. Например, круг изображает гармонию бесконечности и совершенства. Как Солнце, Луна и вообще цикл жизни в природе. Квадрат символизирует землю, стабильность, прочность и надежность. А узел на китайском созвучен благожеланию. Он символизирует достижение желаемого, когда все складывается самым счастливым образом.<\/p>\n<p>Для моей работы мне нужно было что-то легкое. Незатейливый узор, который разнообразил бы визуал, но не отвлекал не себя внимание. Вряд-ли посетители сайта мастерской будут разбирать его значение. Поэтому я скомбинировал самые простые фигуры, которые перечислил выше: круг, квадрат и узел.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/chinese-pattern-chong.jpg\" width=\"1024\" height=\"256\" alt=\"\" \/>\n<\/div>\n<p>Вот такой рисунок получился в итоге. Я со своей стороны просто старался сделать его похожим на чонг. Вид сверху. По центру толстое бревно, а по бокам рама и рессоры. Получилось красиво и весьма символично ) Надеюсь, хозяину сайта тоже понравится.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/chinese-pattern-heading.jpg\" width=\"882\" height=\"277\" alt=\"\" \/>\n<\/div>\n<p>А вот так выглядит заголовок, «отбитый» узором. Как и требовалось, он оживляет страницу. При этом он лёгкий и не мешает читать текст.<\/p>\n",
            "date_published": "2025-08-03T12:57:05+03:00",
            "date_modified": "2025-08-03T13:02:08+03:00",
            "tags": [
                "web-дизайн",
                "Чонг"
            ],
            "image": "https:\/\/webbuild.ru\/blog\/pictures\/chinese-pattern.jpg",
            "_date_published_rfc2822": "Sun, 03 Aug 2025 12:57:05 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "30",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/webbuild.ru\/blog\/pictures\/chinese-pattern.jpg",
                    "https:\/\/webbuild.ru\/blog\/pictures\/chinese-pattern-chong.jpg",
                    "https:\/\/webbuild.ru\/blog\/pictures\/chinese-pattern-heading.jpg"
                ]
            }
        },
        {
            "id": "29",
            "url": "https:\/\/webbuild.ru\/blog\/all\/karta-dlya-sayta-taksi\/",
            "title": "Карта для сайта такси",
            "content_html": "<p>Добавил карту на сайт Такси 42. Речь пока только про десктоп. Раньше ввести адреса для заказа такси можно было только текстом. А теперь добавилась опция ткнуть их на карте. При этом, сайт тут же проложит маршрут.<\/p>\n<p>Пока непонятно насколько удобно сделано переключение между адресами. Первый клик по карте назначает адрес «Откуда». Фокус переходит в поле «Куда», и все последующие клики по карте выбирают уже его. Чтобы вернуться к адресу «Откуда» нужно вручную перевести в него фокус.<\/p>\n<p>Будем смотреть, удобен ли такой способ пользователям. У Яндекса, например, сделано по-другому. Там кликнуть на карте можно только адрес «Откуда». А адрес назначения вводится текстом.<\/p>\n<p>Для работы с картой используется библиотека Leaflet и подложка 2ГИС. На очереди версия для мобильных устройств.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/taxidesktopmap.jpg\" width=\"1050\" height=\"599\" alt=\"\" \/>\n<\/div>\n",
            "date_published": "2025-07-29T19:44:40+03:00",
            "date_modified": "2025-07-29T19:44:31+03:00",
            "tags": [
                "Сайт такси"
            ],
            "image": "https:\/\/webbuild.ru\/blog\/pictures\/taxidesktopmap.jpg",
            "_date_published_rfc2822": "Tue, 29 Jul 2025 19:44:40 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "29",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/webbuild.ru\/blog\/pictures\/taxidesktopmap.jpg"
                ]
            }
        },
        {
            "id": "28",
            "url": "https:\/\/webbuild.ru\/blog\/all\/avtorizaciya-na-sayte-taksi\/",
            "title": "Авторизация на сайте Такси",
            "content_html": "<p>Расширил авторизацию на сайте Такси 42 при помощи JWT-токена. Раньше чтобы заказать такси приходилось каждый раз вводить номер телефона и подтверждать его через СМС-код. Теперь сайт научился запоминать пользователя. Если, конечно, тот поставил галочку «Сохранить вход» при авторизации.<\/p>\n<p>Напомню, авторизация по номеру телефона нужна для обратной связи с пассажиром. Например, для оповещения о поданном такси. С запоминанием номера пользоваться сервисом стало гораздо удобнее. Надеюсь, пользователи это оценят.<\/p>\n<p>А ещё переверстал форму заказа. Раньше чекбоксы с дополнительными опциями были выведены списком прямо на форме. А опций у нас много: детское кресло, перевозка животных, заказ на время и т. д. На десктопе с этим нет проблем: всё помещается в один экран. А на смартфоне приходилось скролить чтобы добраться но кнопки заказа или до поля с рассчитанной стоимостью.<\/p>\n<p>Я заменил чекбоксы одной кнопкой «Пожелания к заказу». Она открывает диалог с выбором дополнительных опций. Форма стала гораздо лаконичнее. Можно набирать адреса и сразу же видеть, как меняется стоимость.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/taxiaddons.jpg\" width=\"1039\" height=\"532\" alt=\"\" \/>\n<\/div>\n<p>Кстати, ввод маршрута — это следующая тема для доработки. Сейчас это можно сделать только набирая адреса текстом. Планируется добавить на сайт интерактивную карту чтобы можно было выбрать адрес прямо на ней. Для многих пользователей такой способ удобнее. Особенно для молодёжи. Она часто не ориентируется в адресах, зато отлично умеет находить нужный дом на карте.<\/p>\n",
            "date_published": "2025-07-15T20:09:46+03:00",
            "date_modified": "2025-07-15T20:42:26+03:00",
            "tags": [
                "Сайт",
                "Такси"
            ],
            "image": "https:\/\/webbuild.ru\/blog\/pictures\/taxiaddons.jpg",
            "_date_published_rfc2822": "Tue, 15 Jul 2025 20:09:46 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "28",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/webbuild.ru\/blog\/pictures\/taxiaddons.jpg"
                ]
            }
        },
        {
            "id": "27",
            "url": "https:\/\/webbuild.ru\/blog\/all\/grafika-dlya-sayta-chong-su\/",
            "title": "Графика для сайта chong.su",
            "content_html": "<p>Продолжаю работу над сайтом мастерской по изготовлению манекенов для обучения технике кунг-фу. Такой манекен называется чонг. Изображение чонга используется на сайте как логотип. Я отрисовал его заново в Inkscape. Старый был растровый и с немного поехавшей перспективой. Новый стал векторный, а значит хорошо масштабируется. И перспектива стала ближе к реальности.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/chong2.png\" width=\"512\" height=\"512\" alt=\"\" \/>\n<\/div>\n<p>По ходу работы захотелось добавить ещё какую-то графику чтобы заполнить пустоты и сделать страницу интереснее. Нарисовал вид чонга сверху. Иллюстрация сделана с фотографии настоящего манекена. Её я тоже прикладываю.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/upchong.png\" width=\"1700\" height=\"1000\" alt=\"\" \/>\n<\/div>\n<p>Кольца на торце бревна не концентрические, т. к. оно не цельное, а склеено из нескольких толстых досок. Найти подходящее цельное бревно — сложная задача. Поэтому приходится клеить. Поверх текстуры дерева на торце видно выжженную печать мастера.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/Zn1QO2mYx14-reversed.jpg\" width=\"1200\" height=\"900\" alt=\"\" \/>\n<\/div>\n<p>Вот часть макета главной страницы. Пока для только десктопа, но будет и адаптив. По-моему, получается неплохо. Фотка чонга здесь скучновата. Зато её солнечная гамма очень красива и идеально подходит по цвету.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/sample.jpg\" width=\"1240\" height=\"730\" alt=\"\" \/>\n<\/div>\n<p>На кнопке «Подробнее о чонге» тоже присутствует пиктограмма с изображением чонга сверху. На счёт неё я пока не уверен. Возможно, она лишняя.<\/p>\n<p>Напомню, что я не настоящий дизайнер. По специальности я всё же разработчик. А художником я становлюсь на досуге для души. Осваиваю Фигму, Криту, Инкскейп. Думаю, что прогресс в этом деле у меня есть.<\/p>\n",
            "date_published": "2025-06-26T20:11:59+03:00",
            "date_modified": "2025-06-26T20:11:39+03:00",
            "tags": [
                "графика",
                "Дизайн",
                "Чонг"
            ],
            "image": "https:\/\/webbuild.ru\/blog\/pictures\/chong2.png",
            "_date_published_rfc2822": "Thu, 26 Jun 2025 20:11:59 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "27",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/webbuild.ru\/blog\/pictures\/chong2.png",
                    "https:\/\/webbuild.ru\/blog\/pictures\/upchong.png",
                    "https:\/\/webbuild.ru\/blog\/pictures\/Zn1QO2mYx14-reversed.jpg",
                    "https:\/\/webbuild.ru\/blog\/pictures\/sample.jpg"
                ]
            }
        },
        {
            "id": "26",
            "url": "https:\/\/webbuild.ru\/blog\/all\/redizayn-sayta-chong-su\/",
            "title": "Редизайн сайта chong.su",
            "content_html": "<p>Взялся за редизайн сайта мастерской по изготовлению манекенов для обучения кунг-фу. На китайском такой манекен   называют чонгом. Отсюда выбор домена.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/chonglogo1.png\" width=\"640\" height=\"400\" alt=\"\" \/>\n<\/div>\n<p>Сайту уже больше 12 лет. Он устарел и нуждается в адаптивной версии. Поэтому я подыскал референсы, открыл фигму и занялся дизайном. От прежнего варианта оставлю только фоновую подложку с текстурой дерева под старинный китайский вайб. И логотип в виде чонга на поперечных рессорах.<\/p>\n<p>Это, к стати, не единственная модель манекена. Есть ещё тренажёры на платформе в стальном стакане, подвесные на стену, «пауки» и т. д. Всё это может изготовить хозяин мастерской Дмитрий Васильевич Затуло.<\/p>\n<p>С ним я знаком лично и, в своё время, много у него тренировался. Качество чонгов — отличное. Все конструкции из натурального дерева и стали, надёжные и проверенные временем.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/webbuild.ru\/blog\/pictures\/f3FH0FFz_Eg2.png\" width=\"768\" height=\"1024\" alt=\"\" \/>\n<\/div>\n<p>Скажу по секрету, что этот сайт в 2013 году я сделал в качестве оплаты за чонг. Он стоял у меня на лоджии. Классная штука. Помогает отрабатывать технику и набивать удар. Особенно хорошо с джутовыми мишенями. По началу кулакам было плохо. Со временем они адаптировались, и тренировки проходили уже без кровавых мозолей.<\/p>\n<p>Словом, я искренне надеюсь, что новый сайт понравится владельцу и поможет в продвижении мастерской.<\/p>\n",
            "date_published": "2025-06-15T20:32:09+03:00",
            "date_modified": "2025-06-15T20:46:20+03:00",
            "tags": [
                "Дизайн",
                "кунг-фу",
                "Сайт",
                "Чонг"
            ],
            "image": "https:\/\/webbuild.ru\/blog\/pictures\/chonglogo1.png",
            "_date_published_rfc2822": "Sun, 15 Jun 2025 20:32:09 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "26",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/webbuild.ru\/blog\/pictures\/chonglogo1.png",
                    "https:\/\/webbuild.ru\/blog\/pictures\/f3FH0FFz_Eg2.png"
                ]
            }
        }
    ],
    "_e2_version": 4134,
    "_e2_ua_string": "Aegea 11.3 (v4134)"
}