Search
Write a publication
Pull to refresh
3
1.3
kalbas @kalbas

User

Send message

Классические задачи Computer Science на языке Python. Обзор книги

Reading time7 min
Views13K
Привет, Хабр!

Одной из самых интересных наших книг по Python в течение уходящего года оставались "Классические задачи Computer Science на языке Python" от Дэвида Копеца.



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

Помощник в проведении технического интервью и совместный кодинг

Reading time2 min
Views5.9K


UPD: обновил превью на новую. meet2code.com

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

Чат в одном месте, созвон в другом, кодинг в третьем. «Что-то не работает этот сервис, а расшарь-ка экран. Код решения отвалился, ну напиши снова…» И без того стрессовая ситуация для кандидата превращается в неприятную карусель.

И по такому же сценарию выстроена структура интервью — чаще хаос, перескакивания с темы на тему.

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

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

Назвал его Meet2Code.
Читать дальше →

Напишем и поймем Decision Tree на Python с нуля! Часть 1. Краткий обзор

Reading time8 min
Views20K
Привет, Хабр! Представляю вашему вниманию перевод статьи "Pythonで0からディシジョンツリーを作って理解する (1. 概要編)".

1.1 Что такое Decision Tree?


1.1.1 Пример Decision Tree


Например, у нас есть следующий набор данных (дата сет): погода, температура, влажность, ветер, игра в гольф. В зависимости от погоды и остального, мы ходили (〇) или не ходили (×) играть в гольф. Предположим, что у нас есть 14 сложившихся вариантов.



Из этих данных мы можем составить структуру данных, показывающую, в каких случаях мы шли на гольф. Такая структура из-за своей ветвистой формы называется Decision Tree.



Например, если посмотреть на Decision Tree, изображенный на картинке выше, мы поймем, что сначала проверяли погоду. Если было ясно, мы проверяли влажность: если она высокая, то не шли играть в гольф, если низкая — шли. А если погода была облачная, то шли играть в гольф вне зависимости от других условий.
Читать дальше →

Взять, разобраться и настроить свой домашний кинотеатр: 10 экспертных обзоров и руководств

Reading time3 min
Views9.7K

Ранее мы обсудили выбор между смарт-тв и классическим телевизором, плюс — затронули тему акустической подготовки помещения. Продолжаем анализировать компоненты домашнего кинотеатра — говорим о настройке картинки телевизора, 4k-проекторах, экранах для них, точечно затрагиваем тему саундбаров и делимся выпусками подкаста о строительстве кинозала.

Читать далее

Как трекать людей в масках или универсальный подход к трекингу объектов произвольной природы

Reading time5 min
Views10K

Введение


С тех пор, как нейронные сети начали набирать популярность, большинство инженеров стали решать многие из задач ПО в области Public Safety методами deep learning. Несмотря на то что у нейросетей нет конкурентов в вопросах обнаружения (detection) и распознавания (identification) объектов, всё же они не могут похвастаться способностью анализировать и рассуждать, а лишь создают закономерности, которые не всегда можно понять или интерпретировать.


Мы придерживаемся такого мнения: для трекинга нескольких объектов более эффективными будут интерпретируемые и предсказуемые подходы, такие как, например, метод вероятностной ассоциации данных (probabilistic data association approach).


О точности трекинга и преимуществах выбранного нами подхода наглядно (подробнее в посте):


people in masks tracking with Re3 trackerpeople in masks tracking with AcurusTrack



Сравнение популярного трекера Re3 (слева) и нашего компонента AcurusTrack (справа)


Дисклеймер: этот пост не претендует на почетный статус “средства от всех бед в Public Safety Software”. Мы также не заявляем, что изобрели что-либо новое. Мы лишь приводим примеры некоторых популярных подходов к решению задачи мультитрекинга, анализируем их и предлагаем собственную практическую реализацию.


Целиком проект лежит на GitHub.

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

Книга «BPF для мониторинга Linux»

