{ "version": "https:\/\/jsonfeed.org\/version\/1", "title": "#mopsicus: заметки с тегом блог", "_rss_description": "об играх, разработке на Unity и личном опыте", "_rss_language": "ru", "_itunes_email": "", "_itunes_categories_xml": "", "_itunes_image": "", "_itunes_explicit": "", "home_page_url": "https:\/\/mopsicus.ru\/tags\/blog\/", "feed_url": "https:\/\/mopsicus.ru\/tags\/blog\/json\/", "icon": "https:\/\/mopsicus.ru\/user\/userpic@2x.jpg?1707898340", "author": { "name": "Игорь Лопатин", "url": "https:\/\/mopsicus.ru\/", "avatar": "https:\/\/mopsicus.ru\/user\/userpic@2x.jpg?1707898340" }, "items": [ { "id": "252", "url": "https:\/\/mopsicus.ru\/all\/2021-summary\/", "title": "2021", "content_html": "
\n

Bye 2021 year<\/h3>

Bye 2021 year<\/h4>\"Bye\n<\/div>\n

За прошлый год мы выпустили 3 онлайн игры: две настолки и игру в слова. Причём так совпало, что все релизы были на вторую половину года. Раньше получалось примерно по одной в год. Показатели уже неплохие, онлайн растёт, ин-аппы покупаются, реклама просматривается, оценки хорошие.<\/p>\n

Рассылку пришлось закрыть :( Многие мне писали и спрашивали, буду ли продолжать — пока не могу сказать, это отнимает время, а его пока нет на такие вещи.<\/p>\n

Выпустили игру в Huawei AppGallery. Отдельный квест. Но надо признать, китайцы молодцы, они скопировали гугл-сервисы и улучшили их. Если есть нативное приложение под Android, то перенести его в AppGallery в общем-то не сложно. Если надо опубликовать приложение сделанное на Unity, то надо будет сделать несколько плагинов или использовать готовые.<\/p>\n

Стал меньше писать в блог, думаю в этом году это исправить. Есть темы которыми хотел бы поделиться. Ещё думаю сменить Эгею на что-то другое, более гибкое, может какой-нибудь статический генератор сайтов.<\/p>\n

Так и не смог регулярно постить в телеграм, это должен был быть ещё один канал связи, с более частыми постами чем в рассылке...<\/p>\n

На 2022 в планах зарелизить минимум столько же игр: настолку, три в ряд, головоломку. А может и больше! Новый движок на основе RPC и событий показал себя с лучшей стороны. По чуть-чуть обрастает новыми фичами. Делать на нём новые игры можно без боли :)<\/p>\n

Год был продуктивным. Желаю всем игр в 2022 году!<\/p>\n

Unity Hub обновился, теперь красивенький<\/p>\n", "date_published": "2022-01-14T14:18:25+03:00", "date_modified": "2022-01-14T14:18:13+03:00", "image": "https:\/\/mopsicus.ru\/pictures\/bye-2021.png", "_date_published_rfc2822": "Fri, 14 Jan 2022 14:18:25 +0300", "_rss_guid_is_permalink": "false", "_rss_guid": "252", "_e2_data": { "is_favourite": false, "links_required": [], "og_images": [ "https:\/\/mopsicus.ru\/pictures\/bye-2021.png" ] } }, { "id": "235", "url": "https:\/\/mopsicus.ru\/all\/telegram-channel\/", "title": "Telegram канал", "content_html": "

\n

Telegram channel<\/h3>

Telegram channel<\/h4>\"Telegram\n<\/div>\n

Каждый день, полезный пост :) Подписывайтесь на телеграм канал<\/a>!<\/p>\n", "date_published": "2021-01-20T21:52:21+03:00", "date_modified": "2021-01-21T17:07:42+03:00", "image": "https:\/\/mopsicus.ru\/pictures\/tg.jpg", "_date_published_rfc2822": "Wed, 20 Jan 2021 21:52:21 +0300", "_rss_guid_is_permalink": "false", "_rss_guid": "235", "_e2_data": { "is_favourite": false, "links_required": [], "og_images": [ "https:\/\/mopsicus.ru\/pictures\/tg.jpg" ] } }, { "id": "213", "url": "https:\/\/mopsicus.ru\/all\/linkedin-account\/", "title": "LinkedIn", "content_html": "

\n

Linkedin account<\/h3>

Linkedin account<\/h4>\"Linkedin\n<\/div>\n

Самая HR-ная сеть очень активизировалась.<\/p>\n

Если посмотреть с начала лета, то мне пишут<\/a> примерно через день. Много предложений из Белоруси, ну и удалёнка понятное дело.<\/p>\n

Есть прям интересные предложения. Но в данный момент откликнуться ни на одно не смогу :( надо закончить большой проект, который тянется уже пару лет. Может быть потом.<\/p>\n

Вообще странно, сеть заблокирована на территории РФ, но ей все очень активно пользуются, Мой Круг пытается что-то сделать, но пока не особо получается.<\/p>\n

UPD: а ещё Телеграм! Если ищете работу, подпишитесь на 3-5 каналов, там куча предложений.<\/p>\n", "date_published": "2020-08-04T11:48:37+03:00", "date_modified": "2020-08-20T13:16:12+03:00", "image": "https:\/\/mopsicus.ru\/pictures\/linkedin.png", "_date_published_rfc2822": "Tue, 04 Aug 2020 11:48:37 +0300", "_rss_guid_is_permalink": "false", "_rss_guid": "213", "_e2_data": { "is_favourite": false, "links_required": [], "og_images": [ "https:\/\/mopsicus.ru\/pictures\/linkedin.png" ] } }, { "id": "208", "url": "https:\/\/mopsicus.ru\/all\/blog-updated\/", "title": "Обновил блог", "content_html": "

\n

Движок Эгея<\/h3>

Движок Эгея<\/h4>\"Движок\n<\/div>\n

Установил последнюю версию движка, восстановил тему, вроде всё работает, как должно. Движок тут, Эгея<\/a> — самый движок для ведения блогов. Единственное, что ему наверно не хватает, так это создание статичных страниц, чтобы они не попадали в общую ленту. А так это пока лучшее, чем я пользовался.<\/p>\n

Визуально для читателя в общем-то ничего не поменялось. Кроме поддержки тёмной темы ? и возможности оставлять комменты через ВК :)<\/p>\n

А ещё обновил скрипт который генерит турбо-страницы<\/a>, теперь там корректно вставляются картинки в соответствии с разметкой. Ну это так, для себя.<\/p>\n

Если решили попробовать и возникли вопросы — небольшое сообщество в Телеграм<\/a>.<\/p>\n", "date_published": "2020-05-29T15:42:00+03:00", "date_modified": "2020-05-29T15:42:37+03:00", "image": "https:\/\/mopsicus.ru\/pictures\/eagea.png", "_date_published_rfc2822": "Fri, 29 May 2020 15:42:00 +0300", "_rss_guid_is_permalink": "false", "_rss_guid": "208", "_e2_data": { "is_favourite": false, "links_required": [], "og_images": [ "https:\/\/mopsicus.ru\/pictures\/eagea.png" ] } }, { "id": "202", "url": "https:\/\/mopsicus.ru\/all\/medium\/", "title": "Medium", "content_html": "

\n

Medium logo<\/h3>

Medium logo<\/h4>\"Medium\n<\/div>\n

Решил по-переводить некоторые свои посты в Медиум<\/a>. Проверить канал, так сказать :) Ну и заодно попрактиковаться в английском. Первый блин<\/a>.<\/p>\n

Мне частенько пишут иностранцы, но в основном это с гитхаба, как я понял. А блог то на великом и могучем, поэтому появились мысли, чтобы постить туда, на их площадку. Посмотрим, что из этого выйдет.<\/p>\n

Если у кого-то есть опыт, отпишите в комменты.<\/p>\n", "date_published": "2020-04-17T21:29:52+03:00", "date_modified": "2020-05-07T14:00:05+03:00", "image": "https:\/\/mopsicus.ru\/pictures\/medium.jpg", "_date_published_rfc2822": "Fri, 17 Apr 2020 21:29:52 +0300", "_rss_guid_is_permalink": "false", "_rss_guid": "202", "_e2_data": { "is_favourite": false, "links_required": [], "og_images": [ "https:\/\/mopsicus.ru\/pictures\/medium.jpg" ] } }, { "id": "189", "url": "https:\/\/mopsicus.ru\/all\/turbo-pages-new-edition\/", "title": "Лента турбо-страниц", "content_html": "

\n

Yandex Turbo pages<\/h3>

Yandex Turbo pages<\/h4>\"Yandex\n<\/div>\n

Мой предыдущий опыт с турбо-страницами<\/a> провалился :)
\nЯ совсем забыл, что стандартная RSS лента Эгеи выдаёт только последние несколько постов. Поэтому, в поиске всегда появлялись свежие записи, а старые пропадали.<\/p>\n

Есть ограничение в 1000 записей от одного источника. Мне это не грозит, но у кого большой блог, надо сделать несколько.<\/p>\n

В общем, сделал скрипт по аналогии, как когда-то для карты сайта<\/a>, который генерирует все записи в соответсвии с разметкой от Яндекса<\/a>.<\/p>\n

Единственный момент интересный, валидатор Яндекса всё время ругался, что тексты не размечены по параграфам. Поэтому добавил такую манипуляцию, которая заменяет конец строки и оборачивает в тег параграфа.<\/p>\n

$body = nl2br($body, false);\r\n$body = '<p>' . preg_replace('#(<br>[\\r\\n\\s]+){2}#', "<\/p>\\n\\n<p>", $body) . '<\/p>';<\/code><\/pre>

Теперь все записи в поиске без ошибок и оттуда даже пошёл трафик.<\/p>\n", "date_published": "2019-12-13T14:37:52+03:00", "date_modified": "2020-05-07T14:08:07+03:00", "image": "https:\/\/mopsicus.ru\/pictures\/turbo-pages.gif", "_date_published_rfc2822": "Fri, 13 Dec 2019 14:37:52 +0300", "_rss_guid_is_permalink": "false", "_rss_guid": "189", "_e2_data": { "is_favourite": false, "links_required": [ "system\/library\/highlight\/highlight.js", "system\/library\/highlight\/highlight.css", "system\/library\/highlight\/highlight.js", "system\/library\/highlight\/highlight.css" ], "og_images": [ "https:\/\/mopsicus.ru\/pictures\/turbo-pages.gif" ] } }, { "id": "110", "url": "https:\/\/mopsicus.ru\/all\/aegea-field-notes\/", "title": "Заметки на полях в Эгее", "content_html": "

Прочитал недавно пост про то, как сделать заметки на полях<\/a> (маргиналии<\/i> о_О) у Вениамина Векка. И решил честно не воровать, а сделать сам. Собственно, там и красть-то нечего.<\/p>\n

Получились вот такие, простые заметки на полях, в которые можно выносить свои умные мысли и комментарии.<\/p>\n

Сделать такие же — очень просто. Нужно в своей теме оформления, добавить всего один стиль, назовём его .note<\/b>, примерно с такими свойствами:<\/p>\n

.e2-text .note {\r\n    padding: 15px;\r\n    float: right;\r\n    clear: right;\r\n    width: 25%;\r\n    min-width: 150px;\r\n    text-align: left;\r\n    background-color: #f2f2f2;\r\n    font-family: var(--smallFontFamily);\r\n    font-size: 12px;\r\n    position: relative;\r\n}<\/code><\/pre>

Чтобы вынести часть текста в заметку справа, нужно в начале строки написать название класса, а далее через пробел свой текст:<\/p>\n

.note Получились вот такие, простые заметки на полях...<\/code><\/pre>

В последних версия Эгеи<\/a> уже есть три готовых к использованию класса форматирования: .foot<\/b>, .lead<\/b> и .loud<\/b>. Об этом не написано в справке, но можно прочитать в одном из постов Ильи Бирмана.<\/p>\n", "date_published": "2018-03-30T13:38:55+03:00", "date_modified": "2018-03-30T13:17:04+03:00", "_date_published_rfc2822": "Fri, 30 Mar 2018 13:38:55 +0300", "_rss_guid_is_permalink": "false", "_rss_guid": "110", "_e2_data": { "is_favourite": false, "links_required": [ "system\/library\/highlight\/highlight.js", "system\/library\/highlight\/highlight.css", "system\/library\/highlight\/highlight.js", "system\/library\/highlight\/highlight.css", "system\/library\/highlight\/highlight.js", "system\/library\/highlight\/highlight.css", "system\/library\/highlight\/highlight.js", "system\/library\/highlight\/highlight.css" ], "og_images": [] } }, { "id": "82", "url": "https:\/\/mopsicus.ru\/all\/yandex-turbo-pages-aegea\/", "title": "Турбо-страницы для Эгеи", "content_html": "

Яндекс недавно запустил турбо-страницы<\/a>, но с Эгеей они не дружат, потому что RSS лента формируется без нужных ключей и соответственно не проходит валидацию.<\/p>\n

Чтобы это исправить, нужно отредактировать шаблон RSS, он находится по такому пути:<\/p>\n

\n

your_site_root\/system\/default\/rss\/rss.tmpl.php<\/p>\n<\/blockquote>\n

переопредилить его для своей темы нельзя, поэтому правим там. После обновления движка, надо будет снова редактировать.<\/p>\n

<?= '<?xml version="1.0" encoding="utf-8"?>' ?> \r\n<rss version="2.0">\r\n\r\n<channel>\r\n\r\n<title><?= htmlspecialchars ($content['title'], ENT_NOQUOTES, HSC_ENC); ?><\/title>\r\n<link><?= $content['home_page_url'] ?><\/link>\r\n<description><\/description>\r\n<generator><?= $content['_e2_ua_string'] ?><\/generator>\r\n<language>ru<\/language>\r\n<yandex:analytics id="<YOUR_METRIKA_ID>" type="Yandex"><\/yandex:analytics>\r\n\r\n<?php foreach ($content['items'] as $item) { ?>\r\n<item turbo="true">\r\n<title><?= htmlspecialchars ($item['title'], ENT_NOQUOTES, HSC_ENC); ?><\/title>\r\n<guid isPermaLink="<?= $item['_rss_guid_is_permalink'] ?>"><?= $item['_rss_guid'] ?><\/guid>\r\n<link><?= $item['url'] ?><\/link>\r\n<comments><?= $item['url'] ?><\/comments>\r\n<description><?= htmlspecialchars ($item['content_html'], ENT_NOQUOTES, HSC_ENC) ?><\/description>\r\n<pubDate><?= $item['_date_published_rfc2822'] ?><\/pubDate>\r\n<turbo:content><?= htmlspecialchars ($item['content_html'], ENT_NOQUOTES, HSC_ENC) ?><\/turbo:content>\r\n<author><?= @$content['blog']['author'] ?><\/author>\r\n<\/item>\r\n\r\n<?php } ?>\r\n\r\n<\/channel>\r\n<\/rss><\/code><\/pre>

Я ещё добавил Яндекс.Метрику, но это необязательный параметр, также как язык и автор.
\nПосле этого, заходим в Яндекс.Вебмастер и активируем турбо-страницы. Всё должно работать.<\/p>\n", "date_published": "2017-11-23T14:51:28+03:00", "date_modified": "2017-11-23T14:51:11+03:00", "_date_published_rfc2822": "Thu, 23 Nov 2017 14:51:28 +0300", "_rss_guid_is_permalink": "false", "_rss_guid": "82", "_e2_data": { "is_favourite": false, "links_required": [ "system\/library\/highlight\/highlight.js", "system\/library\/highlight\/highlight.css", "system\/library\/highlight\/highlight.js", "system\/library\/highlight\/highlight.css" ], "og_images": [] } }, { "id": "35", "url": "https:\/\/mopsicus.ru\/all\/sitemap-for-aegea\/", "title": "Sitemap для Эгеи", "content_html": "

Обновлено для последней беты<\/i><\/p>\n

Знаю, что Илья Бирман, разработчик движка для блога Эгея<\/a>, «против» нативной генерации sitemap файла, поэтому пришлось сделать небольшой PHP скрипт для себя. Добавил задание в Cron, чтобы раз в неделю генерил новый файл. Квест пройден.<\/p>\n

<?\r\n$domain = 'mopsicus.ru'; \/\/ домен\r\n$db_user = 'login'; \/\/ логин к БД\r\n$db_password = 'password'; \/\/ пароль к БД\r\n$db_database = 'blog'; \/\/ название БД\r\n$db_host = 'localhost'; \/\/ адрес БД\r\n\r\n$db = new mysqli($db_host, $db_user, $db_password, $db_database);\r\n\r\n$xml = '<?xml version="1.0" encoding="UTF-8"?>';\r\n$xml .= "\\n";\r\n$xml .= '<urlset xmlns:xsi="http:\/\/www.w3.org\/2001\/XMLSchema-instance" xmlns="http:\/\/www.sitemaps.org\/schemas\/sitemap\/0.9" xsi:schemaLocation="http:\/\/www.sitemaps.org\/schemas\/sitemap\/0.9 http:\/\/www.sitemaps.org\/schemas\/sitemap\/0.9\/sitemap.xsd">';\r\n$result = $db->query("SELECT MAX(`LastModified`) AS `LastModified` FROM `notes` WHERE 1");\r\nwhile ($row = $result->fetch_assoc()) {\r\n$xml .= "\r\n<url>\r\n\t<loc>http:\/\/$domain<\/loc>\r\n\t<priority>1.0<\/priority>\r\n\t<lastmod>".date('Y-m-d\\TH:i:s\\Z', $row['LastModified'])."<\/lastmod>\r\n<\/url>";\r\n}\r\n$result = $db->query("SELECT OriginalAlias, LastModified FROM `notes` WHERE IsPublished = 1 AND isvisible = 1");\r\nwhile ($row = $result->fetch_assoc()) {\r\n\t$page = $row['OriginalAlias'];\r\n\t$xml .= "\r\n<url>\r\n\t<loc>http:\/\/$domain\/all\/$page<\/loc>\r\n\t<priority>0.8<\/priority>\r\n\t<lastmod>".date('Y-m-d\\TH:i:s\\Z', $row['LastModified'])."<\/lastmod>\r\n<\/url>";\r\n}\t\r\n$xml .= "\r\n<\/urlset>";\r\n$db->close();\r\n$fp = fopen('sitemap.xml', 'w'); \r\nfwrite($fp, $xml);\r\nfclose($fp);\r\necho "ok";\r\n?><\/code><\/pre>",
            "date_published": "2016-11-22T15:16:39+03:00",
            "date_modified": "2017-10-23T16:53:08+03:00",
            "_date_published_rfc2822": "Tue, 22 Nov 2016 15:16:39 +0300",
            "_rss_guid_is_permalink": "true",
            "_rss_guid": "https:\/\/mopsicus.ru\/all\/sitemap-for-aegea\/",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "58",
            "url": "https:\/\/mopsicus.ru\/all\/about\/",
            "title": "Обо мне",
            "content_html": "

Добрый день, меня зовут Игорь Лопатин.<\/p>\n

\n

Лопатин Игорь<\/h3>

Лопатин Игорь<\/h4>\"Лопатин\n<\/div>\n

Это мой персональный блог. В основном он посвящен разработке на Unity и играм. Этим я занимаюсь последние несколько лет. Почти всё время уделяю мобильным платформам (iOS и Android), знаю как спроектировать, разработать, выпустить и продвинуть приложение в AppStore и Google Play. Также имеют опыт портирования мобильных Unity игр на WebGL.<\/p>\n

Большой опыт в разработке клиент-серверных приложений и игр, в том числе realtime, умею писать расширения редактора Unity и плагины для Android и iOS (iCloud, Google Sign-in, Sign-in with Apple, Firebase Push Service, Browser, Sharing, Mail, Images, Review, NativeInput, Huawei Purchases, Huawei Push Kit...). Работаю с Git (Flow, Submodules). Пользуюсь профайлером и memory профайлером. Знаю как работают многопользовательские онлайн игры (>50k online), настольные, сессионные, 2D. Могу интегрировать рекламные и другие SDK в Unity приложение: AppMetrica, AdMob, Unity Ads, Huawei Ads, FB, Twitter, Firebase, GA, OneSignal, etc.<\/p>\n

Один год отдал стартапам и все что с ними связано, проработав руководителем IT-инкубатора: customer development, lean startup, agile, unit-экономика, аналитика, инвестиции, презентации (как давно это было :) — все это знаю, умею и при необходимости — применяю.<\/p>\n

Со мной можно связаться по почте<\/a>, в Телеграм<\/a> или найти в Фейсбуке<\/a>.<\/p>\n", "date_published": "2016-03-20T17:32:00+03:00", "date_modified": "2022-04-20T17:33:30+03:00", "image": "https:\/\/mopsicus.ru\/pictures\/me.png", "_date_published_rfc2822": "Sun, 20 Mar 2016 17:32:00 +0300", "_rss_guid_is_permalink": "true", "_rss_guid": "https:\/\/mopsicus.ru\/all\/about\/", "_e2_data": { "is_favourite": false, "links_required": [], "og_images": [ "https:\/\/mopsicus.ru\/pictures\/me.png" ] } } ], "_e2_version": 3572, "_e2_ua_string": "E2 (v3572; Aegea)" }