GWT + GAE - долгожданное продолжение.

Пять лет назад я написал пост - Google Web Toolkit - GWT, введение.
Продолжения так и не было, о чем ехидно стали замечать комментаторы.

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

Но, сейчас ситуация в корне изменилась - полно великолепной документации на сайте проекта - http://www.gwtproject.org/doc/latest/DevGuide.html

Согласен, не всем удобно на английском. Но! Уже, даже, есть и книги на русском, например:

Разработка RIA-приложение с Google Web Toolkit 2, Машнин Тимур Сергеевич, БХВ-Петербург.

Что ещё надо? Просто, глупо перепечатывать тут то, что сейчас и так стало доступно?


Большинство проблем со стартом в ГВТ - не достаточное знание JavaEE и WEB-технологий. 
Нужен базис по сервлет-контейнерам и сервлетам и тогда будет достаточно одной это картинки для понимания ГВТ:
Главное - понять, что останется на Java и будет выполняться на сервере, а что будет скомпилировано в Java Script и соответственно будет выполняться в браузере.
  

Сжог Ардуину

Пришёл бредборд c модулем питания:

YwRobot BreadBoard Power Sapply MB-v2 (MB102)

Всё работало отлично пока использовал 7,5В блок питания. Напряжение, как-то и не задумался проверить на выходах модуля (+5В и 3,3В). Всё отлично работало...

На следующий день запитал модуль уже от 9В "Кроны" и из Ардуиновской 328-й Атмеги повалил дым :(

Оказалось, что 5-ти вольтовый стабилизатор на модуле питания был не годным и пропускал всё напряжение на входе дальше. А атмега отлично держит 7В по питанию.

Вот схемка модуля с Easyelectronics.ru:


Пришлось его заменить:
за одно и по мощнее поставил.

Обязательно проверяйте компоненты перед использованием!



RFID-RC522 pinout. SPI, I2C, Serial connection


MFRC522 chip RFID module pinout. (full image link, PNG ~600KB)

For Arduino connection use:

 * Pin layout should be as follows:
 * Signal     Pin              Pin               Pin
 *            Arduino Uno      Arduino Mega      MFRC522 board
 * ------------------------------------------------------------
 * Reset      9                5                 RST
 * SPI SS     10               53                SS
 * SPI MOSI   11               51                MOSI
 * SPI MISO   12               50                MISO
 * SPI SCK    13               52                SCK

First, you need to download  MFRC522 - Library

Драйвера на чип CY7C63723

Где скачать драйвера на устройство с чипом CY7C63723C? Нигде!

Достался мне IR-USB приемник от DVB-карты, решил поиграться, но не тут то было.



Оказывается, что CY7C63723C - это универсальный контроллер для разработки USB-приложений, соответственно драйвера на него будут зависеть от того, какую прошивку в него залили разработчики девайса. Следовательно универсального драйвера нет.

Мой IR-приемник винда, например, определила, как HID клавиатуру. Поэтому, ищите оригинальные драйвера производителя вашего устройства.

А вообще на этом микроконтроллере выпускают кучу всякого USB-ширпотреба. От мышек до ИК-приемников. Кстати, довольно интересный чип за те копейки, что стоит. Но это уже совсем другая история



Фрейморки, ЗА и ПРОТИВ


ЗА
- "Фреймворки позволяют разрабатывать серьезные проекты концентрируясь на бизнес-логике не отвлекаться на рутину...", "Фреймворки все делают сами...", "Фрейморки должен знать каждый профессионал..."

ПРОТИВ
- "Фреймворки ужасно толстые, тормозят, тащут кучу зависимостей...", "Фреймворки сложны для изучения...", "Фреймворки для тупых школьников..."

Холивар бесконечный, ещё много будет сказано в защиту каждой из сторон.

МОЙ КОММЕНТ
- "Фрейморки не увеличивают производительность ПО, они увеличивают производительность разработчика."

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

Но, когда у вас уже все в продакшене, то скорее всего, обнаружиться куча узких мест в производительности. И вот уже тут без "напильника" и выдрачивания не обойтись, если у вас конечно не бесконечный бюджет на железо ;)


З.Ы.:
Спелчекер Хрома считает, что более корректно употреблять "орехотворки", чем "фреймворки":


JSObject problem in IE

При доступе к JS и DOM, с помощью LiveConnect (netsape), во всеми любимом IE получалось следующие:

netscape.javascript.JSException: Failure to evaluate [your_JS_code]
 at sun.plugin2.main.client.MessagePassingJSObject.newJSException(Unknown Source)
 at sun.plugin2.main.client.MessagePassingJSObject.waitForReply(Unknown Source)
 at sun.plugin2.main.client.MessagePassingJSObject.eval(Unknown Source)
 at su.mamaev.applets.Spy.TestApplet.doJS(TestApplet.java:30)
 at su.mamaev.applets.Spy.TestApplet.start(TestApplet.java:26)
 at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.start(Unknown Source)
 at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
 at java.lang.Thread.run(Unknown Source)

Исходный код апплета, порождающий ошибку:

import netscape.javascript.JSObject;

JSObject win = (JSObject) JSObject.getWindow(this);
win.eval([your_JS_code]);

Причем, во всех остальных браузерах все работает отлично.

Выход - не используете localhost при отладке апплетов в IE!

Я - фрилансер

Свершилось, я наконец таки решил попробовать свои силы во фрилансе. Выбор пал на биржу


(пока начну только там).


Так же напоминаю, что я являюсь соучредителем и разработчиком студии xGraphics



Теперь буду периодически писать о том как идут дела. Очень буду рад критике.