Как стать автором
Обновить
0
0

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

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

Применение машинного обучения для увеличения производительности PostgreSQL

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

Машинное обучение занимается поиском скрытых закономерностей в данных. Растущий рост интереса к этой теме в ИТ-сообществе связан с исключительными результатами, получаемыми благодаря ему. Распознавание речи и отсканированных документов, поисковые машины — всё это создано с использованием машинного обучения. В этой статье я расскажу о текущем проекте нашей компании: как применить методы машинного обучения для увеличения производительности СУБД.
В первой части этой статьи разбирается существующий механизм планировщика PostgreSQL, во второй части рассказывается о возможностях его улучшения с применением машинного обучения.

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

Анализ изображений и видео. Классификация изображений и распознавание объектов

Время на прочтение1 мин
Количество просмотров26K
Сегодня мы публикуем седьмую лекцию из курса «Анализ изображений и видео», прочитанного Натальей Васильевой в петербургском Computer Science Center, который создан по совместной инициативе Школы анализа данных Яндекса, JetBrains и CS-клуба.



Всего в программе девять лекций, из которых уже были опубликованы:
  1. Введение в курс «Анализ изображений и видео»;
  2. Основы пространственной и частотной обработки изображений;
  3. Морфологическая обработка изображений;
  4. Построение признаков и сравнение изображений: глобальные признаки;
  5. Построение признаков и сравнение изображений: локальные признаки;
  6. Поиск по подобию. Поиск нечетких дубликатов.

Под катом вы найдете план новой лекции и слайды.
Читать дальше →
Всего голосов 34: ↑33 и ↓1+32
Комментарии0

Анализ изображений и видео. Сегментация изображений

Время на прочтение2 мин
Количество просмотров25K
Сегодня мы публикуем восьмую лекцию из курса «Анализ изображений и видео», прочитанного Натальей Васильевой в петербургском Computer Science Center, который создан по совместной инициативе Школы анализа данных Яндекса, JetBrains и CS-клуба.



Всего в программе девять лекций, из которых уже были опубликованы:
  1. Введение в курс «Анализ изображений и видео»;
  2. Основы пространственной и частотной обработки изображений;
  3. Морфологическая обработка изображений;
  4. Построение признаков и сравнение изображений: глобальные признаки;
  5. Построение признаков и сравнение изображений: локальные признаки;
  6. Поиск по подобию. Поиск нечетких дубликатов;
  7. Анализ изображений и видео. Классификация изображений и распознавание объектов.

Под катом вы найдете план новой лекции и слайды.
Читать дальше →
Всего голосов 31: ↑29 и ↓2+27
Комментарии3

Быстрое сшивание панорамы

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


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

Дополнительные сведения о реализации сшивания панорам, а также о новом подходе, когда для снятия полной круговой панорамы используются две камеры, см. в моей предыдущей публикации. В этом документе приводится краткое сравнение двух популярных библиотек, а затем следует подробное описание создания приложения, способного быстро сшивать изображения в панораму.
Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии1

Поиск по подобию. Поиск нечетких дубликатов. Лекции от Яндекса

Время на прочтение28 мин
Количество просмотров20K
Сегодня мы публикуем шестую лекцию из курса «Анализ изображений и видео», прочитанного Натальей Васильевой в петербургском Computer Science Center, который создан по совместной инициативе Школы анализа данных Яндекса, JetBrains и CS-клуба.



Всего в программе девять лекций, из которых уже были опубликованы:
  1. Введение в курс «Анализ изображений и видео».
  2. Основы пространственной и частотной обработки изображений.
  3. Морфологическая обработка изображений.
  4. Построение признаков и сравнение изображений: глобальные признаки.
  5. Построение признаков и сравнение изображений: локальные признаки.

Под катом, вы найдете план новой лекции, слайды и подробную расшифровку.
Читать дальше →
Всего голосов 41: ↑40 и ↓1+39
Комментарии3

Построение признаков и сравнение изображений: локальные признаки. Лекции от Яндекса

