Pull to refresh
5
0
Кирилл @rma4ok

User

Send message

История одной анимации

Reading time17 min
Views14K
Однажды фронтендеру позвонил дизайнер и попросил сделать «паутинку» за запотевшим стеклом. Но потом оказалось, что это не «паутинка», а гексагональная сетка, и не за стеклом, а она уходит вдаль, и с WebGL фронтендер не знаком, а всей анимации пришлось учиться в процессе рисования. Тем фронтендером был Юрий Артюх (akella).



Юрий давно занимается версткой, а по воскресеньям записывает стримы с разбором реальных проектов. Он не профи в WebGL, не делает на нем карты, не пишет на Web-ассемблере, но ему нравится учиться чему-то новому. На FrontendConf РИТ++ Юрий рассказал, как провести одну анимацию от макета до сдачи клиенту так, чтобы все были довольны, и по дороге изучить WebGL. История идет от первого лица и включает в себя: Three.js, GLSL, Canvas 2D, графы и немного математики.
Total votes 42: ↑41 and ↓1+40
Comments4

10 книг для понимания устройства фондового рынка, инвестиций на бирже и автоматизированной торговли

Reading time4 min
Views109K


Изображение: Unsplash

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

В этом материале мы собрали десять книг, которые помогут разобраться с устройством современного фондового рынка, тонкостями инвестирования на нем, и том, как здесь используются передовые технологии.
Читать дальше →
Total votes 25: ↑18 and ↓7+11
Comments12

Как GPU справляются с ветвлением

Reading time11 min
Views18K
image

О статье


Этот пост — небольшая заметка, предназначенная для программистов, которым хочется больше узнать о том, как GPU обрабатывает ветвление. Можно считать её введением в эту тему. Рекомендую для начала просмотреть [1], [2] и [8], чтобы получить представление о том, как в общем виде выглядит модель выполнения GPU, потому что мы будем рассматривать только одну отдельную деталь. Для любопытных читателей в конце поста есть все ссылки. Если найдёте ошибки, то свяжитесь со мной.

Содержание


  • О статье
  • Содержание
  • Словарь
  • Чем ядро GPU отличается от ядра ЦП?
  • Что такое согласованность/расхождение?
  • Примеры обработки маски выполнения
    • Выдуманная ISA
    • AMD GCN ISA
    • AVX512
  • Как бороться с расхождением?
  • Ссылки
Читать дальше →
Total votes 44: ↑44 and ↓0+44
Comments7

Равномерное распределение точек на сфере

Reading time8 min
Views21K
Как можно более равномерное распределение точек на сфере — невероятно важная задача в математике, науке и компьютерных системах, а наложение сетки Фибоначчи на поверхность сферы при помощи равновеликой проекции — чрезвычайно быстрый и эффективный метод аппроксимации для её решения. Я покажу, как благодаря незначительным изменениям его можно сделать ещё лучше.


Какое-то время назад этот пост появился на главной странице Hacker News. Его обсуждение можно прочитать здесь.

Введение


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

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

  • Упаковка и покрытие
  • Выпуклые оболочки, ячейки Вороного и треугольники Делоне
  • Ядра $s$-энергии Риса
  • Кубатура и определители

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

Ради краткости в этом посте мы рассмотрим только два критерия: минимальное расстояние упаковки и выпуклую оболочку/сетку Делоне (объём и площадь).
Читать дальше →
Total votes 48: ↑48 and ↓0+48
Comments27

Криптографический алгоритм «Кузнечик»: просто о сложном

Reading time14 min
Views79K
В данной статье будет подробно рассмотрен алгоритм блочного шифрования, определенный в ГОСТ Р 34.12-2015 как «Кузнечик». На чем он основывается, какова математика блочных криптоалгоритмов, а так же как реализуется данный алгоритм в java.

Кто, как, когда и зачем разработал данный алгоритм останется за рамками статьи, так как в данном случае нас это мало интересует, разве что:

КУЗНЕЧИК = КУЗнецов, НЕЧаев И Компания.



Так как криптография в первую очередь основана на математике, то чтобы дальнейшее объяснение не вызвало уймы вопросов сначала стоит разобрать базовые понятия и математические функции, на которых строится данный алгоритм.
Читать дальше →
Total votes 46: ↑39 and ↓7+32
Comments51

Ещё лучшая ZIP-бомба

Reading time25 min
Views126K
В статье показано, как создать нерекурсивную zip-бомбу, которая обеспечивает высокую степень сжатия путём перекрытия файлов внутри zip-контейнера. «Нерекурсивная» означает, что она не зависит от рекурсивной распаковки декомпрессорами файлов, вложенных в zip-архивы: здесь всего один раунд. Выходной размер увеличивается квадратично от входного, достигая степени сжатия более 28 миллионов (10 МБ → 281 ТБ) в пределах формата zip. Ещё большее расширение возможно с помощью 64-разрядных расширений. Конструкция использует только наиболее распространённый алгоритм сжатия DEFLATE и совместима с большинством парсеров zip.

  • zbsm.zip 42 kB → 5.5 GB
  • zblg.zip 10 MB → 281 TB
  • zbxl.zip 46 MB → 4.5 PB (Zip64, менее совместима с парсерами)

Исходный код:
git clone https://www.bamsoftware.com/git/zipbomb.git
zipbomb-20190702.zip

Данные и исходники иллюстраций:
git clone https://www.bamsoftware.com/git/zipbomb-paper.git
Читать дальше →
Total votes 176: ↑176 and ↓0+176
Comments53

Как писать и продвигать White Paper?

Reading time16 min
Views41K

Мой клиент попросил меня написать White Paper к его продукту — а я раньше их никогда не писал (хотя копирайтингом занимаюсь давно). Поискал в рунете — статей много, но они SEO-шные, водянистые — хороший документ по таким не составишь.


Полез в англоязычный интернет — перебрал около 50 различных описаний, нашёл то, которое более или менее закрывало мои вопросы (хотя там тоже было прилично «воды» и рекламы — при переводе мы, как могли, это «высушили»).


Надеюсь, вы найдете наш адаптированный перевод для себя полезным.


Читать дальше →
Total votes 24: ↑19 and ↓5+14
Comments11

Математики обнаружили идеальный способ перемножения чисел

Reading time5 min
Views143K

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



Четыре тысячи лет назад жители Вавилонии изобрели умножение. А в марте этого года математики усовершенствовали его.

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

«Все думают, что метод умножения, который они учили в школе, наилучший, но на самом деле в этой области идут активные исследования», — говорит Йорис ван дер Хувен, математик из Французского национального центра научных исследований, один из соавторов работы.
Читать дальше →
Total votes 183: ↑173 and ↓10+163
Comments224

Лучшая приоритизация HTTP/2 для ускорения веба

Reading time11 min
Views9.7K

HTTP/2 обещал заметно ускорить веб, и Cloudflare давным-давно развернула доступ по HTTP/2 для всех клиентов. Но одна особенность HTTP/2, приоритизация, не соответствовала ожиданиям. Не потому, что она принципиально сломана, а из-за реализации в браузерах.

Сегодня Cloudflare предлагает изменить приоритизацию HTTP/2, что даёт нашим серверам контроль над решениями о приоритизации, которые действительно заметно ускоряют интернет.

Исторически именно браузер контролирует, как и когда загружать веб-контент. Сегодня для всех платных планов мы вносим радикальные изменения в эту модель. Они передают контроль напрямую владельцу сайта. На вкладке «Скорость» в панели мониторинга Cloudflare клиенты могут включить «Расширенную приоритизацию HTTP/2»: она переопределяет настройки браузера по умолчанию на улучшенную схему планирования, что значительно ускоряет доступ для посетителей (в некоторых случаях мы видели ускорение на 50%). С воркерами Cloudflare владельцы сайтов могут пойти ещё дальше и полностью подобрать настройки под свои конкретные нужды.
Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments7

Визуализация времени возрождения Рошана

Reading time56 min
Views51K
В данной статье рассматривается перехват функций графического API на примере DirectX 9 под x64 применительно к игре Dota 2.

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



Disclaimer: Автор не несет ответственности за применение вами знаний полученных в данной статье или ущерб в результате их использования. Вся информация здесь изложена только в познавательных целях. Особенно для компаний разрабатывающих MOBA, чтобы помочь им бороться с читерами. И, естественно, автор статьи ботовод, читер и всегда им был.
Читать дальше →
Total votes 134: ↑133 and ↓1+132
Comments22

Художественные детские книги про социнжиниринг

Reading time3 min
Views32K


Привет! Я три года назад читал в детском лагере лекцию про социнжиниринг, троллил детей и немного бесил вожатых. В итоге испытуемые спросили, что почитать. Мой дежурный ответ про две книги Митника и две книги Чалдини, вроде, убедителен, но только для примерно восьмиклассника и старше. Если младше — то надо сильно чесать голову.

В общем, ниже — очень короткий список самых обычных художественных произведений. Лёгких, простых, детских. Но про социальную инженерию. Потому что в каждой культуре есть персонаж-джокер, который немного психопат, немного шут и немного эффективный специалист. Список неполный, и я хочу попросить вас его продолжить.
Читать дальше →
Total votes 83: ↑82 and ↓1+81
Comments140

Случайные числа и децентрализованные сети: практическое применение

Reading time10 min
Views5.3K

Введение


«Генерация случайных чисел слишком важна, чтобы оставлять её на волю случая»
Роберт Кавью, 1970


Эта статья посвящена практическому применению решений, использующих коллективную генерацию случайных чисел в недоверенной среде. Если кратко — как и для чего используется рандом в блокчейнах, и немного про то, как отличить “хороший” рандом от “плохого”. Генерация действительно случайного числа является крайне непростой проблемой даже на отдельном компьютере, и давно изучается криптографами. Ну а в децентрализованных сетях генерация случайных чисел еще более сложна и важна.


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

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

Фракталы в иррациональных числах. Часть 2

Reading time5 min
Views13K
Часть 0: Фракталы в простых числах.
Часть 1: Фракталы в иррациональных числах.



В статье присутствуют Gif и контрастные картинки. У эпилептиков может случиться эпилептический припадок.
Читать дальше →
Total votes 45: ↑45 and ↓0+45
Comments17

100 видео-лекций по программированию

Reading time5 min
Views63K

image


Товарищи инженеры, уже четвертый год пошел, как я взялся преподавать в Киевском политехническом институте. За это время у меня накопилось огромное количество примеров кода и материалов, примерно на 90 лекций. Должен сказать, что за весь период своей профессиональной деятельности (а это 24 года почти ежедневного написания кода), я никогда не подымал свой уровень программирования, как за последние годы, работая со студентами. Если раньше мне казалось, что написать кратко, сложно и внушительно — это верх мастерства, то теперь я осознал, что мой код должны понимать студенты после минимальных объяснений, иначе он никуда не годится. Я пришел к выводу, что способность эту можно и нужно распространить не только на обучающий код, но и на весь рабочий код. Более того, обучающий код не должен существенно отличаться от рабочего кода, потому, что мы учим будущих инженеров делать настоящие системы, а не учебные. А после многочисленных просьб, я решил записывать все лекции в виде скринкастов, которые сразу после завершения лекции отправляются на ютюб. За этот учебный год я планирую записать 100 лекций, из которых уже опубликованы 23, готовы материалы еще для 67 лекций и новых 10 лекций еще в процессе подготовки.

Читать дальше →
Total votes 29: ↑29 and ↓0+29
Comments7

Самый полный русскоязычный перевод Гарвардского курса по программированию CS50 2015, бесплатно на YouTube

Reading time2 min
Views55K
В этой статье я хочу немного рассказать о самом лучшем в мире курсе по программированию.

С 2013 года наша небольшая команда занимается переводом и адаптацией англоязычных видеокурсов. За это время мы перевели и адаптировали свыше 150 часов материала. Перед тем как приступать к работе, мы анализировали материалы нескольких обучающих онлайн-школ, и выбирали, на наш педагогический взгляд, самую лучшую, которая максимально доступно, структурированно и кратко подаёт обучающий материал. В результате чего нам приходилось просматривать по несколько курсов касающихся одной и той же тематики, а после выбирать тот, который наиболее качественный и доступный для понимания новичкам.

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

image
Total votes 19: ↑18 and ↓1+17
Comments26

Как Apple пошла вопреки пяти общепринятым PR-нормам, но сохранила своё доброе имя

Reading time3 min
Views20K

В январе 2010 Apple столкнулась с огромным кризисом, который сулил резкое падение репутации. Спустя несколько дней после запуска iPhone 4 (самый успешный из когда-либо запускаемых Apple продуктов) – пошли слухи о том, что при определённом способе захвата мобильника (при т.н. «смертельном захвате»), мощность его сигнала снижается. Струйки жалоб переросли в широкомасштабную лавину. В течение нескольких недель Apple высмеивали все кто только мог. Но к середине июля критика прекратилась. И не просто прекратилась, а довольно-таки хорошо забылась.


Как Apple достигла такого, казалось бы, невозможного пиара? – Разбивая 5 ключевых «правил», которые ранее в пиаре считались непреложными. Джобс и компания не последовали ни одному из этих правил, но при этом остались на высоте.


Читать дальше →
Total votes 47: ↑31 and ↓16+15
Comments112

Antimony — САПР из параллельного мира

Reading time3 min
Views21K
Среди трёхмерных САПР наиболее известны программы, реализующие два основных подхода к проектированию: прямое моделирование и параметрическое.

Кроме того, существуют процедурные САПР, которые позволяют моделировать посредством программирования. Такой подход снискал себе признание среди любителей программирования и проектирования устройств с открытыми кодом и конструкцией. Например, хорошо известен OpenSCAD, который здесь не раз упоминался.

Предлагаю посмотреть на еще одну необычную САПР под названием Antimony.

image
Рис. 1. Antimony — САПР из параллельного мира
Total votes 56: ↑54 and ↓2+52
Comments33

От антикварного радио до DIY-колонок: 12 каналов на YouTube про устройство акустики

Reading time4 min
Views14K
Сегодня мы подготовили подборку YouTube-каналов, авторы которых рассказывают об устройстве винтажного и современного аудиооборудования: от настройки виниловых проигрывателей до сборки акустических систем. Всех, кому это интересно, приглашаем к просмотру под кат.

Total votes 27: ↑21 and ↓6+15
Comments11

Социальная инженерия: неуловимый враг в мире кибербезопасности

Reading time8 min
Views11K

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

Что такое социальная инженерия?


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

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

Структура атаки


Атака с использованием методов социальной инженерии всегда продумана и адаптирована под индивидуальные особенности объекта нападения, в отличие от обычных фишинговых атак с массовой случайной рассылкой электронных писем или звонками тысячам человек. На это требуется больше подготовки, но и шансы на успех повышаются в разы.
Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments0

Как сетевая математика может помочь вам находить друзей

Reading time8 min
Views7.6K

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




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

Представьте себе переезд в новый необычный город, Регулярск, в котором есть странное правило: у каждого человека может быть не более четырёх друзей, но при этом каждый хочет максимизировать количество своих связей. Как будет выглядеть структура связей Регулярска? Чтобы изучить этот вопрос, мы используем математический объект под названием сеть.

Проще говоря, сеть – это набор объектов под названием «узлы», и связей между ними. Сети – понятие математически гибкое. Они могут обозначать компьютеры и связывающие их кабели, авторов и их помощников, состояния кубика Рубика и трансформации, позволяющие переходить между ними – по сути, любой тип связей, реальных или абстрактных. Чтобы изучить дружеские связи в Регулярске, мы создадим сеть, в которой узлами будут люди, а связями – дружба между ними.
Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments21
1
23 ...

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity