суббота, 13 ноября 2010 г.

Google Developer Day 2010

кратко о том, что там было.

Я посетила андроид-ветку конференции, 6 докладов.
1. Reto Meier. Как пишутся эпические приложения под Android.
Началось с проблем то ли с презентационным ноутом, то ли с проектором. Так как на починку ушло довольно много времени, докладчик пробежался по своей презентации очень быстро, некоторые слайды пролистывая с односложным комментарием - не удавалось их даже прочитать. Обещал через недельку выложить эту презентацию в общий доступ. Кроме этой, будет доступно ещё несколько презентаций с конференции. Говорил об общих вещах, своеобразных best practices, которые потом неоднократно упоминались в следующих докладах.
Например,
- always support trackball navigation
- use relative layouts
- mark unnesessary device features as 'required="false"' (и потом проверять их наличие в коде при помощи PackageManager.hasSystemFeature(...)).

2.Roman Nurik. Лучшее, что Android может предложить пользователю.
Начал выступление радостным "Привет!", сказал, что он русский, просто живёт в Америке и... плохо говорит по-русски.:) Рассказывал в основном про UI, основная идея выступления - "наймите дизайнера":) Дал несколько упрощающих жизнь ссылок (http://unitid.nl/2009/11/fireworks-template-for-android/ , http://code.google.com/p/android-ui-utils/, http://android-ui-utils.googlecode.com/hg/asset-studio/dist/icons-launcher.html, http://www.slideshare.net/AndroidDev/android-ui-design-tips)

3. Justin Mattson. Что нового в мире разработки под Android.
Обновление Speech API (распознавание речи),
AppData Backup API,
установка программ на карточку http://developer.android.com/guide/appendix/install-location.html
и т.д.
Об этих вещах можно почитать в обзоре новшеств API level 8: http://developer.android.com/sdk/android-2.2.html

4. Dan Galpin. Close to the Metal: пишем на Android NDK.
Потрясающий чел :) "Кто считает себя хардкорным программером? Почему так мало? Все вы - хардкорные программеры!" Рассказал о возможности использования native-кода (C/C++) на android. Пожалуй, люди, работающие с этим, действительно все до единого hard-core) Осталось ощущение, что это сильно неудобная и запутанная, но потрясающе увлекательная область.

5. Justin Mattson. Ваше приложение пойдёт на всех устройствах Android.
Начало выступления пропустила, так как заслушалась предыдущего оратора, отвечавшего в холле на затянувшиеся вопросы.
Доклад - фактически объединение первого и второго выступлений. Советовал использовать новые фичи, но не забывать проверять, поддерживаются ли они на девайсе. Полезная ссылка: http://android-developers.blogspot.com/2009/04/backward-compatibility-for-android.html

6. Reto Meier, Mike Aizatsky. Мобильная разработка: HTML5 или Native?
Изначально вместо этого доклада я собилалась посетить другой - о монетизации мобильных приложений. Но, как оказалось, в том зале (ветка "Монетизация") был отвратительный звук. На андроид-ветке использовались нормальные микрофоны (и то докладчиков чётко слышно было только сидя напротив колонок), а здесь - гарнитурка (такую Reto Meier на открытии конференции выкинул со словами "Не используйте дешёвые гарнитуры", когда зал не смог разобрать ни слова из его речи). Тем, кто слушал синхронный перевод, наверное, было неплохо, но мы же люди гордые :)
Я вернулась в андроид-зал. Доклад вышел странный, будто бы высосанный из пальца, ответ на поставленный вопрос - both.

***
Пара слов об остальном.
Большой зал с диванчиками и мешками-сидениями для "поваляться". Столики, холодильники с напитками и перекусывательная фигня. Стойки PlayStation - источник радости от разглядывания по-дурацки извивающихся людей с весёленьким розовым пультом в руке (почувствовать себя гладиатором на арене - действительно кайфово). Два стола с игрой mindball. Нам сказали, что они стоят по 12 тыс.евро каждый, поэтому ставить на них стаканы нельзя:) Двое садятся, цепляют на головы повязки с проводами и стараются расслабиться. На столе между ними - монитор с графиками и шарик на дорожке. Он катится к тому, кто менее расслаблен (рассказывали, что прибор замеряет альфа и, кажется, гамма-волны мозга), выигрывает более спокойный. Народ сразу предложил альтернативные правила - считать победителем притянувшего шарик к себе :) Мы долго экспериментировали с игрой, но научиться выигрывать всегда так и не удалось. Диаграммы активностей, определённо, реагируют на смех подопытного и, кажется, на random() :)

