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

Software Engineer

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

Нейросеть, что это такое и как создать свою? Детальная инструкция

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

В поисковых системах ежедневно растет количество запросов, что такое нейросеть (далее — НС). Прежде всего это связано с растущим интересом к технологиям на базе искусственного интеллекта (далее — ИИ). Многие из нас даже не подозревают, что мы практически ежедневно используем модели глубокого обучения. Запросы Siri или взаимодействие с чат-ботами в мессенджерах — один из ярких примеров использования НС. 

Мало кто из нас знает, что нейронки существуют уже 80 лет. Первая НС была представлена в 1943 году Уорреном Маккалоу и Уолтером Питтсом. В ее основе лежала пороговая логика для построения вычислительных моделей. Но с годами подходы к реализации нейронных сетей изменились, как и технологии, которые используются для их разработки. Углубимся в основы НС и разберемся с ключевыми вопросами. 

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

Импортозамещение, которое мы потеряли (ч.2): АСУ ТП по телеграфному кабелю, нейронные сети и РСУБД в 60-х

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

Пилотная статья понравилась комьюнити, а значит продолжаем рассказывать о ранних советских разработках, предвосхитивших современные достижения отрасли, а порой, опередивших своё время. Наш рассказ будет не полным без упоминания проектов АН УССР, наиболее важная часть которых была реализована в процессе разработки и использования ЭВМ “Киев”. Под катом речь пойдет о проектах управления технологическими процессами на расстоянии 500 км, разработке и применении прообраза современных реляционных систем управления базами данных, а также первых советских опытах по машинному обучению и созданию искусственного интеллекта в 1950-х - 1960-х.

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

Джон Кармак взялся за сильный ИИ — и у него особый подход. Список фундаментальной литературы для начала

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

В рубрике «Выдающиеся программисты 21 века» уже была статья про гения программирования Джона Кармака, создателя движков для Doom, Quake и других культовых игр. Потом он занялся разработкой ракет (они в Armadillo Aerospace реализовали вертикальную посадку раньше SpaceX), а затем — систем VR, софта для Oculus Rift и других устройств. Сейчас началась четвёртая фаза в его карьере.

В интервью изданию Dallas Innovates 52-летний Кармак рассказал о новом проекте — системе сильного ИИ (AGI), над которым он работает самостоятельно, без участия больших корпораций, как отшельник в своём особняке в Далласе.

Сильный ИИ общего назначения не будет уступать среднему человеку в понимании происходящего и решении проблем. По оценке Кармака, с вероятностью 60% такая система (альфа-версия) будет создана до 2030 года, с вероятностью 95% — до 2050 года. Это самая важная и интересная задача, которая сейчас стоит перед человечеством.
Читать дальше →
Всего голосов 99: ↑96 и ↓3+93
Комментарии94

Вы не умеете играть в Героев 3: 13 карт S-размера, которые вы не пройдете за вечер

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

Впервые Герои появились в моей жизни лет в 7. Как сейчас помню, зимние каникулы, тётя, старше меня на 16 лет (невероятно взрослая и крутая, слушает Металлику, у нее даже есть косуха), запускает с диска «Герои Меча и Магии III: Полное собрание». Я в предвкушении устраиваюсь сзади на диване, впереди лучшие часы для нас двоих. Для меня Геройский стрим (поиграть меня пустят только через пару лет), а для неё — несколько часов тишины.

За последние 15 лет моя игра в «Герои» не сильно менялась. Ну, сложность повыше, ну, компов побольше. Те же автосгенерированные карты, только сбоку. Если нападать, то на армию не сильно больше моей. Если магия, то жахнуть от души «Цепью молний», на крайний случай «Армагеддон», (если Черные Драконы есть). Но смысл один: строим Ратушу, захватываем Лесопилку, подбираем сундучок, скупаем прирост, отвоёвываем замок у компа. Приелось.

Сразу скачивать карту XXL-убийцу самооценки было стрёмно, а узнать, как играют тру-пацаны — интересно. Оказалось, некоторые картоделы давно уже создают карты-пазлы, с боями на подумать знание поведения ИИ, с использованием багов игры или просто на хитрую логистику. Таких карт-загадок меньше и они не очень популярны, но я нашла 13 шедевров Heroes Might and Magic III S-размера. (Будет очень много скриншотов).

Я веду ламповый Telegram-канал GameDEVils и блог на Substack . Заглядывайте в гости, я делюсь там материалами про геймдизайн, разработку и историю игр ^__^
Читать дальше →
Всего голосов 238: ↑229 и ↓9+220
Комментарии106

Величайшие программисты 21 века. Джон-Движок Кармак

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

Джон Кармак вместе с тёзкой Джоном Ромеро стали родоначальниками игрового жанра FPS. На слабеньких 486SX, без видеокарт (!) они выдали настоящий 3D-шутер без лагов с эффектом присутствия, что стало бомбой для 1993 года — в эпоху пошаговых стратегий и отсутствия скроллинга. Казалось, тут вмешалась чёрная магия…

В принципе, примерно так и есть. В разработке Wolfenstein 3D, Doom и движка Quake Джон Кармак действительно использовал кучу нестандартных приёмов вроде конверсии указателей или выхода за границы объектов, чтобы в циклах получать доступ к другому объекту, который гарантированно идёт следом.

Уровень программирования Doom и Quake до сих пор считается непревзойдённым образцом хакерских оптимизаций, а сам Джон Кармак — эталон сверхэффективного разработчика. Благодаря высочайшему качеству программирования Doom стал феноменом, который изменил мир.
Читать дальше →
Всего голосов 121: ↑117 и ↓4+113
Комментарии63

Эксплойтинг браузера Chrome, часть 1: введение в V8 и внутреннее устройство JavaScript

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


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

Работая дверями в Интернет, браузеры в то же время создают существенные угрозы целостности персональных вычислительных устройств. Почти ежедневно мы слышим новости наподобие "баг Google Chrome активно используется как Zero-Day" или "Google подтвердила четвёртый эксплойт Zero-Day Chrome за 2022 год". На самом деле, эксплойты браузеров не представляют собой ничего нового, их находят уже долгие годы, начиная с первого эксплойта для удалённого исполнения кода, задокументированного как CVE-1999-0280. Первым потенциально публичным раскрытием браузерного эксплойта, используемого в реальных условиях, стал эксплойт Aurora браузера Internet Explorer, который атаковал Google в декабре 2010 года.
Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии3

Уроки компьютерного зрения. Оглавление

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

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 1.

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 2.

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 3.

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 4.

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 5.

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 6.

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 7.

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 8.

Читать далее
Всего голосов 18: ↑16 и ↓2+14
Комментарии4

1. Теория информации + ML. Энтропия

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

Теория Информации и Machine Learning мне видятся как интересная пара областей, глубокая связь которых часто неизвестна ML инженерам, и синергия которых раскрыта ещё не в полной мере.

Начнём с базовых понятий Энтропии, Информации в сообщении, Mutual Information, пропускной способности канала. Далее будут материалы про схожесть задач максимизации Mutual Information и минимизации Loss-а в регрессионных задачах. Затем будет часть про метрику Фишера, геодезические и градиентные методы, и их связь с гауссовскими процессами.

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

Объёмный рендеринг в WebGL

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

Рисунок 1. Пример объёмных рендеров, выполненных описанным в посте рендерером WebGL. Слева: симуляция пространственного распределения вероятностей электронов в высокопотенциальной молекуле белка. Справа: томограмма дерева бонсай. Оба набора данных взяты из репозитория Open SciVis Datasets.

