viernes, 13 de marzo de 2009
Patrón M-V-C con JavaScriptMVC
A ver si le lío para que escriba algo, le daré la coña en las clases de inglés.
miércoles, 4 de marzo de 2009
JavaFx, la competencia a Flash
Muy interesante esta alternativa, pensando que funciona sobre J2ME (eso dice la publicidad) y esta JVM está instalada en gran parte de los dispositivos más conocidos.
Ejemplos:
Big Buck Bunny
Galería de ejemplos
Parece que SUN quiere seguir en la brecha y no perder comba.
miércoles, 21 de enero de 2009
Comandos Unix útiles para un compa y de paso para tod@s
Comandos unix utiles
1. chmod 744 "elfichero"---> cambio de permiso del fichero
2. nohup ./startWebLogic.sh & ---->Ejecuta el fichero y manda la
salida al fichero nohup
3. tail -f nohup.out ----> Visualizamos lo que sale por el fichero
4. ps -edaf ----> visualiza todos los procesos que corren la máquina
5. ps -edaf | grep "palabra_filtro"----> saca todos los procesos que
pasan el filtro
6. kill -9 "numeroproceso"----> mata el proceso corresponediente
7. r "cualquier letra"---> ejacuta el último comando ejecutado que
empieza con la cadena especificada. si no se pone ninguna cadena ejecuta el
último comando ejecutado.
8. df -k ------> muestra las capacidades de las particiones
9. jobs
10. kill -9 %"numero del job"
11. ln -s "nombre del directorio real" "nombre del alias"----> crea
un link simbólico soft.
12. gzip -d ---->descomprime un gz en el directorio actual
13.tar xvf ----->desempaqueta un tar en el directorio actual
14.tar cvf "nombre del archivo tar" "archivos a empaquetar"----->
genera un fichero .tar
14 gzip "nombre del archivo a comprimir" ------> comprime el fichero
y lo graba con extensio.gz
15 rm -R "nombre de directorio" -------> borra todos los ficheros de
un directorio y los subdirectorios
16 du -kos "nombre de directorio"-----> nos da el tamaño del
directorio en KB (1024bytes)
17 df -k ------>Da el tamaño de las particiones y el espacio libre
que queda en cada una de ellas.
18 tar tvf "nombre archivo tar"---->Da el contenido del archivo tar.
19 dos2unix "nombre de fichero" > "nombrefichero" ----->formatea
bien los ficheros de texto editados en entorno windows. Por ejemplo los
retorno de carro
20. > envía la salida
21. hostname---->devuelve el nombre de la máquina
22 Fichero .profile:
Ejemplo
-------
#fijando el path
PATH=.:/usr/local/Solaris_JDK_1.2.1_04/bin:/bin:/usr/bin:/usr/sbin:
#meto el path donde guardar los scripts que me cree
PATH=$HOME/scripts:$PATH:.
export PATH
#exportando el vi
EDITOR=/usr/bin/vi
ED=/usr/bin/vi
EDIT=/usr/bin/vi
export EDITOR ED EDIT
#configurando el prompt
HOSTNAME=`hostname`
export=HOSTNAME
PS1='$HOSTNAME-$LOGNAME@$PWD'
export=PS1
#Fijando el vi como editor de la shell
set -o vi
#alias
alias ll='ls -laF'
23. find "directorio desde donde se va a buscar" -name "cadena a
buscar" -print
24. pkgmk -f prototype.pkg -o ---> genera el paquete y lo
sobreescribe si ya estaba en /var/spool/pkg
25. pkgadd "nombre del paquete" --->Instala el paquete. Hay que ser
root. Si el paquete no está en /var/spool/pkg hay que ejecutar
pkgadd -d "path al paquete".
26. pkgrm "nombre del paquete" ---> Borra el paquete.
27. command para las X del Exceed @(XTerm, method=stdappdb) -display
@d0.0.
28. cp -r "directorio origen" "directorio destino" ---> copia un
directorio al destino fijado
29. admintool ---> Herramienta visual (se necesita un servidor X
levantado) para crear usuarios.
30. chown -R "usuario":"grupo" "nombre del directorio" --> Cambiar
el propietario del directorio.
31. tip hardwire --> te permite hacer de consola a una máquina
solaris siempre que haya una conexión física a la máquina a la que se
quiera
conectar.
32. Para parar una máquina SUN ejecutar:
>sync
>sync
>sync
>reboot
33.ifconfig -a --> Da la información de red de la máquina.
Ejemplo
-------
$ ifconfig -a
lo0: flags=1000849
index 1
inet 127.0.0.1 netmask ff000000
eri0: flags=1000843
index
2
inet 172.16.70.18 netmask ffffff00 broadcast 172.16.70.255
groupname ipmp_imode1
eri0:1: flags=
9040843
mtu
1500 index 2
inet 172.16.70.16 netmask ffffff00 broadcast 172.16.70.255
eri1: flags=
69040843
D
BY,INACTIVE> mtu 1500 index 3
inet 172.16.70.17 netmask ffffff00 broadcast 172.16.70.255
groupname ipmp_imode1
Esta información nos dice que tiene una dirección loopback
127.0.0.1.
Tiene una dirección
virtual con IP=172.16.70.18 montada sobre dos tarjetas físicas
172.16.70.16 e 172.16.70.17
donde la primera de ellas está funcionando y la otra está en standby
para entrar en funcionamiento
si la primera se cae.
34. ls -latr ---> Hace un listado ordenandolo por fecha.
35. /etc/resolv.conf ---> El fichero con los servidores de DNS
36. /etc/rc2.d/S99routeset ---> El fichero con todas las rutas de la
máquina.
37. uname -a ---> Da el nivel de parches de una máquina Solaris.
38. /etc/nsswitch.conf ---> Fichero donde se especifica la forma de
resolver los nombres de máquina (etc/hosts, DNS etc...).
39. En /etc/hostname.eri0 ---> Este fichero define la ip y otros
parámetros de red de la targeta de red eri0. Para cada interfaz existe un
fichero del tipo hostname.erix. Para interfaces que no son de serie sería
qfex
40. eprom ---> da la configuración de la eprom de la máquina.
41. /etc/inetd.conf --> Fichero de configuración de los servicios
TCP/IP de la máquina
42. /etc/vfstab ---> fichero donde se describe el sistema de
ficheros de la máquina
43. useradd -g staff -d /home/diego -s /bin/ksh -m diego ---> Crea
el usuario diego en el grupo staff, en el directorio /home/diego, con
la shell /bin/ksh
45. passwd "nombre_usuario" cambia el password al usuario.
46. stty erase "tecla a utilizar para borrar"--->defines la tecla
que quieres utilizar para borrar
47. sar "tiempo de cada muestreo en segundos" "numero de ciclos"
---> muestra la utilización de cpu de la máquina es una especie de top.
Ejemplo
sar 10 1000 realiza una muestra cada 10 segundos durante 1000
ciclos.
48. En los directorios /etc/rcx.d se ponen los scripts que se quiere
que ejecuten cuando se arranca la máquina. Si por ejemplo se arranca
en el nivel 3, se ejecutarán los scripts fijados en en los directorios
/etc/rc0.d, /etc/rc1.d, /etc/rc2.d y /etc/rc3.d. Solo se ejecutan
los ficheros que empiezan por S por ejemplo 'S99routese' para mas
detalles mirar el fichero /etc/init.d/README.
49. /usr/platform/sun4u/sbin/prtdiag ---> Nos da información de la
configuración de la máquina.
50. psrinfo -v --> Nos da información del procesador.
51. showrev -p --> Nos dice los parches que hay instalados
52. umask --> nos da la mascara por defecto que tiene el usuario al crea
los
ficheros.
53. kill -HUP "id process" --> Manda una señal de restart al proceso. Se
utiliza normalmente para rebotar un demonio y forzarle a recargar el
fichero
de configuración.
54.Ejemplo de como hacer un export display de forma automática. Solo hay
que meterlo en el .profile
#Exporta el display
rhost=`who am i | awk -F'(' '{print $2}' | awk -F':' '{print $1}' |awk -
F')'
'{print $1}'`
DISPLAY=$rhost:0.0
echo "DISPLAY=[$DISPLAY]"
export DISPLAY
55. fc -l --> Lista el histórico de los comandos ejecutados
56. fc -s "numero de la linea del histórico" --> Vuelve a ejecutar el
comando que ocupa la el número de línea especificado.
57. tr "cadena" "nuevo cadena" --> Este comando sustituye una cadena por la
nueva cadena.
58.snoop -x0 -o snoop_test port 8080 or port 389 or port 80.
snoop -x0 -o snoop_test port 8080 or port 389 or host 205.244.47.30
para http://www.imodelinks.com/ Este comando vuelca en el fichero
snoop_test.txt todo el tráfico de red de la máquina que entra por el puerto
8080 (puerto de escucha del Proxy Pull) el que se produce con el puerto 389
(puerto del SIU) y con el puerto 80 que es el puerto de los servidores web.
59. ldapsearch -h 172.16.20.108 -b o=SIU LOGIN-IP=172.16.70.25
Este comando realiza una consulta Ldap al SIU que está en la máquina
172.16.20.108, sobre los datos que tiene para la IP 172.16.70.25.
Os invito a que sigáis con la lista ......
Nuevo cliente Java para SVN: SVNKit 1.2.2
viernes, 9 de enero de 2009
Artículos sobre metodologías ágiles
Sobre Modelado de datos:
http://www.agiledata.org/essays/agileDataModeling.html
Sobre Gestión de proyectos:
http://www.softdevarticles.com/modules/weblinks/visit.php?lid=65
Sobre tomas de Requisitos:
http://www.softdevarticles.com/modules/weblinks/visit.php?lid=27
miércoles, 17 de diciembre de 2008
Design Patterns: Visitor (Visitante)
Es efectiva para estructuras con objetos de tipo heterogéneo, sobre los que pretendemos aplicar una nueva funcionalidad.
Usando este patrón nos evitamos "contaminar" las clases de los elementos y preguntar por el tipo de ellos (casting).
En su esquema estructural se concentra la funcionalidad en el Visitante, que implementará métodos visit() para cada tipo de elemento.
Cada elemento permitiría su visita con llamadas a métodos accept().
¿Queréis saber cómo se produce tal diálogo?
Nos vemos en el seminario!
martes, 16 de diciembre de 2008
Apache Tapestry
Otra característica importante de Tapestry es el uso de plantillas HTML. En Tapestry cada página es una plantilla HTML que contiene etiquetas HTML amigables para el navegador. Al contrario que las páginas JSP, JSTL o JSF, crear páginas Tapestry es relativamente fácil utilizando herramientas de diseño Web comunes, y puede previsualizarlas en un navegador.
Tapestry esta bajo la licencia de Apache Software 2.0. Se caracteriza por ser fácilmente integrable con cualquier tipo de Back-End, incluyendo J2EE, Spring…
Tapestry está organizado en torno a cuatro principios clave:
- Simplicidad: las aplicaciones web no debe complejas.
- Uniformidad: Lo que funciona en pequeñas aplicaciones deben funcionar en grandes aplicaciones. Diferentes desarrolladores deben encontrar soluciones similares a problemas similares.
- Eficiencia: Las solicitudes deberán ser eficiente y escalable.
- Feedback: Cuando las cosas van mal, el marco no debe ponerse en el camino, en realidad, debería servir de diagnóstico.
Estos cuatro principios de unidad se pueden resumir en: La opción más simple debe ser la elección correcta.
domingo, 14 de diciembre de 2008
Nuestros seminarios 2008
Seminario de XML y SAX
Este seminario pretende dar unas nociones básicas de todos los API´s que actualmente se manejan en Java para manipular y procesar documentos XML y como no, prestando especial atención al API de SAX.
Es fundamental conocer conceptos básicos de XML, para poder abordar con garantías de éxito desarrollos sobre otras tecnologías tan habituales como son los WebServices, Ajax, SOAP y el manejo de muchos estándares que utilizan Schemas como lenguaje para definirlos, sirva de ejemplo el seminario que nos dio el pasado año Ivan con su Batik
Así que oiremos APIs como: SAX, DOM, JAXP, JDOM, Stax. Parsers: Xerces, XML4J, Crimson, Oracle XML Parser, y MSXML (de Microsoft). Y algunas cosas más.
En fin algo que parece sencillo pero que tiene un montón de siglas, APIs, componentes, tecnologías, productos y frameworks. Espero que os pueda aclarar algo en esta jungla de siglas.
DNM
jueves, 11 de diciembre de 2008
Seminario Cocoon
Ventajas de este tipo de publicación:
- Separación limpia entre contenido y presentación.
- Permite separar claramente los papeles del programador y el diseñador.
- Proporciona una mejora muy notable del mantenimiento: Se puede realizar un cambio radical de imagen de todo un site web con tan solo modificar las hojas XSL y sin tocar ni una sola línea de código.
- A partir de un solo documento XML con el contenido, se pueden obtener páginas HTML para su presentación web, páginas WML para dispositivos WAP, documentos PDF para imprimir, etc.
- Aunque no hay ningún estándar que regule como debe ser un sistema de publicación si que está basado en estándares con mucha fuerza en el mercado, por lo que es más sencillo pasar de usar uno a usar otro.
- Es compatible con el resto de tecnologías web como servlets, JSPs...
martes, 9 de diciembre de 2008
Seminario Velocity
Dentro del mundo de la programación Web está extendido en todos los desarrollos de aplicaciones la utilización del MVC(Model View Controller).Una aproximación más del esfuerzo para separar el trabajo de un programador Web del de un diseñador Web dentro de este patrón es la utilización de Plantillas.Velocity es un motor de plantillas que mediante su lenguaje llamado VTL inserta contenido dinámico en la parte de la presentación de la aplicación.
Como ventaja a priori que puede tener frente a la utilización de JSP tenemos la posibilidad de separar la parte HTML y el código Java de manera completa, ya que en el caso de JSP podemos incorporar todo el código Java que queramos,cosa no muy recomendable.Como otras utilidades tenemos la generación de informes,envio de correos,etc.
Desventaja,el uso extendido de JSP y la industria que lo respalda que hace difícil la competencia.
Espero con este artículo mostrar que existen alternativas a los JSPs que quizás puedan ser interesantes.
PD:Ahora soy un G4, espero poder seguir siendo bienvenido en este blog 'G5' ;-)
jueves, 31 de julio de 2008
El estrés en el trabajo
Un saludo
DNM
jueves, 19 de junio de 2008
GRID Computing una realidad en el mundo científico
Que lo disfrutéis. Prohibido preguntar qué son los Hadrones ;-)
DNM
viernes, 13 de junio de 2008
Incrementando la memoria en los porcesos ANT
- Crear la variable de entorno ANT_OPTS
- Asingnarle la memoria deseada como por ejemplo -Xms256M -Xmx512M, que se corresponde con una reserva inicial de 256MB y una máxima de 512MB
Espero que sea de utilidad
DNM
lunes, 26 de mayo de 2008
Caminando hacia un estandar para el Etiquetado del software en el CVS del G5
Actualmente nuestra nomenclatura es la siguiente.
V_XX_XX_XXXX
Un ejemplo sería v_00_05_00M1. La descripción de cada uno de los caractéres y su modificación es la siguiente:
- Los dos primeros dígitos para la identificación de la versión principal, estos digitos se incrementan cuando:
- Hay un cambio importante en la arquitectura de la plataforma. Es decir del core o capas generales de la arquitectura de la plataforma, Servidor de aplicaciones o Base de Datos.
- Hay un incremento significativo de funcionalidades que cubre la plataforma. Normalmente estará asociado a incorporación de nuevas Capacidades o evoluciones importantes de las ya implementadas.
- Evolución en JDKs y APIs de JEE.
- Los dos siguientes digitos designan evoluciones moderadas para una versión principal dada. Estos dígitos se incrementan cuando:
- Hay nuevas funcionalidades y mejoras sobre la versión anterior. Normalmente estarán asociadas a incorporación de nuevas Capacidades o funcionalidades de los interfaces de usuario.
- Los dos últimos dígitos designan parches a la versión correspondiente.
- Por último se tienen los siguientes textos:
- Mx: (Mile Stone x) Designa una versión que pasa almenos el 70% de las pruebas automáticas Funcionales (JMeter) de regresión y pasa el 100% de las pruebas unitarias (JUnit) de regresión de la plataforma.
- RCx: (Release Candidate x) Designa una versión que:
- RC1: Pasa el 100% de todas, las pruebas de regresión (automáticas).
- RC2: Pasa al menos un 70% de las pruebas definidas en el plan de pruebas para dicha versión.
- RC3: Pasa las pruebas de RC1, RC2, el 95% de las pruebas definidas en el plan de pruebas para dicha versión que no estén pospuestas. Siempre que el 5% de las pruebas no pasadas no sean defectos importantes o críticos, en un estado de asignado o resolvíendose.
- Rx: (Release) Designa una versión que pasa las pruebas de RC3 y:
- Pasa las pruebas de carga definidas en el "Rendimiento de la aplicación".
- Pasa las pruebas anteriores y las de estabilidad.
- Sin texto: Es la versión estable del aplicativo donde ha pasado el100% de las pruebas de regresión, las pruebas definidas en el plan de pruebas , las pruebas de rendimiento, las pruebas de concurrencia, las pruebas de estabilidad definidas en la versión y se ha realizado una reunión entre el jefe del equipo de pruebas y el Jefe de Proyecto para aceptar los resultados del plan de pruebas.
192.168.5.30
jueves, 24 de abril de 2008
PayPal va a exigir EV SSL a los Navegadores
DNM
miércoles, 2 de abril de 2008
Implantando SCRUM en el equipo
DNM
domingo, 9 de marzo de 2008
DIA, una herramienta Open Source para diagramas
Últimamente he estado probando DIA, una herramienta para hacer diagramas Open Source disponible para Linux y Windows, y lo más importante, simple y flexible.Viene ya con los elementos para hacer diagramas UML y ER.
A diferencia de herramientas CASE más complejas y completas, DIA no aspira a más que ser el típico "pintamonas" y lo hace bien.
Tras arrancarlo, aparecen dos pantallas. La principal es el área del diagrama, que presenta un continuo de hojas para a trabajar.
La secundaria de control permite escoger cualquiera de los elementos del lenguaje que estemos usando para el diagrama (UML, ER, etc...), además de líneas, cuadros, áreas de texto y demás formas.
En concreto para diagramas ER trae entidades, relaciones, atributos y los imprescindibles conectores.
- Para las entidades, podemos ponerle nombre, indicar si es débil o asociativa, y los parámetros de formato (colores y fuentes)
- Para las relaciones, permite indicar la cardinalidad, orientación del rombo, darle un nombre y cambiar los parámetros de formato.
- Los conectores, una vez asociados a la entidad y a la relación, ajustan automáticamente la línea cuando mueves una u otra, y también permite cambiar los puntos de los "codos".
Lo he estado usando con un diagrama de unas 20 entidades aproximadamente, relaciones por todos los lados, etiquetas y algunas explicaciones, y no me ha dado mayor problema.
En resumen un pequeño "Visio" mucho más sencillo y open source.
Para linux lo podéis encontrar en los repositorios de vuestra distribución favorita, y para windows lo podéis descargar de sourceforge. (http://dia-installer.de/index_en.html)
Como curiosidad, el fichero que genera en un XML comprimido, así que supongo que podría llegar a acoplarse a eclipse e incluso a un CVS.
sábado, 1 de marzo de 2008
Artículo: JSF
La tecnología JavaServer Faces surge como una solución a la separación entre la presentación y el comportamiento en una aplicación Web, de forma tal que las actividades de los autores de las páginas puedan separarse de las actividades de los desarrolladores de la lógica. Además, esto posibilita el desarrollo de entornos de desarrollos (IDE) que permitan trabajar en el diseño con funcionalidades del tipo drag-and-drop. Esta tecnología define un modelo de componentes UI que permiten definir la estructura del componente, diferentes formas de presentación, validaciones, la navegación entre las páginas y otros elementos.
Al igual que Struts, JSF pretende normalizar y estandarizar el desarrollo de aplicaciones web. Hay que tener en cuenta JSF es posterior a Struts, y por lo tanto se a nutrido de la experiencia de este, mejorando algunas sus deficiencias. De hecho el creador de Struts (Craig R. McClanahan) también es líder de la especificación de JSF.
JSF trata la vista (el interfaz de usuario) de una forma algo diferente a lo que estamos acostumbrados en aplicaciones web. Sería más similar al estilo de Swing, Visual Basic, donde la programación del interfaz se hacer a través de componentes y basada en eventos (se pulsa un botón, cambia el valor de un campo, ...).
JSF es muy flexible. Por ejemplo nos permite crear nuestros propios componentes, o crear nuestros propios “render” para pintar los componentes según nos convenga y es más sencillo.
- Autor: Isaac Remiro
- /cvspanel/formacion/JSF
viernes, 29 de febrero de 2008
Programación de sistemas en tiempo Real en Java
De momento he encontrado una empresa Aonix qué está especializada en este tipo de desarrollos y quizá sea un buen sitio por donde empezar. Tienen incluso un producto PERC Pico con el que desarrollan productos comerciales.
¿Y que hace la comunidad Java? Pues hay un grupo en el Java Community Process el Real-time Specification for Java (RTSJ) que es el que marca las pautas.
Queda por investigar como está el mundo Opensource en este aspecto ¿Hay entornos de desarrollo específico?¿librerías GPL? etc.