Pull to refresh
8
0
crazyprog @crazyprog

User

Send message

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

Reading time4 min
Views66K
OLAP

Итак, продолжаем создавать куб.
Напомню, что в предыдущей статье, мы создавали Data Warehouse для хранения голосов хабра-пользователей за хабра-топики. Для тех, кто хочет начать сразу создавать куб, я выложил скрипт, который создает и наполняет хранилище (на моей машине скрипт занял 10 минут и нагенерил 1866268 хабра-голосов).
Для того, чтобы создать OLAP куб, нам понадобится:
  • SQL Server, на котором хранится наш HabraDW (подойдет любой);
  • Microsoft SQL Server, с запущенными Analysis Services (2005/2008);
  • Business Intelligence Studio, которая входит в пакет клиентских приложений для Microsoft SQL Server-а, и интегрируется с Visual Studio, если она у вас установлена (2005/2008);
Читать дальше →

PHPConf 2009 приглашает докладчиков

Reading time2 min
Views431
image Международный клуб разработчиков PHPCLUB приглашает вас
принять участие в PHPCONF 2009 — ежегодной международной конференции web-разработчиков,
которая состоится в 8-9 октября 2009 года в г. Москва.
phpconf.ru

Тематика конференции:

Конференция PHPCONF 2009 посвящается вопросам, связанным с эффективной разработкой веб-проектов.

В этом году предпочтение будет отдано докладам посвященным:

* Организация эффективной командной разработки.
* Обеспечение поддержания жизни и развития «старых» проектов, рефакторинг кода. Второе рождение проекта.
* Организация эффективной индустриальной разработки.
* Постановка процесса веб-разработки на поток.
* Современные методики и веяния в мире веб-разработки.
Читать дальше →

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

Reading time3 min
Views165K
OLAP

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

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

Проект на энтузиазме, часть 2: Реалии

Reading time6 min
Views637
Первая часть находится здесь. Там я писал про процесс разработки, главным образом про людей. Эта статья будет посвящена реалиям работы сайта в сети, конкретным цифрам дохода и расхода, упоминаний сайта и посещаемости.

Старт

Итак, проект Холиварс.ру запущен. Запущен удачно, он что называется выстрелил. Это когда вести о проекте сами собой разносятся людьми, которых он впечатлил. После публикации обзоров только на хабре и ещё одном ресурсе, без вложения денег в рекламу — более тысячи упоминаний в блогосфере, десяток упоминаний на новостных сайтах, даже сюжеты по ТВ, отчего у нас волосы выпучились и глаза встали дыбом — по Эксперт-ТВ и в программе Телепорт на МТВ.
Читать дальше →

PHP Manual с комментариями пользователей в chm

Reading time3 min
Views5.6K
Навеяно вот этим: Похапе мануал обновился

Мне лично удобней пользоваться CHM версией руководства по PHP — быстрый поиск удобен, а интернет не всегда доступен. Но у официальной справки нет встроенных пользовательских комментариев, которые зачастую бывают очень полезны. Ранее они были в Extended-версии руководства, но сейчас она уже не поддерживается.

Полазив в гугле, я обновленной версии руководства с комментами не нашел. Пришлось сделать собственную, и этот процесс может повторить любой желающий.
Как именно?

Свершилось! Colocation за 1000 рублей

Reading time2 min
Views5.4K
После опубликования статьи Intel Atom colocation последовали баталии тут на хабре, и в логове хостеров (на hostobzor-е). Ценой нечеловеческих усилий :-) таки удалось убедить некоторые компании, что это(colocation неттопов) может быть выгодно. Предлагаю читателям хабра поучаствовать в первом размещении неттопов в ДЦ (М-101, Москва) — подробности под катом.

Напоминаю — это возможность поиметь свой сервер с 2-4Гб памяти, нормальным каналом и дисковым IO по цене завалящего VPS.

Кстати, хороший пример того, как хабр может сделать мир лучше :-)
Читать дальше →

И без Javascript всё спокойно

Reading time3 min
Views7K

Задача


