CFUG+FPUG - встреча в Севастополе

В эту субботу, 20 августа, в Севастополе, в офисе компании Softserve прошла первая в истории встреча Coldfusion User Group Ukraine, совместно с 30й встречей Flash Platform User Group.

Место

 

В этот жаркий августовский день было замечательно провести встречу в прохладном конференц-зале компании Softserve. Спасибо, Softserve, и отдельно - Анне, Елене и Вадиму за поддержку.

 

Участники

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

Докладчики

Первым выступил я на правах организатора встречи. Мой доклад - "Зачем он нужен, ваш Coldfusion" был посвящен месту Adobe Coldfusion в современном ландшафте веб-разработки. На примерах я показал как хорошо можно использовать CF для решения широкого спектра задач.

Rodion talks on Coldfusion

Затем Гурам убедительно рассказал о принципах дизайна мобильных приложений - с графиками, примерами и анализом.

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

После обеда и прогулки обратно к офису Софтсерва, за чашкой кофе мы немного поговорили о разработке под мобильные платформы, и этот разговор стихийно перерос в доклад Андрея о разработке под Андроид - с примерами разработки интерфейса и бизнес-логики.

В завершении мы разыграли небольшие призы - футболки от компании Adobe.

Надеюсь что всем понравилась наша первая встреча, и что такие встречи будут проводиться регулярно в будущем. Рады будем видеть всех в Севастополе !

Автор: Родион Быков | Опубліковано: 22.08.2011 о 15:32 | Категорії: News -

 

Первая встреча Coldfusion User Group Ukraine

Наша группа до этого момента не проводила открытых встреч. Благодаря совместным усилиями с Flash Platform User Group, мы проведем встречу CFUG #1 вместе с проведением 30-й встречи Flash Platform User Group в Севастополе, 20 августа 2011г. в конференц-зале компании SoftServe по адресу г. Севастополь, ул. Б.Морская, 23.

Планируется несколько докладов по современным трендам в разработке на Coldfusion, и разговоры на тему "Жив ли еще Coldfusion, и зачем он вообще нужен". Кроме того, в программе будет доклад на дизайнерскую тематику и доклад о разработке игр и приложений под мобильные платформы.

Желающие присутствовать на встрече, пожалуйста зарегистрируйтесь здесь: http://fpug.org.ua/meeting/30, а если есть желание дать доклад или сделать презентацию, зарегистриуйтесь, отпишите это в комментариях к регистрации, и напишите на contact |at| cfug.org.ua

Coldfusion и Flash летом в Севастополе, что может быть лучше ?!

Автор: Родион Быков | Опубліковано: 30.07.2011 о 02:26 | Категорії: Meetings - News -

 

Современные фреймворки для качественной разработки на Adobe Coldfusion

(Доклад на встрече .NET User Group Sevastopol 29 июля 2011г., офис компании Softserve, Севастополь)

(Слайды в виде PDF-файла)

Фреймворк - это кусок кода, который используется повторно для создания проектов на его основе. Это своеобразны шаблон проектов. Фреймворк призван ограничивать фантазию разработчика, ставить определенные рамки, но взамен фреймворк предлагает хорошие, проверенные архитектурные решения. Следуя вдоль линий, намеченных фреймворком, разработчик в результате получит предсказуемый результат и качественный "робастный" код.

Прежде чем рассказать о фреймворках для Coldfusion, напомним, что представляет из себя этот продукт. Adobe Coldfusion - это сервер приложений, написанный по спецификации JEE, и реализующий язык Coldfusion Markup Language (CFML). CFML - интерпретируемый язык, с помощью которого можно создать веб-сайты любой сложности. Кроме веб-сайтов для Интернета, с помощью Coldfusion легко создавать сайты для корпоративных сетей (Интранетов), благодаря хорошей интеграции с корпоративными серверами, работе с разными форматами данных и протоколов.

Coldfusion появился в 1995 году и обрел популярность во времена "бума дот-комов". В то время сайты делались вебмастерами на HTML, без привлечения скриптовых языков, а единственной опцией было использование Perl. Последний нельзя считать легким для изучения и применения вебмастером - человеком с преимущественно дизайнерским набором навыков. Ответом на это было сделать простой теговый язык наподобие HTML, для быстрого освоения и разработки сайтов. После краха доткомов, Coldfusion несколько растерял популярность на волне популярности ASP и PHP, но выжил благодаря хорошей адаптации в корпоративной среде и в государственном аппарате США. Сейчас происходит второе рождение Coldfusion, и ему есть что предложить миру.

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

  • отсутствие общей для проекта структуры кода
  • низкая связность кода (low cohesion) - бизнес-логика "размазана" по разным участкам кода в проекте
  • высокая связанность кода (tight coupling) - модули кода могут выполнять действия только в связке с другими модулями или внешними данными)

