jueves, 6 de marzo de 2014

Epson TX135 cartuchos compatibles SOLUCIONADO


Mi impresora Epson TX135 se quedó sin tinta, cuando fui a comprar los originales costaban cerca de U$S 20 , averigüe por compatibles y los mismos costaban U$S 3

Sin pensarlo compré compatibles, pero al colocarlos la impresora no los reconoció diciendo que no tenia tinta.
Leyendo parece ser que los cartuchos tienen un chip por el cual Epson se da cuenta que no son originales, y hay dos archivitos que se ejecutan para detectar ello.

La solución la encontré en el siguiente post de TARINGA
http://www.taringa.net/comunidades/serviciotecnico/5844431/Epson-TX-135-no-reconoce-cartu-solucionado.html

En resumen los pasos siguientes me funcionaron perfectamente 
¿Como solucionar para reconocer cartucho en impresora tx135
1 desconectar Internet. Y desconectar el cable USB 
2 Quitar todos los cartuchos y volver a instalarlos. (volvio a reconocer el alternativo) 
3 Quite los archivos mencionados (OSASOI.EXE Y E_FARNHJB.EXE) para evitar que Epson entre a mi PC a chequear cartuchos. 
4 Volvi a conectar internet y el cable usb 


UBICACION DE LOS DOS ARCHIVOS
=============================
C:\WINDOWS\system32\spool\drivers\w32x86\epsontx133_tx135c6a5


Supongo que lo mismo ocurrirá con las TX120 - TX123 - TX125 - TX130 - TX133 - TX 235

lunes, 15 de julio de 2013

Genexus y "No operations allowed after connection closed.Connection was implicitly closed by the driver."


Me he vuelto loco con este error, todavía no tengo muy claro a que se debe pero parece ser que Genexus mantiene la conexion abierta mientras mysql la cerró, al intentar acceder nuevamente la webapp cae.

Sintomas:  En un webpanel cualquiera el cual se mostraba perfectamente, luego de transcurrida cierta cantidad de tiempo , al hacer refresh aparece el error:

Estado HTTP 500 -


type Informe de Excepción
mensaje
descripción El servidor encontró un error interno () que hizo que no pudiera rellenar este requerimiento.
excepción
javax.servlet.ServletException: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.Connection was implicitly closed by the driver.
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
 at java.lang.reflect.Constructor.newInstance(Unknown Source)
 at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
 at com.mysql.jdbc.Util.getInstance(Util.java:381)
 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1012)
 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:986)
 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:981)
 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
 at com.mysql.jdbc.ConnectionImpl.throwConnectionClosedException(ConnectionImpl.java:1201)
 at com.mysql.jdbc.ConnectionImpl.checkClosed(ConnectionImpl.java:1188)
 at com.mysql.jdbc.ConnectionImpl.prepareStatement(ConnectionImpl.java:4273)
 at com.mysql.jdbc.ConnectionImpl.prepareStatement(ConnectionImpl.java:4239)
 at com.genexus.db.driver.GXConnection.prepareStatement(Unknown Source)
 at com.genexus.db.driver.PreparedStatementCache.createStatement(Unknown Source)
 at com.genexus.db.driver.PreparedStatementCache.getStatement(Unknown Source)
 at com.genexus.db.driver.GXConnection.getStatement(Unknown Source)
 at com.genexus.db.driver.GXConnection.getStatement(Unknown Source)
 at com.genexus.db.SentenceProvider.getPreparedStatement(Unknown Source)
 at com.genexus.db.ForEachCursor.preExecute(Unknown Source)
 at com.genexus.db.DataStoreProvider.execute(Unknown Source)
 at com.genexus.db.DataStoreProvider.execute(Unknown Source)
 at com.genexus.db.DataStoreProvider.execute(Unknown Source)
 at com.genexus.db.DataStoreProvider.execute(Unknown Source)
 at com.genexus.db.DataStoreProvider.execute(Unknown Source)

Lo primero que hice fue ver los valores de conexión del mysql, las variables interactive_timeout y wait_timeout
Para ello en el administrador de consultas de mysql ejecutar: Show Variables like '%timeout'

