Pull to refresh
67
0

Техножрец

Send message

Как физика дала математикам новую геометрическую структуру для их игр

Reading time6 min
Views13K

Симплектическая геометрия – относительно новая область знаний, оказывающая влияние на большую часть современной математики. И вот, в чём она заключается.




В начале XIX века Уильям Роуэн Гамильтон обнаружил новое геометрическое пространство с практически волшебными свойствами. Оно кодировало движение и математику в едином красивом геометрическом объекте.

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

Симплектическая геометрия, по сути – это изучение геометрических пространств симплектической структуры. Однако нужно пояснить, что означает, что у пространства есть структура – не говоря уже о какой-то конкретной структуре.
Читать дальше →
Total votes 24: ↑20 and ↓4+16
Comments8

Столетний язык программирования — какой он

Level of difficultyEasy
Reading time14 min
Views36K

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

И всё же интересно, какие языки все еще будут использоваться через 100 лет?

Читать далее
Total votes 64: ↑55 and ↓9+46
Comments338

Расстояние Махаланобиса

Reading time24 min
Views19K

Основной смысл использования метрики Махаланобиса
1. Термины и определения
2. Расстояние Махаланобиса между двумя точками и между точкой и классом
2.1. Теоретические сведения
2.2. Алгоритм вычисления расстояния между двумя точками и между точкой и классом
2.3. Пример вычисления расстояния между двумя точками и между точкой и классом
3. Расстояние Махаланобиса между двумя классами
3.1. Теоретические сведения
3.2. Алгоритм вычисления расстояния между двумя классами
3.3. Пример вычисления расстояния между двумя классами
4. Расстояние Махаланобиса и метод k-ближайших соседей
5. Взвешенное расстояние Махаланобиса
6. Заключение

Если есть замечания или ошибки, пишите на почту quwarm@gmail.com или в комментариях.

Читать далее
Total votes 34: ↑33 and ↓1+32
Comments7

snap & flatpack — трагедия общин

Reading time10 min
Views45K

Лонгрид варнинг: вас предупредили, много букв.


Уже давно ведётся разработка формата дистрибуции приложений, которые были "свободны" от общесистемных зависимостей. Ubuntu очень, очень активно продвигает свой snap, gnome — flatpack. Оба обещают рай и свободу от rpm/deb. Давайте же подумаем про проблему, которую они хотят решить, и цену, которую они просят за решение этой проблемы.

Читать дальше →
Total votes 71: ↑70 and ↓1+69
Comments145

Делаем вечную лампочку

Reading time3 min
Views297K
На упаковках светодиодных ламп указывают срок службы 30, 40 или 50 тысяч часов, но многие лампочки не живут и года.

Сегодня я расскажу, как за пять минут без каких либо инструментов модифицировать лампочку так, чтобы её срок службы значительно увеличился.

Читать дальше →
Total votes 243: ↑238 and ↓5+233
Comments361

60+ игр для гиков

Reading time35 min
Views52K
Приветствую всех брутальных Хабрачан и чувственных Хабрачаночек!

Благодаря вашей поддержке я смог написать статьи про сериалы в мире IT. Вместе мы прошли через многое. В последней статье я попросил вас рассказать своё мнение о том, стоит ли мне писать статью про гиковские игры и вы снова поддержали меня. Спасибо за это!

Что же, как я и обещал — подборка 60+ игр для гиков перед вами. Сразу хочу оговорить один момент. Все мы гики. У кого-то есть любимые игры, которые могли сюда не попасть. Напишите о них в комментариях. Все ваши комментарии очень ценны и добавляют интереса в наш диалог. Часть из игр моей подборки непосредственно про IT и вокруг нас с вами, часть — не про IT, но гику эти игры наверняка понравятся. Часть игр чему-то учат, часть — просто веселят и развлекают.

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

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

Что же. Давайте не будем тянуть время и поговорим о подобранных мною для вас играх!


Total votes 53: ↑48 and ↓5+43
Comments83

Поиск контуров лица за одну миллисекунду с помощью ансамбля деревьев регрессии

Reading time18 min
Views6.6K


Перевод статьи подготовлен для студентов курса «Математика для Data Science»




Аннотация


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

Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments0

Apple в 2019 году — это Linux в 2000 году

Reading time3 min
Views144K
Примечание: этот пост — ироничное наблюдение на тему цикличности истории. Это самое наблюдение не несет какой-либо практической пользы, но в сути своей — весьма меткое, так что я решил, что им стоит поделиться с аудиторией. Ну и конечно же, встретимся в комментариях.



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

Но даже это не помогло: я получил все ту же ошибку.
Читать дальше →
Total votes 478: ↑439 and ↓39+400
Comments811

Знакомство с Neural ODE

Reading time20 min
Views35K

Neural Ordinary Differential Equations


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

Есть также и другой тип последовательных данных, это дискретные данные, например, данные NLP задач. Состояния в таких данных меняется дискретно: от одного символа или слова к другому.

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

На последней NIPS-конференции была представлена одна очень интересная статья, которая может помочь решить эту проблему. Авторы предлагают подход, который они назвали Нейронные Обыкновенные Дифференциальные Уравнения (Neural ODE).

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


Читать дальше →
Total votes 79: ↑76 and ↓3+73
Comments7

Неразгаданная тайна зрения

Reading time19 min
Views18K
Вопрос устройства зрения заметная часть нейробиологии. Данному вопросу посвящены огромные объемы литературы и четыре нобелевские премии, но в сложившейся ситуации нельзя не заметить то, что изложенное в учебниках устройство зрения млекопитающих не справляется с поставленной задачей. Цель данного эссе показать свод причин, почему не стоит закрывать на это глаза. По сути, будет предъявлен портрет тайны зрения, начиная от разнообразия мелких деталей в самом начале потока зрительной информации у млекопитающих, угрозы от их игнорирования, и заканчивая ворохом проблем в понимании обработки мозгом в конце пути.

Устройство системы зрения


На взгляд любого учебника о зрении мы видим в три этапа. Первый этап: свет попадает на сетчатку и преобразуется в нервное возбуждение фоторецепторов – сенсорных нейронов сетчатки. Кроме того глаз нормализует контрастность и яркость, фокусирует изображение.
Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments5

Начинаем FPGA на Python

Reading time5 min
Views35K
Технология FPGA (ПЛИС) в настоящее время обретает большую популярность. Растёт количество сфер применения: помимо обработки цифровых сигналов, FPGA используются для ускорения машинного обучения, в blockchain технологиях, обработке видео и в IoT.

Данная технология имеет один существенный минус: для программирования используются довольно сложные и специфичные языки описания цифровой аппаратуры Verilog и VHDL. Это осложняет вхождение новичка в FPGA и для работодателя найти специалиста с этими специфичными знаниями на рынке труда сложно. С другой стороны популярный высокоуровневый язык программирования Python с фреймворком MyHDL делают программирование FPGA простым и приятным. Тем более людей знающих Python на порядок больше специалистов владеющих Verilog/VHDL. Серией статей я хочу показать как легко и просто войти в область FPGA зная Python и начать делать настоящие сложные FPGA проекты на этом языке. Отмечу, что на ПЛИС python непосредственно не исполняется, а является инструментом для генерации прошивки.
Читать дальше →
Total votes 47: ↑45 and ↓2+43
Comments56

256 строчек голого C++: пишем трассировщик лучей с нуля за несколько часов

Reading time8 min
Views142K
Публикую очередную главу из моего курса лекций по компьютерной графике (вот тут можно читать оригинал на русском, хотя английская версия новее). На сей раз тема разговора — отрисовка сцен при помощи трассировки лучей. Как обычно, я стараюсь избегать сторонних библиотек, так как это заставляет студентов заглянуть под капот.

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

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

Итак, сегодня я покажу, как отрисовывать подобные картинки:


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

Понимание сверточных нейронных сетей через визуализации в PyTorch

Reading time10 min
Views30K
В нашу эру, машины успешно достигли 99% точности в понимании и определении признаков и объектов на изображениях. Мы сталкиваемся с этим повседневно, например: распознавание лиц в камере смартфонов, возможность поиска фотографий в google, сканирование текста со штрих-кода или книг с хорошей скоростью и т. д. Такая эффективность машин стала возможным благодаря особому типу нейронной сети, называемой сверточной нейронной сетью. Если вы энтузиаст глубокого обучения, вы, вероятно, слышали об этом, и вы могли разработать несколько классификаторов изображений. Современные фреймворки глубокого обучения, такие как Tensorflow и PyTorch, упрощают обучение машин изображениям. Однако все еще остается вопрос: как данные проходят через слои нейронной сети и как компьютер обучается на них? Чтобы получить четкое представление с нуля, мы погрузимся в свертку, визуализируя изображение каждого слой.

image
Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments8

Бессерверный статический сайт с помощью IPFS

Reading time5 min
Views26K
TL;DR: IPFS позволяет хостить статические сайты распределённо, доступ к которым можно осуществлять через публичные кеширующие гейты (прозрачные реверс-прокси) в интернете, без необходимости устанавливать программу посетителю. Такие сайты можно раздавать без маршрутизируемого («белого») статического IP-адреса (будет работать за NAT), они остаются работоспособными при кратковременном (несколько часов) отсутствии раздающих, за счет кеша на гейтах. К гейтам по желанию можно привязать свой домен, причём добавить DNS-записи можно на несколько гейтов одновременно, для повышения надёжности и балансировки нагрузки. Сайт могут скачать другие пользователи IPFS и помочь с раздачей.
IPFS отлично подходит для статических блогов, простых сайтов, файловых архивов (в качестве замены Bittorrent), а также просто для единовременной передачи больших файлов без предварительной загрузки их на какой-либо сервис.

Что такое IPFS?

IPFS — децентрализованная пиринговая система передачи файлов, по принципу работы похожая на BitTorrent, но с возможностью доступа через HTTP, для Web. Все скачиваемые пользователем файлы временно кешируются IPFS-демоном и раздаются другим пользователям, запрашивающим их. Важные файлы можно «прикрепить» (pin) к IPFS-демону, тогда они не исчезнут из кеша.
Читать дальше →
Total votes 61: ↑61 and ↓0+61
Comments32

NB-IoT: как он работает? Часть 1

Reading time6 min
Views55K
Устройства в стандарте NB-IoT могут работать до 10 лет от одной обычной батарейки. За счет чего? Мы собрали все самое главное об этой технологии. В этой статье расскажем о ее особенностях с точки зрения архитектуры сети радиодоступа, а во второй части — об изменениях в ядре сети, которые происходят при NB-IoT.

image

Технология NB-IoT многое унаследовала от LTE — начиная с физической структуры радиосигнала и заканчивая архитектурой. Все невозможно перечислить в одной статье, поэтому попробуем сфокусироваться на основных особенностях, ради которых и создавалась эта технология. Итак:

В чем отличия NB-IoT с точки зрения архитектуры сети радиодоступа?
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments32

Доступно о кватернионах и их преимуществах

Reading time13 min
Views206K

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

Концепция кватернионов была придумана ирландским математиком сэром Уильямом Роуэном Гамильтоном в понедельник 16 октября 1843 года в Дублине, Ирландия. Гамильтон со своей женой шёл в Ирландскую королевскую академию, и переходя через Королевский канал по мосту Брум Бридж, он сделал потрясающее открытие, которое сразу же нацарапал на камне моста.

$i^2=j^2=k^2=ijk=-1$




Памятная табличка на мосту Брум Бридж через Королевский канал в честь открытия фундаментальной формулы умножения кватернионов.

В этой статье я постараюсь объяснить концепцию кватернионов простым для понимания образом. Я объясню, как можно визуализировать кватернион, а также расскажу о разных операциях, которые можно выполнять с кватернионами. Кроме того, я сравню использование матриц, углов Эйлера и кватернионов, а затем попытаюсь объяснить, когда стоит использовать кватернионы вместо углов Эйлера или матриц, а когда этого делать не нужно.
Читать дальше →
Total votes 83: ↑83 and ↓0+83
Comments54

Текстовый редактор — это вам не высшая математика, тут думать надо

Reading time17 min
Views96K
Современные текстовые редакторы умеют не только бибикать и не давать выйти из программы. Оказывается, внутри них кипит очень сложный метаболизм. Хотите узнать, какие ухищрения предпринимаются для быстрого пересчета координат, как к тексту приделываются стили, фолдинги и софтврапы и как это всё обновляется, при чем тут функциональные структуры данных и очереди с приоритетами, а также как обманывать пользователя — добро пожаловать под кат!



В основе статьи — доклад Алексея Кудрявцева с Joker 2017. Алексей уже лет 10 пишет Intellij IDEA в JetBrains. Под катом вы найдете видео и текстовую расшифровку доклада.
Читать дальше →
Total votes 208: ↑206 and ↓2+204
Comments189

Моё разочарование в софте

Reading time11 min
Views388K

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


Я занимаюсь программированием уже 15 лет. Но в последнее время при разработке не принято думать об эффективности, простоте и совершенстве: вплоть до того, что мне становится грустно за свою карьеру и за IT-отрасль в целом.

Для примера, современные автомобили работают, скажем, на 98% от того, что физически позволяет нынешняя конструкция двигателя. Современная архитектура использует точно рассчитанное количество материала, чтобы выполнять свою функцию и оставаться в безопасности в данных условиях. Все самолёты сошлись к оптимальному размеру/форме/нагрузке и в основном выглядят одинаково.

Только в программном обеспечении считается нормальным, если программа работает на уровне 1% или даже 0,01% от возможной производительности. Ни у кого вроде нет возражений.
Total votes 505: ↑474 and ↓31+443
Comments2474

Как не стать ботом в Bittorrent DHT и других P2P сетях

Reading time2 min
Views30K
image

Сеть Bittorrent DHT позволяет найти источники торрента по хешу из магнет-ссылки. Сеть состоит из узлов которые могут быть как Bittorent клиентами так и вредоносными программами которые препятсвуют нормальной работе сети. Они мешают клиенту получить источники торрента, перенаправляют запросы на атакуемые узлы, заполняют список узлов бесполезными адресами.

Пока я работал над счетчиком пиров и сидов(DHT Scrape) в этой сети я наткнулся на такие виды атаки.
Читать дальше →
Total votes 30: ↑23 and ↓7+16
Comments13

Information

Rating
Does not participate
Registered
Activity