Дисклеймер: автор никак не связан с Deepnote или его участниками.

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

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

Примеры проектов Deepnote

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

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

Дисклеймер: обычно я использовал Brave, а в других браузеры, только чтобы отловить все странности в его поведении (Brave работает на движке Chromium). Также во время разработки проекта я работал на взаимозаменяемых компьютерах с OSX, Ubuntu и Windows.

Опыт

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

Когда я освоился с платформой, CTRL/⌘ + P был моим основным инструментом.

Блок команд

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

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

Боковая навигация с вкладками и проводником переменных

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

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

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

Pandas Dataframe в обозревателе переменных

Такие функции code intelligence, как автозавершения и переход к определению, не работали с текущей бета-версией.

УТОЧНЕНИЕ: уже в процессе разработки проекта я заметил, что производительность обозревателя значительно улучшилась. Мне нужно было разложить загруженные файлы по папкам; несколько недель назад перемещение файлов в папки и подпапки было запутанным и глючным. Однако эта функция изрядно улучшилась с апреля 2020 года. Прекрасно!

В некоторых модулях курса мне нужно было работать с данными. Не очень большими наборами, но достаточно объёмными, чтобы я расстроился, если бы пришлось заново загружать их на платформу. У Deepnote есть несколько интегрированных наборов данных, таких как Landsat 8 и Goodreads, но для моего проекта мне были нужны мои собственные наборы, которые я уже подготовил.

Кроме того, помимо загрузки файлов из локальной системы существует возможность интеграции с AWS S3, MongoDB и Postgres (по крайней мере моего бета-аккаунта).Существует множество неактивных функций, но лично мне не хватает интеграции с Azure storage и Google Drive в основном потому, что пользователям Google Colab было бы проще ненароком попробовать Deepnote.

Создание нового соединения с IDE

После настройки передачи данных я немного повозился с терминалом, который даёт полный 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. Вы можете обращаться во встроенный чат для общения с командой, что я нахожу очень удобным (поскольку это бета-версия, в ней есть бета-функции 🙂

Читайте также:

Читайте нас в TelegramVK и Яндекс.Дзен


Перевод статьи Thiago Candido: Reviewing Deepnote — The New IDE for Data Scientists

Предыдущая статьяНерассказанная история: исключение Stale Element Reference в Selenium
Следующая статьяWebRTC: фреймворк ICE, STUN и сервера TURN