1 hour with Sun Java Studio Creator 2
On the process of learning new technologies, I started with JSF. To test it i try to develop an easy application with some modern IDE that implement this technology. The choosed was Sun Java Studio Creator 2 . Starting a new application with JSC 2 is easy, just install the IDE, create a new JSF project, and start dragging components into the web page, you can manage the events just clicked on a button and typing the java code associated to the button.
The problems comes when you need to import an external generated code, for example we use appfuse to generate the skel of our apps. At the moment we import it on eclipse without problems. but JSC2 DON'T HAVE an import button ¿??¿¿? ... Wow impressive , i can't believe it. Well ... Them i try to import the code from the CVS repository, but oh oh, it doesn't work, the interface to connect to a repository is a lot of strange, it asks unnecesary questions and, well, we have spent 45 minutes. Trying to configure CVS was a time comsuption task.
Finally
1 hour and we can't start a project using JSC 2, two of the main features of an IDE was import and CVS access , and JSC 2 lacks of them. I hope JSC 2 include this features in the future because starting a new project is easy and fun, writing web applications fast was a grat thing, and doing it visually was great.
Queres Tecnologias
Bueno, pues aqui empieza mi andadura con una nueva empresa del Sector de las tecnologías, completamente entusiasmado y con más ganas que nunca, empiezo a trabajar en la empresa Queres Tecnologias , empresa de desarrollo de Software joven, donde lo importante es hacer bien el trabajo, donde se trabaja con metodologías ágiles, obteniendo un desarrollo de calidad .
Como cualquier cambio, será dificil y paulatino, pero estoy seguro que poco a poco se van a ir asentando en este sector tan complicado y competitivo. Ademas estoy seguro que hay hueco para empresas que se centren en desarrollar Software de Calidad.
AJAX y APPFUSE 1.8.2 .. DWR en funcionamiento
Pasos basicos para poner a andar DWR en una aplicacion basada en APPFUSE (1.8.2)
1. Añadir DWR jar en /lib/dwr-1.0 2. Añadir a /lib/lib.properties:
# # DWR - https://dwr.dev.java.net/ (Direct Web Remoting) # dwr.version=1.0 dwr.dir={dwr.version} dwr.jar=${dwr.dir}/dwr.jar
3. Añadir al /properties.xml:
...4. Añadir al /build.xml:
...>
<war destfile="{webapp.war}"
webxml="${webapp.target}/WEB-INF/web.xml" compress="true">
...
5. Añadir servlet para DWR en /metadata/web/servlets.xml:
dwr-invoker DWR Servlet uk.ltd.getahead.dwr.DWRServlet debug true
6. Añadir DWR servlet mapping en /metadata/web/servlet-mappings.xml:
dwr-invoker /dwr/\*
7(Opcional). Excluir DWR del sitemesh en /web/WEB-INF/classes/decorators.xml:
/dwr/*
8. Añadir la configuracion de DWR, /WEB-INF/dwr.xml:
Si estas usando APPFUSE con la configuracion por defecto, tendras un error al intentar acceder a esta pagina, para arerglarlo tienes asegurarte que spring deja acceder al metodo getUser, en el archivo applicationContext-security.xml: com.queres.sgei.service.UserManager.getUsers=ADM com.queres.sgei.service.UserManager.removeUser=ADM o bien las pruebas las puedes realizar con otros metodos que no sean getUser/getUsers.
Traducido y adaptado de : http://lifeasastruct.blogspot.com/
Accediendo a un Servicio Web desde Java con Axis
Problema Recientemente tuvimos la necesidad de acceder a un servicio web que nos daba la autenticacion a una cantidad de servicios de un cliente. Este tenia todo centralizado en LDAP y no se permitia el acceso directo al servidor LDAP, solo a traves de un SW que te respondia OK o KO en funcion de si la combinacion login/password era correcta o no. Lo unico que nos dieron es un wsdl que describe el Servicio Web.
Solución
Para empezar con todo esto empezamos a buscar informacion sobre acceder a servicios web via java, y la verdad es que encontramos bastante poco, bastante menos de lo que a mi me gustaría (lo que encontré está en la zona de referencias) Para poder reproducir todo esto, vamos a hacer un ejemplo.
Implementación Como ejemplo nos vale el Servicio Web de Google al cual accederemos para que nos corriga las palabras que le introducimos. El WSDL lo tenemos aqui : Google WSDL PASO 1: Lo que debemos hacer primero es obtener todas las librerias necesarias para el acceso a un servicio web remoto, estas son por lo menos:
- axis-ant.jar
- commons-discovery.jar
- commons-logging.jar
- jaxrpc.jar
- log4j-1.2.4.jar
- saaj.jar
- wsdl4j.jar
- axis.jar
Os las podeis bajar todas juntas de aqui.PASO 2: Ahora que tenemos todas las librerias, vamos a generar el proxy de la conexion al servicio web, para ello, usaremos el fantastico WSDL2Java, que viene con axis, y requiere como parametro la ruta al servicio WEB o su URL:
java -classpath "axis-ant.jar:commons-discovery-0.2.jar:commons-logging-1.0.4.jar:jaxrpc. jar:log4j-1.2.8.jar:saaj.jar:wsdl4j-1.5.1.jar:axis.jar" org.apache.axis.wsdl.WSDL2Java http://api.google.com/GoogleSearch.wsdl
Recordad, que si usais Windows, debeis de Cambiar de Sistema Operativo o Sustituir los ":" por ";" punto y coma. Este comando nos genera una estructura de archivos a partir de donde estemos con 6 o 7 archivos que usaremos para realizar la conexion.
PASO 3: Ahora que ya tenemos el proxy de conexion vamos a escribir un simple cliente java que lo use: package GoogleSearch;
public class GoogleSearchClient {
public static void main(String[] args) throws Exception {
// Crea el servicio
GoogleSearchService service = new GoogleSearchServiceLocator();
// Ahora usamos el servicio para crear un proxy hacia el Service Definition Interface (SDI)
GoogleSearchPort google = service.getGoogleSearchPort();
// Hacer la llamada
String key = "KEY OBTENIDA DE GOOGLE API en www.google.com/api";
String query = "wickle";
int start = 0;
int maxResults = 10;
boolean filter = true;
String restrict = "";
boolean safeSearch = true;
String languageRestrict = "lang_en";
String inputEncoding = "UTF-8";
String outputEncoding = "UTF-8";
GoogleSearchResult gsr =
google.doGoogleSearch(key,query,start,maxResults,filter,restrict,safeSearch,i languageRestrict,inputEncoding,outputEncoding);
ResultElement[] re = gsr.getResultElements();
for (int i = 0; i < re.length; i++) {
System.out.println(re[i].getURL());
}
}
}
PASO 4: Compilamos Todo : javac -classpath "axis-ant.jar:commons-discovery-0.2.jar:commons-logging-1.0.4.jar: jaxrpc.jar:log4j-1.2.8.jar:saaj.jar:wsdl4j-1.5.1.jar:axis.jar" GoogleSearch/*
PASO 5: Ejecutamos ahora el cliente creado : java -classpath "axis-ant.jar:commons-discovery-0.2.jar:commons-logging-1.0.4.jar:
jaxrpc.jar:log4j-1.2.8.jar:saaj.jar:wsdl4j-1.5.1.jar:axis.jar:." GoogleSearch/GoogleSearchClient
- Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
http://www.wickle.com/wiki/index.php/Main_Page
http://www.wickle.com/wikis/index.php/Graphviz_extension
....
et voila ;) ... Ya tenemos creado un cliente de un Servicio Web.
REFERENCIAS http://www.bawsug.org/archives/000008.html http://www.myspotter.com/webservices1.shtml
Dia 1 - Xoanin
Tras un largo tiempo sin postear nada, aunque igual es que no tenia nada interesante que decir ;) ... Por fin tengo una noticia interesante que contar, aunque sea a nivel personal.
Somos tios !!!! Ya tenemos nuevo miembro en la familia, pesa 3,5 Kg. y mide 51 cm todo un gigante del basket segun los rumores ... posteo una foto en la que se aprecia su parecido a mi hermano.
Para que conste aquí, yo propuse que le pusieran "Tao", un gran nombre ... ;)
Por cierto la porra se queda sin acertantes , nadie puso el dia 1 como dia de nacimiento de la criatura.
Arroz con leche, EL postre ;)
Este es mi postre preferido, y de todas las que he probado esta receta es la mas rica ... aunque tambien es la que mas hay que vigilar mientras se hace.
Ingredientes (6 personas):
-
- 1 ltr Leche
-
- 150 gr. de arroz
-
- 100 gr. de azucar
-
- 2 ramas de canela
-
- 1 corteza de medio limón
Preparación :
Poner la leche a hervir (a fuego muy lento 2 o 3 en vitro) con las 2 ramas de canela y con la corteza de medio limon . Cuendo empieze a hervir, echamos el arroz y bajamos el fuego (al 2 o 3 en la vitro está bien) Se deja unos 20 minutos a fuego muy lento yremoviendo mucho ... Se añade el azucar y se le dá un pequeño herbor (1 o 2 minutos nada mas). Quitamos del fuego el arroz , le quitamos el limon y la canela y lo servimos frio .
Recetas: Pudin de panceta y ajos tiernos
Esta receta es de Arguiñano, la reproduzco aquí, por su facilidad de preparación y por su exquisited, pues está riquisima ;) ... Solo necesitas los siguientes ingredientes :
- 30 ajos verdes
- 250 gr. de panceta ahomada
- 5 huevos
- 1/2 litro de nata liquida
- Pan rallado
- Mantequilla
Preparación : Por un lado pasamos por la sarten la panceta y los ajos , un poco, solamente par adarles color. Por otro lado hacemos la mezcla de 5 huevos y la nata liquida. Esta mezcla es la que usaremos despues. En un molde de Pyrex o cristal lo untamos con mantequilla y pan rallado el fondo. Recubrimos con papel de horno, luego cubrimos con panceta y otra capa de ajetes. Vertemos poco a poco casi toda la mezcla de huevo y nata , despues ponemos otras 2 capas de panceta y ajetes y vaciamos la mezcla de nata y huevos.
Con todo esto ya preparado , precalentamos el horno a 170º . Ponemos el recipiente dentro de otro con agua ( baño maria) y lo metemos todo en el horno a 170 º durante 30 minutos ... Lo quitamos y lo servimos frio o caliente (esta bueno de las 2 maneras)
Installing fckeditor on b2evolution
fckeditor is a cool WYSIW
YG interface to write formatted HTML . It runs embebbed on a web page and allows users with little technic knowledge to write text like on he was in Openoffice. b2evolution is a blog software maden in php , it allows a user to have a diary online with a little install and a lot of skins to choose with. This are a little notes on how to integrate fckeditor with b2evolution . The page is written on the wiki to allow easy update : fck editor wiki
DualRpcServer, framework para llamadas RPC bidireccionales
Me acabo de encontrar un framework que puede dar mucho juego, DualRpcServer es un framework para realizar llamadas RPC entre un cliente y un servidor. Estas llamadas pueden ser bidireccionales, un cliente puede acceder a metodos en el servidor y viceversa el servidor puede acceder a metodos en el cliente. Puesto que se establece una conexion TCP/IP la sesion persiste entre las distintas llamadas RPC. La utilidad de la libreria es basicamente para poder crear clientes extremadamente ligeros (solo interface grafica) que realicen llamadas remotas para todo tipo de operaciones. El mantenimiento de los clientes es minimo (se puede usar Java Webstart) Mas info en la web del DualRpcServer.
D-LINK DSM-320 , reproductor multimedia a examen
Bueno, pues al final me he decidido por el D-LINK DSM-320 , entre otras cosas por su reducido precio y compatibilidad. Mis primeras impresiones son que el DSM-320 es un equipo esteticamente bonito, ademas se "engancha" a la red Wireless de la casa sin problemas. Encuentra rapidamente el MediaServer instalado previamente en un Windows de la casa , y te puedes poner a ver peliculas u oir MP3's en muy poco tiempo, y de manera fluida.
Otro punto a favor es que la firmware del producto es un linux embebido con lo que ya hay gente destripandolo para hacer maquinas mas a medida.
Pero no todo iba a ser bueno. El principal problema es que con algunos Videos (bastantes en mi caso) el audio y el video estan Des-sincronizados con lo que la pelicula no se puede seguir. El problema está en el firmware con el que viene la maquina (el 1.03eu) y para el cual NO hay actualizacion en Europa. (piensan sacarla la primera semana de marzo). Aun asi es bastante facil instalar otra firmware 1.05ww por ejemplo (aunque se pierde la garantia).
El segundo problema es tambien con la firmware que, al ser bastante antigua , la interface es menos atractiva y no se conecta a las radios en internet.
Lo mas grave para mi no es esto, es la reducida existencia de MediaServers UPnP en general. Para linux solo hay uno (TwonkyVision) y es comercial.
Las APIs de desarrollo UPnP tambien son escasas en Java, aunque abundantes en C# y .NET en general. Espero que salgan mas APIs o MediaServers gratuitos en breve.
El otro producto en discordia es el Pinnaccle ShowCenter. La principal diferencia es el protocolo que usan, este ultimo usa HTTP que dispone de mas APIs y productos gratuitos para la transmision de Video/Audio ( OpenShowCenter ), con lo que es un poco mas versatil.
En cuanto al resto seguiré evaluandolo.



