Pull to refresh
0
0
Send message

Красивые визуализации GitHub с помощью PyGraphistry

Reading time 7 min
Views 8.1K

В чёрную пятницу, пока у нас стартует флагманский курс Data Science, делимся интерактивными графами подписок веб-разработчиков и разработчиков моделей ML, а также знакомим читателей с инструментом визуализации больших графов — PyGraphistry.

Такие данные — косвенный индикатор конкуренции языков и технологий. К примеру, можно попробовать выяснить, сколько разработчиков C++ следят за разработчиками Rust и наоборот. За подробностями и кодом приглашаем под кат.

Читать далее
Total votes 10: ↑9 and ↓1 +8
Comments 1

Практические рекомендации по работе с Docker для Python-разработчиков

Reading time 28 min
Views 93K

Прим. Wunder Fund: в этой длииинной статье вы найдете ряд полезных советов по работе с Docker, как общего характера, так и Python-специфичных. Хоть мы и давно используем Docker в работе, про некоторые советы мы подумали "а что, так можно было?". Советуем вначале пролистать статью, и отметить штуки, которые покажутся актуальными для вашей текущей ситуации.

Читать далее
Total votes 67: ↑66 and ↓1 +65
Comments 8

Веб-сервер на старом смартфоне Android

Reading time 6 min
Views 63K


Бывает такое, что смартфон становится ненужным — например, на нём разбивается экран или он просто старенький, тормозит даже браузер. Что делать с таким гаджетом, не выбрасывать же его? В самом деле, американцы летали на Луну с компьютерами, у которых характеристики много хуже, чем в вашем старом смартфоне. Скорее всего, в нём 4−8 процессорных ядер, 2−4 гигабайта оперативной памяти, блок бесперебойного питания с аккумулятором. Не слабее, чем некоторые компьютеры.

Попробуем найти этому смартфону полезное применение.
Читать дальше →
Total votes 54: ↑52 and ↓2 +50
Comments 91

Автоматизация тестирования микросервисов: плюсы и минусы тестов на Go

Reading time 9 min
Views 15K

Микросервисы можно тестировать по-разному. У каждого подхода есть свои плюсы и минусы, поэтому, чтобы выбрать свой путь и избежать на нём «граблей», лучше всего учиться на чужом опыте. А ещё лучше — на конкретных примерах.

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

Видео моего выступления на конференции Golang Live 2020 можно посмотреть здесь.

Читать далее
Total votes 33: ↑30 and ↓3 +27
Comments 2

Как повысить безопасность Docker-контейнеров

Reading time 7 min
Views 13K

Контейнеры Docker уже довольно давно стали неотъемлемой частью инструментария разработчика, позволяя собирать, распространять и развертывать приложения стандартизированным способом.

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

Читать далее
Total votes 19: ↑18 and ↓1 +17
Comments 4

Перехватываем цифровые радиопереговоры, или куда едут экипажи в 5 утра

Reading time 9 min
Views 101K

Шел апрель 2020 года, ковидная пандемия набирала обороты. Местные власти объявили "карантин", и от скуки сидения дома в один из дней мне пришла в голову мысль разобрать завалы хлама в старой квартире. В одной из коробок мне попался ноунеймовый USB DVB-тюнер на чипе RTL2832U с Алиэкспресса, и тут я призадумался. Вспомнилось, что много-много лет назад я игрался с ним и в эфире можно было услышать много интересного. "А почему бы не поиграться еще раз?" — возникла в голове мысль, которая и положила начало этой истории.

Читать далее
Total votes 146: ↑144 and ↓2 +142
Comments 77

Битва снифферов: Charles vs Proxyman

Reading time 7 min
Views 28K

Привет, меня зовут Даша, я работаю тестировщицей клиентского мобильного приложения в компании Ozon.

Сегодня поговорим о снифферах в тестировании мобильных приложений –– программах для перехвата, анализа и модификации трафика. Пожалуй, самый популярный сниффер из тех, о которых мне доводилось слышать — Charles. Про него уже не раз писали на Хабре, есть довольно детальные разборы. Но не Charles-ом единым! 

