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

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

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

Создаем OLAP куб. Часть 1

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

Продолжая тематику Многомерные кубы, OLAP и MDX и olap для маленькой компании, традиционно, предлагаю начать с простенького «Hello World» куба, который будет анализировать процессы и тенденции голосований на Хабре.

Итак, давайте попробуем создать свою первую OLAP систему.
Но, прежде чем, потирая руки, запускать Business Intelligence Studio, предлагаю вначале создать хранилище данных хабра-голосов, так называемый Data Warehouse.
Зачем? Причин в этом несколько:
  • сама суть Data Warehouse-а хранить «очищенные» данные, готовые для анализа, поэтому даже его изначальная структура может сильно отличаться от структуры нашей хабра-OLTP базы данных
  • в HabraDW (так мы его назовем) мы вынесем только ту информацию, которая нам нужна будет для анализа, ничего лишнего
  • к Data Warehouse не накладываются требования нормализации. Даже наоборот, денормализировав некоторые данные можно добиться более понятной схемы для построения куба, а также скорости загрузки данных в куб
Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии21

PHP-Дайджест № 68 – интересные новости, материалы и инструменты (27 июля – 24 августа 2015)

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


Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Всего голосов 38: ↑35 и ↓3+32
Комментарии8

Как в проекте заменить jQuery на D3

Время на прочтение7 мин
Количество просмотров19K
Создавая визуализации или интерактивные страницы, мы часто используем комбинацию из jQuery и D3. Причём в основном используется D3, а из jQuery берут небольшой набор функций для манипуляций с DOM.

И хотя в D3 есть мощные возможности – селекторы и обёртка для ajax, часто нам не хватает каких-то функций из jQuery. Мы покажем, как можно заменить jQuery, используя D3 повсеместно. В результате ваш код упростится, объём проекта уменьшится, и вы не будете смешивать разные подходы, а будете использовать функции так, как принято в D3.

Для начала рассмотрим, в чём эти две библиотеки сходятся. Это удобно для тех, кто уже знает jQuery, и хочет изучить D3.

Схожести


Селекторы

Обе библиотеки основаны на простых в использовании, но богатых на возможности селекторах.

jQuery

$('.foo').addClass('foobar');
$('.foo').removeClass('foobar');


D3

d3.selectAll('.foo').classed('foobar', true);  
d3.selectAll('.foo').classed('foobar', false); 


Управление стилями и атрибутами

jQuery

$('.foo').attr('data-type', 'foobar');
$('.foo').css('background', '#F00');


D3

d3.selectAll('.foo').attr('data-type', 'foobar');  
d3.selectAll('.foo').style('background', '#F00');  

Читать дальше →
Всего голосов 25: ↑19 и ↓6+13
Комментарии16

Управление логгированием в systemd

Время на прочтение12 мин
Количество просмотров122K
Systemd Journal

Демон инициализации systemd де-факто уже стал стандартом в современных Linux-системах. На него перешли многие популярные дистрибутивы: Debian, RHEL/CentOS, Ubuntu (начиная с версии 15.04). В systemd используется принципиально иной (по сравнению с традиционным инструментом syslog) подход к логгированию.
В его основе лежит централизация: специализированный компонент journal cобирает все системные сообщения (сообщения ядра, различных служб и приложений). При этом специально настраивать отправку логов не нужно: приложения могут просто писать в stdout и stderr, a journal сохранит эти сообщения автоматически. Работа в таком режиме возможна и с Upstart, но он сохраняет все логи в отдельный файл, тогда как systemd сохраняет их в бинарной базе, что существенно упрощает  систематизацию и поиск.

Хранение логов в бинарных файлах также позволяет избежать сложностей с использованием парсеров для разных видов логов. При необходимости логи можно без проблем переконвертировать в другие форматы (более подробно об этом будет рассказано ниже).
Journal может работать как совместно с syslog, так и полностью заменить его.
Для просмотра логов используется утилита journalctl. Об особенностях и тонкостях работы с ней мы расскажем в этой статье.
Читать дальше →
Всего голосов 44: ↑41 и ↓3+38
Комментарии15

JavaScript — шаблоны наследования

Время на прочтение7 мин
Количество просмотров58K
Примечание переводчика: Тема наследования в JavaScript является одной из самых тяжелых для новичков. С добавлением нового синтаксиса с ключевым словом class, понимание наследования явно не стало проще, хотя кардинально нового ничего не появилось. В данной статье не затрагиваются нюансы реализации прототипного наследования в JavaScript, поэтому если у читателя возникли вопросы, то рекомендую прочитать следующие статьи: Основы и заблуждения насчет JavaScript и Понимание ООП в JavaScript [Часть 1]

По всем замечаниям, связанным с переводом, обращайтесь в личку.