Время на прочтение27 мин
Количество просмотров17K
Сегодня мы публикуем пятую лекцию из курса «Анализ изображений и видео», прочитанного Натальей Васильевой в петербургском Computer Science Center, который создан по совместной инициативе Школы анализа данных Яндекса, JetBrains и CS-клуба. Всего в программе девять лекций, из которых уже были опубликованы:

  1. Введение в курс «Анализ изображений и видео».
  2. Основы пространственной и частотной обработки изображений.
  3. Морфологическая обработка изображений.
  4. Построение признаков и сравнение изображений: глобальные признаки.



Под катом вы найдете план этой лекции, слайды и подробную расшифровку.
Читать дальше →
Всего голосов 38: ↑35 и ↓3+32
Комментарии1

Основы пространственной и частотной обработки изображений. Лекции от Яндекса

Время на прочтение18 мин
Количество просмотров63K
Мы продолжаем публиковать лекции Натальи Васильевой, старшего научного сотрудника HP Labs и руководителя HP Labs Russia. Наталья Сергеевна читала курс, посвящённый анализу изображений, в петербургском Computer Science Center, который создан по совместной инициативе Школы анализа данных Яндекса, JetBrains и CS-клуба.



Всего в программе — девять лекций. Первая из них уже была опубликована. В ней рассказывалось о том, в каких областях встречается анализ изображений, его перспективах, а также о том, как устроено наше с вами зрение. Вторая лекция посвящена основам обработки изображений. Речь пойдет о пространственной и частотной области, преобразовании Фурье, построении гистограмм, фильтре Гаусса. Под катом — слайды, план и дословная расшифровка лекции.
Читать дальше →
Всего голосов 51: ↑48 и ↓3+45
Комментарии9

Построение признаков и сравнение изображений: глобальные признаки. Лекции от Яндекса

Время на прочтение42 мин
Количество просмотров24K
Мы продолжаем публиковать лекции Натальи Васильевой, старшего научного сотрудника HP Labs и руководителя HP Labs Russia. Наталья Сергеевна читала курс, посвящённый анализу изображений, в петербургском Computer Science Center, который создан по совместной инициативе Школы анализа данных Яндекса, JetBrains и CS-клуба.



Всего в программе девять лекций. Уже были опубликованы:

Под катом вы найдете план этой лекции, слайды и подробную расшифровку.
Читать дальше →
Всего голосов 32: ↑31 и ↓1+30
Комментарии0

Плохо документированные особенности Linux

Время на прочтение8 мин
Количество просмотров67K
Привздохнув, произнесла:
«Как же долго я спала!»
image Когда-то, впервые встретив Unix, я был очарован логической стройностью и завершенностью системы. Несколько лет после этого я яростно изучал устройство ядра и системные вызовы, читая все что удавалось достать. Понемногу мое увлечение сошло на нет, нашлись более насущные дела и вот, начиная с какого-то времени, я стал обнаруживать то одну то другую фичу про которые я раньше не знал. Процесс естественный, однако слишком часто такие казусы обьединяет одно — отсутствие авторитетного источника документации. Часто ответ находится в виде третьего сверху комментария на stackoverflow, часто приходится сводить вместе два-три источника чтобы получить ответ на именно тот вопрос который задавал. Я хочу привести здесь небольшую коллекцию таких плохо документированных особенностей. Ни одна из них не нова, некоторые даже очень не новы, но на каждую я убил в свое время несколько часов и часто до сих пор не знаю систематического описания.

Все примеры относятся к Linux, хотя многие из них справедливы для других *nix систем, я просто взял за основу самую активно развивающуюся ОС, к тому же ту, которая у меня перед глазами и где я могу быстро проверить предлагаемый код.

Обратите внимание, в заголовке я написал «плохо документированные» а не «малоизвестные», поэтому тех кто в курсе прошу выкладывать в комментариях ссылки на членораздельную документацию, я с удовольствием добавлю в конце список.
Читать дальше →
Всего голосов 103: ↑102 и ↓1+101
Комментарии104

Несколько интересных особенностей MySQL

Время на прочтение8 мин
Количество просмотров63K
В не очень далеком прошлом мне пришлось покопаться немного в исходном коде MySQL, и разобраться в некоторых аспектах его работы. В ходе работы лопаткой, и эксперимeнтов, я наткнулся на несколько очень интересных особенностей, часть из которых просто забавна, а в случае некоторых бывает очень интересно понять, чем руководствовался программист, который принимал решение сделать именно так.

