Guille's profileGLM SpacePhotosBlogListsMore Tools Help

Blog


    February 19

    Web 2.0 Video

    Este es un video de Web 2.0 que muestra la evolucion de la web a lo que era. Me gusto.

    [Link de simplegeek]

    February 15

    Folklore Argentino: musica

    Si quieren escuchar un poco de folklore esta pagina se los va a pasar: Grandes frases de Inodoro Pereyra

    February 13

    Vacaciones..

    Este no es el tiiipico post para avisar que me voy de vacaciones y no voy a postear por 3 meses (ay!, que lujo) este post es mas bien para avisar que volvi.

    La semana pasada estuve de vacaciones con mi novia en cordoba y nos recorrimos el valle de Punilla y el de Tras la sierra. El primero esta entre las sierras chicas y las altas cumbres mientras aque el valle de Tras la sierra tiene su otro limite en las sierras de Pocho. Les dejo unas fotos para que vean, y si nunca fueron por esos rumbos consideren ir que es un lugar maravilloso.

    December 22

    Presentando al Ingeniero Orlando Canteros

    A la comunidad de seguidores del blog de GLM les invito conoscan al brand new Ingeniero Orlando Canteros 

    November 25

    Cumple 25, esto puede tener repercusiones en eventos futuros viteh

    El viernes cumpli 25 años, si, un cuarto de siglo ya me lo dijeron 10 veces, y a la noche festejamos con mis amigos en Nectar, que como no hubo mucha gente resulto ser un lugar copado para estar. Por suerte llevé (y traje) la cámara asi que hay fotos para ver, ya subí las fotos al espacio asi que, como digo ultimamente: clic derecho, ver fotos.

    Ahh que pena... tan bien que iba trayendo el blog, con artículos técnicos y todo.

    Bueno gracias a todos los que fueron por ir y los que se acordaron de saludarme desde lejos y no tanto.

    October 20

    Como copiarse una PC y hacerla andar en VMWare

    Resultado: Una PC Virtual que antes era (y sigue siendo) una PC de verdad.

    VMWare en wiki, para saber que es y para saber lo que es una PC Virtual.

    El proceso contiene dos problemas:

    1. Hacer la imagen de la PC que queremos copiar
    2. Lograr que esa imagen corra en VMWare.

    Para solucionar el punto 1, se puede utilizar varios metodos, el mas practico es usar algun software que cree imagenes de disco, como ghost por ejemplo, yo en mi caso use Image for Windows, que es muy atractivo porque permite crear imagenes confiables de sistemas mientras estan corriendo, sin necesidad incluso de bloquear el volumen que van a usar (C: inclusive).

    La estrategia viene por usar la misma herramienta para restaurar la imagen, siendo VMWare un ambiente tan flexible, se puede usar cualquier PC Virtual corriendo para instalar esta herramienta y montar un disco virtual nuevo que sera el disco de nuestra pc copiada, luego hacer una restauracion directamente a ese disco nuevo. Si no dispone de una PC Virtual en VMWare tambien se podria usar un Live CD.

    El segundo problema es que VMWare trabaja con una controladora SCSI, y ni bien iniciamos la PC Virtual vamos a ver una BSOD y la VM se reiniciara continuamente (se que lo vas a probar).

    Aqui lo que hay que usar es una herramienta por ejemplo VMWare P2V Assistant, pero es carisima ;) Asi que buscando en Google te van a enviar a Ultimate-P2V, no te pierdas por ese link a no ser que realmente quieras liarte con un Bart PE Builder y esas cosas.

    Seguimos (pobres), apagamos la VM y nos bajamos de VMWare la herramienta para montar discos de VMWare en unidades locales VMWare DiskMount Utility.

    Utilizamos esta herramienta para montar nuestro disco .vmdk a por ejemplo V:

    vmware-mount.exe V: path_to_hd.vmdk

    Mientras tanto, vamos a bajar desde el sitio de Ultimate-P2V el plugin del Bart-PE que hace este trabajo, desde aqui. Luego lo modificamos un poco. Los creditos de esto van para Qui Hong’s “Fix-VMSCSI” FreeP2V Plug-in.

    Ahora nos vamos a usa unidad, descomprimimos la carpeta directamente en el disco montado V: y ejecutamos los comandos

    set target_root=v:\windows

    vamos a la carpeta donde estan los archivos descomprimidos, v:\fixvmscsi\files y editamos el archivo que vamos a utilizar, como yo cree mi disco LSILogic voy a editar fixlsilogic.cmd y borrar las lineas

    %SYSTEMDRIVE%
    CD \PROGRAMS\FIXVMSCSI

    ya que estan creadas para el disco Bart PE y en nuestro caso daran problemas. Finalmente ejecutamos el comando:

    fixlsilogic.cmd

    el resultado deberia ser similar al siguiente:

    V:\FIXVMS~1\files>fixlsiscsi.cmd
    Copying symmpi.inf to V:\WINDOWS\inf folder
    1 file(s) copied.
    Copying symmpi.sys to V:\WINDOWS\system32\drivers
    1 file(s) copied.
    Loading Registry...
    The operation completed successfully.
    Importing registry keys...
    The operation completed successfully.
    "Done...Please restart the VM with the Start->Shutdown and Reboot"
    Press any key to continue . . .

    Nosotros no vamos a reiniciar la VM ya que no estamos en la VM. Vamos a desmontar el disco haciendo:

    C:
    vmware-mount.exe V: /d

    e iniciamos la Virtual Machine. La VM Magicamente bootea y vamos al tercer paso que consiste en modificar unas configuraciones e instalar las VMWare tools.

    La ultima configuracion es para evitar problemas de rendimiento, segun tengo entendido:

    1. en el administrador de dispositivos:
    2. ir a Computer y seleccionar ACPI Multiprocessor PC
    3. Properties, Driver, Update Driver
    4. Install from a list or specific...
    5. Don't search. I will...
    6. Advanced Configuration and Power Interface (ACPI) PC
    7. Aceptar / Cerrar / Reiniciar VM PC.

    Eso es todo.

    September 21

    Fotos Dev Day

    Finalmente tengo las fotos del DevDay pueden verlas aqui
    September 18

    Developer Day

    El Sábado 16 de agosto de 2006 fue el "Developer Day" en la UTN - Facultad Regional Resistencia - Chaco.

    El evento resultó de una propuesta de estudiantes de 5o año de sistemas, para recaudar fondos para ese grupo.

    El programa consistió en interesantes charlas:

    • Web Semántica - Por César Acuña
    • Programación en SQL Server 2000 y 2005 - Por Mariano Minoli
    • Lo Nuevo de Visual Basic 2005 - Por Vanina Geneiro y Diego Poza
    • Layering y ORM: Un caso real - Por Dario Quintana
    • LINQ - Por Orlando Canteros y Guillermo Ruffino
    • Web Services - Por Agustín Casiva y Marcos Ibañez

    Aunque habría querido ir a varias mas, personalmente sólo fui a la del buen amigo Dario Quintana y me saqué de encima varias dudas que tenia sobre los temas que él trató.

    Después con mi colega Orlando, hablamos un rato e hicimos unos demos del proyecto LINQ, incluyendo las mejoras que van a salir con C# 3.0 y Visual Studio "Orcas" y también cómo es el ORM de LINQ, creando una aplicación de consola que usaba DLinq para acceder y modificar datos en una base de datos SQL Express.

    También hubo fotos, pero aun no las tengo, así que luego actualizaré el post.

    September 04

    Jose is taking last one -- gotta see it

    Jose se esta por recibir de Ing. Pff casi 8 .. ahora lo veo .. ahora no...
    August 26

    Rafa ya se caso!

    Rafa, uno de mis companieros de trabajo  en la oficina se caso el viernes pasado y estuvmos para confirmarlo.
    Bueno, Uno mas!! (uno menos)
     
    Como siempre, pasen y vean las fotos   hay de todo hasta GLM bailando, tipo con miedo como yo nomás bailo, vas a encontrar si buscás bien 
    August 18

    El blog

    Bueno, en mi intento desesperado por usar la herramienta "Windows Live Writter" para postear quise usarla pero no pude levantar la foto asi que lo hago con la interfaz web. Aprovecho para divulgar el blog del amigo Jose en http://dhunver.spaces.live.com

    Asado

    Ayer jueves los vagos que trabajan nos reunimos en la casa de Jose para hacer comer un asado. Miren que cara...

    April 30

    Retruécano

    ¿Cuál mayor culpa ha tenido
    en una pasión errada:
    la que cae de rogada,
    o el que ruega de caído?
    ¿O cuál es más de culpar,
    aunque cualquiera mal haga,
    la que peca por la paga
    o el que paga por pecar?
    Pues, ¿para qué os espantáis
    de la culpa que tenéis?
    queredlas cual las hacéis
    o hacedlas cual las buscáis
    .
     
    Sor Juana Inés de la Cruz.
    April 27

    Matematica

    Una amiga me envio algo para postear, es de un libro que se llama "Matemática...¿estás ahí?"

    Asi que aquí lo pueden leer

    Una conocida serie checa de dibujos animados cuenta, en sucesivos capítulos, la historia de una princesa cuya mano es disputada por un gran número de pretendientes.
    Éstos deben convencerla: distintos episodios muestran los intentos de seducción que despliega cada uno de ellos, de los más variados e imaginativos. Así, empleando diferentes recursos, algunos más sencillos y otros verdaderamente magníficos, uno tras otro pasan los pretendientes pero nadie logra conmover, siquiera un poco, a la princesa.
    Recuerdo por ejemplo a uno de ellos mostrando una lluvia de luces y estrellas; a otro, efectuando un majestuoso vuelo y llenando el espacio con sus movimientos. Nada. Al fin de cada capítulo aparece el rostro de la princesa, el cual nunca deja ver gesto alguno.
    El episodio que cierra la serie nos proporciona el impensado final: en contraste con las maravillas ofrecidas por sus antecesores, el último de los pretendientes extrae con humildad de su capa un par de anteojos, que da a probar a la princesa: ésta se los pone, sonríe y le brinda su mano.

    En efecto, hablar de matemática no es solamente demostrar el teorema de Pitágoras: es, además, hablar del amor y contar historias de princesas. También en la matemática hay belleza. Como dijo el poeta Fernando Pessoa: “El binomio de Newton es tan hermoso como la Venus de Milo; lo que pasa es que muy poca gente se da cuenta”. Muy poca gente se da cuenta… Por eso el cuento de la princesa; porque el problema, como adivina el último de los pretendientes, es que “Lo más interesante que hay en este país, no se lo ve” (Henri Michaux, “El país de la magia”).

    Gracias Sole

    March 23

    MCAD

    El miercoles 22 de abril rendimos el examen de MSSQL 70-229 y con ese Orlando y yo somos MCAD de verdad, Rafa tambien aprobo asi que estuvimos festejando. Pasen y vean las fotos.
    March 16

    Gracias a Google (otra vez)

    Esto puede ser gracioso, pero de momento me preocupaba por el efecto de la cerveza  en el aumento de peso. Segun una explicacion -que para mi punto de vista es cientifica porque no se mucho de nutricion- dice:
    ¿Es cierto que la cerveza engorda?

    La bebidas alcohólicas están compuestas principalmente de carbohidratos (azúcar), especialmente en la elaboración de cerveza. Una lata de cerveza contiene aproximadamente 150 calorías ( equivalente a media marraqueta), de tal manera que para aquellas personas que beban mucho representará una fuente adicional de calorías(depositándose en el organismo como grasa),la cual no es comparable a la energía que entregan los alimentos, ya que estos aportan además de la energía,otros nutrientes como lo son las vitaminas y minerales.

    Luego dije: "Barbaro, tengo que seber cuantas son 150 calorias" que al fin y al cabo no me daba mucha informacion, entonces dije google convierte todo a ver que me dice:

    Y me dio ese resultado. Entonces dije: menos mal que entiendo de notacion cientifica sino no hubiera vuelto a tomar cerveza nunca mas... pero de hecho ahora ya no me preocupa mucho

    February 04

    SQL y parametros opcionales

    Leido: veces
    No es raro que nos encontremos con busquedas donde el usuario puede ingresar uno o varios criterios de busqueda:
    Consulta a una biblioteca:
    Titulo del libro: [@Titulo]
    Autores: [@Autores]
    Precio: [@Precio]
     
    una solucion trivial es hacer un stored procedure para cada combinacion de parametros pero entonces la cantidad de sp es igual a 2^(cantidad de parametros)  (o sea, crece exponencialmente).
    Otra solucion muy comun es que el sp construya un query con una tecnica de concatenar strings. es decir, para cada parametro, se pregunta si el parametro es valido y luego se lo agrega a la clausula where de nuestro query. Esta es bastante común pero tiene varias desventajas:
    • El query optimizer va a tener que compilar y planear un plan distinto cada vez que se llama al query (porque los querys son distintos y porque los planes de ejecucion generados por exec() no se guardan en el cache de sp compilados.
    • Problemas de seguridad o limitación en la capacidad de transferir comandos. Si un parametro es concatenado a un query string estamos enfrentando un alto riesgo de sql-injection, y siempre es recomendable utilizar parametros en los querys y no concatenar los strings para armar los queries (no concatenar en la aplicacion ni en el stored procedure)
    • SP difícil de mantener: si vamos a tener un IF @Titulo is not null then begin set .... por cada parametro nos vamos a encontrar con un stored procedure que va a ser confuso de entender, ni hablar cuando se concatenan los datetime o los varchar, porque hay que introducir la doble comilla simple ('') para que en el string quede una comilla simple luego cerrar la comilla simple para poder concatenar con el parametro y luego el proceso inverso para cerrar la comilla. En fin: set @query = @query + ' and Autor like ''' + @Autor + ''' '

    Bueno, hay una forma facil de ahorrarse todo eso, si por defecto los parametros opcionales se inicializan a null.

    declare mysp_BuscarLibro

       @Autor varchar(100) = null,

       @Titulo varchar(100) = null,

       @Precio decimal(10, 2) = null

    as

    select * from libros where

    (@Autor is null or Autor like '%' + @Autor + '%') and

    (@Titulo is null or Titulo like '%' + @Titulo + '%') and

    (@Precio is null or Precio = @Precio)

     

    Seria bueno que siempre intentes resolver los problemas de esta forma, usar / mantener este procedimiento es mucho mas sencillo que la version de concatenar strings.

    Y antes que preguntes... esta claro que no podés hacer: SELECT TOP @MaxCant FROM Libros .... es decir, no podes usar una variable para la clausula TOP, por suerte existe otra solucion antes de construir el query con un string:

    SET ROWCOUNT = @MaxCant

    eso haría el trabajo.

    Para SQL 2005 una sintaxis select top (@NumFilas) * from tabla... es válida y esta recomendada antes que SET ROWCOUNT, ya que el query optimizer tomaria provecho de la situación.

    Conclusion: Este stored procedure es mucho mas simple que su semejante version de strings concatenados y me gustaria que lo piensen la proxima vez que digan: "tengo que armar el query"

    Lean la ayuda!

     

    January 29

    .NET Framework, compatibilidad

    Hace rato queria escribir esto acerca de como se maneja las versiones de .net en una pc. Esto deberia responder preguntas del tipo: "¿Puedo ejecutar un programa escrito en .net 1.1 si tengo instalado el .net 2.0?" "¿Porque si tengo instalado el .net 2.0 en el windows update me sale que instale .net 1.1?" "¿Puedo instalar las 2 versiones de .net en mi pc?"
     
    Cuando se diseño .net framework, los chicos que la pensaron bien (palabras de Miguel) dijeron: cuando un programa de .net se ejecute, ke se ejecute usando lo ke pueda.
    Formalmente, en un equipo se puede tener instalado simultáneamente varias versiones del .net framework, y esto hace que una aplicacion utilice, por defecto el framework en el que fue compilado, si es que esta disponible.
    Ahora bien, .net framework entonces soporta compatibilidad "backward y forward"
    Backward es cuando un aplicacion escrita en frameword 1.1 se ejecuta en el framework 2.0, Esta compatibilidad intenta mantener con mucha precisión, y garantiza que la mayoria de las aplicaciones se ejecutarán en el framework 2.0 (o con cambios muy pequeños, y sin necesidad de generar una version especifica para framework 2.0)

    Forward es algo mas limitado y solo se soporta entre 1.1 y 1.0 permite aplicaciones escritas con framework 1.1 ejecutarse en 1.0.
    Bueno, para mas detalles buscar en internet, pero creo que cubrí las preguntas mas comunes.
     
    Bueno, mucho de esto se puede aprender en http://channel9.msdn.com/ShowPost.aspx?PostID=73151
    (video en ingles)
    January 12

    Para los "Programadores de Closet"

    Fijense porque MS hace mas ejemplos en VB.Net
     
    Aca Tom Archer, dice basicamente que los programadores de Visual Basic no aceptan (o no interpretan) codigo escrito en C# o C++ y ni siquiera intentan probarlo, mientras que los programadores de C# o C++ entienden claramente los ejemplos hechos en VB y lo pueden adaptar a C++.
     
    Yo personalmente veo que en la plataforma .net esto es algo mucho mas superficial, las diferencias para entender codigo C# para un programador VB.Net no es lo mismo que entender codigo C++ en un ambiente MFC/COM versus VB6.