Pull to refresh
8
0
Александр Теут @jaturken

User

Send message

Кратко про Serde в Rust

Level of difficultyEasy
Reading time6 min
Views4.1K

Serde — это высокопроизводительная библиотека для сериализации и десериализации данных в Rust. Она поддерживает различные форматы данных, включая JSON, YAML, TOML, BSON и многие другие.

В этой статье рассмотрим основы Serde в Rust.

Читать далее
Total votes 14: ↑9 and ↓5+8
Comments6

Взламываем транспортные карты: чит на бесконечные деньги

Level of difficultyMedium
Reading time8 min
Views118K

Этот парень открыл все турникеты на станции. Вы до сих пор считаете, что все хакеры вредны?

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

Жителям Бостона статья поможет получить бесплатные поездки, а для всех остальных этот материал будет неплохим уроком по реверс-инжинирингу. Ну или, по крайней мере, вы узнаете любопытную историю.

Читать далее
Total votes 114: ↑112 and ↓2+138
Comments185

Эффективное управление отношениями со стейкхолдерами

Level of difficultyMedium
Reading time9 min
Views7.1K

Без выстраивания хороших отношений со стейкхолдерами (или заинтересованными сторонами) на проекте далеко не уедешь. О том, как это делать like a boss, годная статья автора Кэт Бугард в блоге Miro.

Все картинки из Miro.

Читать далее
Total votes 21: ↑19 and ↓2+22
Comments2

Как в 180 000 раз ускорить анализ данных с помощью Rust

Level of difficultyMedium
Reading time18 min
Views17K

В этой статье я опишу одно из последних своих дерзновений в сфере оптимизации производительности с помощью Rust. Надеюсь, что в ней вы откроете для себя какие-то новые приёмы для написания быстрого кода на Rust.
Читать дальше →
Total votes 58: ↑52 and ↓6+68
Comments12

Нужна ли на проекте документация: три признака, что да, ещё три — когда нет

Level of difficultyEasy
Reading time3 min
Views4.1K

Подготовка документации — дело затратное. Прежде чем приступать к ней, нужно подумать, действительно ли она нужна, или это делается, потому что «так принято». 

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

Читать далее
Total votes 27: ↑26 and ↓1+27
Comments13

Как сделать торгового робота для Binance

Level of difficultyEasy
Reading time12 min
Views31K

Программирование для меня это хобби и любимое дело. А так я сертифицированный системный архитектор. Поэтому прошу не особо ругать за код :-)

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

Обычно я писал торговых роботов для работы с Брокерами и делал авто-торговлю Акциями или Фьючерсами, но вдруг возникла мысль:

- А что, если уже готовый код можно применять и на других активах??? Например на крипто активах для Биткоина или Эфира или других?

Уже изучив много библиотек и примеров за долгое время написания своих торговых роботов, решил сделать небольшую библиотеку backtrader_binance для интеграции API Binance и библиотеки тестирования торговых стратегий Backtrader.

Вот с помощью backtrader_binance, сейчас и создадим алго-робота для торговли BTC и ETH.

Читать далее
Total votes 12: ↑6 and ↓6+3
Comments21

Как мы быстро создавали задачи в Jira по ГОСТовому ТЗ и почему это облегчило работу с госзаказчиком

Reading time11 min
Views3.3K

Михаил Михайлец, руководитель группы аналитиков направления облачных решений Лиги Цифровой Экономики, рассказал, как его команда попробовала быстро подготовить задачи по классическому ТЗ (ГОСТ 19) в Jira при работе с государственным заказчиком и что из этого получилось.

Пожалуй, большинству известно, что ГОСТ предусматривает водопадную модель разработки ПО. До недавнего времени она была зафиксирована в постановлении Правительства Российской Федерации от 6 июля 2015 г. № 676 «О требованиях к порядку создания, развития, ввода в эксплуатацию, эксплуатации и вывода из эксплуатации государственных информационных систем и дальнейшего хранения содержащейся в их базах данных информации».

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

В теории можно породить жизнеспособного «кентавра» — если в течение спринтов проходить указанные стадии проекта раз за разом в ходе разработки каждой функции приложения.

Читать далее
Total votes 4: ↑3 and ↓1+3
Comments2

ХЗ в ТЗ по стратегии и психотипирование как бизнес-стратегия

Level of difficultyEasy
Reading time15 min
Views4.3K

Всем привет, меня зовут Гай, и я консультант, помогающий IT-компаниям проводить стратегические сессии и разрабатывать стратегию компании.

В данной статье я хочу описать три пункта стратегирования:

1. Фрейм стратегического анализа и постановки целей.

2. Как картировать набор решений, чтобы цели дошли до нижних звеньев.

3. Психотипирование кадров как важнейший пункт реализации стратегии.

Я проводил стратегические сессии в паре десятков отечественных ИТ-компаний, в том числе и с драгоценной для нас с вами компанией «Хабр» я работаю уже три года.

