Как стать автором
Обновить
104
Карма
44
Рейтинг

java / open source

Как поместить весь мир в обычный ноутбук: PostgreSQL и OpenStreetMap

PostgreSQL *Java *OpenStreetMap *Геоинформационные сервисы *

Когда человек раньше говорил что он контролирует весь мир, то его обычно помещали в соседнюю палату с Бонапартом Наполеоном. Надеюсь, что эти времена остались в прошлом и каждый желающий может анализировать геоданные всей земли и получать ответы на свои глобальные вопросы за минуты и секунды. Я опубликовал Openstreetmap_h3 — свой проект, который позволяет производить геоаналитику над данными из OpenStreetMap в PostGIS или в движке запросов, способном работать с Apache Arrow/Parquet.

Первым делом передаю привет хейтерам и скептикам. То что я разработал — действительно уникально и решает проблему преобразования и анализа геоданных используя обычные и привычные инструменты доступные каждому аналитику и датасаенс специалисту без бигдат, GPGPU, FPGA. То что выглядит сейчас простым в использовании и в коде — это мой личный проект в который я инвестировал свои отпуска, выходные, бессонные ночи и уйму личного времени за последние 3 года. Может быть я поделюсь и предысторией проекта и граблями по которым ходил, но сначала я все же опишу конечный результат.

Первый пост не претендует на монографию, начну с краткого обзора...

Читать далее
Всего голосов 44: ↑44 и ↓0 +44
Просмотры 3.4K
Комментарии 1

Попробуй пройди за 4 часа тестовое задание в канадскую компанию

Java *IT-эмиграция Интервью

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

Читать далее
Всего голосов 37: ↑28 и ↓9 +19
Просмотры 33K
Комментарии 70

Что поможет вам стать программистом

Программирование *Java *Учебный процесс в IT Карьера в IT-индустрии

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

* Определить свою мотивацию, нишу и специализацию

* Нужно ли профильное высшее образование.

И еще больше десятка пунктов личного рецепта, не только для Java разработчиков... Надеюсь, что эти советы помогут вам стать востребованным и хорошо оплачиваемым специалистом!

Читать далее
Всего голосов 17: ↑14 и ↓3 +11
Просмотры 21K
Комментарии 17

Сколько школ во всем мире? Чтение сотен гигабайт OpenStreetMap данных в JVM из Apache Arrow

Open source *PostgreSQL *Программирование *Java *OpenStreetMap *

JVM основная платформа для Big Data решений, таких как Hadoop, Spark, Presto, NiFi но на производительность значительно влияют копирование/сериализация данных "на каждый чих" с последующей сборкой мусора и отсутствие SIMD оптимизаций при работе с данными.

А можно ли в программе на JVM прочитать сотни гигабайт Parquet файлов без Spark/Hadoop? В этом нам поможет библиотека Apache Arrow - проект, которым объединяются десятки решений для работы с Большими Данными. Но для этого даже не обязателен кластер с тысячами ядер и петабайты хранилища! Обработку данных начнем с "золотого стандарта" для open source: PostgreSQL 14 + PostGIS 3.2.0, а продолжим на OpenJDK 11 + Apache Arrow 9.0.0.

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

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 2.9K
Комментарии 8

Миллиард операций в базе данных за 0.3 секунды. Не сравнивайте OLTP с OLAP, а QuestDB с PostgreSQL

Высокая производительность *Программирование *Java *
Очень часто за свой 15летний опыт работы разработчиком ПО и тимлидом я сталкиваюсь с одним и тем же. Программирование превращается в религию — редко кто пытается внедрять технологии на основе разумного выбора, аргументированно, с учетом ограничений, возможностей переносимости, оценки степени привязки к вендору, реальной цены, перспектив технологии и свободы лицензий. Разработчики ходят на конференции или читают посты — заводятся на хайповость, а их ИТ директоров и менеджеров кормят не только сказками о светлом аджайл будущем на мероприятиях различные визионеры, сейлы и консалтеры. И получается что технологии оказались в проекте не с учетом удобства разработки и внедрения, нефункциональных требований проекта, а потому что это хайпово и google у себя использует, amazon рекомендует(хотя их вакансии говорят что сами не часто используют) или принято высочайшее решение руководства компании внедрять «это».


