Как стать автором
Обновить
1
@arapovaolgaread⁠-⁠only

Пользователь

Отправить сообщение

Монады с точки зрения теории категорий

Время на прочтение9 мин
Количество просмотров35K

Введение

Кажется, монады в программировании стали загадкой века. И для этого есть две причины:
  • недостаточное знание теории категорий;
  • многие авторы стараюстся не упоминать категории вообще.
Это как говорить об электричестве не используя мат. анализ. Достаточно для замены предохранителя, не хватит, чтобы спроектировать усилитель.

Мы начнём с простого введения в категории и функторы, затем дадим определение монады, приведём простые примеры монад в категориях и в конце приведём монадическую терминологию используемую в языках программирования.

Я уверен, что монады с точки зрения категорий почти элементарны.

Содержание

  1. Категория
  2. Функтор
  3. Естественное преобразование
  4. Монада
  5. Монады исключения и состояния
  6. Монады в программировании
  7. Ссылки
Читать дальше →
Всего голосов 126: ↑105 и ↓21+84
Комментарии151

Основные функции ETL-систем

Время на прочтение7 мин
Количество просмотров337K
ETL – аббревиатура от Extract, Transform, Load. Это системы корпоративного класса, которые применяются, чтобы привести к одним справочникам и загрузить в DWH и EPM данные из нескольких разных учетных систем.

Вероятно, большинству интересующихся хорошо знакомы принципы работы ETL, но как таковой статьи, описывающей концепцию ETL без привязки к конкретному продукту, на я Хабре не нашел. Это и послужило поводом написать отдельный текст.
Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии6

Что такое NiFi

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров13K

Эта статья для тех, кто только открывает для себя мир NiFi или планирует применять этот чудесный инструмент. Инструмент необычный, и, чтобы его эффективно использовать, важно понимать, как NiFi работает, какие у него сильные и слабые стороны.

Читать далее
Всего голосов 12: ↑11 и ↓1+11
Комментарии4

Apache NiFi: как починить ошибки, которые не гуглятся

Время на прочтение16 мин
Количество просмотров11K
Настройка и запуск Apache NiFi и Zookeeper, настройка авторизации по LDAP и работа NiFi по HTTPS, настройка и запуск Apache NiFi Registry, пример запуска NiFi c Kerberos — вот темы, которые будут в этой статье.



Не вижу смысла полностью рассказывать, как настраивать NiFi и NiFi Registry — есть официальная документация и мануалы в сети. Я сосредоточился на ошибках, информации по которым нет, в том числе и на английском. При самостоятельном поиске решения, это реально масса времени. Я провел месяцы в режиме DEBUG и TRACE, чтобы понять, как всё сделать правильно. Готов поделится.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии11

Как писать свой процессор или расширяем функционал в NiFi

Время на прочтение6 мин
Количество просмотров8.9K
Все большую популярность набирает NiFi и с каждым новым релизом он получает все больше инструментов для работы с данными. Тем не менее, может появиться необходимость в собственном инструменте для решения какой-то специфичной задачи.



Apache Nifi имеет в базовой поставке более 300 процессоров.

NiFi Processor это основной строительный блок для создания dataflow в экосистеме NiFi. Процессоры предоставляют интерфейс, через который NiFi обеспечивает доступ к flowfile, его атрибутам и содержимому. Собственный кастомный процессор позволит сэкономить силы, время и внимание пользователей, так как вместо множества простейших элементов-процессоров будет отображаться в интерфейсе и выполняться всего один (ну или сколько напишете). Так же, как и стандартные процессоры, кастомный процессор позволяет выполнять различные операции и обрабатывать содержимое flowfile. Сегодня мы поговорим о стандартных инструментах для расширения функционала.
Читать дальше →
Всего голосов 11: ↑9 и ↓2+10
Комментарии1

Apache NiFi как доступный ETL инструмент: кейс применения + тестовый стенд Docker

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров4.9K

В статье расскажу о практических аспектах использования Apache NiFi, опишу преимущества и проблемы, с которыми я столкнулся.

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

Читать далее
Всего голосов 11: ↑11 и ↓0+12
Комментарии10

Apache NiFi. Как быстро подружиться с LDAP и Registry

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров4.3K

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

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

Читать далее
Всего голосов 7: ↑6 и ↓1+7
Комментарии6

Apache NiFi: что это такое и краткий обзор возможностей

Время на прочтение7 мин
Количество просмотров132K
Сегодня на тематических зарубежных сайтах о Big Data можно встретить упоминание такого относительно нового для экосистемы Hadoop инструмента как Apache NiFi. Это современный open source ETL-инструмент. Распределенная архитектура для быстрой параллельной загрузки и обработки данных, большое количество плагинов для источников и преобразований, версионирование конфигураций – это только часть его преимуществ. При всей своей мощи NiFi остается достаточно простым в использовании.

image

Мы в «Ростелекоме» стремимся развивать работу с Hadoop, так что уже попробовали и оценили преимущества Apache NiFi по сравнению с другими решениями. В этой статье я расскажу, чем нас привлек этот инструмент и как мы его используем.
Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии25

Монады как паттерн переиспользования кода

Время на прочтение24 мин
Количество просмотров71K


В предыдущей статье мы обсуждали, почему функциональное программирование это совсем не то, что распиарено, и что оно совершенно не противоречит ООП, так, что даже сам "Дядя Боб" пишет про хороший ФП дизайн порождающий хороший ООП дизайн программы (и наоборот).


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


Но ведь в интернете буквально сотни статей про ФП и монады, зачем писать еще одну?


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


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


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

Читать дальше →
Всего голосов 89: ↑85 и ↓4+100
Комментарии256

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Backend Developer
Middle
Java
Java Spring Framework
High-loaded systems
Designing application architecture
Software development
Algorithms and data structures
Code Optimization
Linux
Kubernetes
Docker