Перегляд за місяцем: September 2009

 

Встановлення PHP 5, CF 8, CF 9 та Railo 3.1 з Apache 2 в Ubuntu - частина 3

Продовжуємо розповідь про налаштування середовища для CFML-розробника.

В першій частині ми дізналися як налаштувати Apache 2, PHP 5, Java та ColdFusion 8.

В другій частині ми детально встановлювали та налаштовували ColdFusion 9.

 

Нарешті, дійшла черга й до мого нового улюбленця: Railo.

Я покладаю великі надії на цей CFML-двигун та вже пробую використати його для нових проектів.

 

Як заведено, для початку нам знадобиться дистрибутив, а саме стандартна версія Railo Server без JRE для всих ОС.

Скачаний tar.gz треба розпакувати та перемістити в /opt/railo.

 

Наш Railo насправді вже готовий до роботи, в чому легко переконатися виконавши команду

/opt/railo/bin/httpd.sh start

За кільканадцять секунд можна буде відкрити http://localhost:8600/ (стандартний порт) та побачити вітальне демо:

13-demo.png

Так само можна завітати до адміністратора веб-контексту за умовчанням:

14-default-context-admin.png

 

Але наша задача дещо ширша, тому вимикаємо Railo-server та переходимо до конфігурування.

Варто зауважити, що в цьому випадку немає проблеми конфлікту з CF, тому домашньою текою для хосту буде взято ту ж саму, що й для CF8.

В ній зберігаються всі мої CFML-проекти та скрипти, тому це буде зручно та виправдано.

 

Спочатку нам потрібно зібрати модуль Apache.

cd /opt/railo

./configure --with-java-home=/usr/lib/jvm/java-6-sun/ --with-apxs=/usr/bin/apxs2

Зауважу, що ключ java-home не обов'язковий, якщо у вас потрібна версія Java встановлена за умовчанням.

Треба уважно переглянути виведення на предмет повідомлень про помилки, які обов'язково треба виправити до переходу на до наступних команд:

make

sudo make install

В результаті цього ми отримаємо встановлений модуль /usr/lib/apache2/modules/mod_caucho.so

Через це відмінне ім'я (caucho) решта налаштувань теж матимуть його для одноманітності.

 

У випадку, якщо Railo змінить httpd.conf, його знову-так треба буде почистити аби запобігти дублюванню директив.

Натоміть створити /etc/apache2/cauchoconnector з таким вмістом:

<IfModule mod_caucho.c>
ResinConfigServer localhost 6800
CauchoConfigCacheDirectory /tmp
CauchoStatus yes
</IfModule>

Ініціалізація модуля аналогічна попередникам:

/etc/apache2/mods-available/caucho.load

LoadModule caucho_module /usr/lib/apache2/modules/mod_caucho.so

a2enmode caucho

 

Створення віртуального хосту теж вже знайоме:

/etc/apache2/sites-available/localhost.railo

NameVirtualHost localhost.railo
<VirtualHost localhost.railo>

    ServerAdmin SetYourEmail@ServerName.tld
   
    ServerAlias localhost.railo

    ServerName localhost.railo
   
    DocumentRoot /home/trovich/www/cfm

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /home/trovich/www/cfm/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        allow from all
        DirectoryIndex index.cfm index.html index.htm
    </Directory>

    ErrorLog /var/log/apache2/error.localhost.railo.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.localhost.railo.log combined

    Include cauchoconnector

</VirtualHost>

a2ensite localhost.railo

sudo /etc/init.d/apache2 restart

 

Так само робимо скрипт запуску, текст якого трішки відрізняється:

#! /bin/sh

java=/usr/lib/jvm/java-6-sun/bin/java

script=`/bin/ls -l $0 | awk '{ print $NF; }'`

while test -h "$script"
do
  script=`/bin/ls -l $script | awk '{ print $NF; }'`
done

exec $java -jar /opt/railo/lib/resin.jar $*

Зауважу, що за основу тексту цього скрипта було взято оригінальний /opt/railo/bin/httpd.sh

 

Нарешті, реєструємо віртуальний хост в конфігурації Resin /opt/railo/conf/resin.conf

    <host id="localhost.railo" root-directory="/home/trovich/www/cfm">
        <web-app id="/" root-directory="/home/trovich/www/cfm/"/>
    </host>

Він має знаходитися відразу після кофігурації хосту за умовчанням (<host id="" root-directory=".">).

Також в цьому файлі варто закоментувати блок, що відповідає за логування подій. По-перше, це вже робить для нас Apache, по-друге, він писатиме логи в доступну з вебу теку, що потребуватиме додаткового захисту. Цей блок починається з теґу <access-log ...

 

Запускаємо Railo:

sudo /etc/init.d/caucho [start|stop]


Якщо все йде добре, маємо бачити вже інакший дамп того самого файлу server.cfm.

http://localhost.railo/server.cfm

15-railo-dump.png

 

Найприємнішим в цій ситуації є факт, що Railo та CF8 можуть працювати одночасно, що дуже допомагає в тестуванні сумісності між ними та портуванні коду.

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

 

Встановлення PHP 5, CF 8, CF 9 та Railo 3.1 з Apache 2 в Ubuntu - частина 1

Встановлення PHP 5, CF 8, CF 9 та Railo 3.1 з Apache 2 в Ubuntu - частина 3

Автор: Сергій Галашин | Опубліковано: 29.09.2009 о 10:07 | Категорії: Apache - ColdFusion 8 - ColdFusion 9 - HOWTO - PHP - Railo -

 

Встановлення PHP 5, CF 8, CF 9 та Railo 3.1 з Apache 2 в Ubuntu - частина 2

В першій частині розповіді ми дізналися як налаштувати Apache 2, PHP 5, Java та ColdFusion 8.

 

Час переходити до наступного етапу -- встановлення ColdFusion 9 (Centaur).

Хочу зауважити, що налаштування підпорядковані наступному принципові: CF9 поки в беті, тому використовується для експериментів та навчання. Вона не має заважати роботі CF8, хоча й намагатиметься.

 

Ця частина містить кільканадцять знимків екрану для наглядності, тому доволі великий повний текст розміщено тільки на сторінці посту »


Читати далі...
Автор: Сергій Галашин | Опубліковано: 29.09.2009 о 10:04 | Категорії: Apache - ColdFusion 8 - ColdFusion 9 - HOWTO - PHP - Railo -

 

Встановлення PHP 5, CF 8, CF 9 та Railo 3.1 з Apache 2 в Ubuntu - частина 1

Як правило, веб-розробники мають потребу в декількох типах середовищ, навіть різних версій одного й того ж додатку.

В цій статті я розповім про те, як я налаштовую свою систему, що в даний момент включає в себе PHP 5, ColdFusion 8, ColdFusion 9 та Railo 3.1. На даний момент моєю основною робочою системою є Xubuntu (9.04), тож інструкції відповідатимуть цій ОС. Відповідно, потрібні деякі мінімальні знання з цієї області, як то навички користування консолею.

Головною нашою задачею є ізоляція різних середовищ одне від одного в рамках єдиної інсталяції Apache 2.

 

Це перша частина, присвячена налаштуванню Apache 2, PHP 5, Java та ColdFusion 8.

 

Для початку нам треба визначитися з іменами віртуальних хостів, на яких будуть розташовані середовища. Останнім часом я зупинився на наступній системі йменування хостів, котру ілюструє запис в /etc/hosts

127.0.0.1 localhost localhost.php localhost.cf8 localhost.cf9 localhost.railo

Призначення кожного елементу цілком очевидне.

 

Першим кроком є встановлення Apache 2 та PHP 5. В Ubuntu це дуже просто, потрібно в консолі виконати команду, подібну до наступної:

sudo apt-get install apache2 apache2-threaded-dev libapache2-mod-php5 build-essential

Решту потрібних модулів встановлюється при потребі. Примітка: останній елемент знадобиться нам пізніше, він не є необхідним для даного етапу.

