Pull to refresh
Максим @Mistx read⁠-⁠only

User

Send message

GRASP паттерны проектирования

Reading time 4 min
Views 231K
Почитать описание других паттернов.

GRASP (General Responsibility Assignment Software Patterns) — шаблоны проектирования, используемые для решения общих задач по назначению обязанностей классам и объектам.

Известно девять GRAPS шаблонов, изначально описанных в книге Крейга Лармана «Применение UML и шаблонов проектирования». В отличие от привычных читателю паттернов из Банды Четырех, GRAPS паттерны не имеют выраженной структуры, четкой области применения и конкретной решаемой проблемы, а лишь представляют собой обобщенные подходы/рекомендации/принципы, используемые при проектировании дизайна системы.

Рассмотрим характеристики основных GRASP шаблонов.
Читать дальше →
Total votes 57: ↑45 and ↓12 +33
Comments 24

Kademlia DHT: Основы

Reading time 7 min
Views 37K
Здравствуйте!
В этой статье, как и, надеюсь, в последующих, я хочу рассказать об одной из современных структурированных пиринговых сетей. Данный материал включает в себя мою переработку документаций, описаний и статей, найденных по теме. В качестве введения представлена общая краткая теория p2p-сетей, DHT, а уж затем следует основная часть, которой посвящена заметка.

Читать дальше...
Total votes 54: ↑52 and ↓2 +50
Comments 35

Учимся понимать чертовски быструю английскую речь на примере выступлений Эдди Мерфи и Эминема

Reading time 6 min
Views 32K
Студенты, которые учат английский язык как второй, часто не готовы к реальной скорости речи носителей языка. Это на учебных пособиях и аудировании все предельно понятно, а когда нейтив начинает тараторить, ты такой «Чё?».

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


Total votes 14: ↑14 and ↓0 +14
Comments 25

Конспект по методам классификации данных

Reading time 7 min
Views 13K
При изучении Data Science, я решил составить для себя конспект по основным приемам, используемым в анализе данных. В нем отражены названия методов, кратко описана суть и приведен код на Python для быстрого применения. Готовил конспект для себя, но подумал, что кому-то это также может быть полезно, например, перед собеседованием, в соревновании или при запуске нового проекта. Рассчитано на аудиторию, которая в целом знакома со всеми этими методами, но имеет необходимость освежить их в памяти. Статья под катом.
Читать дальше →
Total votes 12: ↑12 and ↓0 +12
Comments 1

Operating Systems: Three Easy Pieces. Part 5: Планирование: Multi-Level Feedback Queue (перевод)

Reading time 11 min
Views 3.4K

Введение в операционные системы


Привет, Хабр! Хочу представить вашему вниманию серию статей-переводов одной интересной на мой взгляд литературы — OSTEP. В этом материале рассматривается достаточно глубоко работа unix-подобных операционных систем, а именно — работа с процессами, различными планировщиками, памятью и прочиими подобными компонентами, которые составляют современную ОС. Оригинал всех материалов вы можете посмотреть вот тут. Прошу учесть, что перевод выполнен непрофессионально (достаточно вольно), но надеюсь общий смысл я сохранил.

Лабораторные работы по данному предмету можно найти вот тут:


Другие части:


А еще можете заглядывать ко мне на канал в телеграм =)
Читать дальше →
Total votes 5: ↑5 and ↓0 +5
Comments 1

Ускоряем работу нейросетей с помощью хеширования

Reading time 5 min
Views 5.5K

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




В последние годы компьютерная индустрия была занята, пытаясь ускорить вычисления, требуемые для искусственных нейросетей – как для обучения, так и для получения выводов её работы. В частности, довольно много усилий было положено на разработку специального железа, на котором можно выполнять эти вычисления. В Google разработали Tensor Processing Unit, или TPU, впервые представленный публике в 2016-м. Позже Nvidia представила V100 Graphics Processing Unit, описывая его, как чип, специально разработанный для обучения и использования ИИ, а также для других высокопроизводительных вычислительных нужд. Полно и иных стартапов, концентрирующихся на других типах аппаратных ускорителей.
Читать дальше →
Total votes 13: ↑13 and ↓0 +13
Comments 7

Фотографии из грубых набросков: как именно работает нейросеть NVIDIA GauGAN

Reading time 14 min
Views 37K
В прошлом месяце на NVIDIA GTC 2019 компания NVIDIA представила новое приложение, которое превращает нарисованные пользователем простые цветные шарики в великолепные фотореалистичные изображения.


Приложение построено на технологии генеративно-состязательных сетей (GAN), в основе которой лежит глубинное обучение. Сама NVIDIA называет его GauGAN — это каламбур-отсылка к художнику Полу Гогену. В основе функциональности GauGAN лежит новый алгоритм SPADE.

В этой статье я объясню, как работает этот инженерный шедевр. И чтобы привлечь как можно больше заинтересованных читателей, я постараюсь дать детализированное описание того, как работают свёрточные нейронные сети. Поскольку SPADE — это генеративно-состязательная сеть, я расскажу подробнее и о них. Но если вы уже знакомы с эти термином, вы можете сразу перейти к разделу «Image-to-image трансляция».

Генерация изображений


Давайте начнем разбираться: в большинстве современных приложений глубинного обучения используется нейронный дискриминантный тип (дискриминатор), а SPADE — это генеративная нейронная сеть (генератор).
Total votes 54: ↑52 and ↓2 +50
Comments 5

AsyncIO для практикующего python-разработчика

Reading time 16 min
Views 379K
Я помню тот момент, когда подумал «Как же медленно всё работает, что если я распараллелю вызовы?», а спустя 3 дня, взглянув на код, ничего не мог понять в жуткой каше из потоков, синхронизаторов и функций обратного вызова.

Тогда я познакомился с asyncio, и всё изменилось.
Читать дальше →
Total votes 22: ↑21 and ↓1 +20
Comments 12

Preload, prefetch и другие теги

Reading time 9 min
Views 132K
Есть много способов повышения веб-производительности. Один из них — предзагрузка контента, который понадобится позже. Префетчинг CSS, предварительный рендеринг полной страницы или резолвинг доменного имени. Делаем всё заранее, а потом мгновенно отображаем результат! Звучит круто.

Ещё круче, что это очень просто реализовано. Пять тегов <link rel> дают браузеру команду на предварительные действия:

<link rel="prefetch" href="/style.css" as="style" />
<link rel="preload" href="/style.css" as="style" />

<link rel="preconnect" href="https://example.com" />
<link rel="dns-prefetch" href="https://example.com" />

<link rel="prerender" href="https://example.com/about.html" />
Читать дальше →
Total votes 33: ↑33 and ↓0 +33
Comments 1

Пишем высокопроизводительный http клиент на примере fasthttp. Александр Валялкин (VertaMedia)

Reading time 15 min
Views 31K

Библиотека Fasthttp — ускоренная альтернатива net/http из стандартных пакетов Golang.
Как она устроена? Почему она такая быстрая?


Предлагаю вашему вниманию расшифровку доклада Александра Валялкина Fasthttp client internals.
Паттерны из Fasthttp можно использовать для ускорения ваших приложений, вашего кода.



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

Total votes 26: ↑23 and ↓3 +20
Comments 5

Как превратить спутниковые снимки в карты. Компьютерное зрение в Яндексе

Reading time 10 min
Views 31K
Один из главных источников данных для сервиса Яндекс.Карты — спутниковые снимки. Чтобы с картой было удобно работать, на снимках многоугольниками размечаются объекты: леса, водоёмы, улицы, дома и т. п. Обычно разметкой занимаются специалисты-картографы. Мы решили помочь им и научить компьютер добавлять многоугольники домов без участия людей.

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

Читать дальше →
Total votes 87: ↑84 and ↓3 +81
Comments 34

Обзор топологий глубоких сверточных нейронных сетей

Reading time 18 min
Views 107K
Это будет длиннопост. Я давно хотел написать этот обзор, но sim0nsays меня опередил, и я решил выждать момент, например как появятся результаты ImageNet’а. Вот момент настал, но имаджнет не преподнес никаких сюрпризов, кроме того, что на первом месте по классификации находятся китайские эфэсбэшники. Их модель в лучших традициях кэгла является ансамблем нескольких моделей (Inception, ResNet, Inception ResNet) и обгоняет победителей прошлого всего на полпроцента (кстати, публикации еще нет, и есть мизерный шанс, что там реально что-то новое). Кстати, как видите из результатов имаджнета, что-то пошло не так с добавлением слоев, о чем свидетельствует рост в ширину архитектуры итоговой модели. Может, из нейросетей уже выжали все что можно? Или NVidia слишком задрала цены на GPU и тем самым тормозит развитие ИИ? Зима близко? В общем, на эти вопросы я тут не отвечу. Зато под катом вас ждет много картинок, слоев и танцев с бубном. Подразумевается, что вы уже знакомы с алгоритмом обратного распространения ошибки и понимаете, как работают основные строительные блоки сверточных нейронных сетей: свертки и пулинг.

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

Генные сети, управляющие строением тела животных

Reading time 9 min
Views 26K
image
Как при помощи генных сетей превратить яйцо сначала в личинку, а затем во взрослую муху? Муха, как и другие насекомые, состоит из сегментов. Сегменты объединяются в три группы — голова, грудь и брюшко. На сегменте может быть пара конечностей. В груди три сегмента, на каждом по паре ножек. Второй грудной сегмент имеет еще крылья, а третий — жужжальца (маленькие рулевые крылышки, практически незаметные без лупы). Брюшко состоит из восьми сегментов, конечностей на них нет. В голове исходно было шесть сегментов, но в ходе эволюции насекомых границы между ними совершенно стерлись. Их конечности — это усики, которыми муха нюхает и щупает, и три пары ротовых конечностей. У жука или таракана это были бы жвалы, максиллы и нижняя губа, а у мухи они все сливаются в хоботок.

