Сегодня 3 апреля 2009 года я начинаю этот блог с конкретной целью. Выяснить отношения Битрикс и Поисковых систем. Основной упор будет сделан на поисковые системы Яндекс и Гугль, так же внимание будет оказано Рамблеру. Зарубежные поисковые системы могут быть упомянуты случайно или мельком, однако специально заострять внимания на них мы не будем.
Добро пожаловать к SEO-Графоману, 1С-Битрикс версия!
Примечание: Если вы устанавливаете «1С-Битрикс: Управление сайтом» на самостоятельно установленную MySQL, то необходимо помнить, что эта база данных в версии ниже 5 не поддерживает кодировку UTF-8.
Еще одно примечание по использованию SMS-модуля: В модуле есть возможность делать SMS-рассылки через битриксовый интерфейс(через тот же интерфейс, что и почтовые расссылки). Так вот, в настройках модуля "Подписка и рассылки" ("Настройки->Настройки Модулей->Подписка и Рассылки) есть поле "Кодировки сообщения в рассылку". Там должно быть значение UTF-8 для корректной отправки SMS-рассылки.
Более детальное описание появится завтра в документации по настройке модуля.
В следующей версии это скорее всего будет проверяться автоматически.
Удачного использования!
P.S. Если есть какие-то вопросы по настройке модуля, то у Вас есть возможность посетить вебинар, посвященный именно этой теме или можно задавать вопросы прямо здесь или в личку.
Столкнулся с проблемой корявого отображения в IE на главной странице сайта. Когда стал разбираться выяснилось что проблема возникает при превышение определенного порога подключаемых стилей.
А так как, на главной выводится большое количество компонентов то и количество подключаемых стилей превышает этот параметр. Причем, не просто не подключаются последние, а они как бы собой выдавливают предыдущие
В остальных браузерах все в норме.
Вот такие странности!
Придется видимо для главной делать отдельный шаблон и в нем прописывать все стили для компонентов
Сегодня, проанализировав статистику скачиваний SMS-модуля, были приятно удивлены. Постараемся тоже кое-чем вас порадовать.
Нередко новые технологии вызывают у разработчиков (а особенно их руководства) ощущение, что на их освоение уйдёт немало времени, а эффект от их применения проявится очень нескоро. В этой статье я постараюсь продемонстрировать простоту внедрения возможностей SMS-модуля в код web-приложения. На ПРИМЕРЕ. Почему же у меня заела кнопка shift на слове ПРИМЕРЫ? Да потому что в базовую поставку модуля входит лишь то, что придумали сами разработчики (причём за малый промежуток времени, который дали им менеджеры).
Кстати, я даже сам не подозревал, насколько SMS-ки могут облегчать жизнь в некоторых ситуациях. Не буду рассказывать о каких-нибудь уведомлениях о новых заказах в магазине: это не так интересно – и уже реализовано в модуле.
Давайте разберем такую ситуацию. Вы программист, работаете в небольшом web-отделе, состоящем из 30 человек. У вас есть злобный начальник отдела, но, тем не менее, уважающий всякую оптимизацию. И тут вы вспоминаете, что в пятницу, задержавшись на работе и отвечая на последнее письмо, допивая при этом третью бутылочку пива, скачали SMS-модуль с сайта www.sms4b.ru. И как же, думаете Вы, угодить начальнику в период кризиса-то. И думаете, что а вот замечательно было бы создать простую систему SMS-оповещения (как в докторе Хаусе, только там были пейджеры) сотрудников отдела, всего лишь одним движением руки.
Ну что ж, цель мы себе поставили, а в реализации я вам помогу =).
Итак, создаем новую страничку, и подключаем header нашего сайта.
Далее нам нужно подключить SMS-модуль для того, чтобы мы могли пользоваться его функционалом. Делается это так.
if (!CModule::IncludeModule("sms4b"))
{
ShowError("Неустановлен модуль SMS4B");
return;
}
Все, теперь у нас в системе есть объект под названием $SMS4B. Ну, при желании, конечно, можно создать и свой – с отдельным именем. Через этот объект Вам будут доступны все методы классов модуля. Их описание можно найти в документации для разработчиков.
Теперь нам понадобится что-то наподобие такой формочки
<form action="#" method="post">
Сотрудники отдела
<select name="webDepartmentNumbers[]" multiple>
<option value="79037976101">Кирюхова Татьяна Николаевна (79037976101)</option>
<option value="79037335489">Иванов Николай Иванович (79037335489)</option>
<option value="79037465489">Петров Александр Константинович (79037465489)</option>
<option value="79044568955">Сидоров Виталий Александрович (79037575489)</option>
<option value="79037115489">Плющенко Клим Андреевич (79037115489)</option>
</select>
Текст сообщения
<textarea name = "messageText"></textarea>
Транслитерировать сообщение
<input type="checkbox" name="translitMess" value="Y" checked />
<input type="submit" name = "formSend" value="Отослать" />
</form>
Выглядеть будет примерно так
Как мы видим здесь у нас есть список номеров, поле для ввода текста сообщения и галочка автоматической транслитерации текста сообщения. Список номеров я сформировал вручную, но Вы можете сделать формирование списка из инфоблока или еще как-нибудь. Для обработки номеров для отправки также будет полезно посмотреть функцию parse_numbers(). Текст сообщения будет автоматически кодироваться в нужную кодировку для SMS-сервера. И еще одна функция будет для транслитерации сообщения. Весь обработчик формы будет на несколько строчек...
if (isset($_REQUEST["formSend"]))
{
$messageText = htmlspecialchars($_REQUEST["messageText"]);
#транслитерируем текст сообщения
if ($_REQUEST["translitMess"] == "Y")
{
$messageText = $SMS4B->Translit(htmlspecialchars($_REQUEST["messageText"]));
}
$errorNumbers = array();
#рассылаем по всем выбраным номерам
foreach($_REQUEST["webDepartmentNumbers"] as $arIndex)
{
if (!$SMS4B->SendSMS($messageText, $arIndex))
{
$errorNumbers[] = $arIndex;
}
}
}
Итак, здесь все должно быть понятно. Вызов $messageText = $SMS4B->Translit($_REQUEST["messageText"]); транслитерирует сообщение, которое мы отсылаем через форму. Вызов $SMS4B->SendSMS($messageText, $arIndex) отсылает SMS с текстом $messageText на номер $arIndex. Все! Можно еще написать обработчик ошибок, т.е. все вместе будет выглядеть вот так вот.
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("SMS-модуль и его возможности");
if (!CModule::IncludeModule("sms4b"))
{
ShowError("Неустановлен модуль SMS4B");
return;
}
?>
<form action="#" method="post">
<b>Сотрудники отдела</b>
<p>
<select name="webDepartmentNumbers[]" multiple>
<option value="79037976101">Кирюхова Татьяна Николаевна (79037976101)</option>
<option value="79037335489">Иванов Николай Иванович (79037335489)</option>
<option value="79037465489">Петров Александр Константинович (79037465489)</option>
<option value="79044568955">Сидоров Виталий Александрович (79037575489)</option>
<option value="79037115489">Плющенко Клим Андреевич (79037115489)</option>
</select>
</p>
<b>Текст сообщения</b>
<p>
<textarea name = "messageText"></textarea>
</p>
<b>Транслитерировать сообщение</b> <input type="checkbox" name="translitMess" value="Y" checked />
<p>
<input type="submit" name = "formSend" value="Отослать" />
</p>
</form>
<?
if (isset($_REQUEST["formSend"]))
{
$messageText = htmlspecialchars($_REQUEST["messageText"]);
#транслитерируем текст сообщения
if ($_REQUEST["translitMess"] == "Y")
{
$messageText = $SMS4B->Translit(htmlspecialchars($_REQUEST["messageText"]));
}
$errorNumbers = array();
#рассылаем по всем выбраным номерам
foreach($_REQUEST["webDepartmentNumbers"] as $arIndex)
{
if (!$SMS4B->SendSMS($messageText, $arIndex))
{
$errorNumbers[] = $arIndex;
}
}
}
if (count($errorNumbers) > 0 )
{
ShowError("Не отправлено на номера:");
foreach($errorNumbers as $arIndex)
{
ShowError($arIndex);
}
}
?>
Чувствую, если Ваш начальник прочтет эту статью, вы уже не отделаетесь от реализации чего-то подобного =).
Вы скажете что слишком дорого рассылать SMS-ки. А теперь давайте посчитаем. Пусть ЗП среднего начальника отдела 2000$. Т.е. в день зарабатывает около 90$, в час, соответственно, 11$. Сколько нужно времени чтобы обзвонить 30 человек? Ммм, да не меньше часа. Т.е. это 11$! А 30 SMS будет стоить Вам в самом худшем случае 42 рубля и 30 секунд для отправки. По-моему, совсем неплохо.
Итак, это был первый пример (how-to) по применению SMS-модуля. Думаю, в дальнейшем мы обсудим многие другие применения.
P.S. Данная статья подразумевает, что модуль на вашем сайте уже настроен в соответствии с описанием в документации. Дополнительно планируем провести небольшой вебинар по установке и настройке модуля.
Коллеги, я подключил на нашем проекте модуль Проактивной защиты.
Сейчас модуль доступен в режиме бета-тестирования и еще не включает некоторые функции. Но тем не менее, большая часть возможностей уже реализована.
Модуль «Проактивной защиты» - целый ряд технических решений по обеспечению безопасности продукта и разработанных веб-приложений, включающий несколько уровней защиты от большинства известных атак на веб-приложения и существенно повышающий уровень безопасности интернет-проектов.
«Проактивная защита» является существенным дополнением к стандартной политике безопасности продукта.
Модуль включает в себя комплекс систем по защите веб-приложений:
* Панель безопасности с уровнями защищенности * Проактивный фильтр (Web Application FireWall) * Технологию одноразовых паролей (OTP) * Защиту авторизованных сессий * Контроль активности * Журнал вторжений * Защиту административных разделов по IP * Стоп-листы * Контроль целостности * Рекомендации по настройке и ряд других решений
Я включил Проактивный фильр и пока не настраивал исключения для форумов, так что смотрите, код может повреждаться. Будет неудобно, настроим исключения для форумов.
Я так же включил защиту авторизованных сессий и они теперь хранятся в базе данных и меняются каждые 60 секунд. Если заметите что-то ненормальное в работе сайте - жалуйтесь пожалуйста
«Коллинеарный математический анализ: политическое учение Локка или политическое манипулирование?» Гуманизм представляет собой инвестиционный продукт, явно демонстрируя всю чушь вышесказанного. Пустое подмножество позиционирует гармонический интервал, впрочем, это несколько расходится с концепцией Истона. Селекция бренда последовательно имитирует мелодический нонаккорд, таким образом сбылась мечта идиота - утверждение полностью доказано. Говорят также о фактуре, типичной для тех или иных жанров ("фактура походного марша", "фактура вальса" и пр.), и здесь мы видим, что алеаторика образует бренд, указывает в своем исследовании К.Поппер. Умножение двух векторов (скалярное) нейтрализует потребительский рынок, при этом, вместо 13 можно взять любую другую константу.
Последствия медленной отправки почты на производительность Битрикс, влияние использования постоянных соединений с БД (MySQL Innodb) на блокировки
Партнёры "Битрикс" готовят к запуску сайт с высокой ожидаемой посещаемостью и большой активностью по добавлению и модификации контента (инфоблоки). Конфигурация: два выделенных сервера (для Веб и БД), в качестве БД использовалась MySQL с обязательным хранением таблиц в Innodb, учитывая планируемую нагрузку.
Предварительная конфигурация сайта, Apache и MySQL проводилась в соответствии с рекомендациями курса «Конфигурирование веб-систем для оптимальной работы» и активно используя "Монитор производительности" для диагностики "тяжёлых" страниц и запросов, мониторинга и настройки параметров БД (query_cache_size, tmp_table_size, max_heap_table_size, max_tmp_tables, table_cache и т.д.). Однако, когда уже казалось, что сайт показывает хорошие результаты по производительности, проявились 2 неприятные проблемы:
периодически без системы возникающие ошибки вида MySQL Query Error: UPDATE b_stat_day SET ... [Lock wait timeout exceeded; try restarting transaction], и в этом случае все серверные процессы Apache оказывались блокированными, сайт блокирован до перезапуска MySQL.
непредсказуемое бессистемное замедление формирования отдельных страниц, которое проявлялось либо в большом времени формирования страниц - 30-60 секунд, либо даже ошибке 504 nginx timeout!
Начали разбираться с MySQL, мониторинг состояния производился командами:
mysql> show full processlist; mysql> drop table if exists innodb_lock_monitor; mysql> CREATE TABLE innodb_lock_monitor (a INT) ENGINE=INNODB; mysql> SHOW ENGINE INNODB STATUS\G; mysql> DROP TABLE innodb_lock_monitor;
Выяснилось, что перед ошибкой, которую выводил PHP, в БД происходил deadlock на одних и тех же SQL-запросах типа
INSERT INTO b_iblock_section_element...
Попытались решить проблему на уровне приложения - уменьшая количество одновременных вставок элементов инфоблоков - безрезультатно. DEADLOCK этот довольно интересного типа insert intention waiting, описание которого можно посмотреть в багах MySQL. Возникает при множественных одновременных вставках в таблицу (как раз наш случай - активная работа с инфоблоками) и, по мнению специалистов MySQL, [как бы] багом вовсе не является, а есть правильное поведение MySQL+Innodb в определённых условиях. Ну да шут с ним Интереснее показалось нам другое: судя по диагностике блокировок Innodb (которая выводится в секции TRANSACTION команды SHOW ENGINE INNODB STATUS), всякий раз при возникновении проблем, блокирующей оказывалась транзакция с тем же OS thread id, что и транзакция, которую ранее MySQL выбирал в качестве "жертвы" при разборе DEADLOCK'а и должен был откатить. В подтверждение этого предположения, проблема с возникшими блокировками решалась силовым удалением "виновного" thread'а:
MYSQL> kill thread_id
Бесплатная служба поддержки MySQL пока не сильно помогла нам в анализе причин происходящего
По совету Максима Смирнова, обратили внимание на используемое постоянное соединение с БД, которое могло быть причиной подобного поведения - см., например, обсуждение в блоге Peter Zaitsev Are PHP persistent connections evil ?. Для исключения каких бы то ни было проблем и учитывая, что в случае с MySQL новые соединения создаются быстро и незначительно влияют на общую производительность сайта, мы отключили постоянное соединение с БД:
define("DBPersistent", false); в файле dbconn.php
Блокировки больше не проявлялись.
В это же время Денис Шаромов с Максимом Смирновым обнаружили похожую периодически возникающую проблему (nginx timeout) на другом сайте, связанную с медленной работой процедуры отправки почты.
Проверили на нашем проекте - 60 секунд на отправку сообщения! Это и была причина появления обеих проблем: и Nginx timeout, и MySQL Lock! В первом случае связь очевидна, во втором - задержка отправки почтового уведомления на хите задерживала завершение транзакции по добавлению/модификации элемента инфоблока, дальше - заложенный в MySQL-Innodb DEADLOCK и, видимо, проблема с открытыми транзакциями и постоянными соединениями. Возникала проблема неожиданно, при обработке события отправки почты на хите. Администраторы разобрались с почтой, обработка почтовых событий была перенесена на cron:
1) define("BX_CRONTAB_SUPPORT", true); в dbconn.php 2) добавить в crontab вызов php -f /..../bitrix/modules/main/tools/cron_events.php
Последнюю рекомендацию, с моей точки зрения, нужно применять на всех сайтах во избежание зависимости доступности сайта от работы службы почты. Либо постоянно мониторить скорость работы почты.
Хочу рассказать, что в данный момент наш PHP продукт проходит тесты Certified for Windows Server 2008. Мы прошли все локальные тесты успешно.
Как оказалось, в режиме FastCgi, php, который non thread safe (есть такой для windows на странице скачивания), без EAccelerator-а, показал лучшие результаты по сравнению с обычным php, но c EAccelerator-ом.
Редакция "Эксперт" на нашей тестовой машине выдает 30 страниц в секунду и без единого отказа в течение 48 часов под stress тестом.
Сам Майкрософт крайне заинтересован в достижении лучших результатов, более того, мы, видимо, будем первым PHP продуктом достигшим такого высокого звания.
В настоящее время мы ищем партнеров для долгосрочного сотрудничества. Мы предлагаем серьезный бюджет, работу в одном из крупнейших международных проектов.
Для поиска подходящих специалистов мы использовали форму отправки заявки на создание сайта прямо на сайте Битрикс.
В заявке поставили ограничение, что партнер обязательно должен иметь опыт создания сайта с посещаемостью от 10000 хостов на Битрикс:
Здравствуйте.
Просьба прислать перечень сайтов, которые вы делали на Битрикс и которые имеют посещаемость >10000 (десяти тысяч) хостов в сутки.
Если вы не выполняли подобные работы, мы не сможем сотрудничать.
Несмотря на это, половина заявок пришла от партнеров, которые делают сайты-визитки. Причем менеджеры этих компаний зачастую вообще не понимают о чем речь: Вот, например, одно из писем:
Добрый день,
Данные которые вы просите (пропускную способность канала), зависит только от провайдера у которого вы будете хоститься. У нас есть решения на битриксе для РЖД, который позволяет обрабатывать более 50000 запросов в сутки (закрытый сайт). Так же у нас есть решения, которые используются у инет провайдеров. Там идет сотни тысяч запросов в сутки. Так а если у вас нет рекламы, к вам и не будут заходить 10000 пользователей.
Что конкретно вы имеете в виду? С уважением, XXXXXX
Очевидно, что человек вообще не в теме...
Удручает, что таких ответов великое множество. Но есть же профессионалы, например, кто-то же делал сайты banki.ru, eldorado.ru и другие высоконагруженные проекты?
18 марта 2009г. в 10.00 (по Московскому времени) состоится бесплатный интернет семинар – Вебинар – «SMS-сервис для web-проектов на платформе «1С-Битрикс: Управление сайтом».
Семинар будет проводиться компанией «1С-Рарус» для партнеров компании «1С-Битрикс». Для тех, кто не является партнером компании, после окончания семинара будут доступны видеоматериалы выступлений участников.
Докладчики:
Смирнов Роман - руководитель проекта sms4b.ru, компания «1С-Рарус».
Также на технические вопросы ответит один из разработчиков модуля – Хамакин Александр.
Длительность вебинара - 1 час. Вебинар проводится с помощью сервиса GoToMeeting.
На вебинаре будут освещены следующие вопросы:
описание возможностей SMS-сервиса;
как подключить и настроить SMS-сервис;
предложения сотрудничества для партнеров «1С-Битрикс»;
При регистрации вводите адрес действительного почтового ящика, т.к. именно на указанный Вами адрес прийдет письмо с дальнейшими инструкциями и паролем к семинару.
При возникновении сложностей при регистрации на вебинар, консультации можно получить у Артема Жанабаева, моб. 8-905-231-89-31, mailto:JanA@rarus.ru
Дополнительная информация:
Вебинар - это он-лайн семинар проводимый посредством современных технологий с использованием интернета. Во время проведения мероприятия каждый из участников (участниц) находится у своего компьютера, а связь между ними поддерживается через Интернет посредством загружаемого приложения, установленного на компьютере каждого участника.
Сегодня, 15.03.2009 решил создать свой блог на ресурсе. Что из всего этого получится - посмотрим. Время и только время все раставит по местам, все оценит. Причина, по какой решил создать здесь свой блог - проста. Ресурс http://sjleo.blogspot.com/, а это мой не очень старый блог, посвященный работе в интернет, попал в списки фишенговых ресурсов, но не мой именно блог, а *.blogspot.com/* - попали в базу антивирусной лаборатории Касперского, которая считает, что все ресурсы - опасны. И вот, что бы не рисковать, решаю не использовать тот блог до устранения причин и заняться этим блогом...
Редактору сайта (будем называть его менеджером, чтобы не путать понятия) очень важно уметь работать с визуальным редактором, так как менеджер как правило не знает HTML\CSS\JS\PHP. И мы прописываем визуальный редактор в качестве болеутоляющего клиенту, нажившему мигрень в попытке создать подобающе оформленную страницу с текстом, картинками, таблицами, списками и т.п., не всегда предупреждая о побочных эффектах.
А именно о том, что:
1) предопределённые стили оформления элементов содержания сайта, нельзя применить к определённой ячейке или строке (только ко всей таблице целиком)
2) не может быть и речи об изменении ширины столбца или высоты строки таблицы без указания точных размеров, если клиент не выучил, что дизайн-шаблон фиксированный, максимальная ширина для контента столько-то пикселей (иначе в ie6..., ну вы поняли), что ширина пикселя это 1/72 дюйма, а дюйм 2,54 сантиметра (тогда как все давно уже пользуются http://www.ita.es/jquery/jquery.kiketable.colsizable.htm#section-4 - последняя таблица).
3) фоновые изображения в предопределённых стилях оформления элементов содержания сайта не отображаются в визуальном редакторе
4) сами "предопределённые стили оформления" оставляют желать лучшего: <span class="мой_стиль"> это конечно хорошо, но изменить стиль ненумерованного списка вам не удастся, кроме как превратить его в опухоль вида:
<ul>
<li><span class="мой_стиль"> text </span></li>
...
</ul>
А это значит никаких собственных list-style-image, либо только один вид, без надежды на 2 и более разных оформления. Оправдываться приходится фразой, что "практически нереально определять css-селекторы в styles.css шаблона сайта вида tag.class {} и довольствоваться приходится селекторами .class {} подразумевая span.class {}".
5) в визуальном редакторе клиент не сможет сделать ячейку таблицы заголовком (то что называется
)
6) а если клиент посчитает себя очень умным и захочет что-то поменять в режиме исходного кода, код предстанет ему в таком неразборчивом виде, что его эго моментально вернётся на место:
Я так проверяю психику кандидата на вакансию: заставляю написать 20-30 строчек html-кода, затем копирую код в визуальный редактор (в режиме исходного кода) и делаю "Трах-тибидох", переключаясь в режим визуального редактирования и обратно в исходный код. В полученном коде прошу найти, какой тег я удалил:
Фокус в том что никакой тег я не удалял и вообще ничего не делал, за меня все сделал редактор.
Вернёмся к побочным эффектам:
6) даже если клиент и знает что <thead>, <tbody> и <tfoot> - это какие-то теги и что они должны что-то значить, никто не скажет зачем по умолчанию в новую таблицу ставится тег <tbody> и как (раз уж тело вставляется) вставить голову и ноги - медицина бессильна.
7) отдельного внимания заслуживает "
" - да, есть окошко где эти параметры меняются. А еще у таблицы есть align, background, bgcolor, bordercolor, cols, height и width - может стоит и их указывать ВСЕГДА? Я наверно под страхом смерти не смогу объяснить на понятном менеджеру языке чем отличается cellspacing от cellpadding в окне свойств таблицы и почему они там есть, а вот bgcolor и bordercolor нет.
В том же окне есть выбор стиля таблицы - отлично! Только давайте фильтровать стили, которые предлагаются в списке (например только селекторы table.class {} ), хотя нет, я забыл - практически нереально определять css-селекторы в styles.css шаблона сайта вида tag.class {} ....
Это все, что мне удалось вспомнить, выйдя из комы, в которую впал после публикации нескольких, на первый взгляд, простых, страниц текста. Я как мог удерживал себя от попыток открыть notepad++ и с удовлетворением окончательно нажать Save уже через 20 минут. Там я бы сделал <div class="blockLeftPadding">, <ul class="inlineItems"> или даже <hr class="lightShadow" />, но для клиента такое искусство осталось бы недоступно, как хрустальная ваза, на которую он может только смотреть, не в силах повторить на других страницах.
PS. мне очень импонирует идеология БУС, именно поэтому я и написал.
Впервые увидел анонс вроде бы на озоне, тогда только-только начинал общение с битриксом, сразу загорелся этой идеей. Вот, неделю назад мы ее таки купили.. я, конечно, понимал, что там не будут описаны все секреты джедаев, но, откровенно говоря, не ожидал такого убогого начала.
Я не знаю для кого книга. Точнее - я не знаю для кого первые 70 страниц, дальше пока не стал читать, оставил на десерт. Человек, понимающий что нибудь в веб-разработке - ну хоть что нибудь - узнает о написанном самостоятельно за один подход методом тыка. Человек, не понимающий нихрена, но вынужденный как это часто бывает делать сайт (да еще и на битриксе) все равно нихрена не поймет и не научится, ему это просто не надо, ему нужны конкретные ответы на форуме, а еще проще - чтобы кто-то сделал вместо него.
Я далеко не профессионал, я хотел чтобы мне помогла эта книга.. Пока ужасно, извините. Буду надеяться на остальные 350 страниц.
Недавно у знакомых в месте осмысления нашел журнал "Спец", там был обзор CMS
Упоминался и битрикс, сравнивался с друпалом вроде бы. Последний пункт обзора был Минусы: систему недолюбливают программисты. Посмеялся. Вспомнил как я начинал.. плевался от цены, от нагроможденности, от пафосности, от всего короче. А сейчас как то привык, начинает даже нравиться... и думается теперь - почему ее недолюбливают...
В планах пройти Администрирование портала, получить компетенцию Корпоративный портал... и стать Золотыми. 200 баллов и получение другим программистом всех сертификатов - и вот оно, золото!
Вроде бы. Там написано что-то про "внедрение крупных сложных проектов". Это как то регламинтируется, или само собой подразумевается, что компания с 500+ баллами и сертификатами уже внедряла крупные сложные проекты? Интересно.