Совместить lite-версию сайта (работающую без JavaScript'а) с обычной. Иными словами, сделать graceful degradation для JavaScript-решений. Далее в посте небольшое руководство для тех, кому актуальна данная проблема.
Читать дальше →

Похапе мануал обновился

Reading time1 min
Views1.5K
image

Альтернативный мануал к PHP обновился. Напомню, он хорош для тех PHP-разработчиков, кто привык пользоваться chm-версией справочника, ведь он решает некоторые проблемы:
  • Корректная кодировка русскоязычных разделов
  • Решение проблем с открытием chm-файлов под Линуксом и Макосью

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

В новой версии произошли довольно полезные изменения:
  • К каждому разделу справочника теперь прикреплены полезные комментарии с сайта php.net, которые просили хабраузеры в своё время
  • Добавились быстрые ссылки на конкретные разделы для обмена с друзьями
  • Английская версия мануала обновилась до версии PHP 5.3. На сайте php.net с некоторых пор русская документация отсутствует. Я решил оставить её, зато по дефолту сделал открытие английской версии, в любом случае это настраивается
  • Переезд на новый хостинг и сжатие данных дало прирост в скорости открытия

http://manual.pohape.ru

Пользуйтесь за здоровье, все фючер реквесты приму с удовольствием.

Textpattern: плюсы, минусы, особенности

Reading time5 min
Views5.9K
Решил написать эту обзорную статью про CMS Textpattern. Пользуюсь им около 5 лет и сделал около десятка функционирующих сайтов. Накопился достаточный опыт для того, чтобы рассказать про эту CMS с точки зрения рядового пользователя.
Программистом я не являюсь, поэтому не в моей компетенции рассказывать о чистоте и оптимальности кода этого движка. Попробую лишь описать Textpattern, выделить его плюсы и минусы по моему личному опыту. Также хотелось бы услышать Ваши комментарии и вопросы.
Итак, начнем.
Читать дальше →

Автоматическая загрузка файлов на Яндекс.Диск

Reading time4 min
Views26K
Предлагаю вашему вниманию PHP скрипт автоматической загрузки файлов на сервис Яндекс.Диск. Скрипт прост до безобразия, достаточно передать ему в качестве параметров логин, пароль и путь к файлу и в результате он загрузит ваш файл на сервис и выдаст вам ссылку на него. Не знаю, сколько еще меня вместе с моими постами будет терпеть Яндекс, но все-таки приведу исходный код скрипта :)
Читать дальше →

Установка Ubuntu Linux с винчестера. Скрипт

Reading time5 min
Views24K
image
Никогда не любил устанавливать Ubuntu с Live-CD/DVD. Иногда может быть диск поцарапан и установка прерывается на самом интересном месте, музыку не послушаешь, фильмы не посмотришь. Я устанавливаю Ubuntu из iso-образа со своего жесткого диска на другой винчестер или раздел. Читая раньше в инете статьи, как ставить с жесткого диска, я просто слепо следовал инструкциям, копируя и выполняя команды. Бывали проблемы с загрузчиком grub, приходилось дополнительно искать в интернете решения, как исправить эти ошибки. Затем, чтобы не мучаться, я сделал свой скрипт установки.

Задача: Нужно, используя уже установленную Ubuntu, установить систему на другой винчестер.
Читать дальше →

Установка nginx + php-fpm + memcache + eaccelerator на FreeBSD

Reading time3 min
Views49K
Зачем всё это? — спросите вы. Да просто захотелось поделиться с общественностью некоторым опытом, полученным в процессе оптимизации vds под нужды одного общеизвестного блого-социального движка, который на обычном хостинге чувствует себя, мягко скажем, некомфортно.

Началось всё с того, что я ушёл от firstvds, где уже ничто не спасёт от тормозов. Ушел на ганди.нет, взял одну шару (1 share), которую дали на месяц бесплатно. Кстати, акция эта (This summer, your server is free!) вроде еще не закончилась. ;) И начал на этой шаре проводить зверские эксперименты с установкой разного ПО. Тестировал результаты с помощью siege.

В итоге конфигурация из сабжа оказалась самая быстрая. Опытом её установки и настройки я и хотел бы с вами поделиться.

Поехали!

Мотивация пользователя для создания контента

Reading time3 min
Views2.2K
За последнее время довелось прочитать на Хабре об открытии целой кучи стартапов, сделанных по образу и подобию Хабрахабра и основанных на бесплатном движке LiveStreet. Система рейтингов и оценок, хабрасила и карма, ну и конечно же система инвайтов – всего этого, по мнению многих, вполне достаточно, чтобы толпа народа (причем обязательное условие – адекватного народа) ломанулась писать посты на избранную для сайта тематику. Собственно, хабраподобная система рейтинга должна решать две задачи – стимулировать пользователя к созданию контента и отсеивать «неадекват». Эти функции успешно выполняются на сайте IT-тематики, но стоит ли надеяться на их выполнение на иных сайтах?
Читать дальше →

