Как стать автором
Обновить
17
1
Иван Клименко @KlimenkoIv

Архитектор

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

Карманная книга по TypeScript. Часть 1. Основы

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

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



С сегодняшнего дня мы начинаем серию публикаций адаптированного и дополненного перевода "Карманной книги по TypeScript".


Каждое значение в JavaScript при выполнении над ним каких-либо операций ведет себя определенным образом. Это может звучать несколько абстрактно, но, в качестве примера, попробуем выполнить некоторые операции над переменной message:


// Получаем доступ к свойству `toLowerCase`

// и вызываем его

message.toLowerCase()

// Вызываем `message`

message()

На первой строке мы получаем доступ к свойству toLowerCase и вызываем его. На второй строке мы пытаемся вызвать message.


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


  • Является ли переменная message вызываемой?
  • Имеет ли она свойство toLowerCase?
  • Если имеет, является ли toLowerCase вызываемым?
  • Если оба этих значения являются вызываемыми, то что они возвращают?

Ответы на эти вопросы, как правило, хранятся в нашей памяти, поэтому остается только надеяться, что мы все помним правильно.

Читать дальше →
Всего голосов 27: ↑22 и ↓5+25
Комментарии18

«Последние дни жизни» демотивированного сотрудника

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

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

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

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

Читать далее
Всего голосов 42: ↑36 и ↓6+38
Комментарии86

Практика по Котлину: Создание веб приложений на React и Kotlin/JS

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

От переводчика.


Привет! Про Kotlin есть стереотип, будто бы это язык для разработки только под Android. На самом деле, это совсем не так: язык официально поддерживает несколько платформ (JVM, JS, Native), а также умеет работать с библиотеками для этих платформ, написанных на других языках. Такая поддержка "мультиплатформенности" позволяет не только писать всевозможные проекты на одном языке в единой форме, но и переиспользовать код при написании одного проекта под разные платформы.


В этой статье я перевожу официальный туториал Kotlin Hands-On о создании веб сайтов на Котлине. Мы рассмотрим многие аспекты программирования на Kotlin/JS и поймем, как работать не только с чистым DOM. В основном будем говорить о React JS, но также коснемся системы сборки Gradle, использования зависимостей из NPM, обращения к REST API, деплоя на Heroku, и в итоге сделаем приложение-видеоплеер.


Текст ориентирован на тех, кто немного знает Котлин и не знает или почти не знает Реакт. Если вы более опытны по этим вопросам, то части туториала могут показаться вам чрезмерно разжеванными.


kotlin-react

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

Личный сервер shadowsocks за 10 минут без затрат

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

Недавно я набрёл на интересное решение, которое позволяет развернуть личный сервер shadowsocks без каких-либо финансовых затрат. В результате получается некий аналог собственного VPN-сервера, с которым могут работать настольные компьютеры и мобильные устройства. Соединение с сервером shadowsocks защищено и устойчиво к фильтрации DPI.

Приятной особенностью такого метода развёртывания shadowsocks является то, что он не требует больших технических познаний. И настройка клиентов shadowsocks крайне проста: вся конфигурация происходит сканированием QR-кода или одной URL-строкой.

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

Нейросеть с нуля своими руками. Часть 1. Теория

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

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

Читать далее
Всего голосов 17: ↑15 и ↓2+18
Комментарии17

NiFi по красоте: HTTPS/LDAP/NiFi Registry/NiFi Cli + CI/CD

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

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

Есть мануалы о том, как настроить связку NiFi и NiFi Registry со включенной аутентификацией и авторизацией. Но... используются самоподписанные серты.

Есть отдельные мануалы, как прикрутить коммерческий серт для NiFi; соответственно для NiFi Registry "кагбэ так же". Но взаимная аутентификация и авторизация будет происходить с использованием Two way SSL... а у нас же LDAP... и обеспечить потом связность сладкой парочки с использованием только внешнего каталога у вас на голой интуиции не получится.

Есть мануалы по связке с LDAP и для NiFi, и для NiFi Registry. Нооо... как и в предыдущем "но", возникают вопросы, как обойтись потом только LDAP'ом, потому что у нас же еще NiFi Cli, а он в LDAP не умеет.

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

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

Агрегация логов log4j2 средствами ELK

Время на прочтение12 мин
Количество просмотров19K
Для своих ETL (Extract, Transform, Loading) процессов, на этапах E и T, то есть извлечение и преобразование данных мы используем Apache Storm, и, так как большинство ошибок, связанных с инвалидацией сырых данных, происходит именно на этом этапе, — появилось желание централизованно логировать всё это, используя ELK стэк (Elasticsearch, Logstash, Kibana).

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

Исправляя это упущение — под катом туториал по настройке централизованного сбора любых log4j2 логов на основе:

  • ELK внутри Docker
  • Настройка log4j для работы с Logstash
  • Настройка Logstash для правильной индексации логов
  • Немного бонусов, в виде краткой настройки Storm и интеграции Elasticsearch с Grafana

image
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии17

Бесплатный удобный ETL инструмент с открытым кодом на основе Python — фантастика или нет?

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

Сегодня я хочу рассказать об open-source инструменте, который позволяет извлекать и очищать данные для широкого спектра задач. В этом посте речь пойдет о ViXtract, нашей собственной сборке открытых технологий для работы с данными. Под катом — рассуждения о том, каким должен быть идеальный ETL, рассказ о том, почему его лучше делать на Python (и почему это совсем не сложно), мысли о скриптовом и графическом подходе.

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

Apache Kafka в вопросах и ответах

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