JavaScript является очень мощным языком. Настолько мощным, что в нем сосуществует множество различных способов проектирования и создания объектов. У каждого способа есть свои плюсы и минусы и я бы хотел помочь новичкам разобраться в этом. Это продолжение моего предыдущего поста, Хватит «классифицировать» JavaScript. Я получил много вопросов и комментариев с просьбами привести примеры, и для именно этой цели я решил написать эту статью.
Читать дальше →
Всего голосов 22: ↑15 и ↓7+8
Комментарии35

PHP-Дайджест № 67 – интересные новости, материалы и инструменты (12 – 27 июля 2015)

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


Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Всего голосов 63: ↑55 и ↓8+47
Комментарии0

Битовое кунг-фу, или Как оптимизировать трафик между мобильным приложением и сервером

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

Старо как мир…


Люди всегда стремятся быть в курсе последних событий. Благодаря этому стремлению возникло много media, которым необходимо собственное мобильное приложение для доставки контента своим читателям. Так в магазинах появилось великое множество новостных приложений. Сотни приложений для чтения новостей, газет и журналов.


Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии9

HTML5 Drag and Drop загрузка файлов

Время на прочтение4 мин
Количество просмотров137K
image
Благодаря нововведениям HTML5 создавать Drag and Drop интерфейсы стало гораздо проще. К сожалению, эти нововведения еще не обладают обширной поддержкой браузеров, но надеюсь в скором времени это изменится (на данный момент работает в Firefox 4+, Chrome и Opera 11.10).

Читать дальше →
Всего голосов 81: ↑79 и ↓2+77
Комментарии61

Теплые ламповые часики для гиков на любой вкус

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

После завершения своего мега проекта системы автополива у меня началось временное помешательство. В смысле я начал проект механических часов. Дабы быть максимально оригинальным, я решил внимательно проштудировать все существующие конструкции любительских часов, начав поиск с ламповых экземпляров.
С удовольствием делюсь данным обзором и с вами, так что подкатом вы найдете много теплых ламповых и винтажных видео.
Читать дальше →
Всего голосов 52: ↑50 и ↓2+48
Комментарии32

Загрузка ОС Linux без загрузчика

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

Введение


Здесь по возможности я постараюсь как можно проще и детальнее ответить на вопрос:
«Как можно загрузить Linux (на примере ubuntu) без использования загрузчика такого как GRUB 2, iELILO»
Здесь не будет разбираться как запустить/установить Ubuntu в режиме [UEFI only]. Для этого обратитесь сюда help.ubuntu.ru/wiki/установка_дистрибутива_на_компьютер_с_efi
и сюда help.ubuntu.ru/wiki/lubuntu-osinstallation
Все действия будут производиться на уже работающей системе.
Читать дальше →
Всего голосов 56: ↑46 и ↓10+36
Комментарии18

Десятка лучших движков для создания своих собственных игр

Время на прочтение1 мин
Количество просмотров203K
Десять лучших, по мнению ресурса BytesWire, игровых движков для создания собственных игр.

Unity 5


image
Лучший выбор для разработчика, позволяет создавать игры как 2D, так и 3D.

Construct 2


image
Система для создания двумерных игр через простой интерфейс на базе HTML5. Программирования не требуется.

libGDX


image
Кросплатформенный фрейморк, написанный на Java и работающий с OpenGL (ES).
Читать дальше →
Всего голосов 38: ↑19 и ↓190
Комментарии27

200 блогов по разработке и проектированию

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


Привет, Хабр! Мы решили посмотреть на то, как крупнейшие бизнесы и студии делятся своими наработками, и адаптировали подборку технологических блогов. Уверены, что опыт коллег поможет нам всем сделать Хабр еще интереснее.
Читать дальше →
Всего голосов 36: ↑28 и ↓8+20
Комментарии34

Электронные сигареты: ликбез

Время на прочтение11 мин
Количество просмотров119K
Электронные сигареты набирают всё большую популярность, но, как показывает практика, многие курильщики, решившие избавиться от пагубной привычки и перейти на электронику, разочаровываются в ней. Во-первых они не утоляют никотиновый голод, во-вторых обходятся дорого (хотя где-то слышали, что дешевле), в-третьих — часто ломаются. А всё из-за того, что пробовали они нечто подобное представленному на картинке.
В этом посте я попробую немного рассказать о современном состоянии дел на этом стремительно растущем рынке, что должно помочь сделать выбор. Советов про вред или пользу, за или против не будет. Их полно в сети (например, очень хорошо сказано про это в недавнем посте), кому верить каждый решает сам.
Читать дальше →
Всего голосов 54: ↑43 и ↓11+32
Комментарии219

Дайджест новостей из мира разработки на Unity

Время на прочтение2 мин
Количество просмотров22K
Лето – пора больших свершений. Потратьте время отпусков с пользой: читайте наш новый дайджест и создавайте потрясающие игры на Unity.


Читать все
Всего голосов 22: ↑19 и ↓3+16
Комментарии0

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

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

Господа! Я рад сообщить, что наконец-то все желающие могут загрузить бесплатный учебник на более чем 1600 страниц, над переводом которого работало более полусотни человек из ведущих университетов, институтов и компаний России, Украины, США и Великобритании. Это был реально народный проект и пример международной кооперации.