PHP встановлюється глобально для всього веб-серверу (.php скрипти оброблятимуться і в кожному віртуальному хості), мене це не турбує, тому залишаю як є. На даний момент мені просто треба зробити окремий хост для PHP розробки. Для цього треба створити файл конфігурації хосту:

/etc/apache2/sites-available/localhost.php

Я звик тримати всі робочі файли в домашній теці, тому шлях до файлів розробки є таким:

/home/trovich/www/php

Тоді конфігурація localhost.php буде наступною (це повний текст файлу).

NameVirtualHost localhost.php
<VirtualHost localhost.php>

    ServerAdmin SetYourEmail@ServerName.tld


    ServerAlias localhost.php

    ServerName localhost.php
   
    DocumentRoot /home/trovich/www/php

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /home/trovich/www/php/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        allow from all
        DirectoryIndex index.php index.html index.htm
    </Directory>

    ErrorLog /var/log/apache2/error.localhost.php.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.localhost.php.log combined

</VirtualHost>

Тепер нам залишається змусити Apache підхопити цей хост та перевірити його. Для цього виконаємо в консолі:

sudo a2ensite localhost.php

sudo /etc/init.d/apache2 restart

Створивши файл /home/trovich/www/php/index.php зі вмістом <?php phpinfo(); ?> можемо протестувати http://localhost.php/

У випадку успіху маємо побачити щось подібне до цієї картинки:

cf-install-00-phpinfo.png

У випадку, якщо з'являються повідомлення про помилку (типовим є статус 500), варто звернутися до журналу Apache, що відповідає даному хостові:

/var/log/apache2/error.localhost.php.log

Я полюбляю спостерігати за змінами використовуючи tail:

tail -f /var/log/apache2/error.localhost.php.log

tail -f /var/log/apache2/access.localhost.php.log

Другий журнал відповідає нормальній роботі хосту та містить повідомлення про всі запити.

 

Тепер переходимо до головної задачі -- встановлення ColdFusion 8. Головної тому, що вона наразі є моїм основним середовищем розробки, тому всі налаштування орієнтуватимуться саме на її потреби.

 

Для початку треба отримати дистрибутив ColdFusion, скачавши розробницьку linux-версію з офіційного сайту Adobe.

Після скачування треба надати файлові права на виконання, в моєму випадку це виглядає так:

chmod +x coldfusion-801-lin.bin

Треба відмітити, що Adobe зробили вельми зручний консольний інсталятор для 8-ки (і 9-ки, відповідно), тому негайно переходимо до процесу:

sudo ./coldfusion-801-lin.bin

Виконання з правами рута (root) необхідне через потребу запису файлів в системні директорії.

З огляду на те, що на момент проведення даного експерименту в мене вже була готова інсталяція ColdFusion 8, я не описуватиму її детально, це буде зроблено нижче для ColdFusion 9. На щастя, вони майже ідентичні.

 

Зауважу лише кілька важливих моментів.

1. Очевидно, що для роботи CF потрібна Java JRE, а для Railo ще й JDK. Встановлення їх теж дуже просте:

sudo apt-get install java6-runtime java6-sdk

2. Зазвичай я встановлюю CF до /opt/coldfusion8.

Шлях для домашньої теки CF у мене історично є /home/trovich/www/cfm, без вказання версії. Там CF8 й розміщує теку CFIDE. Це важливо, бо CF9 матиме іншу домашню теку з власною CFIDE.

3. Встановлення CF та налаштування хостів мають йти поетапно, бо вони обидві переписують стандартний файл конфігурації Apache:

/etc/apache2/httpd.conf

Він нам буде ще потрібен, тому перейдемо до налаштувань віртуального хосту.

 

По-перше, нам необхідно ізолювати модуль CF8, для цього створимо йому окремий файл конфігурації.

/etc/apache2/mods-available/cf8.load

В цей файл переносимо текст завантаження модуля:

LoadModule jrun_module /opt/coldfusion8/runtime/lib/wsconfig/1/mod_jrun22.so

