viernes 2 de diciembre de 2011

Buscando resources incluidos en un proyecto

Hoy me pidieron ayuda y para variar no pude ayudar, la cosa es que necesitaba encontrar un archivo incluido en un proyecto, pero incluido como "embedded resource" en un proyecto de tipo Winform, pero no sabia con el nombre que lo dejaba al momento de copilar. Después de buscar en google encontré un script para ver todos los resources incluidos en el proyecto donde indica el nombre que quedan al momento de compilar.
System.Reflection.Assembly thisExe; 
thisExe = System.Reflection.Assembly.GetExecutingAssembly();
string [] resources = thisExe.GetManifestResourceNames();
string list = "";

// pasando a un string la lista de recursos
foreach (string resource in resources)
   list += resource + "\r\n";

--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

martes 22 de noviembre de 2011

Orientación y cumplimientos de objetivos

Es comun ver en los ofertas de trabajo el item de "Orientacion y cumplimiento de objetivos", si bien para mucho este item es solo sentido común "Como no voy a cumplir mis objetivos, si me dan todas las herramientas para hacerlo", para otras personas no es tan así.

En los años que llevo trabajando que no son pocos pero tampoco demasiados, he visto en bastantes personas con problemas la orientación de objetivos o tareas.

Un ejemplo, si me pidieran un requerimiento que simplemente sume 2 números, yo lo primero que haria es hacer un método que sume 2 números independiente si esos 2 números vienen de una base de datos, webservices, archivo de textos, variables de session o de aplicacion, y después de hacer la pieza de código que me pidieron hacer y ver que esta funcionando correctamente me dedico a ver que valores enviarle a mi código. para mi eso es sentido común (a lo mejor estoy equivocado), pero me encontrado que para hacer algo tan simple, se dan vueltas por base de datos, por webservices, buscando frameworks de ultima tecnología para simplemente para sumar 2 números. Ojo que hay casos que la investigación si sirve y de mucho.

Otra caso por ejemplo,  una vez pregunte a varios personas ¿Como puedo hacer para manejar las transacciones con .net y Sql server, cosa de que si hay un error, poder hacer un rollback(son varios insert a varias tablas)? y me lleve muchas sorpresas, uno me dijo haz un procedimiento almacenado que reciba todos los parámetros y manejas la transacción en el procedimiento almacenado). Personalmente lo encontré una locura, tener un procedimiento con demasiado parametros ya que debería insertar en varias tablas. Al final en .net el objecto de conexión tiene un transaction al cual le puedo decir que haga un rollback si ocurre una exception, en una sola linea. (igual esto me pasa por andar preguntando cuestiones antes de buscar en google).

También me he encontrado gente que cuando uno le hace una pregunta bien super especifica y se dan vueltas como si estuvieran cuentiando, y cosas no solo de informática. como por ejemplo para una pregunta muy simple como: ¿hace calor afuera?, uno esperaría como 3 opciones de respuesta:

  • Si
  • no
  • un poco, no mucho, etc.
, pero si te dicen depende que tan calenturiento bueno para el calor eres, WTF  si uno pregunta algo especifico y alguien especifico es para que me diga respecto a el, su percepción, su parecer, su opinión, no con respecto a mi o a todo el mundo. 

Por ultimo, si bien me encontrado con gente como la de mas arriba, la mayoría de la gente con la que he trabajo no tiene ese problema, muy por el contrario sabe muy bien cumplir objetivos, sabe lo que tiene que hacer para que las cosas funcionen, tienen opinión sobre los temas que se puedan tratar, etc.





--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

lunes 17 de octubre de 2011

Generando datos de prueba de forma automatica

Por fin encontré con el sitio que andaba buscando hace mucho, siempre he tenido problemas para generar información de prueba simulada,  hoy en mi ratos de ocio investacion di con http://www.generatedata.com/, un sitio que permite generar datos de pruebas,  con la capasidad de entregar como resultado:
  • SQL: Generación de la tabla  e insert tanto para Mysql como para oracle.
  • HTML
  • EXCEL
  • SQL
  • XML


