CoffMan Blog Victor Fariña Infante , info about my own projects and thoughts.

26Apr/060

Por fin gmail llega a Galicia

Pues nada nada ... que parece que sino salimos en el maps de google es como que no existimos ... y por fin las zonas de galicia que antes no aparecian (que eran casi todas) ahora ya estan disponibles. En lo que al MAPA se refiere , pues la vista via satelite siempre estuvo mas o menos ahí (mas menos que mas) Un ejemplo de mapa que no salía hasta hace 2 dias lo tenemos en la web de Queres, en la seccion dónde estamos .

Me alegro de que por fin aparezcamos en el mapa ;) Os recomiendo visitar la pagina de google map pues es muy interesante poder incrustar un mapa navegable en vuestra pagina web.

A esto se suma que el 3 de abril google sacó a la luz la version 2 de la API de google maps que trae un monton de mejoras.

Espero poder sacarle utilidad a todas las rutas de escalada que tengo guardadas del antiguo GPS, pues aqui en galicia encontrar las vias es una odisea. Lo tengo anotado en tareas pendientes ;), justo despues de "comprar PSP con firmware 1.5".

UPDATED (26-abr-2006): Parece un poco egocentrica la noticia, pues resulta que no solo han actualizado Galicia, tambien han actualizado el resto de Europa !!! .

Filed under: Tecnología No Comments
25Feb/060

Exito o fracaso de las empresas de desarrollo de Software

Ultimamente no hago mas que leer articulos que hablan de lo mismo, es la pregunta que está en el ambiente, ¿Por qué las empresas de software no funcionan ?.

Pues mi opinion, al igual que en la mayoria de los blogs que he leido, es que la empresas de desarrollo no fijan su objetivo en el Cliente, sino en el software mismo.

El director de Black & Decker durante una exposicion del departamente de marketing, interrumpió diciendo:
" Señores, han confundido el objetivo: Nuestros clientes no quieren taladros…. Nuestros clientes quieren agujeros”. Simplemente impresionante

La Objetivo habitual de las empresas es "ganar dinero", sin embargo se puede ganar dinero de muchos modos, se puede  ganar mucho dinero, se puede ganar el dinero suficiente, todo depende del verdadero objetivo de los dirigentes de la empresa.

Lo cual me lleva a una pregunta "Que esperas que te proporcione tu trabajo? "
Tanto si eres programador como si eres directivo de la misma, en la mayoria de los casos persigues unos objetivos minimos:

  • Vivir bien (no vale querer vivir en la casa de Bill Gates)

  • Trabajar haciendo lo que te gusta (sin contar con que lo que te guste es joder a los compañeros de trabajo, eso no cuenta)

Basado en los objetivos personales minimos, te importa en algo que la empresa gane dinero ? NO.
La empresa debe preocuparse por que los trabajadores "vivan bien" y por que "trabajen a gusto", es sencillo.

Al igual que los trabajadores, los clientes tambien quieren vivir bien (ellos que trabajen como quieran ;) y para que los clientes vivan bien necesitan que se les solucionen todos sus problemas . Y ahí es donde entran las empresas de desarrollo de software, ese si que podria ser un objetivo valido de empresa _"Hacer que los clientes mejoren su calidad de vida"._Para conseguirlo no hay que focalizar el objetivo de una empresa en el "desarrollo de un software" sino mas bien en "solucionar el problema del cliente".

Aplicando esta simple logica obtendremos resultados ;)
Recuerda "Un cliente feliz es un buen cliente".

Filed under: Tecnología No Comments
21Feb/060

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.

Filed under: Tecnología No Comments
24Jan/060

Queres Tecnologias

Logo de QueresBueno, 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.

Filed under: Tecnología No Comments
19Dec/050

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=lib.dir/dwr−{lib.dir}/dwr-{dwr.version} dwr.jar=${dwr.dir}/dwr.jar

 

3. Añadir al /properties.xml:

...

 

4. Añadir al /build.xml:

...>

<war destfile="webapp.dist/{webapp.dist}/{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/

Filed under: Tecnología No Comments
30Nov/050

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

Filed under: Tecnología No Comments
7Mar/050

Installing fckeditor on b2evolution

fckeditor is a cool WYSIWYG 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

Filed under: Tecnología No Comments
28Feb/050

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.

Filed under: Tecnología No Comments
22Feb/050

D-LINK DSM-320 , reproductor multimedia a examen

dsm capturaBueno, 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.

Filed under: Tecnología No Comments
15Feb/050

Transmitiendo Video y Audio a la TV desde el PC

DLINK DSM-320Pues sigo en la linea de investigacion para encontrar un dispositivo que me permita tener las peliculas y los MP3 en el ordenador , y poder acceder a ellos desde la TV del salon. Las soluciones que estoy investigando son las siguientes: D-LINK DSM-320
Soporta 802.11g (e inferiores) Utiliza UPnP con lo que hay servidores multimedia para linux,windows, (por ejemplo TwonkyVision) ... aunque por defecto trae uno para windows. approx. 190€ problema: El logotipo de windows q sale por todos lados en la web del producto. links : http://www.dlink.com/products/?pid=318# http://www.biermana.org/wiki/index.php/Hacking%20the%20D-Link%20DSM-320 http://p214.ezboard.com/bdsm320 PRISMIQ Mediaplayer tarjeta WiFI aparte. Tiene un Linux embebido approx. 169€ Problema: desactualizado links:
http://www.prismiq.com http://www.prismiq.org Pinnacle Showcenter 100g Otra alternativa mas ... problema : Es un poco mas caro que el resto y no aporta nada nuevo a los antetiores approx290€ links: http://www.pinnaclesys.com/ProductPage_n.asp?Product_ID=1491&Langue_ID=7 Otros http://www.linksys.com/extend/ http://www.adstech.com/products/MXL-581/sysreq/MXL-581_req.asp?pid=MXL-581

Filed under: Tecnología No Comments