Ambas estaban con el valor 300 , es decir que transcurridos 300 segundos mysql cerraría la conexión.

Visto eso se me ocurrió agregar en el connection string un ?autoreconnect=true para que se vuelva a conectar, pero eso empeoro las cosas ya que quedaba intentando reconectar hasta caer por heap space error, matandome el servidor.

Luego de semanas de idas y venidas la solución aparentemente fue la siguiente:

Setear las propiedades del datastore Recycle type y Recycle time asi:
El valor 3 de recycle time corresponde a un valor menor al seteado en wait_timout de mysql, hay que tener en cuenta que uno va expresado en minutos y el otro en segundos.




lunes, 3 de diciembre de 2007

Linea de Comando en el boton derecho

Esto esta interesante...
Cuantas veces tuviste que ir a un directorio en una ventana DOS ???
Hacer inicio - Ejecutar , escribir cmd dar enter para que aparezca la consola y ahi darle cd bla bla bla y lo mas lindo es cuando los directorios son con nombres largos, o hay que ponerle el chirimbolo "~" ... archiv~1 micros~2 etc
Bueno, con estos pocos pasos queda una opción en el menu contextual de cualquier carpeta, de modo de poder abrir una ventana de la consola de comandos directamente en esa carpeta.


Acceder al Registro del sistema.
Para ello click en el boton Inicio - Ejecutar, escribir regedit y Aceptar













Ir en la parte izquierda a
HKEY_CLASSES_ROOT\Directory\Shell
Ahi hacer click derecho sobre Shell - Nuevo - Clave y a la carpeta nombrarla como "Consola"





















En el cuadro de la derecha hacer doble click y escribir lo que quieras que aparezca en el menu contextual, por ejemplo "Abrir con MS DOS " y dar aceptar
Ver los cuadros rojos de la figura:














Nuevamente hay que dar click derecho en la carpeta que creamos ( Consola en este caso ) y elegir del menu contextual Nuevo - Clave y nombrar a la carpeta como "command" ( sin comillas porsupuesto !!!!! ) Dar doble click a la derecha y escribir
cmd.exe /k cd "%1" ( las comillas del %1 si van !!!! ) :o)

Ver los cuadros rojos de la figura:














Cerra el regedit y ya esta pronto.

Para probarlo basta con dar click derecho sobre alguna carpeta en mi pc por ejemplo y en el menu contextual elegir Abrir con MS DOS















y aparecerá la ventana de comandos ya en la carpeta en cuestión.




















Espero que sea útil

jueves, 25 de octubre de 2007

Porque RoR ?...

RoR vs PHP..
No se, me llamo la atención que Artech finalmente saque un generador Ruby on Rails, cuando desde hace años la comunidad Gx viene pidiendo uno PHP. Y se lo ponga bajo la sigla LAMP, como alternativa a los lenguajes libres.
LAMP es LAMP, no es LAMR.
Empecé a cuestionarme porque. No conozco Ruby on Rails asi que no puedo decir que es peor ni mejor que PHP, tampoco conozco PHP lo suficiente siquiera.
Lo que si se, y creo que no se discute, es que PHP es millones de veces mas utilizado ( por ende mas necesitado), difundido, etc. Basta con entrar al sitio de Ruby y ver "Success Stories", no hay mucha cosa.
Ahora, me surgió la pregunta:
Porque no PHP y si Ruby ?
Que tiene Ruby y que le falta a PHP ?

No tardé mucho en ver donde nació Ruby, donde se usa Ruby, quienes programan con Ruby, donde encajaría de forma sobrenatural un generador Ruby... En Oriente.
Uruguay es demasiado pequeño, Sudamerica ya esta conociendo el producto y la verdad, la jugada de Artech para introducir aún más Genexus en el mercado de Oriente fue formidable, si Gx se afianza ahi, Genexus va a crecer y con él crecemos todos, de eso no hay duda.
Lo único que me queda es el sabor amargo de que por entrar al mercado de oriente Artech haya dejado de lado a todos los usuarios que aguardaban ansiosamente un generador PHP. Primaron los intereses empresariales por sobre los de la comunidad.
La vida esta llena de estas decisiones estrategicas donde priman los objetivos individuales sobre los colectivos.
Esta bien eso?
No lo se...

