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

Всем привет!

Хотим поделиться с вами нашим новым открытым вебинаром, который был проведён в рамках курса «Разработчик JavaScript». На вебинаре Александр Коржиков, преподаватель и создатель курса, рассказал и показал на примерах внутреннее устройство платформы, ее окружение, встроенные модули и базовые концепции, которые используются при разработке приложений.

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

Всем привет! В рамках нашего курса «Разработчик Python» мы провели ещё один открытый урок на тему «Как не нужно писать на Python». Занятие вёл преподаватель и создатель курса Станислав Ступников, имеющий большой опыт промышленной и научной разработки. Рассматривались антипаттерны программирования, bad practice и прочее зло, о котором нужно знать и которого следует избегать в процессе написания кода.

Подробности смотрите в видео и кратком изложении. Внимание: некоторые примеры кода не рекомендуется запускать на своём компьютере!

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

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

Провели на прошлой недели открытый вебинар в рамках нашего курса «Администратор Linux», где Леонид разбирал быструю настройку Vagrant-а, а так же возможности и нюансы совместного использования Vagrant и Git.

Вопросы и комментарии, как всегда, ждём или тут, или их можно задать нашим преподавателям, зайдя на день открытых дверейЧитать полностью »

Всем привет!

Пока Леонид готовится к своему первому открытому уроку по нашему курсу «Администратор Linux», мы продолжаем рассказывать про загрузку ядра Linux-а.

Поехали!

Понимание работы системы, функционирующей без сбоев — подготовка к устранению неизбежных поломок

Древнейшая шутка в области ПО с открытым исходным кодом — заявление, что “код документирует сам себя”. Опыт показывает, что чтение исходного кода похоже на прослушивание прогнозов погоды: разумные люди все равно выйдут на улицу и посмотрят на небо. Ниже приводятся советы для проверки и изучения загрузки систем Linux с помощью знакомых инструментов отладки. Анализ процесса загрузки системы, которая работает хорошо, готовит пользователей и разработчиков к устранению неизбежных сбоев.

С одной стороны, процесс загрузки на удивление прост. Ядро операционной системы (kernel) запускается однопоточно и синхронно на одном ядре (core), что может показаться понятным даже жалкому человеческому уму. Но как запускается само ядро ОС? Какие функции выполняют initrd (диск в оперативной памяти для начальной инициализации) и загрузчики? И постойте, почему всегда горит светодиод в Ethernet-порте?

Анализ процесса загрузки ядра Linux - 1Читать полностью »

Всем привет!

Запустили юбилейный пятый поток курса «Разработчик Python». Перед стартом каждого потока часто спрашивают какую версию мы используем в обучении (вообще обе и не только, как бы это странно не звучало, учитывая как называется курс, Python) и разные нюансы миграции с одной версии на другую. Сегодня мы хотим поделиться статьёй об опыте миграцию с 2 на 3 в Facebook, которую рассказывали на PyConf.

Поехали.

Переход на Python 3 стал значительно популярней за последние годы, но процесс еще далек от завершения. В инфраструктуре многих крупных компаний, использующих Python, остаются большие блоки кода на Python 2.7, и Facebook — не исключение. Джейсон Фрайд (Jason Fried) посетил PyCon 2018, чтобы рассказать об изменениях, произошедших в компании за последние 4 года — в самом начале Python 3 практически отсутствовал, но в итоге стал основной версией Python в компании. Джейсон помог достичь этой цели, и его доклад [видео на YouTube] — отличный источник идей для других организаций, которые хотят провести миграцию.

Фрайд начал работать в Facebook в 2011 году и быстро понял, что нужно учить Python, если он хочет получать ревью кода быстрее. Чуть позже он понял, что стал основной движущей силой за переход на Python 3 в Facebook. Это никогда не входило в его планы, и случилось само собой по мере его работы с Python.

Python 3 в Facebook - 1Читать полностью »

Всем привет! Вот мы и открыли очередной, четвёртый по счёт уже, поток курса «Администратор Linux», который уверенно занимают свою нишу рядом с девопсерским курсом. Больше преподавателей, больше информации и стендов. Ну и как всегда больше интересной информации, которую подобрали преподаватели.

Поехали.

Задумывались ли вы когда-нибудь, что нужно для того, чтобы ваша система была готова к запуску приложений?

Понимать процессы загрузки ядра и запуска системы Linux, важно для настройки Linux и решения проблем запуска. В этой статье представлен обзор процесса загрузки ядра с использованием GRUB2 загрузчика и запуска, выполняемого системой инициализации systemd.

На самом деле, есть два ряда событий, необходимых для приведения компьютера с Linux в рабочее состояние: загрузка ядра (boot) и запуск системы (startup). Процесс загрузки ядра начинается при включении компьютера и заканчивается с инициализацией ядра и запуском systemd. После этого начинается процесс запуска системы, и именно он доводит компьютер Linux до рабочего состояния.

Введение в процессы загрузки ядра и запуска системы Linux - 1Читать полностью »

Всем привет!

А мы тут запускаем очередной поток курса «Разработчик JavaScript» и, по рекомендации преподавателей, готовим интересные материалы для чтения. Сегодня посмотрим на одну интересную заметку о визуализации вывода данных.

Поехали.

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

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

Давайте, я объясню, что с ней не так, и почему вам необходимо перестать использовать ее как можно скорее.

Сперва, поговорим о том, зачем мы вообще используем диаграммы:

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

Я покажу, как круговая диаграмма терпит неудачу по всем эти критериям. “Задача” круговой диаграммы — показать взаимоотношения частей и целого.

Худшая диаграмма на свете - 1Читать полностью »

Всем привет!

В рамках нашего нового курса «Реляционные СУБД» создатель и преподаватель курса Алексей Цыкунов провёл открытый урок по типам индексов, об их преимуществах и недостатках. Разбиралось в каких случаях какие именно применяются, как они работают при операциях SELECT/INSRT/UPDATE/DELETE.

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

Всем привет!

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

Поехали.

Реактивное программирование сперва звучит, как название зарождающейся парадигмы, но на самом деле, относится к методу программирования, в котором для работы с асинхронными потоками данных используется событийно-ориентированный подход. Основываясь на постоянно текущих данных, реактивные системы реагируют на них путем выполнения ряда событий.
Реактивное программирование следует шаблону проектирования “Наблюдатель”, который можно определить следующим образом: если в одном объекте происходит изменение состояния, то все прочие объекты оповещаются и обновляются соответствующим образом. Поэтому, вместо того, чтобы опрашивать события на предмет изменений, события пушатся асинхронно, чтобы наблюдатели могли их обработать. В этом примере, наблюдатели — функции, которые исполняются, когда событие отправлено. А упомянутый поток данных — фактический наблюдаемый.

Почти все языки и фреймворки используют этот подход в своей экосистеме, и последние версии Java — не исключение. В этой статье я объясню как можно применить реактивное программирование, используя последнюю версию JAX-RS в Java EE 8 и функционал Java 8.

Реактивное программирование с JAX-RS - 1Читать полностью »

Всем привет!

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

Как всегда ждём вопросы и комментарии тут или их можно задать напрямую Диме, зайдя на Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js