Zend и Twitter

Относительно недавно в Twitter API произошли изменения в части идентификации пользователя.

Теперь старый простой способ отправки твита

    $vTwitter = new Zend_Service_Twitter($vUserName, $vPassword);
    $vResponse = $vTwitter->status->update($vMessage);

больше не работает.

Чтобы отправлять твиты, надо переходить на новую версию Zend framework и использовать класс Zend_Oauth_Consumer.

Полезная статья на эту тему.

Пользовательский интерфейс SAP R3

Коллега показал интересную ссылку - история пользовательского интерфейса популярной ERP системы SAP R3.
По ссылке можно посмотреть как менялся пользовательский интерфейс от терминального до WEB.

В какой-то мере можно рассматривать этот набор скриншотов как историю развития интерфейсов.

А фанатов юзабилити и стандартизации наверняка заинтересует руководство по разработке, в котором описано как надо правильно оформлять визуальные формы в стиле SAP.

Oracle ADF

На днях я принял участие в Web-семинаре Oracle посвященном новой технологии Oracle ADF.
Собственное, технология не такая уж и новая, но в последнее время Oracle активизировал ее продвижении в массы и позиционирует как замену Forms'ам.
Новые разработки рекомендуется делать уже на ADF. Но функционал Forms - это только небольшая часть ADF.

Кратко поясню, что такое Application Development Framework, это набор технологий и визуальная среда разработки приложений (причем не обязательно для Oracle).
Приложения строятся по ставшей уже стандартом технологии MVC - модель-вид-контроллер. В эту технологию Oracle  добавил еще один слой - бизнес уровень, т.е. модули с бизнес-логикой приложения, взаимодействия с которыми осуществляется через стандартный интерфейс. Framework основан на Java EE, Java является основным языком программирования в этой среде, кроме Java применяется целая серия других технологий и стандартов Ajax, CSS, HTML, XML и т.д.
Четкое отделение данных от логики и визуального интерфейса позволяет создавать многоликие приложения уровня предприятия.
В состав среды входят специальные средства для создания визуальных Web-интерфейсов, клиентов для мобильных устройств и т.д.

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

Очевидна еще одна тенденция - в программировании для Oracle PL/SQL уступает свое место Java, причем сама компания Oracle этому активно способствует.

 

Getting Real

Недавно прочитал еще одну интересную книгу - "Getting Real" (http://gettingreal.37signals.com/GR_rus.php#ch16)

Книга о разработке программного обеспечения, однако принципы Getting Real отлично работают и в других сферах жизни.
Авторы не просто так какие-нибудь писаки, возомнившие себя знатоками программирования.
Книгу написала команда - 37Signals - те самые, которые сделали Ruby on Rails
Можно сказать, что они знают о чем пишут.

Конечно, в книге есть и довольно-таки спорные моменты, но в целом она очень полезна. Заставляет подругому взглянуть на программирование да и вообще на жизнь.

Вот цитата, специально не выбирал, просто скопировал первый попавшийся кусок.
"
Как часто вы сидите над одной строчкой кода в течение целого дня? Как часто ваша работа сделанная за один день не дала никакого прогресса? Это случается, когда вы сосредоточиваетесь на деталях, слишком рано. У взыскательного человека будет еще много времени на детали. Просто отложите это.
Не волнуйтесь о размере шрифта в заголовках. Вы не нужна совершенная тень. Вам не нужно перемещать кнопку на три пикселя вправо или влево. Просто поместите материал на страницу. А затем используйте. Убедитесь, что это работает. Позже вы можете все усовершенствовать.
Детали проявляются, пока вы используете то, что вы строите. Вы будете видеть, чему нужно уделить больше внимания. Вы будете знать, какие выбоины надо замостить, потому что вы будете продолжать биться об них. Именно тогда, на них следует обратить внимание, не раньше.

"

Вроде бы просто, да? И об этом все знают, но кто следуем этому на практике?
Книга наполнена подобными "очевидными, прописными" истинами.

Словом рекомендую, не пожалеете...

Магазин мыла ручной работы

На днях сделал новый сайт Ручное мыло. Магазин мыла ручной работы и мыльной основы, г. Магнитогорск.

Ставилась задача максимально быстро и дешево сделать интернет-магазин для продажи мыла ручной работы.

Поначалу хотел было использовать какой-нибудь готовый шаблон, или плагин к какой-нибудь CMS. Но потом посмотрел, что уже сделано и работает по всему рунету – магазины копируют друг друга как сиамские близнецы, которых кое-как все-таки расцепили.  Брать готовое и переделывать коренным образом долго, да и проблем много будет. Вот и решил использовать уже готовый каркас SmartyIT, сделанный на Zend Framework. Кстати, этот каркас оказался весьма удачным, на нем я буквально за день сделал другой свой сайт Dayjam. Вот и в этот раз решил пойти по проторенной дорожке и использовать  то, что есть. Такой подход позволил запустить магазин в два этапа: сначала просто каталог продукции, а вчера – регистрация пользователей и оформление заказа через сайт.

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

На текущем же этапе считаю это лишним.

P.S. Чуть не забыл, всем читателям журнала предлагаю скидку на мыло: 30%.
При офрмлении заказа скажите, что вы от меня :)

 

Understanding Layouts in SWT

Предлагаю вашему вниманию мой перевод статьи "Understanding Layouts in SWT". В статье очень подробно рассказывается про механизм Layout'ов в Java библиотеке SWT. На примерах поясняются различные аспекты поведения и особенности использования стандартных Layout'ов, кроме того даются советы как написать свои классы.

Статья очень большая с кучей примеров и рисунков, здесь публикую только отрывок.

Предисловие

Разрабатывая приложенение на SWT, Вы можете столкнуться с необходимостью использовать layout'ы, чтобы придать приложению особый внешний вид. Layout'ы управляют расположением и размером дочерних компонентов контейнера Composite. Классы layout'ов являются подклассами абстрактного класса Layout. В этой статье рассказывается как работать со стандартными layout'ами, и как как написать свой собственный класс.

Обзор

Разрабатывая приложенение на Standard Widget Toolkit (SWT), Вы можете столкнуться с необходимостью использовать layout'ы, чтобы придать приложению особый внешний вид. Layout'ы управляют расположением и размером дочерних компонентов контейнера Composite. Классы layout'ов являются подклассами абстрактного класса Layout. SWT предлагает несколько стандартных классов layout'ов, если их не достаточно, пользователь может разработать свой.

В SWT позиция и размер компонентов не рассчитывается автоматически. Приложения при инициализации могут задать размеры и расположение дочерних элементов Composite, кроме того приложение может изменять эти значения, перехватывая событие изменения размера.
Другой способ управлять расположением и размером компонентов заключается в использовании специализированных классов. Если дочерний компонент не получил размер, то его размеры будут равны нулю и он не будет отображаться.

Следующая картинка иллюстрирует несколько наиболее важных терминов, которые используются при обсуждении layout'ов. Контейнер Composite (в данном случае это TabFolder) имеет location (расположение), clientArea (клиентскую область) и trim (кромка). Размер контейнера Composite складывается из размеров клиентской области и размера кромки. Этот Composite содержит два дочерних компонента, расположенных рядом. Класс Layout управляет размером и позицией этих дочерних компонентов. Layout позволяет задать spacing (промежуток) между компонентами, и margin (зазор) между компонентами и границей Layout. Размер Layout совпадает с размером клиентской обрасти Composite'а.

Читать полностью