Search
Write a publication
Pull to refresh
59
0
Roman Lugovkin @RomanL

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

Send message

Введение в многомерный анализ

Reading time12 min
Views175K

Некоторое время назад мне довелось организовывать новую группу разработки, которая должна была заняться развитием OLAP и BI продуктов в дружеской софтверной компании. А так как группа была собрана из свежих выпускников ВУЗов, то мне пришлось написать «краткий курс молодого бойца» для того чтобы максимально доступно дать начальные понятия об OLAP людям, которые ни разу с ним не сталкивались, но уже имели опыт программирования и работы с БД.



Выкладываю теперь это Введение в Общественное Достояние.



В статье несколько смешиваются понятия OLAP, Business Intelligence, и Data Warehouse, но и в жизни часто сложно понять, где проходит граница. А уж в реальных проектах, так и подавно, все они ходят рядом. Поэтому прошу не судить строго.



Итак, что же такое OLAP.

Раскручиваем XSS на Яндексе (fixed)

Reading time4 min
Views4.7K


Здравствуйте, Хабражители!

Сегодня гулял по сети, зашел на Яндекс, чтобы посмотреть погоду в столице. Когда нажал кнопочку «другой город» Яндекс перенаправил меня сюда. Я думаю, что у каждого, кто видит такой адрес возникает желание подменить один из параметров, а точнее retpath. :) Вставил я туда стандартный
"><script>alert('xss');</script>
и залез в исходник, смотреть что фильтруется, а что нет. Вот такая строка была в исходнике.
<span onclick="return {'b\-form\-button':{name:'b\-form\-button', 'retpath': &quot;\&quot;&gt;&lt;script&gt;alert('xss')&quot;}}"
Ну, думаю, скукота, — все фильтруется. Потом посмотрел внимательней и понял, что Яндекс не добавляет к URL вначале протокол, вот тут можно и поиграться. Ввел
javascript: alert('xss');
— работает! Но к сожалению, только при нажатии на кнопку «Вернуться». Можете попробовать. Уже интереснее, копаем дальше…

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

5 полезных приемов

Reading time3 min
Views7.3K
Эти маленькие куски кода я насобирал за весь свой стаж JavaScript-программирования. Они должны серьезно облегчить жизнь Web-разработчика, и научить решать проблемы проще, не прикручивая тяжеловесные JavaScript-библиотеки. Не спорю, иногда они могут оказаться весьма полезными, но подгружать JQuery для создания таймера — это, по-моему, дикость…

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

Постоянные неблокируемые cookie с использованием HTTP-заголовков

Reading time3 min
Views9.7K
На прошлой неделе прогремела новость об исследовании, утверждающем, что аналитическая компания KissMetrics отслеживала пользователей на сайтах при помощи уникального значения заголовка ETag(спека). KissMetrics отрицали использование ETag и в итоге подали в суд на авторов исследования(см. upd. в конце статьи).

Использование ETag (сокрашение от 'element tag', «метка элемента») для отслеживания пользователей известен и используется в партнерских сетях с начала прошлого десятилетия. Так же известно, что и заголовок Last-Modified(spec) теоретически может использоваться для отслеживания пользователей с помощью уникального значения времени обновления.

Мне, правда, кажется, что мало кто знает, что заголовок Last-Modified может принимать в качестве значения любую строку, то есть значение не обязательно должно быть правильной датой.
Читать дальше →

In-memory-data-grid. Масштабируемые хранилища данных

Reading time5 min
Views24K
В последнее время интерес к облачным архитектурам растет с каждым днем, так как это один из наиболее эффективных способов масштабировать приложение, не прикладывая больших усилий, а самым узким местом любого высоконагруженного проекта является хранилище данных, в частности реляционная БД. Для борьбы с недостатками традиционных БД в основном используется 2 подхода:

1) Кэширование результатов выполнения запросов
  • плюсы: высокая скорость доступа к данным
  • минусы: требует компромисса между актуальностью данных и скоростью доступа, т.к. данные в кэше могут устареть, а удалять старые данные из кэша с последующим кэшированием новых — это дополнительные задержки и нагрузка на систему