Чтобы все органы были на своем месте, каждая клетка должна знать, в каком месте зародыша она находится. Поэтому на ранних стадиях развития зародыша, когда в нем еще нет никаких органов и все клетки выглядят одинаково, в нем появляется биохимическая «координатная сетка» с передне-задней, спинно-брюшной и лево-правой осями. Мутации генов, образующих координатную сетку, могут легко и быстро изменить облик животного — передвинуть органы на другое место, изменить их количество и так далее. Поэтому такие гены важны для эволюции животных и очень активно изучается. Генная сеть разметки зародыша у мухи дрозофилы — любимой игрушки генетиков — пожалуй, самая изученная среди генных сетей животных.
Читать дальше →
Total votes 60: ↑60 and ↓0 +60
Comments 110

Сборка схем из биологических переключателей

Reading time 5 min
Views 8.5K
Предыдущая статья цикла

Логика включения оперонов разных путей обмена веществ у кишечной палочки близка к элементам AND и OR. Поэтому на их основе можно сделать генную конструкцию, реализующую произвольную логическую схему (не слишком сложную). Существуют программы, например Cello, которые из описания логики на языке Verilog делают последовательность генной конструкции, реализующей эту логику.
image

Cложнее оказывается обратная задача: из последовательности природной ДНК получить описание логики ее регуляции. Начнем с простых случаев, где нет сложных петель обратных связей и интеграции множества сигналов на одном опероне. Почти вся регуляция генов кишечной палочки удовлетворяет этим условиям. Если взять все известные регуляторные связи между генами кишечной палочки и построить сеть из них, то можно подсчитать статистику «мотивов» этой сети (способов соединения элементов) и выделить самые часто используемые.
Читать дальше →
Total votes 21: ↑21 and ↓0 +21
Comments 18

VulnHub: Эксплуатируем уязвимость переполнения буфера в Lord Of The Root

Reading time 6 min
Views 10K


Продолжаем разбор квестов с VulnHub, на этот раз попался довольно интересный с обходом ASLR: Lord Of The Root. Но обо всём по порядку…
Читать дальше →
Total votes 24: ↑24 and ↓0 +24
Comments 0

VulnHub: Разбор IMF 1 и очередное переполнение буфера

Reading time 10 min
Views 11K

В этот раз рассмотрим Boot2Root IMF 1 от VulnHub. Имеется 6 флагов, каждый из которых содержит подсказку к получению следующего. Так же рекомендую ознакомиться с разборами предыдущих заданий.
Читать дальше →
Total votes 16: ↑16 and ↓0 +16
Comments 0

Математика биологических переключателей

Reading time 8 min
Views 9.1K
(продолжение. Предыдущая часть: «Автоматика из ДНК и белков: что у нее общего с электроникой?»)

image

Мы остановились на том, что лактозный оперон похож на логический элемент AND. Но откуда у него берутся цифровые свойства? Ведь оба входных сигнала (концентрации цАМФ и лактозы), вообще-то, аналоговые. Попробуем нарисовать входные функции лактозного оперона.
Читать дальше →
Total votes 12: ↑12 and ↓0 +12
Comments 11

Лекции по биоинформатике

Reading time 7 min
Views 16K
Каждый год в конце июля Институт биоинформатики совместно с СПбАУ РАН проводит летнюю школу по биоинформатике. В этой небольшой статье собраны лекции (видео и слайды) за два последних года проведения летних школ.

image

Вводные слова о школе


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

Читать дальше →
Total votes 17: ↑16 and ↓1 +15
Comments 7

Нейронные сети на Javascript

Reading time 7 min
Views 164K
image
Идея для написания этой статьи возникла прошлым летом, когда я слушал доклад на конференции BigData по нейронным сетям. Лектор «посыпал» слушателей непривычными словечками «нейрон», «обучающая выборка», «тренировать модель»… «Ничего не понял — пора в менеджеры», — подумал я. Но недавно тема нейронных сетей все же коснулась моей работы и я решил на простом примере показать, как использовать этот инструмент на языке JavaScript.

Мы создадим нейронную сеть, с помощью которой будем распознавать ручное написание цифры от 0 до 9. Рабочий пример займет несколько строк. Код будет понятен даже тем программистам, которые не имели дело с нейронными сетями ранее. Как это все работает, можно будет посмотреть прямо в браузере.
Читать дальше →
Total votes 58: ↑54 and ↓4 +50
Comments 79

Альтернативы смерти: как победить старение

Reading time 11 min
Views 78K


Как современная молекулярная биология смотрит на феномен старения? Как пытаются старение изучать, есть ли надежды на замедление или даже остановку этого процесса? Этим вопросам была посвящена лекция биолога Александра Панчина, с которой он выступил на прошедшем в офисе Mail.Ru Group научно-популярном лектории Set Up.
Читать дальше →
Total votes 72: ↑69 and ↓3 +66
Comments 150
1

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity