Pues se me ha ocurrido la idea de entrar en el mercado de forex, a ver que tal
me va, mientras tanto ya estoy estudiando todo el rollol, :D será mi nuevo
proyectin inconcluso por el momento.
Tuesday, December 15, 2009
Wednesday, September 30, 2009
Avance a la estacion de juegos
Ahora les traigo el avance de la estación de juego que documente
en una entrada anterior, le mande a hacer un cajoncito, de madera
y lo conecte a la PC y a jugar como en las arcadias.
Aqui una imagen:

Como se puede observar en la imagen -ademas de mis tenis apestosos
- el cajon cuenta con bisagra para poder hacer conexiones y dar
mantenimiento cuando algo falle.
Y otra:

Pero no se preocupen, queridos 20,000 lectores, este proyecto aun
sigue estando inconcluso pues falta el control secundario para echar retas.
RaY
en una entrada anterior, le mande a hacer un cajoncito, de madera
y lo conecte a la PC y a jugar como en las arcadias.
Aqui una imagen:

Como se puede observar en la imagen -ademas de mis tenis apestosos
- el cajon cuenta con bisagra para poder hacer conexiones y dar
mantenimiento cuando algo falle.
Y otra:

Pero no se preocupen, queridos 20,000 lectores, este proyecto aun
sigue estando inconcluso pues falta el control secundario para echar retas.
RaY
Saturday, August 08, 2009
Too many open connections
Ese error del titulo aparecia una y otra y otra vez con mi aplicación hecha en struts + hibernate
me da un poco de verguenza aceptarlo pero me llevo como 6 meses repararlo - no me dedico diario a ella pero aun así es mucho tiempo - y ahora que lo resolví estoy algo euforico así que para
acordarme de este momento posteo la solución. Tal vez le ayude a alguien:
Lo primero que pense con ese error era que no estaba cerrando la sesion, dije claro por ahi
debe haber algun llamado a base donde olvide cerrarla, pero despues de revisar una por una,
varias veces ahi estaba session.close(); pues no era eso.
La segunda cosa en la que sospeche fue la base de datos (mysql) dije seguro tiene un bug
esa cosa, asi que hice pruebas, investigue y no solo me di cuenta de que no era sino que tambien
gracias a la respuesta de un participante en el bug tracking de mysql supe que no debia usar
el connection pooling nativo de hibernate para un ambiente productivo, asi que cambie a c3p0, pero tampoco era eso, el "too many open connections" seguia atormentandome despues de unas cuantas consultas.
Así que finalmente cuando todo estaba perdido era hora de leer el manual, a refinarme mas teoria de Hibernate, pues ahi estaba el pex, en realidad no sabia lo que estaba haciendo, eso pasa por aprender esta clase de cosas al vapor, muchas veces solo entiendes una embarrada, vamos al grano:
El problema.
Al abrir la sesion llamaba un metodo llamado abreConexion que al principio llamaba al siguiente codigo:
Pues claro, como ese codigo se ejecutaba con cada conexión, tenia una nueva fabrica de sessiones cada vez, y por consiguiente un pool de conexiones por cada fabriquita, así cada busqueda abria varias conexiones sin cerrarlas (pues estan en pool) hasta que me salia el mensajito del demonio.
La solucion.
Sencillo separar en una clase independiente la creacion de la fabriquita, con su respectivo metodo get para obtener la fabrica (la misma cada vez):
Lo demas es historia en mi metodo abreConexion solo llamo el metodo getSessionFactory y listo
adios problemas, ademas de que no aparece el error la aplicacion es mucho mas rapida pues la creación de la fabrica es muy lenta.
RaY... RTFM!!!
me da un poco de verguenza aceptarlo pero me llevo como 6 meses repararlo - no me dedico diario a ella pero aun así es mucho tiempo - y ahora que lo resolví estoy algo euforico así que para
acordarme de este momento posteo la solución. Tal vez le ayude a alguien:
Lo primero que pense con ese error era que no estaba cerrando la sesion, dije claro por ahi
debe haber algun llamado a base donde olvide cerrarla, pero despues de revisar una por una,
varias veces ahi estaba session.close(); pues no era eso.
La segunda cosa en la que sospeche fue la base de datos (mysql) dije seguro tiene un bug
esa cosa, asi que hice pruebas, investigue y no solo me di cuenta de que no era sino que tambien
gracias a la respuesta de un participante en el bug tracking de mysql supe que no debia usar
el connection pooling nativo de hibernate para un ambiente productivo, asi que cambie a c3p0, pero tampoco era eso, el "too many open connections" seguia atormentandome despues de unas cuantas consultas.
Así que finalmente cuando todo estaba perdido era hora de leer el manual, a refinarme mas teoria de Hibernate, pues ahi estaba el pex, en realidad no sabia lo que estaba haciendo, eso pasa por aprender esta clase de cosas al vapor, muchas veces solo entiendes una embarrada, vamos al grano:
El problema.
Al abrir la sesion llamaba un metodo llamado abreConexion que al principio llamaba al siguiente codigo:
Configuration cfg = new Configuration();
cfg.setProperties(System.getProperties());
cfg.configure();
SessionFactory sessions = cfg.buildSessionFactory();
return sessions.openSession();
Pues claro, como ese codigo se ejecutaba con cada conexión, tenia una nueva fabrica de sessiones cada vez, y por consiguiente un pool de conexiones por cada fabriquita, así cada busqueda abria varias conexiones sin cerrarlas (pues estan en pool) hasta que me salia el mensajito del demonio.
La solucion.
Sencillo separar en una clase independiente la creacion de la fabriquita, con su respectivo metodo get para obtener la fabrica (la misma cada vez):
import org.hibernate.*;
import org.hibernate.cfg.*;
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
sessionFactory = new Configuration().configure().buildSessionFactory();
} catch (Throwable e) {
System.err.println("Initial SessionFactory creation failed:" + e);
throw new ExceptionInInitializerError(e);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
Lo demas es historia en mi metodo abreConexion solo llamo el metodo getSessionFactory y listo
adios problemas, ademas de que no aparece el error la aplicacion es mucho mas rapida pues la creación de la fabrica es muy lenta.
RaY... RTFM!!!
Monday, July 21, 2008
Siguiente
Por fin me dieron ganas de escribir de nuevo en este blog, que estoy
pensando seriamente en renombrar, creo que quedaría bien "El blog
de los proyectos inconclusos", en fin, en el capitulo anterior les
mostre mi bracito feo, que aun quiero terminar, pero no le he
dedicado tiempo, esta vez debido a mi recaida en las drogas
-si, debo aceptarlo- les presento mi nuevo proyecto inconcluso:

Así es, un tablero de arcadia, tal como lo jugaba en los locales de
videojuegos (o maquinitas), pues hace algún tiempo compre un
joystick tipo arcadia de alguna marca, este:

Pero definitivamente no era lo mismo, me dejaba una pequeña
insatisfacción, que se volvio frustración y luego casi odio cuando
uno de los micropulsadores que tiene se descompuso, entonces
uno de esos dias de vagancia por el país me encontre con una
tienda de refacciones de arcadias, una lagrima rodo por mi mejilla
y de inmediato compre la tabla, palancas, botones y pulsadores:

Solo faltaba la electrónica, así que tuve una idea que a la vez
serviría de venganza...

Y manos a la obra:



Después de unas cuantas horas de trabajo quedo lista para
usarse, ahora juego felizmente mis reliquias como street fighter II,
KOF97, y la no tan reliquia KOF2002, el joystick es compatible con
PS y PC lo que resta es hacer el segundo control y armar
un cajon para sujetar el tablero, así se ha convertido en uno mas
de mis proyectos inconclusos.
pensando seriamente en renombrar, creo que quedaría bien "El blog
de los proyectos inconclusos", en fin, en el capitulo anterior les
mostre mi bracito feo, que aun quiero terminar, pero no le he
dedicado tiempo, esta vez debido a mi recaida en las drogas
-si, debo aceptarlo- les presento mi nuevo proyecto inconcluso:

Así es, un tablero de arcadia, tal como lo jugaba en los locales de
videojuegos (o maquinitas), pues hace algún tiempo compre un
joystick tipo arcadia de alguna marca, este:

Pero definitivamente no era lo mismo, me dejaba una pequeña
insatisfacción, que se volvio frustración y luego casi odio cuando
uno de los micropulsadores que tiene se descompuso, entonces
uno de esos dias de vagancia por el país me encontre con una
tienda de refacciones de arcadias, una lagrima rodo por mi mejilla
y de inmediato compre la tabla, palancas, botones y pulsadores:

Solo faltaba la electrónica, así que tuve una idea que a la vez
serviría de venganza...

Y manos a la obra:



Después de unas cuantas horas de trabajo quedo lista para
usarse, ahora juego felizmente mis reliquias como street fighter II,
KOF97, y la no tan reliquia KOF2002, el joystick es compatible con
PS y PC lo que resta es hacer el segundo control y armar
un cajon para sujetar el tablero, así se ha convertido en uno mas
de mis proyectos inconclusos.
Monday, July 02, 2007
El bracito feo
En dias pasados publique un escrito en la BC donde lloriqueaba de varios aspectos de mi vida, entre ellos un proyecto inconcluso, que ahora sigue inconcluso, pero... ya no tanto y me dieron ganas de publicarlo por aqui, aprovechando que este es un blog de pruebas, el proyectito consiste en lo siguiente:

Este es mi proyecto, un bracito feo robotico, esta hecho con materiales muy rudimentarios pero me he divertido mucho haciendolo -y mi papá también, pues me ha ayudado mucho en la programación de los pics-.
Lo divertido:

Programar los pics en lenguaje ensamblador, estos leen una señal enviada del puerto paralelo de la pc, y según el valor de esa entrada varian el ancho de pulso de una señal PWM (Poulse Width Modulation), esto
es necesario pues estoy usando servomotores para mover el bracito feo.
Del lado de la pc, la programación la quería hacer en Winbugs -si aunque no lo crean- pero me tope con
muchas cosas raras a la hora de manejar el puerto paralelo con C, asi que mejor regrese a mi confiable
Linux y ahi como en casa de nuevo.
La electrónica es muy básica, solo un buffer a la salida del puerto paralelo -por si las moscas- de ahi a los pics con un bus de 8 bits y de los pics directo a los servos.
Lo frustrante:

Tuve muchos problemas para grabar los PIC con el ICPROG, de hecho jodi unos 2 pics y otro por insuficiencia motriz -jujuju-, inicialmente queria sacar la señal PWM con la PC, pero el pulso era muy inestable, por eso decidi usar los PIC, luego lo del puerto paralelo en windows que mandaba lo que se le daba la gana y solo de vez en cuando hacia lo correcto.
Lo que sigue:
Pues tengo ganas de hacerle varias modificaciones, espero no dejarlo como muchos otros proyectos, entre las mas importantes:
-Ajustar bien el periodo (aunque los servos funcionan me dejan la sensacion de que pueden estar mejor)
-Mejorar el cableado en las protos porque lo hice feo.
-Agregarle una pinza.
-Obtener el modelo matemático para poder hacer cosas mas interesantes.
-Agregar sensores para grabar posiciones.
-Hacer la interfaz grafica en java.
Eso y mucho mas, pero de entrada esas.


Este es mi proyecto, un bracito feo robotico, esta hecho con materiales muy rudimentarios pero me he divertido mucho haciendolo -y mi papá también, pues me ha ayudado mucho en la programación de los pics-.
Lo divertido:

Programar los pics en lenguaje ensamblador, estos leen una señal enviada del puerto paralelo de la pc, y según el valor de esa entrada varian el ancho de pulso de una señal PWM (Poulse Width Modulation), esto
es necesario pues estoy usando servomotores para mover el bracito feo.
Del lado de la pc, la programación la quería hacer en Winbugs -si aunque no lo crean- pero me tope con
muchas cosas raras a la hora de manejar el puerto paralelo con C, asi que mejor regrese a mi confiable
Linux y ahi como en casa de nuevo.
La electrónica es muy básica, solo un buffer a la salida del puerto paralelo -por si las moscas- de ahi a los pics con un bus de 8 bits y de los pics directo a los servos.
Lo frustrante:

Tuve muchos problemas para grabar los PIC con el ICPROG, de hecho jodi unos 2 pics y otro por insuficiencia motriz -jujuju-, inicialmente queria sacar la señal PWM con la PC, pero el pulso era muy inestable, por eso decidi usar los PIC, luego lo del puerto paralelo en windows que mandaba lo que se le daba la gana y solo de vez en cuando hacia lo correcto.
Lo que sigue:
Pues tengo ganas de hacerle varias modificaciones, espero no dejarlo como muchos otros proyectos, entre las mas importantes:
-Ajustar bien el periodo (aunque los servos funcionan me dejan la sensacion de que pueden estar mejor)
-Mejorar el cableado en las protos porque lo hice feo.
-Agregarle una pinza.
-Obtener el modelo matemático para poder hacer cosas mas interesantes.
-Agregar sensores para grabar posiciones.
-Hacer la interfaz grafica en java.
Eso y mucho mas, pero de entrada esas.

El Fin.
Friday, January 26, 2007
ENTENDIENDO IPTABLES
Este escrito tiene por objeto disipar algunas dudas acerca del camino que siguen los paquetes dentro del ruteador, si como a mi se te hace difícil saber en que cadena aplicar determinada regla de ruteo esta mini-guia te ayudará, si lo que quieres es un tutorial de iptables como tal, esta guia no te servirá, para eso te recomiendo visitar:
He aquí lo primero que para mi fue indispensable para empezar a aplicar reglas de ruteo. Se trata de un diagrama que muestra el camino que seguiría un paquete una vez que ha llegado al ruteador:

--> -->
Como comentario, si el ruteador estuviera entre Internet y una LAN tanto los paquetes que llegan de Internet como los que salen de la LAN hacia Internet pasan el mismo camino de entrada a la salida.
La segunda cuestión importante en las reglas es saber que acciones podemos aplicar en cada cadena y en cada tabla para lo cual la siguiente tabla puede ayudar:
Tabla (Table)
|
Cadena (Chain)
|
Acciones (Targets)
|
|---|---|---|
FILTER
|
INPUT
|
ACCEPT
|
DROP
| ||
REJECT
| ||
FORWARD
|
REJECT
| |
OUTPUT
|
ACCEPT
| |
DROP
| ||
REJECT
| ||
NAT
|
PREROUTING
|
REDIDRECT
|
DNAT
| ||
DROP
| ||
OUTPUT
|
DNAT
| |
REDIRECT
| ||
REJECT
| ||
POSTROUTING
|
MASQUERADE
| |
SNAT
| ||
MANGLE
|
PREROUTING
|
TOS
|
INPUT
|
REJECT
| |
TOS
| ||
FORWARD
|
REJECT
| |
TOS
| ||
OUTPUT
|
REJECT
| |
TOS
| ||
POSTROUTING
|
TOS
|
Debo decir que no he considerado todas las acciones posibles, algunas por que pueden resultar peligrosas y otras porque no son de uso muy común.
Si quieres una lista completa puedes ver el tutorial:
Cabe mencionar que cuando no especificas una tabla la que se usa por defecto es “filter”.
-->
Sunday, February 05, 2006
No hay nada aqui
No encontrarás nada interesante aqui, solo es un blog para
conocer a fondo el funcionamiento y para hacer pruebas que
me interesan.
Probando Applet
Probando Codigo Externo
marginwidth="0" marginheight="0">
conocer a fondo el funcionamiento y para hacer pruebas que
me interesan.
Probando Applet
Probando Codigo Externo
marginwidth="0" marginheight="0">
Subscribe to:
Posts (Atom)
LCD 20x4 con CH32V003
Últimamente se ha popularizado mucho este microcontrolador CH32V003 por ser quizá el mas barato del mercado, lo he estado probando bastante ...
-
Ahora les traigo el avance de la estación de juego que documente en una entrada anterior, le mande a hacer un cajoncito, de madera y lo cone...
-
El tema surgio el otro dia a proposito de un post en un grupo de facebook al respecto del poco uso últimamente del IRC (Internet Relay Chat...
-
Últimamente se ha popularizado mucho este microcontrolador CH32V003 por ser quizá el mas barato del mercado, lo he estado probando bastante ...