Читать далее
Total votes 40: ↑35 and ↓5 +30
Comments 26

Подгонялка соотношения белков, жиров и углеводов

Reading time 10 min
Views 15K

В один прекрасный день я сидел и прикидывал в голове, сколько и чего надо съесть, чтобы получилось 30 гр. белка, 25 гр. жиров и 60 гр. углеводов. Из продуктов у меня были: гречка, яйца и авокадо.

Json (БЖУ указанно на 100 гр. сырого продукта):

{"Гречка": {"Белки": 11.7, "Жиры": 2.7, "Углеводы": 75}, "Яйца": {"Белки": 12.7, "Жиры": 11.5, "Углеводы": 0.7}, "Авокадо": {"Белки": 2, "Жиры": 15, "Углеводы": 9}}

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

Читать далее
Total votes 8: ↑7 and ↓1 +6
Comments 18

Как сравнить два PDF-документа

Reading time 4 min
Views 22K

Существует несколько фундаментальных задач, которые встречаются при работе с большинством, а то и со всеми документами. Одна из них — сравнить две версии одного и того же документа. Это могут быть юридические соглашения или исправления в отчёте, которые, скорее всего, в наши дни будут представлены в формате PDF. В этой статье рассказывается, как можно сравнить содержимое двух файлов PDF или почему у вас не получится этого сделать.
Читать дальше →
Total votes 36: ↑34 and ↓2 +32
Comments 28

Приёмы ускорения кода на JS и других языках: подборка от разработчика поиска Яндекса

Reading time 17 min
Views 66K
Привет! Меня зовут Виктор Хомяков, в Яндексе я работаю над скоростью страниц поиска. Однажды мне в голову пришла идея обобщить свой опыт и систематизировать приёмы ускорения работы кода на JavaScript. То, что получилось в итоге, собрано в этом материале.

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


Читать дальше →
Total votes 80: ↑80 and ↓0 +80
Comments 51

Микросервисы vs. Монолит

Reading time 20 min
Views 63K
В начале ноября на ютуб-канале Яндекс.Практикума прошли дебаты «Микросервисы, Монолит и Зомби». Ведущие дебатов — наставник курса «Мидл Python-разработчик» Руслан Юлдашев и техлид курса Савва Демиденко — разобрали архитектуры двух систем, прошлись по реальным задачам и ошибкам из своей рабочей практики и по очереди защищали свои позиции.

Обсуждение растянулось на 100 минут, поэтому мы публикуем сокращённую текстовую расшифровку.



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

Вы узнаете, как врачи регионов России не получали зарплату из-за микросервисов и сколько монолитов можно запустить, пока согласовывается интерфейс между сервисами.
Читать дальше →
Total votes 10: ↑7 and ↓3 +4
Comments 29

Быстрое и точное обнаружение аномалий по копулам (COPOD)

Reading time 6 min
Views 6.8K

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

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

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

Обнаружение выбросов на основе копул (COPOD) – это новый алгоритм обнаружения аномалий. В Python он реализован в пакете PyOD.

У этого алгоритма есть несколько ключевых функций, которые выделяют его среди конкурирующих алгоритмов:

Читать далее
Total votes 11: ↑11 and ↓0 +11
Comments 0

Над чем задуматься перед тем, как брать ML-задачу в работу

Reading time 7 min
Views 4K

В Контуре мы решаем самые разные задачи с помощью машинного обучения: распознаем документы и ищем подделки паспортов, анализируем банковские транзакции, предсказываем вероятность банкротства компаний, классифицируем товары, автоматически отвечаем на вопросы в чате, развиваем собственный speech-to-text… и еще десятки проектов, которые привносят в продукты новые фичи или помогают оптимизировать процессы.

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

В этой статье я приведу ответы на вопросы, над которыми стоит задуматься в самом начале, если вдруг вам пришла в голову идея "прикрутить к проекту ML-фичу" (добавить ложечку Data Science / AI / другие модные названия).

Читать далее
Total votes 11: ↑10 and ↓1 +9
Comments 2

Шпаргалка по метрикам производительности cURL: как измерить задержку сервера

