Pull to refresh
1
0
Send message

Анатомия KD-Деревьев

Reading time 14 min
Views 47K
image

Эта статья полностью посвящена KD-Деревьям: я описываю тонкости построения KD-Деревьев, тонкости реализации функций поиска 'ближнего' в KD-Дереве, а также возможные 'подводные камни', которые возникают в процессе решения тех или иных подзадач алгоритма. Дабы не запутывать читателя терминологией(плоскость, гипер-плоскость и т.п), да и вообще для удобства, полагается что основное действо разворачивается в трехмерном пространстве. Однако же, где нужно я отмечаю, что мы работаем в пространстве другой размерности. По моему мнению статья будет полезна как программистам, так и всем тем, кто заинтересован в изучении алгоритмов: кто-то найдет для себя что-то новое, а кто-то просто повторит материал и возможно, в комментариях дополнит статью. В любом случае, прошу всех под кат.
Читать дальше →
Total votes 32: ↑32 and ↓0 +32
Comments 11

Создание шейдеров

Reading time 27 min
Views 187K
Освоить создание графических шейдеров — это значит взять под свой контроль всю мощь видепроцессора с его тысячами параллельно работающих ядер. При таком способе программирования требуется другой образ мышления, но раскрытие его потенциала стоит потраченных усилий.

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


Сцена из Minecraft, до и после добавления нескольких шейдеров.

Задача этого туториала


Иногда программирование шейдеров представляется загадочной чёрной магией и его часто понимают неправильно. Существует множество примеров кода, демонстрирующих создание невероятных эффектов, но в которых практически нет объяснений. В своём руководстве я хочу восполнить этот пробел. Я сосредоточусь в основном на базовых принципах создания и понимания кода шейдеров, чтобы вы смогли с лёгкостью настраивать, сочетать или писать свои собственные шейдеры с нуля!
Total votes 105: ↑105 and ↓0 +105
Comments 27

50 подкастов на тему технологий и управления проектами

Reading time 3 min
Views 27K


Мы подготовили адаптированную подборку из 50 подкастов (на русском и английском), призванных поспособствовать развитию вашего стартапа или карьеры. В нашем списке вы найдете передачи о продуктивной работе, наиболее частых ошибках начинающих предпринимателей, историях успеха и многом другом.
Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Comments 12

Я смог и вы сможете: делаем RPG на JavaScript

Reading time 6 min
Views 38K
image

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

Я боялся использовать объекты, например. Они были такой большой страшной вещью, которую я откладывал на потом. Но сейчас я использую их все время.

Я собираюсь показать вам все шаги, через которые я прошел, при создании моей ролевой игры в JavaScript.

Имейте в виду, что я новичок (всего 2 месяца в программировании), поэтому некоторые мои решения можно улучшить. Я же постараюсь дать вам основы, с которых можно начать.
Total votes 35: ↑21 and ↓14 +7
Comments 23

30 толковых книг по бизнесу, саморазвитию и творчеству, которые изменили мою жизнь

Reading time 5 min
Views 188K


Полтора года назад я принял вызов прочитать 100 книг за год. Авантюра полностью себя не оправдала, так как некоторые книги я перечитывал, но однозначно оказалась полезной. По итогам последних двух лет я составил список книг, которые каким-то образом повлияли на мою жизнь. Составлял я его для себя, но позже решил, что он пригодиться и вам.
Читать дальше →
Total votes 44: ↑33 and ↓11 +22
Comments 49

Как купить акции ИТ-компаний до, во время и после IPO

Reading time 4 min
Views 57K
image

В комментариях к нашим прошлым материалам (об IPO и выходе на биржу концерна Alibaba) читатели задавали вопросы о том, как можно поучаствовать в этих размещениях и стать владельцем акций известных компаний. Сегодня мы рассмотрим данный вопрос подробнее.
Читать дальше →
Total votes 37: ↑34 and ↓3 +31
Comments 12

Создаем игру для WebGL с помощью Unity 5 и JavaScript

Reading time 10 min
Views 51K


Unity – это кроссплатформенный игровой движок, позволяющий создавать игры для ПК, консолей, мобильный устройств и веб-сайтов. Последняя версия движка (Unity 5) имеет возможность экспорта в WebGL, благодаря чему разработчики могут без труда публиковать свои игры в вебе. Как следует из названия, данный экспортер использует WebGL – JavaScript API для рендеринга интерактивной компьютерной 3D графики, а также asm.js – подмножество JavaScript, которое было разработано компанией Mozilla и преподносилось как «язык ассемблера для веба». Больше информации о Asm.js и WebGL для Unity и Unreal Engine доступно здесь.

В этом уроке я хочу показать, как настроить работу с Unity. А также продемонстрирую, как создать простую игру на Unity с помощью JavaScript и выполнить ее экспорт для веба.
Читать дальше →
Total votes 23: ↑19 and ↓4 +15
Comments 28

Легко начать, закончить трудно или про смерть стартапов

Reading time 10 min
Views 20K
Вот уже 11 лет я занимаюсь веб-разработкой и интернет-маркетингом. Был как на стороне заказчика, так и на стороне исполнителя. Своими руками когда-то проектировал, верстал, программировал, тестировал, продвигал, затем управлял проектами, после учил это делать других, а сейчас я их придумываю и запускаю. Единственное, что я никогда не делал своими руками — это дизайн. Другими словами, я не просто видел жизненный цикл проекта изнутри, я участвовал почти во всех этапах разработки, часто в довольно больших проектах. И вот, видя всю кухню изнутри, я постоянно наблюдаю одни и те же причины успехов и поражений. В этой статье я попытаюсь рассказать, что я увидел за 11 лет работы и более 100 стартапов, которых я касался и как же все же создать большой и успешный проект.

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


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

Как купить акции IT-компаний на зарубежных биржах? (часть 2)

Reading time 18 min
Views 136K
Stock Investing for Dummies (theory)В первой части этой статьи мы рассмотрели теоретические основы торговли акциями на американских фондовых рынках (NASDAQ, NYSE, AMEX). Ознакомились с основными понятиями, определениями и принципами. Если во второй части что-то будет непонятно, то, возможно, вы не слишком внимательно ознакомились с первой частью. Всегда можете вернуться туда и что-то уточнить.

Во второй части я хотел сформулировать и изложить пошаговое практическое руководство, т.е. некий HowTo о том, как купить какие-то конкретные акции на бирже NASDAQ или NYSE. Допустим, вы захотели купить акции какой-то конкретной компании, например, Google, Apple, Microsoft, Yandex, Intel или Tesla Motors с целью инвестиций (в расчёте на рост стоимости этих акций в будущем).

Что для этого нужно, и с чего вообще начать?
Читать дальше →
Total votes 34: ↑33 and ↓1 +32
Comments 20

Как купить акции IT-компаний на зарубежных биржах? (часть 1)

Reading time 45 min
Views 264K
Stock Investing for Dummies (theory)Многие из вас, читая на Хабре статьи об успешных IT-фирмах и быстро развивающихся высокотехнологичных компаниях, наверняка, задумывались о том, чтобы инвестировать свои деньги в их акции с целью получения прибыли, когда через несколько месяцев или даже лет рыночная стоимость этих акций заметно вырастет.

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

Но в итоге я всё же сделал усилие над собой: сначала немного вник в азы торговли акциями, а потом наконец решился и начал торговать акциями на фондовых рынках США (NYSE, NASDAQ, AMEX). И, самое главное, я понял, что купить акции — это не так уж и сложно, как казалось раньше, и даже не так затратно (в плане накладных расходов), как я предполагал. И в этой статье я хочу поделиться исключительно своим опытом в данной области в виде общих теоретических сведений и практического руководства (HOWTO) для новичков.

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

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

Разделил статью на две части:
  1. В первой части рассмотрим теоретические основы торговли акциями.
  2. Во второй части будет практическое руководство для новичков по покупке и продаже акций.
Кто заинтересовался, добро пожаловать под кат.
Total votes 42: ↑41 and ↓1 +40
Comments 59

Транслируйте вашу музыку в любую точку земли и делитесь ей с друзьями

Reading time 3 min
Views 3K
Subsonic — свободный медиа плеер
использующий веб-интерфейс для воспроизведения музыки или ваш любимый проигрователь.

Demo вы можете попробовать прямо сейчас.

Если понравилось - следуем далее
Total votes 12: ↑4 and ↓8 -4
Comments 7

Gource — визуализируем историю работы над проектом

Reading time 1 min
Views 22K
Спешу рассказать хабрасообществу о, относительно новом, дьявольски завораживающем проекте Gource которое еще не упоминалось. Это приложение позволяет визуализировать историю изменений в системе контроля версии. Отрисовывает невероятно красиво при помощи OpenGL.


Читать дальше →
Total votes 65: ↑61 and ↓4 +57
Comments 51

Эффективное кодирование видео в Linux c Nvidia NVENC: часть 2, дополнительная

Reading time 7 min
Views 25K


В первой части я рассказал о кодировании видео в Linux с использованием Nvidia NVENC. Как уже упоминалось ранее, Nvidia для десктопных видеокарт ограничивает количество потоков кодирования до двух сессий на систему. Данная часть посвящена борьбе с этим ограничением.
Читать дальше →
Total votes 23: ↑22 and ↓1 +21
Comments 20

Эффективное кодирование видео в Linux c Nvidia NVENC: часть 1, общая

Reading time 4 min
Views 28K

Эта статья содержит практические сведения, полезные для организации эффективного кодирования видео на Linux с использованием последних видеопроцессоров Nvidia.
Чем не является эта статья:
  • Не является пособием по выбору технологии аппаратного кодирования или агитацией в пользу описываемой. Кроме Nvidia NVENC есть Intel QuickSync, есть AMD VCE, наверняка есть и ещё что-то. Все эти технологии имеют разные характеристики, которые трудно даже уложить на одну шкалу для сравнения. Тем не менее, я сделал свой выбор.
  • Не является претензией на самый быстрый/качественный способ кодирования. По причинам, указанным выше.
Читать дальше →
Total votes 20: ↑18 and ↓2 +16
Comments 21

Потоковое видео средствами ffserver & ffmpeg

Reading time 2 min
Views 145K

Для организации трансляции нам потребуется:


  • Linux
  • FFmpeg (включает в себя ffserver)

Теория


FFmpeg — это набор свободных библиотек с открытым исходным кодом, которые позволяют записывать, конвертировать и передавать цифровое аудио и видео в различных форматах. Он включает libavcodec, библиотеку кодирования и декодирования аудио и видео и libavformat, библиотеку мультиплексирования и демультиплексирования в медиаконтейнер. Название происходит от названия экспертной группы MPEG и «FF», означающего «fast forward».

© Wikipedia

ffserver идёт в комплекте с ffmpeg и выполняет роль медиа-сервера — получает видеопоток от ffmpeg, который может быть запущен на другой машине, и раздаёт его счастливым пользователям.
Каждый получаемый поток называется Feed’ом (далее будет просто фид). Таких потоков может быть несколько, так же как и отдаваемых (выходных).
FFmpeg у нас будет захватывать видео с веб-камеры или читать из файла.
Читать дальше →
Total votes 49: ↑41 and ↓8 +33
Comments 34

19 команд ffmpeg для любых нужд

Reading time 3 min
Views 561K
От переводчика:
Многие знают, что ffmpeg — это сила, но не все знают, какая именно. Он многогранен и безграничен, а его man объёмен и местами малопонятен, лишь немногие постигли дао профессиональной работы с ним. И тем не менее, этот инструмент может быть полезен почти всем, кто хоть иногда работает с видео и звуком, даже на бытовом уровне. О некоторых полезных консольных командах ffmpeg и пойдёт речь в статье. В некоторых местах я взял на себя смелость вставить ссылки на поясняющие статьи.


ffmpeg — это кроссплатформенная open-source библиотека для обработки видео- и аудиофайлов. Я собрал 19 полезных и удивительных команд, покрывающих почти все нужды: конвертация видео, извлечение звуковой дорожки, конвертирование для iPod или PSP, и многое другое.

1. Получение информации о видеофайле

ffmpeg -i video.avi

2. Превратить набор картинок в видео

ffmpeg -f image2 -i image%d.jpg video.mpg

Эта команда преобразует все картинки из текущей директории (названные image1.jpg, image2.jpg и т.д.) в видеофайл video.mpg

(примечание переводчика: мне больше нравится такой формат:
ffmpeg -r 12 -y -i "image_%010d.png" output.mpg

здесь задаётся frame rate (12) для видео, формат «image_%010d.png» означает, что картинки будут искаться в виде image_0000000001.png, image_0000000002.png и тд, то есть, в формате printf)
Читать дальше →
Total votes 222: ↑214 and ↓8 +206
Comments 107

Быстрое кодирование видео в Linux c Nvidia NVENC с SDK 7.5 и ffmpeg 3.0.2 на Nvidia GTX 960/970/980

Reading time 11 min
Views 38K
image

Данная статья была написана по мотивам статьи Эффективное кодирование видео в Linux c Nvidia NVENC: часть 1, общая, однако имеет свои особенности и в отличие от оригинальной статьи, на момент написания которой не было выпущено патча, о котором пойдет речь дальше, я применил переработанный патч Nvidia Acceleration к FFmpeg 3.0.2, получив помимо энкодера nvenc еще и быстрый фильтр ресайза — nvresize.

В итого я получил возможность аппаратно кодировать видео в H.264 и HEVC при помощи видеокарты Nvidia GTX 960 на достаточно слабом компьютере (Xeon L5420) со скоростью (для H.264), превышающей возможности данного процессора до 10 раз (и в 3 раза относительно Core i7)! Причем на моем любимом Debian 8 Jessie.

Итак, начнем!
Читать дальше →
Total votes 24: ↑23 and ↓1 +22
Comments 57

Говорящая панда или что можно сделать с FFmpeg и OpenCV на Android

Reading time 46 min
Views 32K
Эта публикация о том, как можно в Windows скомпилировать библиотеку для обработки видео и аудио FFmpeg под Android в Eclipse с помощью NDK. Вы узнаете, как связать FFmpeg с библиотекой для обработки изображений OpenCV и как это всё можно использовать в Java-коде Android приложения. Всё это будет рассказано в контексте процесса создания Android приложения, основной функционал которого как раз и завязан на использовании этих библиотек и их взаимодействии. Итак, заинтересованных прошу под кат.
Читать дальше →
Total votes 21: ↑18 and ↓3 +15
Comments 13

Шрифты в вебе, обзор от 2016 года

Reading time 8 min
Views 26K


Предисловие


Статья — не про всё возможное, связанное с типографикой и текстами, вроде letter-spacing и max-height. Это скорее некоторый список занятных возможностей, которые могут быть углублённо изучены при наличии достаточного любопытства и времени. Надеюсь, для большей части найдётся то, что они не знали или слышали краем уха.
Читать дальше →
Total votes 18: ↑18 and ↓0 +18
Comments 16

Sol 647: новая «живая» панорама Curiosity на Марсе

Reading time 1 min
Views 26K


Фотограф Андрей Бодров, о котором на Хабре писали уже не раз, в связи с его работами по составлению марсианских панорам, создал новую работу. На этот раз фотографу понадобилось месяца полтора, чтобы создать «живую» панораму Curiosity.

Эта панорама составлена из изображений Марса, полученных камерой MAHLI марсохода Curiosity на 647 марсианский день.

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

Читать дальше →
Total votes 42: ↑39 and ↓3 +36
Comments 18
1

Information

Rating
Does not participate
Registered
Activity