Pull to refresh
-7
0.3
Some Name @sswwssww

Middle Python Backend Developer

Send message

Обзор приложения NotebookLM

Level of difficultyEasy
Reading time8 min
Views6.4K

Веб-приложение под названием NotebookLM (https://notebooklm.google.com/) было выпущено компанией Google около года назад, и на Хабре было по этому поводу два кратких анонса в прошлом году (раз, два). На мой взгляд, оно заслуживает обзора чуть более подробного чем эти краткие сообщения, так что попробую восполнить этот пробел.

NotebookLM - это инструмент на основе ИИ, который позволяет относительно быстро, удобно и без лишних телодвижений получить краткий разносторонний обзор (саммари) объемных документов (книг, статей), а также интерактивно взаимодействовать с ними (задавать вопросы, касающиеся их содержания). В моем понимании он представляет собой надстройку над "обычным ИИ-чатом", которому в контекст загружен интересующий пользователя документ. Эта надстройка включает в себя:

1. Набор из нескольких преднастроенных стандартизованных промптов, доступных в один клик и ориентированных на работу с объемными текстами ("Составь мне оглавление", "Составь мне FAQ на основе этого текста", и т.п.)

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

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

Посмотрим как это работает
Total votes 7: ↑7 and ↓0+11
Comments5

Как написать ТЗ на простую программу (калькулятор)

Level of difficultyEasy
Reading time11 min
Views12K

Рассмотрим, как может выглядеть работа по созданию ТЗ на несложную программу.

Возьмём калькулятор, который будет выполнять базовые арифметические операции (+, -, *, /).

Работу можно построить в 2 этапа:

Читать далее
Total votes 25: ↑20 and ↓5+20
Comments113

DETR: Бесконечная история

Level of difficultyHard
Reading time13 min
Views2.6K

Всем привет, с вами команда Layer!
Мы рады сообщить, что совсем скоро выйдет наша новая исследовательская работа, посвященная поиску моментов в видео, релевантных пользовательскому запросу. Мы хотим сделать эту работу как можно более доступной для каждого, кто хочет глубже разобраться в теме. Поэтому мы решили написать этот небольшой туториал, посвященный семейству моделей DETR, так как они используются не только для детекции котиков на картинках, но и в таких необычных доменах, как детекция моментов в видео. Мы уверены, что среди читателей многие знакомы с основами DETR, однако подозреваем, что не все могли следить за её развитием. Всё‑таки по сравнению с YOLO, DETRу пиара явно не достает. В этой статье мы предлагаем краткий обзор эволюции модели, чтобы помочь вам лучше ориентироваться в новых исследованиях. Если же вы впервые слышите о DETR или хотите освежить свои знания, то бегом читать — тык, если после прочтения остались вопросы, то можно ознакомиться с этими видео — тык, тык.

Давайте детальнее разберёмся, что ждёт вас в этом туториале. Сначала мы рассмотрим недостатки оригинальной версии DETR, а затем перейдём к архитектурным улучшениям, которые либо устранили эти проблемы, либо заметно их сгладили. Начнём с Deformable DETR — модели, которая оптимизировала вычисления. Затем обратим внимание на Conditional DETR и DAB DETR — архитектуры, которые существенно переосмыслили роль queries в модели. Далее мы погрузимся в особенности DN‑DETR, который стабилизирует one‑to‑one matching. После этого детально разберём DINO DETR — модель, которая объединяет и улучшает идеи DN‑DETR и DAB‑DETR, а также переизобретает RPN для детекционных трансформеров. И в завершение нашего путешествия мы познакомимся с CO‑DETR, который объединил классические детекторы, такие как ATSS, Faster RCNN, и модели типа DETR, установив новые SOTA метрики на COCO.

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

PostgreSQL Antipatterns: устраняем вложенные интервалы

Level of difficultyEasy
Reading time5 min
Views6.8K

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

Но self-JOIN показал себя не лучшим образом...

Как сделать эффективнее?
Total votes 32: ↑31 and ↓1+36
Comments3

Простой мини-чат на FastApi: Современный интерфейс, вебсокеты и SQLAlchemy с деплоем

Reading time40 min
Views15K

Привет, друзья! Сегодня я подготовил для вас увлекательную практическую статью о создании мини-чата на FastApi. Мы погрузимся в мир вебсокетов, узнаем, зачем они нужны и как применяются в реальных приложениях. Также я продемонстрирую работу с асинхронной SQLAlchemy на примере взаимодействия с базой данных SQLite.

Для создания современного интерфейса мы обратимся к интересному и бесплатному сервису Websim.ai, который за пару минут сгенерирует нам интерфейс, включая страничку для входа/регистрации и страницу самого чата.

Чтобы наш чат мог обслуживать множество пользователей одновременно, мы выполним деплой нашего FastApi приложения. Для этого воспользуемся сервисом Amvera Cloud. Нам нужно будет подготовить файлы приложения, написать код, создать файл с настройками (можно сгенерировать на сайте или скопировать мой код), а затем доставить файлы на сервис. Для доставки можно использовать встроенный терминал или GIT, используя стандартные команды PUSH/PULL.

Но прежде чем мы погрузимся в код, давайте кратко обсудим, что такое вебсокеты и как они работают в контексте FastApi.

Читать далее
Total votes 18: ↑18 and ↓0+23
Comments5

50 терминов системного дизайна, которые должен знать каждый разработчик

Level of difficultyMedium
Reading time10 min
Views18K



1. Масштабируемость / Scalability


  • Масштабируемость — это способность системы поддерживать возросшую нагрузку путем добавления дополнительных ресурсов
  • Примером является добавление дополнительных серверов для обработки увеличившегося веб-траффика
  • Что такое масштабируемость и как ее достичь?

2. Балансировка нагрузки / Load Balancing


  • Балансировка нагрузки — это разделение входящего сетевого траффика между несколькими серверами для снижения нагрузки на каждый из них (во избежание того, чтобы на один сервер приходилось слишком много траффика)
  • Примером является распределение веб-траффика между несколькими экземплярами EC2 с помощью сервиса AWS Elastic Load Balancer (ELB)
  • Понимание балансировки нагрузки
Читать дальше →
Total votes 43: ↑37 and ↓6+43
Comments6

Как я управляю временем, чтобы все успевать: адская смесь Time Blocking, Pomodoro и дофаминовых циклов

Level of difficultyEasy
Reading time7 min
Views51K

Привет! Я Женя, CPO в корпоративном мессенджере Compass. Было бы круто управлять временем, как в старенькой TimeShift, в которой я зависал в 2008 году, но нет. Зато можно поностальгировать, глядя на скриншоты.

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

Путь к нему оказался трудным и полным ошибок. До того, как я пришел к подходу, я попробовал несколько популярных методик контроля времени и внимания — ни одна не помогла, а иногда даже фрустрировали.

Поэтому мне пришлось подтянуть теорию и найти свое удобное решение.

Читать далее
Total votes 47: ↑42 and ↓5+45
Comments46

Data Warehouse, Data Lake, Data Lakehouse, Data Fabric, Data Mesh – что это такое, и в чем разница между концепциями

Reading time14 min
Views16K

Эпоха современных хранилищ данных началась с появления реляционных баз данных (далее БД). С появлением бизнес‑аналитики следствием развития БД стала концепция Data Warehouse (корпоративное хранилище данных, DWH).

Дальнейший рост объемов данных, введение термина «большие данные» и разнообразие требований к обработке привели к эволюции архитектур данных.

Рассмотрим этапы эволюции архитектуры данных: чем отличаются концепции, какие у них преимущества и недостатки, для каких задач в работе с данными подходят.

Читать далее
Total votes 19: ↑17 and ↓2+20
Comments3

Не стоит пользоваться OFFSET и LIMIT в запросах с разбиением на страницы

Reading time5 min
Views52K
Прошли те дни, когда не надо было беспокоиться об оптимизации производительности баз данных. Время не стоит на месте. Каждый новый бизнесмен из сферы высоких технологий хочет создать очередной Facebook, стремясь при этом собирать все данные, до которых может дотянуться. Эти данные нужны бизнесу для более качественного обучения моделей, которые помогают зарабатывать. В таких условиях программистам необходимо создавать такие API, которые позволяют быстро и надёжно работать с огромными объёмами информации.


Читать дальше →
Total votes 47: ↑29 and ↓18+23
Comments70

Python: как переменные работают на самом деле? Погружаемся в байткод и C

Level of difficultyHard
Reading time8 min
Views16K

Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же автор серии видео про его устройство.

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

Под катом куча кишков питона и видео на 46 минут с дополнительными кишками питона (ни один настоящий питон не пострадал при написании данной статьи).

Читать далее
Total votes 44: ↑43 and ↓1+58
Comments6

Системный аналитик. Краткий гайд по профессии. Часть 4. Синхронные и асинхронные интеграции. REST, gRPC, Kafka, RabbitMQ

Level of difficultyEasy
Reading time17 min
Views16K

Из этой статьи вы узнаете об основных наиболее часто используемых типах интеграции приложений и распределенных систем, таких как REST, gRPC, Kafka, RabbitMQ, WebSocket.

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

Читать далее
Total votes 18: ↑14 and ↓4+15
Comments1

Классификация защищённых мессенджеров. Новые проекты

Reading time5 min
Views43K


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

Стандартные функции безопасных мессенджеров — конфиденциальность, целостность, аутентификация сообщений и защита от посторонних, то есть от подделки, удаления или вставки сообщений.
Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments28

Руководство от ненавистника Kubernetes: как использовать эту технологию

Level of difficultyEasy
Reading time6 min
Views7.8K

Пол Батлер, инженер-программист и создатель Jamsocket, уверяет, что Kubernetes — это как сложный, но увлекательный пазл: его можно ненавидеть, но без него не обойтись. Мы перевели его статью, в которой он рассказал, какие ресурсы K8s использует с удовольствием, а от каких предпочитает держаться подальше. В этом руководстве ненавистника вы найдете ценные советы, как извлечь максимум пользы из Kubernetes.

Читать далее
Total votes 27: ↑24 and ↓3+31
Comments4

Как починить GoodbyeDPI, если он перестал работать 22.09.24

Level of difficultyEasy
Reading time1 min
Views470K

Решение нашел в комментариях оригинального гитхаба от ValdikSS (работает только для самой последней версии 0.2.3rc3-2).

Читать далее
Total votes 165: ↑137 and ↓28+126
Comments227

Деконструкция монолита: Максимально производительный подход к проектированию программ

Reading time10 min
Views6.8K

Как и почему компания Shopify перешла от монолитной архитектуры к модульно-монолитной.


image

У компании Shopify одна из крупнейших баз кода на Ruby on Rails. Над ней трудились более десяти лет свыше тысячи разработчиков. Она включает множество разнообразных функций, например, выставление счетов продавцам, управление сторонними приложениями, обновление информации о товарах, обработка доставки и так далее.

Изначально система была построена как монолит, то есть все эти разные функциональные возможности были встроены в одну кодовую базу без каких-либо разграничений между ними. В течение многих лет эта архитектура работала нормально, но в конце концов мы достигли точки, когда недостатки монолита перевесили преимущества. Нам предстояло сделать выбор, как действовать дальше.
Читать дальше →
Total votes 12: ↑12 and ↓0+19
Comments4

Стек с поиском максимума

Level of difficultyEasy
Reading time9 min
Views1.6K

Несколько раз мне попадалась задача из разряда «собеседование в Google»:
нужно реализовать стек, хранящий целые числа, в котором дополнительно должна существовать операция max(), возвращающая максимальный элемент за O(1) времени и с использованием O(1) дополнительной памяти (в сравнении со стеком без этой операции).

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

Читать далее
Total votes 13: ↑11 and ↓2+16
Comments35

Ассемблер для программистов на языках высокого уровня: Hello World

Level of difficultyMedium
Reading time6 min
Views25K

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

Рассмотрим следующий код:

section .data
  msg db "Hello, World!"

section .text
  global _start

_start:
  mov rax, 1
  mov rdi, 1
  mov rsi, msg
  mov rdx, 13
  syscall

  mov rax, 60
  mov rdi, 0
  syscall

К счастью, по второй строке мы можем понять, что он делает.

Здесь нет ничего привычного нам: мы не видим ни условных операторов, ни циклов, нет никакого способа создавать функции… Да даже у переменных нет имён!

С чего же вообще начать?

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

Завершив прочтение этого руководства, вы сможете ориентироваться в ассемблерном коде, будете знать, где искать информацию, и даже сможете самостоятельно писать простые программы.
Читать дальше →
Total votes 61: ↑57 and ↓4+69
Comments41

о1: почему новая GPT от OpenAI — это не хайп, а переход к новой парадигме в ИИ

Level of difficultyEasy
Reading time27 min
Views97K

Последние пару лет развитие языковых нейросетей как будто бы шло по принципу «больше, длиннее, жирнее»: разработчики пытались раздуть свои модели на как можно большее число параметров и прогнать через них максимальный объем тренировочных данных. 12 сентября OpenAI выпустили новую LLM, которая добавляет в это уравнение еще одно измерение для прокачки: теперь можно масштабировать объем «мыслей», который модель будет тратить в процессе своей работы. В этой статье мы разберемся, чему научилась новая GPT o1, и как это повлияет на дальнейшую эволюцию ИИ.

Давайте выясним →
Total votes 229: ↑223 and ↓6+252
Comments351

Обходим замедление Youtube на Android TV без VPN

Level of difficultyMedium
Reading time3 min
Views251K

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

Читать далее
Total votes 51: ↑48 and ↓3+56
Comments85

Information

Rating
2,337-th
Location
Cascade Station, None, Австралия
Date of birth
Registered
Activity

Specialization

Backend Developer
Middle
From 250,000 ₽
Python
PostgreSQL
Fastapi
Google Cloud Platform
Kubernetes
CI/CD
Docker