2) NoSQL решения
  • плюсы: хорошая горизонтальная масштабируемость, доменная модель данных совпадает с моделью хранения данных
  • минусы: низкая скорость получения результатов в случае использования диска, практически невозможно обеспечить работу внутрикорпоративного софта, который ориентирован на работу с конкретной реляционной БД.

Сегодня я хочу познакомить вас с таким типом хранилища данных, который объединяет достоинства обоих подходов и при этом имеет ряд преимуществ перед упомянутыми выше решениями: In-memory-data-grid (IMDG).
Читать дальше →

Logreplica: сбор логов со всего кластера в единую точку в реальном времени

Reading time4 min
Views7.8K
Я продолжаю делиться полезными утилитами, которые использую в различных проектах. На этот раз речь пойдет о logreplica — простом инструменте, который позволяет организовать надежную передачу логов с разных серверов кластера на единую машину с большими дисками «в реальном времени». Это очень удобно, если вы хотите централизованно мониторить или анализировать логи со всего кластера так, как будто бы они пишутся напрямую на единственную машину.

Можно сказать, что logreplica задумывался как более удобный и надежный способ сбора логов в центральное место, нежели способ использования настроек syslog/syslog-ng.

Преимущество logreplica — в простоте конфигурирования: вы единственный раз настраиваете «маску» имен лог-файлов и задаете адреса машин-источников, и в дальнейшем логи, соответствующие маске, автоматически и «на лету» складываются на центральную машину (в том числе если на машинах-источниках появляются новые лог-файлы, неизвестные на момент старта logreplica). При добавлении новой машины на ней не нужно ничего донастраивать: достаточно включить ее имя в конфиг-файл.
Читать дальше →

13 бесплатных курсов Стэнфордского университета

Reading time2 min
Views72K
Недавно анонсированный бесплатный онлайн-курс Стэнфорда по основам искусственного интеллекта вызвал настоящий ажиотаж у публики. Заявки на регистрацию подали уже 81 966 человек. Оно и понятно: курс ведут Питер Норвиг и Себастьян Тран — настоящие звёзды. Первый раньше работал в НАСА и написал учебник по ИИ, а второй разрабатывает лучшие в мире роботизированные автомобили (для Google).

Очевидно, что качественное образование через интернет нужно людям и становится всё популярнее. Поэтому перед началом учебного года есть смысл напомнить список 13-ти бесплатных учебных курсов Stanford Engineering. В отличие от лекций Норвига и Трана, это не онлайновые, а старые курсы. В свободный доступ уже выложены видеозаписи всех лекций от первой до последней, PDF'ы с заданиями и другие материалы, но здесь нельзя задать вопрос преподавателю.
Читать дальше →

Открытие офшорных банковских счетов с помощью Payweb.com

Reading time1 min
Views31K
image

Здравствуйте, уважаемые хабропользователи!

Этим постом хотелось бы обратить ваше внимание на возможность удалённого открытия полноценных офшорных банковских счетов для частных лиц с помощью нашего сервиса.
Читать дальше →

Пишем электронную музыку. VSTi синтезаторы

Reading time7 min
Views93K


Сейчас обычного компьютера вполне достаточно для создания качественной электронной музыки. Многие пробовали писать свою музыку, интересовались этой темой. Возникло желание поделиться своим опытом. Первая статья из серии будет на важнейшую тему — VSTi синтезаторы.

Что такое VSTi? Зачем нужны VSTi? Почему не хватит одних только семплов для создания качественной музыки?

Во-первых: такого семпла, который звучал так как хочешь, еще нужно найти. А это не так просто. Естественно существуют продакшен-библиотеки с готовыми мелодическими лупами, но в таком случае создание музыки подобно складыванию конструктора лего.

Во-вторых: семплу нельзя так же просто изменять звучание как звуку синтезатора.

В-треьих: при игре с семплом при помощью миди-клавиатуры стоит учитывать возможные артефакты, такие как алиасинг, разная длительность нот.

Семплы, конечно же, используються в ряде VSTi — семплерах и ромплерах, где например может быть засемплировано пианино или гитара. Что не возможно качественно создать одним синтезом. Но занимают много места и не имеют возможности полностью изменять звук как генерированые синты.

Как же можно создавать свое звучание?
Читать дальше →

Используем Flickr API из Perl

Reading time5 min
Views5K
Добрый день, уважаемый %habr_username% !

Если кто не знает — речь идёт об одном из самых популярных в мире фотохостингов — Flickr (wiki про Flickr).

Вкратце о Flickr API, ибо на хабре присутствуют только краткие упоминания о нём.

Разработчики Flickr дают возможность всем страждущим использовать мощный API, предоставляющий доступ ко всем мыслимым и немыслимым функциям, данным, возможностям. Flickr API отлично документирован, есть полное описание всех запросов (пример), есть FAQ, есть «быстрый старт», это основные источники познаний о Flickr API, их вполне достаточно для начала разработки вашего приложения. Модули для облегчения использования Flickr API есть для большинства популярных языков программирования, в том числе для Objective-C и Java, которые в настоящее время широко используются в разработке для IOS и Android, список с ссылками можно посмотреть тут (Прокрутив страничку вниз).
Читать дальше →

Определение части речи слов в русском тексте (POS-tagging) на Python 3

Reading time9 min
Views97K
Пусть, дано предложение “Съешьте еще этих мягких французских булок, да выпейте чаю.”, в котором нам нужно определить часть речи для каждого слова:

[('съешьте', 'глаг.'), ('еще', 'нареч.'), ('этих', 'местоим. прил.'), ('мягких', 'прил.'), ('французских', 'прил.'), ('булок', 'сущ.'), ('да', 'союз'), ('выпейте', 'глаг.'), ('чаю', 'сущ.')]

Зачем это нужно? Например, для автоматического определения тегов для блог-поста (для отбора существительных). Морфологическая разметка является одним из первых этапов компьютерного анализа текста.
Узнать, как это реализовать на Python 3

Шортики — короткие и смешные, или как мы готовили сайт к Хабраэффекту

Reading time7 min
Views3.2K


Намба 0: Вступление

Однажды, задумчиво листая башорг, я вдруг понял, что большинство цитат довольно длинные и очень часто их просто лень читать. В наш век всеобщей спешки — на это уходит много времени. Таким образом родился новый формат: Шортики (от английского слова Short — короткий). Шортик — это короткая (из одного-двух предложений) шутка, жестко ограниченная 255 символами (чтобы не повадно было).

Как раз в этот момент я хотел подучить программирование и искал несложную задачу. Сайт я накидал довольно быстро — за пару вечеров, рассказал о нем коллегам по работе и паре знакомых в IRC, и собирался уже о нем забыть, как вдруг обнаружил, что за два дня сайт посетило 500 человек, из которых чуть ли не треть подписалась на RSS. Стало понятно, что концепция людям понравилась. Немного прилизав сайт внешне, я решился показать его Хабрасообществу — Шортики — короткие и смешные, прошу любить и жаловать.

P.S. Учитывая то, что это не совсем стартап (проект пока некоммерческий, да и «стартап» — слишком громкое слово для моей поделки), приобретенная за годы пребывания на сайте хабрасовесть не позволила мне написать нетехническую статью. Поэтому, под катом вас ждет занимательная история о том, как мы готовили Шортики к Хабраэффекту.

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

Кластеризация. Алгоритм а-квазиэквивалентности

Reading time3 min
Views7.5K
Странно, но статей о извлечение знаний (data mining) и кластеризации (как одном из основных инструментом, которие используются для извлечения знаний) на Хабре совсем немного. А если говорить говорить о конкретных алгоритмах, то рассматривались только hard/soft k-means.

В статье ниже описывается теория и реализация (Python + matplotlib) не очень известного, но крайне интересного иерархического метода который можно назвать алгоритмом а-квазиэквивалентности.

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

NetworkX для удобной работы с сетевыми структурами

Reading time5 min
Views102K

Рассматривается библиотека NetworkX предназначенная для создания, манипуляции и изучения структуры, динамики и функционирования сложных сетевых структур.
Рассмотрены основы использования библиотеки в качестве инструмента обучения, прикладного программирования или научных исследований.
Основой для описания библиотеки служат официальные материалы с сайта.
Рассмотрена версия библиотеки 1.5.
Читать дальше →

Хранение иерархических данных в плоском виде

Reading time3 min
Views7.9K
На примере хранения дерева комментариев.

Многие наверняка сталкивались с проблемой хранения комментариев, по крайней мере задумывались об этом. Очевидным решением «в лоб» является ссылка на родительский комментарий и, как следствие, рекурсивные вызовы при необходимости отобразить дерево. Современные СУБД поддерживают иерархические запросы, но мне кажется, что это просто перенос проблемы за пределы области видимости, может быть я не прав. В любом случае я писал для Google Application Engine, там разговора об иерархических запросах не идёт вообще.

Мне очень не нравилась перспектива рекурсии и множество мелких запросов к базе, поэтому я стал изобретать какой-то способ получить все комментарии одним простым запросом. И такой способ я довольно быстро «изобрёл». Опросил нескольких знакомых, оказалось, что мало кто на эту тему задумывался, поэтому возьму на себя смелость описать что именно я реализовал.

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

DISLIN — высокоуровневая библиотека визуализации пользовательских данных

Reading time3 min
Views21K
dislin logo
Думаю каждый сталкивался с проблемой визуализации данных внутри своей программы. Особенно, если программа консольная. В топике я хочу рассказать о бесплатной (для некоммерческого использования) кроссплатформенной библиотеке DISLIN, которая разработана институтом исследований Солнечной системы имени М. Планка (Германия). DISLIN может как просто отображать графики, так и сразу их сохранять в файлы. Разработчики заявляют возможность использования в fortran, c/c++, Perl, Python, Java, .NET.
Читать дальше →

Дерево ван Эмде Боаса

Reading time6 min
Views19K
Всем доброго времени суток!

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

Дерево ван Эмде Боаса (van Emde Boas tree) — ассоциативный массив, который позволяет хранить целые числа в диапазоне [0; U), где U = 2k, проще говоря, числа, состоящие не более чем из k бит. Казалось бы, зачем нужно еще какое-то дерево, да еще позволяющее хранить только целые числа, когда существует множество различных сбалансриованных двоичных деревьев поиска, позволяющих выполнять операции вставки, удаления и прочие за O(log n), где n — количество элементов в дереве?

Главная особенность этой структуры — выполнение всех операций за время O(log(log(U))) независимо от количества хранящихся в ней элементов.

Что же там еще есть такого вкусного?

Layar объявил о запуске новой платформы Layar Vision

Reading time1 min
Views5.9K
Layar – один из популярных браузеров дополненной реальности, позволяющий создавать интересные, информативные приложения для быстрого получения точной информации об окружающем нас мире.

Layar заявил о запуске новой платформы - Layar Vision, которая дает возможность распознавать объекты в режиме реального времени.

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



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

История восстановления базы MySQL из файлов (InnoDB)

Reading time10 min
Views59K
Как говорит народная мудрость, “админы делятся на две категории: те, которые делают бэкапы, и те, которые уже делают”. В моем случае ответственность за несделанный бэкап упала на разработчика, то есть на меня самого. Данная статья посвящена тому, как найти выход из ситуации, подобной описанной. Надеюсь она будет полезна тем, кто не имея такого опыта, может столкнуться с подобной ситуацией.
Читать дальше →

PhoneGap 1.0 позволяет писать приложения для семи платформ

Reading time1 min
Views2.8K


До сих пор разработчики мобильных приложений следовали довольно предсказуемому modus operandi: сначала разработать приложение для iOS, потом — для Android, а потом для других платформ.

В прошлом же году компания Nitobi начала разработку открытого проекта PhoneGap, позволяющего, используя HTML, CSS и JavaScript, легко создавать приложения сразу для Android, Bada, BlackBerry, iOS, Symbian, webOS и Windows Phone 7.

Кроме Nitobi, в разработке участвуют сотни отдельных разработчиков и команда старших инженеров-программистов IBM. Проект быстро набирает обороты, у него уже около 40 000 загрузок в месяц — в общей сложности 600 тысяч — и постоянный поток пожертвований.

Сейчас же вышла версия PhoneGap 1.0, в которой сделан акцент на доступ к нативным API устройств. Другие улучшения включают в себя общую стабильность API и «подключаемую» архитектуру, совместимость API с W3C DAP, API контактов и средства удалённой отладки. Более того, новый интерфейс делает добавление платформ и расширений платформ проще, наряду с упрощением процесса разработки плагинов.

via Engadget, The Next Web

Information

Rating
Does not participate
Location
Владимирская обл., Россия
Date of birth
Registered
Activity