Далі створюємо файл /etc/apache2/cf8connector (назва може бути інша, головне щоб лежав в теці Apache2) та переносимо в нього решту конфігурації модуля:

<IfModule mod_jrun22.c>
JRunConfig Verbose false
JRunConfig Apialloc false
JRunConfig Ignoresuffixmap false
JRunConfig Serverstore /opt/coldfusion8/runtime/lib/wsconfig/1/jrunserver.store
JRunConfig Bootstrap 127.0.0.1:51800
#JRunConfig Errorurl url <optionally redirect to this URL on errors>
#JRunConfig ProxyRetryInterval 600 <number of seconds to wait before trying to reconnect to unreachable clustered server>
#JRunConfig ConnectTimeout 15 <number of seconds to wait on a socket connect to a jrun server>
#JRunConfig RecvTimeout 300 <number of seconds to wait on a socket receive to a jrun server>
#JRunConfig SendTimeout 15 <number of seconds to wait on a socket send to a jrun server>
AddHandler jrun-handler .jsp .jws .cfm .cfml .cfc .cfr .cfswf
</IfModule>

Увага: видаляти httpd.conf не можна, він просто має залишитися порожнім.

Підкажемо Apache, що у нас є новий модуль для нього:

sudo a2enmode cf8

 

Налаштуємо власне віртуальний хост. Для цього створимо файл конфігурації

/etc/apache2/sites-available/localhost.cf8

Вміст його майже ідентичний тому, що вже було показано для PHP:

NameVirtualHost localhost.cf8
<VirtualHost localhost.cf8>

    ServerAdmin SetYourEmail@ServerName.tld

    ServerName localhost.cf8
   
    DocumentRoot /home/trovich/www/cfm

    <Directory /home/trovich/www/cfm/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        allow from all
        DirectoryIndex index.cfm
    </Directory>

    ErrorLog /var/log/apache2/error.localhost.cf8.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.localhost.cf8.log combined

    Include cf8connector

</VirtualHost>

Дуже важливою особливістю є виділена жирним директива. Вона підключає наш файл конфігурації модулю саме для цього віртуального хосту.

Нарешті, завершимо операцію командами:

sudo a2ensite localhost.cf8

sudo /etc/init.d/apache2 restart

 

Перед тим, як перевіряти результати, варто запустити ще й CF. Зазвичай це робиться наступною командою:

sudo /opt/coldfusion8 start (stop для зупинки)

Для зручности я створюю Shell-скрипт для цього діла, що має наступний вміст:

#! /bin/sh

coldfusion=/opt/coldfusion8/bin/coldfusion

script=`/bin/ls -l $0 | awk '{ print $NF; }'`

while test -h "$script"
do
  script=`/bin/ls -l $script | awk '{ print $NF; }'`
done

exec $coldfusion $*

Таким чином процедура запуску/зупинки зводиться до канонічного

sudo /etc/init.d/cf8 [start|stop]

Отже, сервер запущено, можна перевірити його дієздатність: http://localhost.cf8/server.cfm з текстом <cfdump var="#server#">. Маємо бачити щось схоже на це:

00-cf8dump.png

У випадку помилок так само звертаємося до журналів Apache, як було описано вище.

 

Встановлення PHP 5, CF 8, CF 9 та Railo 3.1 з Apache 2 в Ubuntu - частина 2

Встановлення PHP 5, CF 8, CF 9 та Railo 3.1 з Apache 2 в Ubuntu - частина 3

Автор: Сергій Галашин | Опубліковано: 29.09.2009 о 09:46 | Категорії: Apache - ColdFusion 8 - ColdFusion 9 - HOWTO - PHP - Railo -

 

Railo Tips: типи аргументів, відносні шляхи та згенеровані ключі

Працюючи над портуванням проекту під Railo стикаюся з різними особливостями роботи двигуна, котрі варто пам'ятати щоб не наступати на ці граблі надалі.

 

Спершу виникла проблема з nullable атрибутами в Transfer ORM. В моєму випадку NULL для поля з типом DATE зручно було використовувати для дати завершення строку дії рахунку. Для цього дефініція виглядала наступним чином:

<property name="expirationDate" type="date" column="exp_date" nullable="true" />

Тоді методи object.setExpirationDateNull() / object.getExpirationDateIsNull() давали потрібний результат.

Transfer зберігає NULL-дати в своєму особливому форматі (фактично, дата в далекому минулому), але при витягання NULL з бази все одно ColdFusion конвертував його в порожій рядок. Цей факт і став фатальним при передачі витягнутого значення сеттерові setExpirationDate(<date>).

Railo, на відміну від CF8, не бажає сприймати порожній рядок як коректну дату при передачі його аргументом функції.

Внаслідок цього довелося відмовитися від nullable атрибутів та трішки переробити спосіб відслідковування дат завершення строку.

 

UPDATE

Насправді, це виявилося проблемою коду, що взаємодіяв з Transfer. Бо несприйняття порожнього рядку є нормальним явищем для будь-якого CFML парсера.

 

Іншою проблемою стало використання наступного методу ініціалізації об'єкта:

variables.logBean = CreateObject("component", "model/LogBean").init( arguments.pageid, arguments.userid );

Такий відносний шлях не спрацював в Railo.

На щастя, динамічні мапінги в ньому працюють, тому я використав вже існуючий і переробив код наступним чином:

variables.logBean = CreateObject("component", "components.core.model.LogBean").init( arguments.pageid, arguments.userid );

 

Наостанок мене трохи розчарував той факт, що Railo не дістає останній доданий ключ в result запиту, зокрема для MySQL там не встановлюється GENERATED_KEY взагалі (додано 30.11.2009 -- виправлено!). В якості тимчасового рішення використав наступний спосіб:

<cflock name="#this.lockName#" type="exclusive" timeout="5">

    <!--- push bean into the db ---->
    <cfquery datasource="#variables.dsn#" name="qAddLogEvent" result="qResult">
        INSERT INTO #variables.tableLogCurrent#
            (id_page, id_user, log_type, log_message, log_detail, remote_ip, moment)
        VALUES
            (
             <cfqueryparam cfsqltype="cf_sql_integer" value="#logBean.getPageId()#" />,
             <cfqueryparam cfsqltype="cf_sql_integer" value="#logBean.getUserId()#" />,
             <cfqueryparam cfsqltype="cf_sql_char" value="#logBean.getLogType()#" />,
             <cfqueryparam cfsqltype="cf_sql_char" value="#logBean.getLogMessage()#" />,
             <cfqueryparam cfsqltype="cf_sql_char" value="#logBean.getLogDetail()#" />,
             <cfqueryparam cfsqltype="cf_sql_char" value="#logBean.getRemoteIp()#" />,
             <cfqueryparam cfsqltype="cf_sql_timestamp" value="#logBean.getMoment()#" />
            )
    </cfquery>

    <!--- this is a workaround for the engines not supporting GENERATED_KEY --->
    <cfif NOT StructKeyExists(qResult, "GENERATED_KEY")>

         <cfquery datasource="#variables.dsn#" name="qResult">
             SELECT LAST_INSERT_ID() AS GENERATED_KEY
         </cfquery>

    </cfif>

</cflock>

Хорошою ж новиною є те, що цей прикрий факт можна змінити. Для цього треба проголосувати у відповідному запитові Uservoice. Знаючи лояльність розробників я вірю, що потрібні зміни будуть доволі скоро.

 

Автор: Сергій Галашин | Опубліковано: 27.09.2009 о 18:03 | Категорії: MySQL - ORM - Railo - Subjective - Tips - Transfer -

 

Оновлений розділ "Збірка рецептів" від Adobe тепер на ColdFusion

Як і варто було очікувати, компанія перевела чергову серверну частину свого сайту на ColdFusion.

Цього разу ним став розділ Adobe Cookbooks, зокрема й тематична його частина.

Автор: Сергій Галашин | Опубліковано: 25.09.2009 о 18:16 | Категорії: Adobe - Documentation - Using CF -

 

Опитування щодо ColdFusion 9 на Amazon EC2

Adobe проводить опитування щодо перспектив ColdFusion 9 в Amazon EC2 хмаринці.

Там можна дізнатися про деякі плани Adobe та навіть спробувати своїм голосом вплинути тим чи іншим чином на особливості інтеграції CF9 до EC2.

Загалом, тема перспективна та цікава, тож рекомендую витратити кільканадцять хвилин на цю справу.

Автор: Сергій Галашин | Опубліковано: 24.09.2009 о 11:49 | Категорії: Adobe - Cloud Computing - ColdFusion 9 - Links -

 

Розділ з ColdFusion повертається до Yahoo Developer Network

Як сьогодні стало відомо, ColdFusion Developer Center знову запрацював на YDN. Нижче приведено вітальний текст розділу.

 

ColdFusion є одним з найшвидших шляхів до побудови потужних веб-сайтів. Це проста мова програмування, що є дуже легкою для новачків, в той самий час достатньо потужна для просунутих розробників. Цей сайт є вашим джерелом інформації щодо користування ColdFusion з API веб-сервісів Yahoo!. Тут ви знайдете:

  • ЯКЦЕ статті, що допоможуть вам зрозуміти наші технології та шляхи кращого їх використання з ColdFusion.
  • Приклади коду, з якими ви зможете експериментувати. Використовуйте їх як стартову позицію для ваших власних додатків, або вивчайте їх щоб зрозуміти деталі.
  • Інформацію щодо аутентифікації ваших користувачів з їхніми Yahoo! ID.
  • Інші ресурси мережі щоб допомагти вам використовувати API Yahoo! на повну силу.
  • Ресурси спільноти, де ви можете приєднатися до нашого списку листування та обговорювати API з нами та иншими розробниками.

 

Дякуємо Yahoo! за правильну справу та очікуємо на наступні гарні оновлення.

Автор: Сергій Галашин | Опубліковано: 24.09.2009 о 07:14 | Категорії: Yahoo - Community - Documentation - Links -

 

Вектор Script Injection атаки

Марк Кругер (Mark Kruger) знову робить корисну справу: досліджує можливість проведення Script Injection атаки через завантаження (upload) шкідливого скрипта.

Він розглядає послідовність кроків для "обману" скрипта завантаження, котрий хоч і проводить перевірку даних, але має розповсюджену вразливість, на котру рідко звертають увагу: завантаження відразу відбувається в публічно доступну директорію. Завдяки затримкам між етапами обробки є можливість виконати шкідливий скрипт до того, як його буде видалено.

Також приводяться кілька порад (здавалося б, очевидних для досвідченого розробника) щодо покращення загальної безпеки ресурсів з можливістю завантаження файлів користувачами.

Про все це дещо докладніше в Script Injection Attack: Smoking Gun?

Найбільшою проблемою дослідження наслідків такої атаки є труднощі з ідентифікацією шкідливих скриптів, адже вони вже не існують пост-фактум. Особисто я використовую два обробники помилок 404 в Application.cfc: один слугує для запису помилок, перенапрямлених з веб-серверу (фейкова сторінка 404.cfm), інший -- для заптів до недозволених cfm-сторінок (дозволені зазвичай index.cfm та wsdl.cfm - для веб-сервісів). Це дає деяку інформацію у випадку спроб дослідження додатку через навмисні запити до неіснуючих сторінок.

Автор: Сергій Галашин | Опубліковано: 22.09.2009 о 14:02 | Категорії: Blogs - Security - Tips -

 

Відповіді на поширені питання щодо ORM в ColdFusion 9

Теренс Райян (Terrence Ryan) відповідає на деякі поширені питання щодо ORM в CF9. Зокрема пояснює базову різницю між паттернами Data Mapper та Active Record, чому для ColdFusion було обрано саме паттерн перший з них та розкриває деякі особливості його реалізації.