sábado, 6 de octubre de 2007

Este post no viene de teclas, ni de tecnología.
Hace muchos años escuche en la 105.9 ( radio que detesto dicho sea de paso ) un recitado de Alfredo Zitarrosa que realmente me impactó. Anduve trás él durante años, recorri radios incluso tratando de conseguirlo y nunca pude, es válido decir que no existía internet en aquel entonces. Abandoné la búsqueda y hace unos meses me acordé de aquel tema, trate con kazaa, ares, torrent, mula y mil cosas, pero nada. Les escribí un mail a las hijas de Zitarrosa y tampoco. En fin... finalmente dí con él de la forma mas imprevista, bajé de un sitio un disco y ahi estaba.
Pájaro Rival, y pongo su letra a continuación.


Aquella voz desgarrada, algo afónica; que no obstante afinaba a la perfección, era hija del cante, del cante grande. No sé si vive aún –excepto en los discos que grabó–, pero se llamaba Ramón y seguirá siendo, para muchos, el hijo del almacenero extremeño, borrachín, de nombre Isaac, con boliche instalado al sur de la provincia de Buenos Aires. Físicamente magro y musculoso, algo estrábico, casi siempre sonriente y dispuesto a compartirlo todo, tocaba muy bien la guitarra, para lo muy poco que le había enseñado su padre, que era cantor, cantaor, hondo por siguiriyas, alegre y sencillo por sevillanas, alegrías, pero apenas rasgueaba, como es natural en tales casos.
Si está vivo, Ramón debe tener ahora sesenta y siete años. La penúltima vez que lo vi estaba recién desgarrado por la psicoanalista, acababa de recibir un perro regalado al que bautizó “Rais”, me contó, el día que reveló algunas características y el nombre de su padre, como primera aproximación a sus asuntos, en plan de amigos. La psicoanalista era flaca pero joven, inteligente pero rapaz, honesta pero no mucho, digamos lo necesario, de nombre Inés. Así por ejemplo, en la primera –y única– ocasión que tuve de hablar con ella a solas, le reproché tener atrapado a Ramón entre sus ramas, explicándole que yo sabía lo que es el análisis y hasta refiriéndome, con ironía, a Karen Horney. Ella intentó no sé qué psicodrama, levantando tetas y ahuecando el tono de la conversación, pero quedó claro que yo era amigo de Ramón y él debía cantar, en lugar de andar acompañando cantores por ahí, de Buenos Aires a Madrid, de Madrid a Barcelona, etcétera.
Allá por la década del sesenta Ramón acompañaba a una cantante porteña de clase equis y vivía en París con su psicoanalista. Yo también cantaba y vivía en Madrid. Durante los seis años que transcurrieron hasta que él volvió a Buenos Aires y yo, poco después, a Montevideo, nos veíamos ocasionalmente en una u otra ciudad, nos amanecíamos entre copas, nos escribíamos con frecuencia y, de vez en cuando, nos encontrábamos en festivales, recitales de carácter político u otros, en los que compartíamos el escenario con sus cantores de turno que lo habían contratado. Yo insistía, cada vez, en que tenía que dejarse de joder y decidirse a cantar. ¡Había que oírlo! Guitarrista acompañante de cualquiera, costaba mucho abrir un espacio para él en una reunión, para que se decidiese a soltar un estilo, una milonga, un vals, con aquella voz raspada, tensa, delicada y dramática, de amplísimo registro, como pocas se pueden oír. Terminé convenciéndolo de que grabara, asumiera su voz. Una tarde, en Madrid, firmó un contrato. Su primer disco registra una versión inimitable de “Guitarra mía”, versos de Julio Herrera que él musicalizó, galerones, alcatraces y hasta unas alegrías flamencas aprendidas de su padre, de las que ofrece una versión burlesca, diabólica, imbailable.
Su vida discográfica iba a ser breve. Sólo grabó una veintena de canciones que vendieron algunos miles de ejemplares en Europa y Argentina, donde –me gustaría saberlo con certeza–, tal vez se haya convertido en bolichero. Inés lo abandonó cuando estaba en Madrid grabando su segundo y último disco. Yo alcancé a despedirme cuando había decidido regresar, malherido, tras un largo autoexilio, en el que estuvo olvidando dolores, vergüenzas archivadas, en nuestro último encuentro, Barcelona: larga noche en la que cantamos muchos, nos bebimos todo y amanecimos hablando, Ramón y yo, solos, cerca de los barcos dormidos, sobre clases de pájaros.
– El viejo era un sorete, ¿sabés?
– ¿Por qué decís eso?
– Vos sabés que el viejo chupaba...
– Sí, vos me contaste.
– Cerraba el boliche y empezaba él...
Ramón carraspeó:
– Una noche llegó a casa mamado. Yo abría el almacén y estaba durmiendo. Él se levantaba a mediodía. Eran las tres de la mañana... Y tenía un canario de Madera.
– ¿Un canario de madera?
– Sí. De la isla de Madera. Son raros allá. Verde-amarillos, con la cabecita color gris aceituna. Se lo había regalado yo. Yo lo quería al viejo. Y el canario también. Era ver al viejo y empezaba: “prrrrrrr”, primero bajito, como barítono. El viejo lo miraba o le decía algo y él saltaba al palito más alto, alzaba el tono y era como una alegría, vibraba como de pasión, le temblaban las alitas... ¿Vos viste cómo se les paran las plumas de la garganta y hasta llegás a ver los parlantes de hueso que tienen en el lugar de las orejas?
– Sí.
– Bueno. Esa noche el viejo llegó alicorado como siempre y el canario empezó: “prrrrrrr”. Estuvo, qué sé yo, como no sé, diez, quince segundos, no te quiero exagerar... y de repente se apagó...
La mano de Ramón se había clavado en mi antebrazo.
– Yo me había despertado al oír la puerta, la llave del viejo en la puerta, y había prendido un cigarro, estaba sentado en la cama. ¡Hasta que de repente, aquellos chillidos!
Los barcos chirriaron.
– ¡Sí, mirá...! –a Ramón se le caían las lágrimas. Estamos muy en pedo, pensé yo.
– ¡Mirá, mirá...! Me levanté y corrí hasta la cocina...
Mientras los barcos se mecían crujiendo como ataúdes, se hizo un hondo silencio y Ramón prosiguió:
– ¡¿Sabés lo que había hecho el viejo?!
– ¡Aquí el único que canta soy yo! –me adelanté a narrar lo que yo sabía, pero Ramón ya no recordaba habérmelo contado.
– ¡Sí, sí...! ¡Había rociado al canario con alcohol y le había arrimado un fósforo!
La voz de Pastora Pavón acudió a consolarnos desde algún tocadiscos lejano.
– El bichito estaba casi carbonizado, tiritando en el piso de la jaula y chillando, chillando como una chicharra en el campo, en verano ¡¿te acordás?!
– Ramón, escuchame, tranquilizate...
– Alcancé a sacarlo y envolverlo en un repasador... Pero no había nada que hacer... Se murió envuelto en aquel trapo, saltando como un bultito arriba de la mesa, chillando, gimiendo, cada vez más despacito... Y yo empecé a llorar, a gritar, qué sé yo, le di una patada a la mesa y le encajé al viejo una trompada como nunca le pegué a nadie, no sé, creo que lo noqueé, ¡lo volteé de la silla del piñazo! Y me fui. Me fui de casa. Nunca volví. La vieja había muerto cuatro años antes. El viejo se quedaba solo, pero yo nunca volví. ¡No lo vi morir, ni sé cuándo se murió, ni me interesa!
Un lanchón topó contra la marina y rechinó largamente, con toda su osamenta.
– Por eso canto afónico. Inés me explicó.