Учебник Дэвида Харриса и Сары Харрис «Цифровая схемотехника и архитектура компьютера», второе издание, 2012, сводит вместе миры программного обеспечения и аппаратуры, являясь одновременно введением и в разработку микросхем, и в низкоуровневое программирование для студентов младших курсов. Этот учебник превосходит более ранний вводный учебник «Архитектура компьютера и проектирование компьютерных систем» от Дэвида Паттерсона и Джона Хеннесси, причем соавтор предыдущего учебника Дэвид Паттерсон сам рекомендовал учебник от Харрисов как более продвинутый. Следуя новому учебнику, студенты строят реализацию подмножества архитектуры MIPS, используя платы с ПЛИС / FPGA, после чего сравнивают эту реализацию с индустриальными микроконтроллерами Microchip PIC32. Таким образом вводится вместе схемотехника, языки описания аппаратуры Verilog и VHDL, архитектура компьютера, микроархитектура (организация процессорного конвейера) и программирование на ассемблере — в общем все, что находится между физикой и высокоуровневым программированием.

Как загрузить? К сожалению, не одним кликом. Сначало надо зарегистрироваться в пользовательском коммьюнити Imagination Technologies, потом зарегистрироваться в образовательных программах на том же сайте, после чего наконец скачать:
Читать дальше →
Всего голосов 117: ↑114 и ↓3+111
Комментарии68

Репликация данных из MySQL в MongoDB

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

Бывают случаи, когда нужно менять архитектуру системы на ходу. Возможно вы нашли узкое место в своем проекте или решили, что при текущем темпе роста в скором времени могут возникнуть сложности с масштабированием или отказоустойчивостью. Как раз для таких случаев существует Tungsten Replicator.
Tungsten Replicator — это бесплатное с открытым исходным кодом, приложение написанное на Java, расширяющее функционал репликации СУБД MySQL. Возможности Tungsten широки, это и мульти-мастер репликация, параллельная репликация, гетерогенная репликация данных между MySQL и Oracle, PostgreSQL, MongoDB. В данной статье будет рассматриваться гетерогенная репликация мастера MySQL с подчиненным сервером MongoDB, в качестве ОС будет выступать CentOS 6.5.
Читать дальше →
Всего голосов 35: ↑31 и ↓4+27
Комментарии12

Маленькие хитрости сбора паспортных данных

Время на прочтение5 мин
Количество просмотров58K
Хочу поделиться своим опытом, приобретённым при разработке и сопровождении информационной системы учёта физических лиц в одной организации. Масштаб — несколько десятков тысяч реальных людей. Разумеется, производился сбор в том числе и паспортных данных. Как это часто бывает, исчерпывающего ТЗ сформулировано не было и некоторые вещи пришлось доделывать в процессе. О тонкостях учёта физлиц для программистов, впервые сталкивающихся с такой задачей, я и хотел бы рассказать. В статье будут затронуты только вопросы ФИО, гражданства и документов, удостоверяющих личность. Материал получился несколько сумбурным в связи с тем, что содержит только личный опыт без пересказа общеизвестных фактов и цитирования официальных документов.
Итак, поехали
Всего голосов 27: ↑24 и ↓3+21
Комментарии34

jspm — менеджер пакетов для браузера

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

  • jspm — это менеджер пакетов для SystemJS, сделаный на основе ES6 module loader
  • Позволяет загружать все форматы модулей (ES6, AMD, CommonJS и Globals) непосредственно из npm или Github с управлением зависимостями. Также позволяет использовать любые не стандартные источники модулей, реализованные через Registry API
  • В разработке: Загружает модули ES6 как отдельные файлы, и компилирует их в прямо в браузере
  • В продакшене: Собирает модули в один или несколько бандлов, с единой командой для запуска всего приложения


Начнем


Устанавливаем jspm cli


  npm install jspm -g

Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии10

Грид, группировка данных и OData

Время на прочтение4 мин
Количество просмотров8.5K
В одной из прошлых статей мы кратко рассказали, как грид контролы работают с удаленным сервером, используя OData протокол. Большинство современных грид контролов позволяют удобно группировать данные по нескольким колонками. Рассмотрим подробнее, как формулируются запросы к REST серверу, в случае, когда грид производит автоматическую группировку данных.

Удобство (зачем это нужно)


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

image
Читать дальше →
Всего голосов 26: ↑25 и ↓1+24
Комментарии0

Python библиотека для Photon Server

Время на прочтение4 мин
Количество просмотров9.3K
В течение последних нескольких месяцев пришлось близко познакомиться с фреймворком для разработки клиент-серверных игр Photon. В данной статье я не буду останавливаться на плюсах и минусах Photon, так как для этого, пожалуй, нужен опыт работы более чем с одним фреймворком. Речь пойдет о библиотеке для работы с Photon Server на языке Python.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии2

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность