Как стать автором
Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Разница между pool.map и pool.map_async в Python

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 544

Еще одна статья-шпаргалка о модуле multiprocessing в Python, без воды, от новичка для новичков многопроцессорного программирования.

pool.map и pool.map_async являются методами модуля multiprocessing.Pool в Python, которые позволяют параллельно выполнять функции на нескольких процессах.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 1

Новости

Rust — это не «memory safe C»

Уровень сложности Средний
Время на прочтение 25 мин
Количество просмотров 4.9K

TL;DR:
1) в Rust намного больше достоинств, чем просто скорость и безопасность
2) в Rust по умолчанию CDD (compiler-driven development, разработка через компилирование). Это как TDD, только CDD
3) Rust не сложный язык, особенно если не гнаться за максимальной производительностью

В этой статье я бы хотел рассказать:
1) почему взгляд на Rust как на "memory safe C" очень сильно сужает область его возможного применения
2) почему я смотрю на Rust как на очень удобный в разработке язык высокого уровня, которому просто случайно повезло оказаться невероятно быстрым
3) почему разработка на Rust быстрее, чем многие думают
4) почему Rust это один из лучших языков общего назначения

Читать далее
Всего голосов 36: ↑35 и ↓1 +34
Комментарии 30

Мы так и не смогли защитить свою модель машинного обучения от состязательных атак. Пока

Уровень сложности Средний
Время на прочтение 13 мин
Количество просмотров 577

Наша команда разработчиков Исследовательского центра доверенного искусственного интеллекта ИСП РАН первые два года занималась построением сетевой системы обнаружения вторжений, основанной на применении методов машинного обучения. А в последний год мы сменили щит на меч и начали атаковать состязательными атаками (adversarial attacks) синтезированную нами же модель.

Задача была простой: оценить устойчивость модели к состязательным атакам. Спойлер: модель не устойчива, а как это исправить — мы пока не знаем. Подробности ниже.

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 1

Эффект бабочки и рынки (ч.2)

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 475

Перед прочтением этой публикации, советую ознакомиться с 1 частью.

Часть 1

Бенуа Мандельброт об эффекте бабочки в экономике

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

Читать далее
Всего голосов 9: ↑6 и ↓3 +3
Комментарии 0

Истории

Решение cryptopals. Часть 3

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 138

Завершаем решение cryptopals. В этой части рассмотрим блоки заданий 5 и 6, которые посвящены криптографии с открытым ключом.

Читать далее
Рейтинг 0
Комментарии 0

Шардирование (sharding). Эпизод 1: Начало и шардирование по идентификатору

Уровень сложности Средний
Время на прочтение 11 мин
Количество просмотров 986

Divide et impera (разделяй и властвуй) – древний принцип для управления чем-то большим и сложным.

Многие из нас программируют. Многие из нас делают системы, сложные системы. Но некоторым повезло работать в ситуации, когда объёмы по-настоящему огромны и требования кажутся невыполнимыми. Шардировние – один из излюбленных счастливчиками, которых зовут приключения, приемов.

Что-нибудь разбить на кусочки – это круто! Переходите на сторону шардирования у нас есть печеньки!

За кусочками!!!
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 2

Использование ML и новых методов кластеризации для борьбы с COVID-19: Революция в выявлении вирусных мутаций

Уровень сложности Средний
Время на прочтение 14 мин
Количество просмотров 375

С момента появления COVID-19 мы застали множество “волн” и новых вспышек вируса. Помимо очевидной тяжести заболевания и невероятной скорости передачи, SARS-CoV-2 также отличается большим количеством различных мутаций, уклоняющихся от иммунных реакций.

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

В данной статье я подробно расскажу, как с помощью машинного обучения и новых методов кластеризации исследователям удалось встать на путь обнаружения новых вариантов вируса  SARS-CoV-2, вызывающего COVID-19, со значительным временным и вычислительным выигрышем, по сравнению с существующими методами.

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 0

Для начинающих программистов

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 1.9K

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

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 9

Глобальные события в мобильном приложении

Уровень сложности Средний
Время на прочтение 24 мин
Количество просмотров 287

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

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 0

Мега-Учебник Flask Глава 2: Шаблоны (издание 2024)

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 518

После завершения главы 1 у вас должно получиться простое, но функциональное веб-приложение. Во второй части серии мега-учебника по Flask я собираюсь обсудить, как работать с шаблонами.

Начать изучение
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 0

Синергия продуктов Anti-DDoS и WAF

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 285

Группа компаний «Гарда» – производитель семейства продуктов для защиты данных и сетевой безопасности. В нашем портфеле более 15 различных систем, которые помогают зрелым заказчикам решать задачи кибербезопасности. Под тегом #продуктыгарда мы будем размещать посты, из которых вы узнаете лучшие практики применения, особенности решений и их интеграции друг с другом.

С учетом того, что мы защищаем 50% российского интернета от DDoS-атак логично продолжить постинг именно этой темой. Экспертизой здесь в группе компаний заведует Вадим Солдатенков, руководитель направления продуктов «Гарда Anti-DDoS». Вадим отвечает за развитие группы решений, регулярно принимает участие в мероприятиях в качестве спикера, делится опытом с редакциями СМИ. Сегодня Вадим выступил контрибьютором материала о практике защиты WAF.

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 1

Книга «Генеративное глубокое обучение. Как не мы рисуем картины, пишем романы и музыку. 2-е межд изд.»

Время на прочтение 8 мин
Количество просмотров 758
image Привет, Хаброжители!

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

Дэвид Фостер делает понятными и доступными архитектуру и методы генеративного моделирования, его советы и подсказки сделают ваши модели более творческими и эффективными в обучении. Вы начнете с основ глубокого обучения на базе Keras, а затем перейдете к самым передовым алгоритмам.
Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 0

Обзор продукта «Структура API» и новой функциональности сравнения Open API спецификаций

Уровень сложности Средний
Время на прочтение 3 мин
Количество просмотров 535

Всем привет!

Сегодня мы хотим вам рассказать о нашем продукте «Структура API» и последних изменениях в нём. Данный продукт позволяет решить одну из важнейших задач в управлении API – это получение актуальной и полной структуры API на основании реального трафика. Результат представляется в привычном swagger виде. На рисунке 1 представлен общий вид пользовательского интерфейса.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 0

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн
PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн

Девять типов программистов в 2024 году

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 3.7K

О программисты! Костяк цифровой эры, незримые прядильщики нашей онлайн-вселенной. Боковая ветвь человекообразных приматов, связанных тесными родственными узами с Homo Sapiens. Отличаются плохой осанкой, лёгкой степенью мизантропии и способностью решить любую проблему, заглянув в Google. Это густонаселённое племя пестрит восхитительным разнообразием, которое чётко прослеживается в стилях программирования и личностных характеристиках.

Читать далее
Всего голосов 21: ↑13 и ↓8 +5
Комментарии 1

Красавица и HTML Injection. Почему HTMLi не только про дефейс

Уровень сложности Средний
Время на прочтение 27 мин
Количество просмотров 1.3K

Привет, Хабр. Сегодня мы посмотрим на достаточно тривиальную тему с совсем нетривиальной стороны. Пожалуй, для каждого вебера HTML-инъекции являются темой, которой зачастую уделяют не очень много внимания. Взять даже собеседования: когда в последний раз вас спрашивали не об XSS'ках, а об HTML-инъекциях?

Сегодня я попробую рассказать про большую часть интересных векторов, которые мы можем использовать при ограничении в применении JS. Не стесняйтесь пользоваться оглавлением, потому что статья подготовлена для разного уровня читателей. Чтобы не обделять новичков, я достаточно подробно описал работу HTML, ее структуры и даже то, как HTML парсится браузером!

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 0

Тестирование баз данных

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 1K

Тестирование баз данных включает в себя тестирование методом «чёрного ящика», «белого ящика» и набор требований ACID — атомарность, согласованность, изоляция и устойчивость. В этом руководстве я объясню все необходимые определения, расскажу, как оно проводится, и приведу примеры.

Читать далее
Всего голосов 7: ↑5 и ↓2 +3
Комментарии 0

Как инжиниринговые компании организуют в TDMS Фарватер хранилище и обмен документацией. Опыт «Аквапрув»

Время на прочтение 3 мин
Количество просмотров 125

Почему инжиниринговые компании предпочитают работать в специализированных решениях для ведения технического документооборота и комплексного управления проектами? На что стоит обратить внимание при выборе подходящего инструмента и как построить системное управление, которое очень высоко ценится в проектном менеджменте, повышая доверие заказчиков и подрядчиков? Компания ООО «Аквапрув» поделилась своим опытом эффективного управления проектами в строительстве в среде TDMS Фарватер.

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 0

Пишем свой вариантный тип

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 1.4K

C++ 17 привнес в язык достаточно много нововведений, в том числе шаблон std::variant (хоть в Boost он есть уже довольно давно). Фактически, последним вышедшим и полноценно реализованным стандартом C++ на тот момент, как я начал изучать данный язык, являлся как раз C++17, поэтому нововведениям данного стандарта в свое время я уделил наибольшее внимание.
В какой-то момент мне стало интересно, как именно устроен std::variant, в связи с чем я немного погуглил про его принципиальное устройство и, вооружившись variadic templates, сел писать свою реализацию. Данный шаблон устроен достаточно интересно, поэтому людям, вообще не знакомым с его устройством, данная статья будет полезна. Если данную статью прочитают более опытные разработчики, я буду рад их комментариям по поводу моей реализации.
Упомяну несколько моментов перед началом статьи:

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 17

Task contamination, интриги, расследования

Уровень сложности Средний
Время на прочтение 3 мин
Количество просмотров 271

Почти детективное расследование провели в Калифорнийском университете. Авторы взяли 12 разных LLM, включая GPT-3, и проверили их на датасетах, созданных в разное время — до и после обучения моделей. Обнаруженные артефакты указывают на то, что one-shot и few-shot задания улучшают работу модели просто потому, что она уже встречала эти данные в процессе обучения. Авторы назвали это загрязнением заданий, task contamination.

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 0

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

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 159

Автор: Роман Горбунов, руководитель QA-проектов в «Точка качества».

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

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

Что такое тестовое покрытие

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

Ширина тестирования отражает какая функциональность затрагивалась тестированием (модули/функции).

Глубина тестирования отражает вид проверок, которые производились для модуля/функции (например, позитивность/негативность сценариев).

Уровни тестового покрытия по ширине:

Читать далее
Всего голосов 3: ↑0 и ↓3 -3
Комментарии 0