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

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

🗓 Расписание бесплатных ОУ: https://otus.pw/24Da/
🦉 Голосуй за канал: https://news.1rj.ru/str/boost/Otusjava
Download Telegram
Над Москвой и территорией Центрального федерального округа сегодня пройдет грозовой фронт небывалой силы, говорят нас ждет всемирный потоп!!! Так что этот вечер лучше провести дома и с пользой для себя.
Сегодня в 20:00 по московскому времени начинаем День открытых дверей по курсу Разработчик Python. Самое время пройти вступительное тестирование, зарегистрироваться и принять участие в розыгрыше бесплатных мест на курсе!
Присоединяйтесь! http://otus.ru/dod?utm_source=telegram&utm_medium=internal&utm_campaign=post30.06&utm_content=main&utm_term=dod
Сегодня на первом Дне открытых дверей определились победители розыгрыша бесплатных мест на курсе серьезного изучения Python.
Победителями розыгрыша стали: Алексей Демидов и Василий Островский.
Поздравляем!

Как это было можно посмотреть тут: https://www.youtube.com/watch?v=LdSnU5YahkE
#deeppython #otus
Все мы знаем и любим генераторы в Python. По сути, генератор - это итератор, который можно использовать в цикле, как обычно, но генератор дополнительно содержит внутри ключевое слово yield. После каждого yield генератор временно прекращает исполнение и возвращает управление, при следующем вызове стартуя с того места, где закончил в прошлый раз, при этом сохраняя состояние и значения переменных между вызовами. Но, черт побери, как он это делает?
Объект генератор, помимо всего прочего, содержит в себе указатель на текущий execution frame, который в свою очередь содержит стек вызова для данного генератора. Во время вызова next(gen_object) вызывается PyEval_EvalFrame для текущего execution frame’а. Это одна из самых главных функций интерпретатора, внутри, она, в том числе, знает про ключевое слово yield
TARGET(YIELD_VALUE) {
retval = POP();
f->f_stacktop = stack_pointer;
why = WHY_YIELD;
goto fast_yield;
}
В данном случае возвращается значение, а текущий фрейм сохраняется (f->f_stacktop = stack_pointer), так что после следующего next’а можно продолжить там, где остановились, ведь PyEval_EvalFrame будет вызван на том же фрейме, что и раньше, с тем же стеком и состоянием. В обычных функциях f_stacktop приравнивается к NULL.
17 библиотек для Python на любой вкус

Язык программирования Python популярен среди разработчиков не только за удобный синтаксис, но и благодаря большому количеству библиотек, которые решают широкий спектр задач. В данной статье мы рассмотрим лишь небольшой пласт наиболее популярных библиотек, предназначенных для обработки данных, моделирования, для работы с вебом и сервисами, для настройки искусственного интеллекта, создания 2D-игр и анимации.
Работы с числами и данными
NumPy
Библиотека для создания матриц и массивов и выполнения над ними основных математических операций: сложение, вычитание, деление, вычитание, вычисление определителя, разбиение и т.д. Можно рассматривать, как конкурента MATLAB.

Установка:
Для Windows переходим https://sourceforge.net/projects/numpy/files/NumPy/1.9.2/, скачиваем и запускаем EXE-файл для вашей версии Python.
Для Linux установить пакет python3-numpy (цифра - версия Python) из данного репозитория https://sourceforge.net/projects/numpy/files/NumPy/ при помощи piphttps://pip.pypa.io/en/latest/installing/ , введя:
sudo pip3 install python3-numpy
или для Windows:
pip3 install numpy
Pandas
Построенная на базе NumPy библиотека предназначена для выполнения более высокоуровневых операций над массивами и матрицами. Как следствие - код чуть проще и понятнее.

Установка:
Разработчики предлагают ставить не отдельный пакет, а сразу весь дистрибутив Anaconda. https://docs.continuum.io/anaconda/install Пройдя по данной ссылке, вы найдете требуемые инсталляторы и подробные указания по установке для Windows, MacOS и Linux. В частном случае, при помощи pip установить пакет Pandas:
pip install pandas
(использование sudo pip может привести к ошибкам)
И не забудьте установить NumPy.
SciPy
Комплексная библиотека для проведения инженерных расчётов: поиск минимума и максимума функций, обработка сигналов и изображений, решение дифференциальных уравнений и использование специальных математических функций.

Установка:
Аналогичным образом из дистрибутива Anaconda https://docs.continuum.io/anaconda/install или при помощи pip:
pip install --user numpy scipy matplotlib ipython jupiter pandas sympy nose

Как видите, помимо SciPy разработчики рекомендуют установить полный пакет для обработки данных.
Визуализация
Matplotlib
http://matplotlib.org Мощная графическая библиотека, часто используемая в связке с представленными SciPy и NumPy. Поддерживает 2D и 3D графику, наиболее популярные форматы изображений и 8 типов диаграмм.

Установка:
Здесь также разработчики рекомендуют воспользоваться одним из трёх дистрибутивов: Anaconda https://docs.continuum.io/anaconda/install , miniconda https://conda.io/docs/install/quick.html или Canopy https://www.enthought.com/downloads/ . Для использования pip ввести:
pip install matplotlib
Bokeh
Основной задачей данной библиотеки является визуализация данных для дальнейшего отображения в вебе. Поддерживает выгрузку данных в виде потоков и в реальном времени. Работа с данной библиотекой сильно отличается от Matplotlib - она проще, а функциональность ниже.

Установка:
Аналогична предыдущим при помощи Anaconda или pip. Минимальный пакет в последнем случае следующий:
pip install numpy jinja2 six requests pyyaml dateutil bokeh
Plotly
https://plot.ly Адаптированный под дальнейшее отображение графиков в интернете инструмент, специализирующийся на контурных графиках и 3D-чертежах.

Установка:
Разработчики не оставляют иного выхода, кроме как воспользоваться pip:
pip install plotly
Seaborn
http://seaborn.pydata.org Это своеобразная обёртка над Matplotlib, которая обеспечивает высокоуровневый интерфейс для рисования привлекательных статистических графиков. Библиотека обеспечивает более простой API и более элегантную визуализацию, чем Matplotlib.

Установка:
Используя pip ввести::
pip install seaborn
Искусственный интеллект
SciKit-Learn
http://scikit-learn.org/stable/ Одна из самых популярных библиотек для реализации алгоритмов машинного обучения. Перед применением потребуется подключение библиотек из первого раздела
для обработки входных данных.

Установка:
Традиционн
ая установка через общий дистрибутив Anaconda или при помощи pip:
pip install -U scikit-learn
Theano
http://deeplearning.net/software/theano/ Невероятно мощная библиотека, формально предназначенная для глубокого машинного обучения. Специализируется на операциях над многомерными массивами и оптимизации, как алгоритмов вычисления, так и скорости оптимизации.

Установка:
В данном случае разработчики рекомендуют установить Theano при помощи дистрибутива Miniconda https://conda.io/miniconda.html. Далее по аналогии с pip устанавливаем через консоль:
conda install numpy scipy mkl-service libpython <m2w64-toolchain> <nose> <nose-parameterized> <sphinx> <pydot-ng>
Варианта с установкой через pip это тоже не исключает:
<sudo> pip install <--user> Theano
PyBrain
http://pybrain.org Данный инструмент специализируется на реализации алгоритмов, связанных с нейронными сетями. Поддерживаются алгоритмы обучения с учителем и без, с подкреплением и оптимизация методом черного ящика. Очень мощная библиотека, как для ученых, так и студентов.

Установка:
В данном случае, вам потребуется приложить чуть больше усилий для подключения библиотеки PyBrain. Сначала скачиваете все файлы из данного репозитория к себе на компьютер вручную или при помощи команды:
git clone git://github.com/pybrain/pybrain.git pybrain
Далее запускаете скрипт:
python setup.py install
Всё должно быть подключено. Если нет, то здесь http://blog.habrador.com/2012/11/how-to-install-pybrain-on-windows.html описан более сложный путь установки PyBrain для Windows.

Tensorflow
https://www.tensorflow.org Программная библиотека с открытым исходным кодом для численных вычислений с использованием графов потоков данных (data flow graphs). Узлы в таком графе представляют математические операции, в то время, как грани представляют передачу данных (многомерных массивов) между узлами. Гибкая архитектура TensorFlow позволяет разворачивать вычисления на одном или нескольких CPU или GPU обычных персональных компьютеров, серверов или даже мобильных устройствах, используя единый программный интерфейс (API).

Установка:
Для установки CPU-версии введите комманду:
pip3 install --upgrade tensorflow
Для установки GPU-версии введите комманду:
pip3 install --upgrade tensorflow-gpu

Подробную информацию можно посмотреть здесь https://www.tensorflow.org/install / А после установки можно писать свои нейросети и помнить, что это инструмент от Google.
Игры и анимация
PyGame
http://www.pygame.org/news Целый набор библиотек для создания простых двухмерных игр и мультимедийных изображений. Базируется на библиотеке SDL. С помощью такого инструмента можно создавать Android-приложения, которые могут работать на телефонах и планшетах.

Установка:
Проходите по следующему адресу https://pypi.python.org/pypi/Pygame/1.9.3 Скачиваете файл с названием, соответствующим вашей операционной системе. Далее при помощи pip исполняете его. Например:
pip install pygame-1.9.3-cp34-cp34m-win32.whl
Pyglet
http://pyglet.readthedocs.io/en/pyglet-1.2-maintenance/ OpenGL библиотека для разработки более серьезных графических приложений, игр и анимации. Как правило используется для реализации 3D-графики.

Установка:
По описанным выше схемам:
pip install pyglet
PyOpenGL
http://pyopengl.sourceforge.net Непосредственно заточенная под работу с OpenGL, GLU и GLUT библиотека. Соответственно, основная область применения - тоже 3D приложения.

Установка:
Всё просто, вводим комманду:
pip install PyOpenGL PyOpenGL_accelerate
Прочее
Scrapy
https://scrapy.org Мощный инструмент для создания веб-пауков, вытягивания информации из страниц, который даёт функционал для дальнейшей обработки и экспорта данных. Прекрасно подходит также для парсинга каталогов интернет-магазинов и аккумулирования данных об организациях.

Установка:
Возвращаемся к пожеланиям установить Anaconda или Miniconda. В последнем случае прописываем:
conda install -c conda-forge scrapy
Установка с использованием pip стандартная:
pip install Scrapy
Hug
http://www.hug.rest Библиотека для быстрой разработки API. Создать простой API-сервер можно буквально в трёх строчка
х. Работает локально, через HTTP или командную строку.

Установка:
Официально рекомендуется установка через pip:
pip3 install hug --upgrade
Zappa
https://www.zappa.io Библиотека для запуска веб-приложений на Python “без сервера” с использованием AWS Lambda и Amazon API. Значительно уменьшает временные затраты на настройку сервера, масштабирования и нагрузки.

Установка:
Ничего сверхнового:
pip install zappa

С этими и многими другими библиотеками вы сможете познакомиться поближе, а хорошо ли вы знаете Python? Проверьте! http://otus.ru/lessons?course=3?utm_source=vk&utm_medium=internal&utm_campaign=obzorbiblio03.07
У нас сегодня масса классных новостей!

1. Мы выкатили новый сайт. Долго и упорно над этим трудились и вот он в бою! Конечно, возможны баги (пишите нам о них - будем их срочно фиксить), но в целом он прекрасен. Заходите, любуйтесь: http://otus.ru?utm_source=telegram&utm_medium=internal&utm_campaign=post5.07

2. Мы добавили больше классных сов в наш чудесный пак стикеров для Telegram. Если вы еще не скачали - самое время это сделать: https://news.1rj.ru/str/addstickers/OTUScodingOwl

3. Сегодня мы проведем заключительный для группы Python День открытых дверей в 20:00. Преподаватель курса Станислав Ступников расскажет о курсе, ответит на все вопросы и проведет розыгрыш бесплатных мест на курсе среди тех, кто успешно прошел вступительное тестирование. Присоединяйтесь к трансляции: https://www.youtube.com/channel/UCetgtvy93o3i3CvyGXKFU3g/live
Уже сегодня группа курса "Серьезное изучение Python" начнет свое обучение. Мы провели Два дня открытых дверей, разыграли 4 бесплатных места в новой Python группе, рассказывали о "фишках" Python в постах #deeppython, создали профессиональное сообщество для успешно прошедших вступительное тестирование, где можно общаться на профессиональные темы, запустили пак классных стикеров с кодирующей совой для Telegram. Мы активно знакомили пользователей с нашим продуктом и рассказывали, почему мы больше, чем просто обучающие курсы, отвечали на вопросы и делали много-много всего (в том числе подписали большое количество новых соглашений с партнерами), чтобы наши студенты получили хорошие знания и возможности профессионального и карьерного роста. Время летит так быстро! Новая Python группа начинает занятия уже сегодня! Это значит, что ближе к вечеру мы закроем возможность оплаты и присоединения к группе. В группе остались последние места - еще есть совсем немного времени, чтобы успеть присоединиться: http://otus.ru/lessons/3/?utm_source=telegram&utm_medium=internal&utm_campaign=lastcall У нас очень классный преподаватель на курсе Python, поэтому мы искренне рады за наших новых студентов - им точно не будет скучно + у них есть возможность личной профессиональной дискуссии и преподавателем, что очень классно - ведь есть масса рабочих вопросов, в которых мудрый совет бы не помешал! Мы желаем ребятам успеха и уверены, что курс им понравится! За короткое время набора в группу Python мы сделали большой скачок в развитии: мы выкатили новую очень классную версию сайта, начали подготовку новых таких же классных курсов, как Java и Python. Поэтому в наших ближайших планах запуски курсов по веб-разработке и DevOps. А значит, мы будем публиковать много новых интересных материалов по теме новых курсов :) Осенью мы планируем запуски курсов по другим дисциплинам и новый долгожданный набор на Java. Ориентируемся что следующий набор на курс Python будет в конце осени или зимой. Совсем скоро - в августе и сентябре наши первые выпускники курса Java пойдут на собеседования. Мы с нетерпением ожидаем этого события - ведь мы уверены в своих выпускниках и знаем, что их ждут отличные карьерные перспективы! Спасибо, что вы с нами и следите за нашими обновлениями! ❤️
Друзья, все кто идет на занятие сегодня в 20:00
Проверьте, что на странице
http://otus.ru/learning/
вашего кабинета есть запись о предстоящем событии:
"Ближайшее занятие Занятие 1..."

За 15 минут до начала вебинара на этой странице вы сможете поулчить ссылку для входа в вебинарную.
Ссылка действует все время занятия.

Ждем вас и желаем успехов в учебе!🙌
#deepjava #otus
Приходилось ли вам писать Java приложения без функции
public static void main(String[] args){...}?

На первый взгляд может показаться, что такое приложение бессмысленно. Ведь его нельзя запустить. Точнее его нельзя запустить через вызов java -jar name.jar. И тем не менее, многие Java разработчики регулярно пишут такие приложения. И запаковывают их не в jar файлы, а в… war файлы. Давайте сегодня с этими war файлами и разберемся.

Продолжая открытый вопрос про запуск приложения нужно отметить, что его код нельзя исполнить в его собственном потоке main. Но мы можем исполнить его в других потоках. По аналогии с библиотеками: библиотека не запускает себя сама, вы запускаете библиотеку в собственных потоках. Ваше приложение может быть “библиотекой” для другого приложения. И в этом случае, другое приложение называют application server. Application server запускает ваше приложение в собственных потоках. Для него ваш код как актеры для Голливуда. Не актеры звонят в Голливуд. Голливуд звонит актерам. Таким образом, вы пишите приложения не с использованием библиотек, а для application server-а.

В общем случае application server должен быть написан по спецификации Java EE. Но есть частные случаи, которые поддерживают только работу веб сервера и сервлетов. Их называют веб серверы и сервлет-контейнеры. Вот для них, как раз, Java разработчики и создают war файлы.

Итак, war или WebARchive это jar, но в отличие от обычного в нем:
Нет мета информации о методе main, с выполнения которого должно начинаться выполнение приложения.
Есть директория WEB-INF и в ней web.xml -- это файл с инструкциями для сервлет-контейнера.
Есть сервлеты. Без них war файл практически бесполезен.
Могут быть файлы статических страниц. Да-да jar в котором в корне лежат index.html, index.js и index.css :о)

