Pull to refresh
12
0
Anton A.Belichkov @za90

быдлокодер

Send message

Алгоритм ранжирования сегментов речной сети с использованием графов для геоинформационного анализа

Reading time18 min
Views2.8K

Привет, Хабр.


В данной статье хотелось бы затронуть тему применения информационных технологий в Науках о Земле, а именно, в Гидрологии и Картографии. Под катом представлено описание алгоритма ранжирования водотоков и реализованного нами плагина для открытой геоинформационной системы QGIS.

Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments7

Сергей Астахов: «Рисовать карту в OpеnStreetMap — это одна из разновидностей волонтёрства»

Reading time9 min
Views2.3K

Сергей Астахов — опытный программист из Санкт-Петербурга, который начал свою карьеру в начале 90-х годов. Но вот уже 11-й год подряд он дружит с OSM, а с недавних пор снимает ортофотопланы с коптера. Как он это делает, что ему нравится в OSM и зачем рисовать карту — обо всем этом он рассказал в интервью.
Читать дальше →
Total votes 3: ↑2 and ↓1+1
Comments4

Реализация двустороннего A* на двух потоках

Level of difficultyHard
Reading time10 min
Views5K

На Хабре можно найти немало статей, посвящённых оптимизациям поиска кратчайшего пути на графе. Я расскажу ещё про еще один подход. Речь пойдёт о распараллеливании алгоритма A* и исполнении его на двух потоках, а также о сложностях, с которыми я столкнулся при реализации, и их преодолении.

Читать далее
Total votes 56: ↑56 and ↓0+56
Comments35

Cool WSL (Windows Subsystem for Linux) tips and tricks

Reading time3 min
Views4.4K
It's no secret I dig WSL (Windows Subsystem for Linux) and now that WSL2 is available in Windows Insiders Slow it's a great time to really explore the options that are available. What I'm finding is so interesting about WSL and how it relates to the Windows system around it is how you can cleanly move data between worlds. This isn't an experience you can easily have with full virtual machines, and it speaks to the tight integration of Linux and Windows.

Look at all this cool stuff you can do when you mix your peanut butter and chocolate!

Read more →
Total votes 5: ↑3 and ↓2+1
Comments1

Как мы используем юнит-тестирование в СУБД Oracle

Reading time7 min
Views7K

В некоторых технологиях и языках программирования юнит-тестирование — уже давно неотъемлемая часть написания кода. Оно интегрировано в разработку и доступно «из коробки» в виде фреймворков, как, например, JUnit для Java, xUnit/nUnit для C# и т. д. Но в Oracle культура юнит-тестирования мало распространена. В статье я расскажу, как и зачем мы внедрили автотесты при разработке на Oracle и для чего их используем.

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments4

Человейник, тебе меня не сломить! Анализ жилья в мегаполисе

Reading time13 min
Views105K
Вчера на них никто не обращал внимание, а сегодня они повсюду. Человейники атакуют! Официально они именуются ЖК эконом-класса, а по сути являются гигантскими бетонными коробками из дешевых материалов. Москва задает моду на уплотнительную застройку и возведение целых районов человейников. И вот уже из Питера, Новосибирска и других зон поражения раздается безысходное «понастроили тут». Как всегда, под ударом простой народ. В красной зоне риска — люди, созревшие для покупки или аренды квартир.

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


Человейники Гонконга. Интересно, можно ли будет сделать такую фотку в Москве лет через 30?
Читать дальше →
Total votes 159: ↑155 and ↓4+151
Comments766

OpenStreetMap часть средняя: визуализация скрытых данных

Reading time6 min
Views3.7K

Все мы привыкли, рассматривая классические базовые подложки в интернете, видеть населённые пункты, дороги и их названия, дома с их номером. Но даже у этих объектов свойств куда больше чем просто имя или номер. У зданий это этажность, у дорог количество полос, а у городов количество жителей. Но это только верхушка айсберга — OpenStreetMap настолько богат разнообразными пространственными данными, что часть из них вы просто никогда не видели. И без специализированных рендеров никогда не увидите, разве что при редактировании данных заинтересуетесь, что это за линия со странными тегами. Вот сегодня мы и сделаем такой ультроспециализированный рендер по показу лесных кварталов.


Лесные кварталы

Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments11

Питон в коробке – venv в python 3.3

Reading time4 min
Views153K
Наверняка, большинство из тех, кто разрабатывает или деплоит Python приложения, использует виртуальные окружения. В частности через virtualenv, написанный Ian Bicking.

Идея оказалась так хороша и распространена, что нечто похожее теперь присутствует в Python 3.3 из коробки в виде модуля venv. Он почти такой же, как virtualenv, только немного лучше.
Читать дальше →
Total votes 47: ↑44 and ↓3+41
Comments24

Russian Railway Simulator (RRS): первый публичный релиз

Reading time5 min
Views91K
Наступил тот долгожданный мной день, когда я наконец могу представить эту разработку. Проект был начат ровно год назад, 1 сентября 2018 года, по крайней мере в репозитории RRS на Gtihub первый коммит имеет именно такую дату.

Пассажирский поезд на станции Ростов Главный (кликабельно)



Что такое RRS? Это открытый кроссплатформенный симулятор подвижного состава колеи 1520 мм. Читатель закономерно задаст вопрос: «Позвольте, а для чего нужен этот проект, если симуляторов железнодорожной тематики, как коммерческих, так и открытых, достаточное количество?» За ответом на этот вопрос я и предлагаю заглянуть под кат
Total votes 226: ↑217 and ↓9+208
Comments198

Визуализация комментариев на ютубе: ролики, каналы, жанры, кросс-жанры

Reading time5 min
Views4.9K
Всем привет! Таннер Стоукс в свое время написал адд-он, переделывающий текст комментариев на ютубе в “herp derp”. Кому-то это сделало жизнь намного лучше. Мы пошли по тому же пути, но немного изменили концепцию. Мы представляем комментарии с ютуба в виде картинок, а точнее графов с вершинами и ребрами. И визуализируем все типы объектов — от роликов и каналов до кросс-жанровых пересечений. Как мы это делаем? Давайте выясним.


Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments3

Телега для датасайентиста

Reading time15 min
Views52K

How to deploy Python Telegram bot using Webhooks on Google Cloud Platform


Вместо предисловия


image

— Напиши телеграм-бота. Сейчас даже школьники пишут, — сказала она.
— А почему бы и нет, — подумал я тогда ( — Ну, ну, — сказал бы я сейчас).


Мы сидели в Бине и за чашкой кофе обсуждали возможности тестирования идей с моделями искусственного интеллекта на близком и не очень круге друзей. Лена, моя бывшая коллега, и во всех отношениях не блондинка, только что закончившая магистратуру, рассуждала так. Создав бота, можно сэкономить силы и время на интерфейсе, сосредоточившись на ядре с машинным обучением. Согласитесь, что устоять против такой логики “спортсменки, комсомолки и просто красавицы” в то прекрасное воскресное утро было невозможно. Решено. Телеграм-бот, значит телеграм-бот.


Первым делом я залез в гугл и нашел большое число ссылок “как сделать бот за 30 минут”. Это меня настолько воодушевило, что дальше названий я не пошел и занялся созданием ядра. В самом первом приближении мне предстояло написать систему обработки поисковых запросов с использованием NLP (natural language processing). Написание ядра заняло некоторое, вполне разумное, время (все же опыт кока-колой не пропить). И через несколько дней я был готов к тому, чтобы за пару часов обернуть первую тестовую версию ядра в пару другую команд send-receive, запустив все это в Телеграме на благо моим друзьям. Но не тут-то было.


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

Читать дальше →
Total votes 49: ↑45 and ↓4+41
Comments35

Мультимодельные СУБД — основа современных информационных систем?

Reading time15 min
Views16K

Современные информационные системы достаточно сложны. Не в последнюю очередь их сложность обусловлена сложностью обрабатываемых в них данных. Сложность же данных зачастую заключается в многообразии используемых моделей данных. Так, например, когда данные становятся «большими», одной из доставляющих неудобства характеристик считается не только их объем («volume»), но и их разнообразие («variety»).


Если вы пока не находите изъяна в рассуждениях, то читайте дальше.


Шампунь 5-в-1

Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments45

Oh, My Code: Как работает MAPS.ME

Reading time9 min
Views22K
MAPS.ME — карты №1 для путешественников. Сегодня это 110 млн установок по всему миру, возможность добавлять авторские туристические маршруты и самостоятельно менять карты. Как работает уникальный проект для путешественников, рассказывает его руководитель Евгений Лисовский.


Total votes 55: ↑53 and ↓2+51
Comments38

Серверная кластеризация маркеров на карте. От теории к практике

Reading time7 min
Views31K
Привет Хабр. История начинается с того что мы решили сделать гео сервис с возможностью размещения меток на карте самими пользователями.
И когда решили залить в базу 1 миллион маркеров то поняли, что даже если запрашивать маркеры только в определенном радиусе то все работает очень медленно и кластеризация на клиенте тоже не вариант :)

А где-то под этим лесом находится манхетен


Подробности
Total votes 32: ↑30 and ↓2+28
Comments37

Что нужно запомнить программисту, переходящему на Python

Reading time11 min
Views50K

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


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


  • Билл Любанович «Простой Python. Современный стиль программирования»
  • Дэн Бейдер «Чистый Python. Тонкости программирования для профи»
  • Бретт Слаткин «Секреты Python: 59 рекомендаций по написанию эффективного кода»

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


В итоге у меня накопились какие-то заметки об особенностях питона, которые, как мне кажется, могут быть полезны тому кто пожелает мигрировать на него с других языков.

