All streams
Search
Write a publication
Pull to refresh
136
11.1

Редактор

Send message

Разбираемся в основах Blockchain: Задача Византийских Генералов. Часть 1

Reading time6 min
Views32K
Перевод статьи подготовлен специально для студентов курса «Архитектор высоких нагрузок», который стартует уже в этом месяце.




Блокчейн – это децентрализованная система, состоящая из различных субъектов, которые действуют в зависимости от своих стимулов и имеющейся у них информации.

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

JWT: Атака на цифровую подпись VS MAC-атака

Reading time4 min
Views6.5K
Всем привет. Ни для кого не секрет, что ежемесячно OTUS запускает несколько абсолютно новых уникальных курсов, в этом месяце в их число вошел курс «Пентест. Практика тестирования на проникновение». По устоявшейся традиции, в преддверии старта курса, делимся с вами переводом полезного материала по данному направлению.





Во время последнего пентеста я наткнулся на схему авторизации на основе JSON Web Token (или просто JWT). JWT состоит из трех частей: заголовок, полезная нагрузка, информация для верификации. Первая часть заголовка содержит имя алгоритма, который в дальнейшем будет использоваться для верификационной части JWT. Это опасно, так как злоумышленник может изменить эту информацию и таким образом (возможно) проконтролировать, какая схема будет использоваться сервером для проверки.
Читать дальше →

Как сделать SFINAE изящным и надежным

Reading time9 min
Views14K
И снова здравствуйте. Делимся с вами интересной статьёй, перевод которой подготовлен специально для студентов курса «Разработчик C++».





Сегодня у нас гостевой пост Адама Балаша (Ádám Balázs). Адам является инженером-программистом в Verizon Smart Communities Hungary и занимается разработкой видеоаналитики для встраиваемых систем. Одна из его страстей — оптимизации времени компиляции, поэтому он сразу согласился написать гостевой пост на эту тему. Вы можете найти Адама в онлайне на LinkedIn.
Читать дальше →

5 вещей, которые чаще всего не понимают новички в JavaScript

Reading time7 min
Views39K
Всем привет! В конце сентября в OTUS стартует новый поток курса «Fullstack разработчик JavaScript». В преддверии начала занятий хотим поделиться с вами авторской статьей, подготовленной специально для студентов курса.

Автор статьи: Павел Якупов



Превью. Хочу сразу отметить, что в данной статье разбираются темы, хорошо знакомые «ниндзям», и больше статья нацелена на то, чтобы новички лучше поняли некоторые нюансы языка, и могли не потеряться в задачах, которые часто дают на собеседовании — ведь на самом деле подобные таски никакого отношения к реальной разработке не имеют, а те, кто их дают, чаще всего таким способом пытаются понять, насколько хорошо вы знаете JavaScript.
Читать дальше →

Рекомендации по созданию приложений на React Native. Часть 1

Reading time5 min
Views8.7K
Добрый день, хабровчане. Сегодня делимся с вами переводом статьи, перевод которой был подготовлен специально для первого запуска курса «ReactJS/React Native-разработчик». Приятного прочтения.





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

Ниже я составил список лучших практических советов из своего личного опыта, которые, надеюсь, окажутся для вас полезными :)
Читать дальше →

Взгляд изнутри: процесс устройства на работу и адаптации в Google

Reading time5 min
Views9.8K
Перевод статьи подготовлен специально для студентов курса «IT-Recruiter».



Google – одна из знаковых ИТ-компаний в мире. Она является крайне популярным местом работы. Согласно отчетам, компания получает около миллиона резюме каждый год. У Google должна быть надежная система, которая помогает сужать поток кандидатов и находить лучших на открытые позиции. Как выглядит этот процесс и какие уроки другие работодатели могут извлечь из него?

Давайте поближе взглянем на то, как Google принимает сотрудников на работу, помогает новичкам адаптироваться, проводит внутренние проверки и как итог — принимает решения.
Читать дальше →

Уровень Android API, обратная и прямая совместимость