Читать далее
Total votes 9: ↑6 and ↓3+13
Comments4

Воспроизводимость ML экспериментов с помощью MLflow project

Reading time12 min
Views5K

Всем привет! Меня зовут Игорь Дергунов и я руководитель инновационной лаборатории Digital Design, которая занимается оптимизацией бизнес-процессов с помощью методов машинного обучения. В процессе работы над проектами в данной сфере быстро приходит осознание необходимости учета и структурирования проводимых экспериментов. В нашем случае мы воспользовались инструментом MLflow, который предоставляет функциональность для отслеживания экспериментов и управления жизненным циклом моделей машинного обучения.

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

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

Проектирование ETL-пайплайна в Apache Airflow

Reading time9 min
Views4.5K

Привет, Хабр! На связи Рустем, IBM Senior DevOps Engineer и сегодня я хотел бы продолжить наше знакомство с инструментом в DataOps инженирии — Apache Airflow. Сегодня мы спроектируем ETL-пайплайн.

Читать далее
Total votes 6: ↑5 and ↓1+5
Comments1

Как управлять проектами машинного обучения и data science

Reading time6 min
Views6.4K

Управлять проектами машинного обучения (Machine learning) и data science сложно, поскольку проекты часто носят исследовательский характер, и трудно предсказать, сколько времени потребуется на их завершение. Часто всё начинается с одной идеи, а затем перетекает в новое направление, когда предложенный метод не срабатывает или если предположения относительно данных оказываются неверными.

Построение модели также является длительным процессом (по сравнению с работой в сфере программного обеспечения и аналитики), и data scientist нередко попадает в кроличью нору и тратит месяцы на проект, не имея четких представлений о прогрессе. Еще одно отличие от стандартных практик разработки программного обеспечения заключается в том, что построение модели обычно выполняется всего одним человеком, и это не совсем вписывается в традиционные командные рабочие процессы, такие как Kanban и Scrum.

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

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

Читать далее
Total votes 10: ↑7 and ↓3+4
Comments3

Яндекс выложил в опенсорс YDB

Reading time16 min
Views141K
Сегодня мы выложили в опенсорс систему управления базами данных YDB — плод многолетнего опыта Яндекса в разработке систем хранения и обработки данных. Исходный код, документация, SDK и все инструменты для работы с базой опубликованы на GitHub под лицензией Apache 2.0. Развернуть базу можно как на собственных, так и на сторонних серверах — в том числе в любых облачных сервисах.



YDB решает задачи в одной из самых критичных областей — позволяет создавать интерактивные приложения, которые можно быстро масштабировать по нагрузке и по объёму данных. Мы разрабатывали её, исходя из ключевых требований к сервисам Яндекса. Во-первых, это катастрофоустойчивость, то есть возможность продолжить работу без деградации при отключении одного из дата-центров. Во-вторых, это масштабируемость на десятки тысяч серверов на чтение и на запись. В-третьих, это строгая консистентность данных.

В посте я расскажу об истории развития технологий баз данных, о том, зачем использовать YDB, как её применяют текущие пользователи и какие плюсы для всех несёт выход в опенсорс. А во второй половине поста поговорим о разных вариантах развёртывания.
Читать дальше →
Total votes 262: ↑259 and ↓3+329
Comments135

Что такое MLOps? Операции машинного обучения на пальцах

Reading time8 min
Views12K

В этой статье я расскажу вам об операциях машинного обучения (MLOps) — области, которую можно охарактеризовать как DevOps для машинного обучения.

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

Миллион одновременных соединений

Reading time8 min
Views59K

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

Адрес TCP/IP поддерживает только 65000 подключений, поэтому придётся назначить этому серверу примерно 30000 IP-адресов.

Существует 65535 номеров TCP-портов, значит ли это, что к TCP-серверу может подключиться не более 65535 клиентов? Можно решить, что это накладывает строгое ограничение на количество клиентов, которые может поддерживать один компьютер/приложение.

Если есть ограничение на количество портов, которые может иметь одна машина, а сокет можно привязать только к неиспользуемому номеру порта, как с этим справляются серверы, имеющие чрезвычайно большое количество запросов (больше, чем максимальное количество портов)? Эта проблема решается распределением системы, то есть кучей серверов на множестве машин?

Поэтому я написал эту статью, чтобы развеять данный миф с трёх сторон:

  1. Мессенджер WhatsApp и веб-фреймворк Phoenix, построенный на основе Elixir, уже продемонстрировали миллионы подключений, прослушивающих один порт.
  2. Теоретические возможности на основе протокола TCP/IP.
  3. Простой эксперимент с Java, который может провести на своей машине любой, если его всё ещё не убедили мои слова.

Если вы не хотите изучать подробности, то перейдите в раздел «Итоги» в конце статьи.
Читать дальше →
Total votes 82: ↑80 and ↓2+99
Comments27

Тёмный маршрутизатор из Raspberry Pi

Reading time3 min
Views23K