Но особое веселье — это выбор базы данных. Чем больше объемы хранимой информации, сложнее структуры данных в проекте и их изменения/эволюция, выше требования ко времени отклика или производительности тем дороже стоит ошибка выбора в начале на поздних стадиях проекта.
Читать дальше →
Всего голосов 11: ↑9 и ↓2 +7
Просмотры 8.6K
Комментарии 7

Эволюция H2 — оконные функции, CTE, JSON/XML во встраиваемой базе данных

Open source *Java *SQL *
Есть open source проекты которые стали коммерчески успешным мейнстримом, как например PostgreSQL/Elasticsearch. Другие, к примеру RethinkDB, проиграли на рынке и остановили разработку. А проект H2 database встраиваемой базы данных, написанной на языке java, развивается и здравствует в своей нише.


Для демонстрации функционала SonarQube, Jira, Confluence при первом запуске используют H2 database. H2 является базой для запуска SQL тестов в памяти, почти в любом JVM проекте. Есть пример применения менее известный пользователям — это использование H2 в распределенном ignite-sql и это уже production ready сценарий использования встраиваемой базы данных как части другого решения. Меньше месяца назад вышла версия 1.4.199 в которой теперь можно писать достаточно сложные SQL запросы.
Читать дальше →
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 7.4K
Комментарии 10

Эмуляция Amazon web services в JVM процессе. Уклоняемся от Роскомнадзора и ускоряем разработку и тестирование

Open source *Java *Amazon Web Services *
Зачем же может потребоваться эмулировать инфраструктуру Amazon web services?

Прежде всего это экономия — экономия времени на разработку и отладку, и что не менее важно — экономия денег из бюджета проекта. Понятно что эмулятор не будет на 100% идентичен исходной среде которую пытаемся эмулировать. Но для целей ускорения разработки и автоматизации процесса существующего сходства должно хватать. Наиболее злободневное что случилось в 2018 году с AWS — это блокировки провайдерами IP адресов подсетей AWS в РФ. И эти блокировки затронули нашу инфраструктуру, размещенную в облаке Amazon. Если планируете использовать технологии AWS и размещать проект в этом облаке, то для разработки и тестирования эмуляция с лихвой окупается.



В публикации расскажу, как нам удалось выполнить такой трюк с сервисами S3, SQS, RDS PostgreSQL и Redshift при миграции существующего много лет хранилища данных на AWS.
Читать дальше →
Всего голосов 13: ↑13 и ↓0 +13
Просмотры 6.2K
Комментарии 10

Один клик в интерфейсе Booking com может испортить отпуск или почему важна работающая система рейтингов

Service Desk *Здоровье
Итак, у сервиса-посредника есть правила и большинство клиентов их соблюдает. Казалось бы, что если их нарушаешь, тебя ждёт бан, голод и банкротство. Так только в теории, есть некоторый процент пользователей сервиса который процветает и здравствует, «прокачивает» свой рейтинг всеми возможными способами и избегает негативных оценок грязными методами игры.



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

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

Публикацию разделю на части — теоретическую о состоянии отрасли и практические примеры из пользовательского опыта на основе которого появилась эта теория. Прежде всего желаю читателям, чтобы ни одна из описанных ситуаций с вами не случилась. Но если вдруг произошло, то предупреждён — значит вооружён.
Всего голосов 43: ↑25 и ↓18 +7
Просмотры 29K
Комментарии 94

Жизнь с Java SE 8 и Java SE 11 по $25 за процессор в месяц

Системное администрирование *Java *
Java разработчики завороженно наблюдают за выходом java 9, 10 и на подходе 25 сентября 2018 должна выйти Java 11. Чехарда релизов — то о чем так долго просили состоялось и новые фичи JVM выходят каждые пол года. Во многом это идет на пользу экосистеме, но при этом создает множество сложностей для эксплуатации ПО на JVM. Java release train мчит по рельсам навстречу!



Все бы хорошо, но при этом в январе 2019 прекращается бесплатная поддержка Java SE 8. Для тех же компаний, кто не успевает тестировать приложение на новых версиях Oracle предлагает купить коммерческую лицензию на Java SE 8 для получения обновлений. Для разработчиков и для персонального пользования заявляют о поддержке обновлений по крайней мере, до конца 2020 года.
Читать дальше →
Всего голосов 19: ↑17 и ↓2 +15
Просмотры 34K
Комментарии 80

Взаимные превращения JSON, YAML, XML

Программирование *Java *
JSON, YAML сейчас популярны, а XML технологии считаются пережитком прошлого.


Попробуем использовать «ретро технологии» для работы с данными в формате JSON и YAML. И порассуждаем о причинах применять их в наши дни.
Читать дальше →
Всего голосов 13: ↑11 и ↓2 +9
Просмотры 15K
Комментарии 11

Девчачьи радости в интерьере — не розовая полка с интернет-радио и RGB подсветкой

Настройка Linux *Open source *Java *
Осталось пара недель до 8 марта и если верить поговорке, сапожник обычно остается без сапог. Так же и Надя, дизайнер по текстилю в интерьере, жила без удобной мебели. Многие знают, как сложно найти в компактное пространство российской квартиры идеально подходящую по размерам полку или тумбочку.



Когда обошли почти все магазины, стало ясно что проще всего сделать такую мебель самим. Можно смастерить индивидуальную не только габаритами, но и функциями полку и сэкономить свободное пространство в комнате.
Осторожно! Под катом видео tutorial, много фото и диаграмм.
Всего голосов 37: ↑30 и ↓7 +23
Просмотры 15K
Комментарии 54

Как новичку сделать вклад в open source проект с 20К звездами?

Open source *Java *GitHub *
На хабре публикуют перевод статей про участие в open source продуктах и складывается впечатление что жизнь, полная энтузиастов, где-то за границей. Что новичку страшно участвовать в крупных проектах, что у него обязательно должны быть там кураторы и его pull request вместе с ним точно пройдет через все круги ада.

Опыт друга, новичка в open source, говорит об обратном. Первый его pull request #11680 приняли в звездный spring-boot без обсуждения и без единого комментария от мейнтейнеров. Его исправления будут доступны уже в версии 2.0.0.RC1



Не боги горшки обжигают. Рассуждения о возможности стать контрибьютором крупного проекта на github…
Читать дальше →
Всего голосов 31: ↑25 и ↓6 +19
Просмотры 16K
Комментарии 46

Как изменение двух строк кода может занять несколько дней

Open source *Программирование *Java *Amazon Web Services *GitHub *
Интересно верит ли кто-либо еще что работу разработчика можно измерить количеством строк кода? Попробуем вместе развенчать этот старый, как мир, миф своими красными глазами.


Сложно ли изменить две строчки кода?
Как прочувствовал это на своей шкуре...
Всего голосов 45: ↑37 и ↓8 +29
Просмотры 21K
Комментарии 44

Потрошитель исходников и AST дерево Spring Boot

Open source *Программирование *Java *
Недавно мне попалась необычная задача получить доступ к комментариям кода в рантайм.



Это поможет поймать сразу 3х зайцев — кроме документации в коде проекта из тестов проекта легко будет сгенерировать sequence diagram, которые смогут читать аналитики, а QA сможет сравнить свои тест планы с автотестами проекта и дополнить их при необходимости. Появляется общий язык в команде между теми кто пишет код и теми кто не может его читать. Как результат — лучшее понимание проекта всеми в процессе разработки ну и с точки зрения разработчика не нужно рисовать ничего вручную — код и тесты первичны. Больше шансов что такая документация будет самой актуальной на проекте, так как генерируется из работающего кода. Заодно дисциплинирует разработчика документировать классы и методы, которые участвуют в диаграммах.

В этой публикации я расскажу как же извлечь javadoc из исходного кода проекта.
И в финале распотрошим документацию Spring Boot
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 4.5K
Комментарии 1

CrateDB: снаружи как PostgreSQL, а внутри Elasticsearch