Reading time7 min
Views79K
Добрый вечер, друзья. Мы подготовили полезный перевод для будущих студентов курса «Android-разработчик. Продвинутый курс». С радостью делимся с вами данным материалом.




Если вы читаете эту статью, значит вас могут интересовать такие вещи, как:

  • Что означает уровень API?
  • Как использовать compileSdkVersion, minSdkVersion или targetSdkVersion?
  • Как можно гарантировать, что приложение будет работать правильно на устройствах с разными версиями ОС?
Читать дальше →

4 шага для создания профиля кандидата

Reading time5 min
Views8.9K
Всем привет. В этом месяце в Отус стартует новый поток курса «IT-Recruiter.» К этому запуску мы приурочили новый полезный перевод, которым делимся с вами.




Создание профиля кандидата


Ваш профиль кандидата – это внутренний документ, который, по сути, представляет собой список качеств, характеристик или достижений, которые вы хотите видеть в кандидате. Создание профиля кандидата – это крайне сложный процесс. Он требует профессиональных навыков рисования линий на листе бумаги. Вы все еще тут? В результате должна получиться изящная диаграмма из четырех столбцов. Действительно, очень профессионально, не так ли?

Ваши столбцы должны быть расположены в порядке важности, то есть первый столбец должен содержать «обязательные» качества, а последний «абсолютно нежелательные» качества.
Читать дальше →

Полное руководство по массивам и срезам в Golang

Reading time5 min
Views67K
Перевод статьи подготовлен специально для студентов курса «Разработчик Golang», занятия по которому начинаются уже сегодня!




Поначалу легко воспринимать массивы и срезы как одно и то же, но с разными названиями: и то и другое является структурой данных для представления коллекций. Однако на самом деле они сильно отличаются друг от друга.

В этой статье мы рассмотрим их различия и реализации в Go.

Мы обратимся к примерам, чтобы вы могли принимать более взвешенное решение о том, где их применять.
Читать дальше →

Чеклист готовности к продакшну

Reading time4 min
Views11K
Перевод статьи подготовлен специально для студентов курса «DevOps практики и инструменты»





Вы когда-нибудь выпускали новый сервис в продакшн? Или может занимались сопровождением таких сервисов? Если да, то чем вы руководствовались? Что для продакшена хорошо, а что плохо? Как вы обучаете новых участников команды релизам или сопровождению существующих сервисов.
Читать дальше →

Интерпретируемая модель машинного обучения. Часть 2

Reading time4 min
Views15K
Всем привет. Считанные дни остаются до старта курса «Machine Learning». В преддверии начала занятий мы подготовили полезный перевод, который будет интересен как нашим студентам, так и всем читателям блога. И сегодня делимся с вами завершающей частью данного перевода.





Partial Dependence Plots


Partial Dependence Plots (графики частичной зависимости или же PDP, PD-графики) показывают незначительное влияние одного или двух признаков на прогнозируемый результат модели машинного обучения ( J. H. Friedman 2001 ). PDP может показать связь между целью и выбранными признаками с помощью 1D или 2D графиков.
Читать дальше →

10 самых распространенных ошибок при работе с платформой Spring. Часть 2

Reading time8 min
Views9K
Салют, хабровчане. Вот и подоспел перевод второй части статьи, подготовленной специально для студентов курса «Разработчик на Spring Framework». Первую часть можно прочитать тут.



Spring — пожалуй, одна из самых популярных платформ разработки на языке Java. Это мощный, но довольно сложный в освоении инструмент. Его базовые концепции довольно легко понять и усвоить, но для того чтобы стать опытным разработчиком на Spring, потребуются время и определенные усилия.

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

На тот случай, если вы не очень хорошо знакомы с платформой Spring Boot, но хотите поэкспериментировать с примерами, приведенными в статье, я создал GitHub-репозиторий с дополнительными материалами для этой статьи. Если в какой-то момент вы немного запутались, читая эту статью, я бы посоветовал вам создать клон этого репозитория и поэкспериментировать с кодом на своем компьютере.

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

Подготовка приложения к Android Q. Часть 2

Reading time5 min
Views5.7K
Перевод статьи подготовлен специально для студентов курса «Android-разработчик. Базовый курс». Также напоминаем о том, что мы продолжаем набор на расширенный курс «Специализация Android-разработчик»




О конфиденциальности и безопасности можно прочитать в первой части статьи.

2) User Experiences


а) Навигационные жесты




В Android Q Google попытался объединить все жесты навигации с помощью новой навигационной системы жестов, которая заменила плавающую навигационную панель (назад, домой и последние приложения).

  • На что влияет: если ваше приложение содержит жесты, то они могут конфликтовать с системными жестами. Это повлияет на все приложения, работающие на Android Q (независимо от целевого SDK), поскольку первыми будут обрабатываться системные жесты.
  • Рекомендуемый подход: Поскольку плавающая панель навигации фактически исчезла, рекомендуется в полной мере использовать доступное новое экранное пространство и обеспечить пользователям эффект погружения.
Читать дальше →

Интерпретируемая модель машинного обучения. Часть 1

Reading time4 min
Views18K
Всем привет. До старта курса «Machine Learning» остается чуть больше недели. В преддверии начала занятий мы подготовили полезный перевод, который будет интересен как нашим студентам, так и всем читателям блога. Начнем.




Пора избавиться от черных ящиков и укрепить веру в машинное обучение!

В своей книге “Interpretable Machine Learning” Кристоф Мольнар прекрасно выделяет суть интерпретируемости Машинного Обучения с помощью следующего примера: Представьте, что вы эксперт Data Science, и в свободное время пытаетесь спрогнозировать куда ваши друзья отправятся в отпуск летом, основываясь на их данных из facebook и twitter. Итак, если прогноз окажется верным, то ваши друзья будут считать вас волшебником, который может видеть будущее. Если прогнозы будут неверны, то это не принесет вреда ничему, кроме вашей репутации аналитика. Теперь представим, что это был не просто забавный проект, а к нему были привлечены инвестиции. Скажем, вы хотели инвестировать в недвижимость, где ваши друзья, вероятно, будут отдыхать. Что произойдёт, если предсказания модели будут неудачными? Вы потеряете деньги. Пока модель не оказывает существенного влияния, ее интерпретируемость не имеет большого значения, но когда есть финансовые или социальные последствия, связанные с предсказаниями модели, ее интерпретируемость приобретает совершенно другое значение.
Читать дальше →

Что есть и чего нет в Go. Часть 2

Reading time5 min
Views11K
Всем привет! Cегодня делимся заключительной частью перевода статьи «Что есть и чего нет в Go». Напоминаем, в первой части речь шла о элементах, которые есть в Go, сегодня же поговорим о том, чего в Go нет.

Перевод данного материала подготовлен в преддверии старта нового потока по курсу «Разработчик Golang».



Go создавался с оглядкой назад, и его базовая комплектация действительно хорошо составлена: у него есть сборка мусора, пакеты, функции первого класса, лексическая область видимости, интерфейс системных вызовов и неизменяемые строки, текст которых обычно кодируется в UTF-8. Но он имеет сравнительно мало фич и вряд ли будет увеличивать их количество. Например, у него нет неявных числовых преобразований, нет конструкторов или деструкторов, нет перегрузки операторов, нет значений параметров по умолчанию, нет наследования, нет дженериков, нет исключений, нет макросов, нет аннотаций функций и нет локального хранилища потока.

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

10 самых распространенных ошибок при работе с платформой Spring. Часть 1

Reading time9 min
Views11K
Всем привет. Сегодня делимся первой частью статьи, перевод которой подготовлен специально для студентов курса «Разработчик на Spring Framework». Начнём!





Spring — пожалуй, одна из самых популярных платформ разработки на языке Java. Это мощный, но довольно сложный в освоении инструмент. Его базовые концепции довольно легко понять и усвоить, но для того чтобы стать опытным разработчиком на Spring, потребуются время и определенные усилия.

В этой статье мы рассмотрим некоторые из самых распространенных ошибок, совершаемых при работе в Spring и связанных, в частности, с разработкой веб-приложений и использованием платформы Spring Boot. Как отмечается на веб-сайте Spring Boot, в Spring Boot используется стандартизованный подход к созданию готовых к эксплуатации приложений, и данная статья будет придерживаться этого подхода. В ней будет дан ряд рекомендаций, которые можно эффективно использовать при разработке стандартных веб-приложений на базе Spring Boot.
Читать дальше →

Перестаньте использовать DateTime

Reading time4 min
Views30K
Специально для студентов курса «Backend разработчик на PHP» подготовили перевод интересной статьи о сайд-эффекте популярного инструмента.





Работа с датами и временем в PHP порой раздражает, поскольку приводит к неожиданным багам в коде:

$startedAt = new DateTime('2019-06-30 10:00:00');

$finishedAt = $startedAt->add(new DateInterval('PT3M')); 

var_dump($startedAt->format('Y-m-d H:i:s')); //2019-06-30 10:03:00 
var_dump($finishedAt->format('Y-m-d H:i:s')); //2019-06-30 10:03:00 

Обе функции $startdate и $finishdate спешат на три минуты, потому как такие методы, как add (), sub() или modify() также изменяют объект DateTime, для которого они вызываются, прежде чем вернуть его. В приведенном выше примере, конечно же, показано нежелательное поведение.

Мы можем исправить эту ошибку, скопировав объект, на который происходит ссылка, прежде чем взаимодействовать с ним, например:
Читать дальше →

5 советов о Design Leadership. Часть 2

Reading time3 min
Views1.4K
И снова здравствуйте. Несколько дней назад мы опубликовали первую часть статьи «5 советов о Design Leadership», которая была написана специально к старту курса «Team Lead 2.0», который подготовлен специально для старших разработчиков, TeamLead’ов, SCRUM мастеров и специалистов, желающих повысить свой профессиональный уровень и получить уникальный опыт, необходимый для эффективного управления командами разработки. Сегодня, как и обещали, делимся с вами завершающими двумя советами.

Автор статьи: Светлана Коновалова





Design Leadership – это о лидерстве и менеджменте в области дизайна, по сути аналог термина Project Management для разработчиков. Только если второе в России уже прижилось достаточно хорошо, то первое встречается не часто. Каким должен быть человек, который будет отвечать за ваш дизайн-отдел или команду дизайнеров? Как вы должны себя вести и что постоянно помнить, если хотите стать таким человеком? Именно об этом мы сегодня и поговорим. Эта статья будет полезна тем, кто начинает или недавно начал свой путь в качестве тимлида. Однако, если вы уже имеете определенный опыт, можете просто лишний раз убедиться в том, что вы все делаете правильно.

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

Искусственные иммунные системы в информационной безопасности

Reading time3 min
Views8.5K
Салют, хабровчане! В этом месяце Отус запускает новый поток по курсу «Machine Learning». В преддверии старта курса делимся с вами небольшим авторским материалом в котором поговорим о искусственных иммунных системах в информационной безопасности.

Автор статьи: Светлана Коновалова



Искусственные иммунные системы относятся к особенной области искусственного интеллекта – эволюционным вычислениям. Если говорить простым языком, то всему виной эволюция и ее принципы работы, а именно формирование популяции, воздействие на нее и в итоге – селекция. На основе этого механизма были разработаны два вида алгоритмов: эволюционные и алгоритмы на основе искусственных иммунных систем.
Читать дальше →

Подготовка приложения к Android Q. Часть 1

Reading time5 min
Views9.8K
Перевод статьи подготовлен специально для студентов курса «Android-разработчик. Базовый курс». Также напоминаем о том, что мы продолжаем набор на расширенный курс «Специализация Android-разработчик»





Мы находимся на 10-м году разработки Android (Android Q должен быть версией 10.0). В соответствии с Beta 4, официально у Android Q 29-й уровень API. Несмотря на то, что уже есть Beta 5 и ожидается Beta 6, API был помечен как окончательный, и сейчас самое время посмотреть, как Android Q повлияет на приложения и какие изменения нужно внести, чтобы полностью поддерживать Android Q.
Читать дальше →

Information

Rating
583-rd
Location
Россия
Works in
Registered
Activity