Новый флаг России

Новый флаг России (заблокировано Роскомнадзором, для чтения пишите в личку)

«- Ваш дизайн — говно!
— Но это дизайн говна!
— А, ну тогда нормально»
Старый анекдот

Буду сразу ебашить сермягу, поэтому не серчайте. Современный флаг России выглядит хуево. С таким флагом только раненым пидарасам сдаваться. Это после распада Союза было актуально, но ебаный стыд, треть века прошло! Мы конечно хуи валенками не пинаем, но на месте не стоим. Лет двадцать назад никто представить не мог, что в обмен на сыр, который мы применяем для укладки тракторных дорог, европейцы будут закупать в России культуру в лице чуваков, которые яйца к площади прибивают. Ебче всего уровень современных достижений сформулировал еще в начале девяностых Юрий Клинских. А как расцвела Москва при Собянине! Короче: жить сейчас со старым флагом никак нельзя, а потому я засосал стакан и захуярил новый флаг страны.

Выглядит блевотно, но зато видна самоирония. У всех стран флаги яркие, а наш будет мрачен как прокурор с бодуна — потому что нельзя достигнуть успеха повторяя за другими, надо выделяться. Основной фон черный — символизирует анархию, которая главенствует на большей части страны. Для москвичей поясню. Россия — это как метро. На станциях-городах движ и яркие лампочки, но основная часть в темноте. Можно посмотреть из окна поезда, но быстро надоест. У каждого есть шанс снаружи побывать, но только когда наступит пиздец. Хотя и в этом случае все выйдут из вагона и пойдут к ближайшей станции.

Крест на флаге напоминает Андреевский, как на флоте, но красный как в армии. Цвет хуй пойми какой — ну извините, какая армия с флотом, такой и цвет. Но тут сразу несколько смыслов. С одной стороны, это крест с военно-морского флага. С другой стороны, это крест, а значит духовность, причем как и духовность кривой. С третьей стороны, это крест на флаге анархистов, который перечеркивает безвластие жестким режимом.

Сердцевина креста выкрашена в цвет HEX #980002. По текстовому наименованию — кроваво-красный. Постепенно он переходит в пыльно-розовый: HEX #d58a94. Еще одна тонкость — крест на флаге нихуя не крест, а сердцевина из знака бесконечности. Прерывается знак или нет — никто не знает, поскольку если и прерывается, то где-то далеко, за границами флага.

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

Оптимисты могут видеть во флаге темную коробку, створки которой открываются навстречу Солнцу. Пессимисты могут видеть ту же коробку, но створки открываются снизу и мы падаем в какую-то жопу. Лингвисты увидят на флаге букву «Х». Историки-лингвисты букву «Хер» («хѣръ»). Математики увидят «икс», египтологи — пирамиды, географы — стороны света, водители — перекресток, почтальоны — конверт, дальтоники — хуйню на черном фоне. Это флаг для всех и для каждого!

Пойду еще стакан ебну.

X-Art

Что ж, друзья, раз я затронул в недавней статье тему картографический парафилии, совершенно невозможно умолчать о ее наивысшем воплощении. Это абсолютная порнография. Картографический бэдээсем. По сравнению с ним, даже редактирование джипега в ImagePalsGo — невинная детская шалость. Но в жизни всегда есть место для того, что-бы попробовать что-то запрещенное. Я попробовал, а потому — уберите детей от экранов. Вот что у меня получилось.

Карта Русской равнины:

Это безумие заняло у меня шесть ночей в нарядах. Во время процесса мне активно позировала карта расположения военно-стратегических объектов северо-атлантического альянса и чуть позже — карта растительности из монографии Берга «География СССР», хранившаяся в библиотеке нетронутой с девяносто четвертого года. Карта исполнена карандашом и шариковой ручкой. К великому сожалению, ввиду служебных пертурбаций завершить ее так и не удалось — подписи остались только в виде набросков.

А вот карта мира. Эта вещь уже посильней чем «Фауст» Гете:

Карта грубовата, более того непосвященный человек всячески ее раскритикует. Что с Кольским полуостровом? Почему вместо Камчатки сосулька? Что с южным полушарием происходит? Южное полушарие — это конечно сплошной косяк, не отрицаю. Но интересно в этой карте не содержание, а способ получения.  Равновеликая азимутальная проекция Ламберта в которой была исполнена исходная карта после несложных геометрических манипуляций была преобразована в проекцию Меркатора. Да, руками. Формулы Бурса-Вольфа? Передискретизация? Полиномиальные преобразования? Все это для слабаков. Вот как выглядит настоящее перепроецирование на лету! Помимо авторучки, при изготовлении был задействован огрызок синего карандаша.

Ну и наконец, высшая стадия картографической парэстезии. Содомия цветов. Визуализация данных OpenStreetMap на территорию Ростовской области. Визуализировал, визуализировал, да так и не вывизуализировал. И не с помощью какого-нибудь mapnik-a, QGis-а или на худой конец фотошопа. Акварельные краски на меду (срок годности истек тринадцать лет назад), блокнот и Cranberries в наушниках — вот инструменты этого безумия!

Если обычная работа с картой вас больше не возбуждает — попробуйте сменить диванный маппинг на девиантный. Ведь, даже по словам Долорес О’Риордан: «Фани хоу тинг джаст тастед беттер! Вен ви вер юнг!»

Опен стайл пиздинг

Ну и месяц. Что ни день то сковывает запястья суета пустого и забивает глаза пыль пустопорожних тщет. Из-за всех этих суетливых мастурбаций я чуть было не пропустил день рождения OpenStreetMap, что состоялся еще в начале августа. Но к счастью, не пропустил, благо пил я в этом месяце каждый день и вариантов избежать праздника у меня просто не было. Весь месяц я ползал по каким-то кустам и счастливым по настоящему почувствовал себя лишь укрываясь перед сном в лесу густым одеялом млечного пути. Но об этом я еще обязательно напишу, а сейчас извините — уже без двадцати девять вечера, а значит скоро закроется магазин. Не будем же терять времени, да и хули тут рассуждать-то? Представляю вашему вниманию исходный код картостиля под названием «Y».

Картостиль есть суть набор правил и файлов, регламентирующих порядок и внешний вид отображения геоданных. В материальном виде это просто код с прилагающимися файлами иконок, шрифтов и прочей требухи. Стиль Y был написан весной текущего года между состояниями суицидальной депрессии и либидозной эйфории, поэтому не удивляйтесь наличию в коде некоторых странных и откровенно нелогичных решений. Однако ближе к сути. Дело было так: одна очень крупная компания, решила кинуть другую очень крупную компанию, а я в этот момент мимо проходил. Я человек не святой, как и все мы: продавал ворованные автомобили, сбывал краденные с завода детали станков, подделывал финансовые документы, пиздил со стройки арматуру, совершил нападение на (тогда еще) милиционера, за что был честно отхуячен дубинкой и вообще много чего плохого в жизни натворил. Несмотря на это к авторскому праву всегда относился трепетно, ибо в жизни каждого мудака должно оставаться что-то святое. Но тут соблазн был слишком велик, что-бы ему противостоять и я отдал себя водам темной страсти, что несли меня по пути самой интеллигентной из форм незаконного обогащения. Я взял да и спиздил картостиль у Яндекса, применив его для данных OSM. Не сказать, что-бы спиздил полностью: иконки и шрифты не трогал, вся работа велась исключительно над классификацией данных и дублированием визуализации линейных и полигональных объектов.

Код писался под Mapnik. Есть еще вариант этого кода написанный на CartoCSS, но он несколько устарел, а потому я его тут не выкладываю. Для отрисовки тайлов в этом стиле рендер должен подсасывать данные OSM в формате шейп-файлов, которые доступны на сайте ГИС-ЛАБа

Конечно-же, результат далек от идеала, однако, как говорил один знакомый прокурор: «похоже до степени смешения». Это еще раз подтверждает, что закрытые проекты сосут перед опенсорсом. Ибо сделать из OpenStreetMap Яндекс-карты — что в носу поковырять, а вот обратно хуй там. Еще есть огромное количество моментов, которые следует исправить, а то и вовсе полностью переделать. Но нет предела совершенству, в отличии от жизни человеческой.

Ну а теперь самое интересное: картинки. Давайте погуляем по зумам. В Яндекс-картах их шестнадцать, со второго по восемнадцатый. Вот второй зум:
2

 

Здесь и далее слева карта Яндекса, справа мое скромное творение.

На низких зумах при стилизации данных OSM возникает проблема приоритета названий: запросто может быть, что надпись «Тринидад и Тобаго» выводиться, а, например, «Япония» нет. Что поделать, такое оно случайное отображение данных. Пришлось ранжировать страны по численности населения и в зависимости от этого ранжировать отображение надписей. Но и тут не все хорошо, а именно есть две проблемы. Во-первых, страны не представляют собой единые полигоны, в результате чего, подписывается не только основная площадь страны, но и какой-нибудь нахуй никому не нужный остров, юридически принадлежащий, скажем Франции. Можно было, конечно исправить это дело путем учета площади, но поверьте, гораздо проще и спокойнее было сделать это ручками, отредактировав непосредственно сами данные.

Третий зум:

3

 

Вторая проблема заключается в том, что названия стран выводятся в центроидах полигонов, отчего выглядят они порой совсем не на своем месте, например, как Финляндия на четвертом зуме:

4

 

Кроме того, названия часто выходят за границы полигонов, ограничивающих сами эти страны. Ох и долго пришлось повозиться, дабы все это настроить должным образом. Зато я понял главное: все что выше пятого зума легче, проще и быстрее отрисовать вручную и не ебать себе мозг автоматизированной визуализацией геоданных. Поверьте, это того не стоит. Всего за пол-часа работы в QGIS я создал нужное количество идеально подходящих для меня слоев (ссылка на них есть в коде стиля), попутно подписав моря, о чем картографы Яндекса совершенно забыли.

На пятом зуме пришлось изрядно возиться с водоемами. Будете смеяться, но в OSM нет единых водотоков, одни кусочно-разрывные графики функций, снабженные разными тегами. Например, вы не можете легко отобразить на карте такую реку, как, Енисей, поскольку часть реки riverbank, часть water, а часть вообще непонятно как тегирована. Дай думаю, посмотрю, а как реки в стандартном стиле отображаются? А вот хрен там, они в стандартном стиле на этих зумах никак не отображаются. Ну что тут поделать? Я налил себе стакан и вывел интересующие меня реки просто по их имени, благо крупных рек выводить много и не требовалось.

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

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

 

Шестой зум заставил изрядно повозиться с названиями рек, которые никак не хотели гармонично сочетаться ни с названиями городов, ни между собой. Проблема та-же: кусочность осмовских данных. По хорошему, перед тем, как писать картостиль не лишним будет убедиться в том, что сами геоданные у вас представлены должным образом, иначе прорва времени будет уходить на латание Тришкина кафтана: в одном месте исправил, в другом все поехало. Я уравновесил эти безумные колебания насколько смог:
6

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

Седьмой зум (да я уже приехал из тайги, поплнил запасы пива и зарядил батарею ноутбука):

7

 

На седьмом зуме, я не удержался и нарисовал простенькие svg-иконки аэропортов, как в Яндексе. С аэропортами тоже все оказалось не так просто, поскольку изрядное количество существующих аэропортов, точнее аэродромов имеют двойное назначение. Пришлось отделять зерна от военной инфраструктуры, зато я узнал о существовании в Подмосковье аэропорта Толмачево.

Восьмой зум:
8

 

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

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

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

 

Еще одна трудность, которая начинается на девятом зуме это железные дороги. Данные OpenStreetMap настолько разнятся в этой части от данных Яндекс карт, что для достижения похожести стилей приходиться применять совсем другое обозначение для железных дорог. В OSM  в отличии от Яндекс-карт отрисована каждая ветка захолустного пути, поэтому применение оригинального стиля ведет к тому, что железные дороги начинают выглядеть как толстые черные полосы. А стоит немного отойти от оригинала и сразу все нормально. Десятый зум:
10

 

Одиннадцатый зум, на котором я потерял названия районов и несколько дней не мог их найти, но в итоге нашел:
11

 

На двенадцатом зуме вновь пришлось создать, даже не иконку, а так, графический примитив для визуализации железнодорожных станций:
12

 

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

 

Четырнадцатый зум:
14

 

Пятнадцатый зум:
15

 

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

 

И слева и справа домики объемны, однако в моих случаях их высота отрицательна. Следствием костыля является невозможность отображения очень высоких зданий, поскольку чем выше домик, тем сильнее смещается на карте его основание, иногда наползая даже на дороги и тротуары. Семнадцатый зум:
17

 

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

 

И еще кое-что. Хоть стиль и можно скачать, но все-таки не забывайте, что пользоваться им незаконно, ибо был он честно спизжен. Как производственный продукт он не годится. А вот для процесса познания того, что OpenStreetMap — круть небесная, в самый раз.