А ещё были GTUG - Google Technology User Groups - там были пятиминутные выступления о проектах, основанных на технологиях Google. Ну, и раздача слонов, то есть маек с радостным "Я был на GDD2010"

понедельник, 26 июля 2010 г.

jBossESB + jax-ws + ejb3 + eclipse. //1. простейший web-service

по идее, нужно бы так:

1. dynamic web app
2. создать entity bean (@Entity)
3. new->web service->bottom-up

но eclipse виснет при деплоинге сервиса на сервер (краткий поиск по гуглу показал, что неверно настроен сервер, разобраться позже)


временно сделано руками таким образом:

делать так:
1. new->dynamic web prj
2. создать entity bean (@Entity)
3. нарисовать сервис:

@WebService()
public class SendDocumentService {

@WebMethod()
public Document processOrder(Document docBean) {

// Выполнить обработку...
System.out.println("blah blah " + docBean.getId());
return docBean;
}

}
4. деплоить на jBoss (wsdl-ка сгенерится)
5. запросить http://localhost:8080/MyProject/MyService?wsdl

среда, 21 июля 2010 г.

локализация в java

пример для самого простого:
1. создать файлы MyResource.properties, MyResource_ru.properties

2.MyResource.properties:

HELLO_TEXT=Hello, world!
GOODBYE_TEXT=Goodbye everyone!
CANCEL_BUTTON_TEXT=Cancel

3.MyResource_ru.properties:

HELLO_TEXT=здравствуй, мир!
GOODBYE_TEXT=до свидания!
CANCEL_BUTTON_TEXT=выход

4. Доступ:
ResourceBundle res = ResourceBundle.getBundle("MyResource");
String strHello = res.getString("HELLO_TEXT");
String strGoodbye = res.getString("GOODBYE_TEXT");


Подробнее и полнее:
http://java.sun.com/developer/technicalArticles/Intl/ResourceBundles/

вторник, 8 июня 2010 г.

хранимки в ms sql

упрощённый общий вид.



DROP PROCEDURE get_info


CREATE PROC get_info
@arg_A nvarchar(max),
@arg_B nvarchar(max)
AS
select field_D, field_E
from Table_A inner join Table_B
on Table_B.id = Table_A.id_fkey
where Table_A.field_A = @arg_A
and Table_A.field_B = @arg_B





EXEC get_info @arg_A ='67890', @arg_B ='12345'

четверг, 27 мая 2010 г.

Добавление taglib в project

необходимые шаги для добавления taglib в проект (JSTL1.1 в качестве примера):

1. добавить taglib-джарник в WEB-INF\lib
2. (возможно, не требуется) разархивировать tld-файл из джарника и скопировать также в WEB-INF (или в поддиректорию, например, WEB-INF\tags)
3. в web.xml добавить:

<_jsp-config>
<_taglib>
<_taglib-uri>http://java.sun.com/jstl/core<_/taglib-uri>
<_taglib-location>/WEB-INF/tags/c.tld<_/taglib-location>
<_/taglib>
<_/jsp-config>

d) включить taglib на jsp-страницу:
<_%@ taglib uri="http://java.sun.com/jstl/core"; prefix="c" %>

<%-- блогспот хавает выражения в треугольных скобках) -->
--------
If web.xml is generated with XDoclet you have to put the web.xml part in a XDoclet merge file named "taglibs.xml".

понедельник, 24 мая 2010 г.

Jahia CE. templates

Jahia CE

заметки по templates.


настройки ПО для создания темплейтов: http://www.jahia.org/cms/lang/en/home/Jahiapedia/Jahia_Templates/Environment_and_tools



1. для поддержки кириллицы необходимо сами jsp-файлы создавать в кодировке UTF-8, иначе томкэт (?) их не распознаёт. (поменять можно в эклипсе - при этом рушится
русскоязычное в нём, или эе в простом виндовом блокноте)


2. при создании темплейта в
C:\javamisc\maven\apache-maven-2.2.1\bin\pgu_templates\src\main\webapp\WEB-INF\templates.xml
должно содержаться нечто подобное:

PGU custom templates
Web templates
pgu_templates
localhost
images/preview.gif
jahiatemplates.PGUCustomTemplates
definitions.cnd
searchresult.jsp