Автор: Сергій Галашин | Опубліковано: 21.09.2009 о 14:02 | Категорії: Adobe - Blogs - ColdFusion 9 - ORM -

 

Новини CF-OpenSource v5

Невеличкий огляд на сьогодні

CacheBox 0.9 Beta

Як повідомляє автор, цей фреймворк для кешування майже "дозрів" до релізу.

ColdFusion on Wheels 0.9.4

Майже те саме можна зауважити про вже відомий нам фреймворк CFWheels.

FuseCache 0.8

Додаток до Fusebox, що дозволяє швидко інтегрувати існуючі рішення з кешування для CF, зокрема вищезгаданий CacheBox, а також cfMemcached та навіть EHCache з комплекту CF9.

Announcing ColdPress

Анонімний автор повідомив про початок розробки аналога WordPress на CF. Сподіваюся, що з нього вийде добрий конкурент існуючим рішенням.

Автор: Сергій Галашин | Опубліковано: 20.09.2009 о 14:52 | Категорії: Blogs - Frameworks - Links - News - OpenSource - RIAForge -

 

Чому Railo кермує як платформа для Saas

Розробники з компанії Straker зробили свій внесок до популярної теми для обговорення в спільноті: Railo vs ColdFusion.

Вони стверджують, що в одному з аспектів Railo є безумовним лідером. Як платформа для Software as a Service рішень.

Переваги було згруповано за чотирма категоріями: масштабованість, безпека, ціна, оновлення.

В коментарях було слушно зауважено, що суттєвим мінусом є складність розгортання, особливо на тонко налаштованих системах. Також там відмітився Адам Леман, продукт менеджер ColdFusion, з альтернативними думками щодо кожного пункту.

Докладно про всі ці речі читаємо в Why Railo kicks butt for ColdFusion based SaaS.

 

Автор: Сергій Галашин | Опубліковано: 14.09.2009 о 09:09 | Категорії: Blogs - Discussions - Railo -

 

ColdFusion Bloggers у Twitter

Вам ще не набрид Twitter? Тоді вас може зацікавити пропозиція зафоловити цілий натовп CF-твіттерян, причому одночасно.

Таку опцію надає черговий сервіс, що користується Twitter API: TweepML. Він дозволяє групувати твіттерян та ділитися зробленим з іншими.

В даному випадку це є ColdFusion Bloggers.

Автор: Сергій Галашин | Опубліковано: 13.09.2009 о 18:09 | Категорії: Community - Links -

 

Еще немного о CFUnited 2009

Одна ссылочка - мне понравился этот небольшой неофициальный дневничек канадца о прошедшем CFUnited.

Автор: Родион Быков | Опубліковано: 11.09.2009 о 08:57 | Категорії: Links -

 

Новини CF-OpenSource v4

Повертаємося до рубрики після деякої паузи. Сьогодні у нас нові CMS, фреймворки та CF9.

Quicksilver

Фреймворк, що використовує новинки CF9, а також реалізує сучасні методики розробки.

LightFront

Ще один невеличкий MVC фреймворк. На відміну від більшости популярних аналогів, не використовує XML для конфігурації, лише "чисті" CFC.

Splash CMS

ColdFusion порт Radiant CMS для Ruby.

Generate ORM Mapping

Додаток до CF Builder для генерації CF9 ORM мапінгів.

Base Persistent (ORM) Object

Додаток, що реалізує Business Objects для CF9 ORM.

bluApple

І ще одна CMS, нащадок CF-Nuke.

CFOpenChat

Додаток, що реалізує чат за допомогою CF та jQuery.

Coldfusion XML Meta Tag System

Додаток для керування мета теґами вашого сайту за допомогою базованої на XML конфігурації.

Credit Card Generator

Цей проект допомагає генерувати тестові номери карток найпопулярніших типів (Visa|Mastercard|Discover|Amex), корисно в процесі розробки та інтеграції платіжних систем.

Documentation Plugin for Mango Blog

Назва каже сама за себе. Плагін інтегрує довідку з Манго прямо в панель адміністратора.

 

