Как стать автором
Обновить
2
0
Смирнов Сергей @smirnov_sergey

разработчик

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

GPU Particles с использованием Compute и Geometry шейдеров

Время на прочтение10 мин
Количество просмотров54K
Привет, дорогой читатель!

Сегодня мы продолжим изучение графического конвейера, и я расскажу о таких замечательных вещах, как Compute Shader и Geometry Shader на примере создания системы на 1000000+ частиц, которые в свою очередь являются не точками, а квадратами (billboard quads) и имеют свою текстуру. Другими словами, мы выведем 2000000+ текстурированных треугольников при FPS > 100 (на бюджетной видеокарте GeForce 550 Ti).


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

AngularJS + UI Router: проверка авторизации и прав доступа

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

Предпосылки


Информацию об авторизованном пользователе я решил хранить в sessionStorage, копируя её при запуске приложения в $rootScope. Также по рекомендации авторов UI Router я храню в $rootScope значения объекты $state и $stateParam, для удобного доступа. Информацию же о доступе к тому или иному состоянию можно передавать через блок data при описании самого состояния. Поскольку в моем приложении везде закрыт доступ, я решил идти от обратного и добавлять значение noLogin = true для состояний, которые не требуют авторизации, например страницы ввода логина, восстановления пароля или регистрации.
Читать дальше →
Всего голосов 31: ↑27 и ↓4+23
Комментарии23

Создание multiboot HDD в linux (GRUB2+memdisk+grub4dos)

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

Создание multiboot HDD в linux (GRUB2+memdisk+grub4dos)


В какой-то определённый момент мне надоело носить с собой с десяток загрузочных флешек. И создал я себе multiboot usb hdd.
Читать дальше →
Всего голосов 24: ↑21 и ↓3+18
Комментарии10

Вход в систему по подключению определенной флешки

Время на прочтение9 мин
Количество просмотров39K
Одним ужасным пятничным вечером мне стало интересно как реализован вход в систему(Windows 7) по отпечатку пальца, так часто использующийся на ноутбуках. Что меня большего всего интересовало – как сделана такая прозрачная интеграция с WinLogon(механизм входа в систему).

С помощью знакомого я узнал что сие называется Credential Provider(по крайней мере начиная с Vista, до неё – был другой механизм). И тут-то я вспомнил что давно хотел сделать чтобы система разблокировалась при подключении одной определенной флешки. Поэтому я захотел быстренько наваять такой проект.
читать дальше
Всего голосов 147: ↑135 и ↓12+123
Комментарии63

Урегулирование правоотношений между работником и работодателем при создании служебной программы для ЭВМ

Время на прочтение5 мин
Количество просмотров13K
Как я уже писал в предыдущей статье, программа для ЭВМ является объектом авторского права и охраняется как произведение науки, литературы и искусства.
Если программа для ЭВМ создана в пределах установленных для работника трудовых обязанностей, то такая программа для ЭВМ охраняется как служебное произведение (ст. 1295 ГК РФ). Это означает, что авторское право принадлежит работнику, а исключительное право (т.е. право использовать программу на свое усмотрение любым не противоречащим закону способом) на программу для ЭВМ принадлежит работодателю.
Для того чтобы созданная программа для ЭВМ попадала под статью «Служебное изобретение», работодатель должен утвердить четкие должностные инструкции работника, подразумевающие создание работником такого результата. Кроме того, в трудовом договоре обычно присутствует фраза «результаты работ, созданные в ходе выполнения трудовых обязанностей, принадлежат «Организации» как работодателю, и работник согласен на отчуждение исключительных прав на результаты интеллектуальной деятельности, созданные в ходе выполнения этих работ в пользу работодателя». Также распространена практика заключения помимо трудового договора еще и договора о служебных результатах интеллектуальной деятельности (представлен как пример, в разных организациях может быть разное название). В этом договоре обычно указывается, что работа сотрудника носит творческий характер и подразумевает создание и регистрацию результатов интеллектуальной деятельности, а также то, что эти результаты являются служебными и исключительное право на них в соответствии с законодательством Российской Федерации принадлежит работодателю.
Для того, чтобы не потерять исключительное право на созданную работником программу для ЭВМ, работодатель должен знать следующее:
1. Если договор о служебных результатах интеллектуальной деятельности с работником заключен не был, а трудовые обязанности работника не подразумевают создание программы для ЭВМ, то работодатель должен в письменном виде оформить задание сотруднику на создание данной программы для ЭВМ.
2. Все договоры и задания нужно оформлять ДО начала работ, подразумевающих создание результата интеллектуальной деятельности.
Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии0

Прогнозирование финансовых временных рядов

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

Всем привет, раз на хабре пошел цикл статей про нейронные сети, то и я напишу про возможность использования нейронных сетей в задаче прогнозирования финансовых временных рядов.
Существует несколько различных теорий о возможности прогнозирования фондовых рынков. Одна из них — гипотеза эффективного рынка, согласно ей, в цене акции уже учтена вся имеющиеся информация и делать прогнозы бессмысленно. Продолжением этой гипотезы можно назвать теорию случайных блужданий.
В теории случайных блужданий информация подразделяется на две категории — предсказуемую, известную и новую, неожиданную. Если предсказуемая, а тем более уже известная информация уже заложена в рыночные цены, то новая неожиданная информация в цене пока еще не присутствует. Одним из свойств непредсказуемой информации является ее случайность и, соответственно, случайность последующего изменения цены. Гипотеза эффективного рынка объясняет изменение цен поступлениями новой неожиданной информации, а теория случайных блужданий дополняет это мнением о случайности изменения цен.
Читать дальше →
Всего голосов 38: ↑32 и ↓6+26
Комментарии49

Установка Hackintosh на примере Packard Bell TM85

Время на прочтение4 мин
Количество просмотров83K
Здравствуй, Хабр. Хочу поделиться своим опытом относительно установки Мака на обычные ПК. Возможно кому-то этот топик будет интересен или полезен.
В этой статье я рассмотрю еще один способ установки Hackintosh на конкретную конфигурацию, без использования различных сборок.
Ставить будем оригинальную Mac OS X 10.7.3 (на момент написания) c загрузочной установочной флешки.
Кстати, данный метод применим и к любому другому IBM PC-совместимому компьютеру.
В итоге Вы получите полностью рабочий Hackintosh.
Читать дальше →
Всего голосов 68: ↑49 и ↓19+30
Комментарии41

Возвращаем деньги за приложение в App Store

Время на прочтение2 мин
Количество просмотров10K
image
Всем привет!
Сегодня я решил создать топик, который может помочь каждому «яблочнику», суть в том, что наверняка с многими было такое, когда Вы покупаете приложения, а оказывается, что оно оказалось полной ерундой, или же Вы просто перепутали приложение с другим, а деньги Вам еще понадобятся, но как их возвращать? Сегодня я об этом расскажу.
Читать дальше →
Всего голосов 40: ↑22 и ↓18+4
Комментарии19

2D->3D in Augmented reality

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

В данной статье я расскажу как в приложениях Augmented reality по найденому расположению объекта в сцене построить 3D-пространство. Для этого необходимо получить две матрицы – проекционную (GL_PROJECTION) и модельную (GL_MODELVIEW) для работы, например, в OpenGL. Делать это мы будем средствами библиотеки OpenCV.

Недавно приходилось решать эту задачу, но ресурса, где просто поэтапно объяснялось как это сделать я не нашел (может плохо искал), а подводных камней в данной проблеме хватает. В любом случае, статья на хабре описывающая эту задачу не повредит.
Читать дальше →
Всего голосов 59: ↑59 и ↓0+59
Комментарии9

Локальный прокси-сервер для Siri

Время на прочтение2 мин
Количество просмотров10K
История с недавним взломом протокола коммуникации Siri получила естественное продолжение: разработан прокси-сервер SiriProxy, с помощью которого можно легко добавить дополнительную функциональность к этой программе. Например, через голосовой интерфейс можно посылать текстовые сообщения на произвольные сайты или активировать голосовое управление устройствами в домашней сети. Скажем, вот плагин для термостата:

— Siri, какая сейчас температура в комнате?
— Двадцать градусов.
— Понизь до восемнадцати.
— OK.

Напомним, что после подделки SSL-сертификата и установки своего DNS-сервера программа Siri обменивается данным с вашим собственным сервером, а не с дефолтным guzzoni.apple.com.
Читать дальше →
Всего голосов 52: ↑48 и ↓4+44
Комментарии11

Как я делал сетевой морской бой на Silverlight 4

Время на прочтение1 мин
Количество просмотров924
Привет! Вот и пришло время публикации моего первого проекта на Silverlight 4.

Подробную статью читайте по данной ссылке

Им стал сетевой морской бой. Почему-то хотелось сделать в качестве первого проекта что-то сетевое, универсальное, чтобы люди еще могли и поиграть с ним. Так вот, месяц стараний, и встречайте. Он уже готов! Сначала хотелось использовать хваленые Domain services, но как-то с ними сразу не срослось. Поэтому для связи я использовал Workflow services. Это удивительно удобное средство для коммуникаций. Вы пишите блоки логики — Activity (я писал code activity) с входными и выходными параметрами, а потом вставлял их в Workflow service. Причем, у меня был всего лишь один файл XAMLX. Он генерировал автоматически интерфейс взаимодействия (Service contract), в корне у меня была Pick activity, а внутри ветвей у меня уже были Receive activity, которые получали параметры и передавали их на дальнейшее исполнение. И вот поглядите, что получилось: Морской бой онлайн. Если кого интересуют подробности, то смело обращайтесь ко мне и я расскажу, что к чему.