Соответственно, и решение этих проблем лежит в:

  • архитектуре - применении паттерна MVC
  • повышении связности кода (high cohesion) - организации модулей, каждый из которых реализует одну, заранее хорошо определенную бизнес-функцию
  • понижении связанности кода (loose coupling) - делать модули как можно менее зависимыми друг от друга, передавая параметры или обмениваясь сообщениями

Хороший фреймворк призван решить эти три проблемы. Будучи написан опытными людьми, фреймворк предложит решения и направит разработчика по правильному пути. При этом фреймворк должен без изменения подходить вашему проекту, а его код быть легким и оптимизированным. Выбирая фреймворк из нескольких, обратите внимание насколько он хорошо поддерживается, есть-ли у него сторонники, насколько хороша документация.

Опишу несколько популярных фреймворков. Как правило, фреймворки используют такой паттерн для URL:

index.cfm?action=module.procedure

Единая точка входа в приложение - index.cfm, и некоторый "переключатель" - переменная action, в которой задается модуль и действие внутри этого модуля.

Fusebox

http://www.fusebox.org/

Один из ранних фреймворков. В версии 3 использовал CFML для описания модулей, в версии 4 это нужно делать через XML. В 5 версии появилась возможность отказаться от XML в пользу использования CFC. В настоящий момент фреймворк не поддерживается, хотя core-файлы стабильны и пригодны для работы с любым проектом.

Mach-II

http://www.mach-ii.com/

Первый объектно-ориентированный фреймворк, представлен с появлением поддержки CFC в Coldfusion MX (2003). С помощью XML-файла фремворк описывает события (events), компоненты CFC, реагирующие на эти события, и views - CFM-файлы, отвечающие за внешний вид. Фреймворк развивается, на нем реализованы многие корпоративные приложения.

Coldspring

http://www.coldspringframework.org/

При работе с многими CFC-компонентами может встать вопрос об их упорядоченном использовании. Например, когда нужно инстанцировать зависимые объекты или синглтоны. Чтобы не следить за зависимостями вручную, фреймворк Coldspring может делать это автоматически. Для этого используется XML-конфигурация используемых объектов (beans), а для вызова конкретного объекта можно использовать лишь запрос к фабрике объектов Coldspring.

TransferORM

http://transfer-orm.com/

Object-Relation Mapping - технология работы с данными в БД с помощью объектного подхода. Один экземпляр (объект) сопоставляется (mapped) одной строке в таблице БД. Это позволяет получать доступ (считывать), добавлять, изменять и удалять записи из БД, не прибегая к написанию SQL-кода. В конечном итоге это экономит время на рутинных операциях. TransferORM - это ORM-фреймворк для Coldfusion 7 и выше. Существующие таблицы БД (и их связи) описываются XML-файлом, по которому в последствии генерируются объекты. Каждый объект содержит поля, соответствующие полям таблицы в БД, а также геттеры-сеттеры для доступа к этим полям. TransferORM поддерживает возврат списков сущностей, поиск по фильтру, поиск по запросу (используется язык TQL - Transfer Query Language).

FW/1 (Framework One)

http://fw1.riaforge.org/

Новый фремворк, построенный по принципу Convention over Configuration, при котором описание структуры ложится на файловую систему. Фреймворк реализован всего одним CFC файлом, от которого нужно унаследовать Application.cfc нового проекта. Фреймворк реализует паттерн MVC таким образом. Контроллером модуля является один CFC, находящийся в папке /controllers, в этом контроллере определены методы данного модуля. Для доступа к внешним данным можно использовать службу, которая также реализуется через CFC в папке /services. После выполнения метода контроллера, данные собранные в контроллере и службе, через переменную rc передаются дальше, во view, который лежит в соответсвенно папке views/module/procedure.cfm. Для облегчения дизайнерского труда используются шаблоны, которые лежат в папке /layouts и могут иметь три уровня вложенности. Вот иллюстрация, как происходит вызов и сборка конечной страницы:

 

Минимально необходимым файлом для создания приложения на FW/1 является /views/module/procedure.cfm. Остальные файлы, включая контроллеры, сервисы и лэйауты, необязательны. Framework One подкупает своей простотой использования и скоростью работы.

Заключение

Описанные фреймворки - не единственные, но популярные, которые я бы лично рекомендовал для любого проекта. Мой личный фаворит - FW/1 - за его легкость и простоту. Используя наработанные библиотеки классов (CFC) в проекте на базе FW/1, я обычно использую Coldspring для описания зависимостей между классами в библиотеке, а также TransferORM для упрощения рутинных операций. Для сложных запросов я не прибегаю к помощи TransferORM, чтобы не усложнять код; я пишу обычный SQL-код и хранимые процедуры. Применять тот или иной фреймворк нужно осмысленно, примеряя его возможности к потребностям конкретного проекта и конкретной команды.

Дополнительное чтение по теме:

http://www.aliaspooryorik.com/blog/index.cfm/e/posts.details/post/oo-and-fusebox-no-xml-141

http://www.adobe.com/devnet/coldfusion/articles/frameworks_intro.html

Автор: Родион Быков | Опубліковано: 29.07.2011 о 09:00 | Категорії: CFML - CFUG - Frameworks - Fusebox - FW/1 - MachII -

 

Серьезным разработчикам

Считаешь себя серьезным, даже суровым разработчиком - становись в очередь за Coldfusion Builder 2 ! Adobe открывает предзаказ на вторую версию тру-билдера.

Автор: Родион Быков | Опубліковано: 12.04.2011 о 09:46 | Категорії: ColdFusion Builder -

 

CFBuilder для Linux, друга серія

Ми цього чекали, але цього не сталося: Adobe не зробили Builder 2 для Linux.

Мабуть, це значить, що ми набрали недостатньо голосів "за" в їхньому колишньому баґтрекері. Саме так, колишньому. Бо його було оновлено, внаслідок чого зник відповідний квиток...

Все це означає, що ми починаємо нову кампанію. Я підозрюю, що в кращому випадку щось зміниться у третій версії, але спробувати варто. Отже, ось наш "щасливий" квиток, панове лінуксоводи:

https://bugbase.adobe.com/index.cfm?event=bug&id=2832512

Автор: Сергій Галашин | Опубліковано: 22.03.2011 о 09:38 | Категорії: Adobe - Bugs - ColdFusion Builder - Linux -

 

Наша прелесть

Собственно, почему так мало пишем о Coldfusion Builder ? Adobe набила его под завязку полезными фичами, надо о них поведать миру ! Выпустим джина из... коробки !

 

Автор: Родион Быков | Опубліковано: 26.01.2011 о 00:42 | Категорії: ColdFusion Builder -

 

Странный Java баг в Coldfusion8 под Linux

Ситуация - сервер CentOS 5.5, Coldfusion 8.0.1 и MySQL 5. При записи в БД в некоторых местах проекта вылетала ошибка

java.lang.NumberFormatException
For input string: " 4000 "

При этом никакого числа 4000 в запросе и близко не было. На Windows-сервере ошибка не воспроизводится.

Гугление не привело ни к чему. Но решилось таким образом. Coldfusion 8.0.1 под Windows использует mysql-connector версии 5.0.5. При этом Linux-версия использует 5.0.3. После обновления коннектора на Linux-сервере проблема решилась.

Автор: Родион Быков | Опубліковано: 21.09.2010 о 19:18 | Категорії: Bugs -

 

Тимчасовий обхід обмеження довжини varchar

В одному з моїх поточних проектів у процесі розробки процесу імпорту великих об’ємів даних виникла задача ефективно (швидко) обійти обмеження довжини varchar полів у базі даних. Фактично, ми готові були пожертвувати частиною даних задля збереження швидкості роботи.

Річ у тім, що MySQL за умовчанням не дозволяє запхати в поле varchar рядок довший за наперед визначену розмірність.

Але це можна обійти скинувши налаштування @@sql_mode.

В якості демонстрації принципу наведу шмат коду, коментарі мають все пояснити.

<!---
CREATE TABLE IF NOT EXISTS contacts (
  contactId int(10) unsigned NOT NULL AUTO_INCREMENT,
  salutation varchar(5) DEFAULT NULL,
  firstname varchar(255) DEFAULT NULL,
  PRIMARY KEY (contactId)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
 --->


<cfset local = {} />
<cfset local.value = "Doctor" />


<!--- save the current SQL mode --->
<cfquery datasource="my_test_dsn" name="local.getSqlMode">
    select @@sql_mode as sqlmode
</cfquery>

<!--- reset the SQL mode --->
<cfquery datasource="my_test_dsn" result="local.resetSqlMode">
    set sql_mode = ''
</cfquery>


<!--- this should work fine --->
<cfquery datasource="my_test_dsn" result="local.pushContact">
    INSERT INTO contacts (salutation, firstname) VALUES ('#local.value#', '#local.value#')
</cfquery>


<!--- restore the SQL mode --->
<cfquery datasource="my_test_dsn" result="local.revertSqlMode">
    set sql_mode = '#local.getSqlMode.sqlmode#'
</cfquery>


<!--- this should fail --->
<cfquery datasource="my_test_dsn" result="local.pushContact">
    INSERT INTO contacts (salutation, firstname) VALUES ('#local.value#', '#local.value#')
</cfquery>


<cfdump var="#local#">

Автор: Сергій Галашин | Опубліковано: 14.09.2010 о 15:51 | Категорії: Gotchas - MySQL -

 

Нові розділи сайту: робота і компанії

Сьогодні ми трішки розширили можливості сайту, додавши два розділи:

  • Робота - тут можна буде знайти чи розмістити оголошення про роботу для CF-програмістів.
  • Компанії - тут можна буде знайти інформацію про українські компанії, що займаються розробкою з використанням ColdFusion.

Запрошуємо долучитися з наповненням, якщо вас щось зацікавило.

Ну й опис сайту англійською не завадить.

Також в нас накопичилося чимало цікавих матеріялів, чекайте багато оновлень цього місяця.

Автор: Сергій Галашин | Опубліковано: 12.09.2010 о 14:43 | Категорії: CFUG - Companies - Jobs -

 

Семантическая верстка

Не совсем про Coldfusion, но на смежную тему, хочу представить небольшой обзор семантической верстки. Так или иначе, но конечным продуктом обработки Coldfusion-шаблонов или PHP-скриптов становится щедро приправленный CSS-ом HTML-код. Полезно будет знать как сделать этот винегрет правильно.


Читати далі...
Автор: Родион Быков | Опубліковано: 08.09.2010 о 15:07 | Категорії: HTML -

 

Самопідписаний SSL сертифікат в Railo

Нещодавно зіткнувся з доволі відомою проблемою для CFML-розробників: CFHTTP відмовляється працювати з HTTPS-сайтом якщо сертифікат є само-підписаним, або не засвідченим авторизованим центром. Більше того, у мене сертифікат був у порядку, оглядачі чудово його сприймали, але не Railo.

Стандартним рішенням є додавання відкритої частини сертифікату до сховища ключів (keystore) JVM, котру використовує ColdFusion/Railo.

Але ця процедура може виявитися доволі хитрою, коли мова йде про Railo.

 

Спочатку я спробував піти "правильним" шляхом, та скористатися вбудованими функціями якраз для цього діла:

SSLCertificateList("hostname") чудово показала мені список сертифікатів (а він там був один) потрібного сайту.

SSLCertificateInstall("hostname") без жодних претензій його встановила.

Але ж дулі! Все одно продовжив бачити помилку sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

 

Тоді я взявся за консоль. Спочатку я перевірив чи спрацювали функції:

$ cd ~/webapps/xxxxx/WEB-INF/railo/security/
$ keytool -list -keystore cacerts

Потрібний сертифікат був у списку. Підказка: за умовчанням пароль для keytool є "changeit" (без лапок, звісно).

Про всяк випадок я спробував перевстановити його вручну. Для цього експортував .crt файл сертифікату сайту за допомогою оглядача (Firefox, в моєму випадку) та замінив запис:

$ keytool -delete -alias myalias -keystore cacerts
$ keytool -import -alias myalias -keystore cacerts -file /home/zzz/xxxxx.crt
$ keytool -list -keystore cacerts

Після цього перезапустив Railo та... не отримав нічого.

 

Наступна спроба зареєструвати сертифікат аналогічним способом була пов’язана з JVM, для Ubuntu та JVM від Sun шлях до них виглядає десь так:

/usr/lib/jvm/java-6-sun/jre/lib/security/

Вона теж виявилася невдалою, хоча для Adobe ColdFusion цей спосіб зазвичай працює.

 

Насамкінець я згадав, що Railo має ще кореневий контекст, в моєму випадку це тека

/opt/railo/webapps/ROOT/WEB-INF/railo/security/

Повторивши імпорт ще тут та перезапустивши Railo все запрацювало!

 

Автор: Сергій Галашин | Опубліковано: 01.09.2010 о 22:21 | Категорії: Gotchas - Java - Railo - Security -

 

Ошибка инсталлятора Coldfusion 8 в Centos 5

Проблема - при инсталляции не создается коннектор для Apache. Вполне вероятно, что это можно наблюдать не только на CentOS.

Нужно доустановить пакет http-devel, и после этого не постеснятся скомпилировать коннектор вручную, подправив и запустив этот скрипт:

# cd /opt/coldfusion8/bin/connectors
# ./apache_connector.sh

Также может помочь GUI-тулза /opt/coldfusion8/runtime/bin/wsconfig

Автор: Родион Быков | Опубліковано: 27.08.2010 о 15:15 | Категорії: ColdFusion 8 - Gotchas -

 

Немного статистики

По словам Adobe, в мире 778 тысяч разработчиков на Coldfusion и более 1млн Coldfusion-приложений. При этом в Европе собрались не больше 20% всех разработчиков. Из них в UK порядка 30%, в Benelux и DACH по 25% и 20% в остальных странах EMEA.

* DACH = Германия, Австрия и Швейцария
* EMEA = Europe, Middle East, Africa

Автор: Родион Быков | Опубліковано: 12.08.2010 о 13:28 | Категорії:

 

Flex и Railo "из коробки"

Как известно, для работы с Flex-приложениями, и Adobe Coldfusion и Railo используют BlazeDS. Наверное, нет проще пути для разработки серверной части Flex-приложений, чем разработка на CFML.

Для ограниченных в ресурсах проектов, использование Railo - отличный выход. Для простоты можно взять инсталлятор Railo, созданный Viviotech. В него включен преднастроенный BlazeDS, что позволяет в течение нескольких минут развернуть и начать создание серверной платформы Flex-приложения.

Рассмотрим инсталляцию под Windows.

После установки Railo+Tomcat можно соединить Railo и Apache, для этого пишем в httpd.conf:

LoadModule jk_module modules/mod_jk.so
JkLogFile "C:/Apache/logs/mod_jk.log"
JkWorkersFile "C:/Apache/conf/jk/workers.properties"
JkLogLevel error
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMountCopy all

Потом настроить под Railo отдельный virtualhost в Apache с такими параметрами:

<VirtualHost *:80>
    DocumentRoot "C:/inetpub/wwwroot"
    ServerName railo-local
    JkMount /*.cfm worker2
    JkMount /*.cfml worker2
    JkMount /*.cfc worker2   
    JkMount /flex2gateway/* worker2
    JkMount /flashservices/gateway/* worker2
</VirtualHost>

При этот сам worker2 определяется в C:/Apache/conf/jk/workers.properties таким образом:

workers.tomcat_home="C:/railo/tomcat"
workers.java_home="C:/jdk1.6.0_20"
ps=\

worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=worker2
worker.inprocess.type=jni

worker.list=worker2
worker.worker2.type=ajp13
worker.worker2.host=localhost
worker.worker2.port=8019
worker.worker2.lbfactor=50
worker.worker2.cachesize=10
worker.worker2.cache_timeout=600
worker.worker2.socket_keepalive=1
worker.worker2.socket_timeout=300
worker.worker2.connection_pool_timeout=600

Ну и напоследок, прописываем настройки Flash Remoting (в Railo встроен BlazeDS, но его надо поднастроить) в C:/Railo/Tomcat/webapps/ROOT/WEB-INF/web.xml:

      <servlet>  
        <servlet-name>MessageBrokerServlet</servlet-name>
        <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>
        <init-param>
            <param-name>services.configuration.file</param-name>
            <param-value>/WEB-INF/flex/services-config.xml</param-value>
       </init-param>
        <init-param>
            <param-name>messageBrokerId</param-name>
            <param-value>MessageBroker</param-value>
       </init-param>
       <load-on-startup>1</load-on-startup>
    </servlet>

   <servlet-mapping>
    <servlet-name>MessageBrokerServlet</servlet-name>
    <url-pattern>/flex2gateway/*</url-pattern>
   </servlet-mapping>

Для желающих глубже разобраться с настройками BlazeDS, рекомендую этот раздел Railo Wiki.

Автор: Родион Быков | Опубліковано: 28.07.2010 о 13:19 | Категорії: BlazeDS - Railo -

 

Кінець OpenCFML

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

Але не так сталося, як гадалося. Після тривалого затишшя з’явилися повідомлення про "смерть" проекту.

Спочатку Адам Леман повідомив про те, що Adobe виходить з комітету. Незабаром відреагував і Шон Корфілд, а також і Метью Вудвард, остаточно розв’язавши ситуацію.

В чому ж причини?

В першу чергу недостаток відкритості, що не спонукало учасників до активної діяльності.

Проблематичність пошуку консенсусу, наприклад в стандартизації CFScript в новій версії ACF, призвела до занепаду зацікавлення учасників, що й вилилося в поступове згасання діяльності.

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

Альтернативою цього року стало створення відкритої спільноти Conventional CFML Wisdom в групах Google, в якій спілкуються в тому числі деякі (колишні й поточні, якщо ще можна так сказати) учасники комітету.

Гадаю, що ця подія не справить великого впливу на спільноту, бо комітет так і не досяг жодних цілей, проваливши затвердження стандарту CFML2009. Але в цілому ситуація малоприємна, хоч і корисна з точки зору досвіду організації роботи зі стандартизації мови CFML, що все одно доведеться колись робити.

Автор: Сергій Галашин | Опубліковано: 27.07.2010 о 12:14 | Категорії: CFML - Community -

 

Доклад на FPUG #20 - Coldfusion+Flex

Наша юзер-группа в лице меня выступила на 20й встрече украинской группы пользователей Flash Platform в Киеве 10 июля 2010 года. Были и полезные доклады и живое общение и даже небольшой конец света (спонсор - погода в г.Киеве). От встречи осталась масса положительных эмоций, спасибо всем кто был к этому причастен.

Тема доклада - знакомство с Coldfusion и основы работы с Coldfusion-сервером из Flex-приложения. Слайды, описание и код демки - внутри.

 


Читати далі...
Автор: Родион Быков | Опубліковано: 26.07.2010 о 15:26 | Категорії: BlazeDS - ColdFusion 8 - ColdFusion 9 - Flex - Meetings -

 

Випущено Tour de ColdFusion Beta

Tour de ColdFusion це програма для стільниці, побудована на Adobe AIR, що включає в себе сотні зразків коду та прикладів. Кожен приклад поєднує в собі результат виконання (на віддаленому сервері) та вихідний код.

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

Треба зауважити, що програма є аналогом вже існуючих проектів Tour de Flex та Tour de LiveCycle.

Виглядає це приблизно так:

Встановити програму можна прямо з сайту Tour de ColdFusion.

Подякувати чи допомогти розробникам можна в блозі Ґреґорі Вілсона, або написавши листа.

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

 

Помилка в Transfer 1.1 при роботі з ACF9 та Railo 3.1.2.0xx

Після оновлення Railo (до bleeding edge) перестали працювати get-методи для неіснуючих первинних ключів. Раніше в такому випадку просто вертався новий bean, що було зручно використовувати для створення нових об’єктів, наприклад таким чином:

<cfset beanContact = variables.transfer.get("cnt.Contact", 0) />
<cfdump var="#beanContact.getMemento()#" label="beanContact" />

Натомість почало вилітати виключення виду:

transfer.EmptyQueryException -- It is likely the ID that has been selected for this query no longer exists

Виявилося, що така сама проблема виникла спочатку з CF9, а Railo пізніше "наздогнали".

На щастя, розробник Transfer оперативно її виправив. Тож ті, кому горить, можуть вже зараз витягти останню версію з SVN, решта можуть дочекатися випуску 1.1.1, що нібито вже не за горами.

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

Автор: Сергій Галашин | Опубліковано: 24.06.2010 о 10:09 | Категорії: ColdFusion 9 - Railo - Transfer -

 

Новини CF-OpenSource v17

Цей випуск повністю присвячено новинкам з RIAForge.

tumblrCFC .2

Додаток для взаємодії з API популярної блоґо-платформи Tumblr.

Google Geocoder V3

Втілення великої кількості можливостей служби Google Geocode.

cfRecurly .2

Додаток для взаємодії з API Recurly.com, системи для організації регулярних платежів.

Lorem Ipsum Dummy Text Generator v1.0

Назва говорить сама за себе. Додаток для CF Builder.

ResourceManager 1.0.0 (Beta)

Бібліотека для локалізації додатків, створена за подобою аналогічного пакету для Flex.

OpenID4CF 0.2

Обгортка для Java-бібліотеки OpenID4Java.

Google Weather API

Втілення взаємодії з означеною службою.

Framefactory One 1.1

Цікавий проект, побудований на FW/1, що втілює фабрику для об’єктів різних типів.

FuseBox 5 no XML Snippets 1

Додаток для CF Builder для швидкого написання керівних конструкцій FB5NoXML.

OAuthConsumer 0.6

Бібліотека для базової взаємодії з сервісами на базі протоколу OAuth 1.0

ORMScanner Extension 1

Додаток для CF Builder, що може стати у нагоді при роботі з CF9 ORM.

Model-Glue security samples

Додаток на базі MG, презентований автором на конференції NCDevCon 2010.

CFC Hint Checker Extension 0.9

Додаток для CF Builder, що шукає визначення методів із загубленими hint-ами.

Making OO/MVC ColdFusion Simple 2.0

Ще один CFML-приклад, презентований автором на конференції (CFObjective 2010).

WSS4CF 0.1

Втілення стандарту WS-Security без використання Java-бібліотек.

AirxMail 0.5

Бібліотека для взаємодії з поштовими службами.

FarCry 6.0.2

Нова версія популярної відкритої CMS.

Zip/Email Extension 1

Додаток, що допомагає швидко спакувати (та надіслати поштою) код прямо з CF Builder.

 

Автор: Сергій Галашин | Опубліковано: 23.06.2010 о 10:55 | Категорії: ColdFusion Builder - Components - Fusebox - FW/1 - OpenSource - RIAForge -

 

Новини Adobe ColdFusion - 06.2010

На останній конференції SOTR з’явилася інформація про деякі плановані оновлення в ACF 9.0.1. Серед найбільш цікавих: множинні ORM джерела даних, HQL з cfquery та підтримка Amazon S3. Не кажучи вже про більш як півтисячі виправлень.

Було випущено офіційний посібник з безпеки ColdFusion Lockdown Guide (PDF).

Вийшли друком перша та друга частини головної книги CFML-програміста: Adobe ColdFusion 9 Web Application Construction Kit. Вже можна знайти на Амазоні.

Випущено оновлення безпеки для ACF 8.0, 8.0.1 та 9.0 та всіх ОС, що виправляє ряд серйозних вразливостей. Більше деталей в офіційному бюлетені APSB10-11.

На завершення можна згадати про гарний холівар, ініційований Террі Райяном, в якому з ентузіазмом взяли участь чимало провідних учасників спільноти. Насолоджуйтесь :)

Автор: Сергій Галашин | Опубліковано: 22.06.2010 о 10:33 | Категорії: Adobe - Amazon S3 - ColdFusion 9 - Community - Conferences - Security -

 

Новини Railo - 06.2010

Цей спец-випуск присвячено новинам зі стану Railo з моменту останньої публікації на цю тему.

Перш за все, процес розробки не зупиняється ні на день, bleeding-edge випуски з’являються ледь не щотижня, на момент написання цього тексту поточною є версія 3.1.2.014. Більшість виправлень та оновлень можна детально відслідкувати в офіційному баґтрекері, а також на форумах Uservoice. Наприклад, я очікую на виправлення невеличкої проблеми з cfdump.

Починаючи з версії 3.1.2.009 дистрибутив включає в себе ядро проекту Railo Ajax, в тому числі підтримку базових міток (cfajaxproxy, cfajaximport, cfdiv) та JavaScript-бібліотеку (jQuery). Ця частина має назву CORE, інша (UI) включає решту розширень (cfwindow, cfmap, cflayout) та має підключатися за допомогою розділу Extension адміністративної панелі, докладніше описано в цій публікації.

Андреа Камполоньї розробив ще два схожих між собою розширення: cfjavascript та cfstylesheet. Призначено їх для стиснення та об’єднання статичних файлів для пришвидшення їх завантаження. Тодд Реферті написав дуже докладну замітку з використання цих розширень.

Дуже приємною новиною стало включення до ядра раніше платного розширення для роботи з Amazon S3. Коли конкретно це станеться не дуже зрозуміло, але на пам’ять залишимо тут посилання на стареньку замітку про те, як ним користуватися. Що цікаво, це рішення скоріш за все було прийняте під впливом повідомлень зі стану Adobe, але про них ми поговоримо окремо.

Особливо цікавим для мене стало представлення Roadmap проекту, що включає опис планованих можливостей версій 3.2 та 4, а також деяких додаткових можливостей. На жаль, поки невідома конкретна дата виходу 3.2, на яку особисто я чекаю з нетерпінням з огляду на наближення моменту виходу на публіку робочого проекту, що працює поки на останньому стабільному випускові.

 

Автор: Сергій Галашин | Опубліковано: 21.06.2010 о 09:34 | Категорії: Ajax - Amazon S3 - OpenSource - Railo -

 

Новини CF-OpenSource v16

Цей спец-випуск присвячено виходу нових версій двох прогресивних фреймворків.

 

Команда розробників CFWheels невпинно наближається до великого релізу, тим часом випустивши оновлення за номером 1.0.5.

Воно включає в себе більш як 2 десятки виправлень. Повний їх список можна переглянути в публікації Released: ColdFusion on Wheels 1.0.5

 

Натомість Шон Корфілд (Sean Corfield) його вже досяг, повідомивши про вихід версії 1.1.

Серед оновлень:

  • Рекомендований скелет додатку.
  • Більш гнучка конфігурація підсистем та контролерів.
  • Нові можливості API.

Повний список можна переглянути в публікації FW/1 Release 1.1 Available!

 

Автор: Сергій Галашин | Опубліковано: 20.06.2010 о 21:21 | Категорії: CFWheels - Frameworks - FW/1 - OpenSource -

 

Adobe Enterprise Cafe

Корпорация Adobe и сообщество регулярно доставляет выдает килотонны информации, которую бывает сложно собрать и осмыслить. В помощь утопающим в потоке, Adobe выпустила тулзень Adobe Enterprise Cafe - AIR-программу для отображения новостей, сбора фидов с блогов, видео Adobe TV и т.д. До этого я припоминаю только Adobe Coldfusion Box, но эта тулза довольно узко-специализирован на Coldfusion в Европе.

Автор: Родион Быков | Опубліковано: 08.06.2010 о 18:30 | Категорії: Adobe - News -

 

Flex+Railo+BlazeDS+MySQL+Tomcat+Apache+Linux

При всем уважении к Матушке-Coldfusion, нельзя забывать что она стоит денег. Деньги большие, но на каждый доллар инвестиций покупатель получает очень много. К сожалению, не все могут оплатить стоимость лицензии, однако это не повод считать их людьми второго сорта. Все перечисленные в заголовке технологии - бесплатны, два первых - продукты Adobe. Если знаешь Java, можно обойтись без Railo, но скорость разработки будет существенно меньше. Все одно, получается, что задаром, можно легко создавать классные RIA !

Автор: Родион Быков | Опубліковано: 27.05.2010 о 22:30 | Категорії: BlazeDS - Flex - Railo -

 

Coldfusion 9 и проблема с Apache Virtualhost

После "чистой" установки Coldfusion 9 возникла странная проблема. Виртуальные хосты Apache 2.2 не работали, и документы *.cfm отдавались только по прямой ссылке в текстовом виде. То есть казалось, что проблемы две - неработающая Coldfusion и неработающие хосты. Однако, оказалось что инсталлятор не добавил handler, и обе проблемы решились одновременно, исправлением httpd.conf - в строчке AddHandler надо добавить .cfm и .cfc

# JRun Settings
LoadModule jrun_module "C:/ColdFusion9/runtime/lib/wsconfig/2/mod_jrun22.so"
<IfModule mod_jrun22.c>
    JRunConfig Verbose false
    JRunConfig Apialloc false
    JRunConfig Ignoresuffixmap false
    JRunConfig Serverstore "C:/ColdFusion9/runtime/lib/wsconfig/2/jrunserver.store"
    JRunConfig Bootstrap 127.0.0.1:51800
    AddHandler jrun-handler .jsp .jws .cfm .cfc
</IfModule>

Не забыть про DirectoryIndex:

<IfModule dir_module>
     DirectoryIndex index.cfm index.html index.htm
</IfModule>

Виртуал хосты соответственно:

NameVirtualHost *:80
<VirtualHost *:80>
   DocumentRoot "C:/inetpub/wwwroot/domain1"
   ServerName domain1
</VirtualHost>
<VirtualHost *:80>
   DocumentRoot "C:/inetpub/wwwroot/domain2"
   ServerName domain2
</VirtualHost>

Автор: Родион Быков | Опубліковано: 21.05.2010 о 12:52 | Категорії: Apache - ColdFusion 9 - Gotchas -