Pull to refresh
0

Разработчик Node.js, Go

Send message

Учимся общаться между микросервисами на Node.js через RabbitMQ

Reading time5 min
Views34K

Это продолжение статьи «Пишем первый микросервис на Node.js с общением через RabbitMQ», которая была неплохо принята пользователями хабра.


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

Читать дальше →
Total votes 23: ↑18 and ↓5+13
Comments3

Поиски фундаментальных данных для акций через API Financial Modeling Prep

Reading time127 min
Views9.7K
Недавно мне понадобилось обработать экономические показатели для нескольких тысяч американских акций.

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

В качестве поставщика данных использовался сервис FinancialModelingPrep, который в 2019 году был бесплатен, но в 2020 году уже нет.



В статье разбираюсь в нюансах формирования запросов к базе данных сервиса. А ещё исследую глубину доступных финансовых отчетов компаний за прошлые годы.
API Financial Modeling Prep
Total votes 4: ↑4 and ↓0+4
Comments6

Десять вещей, которые можно делать с GraalVM

Reading time22 min
Views44K


От переводчика: GraalVM — новая, интересная технология, но на Хабре по ней не так много статей, которые бы могли показать примеры возможностей Graal. Статья ниже — это не просто перечисление того, что GraalVM умеет, но ещё и небольшой мастер-класс, аналогичный тому, который Chris Seaton и Олег Шелаев проводили на Oracle CodeOne 2018. Вслед за автором, призываю — пробуйте делать примеры из статьи, это действительно интересно.


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


  1. Быстрое выполнение Java
  2. Уменьшение времени старта и потребления памяти для Java
  3. Комбинирование JavaScript, Java, Ruby и R
  4. Исполнение программ, написанных на платформо-зависимых языках
  5. Общие инструменты для всех языков программирования
  6. Дополнение JVM приложений
  7. Дополнение платформо-зависимых приложений
  8. Код Java как платформо-зависимая библиотека
  9. Поддержка нескольких языков программирования в базе данных
  10. Создание языков программирования для GraalVM
Читать дальше →
Total votes 38: ↑37 and ↓1+36
Comments22

Мини-мануал, как поставить хакинтош максимально просто и безболезненно

Reading time6 min
Views234K
Предисловие
Хотя на Хабре уже есть неплохая статья о хакинтоше, она уже довольно немолода и некоторая информация там устарела. Однако, суть всего действия описана верно, поэтому для начала очень рекомендую ее почитать.

Здравствуй, Хабр.

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

Так как с вероятностью 99% вы столкнетесь с кучей ошибок на различных этапах установки, лучшее, что я могу посоветовать — оставить комментарий со своей проблемой внизу статьи, или же написать о ней на каком-нибудь форуме. Не исключено так же, что ваша проблема уже известна сообществу, поэтому навыки гугления очень рекомендую применять.
Читать дальше →
Total votes 26: ↑18 and ↓8+10
Comments30

Хакинтош на Powermac G5 или как собрать себе рабочую станцию. Часть 2

Reading time14 min
Views18K

Это вторая часть истории о сборке в корпусе от PowerMac G5 рабочей машины на базе Х86 архитектуры.



Для начала о комплектующих.


После покупки блока G5 я стал размышлять, а что же поставить в него? Однозначно это должно быть решение на базе Xeon'а, и однозначно на сокете 2011. С серией я тоже определился довольно быстро, это или Е5-1600 или Е5-2600, и точно НЕ v1.

Total votes 19: ↑19 and ↓0+19
Comments21

Что скрывается за VestaCP

Reading time6 min
Views24K


Вряд ли сейчас кому-то может прийти в голову мысль написать свою панель управления сервером: интернет давно прикипел к ISP, cPanel, Plesk и десятку их аналогов. Все «взрослые» панели умеют примерно одно и то же, различаясь лишь интерфейсом, уровнем поддержки и специфическим функционалом. Но 13 лет назад всё было иначе:
Сейчас уже сложно сказать, когда именно я начал работу над вестой. Если считать первые скрипты добавления виртуальных хостов в апач, то это был 2007 год. Получается 5 лет тому назад. Помню тогда на работе состоялся примерно такой диалог:
— Ты решил написать свою панель управления?
— Ага, ведь cPanel это ужас, Plesk хоть и лучше, но сильно дорогой. Да и вообще у меня уже почти все готово
— Хм… для того чтобы просто приблизиться к сPanel тебе потребуется минимум 2 года
skid, разработчик Весты

Что выросло из этой идеи спустя столько лет? Неплохой продукт, популярный среди хостеров (на сайте упоминается 25000 установок в месяц по миру), с активным комьюнити и с большим списком индивидуальных фич. Но как и в любом другом продукте, в процессе использования Весты вылезает довольно много нюансов, незаметных со стороны. Далее мы разберём принципы работы панели, её косяки и сильные стороны.
Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments44

Установка и правильная настройка Docker на Windows Subsystem Linux (WSL)