Reading time15 min
Views8.2K
imageПривет, Хаброжители! Виртуальная машина BPF — один из важнейших компонентов ядра Linux. Её грамотное применение позволит системным инженерам находить сбои и решать даже самые сложные проблемы. Вы научитесь создавать программы, отслеживающие и модифицирующие поведение ядра, сможете безопасно внедрять код для наблюдения событий в ядре и многое другое. Дэвид Калавера и Лоренцо Фонтана помогут вам раскрыть возможности BPF. Расширьте свои знания об оптимизации производительности, сетях, безопасности. — Используйте BPF для отслеживания и модификации поведения ядра Linux. — Внедряйте код для безопасного мониторинга событий в ядре — без необходимости перекомпилировать ядро или перезагружать систему. — Пользуйтесь удобными примерами кода на C, Go или Python. — Управляйте ситуацией, владея жизненным циклом программы BPF.

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

Apache Airflow: делаем ETL проще

Reading time25 min
Views189K

Привет, я Дмитрий Логвиненко — Data Engineer отдела аналитики группы компаний «Везёт».


Я расскажу вам о замечательном инструменте для разработки ETL-процессов — Apache Airflow. Но Airflow настолько универсален и многогранен, что вам стоит присмотреться к нему даже если вы не занимаетесь потоками данных, а имеете потребность периодически запускать какие-либо процессы и следить за их выполнением.


И да, я буду не только рассказывать, но и показывать: в программе много кода, скриншотов и рекомендаций.



Что обычно видишь, когда гуглишь слово Airflow / Wikimedia Commons

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

Если вы используете моки, то вы хоть что-то тестируете?

Reading time6 min
Views17K

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

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

Вы останавливаетесь и задумываетесь: «Допустимо ли менять сигнатуры кода ради тестирования? Тестирую ли я реальный код или совершенно другой класс, в котором не происходит то, что нужно?» Перед вами может возникнуть дилемма. Вы уверены, что стоит и дальше придерживаться этого подхода? Или это потеря времени?

Вопрос на миллион: для устаревшего кода нужно писать модульные тесты или интеграционные?
Читать дальше →

Об оценках сроков в разработке ПО

Reading time8 min
Views44K
В течение всей истории разработки ПО мы искали надежные способы оценки времени на реализацию задач и проектов. Но и спустя более чем 60 лет существования отрасли наши прогнозы все еще оставляют желать лучшего. Может быть, дело не в том, как именно мы пытаемся оценивать, а в том, что мы вообще опираемся на оценки?

К примеру, возьмите методологию Scrum, по которой сегодня работают многие компании. Центральная идея Scrum — брать в спринт не больше задач, чем ваша команда способна за это время выполнить. На первый взгляд, звучит разумно. К сожалению, слишком часто на практике этот подход приводит к замедлению работы команды в обмен на иллюзию планирования. Позвольте объяснить, почему.
Читать дальше →

Я есть root. Разбираемся в повышении привилегий ОS Linux

Reading time9 min
Views69K

Первый квартал 2020 года я провел за подготовкой к экзамену OSCP. Поиск информации в Google и множество «слепых» попыток отнимали у меня все свободное время. Особенно непросто оказалось разобраться в механизмах повышения привилегий. Курс PWK уделяет этой теме большое внимание, однако методических материалов всегда недостаточно. В Интернете есть куча мануалов с полезными командами, но я не сторонник слепого следования рекомендациям без понимания, к чему это приведет.


Мне хочется поделиться с вами тем, что удалось узнать за время подготовки и успешной сдачи экзамена (включая периодические набеги на Hack The Box). Я испытывал сильнейшее ощущение благодарности к каждой крупице информации, которая помогала мне пройти путь Try Harder более осознанно, сейчас мое время отдать должное комьюнити.


Я хочу дать вам мануал по повышению привилегий в OS Linux, включающий в себя разбор наиболее частых векторов и смежных фишек, которые вам обязательно пригодятся. Зачастую сами механизмы повышения привилегий достаточно несложные, трудности возникают при структурировании и анализе информации. Поэтому я решил начать с «обзорной экскурсии» и далее рассматривать каждый вектор в отдельной статье. Надеюсь, я сэкономлю вам время на изучение темы.


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

Radarr, Jackett и бот в телеге. Качаем торренты по-новому

Reading time5 min
Views93K
image

В итоге, конечно, стриминг таки добьёт торренты. И если в 720/1080p мире это, по сути, уже свершилось, то Blue-ray/4k/8k контент пока ещё держится за счёт торрентов (у нас и в Европе) и юзнетов (штаты).

Сегодня стриминг выигрывает, в основном, за счёт удобства. Открыл апп, зашёл в раздел «новинки» и выбирай на любой вкус. Я прокачал свой процесс с торрентами, и теперь он смотрится, как минимум, не хуже.
Читать дальше →

7 бесплатных курсов для специалистов по работе с данными (DS и DE)

Reading time3 min
Views34K
La finale! Именно этим французским выражением можно назвать эту статью. Ведь она последняя уже во второй серии подборок бесплатных курсов от Microsoft. И сегодня у нас курсы для специалистов по анализу данных и инженеров данных. Присоединяйтесь!

Кстати!

  • Все курсы бесплатные (вы даже сможете попробовать платные продукты бесплатно);
  • 6/7 на русском языке;
  • Начать обучение можно мгновенно;
  • По окончании вы получите бейдж об успешном прохождении обучения.

Присоединяйтесь, подробности под катом!

Следующая серия статей


Эта серия статей, начало 2020 года


Более ранняя серия статей, 2019 год


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

На Moscow Python Conf++ приходите поговорить с разработчиками языка

Reading time9 min
Views3.5K
Мы строили-строили, и наконец построили: расписание Moscow Python Conf++ собрано, проверено, перепроверено и опубликовано. Не то чтобы работа Программного комитета на этом заканчивалась (за два-то месяца до конференции, ну-ну), но 10 месяцев явно потрачено не зря, и я с нетерпением жду результата, заложив все возможное для общения разработчиков друг с другом.

Сейчас расскажу, какой получилась программа конференции, и выбора у нас просто не останется. На площадке в центре Москвы будет: 3 потока докладов, поток воркшопов и митапов, 4 Core-разработчика (я до сих пор не знаю, считать ли Python Core-разработчиком заведующего разработкой Pytest и Hypothesis), 6 зарубежных спикеров с нетривиальным опытом, доклады от Microsoft, Wargaming, JetBrains, Parallels, EPAM, Booking.com, Tinkoff и других не менее интересных компаний. Ни одной проходной темы, я проверил. Каждый докладчик по-своему интересен, и каждая тема точно найдет тех, кому есть что обсудить со спикером. В этой статье я максимально кратко расскажу обо всех наших гостях: акцент на спикерах, по темам вы и сами сориентируетесь.


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

Сказ о том, как я автоматизировал квартиру с помощью Node-RED. Часть I

Reading time10 min
Views57K
За прошлый год я собрал и настроил автоматизацию для небольшой квартиры около оживленной дороги. В этой статье я расскажу об использованных решениях в климатической системе, освещении, мультимедиа и в программном обеспечении.


Трудно быть Колей, или практики обмена знаниями в Lamoda

Reading time13 min
Views7K

Всем привет! Меня зовут Александр Афенов, я тимлид команды Order Processing в компании Lamoda. Сегодня я хочу вам рассказать о практиках обмена знаниями: какие проблемы эти практики решают, как мы к ним пришли, и как они влияют на жизнь разработчика.


image

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

Имитируем сетевые проблемы в Linux

Reading time15 min
Views36K
Всем привет, меня зовут Саша, я руковожу тестированием бэкенда. У нас, как и у многих, реализована сервис-ориентированная архитектура. С одной стороны, это упрощает работу, т.к. каждый сервис проще тестировать по отдельности, но с другой — появляется необходимость тестировать взаимодействие сервисов между собой, которое часто происходит по сети.

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


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

Конференция DEFCON 17. Мои неудачи. Часть 1

Reading time13 min
Views7.1K
Как поживаете, парни? Я только что прочитал чей-то твит про то, что люди, которые тратят полдня на конференцию Defcon, просто идиоты. Итак, я собирался начать с того, что много работал над неудачами, но понимаю, что сейчас буду говорить об этом с людьми, которые понимают в неудачах намного больше меня.



Я совершенно уверен, что ваше хобби – это создавать и исследовать неудачи систем. Я открою вам секрет – именно неудачи сделали меня тем, кем я сегодня являюсь. Я хочу поговорить немного о том, как это работает. Когда мне было 10 лет, я увлекся фокусами, и дошел до того, что устроил своему пятому классу целое магическое шоу, заслужив аплодисменты 300 учеников. Это было феноменально, успех настолько воодушевил меня, что в следующем году я решил устроить потрясающее представление и взял себе помощника. Кажется, его звали Дэвид Сакс, и он был моим добровольцем на сцене. Я сковал его руки за спиной наручниками, чтобы он продемонстрировал, что не сможет сам освободиться, а затем я бы проделал то же самое с собой, доказав всем, что могу это сделать. Но Дэвид сам сумел снять наручники! Это погубило всё мое выступление, потому что я был не готов к такому повороту событий.

Конференция DEFCON 17. Мои неудачи. Часть 2

Reading time13 min
Views6.4K
Конференция DEFCON 17. Мои неудачи. Часть 1

Вопрос: можете сказать нам о легенде, которую никогда не станете развенчивать?

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



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

Вопрос: вы можете рассказать про самый грандиозный провал «Разрушителей легенд»?

Debian + Postfix + Dovecot + Multidomain + SSL + IPv6 + OpenVPN + Multi-interfaces + SpamAssassin-learn + Bind

Reading time28 min
Views30K
Данная статья о том как настроить современный почтовый сервер.
Postfix + Dovecot. SPF + DKIM + rDNS. С IPv6.
С шифрованием TLS. С поддержкой нескольких доменов — часть с настоящим SSL сертификатом.
С антиспам-защитой и высоким антиспам-рейтингом у других почтовых серверов.
С поддержкой нескольких физических интерфейсов.
С OpenVPN, подключение к которому через IPv4, и которое даёт IPv6.

Если вы не хотите изучать эти все технологии, но хотите настроить такой сервер — тогда эта статья для вас.

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

Уход инженера-электронщика из Apple вызвал волнение среди биржевых спекулянтов. Как стать таким как он?

Reading time5 min
Views53K
29 марта инженер по имени Жерард Вильямс Третий ушел из компании Apple. Это известие сразу опубликовал CNET и еще три десятка изданий во всем мире, не только технических, но и финансовых. Что же такого делал этот инженер, что его уход вызвал волнение среди биржевых спекулянтов? Он 9 лет проектировал процессоры в Apple iPhone, до этого 12 лет работал в ARM, до этого проектировал DSP в Texas Instruments, а до этого разрабатывал в Интеле схемы на ПЛИС. Во всех местах он использовал технологию проектирования на уровне регистровых передач, с использованием языков описания аппаратуры Verilog и VHDL.

Примеры поближе к России? На фото справа: 25-летний москвич Илья Неганов взял в 2011 году книжку Харрис & Харрис (последнюю версию которой можно скачать здесь или здесь), спроектировал простой процессор, сейчас работает в Apple, проектирует на верилоге GPU, по выходным летает на самолетике. Ниже пара молодоженов из Санкт-Петербурга, которые проектировали на верилоге и ПЛИС обработку изображений из камеры и получили приз на конкурсе Innovate FPGA. Они провели медовый месяц в штаб-квартире Интела в Санта-Кларе. Далее товарищи из Киева, двое из которые выиграли бронзу на европейском финале Innovate FPGA. И наконец два школьника, из 5 и 9 классов, которые делают свои первые упражнения с микросхемами малой степени интеграции на макетной плате, после чего приступают к упражнениям на верилоге и ПЛИС.

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


Information

Rating
2,759-th
Location
Белгород, Белгородская обл., Россия
Registered
Activity