В данной статье я расскажу о том, как я сделал из Raspberry Pi маршрутизатор, способный перенаправлять отдельные сайты, отдельные подсети, да хоть все запросы через tor.

Читать далее
Total votes 17: ↑16 and ↓1+21
Comments28

В поисках физкультуры

Reading time18 min
Views8.2K
И что интересного люди находят в этих книжках?

Спорт


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

И можно даже не уточнять, о каком спорте идет речь. Обычно сказавший и услышавший подразумевают под словом “спорт” одно и то же — это какой-то полезный для здоровья вид двигательной активности.

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

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

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

Спойлер: В статье содержится приглашение к размышлению. Озвучены вопросы, предложено направление для новых мыслей, а не готовые ответы. Здесь нет мотивирующей рекламы очередной методики тренировок. Если вы хотите узнать очередной рецепт для здоровья, который кому-то помог, то вам нужны другие статьи, их много. Желающие пропустить рассуждения могут сразу перейти к итогам.

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

Читать дальше →
Total votes 20: ↑7 and ↓130
Comments61

Что дальше? Или как правильно выбрать фичи для разработки

Reading time7 min
Views18K
Грамотно и вовремя выбирать фичи для разработки и не прогадать – это про искусство приоритизации. Как найти критерии оценки, необходимые для своего продукта, вырастить стратегические показатели, предложить клиентам еще больше ценности, наладить все внутренние процессы в команде и добиться других наглядных показателей с помощью качественной приоритизации?

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

Реализация классификации текста свёрточной сетью на keras

Reading time9 min
Views23K
Речь, как ни странно, пойдёт о использующем свёрточную сеть классификаторе текстов (векторизация отдельных слов — это уже другой вопрос). Код, тестовые данные и примеры их применения — на bitbucket (уперся в ограничения размера от github и предложение применить Git Large File Storage (LFS), пока не осилил предлагаемое решение).

Наборы данных


Использованы конвертированные наборы: reuters — 22000 записей, watson-й — 530 записей, и ещё 1 watson-й — 50 записей. Кстати, не отказался бы от подкинутого в комменты/ЛС (но лучше таки в комменты) набора текстов на русском.

Устройство сети


За основу взята одна реализация описанной тут сети. Код использованной реализации на github.

В моём случае — на входе сети находятся векторы слов (использована gensim-я реализация word2vec). Структура сети изображена ниже:


Вкратце:

  • Текст представляется как матрица вида word_count x word_vector_size. Векторы отдельных слов — от word2vec, о котором можно почитать, например, в этом посте. Так как заранее мне неизвестно, какой текст подсунет пользователь — беру длину 2 * N, где N — число векторов в длиннейшем тексте обучающей выборки. Да, ткнул пальцев в небо.
  • Матрица обрабатывается свёрточными участками сети (на выходе получаем преобразованные признаки слова)
  • Выделенные признаки обрабатываются полносвязным участком сети

Стоп слова отфильтровываю предварительно (на reuter-м dataset-е это не сказывалось, но в меньших по объему наборах — оказало влияние). Об этом ниже.
Читать дальше →
Total votes 25: ↑23 and ↓2+21
Comments12

Простое суффиксное дерево

Reading time12 min
Views74K
ДеревоСуффиксное дерево – мощная структура, позволяющая неожиданно эффективно решать мириады сложных поисковых задач на неструктурированных массивах данных. К сожалению, известные алгоритмы построения суффиксного дерева (главным образом алгоритм, предложенный Эско Укконеном (Esko Ukkonen)) достаточно сложны для понимания и трудоёмки в реализации. Лишь относительно недавно, в 2011 году, стараниями Дэни Бреслауэра (Dany Breslauer) и Джузеппе Италиано (Giuseppe Italiano) был придуман сравнительно несложный метод построения, который фактически является упрощённым вариантом алгоритма Питера Вейнера (Peter Weiner) – человека, придумавшего суффиксные деревья в 1973 году. Если вы не знаете, что такое суффиксное дерево или всегда его боялись, то это ваш шанс изучить его и заодно овладеть относительно простым способом построения.
Читать дальше →
Total votes 41: ↑40 and ↓1+39
Comments20

Купил > залил > в карман! Обзор PocketBook 515

Reading time4 min
Views59K
Любите читать со смартфона, но из-за этого он не доживает до вечера, а глаза устают? Не нравятся большие читалки, потому что их нельзя убрать в карман? Специально для вас выпускаются карманные ридеры.

nKP0sem2.jpg

Стоят не дорого, экран с привычным соотношением сторон 4:3 (как у классической бумажной книги), продвинутые E-Ink дисплеи с хорошими показателями контрастности, а главное — заряжать надо раз в неделю. И смартфон не надо мучить. Об одном таком филиале библиотеки в карманном размере сегодня и поговорим.
Читать дальше →
Total votes 43: ↑30 and ↓13+17
Comments42
1
23 ...

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Registered
Activity