Reading time 8 min
Views 21K


Эту шпаргалку я написал в первую очередь, потому что был несколько озадачен, когда в течение более, чем 10 минут пытался найти в Google значение time_pretransfer. Попробуйте сами, я подожду. Это настоящая загадка!
Читать дальше →
Total votes 56: ↑55 and ↓1 +54
Comments 5

Начало работы с MongoDB и Redis на Rust

Reading time 13 min
Views 11K

В этой статье будет показано как создать Rust бэкэнд, который использует MongoDB, документо-ориентированную БД, для хранения данных и Redis для кэширования, ограничения количества HTTP запросов и нотификаций пользователя. Для большей наглядности созданное приложение также будет предоставлять REST API. В итоге будет получена следующая архитектура:


architecture


MongoDB является хранилищем, в то время как Redis используется для следующего:


Читать дальше →
Total votes 12: ↑12 and ↓0 +12
Comments 13

Лучшие практики написания комментариев к коду

Reading time 7 min
Views 12K

Известный профессор МТИ Гарольд Абельсон сказал: «Программы нужно писать для того, чтобы их читали люди, и лишь случайно — чтобы их исполняли машины». Хотя он намеренно преуменьшил важность исполнения кода, однако подчёркивает, что у программ две важные аудитории. Компиляторы и интерпретаторы игнорируют комментарии и с одинаковой лёгкостью воспринимают все синтаксически корректные программы. У людей всё иначе. Одни программы нам воспринимать легче, чем другие, и мы ищем комментарии, которые помогут нам разобраться.

Есть множество источников информации, помогающих программистам писать более качественный код — книги, сайты, статические анализаторы. Но гораздо меньше источников посвящено повышению качества комментариев. Легко измерить их количество в программе, но качество оценить сложно, и два этих параметра не обязательно взаимосвязаны. Плохой комментарий хуже отсутствия комментария. Вот несколько правил, которые помогут вам найти золотую середину.
Читать дальше →
Total votes 34: ↑31 and ↓3 +28
Comments 6

Стратегия тестирования REST API: что именно вам нужно тестировать?

Reading time 8 min
Views 197K

Слой API любого приложения - один из важнейших программных компонентов системы. Это канал, который соединяет клиента с сервером (или один микросервис с другим), управляет бизнес-процессами и представляет сервисы, которые  приносят пользу пользователям. 

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

Становится понятно, что важность тестирования API очевидна. Некоторые методологии и ресурсы помогают нам узнать КАК тестировать API - вы можете использовать ручное тестирование, автоматическое тестирование, тестовые среды, инструменты, библиотеки и фреймворки. Однако, независимо от того, чем вы будете пользоваться - Postman, supertest, pytest, JMeter, mocha, Jasmine, RestAssured или любыми другими инструментами - прежде чем открывать любой инструмент тестирования, вам необходимо определить, что тестировать...

Читать далее
Total votes 8: ↑8 and ↓0 +8
Comments 8

Использование Let's Encrypt для внутренних серверов

Reading time 8 min
Views 41K

Let's Encrypt — это центр сертификации, который предоставляет бесплатные сертификаты в полностью автоматизированном процессе. Эти сертификаты выдаются по протоколу ACME. За последние два года в Интернете широко использовалась технология Let’s Encrypt — более 50% веб-сертификатов SSL / TLS теперь выдает Let’s Encrypt.


В этом посте описывается, как выдавать сертификаты Let's Encrypt для внутренних серверов.

Читать дальше →
Total votes 14: ↑14 and ↓0 +14
Comments 18

Теория графов. Термины и определения в картинках

Reading time 5 min
Views 159K

В этой статье мы познакомимся с основными терминами и определениями Теории графов. Каждый термин схематично показан на картинках.

Граф - это топологичекая модель, которая состоит из множества вершин и множества соединяющих их рёбер. При этом значение имеет только сам факт, какая вершина с какой соединена.

Теория графов
Total votes 20: ↑18 and ↓2 +16
Comments 8

Information

Rating
Does not participate
Location
Украина
Registered
Activity