Entradas

Mostrando entradas 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

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 ba

Generando datos de prueba de forma automatica

Imagen
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

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 ......

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

Vista para mobiles de blogger

Imagen
hoy me sorprendido al ver la configuracion de blogger, ahora existe la opcion de configurar un template para la vista desde mobiles, ahora solo se puede activar o desactivar esta opcion, este template no es configurable todavia. aqui una imagen de como se ve este blog en mi iphone: Lee este post en Ingles -- Atte. Victor Hugo Saavedra http://vhspiceros.blogspot.com

Buscando autos con python y chileautos

Un compañero de trabajo paul beltran anda en búsqueda de un toyota yaris, pero como muchos saben este es un auto muy cotizado, y cuando llega a llamar ya el auto se vendió . Yo le dije que usara buskautos , ya que ellos por cada publicación de autos, envían un tweet a todos sus seguidores en twitter. Por ultimo me parecido bastante interesante, tratar de hacer una aplicación que busque autos en la pagina de chileautos y encontrar las publicaciones nuevas. esto se puede hacer, por que los parámetros de búsqueda en su sitio son pasados por las urls. Bueno aquí el buscador. A esta aplicación se le pueden hacer mejoras obviamente, pero ya envía por correo con los links de las nuevas publicaciones, en el futuro se podría hacer que detecte los aumentos o disminuciones de precios. Ya terminado este desarrollo, que es bastante ocioso la vedad, ahora solo me queda configurarlo en el "programador de tareas" de windows para que se ejecute unas 2 veces al día :D.   Ahora

Importando librerias de .net en Ironpython

IronPython es python corriendo sobre .net, como tambien existe Jython que es sobre la jvm. La gracia de estas estos es usar toda la comodidad de un lenguaje extremadamente simple de escribir, leer y usar las librerias de .net o java por ejemplo. Para utilizar las librerias de .net primero se debe importar Common Language Runtime , y luego importar la libreria de .net que queramos usar. Por ejemplo para realizar unas consultas la base de datos y recorrer el resultado seria tan simplo como import clr clr.AddReference('System.Data') from System.Data import connection = SqlClient.SqlConnection("server=localhost,1433;uid=myuser;pwd=mypass;database=mydatabase;") query ="select * from person"; command = connection.CreateCommand() command.Connection = connection command.CommandText = query command.CommandType = CommandType.Text connection.Open() reader = command.ExecuteReader() while reader.Read(): print (reader["name"]) reader.Close() connection

Caso practico por que usar una Interfaz

a causa del post anterior Cannot serialize member 'Objects' of type 'System.Collections.Generic.IList`1.... varios me preguntaron por que usar Ilist y no List directamente. Bueno aquí un pequeño y muy cotidiano ejemplo, que sirve para entender las gracias de las interfaces. Supongamos que tenemos 2 clases una llamada "auto" y otra "camion" y ambas tienen un numero de patente. y en algún reporte o pantalla solo tenemos que listar solo la Patente seria de la siguiente forma. public interface IPatentable { String Patente { set; get; } } public class Auto:IPatentable { public String Patente { set; get; } public Int32 CantidadDePuertas { set; get; } } public class Camion:IPatentable { public String Patente { set; get; } public Int64 Peso { set; get; } } y después en un objeto Dao , para rescatar los datos desde algún origen, ya sea base de datos, webservice, etc.: public IList<IPatentable> GetPAtentes() { var auto1 = new Aut

Cannot serialize member 'Objects' of type 'System.Collections.Generic.IList`1....

Hoy me he encontrado con este problema, trantado de serializar un objeto a xml, por alguna razón no se pueden serializar objetos que contengan atributos Ilist. La foma de la que estaba trantando es la siguiente [Serializable] public class Person{ public Person (){ Address = new list<Address>(); } public String Name{set;get;} public IList<Address> Address {set;get;} public void ToXml() { var serializer = new XmlSerializer(typeof(Voucher)); var writer = new XmlTextWriter(Console.Out); serializer.Serialize(writer, this); } } y obviamente ejecuto esto desde un test unitario como el que sigue: [Test] public void TestForPersonToXml() { var person = new person(); Person.NAme = "victor Hugo Saavedra"; var Add = new Address(); add.street = "Alameda"; add.number = "1234"; Person.Address.add(add) person.ToXml(); } Pero al momento de ejecutar el test me da el

Mis nuevos avatar

Imagen
Mis nuevas imagenes, tanto para twitter google talk. las cuales las genere con http://www.pocoyize.com/online/ pero la version para iphone -- Atte. Victor Hugo Saavedra http://vhspiceros.blogspot.com

DbAdapter Timeout

Hace un tiempo tuve que implementar un desarrollo en particular, que hoy en dia se esta dejando de funcionar por un maldito timeOut, ya que este se conecta a una base de datos que se encuentra en Europa. Ademas se debe usar una conexión "SQLOLEDB" si es en produccion ya que el servidor es muy antiguo. primero implemente una regla no muy bonita pero funciona de maravilla. public static DbDataAdapter GetDataAdapter(string query, String connectionString) { if (connectionString.Contains("SQLOLEDB")) return new OleDbDataAdapter(query, connectionString); return new SqlDataAdapter(query, connectionString); } De esta forma se puede determinar si crear un SqlDataAdapter o un OLEDBadapter. ¿por que adapter y no comandos y conexiones? principalmente como es un servidor remoto, el adapter solito maneja la conexión y nos permite pasar a un dataset. La implementacion seria : var adapter = ConnectionStringClass.GetDataAdapter(&quo

Django bajo apache con appserv en windows

hace unos dias atras, en realidad hace mas de una semana, trate y logre que django esta bajo apache. Bueno manos a la obra, yo tengo instalado appserv en c:\appserv y apache esta en c:\appserv\apache. ojo que esto deberia funcionar no solo para appserv, si no que para apache en general. lo primero hay que bajar modwsgi de http://code.google.com/p/modwsgi/ una vez bajado el archivo el archivo con extension .so, este se debe dejar en la carpera de los modulos de apache, en mi caso es "C:\AppServ\Apache2.2\modules". Luego necesitamos que apache lea este nuevo mod, lo cual lo hacemos agregando lo siguiente a nuestro httpd.conf (C:\AppServ\Apache2.2\conf). LoadModule wsgi_module modules/mod_wsgi-win32-ap22py27-3.3.so Ademas de esto se debe indicar el directorio sobre cual se monta y la url en que esta el website desarrollado con django, de la siguiente forma: WSGIScriptAlias /almuerzo "D:/vhs/myProyects/almuerzo/almuerzo.wsgi" <directory "D:/vhs/myProyec