А вот и скриншотик:
image
Всего голосов 44: ↑24 и ↓20+4
Комментарии11

Подготовка и публикация приложений в Marketplace

Время на прочтение7 мин
Количество просмотров11K
Недавно мне невероятно повезло участвовать в вебинаре Microsoft Стаса Павлова и Юлии Щегловой "Windows Phone для стартапов. Ответы на ваши вопросы" (запись доступна на techdays).

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

Читать дальше →
Всего голосов 37: ↑30 и ↓7+23
Комментарии8

Я хочу работать в Google! Телефонное интервью (часть 2)

Время на прочтение14 мин
Количество просмотров17K
Сегодня мы будет обсуждать технические аспекты и реализацию задач на Python и C/C++, которыми нас будет закидывать инженер из Google. Начнём с самых тривиальных проблем с последующим нарастанием сложности. Параллельно обратим внимание о чём стоит упомянуть во время интервью и где не попасть в ловушку.
Читать дальше →
Всего голосов 102: ↑86 и ↓16+70
Комментарии134

Я хочу работать в Google! Телефонное интервью (часть 1)

Время на прочтение4 мин
Количество просмотров31K
Привет Хабр! Давно не писал. Да это и понятно. Защита диссертации, получение PhD, а сейчас ещё и активный поиск работы — всё это занимает очень много драгоценного времени. Но разговор сегодня пойдёт не о том. Хотелось бы поделиться с Вами, уважаемые хабралюди, ресурсами и описанием процесса подготовки к телефонному техническому интервью с Гуглом, первый технический этап которого я уже прошёл, и теперь готовлюсь ко второму, который будет в пятницу.
Читать дальше →
Всего голосов 207: ↑182 и ↓25+157
Комментарии99

Документ в перспективе, что с ним делать? Корректировка результатов бесконтактного сканирования и фотографий документов

Время на прочтение7 мин
Количество просмотров17K
Идея данной статьи возникла у нас после прочтения статьи «Как работает автоматическое выделение документа на изображении в программе ABBYY FineScanner?», опубликованной на Хабре компанией ABBYY, в которой подробно описан алгоритм определения границ документа на образе, полученном камерой мобильного телефона.
Статья, безусловно, интересная и полезная. Мы, «с чувством глубокого удовлетворения» отметили, что ABBYY использует в работе те же математические алгоритмы, что и мы, и благоразумно опускает некоторые детали, без которых точность определения границ документа существенно снижается.
Думаю, что по прочтении статьи у некоторой части читателей возник резонный вопрос: «А что делать с обнаруженным на снимке документом дальше?» Отвечу словами Чеширского Кота Алисе: «А куда ты хочешь прийти?» Если конечная цель – «вытащить» из снимка текстовые данные, тогда нужно максимально облегчить задачу системе распознавания. Для этого в первую очередь нужно исправить перспективные искажения, бич всех фотоснимков документов «от руки». Если не решить эту проблему, попытка распознать данные может дать результат, сравнимый с попытками распознавания капчи. На фрилансерских сайтах с завидной регулярностью появляются «верующие» в победу машинного интеллекта над капчой за мелкий прайс. Блажен, кто верует, но мы сейчас не об этом.
Итак, в данной статье мы попытаемся подхватить эстафету у ABBYY и рассказать на своем опыте, как можно с минимальными затратами привести призмообразный, в лучшем случае, документ, который мы идентифицировали на снимке (спасибо ABBYY за науку), к прямоугольной форме, желательно с сохранением исходных пропорций. Экзотические случаи, вроде пятиугольных или овальных документов мы пока не рассматриваем, хотя, вопрос интересный.
Читать дальше →
Всего голосов 37: ↑35 и ↓2+33
Комментарии12

Магия AngularJS: никогда не вешайте binding на примитивы

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

Магия AngularJS: никогда не вешайте binding на примитивы


Если вы используете AngularJS, скорее всего вы неоднократно сталкивались с правилом «Не вешайте binding на примитивы». В этом посте я подробно разберу пример, в котором использование примитивов создает проблемы: создание списка элементов , в котором каждый из элементов привязан к строке.

Наш пример

Скажем, вы работаете над приложением с книгами, и у каждой книги есть список тегов. Наивным способом предоставления пользователю возможности редактировать теги будет:
<div ng-controller="bookCtrl">
    <div ng-repeat="tag in book.tags">
        <input type="text" ng-model="tag">
    </div>
</div>

Читать дальше →
Всего голосов 39: ↑36 и ↓3+33
Комментарии9

MongoDB от теории к практике. Руководство по установке кластера mongoDB

Время на прочтение9 мин
Количество просмотров87K
     Доброго времени суток, уважаемые читатели. В этом посте я хотел бы описать несколько примеров развертки mongoDB, отличия между ними, принципы их работы. Однако больше всего хотелось бы поделиться с вами практическом опытом шардирования mongoDB. Если бы этот пост имел план, он бы выглядел скорее всего так:

  1. Вступление. Кратко о масштабировании
  2. Некоторые примеры развертки mongoDB и их описание
  3. Шардинг mongoDB

    Пункты 1 и 2 — теоретические, а номер 3 претендует на практическое руководство по поднятию кластера mongoDB и больше всего подойдет тем, кто столкнулся с этим в первый раз.
Читать дальше →
Всего голосов 56: ↑52 и ↓4+48
Комментарии11

Arduino и аквариум

Время на прочтение12 мин
Количество просмотров102K
Чего общего у севера Италии и тропических рыбок? Да мало ли чего?! – скажет читатель. И будет прав. Поэтому уточню: речь пойдет об Arduino, точнее про автоматизацию обслуживания аквариума.
Все началось с того, что неумолимо приближался отпуск. В отпуске хочется, как правило, сменить обстановку. Но аквариумные рыбки могут этого не понять. Мало того – могут не простить. И я заказал новый фильтр, автокормушку и таймер для бытовых приборов. Но таймера не оказалось в наличии. Поэтому решил побродить по сайту чуть ли не единственного магазина (и это в городе, считающимся миллионником!) радиокомпонентов и устройств и натолкнулся на Arduino Uno за 154 грн. (~20$). Уже не раз читал про устройство, но в руках, как говорится, не держал. Купил. И с этого момента начинается история проб, ошибок и побед.
Читать дальше →
Всего голосов 32: ↑28 и ↓4+24
Комментарии31

Raspberry Pi как информационное табло — с помощью VNC на localhost

Время на прочтение6 мин
Количество просмотров55K
Идея использовать одноплатный миникомпьютер Raspberry Pi в качестве информационного табло не нова, однако, как мне кажется, раскрыта далеко не полностью. Одним из не достаточно раскрытых аспектов, по моему мнению, является ограничение доступа. Безусловно, самым надежным способом ограничения доступа является физическое ограничение — для каких-нибудь публичных табло (к примеру на остановках маршрутного транспорта) такое ограничение необходимо, иначе не избежать вандализма, краж (если не самого Raspberry Pi то как минимум SD карты) или «спуффинга» (путем подмены той же SD карты).

Но предположим что речь идет не о совсем публичном табло, а о таком, которое расположенном внутри офиса какой-нибудь компании — к примеру о «билд мониторе» для отображения статуса билдов на каком-нибудь Дженкинсе или ТимСити. Было бы неплохо ограничить возможность молодым горячим джуниорам открывать на билд мониторе порносайты. Об этом и пойдет речь.

Т.к. информационное табло работает, вероятно, не в режиме терминала, а с GUI, для управления ним логично использовать VNC (с ssh туннелем для пущей безопасности). Суть освновной идеи вкратце сводится к тому, что для отображения информации на табло можно использовать VNC viewer в view-only режиме, запущенный от имени пользователя с ограниченными правами. Таким образом подключив к Малинке клавиатуру и мышь нельзя будет «просто так взять» и помешать работе вашего табло. Конечно, знатоки линуксов всегда найдут обходные пути, но по крайней мере пользователей Windows это гарантированно отпугнет (-:

Тоесть вкратце задача сводится к следующему — при запуске Raspberry Pi:
  • Автоматически запускать VNC сервер от имени заданного пользователя (хотя бы того же pi);
  • Автоматически запускать VNC просмотрщик, настроенный на отображение происходящего на локальном VNC сервере, от имени заданного ограниченного пользователя (какого-нибудь guest);
  • Автозапуск какого-нибудь софта, отображающего собственно контент (например, веб-браузера показывающего Дженкинс), и отключение скринсейвера.

Сразу оговорюсь — знатоком Линукс я ни в коей мере не являюсь, поэтому подход может быть неполноценным и «нубским» — за это сразу прошу прощения. Инструкция составлялась по принципу «с миру по нитке» на основе других инструкций — так сказать «от нубов для нубов». Вобщем ногами не бейте плз.

И еще одна ремарка — в данной статье предполагается использование Raspbian (Debian Wheezy) в качестве ОС для Raspberry Pi.

Итак, пошаговая инструкция по достижению результата.
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии4

Информация

В рейтинге
Не участвует
Откуда
Кострома, Костромская обл., Россия
Дата рождения
Зарегистрирован
Активность