Что такое Kafka? Где стоит, а где не стоит применять этот инструмент? Чем Kafka отличается от RabbitMQ и других брокеров сообщений? Как её правильно эксплуатировать? Всё это обсудили на митапе «Apache Kafka в вопросах и ответах», который Слёрм провёл в ноябре 2020. В разговоре участвовали спикеры из Авито, Stripe, ITSumma и Confluent. Запись митапа доступна на YouTube, а текстовую версию разговора читайте ниже.


Читать дальше →
Всего голосов 19: ↑18 и ↓1+25
Комментарии7

Kafka как хранилище данных: реальный пример от Twitter

Время на прочтение6 мин
Количество просмотров13K
Привет, Хабр!

Нас давно занимала тема использования Apache Kafka в качестве хранилища данных, рассмотренная с теоретической точки зрения, например, здесь. Тем интереснее предложить вашему вниманию перевод материала из блога Twitter (оригинал — декабрь 2020), в котором описан нетрадиционный вариант использования Kafka в качестве базы данных для обработки и воспроизведения событий. Надеемся, статья будет интересна и натолкнет вас на свежие мысли и решения при работе с Kafka.
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии0

Самообучение в Data science, с нуля до Senior за два года

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

Хочу поделиться методами освоения Data science с нуля человеком из другой ИТ специальности. Цель: дать понять, подходит ли Вам эта специальность в принципе, и рассказать про эффективные подходы к самообучению, которые мне помогли.

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

Читать далее
Всего голосов 30: ↑18 и ↓12+15
Комментарии32

CI/CD для проекта в GitHub с развертыванием на AWS EC2

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

Имеем: проект web API на .net core с исходниками в GitHub.

Хотим: авторазвертывание на виртуалке AWS EC2 после завершения работы с кодом (для примера push в develop ветку).

Инструментарий: GitHub Actions, AWS CodeDeploy, S3, EC2.

Ниже flow процесса, который будем реализовывать, погнали.

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

Менеджмент будущего. Без начальников, переработок и KPI

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

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

Читать далее
Всего голосов 18: ↑17 и ↓1+21
Комментарии40

Жизнь .NET приложения в Kubernetes

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

Поддержка в рабочем состоянии заданного набора контейнеров является одним из главных преимуществ использования Kubernetes

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

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

Принципы построения систем потоковой аналитики

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

Проектирование систем потоковой аналитики и потоковой обработки данных имеет свои нюансы, свои проблемы и свой технологический стек. Об этом мы поговорили в очередном открытом уроке, прошедшим накануне запуска курса «Data Engineer».

На вебинаре обсудили:

  • когда нужна потоковая обработка;
  • какие элементы есть в СПОД, какие инструменты мы можем использовать для реализации этих элементов;
  • как построить свою систему анализа кликстримов.

Преподаватель — Егор Матешук, Senior Data Engineer в MaximaTelecom.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии2

Ну купиии! Или применение AI для рекомендаций

Время на прочтение12 мин
Количество просмотров8.8K
Все же тут страдают от спама? Обвешаны адблокерами, white-листами, спам-фильтрами? Я точно сильно страдал от бесконечных предложений, но в какой-то момент стала появляться и полезная информация, причем еще в нужные моменты. 

Став руководителем проектов по предиктивной аналитике в компании НОРБИТ, я оказался по другую сторону баррикад и хочу поделиться опытом по разработке рекомендательных сервисов для программ лояльности.

Источник 
Читать дальше →
Всего голосов 49: ↑45 и ↓4+51
Комментарии26

Импорт ЕГРЮЛ ФНС средствами Apache NiFi. Шаг 1 — загрузка файлов по HTTPS

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

В одном из проектов возникла необходимость перевести процессы импорта данных сторонних систем на микросервисную архитектуру. В качестве инструмента выбран Apache NiFi. В качестве первого подопытного выбран импорт ЕГРЮЛ ФНС.


Данные ЕГРЮЛ публикуются в виде XML-файлов, упакованных в ZIP-архивы. Архивы ежедневно выкладывают на ресурс https://ftp.egrul.nalog.ru/ в отдельный каталог для соответствующей даты. Для доступа выдается ключ #PKCS12.


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

Читать дальше →
Всего голосов 3: ↑1 и ↓2-1
Комментарии8

Apache NIFI — Краткий обзор возможностей на практике

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

Введение


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

Читать дальше →
Всего голосов 12: ↑10 и ↓2+8
Комментарии7

Автоматизация аналитики Jira средствами Apache NiFi

Время на прочтение7 мин
Количество просмотров5.5K
Приветствую, господа. Я Маша, мне 23, и я уже полгода изучаю и внедряю на практике Apache NiFi.

В тот час, когда технически Apache NiFi — мощное связующее звено между различными сервисами (осуществляет обмен данными между ними, по пути позволяя их обогащать и модифицировать), смотрю я на него с точки зрения аналитика. А все потому, что NiFi весьма удобный инструмент для ETL. В часности, в команде мы ориентируемся на построение им SaaS архитектуры.

Опыт автоматизации одного из своих рабочих процессов, а именно формирование и рассылка еженедельной отчетности по Jira Software, я и хочу раскрыть в данной статье. К слову, методику аналитики таск-треккера, которая наглядно отвечает на вопрос — а чем же занимаются сотрудники — я также опишу и опубликую в ближайшее время.

Несмотря на посвящение данной статьи новичкам, считаю правильным и полезным если более опытные архитекторы (гуру, так скажем) отрецензируют ее в кромментариях или поделятся своими кейсами использования NiFi в различных сферах деятельности. Много ребят, включая меня, скажет вам спасибо.
Читать дальше →
Всего голосов 12: ↑10 и ↓2+12
Комментарии13

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

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



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

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

Информация

В рейтинге
1 561-й
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность

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

Data Engineer, Data Engineer
Lead
От 350 000 ₽
Git
Java
Docker
Database
ETL
Apache Airflow
Apache Kafka
Python
High-loaded systems