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

 

Покращуючи CFScript

Шон Корфілд розповів про те, як відбувається еволюція CFScript. Він навів приклад того, як було втілено функції в різних серверах застосунків та роль CFML Advisory Commitee. Ми вже колись згадували про цю тему.

Що цікаво, я вже довгий час сповідую синтаксис, аналогічний до наведеного прикладу ColdBox: класичне визначення cffunction+cfargument, а тіло на cfscript.

Треба відмітити, що до широкого використання нового синтаксису ще далеченько, аж поки CF9 та Railo не займуть достатньо велику частину ринку. До того часу доведеться писати сумісний з CF8 код, щоб забезпечити собі спокійний тил.

Автор: Сергій Галашин | Опубліковано: 30.12.2009 о 09:54 | Категорії: CFML - CFScript - ColdFusion 8 - ColdFusion 9 - Railo - Subjective -

 

Установка 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 !

Автор: Родион Быков | Опубліковано: 29.12.2009 о 17:59 | Категорії: Apache - Windows - Railo -

 

Чат з Марком Менделом в Java DZone

Не так давно до DZone завітав Бен Форта, тепер це зробила й людина, про котру ми доволі часто згадуємо. Це Марк Мендел, розробник JavaLoader та Transfer ORM.

Як заведено, Марк спочатку розповідає деякі загальні речі про себе, зв'язок Java та ColdFusion та ORM, потім бесіда переходить до обговорення принад інтеграції, використання ORM з ACF9 чи Transfer, та короткого пояснення можливостей JavaLoader.

Про все це докладніше в Tech Chat: Mark Mandel on ColdFusion and Java Integration

Автор: Сергій Галашин | Опубліковано: 25.12.2009 о 07:33 | Категорії: ColdFusion 9 - Interview - Java - ORM - Transfer -

 

CFML 101 - Помилки новачків (друга частина) та веселощі зі списками

Ерік Кобб продовжує (див. про першу частину) серію публікацій про основи CFML.

В другій публікації про помилки новачків він розповідає про особливості використання Application.cfm (рекомендується уважно переглянути коментарі, бо в цій частині є певні помилки), деякі можливості вкладання викликів функцій та необхідність використання cfparam.

В публікації Fun with Lists розповідається про переваги використання списків, котрі є вельми зручним та ефективним з точки зору швидкодії інструментмо.

Автор: Сергій Галашин | Опубліковано: 25.12.2009 о 06:32 | Категорії: Blogs - CFML -

 

Дискусія: чому CFML, а не Java?

Нещодавно Шон Корфілд (Sean Corfield) опублікував невеличку замітку, в якій критично висловився щодо компанії, котра витратила три роки (!) на переписування сайту з CFML на Java.

Обговорення тої самої новини на TechCrunch вилилося в значну дискусію за участі великої кількості авторитетних членів спільноти (навіть Бен Форта завітав!), частина якої перекинулася й на коментарі до посту Шона.

Зокрема, в них відмітився оборонець ідеї переписування (можливо, учасник) Девід Теннерсін (David Tannersyn), котрий викликав нову хвилю обговорення, що призвело до написання Шоном нової ґрунтовної публікації Why CFML? Why not Java?, котра має на меті розставити крапки над "і" в цій дискусії.

Рекомендую до ознайомлення, все доволі цікаво.

Автор: Сергій Галашин | Опубліковано: 13.12.2009 о 20:15 | Категорії: Blogs - CFML - Community - Discussions - Java - Jobs - Subjective -

 

10 речей, котрі СПРАВДІ потребує Adobe ColdFusion

Один зі старожилів, гуру спільноти, Джейсон Делмор склав список речей, що мають бути додані чи покращені в Adobe CF 10. Зважаючи на його досвід, дуже варто ознайомитися. Деякі моменти доволі очевидні, а деякі зовсім ні, але не менш важливі.

Серед списку є пропозиції позбутися застарілого серверу застосунків JRun, покращити будівельник звітів, CFDocument, моніторинг серверу, флеш форми, виправити розгортання застосунків, додати підтримку різних протоколів IM, оновити двигун веб-служб, додати сучасний workflow менеджер та, нарешті, зробити безкоштовну версію для простих задач.

Докладний список з поясненнями в публікації 10 Things ColdFusion 10 Really NEEDS

 

Автор: Сергій Галашин | Опубліковано: 13.12.2009 о 07:51 | Категорії: Adobe - Blogs - Community - Discussions -

 

CFML 101 - Помилки новачків, частина 1

Ерік Кобб розпочав вельми корисну серію публікацій про типові помилки новачків в CFML, популярні питання та інші корисні речі.

Досвідчені розробники навряд чи знайдуть щось нове для себе, але для початківців дуже рекомендується до ознайомлення:

CFML 101 - Rookie Mistakes Part 1

В першій частині розповідається по символи фунтів (pounds, #), грамотне використання cfoutput, доцільність вказування області видимості змінних та небезпеки використання Evaluate.

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

На додаток, варто відмітити й знайдений читачами виняток з описаних правил, зокрема про доцільне використання Evaluate.

Автор: Сергій Галашин | Опубліковано: 12.12.2009 о 20:23 | Категорії: Blogs - CFML -

 

Новини CF-OpenSource v9

Оновлення продуктів та додатків

 

Qualified Address LiveAddress API 0.0.3

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

ppIPN

Компонента для обробки асинхронних IPN-запитів, що надсилає Paypal в процесі обробки транзакцій. Більш детально на сайті розробника.

CF Builder DocShare Support 1.0

Втілення популярного додатку Eclipse для CFB.

dbfrp 1.0

Застосунок для пошуку та заміни тексту в базі даних, з можливістю відміни змін.

Stiletto - Silent server-side debugging 1.0.1

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

ColdFusion Social Network Alpha_0.1

Рання альфа втілення сайту для соціальної мережі.

WordArt for ColdFusion 0.6

Компонента для створення малюнків з типографією.

Regular Expression Find And Replace 0.1

Додаток CFB для пошуку з використанням регулярних виразів. Поки не активний.

Mach-II 1.8 Release Candidate

Готується до випуску нова версія фреймворку, за посиленням опис нових можливостей.

MXUnit 1.0.8

Оновлення популярної бібліотеки для модульного тестування.

Запуск ForgeBox

Луїс Маджано повідомив про запуск ресурсу для обміну застосунками та додатками, побудованими на ColdBox.

FlexPMDPDF - A ColdFusion PDF report generator for Flex PMD!

Як зрозуміло з назви, це генератор PDF звітів для Flex.

 

 

Різні новини та повідомлення

 

Mach-II Runs on Google App Engine with Open BlueDragon

Мет Вудвард повідомив про те, що нова версія фреймворку тепер може бути розгорнута на GAE.

 

Автор: Сергій Галашин | Опубліковано: 12.12.2009 о 18:53 | Категорії: Blogs - Coldbox - ColdFusion Builder - Flex - MachII - OpenSource - RIAForge -

 

Ошибка 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.

Автор: Родион Быков | Опубліковано: 10.12.2009 о 11:24 | Категорії: Flex - Flash - Gotchas -

 

Вийшла книга про ColdBox

Доволі незвичну для CF-спільноти новину повідомили сьогодні розробники ColdBox.

Вийшла перша книга, присвячена цьому фреймворкові: The Definitive Guide To The ColdBox Platform

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

Вітаємо автора книги, розробників ColdBox та спільноту в цілому з цією чудовою подією!

Автор: Сергій Галашин | Опубліковано: 03.12.2009 о 22:01 | Категорії: Books - Coldbox -

 

Серія постів Корфілда про встановлення Railo в Tomcat

В блозі Railo Шон Корфілд нагадав про те, що він ще кілька місяців тому написав серію матеріалів про встановлення Railo в Tomcat.

Добра нагода і для нас зберети ці посилання на майбутнє:

  • Part I - Railo Express (з Jetty)
  • Part II - Railo Express (з Jetty) - Windows
  • Part III - Railo в Tomcat - базове встановлення
  • Part IV - Railo в Tomcat з Apache
  • Part IV - Appendix - Додаємо mod_rewrite до коктейлю
  • Tomcat Tips - Дозвіл на перегляд директорій
  • Multi-Web Configuration - Railo в Tomcat з автоматичним розгортанням Railo на нових веб-коренях
  • Part V - Увімкнення SES URLs в Tomcat

 

Автор: Сергій Галашин | Опубліковано: 02.12.2009 о 06:04 | Категорії: Apache - Railo - Links - Tomcat - HOWTO -

 

Новий розширюваний кеш у Transfer ORM 2.1

Наближається час випуску нової версії Transfer, і потроху з'являються відомості про головні покращення в ній.

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

Головною особливістю її буде розширюваність: можливість інтеграції з іншими існуючими рішеннями. Це доволі логічний крок, після аналогічних нововведень в основних серверах застосунків: ACF та Railo.

За умовчанням будуть підтримуватися EHCache та ColdBox Cache. Надалі планується підтримка й інших систем кешування.

Марк зауважив, що напевне будуть потрібні деякі зміни в конфігурації сайтів, що вже використовують кешування з Transfer. Зокрема, він навів декілька прикладів конфігурування.

<objectCache>
    <defaultcache provider="transfer.com.cache.provider.EHCacheProvider">
       <setting name="config" value="/test/resources/ehcache.xml"/>
    </defaultcache>
    <cache class="none.Basic" provider="transfer.com.cache.provider.NoCacheProvider"/>
    <cache class="none.Child" provider="transfer.com.cache.provider.NoCacheProvider"/>
</objectCache>

З прикладу очевидно, що використовується EHCache провайдер з окремим файлом конфігурації та виключаються з кешу два визначення (definitions): none.Basic та none.Child.

В свою чергу наводиться приклад ehCache.xml:

<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd">

    <defaultCache
        maxElementsInMemory="1000"
        eternal="false"
        timeToIdleSeconds="120"
        timeToLiveSeconds="600"
        overflowToDisk="false"
        />
   
    <cache name="AutoGenerate"
            eternal="false"
            maxElementsInMemory="10" overflowToDisk="false">
    </cache>
   
</ehcache>

Тут визначається налаштування кешу за умовчанням, де максимальна кількість елементів в пам'яті 1000 та час знаходження елементів в пам'яті 120 секунд для бездіяльних елементів і 600 секунд для активних.

Також визначаються окремі налаштування для класу AutoGenerate, що обмежує кількість елементів до 10.

По інші можливості налаштування EHCache можна дізнатися в документації.

 

Для тих, хто зацікавлений в написанні власних провайдерів, потрібно буде працювати з наслідуванням AbstractBaseProvider.cfc та відповідною реалізацією віртуальних та абстрактних методів звідти.

 

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

Марк рекомендує виконувати цей метод в момент спрацьовування onApplicationEnd:

<cffunction name="onApplicationEnd" returnType="void">
   <cfargument name="applicationScope" required=true/>
<cfscript>
    arguments.applicationScope.transferFactory.shutdown();
</cfscript>
</cffunction>

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

 

Насамкінець, для контролю за кешуванням рекомендується використовувати компоненту Cache Monitor та її методи getDefaultCache() та getCache(className).

 

Вже зараз можна витягти код нової гілки з описаними оновленнями з репозиторію проекту:

http://svn.riaforge.org/transfer/transfer/branches/pluggable_cache/

 

Як завжди, обговорити нововведення можна в групі transfer-dev.

 

Оригінальна публікація:  Sneak Peak: Transfer's new Plug-able Cache

 

Автор: Сергій Галашин | Опубліковано: 01.12.2009 о 21:12 | Категорії: Performance - ORM - Transfer -