OTUS IT News – Telegram
OTUS IT News
7.2K subscribers
4.32K photos
301 videos
5 files
4.29K links
Экспертный контент по востребованным технологиям 2025 года: от разработки и аналитики до искусственного интеллекта и облачных решений.

Более 170 курсов+

🗓 Расписание бесплатных ОУ: https://otus.pw/24Da/
🦉 Голосуй за канал: https://news.1rj.ru/str/boost/Otusjava
Download Telegram
Друзья, сегодня День Открытых Дверей по курсу «Разработчик Python»! Начало трансляции в 20:00 по московскому времени. Именно сегодня состоится розыгрыш бесплатных мест обучения для тех, кто прошел тестирование.
Пройти тестирование можно тут https://goo.gl/EsNEmj
Присоединиться к трансляции https://goo.gl/XX9xXn
Станислав Ступников программист компании Mail.ru, преподаватель образовательного проекта OTUS сегодня в 20:00 по московскому времени в прямом эфир для вас. Можно и нужно задавать все волнующие вопросы об обучении, формате занятий и т.п. Все самые популярные вопросы: а как? а почему? а можно ли …? Будут рассмотрены именно сегодня. Присоединяйтесь!
Говоря об оптимизациях, мы должны понимать сложность используемых алгоритмов, но, зачастую, имеем ввиду только вычислительную сложность. Конечно, скорость работы алгоритма - это очень важная метрика, но мы можем и не успеть полностью, утилизировать CPU, если у нас кончится память. В реальном мире есть много ресурсов, которые надо беречь. Не про деревья и воду, а дисковый и сетевой ввод/вывод, объем кэша и даже скорость памяти. Попробуем оценить аппетит поедания памяти в динамике. Насколько легко понять, сколько и какой памяти требуется для работы нашему чудо-сервису?
«#include <array>»
«#include <memory>»
«auto static_storage = std::array<char, 0x40000000>();»
«int main(int argc, char *argv[])»
«{« «static_storage.fill(0);»
«auto dynamic_storage = std::make_unique<std::array<char, 0x40000000>>();»
«dynamic_storage->fill(0);»
«auto automatic_storage = std::array<char, 0x400000>();»
«automatic_storage.fill(0);»
«return 0;»
«}»
В примере трижды вызывается конструктор «std::array» и трижды метод «fill». Как меняется потребление памяти после выполнения каждой из этих строк? Как влияет на потребление памяти то, что первый объект со статическим временем жизни, второй в куче (да, при этом сам указатель на стеке), а третий целиком на стеке? Зачем в примере используется метод «fill», память и так уже выделена, в чем подвох? Почему память выделяется не в том порядке, в котором можно было бы ожидать? Оптимизация ни при чём. И, кстати, сколько раз массивы будут заполнены значениями? Конструктор «+ fill» и, так три раза – неверный ответ. #deeppost c++
Спешим сообщить, что 17 ноября завершился День Открытых Дверей по курсу «Разработчик Python». По традиции в гонке тестирования «светлых умов программирования» есть два победителя, которых мы спешим поздравить с тем, что они заслуженно получают в награду бесплатное образование по курсу «Разработчик Python». Ура! А, те, кто хотел присоединиться к трансляции, но не смог, приглашаем к просмотру на официальном канале YouTube образовательного проекта OTUS https://goo.gl/tNKCEg Друзья, спасибо всем, кто присутствовал на встрече! И увидимся на первом занятии!
Друзья, сегодня особенный день! В образовательном проекте OTUS, сегодня, в 19.00 часов по московскому времени, будет проходить открытый урок по Java EE. В формате вебинара будут рассмотрены вопросы проектирования API на платформе Java. Слушатель научится разрабатывать приложения построенные на базе SOA с использованием технологий «JAX-WS» и «JAX-RS». Присоединиться к трансляции можно тут https://goo.gl/Zx57tu
Если вы еще думаете, чем заняться в декабре — эта информация для вас! 27 ноября нас ждет уникальный День Открытых Дверей посвященный курсу «Разработчик C++». Великолепный специалист и виртуозный преподаватель Дмитрий Шебордаев в прямом эфире! Профессионал высокого уровня, выпускник МГУ, персона youself, совершенствуется c каждым днем и с радостью делиться своим опытом с нами!
Обратите внимание, что разработчик C++ в OTUS — это не начальный курс для новичков или тех, кто еще ищет себя в профессии. Это сильный курс для сильных. Это не просто скучные лекции или учеба по принципу «Ну, что нового вы сможете мне рассказать?». Это глубокий курс с увлекательным погружением в мир C++. Только лучшее, только самое смелое, ловкое и увлекательное в процессе обучения. Совершенствоваться вместе с OTUS, в атмосфере абсолютных профессионалов и единомышленников — это быстрый рост профессиональных навыков, достижений и личных побед. 80% наших учеников меняют свои профессиональные предпочтения после обучения в лучшую сторону. Ведь мы не только учим, мы вдохновляем на достижение наивысших результатов и гордимся каждым из вас!
Работодатели по окончании курса: Yandех, Luxoft, Kaspersky, КРОК, 1C. Перед началом трансляции протестируй свои знания и, кто знает, может быть именно Вам выпадет уникальная возможность бесплатного обучения в OTUS https://goo.gl/5XVuSY
Mail API. Среди распространенных требований, предъявляемых к приложениям уровня Enterprise, следует отметить необходимость отправки электронных писем на стороне сервера. Например, может потребоваться отправить сообщение пользователю после регистрации или смены пароля в системе, или же отправка сообщения с новостной рассылкой. Нет сомнений, что каждый найдет свой случай для применения этой полезной функциональности. Рассматривая стек технологий JavaEE, важно отметить, что все необходимое для отправки электронных писем доступно «из коробки» и можно использовать для любого JavaEE-приложения. Данная технология так же известна, как «Mail API», располагающаяся в пакете «javax.mail». Важно понимать, что JavaEE не решает вопросов создания почтового SMTP-сервера. Для этих целей Вы можете использовать готовые решения, к примеру, любой общедоступный сервер как Gmail, Yandex, Mail и т.д. Для целей отправки писем достаточно знать параметры используемого почтового сервера: имя и порт сервера, параметры соединения. Для безопасной отправки писем также допустимо использование «SSL» и «TLS-протоколов». С помощью «Mail API» можно отправлять не только простые письма, но и включать вложения, прикреплять изображения, документы, использовать HTML-форматирование и т.д. Наиболее значимые сущности для возможности отправки email — это класс Session, инициализирующий основные параметры для соединения с SMTP-сервером, MimeMessage, включающий информацию о получателе письма, теме, теле и вложениях сообщения, а также класс Transport, реализующий непосредственную отправку методом void send(MimeMessage message). Обратите внимание, что количество инициализируемых параметров соединения класса Session напрямую зависит от типа SMTP-сервера. Для серверов, в которых не требуется какой-либо аутентификации, достаточно указать лишь свойство «mail.smtp.host» и оставить без изменения 25й порт, используемый по умолчанию. Но для случаев использования почтовых серверов, поддерживающих SSL или TLS аутентификацию, важно детализировать оба параметра «mail.smtp.host» и «mail.smtp.port». Если рассматривать Gmail в качестве почтового сервера, то в нем используются 465й и 587й порты для SSL и TLS, соответственно (самая актуальная информация о деталях почтового сервера Gmail доступна по ссылке). Взгляните на код метода, обеспечивающего отправку письма, используя TLS-аутентификацию: «public static void sendEmail(final String username, final String password)»
«throws MessagingException {»
«Properties props = new Properties();»
«props.put(„mail.smtp.auth“, „true“);»
«props.put(„mail.smtp.starttls.enable“, „true“);»
«props.put(„mail.smtp.host“, „smtp.gmail.com“);»
«props.put(„mail.smtp.port“, „587“);»
«Session session = Session.getInstance(props,»
«new javax.mail.Authenticator() {»
«protected PasswordAuthentication getPasswordAuthentication() {»
«return new PasswordAuthentication(username, password);»
«}»
«});»
«Message message = new MimeMessage(session);»
«message.setFrom(new InternetAddress(„youremail@gmail.com“));»
«message.setRecipients(Message.RecipientType.TO
«InternetAddress.parse(„whomemail@gmail.com“));»
«message.setSubject(„Your Subject“);»
«message.setText(„This is test email! Don’t answer!“);»
«Transport.send(message);»
«}»
Данный код в особых комментариях особо не нуждается, поэтому для лучшего закрепления материала предлагается реализовать метод, который отправляет email через Gmail, но уже с использованием SSL-аутентификации.
Друзья, приглашаем Вас к прочтению свежей и полезной статьи "Применение DevOps практики Infrastructure as Code (IaC)" опубликованной на официальной странице OTUS в Facebook. Читать сейчас https://goo.gl/LB4VXA
Внимание, уже через час стартует сразу два Дня Открытых Дверей по курсам: «Разработчик Python» и «DevOps практики и инструменты». Старт встреч ровно в 20:00 по московскому времени. Трансляция встречи «Разработчик Python» https://goo.gl/C2Rwpp
Трансляция встречи «DevOps практики и инструменты» https://goo.gl/95nRGe

У вас есть еще час, чтобы пройти тестирование и принять участие в розыгрыше бесплатных мест обучения. До встречи в прямом эфире!
Мы начинаем дни открытых дверей по курсам «DevOps практики и инструменты» и «Разработчик Python». Присоединяйтесь!
20 ноября проходил открытый вебинар по курсу «Разработчик JavaEE» в OTUS. Почти 500 человек в прямом эфире с экспертом по Java технологиям Виталием Ивановым. Смотреть запись вебинара можно тут https://otus.pw/PEmF/
Ни для кого не секрет, что язык PHP имеет довольно низкий порог вхождения, что делает его как одним из самых удобных языков для быстрого создания веб-приложений, так и самым уязвимым для неоптимизированного кода. Зачастую разработчики даже middle-уровня ограничиваются в своей работе тем, что используют среды разработки типа OpenServer или XAMPP. Разумеется, для небольших проектов в этом нет ничего фатального, но как только размер проекта вырастает, то появляются новые проблемы, которые до этого не были известны. Во-первых, большие проекты не терпят отключения на время обновления кода. При этом на самом сервере, ни о каком OpenServer речи не идет — зачастую случается, что у разработчика стоит Windows, а на сервере работает Linux-подобная ОС. При выкатке проекта выясняется, что код, который работал локально, вдруг перестаёт работать в Production-окружении, прерывая работу ресурса. Во-вторых, большие проекты не ограничиваются простым делением на DEV и PROD. Они имеют сервера QA, где идет приемочное тестирование, имеют множество разработчиков, которым к тому же надо обмениваться своими наработками. И их среды разработки тоже могут отличаться, к примеру, потому, что кто-то не обновил ПО. Так что же делать в таких ситуациях? На помощь приходят виртуальные машины, которые собираются по строго заданным шаблонам с предустановленным единообразным LAMP/LNMP-стеком. Их прелесть также и в том, что они совершенно беспроблемно могут создавать неограниченное число копий Production-окружения, делая процесс разработки максимально гибким. Можно собирать машину вручную, но для быстрого старта можно использовать существующие решения автоматизации. Мы рассмотрим работу в Windows-системах. Достаточно будет двух программ — Vagrant и VirtualBox. VirtualBox — это среда для управления и запуска виртуальных машин, а Vagrant — это программа автоматизации их сборки. Более того, энтузиасты уже подготовили готовые инструкции для работы с PHP, NGINX, MySQL и другими популярными модулями стека. Если Вы планируете работать с этой сборкой, то установите также Git. При необходимости нужно добавить путь к Vagrant в переменную PATH. «set PATH=%PATH%;C:HashiCorpVagrantbin» Теперь мы можем создать отдельную директорию для нашей виртуальной машины или же перейти в уже созданную. Можно развернуть «голую» ОС Ubuntu, либо взять готовую сборку из репозитория на GitHub «https://github.com/kiaplayer/vagrant-php» Если рассматривать второй случай, то нужно будет выполнить команды «git clone https://github.com/kiaplayer/vagrant-php.git» Инструкция по сборке виртуальной машины располагается в директории «.chef.» Это файл Vagrantfile, который нужно скопировать на уровень выше. После этого уже можно запустить сборку самой виртуальной машины «vagrant up». По завершению её работы в меню VirtualBox появится новая строчка с Вашей только что созданной виртуальной машиной. Она уже имеет возможность подключения по сети, а также располагает стеком LNMP. Как видите, работа с виртуальными машинами совсем несложная!
Ваше мнение очень важно для нас.
По итогу дня хотим рассказать о том, что вчера успешно завершен День Открытых Дверей по курсу «Разработчик Python». Было увлекательно, информативно и, как всегда, полезно. Для тех, кто не успел присоединиться в прямом эфире приглашаем к просмотру записи эфира на канале YouTube https://otus.pw/NLnq/
До старта первого урока остался один день.

