All streams
Search
Write a publication
Pull to refresh
137
2.2

Редактор

Send message

Открытый вебинар «Игра «2048»

Reading time1 min
Views3.7K
Всем привет!

Мы открыли новый курс — «Разработчик игр на C#» (который, в целом, больше, чем только разработка игр), а создатель и преподаватель курс Евгений Волосатов уже провёл первый открытый урок. На нём он показал на примере создания игры «2048» весь жизненный цикл создания программы: планирование, создание модуля логики игры, интерфейса пользователя, подбор музыкальных эффектов, перенос игры на Android или iPhone.



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

Введение в процессы загрузки ядра и запуска системы Linux

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

Поехали.

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

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

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

Читать дальше →

Худшая диаграмма на свете

Reading time5 min
Views18K
Всем привет!

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

Поехали.

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

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

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

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

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

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

Читать дальше →

Открытый вебинар «Индексы»

Reading time1 min
Views5K
Всем привет!

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


Как всегда ждём вопросы и комментарии.

Реактивное программирование с JAX-RS

Reading time10 min
Views6.5K
Всем привет!

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

Поехали.

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

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

Читать дальше →

Открытый вебинар «Cтранно рекурсивный шаблон»

Reading time1 min
Views2.7K
Всем привет!

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



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

DBMS-транзакции

Reading time4 min
Views3.1K
Всем бобра! Мы активно расширяем наш, так сказать, ассортимент курсов, и вот рады представить новый: «Реляционные СУБД». Курс создан одним из ведущих преподавателей курса «Администратор Linux»Алексеем Цыкуновым. В остальном всё будет как обычно: полезности и открытые уроки, на которых Алексей будет делиться разными вещами, что не входят в сам курс.

Поехали!
Читать дальше →

Что нового в JPA 2.2

Reading time10 min
Views9.8K
Всех с праздником!

Так уж внезапно получилось, что старт второй группы «Разработчик Java Enterprise» совпал с 256-м днём в году. Совпадение? Не думаю.

Ну и делимся предпоследней интересностью: что же нового привнёс JPA 2.2 — cтриминг результатов, улучшенное преобразование даты, новые аннотации — лишь несколько примеров полезных улучшений.

Поехали!

Java Persistence API (JPA) — основополагающая спецификация Java EE, которая широко используется в индустрии. Независимо от того, разрабатываете вы для платформы Java EE или для альтернативного фреймворка Java, JPA — ваш выбор для сохранения данных. JPA 2.1 улучшили спецификацию, позволив разработчикам решать такие задачи, как автоматическая генерация схемы базы данных и эффективная работа с процедурами, хранящимися в базе данных. Последняя версия, JPA 2.2, улучшает спецификацию на основе этих изменений.
В этой статье я расскажу о новом функционале и приведу примеры, которые помогут начать с ним работать. В качестве образца я использую проект “Java EE 8 Playground”, который есть на GitHub. Пример приложения основан на спецификации Java EE 8 и использует фреймворк JavaServer Faces (JSF), Enterprise JavaBeans (EJB) и JPA для персистентности. Чтобы понять, о чем речь, вы должны быть знакомы с JPA.


Читать дальше →

Простейшая реализация Entity Component System

Reading time6 min
Views13K
Всем привет!

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

Поехали!

Вступление


Entity Component System (ECS, «сущность-компонент-система») — сейчас на пике популярности в качестве архитектурной альтернативы, которая подчеркивает принцип Composition over inheritance. В этой статье я не буду вдаваться в подробности концепции, так как уже существует достаточно ресурсов на эту тему. Есть множество способов имплементации ECS, и, я но, чаще всего, выбирают довольно сложные, которые способны запутать новичков и требуют много времени.

В этом посте я опишу очень простой способ имплементации ECS, функциональная версия которого почти не требует кода, но полностью следует концепции.

Читать дальше →

Открытый урок Java Enterprise «CDI in action»

Reading time1 min
Views3.9K
Всем доброго дня!

Наш прекрасный Виталий Иванов, преподаватель курса «Разработчик Java Enterprise» провёл на прошлой неделе вебинар на тему «CDI in action» — про с одну из ключевых спецификаций стека Java Enterprise — Contexts and Dependency Injection 2.0. На уроке в целом разбирались паттерны IoC и DI, а на примере референсной имплементации Weld провели знакомство с Managed Beans, способами их внедрения и определения контекста, плюс разобрали такие возможности спецификации, как перехватчики, декораторы и альтернативы.


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

С облаков на землю: как создать production-grade Kubernetes в любых условиях

Reading time15 min
Views6.5K
Всем добра! Ну вот и подошло время для очередного нашего курса по Девопсу. Наверное, это один из самых стабильных и эталонных курсов, но при этом и самый разнообразный по обучающимся, так как ни одна группа ещё не была похожа на другую: то в одной разработчики почти полностью, то в следующей инженеры, то админы и так далее. А так же это значит, что пришла пора интересных и полезных материалов, а так же онлайн-встреч.

image
Читать дальше →

Java EE Concurrency API

Reading time9 min
Views11K
Всем привет!

А мы тут плюшками балуемся запускаем второй поток курса «Разработчик Java Enterprise». Бессменный создатель и преподаватель курса — Виталий Иванов, написал вот по этому поводу статью даже, которая, как надеемся, покажется вам полезной :)

Так что поехали :)

Данная статья посвящена изучению API к спецификации JavaEE Concurrency (JSR 236), определяющий стандарт выполнения параллельных задач в JavaEE контейнере, используя концепцию управляемых ресурсов. Выход седьмой версии JavaEE сделал возможным запуск параллельных задач в Enterprise-контейнерах, предоставляя разработчику удобные средства и утилиты для работы с многозадачностью. До того самого момента, вся многозадачность отдавалась на откуп конкретной реализации используемого сервера приложений, самостоятельно принимающего решение об оптимизации выполнения задач. Нарушение этого принципа расценивалось как плохая практика построения архитектуры Enterprise-приложений. Вследствие чего, разработчику не рекомендовалось создавать новые потоки, а иногда и запрещалось подобное поведение на уровне контейнера.

Читать дальше →

Открытый урок «Aсинхронное программирование в Java»

Reading time1 min
Views8.3K
Всем привет!

Делимся с вами очередным открытым уроком, который прошёл у нас в рамках курса «Разработчик Java». На нём преподаватель курса, Владимир Сонькин, рассказывал про асинхронное программирование почему оно позволяет делать код быстрым и эффективным, не используя сложные технологии распараллеливания. Также показывал примеры применения асинхронности для построения процессов обработки данных в бизнес-приложениях.



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

Открытый вебинар «Наивный байесовский классификатор»

Reading time3 min
Views4.3K
Всем привет!

В рамках нашего курса Data Scientist мы провели открытый урок на тему «Наивный баейсовский классификатор». Занятие вёл преподаватель курса Максим Кретов — ведущий исследователь в лаборатории нейронных сетей и глубокого обучения (МФТИ). Предлагаем ознакомиться с видео и кратким изложением.

Заранее спасибо.

10 самых распространенных ошибок безопасности в Python и как их избежать

Reading time8 min
Views19K
Всем привет!

Наша очередная группа по Python успешно запустилась в понедельник, но у нас остался ещё один материальчик, который мы не успели разместить до старта. Исправляем нашу оплошность и надеемся, что он вам понравится.

Поехали!

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

Как предотвратить перерасход памяти при использовании Java-коллекций

Reading time7 min
Views13K
Всем привет!

Наш эксперимент со ступенями по курсу «Разработчик Java» продолжается и, как ни странно, даже вполне успешно (вроде): как оказалось, что плечо планирования в пару месяцев со следующим переходом на новую ступень в любое удобное время — это куда удобнее, чем если выделять практически полгода на такой сложный курс. Так что есть подозрение, что именно сложные курсы мы скоро начнём потихоньку переводить на такую систему.

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

Поехали!

Читать дальше →

Создаем 2D игру на Python с библиотекой Arcade

Reading time7 min
Views140K
Всем привет!

Мы продолжаем делится с вами интересными найденными вещами про питончик. Сегодня вот решили разобраться с 2D играми. Это, конечно, немного попроще, чем то, что проходят у нас на курсе «Разработчик Python», но не менее интересно это уж точно.

ПЕРЕВОД
Оригинал статьи — opensource.com/article/18/4/easy-2d-game-creation-python-and-arcade
Автор — Paul Vincent Craven


Поехали.

Python — выдающийся язык для начинающих изучать программирование. Он также идеально подходит тем, кто хочет “просто взять и сделать”, а не тратить кучу времени на шаблонный код. Arcade — библиотека Python для создания 2D игр, с низким порогом вхождения, но очень функциональная в опытных руках. В этом статье я объясню, как начать использовать Python и Arcade для программирования игр.

Я начал разрабатывать на Arcade после преподавания азов библиотеки PyGame студентам. Я очно преподавал PyGames в течение почти 10 лет, а также разработал ProgramArcadeGames.com для обучения онлайн. PyGames отличная, но в какой-то момент я понял, что устал тратить время на оправдание багов, которые никогда не фиксятся.

Меня беспокоило преподавание таких вещей, как событийный цикл, которым уже почти не пользовались. И был целый раздел, в котором я объяснял, почему y-координаты повернуты в противоположном направлении. PyGames обновлялась редко и базировалась на старой библиотеке SDL 1, а не чем-то более современном вроде OpenGL. На светлое будущее я не рассчитывал.

В моих мечтах была простая и мощная библиотека, которая бы использовала новые фичи Python 3, например, декораторы и тайп-хинтинг. Ей оказалась Arcade. Посмотрим, как начать ее использовать.

Читать дальше →

Открытый вебинар «Асинхронное программирование в Python»

Reading time1 min
Views5K
Всем привет!

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


Как всегда ждём комментарии и вопросы здесь или можно зайти с ними к нам на день открытых дверей.

Интерфейсы командной строки Java: picocli

Reading time6 min
Views9.5K
Всем привет!

Очередной старт группы «Разработчик Java», на котором мы всё продолжаем наш эксперимент того, что процесс обучения не обязан быть непрерывным («Контрамоция должна быть непрерывной?» ). То есть мы чуть переработали и перетасовали программу, и разбили её на три ступени, которые можно спокойно проходить с перерывом между ними. В общем интересно и для студентов, и для нас, лишь бы никто не расхолаживался, а то программа стала даже вроде чуть сложнее, хотя и была непростой до этого. Ну и традиционно интересная статья связанная с нашим курсом.

Поехали!

Читать дальше →

Открытый вебинар «Cоздание приложения на Webpack + React + Express»

Reading time5 min
Views6.2K
Всем привет!

В июле 2018 года наш преподаватель курса «Разработчик JavaScript» Юрий Дворжецкий провел открытый вебинар на тему «Cоздание приложения на Webpack+React+Express», правда, в рамках второго курса, где он выступает как преподавателя одного из модулей, посвящённого JavaScript. В этом материале вы сможете ознакомиться с видеозаписью и кратким пересказом прошедшего мастер-класса.

Работа на открытом уроке проходила по следующему плану:

  1. Знакомство с Node JS и Express JS.
  2. Знакомство с Webpack.
  3. Знакомство с React.

Итак, поехали!

Information

Rating
1,284-th
Location
Россия
Works in
Registered
Activity