Pull to refresh
52
0
Send message

Пишем плагин для GStreamer на MS Visual Studio

Reading time9 min
Views16K
Меня всегда интересовали прикладные задачи обработки видеоданных в реальном времени. На Хабре я прочитал серию статей о мультимедиа фреймвоке GStreamer:

Очень захотелось что-нибудь сделать с его использованием. Но, как обычно бывает, текущие задачи полностью исчерпывали ресурс свободного времени.
Читать дальше →

Конфликты при слиянии csproj файлов

Reading time5 min
Views9.6K


В текущей версии GitHub для Windows, мы сделали небольшое изменение, которое имеет едва заметный эффект, который вы, вероятно, уже заметили. Мы изменили подход к слиянию *.csproj и похожих файлов, используемый по умолчанию.
Если вы измените .csproj файл в ветке и затем объедините ее с другой веткой, то вы возможно столкнетесь с большим количеством конфликтов слияния, нежели вы могли иметь раньше.

Почему?
Читать дальше →

Для новичков про stdafx.h

Reading time11 min
Views338K
StdAfx.h, Precompiled headers
Статья рассчитана на людей, которые знакомятся со средой Visual Studio и пытаются компилировать в ней свои Си++-проекты. В незнакомой среде всё кажется странным и непонятным. Особенно новичков раздражает файл stdafx.h, из-за которого возникают странные ошибки во время компиляции. Очень часто всё заканчивается тем, что новичок долгое время везде старательно отключает Precompiled Headers. Чтобы помочь людям разобраться что к чему, и была написана эта статья.
Читать дальше →

Оптимизация Linux для desktop и игр

Reading time8 min
Views176K
В этой статье я хочу поделиться почти 10-летним опытом использования Linux на домашнем компьютере. За это время я провел много экспериментов над ядром, испробовал различные конфигурации для разных применений и теперь хочу все это систематизировать в длинный пост с рекомендациями как выжать из linux максимум и добиться отличной производительности, без необходимости покупать мощное железо.

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

Хоть я и пообещал, что после прочтения этой статьи, можно будет играть в Metro 2033 на калькуляторе (шутка, такого не будет), все же она начнется с рекомендации купить кое-что из железа, если у вас этого еще нет.
Читать дальше →

RenderDoc — графический отладчик для DirectX11 от Crytek

Reading time6 min
Views32K
Как вы, возможно, знаете в мире Windows для рисования графики часто используется DirectX. В последних версиях (10, 11.x) библиотека серьёзно шагнула вперёд и именно на них построены движки многих современных игр. Кроме того, DirectX используется не только в играх — сам интерфейс ОС Windows тоже с непомню-какой версии (Vista?) рисуется через него, да и казалось-бы не сильно связанные с графикой программы, желая увеличить производительность и плавность зума\скрола переходят на последние версии DirectX. Так некоторое время назад на DirectX11 перешел рендер Google Chrome (вроде бы с версии 36).

Когда-то во времена Windows 95 и Pentium II была такая шутка, что чем медленнее компьютер — тем лучше можно понять работу операционной системы — невооруженным глазом видно в каком порядке прорисовываются элементы окон, обрабатываются события. Сегодня для подобных целей относительно DirectX есть отдельные инструменты — графические отладчики, позволяющие понять, как именно рисуется каждый пиксель каждого кадра, какие операции выполняет движок DirectX, какие ресурсы он использует, насколько быстро и правильно всё работает. Один из таких инструментов — RenderDoc от компании Crytek мы сегодня и рассмотрим. А в качестве примера разберём уже упомянутый выше новый рендер Google Chrome.



Читать дальше →

Как вращается камера в 3D играх или что такое матрица поворота

Reading time11 min
Views124K
В этой статье я кратко расскажу, как именно преобразуются координаты точек при повороте камеры в 3D играх, css-преобразованиях и вообще везде, где есть какие-то вращения камеры или предметов в пространстве. По совместительству это будет кратким введением в линейную алгебру: читатель узнает, что такое (на самом деле) вектор, скалярное произведение и, наконец, матрица поворота.
Читать дальше →

Как я вышел на рынок мобильных игр, постоял и ушел. Семинар в Яндексе

Reading time13 min
Views35K
Привет, меня зовут Всеволод Шмыров. В Яндексе я занимаюсь разработкой интерфейсов. Но этот пост посвящен тому, как я just for fun попробовал выйти на рынок игр под Windows Phone. Я разработал небольшую игру-арканоид. Примерно год назад я подготовил небольшой доклад об этом и представил его своим коллегам. Доклад охватывает все четыре стадии, которые мне пришлось пройти: подготовка, разработка, публикация и после публикации. Сегодня я хочу поделиться этим рассказом с вами. Сразу оговорюсь, что это не история успеха. Популярной моя игра так и не стала, так что идею заработать на ней я забросил и сделал игру бесплатной.



Для начала представлю свою игру. Она называется Pixelnoid. Геймплей абсолютно классический для арканоида: игрок управляет платформой, отбивает мячики, мячики сбивают блоки. Цель каждого уровня – уничтожить все доступные блоки. Игра обладает очень необычной графикой, вместо мячика пиксель, вместо блока пиксель побольше, все пиксели разноцветные, и поэтому получается составлять вот такие простые писксельные изображения, как на заглавной картинке. На самом деле там используется всего лишь 400 пикселей. Игра доступна для платформы Windows Phone, начиная с версии 7.5. Изначально она стоила около 1$, хотя был триал и бесплатная лайт-версия, но об этом я чуть позже расскажу на этапе «после публикации». Игра разрабатывалась с апреля по июнь 2013 года, в августе я производил всякие обновления, чинил баги и пытался хоть как-то распространить игру.



Под катом вы найдете рассказ по мотивам доклада, его видеозапись и слайды.
Читать дальше →

Домофонный мультиключ и всё про имитацию «таблеток»

Reading time9 min
Views525K
Да, это жутко избитая тема. Универсальный домофонный ключ «таблетку» делал наверное каждый второй, кто начинал изучать микроконтроллеры. В Интернете очень много и статей на эту тему, и готовых решений. Однако, интерес к этому угасать не перестаёт даже с массовым переходом на RFID. Это не удивительно, ведь многим хочется собрать такое устройство, которое выполняет не только весьма интересную задачу, но ещё и всегда с собой. К тому же оно не такое уж сложное в изготовлении.

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



Внимание! Этот ключ не позволяет нелегально проникать куда-либо. Это устройство лишь для того, чтобы носить один ключ вместо нескольких.
Хотя ничто не мешает вам записать в него универсальные коды открытия домофонов.

Читать дальше →

Увидеть незримое

Reading time8 min
Views92K
Пару лет назад на Хабре проскакивало две статьи, в которых упоминался интересный алгоритм. Статьи, правда, были написаны нечитабильно. В стилистике «новости»(1, 2), но ссылка на сайт присутствовала, подробно можно было разобраться на месте (алгоритм за авторством MIT). А там была магия. Абсолютно волшебный алгоритм, позволяющий увидеть незримое. Оба автора на Хабре этого не заметили и сфокусировались на том, что алгоритм позволял увидеть пульс. Пропустив самое главное.



Алгоритм позволял усиливать движения, невидные глазу, показать вещи, которые никто никогда не видел живьём. Видео чуть выше – презентация c сайта MIT второй части алгоритма. Микросаккады, которые приведены начиная с 29ой секунды, раньше наблюдались только как отражения установленных на зрачках зеркалах. А тут они видны глазами.
Пару недель назад я опять натолкнулся на те статьи. Мне сразу стало любопытно: а что народ сделал за эти два года готового? Но… Пустота. Это определило развлечение на следующие полторы недели. Хочу сделать такой же алгоритм и разобраться, что с ним можно сделать и почему его до сих пор нет в каждом смартфоне, как минимум для измерения пульса.

В статье будет много матана, видео, картинок, немного кода и ответы на поставленные вопросы.
Читать дальше →

HTML-импорт — include для веба: часть 2

Reading time9 min
Views28K
Перевод статьи «HTML Imports #include for the web», Eric Bidelman.

Ссылка на первую часть перевода.

Предоставление веб-компонентов


HTML-импорт упрощает загрузку и повторное использование кода. В частности, это хороший способ распространения веб-компонентов. Это касается как простых HTML , так и полноценных кастомных элементов с теневым DOM [1, 2, 3]. Когда эти технологии работают вместе, импорт становится инструментом для подключения веб-компонентов.
Читать дальше →

HTML-импорт — include для веба: часть 1

Reading time6 min
Views96K
Перевод статьи «HTML Imports #include for the web», Eric Bidelman.

От переводчика

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

Для чего нужен HTML-импорт?


Давайте поговорим о том, как мы загружаем различные ресурсы. JavaScript мы загружаем при помощи
<script src>
. Для CSS у нас есть
<link rel="stylesheet">
. Для изображений
<img>
. Для видео есть
<video>
. Для аудио —
<audio>
… Давайте ближе к сути! Для большинства видов контента есть простые способы его подгрузки. Но не для HTML. Для HTML у нас есть следующие варианты:
  1. <iframe>
    — испробованный и рабочий, но тяжеловесный способ. Контент iframe'а живет в отдельном от главной страницы контексте. Хоть это и хорошая особенность, она также создает дополнительные трудности: подгонка размера айфрейма к его содержимому, работа с внутренними скриптами и стилями.
  2. AJAX — мне нравится
    xhr.responseType="document"
    , но загрузка HTML при помощи JS выглядит как-то неправильно.
  3. КривыеКостылиTM — html код в виде JS строк или комментариев, например
    <script type="text/html">
    .

HTML код, это самый простой тип контента, но в этом плане, он требует наибольших усилий. Хорошо, что у нас есть Web Components, они помогут нам справиться с этой и другими проблемами.
Читать дальше →

Написание пакета для PFSense: Элементы управления

Reading time5 min
Views4.5K
image

В предыдущей статье был рассмотрен процесс создания простого GUI пакета для pfSense. Пакет содержал одно единственное поле с элементом управления типа checkbox, описанное в разделе fields XML файла пакета.

Перед продолжением необходимо дать некоторые пояснения по структуре раздела fields. В этом разделе содержится описание полей формы текущей страницы GUI. Каждое поле описывается в узле field и содержит элементы:
  • fielddescr — название поля, выводится в левой части формы перед элементом управления;
  • fieldname — имя поля, под которым оно будет доступно в системе при обработке введенных данных;
  • description — комментарий, описывающий данное поле, выводится под элементом управления;
  • type — тип элемента управления, используемого в данном поле.

Подробности

Написание пакета для PFSense

Reading time4 min
Views8K
В этой статье я постараюсь на простом примере показать создание собственного GUI пакета для pfSense. Предполагается, что читатель имеет опыт работы с pfSense, имеет некоторые знания в PHP.

image

Маршрутизатор pfSense (на базе FreeBSD) используется многими сисадминами благодаря, в первую очередь, управлению настройками системы через WEB интерфейс. С многими настройками вполне по силам справиться даже начинающему администратору, что позволяет расширить область применения этого маршрутизатора. При этом, опытные коллеги могут в полной мере воспользоваться доступом к консоли для изучения и контроля работы системы.

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

Атаки шейпинга в сетях low latency или почему Tor не спасает от спецслужб

Reading time6 min
Views88K


Тайминг-атаки являются известным слабым местом сети Tor и неоднократно обсуждались, в том числе на Хабре, где можно найти порядка 10 статей, так или иначе затрагивающих эту тему. Зачем нужна еще одна? Существует достаточно распространенное заблуждение, что подобные атаки всегда требуют статистического анализа и достаточно сложны в реализации. Ранее опубликованные статьи относятся именно к такому классу атак. Мы рассмотрим вполне реалистичный сценарий, в котором достаточно единственного запроса для деанонимизации пользователя сети.

Поскольку вопрос возможности деанонимизации пользователей Tor в очередной раз активно обсуждается в рунете, я публикую «печатную» версию фрагмента своей презентации с PHDays 2014. Приведенная ниже атака не специфична для Tor и может быть использована против любых low latency средств сокрытия источника трафика – VPN, цепочки прокси и даже их комбинации.
Читать дальше →

Как использовать Томита-парсер в своих проектах. Практический курс

Reading time19 min
Views45K

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

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





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

Читать дальше →

Что такое Томита-парсер, как Яндекс с его помощью понимает естественный язык, и как вы с его помощью сможете извлекать факты из текстов

Reading time6 min
Views89K
Мечта о том, чтобы машина понимала человеческий язык, завладела умами еще когда компьютеры были большими, а их производительность – маленькой. Главная проблема на пути к этому заключается в том, что грамматика и семантика естественных языков слабо поддаются формализации. Кроме того, от языков программирования их отличает присутствие многозначности.

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

image

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

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

Почему WAT

Reading time3 min
Views41K
Недавний доклад Гарри Бернхардта на CodeMash оказался довольно популярен (прим. пер.: в том числе и на хабре). В докладе он шутит по поводу некоторых особенностей поведения ruby и javascript.
Вряд ли я смогу вас убедить, что есть какой-то смысл в том, на что жалуется Гарри. Тем не менее, надеюсь, я смогу вам объяснить, почему javascript ведёт себя именно так.
Читать дальше →

Бездисковая загрузка по технологии iSCSI

Reading time5 min
Views46K
Начну из далека. Как часто вы встречаете организации использующие «Подключение к удаленному рабочему столу» как основной способ работы в офисе? Я стал встречать такие все чаще и мое личное мнение — это удобно! Удобно для сотрудников, удобно для системных администраторов, а самой компании это позволяет сократить IT расходы. А нередко это даже необходимость для комфортной многопользовательской работы в некоторых программах (пример — ПО 1С).

А как часто вы видите что в качестве клиентов используются обычные себе полноценные ПК, иногда даже вполне производительные и для локальной работы.

Разговор будет о замечательной технологии iSCSI, и как мы её можем использовать чтобы уменьшить совокупную стоимость владения, и поможет тем кто хочет познакомиться с технологией поближе.
Читать дальше →

Как не остаться голодным или безлимитный проход в столовую

Reading time2 min
Views115K

Всем привет.

Хочу поделиться одной ситуационной проблемой, которая возникла в ходе моего пребывания на проходящем в Калининградской области международном форуме и ее решением в стиле голодного IT'шника.

Пост будет о том, как удалось обойти лимит на одну порцию, установленный в столовой.
Как не остаться голодным?

Information

Rating
Does not participate
Registered
Activity