Pull to refresh
25
0
Александр Кузнецов @akuznetsov

User

Send message

Deep Learning, теперь и в OpenCV

Reading time13 min
Views65K


Данная статья является кратким обзором возможностей dnn — модуля OpenCV, предназначенного для работы с нейросетями. Если вам интересно, что это такое, что оно умеет и как быстро работает, добро пожаловать под кат.
Читать дальше →
Total votes 43: ↑43 and ↓0+43
Comments26

Опубликованы доклады с конференции «Будущее веб-поиска»

Reading time3 min
Views909
Научная конференция «Будущее веб-поиска» состоялась 19-20 мая в Барселоне (Испания) и была организована при участии Yahoo. Спустя некоторое время в онлайне были опубликованы доклады.

Список презентаций включает 26 научных работ на самые разные темы: анализ ссылок, алгоритмы, извлечение информации, структурирование данных, интеграция поиска с другими средами, дата-майниинг. О своих разработках рассказали ученые из Германии, Испании, США, Великобритании, Италии, Финляндии, Венгрии, Израиля, Канады и Голландии, а также исследователи из компании Yahoo.

«Хабрахабр» публикует полный список презентаций со ссылками на файлы PDF. Каждая из презентаций включает ключевые слайды. Слайдов может быть разное количество: от шести до трех десятков, но они обычно предельно насыщены информацией. Это основные тезисы работы плюс сопутствующие графики и формулы. Кстати говоря, многие из научных работ можно найти в открытом доступе в Сети в архивах научных журналов.
Читать дальше →
Rating0
Comments0

HBase, загрузка больших массивов данных через bulk load

Reading time4 min
Views11K
Привет коллеги.
Хочу поделиться своим опытом использования HBase, а именно рассказать про bulk loading. Это еще один метод загрузки данных. Он принципиально отличается от обычного подхода (записи в таблицу через клиента). Есть мнение, что с помощью bulk load можно очень быстро загружать огромные массивы данных. Именно в этом я решил разобраться.
Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments5

Общедоступный индекс веба (5 миллиардов веб-страниц)

Reading time1 min
Views3.8K
Организация Common Crawl сделала щедрый подарок разработчикам и компаниям, которые работают в области поиска и обработки информации. В открытый доступ на Amazon S3 выложен индекс из 5 миллиардов веб-страниц с метаданными, PageRank и графом гиперссылок.

Если вы видели в логах веб-сервера CCBot/1.0, то это их краулер. Некоммерческая организация Common Crawl выступает за свободу информации и поставила целью сделать общедоступный поисковый индекс, который будет доступен каждому разработчику или стартапу. Предполагается, что это приведёт к созданию целой плеяды инновационных веб-сервисов.
Читать дальше →
Total votes 68: ↑63 and ↓5+58
Comments39

Беззамочные алгоритмы: ненастойчивый кэш

Reading time5 min
Views2.8K
(Тот факт, что русского перевода понятию «lock-free» в литературе ещё не устоялось, — нисколько меня не убеждает, что такого перевода не должно быть.)

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

BOOL IsPrime(int n)
{
 static int nLast = 1;
 static BOOL fLastIsPrime = FALSE;

 // если значение параметра не изменилось с прошлого раза,
 // воспользуемся готовым результатом
 if (n == nLast) return fLastIsPrime;

 // вычислим и запомним новый результат
 nLast = n;
 fLastIsPrime = slow_IsPrime(n);
 return fLastIsPrime;
}

Само собой, этот код потоконебезопасен: если один поток находится внутри вызова slow_IsPrime(), то другой поток, вызвавший IsPrime(), застанет значения переменных nLast и fLastIsPrime несоответствующими одно другому.

Простое решение — заключить код в критическую секцию; но простота идёт в ущерб производительности: если, скажем, nLast = 5, fLastIsPrime = TRUE, и два потока одновременно вызывают IsPrime(5), то совершенно ни к чему им выстраиваться в очередь: ничего не мешает им одновременно воспользоваться кэшированным значением.

Посмотрим, как можно реализовать наш кэш беззамочно.
Читать дальше →
Total votes 28: ↑21 and ↓7+14
Comments40

Работаем с jQuery Templates

Reading time20 min
Views138K

Введение


Плагин jQuery Templates – это «движок шаблонов», работающий на стороне клиента как расширение jQuery.

Этот плагин помогает показать в браузере данные, которые находятся в объектах и массивах JavaScript, избавляя вас от рутинных операций по созданию HTML-кода, экранированию специальных символов и т.п. Кроме того, он обладает очень интересными возможностями – например, позволяет обновлять созданный с его помощью HTML-код при изменении исходных данных.

Разумеется, jQuery Templates – не единственный и не первый «движок шаблонов», но у него есть большое преимущество перед альтернативными вариантами – поддержка со стороны jQuery Team. Это позволяет нам не бояться того, что этот плагин окажется заброшенным, и различные проблемы, возникающие при выходе новых версий браузеров, придется решать своими силами.

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

Читать дальше →
Total votes 201: ↑197 and ↓4+193
Comments67

Дерево Фенвика

Reading time3 min
Views53K
Здравствуй, Хабрахабр. Сейчас я хочу рассказать о такой структуре данных как дерево Фенвика. Впервые описанной Питером Фенвиком в 1994 году. Данная структура похожа на дерево отрезков, но проще в реализации.

Что это?


Дерево Фенвика — это структура данных, дерево на массиве, которая обладает следующими свойствами:
• позволяет вычислять значение некоторой обратимой операции F на любом отрезке [L; R] за логарифмическое время;
• позволяет изменять значение любого элемента за O(log N);
• требует памяти O(N);
Читать дальше →
Total votes 81: ↑73 and ↓8+65
Comments39

Gradle: Tasks Are Code

Reading time5 min
Views47K
В предыдущем топике я постарался вкратце рассказать, что же такое Gradle и на каких идеях он построен. Также была освещена концепция Source Sets и функциональность, с ней связанная.

Теперь я хотел бы рассказать о том, чем Gradle зацепил лично меня. Речь пойдёт о способах работы с задачами. Задача в Gradle — близкий аналог Ant Target. И, чтобы не путаться в терминах, под задачей (или task) далее по тексту всегда будет подразумеваться Gradle Task. Если речь будет идти о сущности из Ant, то это будет указано явно: Ant task.

Так вот, задачи в Gradle создаются при помощи специального dsl (domain specific language) на основе Groovy. И возможности, которые этот dsl предоставлет, на мой взгляд, почти безграничны в сравнении с ant или maven.

Читать дальше →
Total votes 32: ↑29 and ↓3+26
Comments48

Репликация в Postgresql 9.0

Reading time3 min
Views86K
Доброго времени суток. Учитывая, что с момента релиза PostgreSQL 9 прошло уже некоторое количество времени — я решил пощупать одну из его новых функций — нативную репликацию. Как известно, новый механизм основан на пересылке XLOG`a от мастера к слейву. Одним из жирных плюсов можно назвать нормальную обработку ALTER`ов. Иными словами — администратор 9й версии может обойтись без Slony.
Читать дальше →
Total votes 58: ↑51 and ↓7+44
Comments42

Ваше первое расширение для Opera

Reading time4 min
Views12K
Вступление

Эта статья проведёт вас через базовые шаги для создания вашего первого расширения для Opera. Вы создадите кнопку на панели, при нажатии на которую будет открываться всплывающее окно с сообщением «Hello World!». Расширения для Opera пишутся с помощью общих открытых веб-стандартов, поэтому всё, что вам нужно чтобы начать, это Opera 11 и ваш текстовый редактор или IDE.
Читать дальше →
Total votes 80: ↑66 and ↓14+52
Comments29

Новый продукт команды JetBrains — «Charisma» в EAP

Reading time2 min
Views1.2K
Команда JetBrains (известная многим по продукту R#) создает новый продукт с кодовым именем “Charisma”.
Charisma
Charisma – это web-ориентированный issue tracker (система отслеживания ошибок). Ее основные функции, отличающие ее от подобных систем:
  • Поиск при помощи вопроса в качестве альтернативы стандартным поисковым фильтрам (эта функция видна на картинке – запрос вида By Me Fixed – закрытые задачи мной).
  • Легковесный пользовательский интерфейс, основанный на AJAX – позволяет работать с системой быстрее.
  • Расширенная поддержка клавиатуры для более быстрого создания, редактирования и перехода между задачами при помощи клавиатуры.
  • Возможность выполнения командных операция по выбранным запросам.
Charisma разрабатывается с помощью JetBrains MPS и уже используется для отслеживания ошибок в системе JetBrains TeamCity (там как раз и можно попробовать их расхваленный пользовательский интерфейс). Charisma уже доступна в Early Access Program (EAP), потому каждый может попробовать ее скачать и установить себе (на любой J2EE сервер, такой как Apache Tomcat 5+, Mortbay Jetty, JBoss, Caucho Resin), последний билд был 28 июля под номером 45. Ну и конечно же команда JetBrains с удовольствием выслушает все ваши замечания и предложения (так написано на сайте EAP). Жалко что не опубликованы цены, но, думаю, те, кто будет участвовать достаточно сильно в обсуждении и поиске ошибок может быть JetBrains и отблагодарит скидками или подарками.
Читать дальше →
Total votes 30: ↑28 and ↓2+26
Comments22

Настройка nginx

Reading time5 min
Views289K
Тема правильной настройки nginx очень велика, и, боюсь, в рамки одной статьи на хабре никак не помещается. В этом тексте я постарался рассказать про общую структуру конфига, более интересные мелочи и частности, возможно, будут позже. :)

Неплохой начальной точкой для настройки nginx является конфиг, который идёт в комплекте с дистрибутивом, но очень многие возможности этого сервера в нём даже не упоминаются. Значительно более подробный пример есть на сайте Игоря Сысоева: sysoev.ru/nginx/docs/example.html. Однако, давайте лучше попробуем собрать с нуля свой конфиг, с бриджем и поэтессами. :)
подробности
Total votes 88: ↑78 and ↓10+68
Comments53

Кластеризация: алгоритмы k-means и c-means

Reading time3 min
Views173K
Добрый день!

Как и обещал, продолжаю серию публикаций о технологии Data Mining. Сегодня хочу рассказать о двух алгоритмах кластеризации (k-means и c-means), описать преимущества и недостатки, дать некоторые рекомендации по их использованию. Итак, поехали…

Кластеризация — это разделение множества входных векторов на группы (кластеры) по степени «схожести» друг на друга.

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

Читать дальше →
Total votes 9: ↑7 and ↓2+5
Comments9

Структуры данных: бинарные деревья. Часть 2: обзор сбалансированных деревьев

Reading time6 min
Views242K
Первая статья цикла

Интро


Во второй статье я приведу обзор характеристик различных сбалансированных деревьев. Под характеристикой я подразумеваю основной принцип работы (без описания реализации операций), скорость работы и дополнительный расход памяти по сравнению с несбаланчированным деревом, различные интересные факты, а так же ссылки на дополнительные материалы.
Читать дальше →
Total votes 55: ↑54 and ↓1+53
Comments28

Information

Rating
Does not participate
Location
Саратов, Саратовская обл., Россия
Date of birth
Registered
Activity