Приготовить такой war файл можно при помощи плагина maven-war-plugin к maven. А запускать в любом удобном вам сервлет-контейнере, например в Tomcat или Jetty, просто копированием war файла в директорию webapps. Только при копировании не забудьте переименовать его в root.war. Интересно зачем? Мы и это на занятиях разбираем.
Доброе утро, друзья! Спешим поделиться с вами новостями - сегодня мы с радостью объявляем: открыт набор на курс DevOps!
Бытует мнение что DevOps это культура, а не профессия, и мы считаем его вполне обоснованным, ведь DevOpS это набор практик, находящихся на стыке программирования, администрирования и тестирования продуктов и сервисов в моменте, главная цель которого оптимизировать данный процесс и сделать его максимально единым и продуктивным.
Ждем вас: знакомьтесь с программой, сдавайте вступительное тестирование, присоединяйтесь к группе: http://otus.ru/lessons/7?utm_source=telegram&utm_medium=internal&utm_campaign=devops&utm_content=group&utm_term=welcomepost
Преподавателями курса станут:
Иван Евтухович - прошел длинный путь от одного из первых разработчиков "Одноклассников" до консультанта в компании "Экспресс 42". По пути он успел поработать руководителем отдела разработки первого облачного хостинга "Скалакси" и русского "Групона".
Никита Борзых - начинал внедрять системы управления конфигурацией, когда работал в эксплуатации облачного хостинга Скалакси. В последствии работал в эксплуатации проектов Evil Martians. Ведущий подкаста "Devops Дефлопе". Выступал на конференциях с техническими докладами DevOps тематики.
Александр Титов - развивает тему DevOps в России, внедряет системы управления конфигурацией, занимался эксплуатацией интернет-проектов в компаниях Скалакси, Skype, Qik, Microsoft
Присоединяйтесь, успехов в освоении нового!
Кстати, это еще не все 😜
Нас очень часто спрашивали про курс "Веб разработчик" - ведь там такой нужный Python, всякие интересности про Автотесты, работа с API и много всего прочего полезного! А уж о перспективах трудоустройства хороших Веб разработчиков можно и не говорить - без работы они точно не останутся :)
Поэтому мы решили не томить ожиданием и совсем скоро - уже 5 августа - запускаем группу курса серьезного изучения Веб разработки.
Сегодня мы открыли вступительное тестирование (как вы помните - успешная сдача вступительного теста - обязательное условие поступления) и приглашаем вас проверить свои знания в Веб разработке!
Тестируйтесь, присоединяйтесь к новой группе: http://otus.ru/lessons/9/?utm_source=telegram&utm_medium=internal&utm_campaign=webdevopen&utm_term=post14.07
Слышали про Докер? А знаете, зачем он, как работает и как им пользоваться?
Так уж сложилось, что за пару лет Докер перестал быть игрушкой для хипстеров и проник много куда: боевые сервера, компьютеры разработчиков, суперкомпьютеры, хостинги и терминалы оплаты – это ещё не полный список.
Докер позволяет запустить код в изолированном окружении. Не только виртуальное окружение с установленными питонячьими пакетами, а отдельная система, со своей конфигурацией, пакетами и хаками.
При этом нет большого расхода ресурсов на поддержание такой виртуальной машины, в отличии от, например, Виртуалбокса. Это происходит за счёт более грамотного использования низкоуровневых механизмов основной ОС.
В курсе “Веб-разработчик” мы разберёмся с этим инструментом и его применением для веба, а пока можете проверить свои знания, пройдя входящий тест http://otus.ru/lessons/9?utm_source=telegram&utm_medium=internal&utm_campaign=webdev&utm_content=deeppost&utm_term=20.07
#devops #otus #agile
Почему DevOps?
В 2001 году собралась группа инициативных разработчиков с целью переосмыслить процесс разработки, в результате был составлен манифест гибкой разработки ПО. Следуя манифесту, скорость реакции разработки на потребности рынка значительно выросла, а скорость доставки - нет, по причине существующего естественного барьера между разработкой и эксплуатаций.
В 2008 году Patrick Debois поднимает этот вопрос в своем докладе Agile Infrastructure and Operations. В 2009 родилось движение DevOps, нацеленное на ускорение процесса доставки, путем повышения взаимодействия между IT отделами.
Сдвиг парадигмы в сторону “сделать доставку ПО наиболее быстрой” потянул за собой изменение методов доставки кода, подготовки окружений и разработки. Может показаться парадоксальным, но идея “выберите два из: быстро, дешево, надежно” в DevOps уже не актуальна. Осознанное применение практик DevOps позволяет уменьшить время выкатки нового функционала, повысить надежность информационных решений и освободить время инженеров.
Позитивный результат практического применения был представлен в докладе 2015 State of DevOps report, который кратко можно охарактеризовать так: “высокопроизводительные IT компании выкатывают код в 30 раз чаще, код попадает в рабочую среду в 200 раз быстрее, получают в 60 раз меньше ошибок и восстанавливаются после сбоя в 168 раз быстрее по отношению к низкопроизводительным компаниям”.
Как следствие громких успехов внедрения, DevOps сыскал большую популярность. Практики и идеи часто цитировались, вырываясь из контекста, и постепенно смысл и цели движения стали искажаться в сознании новичков в DevOps. Об этом рассказывают Chris Dodds в статье Dirty secrets of DevOps, а также Александр Титов с Иваном Евтуховичем в презентации Мифы о DevOps.
На нашем курсе вы научитесь применять лучшие практики DevOps под руководством экспертов из Экспресс 42. Проверьте свои знания и присоединяйтесь к группе! http://otus.ru/lessons/7/?utm_source=telegram&utm_medium=internal&utm_campaign=devops&utm_content=group&utm_term=deeppost24.07
Друзья, приглашаем посетить Дни открытых дверей курса “Web-Разработчик” 29 июля в 11:00 и 02 августа в 20:00.
5 августа запускаем новую группу - в четырехмесячной программе обучения охвачены все полезные скиллы профессии - прокачаем знания Python 3, всякие интересности про Автотесты, работу с API и много всего прочего полезного! А уж о перспективах трудоустройства хороших Веб разработчиков можно и не говорить - без работы они точно не останутся :)
На Дне открытых дверей можно будет узнать о проекте, познакомиться с преподавателем, получить ответы на интересующие вопросы, а также выиграть бесплатные места в группе, для тех кто прошел вступительное тестирование и зарегистрировался. Знакомьтесь с программой, сдавайте вступительное тестирование и присоединяйтесь к новой группе! http://otus.ru/dod/?utm_source=telegram&utm_medium=internal&utm_campaign=webdev&utm_term=dodwelcome
Лучших по результатам обучения студентов ждут собеседования в крупнейших IT компаниях страны.