All streams
Search
Write a publication
Pull to refresh
136
10.1

Редактор

Send message

Действительно ли Python GIL уже мертв?

Reading time8 min
Views26K
Всем привет! Уже в следующий понедельник начинаются занятия в новой группе курса «Разработчик Python», а это значит, что у нас есть время для публикации еще одного интересного материала, чем мы сейчас и займемся. Приятного прочтения.



В далеком 2003 году Intel выпустил новый процессор Pentium 4 “HT”. Этот процессор разгонялся до 3ГГц и поддерживал технологию гиперпоточности.

Погружение в Jetpack Compose

Reading time7 min
Views10K
Всем привет. Перед уходом на выходные спешим поделиться с вами еще одним переводом, подготовленным специально для студентов курса «Android-разработчик. Продвинутый курс».



Пробуем новый UI-фреймворк для Android-приложений


В течение последних нескольких лет, участвуя во многих мобильных проектах, мне приходилось использовать различные технологии, например, такие как Android, ReactNative и Flutter. Переключение с ReactNative обратно на классический Android вызвало у меня смешанные чувства. Возвращение к Kotlin прошло хорошо, но я очень скучал по UI-фреймворку React. Небольшие повторно используемые компоненты, с помощью которых создается пользовательский интерфейс, великолепны и обеспечивают большую гибкость и скорость разработки.
Читать дальше →

Что я узнал про оптимизацию в Python

Reading time12 min
Views17K
Всем привет. Сегодня хотим поделиться еще одним переводом подготовленным в преддверии запуска курса «Разработчик Python». Поехали!



Я использовал Python чаще, чем любой другой язык программирования в последние 4-5 лет. Python – преобладающий язык для билдов под Firefox, тестирования и инструмента CI. Mercurial также в основном написан на Python. Множество своих сторонних проектов я тоже писал на нем.

Во время своей работы я получил немного знаний о производительности Python и о его средствах оптимизации. В этой статье мне хотелось бы поделиться этими знаниями.

Мой опыт с Python в основном связан с интерпретатором CPython, в особенности CPython 2.7. Не все мои наблюдения универсальны для всех дистрибутивов Python или же для тех, которые имеют одинаковые характеристики в сходных версиях Python. Я постараюсь упоминать об этом во время повествования. Помните о том, что эта статья не является детальным обзором производительности Python. Я буду говорить только о том, с чем сталкивался самостоятельно.
Читать дальше →

Горизонтальное автомасштабирование подов Kubernetes и Prometheus для высокой доступности и работоспособности инфрастр-ры

Reading time7 min
Views19K
Салют, хабровчане! Перевод следующей статьи подготовлен специально для студентов курса «Инфраструктурная платформа на основе Kubernetes», занятия по которому стартуют уже завтра. Начнем.



Автомасштабирование в Kubernetes


Автомасштабирование позволяет автоматически увеличивать и уменьшать рабочие нагрузки в зависимости от использования ресурсов.

У автомасштабирования в Kubernetes два измерения:

  • автомасштабирование кластера (Cluster Autoscaler), которое отвечает за масштабирование узлов;
  • горизонтальное автомасштабирование подов (Horizontal Pod Autoscaler, HPA), которое автоматически масштабирует количество подов в развертывании или наборе реплик.

Автомасштабирование кластера можно использовать в сочетании с горизонтальным автомасштабированием подов для динамического регулирования вычислительных ресурсов и степени параллелизма системы, необходимых для соблюдения соглашений об уровне обслуживания (SLA).
Читать дальше →

Мои «Ого, я этого не знал!» моменты с Jest

Reading time6 min
Views14K
Всем привет! Курс «Разработчик JavaScript» стартует уже в этот четверг. В связи с этим мы решили поделиться переводом еще одного интересного материала. Приятного прочтения.



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

Топ-10 технологических трендов в обработке данных и аналитике в 2019 году по мнению Gartner

Reading time7 min
Views6.7K
Добрый вечер. Перевод следующей статьи подготовлен специально для студентов курса «Аналитик BI». Приятного прочтения.



В центре внимания на саммите Gartner Data & Analytics 18-19 февраля в Сиднее были расширенная аналитика (Augmented Analytics) и искусственный интеллект.

Расширенная аналитика, непрерывный интеллект (continuous intelligence) и объяснимый искусственный интеллект (explainable artificial intelligence) являются одними из самых громких тенденций в области технологий обработки данных и аналитики, которые будут иметь разрушительный потенциал в последующие 3-5 лет, по мнению Gartner, Inc.
Читать дальше →

ServiceLoader: встроенный DI-фреймворк, о котором вы, возможно, никогда не слышали

Reading time5 min
Views12K
Салют, друзья. Уже в эту пятницу пройдет первое занятие в новой группе курса «Разработчик Java». Именно этому курсу и будет посвящена текущая публикация.



Многие из java-разработчиков для внедрения зависимостей используют Spring. Некоторые, возможно, пробовали Google Guice или даже OSGi Services. Но многие не знают, что в Java уже есть встроенный DI. Думаете это появилось в Java 11 или 12? Нет, он доступен с Java 6.
Читать дальше →

Уменьшаем время сборки ваших Android-проектов

Reading time6 min
Views12K
Доброе утро! Начинаем понедельник с материала, перевод которого подготовлен специально для студентов курса «Android-разработчик. Продвинутый курс».



Недавно я переносил кодовую базу Android в Kure на AndroidX. Мне показалось, что это прекрасная возможность поработать над скоростью сборки проекта. У Gradle всегда была плохая репутация из-за медлительности и ресурсоемкости, но я был очень удивлен, что незначительные изменения в конфигурации сборки могут так значительно увеличить ее скорость.
Читать дальше →

Юнит-тестирование шаблонов C++ и Mock Injection с помощью трейтов (Traits)

Reading time5 min
Views5.7K
Еще раз здравствуйте! До старта занятий в группе по курсу «Разработчик С++» остается меньше недели. В связи с этим мы продолжаем делиться полезным материалом переведенным специально для студентов данного курса.



Юнит-тестирование вашего кода с шаблонами время от времени напоминает о себе. (Вы ведь тестируете свои шаблоны, верно?) Некоторые шаблоны легко тестировать. Некоторые — не очень. Иногда не хватает конечной ясности насчет внедрения mock-кода (заглушки) в тестируемый шаблон. Я наблюдал несколько причин, по которым внедрение кода становится сложным.

Ниже я привел несколько примеров с примерно возрастающей сложностью внедрения кода.
Читать дальше →

Незаметная выдача прав администратора

Reading time4 min
Views10K
Всех с пятницей, друзья. Сегодня делимся с вами еще одним материалом, переведенным в преддверии запуска курса «Реверс-инжиниринг».



У меня была классная идея, как заставить пользователя запустить ваше приложение без социальной инженерии или применения сторонних эксплойтов. Дальше вы сможете просто двигаться вперед и инициировать массовое заражение исполняемых файлов, но это может вызвать множество непредвиденных проблем, а также будет означать, что приложения с цифровой подписью от доверенных поставщиков будут отображаться как ненадежные файлы. Хорошей идеей будет «захват» всего одной dll. Я не буду называть этот метод обходом UAC(User account Control), поскольку все равно потребуется получить разрешение на запуск приложения (только не вашего).
Читать дальше →

Панели Grafana для администрирования Kubernetes

Reading time4 min
Views8.7K
Всем привет! Сегодня мы продолжаем делиться материалом, переведенным специально для студентов курса «Инфраструктурная платформа на основе Kubernetes». Приятного прочтения.


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

5 чрезвычайно простых способов ощутимо повысить скорость вашего VueJS-приложения

Reading time4 min
Views14K
Здравствуйте. Перевод данной статьи подготовлен специально для студентов курса «Разработчик JavaScript», который стартует уже на следующей неделе.


Голос Чуи

Немного обо мне — меня зовут Вайбхав, я из Five2One. Я вовлечен во VueJS уже целых 2 года (с момента выхода 1.0) и в основном помогал создавать/обучать 3 из крупнейших кодовых баз VueJS в Сиднее. Этот код служит миллионам людей, поэтому моя задача — не просто создавать масштабируемые паттерны кода, а еще и в значительной степени заботиться о его производительности.

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

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

Шесть способов, которыми тестировщики могут принести пользу (помимо функционального тестирования)

Reading time5 min
Views13K
Салют! Уже на следующей неделе стартуют занятия в новом потоке курса «QA-специалист», в связи с этим делимся с вами полезным материалом, переведенным специально для студентов курса. Поехали.



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

Функциональное тестирование сохраняет свою значимость даже при обширном внедрении автоматизации. Многие программные продукты требуют ручного тестирования для проверки и исследования всех функций и их взаимодействия.
Читать дальше →

Полезные инструменты Python

Reading time6 min
Views40K
Друзья, добрый вечер! У нас отличные новости, открыт набор в новую группу по курсу «Разработчик Python». Группа стартует уже в начале июля, а прямо сейчас, по устоявшейся традиции, мы делимся полезным переводом подготовленным для студентов данного курса.



Когда вы только начинаете учить Python, кто-то объясняет вам, что вы можете добавить свою папку с исходниками в переменную среды PYTHONPATH и тогда ваш код можно будет импортировать из других директорий. Очень часто объясняющий забывает сказать, что в большинстве случаев – это плохая идея. Некоторые люди узнают это в интернете, другие просто понимают на собственном опыте. Но слишком большое количество людей (особенно неопытные программисты), думают, что других альтернатив быть не может.
Читать дальше →

Примеры C++ кода до и после Ranges

Reading time4 min
Views38K
Снова здравствуйте. Перевод следующего материала подготовлен специально для студентов курса «Разработчик C++», занятия по которому стартуют уже 27 июня.



Библиотека Ranges была принята в C++20 на совещании стандартного комитета в Сан-Диего в ноябре прошлого года. Библиотека предоставляет компоненты для обработки диапазонов значений, направленных на упрощение нашего кода. К сожалению, библиотека Ranges не очень хорошо документирована, из-за этого ее труднее понять тем, кто хотел бы ее освоить. Этот пост предназначен для ознакомления с примерами кода, написанного с использованием Ranges и без нее.
Читать дальше →

BASS — фреймворк для автоматического синтеза антивирусных сигнатур

Reading time6 min
Views2.3K
Всем привет. До старта курса «Реверс-инжиниринг» остается меньше десяти дней, в связи с этим хотим поделиться еще одним интересным переводом по теме. Поехали!



Краткий обзор




Картина угроз стремительно меняется — постоянно появляются новые кибератаки, а старые становятся изощреннее. В этих условиях перед специалистами по безопасности встают все более сложные задачи. Ежедневно им приходится обрабатывать и анализировать миллионы образцов ранее неизвестного и совершенно нового вредоносного ПО, разрабатывать эффективные антивирусные сигнатуры для описания целых семейств вредоносных программ, обеспечивать масштабируемость инструментов по мере увеличения числа образцов для анализа. При этом приходится учитывать ограниченность ресурсов на средства автоматизации анализа вредоносных программ. Чтобы помочь ИТ-специалистам справиться с этими разнообразными сложностями, Talos предлагает новую платформу с открытым кодом под названием BASS.
Читать дальше →

Использование Typescript с React – руководство для новичков

Reading time6 min
Views192K
Друзья, в преддверии выходных хотим поделиться с вами еще одной интересной публикацией, которую хотим приурочить к запуску новой группы по курсу «Разработчик JavaScript».



Потратив последние несколько месяцев на разработку приложений на React и библиотек с использованием Typescript, я решил поделиться некоторыми вещами, которые узнал за это время. В этом руководстве я расскажу вам про шаблоны, которые я использую для Typescript и React в 80% случаев.

Стоит ли изучать Typescript для разработки приложений на React? Стоит, еще как стоит! Для себя я осознал на практике, что строгая типизация приводит к написанию гораздо более надежного кода, быстрой разработке, особенно в крупных проектах. Сначала вы, вероятно, будете разочарованы, но по мере работы вы обнаружите, что хотя бы минимальный шаблон действительно будет очень кстати.

И если вы застряли на чем-то, помните, что вы всегда можете типизировать что- нибудь как any. Any – ваш новый друг. А теперь перейдем непосредственно к примерам.
Читать дальше →

Как выглядит ваш текст?

Reading time10 min
Views8.8K
Друзья, отличной всем пятницы. Хотим поделиться с вами переводом статьи, подготовленным специально для студентов курса «Android-разработчик. Продвинутый курс». Приятного прочтения.



Как декларативно стилизовать текст на Android.


Иллюстрация Вирджинии Полтрэк

TextView в Android-приложениях предоставляет несколько атрибутов для стилизация текста и различные способы их применения. Эти атрибуты можно установить непосредственно в layout’e, применить стиль к view или тему к layout’у или, если захотите, установить textAppearance. Но что же из этого следует использовать? И что произойдет, если их скомбинировать?
Читать дальше →

Как Java 10 изменяет способ использования анонимных внутренних классов

Reading time5 min
Views9.3K
Друзья, как вы уже заметили, в конце июня у нас стартует немало новых групп, среди них очередной поток полюбившегося всем курса «Разработчик Java». Прямо сейчас делимся с вами новым переводом подготовленным для студентов данного курса.



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

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

Выделенная память подов и вмешательство OOM Killer

Reading time5 min
Views8.4K
И снова здравствуйте! Перевод следующей статьи подготовлен специально для студентов курса «Инфраструктурная платформа на основе Kubernetes», который запускается уже в этом месяце Начнем.



В последние дни некоторые из моих подов постоянно аварийно завершали работу, оставляя в системном журнале ОС запись о том, что OOM Killer уничтожил процесс контейнера. Я решил разобраться, почему это происходит.
Читать дальше →

Information

Rating
627-th
Location
Россия
Works in
Registered
Activity