Como pueden ver la interfaz es bastante intuitiva, yo para una prueba probe con mysql y 2 campos(como se ve en la imagen y el resultado fue el siguiente:

CREATE TABLE personas (
  `id` mediumint(8) unsigned NOT NULL auto_increment, 
  `nombre` varchar(255) default NULL,
  `Email` varchar(255) default NULL,
  PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1; 


INSERT INTO `personas` (`nombre`,`Email`) VALUES ('Noah','Quisque.nonummy@arcuSed.org');
INSERT INTO `personas` (`nombre`,`Email`) VALUES ('Avram','euismod@nibhPhasellus.org');
INSERT INTO `personas` (`nombre`,`Email`) VALUES ('Kibo','Fusce.dolor@erat.org');
INSERT INTO `personas` (`nombre`,`Email`) VALUES ('Kareem','Aenean@Nullam.ca');
INSERT INTO `personas` (`nombre`,`Email`) VALUES ('Yardley','mi@maurisrhoncusid.ca');


Esta realmente muy útil este sitio.





--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

Bienvenido Grand Nomade 2012

Después de haber tenido bastante problemas  con el auto anterior, decidí comprar un auto cero kilometros, es la primera vez que manejo  un auto 0 KM, y la sensación es increíble, cero ruidos, saber que auto no va a tener  problemas en un largo tiempo, es genial.

Con respecto al equipamiento, si bien no es el top de linea, yo lo encuentro genial, aquí algunas cosas de las que me llaman la atención:

  • Motor: 2,4 con VVT, mi Grand Nomade anterior era 2.0 y sin VVT, y se siente bastante la diferencia.
  • Transmicion: Manual al igual que el otro.
  • Traccion: 4x2, el anterior era 4x4 y lo use solamente 2 veces y solo para probar
  • LLantas: llantas de aleacion aro 17
  • Inmovilizador: No es de fabrica, pero se lo intalaron gratis en derco, es para que no se roben el auto, cada vez que parto tengo que poner una clave, sin esa clave el auto no parte. 
  • Aire Acondicionado con Climatizador automatico: es aire acondicionado pero uno indica la temperatura que uno desea, y el auto solo sabe la cantidad y nivel de temperatura del aire. muy bueno :D.
  • Neblineros: Alumbran ene, en el anterior no tenia.
  • Radio con entrada aux: Radio con mp3 y con salida auxiliar frontal, las versiones anteriores no tenían  entrada auxiliar y ponérsela era carisimo.
  • Airbag: Solamente 2 frontales.
  • Computador abordo: Indica el consumo promedio, cuantos kilómetros puedo andar con la bencina que queda en el estanque.
  • Consumo: Lo probé en 2 fin de semana,  y en carretera me llego a dar 14 km por litro andando entre 80 y 100 KM, y a 120 KM me da 12 KMxL, lo cual no lo encuentro para nada un consumo exagerado. 
como resumen, estoy realmente contentisimo con la compra, aquí dejo algunas fotitos :D

















--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

lunes 8 de agosto de 2011

incendio en la esquina de mi casa

Para los que no vieron las noticias , ayer la esquina de maipu con rosas se produjo una fuga de gas y con esto un incendio, el cual duro aproximadamente 6 horas, ya que los bomberos no tenian que apagar el fuego para avitar una explosion, solo debian controlarlo.


MetroGas al rededor de las 15 horas corto el suministro de gas para que los bomberos pudieran apagar el incendio.

Lo importante es que no hubo ninguna victima de ningun tipo.

Aqui unas fotos, las primeras son las publicados en la radio bio bio, (ver noticia)






Ahora mis fotos tomadas desde el celular,










ahora las fotos del día después de la fuga de gas.






--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

martes 5 de julio de 2011

OPENQUERY -- OLE DB provider 'SQLOLEDB' supplied inconsistent metadata for a column.

Desde hace un tiempo que tengo 2 servidores Sql Server likeados, es bastante util y comodo, ya que simplemente hacia las consultas al otro servidor de la siguiente forma:


SELECT * FROM LinkedServerName.SchemaName.dbo.TableName


Pero de un momento a otro al consultar una tabla me daba el siguiente error


OLE DB provider 'SQLOLEDB' supplied inconsistent metadata for a column. Metadata information was changed at execution time.


Tenia el presentimiento de que habian cambiado algun tipo de dato o algo en el servidor enlazado (LinkedServerName).

Averiguando por ahi, encontre que se podia ver especificamente cual era la columna que tenia el problema, esto se hace habilitando la transaccion 7300, de la siguiente forma:


DBCC TRACEON (7300)
SELECT * FROM LinkedServerName.SchemaName.dbo.TableName
DBCC TRACEOFF (7300)


Esto da un error, harto mas conocido, como el que me arrojo a mi:
OLE DB error trace [Non-interface error: Column 'PLCur' (compile-time ordinal 16) of object ........., pero un sigue siendo chino para mi, pero al menos sabia que era un problema con la columna "PLCur".

Despues de seguir buscando y buscando, encontre una sentencia para realizar querys de forma distribuida, la cual recomienda de Microsoft, esta es openQuery;


SELECT * from OPENQUERY(LinkedServerName, 'SELECT * FROM SchemaName.dbo.TableName')


De esta forma, ya no tengo mas el maldito problema, pero la gran diferencia que hay en hacer consultas directas y con Openquery, es que OpenQuery ejecuta la consulta en el servidor linkeado y solo retorna el resultado, Por otra parte las consultas directas retornan toda la informacion, y el procesamiento se ejecuta de forma local.






--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

miércoles 29 de junio de 2011

Resetear clave de usuarios de mediaWiki

Cuantas veces no les ha pasado que olvidan la clave de mediawiki, bueno a mi me pasa muy seguido, aunque no tanto como a mis compañeros de trabajos.

Aquí un simple sql(mysql) para poder cambiar el password por base de datos



UPDATE user SET user_password = MD5(CONCAT(user_id, '-', MD5('NEWPASS')))
WHERE user_id =1

--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com