суббота, 31 августа 2013 г.

cms 100500+100500+ модулей. Пора что-то менять


Посетила меня мысль, о разработке собственной open-source cms. Их тысячи, но большинство, не следуют пути дзен... все эти модули, компоненты, плагины, возникает сложносочетаемое приложение. Некоторые гордо называют это конструктором.

Как же разрабатывают cms?
Пишут админпанель, функции, главная страница, хуки, и добавляют возможность добавления модулей.
То есть к основному блоку - скелету, каркасу, добавляют возможность добавлять другие блоки, к ним третьи...

Все ок, пока не происходит обновление Главного блока, костяка cms. Знаете что следует? Ваши модули не работают, обновляйте их, а если не обновляется, не совместима, ищите другие модули, компоненты, пишите сами.

Работает сайт, год-два, полет нормальный. Затем находят баг, и Вы в обязательном порядке обновляетесь - потому что, безопасность сайта штука серьезная. И в большинстве случаев, танцуете с бубном)

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

Обновление cms должно происходить вместе с обновлением всех существующих модулей. Да и вообще, модули нужны ли?
Представим себе cms без лишних 100500+ модулей.
Все из коробки, установил - работает, один мануал для всей cms, очень удобно.

Как я себе это представляю:
Нужно создать три направления одной cms: 1. Магазины, 2. Портал 3. Блог.

Тем самым, мы избегаем постоянного обновления, при изменениях. Так как вероятность багов будет снижена, количеством кода. Ведь для каждого направления требуется меньше кода, чем для одного костяка. Сам не понял, что напечатал). Привожу example.

Пример:

SuperPuperCMS-shop
Один костяк, с 10 модулями. (модуль возможности оплаты, совместимости с cvs, отзывы и тп, так как не всем магазинам требуется сразу устанавливать оплату, бухгалтерию.) Не более 10 модулей в итоге.

SuperPuperCMS-portal
Один костяк, с 7 модулями. (Возможность форума например, тоже не всем порталам сразу нужна ) Не более 7 модулей в общем.

SuperPuperCMS-blog
Один костяк, с 3 модулями. (тут незнаю, блогам вообще нужны модули?) Не более 3, на всякий случай.


Возможность фотогалереи, page navigation, и других обязательных функций для любой хорошей cms вшито в общий скелет cms. Модули же, являются дополнительными необязательными возможностями, которые устанавливаются по желанию.

Да это увеличит исходный код, так сказать  "москитом" cms не будет, но это будет лишь вначале.
По мере развития проекта, в коде не будет костылей, для совместимости с предыдущими версиями, модулями сторонних разработчиков, и это не позволит исходникам разрастаться больше чем нужно для работы

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

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

После безопасности, на втором месте, удобство. Знакомый код, легче для понимания, и поиска ошибок. Меньше медитации, больше свободного времени на действительно важные дела, например научиться делать сальто) и удивлять девушек на пляже).

Действительно важные дела

Мысль сия, пришла мне в голову только сегодня, окончательно еще не созрела, поэтому пока показать ничего не могу. Вначале думаю о языке для разработки: php, python, ruby?... а может Go). Я понимаю, что одному мне это не потянуть.

UPD: Месяц назад набрел на Kohana (О, уже месяц не заглядывал в блог!), присматривался уже давно, но в этот раз решил, взяться и переделать уже проект который я писал под Asp.net.
И понял, вот оно! Единый код, открытый, легкий для освоения, и гибкий, без лишних модулей. Так что, за фреймворками будущее!

суббота, 17 августа 2013 г.

Нужна альтернатива Skype


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

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


Это уже не первый случай, когда сервис недоступен...
Думаю, если так пойдет и дальше, потребуется и будет создан сервис аналогичный Skype. Знаю, про сервисы VoIP, есть и у google, mail и некоторых других... Но эти сервисы, не представляют, удобств и полных возможностей.

И сейчас, в этот момент может кто-то пишет код новой сети аналога Skype... так что компании не следует так относиться к своим пользователям.

UPD: Пользователь http://www.blogger.com/profile/02348745048931268926, верно подметил факт отсутствие защищенности переговоров в Skype, а также отсутствие альтернативы открытого защищенного протокола создания действительно безопасного мессенджера.

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

Что делать? Думаю нужно внедрять PGP в массы.
Как? Хороший вопрос, пока в стадии изучения и курения мануалов.
Продукт должен быть OpenSource, бесплатен, и абсолютно прозрачен, что бы Пользователи были уверены, в безопасности общения.

Иначе сетевой тоталитаризм, не за горами.

среда, 7 августа 2013 г.

Модуль вывода категорий с изображениями для Joomla

Заказали интересный проект, на Joomla, в котором требовалось вывести на главной список категорий, в виде 6 изображений - ссылками и описанием.
Примерно вот такого вида:



В Google предлагали сделать это с помощью модулей компонентов K2, ZOO и VirtueMart. Я попробовал, не скажу что способ простой, так как настроек в них как в Шаттле. Неудивительно, ведь они предназначены для другого и предоставляют максимально гибкие настройки.

А вот если просто нужно вывести каталог категорий с изображениями... к моему удивлению, модуль всего один! Вот этот модуль. Весит 4 кб! Я обрадовался. НО сразу после установки версии 0.4, ничего не произошло и я ничего не понял) как он работает, написал автору модуля на почту, и он в тот же день! ответил, и добавил скрин, оказалось нужно было в меню добавить атрибут on.

Этот способ, самый удобный.

Я же исхитрился применить стандартный модуль меню, необычным образом, чтобы вывести категории в виде ссылок с картинками.
Способ не самый эффектный).
Создаем категории, затем создаем стандартный модуль меню, и добавляем пункты меню, где указываем в дополнительных настройках справа - ссылки в виде изображений, где указываем изображения.
Затем в шаблоне главной страницы, добавляем позицию для этого модуля, заключив ее в div с id например category. (тут же можно заключить ее в php if else, что бы выводить на всю страницу - отключив модули в колонках на главной странице. )
Опубликуем этот модуль меню. И в стиле шаблона, настраиваем по id список ссылок меню ul->li a, как нам угодно и получаем Категории изображений в виде ссылок на главной странице.

воскресенье, 4 августа 2013 г.

Если устают глаза от монитора

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

Если после длительной работы за компьютером, особенно по вечерам, стали уставать глаза, и болеть голова. Это значит, что глаза переутомляются.
Что бы сохранить здоровье, вот пара рекомендаций, которые действительно помогают:
  • При работе вечером, когда за окном темно, рекомендуется включать верхний свет.
  • Делайте перерывы по 15 минут, каждый час, есть специальные программы, но я обычно, просто смотрю на время.
  • Установите F.lux - это маленькая программка регулирует яркость и интенсивность монитора в зависимости от времени суток. Очень полезная. Скачать можно на официальном сайте http://justgetflux.com/
Сам пользуюсь этими рекомендациями, и у меня стали меньше уставать глаза. Надеюсь поможет и Вам.

Берегите свое здоровье.

пятница, 2 августа 2013 г.

Как узнать Id, текущего пользователя Asp.net MVC 4?

При разработке своего веб-приложения на Asp.net mvc 4, мне потребовалось узнать ID текущего пользователя (что в онлайне в данный момент) в формате GUID. Поиск по Гуглу выдал мне мало информации, лишь различные версии:

using System.Web.Security;

....

// NOTE: This is a static method .. which makes things easier to use.
MembershipUser user = Membership.GetUser(User.Identity.Name);
if (user == null)
{
    throw new InvalidOperationException("User [" + 
        User.Identity.Name + " ] not found.");
}

// Do whatever u want with the unique identifier.
Guid guid = (Guid)user.ProviderUserKey;
 
Или просто:
Guid userGuid = (Guid)Membership.GetUser().ProviderUserKey; 
После долгих раздумий, проб у меня получился вот такой код в нужном Controll:
 
if (User.Identity.IsAuthenticated)
{
   var username = User.Identity.Name;
   Guid guid = Guid.Parse(Membership.GetUser(username).ProviderUserKey.ToString());

   ViewBag.Message = "My GUID: " + guid.ToString();

   return View();
} 
 
Показываем в View полученный GUID Id юзера онлайн (для примера):
 
@{
    ViewBag.Title = "Index";
}

<h2>@ViewBag.Message</h2>
<div>
    Hello my friends!
   

</div>
Тем самым мы смотрим, что юзер авторизован, затем идентифицируем, получаем Guid ID, выводим в представлении(для примера, что бы показать что получили)