Автор: Сергій Галашин | Опубліковано: 07.09.2009 о 09:09 | Категорії: ColdFusion 9 - CMS - OpenSource - ColdFusion Builder - News - Frameworks -

 

Про деякі особливості Application.cfc

Не всі розробники задумуються над тим, що Application.cfc це не тільки Application, але й повноцінна CFC. Використання її саме у якості компоненти дає кілька цікавих можливостей.

Наприклад, розглянемо таку просту компоненту:

<cfcomponent output="false">

<cfset this.name = "application_introspect" />
<cfset this.foo = "bar" />

<cffunction name="onRequestStart" returnType="boolean" output="false">
<cfargument name="thePage" type="string" required="true">
<cfset application.thePage = arguments.thePage />
<cfreturn true />
</cffunction>

</cfcomponent>

 

А тепер спробуємо використати її.

<cfdump var="#Application#" >

<p>&nbsp;</p>

<cfset test = CreateObject("component", "Application") />
<!--- CF9 way
<cfset test= new Application() />
--->
<cfdump var="#test#">

<cfset test.onRequestStart("introspect.cfm") />

<p>&nbsp;</p>

<cfdump var="#Application#">

 

Таким нехитрим способом можна робити дві речі:

  1. Подивитися що всередині об'єкту Application (на прикладі this.foo).

  2. Зручно маніпулювати Application scope.

 

Результат роботи вищевказаного коду виглядатиме так:

 

Автор: Сергій Галашин | Опубліковано: 06.09.2009 о 09:09 | Категорії: ColdFusion 8 - CFML - Gotchas -

 

DISA відкриває OSCMIS та підтримує CF

Управління інформаційного забезпечення міністерства оборони США (The Defense Information Systems Agency) надає доступ іншим державним агенціям до свого набору програмного забезпечення для управління та керування документообігом, більше того, відкриває й вихідні коди.

Система, що має назву The Open Source Content Management Information System (OSCMIS), містить в себі більш як 50 веб-додатків, включаючи інструмент для керування робочою силою, автоматичним документообігом, навчанням, віддаленим керуванням та інші.

Що цікаво для нас, OSCMIS написано саме на ColdFusion. Міністерство не тільки саме використовує цю технологію, але й рекомендує це робити іншим, зокрема хоче залучити до навчання молодь, щоб отримати нових талановитих програмістів.

Все це ще раз підтверджує перспективність CF як технології.

Джерело: InformationWeek

Автор: Сергій Галашин | Опубліковано: 05.09.2009 о 12:57 | Категорії: News - Using CF -

 

Оновлення Mango Blog до 1.4

Вже пару тижнів як вийшла оновлена версія Mango. Ми тільки днями оновилися, хоча це однозначно варто було зробити відразу. Адже розробники зробили цілу купу оновлень. Тим більше, що процедура оновлення -- простіше не буває, потребує лише одного кліку.

Особливо хочу відмітити можливість вручну задавати URL-безпечні заголовки, що робить непотрібним опублікований нами в травні хак для кириличних заголовків.

Також радує функція збереження історії змін постів. Інколи це буває корисним, наприклад при редагуванні CFML в чудовому TinyMCE, котрий, до речі, теж оновили.

Розробники зробили кілька кроків назустріч альтернативним CFML-двигунам, зокрема Railo. Зокрема, змінили Verity на власний пошуковий механізм.

Про ці та інші оновлення читайте в офіційному блозі блогу :)

 

Автор: Сергій Галашин | Опубліковано: 04.09.2009 о 06:15 | Категорії: Mango Blog - News -

 

Cumulative Hot Fix 3 for ColdFusion 8.0.1

Вчора було випущено оновлення CHF 3 for ColdFusion 8.0.1, призначене спеціально для цієї версії. Більше того, Adobe рекомендує використовувати це оновлення тільки у тому випадку, якщо вам заважають виправлені недоліки.

Автор: Сергій Галашин | Опубліковано: 02.09.2009 о 21:26 | Категорії: ColdFusion 8 - Adobe - News - Security -