Open source *Java *Groovy & Grails *NoSQL *
С моей прошлой публикации о распределенной базе данных CrateDB прошло около года. Проект на основе Elasticsearch и PrestoDB написан на Java. Он за это время активно развивался и обрастал новым функционалом в github репозитарии:

  • поддержка outer join;
  • case when… then… end в запросах;
  • функции для работы с пространственными(Geospatial) данными;
  • возможно отображение данных временных рядов (Time Series) в Grafana;
  • ограниченная поддержка подзапросов;
  • узлы кластера работающие в режиме только чтения;
  • эмуляцией подмножества протокола PostgreSQL 9.5;


Приятной неожиданностью было обнаружить в github проекта, что в команде CrateDB есть русскоговорящий разработчик Руслан. Достаточно быстро получил от него ответ на вопросы про внутреннее устройство и зависимости проекта.
Читать дальше →
Всего голосов 14: ↑14 и ↓0 +14
Просмотры 8.4K
Комментарии 4

GitHub Pages для сайта на 8 марта

Open source *Программирование *Java *GitHub *Системы сборки *
Что такое HTML, CSS, JavaScript и Bootstrap фреймворк сложно объяснять человеку который далек от IT. А что если нужен сайт на бесплатном хостинге, без привязки к онлайн конструкту именно этого хостинга?!



Как думаете, реально научить девушку обновлять свой сайт на GitHub Pages к Международному женскому дню?! Расскажу как мне это удалось с помощью генератора сайта, который доступен на Github и написан на Java + FreeMarker, к тому же старался автоматизировать публикацию контента в git репозитарий.
Всего голосов 34: ↑23 и ↓11 +12
Просмотры 33K
Комментарии 56

Разработка JDK 9 прошла фазу «Feature Complete»

Open source *Программирование *Java *
Марк Рейнхольд (Mark Reinhold) главный архитектор платформы Java в Oracle на днях сообщил в рассылке что разработка JDK 9 прошла фазу «Feature Complete».
image

Что значит, что добавление новой функциональности в проект приостановлено и теперь необходимо сконцентрировать усилия сообщества разработчиков на исправлении ошибок.
Читать дальше →
Всего голосов 27: ↑25 и ↓2 +23
Просмотры 11K
Комментарии 13

Компиляция Java программ и разрешение зависимостей в runtime

Программирование *Java *Groovy & Grails *Системы сборки *
Как можно совместить некоторые достоинства динамических языков со строгой типизацией в обычном Java коде?
Читать дальше →
Всего голосов 11: ↑10 и ↓1 +9
Просмотры 12K
Комментарии 2

Модуляризация в JavaSE без OSGI и Jigsaw

Программирование *Java *Groovy & Grails *Системы сборки *
mvn-classloader — загрузчик классов и ресурсов из maven совместимых репозитариев. Этот проект позволяет добавить ограниченную по возможностям и не сложную систему модулей в JavaSE приложение, где не нужна вся мощь и сложность OSGI.


Про то что еще позволяет делать mvn-classloader кроме модулей узнаете в статье.
Читать дальше →
Всего голосов 9: ↑8 и ↓1 +7
Просмотры 6.2K
Комментарии 22

Первые шаги в Java: как начать разрабатывать ничего не устанавливая

Программирование *Java *Системы сборки *
По прошествию многих лет я подумал, а как бы я разрабатывал свою первую программу на Java, если бы я начал сегодня?


Знакомство с Java было в университете и при воспоминаниях об этом бросает в холодный пот. Кроме нового незнакомого языка, приходилось устанавливать какой-то JDK, потом IDE, потом создавать первый проект и вручную добавлять в него библиотеки. Делать по аналогии с готовыми программами и ловить неизведанные java.lang.ClassNotFoundException и java.lang.NoSuchMethodException и тому подобный ужас. Когда знал как работать только в операционной системе Windows и доступ в интернет был по модему через телефонную линию.

Надеюсь интересно будет как тем, кто делает первые шаги в java и тем, кто помнит jdk 1.4. Попробуем online IDE Eclipse Che.
Узнаем новое или попробуем повторить первые шаги в java сейчас...
Всего голосов 23: ↑18 и ↓5 +13
Просмотры 79K
Комментарии 41

Информация

В рейтинге
122-й
Откуда
Россия
Зарегистрирован
Активность