Как стать автором
Обновить
49
0
Денис Исламов @DisaDisa

Пользователь

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

Как заинтересовать школьника естественными науками, используя томограф, молекулярную динамику и дополненную реальность

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


Современное естественнонаучное образование в большей части российских школ служит одной цели: отбить у ученика интерес к предмету. Имея почти десятилетний опыт создания графики для ведущих издательств научной литературы, иллюстраций, публикуемых в The New York Times и The Washington Post и даже изображений для презентаций нобелевских лауреатов, мы решительно настроены на борьбу с этой проблемой. В этом и следующем посте изложен рассказ о том, как мы помогали единомышленникам из лабораторий Политехнического музея развивать привычный для школ формат образовательного плаката, предоставив ученикам приложение с дополненной реальностью. В процессе мы получили детальную трехмерную модель препарированной лягушки на основе данных компьютерной томографии, визуализировали ген и соответствующий ему белок в одном масштабе, а также смоделировали интерактивный атом, позволяющий увидеть орбитали разных форм и размеров.
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии10

Распознавание лиц человеческим мозгом: 19 фактов, о которых должны знать исследователи компьютерного зрения

Время на прочтение13 мин
Количество просмотров62K
Важной целью исследователей в области компьютерного зрения является создание автоматизированной системы, способной сравняться или превзойти способности человеческого мозга по распознаванию лиц. Результаты психофизических исследований процесса распознавания лиц предоставляют специалистам по компьютерному зрению ценнейшие факты, которые помогут улучшить системы искусственного интеллекта.

Как обычно, предлагаю сокращенный перевод, полный текст доступен в оригинале.

Читать дальше →
Всего голосов 185: ↑181 и ↓4+177
Комментарии66

Некоторые возможности использования Intent'ов

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

Введение


Объекты типа Intent могут быть использованы для общения между отдельными частями Android приложения, либо между различными приложениями системы. Мощь механизма интентов заключается в том, что с его помощью можно обращаться к любому установленному в системе приложению. Это позволяет повторно использовать некоторые компоненты и значительно сократить время на разработку.

В этой статье я покажу некоторые возможности использования класса Intent для обращения к системным приложениям.
Читать дальше →
Всего голосов 76: ↑73 и ↓3+70
Комментарии18

Программирование под Android. Для профессионалов

Время на прочтение1 мин
Количество просмотров27K
Как я и обещал сегодня наконец вышла книга "Программирование под Android. Для профессионалов".
Чем интересно это издание?

image Эта книга научит вас всем тонкостям разработки приложений для мобильных устройств, работающих на популярной операционной системе Android. Основанное на учебном курсе известного образовательного IT-проекта Big Nerd Ranch, это издание содержит ключевые концепции программирования в Android, разъяснение API и множество примеров кода и упражнений. В процессе работы с книгой читатель самостоятельно разработает восемь Android-приложений разной сложности и тематики, включая клиент для загрузки фотографий из базы Flickr, приложение, имитирующее телевизионный пульт дистанционного управления, а также сервис геолокации, отслеживающий перемещения пользователя по всему свету и отображающий их на карте. Все учебные приложения были спроектированы таким образом, чтобы продемонстрировать важные концепции и приемы программирования под Android и дать опыт их практического применения.
Читать дальше →
Всего голосов 5: ↑4 и ↓1+3
Комментарии25

Скачиваем Youtube плейлист в формате mp3 одним bash-скриптом

Время на прочтение2 мин
Количество просмотров35K
Так сложилось, что в данный момент мой рабочий ноутбук оснащен лишь 2GB оперативной памяти. В связи с этим возникла необходимость оптимизации браузера, т.к. при большом количестве открытых вкладок памяти становится недостаточно и используется swap-раздел, что ведет к тормозам.

В работе мне помогает музыка, обычно это открытый таб с плейлистом Youtube. Так вот этот таб в просессе работы съедает до 500MB (!) и даже больше (Google Chrome).

Такое положение дел вынудило написать bash-скрипт, который на входе получает ID плейлиста, на выходе – mp3 файлы, которые можно слушать в любимом плеере, например, в MOC:
MOC
Читать дальше →
Всего голосов 70: ↑61 и ↓9+52
Комментарии48

Ранжирование в Яндексе: как поставить машинное обучение на поток (пост #1)

Время на прочтение6 мин
Количество просмотров51K
Сегодня мы начинаем публиковать серию постов о машинном обучении и его месте в Яндексе, а также инструментах, которые избавили разработчиков поисковой системы от рутинных действий и помогли сфокусироваться на главном — изобретении новых подходов к улучшению поиска. Основное внимание мы уделим применению этих средств для улучшения формулы релевантности, и более широко — для качества ранжирования.

image
Читать дальше →
Всего голосов 63: ↑56 и ↓7+49
Комментарии53

Ранжирование в Яндексе: как поставить машинное обучение на поток (пост #2)

Время на прочтение8 мин
Количество просмотров25K
Мы продолжаем серию публикаций о нашем фреймворке FML, который автоматизировал работу с машинным обучением и позволил разработчикам Яндекса использовать его в своих задачах проще и чаще. Предыдущий пост рассказывал о том, что такое функция ранжирования и как мы научились строить её, имея на входе лишь достаточно большое число оценок от асессоров и достаточно разнообразный набор признаков (факторов) документов по большому количеству запросов.

Из этого поста вы узнаете:
  1. Почему нам нужно подбирать новую формулу ранжирования очень часто, и как именно нам в этом помогает FML;
  2. Как мы разрабатываем новые факторы и оцениваем их эффективность.

image
Читать дальше →
Всего голосов 55: ↑52 и ↓3+49
Комментарии14

Ранжирование в Яндексе: как поставить машинное обучение на поток (пост #3)

Время на прочтение8 мин
Количество просмотров19K
Сегодня мы завершаем серию публикаций о фреймворке FML, в которых рассказываем о том, как и для чего автоматизировали в Яндексе применение технологий машинного обучения. В сегодняшнем посте мы расскажем:
  • почему нужно следить за качеством факторов и как мы это делаем;
  • как FML помогает в задачах распределённых вычислений над поисковым индексом;
  • каким образом и для чего наши технологии машинного обучения уже применяются и могут быть применены как в Яндексе, так и вне его;
  • какую литературу можно посоветовать для более глубокого погружения в затронутую проблематику.

image
Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии3

Как Яндекс распознаёт музыку с микрофона

Время на прочтение10 мин
Количество просмотров160K
Поиск по каталогу музыки — это задача, которую можно решать разными путями, как с точки зрения пользователя, так и технологически. Яндекс уже довольно давно научился искать и по названиям композиций, и по текстам песен. На сказанные голосом запросы про музыку мы тоже умеем отвечать в Яндекс.Поиске под iOS и Android, сегодня же речь пойдёт о поиске по аудиосигналу, а если конкретно — по записанному с микрофона фрагменту музыкального произведения. Именно такая функция встроена в мобильное приложение Яндекс.Музыки:

image

В мире есть всего несколько специализированных компаний, которые профессионально занимаются распознаванием музыкальных треков. Насколько нам известно, из поисковых компаний Яндекс стал первым, кто стал помогать российскому пользователю в решении этой задачи. Несмотря на то, что нам предстоит ещё немало сделать, качество распознавания уже сопоставимо с лидерами в этой области. К тому же поиск музыки по аудиофрагменту не самая тривиальная и освещённая в Рунете тема; надеемся, что многим будет любопытно узнать подробности.
Читать дальше →
Всего голосов 321: ↑313 и ↓8+305
Комментарии113

Теория цвета

Время на прочтение2 мин
Количество просмотров298K
Первое впечатление — это все. Пословица «По одежке встречают, по уму провожают» актуальна не только в жизни, но и в дизайне. Впечатление от дизайна состоит из множества факторов, и один из важнейших — это цвет.

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

Основные цвета (Primary Colors)




Основные цвета палитры — красный, желтый и синий. Если говорить об основных цветах на экранах различных устройств — это RGB, красный, зеленый и синий.
Читать дальше →
Всего голосов 186: ↑160 и ↓26+134
Комментарии84

Как создать ТЗ для программиста

Время на прочтение6 мин
Количество просмотров108K
Рекомендации геймдизайнеру от программиста (архитектора).


Вступление

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

Все слышали про pre poduction, но мало кто знает как именно это происходит. И если про стадию разработки написано много, а про стадию издания — еще больше, то про стадию планирования известно очень мало. В лучшем случае вам посчастливится ознакомится с результатами планирования. А вот как были достигнуты эти результаты? — загадка во тьме.

Этот документ является результатом «разбора полетов» после написания игры Звездная арена для социальных сетей. В этом документе я попытался упорядочить список проблем и решений к которым я и Александр пришли в процессе совместной работы над игрою. Кроме того этот документ является частью большой работы по выстраиванию рабочего процесса создания компьютерных игр.

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

Читать дальше →
Всего голосов 70: ↑64 и ↓6+58
Комментарии50

Реализация пула объектов на языке C#

Время на прочтение8 мин
Количество просмотров55K
Доброго времени суток!
В этой статье я расскажу, как повысить производительность многопоточного (и не только) C#-приложения, в котором часто создаются объекты для «одноразовой» работы.
Немного про многопоточность, неблокирующую синхронизацию, использование встроенного в VS2012 профилировщика и небольшой бенчмарк.
Читать дальше →
Всего голосов 68: ↑63 и ↓5+58
Комментарии16

Фильтр Калмана

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


В интернете, в том числе и на хабре, можно найти много информации про фильтр Калмана. Но тяжело найти легкоперевариваемый вывод самих формул. Без вывода вся эта наука воспринимается как некое шаманство, формулы выглядят как безликий набор символов, а главное, многие простые утверждения, лежащие на поверхности теории, оказываются за пределами понимания. Целью этой статьи будет рассказать об этом фильтре на как можно более доступном языке.
Фильтр Калмана — это мощнейший инструмент фильтрации данных. Основной его принцип состоит в том, что при фильтрации используется информация о физике самого явления. Скажем, если вы фильтруете данные со спидометра машины, то инерционность машины дает вам право воспринимать слишком быстрые скачки скорости как ошибку измерения. Фильтр Калмана интересен тем, что в каком-то смысле, это самый лучший фильтр. Подробнее обсудим ниже, что конкретно означают слова «самый лучший». В конце статьи я покажу, что во многих случаях формулы можно до такой степени упростить, что от них почти ничего и не останется.
Читать дальше →
Всего голосов 178: ↑173 и ↓5+168
Комментарии84

Хватит неправильно использовать выпадающие списки

Время на прочтение4 мин
Количество просмотров132K
Формы состоят из самых разных элементов интерфейса. Если вы не знаете, как правильно с ними обращаться, вы можете сильно усложнить заполнение форм. Чаще всего ошибаются, применяя выпадающие списки (select menu).

Когда использовать


Иногда можно встретить выпадающие списки с 2 вариантами, иногда — с более чем 20. В обоих случаях это неправильно. Если у пользователя есть менее 5 вариантов выбора, следует использовать радиокнопки. Так выбор будет проще и быстрее, потому что пользователю нужно лишь взглянуть на варианты и один раз кликнуть. С выпадающим списком ему нужно нажать на него, найти подходящий вариант и кликнуть снова. Также другие варианты не видны, пока вы не нажмёте на выпадающий список. Если их меньше 5, лучше наглядно показать их в форме в виде радиокнопок — пользователи смогут быстро их просмотреть.



Читать дальше →
Всего голосов 135: ↑128 и ↓7+121
Комментарии103

Использование подключений к СУБД в многопоточных приложениях на Qt

Время на прочтение8 мин
Количество просмотров4.8K
При написании много-сервисной системы в корой каждый сервис должен быть многопоточен, столкнулись с проблемой использования подключения к базе данных. Сервисы разрабатываются на QT, поэтому использовали модуль QtSql для взаимодействие с БД.

Проблемы


  1. Для каждого потока необходимо свое собственное подключение к БД (QSqlDatabase). При использовании одного подключения из разных потоков возникаем ошибка сегментирования.
  2. Т.к. в текущий момент времени возможно держать открытыми ограниченное число подключений к БД, необходимо реализовать захват, освобождение и ожидание подключения потоками.
  3. В контексте потока, для правильной работы с транзакциями необходимо работать только с одним подключением. Например: Сущность заказ содержит в себе сущности Товар. При сохранении Заказа должны сохранится все товары. Если при сохранении товара возникает исключительная ситуация, то вся транзакция по сохранению заказ должна отменится.
  4. Библиотека должна уметь работать с несколькими БД одновременно, причем разных типов (Mysql,PostgreSQL)


Решение


В итоге у нас получилось 3 класса:
  • Connection — класс обертка отвечающий за работу с БД: Подключение, выполнение и обработка результатов запросов.
  • ConnectionManager — синглтон хоронящий в себе подключени и отвечает за выдачу и освобождение подключений.
  • ManagedConnection — класс обертка для автоматизации захвата и освобождения подключения.

Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии4

Linux Mint 14 Nadia

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


Новая версия Mint поставляется с двумя графическими оболочками на выбор — Mate 1.4 (форк GNOME 2, поддерживающий все его функции), и Cinnamon 1.6 (форк GNOME 3), делающий упор на 3D-ускорение. Как видите, причины многих холиваров (unity) тут нет.
Читать дальше →
Всего голосов 98: ↑90 и ↓8+82
Комментарии98

Распознавание плоских объектов OpenCV 2.4

Время на прочтение6 мин
Количество просмотров107K
Привет всем. Я хотел бы рассказать о принципах, лежащих в основе распознавания объектов с использованием OpenCV. Благо какое-то время мне довелось поработать в лаборатории компьютерного зрения ВМК МГУ, и я немного вник в премудрости этой ветви computer science. Задача, которую я буду рассматривать здесь, предлагалась на Microsoft Computer Vision School Moscow 2011 на семинарах Виктора Ерухимова, одного из разработчиков программного комплекса OpenCV. Почти в таком же виде рассматриваемый код можно найти в демках OpenCV 2.4.
Читать дальше →
Всего голосов 33: ↑29 и ↓4+25
Комментарии17

Ремейк игры Karateka

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


Знаменитый гейм-дизайнер Джордан Мехнер (тот самый, который недавно нашёл за шкафом дискеты с исходным кодом Prince of Persia), является автором ещё одной известной игры Karateka. Он разработал её в одиночку в начале 80-х на своём компьютере Apple II, будучи студентом, а в 1984 году отправил дискету по почте в Brøderbund.



Файтинг Karateka считается очень продвинутым для своего времени, отличается реалистичной анимацией и затягивающей атмосферой. К апрелю 1985 года Karateka стала самой продаваемой игрой в США, а после выхода версий для Commodore 64, Atari, Nintendo NES и Game Boy общие продажи превысили 500 тыс. копий. Успех убедил Мехнера, что разработкой игр можно зарабатывать на жизнь, и он приступил к созданию Prince of Persia.
Читать дальше →
Всего голосов 60: ↑50 и ↓10+40
Комментарии31

Утилита FileCorrupter для тестирования продуктов на «битых» входных данных

Время на прочтение2 мин
Количество просмотров6K
Ломать — не строить? На самом деле, это не совсем так. Когда ваша задача — проверить работоспособность программы на некорректных данных, возникает необходимость внести намеренные повреждения в файлы.

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

Пример использования


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

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

Чтобы убедиться в правильной отработке ошибок вашим приложением, можно предложить ему открыть файл, предварительно испорченный при помощи FileCorrupter.
Скриншот, подробности и ссылка для скачивания
Всего голосов 13: ↑10 и ↓3+7
Комментарии8

Рендер Diablo3. Как это работает

Время на прочтение7 мин
Количество просмотров116K
Как устроены графические движки популярных игр с мировым именем? Какие технологии применяют разработчики в самых крупных игровых компаниях? Действительно ли, чтобы сделать красивую игровую графику необходимо применять самые передовые технологии современной 3D графики? На эти вопросы мы попробуем ответить на примере рендер части игры Diablo3, от компании Blizzard Entertainment.
Читать дальше →
Всего голосов 283: ↑276 и ↓7+269
Комментарии130

Информация

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