Дисклеймер: автор никак не связан с Deepnote или его участниками.
Deepnote — это бесплатный онлайн-блокнот для специалистов по данным, фокусирующийся в основном на совместном использовании в реальном времени и абстрагировании всех понятий, мешающих работе, таких как настройка окружения и инфраструктуры.
Недавно стартап объявил, что привлёк $3.8 миллиона долларов первоначальных инвестиций от Index Ventures и таких частных инвесторов как Грег Брокман и Наваль Равикант. Я захотел попробовать. Подписался на бета-версию и терпеливо ждал приглашения пять (!) дней. Зашёл в систему, около часа возился с платформой, попробовал примеры проектов; ниже я рассказываю о своём опыте.

Через несколько месяцев мой друг, работающий в финансовом бизнесе, пригласил меня создать онлайн-курс португальского языка, в основном на Python. Я должен был отвечать за настройки, программирование и производительность курса.
Я с радостью принял приглашение, поскольку глубоко заинтересован в финансовых темах и никогда прежде не занимался онлайн-курсами. Затем мне пришла в голову идея попробовать Deepnote и начать разработку всех блокнотов Python с его помощью.
Дисклеймер: обычно я использовал Brave, а в других браузеры, только чтобы отловить все странности в его поведении (Brave работает на движке Chromium). Также во время разработки проекта я работал на взаимозаменяемых компьютерах с OSX, Ubuntu и Windows.
Опыт
Сначала я загрузил мои старые блокноты, над которыми уже работал для предыдущих курсов, и приступил к созданию проекта. Deepnote также предлагает возможность импорта репозиториев из GitHub и GitLab, что упрощает настройку.
Когда я освоился с платформой, CTRL/⌘ + P был моим основным инструментом.

Хорошо работает для выполнения команд, приведённых на скриншоте, однако возможности в составлении запросов не удовлетворили меня на 100%. Я испытывал некоторые проблемы с поиском файлов внутри папок, что было довольно болезненно, поскольку мой проект в основном и состоял из папок и подпапок.
На вкладке Project можно просматривать файлы проекта, добавлять новые файлы и передачи данных, а также получить доступ к терминалу.

Сам блокнот довольно интересен и содержит несколько классных функций. Я был счастлив увидеть легко доступную шпаргалку по разметке.
IDE автоматически обнаруживает модули, пакеты pip
устанавливаются на лету. Если вы используете команду !pip
, Deepnote сохраняет её в скрытом файле и запускает каждый раз при запуске среды. Также есть возможность создавать файл requirements.txt
и взаимодействовать с ним через Terminal.
Обозреватель переменных — замечательная функция, в которую уже интегрированы некоторые метрики, что довольно симпатично.

Такие функции code intelligence, как автозавершения и переход к определению, не работали с текущей бета-версией.
УТОЧНЕНИЕ: уже в процессе разработки проекта я заметил, что производительность обозревателя значительно улучшилась. Мне нужно было разложить загруженные файлы по папкам; несколько недель назад перемещение файлов в папки и подпапки было запутанным и глючным. Однако эта функция изрядно улучшилась с апреля 2020 года. Прекрасно!
В некоторых модулях курса мне нужно было работать с данными. Не очень большими наборами, но достаточно объёмными, чтобы я расстроился, если бы пришлось заново загружать их на платформу. У Deepnote есть несколько интегрированных наборов данных, таких как Landsat 8 и Goodreads, но для моего проекта мне были нужны мои собственные наборы, которые я уже подготовил.
Кроме того, помимо загрузки файлов из локальной системы существует возможность интеграции с AWS S3, MongoDB и Postgres (по крайней мере моего бета-аккаунта).Существует множество неактивных функций, но лично мне не хватает интеграции с Azure storage и Google Drive в основном потому, что пользователям Google Colab было бы проще ненароком попробовать Deepnote.

После настройки передачи данных я немного повозился с терминалом, который даёт полный root-доступ к вашему компьютеру, но я не нашёл ему применение в проекте. Мне кажется, я запустил терминал только один раз, когда ядро Deepnote вошло в цикл перезапуска, и я пытался исправить это командами bash.
На вкладке Environment можно выбрать конфигурацию компьютера, перезапустить его, посмотреть нагрузку на CPU и RAM и проверить пакеты, от которых зависит ваш проект.

Доступны следующие бесплатные конфигурации:
- Basic — Intel Haswell 1vCPU ~1.5GB RAM No GPU;
- Pro — Intel Haswell 2vCPU ~5GB RAM No GPU.
Также по запросу доступна конфигурация Performance:
- Performance — Intel Haswell 4vCPU ~12GB RAM T4 GPU.
И вкладка Comments. Коммуникационные возможности Deepnote действительно хороши, и, хотя этот курс я делал в основном в одиночку, иногда я просил друга просмотреть некоторые из блокнотов и не был разочарован.

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

Вывод
Deepnote решил проблему выбора IDE для специалистов по данным, конкурируя с весьма хорошими и устоявшимися альтернативами.
Основа его мощи — выделяющийся на фоне остальных подход, сфокусированный на совместной работе и предоставляющий реальный опыт Google Docs для специалистов по данным.
Я уверен, что недоработанные функции уже находятся в процессе исправления, а также реализуются такие функции, как управление версиями, команды, информационные панели и API для совместного использования блокнотов.
Если вам интересно подробнее узнать о платформе, я рекомендую испытать её на проекте, где совместное использование — ключевая задача. Так вы сможете извлечь реальную пользу из работы с платформой.
Даже если вы новичок в среде Python или работе с блокнотами, с Deepnote действительно легко начинать.
Я рекомендую использовать эту платформу с новыми проектами и быть на связи с разработчиками Deepnote. Вы можете обращаться во встроенный чат для общения с командой, что я нахожу очень удобным (поскольку это бета-версия, в ней есть бета-функции 🙂

Читайте также:
- Почему в базе данных происходит взаимоблокировка?
- Слабо контролируемое обнаружение объектов - сквозной цикл обучения
- Python: 5 ошибок в применении охвата списка
Читайте нас в Telegram, VK и Яндекс.Дзен
Перевод статьи Thiago Candido: Reviewing Deepnote — The New IDE for Data Scientists