В научной визуализации объёмный рендеринг широко используется для визуализации трёхмерных скалярных полей. Эти скалярные поля часто являются однородными сетками значений, представляющими, например, плотность заряда вокруг молекулы, скан МРИ или КТ, поток огибающего самолёт воздуха, и т.д. Объёмный рендеринг — это концептуально простой метод превращения таких данных в изображения: сэмплируя данные вдоль пущенных из глаза лучей, и назначив каждому сэмплу цвет и прозрачность, мы можем создавать полезные и красивые изображения таких скалярных полей (см. Рисунок 1). В GPU-рендерере такие трёхмерные скалярные поля хранятся как 3D-текстуры; однако в WebGL1 3D-текстуры не поддерживаются, поэтому для их эмуляции в объёмном рендеринге требуются дополнительные хаки. Недавно в WebGL2 появилась поддержка 3D-текстур, позволяющая реализовать браузере элегантный и быстрый объёмный рендерер. В этом посте мы обсудим математические основы объёмного рендеринга и расскажем о том, как реализовать его на WebGL2, чтобы создать интерактивный объёмный рендерер, полностью работающий в браузере! Прежде чем начать, вы можете протестировать описанный в этом посте объёмный рендерер онлайн.
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии0

Разбираемся с Redis

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

Этот материал представляет собой глубокое исследование всего, что связано с Redis. В частности — речь пойдёт о различных способах организации хранилищ Redis, о постоянном хранении данных, о форках процессов.

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

Заблуждения программистов о картах

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


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

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

Заблуждение 1. Форма Земли — это просто


Шар — множество точек в пространстве, удалённых от центра на расстояние не выше радиуса. Однако хотя бы из-за суточного вращения форма нашей планеты отличается от идеального шара. Планета сплюснута у полюсов и утолщена на экваторе, а также обладает рельефом и испытывает циклы приливов и отливов.
Читать дальше →
Всего голосов 314: ↑310 и ↓4+306
Комментарии114

Спектрометр из смартфона, картона и осколка DVD-диска: смотрим на спектры лампочек, фонариков, солнца

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

Всем привет! Продолжаем придумывать, как можно использовать устаревший смартфон в новом качестве. Эта статья подготовлена по материалам второго сезона видеокурса “Galaxy Upcycling - новая жизнь старого смартфона”. В  уроках первого сезона мы уже сделали 3D-голограмму, проектор (и написали об этом статью на Хабр), микроскоп, часы, гирлянду, а сегодня делаем еще один исследовательский прибор.

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

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

Звуковой кейлоггер. Определяем нажатые клавиши по звуку

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


Не секрет, что у каждой клавиши на клавиатуре — уникальное звучание, которое зависит от её расположения и других факторов. Теоретически, анализ спектрограммы позволяет отличить клавиши друг от друга, а по частотности нажатий определить, какому символу соответствует каждый звук. Задача распознавания звуков упрощается тем, что при наборе связного текста символы хорошо прогнозируются по словарю (а именно, по частотности n-грамм для текстов).
Читать дальше →
Всего голосов 23: ↑21 и ↓2+19
Комментарии20

Как это устроено: атомные часы

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

Привет Хабр! Сегодня у нас выходит статья в Nature Physics, в которой мы рассказываем про один интересный апгрейд для атомных часов. А нашу предыдущую работу по этой теме — в тот раз в самом Nature — даже упоминали пару раз на Хабре. Но то ли наш пресс-релиз оказался слишком сложным, то ли тема слишком специфичной, короче говоря, я из тех заметок вряд ли бы что-либо понял. Поэтому сегодня попробую простым языком рассказать про то, как устроены атомные часы и что интересного нас ждет в ближайшем будущем.



Оптические атомные часы в университете Токио. Credit: H. Katori

Читать дальше →
Всего голосов 262: ↑261 и ↓1+260
Комментарии48

Атаки на GraphQL

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

В ходе пентеста веб-приложений специалист по тестированию на проникновение достаточно часто сталкивается с необходимостью тестировать API. Как правило это REST API, про тестирование которого написано уже много. Однако все чаще и чаще встречается API на основе GraphQL.

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

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

SQL HowTo: обход дерева иерархии «по курсору» через двойную рекурсию

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

В предыдущих статьях "PostgreSQL Antipatterns: навигация по реестру", "PostgreSQL 13: happy pagination WITH TIES" и "SQL HowTo: курсорный пейджинг с неподходящей сортировкой" я уже рассматривал проблемы навигации по данным, представленных в виде плоского реестра.

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

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

10 лучших алгоритмов 20 века

Время на прочтение7 мин
Количество просмотров45K
Прим. Эта статья была опубликована в майском номере 2000 года журнала SIAM. На рубеже веков появилась «мода» на подведение итогов уходящего столетия. И алгоритмы этой участи не избежали. В этой статье авторы делают обзор 10 лучших алгоритмов 20 века. Возможно, вам будет интересно узнать, какие алгоритмы, по мнению авторов списка, внесли наибольший вклад в развитие науки.

Algos — греческое слово, означающее боль. Algor — латинское слово, означающее холод. Но ни то, ни другое не является корнем слова «алгоритм», которое происходит от имени Аль-Хорезми – арабского ученого девятого века – чья книга «al-jabr wa’l muqabalah» (Китаб аль-джебр ва-ль-мукабала) переросла современные учебники по алгебре для средней школы. Аль-Хорезми подчеркивал важность методических процедур для решения задач. Будь он сегодня здесь, то, несомненно, был бы впечатлен вершинами математического метода, названного в его честь.

Часть из лучших алгоритмов компьютерной эры были освещены в январско-февральском выпуске 2000 года журнала Computing in Science & Engineering — совместном издании Американского института физики и Компьютерного общества IEEE. Приглашенные редакторы Jack Dongarra (Джек Донгарра) из Университета Теннесси и Francis Sullivan (Фрэнсис Салливан) из Института оборонного анализа составили список из 10 алгоритмов, который они назвали «Top Ten Algorithms of the Century».

«Мы попытались собрать 10 алгоритмов, оказавших наибольшее влияние на развитие и практику науки и техники в 20 веке», — пишут Донгарра и Салливан. По признанию авторов, как и в любом рейтинге, их выборы неизбежно будут спорными. Когда дело доходит до выбора лучшего алгоритма, кажется, что он и вовсе не существует.

Итак, вот список 10 лучших алгоритмов в хронологическом порядке. (Все даты и имена стоит воспринимать как аппроксимацию первого порядка. Большинство алгоритмов формируются в течение времени при участии многих ученых).
Читать дальше →
Всего голосов 48: ↑47 и ↓1+46
Комментарии44

Решение проблемы в управлении конкурентными вычислениями

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

От переводчиков. Эту коротенькую статью Дейкстры, которой уже 57 лет, Лесли Лампорт назвал «работой, которая начала всю область конкурентных и распределенных алгоритмов». Но на Хабре её до сих пор вроде бы не переводили. Поскольку мы скоро проведём конференцию Hydra, которая посвящена именно этой области, решили восполнить этот пробел. Кстати, как думаете, как лучше переводить на русский слово concurrent? Мы выбрали вариант «конкурентный», но консенсуса тут вроде бы нет.

Эдсгер В. Дейкстра
Технический университет Эйндховена, Нидерланды

Ряд преимущественно независимых последовательно-циклических процессов с ограниченными средствами связи друг с другом может быть реализован таким образом, что в любой момент времени один и только один из них находится в «критической секции» своего цикла.

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

Как отлаживать bash-script-ы по шагам или, возможно, самая короткая статья о программировании/отладке на Хабре

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

Мне всегда хотелось иметь возможность отлаживать bash-scripts так же, как и любой другой код, т.е. по шагам, и bash такую возможность предусмотрел, но о ней не все знают. Несмотря на довольно большой опыт использования Linux, я дошёл до неё только недавно.

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

Используем клиентский процессор по максимуму. Часть 1: Rust + WebAssembly

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

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

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

Прирост производительности при использовании всех техник оптимизации по сравнению с реализацией на чистом JS может составлять ~1000%: от 8–9 до 100–110 фпс. Это можно проверить на интерактивном онлайн-демо, позволяющем также поиграться с числом потоков, способом вычислений и формой фрактала.
Читать дальше →
Всего голосов 64: ↑64 и ↓0+64
Комментарии9

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность