Pull to refresh
0
0
Send message

Разбираемся с параллельными и конкурентными вычислениями в Python

Reading time21 min
Views55K

Я собираюсь рассказать историю о еде, раскрывающую различные возможности конкурентного и параллельного выполнения кода в Python.

Прим. Wunder Fund: для задач, где не критичны экстремально низкие задержки — при сохранении и обработке биржевых данных, мы используем Питон, и естественно применяем описанные в статье подходы. Статья будет полезна начинающим разработчикам.

Мы увидим, что когда один человек одновременно делает несколько дел — это похоже на конкурентность, а когда несколько человек, работая бок о бок, заняты каждый собственным делом — это напоминает параллелизм. Эти ситуации мы разберём на простом и понятном примере закусочных, в которые люди заходят в обеденный перерыв. Такие заведения стремятся обслуживать клиентов как можно быстрее и эффективнее. Потом я покажу реализацию механизмов этих закусочных на Python, а в итоге мы сравним разные возможности одновременного «приготовления нескольких блюд», которые даёт нам этот язык, и разберёмся с тем, в каких ситуациях их применение наиболее оправдано.

А именно, я раскрою здесь следующие вопросы:

▪ Отличия конкурентности от параллелизма.
▪ Различные варианты организации конкурентного выполнения кода (многопоточность, модуль asyncio, модуль multiprocessing, облачные функции) и их сравнение.
▪ Сильные и слабые стороны каждого подхода к организации конкурентного выполнения кода.
▪ Выбор конкретного варианта организации конкурентного выполнения кода с использованием специальной блок-схемы.

Читать далее
Total votes 18: ↑17 and ↓1+23
Comments6

Как понять ROC-кривые с помощью Python

Reading time4 min
Views25K

Если вы погуглите ROC curve machine learning, то Википедия выдаст вам такой ответ: Кривая рабочих характеристик приёмника, или ROC-кривая, представляет собой график функции, который иллюстрирует диагностические возможности системы двоичного классификатора при изменении её порога распознавания.

Ещё одно частое описание ROC-кривой: ROC-кривая отражает чувствительность модели к разным порогам классификации. Новичков эти определения могут сбить с толку. Попробуем разобраться и развить представление о ROC-кривых.

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

Как сэкономить на покупке ноутбука: Docker Remote API via TLS

Reading time6 min
Views26K
Совсем недавно я решился на покупку личного ноутбука. Разработка open-source проекта (приложение для Flipper) и смена места работы вынудили меня больше не использовать рабочий ноутбук для личных целей. И тут уже жалко было отдавать стоимость поддержанной Hyndai Solaris за ноутбук (на работе у меня топовая конфигурация 16" MacBook).



Поэтому решено было поумерить свой пыл и взять нищебродский самый дешевый MacBook Air 13" за 80 тысяч рублей. Однако, на mac Docker сжирает непомерное количество ресурсов, поэтому после покупки пришлось думать как же решить эту проблему. Сразу же пришла идея вынести Docker Engine куда-нибудь в онлайн. Сказано — сделано.
Читать дальше →
Total votes 41: ↑34 and ↓7+45
Comments37

Нейтронная звезда в пробирке. Сонолюминесценция

Reading time14 min
Views51K
Хомяки приветствуют вас, друзья.

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



Всё началось с того, что одним прекрасным днем просиживая задницу в просторах ютуба, я нашёл ролик на канале Сергея Матюшенко про интересное явление в основе которого лежит свечение пузырька за счет акустического воздействия. Пересмотрев видео несколько раз, понял что повторить подобное явление как раз плюнуть. Через неделю на моем столе лежали все необходимые детали для сборки действующей установки.
Читать дальше →
Total votes 174: ↑172 and ↓2+222
Comments103

HP Network Simulator доступен для публичного использования!

Reading time12 min
Views44K
image
Хорошие новости!

Не так давно (в апреле этого года) мы выпустили новую версию симулятора сетевого оборудования HP, доступную для использования всеми желающими!

Ранее данный продукт был известен в недрах HP как HP Simware, и предназначался только для внутреннего пользования. Чуть позже была выпущена версия для наших партнеров, а теперь он доступен для широкой публики под новым именем – HP Network Simulator.

Продукт основан на новой сетевой операционной системе HP Comware v7 и предназначен для сетевого моделирования и изучения пользовательского интерфейса и функциональных возможностей ОС HP Comware.

В этой статье я в деталях расскажу о принципах работы симулятора и покажу, как можно использовать данный инструмент в работе сетевого инженера на конкретных примерах.
Читать дальше →
Total votes 27: ↑23 and ↓4+19
Comments6

День рождения Ади Шамира. Визуальная, геометрическая и нейрокриптография

Reading time2 min
Views40K
Шамир — это S в RSA


Вот такой он забавный, с акцентом, уже 62-х летний «патриарх израильской криптографии»

Что здесь зашифровано?


Под катом некоторые достижения именинника
Читать дальше →
Total votes 56: ↑55 and ↓1+54
Comments26

Опыт проверок Роскомнадзором операторов персональных данных за последний год

Reading time5 min
Views16K
Указанное в заголовке ведомство в последнее время все чаще фигурирует на хабре в новостях, связанных какими-нибудь очередными черными списками и смешными блокировками, но в этой статье я хотел бы вспомнить об одной из не менее важных функций Роскомнадзора – надзор за выполнением законодательства в сфере защиты персональных данных.

Так получилось, что в 2013-2014 годах в планы проверок Роскомнадзора попало немало наших клиентов, но мы особо этого не боялись, потому что проверки у наших клиентов проходили и ранее, опыт есть и весьма позитивный. Мы знали, что у новых клиентов тоже все приведено в порядок и ждали очередной проверки только чтобы поставить новую галочку в разделе портфолио «Успешно проведенные проверки регуляторов». Но эта статья не появилась бы на свет, если бы все соответствовало нашим оптимистичным ожиданиям…

Читать дальше →
Total votes 44: ↑41 and ↓3+38
Comments16

Снова о защите персональных данных или готовимся к проверке Роскомнадзора

Reading time11 min
Views184K

Вступление



Всем доброго времени суток! В этой статье я хотел бы еще раз поднять тему защиты персональных данных (далее будем обзывать их — ПДн), а также тему защиты от регуляторов. Пик дебатов на тему защиты ПДн давно прошел. Приходились эти пики как правило на приближение очередного «самого последнего срока» ввода 152-ФЗ в полную силу. В итоге «самый последний срок» наступил, активные дебаты стихли, но закон «О персональных данных» живет, регуляторы устраивают проверки и наказывают нарушителей. Поэтому тема будет еще долго актуальна.

Сразу оговорюсь, что в этой статье в основном будет информация организационного характера, нежели техническая. «А зачем такая информация нужна нам?» — спросит читатель хабра. Объясняю: так уж получилось, что начальники как крупных, так и не очень организаций не любят выстраивать длинные логические цепочки и вникать в суть вопроса, который лежит далеко от их компетенции. Поэтому при возникновении необходимости обеспечения защиты персональных данных строится вполне логичная по их мнению взаимосвязь: «Защита персональных данных» -> «Защита информации» -> «Информационные технологии» -> «Взвалить вопрос защиты ПДн на IT-шников». И пофигу, что в этом вопросе львиную долю можно поручить юристам и кадровикам, но как говорится в бородатом анекдоте: «кому не нравится грузить люминь, пойдет грузить чугуний».

image
Типичный пример разглашения ПДн специальной категории (сведения об интимной жизни)

Читать дальше →
Total votes 65: ↑59 and ↓6+53
Comments39

Уязвимость в BMC-контроллере Supermicro позволяет получить доступ к паролям управляющего интерфейса

Reading time1 min
Views31K
image
В BMC (Baseboard Management Сontroller) чипе, используемом в материнских платах Supermicro, выявлена уязвимость, позволяющая злоумышленнику получить доступ к паролям входа в управляющий интерфейс. Проблема вызвана тем, что содержимое файла с паролями выводится среди бинарного блока данных, который можно получить без аутентификации через сетевой порт 49152. Техника эксплуатации очень проста, достаточно подключиться к порту 49152 и выполнить команду «GET /PSBlock». Пароли выдаются в открытом виде, без хэширования.

Выявившие уязвимость исследователи безопасности предупреждают, что им удалось обнаружить в сети 31964 серверов, подверженных данной проблеме, при этом на 3296 (10%) из этих систем применялись пароли, заданные по умолчанию. Предоставляемый BMC-контроллером IPMI-интерфейс предоставляет средства для мониторинга и управления оборудованием, в том числе позволяет отслеживать состояние датчиков, управлять питанием, прошивками и дисками, удалённо загрузить на сервере собственную ОС по сети, организовать работу консоли удалённого доступа для атаки на базовую ОС и изменения настроек BIOS.

Проверить свой сервер можно банально подключившись к уязвимому порту с помощью telnet:
telnet ip_ipmi 49152

далее
GET /PSBlock

если Вы в тексте ответа увидели свои пароли, то Вам стоит задуматься об обновлении прошивок.

Источник...

upd:
Скачать обновления прошивки, можно по ссылке.
Total votes 29: ↑29 and ↓0+29
Comments31

Как IPv6 помогает роутеры ломать

Reading time5 min
Views123K
image

Предисловие


Проснулся я сегодня с мыслью, что огромное количество инструкций по настройке NAT советуют использовать строку вида:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Многие понимают проблемы этой конструкции, и советуют добавлять:
iptables -A FORWARD -i ppp0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

Но, зачастую, забывают задать таблице FORWARD действие DROP по умолчанию, или добавить правило REJECT в конец таблицы.
На первый взгляд, вроде бы, все кажется нормальным. Однако, это далеко не так. Дело в том, что если не запретить маршрутизировать трафик из WAN-порта в WAN-порт, кто-нибудь из вашей WAN-сети (предположим, что провайдер садит весь подъезд в одну /24) может маршрутизировать трафик через вас, просто прописав ваш IP в качестве шлюза. Все современные SOHO роутеры это учитывают, а вот неопытный администратор, который делает роутер под обычным linux, может не знать или забыть об этом. В подсети моего провайдера таких роутеров не оказалось, и мой план по захвату мира провалился. Однако, статья совсем не об этом.

Магические двоеточия


Как вы, может быть, знаете, многие современные программы и сервисы биндятся на IP :: (два двоеточия), а не на 0.0.0.0, как было раньше. IPv6 адрес :: значит то же самое, что и IPv4 0.0.0.0, т.е. «слушаем все интерфейсы». Многие считают, что если программа слушает ::, то этот сокет может принимать только IPv6-соединения, однако это далеко не так.
В IPv6 есть так называемое отображение IPv4-адресов в IPv6 диапазон. Если программа слушает сокет ::, а к ней обращаются из IPv4-адреса 1.2.3.4, то программа получит соединение с адреса ::ffff:1.2.3.4. Этого можно избежать, сделав:
sysctl -w net.ipv6.bindv6only=1

Но это нужно далеко не всегда, т.к. обычно удобно, что программа слушает один сокет, а получать соединения может по двум протоколам сразу. Практически во всех дистрибутивах, IPv6-сокеты ведут себя именно так, т.е. bindv6only=0.
Читать дальше →
Total votes 115: ↑113 and ↓2+111
Comments36

Взгляд изнутри: Вскрытие чипа Nvidia 8600M GT

Reading time6 min
Views97K
image
Предисловие

Года 3-4 назад судьба распорядилась так, что в руки мне попал ноутбук Asus G2S. Счастье моё длилось ровно до прошлой зимы, когда ни с того, ни с сего на экране стали появляться артефакты, особенно при запуске игрушек или «мощных» приложений, активно работающих с видеочипом. В результате оказалось, что проблема именно в нём. Nvidia для практически всей геймерской линейки G2 поставляла видеочипы с браком (отслоение контактов между самим кристаллом и подложкой), который обнаруживался лишь через пару лет интенсивной работы. Решение было однозначным – замена видеочипа. Но что делать со старым?! Ответ на этот вопрос пришёл на редкость быстро…
Много трафика под катом
Читать дальше →
Total votes 263: ↑260 and ↓3+257
Comments80

Взгляд изнутри: светодиодные лампочки

Reading time17 min
Views660K


Предисловие


В последнее время был поднят ажиотаж вокруг светодиодных ламп, которые должны заменить собой обычные лампы Ильича. И как поведал главный нанотехнолог России, такие лампы скоро поступят в продажу в Москве и Санкт-Петербурге. Конечно, всё было обставлено с пафосом: первым оценил новинку В.В.Путин. Мне удалось достать лампочку от «Оптогана» одним из первых, к тому же в руках у меня оказались ещё одна лампочка российского производства («СветаLED» или «SvetaLED»), правда побитая жизнью, но рабочая, и китайский NoName, которую с лёгкостью можно купить на ebay или dealextreme.com.
Читать дальше →
Total votes 542: ↑537 and ↓5+532
Comments202

CUDA: аспекты производительности при решении типичных задач

Reading time7 min
Views27K
Перед тем как начать переносить реализацию вычислительного алгоритма на видеокарту стоит задуматься — получим ли мы желаемый прирост производительности или только потеряем время. И несмотря на обещания производителей о сотнях GFLOPS, у современного поколения карт есть свои проблемы, о которых лучше знать заранее. Я не буду глубоко уходить в теорию и рассмотрю несколько существенных практических моментов и сформулирую некоторые полезные выводы.
Читать дальше →
Total votes 86: ↑84 and ↓2+82
Comments67

Униполярный двигатель

Reading time1 min
Views39K
image
Для создания простейшего униполярного двигателя нам понадобятся:
  • Батарейка «АА»
  • Плоский круглый неодимовый магнит (например, можно из наушников вытащить)
  • Медная проволока

Под катом инструкция и видео демонстрирующее процесс сборки и результат.
Читать дальше →
Total votes 213: ↑145 and ↓68+77
Comments106

Information

Rating
Does not participate
Location
Уфа, Башкортостан(Башкирия), Россия
Date of birth
Registered
Activity