feeneek

Feeneek — простая открытая библиотека для совместного картирования

Изначально Feeneek разрабатывалась как простой инструмент для создания гео-вики приложений («Википедия» про объекты с географической привязкой). В текущей версии эта концепция отринута в пользу табличного представления информации и акценте на удобстве ввода и администрирования данных.

Библиотека написана на JavaScript (нативная версия) с небольшой серверной частью на PHP. Для отображения тайлов использована библиотека leaflet.js, для вывода графиков — Chart.js.

Для установки достаточно скопировать архив и распаковать его на своем сервере. По всем вопросам и замечаниям рекомендую писать в телеграм (@openstreetmapper), почту (schwejk-rpnt@rambler.ru) или в комментарии к этому посту.

Обзор библиотеки

Старые версии библиотеки

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

Дата сборкиСсылка на скачиваниеДемо-версия
22_02_2016 (Butko Sonne)СкачатьДемо-версия
03_02_2016 («McClane Lichtgestalt»)СкачатьДемо-версия
03_06_2015 («McClane Lichtgestalt»)СкачатьДемо-версия

Берцы

Берцы

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

Порой хватает мимолетного взгляда, чтобы сказать человеку твердое «нет» и не объяснять причин отказа. А как объяснить? Потому что шнурки плохо завязаны?

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

Реформирование высшей школы

Реформирование высшей школы

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

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

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

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

Даже если я неправ, результатом моих реформ станет уменьшение количества спама. А это уже неплохо.

Об огурцах и программировании

Об огурцах и программировании

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

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

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

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

Единственный нормальный язык — Brainfuck. Остальные — полная дрянь. C++ почти идеален, но внешний вид текста «воид фасткалл» меня бесит. Питон хорош, но не поставить фигурную скобку столь же мучительно, как закрыть дверной замок, а после этого не подергать за ручку двери. Ходишь потом весь день и не понимаешь: закрыл ты дверь или нет. PHP прекрасен своей доступностью, но я скорее соглашусь огурцы в задницу пихать, чем использовать в программе знак доллара и конкатенировать через точку. Я смирился бы с JS, но он в одних браузерах работает так, в других эдак. Если бы не требовалась работа с объектной моделью, то все было бы норм, но тогда и JS был бы не нужен. А самое главное — джаваскрипт безальтернативен, а я ненавижу всякое проявление тоталитаризма которое не возглавляю.

Пишите документацию и юнит-тесты. Кем бы вы ни были, открыв исходник через месяц вы удивитесь. Код — полная хрень и как оно работает никому неизвестно.

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

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

Единственная достойная методология разработки — это KISS. Все остальное лишь способ циркуляции идиотизма. Способность укладываться в оговоренный срок и стоимость — первый признак деградации. А еще, лучше быть проституткой, чем сотрудником на аутстаффе.

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

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

Территория

Пять лет мне рекомендовали посмотреть фильм «Территория«, но каждый раз находились более важные дела. А тут вдруг наварил кастрюлю макарон и фильм посмотрел.

Вердикт однозначен: фильм «Территория» — полная и беспросветная хрень. Герои безликие почти как в чеховском «Вишневом саду», сюжета нет, лондоновская тема преодоления звучит вяло и наигранно. Смотреть интересно лишь когда показывают плато Путорана и еще когда внучка пастуха обнажает сиськи.

Особенно бесит как легко геологи уходят в одиночные многодневные маршруты. Даже если допустить, что образцы отбирать не надо, все-равно выглядит наивно. У меня к концу дня одни пробы на атомно-абсорбционный анализ (тоже золото искал) весили несколько килограмм. А еще надо пробы на шлиф добавить, еду и походный инвентарь. Груз получается слишком тяжелый.

Но проблема одиночных многодневных маршрутов даже не в весе рюкзака. Допустим, что геологи — супергерои. На самом деле больших неженок, чем геологи, среди полевиков найти трудно, но допустим. Плюнем даже на технику безопасности. Но как быть, если на второй день маршрута сломается молоток? И в чем смысл отправлять человека на сложный маршрут если в одиночку большую часть времени он будет занят не работой, а бытовыми вопросами? Что, в партии рабочих нехватает или вдруг их беречь начали?

Вся полевая специфика показана в фильме удручающе плохо. Такое чувство, будто технологический прогресс дает индульгенцию на съемку всякой дряни. Для сравнения вспомните кадр из «Злого духа Ямбуя» где Федосеев ртом дотягивается до чернички.

Фильм «Территория» хорош только в одном: макарошки под него чудесно зашли.

Картографическая шутка от Шелдона Купера

Картографическая шутка от Шелдона Купера

В одной из серий «Теории большого взрыва» на Шелдоне футболка с принтом карты в проекции Миллера. Сцена настолько возмутительна, что сразу ощущаешь подвох. И не зря.

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

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

Гораздо разумнее представить футболку как деформированную сферу и спроецировать одну поверхность на другую так, чтобы в разрывах рукавов, ворота и основания футболка сохраняла исходные значения. Это легко можно сделать если выразить исходную сферу как множество вещественных чисел, а сферу футболки как множество комплексных чисел. Тогда ткань футболки будет соответствовать подмножеству комплексных чисел с нулевой мнимой частью.

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

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

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

Как в Европе

Как в Европе

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

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

Наверняка не одну сотню раз вы слышали фразу «Жить как в Европе». В ответ я раньше советовал поехать туда и лично убедиться, в глупости сказанного. Одно дело — негроидный Париж, другое — арабские кварталы Кельна, третье — пустота ночного Бергамо, четвертое — меланхолия вечернего Йоэнсуу. А еще есть венгерский соцреализм, иберийская Россия и Афины, которые больше напоминают Индию. Европа вся разная.

Произнося «как в Европе», обычно представляют Швейцарию, но ведь можно и Косово. Ехать самому для доказательства крайне полезно, но уж больно долго и дорого. Пока не снимут карантин, можно заняться картированием. Из Сербии в Австрию, затем погулять по Албании и заскочить в чешскую деревушку. В бывшей Югославии прекрасно почти как в сибирской тайге: всегда найдется, что замапить. Но и в окрестностях Германии можно наскрести по сусекам недостающие домики.

Даже картирование показывает как сильно отличаются друг от друга европейские страны. С другой стороны, вспоминаю свои правки в Конго, Мадагаскаре и Сомали: по сравнению с Африкой, между Шахтами и Валенсией разницы вообще никакой нет.

Травяной чай

Травяной чай

В новом году следует бросить вредные привычки и заняться здоровьем. Я даже купил травяной чай, на упаковке которого написано, будто он «восстанавливает душевное равновесие». В самом деле, нельзя же вечно заваривать сразу несколько пакетиков самых дешевых опилок с ароматизаторами, сожалея лишь о том, что дополнительно кипятить их в кружке долго и хлопотно.

Заварил смесь и стал готовить себя к «нормализации нервной системы» и «улучшению самочувствия». Дождался насыщения. Перелил из заварной кружки в свою обычную.

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

Теперь я в гневе и точно нужно восстанавливаться. Хорошо еще, что с праздников треть бутылки джина осталась.

Зеркальный тест

Зеркальный тест

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

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

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

Ценности в опыте никакой, но разбавить им зимнее уныние вполне можно.

Политический детектив

Политический детектив

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

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

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

Действительно ли разговор выложен целиком? Да, есть ссылка на полную версию, но там лишь звуковая дорожка, а на видео прекрасно видно, что запись ведется в Audacity, где вырезать любой кусок может даже ребенок.

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

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

Перед нами три карты: большая политическая и две малых, скорее всего топографических. Политическая интереса не представляет, там все-равно ничего не разобрать, зато остальные крайне любопытны. Судя по стилю, они обе из одного источника (конечно, с некоторой вероятностью). На той, что слева внизу угадывается Томск от безымянного острова перед Коммунальным мостом до острова Энеков. Что-ж, это ожидаемо. Но что на другой карте, которая справа вверху? Неужели район гостиницы «Ксандер», где произошло отравление? А может знаменитое село Кафтанчиково, где купался Навальный? А вот хрен. Ближайшее, хоть сколько-нибудь похожее место — в северо-западном пригороде Томска: город Северск.

Откуда такой интерес? Может потому, что первое название этого места — поселок Чекист? А может потому, что там расположен Сибирский химический комбинат — комплекс заводов по переработке и обогащению урана и плутония? Но это значит, там в избытке фторид урана, да и плавиковую кислоту достать не проблема. О фосфоре с азотом можно даже не говорить. А если тайно проникнуть на завод и по незнанию… впрочем, тут я остановлюсь. Пусть сценаристы продолжают, им все-таки деньги за это платят.

Конечно, все сказанное хрень, но оцените какой сюжет! А вместо этого — история про то как трусы измазали. Как зритель, я совершенно недоволен, однако с педагогической точки зрения признаю: все верно. Нет лучшего подарка для молодых исследователей, чем лишний раз напомнить цитату Жванецкого: «Тщательнее надо, ребята. Формулы вам дали, только надо руки помыть тому пацану, который колбу держит. А то потравим друг друга окончательно».