Pull to refresh
25
-3
Send message

Mojo: убийца Python и будущее AI

Level of difficultyEasy
Reading time5 min
Views12K

Всем привет! Меня зовут Вадим, я Data Scientist в компании RAFT. Сейчас технологии AI применяются и развиваются во многих сферах деятельности человека, в особенности LLM, про которые уже слышал каждый. В большинстве случаев подобные технологии реализуют на Python, используя различные библиотеки, такие как pytorch, tensorflow, jax. Все они имеют свои преимущества и недостатки. Например, всем известная скорость вычислений.

Читать далее
Total votes 25: ↑22.5 and ↓2.5+20
Comments42

Я изучила 900 самых популярных инструментов ИИ на базе open source — и вот что обнаружила

Reading time8 min
Views30K

Четыре года назад ИТ-эксперт Чип Хуэн* проанализировала экосистему ML с открытым исходным кодом. С тех пор многое изменилось, и она вернулась к изучению темы, на этот раз сосредоточившись исключительно на стеке вокруг базовых моделей.

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

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

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

Делаем маршрутизацию (роутинг) на OpenStreetMap. Введение

Reading time9 min
Views12K

Хотелось бы поделиться опытом создания систем маршрутизации PostgreSQL/PgRouting на карте OpenStreetMap. Речь пойдет о разработке [коммерческих] решений со сложными требованиями, для более простых проектов, вероятно, достаточно обратиться к документации. Насколько мне известно, такие вещи, как полная поддержка односторонних дорог и направлений движения, быстрый роутинг на тысячах адресов (порядка секунд на обычном лаптопе, к примеру, Macbook Pro 13" 2013 года), создание дорожного графа с заданными свойствами, мета-оптимизация маршрутов вообще нигде и никак не рассматриваются. Как обычно, все данные и результаты доступны в моем GitHub репозитории OSM Routing Tricks, который я буду пополнять по мере публикаций.



Небольшой маршрут из 330 адресов на карте OpenStreetMap (время построения около 5 секунд на вышеупомянутом лаптопе). Можно ли за это же время построить маршрут, скажем, из 5000 точек? Да, можно, и об этом мы тоже поговорим (в следующих частях статьи).

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

Мега-Учебник Flask Глава 3: Веб-формы (издание 2024)

Level of difficultyMedium
Reading time16 min
Views3.8K

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

Начать изучение
Total votes 6: ↑6 and ↓0+6
Comments2

Pandas: от хаоса к красоте кода

Level of difficultyEasy
Reading time9 min
Views12K

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

Я собрала несколько советов и подводных камней, которых следует избегать, чтобы сделать код на pandas чистым. Надеюсь, вам они тоже будут полезны. Также я буду ссылаться на классическую книгу Роберта Мартина «Чистый код: создание, анализ и рефакторинг».

Погнали!
Total votes 7: ↑7 and ↓0+7
Comments15

Мониторинг Apache Airflow. Оценка «прожорливости» тасок

Reading time10 min
Views2.9K

Всем привет! Случались ли у вас ситуации, когда количество DAG’ов в вашем Airflow переваливает за 800 и увеличивается на 10-20 DAG’ов в неделю? Согласен, звучит страшно, чувствуешь себя тем героем из Subway Surfers… А теперь представьте, что эта платформа является единой точкой входа для всех аналитиков из различных команд и DAG’и пишут более 50 различных специалистов. Подкосились ноги, холодный пот и желание уйти из IT?

Не спешите паниковать, под катом я расскажу о том, как контролировать потребление ресурсов DAG’ов Airflow для предупреждения неоптимально написанных DAG’ов и борьбы с ними.

Меня зовут Давид Хоперия, я Data Engineer в департаменте данных Ozon.Fintech и моим основным инструментом является Apache Airflow, поэтому настало время углубиться в детали его работы.

Поехали
Total votes 16: ↑16 and ↓0+16
Comments10

Shiva — Open Source проект на Rust для парсинга и генерации документов любого типа

Level of difficultyMedium
Reading time3 min
Views9.3K

Идея проекта возникла у меня во время работы над проектом поисковика документов. Существует такая библиотека, как Apache Tika, написанная на Java, которая умеет парсить документы различных типов. Чтобы мой поисковик работал, он должен уметь извлекать текст из документов разных типов (PDF, DOC, XLS, HTML, XML, JSON и т. д.). Сам поисковик я писал на Rust. Но, к сожалению, в мире Rust нет библиотеки, которая умела бы парсить документы всех типов.

Читать далее
Total votes 29: ↑26 and ↓3+23
Comments31

Rust — это не «memory safe C»

Level of difficultyMedium
Reading time27 min
Views43K

TL;DR:
— в Rust намного больше достоинств, чем просто скорость и безопасность
— в Rust по умолчанию CDD (compiler-driven development, разработка через компилирование). Это как TDD, только CDD
— Rust — не сложный язык, особенно если не гнаться за максимальной производительностью

В этой статье я бы хотел рассказать:
— почему взгляд на Rust как на "memory safe C" очень сильно сужает область его возможного применения
— почему я смотрю на Rust как на очень удобный в разработке язык высокого уровня, которому просто случайно повезло оказаться невероятно быстрым
— почему разработка на Rust быстрее, чем многие думают
— почему Rust — это один из лучших языков общего назначения

Читать далее
Total votes 172: ↑167 and ↓5+162
Comments552

Самый лучший в мире курс по Машинному обучению — Алгоритмы Машинного обучения с нуля

Reading time1 min
Views23K

Краткий обзор курса, который я недавно закончил пилить на степике. Курс хардкорный :) В нем необходимо с нуля писать алгоритмы машинного. Наверное это один из лучший способов досконально разобраться в алгоритме.

Курс бесплатный: https://stepik.org/course/68260/promo

Читать далее
Total votes 30: ↑30.5 and ↓-0.5+31
Comments11

Создаём REST-сервис на Rust. Часть 4: переходим к REST API

Reading time9 min
Views26K
В прошлый раз мы реализовали обновление БД.

Осталось сделать только REST-интерфейс. Давайте займёмся этим.

Введение


Эта часть будет, пожалуй, самой сложной — мы близко узнаем типажи Send и Sync, а также тонкости работы замыканий и времён жизни. По-другому я бы озаглавил её «зануда исследует, почему обязательно нужно клонировать данные». Она полезна тем, что затрагивает тонкие места Rust и показывает причины некоторых неочевидных ошибок. Так что если хотите разобраться досконально — добро пожаловать.

Также хочу отметить: если вам что-то непонятно относительно приведённого кода или сами объяснения кажутся недостаточно ясными, не стесняйтесь писать об этом в комментариях. Автор потратил не минуту и не полчаса, пытаясь понять, почему код работает именно в том виде, в котором он написан, и вынужден был не раз сходить в IRC и на форум за разъяснениями.
Читать дальше →
Total votes 17: ↑14 and ↓3+11
Comments2

Как устроена наша PIM-система, и почему мы не используем ни реакт, ни микросервисы

Level of difficultyMedium
Reading time12 min
Views9.4K

Пара слов обо мне. У меня никогда не было серьезного плана делать свой продукт, открывать под это дело компанию, погружаться в custdev и вот это вот всё. Днем я работал в сеньёр девелопером, по вечерам - делал pet-проекты типа онлайн версии настольной игры или онлайн-редактора пиксель-арта, и все было хорошо.

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

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

У нас нет кубернетеса, кликхауса, реакта, бессерверных вычислений, рэббит эмкью, кафки, кибаны, графаны, дженкинса, ноды, эластика, и много чего ещё нет. Зато есть дотнет последней версии, энтити фреймворк, нгинкс и шваггер. Я постараюсь рассказать, как и почему мы дошли до такой жизни, и жизнь ли это.

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

Читать далее
Total votes 37: ↑35 and ↓2+33
Comments38

Большая шпаргалка по Docker: как распилить монолитный проект на части

Level of difficultyMedium
Reading time19 min
Views20K

Погружение в мир контейнеризации с докером — это путь к оптимизации развёртыванию приложений, а также ключ к упрощению жизни разработчиков и системных администраторов. Меня зовут Андрей Аверков, в IT c 2008 начинал пусть с аналитика-проектировщика IT систем, 11 лет в роли разработчика и последние годы на руководящих должностях. Сейчас я тимлид команды разработки из 9 человек в группе компании Кокос. Мы занимаемся созданием и поддержкой CPA платформ (gdeslon.ru, fxpartners.ru, ads.mobisharks.com), а также проектом по генерации лендингов — lpgenerator.ru. У нас большой опыт в разделении продуктов на части, поэтому, сегодня мы собрали самое основное и необходимое для работы с Docker. В нашей шпаргалке вы найдете все необходимое для успешного старта с докером: от базовых концепций и установки до продвинутых техник работы с контейнерами.

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

Полезные расширения VScode для работы с документацией

Reading time2 min
Views11K

Как правило, работа с документацией — это последний этап любого проекта, связанного с данными (data science, data visualization и т. д.), проектированием и разработкой ПО. Речь о создании и редактировании библиотек, файлов README, обучающих материалов и др. Среди всех преимуществ VScode — его уникальная экосистема расширений. И особенно впечатляют те, что помогают работать с документацией. В этой статье поделюсь самыми полезными из них.

Читать далее
Total votes 24: ↑22 and ↓2+20
Comments8

Личное облако на Proxmox

Level of difficultyMedium
Reading time8 min
Views19K

В прошлой статье (https://habr.com/ru/articles/794508/) я писал как поставить Proxmox 8 на Orange Pi 5(b). Это даже получилось, но я уперся в то, что производитель железки не выпускает свежие ядра под нее. Для железки есть 5.10.160 и оно устарело для Proxmox 8. Виртуалки работают, но есть проблемы с фаерволом. Производитель обещает вот-вот выпустить новое, но ждать я не стал и решил сделать инфраструктуру по другому. О чем и напишу. Получается уже цикл статей. Эта будет описывать цель и первые шаги к ней.

Читать далее
Total votes 26: ↑23 and ↓3+20
Comments59

Интегрируем Kotlin сервис с AI чат-ботом с помощью Spring AI за 5 минут

Level of difficultyMedium
Reading time8 min
Views2.6K

Чат-боты с генеративным искусственным интеллектом получили широкую известность после релиза ChatGPT в ноябре 2022 года. Сейчас вряд ли найдётся человек, который не слышал про данный инструмент от OpenAI. Именно он вызвал настоящий бум в данной сфере, вынудив конкурентов разрабатывать свои аналоги, чтобы побороться за место на рынке. Таким образом созданная лавина изменений затронула многие языки программирования. Не обошли они и Java-сообщество. Spring Framework, один из наиболее популярных Java фреймворков обзавёлся модулем Spring AI, который обещает упростить разработку приложений с функциями ИИ.

Давайте вместе взглянем на него в деле и опробуем на демо проекте. В данном гайде мы создадим и подключим Kotlin сервис к чат-боту всего за пять минут, используя Spring AI!

Начать!
Total votes 1: ↑1 and ↓0+1
Comments0

Как быстро написать API на FastAPI с валидацией и базой данных

Reading time11 min
Views19K

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

В этой статье мы разработаем простой API с помощью самого популярного стека и FastAPI. Рассмотрим важные концепции в работе с этим фреймворком, набросаем базовую структуру проекта и развернем приложение на облачном сервере. Подробности под катом!
Читать дальше →
Total votes 53: ↑48 and ↓5+43
Comments39

Установка обратного VPN: нет ничего проще

Level of difficultyEasy
Reading time5 min
Views32K


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

К счастью, эту проблему довольно легко решить, если поднять свой сервер внутри РФ и перенаправить трафик через него. Это так называемый «обратный VPN».

В принципе, его можно организовать на любом компьютере на территории РФ, который постоянно находится в онлайне и подключён к местному провайдеру. Как вариант, заказать услугу VPS за полтора доллара — и поднять систему на внешнем хостинге. И всё, считайте, что вы виртуально переехали обратно в РФ.
Читать дальше →
Total votes 52: ↑47 and ↓5+42
Comments60

Kotlin Object Multiplatform Mapper

Level of difficultyMedium
Reading time5 min
Views3.4K

Складывается такое впечатление, что дописать свою приложение для Android мне суждено не скоро. Каждый раз начиная писать новую версию (так как старая была написана не до конца, использовалась только мной, а через пару-тройку лет простоя - проще написать заново) своего приложения задуманного еще в 2012 году, я сталкиваюсь с ситуацией, что мне не хватает какого-то функционала и начинаю писать свои библиотеки для этого. В первую попытку это был свой ORM (UcaOrm 1, 2, 3). Во вторую KCron - KMP библиотека, реализующая Cron. И вот, начав следующую итерацию, я вновь в таком же положении. Но обо всем по порядку!

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

Как стать VPN провайдером за один вечер

Level of difficultyMedium
Reading time13 min
Views58K

Рассказываю о своём опыте использования Xray (с протоколом VLESS-Reality) - одного из лучших решений для преодоления интернет-цензуры на сегодняшний день. Я потратил много времени на то, чтобы разобраться с ним - теперь вам достаточно одного вечера, чтобы поднять свой сервер на несколько десятков пользователей, c xray на борту!

скрипт ex.sh для простой настройки и установки; есть поддержка Docker

легко добавлять пользователей; клиентские конфиги в форме url-ссылок

правильные конфиги: скрытность + удобство

трафик популярных российских сайтов идёт напрямую, a не через сервер

для xray есть приложения под все популярные ОС - делюсь инструкциями

только https, нет udp; торренты через сервер блокируются по возможности

мой проект на гитхабе: easy-xray

Интересны детали? Добро пожаловать под кат
Total votes 71: ↑70 and ↓1+69
Comments142
1
23 ...

Information

Rating
Does not participate
Works in
Registered
Activity