Друзья, если у вас есть вопросы или пожелания Вы всегда можете оставлять их в комментариях. Благодаря обратной связи мы сможем совершенствовать подход к образованию каждый день. Как ни банально, но тем не менее, именно ваше мнение очень важно для нас.
Наступил первый день занятий по курсу "Разработчик Python"!Впереди нас ждут пять увлекательнейших месяцев в познании всех тонкостей программы обучения. Сегодня последний день, когда можно присоединиться к новой группе и мгновенно приступить к обучению. Мы поздравляем всех, кто уже с нами! Всех слушателей, кто сегодня начнет свое первое занятие. И конечно же, мы спешим поздравить с этим событием преподавателя курса Станислав Ступникова!
Пока сегодня со всех сторон вас атакуют акциями Черной пятницы с предложением купить что-то, мы в OTUS считаем, что есть вещи, которые действительно стоит приобретать не думая о лимитах - ведь они не обесцениваются! Например, знания, дружба, забота и доброе отношение.
Поэтому мы решили сделать вам небольшой подарок и дать возможность получить 30% привилегий лояльных клиентов до конца сегодняшнего дня.
Приобретайте то, что действительно важно!
https://otus.pw/MUpm/
4 декабря состоится День Открытых дверей по курсу Java Enterprise. Судя по количеству ваших обращений встреча обещает быть увлекательной и оживленной. Бесспорно, курс Java Enterprise, один из самых востребованных в мире IT образования, поэтому, в данный момент мы ведем активную подготовку к этому дню и будем рады услышать ваши вопросы и пожелания уже сейчас. Один из лучших преподавателей образовательного проекта OTUS, Виталий Иванов, в прямом эфире для вас 4 декабря в 20:00 по московскому времени. Узнать больше о курсе и преподавателе можно тут https://otus.pw/xICE/
Новость о курсе «Разработчик С++» или "Все хотят учиться у Шебордаева".
Друзья, уже через несколько часов стартует прямое включение Дня Отрытых Дверей образовательного проекта OTUS по курсу «Разработчик С++». Ура! В 20:00 часов для вас откроет мир C++ наш великолепный Дмитрий Шебордаев! Гордость — преподаватель нашего проекта! Учиться у Дмитрия — это настоящий восторг и бесценный кладезь знаний. В тонкостях C++ мы будем разбираться во время обучения, а сегодня, мы будем обсуждать важные вопросы на повестке старта курса. Все, о чем вы хотели знать, относительно «Разработчика С++» можно спросить сегодня у Дмитрия. И да, принять участие в битве за возможность стать обладателем привилегии бесплатного обучения в OTUS можно сегодня пройдя тестирование https://otus.pw/wzsQ/