Работа с http через неблокируемые сокеты

Reading time7 min
Views9K
Понадобилось сделать несколько параллельных http запросов на php. Интуиция подсказывала что делается это через неблокируемые сокеты. В интернете в общем то есть несколько готовых классов для работы с ними, но как всегда захотелось легкости и простоты, поэтому был срочно изобретен новый велосипед. Под катом чуть больше 100 строк кода с комментариями и пример использования.

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

Сверхплавное передвижение объектов

Reading time2 min
Views7.1K
Иногда у веб-разработчиков возникает задача, которая требует плавного движения объекта по экрану. Это может быть строка загрузки, какой-то спрайт (например, машинки на клавогонках) или что-то ещё. Проблема возникает, когда сдвиг даже на одну точку кажется слишком резким и портит общее ощущение от происходящего. Как этого избежать? Использовать приёмы антиалиасинга.

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

Как это сделано?
Читать дальше →

Пример использования пользовательских событий

Reading time4 min
Views7.7K
Наверное много кто знает что в jQuery есть набор стандартных событий, таких как Click или MouseDown и прочие, на которые можно повесить обработчики или возбудить с помошью функций click() mousedown() и прочих. Чуть поменьше людей знают, что те-же самые действия можно сделать с помощью функций bind() и trigger():
$(document).bind('click', function(){
  alert('It works!');
});

$(document).trigger('click');


* This source code was highlighted with Source Code Highlighter.

И наверное мало кто знает, что в функциях bind() и trigger() можно использовать свои собственные события. Зачем это нужно, я и хочу рассказать на примере.
Читать дальше →

Сущностей много — код один

Reading time2 min
Views2.5K
Как известно в работе вёб программиста часто нужно делать что то достаточно быстро, для этого придумали множество всяческих инструментов ООП, фреймворки и много всего, но как не порождать монстров, а делать всё быстро и качественно?
Часто увлекаясь проектированием получается не то что хотелось бы, от проекта к проекту навык совершенствуется и опыт растёт.
Сейчас хотел бы поделиться своим опытом.
кусочек моего опыта

Настройка nginx

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

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

Множественная загрузка файлов из архива с поддержкой RANGE запросов

Reading time2 min
Views1.7K
Иногда бывает полезным не сохранять кучу файлов на каком-либо хостинге, а использовать только один архивный файл. Но возникает проблема доступа к конкретному файлу в архиве. Предлагаю вашему вниманию PHP скрипт, который позволяет загружать часть архивного файла как целый файл. Поддерживается дозагрузка через запросы RANGE. Архив, в данном случае, просто склейка из множества файлов. В настоящий момент скрипт протестирован с менеджером загрузок Flashget.
Читать дальше →

валидный HTML-документ

Reading time1 min
Views9.4K
А вы знаете, что по-настоящему валидному HTML-документу не требуются теги <HTML>, <BODY>, <HEAD>, которые многие считают обязательными атрибутами HTML-документа. И вот такой документ:
<!DOCTYPE html>
<title>Валидный HTML-документ</title>


на ура пройдет валидацию. Хотя желательно добавить <meta http-equiv=«Content-Type» content=«text/html; charset=utf-8»>, чтоб было меньше warnings, но тоже необязательно.
Так что, если вам лень набирать лишние буквы или вы экономите каждый байт, заботясь о пользователе и снижая объем потребляемого им траффика, то можете использовать вот такой шаблон HTML-документа (уже HTML5 документа):
<!DOCTYPE html>
<meta charset="utf-8">
<title>Валидный HTML-документ</title>


И далее, соблюдая семантику элементов
P.S. Написать заметочку решил по прочтении поста, посвященного HTML5. В одном комментарии упомянули, что BODY опционален, но почему-то не рекомендовали этим пользоваться. Не вижу причин. Кстати, в коде страницы яндекса упомянутые теги отсутствуют)

UPD: одна из самых веских причин написания постов на хабре для меня — это возможность узнать новое в процессе дискуссии. Вроде и пост простенький, а и здесь в комментах есть жемчужины для меня.

Information

Rating
Does not participate
Location
Зеленоград, Москва и Московская обл., Россия
Registered
Activity