Как стать автором
Обновить
109
100.4

Редактор

Отправить сообщение

Открытый вебинар «Особенности языка JavaScript»

Время на прочтение1 мин
Количество просмотров5.5K
Всем бобра!

Переработали тут по заявкам слушателей программу курса по JavaScript: дописали смежные темы типа сборщиков, тестовых фреймворков плюс догнали чуток изучения подходов по ООП + SOLID, паттерны и ещё мелкие разные изменения. По этому поводу провели достаточно интересный открытый вебинар на тему «Особенности языка JavaScript», где Юрий Дворжецкий рассказывал и показывал (а ещё и спрашивал) основные отличия языка, идиомы JS.


Как всегда ждём вопросы, пожелания, тапки.
Всего голосов 14: ↑10 и ↓4+6
Комментарии0

Основные принципы C++: Правила выражений и операторов

Время на прочтение5 мин
Количество просмотров20K
Бобра!

Что ж, мы плавно выходим на старт второго потока группы «Разработчик С++» и разбираем интересные материалы, которые накопились у преподавателя в свободное от работы и преподавания время. Сегодня рассмотрим (а потом и продолжим) серию материалов, где разбираются отдельные пункты С++ Core Guidelines.

Поехали.

В C++ Core Guidelines много правил, посвященных выражениям и операторам. Если быть точным, то более 50 правил посвящено объявлениям, выражениям, операторам и арифметическим выражениям.



*перевод
Информативные названия

Оптимальная длина переменных

  • Не должны быть слишком длинными (maximimNumberOfPointsInModernOlympics.) или слишком короткими (например, x, x1)
  • Длинные названия сложно печатать, короткие названия недостаточно информативны..
  • Дебажить программы с названиями от 8 до 20 символов гораздо проще
  • Гайдлайны не заставляют вас срочно менять названия переменных на имена из 9-15 или 10-16 символов. Но если вы найдете в своем коде более короткие названия, убедитесь, что они достаточно информативны.

Слишком длинные: numberOfPeopleOnTheUsOlympicTeam; numberOfSeatsInTheStadium; maximumNumberOfPointsInModernOlympics
Слишком короткие: n; np; ntmn; ns; nslsd; m; mp; max; points
В самый раз: numTeamMembers, teamMembersCount

Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Комментарии32

Как сделать ваш код в 80 раз быстрее

Время на прочтение6 мин
Количество просмотров30K
Всем бобра!

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

Поехали.

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

ДИСКЛЕЙМЕР: это не чудодейственное средство на все случаи жизни, да, сработало конкретно в этом случае, но может оказаться не таким эффективным во многих других. Однако метод все равно интересный. Более того, шаги, описанные здесь, я применял во время разработки в том же порядке, что делает статью жизненным примером оптимизации PyPy.

Я экспериментировал с эволюционными алгоритмами несколько месяцев назад: план был амбициозным — автоматически развить логику, способную контролировать (симулированный) квадрокоптер, то есть PID-регулятор (спойлер: не летает).

Читать дальше →
Всего голосов 32: ↑29 и ↓3+26
Комментарии11

Открытый урок «Диаграммы UML»

Время на прочтение1 мин
Количество просмотров13K
Всем бобра!

Наш курс «Разработчик С++» потихоньку растёт и ширится: присоединился новый преподаватель с очень богатым опытом — Юрий Авраменко. И он уже провёл у нас первый открытый урок по диаграммам UML, на котором разбирались: виды диаграмм, инструменты построения схем и диаграмм, варианты представлений и прочее.


Ждём вопросы тут или на Дне открытых дверей.
Всего голосов 20: ↑18 и ↓2+16
Комментарии2

Открытый урок на тему «Аудит рекламных кампаний в Яндекс. Директе»

Время на прочтение1 мин
Количество просмотров3.8K
И снова здравствуйте!

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

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

Ждём, если что, ваших вопросов, предложений, комментариев и всего остального.
Всего голосов 19: ↑18 и ↓1+17
Комментарии0

Масштабируем Kubernetes до 2500 нод

Время на прочтение7 мин
Количество просмотров8.2K
Всем добра!

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

Поехали!

Мы используем Kubernetes для исследования в области deep learning уже более двух лет. В то время, как наши самые масштабные нагрузки управляют облачными ВМ напрямую, Kubernetes обеспечивает быстрый итерационный цикл и масштабируемость, что делает его идеальным для наших экспериментов. Сейчас мы управляем несколькими Kubernetes кластерами (как облачными, так и на физическом оборудовании), самый крупный из них состоит из более 2500 нод — это кластер в Azure на комбинации виртуальных машин D15v2 и NC24.

Многие системные компоненты отказывали в процессе масштабирования, включая etcd, Kube мастеров, загрузки образов Docker, сети, KubeDNS и даже ARP кэши наших машин. Поэтому мы решили, что будет полезным поделиться, с какими проблемами мы столкнулись и как с ними справились.

Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии4

Разрешения во время выполнения

Время на прочтение4 мин
Количество просмотров3.9K
Всем доброго!

Вот мы и добрались теперь и до мобильных: стартовал набор на курс «Разработчик Android». Очередная небольшая веха и совершенно новое направление. Наш преподаватель — Семён Пилунц делится по этому поводу некоторыми своими размышлениями о разреще.

Если ваше приложение будет работать на Android 6.0 (API-уровне 23) или выше, и вам требуются некоторые особые разрешения, то вам нужно будет проделать еще немного работы, чтобы использовать их. Начиная с Marshmallow, пользователи предоставляют разрешения для приложений во время работы приложения, а не при установке приложения (в версиях, предшествующих Marshmallow, вы можете просто объявить, какое разрешение вы будете использовать в файле манифеста). Новая концепция была названа разрешениями во время выполнения. Этот подход упрощает процесс установки приложения, поскольку пользователю не нужно предоставлять разрешения при установке или обновлении приложения. Она также дает пользователю больше контроля над функциональностью приложения; например, пользователь может выбрать доступ к камере в приложения для съёмки, но не к местоположению устройства. Пользователь может отменить разрешения в любое время, перейдя на экран настроек приложения. Идея, лежащая в их основе, заключается в том, чтобы информировать пользователя о том, какие разрешения вы будете использовать, потому что многие приложения используют много ненужных разрешений.

Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии5

Открытый урок по теме «Области знания маркетинга и TV + Search»

Время на прочтение1 мин
Количество просмотров1.4K
Всем добра!

Недавно наша Виктория провела открытый урок в рамках подготовки к курсу «Digital маркетолог», где на реальном примере разбиралось влияние ТВ-рекламы на спрос в интернете в рамках: нужно ли поддерживать телевизионную активность в сети, правильное планирование и другое. Ну и вообще почему хороший digital-маркетолог — это «универсальный солдат».


Ждём ваших вопросов, замечаний, предложений.
Всего голосов 12: ↑12 и ↓0+12
Комментарии0

Все о переопределении в Java

Время на прочтение14 мин
Количество просмотров65K
Всем доброго!

У нас на этой неделе практически юбилей — стартует пятая группа "Разработчик Java", а это значит, что мы снова делимся всякими полезностями.

Поехали.

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

Дочерний класс может переопределить методы экземпляра своего родительского класса. Это называется переопределением метода. Сигнатура (тип возврата, тип параметров, количество параметров и порядок параметров) должна быть такой же, какой была определена в родительском классе. Переопределение метода выполняется для достижения полиморфизма во время выполнения программы.


Читать дальше →
Всего голосов 20: ↑17 и ↓3+14
Комментарии5

Учимся надежному управлению Kubernetes

Время на прочтение13 мин
Количество просмотров13K
Всем доброго!

Мы возвращаемся к нашей любимой традиции — раздача полезностей, которые мы собираем и изучаем в рамках наших курсов. Сегодня у нас на повестке дня курс по DevOps и один из его инструментов — Kubernetes.

Недавно мы создали распределенную систему планирования задач (cron jobs) на базе Kubernetes — новой, захватывающей платформы для оркестрации контейнеров. Kubernetes становится все популярней и дает много обещаний: например, инженерам не придется переживать, на каком устройстве запущено их приложение.

Распределенные системы сложны сами по себе, а управление сервисами на распределенных системах — одна из сложнейших проблем, с которыми сталкиваются команды управления. Мы очень серьезно относимся к вводу нового программного обеспечения в производство и обучению его надежному управлению. В качестве примера важности управления Kubernetes (и почему это так сложно!), почитайте отличный постмортем часового перебоя в работе, вызванного багом в Kubernetes.

В этом посте мы объясним, почему выбрали именно Kubernetes. Изучим процесс его интегрирования в существующую инфраструктуру, метод укрепления доверия (и улучшения) надежности нашего Kubernetes кластера и абстракцию созданную на основе Kubernetes.

Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии9

Метод анализа мультиканального взаимодействия с пользователем

Время на прочтение5 мин
Количество просмотров2.2K
Доброго всем!

Вот наши лапки и добрались до неIT-шных специальностей — «Digital маркетолог». Курс ведёт Виктория Александрова — руководитель отдела маркетинга в OTUS, которая и делится сегодня данной статьёй.

Поехали

Рано или поздно любой интернет-маркетолог сталкивается с проблемой оптимизации бюджета на продвижение. Нужно либо получать такое же количество конверсий при снижении бюджета, либо получать большее количество конверсий при том же бюджете. А иногда и то, и другое.
Лучший результат в решении этой проблемы обычно дает комплексный подход:

  • оптимизировать рекламные кампании в канале (снизить цену за клик, если речь об аукционе или, например, изменить таргетинги, чтобы минимизировать показы нецелевой аудитории и тот же объем аудитории закупать дешевле);
  • отключить неэффективные рекламные каналы (и/или перераспределить бюджет в сторону эффективных каналов, если в них еще не исчерпана емкость).


Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии0

Открытый урок по теме «Групповая работа»

Время на прочтение1 мин
Количество просмотров3.3K
Всем доброго и с прошедшими праздниками! В рамках нашего курса «Руководитель разработки», мы провели открытый урок, затронувший такую тему как «Групповая работа». Наш преподаватель Станислав Михальский почти два часа рассказывал о:

  • в каких случаях групповая деятельность наиболее эффективна;
  • причины, по которым она бывает неэффективна;
  • как правильно её организовывать;
  • как искать идеи и принимать правильные решения.

Ну и плюс разумеется ответы на вопросы :)



Ждём ваших вопросов и комментариев тут или на Дне открытых дверей.
Всего голосов 17: ↑16 и ↓1+15
Комментарии4

Модифицируем Python за 6 минут

Время на прочтение6 мин
Количество просмотров16K
Всем доброго и неумолимо наступающего!

Этот крайне насыщенный год подходит к своему завершению и у нас остался последний курс, который мы запускаем в этом году — "Разработчик full-stack на Python", чему, собственно, и посвящаем заметку, которая хоть и проскочила мимо основной программы, но показалась небезынтересной в целом.

Поехали


На этой неделе я сделал мой первый pull-request в основной проект CPython. Его отклонили :-( Но чтобы не тратить полностью свое время, я поделюсь своими выводами о том, как работает CPython и покажу вам как легко изменить синтаксис Python.

Я собираюсь показать вам как добавить новую фичу в синтаксис Python. Эта фича — оператор инкремента/декремента, стандартный оператор для большинства языков. Чтобы убедиться — откройте REPL и попробуйте:



Уровень 1: PEP


Изменению синтаксиса Python предшествует заявка с описанием причин, дизайна и поведения вносимых изменений. Все изменения языка обсуждаются основной командой Python и одобряются BDFL. Операторы инкремента не утверждены (и, вероятно, никогда не будут), что даёт нам хорошую возможность потренироваться.
Читать дальше →
Всего голосов 32: ↑29 и ↓3+26
Комментарии8

Servlet 4.0: Делаем больше быстрее. Server Push

Время на прочтение5 мин
Количество просмотров8.7K
Всем доброго и постепенно наступающего!

До окончания этого года остаётся не так уж и много времени, но мы ещё похоже успеем запустить два курса, одним из которых будет курс по Java EE. Так что держите первую часть заметок по Servlet 4.0

Новый крупный релиз API Servlet охватывает протокол HTTP/2 и прогнозирует потребности в ресурсах.

Долгожданное обновление для Java EE 8 включает в себя обновления существующих API: JAX-RS 2.1, Bean Validation 2.0, JavaServer Faces (JSF) 2.3, Contexts and Dependency Injection (CDI) 2.0, JSON with Padding (JSONP) 1.1 и Servlet 4.0, а также два новых API: JSON-Binding (JSON-B) и Java EE Security. Среди этих API, Servlet 4.0 представляет собой достаточно крупное обновление, первое с 2009 года.

Импульс, который вызвал этот большой релиз (а не точечное обновление), — это глобальное развертывание протокола HTTP/2 и множество новых возможностей, которые он приносит. Это обновление для HTTP является первым за почти 20 лет и устраняет многие недостатки HTTP 1.x. Новые возможности многочисленны (мультиплексирование запросов/ответов, сжатие заголовков, приоритизация потоков и push-сервер), но наиболее заметной функцией для пользователей Servlet API является Server Push, о котором я расскажу в этой статье.

Server Push — это не единственное примечательное дополнение к Servlet 4.0. Этот релиз также представляет усовершенствования в виде Servlet Mapping API, который поддерживает распознавание URL-отображений во время выполнения, за счет улучшений получения ссылочных путей. В этой статье обсуждаются эти функции, и как Server Push был интегрирован в API JavaServer Faces 2.3.

Читать дальше →
Всего голосов 10: ↑8 и ↓2+6
Комментарии4

Как анализировать тональность твитов с помощью машинного обучения на PHP

Время на прочтение11 мин
Количество просмотров18K
Всем доброго!

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

Вступление

В последнее время кажется, что все и каждый говорят о машинном обучении. Ваши ленты в социальных сетях забиты сообщениями об ML, Python, TensorFlow, Spark, Scala, Go и т. д .; и если у нас с вами есть что-то общее, то вы можете поинтересоваться, а что насчет PHP?

Да, как насчет машинного обучения и PHP? К счастью, кто-то был достаточно сумасшедшим, чтобы не только задать этот вопрос, но и разработать универсальную библиотеку машинного обучения, которую мы можем использовать в нашем следующем проекте. В этом посте мы рассмотрим PHP-ML — библиотеку для машинного обучения на PHP — и мы напишем класс анализа тональности, который мы сможем позже использовать для нашего собственного чата или твит-бота. Основными задачами этого поста являются:

  • Изучение общих понятия, касающиеся машинного обучения и анализа тональности текста
  • Обзор возможностей и недостатков PHP-ML
  • Определение задачи, которую мы будем решать.
  • Доказательство того, что попытка машинного обучения на PHP не является абсолютно безумной целью (опционально)


Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии5

Краткий обзор Symfony. Актуальность. Стоит ли попробовать?

Время на прочтение3 мин
Количество просмотров26K
Всем доброго! У нас запускается третий партнёрский курс — Разработчик PHP, где мы вместе с Авито подготовили программу, а теперь думаем стоит ли отдельно делать спецкурс по фреймворкам. Первым на рассмотрении оказался Symfony.

Немного истории

Symfony представляет собой один из самых популярных фреймворков для веб-разработки в мире.

Он прошел длинный путь от полностью интегрированного full-stack фреймворка с бэк-офисом в Symfony 1.x к фреймворку, который стал развитием наработок Java-сообщества, и содержавшем в себе компоненты, вдохновленные JEE в версии Symfony2.

Изначально Symfony2 требовал PHP 5.2.7, но PHP 5.3, только вышедший на тот момент, обладал новой объектно-ориентированной моделью, поэтому SensioLabs незамедлительно сделали эту версию обязательной. Уже после в Symfony использовали Composer, завершили документацию и полностью перевели её на английский.

Практически сразу началась миграция крупных open-source проектов на Symfony: OroCRM, EzPublish, Drupal8, PHPBB, PrestaShop, Piwik и многие другие — часть полностью перешла на этот каркас, а некоторые использовали только отдельные программные компоненты. Стоит особо отметить Drupal8 — возможно, это не был самый первый проект, но точно одна из крупнейших CMS на рынке.

Возможность использовать лишь отдельные программные компоненты Symfony позволила обогатить экосистему специализированными программными решениями. Это сместило в тень фреймворк Standard Edition, (так называемое “полное издание” или “мета-пакет”), который уже не мог быть ответом на насущные вопросы бизнеса. Поэтому в 2017 году создатель Symfony объявил, что версия 3.4 для него станет последней.


Читать дальше →
Всего голосов 26: ↑9 и ↓17-8
Комментарии8

Дебаты об отличном сервере приложений Java c Tomcat, Jboss, GlassFish, Jetty и Liberty Profile. Часть вторая

Время на прочтение9 мин
Количество просмотров11K
Всем доброго! Как и обещали, вторая часть перевода статьи по теме Java EE. Первую часть можно увидеть тут.

ОПЕРАЦИЯ ПОД ПРИКРЫТИЕМ

Надеемся, вы не только сейчас поняли, что бюджет равен 0, и вообще вас покорил WebLogic ;) До сих пор, мы рассматривали темы, значимые на начальных этапах, во время изучения серверов приложений. Теперь же посмотрим чуть глубже на каждый сервер, чтобы понять, отвечает ли он реальным задачам разработчика:

  • Настоящие показатели производительности;
  • Функционал и Соответствие Open Standards;
  • Администрирование и Управление/UI;
  • Стоимость $$$/Лицензия.