Reading time5 min
Views33K

Предварительные требования


Прежде чем начать, убедитесь, что ваша система имеет примерно следующую конфигурацию:

  • Windows 10 Version 1803 Build 1734 и выше
  • Ubuntu for WSL 16.0.4 LTS или что-то в этом роде (ваша версия может немного отличаться)

Важно, чтобы версия и сборка Windows были не ниже того, что здесь указано. Дело в том, что, начиная с этих цифр, в ядро Windows ​​WSL были внесены принципиальные изменения, которые позволяют использовать cgroups (control groups — в 2008 году добавлены в ядро Linux). А они необходимы Docker’у для управления ресурсами вашей системы в контейнерах.


Читать дальше →
Total votes 8: ↑7 and ↓1+6
Comments37

«Взломать» за 60 секунд или карантинное безумие

Reading time2 min
Views51K
Небольшая история о неадекватном заказчике и нахождении уязвимости на сайте за 1 минуту.

image

Не ожидал, что именно эта история станет моей первой статьей на Хабре. Пишу пока горячо!

Все что Вы прочитаете далее — это не призыв к действию или попытка «кого-либо» скомпрометировать.
Читать дальше →
Total votes 128: ↑111 and ↓17+94
Comments124

Базовые возможности LXD — системы контейнеров в Linux

Reading time29 min
Views53K

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


Ядро LXD — это привилегированный демон (сервис запущенный с правами root), который предоставляет REST API через локальный unix сокет, а также через сеть, если установлена соответствующая конфигурация. Клиенты, такие как инструмент командной строки поставляемый с LXD посылают запросы через этот REST API. Это означает, что независимо от того, обращаетесь ли вы к локальному хосту или к удаленному, все работает одинаково.


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

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

Машинное обучение на языке R с использованием пакета mlr3

Reading time16 min
Views9.1K

Источник: https://mlr3book.mlr-org.com/


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

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

Содержание:


  1. Немного истории и сравнение с конкурирующими решениями
  2. Технические детали: R6-классы и пакет data.table
  3. Основные составляющие ML-пайплайна в mlr3
  4. Настройка гиперпараметров
  5. Обзор экосистемы mlr3
  6. Пайпы и граф вычислений
Читать дальше →
Total votes 35: ↑33 and ↓2+31
Comments7

Зачем ЯОП? Зачем Racket?

Reading time15 min
Views14K
Это продолжение статьи «Зачем Racket? Зачем Lisp?», которую я написал примерно через год после того, как открыл для себя Racket. Будучи новичком, я не мог понять дифирамбов, которые со всех сторон сыпались в адрес Lisp. Я не знал, что и думать. Как понимать, что Lisp в конце концов вызовет «глубокое просветление». Окей, как скажешь, бро.

У меня был простой вопрос: какая польза? В прошлой статье я попытался ответить на него и обобщил причины, почему кто-то захочет изучить Lisp или, в частности, Racket.

Я составил список из девяти особенностей языка, наиболее ценных для меня как новичка в Racket. Например, особенность № 5 — «создание новых языков программирования». Этот метод также называется языково-ориентированным программированием, или ЯОП.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments6

Как я взломал мошенников, или просто внутренности фишинг-панелей

Reading time5 min
Views70K

INTRO


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


Я увлекаюсь безопасностью, поэтому решил из интереса проверить безопасность фишингового ресурса.


"Админку" мошенников удалось успешно взломать, внутри нашлось n-количество украденных учеток. Их логины были переданы в службу безопасности VK, плюс соответствующие "abuse" жалобы были направлены регистраторам, хостерам.


А теперь расскажу как и какие оказываются бывают Phishing-as-Service панели...

Читать дальше →
Total votes 141: ↑139 and ↓2+137
Comments37

Kendo UI — новейший UI-фреймворк от Telerik

Reading time2 min
Views82K

Предлагаю краткий обзор свежего UI-фреймворка от Telerik под названием Kendo UI.

Предыстория



Совсем недавно я размещал тикет в поддержке Telerik и спрашивал у них, можно ли использовать компоненты (в частности MVC) в приложении, написанном на Classic ASP.

Конечно, ответ огорчил.
Читать дальше →
Total votes 62: ↑55 and ↓7+48
Comments23

Знакомство с FastAPI

Reading time5 min
Views178K
Вместо предисловия

В нашей команде бытует хорошая практика фиксировать все изменения, которые отправляются в продакшен в гитхабовских релизах. Однако, не вся наша команда имеет доступ в гитхаб, а о релизах хочется знать всем. Так сложилась традиция релиз из гитхаба дублировать в рабочем чате команды в телеграме. Что хорошо, гитхаб позволяет с помощь маркдауна красиво оформить релиз с разделением на секции и ссылками на задачи, которые отправляются на выкатку. Что плохо, простым copy/paste всю эту красоту в телеграм не перенесёшь и приходится тратить время на довольно нудную работу по повторному оформлению релиза, но уже в телеграме. Ну а посколько программисты народ ленивый, я решил этот процесс автоматизировать.
 


Исходные данные:

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

Соответственно, задача заключается в том, чтобы поднять HTTP API, который сможет принять POST запрос, проверить подпись, извлечь нужную информацию из тела запроса и передать её дальше по инстанции. Как тут не попробовать FastAPI, на который я давно глаз положил?


Кто такой FastAPI?


FastAPI — это фреймворк для создания лаконичных и довольно быстрых HTTP API-серверов со встроенными валидацией, сериализацией и асинхронностью,
что называется, из коробки. Стоит он на плечах двух других фреймворков: работой с web в FastAPI занимается Starlette, а за валидацию отвечает Pydantic.


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

Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments58

Основы deep learning на примере дебага автоэнкодера, часть №1

Reading time16 min
Views10K

Если почитать обучение по автоэнкодерам на сайте keras.io, то один из первых посылов там звучит примерно так: на практике автоэнкодеры почти никогда не используются, но про них часто рассказывают в обучалках и народу заходит, поэтому мы решили написать свою обучалку про них:


Their main claim to fame comes from being featured in many introductory machine learning classes available online. As a result, a lot of newcomers to the field absolutely love autoencoders and can't get enough of them. This is the reason why this tutorial exists!


Тем не менее, одна из практических задач, для которых их вполне себе можно применять — поиск аномалий, и лично мне в рамках вечернего проекта потребовался именно он.


На просторах интернетов есть очень много туториалов по автоэнкодерам, нафига писать еще один? Ну, если честно, тому было несколько причин:


  • Сложилось ощущение, что на самом деле туториалов примерно 3 или 4, все остальные их переписывали своими словами;
  • Практически все — на многострадальном MNIST'е с картинками 28х28;
  • На мой скромный взгляд — они не вырабатывают интуицию о том, как это все должно работать, а просто предлагают повторить;
  • И самый главный фактор — лично у меня при замене MNIST'а на свой датасет — оно все тупо переставало работать.

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


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

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

Тензоры в TensorFlow

Reading time6 min
Views29K

image


Основным объектом которым манипулируют в Tensorflow, является тензор. О том, что такое тензор, какие бывают тензоры, какие у них есть свойства и как ими манипулировать читайте в переводном руководстве с сайта tensorflow.org.

Читать дальше →
Total votes 30: ↑26 and ↓4+22
Comments2

Бот для сборов. Собираемся на футбол с новыми технологиями

Reading time21 min
Views11K

Введение


Всем привет. В этой статье я опишу своего чат-бота для сервиса обмена сообщениями telegram и социальной сети VK с использованием NodeJS.


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


  1. В качестве каркаса для приложения используется набирающий популярность фреймворк NestJS.
  2. Библиотека telegraf для взаимодействия с API Telegram.
  3. Библиотека node-vk-bot-api для взаимодействия с API VK.
  4. Библиотека typeorm для организации слоя хранения данных.
  5. Тесты с использованием mocha и библиотеки ассертов chai .
  6. CI с использованием Travis CI для тестирования и GitHub Actions для деплоя докер-образов.

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


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

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

Изучаем Metaflow за 10 минут

Reading time13 min
Views13K
Metaflow — это Python-фреймворк, созданный в Netflix и ориентированный на сферу Data Science. А именно, он предназначен для создания проектов, направленных на работу с данными, и для управления такими проектами. Недавно компания перевела его в разряд опенсорсных. Фреймворк Metaflow в последние 2 года нашёл широкое применение внутри Netflix. Он, в частности, позволил значительно сократить время, необходимое для вывода проектов в продакшн.



Материал, перевод которого мы сегодня публикуем, представляет собой краткое руководство по Metaflow.
Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments3

Y-метод — действительно простой способ собрать кубик Рубика

Reading time7 min
Views321K

Введение


В статье рассматривается «Y-метод» сборки кубика Рубика — его легко понять и запомнить. Он основан всего на одной последовательности, которая называется «Y-движение». Поняв этот алгоритм, вы навряд ли забудете как собрать кубик самостоятельно.
Читать дальше →
Total votes 118: ↑117 and ↓1+116
Comments78

Изучаем SEO самостоятельно: большая подборка материалов

Level of difficultyEasy
Reading time5 min
Views515K
Привет, Хабр!

Меня зовут Артём Сайгин, я веду телеграм канал Growth Lab, в котором делюсь опытом роста IT-продуктов.

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

Также в конце статьи вы найдёте список книг по SEO, бесплатные курсы, чек-листы SEO-аудита, SEO-сервисы и расширения.

Добавляйте в закладки, чтобы не потерять.

image

Отмечу, что список материалов будет пополняться. Если я не добавил стоящий материал, свяжитесь со мной — добавлю.

Приступим!
Читать дальше →
Total votes 15: ↑10 and ↓5+5
Comments9

Information

Rating
Does not participate
Location
Россия
Registered
Activity