Читать дальше →
Total votes 46: ↑41 and ↓5+36
Comments33

swirl: стремительное погружение в R (learning by doing)

Reading time4 min
Views17K


Еще каких-нибудь полтора года назад я был одним из тех, кто убежденно говорил «Нет, программирование — это точно не для меня». Не рискну сказать, что я стал программистом, но за последний год R заменил мне большинство повседневных программ для работы. Я работаю исследователем. С интересом наблюдаю, как постепенно R становится стандартом в академическом мире. В общем, в мире ширится понимание того, что с компьютером имеет смысл общаться чуть свободнее, чем на уровне программ click&drag. Так, совсем недавно Медуза писала о том, что не все прогеры девственники программирование стоит изучать гораздо более широкому кругу людей, чем всегда было принято считать.

В этом посте я расскажу об одном из самых коротких путей к программированию — изучении R с помощью специального пакета swirl (пакет в R — это то же, что во многих других языках называется библиотекой, расширение/дополнение исходного функционала). Пост рассчитан на читателя с нулевым знанием R, заинтересованного в изучении этого языка программирования; он поможет, как мне кажется, максимально эффективно и безболезненно сделать первые шаги в темный лес программирования.

Почему именно R?
Короткий ответ: потому что только этим я могу поделиться, других языков программирования не знаю.

Развернутый ответ: R — универсальный инструмент, который может пригодиться очень широкому кругу специалистов. Это полностью открытый и очень динамично развивающийся проект с кучей вдохновенных последователей по всему миру. Каждый может написать свой пакет и выложить в открытом доступе (это действительно не очень сложно). R предоставляет безграничные возможности для визуализации данных. Чтобы вдохновиться, можно заглянуть в одну из галерей (например, вот или вот). Возможности анализа данных безграничны. Только чтобы обратить внимание на самое впечатляющее, предлагаю взглянуть на этот пост.

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

Для исследователя R — это просто must.

Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments7

Сборник демографических рассказов в одной карте

Reading time2 min
Views16K

fig0


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


Kashnitsky, I., & Schöley, J. (2018). Regional population structures at a glance. The Lancet, 392(10143), 209–210. https://doi.org/10.1016/S0140-6736(18)31194-2

Собственно, вот карта в высоком разрешении (кликабельно).


fig1


Карту можно воспроизвести точь-в-точь за несколько минут, код на гитхабе.


Данные создают цвета

Читать дальше →
Total votes 75: ↑74 and ↓1+73
Comments40

Гуляем по городу с умом: как я делал сервис для построения интересных пешеходных маршрутов

Reading time13 min
Views56K
UPD: так как тема хорошо зашла и показала наличие спроса на такой сервис, буду развивать его дальше. Завел паблик вконтакте для сбора фидбека и публикации информации об обновлениях https://vk.com/sightsafari

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

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



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

Описание алгоритма и примеры работы под катом, ссылка в конце.
Читать дальше →
Total votes 114: ↑113 and ↓1+112
Comments215

Thinking in HTML

Reading time8 min
Views7.5K

В предыдущей статье я рассказал немного о вёрстке газеты с помощью прямой генерации постскрипт-файлов из отдельных готовых макетов. Комментаторы обратили моё внимание на LaTeX. Для меня было очевидно, что в описанном мной случае LaTeX был избыточным, но осадок остался. И я пошёл искать подробности в Яндексе.


LaTeX поразил меня прежде всего размером пакета texlive-full. Затем — сложностью вставки кавычек-ёлочек: надо каждый раз переключаться на латиницу. Я попробовал начать писать эту статью в LaTeX, и понял, что это не нужно. Потому что а) у Хабра другие требования (например, кавычки Хабр делает сам), и б) у меня тоже другие требования: если статья не для Хабра, я всё равно буду ставить обычные кавычки, а потом заменю их на ёлочки макросом в Виме.


Думаю, так рассуждаю не я один — что удобнее во время написания текста ставить какие-то простые метки, обозначающие кавычки, ссылки, жирность, нумерованный список… А потом заменять эти метки на универсальную разметку типа HTML с помощью, допустим, Markdown.pl.

Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments23

Новогодний датасет: открытая семантика русского языка

Reading time7 min
Views8.2K
Новый год — время чудес и подарков. Главным чудом, которое подарила нам природа, безусловно является естественный язык и человеческая речь. А мы, в свою очередь, хотим сделать новогодний подарок всем исследователям этого феномена и поделиться датасетом по открытой семантике русского языка.

В статье мы позволим себе немного подискутировать на тему смыслов, расскажем как мы пришли к необходимости создания открытой семантической разметки, расскажем о настоящих результатах и будущих направлениях этой большой работы. И, конечно, дадим ссылку на датасет, который вы сможете скачать и использовать для своих экспериментов и исследований.
Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments8
1
23 ...

Information

Rating
Does not participate
Location
Магнитогорск, Челябинская обл., Россия
Date of birth
Registered
Activity