Glassfish как application server для Сoldfusion
Достаточно много критики поступает в редакцию Adobe за использование во все стороны устаревшего сервера приложений JRun4. Вероятно в 10 версии Coldfusion будет использоваться другой сервер. Но необязательно ждать, уже сейчас можно облегчить себе жизнь. Например, поступить как описывает Пол Кукель (Paul Kukiel) в этом посте. Суть проста - установить сервер приложений Glassfish, и установить Coldfusion как WAR-приложение внутри "стеклорыбы". Кроме того, Railo тоже можно скачать как WAR-приложение и использовать вместе с Glassfish. Самое приятное, что настроив в Apache два виртуал-хоста, можно использовать Coldfusion и Railo вместе на одной машине - только различать их по имени хоста. При этом, связка GF+CF+Railo работает действительно быстро, субъективно, но я уверен, что точные тесты покажут ускорение объективно.
Шукаєте хостинг з Railo?
Тоді вам варто звернути увагу на сторінку Hosting Providers, що днями з'явилася на веб-сайті Railo.
Також варто зауважити, що завдяки скромним системним вимогам та простоті розгортання, є сенс звертати увагу і на VPS рішення. Наприклад, наш сайт розміщено на Linode.com. Це, без перебільшення, чудовий хостинг-провайдер з оригінальною та зручною системою розгортання вузлів (лінод) на базі Linux, професійною технічною підтримкою та цілком прийнятними цінами на послуги. До того ж, їх сайт написано на CFML.
P.S. Ні, цей матеріал не розміщено на правах реклами. Але ми будемо не проти, якщо хтось скористається нашим реферальним посиланням для реєстрації :)
Зміна платформи Mura CMS 5.2
Сьогодні з'явилося оновлення для популярної CMS, що включає ряд значних покращень, як в інтерфейсній частині, так і в коді.
Найбільш цікавим фактом є те, що розробники вирішили позбутися фреймворку Fusebox та поступово переходити на FW/1, за їх словами "задля кращої швидкодії". Почали вони це робити з панелі адміністратора.
Повний список оновлень можна дізнатися з повідомлення в блозі проекту: Mura CMS version 5.2 is live!
Випущено CFEclipse 1.3.5
Сьогодні було опубліковано нову версію CFEclipse, популярного додатку до Eclipse для розробки на CFML.
Випуск містить низку суттєвих оновлень, серед них:
- Значно покращено помічник для коду (code assist). Він став розумнішим та зручнішим.
- Додано форматувальник коду, що базується на бібліотеці Jericho. Працює тільки для міток, але й це добра поміч при роботі з погано форматованим кодом. Має трохи налаштувань.
- Внесено ряд покращень текстового редактору, наприклад підсвічування елементів, автовідступи та невеличкі можливості з рефакторингу.
- Покращено словники для ACF5-8 та (головне!) додано словники для ACF9 та Railo (поки що базовий). Це просто чудове покращення.
- Трохи покращено Outline, хоча підтримка CFScript досі залишається вкрай експериментальною (тобто, нестабільною).
- Додано інформацію про додаток до Universal Welcome та його розділів What's New? й Cheat sheets.
Документацію щодо встановлення додатку можна знайти у вікі проекту.
Також можна зафоловити CFEclipse в Твіттері.
Документація з Railo
З початком цього року спільнота Railo активізувала зусилля зі створення потужного інформаційного ресурсу, що містив би матеріяли як для новачків, так і для розв'язання більш складних завдань.
Таким ресурсом покликана стати Railo Wiki.
В ній можна знайти як документацію з CFML, так і зі специфічних для двигуна тем, зокрема описуються відмінності в підтримуваному синтаксисі.
Також вікі можна використовувати як стартову точку для пошуку інших матеріялів, бо вона містить посилання на сторонні ресурси, як то групи чи баґ-трекер.
З огляду на скромніші можливості з документування (фактично, зараз цим займається тільки Тодд Раферті, за що йому доземний уклін), ніж у тої ж Adobe, використовується змішана схема: деякі теми покриваються статтями вікі, деякі за допомогою посилань на зовнішні сайти (здебільшого блоги).
Наостанок варто зауважити, що вікі ще знаходиться в стані бети, що передбачає постійне покращення та розширення вмісту.
Незважаючи на це, там вже є чим поживитися цікавому розробникові.
Конкурс з написання LitePost на CFWheels
Рівно тиждень тому розпочався конкурс, оголошений розробниками фреймворку ColdFusion on Wheels.
Завдання: реалізувати на CFWheels проект LitePost, простенький стандартизований двигун для блогу, що призначений для порівняння різних фреймворків; опис проекту, SQL для бази та вже існуючі приклади можна відшукати на відповідній сторінці Google Code.
Мета: в цікавій формі ознайомитися з Wheels, можливо виграти приз.
Строки: конкурс завершується 19 лютого 2010 року.
Призи: переможець отримає сертифікат на $100 з Amazon Gift card, двоє наступних по $50.
Вимоги до проекту:
- Скачати та використовувати фреймворк Wheels
- Вхід/вихід
- Записи (створити, читати, оновити та видалити)
- Відгуки (створити, читати, оновити та видалити)
- Категорії (створити, читати, оновити та видалити)
- Закладки (створити, читати, оновити та видалити)
- Використання Wheels Object Validation для вищевказаного
- RSS стрічка (бонус)
Електронну пошту, на яку треба надсилати результати, можна відшукати на сторінці публікації з оголошенням конкурсу.
Якщо ви ще не знайомі з Wheels, зверніть увагу на два посібники: Beginner Tutorial: Hello World та Beginner Tutorial: Hello Database. Також скрінкасти чудовий спосіб для швидкого початку (кому як, - С.Г.). Якщо у вас є трохи часу, можна переглянути записи зустрічей в групах користувачів.
Питання найкраще ставити в Wheels Google Group
Важливе оновлення безпеки для ACF9 (CVE-2010-0185)
Вчора було опубліковано інформаційний бюлетень з безпеки від Adobe, що повідомив про появу виправлення для вразливості в Solr.
Вразливість заключається в тому, що будь-хто може дістатися до колекції знаючи URL спеціального формату.
Adobe позначила вразливість як важливу та настійливо рекомендує вжити заходів для виправлення, що докладно описані в публікації How to limit access to the Solr collections
Переїзд сайту на Linode
Good news, everyone!
Відсьогодні сайт працює на новому сервері.
Технічні деталі:
- Linode VPS
- Ubuntu 9.10
- Railo 3.1
- Resin 3.1
- Apache 2
- MySQL 5.1
- Mango 1.4.1
Поки політ нормальний.
Flex и PHP - странные связи
Один из евангелистов Adobe - Райан Стюарт (Ryan Stewart) - пишет в своем блоге, что теперь будет вести свои проповеди в среде PHP разработчиков. Тема интеграции Flex с PHP набирает обороты, насколько можно судить по статьям и постам на форумах. Возможно, об интеграции Flex и Coldfusion уже написано слишком много (да и сама связка CF+Flex очень проста в использовании, спасибо Adobe), поэтому Adobe ищет новых друзей для Flex-а за пределами своей крепости. Кроме того, борьба с Silverlight заставляет искать новых союзников, а PHP явно не друг Microsoft-у. Думаю, что надо следить за этой тенденцией, и возможно, открыть неожиданные перспективы.
BlazeDS и все все все
Довольно сложно разобратся в маркетинговом языке корпораций, Adobe не исключение. Существует несколько серверов для организации messaging-а и передачи данных через AMF (remoting): например LiveCycle Data Services ES (LCDS) и BlazeDS. На мой скромный взгляд, Adobe запутывает пользователя избыточными аббревиатурами. Несколько ссылок для самообразования:
- BlazeDS: Open Sourcing Remoting and Messaging
- LiveCycle ES vs LiveCycle DS vs BlazeDS
- BlazeDS and LCDS Feature difference
- Differences between BlazeDS web messaging and the messaging service in LiveCycle Data Services
В двух словах - LCDS это платный сервер Adobe с кучей фич кроме собственно remoting-а. BlazeDS - это бесплатный опенсорсовый вариант LCDS с урезанными фичами. Если вам лишь нужно по-мелочи работать с удаленными данными из Flex приложения, используйте BlazeDS. Если нужна более серьезная обработка - предупреждение коллизий данных, server-side paging, работа с PDF-документами - используйте LCDS. LCDS есть в бесплатном варианте, но с ограничением на 1 приложение и 1 процессор. Хоть немного стало понятнее ? :)
Чтобы окончательно запутать читателя - существует еще GraniteDS, опенсорсовая замена LCDS.
Новини CF-OpenSource v11
Оновлення продуктів та додатків
SocialBookmarks Mura Plugin 1.2
Додаток для Mura CMS, додає швидкі посилання на популярні соціальні веб-сайти, наприклад Facebook чи Twitter.
ColdBox 3.0.0 Milestone 4 released
Луїс Маджано (Luis Majano) повідомив про вихід M4 нової гілки фреймворку, а також розмістив дзеркало проекту на RIAForge.
LogBox: Enterprise ColdFusion Logging Library 1.1
Так само на RIAForge з'явилися проекти-сателіти: бібліотека для журналювання LogBox та бібліотека для створення прототипів MockBox.
JavaLoader 1.0 Beta 2 Released
Марк Мендел (Mark Mandel) повідомив про вихід другої бети нового релізу JavaLoader та створив дзеркало проекту на RIAForge, де розміщено стабільну версії.
Реймонд Кемден (Raymond Camden) повідомив про вихід оновлення BlogCFC, знайти його можна на сторінці проекту.
Барні Бувер (Barney Boisvert) повідомив про появу бібліотеки для взаємодії з популярною CDN службою від Amazon.
Інтерв'ю Хеманта Хенделвала та Тодда Шарпа для RIA DZone
DZone продовжує активно спілкуватися з цікавими людьми зі світу ColdFusion.
Ми вже згадували про інтерв'ю з Фортою та Менделом, тепер коротко про ще два.
Хемант Хенделвал, головний інженер в команді ACF та CFB, розповів про трохи свою роботу та детально про деякі оновлення, що з'явилися в CF9.
Тодд Шарп, розробник SlideSix.com -- спільноти для обміну слайдами, розповів про суть спільноти та технічні сторони її розробки.
Обидві бесіди можна переглянути у відео-записі, або прочитати розшифровку.
Новини CF-OpenSource v10
Оновлення продуктів та додатків на RIAForge
Новий MVC фреймворк.
Компонента, що за допомогою jTidy ковертує текст до валідного xHTML.
Двигунець для створення прототипів, що реалізує принципи scaffolding.
Компонента для безпосередньої взаємодії з SQLite базою без участі JDBC, реалізує стандартні операції, вміє зберігати набір CF даних безпосередньо в таблицю SQLite.
Додаток для експорту мета-даних компоненти до XML-файлу, що може бути імпортований до редактора UML.
Додаток для пошуку зайвих CFM-файлів в директоріях проекту. Навряд чи буде корисним у випадку використання фреймворків, бо базується на пошуку безпосередніх підключень (cfinclude) сторінок.
Втілення API рекомендаційного сервісу Yelp.
Втілення механізму ітератора для складних типів даних.
Втілення API сервісу хостингу онлайн-відео Brightcove.
Втілення складної структури даних: зв'язаний список.
Бібліотека для інтернаціоналізації додатків, потребує CF9.
Вельми корисна бібліотека, що дозволяє не зациклюватися на XML як форматі для обміну даними, але й підтримувати вже існуючі складні текстові формати (як EDI чи VCF4).
Бібліотека, що реалізує базові операції з малюнками.
Smartermail API wrapper + UI 1.0
Втілення API програмного комплексу Smartermail.
Кілька нових додатків для Mango
Розширення для вбудови пошуку блогу в пошукове вікно оглядача.
Додає вказаний віджет до сайту, щоб читачі могли швидко перекладати вміст за допомогою перекладача Google.
Додає блок зі швидкими посиланнями на популярні соціальні веб-сайти, наприклад Facebook чи Twitter.
Дозволяє надсилати листи з блогу (наприклад, сповіщення про коментарі) через SMTP, що вимагають TLS/SSL з'єднання.
Реалізує включення малюнків з Twitpics в бічну панель блогу.
Різні оновлення та повідомлення
Розробники фреймворку Model-Glue опублікували тренувальний курс для новачків.
Mach-II Simplicity (1.8) RC2 Released
Черговий крок до випуску нової версії Mach-II
Ще один популярний продукт готується до випуску нової версії. Це додаток для підсвітки синтаксису від Джейсона Делмора, що використовується зокрема в BlogCFC.
Кілька оновлень отримав і додаток, що втілює scaffolding для Fusebox.
Implicit Blocks in Fusebox 5.5.1
Патч для Fusebox, що дозволяє обійтись без зайвих true міток, коли в if-блоці немає false.
Оновлено бібліотеку для захисту додатків від SQL-ін'єкцій та XSS атак.
Випущено FW/1 1.0
Сьогодні сталися дві взаємопов'язані події.
Шон Корфілд повідомив про завершення роботи над документацією для FW/1, що було останньою задачею на шляху до релізу! Відповідно, другою подією і стала офіційна поява випуску 1.0.
Бажаємо проектові стабільного розвитку, а розробникам натхнення.
Підсумки 2009 року, плани на рік 2010
Минулий рік став першим роком повноцінного існування сайту.
Отже, варто підвести невеличкі підсумки року 2009.
- Нами було написано 111 повідомлень! Серед них кілька авторських, або частково авторських.
- Сайт загалом було приведено до ладу: переведно на Mango з новим, дещо модифікованим, стилем, створено кілька статичних сторінок.
- Відбулася нульова (№0) зустріч групи (адже ми все-таки хочемо бути User Group), в дуже скромному складі, але тим не менш.
- Нами було організовано більш "офіційне" представництво на Adobe Groups.
На цьому ми зупинятися не збираємося, тому є сенс оголосити деякі плани на рік 2010.
- Писати більше авторських матеріалів, але і не писати менше про цікаве з CF-світу.
- Почати отримувати відгуки-коментарі :)
- Спробувати організувати більш розширену зустріч, можливо в рамках якоїсь більшої події.
- Запустити кілька проектів-сателітів, більше освітніх за сутністю, на відміну від цього динамічного блогу.
- Переїхати на Railo-хостинг та покращити двигунець сайту/блогу.
- Активізувати діяльність з пошуку однодумців та популяризації платформи!
Сподіваюся, буде цікаво :)
Покращуючи CFScript
Шон Корфілд розповів про те, як відбувається еволюція CFScript. Він навів приклад того, як було втілено функції в різних серверах застосунків та роль CFML Advisory Commitee. Ми вже колись згадували про цю тему.
Що цікаво, я вже довгий час сповідую синтаксис, аналогічний до наведеного прикладу ColdBox: класичне визначення cffunction+cfargument, а тіло на cfscript.
Треба відмітити, що до широкого використання нового синтаксису ще далеченько, аж поки CF9 та Railo не займуть достатньо велику частину ринку. До того часу доведеться писати сумісний з CF8 код, щоб забезпечити собі спокійний тил.
Установка Railo на Windows с использованием Apache
Установка Railo Server очень проста, может, даже проста настолько, что нет смысла описывать ее. Еще проще было бы развернуть Express-версию (без инсталляции). Все же как небольшая памятка:
- скачать Railo Server;
- запустить инсталлятор и установить Railo в папку C:\Railo (с папкой Program Files могут быть трудности) - в результате получим Railo и сервер, работающий на порту 8600;
- как написано в этом посте, добавить в конфигурацию Apache такие строки, чтобы Railo обслуживал файлы CFM из апачного htdocs:
LoadModule caucho_module C:/Railo/win32/apache-2.2/mod_caucho.dll
<IfModule mod_caucho.c>
ResinConfigServer localhost 6800
CauchoConfigCacheDirectory C:/Railo/tmp
CauchoStatus yes
</IfModule>
UPDATE: как сказано в этом документе (PDF), нужно еще поднастроить Railo: в файле C:\Railo\conf\resin.conf изменить путь к корню (web-root):
<host id="" root-directory=".">
<web-app id="/" root-directory="C:/Program Files/Apache Software Foundation/Apache2.2/htdocs" />
...
После чего надо перегрузить Apache и have fun !
Чат з Марком Менделом в Java DZone
Не так давно до DZone завітав Бен Форта, тепер це зробила й людина, про котру ми доволі часто згадуємо. Це Марк Мендел, розробник JavaLoader та Transfer ORM.
Як заведено, Марк спочатку розповідає деякі загальні речі про себе, зв'язок Java та ColdFusion та ORM, потім бесіда переходить до обговорення принад інтеграції, використання ORM з ACF9 чи Transfer, та короткого пояснення можливостей JavaLoader.
Про все це докладніше в Tech Chat: Mark Mandel on ColdFusion and Java Integration
CFML 101 - Помилки новачків (друга частина) та веселощі зі списками
Ерік Кобб продовжує (див. про першу частину) серію публікацій про основи CFML.
В другій публікації про помилки новачків він розповідає про особливості використання Application.cfm (рекомендується уважно переглянути коментарі, бо в цій частині є певні помилки), деякі можливості вкладання викликів функцій та необхідність використання cfparam.
В публікації Fun with Lists розповідається про переваги використання списків, котрі є вельми зручним та ефективним з точки зору швидкодії інструментмо.
Дискусія: чому CFML, а не Java?
Нещодавно Шон Корфілд (Sean Corfield) опублікував невеличку замітку, в якій критично висловився щодо компанії, котра витратила три роки (!) на переписування сайту з CFML на Java.
Обговорення тої самої новини на TechCrunch вилилося в значну дискусію за участі великої кількості авторитетних членів спільноти (навіть Бен Форта завітав!), частина якої перекинулася й на коментарі до посту Шона.
Зокрема, в них відмітився оборонець ідеї переписування (можливо, учасник) Девід Теннерсін (David Tannersyn), котрий викликав нову хвилю обговорення, що призвело до написання Шоном нової ґрунтовної публікації Why CFML? Why not Java?, котра має на меті розставити крапки над "і" в цій дискусії.
Рекомендую до ознайомлення, все доволі цікаво.
10 речей, котрі СПРАВДІ потребує Adobe ColdFusion
Один зі старожилів, гуру спільноти, Джейсон Делмор склав список речей, що мають бути додані чи покращені в Adobe CF 10. Зважаючи на його досвід, дуже варто ознайомитися. Деякі моменти доволі очевидні, а деякі зовсім ні, але не менш важливі.
Серед списку є пропозиції позбутися застарілого серверу застосунків JRun, покращити будівельник звітів, CFDocument, моніторинг серверу, флеш форми, виправити розгортання застосунків, додати підтримку різних протоколів IM, оновити двигун веб-служб, додати сучасний workflow менеджер та, нарешті, зробити безкоштовну версію для простих задач.
Докладний список з поясненнями в публікації 10 Things ColdFusion 10 Really NEEDS
CFML 101 - Помилки новачків, частина 1
Ерік Кобб розпочав вельми корисну серію публікацій про типові помилки новачків в CFML, популярні питання та інші корисні речі.
Досвідчені розробники навряд чи знайдуть щось нове для себе, але для початківців дуже рекомендується до ознайомлення:
CFML 101 - Rookie Mistakes Part 1
В першій частині розповідається по символи фунтів (pounds, #), грамотне використання cfoutput, доцільність вказування області видимості змінних та небезпеки використання Evaluate.
Я проходив свого часу через усі вказані пункти, але завдяки ознайомленню з існуючими зразками гарного коду швидко позбувся цих звичок :)
На додаток, варто відмітити й знайдений читачами виняток з описаних правил, зокрема про доцільне використання Evaluate.
Новини CF-OpenSource v9
Оновлення продуктів та додатків
Qualified Address LiveAddress API 0.0.3
Особливо приємне оновлення, бо це мій перший досвід публікації вільного ПЗ на RIAForge. Сподіваюсь, комусь стане в нагоді ця невеличка бібліотека, що організовує взаємодію з сервісом Qualified Address для покращення та виправлення адрес.
Компонента для обробки асинхронних IPN-запитів, що надсилає Paypal в процесі обробки транзакцій. Більш детально на сайті розробника.
CF Builder DocShare Support 1.0
Втілення популярного додатку Eclipse для CFB.
Застосунок для пошуку та заміни тексту в базі даних, з можливістю відміни змін.
Stiletto - Silent server-side debugging 1.0.1
Застосунок, призначений для збереження даних про активність користувача, що призвела до помилок в роботі сайту, зокрема налагоджувальної інформації з прив'язкою за доменом та IP адресою користувача.
ColdFusion Social Network Alpha_0.1
Рання альфа втілення сайту для соціальної мережі.
Компонента для створення малюнків з типографією.
Regular Expression Find And Replace 0.1
Додаток CFB для пошуку з використанням регулярних виразів. Поки не активний.
Готується до випуску нова версія фреймворку, за посиленням опис нових можливостей.
Оновлення популярної бібліотеки для модульного тестування.
Луїс Маджано повідомив про запуск ресурсу для обміну застосунками та додатками, побудованими на ColdBox.
FlexPMDPDF - A ColdFusion PDF report generator for Flex PMD!
Як зрозуміло з назви, це генератор PDF звітів для Flex.
Різні новини та повідомлення
Mach-II Runs on Google App Engine with Open BlueDragon
Мет Вудвард повідомив про те, що нова версія фреймворку тепер може бути розгорнута на GAE.
Ошибка Flash Remoting при использовнии Coldfusion mappings
Допустим есть CFC который обслуживает Flex-приложение. Для этого используется Flex gateway, который есть в любой инсталляции Coldfusion 8 по умолчанию. Однако можно наступить на грабельки, если CFC наследует или использует другой CFC:
<cfcomponent
displayname = "Component to serve data to Flex Application"
extends ="cfcRoot.services.CommonService">
Ничего особенного, но в нашем случае, cfcRoot - это mapping, заданный в Coldfusion Administrator. При вызове метода этого CFC, Flex скорее всего выдаст ошибку
message = Unable to invoke CFC - Could not find the ColdFusion Component or Interface cfcRoot.services.CommonService.
details = Ensure that the name is correct and that the component or interface exists.
Ошибка значит ровно то, что написано - Coldfusion не может найти компонент, указанный в клаузе "extends".
"Виноваты" в этом настройки Flex gateway. По-умолчанию, Coldfusion не будет проверять маппинги при обращении к CFC через Flash remoting. За это отвечает клауза <destination id="ColdFusion"> в файле C:\ColdFusion8\wwwroot\WEB-INF\flex\remoting-config.xml
<!-- Use the ColdFusion mappings to find CFCs, by default only CFC files under your webroot can be found. -->
<use-mappings>false</use-mappings>
Достаточно изменить значение на true и перезапустить Coldfusion.
Вийшла книга про ColdBox
Доволі незвичну для CF-спільноти новину повідомили сьогодні розробники ColdBox.
Вийшла перша книга, присвячена цьому фреймворкові: The Definitive Guide To The ColdBox Platform
Поки що доступна тільки з крамниці за попереднім посиланням, але скоро обіцяють наявність в Amazon.
Вітаємо автора книги, розробників ColdBox та спільноту в цілому з цією чудовою подією!
