Pull to refresh
8
0
crazyprog @crazyprog

User

Send message

Архитектура предметной области в CMF/CMS системах

Reading time6 min
Views4K
Практически любая информационная система характеризуется наличием системы хранения и оперирования данными. Возьмем, к примеру, обычные веб-сайты. Для их создания обычно используются какие-либо готовые системы (фреймворки или уже готовые CMS), в которых изначально уже заложена какая-то концепция по работе с данными, установившаяся предметная область. Обычно, если разработчик хочется добавить на сайте раздел новостей, он добавляет в интерфейсе CMS компонент, информационный блок, шаблон и т.п. Суть всех этих конструкций одна — создать сущность в БД для хранения (либо каком-то ином хранилище). В итоге имеется реляционная база данных и, зачастую, какой-то объектно-ориентированный обвес, реализующий связку объект-атрибуты-свойства-методы — реализуется предметная область.

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

Самые простые системы позволяют лишь организовать хранилище, к которому разработчик в дальнейшем обращается и делает всю необходимую работу по обработке данных сам. В таком хранилище есть лишь объект, поля и данные. В более продвинутых системах между объектами появляются связи. Следующий уровень развития — взаимодействие объектов (триггеры, методы и т.п.), а так же наличие программной подсистемы, снимающую с разработчика часть забот по обработке данных.
Читать дальше →

Способ вертикального выравнивания блока с помощью настоящего vertical-align

Reading time4 min
Views70K
Сегодня, верстая один макет, я, кажется, изобрел очередной небезынтересный способ вертикального выравнивания блока относительно родительского. Он не основан на превращении блоков в ячейки таблицы и не использует css-свойство position.

Требования

— Должна быть известна начальная высота родительского блока;
— Дочерний блок может иметь произвольный размер как по высоте, так и по ширине.

Возможности

— Работает в IE6+, O9+, FF2+, webkit;
— Тру vertical-align выравнивание со всеми допустимыми значениями;
— Одинаковое поведение во всех браузерах (незначительные отклонение при некоторых условиях в ие6 будут оговорены ниже);
— При вырастании дочернего блока выше «папочки», родительский блок расширяется;
— Ни грамма JavaScript.
Читать дальше →

Строим систему мышления

Reading time6 min
Views7.8K
В связи с дискуссией, возникшей в хабратопике, я хотел бы немножко поговорить о системах мышления, свободе и числе 42.

Чего ви пагите?



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

Данное мнение, на мой взгляд, ошибочно.
Давайте разберемся!

Перевод даты в неименованный часовой пояс

Reading time1 min
Views1.2K
При создании объекта DateTime в строке со временем можно указывать часовой пояс (сдвиг в часах и минут от GMT), например

new DateTime('2009-09-30 12:00:00+0400');


Если у нас есть две даты, которые находятся в разных часовых поясах, то иногда полезно посмотреть время одной даты в часовом поясе другой. Если обе даты были инициализированы способом, указанным выше (т.е. использую неименованные часовые пояса), то происходит ошибка «Can only do this for zones with ID for now».

Чтобы её обойти, делаем наследника DateTime
Читать дальше →

ActionWeb. Асинхронный интернет.

Reading time7 min
Views1.4K
С момента первого упоминания об AJAX в статье Джесси Джеймса Гарретта «Новый подход к разработке веб- приложений» 18 февраля 2005 года прошло уже 4 года. За это время наверно каждый веб- разработчик хоть раз испробовал эту технологию, и теперь обычного пользователя интернет уже не удивить динамической валидацией форм, автодополнением запросов в строке поиска, всплывающим контекстным меню и прочими ещё недавно диковинными вебдванольными интерактивными радостями, а современные JavaScript фрэймворки делают процесс разработки таких скриптов на порядок быстрей, эффективней и приятней для программиста. Но почему до сих пор подавляющее большинство разрабатываемых веб- сайтов придерживаются стандартной модели загрузки контента и не перешли полностью на AJAX платформу? Зачем каждый раз перезагружать всю страницу при нажатии на внутреннюю ссылку, когда нужно изменить только блок контента, а JavaScript файлы, CSS и большая часть HTML разметки не требует обновления?
Читать дальше →

Nginx + php-fpm на CentOS 5.3

Reading time6 min
Views24K
В этой статье я поделюсь собственным опытом построения веб-сервера, работающего на CentOS 5.3.

Что требовалось:
  • Полностью избавиться от Apache. Сервер должен был выдерживать хорошую нагрузку, распределяя статику и динамику.
  • Нужна была поддержка последней версии libxml, малейшее различие в версиях делало сайт абсолютно нерабочим.
  • Нужен был gzip
  • И еще некоторые особенности, о которых я расскажу в самой статье
Читать дальше →

AMQP-PHP чат

Reading time4 min
Views9.5K
Вот, дошел до первого практического воплощения моих первых двух статей. Далее будут изложены только идеи… Идеи уже воплощенные и идеи, которые воплощаются…

В отличие от других протоколов передачи сообщений (XMPP STOMP или Memcache (MemcacheQ)) AMQP обладает большей гибкостью.
Читать дальше →

Ёта официально объявляет о начале поставки «яиц»-роутеров, раздающих 4G по Wi-Fi

Reading time1 min
Views1.7K
Вот демонстрационное фото «яйцá», кто ещё не видел:

[Йотовое яйцо]
Вот сайт устройства: YoEgg.Ru.

Вон «яйцо» в магазине. Там сказано, что продажи начинаются 7 октября.

В магазине и в LiveJournal названа цена: 5 990 рублёв.

Меломанам и авторам

Reading time3 min
Views1.6K
Всем привет.

Хочу поделиться хорошей музыкальной новостью для ценителей и производителей: Fidel.ru оправдывает свою миссию и начинает плотно работать с мелкими тематическими лейблами, а также – напрямую с независимыми музыкантами. Долой посредников!

Сразу прервусь и открою большую тайну. С октября этого года каждый автор сможет загружать свои произведения онлайн и легально зарабатывать на них через крупнейшего ритейлера цифрового контента в РФ: мы заканчиваем разработку автоматизированной системы импорта и реализации контента – Fidel Distribution. Причем загружать можно будет конечно же не только свою музыку, но и видео, литературу, софт, игры, анимацию. Единственно, придется распечатать и прислать подписанный контракт (мол, разрешаю Fidel.ru продавать для меня вот это и вон то). Все остальное — онлайн: данные заполняются-проверяются онлайн, документы формируются автоматически, в личном кабинете будет онлайн статистика по загрузкам и сборам, движение доков тоже можно будет отслеживать онлайн. Остановить продажи, запросить отчет, получить гонорар, заказать рекламу – все в интерактивном режиме. Да здравствует Интернет!

А пока – наш генеральный директор самостоятельно отыскивает интересные лейблы, чтобы добавить их в каталог Fidel.ru Например, с сентября на сайте можно найти эксклюзивные для РФ альбомы от лондонского CurveMusic. Это совсем свеженький и вполне достойный лейбл, единственный выпускающий молодых бразильских музыкантов в Европе. Основные жанры — хаус, этно-джаз, электро-поп. Образованный в 2004-м году, уже в 2005-м Curve выиграл MIDEM awards (Канны) за инновации в категории World Jazz.

Уже лидеры продаж у нас
Monique Maion
DJ LK aka Dr.K

UPD: прослушка через наш онлайн-плеер все еще бесплатна ;-)

Подробнее о CurveMusic
Читать дальше →

Список полезных PHP классов и библиотек

Reading time4 min
Views65K

Email


  • Swift Mailer
    Swift Mailer легко интегрируется в любое PHP-приложение. Это гибкий и элегантный ООП-подход к отправке писем с множеством функций: отправка эл.почты, используя SMTP, SendMail, Postfix, поддержка серверов и др.
  • PHPMailer
    Лучший класс для работы с эл. почтой. Поддерживает сообщения в цифровой форме, S/MIME шифрование, текстовые и HTML-письма, изображения, поддерживает несколько Email’ов, SMTP-аутентификация.

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

Используем паттерн Наблюдатель(Observer) для создания индикатора выполнения процесса на Javascript

Reading time4 min
Views50K
Идея паттерна Observer заключается в создании зависимости типа один ко многим. При изменении состояния одного объекта(субъекта), зависящие от него объекты(наблюдатели) об этом оповещаются и обновляются. Это нужно для согласования состояния взаимосвязанных объектов без их жесткой связанности.

пример внутри

Не очередной XSS фильтр

Reading time2 min
Views8.5K
Что есть Cross Site Scripting? Об этом читайте на Википедии :)

Но знайте — во всем виноват браузер. Не важно: поддержиивает ли он HTML5 или до сих пор не понимает PNG прозрачность. Ну так как клиент всегда прав, то я расскажу как правильно фильтровать базар контент.

Приступим

Индексы в MySQL: многоколоночные индексы против комбинированных индексов

Reading time9 min
Views121K
Я часто вижу ошибки, связанные с созданием индексов в MySQL. Многие разработчики (и не только новички в MySQL) создают много индексов на тех колонках, которые будут использовать в выборках, и считают это оптимальной стратегией. Например, если мне нужно выполнить запрос типа AGE=18 AND STATE='CA', то многие люди просто создадут 2 отдельных индекса на колонках AGE и STATE.

Намного лучшей (здесь и далее прим. переводчика: а обычно и единственной верной) стратегией является создание комбинированного индекса вида (AGE,STATE). Давайте рассмотрим почему это так.

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

Однострочные программы на Perl

Reading time7 min
Views39K

Введение


Я собираюсь рассказать об однострочных программах на Perl. Если вы овладете однострочным Perl`ом, то можете сэкономить кучу времени (я экономлю).

Цель поста — показать как Perl можно использовать заместо find, grep, awk, sed. В конце поста будет написано зачем это надо.
Читать дальше →

«Быстрый» и «медленный» поиск: два различных подхода для поиска на сайте

Reading time3 min
Views1.9K
Добрый день, друзья.

Сегодня я хотел бы рассказать о двух подходах к поиску информации, которые я использую на своем сайте. Условно я их называю «быстрый» и «медленный» поиск (хотя можно придумать и другие термины, но мне нравятся эти). В целом, идея довольно проста: «быстрый» поиск – это тот, который выдает информацию «здесь и сейчас», а «медленный» — растянутую во времени, например, ежедневно, еженедельно и т.д. Каждый подход имеет своих целевых пользователей, и оба весьма органично дополняют друг другу.

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

Web-сервер Cherokee

Reading time2 min
Views7.4K
imageЗдравствуйте, хабрапользователи!

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

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

Ноутбук со вкусом Lamborghini

Reading time7 min
Views36K
Встречаются в наше время люди, которым дорогие аксессуары почти жизненно необходимы – это неотъемлемая часть их стиля, работы и даже, пожалуй, жизни. Такие люди не ищут компромиссов – либо все, либо ничего. Для них не принципиально, какой ценой будет получено первое. Главное – уверенно идти вперед, вверх, быть на шаг впереди других.



В моем сегодняшнем обзоре я расскажу как раз про такой аксессуар. Дорогой и стильный. Уникальный. Первый.
Подробнейший обзор. Трафик!!!
Читать дальше →

TeamWox — подарок малому бизнесу!

Reading time2 min
Views11K
Здравствуйте, дорогие хаброчитатели!

Наша компания не бросает слов на ветер и не отклоняется от «линии партии». Это значит, что последовательное движение навстречу клиенту продолжается. Выпуск бесплатной полнофункциональной версии TeamWox – очередной шаг на этом пути. (Вкратце о возможностях продукта и его назначении мы уже писали. Онлайн демо-версия позволит вам быстро ознакомиться с продуктом).

Данная версия имеет единственное ограничение – количество пользователей не должно превышать 10 человек. Во всём остальном она не отличается от версии с неограниченным количеством пользователей. Возможности – максимальные, затраты – нулевые.

TeamWox: бесплатная система управления для малого бизнеса



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

Information

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