{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Ilya Birman’s Blog: posts tagged projects",
    "_rss_description": "Ilya Birman’s blog on design, cities, music, and life",
    "_rss_language": "en",
    "_itunes_email": "ilyabirman@ilyabirman.net",
    "_itunes_categories_xml": "<itunes:category text=\"Arts\"><itunes:category text=\"Design\" \/><\/itunes:category>\r\n<itunes:category text=\"Society &amp; Culture\"><itunes:category text=\"Personal Journals\" \/><\/itunes:category>\r\n<itunes:category text=\"Technology\" \/>\r\n",
    "_itunes_image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/userpic\/userpic-square@2x.jpg?1573933764",
    "_itunes_explicit": "no",
    "home_page_url": "https:\/\/ilyabirman.net\/meanwhile\/tags\/projects\/",
    "feed_url": "https:\/\/ilyabirman.net\/meanwhile\/tags\/projects\/json\/",
    "icon": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/userpic\/userpic@2x.jpg?1573933764",
    "authors": [
        {
            "name": "Ilya Birman",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/",
            "avatar": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/userpic\/userpic@2x.jpg?1573933764"
        }
    ],
    "items": [
        {
            "id": "384",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/tashkent-metro-wayfinding\/",
            "title": "Tashkent Metro wayfinding",
            "content_html": "<p>I’m happy to show and tell you about a great and very interesting project I’ve done last year. <a href=\"https:\/\/ilyabirman.net\/tashkent-metro\/wayfinding\/\">Tashkent Metro wayfinding<\/a>:<\/p>\n<div class=\"e2-text-picture\">\n<a href=\"https:\/\/ilyabirman.net\/tashkent-metro\/wayfinding\/\" class=\"e2-text-picture-link\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/tashkent-metro-wayfinding-cover.jpg\" width=\"1200\" height=\"800\" alt=\"\" \/>\n<\/a><\/div>\n",
            "summary": "I’m happy to show and tell you about a great and very interesting project I’ve done last year. Tashkent Metro wayfinding",
            "date_published": "2025-12-25T15:52:20+03:00",
            "date_modified": "2025-12-25T15:51:44+03:00",
            "tags": [
                "projects",
                "Tashkent",
                "transportation",
                "wayfinding"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/tashkent-metro-wayfinding-cover.jpg",
            "_date_published_rfc2822": "Thu, 25 Dec 2025 15:52:20 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "384",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/tashkent-metro-wayfinding-cover.jpg"
                ]
            }
        },
        {
            "id": "379",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/superpedestrian\/",
            "title": "Superpedestrian fleet management interface",
            "content_html": "<p>Check out the Superpedestrian fleet management interface:<\/p>\n<div class=\"e2-text-picture\">\n<a href=\"https:\/\/ilyabirman.net\/superpedestrian\/\" class=\"e2-text-picture-link\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/superpedestrian-cover.jpg\" width=\"920\" height=\"607\" alt=\"\" \/>\n<\/a><\/div>\n<p>I like designing interfaces of this kind where you need to figure out an obscure process.<\/p>\n",
            "summary": "Check out the Superpedestrian fleet management interface",
            "date_published": "2025-07-18T18:39:08+03:00",
            "date_modified": "2025-07-18T18:30:49+03:00",
            "tags": [
                "interface",
                "projects",
                "release"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/superpedestrian-cover.jpg",
            "_date_published_rfc2822": "Fri, 18 Jul 2025 18:39:08 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "379",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/superpedestrian-cover.jpg"
                ]
            }
        },
        {
            "id": "378",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/samara-metro-map\/",
            "title": "Samara metro map",
            "content_html": "<p>Check out the new <a href=\"https:\/\/ilyabirman.net\/samara\/\">Samara metro map<\/a>:<\/p>\n<div class=\"e2-text-picture\">\n<a href=\"https:\/\/ilyabirman.net\/samara\/\" class=\"e2-text-picture-link\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/samara-metro.png\" width=\"2000\" height=\"870\" alt=\"\" \/>\n<\/a><\/div>\n<p>Designed  by Nikolay Romanov, directed by myself. Special thanks to Sergey Chikin and Leonid Motovskih.<\/p>\n",
            "summary": "Check out the new Samara metro map",
            "date_published": "2025-06-09T10:26:07+03:00",
            "date_modified": "2025-06-09T10:26:01+03:00",
            "tags": [
                "maps",
                "projects",
                "release",
                "Samara",
                "transit maps"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/samara-metro.png",
            "_date_published_rfc2822": "Mon, 09 Jun 2025 10:26:07 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "378",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/samara-metro.png"
                ]
            }
        },
        {
            "id": "375",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/parus-wayfinding\/",
            "title": "Wayfinding elements for “Parus” station",
            "content_html": "<p>Another project, <a href=\"https:\/\/ilyabirman.net\/parus\/\">wayfinding elements for “Parus” station<\/a>:<\/p>\n<div class=\"e2-text-picture\">\n<a href=\"https:\/\/ilyabirman.net\/parus\/\" class=\"e2-text-picture-link\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/parus-map.jpg\" width=\"920\" height=\"651\" alt=\"\" \/>\n<\/a><\/div>\n",
            "summary": "Another project, wayfinding elements for “Parus” station",
            "date_published": "2024-11-11T09:40:08+03:00",
            "date_modified": "2024-11-11T09:39:54+03:00",
            "tags": [
                "maps",
                "projects",
                "release",
                "wayfinding"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/parus-map.jpg",
            "_date_published_rfc2822": "Mon, 11 Nov 2024 09:40:08 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "375",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/parus-map.jpg"
                ]
            }
        },
        {
            "id": "373",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/wb-suppliers-wayfinding\/",
            "title": "Wayfinding for Wildberries suppliers",
            "content_html": "<p>Check out <a href=\"https:\/\/ilyabirman.net\/wb\/suppliers\/\">a new large project<\/a>: wayfinding for suppliers of Wildberries, the largest Russian online retailer.<\/p>\n<div class=\"e2-text-picture\">\n<a href=\"https:\/\/ilyabirman.net\/wb\/suppliers\/\" class=\"e2-text-picture-link\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/wb-wall-kl@fx.jpg\" width=\"1500\" height=\"1002\" alt=\"\" \/>\n<\/a><\/div>\n<p>Wayfinding is not about drawing signs, but about streamlining the whole scenario of how people find something, and even how they understand what they need to look for. The project included signage, maps, printed instructions, a mobile website, an LED board, and a banner. And that’s all systematized for multiple warehouses.<\/p>\n",
            "summary": "Check out a new large project: wayfinding for suppliers of Wildberries, the largest Russian online retailer",
            "date_published": "2024-10-31T12:09:13+03:00",
            "date_modified": "2024-10-31T12:08:32+03:00",
            "tags": [
                "projects",
                "release",
                "wayfinding"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/wb-wall-kl@fx.jpg",
            "_date_published_rfc2822": "Thu, 31 Oct 2024 12:09:13 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "373",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/wb-wall-kl@fx.jpg"
                ]
            }
        },
        {
            "id": "370",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/tashkent-metro-map\/",
            "title": "Tashkent Metro map",
            "content_html": "<p>Check out our new <a href=\"https:\/\/ilyabirman.net\/tashkent-metro\/\">Metro map for Tashkent, Uzbekistan<\/a>:<\/p>\n<div class=\"e2-text-picture\">\n<a href=\"https:\/\/ilyabirman.net\/tashkent-metro\/\" class=\"e2-text-picture-link\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/tashkent-metro-train.jpg\" width=\"1200\" height=\"900\" alt=\"\" \/>\n<\/a><\/div>\n",
            "summary": "Check out our new Metro map for Tashkent, Uzbekistan",
            "date_published": "2024-02-03T18:31:31+03:00",
            "date_modified": "2024-02-03T18:31:21+03:00",
            "tags": [
                "design",
                "projects",
                "transit maps",
                "wayfinding"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/tashkent-metro-train.jpg",
            "_date_published_rfc2822": "Sat, 03 Feb 2024 18:31:31 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "370",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/tashkent-metro-train.jpg"
                ]
            }
        },
        {
            "id": "360",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/chelyabinsk-transit-reform-communication\/",
            "title": "Chelyabinsk transit reform communication",
            "content_html": "<p>Check out the case about one of the stages in <a href=\"https:\/\/ilyabirman.net\/chelyabinsk\/reform\/\">Chelyabinsk transit reform communication<\/a> — route changes from January 1, 2022:<\/p>\n<div class=\"e2-text-picture\">\n<a href=\"https:\/\/ilyabirman.net\/chelyabinsk\/reform\/\" class=\"e2-text-picture-link\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/chelyabinsk-transit-reform-communication.jpg\" width=\"1200\" height=\"600\" alt=\"\" \/>\n<\/a><\/div>\n",
            "summary": "Check out the case about one of the stages in Chelyabinsk transit reform communication — route changes from January 1, 2022...",
            "date_published": "2023-08-08T14:24:33+03:00",
            "date_modified": "2023-08-08T14:23:30+03:00",
            "tags": [
                "design",
                "projects",
                "release",
                "transportation",
                "wayfinding"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/chelyabinsk-transit-reform-communication.jpg",
            "_date_published_rfc2822": "Tue, 08 Aug 2023 14:24:33 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "360",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/chelyabinsk-transit-reform-communication.jpg"
                ]
            }
        },
        {
            "id": "355",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/dom-toma-website\/",
            "title": "Dom Toma’s online store",
            "content_html": "<div class=\"e2-text-picture\">\n<a href=\"https:\/\/ilyabirman.net\/dom-toma\/\" class=\"e2-text-picture-link\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/dom-toma-cover.jpg\" width=\"1200\" height=\"600\" alt=\"\" \/>\n<\/a><\/div>\n<p>Check out my design project from 2019: <a href=\"https:\/\/ilyabirman.net\/dom-toma\/\">an online store for ‘Dom Toma’<\/a>. I had to manage to show both the variety of the collection and the individuality of the items. Repost everywhere and come back for good design!<\/p>\n",
            "summary": "Check out my design project from 2019: an online store for ‘Dom Toma’. I had to manage to show both the variety of the collection and the individuality of the items",
            "date_published": "2023-06-25T13:52:20+03:00",
            "date_modified": "2023-06-25T13:52:15+03:00",
            "tags": [
                "design",
                "projects",
                "web"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/dom-toma-cover.jpg",
            "_date_published_rfc2822": "Sun, 25 Jun 2023 13:52:20 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "355",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/dom-toma-cover.jpg"
                ]
            }
        },
        {
            "id": "342",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/derbent-bus-map\/",
            "title": "Derbent bus map",
            "content_html": "<p>Check out our new transit map. This time it’s <a href=\"https:\/\/ilyabirman.ru\/derbent\/\">Derbent<\/a>:<\/p>\n<div class=\"e2-text-picture\">\n<a href=\"https:\/\/ilyabirman.net\/derbent\/\" class=\"e2-text-picture-link\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/derbent-bus-map-cover@2x.jpg\" width=\"1000\" height=\"500\" alt=\"\" \/>\n<\/a><\/div>\n<p>We made it with Nikita Dubrovin. The city is undergoing a public transport reform. The first bunch of bus routes have been simplified: 3, 4, 7, 10. The challenge was to lay out the old routes, which are still confusing. In several years, all routes will look reasonable.<\/p>\n",
            "summary": "Check out our new transit map. This time it’s Derbent",
            "date_published": "2022-10-25T16:11:36+03:00",
            "date_modified": "2022-10-25T16:13:22+03:00",
            "tags": [
                "projects",
                "release",
                "transit maps",
                "transportation",
                "wayfinding",
                "work"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/derbent-bus-map-cover@2x.jpg",
            "_date_published_rfc2822": "Tue, 25 Oct 2022 16:11:36 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "342",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/derbent-bus-map-cover@2x.jpg"
                ]
            }
        },
        {
            "id": "336",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/bus-lane-sign\/",
            "title": "Bus lane sign",
            "content_html": "<p>Together with Nikita Dubrovin, we made <a href=\"https:\/\/ilyabirman.net\/bus-lane-sign\/\">a new road sign<\/a>:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/bus-lane-sign@2x.png\" width=\"1000\" height=\"659\" alt=\"\" \/>\n<\/div>\n<p>The text says: “Dedicated lane only for fixed-route transport. In operation since 28th of August. Fine for entry: 1500 ₽”.<\/p>\n<p>In some cities public transit is just beginning to receive proper treatment. Many drivers are yet unaccustomed to bus lanes and may ignore the official sign 5.14 “Lane for fixed-route transport”. Our sign explains the idea of a dedicated lane in words, while also teaching standard signs and markings.<\/p>\n",
            "summary": "Together with Nikita Dubrovin, we made a new road sign",
            "date_published": "2022-10-09T17:22:47+03:00",
            "date_modified": "2022-10-09T17:20:40+03:00",
            "tags": [
                "design",
                "projects",
                "road signs"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/bus-lane-sign@2x.png",
            "_date_published_rfc2822": "Sun, 09 Oct 2022 17:22:47 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "336",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/bus-lane-sign@2x.png"
                ]
            }
        },
        {
            "id": "330",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/barprephero-ui\/",
            "title": "BarPrepHero user interface",
            "content_html": "<p>I designed the new <a href=\"https:\/\/ilyabirman.ru\/projects\/barprephero-ui\/\">user interface for the BarPrepHero app<\/a>. Now it stands out among apps for lawyers:<\/p>\n<div class=\"e2-text-picture\">\n<a href=\"https:\/\/ilyabirman.ru\/projects\/barprephero-ui\/\" class=\"e2-text-picture-link\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/barprephero-ui.jpg\" width=\"920\" height=\"460\" alt=\"BarPrepHero user interface\" \/>\n<\/a><\/div>\n",
            "summary": "I designed the new user interface for the BarPrepHero app. Now it stands out among apps for lawyers",
            "date_published": "2021-10-18T15:47:57+03:00",
            "date_modified": "2021-10-18T15:47:43+03:00",
            "tags": [
                "design",
                "interface",
                "projects"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/barprephero-ui.jpg",
            "_date_published_rfc2822": "Mon, 18 Oct 2021 15:47:57 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "330",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/barprephero-ui.jpg"
                ]
            }
        },
        {
            "id": "307",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/jouele-pro\/",
            "title": "Jouele Pro",
            "content_html": "<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/jouele-2015-logo@2x.png\" width=\"273\" height=\"64\" alt=\"Jouele Pro\" \/>\n<\/div>\n<p>Jouele is an amazing audio player for the web. It was built to look simple and beautiful, and to use a simple and beautiful declarative API. With Jouele, you write code like this:<\/p>\n<pre class=\"e2-text-code\"><code>&lt;a href=&quot;ilya-birman-use-me-mix.mp3&quot; class=&quot;jouele&quot;&gt;\n  Ilya Birman: Use Me (DJ Mix)\n&lt;\/a&gt;<\/code><\/pre><p>And you get a player like this:<\/p>\n<div class=\"e2-text-audio\">\n<div class=\"e2-jouele-wrapper\"><a class=\"jouele\" data-space-control=\"true\" href=\"http:\/\/promodj.com\/download\/6419453\/\">Ilya Birman: Use Me (DJ Mix)<\/a><\/div>\n<\/div>\n<p>Playlists, repeating and keyboard control were gradually added in the recent years. But we wanted Jouele to be even more advanced and versatile. And we didn’t want to sacrifice the declarative nature of Jouele’s APIs.<\/p>\n<p>So we came up with something great: <a href=\"https:\/\/ilyabirman.net\/projects\/jouele\/pro\/\">Jouele Pro<\/a> with custom controls. Let me tell you about it.<\/p>\n<h2>What you can do with Jouele Pro<\/h2>\n<p>I’ve recently started publishing <a href=\"https:\/\/ilyabirman.net\/mixes\/use-me\/\">interactive playlists<\/a> for my DJ mixes. You can click the cover art to start and pause playback. You can click a track’s name, and the mix will jump to that track. And the currently playing track gets automatically highlighted in the playlist when the playback reaches it.<\/p>\n<p><a href=\"https:\/\/ilyabirman.net\/mixes\/use-me\/\">Try it<\/a> before reading on.<\/p>\n<p>The magic is that neither the cover art, nor the playlist are a part of the Jouele user interface. The are just part of the page, layed out the way I want. But they gain their special abilities by using Jouele Pro’s declarative API.<\/p>\n<p>So I have a player inserted with the code above, by using the CSS class <tt>jouele<\/tt> on an HTML <tt>a<\/tt> element. And I want the cover image to initiate and pause playback.<\/p>\n<p>Here’s what I do:<\/p>\n<pre class=\"e2-text-code\"><code>&lt;img\n  src=&quot;cover.jpg&quot;\n  class=&quot;jouele-control&quot;\n  data-type=&quot;play-pause&quot;\n\/&gt;<\/code><\/pre><p>That’s it. Now, when you click this image, the mix starts to play.<\/p>\n<p>And to make the playlist items clickable, I do this:<\/p>\n<pre class=\"e2-text-code\"><code>&lt;tr class=&quot;jouele-control&quot;\n  data-type=&quot;seek&quot; data-to=&quot;0:45:38&quot;\n&gt;\n  &lt;td&gt;0:45:38&lt;\/td&gt;\n  &lt;td&gt;Tensal&lt;\/td&gt;\n  &lt;td&gt;Achievement 3&lt;\/td&gt;\n&lt;\/tr&gt;<\/code><\/pre><p>Now when you click on a track’s name, you go directly to it in the mix.<\/p>\n<p>I also want the cover art to look somehow “active” when the music is playing. Here’s what I do in CSS:<\/p>\n<pre class=\"e2-text-code\"><code>img.jouele-is-playing {\n  outline: rgba(255, 255, 255, .2) 10px solid;\n}<\/code><\/pre><p>That’s it. Jouele Pro dynamically sets the class <tt>jouele-is-playing<\/tt> on each of its controls during playback, so the cover art highlighting now works. No JavaScript needed.<\/p>\n<p>The same way the highlighting of the currently playing playlist item works. The actual HTML code for each playlist item is this:<\/p>\n<pre class=\"e2-text-code\"><code>&lt;tr class=&quot;jouele-control&quot;\n  data-type=&quot;seek&quot; data-range=&quot;0:45:38...0:48:55&quot;\n&gt;\n  &lt;td&gt;0:45:38&lt;\/td&gt;\n  &lt;td&gt;Tensal&lt;\/td&gt;\n  &lt;td&gt;Achievement 3&lt;\/td&gt;\n&lt;\/tr&gt;<\/code><\/pre><p>This line is not just to jump to a point in time, but it also corresponds to a time range. To dynamically highlight it, I use this CSS:<\/p>\n<pre class=\"e2-text-code\"><code>tr.jouele-is-within {\n  background: rgba(255, 255, 255, .2);\n  color: #fd0093;\n}<\/code><\/pre><p>That’s it. Jouele sets the class <tt>jouele-is-within<\/tt> to all its range controls when the playback is within this range.<\/p>\n<p>If there are several players on a page, the controls control the one that was playing previously, or the first one on the page, if nothing was playing before. You can link the controls to a particular player.<\/p>\n<p>Jouele Pro is $39 per domain name. The free Jouele is available as before.<\/p>\n<p>Links:<\/p>\n<ul>\n  <li><a href=\"https:\/\/ilyabirman.net\/projects\/jouele\/\">Jouele<\/a><\/li>\n  <li><a href=\"https:\/\/ilyabirman.net\/projects\/jouele\/pro\/\">Jouele Pro<\/a><\/li>\n  <li><a href=\"https:\/\/ilyabirman.net\/projects\/jouele\/documentation\/\">Documentation<\/a><br \/>\n  How to use the declarative API and the controls. There is also an example of a full custom player built with the controls<\/li>\n  <li><a href=\"http:\/\/eugene-lazarev.ru\/\">Evgeniy Lazarev<\/a>, the developer of Jouele and Jouele Pro<\/li>\n<\/ul>\n",
            "summary": "Jouele is an amazing audio player for the web. It was built to look simple and beautiful, and to use a simple and beautiful declarative API",
            "date_published": "2019-05-18T19:21:19+03:00",
            "date_modified": "2019-05-18T19:18:28+03:00",
            "tags": [
                "Jouele",
                "my products",
                "projects",
                "release"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/jouele-2015-logo@2x.png",
            "_date_published_rfc2822": "Sat, 18 May 2019 19:21:19 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "307",
            "_rss_enclosures": [
                {
                    "url": "http:\/\/promodj.com\/download\/6419453\/",
                    "type": null,
                    "length": ""
                }
            ],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css",
                    "jquery\/jquery.js",
                    "jouele\/jouele.css",
                    "jouele\/jouele.js"
                ],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/jouele-2015-logo@2x.png"
                ]
            }
        },
        {
            "id": "310",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/chelyabinsk-trams-diagram-2018\/",
            "title": "The new Chelyabinsk Trams diagram",
            "content_html": "<p>Over ten years ago I made <a href=\"https:\/\/ilyabirman.net\/projects\/chelyabinsk-trams\/2008\/\">the diagram of Chelyabinsk trams and trolleybuses<\/a>. That design turned out to be very successful: dozens of designers used it as a reference for building their own diagrams. It wouldn’t be as good if not for Artem Gorbunov’s generous help.<\/p>\n<p>Three years ago, together with Alexander Karavaev we <a href=\"https:\/\/ilyabirman.net\/projects\/chelyabinsk-trams\/2015\/\">made a new version of the diagram<\/a>. It had a lot of design inventions: the “pencil-drawn” layer for buses and trolleybuses, the “watercolour” rivers and lakes, 3D terminals, the new shape of the stops’ ticks. With that diagram, a logo for chelyabinsk trams was born: the city’s coat of arms decorated with a pantograph.<\/p>\n<p>Then Polina Lesnikova joined the team. She re-drew the map to account for the changes in routes. Together with Alexander, they changed a lot of details after testing the legibility of the previous version. Thus we arrived at <a href=\"https:\/\/ilyabirman.net\/projects\/chelyabinsk-trams\/2018\/\">the new diagram<\/a>:<\/p>\n<div class=\"e2-text-picture\">\n<a href=\"https:\/\/ilyabirman.net\/projects\/chelyabinsk-trams\/2018\/\" class=\"e2-text-picture-link\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/chelyabinsk-trams-2018-full.jpg\" width=\"1280\" height=\"1102\" alt=\"\" \/>\n<\/a><\/div>\n<p>Some landmarks were added. The bus-and-trolleybuses layer gave the previous version some visual richness, and it was interesting to scrutinise. Unfortunately, it didn’t provide any notable utility, so we decided to remove it. This helped to simplify the geometry of lines and make the fonts bigger. The new diagram looks stronger.<\/p>\n<p>Designed by Polina Lesnikova and Alexander Karavaev, art-directed by myself.<\/p>\n",
            "summary": "Over ten years ago I made the diagram of Chelyabinsk trams and trolleybuses. That design turned out to be very successful",
            "date_published": "2018-02-18T15:49:19+03:00",
            "date_modified": "2018-02-18T15:54:41+03:00",
            "tags": [
                "projects",
                "release",
                "transportation"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/chelyabinsk-trams-2018-full.jpg",
            "_date_published_rfc2822": "Sun, 18 Feb 2018 15:49:19 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "310",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/chelyabinsk-trams-2018-full.jpg"
                ]
            }
        },
        {
            "id": "305",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/500tech-logo-website\/",
            "title": "Work for 500Tech",
            "content_html": "<p>Done a couple of projects for 500Tech.<\/p>\n<p><a href=\"https:\/\/ilyabirman.net\/projects\/500tech-logo\/\">Improved the logo<\/a> (it was almost the same, but I had to rebuild it from scratch):<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/500tech-logo@2x.png\" width=\"588\" height=\"320\" alt=\"\" \/>\n<\/div>\n<p><a href=\"https:\/\/ilyabirman.net\/projects\/500tech-website\/\">Made a website<\/a> (was totally different):<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/500tech-website.jpg\" width=\"1024\" height=\"1773\" alt=\"\" \/>\n<\/div>\n",
            "summary": "Done a couple of projects for 500Tech",
            "date_published": "2018-01-20T17:47:15+03:00",
            "date_modified": "2018-01-20T17:46:15+03:00",
            "tags": [
                "projects"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/500tech-logo@2x.png",
            "_date_published_rfc2822": "Sat, 20 Jan 2018 17:47:15 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "305",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/500tech-logo@2x.png",
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/500tech-website.jpg"
                ]
            }
        },
        {
            "id": "300",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/aegea-2-7\/",
            "title": "Aegea 2.7 released",
            "content_html": "<div class=\"e2-text-picture\">\n<a href=\"http:\/\/blogengine.me\/\" class=\"e2-text-picture-link\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/aegea-og-image-en.jpg\" width=\"1200\" height=\"630\" alt=\"Aegea 2.7 Released\" \/>\n<\/a><\/div>\n<p><a href=\"http:\/\/blogengine.me\/\">Aegea 2.7<\/a> has been released. Aegea is a great blogging engine.<\/p>\n<h2>What’s new<\/h2>\n<p>There are several new design themes, which look like this:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/aegea-2-7-matrix@2x.jpg\" width=\"1044\" height=\"724\" alt=\"\" \/>\n<\/div>\n<p>All new themes are based on the existing theme Plain, but redefine some CSS variables:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/aegea-2-7-code@2x.jpg\" width=\"839\" height=\"566\" alt=\"\" \/>\n<\/div>\n<p>Above is the code of the theme “Douglas”, which looks like this:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/aegea-2-7-douglas@2x.jpg\" width=\"1024\" height=\"704\" alt=\"\" \/>\n<\/div>\n<p>You can now easily preview the themes from Settings. There is a link that opens <a href=\"https:\/\/ilyabirman.net\/meanwhile\/settings\/theme-preview\/\">a special contrived page<\/a>, which includes all sorts of blog elements to test. This makes building themes much easier as you can preview your CSS in one place instead of wandering around the blog looking for elements to check.<\/p>\n<p>The editor now supports these Google Docs keyboard shortcuts, thanks to Igor Adamenko:<\/p>\n<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" class=\"e2-text-table\">\n  <tr>\n    <td style=\"text-align: left\">⌘B<\/td>\n    <td style=\"text-align: left\">bold<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: left\">⌘I<\/td>\n    <td style=\"text-align: left\">italic<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: left\">⌘K<\/td>\n    <td style=\"text-align: left\">hyperlink<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: left\">⌘⌥1<\/td>\n    <td style=\"text-align: left\">heading<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: left\">⌘⌥2<\/td>\n    <td style=\"text-align: left\">subheading<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: left\">⌘⌥0<\/td>\n    <td style=\"text-align: left\">usual paragraph<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: left\">⌘]<\/td>\n    <td style=\"text-align: left\">indent<\/td>\n  <\/tr>\n  <tr>\n    <td style=\"text-align: left\">⌘[<\/td>\n    <td style=\"text-align: left\">outdent<\/td>\n  <\/tr>\n<\/table>\n<p>There are also multiple improvements to the features related to social networking, comments, search, RSS and JSON feed, uploading of images and audio.<\/p>\n<h2>About Aegea<\/h2>\n<p>An engine is a program that runs on the blogger’s website. It provides the writing tools to the author, shows the posts to the readers and lets them write comments. Medium.com (or similar) is simpler, but they can shut down and take all your posts offline. With an engine, the blog runs on your own website and you have access to the files and the database (you don’t have to deal with the files or the database, but you own all the data).<\/p>\n<p>I want most people to have access to personal blogging in this way. That’s why it uses the most easily available platform: PHP with MySQL.<\/p>\n<p>Aegea powers this and many other blogs. Among my favourites:<\/p>\n<ul>\n  <li><a href=\"https:\/\/oleganza.com\/\">Oleg Andreev<\/a>, software designer and crypto-anarchy historian, on Bitcoin and related stuff<\/li>\n  <li><a href=\"http:\/\/daniellesden.com\/blog\/\">Daniel Lesden<\/a> on music production<\/li>\n  <li><a href=\"http:\/\/deathbypassivevoice.com\/\">Death by Passive Voice<\/a>, on writing, by Max Bears<\/li>\n<\/ul>\n<p>With Aegea, you can use one of the built-in themes or customise it however you like (this blog is an example). Be flexible with comments: allow and disallow them globally or per post. Refine posts using Drafts. Add images, videos, audio or code to illustrate your point. Organise your writing with tags.<\/p>\n<p>Designers, writers, musicians and software developers use Aegea to show their work, communicate and spread knowledge. They love it because it’s simple and fast yet does everything they need. Aegea is free for personal use and paid for business use.<\/p>\n<p>Learn more and get Aegea at <a href=\"http:\/\/blogengine.me\/\">blogengine.me<\/a>.<\/p>\n",
            "summary": "Aegea 2.7 has been released. Aegea is a great blogging engine",
            "date_published": "2017-12-08T17:53:00+03:00",
            "date_modified": "2017-12-08T17:52:50+03:00",
            "tags": [
                "Aegea",
                "my products",
                "projects",
                "release"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/aegea-og-image-en.jpg",
            "_date_published_rfc2822": "Fri, 08 Dec 2017 17:53:00 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "300",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/aegea-og-image-en.jpg",
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/aegea-2-7-matrix@2x.jpg",
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/aegea-2-7-code@2x.jpg",
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/aegea-2-7-douglas@2x.jpg"
                ]
            }
        },
        {
            "id": "274",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/aegea-2-6\/",
            "title": "Aegea 2.6 released",
            "content_html": "<div class=\"e2-text-picture\">\n<a href=\"http:\/\/blogengine.me\/\" class=\"e2-text-picture-link\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/aegea-og-image-en.jpg\" width=\"1200\" height=\"630\" alt=\"Aegea 2.6 Released\" \/>\n<\/a><\/div>\n<p><a href=\"http:\/\/blogengine.me\/\">Aegea 2.6<\/a> has been released. Aegea is a great blogging engine.<\/p>\n<p>What’s new:<\/p>\n<ul>\n  <li>Continuous autosaving of form data in post editors. Data is being saved locally in the browser. If the browser or the OS crashes, when you open the editor again, your latest changes will be there. If you edit the post from another device and save the changes to server, the most recent server version will open.<\/li>\n  <li>The new search finds more relevant posts, works faster and formats the results in a better way. It will not show the full posts, but just the fragments with the search query. If the found post contains images, it will show their thumbnails for quicker identification. For example, try searching <a href=\"http:\/\/ilyabirman.net\/meanwhile\/found\/street\/\" class=\"nu\">“<u>street<\/u>”<\/a> in this blog.<\/li>\n  <li>It’s now easier to set a post’s cover image for social networks. Just drag an image into the editor’s page. If you drop in onto the Text field, if will be inserted in text, but if you drop it outside the Text field, it will just get added to the post. Social networks will see it as part of the post, but it will not get displayed in its text.<\/li>\n  <li>Improved database migration from older versions.<\/li>\n  <li>Multiple other small improvements.<\/li>\n<\/ul>\n<p>An engine is a program that runs on the blogger’s website. It provides the writing tools to the author, shows the posts to the readers and lets them write comments. Medium.com (or similar) is simpler, but they can shut down and take all your posts offline. With an engine, the blog runs on your own website and you have access to the files and the database (you don’t have to deal with the files or the database, but you own all the data).<\/p>\n<p>I want most people to have access to personal blogging in this way. That’s why it uses the most easily available platform: PHP with MySQL.<\/p>\n<p>Aegea powers this and many other blogs. Among my favourites:<\/p>\n<ul>\n  <li><a href=\"http:\/\/deathbypassivevoice.com\/\">Death by Passive Voice<\/a>, on writing, by Max Bears<\/li>\n  <li><a href=\"http:\/\/daniellesden.com\/blog\/\">Daniel Lesden blog<\/a>, on music production, by Daniel Lesden.<\/li>\n<\/ul>\n<p>With Aegea, you can use the built-in neutral theme or customise it however you like (this blog is an example). Be flexible with comments: allow and disallow them globally or per post. Refine posts using Drafts. Add images, videos, audio or code to illustrate your point. Organise your writing with tags.<\/p>\n<p>Designers, writers, musicians and software developers use Aegea to show their work, communicate and spread knowledge. They love it because it’s simple and fast yet does everything they need. Aegea is free for personal use and paid for business use.<\/p>\n<p>Learn more and get Aegea at <a href=\"http:\/\/blogengine.me\/\">blogengine.me<\/a>.<\/p>\n",
            "summary": "Aegea 2.6 has been released. Aegea is a great blogging engine",
            "date_published": "2017-05-05T10:59:53+03:00",
            "date_modified": "2017-05-05T10:59:50+03:00",
            "tags": [
                "Aegea",
                "my products",
                "projects",
                "release"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/aegea-og-image-en.jpg",
            "_date_published_rfc2822": "Fri, 05 May 2017 10:59:53 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "274",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/aegea-og-image-en.jpg"
                ]
            }
        },
        {
            "id": "271",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/securige-operator-ui\/",
            "title": "Securige operator user interface",
            "content_html": "<p>I’ve designed <a href=\"http:\/\/ilyabirman.net\/projects\/securige\/\">the UI for the panel protection program Securige<\/a>. It’s a program where operators see if someone’s broken into your apartment and send the rapid response team if they have. That’s what it looks like:<\/p>\n<div class=\"e2-text-picture\">\n<a href=\"http:\/\/ilyabirman.net\/projects\/securige\/\" class=\"e2-text-picture-link\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/ui@2x.jpg\" width=\"1440\" height=\"810\" alt=\"Securige operator user interface\" \/>\n<\/a><\/div>\n<p>My favourite moment of the project was when I was sitting at the operator’s post quietly (it was the condition to let me in), and the operators are like “if you have questions, just ask!”. And so I started asking. That’s where I’ve learned why the keyboard is almost never used. Otherwise I wouldn’t have come up with the Fitts-law-optimised search bar on the left.<\/p>\n<p>Also, when I asked what irritated the most in the existing program, everyone said: “it’s fine”. But when I gave examples of possible improvements, they said: “wow, can this be done?”.<\/p>\n<p>Very interesting project. A whole book on user interface can be written just on the examples from this one. Read a more <a href=\"http:\/\/ilyabirman.net\/projects\/securige\/\">detailed description<\/a>.<\/p>\n",
            "summary": "I’ve designed the UI for the panel protection program Securige. It’s a program where operators see if someone’s broken into your apartment and send the rapid response team if they have...",
            "date_published": "2017-05-02T20:56:20+03:00",
            "date_modified": "2017-05-02T20:54:33+03:00",
            "tags": [
                "interface",
                "projects",
                "work"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/ui@2x.jpg",
            "_date_published_rfc2822": "Tue, 02 May 2017 20:56:20 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "271",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/ui@2x.jpg"
                ]
            }
        },
        {
            "id": "269",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/jouele-2-3\/",
            "title": "Jouele 2.3",
            "content_html": "<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/jouele-2015-logo@2x.png\" width=\"273\" height=\"64\" alt=\"Jouele 2.3\" \/>\n<\/div>\n<p><a href=\"http:\/\/ilyabirman.net\/projects\/jouele\/\">Jouele<\/a> is a simple and beautiful audio player for the web. Eugene Lazarev has been developing it lately.<\/p>\n<p>Version 2.3 has been released. Jouele now uses Howler (bundled) instead of jPlayer. This change helps use less bandwidth, display the preloader better and get rid of several bugs. The <tt>data-repeat<\/tt> feature is now supported on single tracks. When a file is unavailable, Jouele shows this with an icon, instead of just “hanging”. The markup works better in different browsers.<\/p>\n<p>Song example:<\/p>\n<div class=\"e2-text-audio\">\n<div class=\"e2-jouele-wrapper\"><a class=\"jouele\" data-space-control=\"true\" href=\"http:\/\/audio.ilyabirman.ru\/Ilya%20Birman%20-%20When%20I%20Am%20128.mp3\">Ilya Birman: When I Am 128<\/a><\/div>\n<\/div>\n<p>See documentation <a href=\"https:\/\/github.com\/ilyabirman\/Jouele\">on Github<\/a>.<\/p>\n",
            "summary": "Jouele is a simple and beautiful audio player for the web. Eugene Lazarev has been developing it lately",
            "date_published": "2017-04-30T16:18:08+03:00",
            "date_modified": "2017-04-30T16:17:11+03:00",
            "tags": [
                "Jouele",
                "projects",
                "web"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/jouele-2015-logo@2x.png",
            "_date_published_rfc2822": "Sun, 30 Apr 2017 16:18:08 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "269",
            "_rss_enclosures": [
                {
                    "url": "http:\/\/audio.ilyabirman.ru\/Ilya%20Birman%20-%20When%20I%20Am%20128.mp3",
                    "type": "audio\/mpeg",
                    "length": ""
                }
            ],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [
                    "jquery\/jquery.js",
                    "jouele\/jouele.css",
                    "jouele\/jouele.js"
                ],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/jouele-2015-logo@2x.png"
                ]
            }
        },
        {
            "id": "262",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/mimic-client-feedback\/",
            "title": "Mimic 2.0: The client’s feedback",
            "content_html": "<p>I’ve recently designed the new <a href=\"http:\/\/ilyabirman.net\/projects\/mimic\/\">user interface for Mimic<\/a>, a web developer tool for mocking server responses in a browser. Ilya Gelman, one of the Mimic’s developers, comments on working with me:<\/p>\n<blockquote>\n<p>Ilya is of that rare kind of designers that seek to find solutions to problems instead of matching colors and shadows. He asks the right questions, concentrates on important things and understands that real products aren’t just beautiful pictures on dribble. He helped us redefine our tool to make it simpler to use and easier to understand.<\/p>\n<p>Working with local Israeli designers, we usually communicated by real-time channels like Slack, WhatsApp or phone. It was a bit different with Ilya because we had to communicate mainly via email and had to schedule our calls ahead of time. Part of this was the difference in time zones and part of it was Ilya’s principle of managing his own time, which I can fully understand and respect. All in all we never had an issue of lack of communication and everything was always delivered on time.<\/p>\n<p>What I liked about Ilya the most is that he was able to explain the reasoning behind his design decisions, and that he knew how to work together with us to get our tool released on time.<\/p>\n<\/blockquote>\n",
            "summary": "I’ve recently designed the new user interface for Mimic, a web developer tool for mocking server responses in a browser",
            "date_published": "2017-04-01T20:42:30+03:00",
            "date_modified": "2017-04-01T20:42:28+03:00",
            "tags": [
                "feedback",
                "projects",
                "quotes"
            ],
            "_date_published_rfc2822": "Sat, 01 Apr 2017 20:42:30 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "262",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "259",
            "url": "https:\/\/ilyabirman.net\/meanwhile\/all\/mimic-ui\/",
            "title": "User interface for Mimic 2.0",
            "content_html": "<p>A web application’s front end (what the user sees) and back end (what happens on a remote server) are often developed separately. If the back end of some feature is not ready yet, the front-end developer is very limited in what they can do.<\/p>\n<p>I’ve designed the user interface for Mimic 2.0, a web developer tool for mocking server responses in a browser. With Mimic, you can develop as if the server was alive. It’s very easy to set up a simple mock. Say, you want to pretend the server responds with a line of JSON:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/mimic-qe@2x.png\" width=\"1078\" height=\"76\" alt=\"\" \/>\n<\/div>\n<p>It lets you set up very advanced mocks, adjusting HTTP headers, timeouts and what not:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/ilyabirman.net\/meanwhile\/pictures\/mimic-ui-preview@2x.png\" width=\"1078\" height=\"497\" alt=\"\" \/>\n<\/div>\n<p>The great thing about Mimic is that you don’t need to set up a local server and change request URIs in your application. It works with the existing applications as they are, right in the browser. And you don’t even need to install browser extensions: you just link one script to your application and that’s it.<\/p>\n<p>Read more about the user interface <a href=\"http:\/\/ilyabirman.net\/projects\/mimic\/\">on the project page<\/a>.<\/p>\n",
            "summary": "A web application’s front end (what the user sees) and back end (what happens on a remote server) are often developed separately",
            "date_published": "2017-03-17T12:02:24+03:00",
            "date_modified": "2017-03-18T01:55:44+03:00",
            "tags": [
                "interface",
                "projects",
                "web"
            ],
            "image": "https:\/\/ilyabirman.net\/meanwhile\/pictures\/mimic-qe@2x.png",
            "_date_published_rfc2822": "Fri, 17 Mar 2017 12:02:24 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "259",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": [
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/mimic-qe@2x.png",
                    "https:\/\/ilyabirman.net\/meanwhile\/pictures\/mimic-ui-preview@2x.png"
                ]
            }
        }
    ],
    "_e2_version": 4269,
    "_e2_ua_string": "Aegea 12.0a (v4269e)"
}