Рубрика «Блог компании Отус»

Всем доброго!

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

Это руководство для тех, кто уже написал классное приложение на Python, но еще не писал для
них тесты.

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

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

Знакомство с тестированием в Python. Ч.1 - 1Читать полностью »

И снова добрый вечер!

Запускаем второй поток нашего нового курса «Реляционные СУБД», который мы чуть дотюнили по итогам первого прогона: дополнительные занятия по кластерам MySQL и Postgres, оказался востребованным docker и ещё разные «доработки напильником». Так что ждите открытые уроки (в которые вынесли часть старых тем) и интересные материалы. Сегодня мы покопаемся в техниках Oracle.

Поехали.

Bitmap-индексы Oracle сильно отличаются от стандартных индексов B-дерева. В bitmap-структурах создается двухмерный массив со столбцом для каждой строки в индексируемой таблице. Каждый столбец представляет отдельное значение в bitmap-индексе. Этот двухмерный массив показывает каждое значение индекса, умноженное на количество строк в этой таблице.

Oracle распаковывает bitmap (со скоростью извлечения строки) в буфер данных ОЗУ для быстрого сканирование на предмет совпадения значений. Эти совпадающие значения передаются Oracle в виде списка Row-ID, и значения Row-ID могут напрямую обращаться к необходимой информации.

Техники Bitmap-индекса Oracle - 1Читать полностью »

И снова привет!

В декабре у нас стартует обучение очередной группы «Data scientist», поэтому открытых уроков и прочих активностей становится всё больше. Например, буквально на днях прошёл вебинар под длинным названием «Feature Engineering на примере классического датасета Титаника». Его провёл Александр Сизов — опытный разработчик, кандидат технических наук, эксперт по Machine/Deep learning и участник различных коммерческих международных проектов, связанных с искусственным интеллектом и анализом данных.

Открытый урок занял около полутора часов. В ходе вебинара преподаватель рассказал про подбор признаков, преобразование исходных данных (кодирование, масштабирование), настройку параметров, обучение модели и много чего ещё. В процессе проведения урока участникам показывалась тетрадь Jupyter Notebook. Для работы использовались открытые данные с платформы Kaggle (классический датасет про «Титаник», с которого многие начинают знакомство с Data Science). Ниже предлагаем видео и транскрипт прошедшего мероприятия, а тут можно забрать презентацию и коды в юпитеровском ноутбуке.

Читать полностью »

Всем добрый день!

Представляем вам перевод интересной статьи, который подготовили для вас рамках курса «Разработчик C++». Надеемся, что она будет полезна и интересна для вас, как и нашим слушателям.

Поехали.

Сталкивались ли вы когда-нибудь с терминами внутренняя и внешняя связь? Хотите узнать, для чего используется ключевое слово extern, или как объявление чего-то static влияет на глобальную область? Тогда эта статья для вас.

В двух словах

В единицу трансляции включены файл реализации (.c/.cpp) и все его заголовочные файлы (.h/.hpp). Если внутри единицы трансляции у объекта или функции есть внутреннее связывание, то этот символ виден компоновщику только внутри этой единицы трансляции. Если же у объекта или функции есть внешнее связывание, то компоновщик сможет видеть его при обработке других единиц трансляции. Использование ключевого слова static в глобальном пространстве имен дает символу внутреннее связывание. Ключевое слово extern дает внешнее связывание.
Компилятор по умолчанию дает символам следующие связывания:

  • Non-const глобальные переменные — внешнее связывание;
  • Const глобальные переменные — внутреннее связывание;
  • Функции — внешнее связывание.

Внутренняя и внешняя линковка в C++ - 1
Читать полностью »

Всем привет!

Вторая часть перевода, который мы разместили пару недель назад, в рамках подготовки к старту второго потока курса «Data scientist». Впереди ещё один интересный материал и открытый урок.

А пока поехали дальше в дебри моделей.

Модель нейронного перевода

В то время как ядро sequence-to-sequence модели создается функциями из tensorflow/tensorflow/python/ops/seq2seq.py, остается еще пара трюков, использующихся в нашей модели перевода в models/tutorials/rnn/translate/seq2seq_model.py, о которых стоит упомянуть.

Модели Sequence-to-Sequence Ч.2 - 1Читать полностью »

Всем добрый день!

До конца года осталось уже почти всего ничего, но всё же несколько новинок в курсах у нас будет. Один из таких новый курсов — «Agile Delivery Manager», который создала Марина Арефьева. По традиции подготовили для вас открытые уроки и интересные материалы. Сегодня познакомимся о виденье, что же такое Delivert Manager и с чем его едят.

Поехали.

Рич Льюис (Rich Lewis) — лучший, с кем я когда-либо работал. Когда я только встретил его, он был бизнес аналитиком и скрам-мастером небольшой команды. Он справлялся со своей работой, но явно был способен на большее. Я предложил ему должность Delivery Manager в программе, которой занимался в то время.

О роли Delivery Manager мы говорим не часто. Конечно, это не часть “семьи” Agile, где доминирует терминология Scrum. Владелец Продукта; Скрам-мастер; Все остальные с ярлыком “Разработчик”. Вот, пожалуй, и все.

Тем не менее, название должности — Delivery Manager, существует. Например, в The Government Digital Service (GDS) в Великобритании и все большем количестве компаний в США.

Delivery Manager — новая роль в мире Agile - 1Читать полностью »

Всем добрый день!

Что ж, конец месяца у нас всегда интенсивные, вот и тут остался всего день до старта второго потока курса «Разработчик на Spring Framework» — замечательного и интересного курса, который ведёт не менее прекрасный и злой Юрий (как его называют некоторые студент за уровень требований в ДЗ), так что давайте рассмотрим ещё один материал, который мы подготовили для вас.

Поехали.

Введение

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

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

Эффективное управление транзакциями в Spring - 1Читать полностью »

Всем добрый вечер!

Вот и осталось всего ничего (то есть один день) до запуска потока курса «DevOps практики и инструменты», а значит нам надо успеть за это время довыложить оставшиеся части статьи «Почему важна SRE документация».

Продолжаем.

Документы для Онбординга Нового Сервиса

SRE проводят PRR (production readiness review, обзор готовности производства) для проверки соответствия сервиса стандартам операционной готовности, а также чтобы убедиться, что владельцы сервиса понимают, как пользоваться знаниями SRE для управления большими системами.

Сервису необходимо пройти эту проверку до запуска в продакшн. (До запуска его поддерживают не SRE, а сама команда разработки.) Цель PRR на данном этапе — убедиться, что сервис будет удовлетворять минимальным стандартам надежности на момент запуска.

Почему важна SRE документация. Ч. 2 - 1Читать полностью »

Всем добрый день!

И у нас снова открыт новый поток на доработанный курса «Data scientist»: ещё один отличный преподаватель, чуть доработанная исходя из обновлений программа. Ну и как обычно интересные открытые уроки и подборки интересных материалов. Сегодня мы начнём разбор seq2seq моделей от Tensor Flow.

Поехали.

Как уже обсуждалось в туториале RNN (рекомендуем ознакомиться с ним перед чтением этой статьи), рекуррентные нейронные сети можно научить моделировать язык. И возникает интересный вопрос: возможно ли обучение сети на определенных данных для генерации осмысленного ответа? Например, можем ли мы научить нейронную сеть переводить с английского языка на французский? Оказывается, что можем.

Это руководство покажет вам, как создать и обучить такую систему end-to-end. Скопируйте основной репозиторий Tensor Flow и репозиторий моделей TensorFlow с GitHub. Затем, можно начать с запуска программы перевода:

cd models/tutorials/rnn/translate
python translate.py --data_dir [your_data_directory]

Модели Sequence-to-Sequence Ч.1 - 1Читать полностью »

Всем добрый день!

У нас осталось не так много времени до запуска нового потока «Руководитель разработки» так что ещё один интересный материал, который немного затрагивается в беседах на наших занятиях.

Поехали.

Сертифицированные консультанты SAFe (Certified SAFe Program Consultants, кратко — SPC) — агенты изменений, которые обладают техническими знаниями SAFe и стремятся улучшить процессы разработки ПО и систем внутри компании. Они играют критически важную роль в успешности внедрения SAFe. SPC могут стать люди самых разных внутренних и внешних направлений, включая бизнес- и технологических лидеров, менеджеров портфолио/программ/проектов, лидов процессов, архитекторов, аналитиков и консультантов.

Certified SAFe® Program - 1Читать полностью »