Начнем с такого интересного типа, как ENUM.

mysql> CREATE TABLE enums(a ENUM('c', 'a', 'b'), b INT, KEY(a));
Query OK, 0 rows affected (0.36 sec)

mysql> INSERT INTO enums VALUES('a', 1), ('b', 1), ('c', 1);
Query OK, 3 rows affected (0.05 sec)
Records: 3  Duplicates: 0  Warnings: 0


Итак, у нас есть таблица, в ней есть два столбца. У первого, a, тип ENUM, у второго, b, INT. В таблице три строки, у всех трех значение b равно 1. Интересно, чему равны минимальный и максимальный элементы в столбце a?

mysql> SELECT MIN(a), MAX(a) FROM enums;
+--------+--------+
| MIN(a) | MAX(a) |
+--------+--------+
| c      | b      |
+--------+--------+
1 row in set (0.00 sec)


Кажется странным, было бы разумно, если бы самым маленьким был 'a', а самым большим — 'c'.
А что если выбрать минимум и максимум только среди тех строк, где b = 1? То есть, среди всех строк?

mysql> SELECT MIN(a), MAX(a) FROM enums WHERE b = 1;
+--------+--------+
| MIN(a) | MAX(a) |
+--------+--------+
| a      | c      |
+--------+--------+
1 row in set (0.00 sec)


Вот так мы заставили MySQL поменять свое мнение о том, как сравнивать поля в ENUM, просто добавив предикат.
Разгадка такого поведения заключается в том, что в первом случае MySQL использует индекс, а во втором нет. Это, конечно, не объясняет, почему MySQL сравнивает ENUMы по разному для сортировки в индексе, и при обычном сравнении.

Второй пример проще и лаконичнее:

mysql> (SELECT * FROM moo LIMIT 1) LIMIT 2;
+------+
| a    |
+------+
|    1 |
|    2 |
+------+
2 rows in set (0.00 sec)


Когда я показал этот запрос своему коллеге, который занимается разработкой парсера SQL, его вопрос был не «почему этот запрос возвращает две строки», а «как надо написать SQL парсер так, чтобы такой запрос был валидным, без того, чтобы написать правило, специально разрешающее такой запрос».

Интересно, что далеко не любой SELECT в скобках сработает, в частности, UNION в скобках — это синтаксическая ошибка:

mysql> (SELECT * FROM moo UNION ALL SELECT * FROM hru) LIMIT 2;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNION ALL SELECT * FROM hru) LIMIT 2' at line 1


Еще несколько интересных примеров под катом
Читать дальше →
Всего голосов 113: ↑110 и ↓3+107
Комментарии95

Об удобной навигации и отладке C++ кода в Vim

Время на прочтение7 мин
Количество просмотров42K
Компания, где я работаю, разрабатывает программное обеспечение на C++ под Linux. Долгое время мы использовали Qt Creator, с редкими ребятами работающими из Emacs и Vim. Когда я сам попытался пересесть на Vim, я понял, что ситуация с плагинами для разработки на С++ очень не простая. Поработав немного с CTags, я быстро понял, что без напильника работать в Vim будет очень сложно.
К сожалению, с ростом опыта работы с Vim редактор в Qt Creator в режиме эмуляции устраивал меня все меньше, и в какой-то момент я решил потратить немного времени и разобраться, как же сделать из Vim нормальную среду.
Я очертил для себя четыре вещи, которые я бы хотел от среды разработки, и которых мне бы хватило в Vim, чтобы полностью на него перейти:

1. Автодополнение
2. Навигация по коду
3. Отладка прямо из среды
4. Интеграция с Git (в частности Blame прямо в редакторе, и Git Grep)

Автодополнение в Vim — это решенная проблема, и название у решения YouCompleteMe. Это очень качественный плагин, который реализует автодополнение для большого количества языков программирования, в частности Python и C++. Ходят слухи, что внутри Google YouCompleteMe решает и вторую проблему с навигацией кода, но использует для этого внутренные инструменты гугла для индексирования.