martes, 14 de agosto de 2007

Desarrolladores "envaguecidos" ...

Me pregunto, donde quedaron los dispuestos desarrolladores que fuimos ?
Aquellas personas que no les importaba escribir miles de lineas en un prg ....

Hoy me cuesta leer el foro de Genexus y a veces ver como piden cosas como:
"Estaria bueno incorporar a Gx un boton que haga saltar un conejo de mi pc"
o "No estaria de mas el uso de skins para las aplicaciones"
Cosas mágicas, y otras que ni tanto, pero que sin dudas nos ahorrarian escribir 20 líneas de código, y si no contamos con esa prestación en Gx, nos cuesta una enormidad encarar esas 20 líneas.
Un claro ejemplo fue el tema de los combos dinámicos enlazados que hasta la versión 9 no los teniamos y habia que hacer 2 for each para tener el efecto querido.
Sin dejar de ver que gracias a esa vagancia nuestra Gx es lo que es, y hace que el producto se mejore constantemente. Me pregunto si no estaremos un poco vagos...

martes, 15 de mayo de 2007

No todo lo que es oro brilla

Estoy por cumplir 10 años con Genexus.
La magia
En aquellos tiempos el producto no era tan difundido, no era fácil acceder a él y todos comentabamos "no programás nada!", "Genexus te hace todo", y esas frases catalogandolo de mágico.

Los cuadrados
Asi fue que terminé la carrera y logré entrar a trabajar en un lugar que utilizaban el "producto milagroso", y en ese entonces le pude hacer doble click al icono tan ansiado. Mi primer aplicación fue realmente básica. Un par de transacciones y cuatro o cinco workpanels.
Lo primero que me llamo la atención: Que fea queda mi aplicacion.. Que cuadrado todo... y realmente, creo que hasta hoy veo que las aplicaciones generadas con Gx tienen ese "cuadradismo", basta en un comercio ver su sistema y darnos cuenta que fue desarrollado con Gx.
A los pocos días fui a Artech a hacer algunos cursos, el bàsico, luego client-server, Java e Internet, y mis aplicaciones con Genexus me seguian resultando igual de cuadradas, era claro, los desarrollos en visual basic me daban mucha mas flexibilidad, ya sea estética o a la hora de tener el control sobre el código. Pero bueno, Genexus debia tener algo, no?.

La realidad que importa
Entré en otra empresa a trabajar en un sistema bastante grande, cientos de objetos y tablas, los clientes al teléfono constantemente pidiendo requerimientos, y ahi pensé que sería de mi si esa aplicación hubiera estado desarrollada en visual basic, o clipper, o C !!!!!! ( me volvería loco entre cientos de miles de líneas de código creadas por otro programador), con Gx es abrir el objeto, ver las reglas, las condiciones, modificar algunas lineas, especificar, generar y listo. Los cientos de miles de líneas de cualquier lenguaje tradicional se resumen a unas pocas con genexus. Lo cual el mantenimiento de una aplicación resulta enormemente mas liviano a la hora de rotar el personal ( y sin rotacion también ) y le damos a nuestros clientes una respuesta muchisimo mas rápida y satisfactoria.

Esa aplicación estaba desarrollada para Visual FoxPro DBFs y se nos pidió migrarla a SQL Server, el proceso tomo una semana y el 95% del tiempo se fue en pruebas. Nuevamente, cuanto hubiese tomado en otro lenguaje migrar cientos de programas a la nueva plataforma ???!!!!, es impensable.
Cambiar el nombre de un atributo, o el tipo de datos, hace que se modifiquen todas las variables basadas en él, sin tener que tocar un solo programa; solo regenerar, un click. Hacer un reporte, mandar un mail, exportar a excel, etc.

Genexus no es mágico, no generá aplicaciones muy vistosas, pero me queda claro que hace sencilla la tarea de programar, nos permite rapidos desarrollos y eficientes. Dando así tempranas respuestas a nuestros clientes.

En definitiva, no todo lo que es oro brilla.