Читайте дальше, уже скоро мы определим, какой сервер приложений лучший из лучших!

Настоящие показатели производительности

Знали ли вы, что Lamborghini Gallardo LP570-4 Superleggra 2011 г. выпуска разгоняется от 0 до 60 км/ч всего за 2.8 с, а Dodge Viper Hennessey Venom GT делает это за целых 2.9 с? Думаю, водителям Viper ооочень скучно ждать, пока их машина разгоняется до 60!


Читать дальше →
Всего голосов 12: ↑9 и ↓3+6
Комментарии7

Дебаты об Отличном Сервере Приложений Java c Tomcat, Jboss, GlassFish, Jetty и Liberty Profile

Время на прочтение12 мин
Количество просмотров29K
Всем доброго!
Что ж у нас очередной новый курс Java Enterprise, а это значит, что есть то, чем мы с радостью поделимся с вами. Просьба особо не обращать внимания на версии и даты, т.к. суть от этого особо не меняется (или, если считаете, что меняется, то ждём комментарии).

Вступление: Да начнутся дебаты…

Какой тип сервера приложений Java вам стоит выбрать для следующего проекта? Зависит от того, какое приложение вы разрабатываете, какие у вас потребности, в какой организации работаете и многих других факторов. Без дебатов не обойтись. Поэтому навострите уши и слушайте внимательно.

Что делает сервер приложений сервером приложений, мистер Лебовски?

Что представляет собой сервер приложений — вопрос, вызывающий много споров в силу неточности определения. Википедия, как неоспоримый источник знаний, говорит следующее:
Java Platform, Enterprise Edition, сокращенно Java EE (до версии 5.0 — Java 2 Enterprise Edition или J2EE) — набор спецификаций и соответствующей документации для языка Java, описывающей архитектуру серверной платформы для задач средних и крупных предприятий.
Прости, Википедия, но в целях этой статьи, нам плевать на педантичные описания и полную имплементацию Java EE. Мы больше заботимся о нуждах и желаниях разработчиков.
Большинство разработчиков работают над веб-приложениями и резко используют все навороченные особенности EE-спецификации. На самом деле, ныне доступные сервера, обладающие только базовым функционалом, являются наиболее используемыми, как показал наш Отчет Производительности Разработчиков:


Читать дальше →
Всего голосов 21: ↑17 и ↓4+13
Комментарии15

Стоимость операций в тактах ЦП

Время на прочтение17 мин
Количество просмотров75K
Всем доброго! Вот мы и добрались до тематики С++ на наших курсах и по нашей старой доброй традиции делимся тем, что мы нашли достаточно интересным при подготовке программы и то, что будем затрагивать во время обучения.

Инфографика:



Когда нам нужно оптимизировать код, мы должны отпрофилировать его и упростить. Однако, иногда имеет смысл просто узнать приблизительную стоимость некоторых популярных операций, чтобы не делать с самого начала неэффективных вещей (и, надеюсь, не профилировать программу позже).
Читать дальше →
Всего голосов 100: ↑97 и ↓3+94
Комментарии16

Как сделать свой блокчейн. Часть 1 — Создание, Хранение, Синхронизация, Отображение, Майнинг и Доказательная работа

Время на прочтение9 мин
Количество просмотров90K
Доброго всем! Мы тут потихоньку начали исследовать новое совсем для нас направление для обучения — блокчейны и нашли то, что оказалось интересным в рамках нашего курса по Python, в том числе. Чем, собственно, и хотим поделиться с вами.

Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии9

Информация

В рейтинге
60-й
Откуда
Россия
Работает в
Зарегистрирован
Активность