Интеграция с Git в какой-то степени решена с помощью vim-fugitive. Это не такая комплексная интеграция, как бывает у Jet Brains, или в Visual Studio, но сравнимая с тем, что предлагает Qt Creator. Те два сценария, которые нужны были мне: blame и grep — работают хорошо.

Отладка и навигация были проблемами, решенными гораздо хуже. В этой статье я расскажу о плагине, который мы написали для навигации по С++ коду. В конце статьи я также расскажу о том, как мы для себя решили проблему с интегрированным отладчиком.
Читать дальше →
Всего голосов 56: ↑51 и ↓5+46
Комментарии92

Сводная таблица по поддержке C++ 11/14/17

Время на прочтение5 мин
Количество просмотров65K
Как любому C++ разработчику, следящему за новинками в отрасли и стандартами в частности, мне стало интересно, насколько полно вообще поддерживается стандарт C++ 11 (а также 1y и 1z) разными компиляторами? Да, существуют разные сводные таблицы, но чаще всего это сравнение двух компиляторов или двух версий одного компилятора, либо сводная таблица, но уже устаревшая, либо вообще неполный список. В общем, сел я да и сделал полную таблицу (на основе списка Clang-a и GCC) по четырем компиляторам: Clang, GNU C++, MSVC и Intel C++.
Таблица под катом
Всего голосов 73: ↑71 и ↓2+69
Комментарии46

Художественные и документальные фильмы о космонавтике

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

Статьи о книгах и играх требуют «третьего кита» — рассказа о фильмах на космическую тему. Тем более, что я «заболел» космонавтикой именно после просмотра нескольких фильмов подряд. В данной статье я хочу рассказать о лично виденных достойных упоминания художественных (не фантастических) и документальных фильмах о космонавтике.
Что бы посмотреть на выходных?
Всего голосов 49: ↑44 и ↓5+39
Комментарии37

Десять книг о космонавтике

Время на прочтение14 мин
Количество просмотров37K
Этот список возник «благодаря» нескольким обзорным топикам в блоге «Космонавтика». Любовь Хабра к всему космическому привела к тому, что даже откровенно бредовый поток мыслей, написанный Шляхтичем многие приняли за чистую монету — и это далеко не единственный (хотя и наиболее вопиющий) пример того, о чём я пытаюсь сказать.

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

Оба этих затруднения я постарался решить тем, что привлёк к дополнению и обсуждению списка ЖЖ-пользователя ___lin___ (ссылка ведёт на его жж-профиль, где можно прочесть о том, кто он такой, и чем знаменит). ___lin___ в помощи не отказал, за что ему космическое спасибо. Очень рекомендую ознакомиться с его проектом «Великое Кодирование», посвящённому переводу в цифровую форму редких книг околокосмической тематики.

Теперь собственно список.
Всего голосов 37: ↑36 и ↓1+35
Комментарии21

Не пельменем единым жив программист или история о том, как все успеть

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

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

На написание этого поста меня сподвиг замечательный пост «За что конкретно я ненавижу некоторых отдельно взятых маркетологов — или как айтишник по магазинам ходил». Сразу хочу извиниться за возможные опечатки — пишу с планшета, сидя в микроавтобусе и вытягивая сеть телефоном. Hacker's keyboard очень удобен для ssh-доступа, но большие тексты писать им не очень удобно.

IT- специалисты — народ любопытный. То соберут на базе микроконтроллеров автоматическую систему полива и освещения для любимого фикуса, то пропатчат прошивку мультиварки для раздачи торрентов. Но, по непонятной и загадочной причине, когда дело доходит до еды, пресловутый принцип DIY дает сбой. И наш герой, способный часами переделывать кинескоп старого телевизора в Луч Смерти, идет на кухню утолить голод соевым текстуратом пополам с гидроцеллюлозой и «коллагеновым сырьем».

В этом посте я хочу разрушить миф о том, что еда может быть либо быстрой и удобной, либо съедобной. Не секрет, что многим из нас приходится работать по 12 часов в сутки, что не способствует кулинарным подвигам с участием 28 приправ и перьев с зада дракона, омытых слезами единорога. Вы получите замечательную возможность посмотреть в глаза своей половинки на 8 марта после того, как она получит не контроллер для дистанционного управления шторой, а свежевыпеченный хлеб ручной работы рано утром. Если вам надоело есть синтетику — добро пожаловать под hubracut.
Читать дальше →
Всего голосов 269: ↑263 и ↓6+257
Комментарии293

Альтернативные аллокаторы памяти

Время на прочтение13 мин
Количество просмотров90K
Написал Стивен Тови в 2:29 утра по программированию (шутка юмора Google Translate)
Вступление от себя: эта заметка, прорекламированная Алёной C++, предназначена в основном разработчикам игр для консолей, но будет, наверное, полезна и всем, кому приходится сталкиваться с экстремальным аллоцированием динамической памяти. Возможно, любители посравнивать управление памятью в C++ и Java тоже найдут над чем задуматься.

Оригинал с небезынтересной дискуссией в комментариях: altdevblogaday.org/2011/02/12/alternatives-to-malloc-and-new


Обязательная вступительная басня

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

Сейчас объясню, почему...
Всего голосов 75: ↑72 и ↓3+69
Комментарии59

Вдогонку про самолёты и правила

Время на прочтение5 мин
Количество просмотров129K
Собирался написать комментарий, но незаметно вырос целый пост.

Не согласен с половиной пунктов и этого топика, но это мои личные заморочки.
Кроме того, отсутствует самый главный — «Избегайте сдачи чего-либо в багаж любой ценой». Я давным -давно использую во всех поездках исключительно рюкзак и «разгрузки». Причина одна — среди моих знакомых уже, наверное, половина стали жертвами недоставки багажа. Некоторые — даже по два раза.
Таки чего он хочет нам сказать?
Всего голосов 202: ↑168 и ↓34+134
Комментарии222

Государь: алгоритм

Время на прочтение3 мин
Количество просмотров4.1K
«Государь» Макиавелли — одно из моих самых любимых произведений. Являясь руководством непосредственно правителю, я считаю, эту книгу обязан прочесть каждый начальник/директор. И хотя она уже устарела, думаю было бы весьма полезно держать ее советы у себя в голове.

Но бывает тяжеловато. Не только из-за объема информации, но еще и потому, что в зависимости от ситуации Макиавелли дает разные советы.

«Было бы неплохо структурировать», — подумал я.

Результатом мысли стал алгоритм принятия решения, представленный в картинке ниже и созданный исключительно по «Государю». Остальные советы, которые не определены ни под одну ситуацию и которые должны выполняться в любом случае, поданы ниже списком. Уверен, каждый сам сможет экстраполировать рекомендации правителю на должность руководителя.

Под катом картинка 1920x1573 px
Всего голосов 61: ↑54 и ↓7+47
Комментарии14

Amazon покупает за $775 млн компанию, производящую роботов

Время на прочтение1 мин
Количество просмотров1.3K
Amazon.com сообщил о покупке Kiva Systems Inc. за $775 млн. Эта компания будет автоматизировать логистику крупнейшего интернет-магазина с помощью робототехники.

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


Читать дальше →
Всего голосов 30: ↑28 и ↓2+26
Комментарии18

Ребенок в семье гика или у нас свой подход

Время на прочтение2 мин
Количество просмотров18K
Когда в семье рождается ребенок, это, черт возьми, здорово! Как говорил Гришковец в фильме «сатисфакция»: «все становится сложно, но в то же время все становится просто». Так вот, о простом: существует огромное количество литературы, рассчитанной на молодых мам. Существует даже пара книжек о детях, написанной для мужчин (причем очень дурным языком). Но почему-то очень мало информации, рассчитанной на технарей. Считается, видимо, что у нас до детей не доходит.

Лично мне, когда я читал эти книжки (первое правило — RTFM), очень не хватало каких-то четких инструкций и вариантов использования техники и разных приспособ. А поскольку все мы, сидящие тут, не просто технари, а немного техногики и живем в окружении бешеного количества техники, давайте посмотрим, как ее можно было применить для пользы ребенка.


Читать дальше →
Всего голосов 256: ↑211 и ↓45+166
Комментарии324

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность