Как стать автором
Обновить
5
0
Кирилл @rma4ok

Пользователь

Отправить сообщение

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

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



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

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

Время на прочтение4 мин
Количество просмотров113K


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

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

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

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

Время на прочтение11 мин
Количество просмотров18K
image

О статье


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

Содержание


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

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

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


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

Введение


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

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

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

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

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

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

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

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

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



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

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

Время на прочтение25 мин
Количество просмотров129K
В статье показано, как создать нерекурсивную 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
Читать дальше →
Всего голосов 176: ↑176 и ↓0+176
Комментарии53

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

Время на прочтение16 мин
Количество просмотров42K

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


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


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


Читать дальше →
Всего голосов 24: ↑19 и ↓5+14
Комментарии11

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

Время на прочтение5 мин
Количество просмотров144K

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



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

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

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

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

Время на прочтение11 мин
Количество просмотров10K

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

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

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

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

Время на прочтение56 мин
Количество просмотров52K
В данной статье рассматривается перехват функций графического API на примере DirectX 9 под x64 применительно к игре Dota 2.

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



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

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

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


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

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

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

Время на прочтение10 мин
Количество просмотров5.5K

Введение


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


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


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

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

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

Время на прочтение5 мин
Количество просмотров13K
Часть 0: Фракталы в простых числах.
Часть 1: Фракталы в иррациональных числах.



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

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

Время на прочтение5 мин
Количество просмотров64K

image


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

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

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

Время на прочтение2 мин
Количество просмотров55K
В этой статье я хочу немного рассказать о самом лучшем в мире курсе по программированию.

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

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

image
Всего голосов 19: ↑18 и ↓1+17
Комментарии26

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

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

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


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


Читать дальше →
Всего голосов 47: ↑31 и ↓16+15
Комментарии112

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

Время на прочтение3 мин
Количество просмотров21K
Среди трёхмерных САПР наиболее известны программы, реализующие два основных подхода к проектированию: прямое моделирование и параметрическое.

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

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

image
Рис. 1. Antimony — САПР из параллельного мира
Всего голосов 56: ↑54 и ↓2+52
Комментарии33

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

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

Всего голосов 27: ↑21 и ↓6+15
Комментарии11

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

Время на прочтение8 мин
Количество просмотров12K

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

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


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

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

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


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

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

Время на прочтение8 мин
Количество просмотров7.6K

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




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

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

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

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность