• Как понять свойство clip-path в CSS

    • Перевод
    • Tutorial
    В те далёкие времена, когда я впервые столкнулся со свойством CSS clip-path, мне потребовалось больше времени, чем я ожидал, и я изо всех сил старался запомнить, как работает свойство. Не знаю точно, почему так получилось, но, может быть, потому, что я не пользовался им часто? Во всяком случае, я изучу его снова вместе с вами. В этой статье я стремлюсь дать чёткое, детальное объяснение того, как работает clip-path, когда его использовать и как вы можете воспользоваться им в своих проектах веб-разработки. Вы готовы?


    Тогда ныряем!
  • Как мы боролись с техдолгом, или От 15 000 подключений к базе данных до 100

    Недавно новый сотрудник спросил меня за обедом: «Какой у нас техдолг?»

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

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

    Глядя на нового сотрудника, я глубоко вздохнул и начал: «Давай я расскажу о том, как у нас было 15 000 прямых подключений к БД…»

    История, которую я рассказал нашему новому сотруднику, – это история крупной технической перестройки DigitalOcean. Работала вся компания, эта работа продолжалась несколько лет и преподала нам много уроков. 

    Приятного чтения!
  • Как предотвратить появление неверных данных в ваших идеальных конвейерах

    • Перевод

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

    В этой статье я поделюсь тремя ключевыми стратегиями, которыми пользуются некоторые лучшие компании Data Science, чтобы восстановить доверие к своим данным.
    Приятного чтения!
  • Как я изучал структуры данных и алгоритмы для собеседования в FAANG

    • Перевод
    Продолжая тему устройства в FAANG, которую уже мы поднимали в нашем блоге, и специально к старту нового потока нашего курса по алгоритмам сегодня делюсь описанием пути Эско Обонга, старшего инженера-программиста Uber.

    Эта история началась в 2015 году, когда стартап, к которому я присоединился как «сотрудник-основатель», закрылся через шесть месяцев после первого раунда инвестиций, и я искал новую работу. Первое моё собеседование было с  Codecademy, где на этапе телефонного разговора меня заверили: «Не волнуйтесь, мы не задаём сумасшедших вопросов об алгоритмах или что-то в этом роде». И я им поверил…


    Приятного чтения!
  • Хабравыжимка #1: Софт скилы для разработчика

      Современный специалист подобен швейцарскому ножу — владения только одним навыком всегда будет недостаточно. Но если с хард-скилами более-менее понятно, для каждой специальности они известны, то с софт скилами всё не так очевидно. Но мы же на Хабре — тут пишут про всё, правда, в этом потоке контента несложно и запутаться. Поэтому, чтобы облегчить жизнь всем и составить представление о том, какие же «мягкие навыки» наиболее актуальны, я собрал подборку лучших постов про них. А помогли мне в этом руководитель Центра карьеры SkillFactory Юлия Пушкина и наш карьерный консультант Эльмира Салимова.


      Приятного чтения!
    • Как отслеживать производительность веб-приложения с JavaScript и Performance API

      • Перевод
      • Tutorial
      В сентябре этого года у меня была возможность присоединиться к Forest Admin, компании, которая выполняет всю тяжёлую работу по созданию панели администратора любого веб-приложения и предоставляет платформу на основе API, чтобы реализовать все ваши конкретные бизнес-процессы. Моей первой задачей было реализовать мониторинг времени загрузки приложения, а также мониторинг времени запросов, сделанных нашими клиентами в их административном бэкенде, который я разработал.

      Цель такой функции – иметь возможность ориентироваться на проекты, работая с которыми пользователи сталкиваются с длительной загрузкой, чтобы оптимизировать конфигурацию своего интерфейса. Это делает навигацию и взаимодействие с приложением плавнее и, таким образом, улучшает взаимодействие с пользователем. Для этого первым делом нужно выяснить, как мы собираемся реализовать такую функцию.


      Приятного чтения!
    • Дата-сайентист, который просто не может перестать выигрывать на Kaggle

      • Перевод
      Ранее у нас в блоге уже был материал про лучших в Kaggle, а сегодня представляю вам интервью с признанным дата-сайентистом и гроссмейстером Kaggle Филиппом Сингером, который поделится своим опытом, вдохновением и и достижениями. Беседа призвана мотивировать и воодушевить других людей, которые хотят понять, что нужно, чтобы стать гроссмейстером Kaggle. Также в этом интервью мы узнаем больше об академическом прошлом Филиппа, его увлечении Kaggle и о его работе в качестве дата-сайентиста.


      Приятного чтения
    • Как сделать Data Science приложение для Windows (и не только) с графическим интерфейсом с помощью PySimpleGUI

      • Перевод
      • Tutorial
      Работать с Data Science в Jupyter, конечно, очень приятно, но если вы хотите пойти дальше и развернуть свой проект или модель на облачном сервере, то здесь есть много отличных решений — с помощью Flask, Django или Streamlit. Хотя облачные решения по-прежнему самые популярные, часто хочется создать быстрое приложение с графическим интерфейсом. Например:

      • Модель ML тестируется на различных наборах данных. Вы можете перетащить файлы CSV в модель и отрисовать кривую AUS/ROC. Здесь GUI проявит себя прекрасно, правда?
      • Построить случайную переменную или статистическое распределение в заданном диапазоне и динамически управлять параметрами с помощью графического интерфейса.
      • Быстро запустить некоторые задачи обработки или предварительной обработки данных в наборе с помощью GUI вместо того, чтобы писать кучу кода.

      В этой статье мы покажем, как создать такой графический интерфейс, потратив минимум усилий на изучение библиотеки Python.


      Приятного чтения!
    • Разрабатываем и развёртываем собственную платформу ИИ с Python и Django

      • Перевод
      • Tutorial
      Взлёт искусственного интеллекта привёл к популярности платформ машинного обучения MLaaS. Если ваша компания не собирается строить фреймворк и развёртывать свои собственные модели, есть шанс, что она использует некоторые платформы MLaaS, например H2O или KNIME. Многие исследователи данных, которые хотят сэкономить время, пользуются этими инструментами, чтобы быстро прототипировать и тестировать модели, а позже решают, будут ли их модели работать дальше. 

      Но не бойтесь всей этой инфраструктуры; чтобы понять эту статью, достаточно минимума знаний языка Python и фреймворка Django.  Специально к старту нового потока курса по машинному обучению в этом посте покажем, как быстро создать собственную платформу ML, способную запускать самые популярные алгоритмы на лету.


      Портрет Орнеллы Мути Джозефа Айерле (фрагмент), рассчитанный с помощью технологии искусственного интеллекта.
      Приятного чтения!
      • +20
      • 4,5k
      • 2
    • Как я готовился к собеседованию в Google

      • Перевод
      Каждый инженер-программист стремится впечатлить людей своим техническим мастерством. Технологические гиганты этого мира — прекрасное место для работы технарей, которые могут предоставить услуги миллиардам пользователей. На моём недавнем собеседовании было несколько раундов, я получил предложения от Google и Amazon. В последние несколько лет онлайн-сообщество очень помогло мне в подготовке к собеседованиям. В этом посте я поделюсь всем о моём пути к собеседованию и верну вклад общества в моё обучение.


      Приятного чтения!
    • Почему вы никогда не должны соглашаться на собеседования с программированием

      • Перевод
      Собеседование инженера программиста сегодня часто включает в себя некий тест или упражнение на программирование, и я думаю, что это очень плохая вещь. Вот почему.


      Приятного чтения!
    • Как новые квантовые алгоритмы решили нелинейные уравнения

      • Перевод
      Иногда компьютеру легко спрогнозировать будущее. Простые явления, например, когда сок стекает по стволу дерева, прямолинейны и фиксируются в нескольких строках кода при помощи линейных дифференциальных уравнений. Но в нелинейных системах взаимодействия могут влиять сами на себя: когда воздушные потоки протекают по крыльям реактивного самолёта, поток воздуха изменяет молекулярные взаимодействия, которые, в свою очередь, изменяют воздушный поток, и так далее. Эта петля обратной связи порождает хаос, где небольшие изменения в начальных условиях позже приводят к крайне изменчивому поведению, что делает прогнозы практически невозможными, каким бы мощным ни был компьютер.


      Приятного чтения!
      • +26
      • 5,5k
      • 2
    • В 40 я всё ещё разработчик?

      • Перевод
      Если вам кажется, что 40 — это уже слишком, вы ошибаетесь. Представьте: вы рано приходите в офис. Бросаете рюкзак и отправляетесь на кухню. Вы полночи уговаривали детей уснуть, и они рано разбудили вас. Теперь вам нужен кофе. С кружкой кофе в руке вы замечаете, что на кухне разговаривают три разработчика. Сейчас 9 утра. Они просто пришли пораньше, — решаете вы. Но замечаете на них ту же одежду, что и вчера. Они были здесь всю ночь. Вот чёрт! Что-то не получилось?! И что теперь?! CEO, улыбаясь до ушей, проносится мимо вас. Она перескакивает к группе, даёт ребятам пять и издаёт победный вопль.

      «Ребята, вы его добили», — произносит она.

      Ваша первая мысль: «Я никак не мог остаться прошлой ночью». Случилась предсказуемая неприятность, иногда жизнь так складывается, дети делали уроки. А вы ощущаете себя объектом шуток. В банду вы не попали, потому что не можете протянуть всю ночь. Многие из нас переживают этот ужасный кошмар. Страшно уйти с работы по старости. Индустрия посвятила молодых людей в рыцари — стюарды технологий? Естественно сомневаться в себе и думать, сможете ли вы заниматься своим делом. Руководство вознаграждает героические ночные усилия, но как насчёт продуктивного труда? Что насчёт опыта, который привносите вы? Вы хотите потягаться с молодёжью, но не за счёт своей семьи. Но как тягаться с ними, спящими в офисе?

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


      Приятного чтения!
    • 10 полезных книг: от разработчиков и для разработчиков

      • Перевод
      Чтение книг — по-прежнему прекрасный способ открыть нечто новое или научиться чему-то, особенно если вы разработчик, чтобы оставаться востребованным в изменчивой индустрии.
      В этой подборке я представлю 10 фантастических книг для разработчиков, которые написали разработчики. Здесь не будет привычных общепринятых книг, которые вы найдете в любой подборке «мастрид для программистов», в этой статье — вручную отобранные сокровища от экспертов с проверенным послужным списком.


      Приятного чтения!
      • +15
      • 18,3k
      • 9
    • Строим надёжную конкурентность с FSP и моделированием процессов

      • Перевод

      Делаем систему параллелизма надёжнее


      Сегодня посмотрим как смоделировать программу с конкурентностью на FSP. Сначала давайте разберемся, зачем вообще нужна конкурентность. Вот что можно сделать с её помощью:

      • Повысить производительность многопроцессорного железа, это и называется параллелизм;
      • Увеличить пропускную способность приложения (вызову ввода-вывода нужно блокировать только один поток);
      • Сделать приложение отзывчивее за счёт выполнения основных задач параллельно фоновым (высокоприоритетный поток для запросов пользователей);
      • Структурировать программу, повысив её эффективность (взаимодействующие со средой программы управляют несколькими действиями и обрабатывают несколько событий).


      Сгенерированная инструментом LTSA диаграмма состояний
      Приятного чтения!
    • Самые востребованные IT-профессии 2021 года

        Привет, Хабр! Мы уже долгое время следим за динамикой развития IT-профессий на мировом рынке. И сейчас решили сделать топ специальностей, которые будут особенно актуальны в 2021 году. Список составлен на основе роста зарплат на глобальном рынке, востребованности специалистов отрасли и динамики развития профессии в целом. И сразу скажем, в список вошло только 10 профессий. Это не значит, что другие профессии хуже — просто они растут чуть медленнее. Итак, поехали!


        Приятного чтения!
      • Как преобразовать аудиоданные в изображения

        • Перевод
        • Tutorial

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


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

        Сегодня, специально к старту нового потока курса по машинному обучению делюсь с вами статьей, в которой авторы, в качестве примера определяют вид птиц по их пению. Они находят в записях, сделанных в естественных условиях, фрагменты с пением птиц, и классифицируют виды. Преобразовав аудиоданные в данные изображений и применив модели компьютерного зрения, авторы этой статьи получили серебряную медаль (как лучшие 2 %) на соревновании Kaggle Cornell Birdcall Identification.


        Приятного чтения!
        • +20
        • 3,7k
        • 6
      • Искусство компонентов. Пишем карточку контакта Facebook Messenger

        • Перевод
        Вполне возможно оценить компонент и сказать, что он легко пишется на HTML и CSS. Соглашусь, это легко, когда вы работаете, только чтобы практиковаться, но в реальном проекте всё по-другому. Идеальный адаптивный компонент, который вы только что создали, быстро перестаёт работать, когда сталкивается с реальным контентом настоящего проекта. Почему? Потому, что, пока вы рассуждаете о разработке компонента, вы можете упустить крайние случаи. Сегодня, специально к старту нового потока нашего курса по веб-разработке, поделюсь переводом статьи, в которой показан простой на первый взгляд компонент, за которым стоит огромная работа. Ради реалистичности это будет пример прямо из Facebook Messenger.


        Приятного чтения!
        • +21
        • 4,5k
        • 7
      • 12 платформ соревнований по Data Science и искусственному интеллекту для развития ваших навыков в 2021 году

        • Перевод
        Data Science требует использования статистических методов и алгоритмов машинного обучения для работы с большим объёмом данных, и для того чтобы делать это эффективно, вам потребуется много практики. Отличная возможность попрактиковаться — соревнования по Data Science. Они служат платформой для изучения лучших практик, получения отзывов и повышения квалификации. Это также отличный способ расширить возможности творить и границы в области науки о данных. Я делал подобный список и в прошлом году, поэтому подумал, что это будет хорошее время, чтобы обновить его на 2021 год.


        Приятного чтения!
        • +27
        • 4,4k
        • 1
      • Как обучать огромные модели машинного обучения на случайных GPU

        • Перевод
        Вы можете спросить: почему эти полумагические модели машинного обучения работают так хорошо? Короткий ответ: эти модели чрезвычайно сложны и обучаются на огромном количестве данных. На самом деле, Lambda Labs недавно подсчитала, что для обучения GPT-3 на одном GPU потребовалось бы 4,6 миллиона долларов — если бы такое было возможно.

        Такие платформы, как PyTorch и Tensorflow, могут обучать эти огромные модели, потому что распределяют рабочую нагрузку по сотням (или тысячам) GPU одновременно. К сожалению, этим платформам требуется идентичность графических процессоров (они должны иметь одинаковую память и вычислительную производительность). Но многие организации не имеют тысячи одинаковых GPU. Малые и средние организации покупают разные компьютерные системы, что приводит к неоднородной инфраструктуре, которую нелегко адаптировать для вычисления больших моделей. В этих условиях обучение моделей даже среднего размера может занимать недели или даже месяцы. Если не принять меры, университеты и другие небольшие организации рискуют потерять конкурентоспособность в погоне за разработкой новых, лучших моделей машинного обучения. Но это можно исправить.

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


        Приятного чтения!

      Самое читаемое