Pull to refresh
-18
0.1
Send message

React + Three.js. Creating your own 3D shooter. Part 1

Level of difficulty Medium
Reading time 30 min
Views 5.7K

Hello, dear users of the IT world!

In the era of active development of web technologies and interactive applications, 3D-graphics is becoming more and more relevant and in demand. But how to create a 3D application without losing the advantages of web development? In this article, we will look at how to combine the power of Three.js with the flexibility of React to create your own game right in the browser.

This article will introduce you to the React Three Fiber library and teach you how to create interactive 3D games.

Read more
Total votes 4: ↑3 and ↓1 +2
Comments 0

Задача коммивояжера (TSP) точное решение — метод ветвей и границ

Reading time 17 min
Views 16K

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

Я говорю про NP-трудные задачи (NP-трудность - недетерминированная полиномиальная трудность по времени) и на одной из данного класса хочу акцентировать ваше внимание. Задаче коммивояжера.

Мы не будем рассматривать эвристические алгоритмы, нам нужно точное решение.

Читать далее
Total votes 32: ↑32 and ↓0 +32
Comments 42

Отказоустойчивый кластер для балансировки нагрузки

Reading time 8 min
Views 56K

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

Читать дальше →
Total votes 16: ↑14 and ↓2 +12
Comments 16

Про двумерную упаковку: offline алгоритмы

Reading time 12 min
Views 67K
Сегодня, дорогой Хабр, я расскажу тебе историю о комбинаторной оптимизации.
Издревле (как минимум, с начала прошлого века) математики задавались вопросом, как оптимально разместить некоторое количество пива нужных и полезных предметов в рюкзаке. Была сформулирована задача о ранце и ее подзадачи — тысячи их! — которые заинтересовали информатиков, криптографов и даже лингвистов.

От задачи о ранце отпочковалась задача об упаковке в контейнеры (Bin Packing Problem), одной из разновидностей которых является задача двумерной упаковки (2-Dimensional Bin Packing). Снова отбросив несколько вариаций, мы наконец придем к двумерной упаковке в полуограниченную полосу (2-Dimensional Strip Packing, 2DSP). Чувствуете, сколько интересного уже осталось за кадром? Но мы еще не закончили продираться сквозь классификацию. У 2DSP есть два варианта входных данных: когда набор упаковываемых объектов известен заранее (offline-проблема) и когда данные поступают порциями (online-проблема).

В этой статье рассматриваются алгоритмы решения offline-варианта 2DSP. Под катом немного матчасти и много картинок с цветными квадратиками.

В чем, собственно, проблема?


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

Audio over Bluetooth: most detailed information about profiles, codecs, and devices

Reading time 24 min
Views 303K
XKCD comic. How standards proliferate. SITUATION: there are 14 competing standards. Geek: 14?! Ridiculous! We need to develop one universal standard that covery everyone's use cases. Geek's girlfriend: yeah! SOON: Situation: there are 15 competing standards.

This article is also available in Russian / Эта статья также доступна на русском языке

The mass market of smartphones without the 3.5 mm audio jack changed headphones industry, wireless Bluetooth headphones have become the main way to listen to music and communicate in headset mode for many users.
Bluetooth device manufacturers rarely disclose detailed product specifications, and Bluetooth audio articles on the Internet are contradictory and sometimes incorrect. They do not tell about all the features, and often publish the same false information.
Let's try to understand the protocol, the capabilities of Bluetooth stacks, headphones and speakers, Bluetooth codecs for music and speech, find out what affects the quality of the transmitted audio and the delay, learn how to capture and decode information about supported codecs and other device features.

TL;DR:

  • SBC codec is OK
  • Headphones have their own per-codec equalizer and post processing configuration
  • aptX is not as good as the advertisements say
  • LDAC is a marketing fluff
  • Voice audio quality is still low
  • Browsers are able to execute audio encoders compiled to WebAssembly from C using emscripten, and they won't even lag.

Total votes 24: ↑23 and ↓1 +22
Comments 8

Дайджест управления продуктом за декабрь и январь

Reading time 11 min
Views 2.6K


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

Как обычно, продолжаю экспериментировать с форматами и предлагаю вашему вниманию новый выпуск продуктового дайджеста. Больше материалов о продакт-менеджменте, развитии и прочем на моем телеграм-канале

Давайте разбираться последовательно со следующими темами

Чего я хочу? — сформулируем список хотелок, а не целей, объясню позже. 

Что я умею?  — сформулируем список навыков и умений, над которыми стоит работать. 

Истории из жизни — поделюсь своим опытом планирования.

Делитесь тем, а как вы планируете свой год? Приятного прочтения.
Читать дальше →
Total votes 18: ↑18 and ↓0 +18
Comments 0

Тюнинг переходных отверстий печатных плат

Reading time 10 min
Views 46K
Давайте поговорим про проектирование переходных отверстий — для серьёзной электроники их качество очень важно. В начале статьи я осветил факторы, влияющие на целостность сигнала, а потом показал примеры расчёта и тюнинга импеданса одиночных и дифференциальных переходных отверстий.


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

Переход Tinder на Kubernetes

Reading time 10 min
Views 22K
Прим. перев.: Сотрудники всемирно известного сервиса Tinder недавно поделились некоторыми техническими деталями миграции своей инфраструктуры на Kubernetes. Процесс занял почти два года и вылился в запуск на K8s весьма масштабной платформы, состоящей из 200 сервисов, размещённых на 48 тысячах контейнеров. С какими интересными сложностями столкнулись инженеры Tinder и к каким результатам пришли — читайте в этом переводе.

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

Мой первый компилятор на LLVM

Reading time 4 min
Views 25K
Это руководство посвящено написанию простейшего компилятора на LLVM. Никакой предварительной подготовки не требуется.



Входным языком нашего компилятора будет BF. Это классический «игрушечный» язык для компиляторов, и даже есть компилятор BF в примерах к LLVM! В этом посте я приведу процесс написания компилятора с пояснениями.
Читать дальше →
Total votes 37: ↑35 and ↓2 +33
Comments 11

DevBoy — как я создал проект устройства с открытым исходным кодом и запустил проект на Kickstarter

Reading time 3 min
Views 45K
Привет, друзья!

Меня зовут Николай, читателем Хабра являюсь давно, а вот с написанием статей как-то не сложилось. Пора исправлять эту ситуацию, тем более что как раз имеется повод — только что я запустил компанию на Kickstarter для реализации устройства с открытым исходным кодом.



Кому интересно — прошу под кат.
Читать дальше →
Total votes 148: ↑143 and ↓5 +138
Comments 101

Математические основы Auto Layout

Reading time 17 min
Views 29K
Многие разработчики считают, что Auto Layout — это тормозная и проблемная штука, и крайне сложно заниматься его отладкой. И хорошо, если этот вывод сделан на основе собственного опыта, а то бывает и просто «я слышал, не буду даже и пытаться с ним подружиться».

Но возможно, причина не снаружи, а внутри. Например, самые опасные птицы в мире казуары не будут атаковать людей без причины, только ради самообороны. Поэтому попробуйте на секунду предположить, что это не Auto Layout плохой, а вы его не достаточно хорошо понимаете и не умеете готовить. Так поступил Антон Сергеев и углубился в теорию, чтобы во всем точно разобраться. Нам предлагается готовая выжимка про математические основы Auto Layout.



Total votes 39: ↑38 and ↓1 +37
Comments 9

К вопросу о сдвигах, знаках и быстродействии МК

Reading time 5 min
Views 8.2K

«Найди всему причину и ты многое поймешь»


Возможно, мои постоянные читатели (ну не может быть, чтобы их не было) помнят, что я как то в своем посте недоумевал по поводу того, что при описании регистров внешних устройств используется атрибут unsigned. В комментариях было предположено, что это сделано, чтобы избегать неопределенного поведения при сдвигах и я согласился. Как я недавно обнаружил, есть еще одна причина для подобного использования атрибута и она может быть приложена не только к регистрам, но и к обычным переменным.

Итак, мы начинаем.
Читать дальше →
Total votes 39: ↑38 and ↓1 +37
Comments 36

Blind Deconvolution — автоматическое восстановление смазанных изображений

Reading time 6 min
Views 146K
Смазанные изображения — один из самых неприятных дефектов в фотографии, наравне с расфокусированными изображениями. Ранее я писал про алгоритмы деконволюции для восстановления смазанных и расфокусированных изображений. Эти, относительно простые, подходы позволяют восстановить исходное изображение, если известна точная траектория смаза (или форма пятна размытия).
В большинстве случаев траектория смаза предполагается прямой линией, параметры которой должен задавать сам пользователь — для этого требуется достаточно кропотливая работа по подбору ядра, кроме того, в реальных фотографиях траектория смаза далека от линии и представляет собой замысловатую кривую переменной плотности/яркости, форму которой крайне сложно подобрать вручную.


В последние несколько лет интенсивно развивается новое направлении в теории восстановления изображений — слепая обратная свертка (Blind Deconvolution). Появилось достаточно много работ по этой теме, и начинается активное коммерческое использование результатов.
Многие из вас помнят конференцию Adobe MAX 2011, на которой они как раз показали работу одного из алгоритмов Blind Deconvolution: Исправление смазанных фотографий в новой версии Photoshop
В этой статье я хочу подробнее рассказать — как же работает эта удивительная технология, а также показать практическую реализацию SmartDeblur, который теперь тоже имеет в своем распоряжении этот алгоритм.
Внимание, под катом много картинок!
Читать дальше →
Total votes 243: ↑239 and ↓4 +235
Comments 150

Восстановление расфокусированных и смазанных изображений. Повышаем качество

Reading time 5 min
Views 210K
Представляю вашему вниманию заключительную статью из трилогии «Восстановление расфокусированных и смазанных изображений». Первые две вызвали заметный интерес — область, действительно, интересная. В этой части я рассмотрю семейство методов, которые дают лучшее качество, по сравнении со стандартным Винеровским фильтром — это методы, основанные на Total Variaton prior.
Также по традиции я выложил новую версию SmartDeblur (вместе с исходниками в open-source) в которой реализовал этот метод. Итоговое качество получилось на уровне коммерческих аналогов типа Topaz InFocus. Вот пример обработки реального изображения с очень большим размытием:


Читать дальше →
Total votes 355: ↑352 and ↓3 +349
Comments 86

Семантика копирования и управление ресурсами в C++

Reading time 28 min
Views 52K

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



Читать дальше →
Total votes 45: ↑44 and ↓1 +43
Comments 83

Уже год, как в домашних сетевых хранилищах My Cloud от WD зияет дыра

Reading time 2 min
Views 11K
image
Комикс xkcd

В популярных домашних сетевых хранилищах My Cloud от компании Western Digital обнаружена уязвимость (CVE-2018-17153), она позволяет атакующему обойти механизм аутентификации и создать административную сессию, привязанную к его IP-адресу.

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

Ремко Вермелен, исследователь в области информационной безопасности, обнародовал все детали уязвимости в популярных устройствах Western Digital My Cloud. На этот шаг эксперт пошел тогда, когда компания после нескольких его обращений не устранила брешь и 15 месяцев спустя.

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


Total votes 34: ↑32 and ↓2 +30
Comments 9

Английский язык: взгляд инженера

Reading time 13 min
Views 90K

ДИСКЛЕЙМЕР


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

Здесь приводится опыт, который выдернул меня из состояния «читаю со словарем».




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

Возьмем такой предмет, как английский язык. Там куча понятий: 12 времен глагола, страдательный залог, причастия и т.п. Кто их ввел? Видимо, некие ученые мужи, для которых английский язык был РОДНЫМ. Они жили себе в каком-нибудь Oxford’e или в Cambridg’e и вряд ли знали русский язык.

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

Вспомните, как вы в школе изучали русский язык. Подлежащее, сказуемое, дополнение, определение… и штук 200 правил, из которых куча исключений, которые все благополучно забывают, кроме собственно учителей русского. И которые потом нужны – максимум – при разборках с бюрократическими документами («казнить нельзя помиловать»).

Английская грамматика – туда же – что-то академическое и малополезное при изучении языка с нуля. Для человека, который более-менее свободно умеет стыковать из английских слов фразу, нужно просто учить новые слова.

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

Статья ориентирована именно на таких.
Читать дальше →
Total votes 95: ↑77 and ↓18 +59
Comments 288

Simple Solder MK936 SMD. Паяльная станция на SMD-компонентах своими руками

Reading time 5 min
Views 27K
В этой статье мы хотим познакомить вас с проектом паяльной станции, которую каждый может собрать своими руками.

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

Собрав ее, вы получите опыт работы с компонентами поверхностного монтажа (SMD) и, конечно, полезное устройство.


Total votes 32: ↑32 and ↓0 +32
Comments 146

Влияние частоты сигнала на энергетику радиолинков в свободном пространстве

Reading time 8 min
Views 19K

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


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

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

Information

Rating
2,360-th
Registered
Activity