GeekZero | DevTroce.com

Posteado Por GeekZero

  1. LLevar un control de versiones del código DDL en SQL Server

    Septiembre 10, 2010. Dejanos el Primer Comentario..

    Ya conociamos y veniamos hablando del SubVersion para algunos IDE’s de desarrollo e instalación de los servidores sobre Windows y Linux.

    Es también sabidos que subversionar nuestros proyectos en el lenguaje que estén hechos es muy sencillo, y nos aporta muchas ventajas. Pero que sucede a la hora de versionar la Base de Datos?

    Aquí casi siempre tendremos problemas, especialmente si trabajan como estoy acostumbrado. Todo el desarrollo posible sobre la BD en vez de la App. Esto nos lleva a mayor tiempo y trabajo invertido sobre la base de datos no subversionada que la aplicación que sí lo está (un poco paradójico en cierto modo).

    Oracle tiene su propia herramienta de versionado de código (que podremos verlo más adelante, más vale que lo tenga con lo que cuesta también este motor). Pero los otros motores? Especificamente con SQL Server podemos versionar el código con Team Foundation Server si configuramos bien las cosas.

    Otra alternativa que he encontrado hace muy poco y me ha gustado más que todas las existentes (al menos que conozco) es el producto de Red Gate, la misma es de paga, pero me parece un precio justo por la herramienta que es y no representa casi nada con lo que podemos salvar utilizando. Aunque si hubiera sido bueno tener una gamma más amplia de productos para subversionar bases de datos con opciones libres y abiertas (si encuentro alguna no duden que lo postearé, o si conocen alguna haganmelo saber que lo comento). Continúa Leyendo LLevar un control de versiones del código DDL en SQL Server

  2. Subir imágenes a la Base de Datos con ASP.Net

    Septiembre 9, 2010. Dejanos el Primer Comentario..

    En la entrada anterior veíamos como recuperar una imagen almacenada en la Base de Datos y mostrarlo en un control de imagen con Asp.Net, en ésta ocación haremos la tarea inversa, subiremos una imagen al servidor (servirá para subir cualquier tipo de fichero binario incluso).

    Para ello agregaremos el control FileUpload en alguna parte del WebForm, y programaremos en el botón de alta lo siguiente: Continúa Leyendo Subir imágenes a la Base de Datos con ASP.Net

  3. Mostrar imagen almacenada en la base de datos con Asp.Net

    Septiembre 8, 2010. Un Comentario.

    Cargar imagen desde ficheros del disco no es mucha ciencia incluso con HTML puro, el problema comienza cuando ya tenemos una base de datos que tiene almacenadas dentro de ella imágenes en campos binarios o BLOB.

    Como no hay ningún tag que cargue directamente ficheros binarios, ni tampoco funciona el clásico sistema de programación Desktop en donde hacemos esa asignación directa. En Web tenemos que ingeniarnos un poco más para lograr el efecto esperado. Con Asp.Net al menos se nos hace más fácil ésta tarea. Continúa Leyendo Mostrar imagen almacenada en la base de datos con Asp.Net

  4. Autenticar con el método de formularios en ASP.Net

    Septiembre 7, 2010. Dejanos el Primer Comentario..

    Con la tecnología ofrecida por ASP.Net tenemos varios modos de autenticación disponibles para nuestros sitios que creamos, uno de los más sencillos de administrar y programar es la autenticación del tipo FORM.

    Con un par de pasos aprenderemos a configurarlos bien y otorgar los permisos necesarios. Vale recordar que éste sistema es sólo recomendado cuando estamos seguros que nuestra aplicación no manejará un volumen alto de usuarios (en promedio unos 10~20) si no fuese así deberiamos optar por otro sistema. Continúa Leyendo Autenticar con el método de formularios en ASP.Net

  5. Programación Orientada a Objetos: Setter y Getter

    Septiembre 5, 2010. Dejanos el Primer Comentario..

    Siguiendo con la segunda entrega del tutorial de OOP, continuaremos con los conceptos de Setters y Getters.

    Es aquí donde empieza a entrar en juego uno de los pilares del paradigma OOP, el encapsulamiento. No es exclusivamente set y get los que definen dicho pilar pero ellos implementan y permiten que suceda (también entran los métodos)

    Que significa encapsular? En poder definir el alcance, visibilidad de cualquier atributo o método de una clase, esto nos otorga un par de beneficios, como que nadie asigne valores por equivocación o sobrescriban funcionalidades cuando no deben. También permite la programación que se llama “Caja Negra“, al tener atributos y métodos privados un programador que usará esa clase, no necesitará conocer como lo hace, sino sólamente que hace.

    Es buena práctica crear los atributos con el modificador private mientras que Continúa Leyendo Programación Orientada a Objetos: Setter y Getter

  6. Tutorial para crear sitios web Multiidioma con ASP.Net

    Septiembre 5, 2010. Un Comentario.

    Crear sitios con soporte de varios idiomas es indispensable cuando vamos a colgar un sitio en Internet, gracias a las herramientas que nos ofrece Visual Studio y ASP.Net ésta tarea es realmente sencilla.

    En éste tutorial vamos a crear un sitio que sólo tendrá un label y será traducido según el idioma elegido, creo que bastará para comprender el concepto. Doy por hecho que saben crear proyectos web con Visual Studio, preferentemente hagánlo en C#.

    Necesitaremos algo como la siguiente imagen: Continúa Leyendo Tutorial para crear sitios web Multiidioma con ASP.Net

  7. Crear aplicaciones multihilo con Java

    Septiembre 5, 2010. Dejanos el Primer Comentario..

    Cuando necesitamos crear procesos o subprocesos en nuestra aplicación, y a la vez queremos que la misma siga siendo utilizable por el usuario vamos a recurrir a los hilos de proceso múltiples(MultiThread).

    Un ejemplo básico es, tenemos un proceso pesado y largo como el cierre contable del mes o el envío de datos a un servidor distribuido y lo mostramos gráficamente en la pantalla de usuario el progreso. Suponiendo que estos procesos demoran mas de 30 minutos durante todo ese tiempo el usuario no podrá utilizar su aplicación ya que el hilo principal estará ocupado. Podemos agregar una opción “Ejecutar en segundo plano” el cual será un SubProceso del hilo principal.

    Esto en Java logramos creando una subClase dentro de nuestra clase Continúa Leyendo Crear aplicaciones multihilo con Java

  8. Recorrer los controles de un formulario con C# & VB.Net

    Septiembre 1, 2010. Dejanos el Primer Comentario..

    Hoy un compañero mío preguntaba en el buzz como podía recorrer los controles de su WinForm con C#. Entre 2 estuvimos dando una solución rápida y a ciegas que creo funcionaba :P , pero en el mismo buzz le comentaba que un tiempo atrás ya había escrito el código y prometía pasarle lo que había hecho (bueno de yapa se viene el artículo en devtroce).

    Ésta tarea es particularmente sencilla realizarla con dotNet por ello que me tomo la particularidad de escribirla en los 2 lenguajes C# y VB Net. No sólo recorreremos todos los controles sino Continúa Leyendo Recorrer los controles de un formulario con C# & VB.Net

  9. Cambiar la apariencia de las aplicaciones hechas en Java – Swing

    Septiembre 1, 2010. Dejanos el Primer Comentario..

    Desde que conocí el desarrollo de aplicaciones Desktop con Java - hace un par de años atrás – me pareció que tiene una interfaz gráfica de usuario pobre y fea. La apariencia a Metal da un aspecto muy rígido, incluso más feo al que tenía Windows 95 en la época (Eso que estoy hablando de Swing porque si consideramos AWT)

    Por suerte esto quedó remediado desde el update 10 de la versión 6 de Java (algo tarde pero lo vale), incluye lo que se llama Feel & Look lo que nos permite cambiar de apariencia según nuestro gusto. Esto podemos hacerlo editando la configuración del JRE que tenemos instalado, pero no lo mostraré porque estoy convencido que las aplicaciones que creamos son para el usuario final y a ellos no vamos a exigirles que entren a configurar su Runtime manualmente, no?

    Así que haremos algo más interesante que eso, y veremos como setear la configuración visual para la App Continúa Leyendo Cambiar la apariencia de las aplicaciones hechas en Java – Swing

  10. Guía para crear aplicaciones Multilenguajes con dotNet

    Agosto 30, 2010. Dejanos el Primer Comentario..

    Siempre me preguntaba como crear programas multilenguajes, ya tenía una idea bastante robusta para hacerlo y luego de investigar en varias fuentes me he quedado con un método sencillo (casi todos son sencillos de hecho), pero éste es el más práctico.

    Para ejemplificar vamos a crear un proyecto WinForm con C# en Visual Studio, el formulario debe quedar algo así:

    Lo que haremos será escribir las 3 comidas principales del dia, Desayuno, Almuerzo y Cena en los Label de los botones, obviamente cada uno en una lengua según los radio button que elijamos. Si ya se pude haber tenido una mejor idea :[

    Luego vamos a crear una carpeta llamada Lenguajes Continúa Leyendo Guía para crear aplicaciones Multilenguajes con dotNet

  11. Programación Orientada a Objetos: Clases y Objetos

    Agosto 28, 2010. Un Comentario.

    Desde la universidad y el trabajo he notado constantemente que los conceptos del paradigma de la Programación Orientada a Objetos hace temblar hasta al mas experimentado programador tradicional, me parecen que no son difíciles de comprender pero es un poco duro masticarlos ya que nos hacen cambiar de manera radical nuestra manera de pensar en código, por eso decidí escribir un tutorial entregados en varios artículos, explicando los conceptos de este paradigma.

    En Internet encontrarán miles de guías, tutoriales, libros, blog, foros que explican estos conceptos a su manera. He llegado en conclusión que las personas por algún motivos sólo les llega la explicación de algunos de éstos autores y no todos (como me paso a mí y a mis compañeros), espero poder llegar a explicar y dar a entender estas ideas. Para facilitar la comprensión, en el tutorial escribiré ejemplos prácticos en 2 lenguajes distintos: Java y Visual Basic. Continúa Leyendo Programación Orientada a Objetos: Clases y Objetos

  12. Habilitar la protección HotLink en Apache

    Agosto 27, 2010. Dejanos el Primer Comentario..

    Cuando hablamos de servidores web, una de las cosas que más nos preocupa es su rendimiento y para ello necesitamos aprovechar al máximo el los recursos del servidor, especialmente el ancho de banda.

    Si tenemos hosteado nuestro sitio en servidor compartido ya entramos en la lucha por los recursos del servidor con quienes también esten hosteados allí. Teniendo esa lucha pendiente, con lo poco que sacamos de esa lucha no nos hace falta que otro venga y nos robe nuestro ancho de banda para optimizar el suyo. Por ejemplo expone un tercero texto en su sitio pero las imagenes y videos las enlaza con tu servidor Continúa Leyendo Habilitar la protección HotLink en Apache

  13. Autorefrescar una página con sólo HTML

    Agosto 25, 2010. Un Comentario.

    A veces necesitamos que nuestro sitio se actualice automáticamente sin la interacción del usuario (presionando F5 o con el botón del browser), esto se puede lograr de un par de maneras con HMTL o con JavaScript.

    Cada uno tiene un pro y contra pero ambos servirían para la misma cosa. Con HTML estamos seguros que funcionará en más navegadores que JavaScript (por falta de soporte o por que está deshabilitado el mismo). Continúa Leyendo Autorefrescar una página con sólo HTML

  14. Ejecutar aplicación al iniciar la PC en openSuSE

    Agosto 23, 2010. Dejanos el Primer Comentario..

    En openSuSE a diferencia de la mayoría de las distro tiene un fichero distinto para iniciar aplicaciones o ejecutar script al simple encendido de la máquina. El motivo porque lo cambiaron no lo sé (aunque tiene un nombre y lugar más intuitivo que el resto a mi parecer).

    Para ejemplicar el caso lo que haré Continúa Leyendo Ejecutar aplicación al iniciar la PC en openSuSE

  15. Estadísticas generales en DevTroce

    Agosto 22, 2010. Dejanos el Primer Comentario..

    Hace tiempo que estamos en línea destrozando código, y desde que nació DevTroce creció mucho gracias a ustedes los visitantes que hoy día son casi 11 mil mensuales de varias regiones del mundo, aunque esta ciertamente más centrado en toda América y la parte Oeste / Centro de Europa.

    Diariamente reviso las estadísticas del sitio, con que navegadores, sistema operativos, buscadores, referencias usan para entrar Continúa Leyendo Estadísticas generales en DevTroce

  16. Solucionar error: ‘Unable to convert MySQL date/time value to System.DateTime’

    Agosto 18, 2010. Un Comentario.

    Ayer estuve trabajando con la versión 4 de MySQL y como front-end tenía a ASP.Net. Utilice como proveedor de datos MySQL Data Provider ofrecido gratuitamente por Oracle en su versión 6.2.

    Mientras iba desarrollando la app lograba la conexión y el paso de datos varchar y las variantes númericas sin ningún problema, en cierto momento necesite trabajar con datos timestamp y datetime donde fue que me apareció el siguiente error:

    Unable to convert MySQL date/time value to System.DateTime

    Leyendo la documentación me enteré cual era el problema, algunos campos de este tipo de dato estaban con valores nulos o en el caso de datetime tenia ’0000-00-00 00:00:00′. Lo cual produce el error de conversión con el Data Provider (por lo que leí también ocurre con conexiones ODBC). Continúa Leyendo Solucionar error: ‘Unable to convert MySQL date/time value to System.DateTime’

  17. Detectar el País de Origen del usuario con PHP

    Agosto 17, 2010. Dejanos el Primer Comentario..

    Ricardo, uno de nuestros lectores nos preguntaba como puede detectar de que zona o país provienen sus lectores y necesita hacerlo con PHP. Tenía en mente una manera de desarrollarlo algo más largo y menos práctico que la que veremos hoy. Me puse a investigar rápidamente y encotré un muy buen ejemplo escrito por Francisco en su Blog, como soy partidario de no reinventar la rueda y su código me pareció más sencillo que el mío, así que veremos el suyo :)

    A explicar un poco lo que hace el  código, como los países tienen asignados rangos de IP que se van distribuyendo a las ISP entonces es relativamente sencillo este proceso. Continúa Leyendo Detectar el País de Origen del usuario con PHP

  18. SubQuery SQL: cláusula FROM

    Agosto 16, 2010. Un Comentario.

    Los SubQuery’s o SubConsultas son herramientas poderosas si las sabemos usar, y son básicamente consultas anidadas en otras consultas la cual devuelve un conjunto de valores. Prácticamente un SubQuery puede ser utilizado en cualquier expresión y cláusula ya sean SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY.

    Como el tema de los SubQuery es bastante largo lo iré partiendo en pedazos agrupados por expresión (recomendación de Juan Cuevas), como lo ven en el título ahora veremos los SubQuerys aplicados en la cláusula FROM.

    Ya sabemos que la cláusula FROM sirve para identificar las tablas de donde serán proveídos los datos a retornarse, como un SubQuery retorna un conjunto de valores también Continúa Leyendo SubQuery SQL: cláusula FROM

  19. Tutorial de Replicacion Circular en MySQL

    Agosto 15, 2010. Un Comentario.

    Hace 8 meses atrás aproximadamente escribí sobre como crear una replicación de tipo Maestro/Esclavo con MySQL en la cual prometía continuar la guía escribiendo como hacer lo mismo pero de modo circular, es decir, una replicación 2-way.

    Para llevar a cabo este tutorial, deberán configurar sus bases de datos como lo decía la primer parte. La misma pueden leerla aquí: Replicacion MySQL.

    Una vez todo lo anterior este OK, detendremos Continúa Leyendo Tutorial de Replicacion Circular en MySQL

  20. Como hacer que PostgreSQL escuche conexiones desde cualquier IP

    Agosto 15, 2010. Dejanos el Primer Comentario..

    Postgre

    Postgre al contrario que MySQL, en su configuración por defecto cierra las escucha de conexiones a todas la IP excepto la local (127.0.0.1 o localhost), a veces puede ser un poco engorroso esto, especialmente si estamos trabajando con base de datos de desarrollo o pruebas. Continúa Leyendo Como hacer que PostgreSQL escuche conexiones desde cualquier IP

  21. Cambiar el nombre del usuario root en MySQL

    Agosto 15, 2010. Dejanos el Primer Comentario..

    Cuando instalamos por primera vez un motor de base de datos MySQL, éste crea un montón de configuraciones por defecto que no son precisamente las más convenientes en todos los contextos. Si la instalación será una de producción es conveniente subir los niveles de seguridad del mismo, siempre achicando las brechas para algún atacante.

    Es sabido que el usuario super administrador en MySQL se llama root, y tiene “super poderes” para hacer y deshacer lo que quiera. Con esto, al atacante le queda sólo conocer la contraseña de dicho usuario y podrá hacer lo que le venga en ganas. Un paso más que podemos hacer para complicarle las cosas a nuestro atacante es cambiar el nombre del usuario root. Continúa Leyendo Cambiar el nombre del usuario root en MySQL

  22. Como reiniciar un campo Identity en SQL Server

    Agosto 14, 2010. Un Comentario.

    Ya he escuchado muchas veces personas preguntando por como reiniciar los valores de un campo que es Identity en SQL Server. Es muy común ésta tarea en migraciones, reimplementaciones y otros.

    Existen varias maneras de lograr éste cometido, una es directa y otras “efectos colaterales” de ciertas acciones. La manera explicita de lograr sólo el reinicio de sus valores es la siguiente: Continúa Leyendo Como reiniciar un campo Identity en SQL Server

  23. Tutorial de instalación de servidor de SubVersion sobre Ubuntu Linux

    Agosto 13, 2010. Dejanos el Primer Comentario..

    Anteriormente estabamos viendo como instalar un servidor de subversion sobre Windows, tarea relativamente sencilla, tambíen había prometido mostrar como hacerlo sobre Linux (la distro elegida ésta vez será Ubuntu, me dio ganas de hacerlo en esta porque hoy me llegó despues de 4 meses el cd de instalación :P ) además que estoy respondiendo al pedido de un usuario (y se lo debía hace tiempo ya realmente)

    Lo primero que haremos será instalar todo lo que necesitemos para que funcione como debe ser. Recuerden que necesitarán los permisos del diablo (root) para continuar con el tutorial. Continúa Leyendo Tutorial de instalación de servidor de SubVersion sobre Ubuntu Linux

  24. Configurar Servidor Vinculado en SQL Server con MySQL

    Agosto 13, 2010. Un Comentario.

    El año pasado habíamos visto como crear un servidor vinculado en SQL Server con Firebird, en ésta oportunidad veremos como hacerlo con MySQL, son muy parecidos los pasos a seguir, pero más sencillo que con el anterior motor.

    Lo primero que necesitaremos es descargar el proveedor de datos OLE DB para MySQL (Perteneciente a Cherry Software). Ejecutamos el fichero setup.exe y seguimos los pasos correspondientes, en un punto de la instalación nos pedirá que descarguemos una librería (libmysql.dll) desde los repositorios de MySQL mismo, lo descargamos y copiamos en el path que nos indica, por lo general Continúa Leyendo Configurar Servidor Vinculado en SQL Server con MySQL

  25. Convertir de Double a XSDecimal en Delphi

    Agosto 13, 2010. Dejanos el Primer Comentario..

    Hace unos días mostraba como convertir DateTime a XSDateTime, uno de los tipos de datos más ariscos en Delphi cuando debemos usar con SOAP, el Decimal, su equivalente en Delphi Double, para que sean compatibles debemos transformarlo al tipo XSDecimal.

    Para ello no tenemos ninguna propiedad o método director, si no debemos valernos del tipo BCD (Código Binario Decimal), lo cual no es díficil realizarlo por suerte pero si algo engorroso :(

    En el ejemplo veremos un Continúa Leyendo Convertir de Double a XSDecimal en Delphi

  26. Qué tipo de dato debo usar entre Decimal, Float o Real?

    Agosto 10, 2010. Dejanos el Primer Comentario..

    Hace tiempo que quería escribir sobre éste tema, ya que es muy importante considerar esto antes de comenzar a desarrollar un sistema nuevo (digo antes, porque si no lo hacen luego tendrán serios problemas).

    En mi suerte (si existe tal cosa) supe de ésto hace tiempo gracias a que un día estuve leyendo la documentación oficial sobre los tipos de datos en SQL Server, pero para desgracia de un par de compañeros laborales ellos tuvieron que descubrirlo por las malas, cuando las cosas no salían como soñaban que saldrían.

    La historia viene Continúa Leyendo Qué tipo de dato debo usar entre Decimal, Float o Real?

  27. Convertir de DateTime a XSDateTime en Delphi

    Agosto 9, 2010. Un Comentario.

    Cuando trabajamos con SOAP y Servicios Web con Delphi, es más que seguro que necesitaremos transmitir por el mismo fechas. Siendo que el tipo más común es TDateTime pero no es compatible con el Servicio por no tener una API XML.

    Podemos valernos de los de la definición XSD para crear a partir del tipo de dato TDateTime uno de tipo TXSDateTime. Continúa Leyendo Convertir de DateTime a XSDateTime en Delphi

  28. Se congela la pantalla con WinForm y los bucles?

    Agosto 6, 2010. Dejanos el Primer Comentario..

    Con las aplicaciones de WinForm, siempre existió un problema al crear bucles complejos que cargan a la máquina cliente. Normalmente si éste bucle lleva mucho tiempo de ejecución y disponemos de poca memoria gráfica el Canvas de Windows se cuelga y da la impresión que la aplicación también lo ha hecho.

    Esto suele dar mala impresión al usuario final sobre nuestras aplicaciones, comienzas a tomarle desconfianza. Eso no es bueno para nosotros porque con el tiempo nos quedaremos sin pan (creo que exageré un poco). Continúa Leyendo Se congela la pantalla con WinForm y los bucles?

  29. Integrar SubVersion con Eclipse [Subclipse]

    Agosto 6, 2010. Dejanos el Primer Comentario..

    Anteriormente les mostraba como instalar un servidor de SubVersion sobre Windows, (eso me recuerda que aun le debo a un usuario el tutorial de instalación sobre GNU/Linux) y en ésta entrega veremos como instalar en el lado cliente, si es que desarrollado en Java con el IDE Eclipse.

    Para ello vamos valernos del plugin free, que nos ofrecen la gente de Tigris.org, llamado Subclipse, el mismo se integrará a nuestro IDE y nos facilitará la vida un montón. Continúa Leyendo Integrar SubVersion con Eclipse [Subclipse]

  30. Sincronizar Google Contacs con Nokia 5800

    Agosto 6, 2010. Un Comentario.

    Nokia 5800 Xpress Music

    Hace más de un año que había adquirido uno de éstos móviles, recuerdo que estaba loco por probar todas las prestaciones que ofrecía el móvil y me había llamado mucho más la atención que los tan sobrevalorados (para mi parecer) iPhone (en esa época 3G).

    Una de las primeras cosas que quise probar del Nokia 5800 fue su conectividad WI-FI, mientras más lo utilizaba más me gustaba. Luego quise sincronizar mis contactos de Google Contacts al móvil e investigando un poco supe como hacerlo, y creo que más de uno querrá hacerlo si tiene el móvil de Nokia (ya sea éste u otros modelos con S60) así que les dejo una pequeña guía para lograrlo. Continúa Leyendo Sincronizar Google Contacs con Nokia 5800

  31. Obtener la fecha y hora del sistema desde los motores de base de datos más utilizados

    Agosto 5, 2010. Dejanos el Primer Comentario..

    He notado que mucha gente busca éste tipo de contenido constantemente, así que decido finiquitar a los motores de base de datos más comunes en un único post, dado que también si lo hago por separado sería muy corto.

    Una cosa que me gustaría dejar bien en claro, que en la mayoría de los motores que expondré hay más de un modo de conseguir la fecha y la hora del sistema operativo huésped, pero sólo mostraré la más común.
    Vamos a lo práctico y veamos: Continúa Leyendo Obtener la fecha y hora del sistema desde los motores de base de datos más utilizados

  32. [R#] ReSharper, mayor productividad y calidad de código con Visual Studio

    Agosto 4, 2010. Dejanos el Primer Comentario..

    No estoy escribiendo sobre ningún lenguaje nuevo ni derivado de C# por si piensan eso, R# ReSharper es una herramienta de la mano de JetBrains externa a Microsoft Visual Studio.

    ReSharper

    ¿Y qué es entonces? Es un agregado que se integra al IDE Visual Studio que nos ayuda en tiempo de desarrollo a escribir mejor nuestro código, a optimizarlo y Continúa Leyendo [R#] ReSharper, mayor productividad y calidad de código con Visual Studio

  33. Leer ficheros .CSV con Java

    Agosto 4, 2010. Dejanos el Primer Comentario..

    Leer ficheros .CSV son indispensables desde tiempos antiguos para la informática, ya que es uno de los modos más standard para almacenar registros y transportarlos, o migrarlos entre plataformas incompatibles entre sí.

    Aquí en devtroce, ya hemos visto como trabajar con éste tipo de archivos en otros artículos: SQL Server, MySQL, Delphi. Ya que Java nos ofrece la ventaja de la multiplataformidad, para ello necesitaremos una librería externa que pueden descargarla aquí. Siempre si el motor ofrece la opción de importar y exportar directamente a este formato Continúa Leyendo Leer ficheros .CSV con Java

  34. Delete o Truncate Table?

    Agosto 4, 2010. 7 Comentarios.

    Muchos se preguntan constantemente que les conviene utilizar cuando quieren vaciar completamente una tabla, si uno es más rápido que el otro, cual es más óptimo?. Prácticamente todos los motores relacionales lo soportan.

    Y si, cada uno tiene sus beneficios y contras, es cuestión de que es lo que buscamos lograr.

    Para los que desconocen que hace el Truncate Table, es similar a ejecutar una sentencia Delete sin la claúsula Where

    Continúa Leyendo Delete o Truncate Table?

  35. Limpieza del historial de SQL Server

    Agosto 3, 2010. 4 Comentarios.

    Cuando trabajamos con SQL Server como motor de Base de Datos para nuestra producción, notaremos que éste crece rápidamente, ocupando mucho espacio en disco, uno de los tantos puntos que hace crecer su tamaño es el historial de sistema, que se almacena dentro de la BD llamada MSDB.

    Los datos más importantes que se guardan aquí es la historia de las restauraciones y backups hechos, así que cuanto más usemos éstos recursos, la BD crecerá más. Es muy importante tener la data de esto por muchos motivos, pero también tenemos que tener en cuenta que es sólo útil por cierto tiempo (la cantidad depende de nuestro objetivo, uso, necesidad). Por ello es Continúa Leyendo Limpieza del historial de SQL Server

  36. Analizar las consultas lentas de MySQL

    Agosto 3, 2010. Un Comentario.

    Es típico hoy día ver aplicaciones con tiempos de respuestas extremadamente lentos, no precisamente por que tiene mucha concurrencia, ni por la mala infraestructura de red, ni otros, sino por la falta de optimización de los query´s SQL. Este tipo de problemas escapa al error de sintaxis, al error lógico incluso, ya que el query cumple con su cometido, pero de una muy mala manera, técnicamente tumba el servidor por mucho tiempo y lo deja inutilizable.

    Solucionar éstos problemas no siempre es sencillo, ya que hallar que consultas producen estos problemas cuesta, y más aún Continúa Leyendo Analizar las consultas lentas de MySQL

  37. Como leer el archivo web.config ‘on the fly’

    Julio 29, 2010. Dejanos el Primer Comentario..

    Es sabido que la configuración web de las aplicaciones y sitios web de ASP.Net sobre IIS son almacenadas dentro de un fichero llamado web.config, su equivalente en Apache sería el .httaccess.

    El fichero simplemente es un archivo XML, es muy útil si queremos almacenar información compartida y no muy relevante ni sensible, la cual utilizaremos constantemente.

    Vamos a ejemplificar el uso almacenando parte del ConnectionString que utilizará la web, para mi gusto el usuario y password, no deben ser metidos aquí, pero el Host y el nombre de la Base de Datos a consultar son convenientes. Dentro del tag configuration insertaremos lo siguiente: Continúa Leyendo Como leer el archivo web.config ‘on the fly’

  38. Pasar parametros por GET en ASP.Net

    Julio 29, 2010. 2 Comentarios.

    En ASP.Net también podemos pasar parámetros a otras páginas, que pueden no ser incluso nuestro mismo sitio. Las mismas por el método GET serán vistos en la barra de dirección del browser.

    El framework nos ofrece los objetos necesarios para llevar a cabo la actividad, si se fijan se agregará el simbolo de cerrado de un signo de interrogación (?) seguido del nombre de la variable y su valor, si se envía más de una se agrega un ampersand (&).

    Como puede o enviarse o no la variable y en distintos ordenes, el mismo Continúa Leyendo Pasar parametros por GET en ASP.Net

  39. Redireccionar automáticamente en Apache con .htaccess

    Julio 27, 2010. Dejanos el Primer Comentario..

    Creo que la mayoría sabe para que sirve el fichero .htaccess en un servidor Web Apache, y lo poderoso que es si sabemos configurar éste. De hecho que es uno de los ficheros de configuración de los tantos que tiene.

    La redirección la podemos aplicar por varios motivos, de momento no queremos bajar una de las páginas del sitio, o agregar una palabra al dominio y que lleve a otro dominio automágicamente, nos puede servir para una aplicación en sí, incluso en puede facilitarnos re-direcciones desde el servidor sin tener que programarla en varias lugares de nuestra app, en fin n motivos, éstos son sólo algunos típicos casos.

    Voy a poner un ejemplo práctico y real, en devTroce el servicio de correo es gestionado por Continúa Leyendo Redireccionar automáticamente en Apache con .htaccess

  40. Ejecutar código VisualBasic .Net en Procedimientos Almacenados de SQL Server

    Julio 25, 2010. Un Comentario.

    En los últimos artículos estábamos escribiendo contenido destrozador sobre SQL Server & .Net, y me hizo pensar por que no hacer un MIX de ambas cosas en un sólo post para no perder la racha :D Esto me llevo a crear éste artículo en donde podremos escribir código en Visual Basic o CSharp .Net para ejecutarlo de un modo más integrado.

    Los procedimientos CLR nos ofrece algunas ventajas sobre T-SQL:

    • Para hacer procesos complejos no necesitamos ser gurús del T-SQL, no es una ventaja en sí pero es más facil éste camino para la mayoría de los programadores.
    • Podemos utilizar toda la potencia de la programación orientada a objetos de VB y C#
    • Manipulaciones finas, de estructuras, cadenas, criptografia, conexion a otros motores remotos, es más fácil y potente hacerlo con dotNet que T-SQL que para algunas tareas es limitado
    • El recolector de basura del CLR es mucho más eficiente y manipulable que el del motor de BD

    Continúa Leyendo Ejecutar código VisualBasic .Net en Procedimientos Almacenados de SQL Server

  41. Invocar métodos del Servidor con JavaScript en ASP.Net

    Julio 24, 2010. Un Comentario.

    A veces necesitamos ejecutar un código de servidor por alguna extraña regla de negocio, justamente cuando ocurre un evento que sólo podemos controlarlo en el lado Cliente con JavaScript, pero cómo hacer que el servidor se entere de los eventos del lado cliente?.

    Una manera que puede solucionarnos el problema es definiendo que el webcontrol haga postBack, y en el evento Load de la página preguntamos si es la primera vez que se carga o está respondiendo a una llamada de un control desde el lado cliente. Continúa Leyendo Invocar métodos del Servidor con JavaScript en ASP.Net

  42. Compilación condicional en dotNet

    Julio 18, 2010. Un Comentario.

    En otros términos a la compilación condicional también se lo conoce como directivas de preprocesador, y ésto que quiere decir? significa que podemos determinar como se comportará el compilador con el código que acabamos de escribir, pudiendo así tomar distintas rutas de compilación. En la información contenida en la red, en su mayoría explican como hacer esto, con las constantes DEBUG y RELEASE, pero no si quisieramos personalizarlo más allá, ahora podremos ver como hacerlo a nuestro modo.

    Por ejemplo, supongamos que estamos desarrollando un sistema de facturación que lo hemos vendido a 2 clientes, para exagerar un poco son de distintos países, en gran manera la lógica de negocios es la misma, difiriendo en algunos pequeños detalles. Tenemos la pantalla en donde se hace la venta y debemos calcular el impuesto por el producto vendido, el primer cliente es de Continúa Leyendo Compilación condicional en dotNet

  43. Como exprimir nuestro ancho de banda de Internet en Windows

    Julio 14, 2010. 5 Comentarios.

    Mucho se escribe en la red sobre esto, existen muchos mitos urbanos por así decirlo, lo que hoy voy a mostrarles son 2 pequeñas configuraciones que podemos hacer para optimizar nuestra conexión a internet. Cuando me decidí a escribir esto articulo en realidad quería hacer sobre 1 solo punto, pero me pensé que iba a quedar flojo el tema así que decidí agregar una configuración más.

    La primera es tan típica y conocida, que no es ninguna novedad. Es configurar Windows para que no reserve ancho de banda para el Sistema Operativo en sí, es sencillo. Presionan la tecla Windows + R y les aparecerá Continúa Leyendo Como exprimir nuestro ancho de banda de Internet en Windows

  44. Como programar en n-Capas con C# (Parte 5)

    Julio 14, 2010. 15 Comentarios.

    Con ésta entrega cumpliremos con la capa de Presentación, utilizaremos todo lo que hemos visto hasta ahora aplicados a una interfaz de usuario, y como lo prometí, lo veremos implementado en winForm como en webForm.

    El primer ejemplo será Desktop, crearemos un formulario con una apariencia semejante al que ven en la imagen.

    frmCliente

    Evidentemente, un sistema real no lo harán así, el botón conectar emula el comportamiento de una pantalla de login, el boton crear mandará a la BBDD los datos de la caja, Listar rellenará la grilla y Buscar By Id se encargará de devolvernos un registro a partir de lo que carguemos en la caja de Id. Otra implementación interesante sería agregarle un identity a la Continúa Leyendo Como programar en n-Capas con C# (Parte 5)

  45. Como programar en n-Capas con C# (Parte 4)

    Julio 13, 2010. 4 Comentarios.

    En la cuarta entrega veremos una capa nueva, la capa de Negocios, como ya dije en los artículos anteriores hemos dado por terminado la capa de Acceso a Datos.

    Aquí es donde diremos como debe procesarse la información. Para este caso no voy a crear una estructura compleja de BBDD ya que el código de C# ya lleva bastante, pero reflejará claramente como se usa ésta capa en casos más complejos.

    Primeramente crearemos una tabla realmente simple, compuesta por 3 campos Continúa Leyendo Como programar en n-Capas con C# (Parte 4)

  46. Como programar en n-Capas con C# (Parte 3)

    Julio 12, 2010. 3 Comentarios.

    Esta es la tercer entrega, probablemente será la más corta pero no la última aún. El motivo de su longitud es por que es una clase que se utiliza como medio para crear la flexibilidad y portabilidad de fuentes de datos, en éste caso motores de base de datos.

    También daremos por terminada la capa de Acceso a Datos, entonces así no mezclamos el código y será más fácil seguirlo posteriormente. También pertenecerá al namespace AccesoDatos. Lo llamo conexión por que es la clase con las otras capas interactuaran en modo directo.
    Para ello creamos un objeto estático de la clase GDatos que instanciará de la clase SqlServer. Creo que ya van captando el rumbo de esto no? si crearamos otra clase por ejemplo Oracle.cs o MySQL.cs, solamente cambiariamos una linea de código, donde el objeto GDatos del tipo GDatos, sea SqlServer, Oracle u otro motor que codifiquemos. Podemos hacerlo con ODBC, OleDB para conexiones genéricas. No les parece grandioso que solo deban tocar parte de una línea de código para portar la App a cualquier otro motor de Base de Datos? :D Continúa Leyendo Como programar en n-Capas con C# (Parte 3)

  47. Como programar en n-Capas con C# – SQL Server (Parte 2)

    Julio 12, 2010. 4 Comentarios.

    Continuando con la segunda entrega de la programación en n-Capas, (la primera  lo pueden ver aqui).  Hasta el momento solo creamos una clase abstracta que servirá de padre para las demás implementaciones (1 clase por cada fabricante de motor).

    Ahora nos enfocaremos en crear una capa para conectarnos a SQL Server, si llegamos a cambiar de proveedor de base de datos en algún momento, lo único que deberíamos hacer es agregar una clase semejante a ésta con la implementación especifica para éste motor, ni siquiera debemos modificar ésta clase que veremos ahora, el unico cambio Continúa Leyendo Como programar en n-Capas con C# – SQL Server (Parte 2)

  48. Como programar en n-Capas con C# (Parte 1)

    Julio 12, 2010. 9 Comentarios.

    Este es un tema polémico del que se habla mucho y nada, digo que se habla mucho porque al buscar algo de información en Internet, uno se da cuenta, que esta plagado de sitios donde preguntan como aplicar programación en 3 capas, o N-Capas, pero en muy pocos lugares se responde con algo cierto y concreto, la mayoría hacen referencia a libros gordos que tardarías en leer semanas (no estoy en contra de la lectura, es un proceso largo nada más y casi todos buscamos aprenderlo un poco más rápido). Este artículo también será bastante largo y me aventuro a decir que me tomará varias noches escribirlo completamente, pero no será nada comparado con un libro con un lomo de 15 centímetros :P

    La primer gran confusión que noto, es que la mayoría no sabe diferenciar entre los conceptos Continúa Leyendo Como programar en n-Capas con C# (Parte 1)

  49. Asignación de variables explicitas e implícitas en CSharp

    Julio 11, 2010. Dejanos el Primer Comentario..

    En estos días me preguntaba un usuario si hay diferencias cuando asignamos las variables de manera explícita implícita? si alguna es mejor o lleva una ventaja sobre la otra?

    Bueno, en respuesta a esto, la asignación de variables de forma implícita apareció desde la version 3 de CSharp .Net. Y produce algo de confusión a muchos, teniendo el temor que les ocurra en sus aplicaciones lo que ocurría o ocurre aún con Visual Basic, en cualquiera de sus versiones, antes que nada, tienen que considerar que CSharp es un lenguaje pensado Continúa Leyendo Asignación de variables explicitas e implícitas en CSharp

  50. Verificar si un fichero existe con Delphi

    Julio 9, 2010. Dejanos el Primer Comentario..

    Verificar la existencia o no de un archivo con Delphi es realmente muy sencilla, ni siquiera se necesitan componentes VCL para ello. No hay mucho que escribir sobre este tema por lo tanto será muy corto pero conciso. Para el fin utilizaremos un pequeña pero útil función.

    1
    2
    3
    4
    5
    6
    7
    8
    
    if FileExists('C:\devtroce.file')then
    begin
    	MessageDlg('Existe el fichero', mtInformation, [mbOK], 0);
    end
    else
    begin
    	MessageDlg('No existe el fichero', mtInformation, [mbOK], 0);
    end;
  51. Leer ficheros .csv con Delphi

    Julio 7, 2010. Dejanos el Primer Comentario..

    Me hubiera gustado que el articulo se titule “Importar datos de ficheros CSV desde Firebird” asi como ya escribi sobre MySQL y SQL Server, pero lamentablemente, este motor no puede hacerlo nativamente, motivo que me llevo a crear la importación desde una aplicación existente y escrita en Delphi.

    Primeramente busque algunos componentes VCL para hacerlo rápidamente ya que no quería perder tiempo con él, pero entre la documentación que pude leer, es más sencillo hacerlo con los objetos nativos del Delphi mismo.

    Así que le agrego un par de modificaciones para subirlo a devtroce y sea más generico que Continúa Leyendo Leer ficheros .csv con Delphi

  52. Instalar y Desintalar paquetes .RPM en GNU/Linux

    Julio 3, 2010. Dejanos el Primer Comentario..

    En el artículo anterior veíamos como instalar y desinstalar paquetes .deb en sistemas operativos basados en Debian, ahora veremos algo semejante con los paquetes .RPM que son para sistemas basados en SuSE y RedHat (de ahí el título que no específique a que distro corresponde ya que son más de una distro primitiva que la usan). Es otro sistema de empaquetado y conjunto de instrucciones que se encargará de dejarlo todo OK para nosotros de una manera fácil y rápida. Así como al comando dpkg se le pueden pasar una variedad de parametros también al comando rpm, veamoslas: Continúa Leyendo Instalar y Desintalar paquetes .RPM en GNU/Linux

  53. Instalar y Desintalar paquetes .deb en Ubuntu

    Julio 2, 2010. Dejanos el Primer Comentario..

    Es muy típico encontrarnos con problemas a la hora de instalar programas en GNU/Linux, a pesar de ello, la comunidad trabaja duro para facilitarnos la vida con éste gran sistema operativo, prueba de esto son los paquete .DEB donde el cual sólo debemos ejecutar y hará todo por nosotros.

    Los paquetes .deb son propios de los sistemas opetativos basados en la distro Debian, como lo es Ubuntu (su mayor derivado y la más utilizada en el mundo) por lo tanto estas instrucciones sólo servirán para ellas.

    La manera Continúa Leyendo Instalar y Desintalar paquetes .deb en Ubuntu

  54. Copiar ficheros y Directorios con Java

    Junio 30, 2010. Dejanos el Primer Comentario..

    Trabajar con los ficheros del disco en Java es muy sencillo realmente, y como saben ya al ser multiplataforma un único código funcionará para cualquier sistema operativo que estemos usando.

    Con el código que veremos podremos copiar los ficheros o archivos que querramos incluso, directorios completos, véanlo Continúa Leyendo Copiar ficheros y Directorios con Java

  55. Exportar datos de MySQL a ficheros CSV

    Junio 28, 2010. Dejanos el Primer Comentario..

    La tarea de importar y exportar datos a una base de datos es tan común y tan útil que casi todos los motores de hoy día traen su propia herramienta para hacer eso, ya no es necesario ir programando utilidades de este tipo. Estas pequeñas herramientas nos ahorraran bastante tiempo y dinero especialmente.

    Exportar los datos de una tabla o varias tablas a un fichero .CSV (fichero con valores separados por comas) es tan sencillo que básicamente son unos parámetros  más a nuestro query de SELECT.

    Además que es tan flexible y nos permite elegir Continúa Leyendo Exportar datos de MySQL a ficheros CSV

  56. Comprimir y Descomprimir ficheros ZIP con Delphi

    Junio 28, 2010. Dejanos el Primer Comentario..

    Ya que vengo con los articulos de compresión y descompresión de ficheros .zip, veremos como hacerlo con Delphi. Es tan sencillo que da miedo, necesitaremos descargarnos el siguiente componente ZipForge, el mismo es de paga, aunque tiene una versión free para uso comercial personal. El mismo nos permite comprimir, descomprimir, asignarle un password, encriptarlo en distintos algoritmos, entre otros.

    Yo lo utilizo en Code Gear 2007, ustedes pueden descargarse para la versión que esten usando. Para instalarlo deben tener cerrado su IDE, y el mismo se encargará de instalare en la paleta de componentes, asi los .DPK no tendremos que instalarlos manualmente (que para mi gusto son un fastidio)

    El único problema con esta versión es que siempre nos saldrá Continúa Leyendo Comprimir y Descomprimir ficheros ZIP con Delphi

  57. Subir ficheros al servidor con JSP

    Junio 28, 2010. Dejanos el Primer Comentario..

    Una de las opciones más utilizadas en las aplicaciones web son el upload de ficheros de cualquier tipo, hacerlo con JSP es lo que veremos hoy, para que desde la PC cliente lo subamos al servidor y de ahí hagamos con el lo que querramos.

    Necesitaremos agregar 2 librerías para ellos a nuestro proyecto: commons-io y commoms-fileupload, yo lo desplegaré sobre Apache Tomcat, aunque ustedes pueden cambiar de servidor si así lo quieren. Continúa Leyendo Subir ficheros al servidor con JSP

  58. Comprimir y Descomprir archivos ZIP con Java

    Junio 25, 2010. Dejanos el Primer Comentario..

    Es posible que querramos tener nuestro propio programa compresor de ficheros multiplataforma para utilizarlo, para ello podemos cumplir con el cometido gracias a Java y un poco de código.

    El formato más estándar para hacerlo es el .ZIP (aunque no sea el de mejor compresión), para ellos crearemos una clase que reciba el nombre de los ficheros a crear y a zippear. Continúa Leyendo Comprimir y Descomprir archivos ZIP con Java

  59. Solucionar problema de las impresoras que solo imprimen luego de reiniciar Windows

    Junio 24, 2010. Dejanos el Primer Comentario..

    Ya que escribí en el artículo anterior un tema de impresoras y problemas con Windows, aprovecharé para mostrar la solución a otro de los problemas, ésta vez no tan típicos pero que suceden con algunas impresoras de la marca Hewlett-Packard y éste sistema operativo.

    Una vez instalado el driver propietario de HP en Windows éste se apodera del mismo, y no siempre es la mejor opción, personalmente ya me ha pasado (y a algunos usuarios de la red) que tengo aplicaciones que no responden a la orden de impresión, por ejemplo tengo un documento Continúa Leyendo Solucionar problema de las impresoras que solo imprimen luego de reiniciar Windows

  60. Eliminar la cola de impresión en Windows

    Junio 24, 2010. Un Comentario.

    A quién no le ha pasado que siempre que necesita imprimir algo importante viene a cumplirse la ley de Murphy, ésta siempre se atasca en la cola de impresión, luego intentas eliminar la cola pero la cosa se pone peor, terminas nervioso y por poco no rompes toda la impresora.

    Para estos casos tenemos unos pequeños “trucos” para eliminarlo definitivamente de la cola, y volver a intentar la impresión. Básicamente consiste en detener el servicio de cola de impresión, eliminar los ficheros encolados, y volver a  iniciar el servicio.

    Para facilitar las cosas les recomiendo que agreguen el código que les pondré debajo en un fichero de texto y lo guarden como “Detener Cola de Impresion.bat”, y Continúa Leyendo Eliminar la cola de impresión en Windows

  61. Transferir ficheros por SCP con líneas de comando en GNU/Linux

    Junio 22, 2010. 3 Comentarios.

    Ya habíamos visto anteriormente como transferir ficheros sobre el protocolo SCP con C#, pero en esta ocasión veremos como hacer lo mismo utilizando la consola de GNU/Linux.

    Ciertamente existen distintas herramientas gráficas para éste cometido, como lo son WinSCP, Gnome Commander,  Krusader, etc. pero muchas veces no disponemos de la misma interfaz gráfica en nuestro sistema operativo, por eso me he decido a escribir unos comandos básicos para realizar la tarea.

    La sintaxis básicamente es la siguiente: Continúa Leyendo Transferir ficheros por SCP con líneas de comando en GNU/Linux

  62. Acelerar la carga de un sitio web con PHP

    Junio 20, 2010. Dejanos el Primer Comentario..

    Recién he leído un artículo que me ha gustado mucho en AyudaWordpress, trata de como obtener mayor velocidad de carga de las páginas hechas con PHP, en el original se centra en el CMS WordPress, pero no sólo es válido para él, sino también para cualquier otro CMS o sitio web que hayamos creado por nuestra cuenta.

    Es muy útil para reducir el trafico que generamos, para ello utilizaremos la librería Zlib, en algunos servidores con CPanel podemos activarlo manualmente, otros ya lo traen listo para usarlo, en el peor de los casos no tienen ésta opción sería cuestión de ponerse en contacto con su hosting.

    La configuración es tan sencilla que con 2 líneas de código reducimos hasta un 80% Continúa Leyendo Acelerar la carga de un sitio web con PHP

  63. ReCaptcha en ASP.Net con VB y C#

    Junio 20, 2010. Un Comentario.

    A estas alturas todos ya habremos visto implementado en más de un sitio web reCaptcha . Adquirida por Google hace un tiempo atrás, es una famosa herramienta para prevenir el spam, detectando si el usuario conectado es un humano o un robot.

    ReCaptcha es un software libre, que podemos implementar como y cuando querramos, teniendo la particularidad que siempre nos mostrará dos palabras, pudiendo nada más interpretar la primera, ¿Cómo es esto? reCaptcha solamente entiende y puede comparar el texto de la primer palabra, la segunda palabra no puede comprender, ya que son palabras de libros escaneados y se utiliza de manera indirecta ésta herramienta para digitalizarlos para los siguientes servicios Google Books y Google News Archive. Esto quiere decir que si escribimos bien la primer palabra y la segunda no igual pasaremos el validador.

    Desde este link pueden descargar la librería, una vez descargada la .dll agregamos como referencia a nuestro proyecto web en Visual Studio. Para demostrar como se utiliza crearemos una página muy sencilla Continúa Leyendo ReCaptcha en ASP.Net con VB y C#

  64. Leer log del registro de eventos de Windows con C#.Net

    Junio 18, 2010. Un Comentario.

    Como lo prometido es deuda, según lo que les decía aquí, quedaba pendiente en mostrar como leer las entradas del log que creamos y mostrarlo en alguna aplicación. A modo de ejemplo lo haremos en una página web Asp.net, sencilla que contiene solo un botón y un label.

    Siguiendo la temática esto puede resultarnos muy útil, para no tener que acceder físicamente al equipo en donde se están guardando los logs, además que lo integramos con nuestra aplicación.

    En la clase personalizada que ya teniamos en el post anterior agregamos el siguiente método: Continúa Leyendo Leer log del registro de eventos de Windows con C#.Net

  65. Guardar log en el registro de eventos de Windows con C#.Net

    Junio 18, 2010. 9 Comentarios.

    Guardar log de nuestros sistemas siempre es muy importante, nos ayudará posteriormente a resolver problemas y conocer sus orígenes, autores y otros. Esto podemos hacer de muchas maneras, en alguna tabla en la base de datos, en un fichero de log, enviando por email, y muchas otras maneras. También podemos almacenarlo en el registro de eventos de Sistema Operativo Windows.

    El framework nos facilita ésta tarea, tan sólo se necesita muy poco código para lograr este cometido. Crearemos una pequeña clase que recibirá los parámetros necesarios, y podrá ser invocado desde Continúa Leyendo Guardar log en el registro de eventos de Windows con C#.Net

  66. Crear y Utilizar Sesiones en ASP.Net

    Junio 17, 2010. 3 Comentarios.

    El objeto Session, nos permite crear sesiones de usuarios, que tiene un tiempo de validez antes de expirar, por default su tiempo es de 20 minutos. El mismo tiene varios usos y no sólo el de crear sesiones, su uso es típico en aplicaciones con  carritos de compra, en foro para establecer un tiempo mínimo para poder votar o volver a escribir un mensaje.

    El mismo se almacena en el servidor, y es administrado por él. En el siguiente ejemplo escrito en C#veremos una similación precaria de un formulario que va cargando Productos en un ArrayList, y lo envía al servidor para almacenarlo en una variable de sesión, luego abriendo incluso otra ventana el mismo puede ser Continúa Leyendo Crear y Utilizar Sesiones en ASP.Net

  67. Como utilizar Cookies en Asp.Net

    Junio 16, 2010. Dejanos el Primer Comentario..

    Desde la Web 1.0 que venimos escuchando y utilizando las cookies, hasta hoy día se conserva su uso aunque ya en menor medida. Principalmente su fin es almacenar información no relevante ni crítica del usuario, en su propia máquina, lo típico es almacenar información de navegación, usos del sitio, preferencias del mismo, etc.

    El servidor solicita la creación y lectura de los mismo, pero quién finalmente la gestiona es el cliente, es por eso que debemos prever su uso, ya que el usuario puede tener un configuración de seguridad muy estricta que no permita su utilización, por lo que no debemos ser muy dependientes de las cookies.

    Otros factores que debemos tener en cuenta, es que allí no tenemos que almacenar información relevante, como password, connections strings, datos de acceso clasificado, etc. ya que ellas son simples ficheros Continúa Leyendo Como utilizar Cookies en Asp.Net

  68. Crear Totales por Página con Crystal Reports

    Junio 15, 2010. Dejanos el Primer Comentario..

    Una de las preguntas que siempre me hice es, si el mayor producto de reporteadores del mundo Crystal Reports, por que no existe ya un mecanismo más sencillo para hacer cortes por páginas? Quizá exista algún justificado motivo, pero viendo estas facilidades en productos de la competencia como Fast Report y Jasper Reports, por que éstos no han tomado este ejemplo?

    Supongo que más de uno se preguntará lo mismo, aunque no exista un modo rápido y ultra fácil, hay varias maneras de hacerlo, expondré el modo que me parece más sencillo entre todos, usando el fuerte de ésta herramienta, las fórmulas.

    En el ejemplo lo que veremos será un reporte pequeño, donde tenemos totales de los costos de los artículos, agrupados por Categorías de Articulos, por cada corte, se muestra un sub-total, Continúa Leyendo Crear Totales por Página con Crystal Reports

  69. Detectar desde donde llegó un visitante con PHP

    Junio 14, 2010. 7 Comentarios.

    Saber sobre nuestro origen, de donde venimos es una de las incógnitas aún no resueltas de nosotros los humanos, por suerte para nosotros los programadores tenemos esta respuesta gracias a PHP, nos dice de donde venimos y que podemos hacer al respecto sobre a donde queremos ir o hacer (Ya se, ya se.. parece que me fumé antes de escribir la intro).

    Volviendo a lo serio, detectar desde donde provienen nuestros usuarios en muchos casos es sumamente útil, con ello podríamos colocar ciertos anuncios, o crear un comportamiento distinto del sitio, o tan sólo almacenar esa información para un posterior proceso de estadísticas, etc. etc..

    El código que agregaremos debe estar presente en todas las páginas, para que sea fiable, por ello es recomendable Continúa Leyendo Detectar desde donde llegó un visitante con PHP

  70. Recepción y Retorno de Valores en las funciones de PHP

    Junio 12, 2010. Dejanos el Primer Comentario..

    Es muy común y sumamente útil separar nuestros procesos repetitivos en funciones especializadas para el proceso, y así evitar reescribir constantemente el mismo código una y otra vez. De más está mencionar todas las ventajas que éstas conllevan.

    En php es realmente simple el manejo de ellas, para comprender mejor el concepto ejemplicaré una función que calcula la hipotenusa de un triangulo utilizando el teorema de pitágoras. Para refrescar un poco las mentes de muchos la fórmula es la siguiente:

    c2 = b2 + a2

    De paso utilizaremos 2 funciones que servirá a más de unos en algún momento, como lo son Continúa Leyendo Recepción y Retorno de Valores en las funciones de PHP

  71. Convertir de String a Color en ASP.Net

    Junio 9, 2010. Dejanos el Primer Comentario..

    Gracias a los WebControl de ASP.Net tenemos muchas facilidades y velocidad de desarrollo, y en mas de una ocación necesitaremos formatear estos según ciertas circunstancias. O incluso solicitar al usuarios que setee la configuración que desea y luego se aplique sobre los objetos de la web.

    Especificamente nos enfocaremos en los modos que el usuario puede setear colores de fuentes, en tres distintos modos, RGB, Hexadecimal, y ColorName. Continúa Leyendo Convertir de String a Color en ASP.Net

  72. Instalar Servidor de SubVersion en Windows

    Junio 8, 2010. 7 Comentarios.

    Para muchos éste concepto no es nada nuevo,  es algo cotidiano que utilizan en su día a día, pero para otros que incluso llevan bastante tiempo en el mundo del desarrollo de software es un concepto totalmente desconocido, para ellos que se preguntarán ¿que es SVN?

    Básicamente se trata de un software para el control de fuentes, versionando históricamente los cambios del mismo. Así facilitando el trabajo en equipo, ya que los fuentes se encuentran centralizados en un servidor, donde todos los miembros del equipo pueden descargarlo y subir sus cambios para que el resto de los desarrolladores y obtengan ellos nuevamente la última versión de los fuentes.

    SVN es una mejora del clásico CVS, el cual tenía muchas deficiencias. Además de esto hoy día existen otras alternativas como GIT o Mercurial que podríamos ver más adelante.

    SubVersión es capaz de versionar practicamente cualquier lenguaje y entre los más populares están Java, C#, VB, C, C++, Continúa Leyendo Instalar Servidor de SubVersion en Windows

  73. Setear parametros con valores nulos en Java

    Junio 7, 2010. Dejanos el Primer Comentario..

    Muchas veces en nuestra base de datos tenemos procedimientos almacenad0s que reciben parámetros, y alguno de éstos debe ser enviado como nulo (Null/NullDB). En java ya sea que estemos utilizando un CallableStatement o PrepareStatement podemos enviar de un modo bastante elegante.

    Tradicionalemente enviamos de este modo los parametros:

    PreparedStatement ps = conn.prepareStatement("{ call NuestroSP (?, ?) }");
    ps.setInt(1, 3);
    ps.setString(1, "devtroce");
    

    Ahora si deseamos enviar el primer parámetro con valor nulo, podemos hacer del siguiente Continúa Leyendo Setear parametros con valores nulos en Java

  74. Importar datos de MS Excel 2007 [.xlsx] a SQL Server

    Junio 5, 2010. Dejanos el Primer Comentario..

    Importar datos de las planillas electrónicas MS Excel con el formato de la versión 2007 en adelante (.xlsx) en SQL Server en sus versiones 2005 y 2008 sin el Service Pack 1 como mínimo instalado, notarán que no se puede realizar por el típico proceso, ya que no existe un proveedor ODBC para ésta versión.

    No es un proceso complejo, y por suerte como nos tiene acostumbrados Microsoft con sus productos, es muy sencilla esta tarea. Iremos viendo unas capturas de pantalla para hacer más sencillo también el post.

    Tenemos que elegir el proveedor de datos como Microsoft Office 12.0 Access Database Engine. En caso de no tener instalado lo puede descargar Continúa Leyendo Importar datos de MS Excel 2007 [.xlsx] a SQL Server

  75. Mostrar lo que estoy escuchando con Winamp o Aimp en Pidgin

    Junio 2, 2010. Dejanos el Primer Comentario..

    Es tan conocido ya hoy día el sistema de mostrar lo que estoy escuchando en nuestro estado de la mensajería instantánea en los clientes más populares, como Windows Live Messenger, Gtalk, Digsby, pero que pasa con los que no usamos estos clientes? Personalmente utilizo el Pidgin, y éste no trae ésta opción de manera nativa.

    Para hacer esto sobre Windows es relativamente sencillo, necesitamos descargar el plugin Music-Tracker . El mismo trae soporte para varios reproductores muy populares, como lo son Winamp, Continúa Leyendo Mostrar lo que estoy escuchando con Winamp o Aimp en Pidgin

  76. Instalar Dreamweaver CS3 en GNU / Linux (openSuSE)

    Junio 2, 2010. Un Comentario.

    Hace unos años atras, necesité instalar Dreamweaver CS3 en GNU/Linux, y encontraba bastantes “guías” para Ubuntu que no llegué a comprobar si funcionaban, en ese entonces lo quise hacer en openSuSE y lo había logrado, así que voy a sacar polvo a ese antiguo topic que deje en un foro y traerlo a devtroce.

    Lo había hecho con wine 1.1.2 pero debería funcionar con algunas versiones un poco más viejas, ni que decir con las más nuevas.. para instalar wine hacemos lo siguiente:

    1
    
    sudo zypper install wine

    Otra de las cosas es que necesitamos tener una copia instalada en algún Windows primeramente, podríamos instalarlo en una máquina virtual de modo temporal, como fue mi caso. Ésta instalación la debemos activar en Windows, creo que esto queda a conciencia del usuario final, si le aplica un parche o se compra la licencia y lo utiliza sobre su sistema operativo favorito :)

    Debemos abrir el regedit.exe del Windows y exportar la clave, y almacenarlos en un fichero llamado dreamweaver.reg:

    1
    
    "HKEY_LOCAL_MACHINE/Software/Adobe"

    Ahora ejecutamos en nuestro terminal Continúa Leyendo Instalar Dreamweaver CS3 en GNU / Linux (openSuSE)

  77. VoltDB, la nueva generación de bases de datos OLTP

    Junio 1, 2010. Un Comentario.

    Hace poco vio la luz un nuevo DBMS, en el año 2009, llamado VoltDB, y su creador es nada más y nada menos Mike Stonebraker quien trabajó en el desarrollo de PostgreSQL e Ingres. Es un motor que promete bastante, y trae ideas bastantes nuevas, personalmente por su características no me parece que reemplazará a los tradicionales y robustos moteres empresariales que tenemos hoy día en el mercado, pero si me parece una muy buena alternativa para los servicios que requieren alta disponibilidad de los mismos no tanto alta fiabilidad de datos.

    Quienes pueden requerir este tipo de productos? Hoy día servicios como facebook, twitter y otros requieren de súper velocidades de respuestas ya que son tan populares y deben ser rápidos éstos en responder.

    Este motor se enfoca mucho a trabajar en memoria constante, y no tanto en disco físico. Además que prometen ser una 50 veces más rápido que otros motores, pudiendo procesar unas 53.000 transacciones por segundo, contra las Continúa Leyendo VoltDB, la nueva generación de bases de datos OLTP

  78. Agregar opciones al menú de Windows / Compactar Restaurar Backup de Firebird

    Mayo 31, 2010. Dejanos el Primer Comentario..

    Hay muchas tareas que se convierten en rutinarias cuando trabajamos con un Sistema Operativo, cuando eso pasa siempre queremos automatizarlo lo más que podemos estas tareas “aburridas”, personalmente me sucede mucho en trabajo cuando tengo que crear el backup y restaurar las bases de datos de firebird que utilizamos, es por eso que me decidí crear unos menús para tales efectos. Se puede decir que con este post estaría matando dos pajaros de un tiro, como agregar los menús personalizados en Windows y como crear backups de firebird o restaurarlos..

    Básicamente lo que hace es al dar click derecho sobre le fichero de la BD, invoca a la herramienta gbak del firebird y le pasa los parametros correspondientes para procesarlos, véamos como agregar éstos menús.

    Primero debemos abrir el editor de registros de Continúa Leyendo Agregar opciones al menú de Windows / Compactar Restaurar Backup de Firebird

  79. Capturar Output de los Procedimientos Almacenados de SQL Server con Java

    Mayo 30, 2010. 4 Comentarios.

    A parte de un conjunto de datos que puede devolver un Stored Procedure en SQL Server, también podemos hacer que ellos devuelvan uno o varios valores escalares, un caso tipico es cuando insertamos un registro y la tabla tenia una PK Identity, si queremos recuperar esa clave podemos usar este mecanismo, aunque no necesariamente se reduce a esa posibilidad, con un poco de imaginación podemos darle usos en otras situaciones. El ejemplo que muestro esta construido con SQL Server, pero es funcional con otros motores que manejan el retorno de valores escalares en sus procedimientos almacenados..

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    CREATE PROCEDURE InsCliente
       @IdCliente INT OUTPUT,
       @Nombre VARCHAR(25),
       @Ruc VARCHAR(25)
    AS
    BEGIN
       -- Insertamos un registro
       INSERT INTO Cliente VALUES (@Nombre, @Ruc);
       -- Recuperamos el Id que se genero
       SELECT @IdCliente = @@Identity;
    END

    Tomando en cuenta este procedimiento que Continúa Leyendo Capturar Output de los Procedimientos Almacenados de SQL Server con Java

  80. Cambiar Configuración de Entorno en Visual Studio

    Mayo 24, 2010. 3 Comentarios.

    Cualquiera que haya instalado o programado con el IDE de Visual Studio se habrá dado cuenta que la primera vez que inicia, nos pide que elijamos como queremos ver el entorno, las opciones que nos da son las siguientes:

    1. General Development Settings
    2. Project Management Settings
    3. Visual Basic Development Settings
    4. Visual C# Development Settings
    5. Visual C++ Development Settings
    6. Visual F# Development Settings
    7. Web Development
    8. Web Development (Code Only)

    Una vez elegida la configuración, en algún otro momento podriamos queres elegir otro perfil, es justamente lo que vamos a mostrar, es aplicable  en Visual Studio 2008 y 2010 (las capturas serán con el 2010, pero servirá para la versión anterior).

    Nos vamos al Menú Tools  –> Import & Export Settings.. y veremos la siguiente pantalla Continúa Leyendo Cambiar Configuración de Entorno en Visual Studio

  81. Cambiar el propietario de un objeto en SQL Server

    Mayo 13, 2010. 4 Comentarios.

    En SQL Server todos los objetos siempre tienen un dueño (owner) el cual tiene poder absoluto sobre el mismo, pero eso no limita que otros usuarios tengan poder sobre un objeto dado, tendrán permisos si el dueño o un usuario con poder de otorgar permisos (otorgado originalmente por el dueño o cualquier usuario que pertenezca a las funciones fijas de base de datos db_owner o a las funciones fijas de base de datos db_ddladmindb_securityadmin).

    Hay momentos en donde lo que buscamos es cambiar directamente de dueño un objeto, esto puede darse por varios motivos, eliminación del dueño (hay que tener que tener cuidado con esto o eliminaremos todos lo objetos que pertenezcan al dueño), asignación rápida de permisos completos de un usuario sobre el objeto, con respecto a si aplicamos este procedimiento por este motivo, debemos tener muy en cuenta que todos los permisos que tenía en propietario original, serán revocados, por lo Continúa Leyendo Cambiar el propietario de un objeto en SQL Server

  82. Componentes & Controles para Visual Studio

    Mayo 12, 2010. Dejanos el Primer Comentario..

    Creo que todos conocemos los controles nativos que trae el IDE de Microsoft, Visual Studio en cualquiera de sus versiones, normalmente son bastante feos y de muy pocas funcionalidad, por ejemplo el comboBox, tán sólo soporta una columna, o el DataGridView no soporta árboles o niveles jerárquicos. Tán sólo son algunos ejemplos muy básicos.

    En ésta oportunidad veremos algunas herramientas de terceros (algunos free y otros de paga) que nos dan funciones adicionales y en algunos casos objetos nuevos que no tenemos de buenas a primeras.

    El primero que veremos es el sitio oficial de Microsoft donde nos muestra bien catalogado los productos, podemos discriminarlos por versión del IDE, si son gratis o no, tipo Continúa Leyendo Componentes & Controles para Visual Studio

  83. Inaugurando el foro [DevTroce]

    Mayo 11, 2010. 2 Comentarios.

    Me complace anunciar que Devtroce está estrenando su propio foro, para compartir de una manera más amena nuestros conocimientos entre todos los usuarios.

    Últimamente me he fijado en las estadísticas de uso del blog, especialmente en las frases que utilizan para llegar aquí, gran parte de los usuarios buscan cosas simples, sencillas o algo muy específico y se encuentran con una información genérica considerando sus búsquedas. Por eso ésta decisión, quizá un poco prematura basada en las 300 visitas promedio al día. Continúa Leyendo Inaugurando el foro [DevTroce]

  84. Crear backup del Transaction Log y reducir su tamaño en SQL Server

    Mayo 6, 2010. Dejanos el Primer Comentario..

    Uno de los típicos problemas que aquejan a los DBA de SQL Server es el crecimiento montruoso del mismo, muchas veces ocupa varias veces más espacio que la propia base de datos. Este a su vez cumple un rol muy importante para este motor, no está allí por sólo capricho :P . Es el modo que el motor puede garantizar la integridad de los datos, toda transacción primeramente se escribe allí, y si y sólo sí el usuario confirma (COMMIT TRANSACTION) la operación pasa a la base de datos, también le sirve contra apagones, cortes de red o cualquier otro evento similar y así poder dejar los datos como estaban originalmente.

    Existen tres modos de recuperación del log: Completa, Registro Masivo y Simple (No entraremos en detalle de esto por hoy).

    La manera más típica de reducir el tamaño del Log es haciendo un Backup del mismo, tarea que recomiendo sea ejecutada períodicamente y en lo posible tener armado un plan de mantenimiento  con ejecuciones automáticas.

    1
    2
    3
    4
    5
    6
    
    BACKUP LOG [Devtroce] 
     
    TO DISK = N'C:\Backup\Devtroce.bak'
    WITH NOFORMAT, NOINIT,
    NAME = N'Devtroce-Transaction Log Backup',
    SKIP, NOREWIND, NOUNLOAD, STATS = 10;

    o bien, Continúa Leyendo Crear backup del Transaction Log y reducir su tamaño en SQL Server

  85. Importar datos de un fichero CSV en SQL Server

    Abril 24, 2010. Un Comentario.

    Muchas veces en la práctica vamos a encontrarnos con la siguiente situación, nos envían de algún lugar datos en un fichero CSV (Fichero que tiene valores separados por comas), y necesitemos almacenar estos en nuestra base de datos, los motivos pueden ser varios, importación de datos de alguna base datos que no solamente puede ser SQL Server mismo, algún programa externo a nosotros genera este tipo de ficheros, por cuestión de interoperabilidad con otras empresas se decide utilizar este mecanismo, en fin, cualquier motivo resulta válido para el caso.

    El punto más bien es utilizar un mecanismo más rápido de inserción de los mismos a nuestra BD, que tener que programar una aplicación que haga este trabajo. SQL Server tiene su propia herramienta que hace esto por nosotros, se lo puede hacer de manera gráfica como por línea de comandos. Evidentemente no veremos el modo gráfico porque es demasiado intuitivo que no requiere explicación, pero si sería interesante conocer como esa pantalla gráfica hace “por debajo” este trabajo, que nosotros mismo podemos hacerlo.

    El comando BULK nos ayudara, veamos un ejemplo práctico. Creemos la siguiente tabla:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    USE BD
    CREATE TABLE CSVPersona
    (
    IdPersona INT,
    Nombre VARCHAR(40),
    Apellidos VARCHAR(40),
    Nacimiento DATETIME
    );
    GO

    Luego necesitamos crear Continúa Leyendo Importar datos de un fichero CSV en SQL Server

  86. Cargar datos de una base de datos con JSP

    Abril 24, 2010. Dejanos el Primer Comentario..

    Hoy escribiremos por primera vez sobre JSP, Java Server Page. La evolución de los Servelts de Java, la cual se diferencia de su antecesor que ya no necesita ser compilado antes de deployarlo, sino este proceso se realiza por el servidor cuando el usuario lo solicita.

    Trabajaremos con una base de datos MySQL, ya que es la más popular hasta hoy día para la plataforma web, de igual modo el ejemplo servirá para otros motores, solo deberíamos cambiar la capa de conexión por otra.

    Trabajar con JSP y Netbeans es mucho más sencillo que con eclipse pero de igual modo lo haremos con este ultimo, personalmente he utilizado la versión Galileo para el ejemplo.

    El ejemplo como siempre será lo más sencillo posible, en la BD necesitaremos crear una tabla básica de usuarios, que tengan nombres, los cuales mostraremos un listado de los mismos dentro de un Table HTML.

    Una vez creado ésta tabla, que doy por hecho que lo pueden hacer, procederemos a crear nuestro proyecto Web. Una vez abierto nuestro IDE, buscaremos en el menú:

    Archivo --> Nuevo --> Dinamic Web Proyect

    Alli seteamos la configuración de desarollo, le colocamos el n0mbre al proyecto, yo le llamado JSPTroce, la versión del modulo que puede ser sin problemas el 2.4 o 2.5.

    Siguiente --> Siguiente --> Finalizar

    Una vez hecho esto, necesitaremos el driver JDBC para conectarnos a MySQL, la cual pueden descargar desde el sitio oficial. Más adelante también necesitaremos tener instalado el servidor o contenedor Web Apache Tomcat, preferentemente la versión 6, aunque debería funcionar sin ningún problema en la 5.5 el mismo lo descargan de aqui.

    Una vez instalado el servidor, podemos copiar Continúa Leyendo Cargar datos de una base de datos con JSP

  87. Lo nuevo en Visual Studio 2010 y Framework 4.0

    Abril 15, 2010. Dejanos el Primer Comentario..

    Hace unos días Microsoft lanzó su nueva versión de su IDE de desarrollo por excelencia, Visual Studio 2010. Además de framework 4.0. Los mismos pintan muy bien, se ven mejoras visuales y de tiempo de desarrollo. Se han enfocado mucho en facilitarle la vida al desarrollador con ésta nueva versión, especialmente a los desarrolladores WEB.

    Algunas de los cambios significativos que han introducido son los siguientes:

    1. El que más llamo mi atención fue la introducción del lenguaje F#, que es un lenguaje orientado a la funcionalidad, creado hace un buen tiempo, pero recién introducido a ésta plataforma. La misma tiene soporte para orientación a objetos y programación imperativa, tipos de datos avanzados, tipos de datos inmutables, entre otros. Probablemente sea el lenguaje de tiempo de desarrollo más bajo de ésta plataforma. Aún no lo he probado pero apenas lo haga ya verán fragmentos de código colgados aquí en devtroce..
    2. Mejoras en el IDE visualmente hablando.
    3. El CLR nuevo ofrece mayor Continúa Leyendo Lo nuevo en Visual Studio 2010 y Framework 4.0
  88. Utilizar precisión de milisegundos en Delphi

    Abril 15, 2010. Dejanos el Primer Comentario..

    En la entrada anterior vimos como almacenar el tiempo con precisión en MySQL, ésta vez veremos algo semejante, como la función NOW de por sí no devuelve milisegundos, debemos hacer un decodificamiento del mismo para éste efecto, o caso contrario utilizar la API de Windows, el cual es mucho más preciso que la función anterior.

    1
    2
    3
    4
    5
    6
    7
    
    // esta es primer forma de hacerlo
    var
     year, mes, dia, hora, minuto, segundo, milisegundo: Word;
    begin
       DecodeDate(now, year, mes, dia);
       DecodeTime(now, hora, minuto, segundo, milisegundo);
    end;
    1
    2
    3
    4
    5
    6
    7
    
    // Invocacion con la API de Windows, solo extrae el milisegundo, pero pueden obtener mas info del objeto TSystemTime
    var
     st: TSystemTime;
    begin
       Windows.GetSystemTime(st);
       MessageDlg(IntToStr(st.wMilliseconds), mtInformation, [mbOK], 0);
    end
  89. Utilizar precisión de milisegundos en MySQL

    Abril 12, 2010. Un Comentario.

    Almacenar en campos de tipo DateTime, Time o Timestamp con una precisión fina en MySQL es un tanto difícil, ya que lamentablemente hasta la fecha aún no hay soporte para tal efecto. Se pueden formatear el tiempo pero si la fuente del tiempo es uno de estos campos en MySQL veríamos los milisegundos con valores cero.

    En la lista de petición de desarrollo de MySQL hace más de 5 años que vienen pidiendo esto, y no hacen caso (el motivo lo desconozco) como pueden ver aqui (inglés requerido). Esto provocó distintas reacciones, algunos Continúa Leyendo Utilizar precisión de milisegundos en MySQL

  90. Crear un Timer en Java

    Abril 12, 2010. Dejanos el Primer Comentario..

    En Java a diferencia de otros lenguajes no tenemos un objeto timer tan fácil de manipular, existe por suerte la clase que nos ayudará pero la implementación es un tanto más larga. Debemos crear manualmente las tareas a ser asignadas, los métodos de inicio, detención y reinicio.

    En éste ejemplo sencillo mostraré como imprimir simplemente el tiempo que va pasando con el timer. Pero ustedes podrán agregar más código en la clase llamada MiTarea, incluso podrán crear varias Continúa Leyendo Crear un Timer en Java

  91. Chatear en Facebook y Twitter desde Pidgin

    Abril 5, 2010. Dejanos el Primer Comentario..

    Personalmente no me gusta tener muchas aplicaciones abiertas para un solo fin, como es el caso de la mensajería instantánea, Windows Live Messenger, GTalk, Yahoo Messenger, para mí es inconcebible esto, es por eso que siempre he buscado los clientes multiprotocolos, cuando estoy conectado desde alguna distro GNU/Linux sin falta lo hago desde pidgin, y anteriormente cuando me conectaba desde Windows usaba Disgsby ya que este me ofrecía conectarme a todas mis cuentas de IM, ademas de conectarme a facebook y twitter, el problema con él es que crashea con bastante frecuencia (aunque tiene una interfaz más linda que pidgin).

    Cansado de los “crasheos” me puse a investigar si podía o no conectar mis cuentas de facebook y twitter con mi pidgin y así volver al viejo caballo de Continúa Leyendo Chatear en Facebook y Twitter desde Pidgin

  92. Eliminar ficheros con Delphi

    Abril 5, 2010. Dejanos el Primer Comentario..

    Nuevamente hoy escribiré código que trabaja con ficheros, pero ésta vez desde Delphi. Veremos como podemos eliminar archivos del disco de a uno o varios a la vez (no recursivamente). Será un pequeño procedimiento que recibe un String que representa la ruta del fichero, y luego es convertido a PAnsiChar para el objeto que usamos.

    Utilizar la API de Windows

    Primeramente necesitamos hacer uso de la siguiente clase:

    ShellAPI

    En la sección type declaramos como procedimiento público:

    1
    2
    3
    4
    5
    6
    7
    8
    
    type
      ...
      private
        { Private declarations }
      public
        { Public declarations }
        procedure BorrarFichero(fichero: String);
      end;

    y ahora vemos el desarrollo del procedimiento: Continúa Leyendo Eliminar ficheros con Delphi

  93. Conectar y Consultar a SQL Server desde PHP sobre Windows

    Abril 5, 2010. Dejanos el Primer Comentario..

    Mucho de este lenguaje no he escrito, uno de los motivos es que no trabajo con el hoy día pero siempre me pareció un lenguaje muy interesante y sencillo de entender su sintaxis. Anteriormente hemos visto un ejemplo muy sencillo de concatenación de variables string, hoy haremos algo más interesante: Nos conectaremos a SQL Server 2008 (también funciona con otras versiones) y haremos una consulta sencilla y lo mostraremos en el browser.

    Todo esto lo haremos bajo un servidor web Apache instalado en Windows, las fuentes del php no cambiarían si lo usaramos en otro Sistema Operativo, pero si la configuración del PHP en sí sobre apache (prometo verlo más adelante este tema).

    Para llevar a cabo este ejemplo doy por hecho que tienen instalado el servidor Web Apache y los módulos para PHP, veremos una pequeña configuración básica nada más. Lo primero que necesitaremos es descargarnos las “.dll” que permitirán interactuar con nuestro motor de bases de datos, ellas podemos descargarlas desde aquí. Normalmente en nuestro directorio donde se encuentra instalado el PHP, existe una carpeta llamada “ext”, en ella debemos copiar el fichero:

    php_mssql.dll

    La cual se encuentra en las carpetas que acabamos de descargar en un directorio con el mismo nombre. Luego en la raíz de la instalación  Continúa Leyendo Conectar y Consultar a SQL Server desde PHP sobre Windows

  94. Tutorial de configuración de Servidores de Replicación en SQL Server

    Marzo 29, 2010. Dejanos el Primer Comentario..

    Es muy típico hoy día necesitar de una alta disponibilidad de los datos de nuestros sistemas informáticos, o distribuirlos a lugares remotos constantemente. Normalmente no es una terea muy sencilla de manejar pero SQL Server en cierto modo nos facilita bastante la vida laboral ya que trae características para estos objetivos, nos ayudará a transaportar nuestros datos de manera integra y segura.

    El ambiente necesario es de 2 o más servidores para crear la replicación. Los objetos o conceptos que debemos manejar son seis:

    1. Publicador
    2. Distribuidor
    3. Suscriptor
    4. Publicación
    5. Articulo
    6. Suscripción

    El publicador se encuentra alojado en un servidor y se encarga de poner a disposición los datos, es pocas palabras, publica lo que se necesita replicar, en sus publicaciones pueden existir varios Continúa Leyendo Tutorial de configuración de Servidores de Replicación en SQL Server

  95. Manejar Transacciones en la Base de Datos desde C# .Net y Visual Basic .Net

    Marzo 29, 2010. Dejanos el Primer Comentario..

    El concepto de transacción de bases de datos no es para nada nuevo, pero eso no significa que no fuera a ser válido aún, de hecho sigue siendo tan vital como cuando tuvo origen. Tampoco es un concepto dificil de comprender, pero no lo voy a explicar detalladamente, para ello les dejo los enlaces que explican en cristiano su siginificado.

    Wiki: http://es.wikipedia.org/wiki/Transacción_(base_de_datos)

    Wapedia: http://wapedia.mobi/es/Transacción_(informática)

    El código que expondré genéricamente debe funcionar en cualquier SGDB decente, aunque para el ejemplo práctico utilizaré SQL Server. Continúa Leyendo Manejar Transacciones en la Base de Datos desde C# .Net y Visual Basic .Net

  96. Leer un fichero de texto con Visual Basic .Net

    Marzo 26, 2010. Dejanos el Primer Comentario..

    Dado que estoy escribiendo muy poco sobre este lenguaje últimamente, decidí hacer algo nuevamente en él, dio también la coincidencia que ayer un ex compañero de trabajo me pedía que le ayude con esta tarea, necesitaba leer un fichero de texto desde Visual Basic .Net. Le comentaba que no es una tarea dificil, pero que no lo recordaba de memoria, así que me fijé en uno de mis códigos anteriores que lo había implementado y aquí lo pueden ver:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
            Const file As String = "D:\Devtroce.txt"
            Dim sr As System.IO.StreamReader = Nothing
     
            Try
                sr = New System.IO.StreamReader(file)
                Dim Texto As String = sr.ReadToEnd() ' con este metodo leeriamos todo el fichero y cargar en el string
                Dim Linea As String = sr.ReadLine() ' con este metodo leeriamos una fila del fichero, mientras no lo cerremos si esto lo ponemos en un bucle leeriamos el fichero linea por linea
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            Finally
                sr.Close()
                sr.Dispose()
            End Try
  97. Verificar y Crear directorio con Java

    Marzo 26, 2010. 2 Comentarios.

    La creación de directorios o carpetas con Java es una tarea realmente muy sencilla, todo es cuestión de utilizar el objeto File del paquete java.io, el mismo nos ofrece métodos para crearlos y verificar su existencia incluso. Veamos primeramente como crearlo: Continúa Leyendo Verificar y Crear directorio con Java

  98. Ejecutar Bash desde Java y Capturar Retorno en un Buffer

    Marzo 25, 2010. Dejanos el Primer Comentario..

    Creo que esto no es algo muy común para desarrollar, pero extrañamente lo necesite en el trabajo, supongo que a más de uno le servirá. Básicamente el código lo que hace es llamar a Bash de GNU/Linux, y permite ejecutar comandos nativos del Sistema Operativo, además de capturar el retorno de la ejecución del comando en un buffer e imprimirlo en pantalla.

    Es sabido que Java es de ejecución Multiplataforma, pero en este caso sólo funcionará sobre cualquier distro GNU/Linux que tenga instalado shell bash, por lo tanto incluyo una pequeña validación del mismo para evitar una excepción descontrolada si se ejecuta en otras plataformas. Continúa Leyendo Ejecutar Bash desde Java y Capturar Retorno en un Buffer

  99. Ver/Modificar la Etiqueta de un disco Fat 16/32 en Ubuntu por linea de comandos

    Marzo 24, 2010. Dejanos el Primer Comentario..

    La tarea de agregar una etiqueta o label en las distros GNU/Linux a nuestras unidades de disco formateadas en fat16 o fat32 no precisamente es la más intuitivas como en otros Sistemas. Realmente intente conseguir esa información sin tener que instalar aplicación alguna, probé con fdisk, mount, y otros, me devolvían si valores, como los bloques, tipo de formato, etc, pero no el label. También conocer esta información antes que el disco sea montado, (cosa que me complico más aún). Al fin desistí y opte por usar una herramienta separada llamada mtools (seguro que muchos la conocen ya).

    Veamos los pasos a seguir, podemos instalarlo de 2 maneras: Continúa Leyendo Ver/Modificar la Etiqueta de un disco Fat 16/32 en Ubuntu por linea de comandos

  100. Solucionar error Can’t create table ‘???’ (errno: 150) en MySQL

    Marzo 24, 2010. 2 Comentarios.

    Hace un momento me ha tocado resolver un problema que ocurría en uno de nuestros motores de MySQL, se daba cuando intentaba crear una llave foránea y el error era semejante al que sigue, donde ??? representa el nombre de la tabla:

    Can't create table '???' (errno: 150)

    Se estaba volviendo algo molesto y tenía una idea de lo que podía ser, un problema con la FK de las tablas, pero no encontraba que específicamente. Leyendo un poco la documentación encontré y aprendí que se puede deber principalmente a 3 situaciones: Continúa Leyendo Solucionar error Can’t create table ‘???’ (errno: 150) en MySQL

  101. Acceder desde Pidgin al Talk de Google Apps

    Marzo 16, 2010. Dejanos el Primer Comentario..

    Muchos somos los que utilizamos esta herramienta para conectarnos a nuestros servicios de mensajería instantánea, por ser multiplataforma, minimalista, multi-cuentas, etc. Uno de los obstaculos con los que personalmente Continúa Leyendo Acceder desde Pidgin al Talk de Google Apps

  102. Operaciones de fechas y horas en MySQL

    Marzo 15, 2010. Dejanos el Primer Comentario..

    Es tan común necesitar realizar operaciones de cualquier tipo con las fechas y horas de los campos de nuestras bases de datos, sumar, restar, sustraer una porción de la misma, etc.. Una de las tareas más tediosas con ellas suele ser el GMT –aunque esto no tocaremos hoy lo comento, veremos netamente algunas operaciones comunes–. Continúa Leyendo Operaciones de fechas y horas en MySQL

  103. Insert or Update [FIREBIRD]

    Marzo 11, 2010. 2 Comentarios.

    Recién hemos visto como hacer ésta tarea en MySQL y fue bastante sencillo, en el caso de Firebird es aún mucho más sencilla y es la implementación que más me ha gustado :D Hay que tener en cuenta que Firebird soporta ésta sintaxis recién a partir de la versión 2.1.

    Básicamente consiste en insertar 1 registro si no existe o actualizarlo en caso contrario sin necesidad de hacer manualmente la validación. Algunos factores a tener en cuenta son que no se puede la sentencia OLD en los triggers, además no es necesario que contenga todas la columnas de la tabla.

    Además se tiene la posibilidad de hacer el “merge” basado en cualquiera de las columnas, no está limitado a las PK o Unique Index (estos pequeños detalles hizo que me guste su implementación además que Continúa Leyendo Insert or Update [FIREBIRD]

  104. Insert or Update [MySQL]

    Marzo 11, 2010. Dejanos el Primer Comentario..

    En el día a día laboral cuando trabajamos con bases de datos nos encontramos con tareas repetitivas en donde debemos hacer altas o modificaciones en los registros de nuestras bases de datos, normalmente para decidir que acción llevar a cabo primeramente nos tomamos la molestia de hacer una consulta a la fuente, y verificamos si no existe lo que buscábamos procedemos por el INSERT y si existe UPDATE. Esto podemos hacerlo de manera mucho más eficiente, rápida y con menos código en ambos lados (BD y App) de distintas maneras en las distintas bases de datos del mercado (al menos en las más difundidas MySQL, Firebird, SQL Server [2008], Oracle, etc). En esta entrada lo implementaremos en MySQL aunque espero en los próximos días hacer las entregas de los otros motores.

    Ya en éste motor específico tenemos 2 sentencias que nos pueden ayudar con ésta tarea: INSERT ON DUPLICATE KEY UPDATE o también REPLACE. Personalmente siempre opto por la primer opción ya que éste lo que hace por “debajo” es insertar si no existe o actualizar si existe (justo lo que queremos) en cambio la segunda opción inserta si no existe, pero si se da el caso contrario elimina la fila y vuelve a insertar, esto supone un problema si Continúa Leyendo Insert or Update [MySQL]

  105. Como Manejar Errores en Delphi

    Marzo 9, 2010. Dejanos el Primer Comentario..

    Siempre es fundamental manejar correctamente las excepciones dentro de nuestras aplicaciones, así nos será más fácil tener una consistencia de datos y roturas de la aplicación frente al usuarios final. Aquí en DevTroce ya hemos tocado este tema en distintos lenguajes e incluso en motores de bases de datos y ésta vez le toca el turno a Delphi, es bastante similar que el resto de los lenguajes, pero con algunas particularidades propias.

    En Delphi tenemos disponible para nuestro uso 3 bloques: try, except y finally pero llamativamente sólo podemos utilizar 2 en un manejo de excepciones y en el cual obligatoriamente debe estar incluida la sentencia try. Veamos algunos ejemplos, en el primer caso tenemos el intento de ejecución de algún código y en caso de error es capturado por el bloque except y lo lanza en un mensaje emergente su descripción. Continúa Leyendo Como Manejar Errores en Delphi

  106. Bucles en Bash Shell (GNU/Linux)

    Febrero 24, 2010. 4 Comentarios.

    Crear bucles o loop’s en bash es una tarea sencilla que nos puede brindar muchas facilidades de ejecución repetitiva de procesos o programas que tengamos. Es un concepto muy corto así que mejor voy a lo cierto y concreto.
    Continúa Leyendo Bucles en Bash Shell (GNU/Linux)

  107. Solucionar problemas típicos de instalación de ASP.Net en IIS

    Febrero 23, 2010. Dejanos el Primer Comentario..

    Instalar IIS para levantar simples páginas web´s normalmente no representan un problema, pero si suele hacerlo cuando queremos instalar ASP.Net en IIS (Internet Information Server). La explicación de esto es que debe registrarse el soporte de ASP.Net en el IIS. Normalmente en nuestros entornos de desarrollo instalamos primero el framework, sea la version que sea, y su SDK para comenzar a desarrollar, mientras lo desarrollamos testeamos o hacemos el debug con el servidor de desarrollo nada mas, pero cuando tenemos ya algo y queremos probar nuestra aplicación web, hacemos la instalación del IIS. Proceso que no está mal, pero el IIS no registra al .Net, más bien .Net se registra en IIS, por ende tenemos 2 soluciones si nuestro caso es este:

    1. Desinstalar el framework, reiniciar, instalar IIS, reiniciar, Instalar de nuevo el framework (Opción no tan comoda).
    2. Registrar al .Net en el IIS como explicaremos en este documento.

    Paso 1

    Verificar que existe el usuario de Sistema Operativo llamada ASPNET, sino lo creamos manualmente desde el panel de control y le asignamos un password.

    Paso 2

    Vamos a Herramientas Administrativas en el Panel de Continúa Leyendo Solucionar problemas típicos de instalación de ASP.Net en IIS

  108. Instalar aplicaciones del framework dotnet sobre GNU/Linux con Wine

    Febrero 22, 2010. Dejanos el Primer Comentario..

    Es cierto que si queremos usar un sistema operativo, sea cual fuere, siempre es mejor instalar aplicaciones nativas del mismo o en los mejores casos los que son multiplataforma pero con soporte nativo también. Pero muchas veces nos vemos forzados debido a su alta popularidad a ejecutar aplicaciones de MS Windows sobre algun otro SO, ya sea GNU/Linux o BSD.

    Normalmente si son aplicaciones win32 con instalar wine ya es suficiente para su ejecución, pero que sucede si fue escrito el programa con algún lenguaje dotnet? Si ejecutamos el instalador del framework con Continúa Leyendo Instalar aplicaciones del framework dotnet sobre GNU/Linux con Wine

  109. Ejecutar Procedimientos Almacenados en MySQL con C#

    Febrero 19, 2010. Dejanos el Primer Comentario..

    Anteriormente veníamos viendo como ejecutar procedimientos almacenados en otros lenguajes, hoy veremos un lo mismo pero en C# y trabajaremos una base de datos MySQL, aunque también el ejemplo sirve para usarlo con otros motores, es solo cuestión de cambiar los objetos command y connection, por los proveedores para esos motores, pero la lógica sería la misma.

    Para el ejemplo supongo que ya tienen  armados los objetos en la base de datos, como la tabla, el procedimiento con sus parámetros de entrada y demás, así solo me centraré en el código de la aplicación.

    La primer clase correspondería a la de conexión y la segunda a la clase que tiene el Continúa Leyendo Ejecutar Procedimientos Almacenados en MySQL con C#

  110. Redimensionar un Array en C#

    Febrero 15, 2010. Dejanos el Primer Comentario..

    Uno de los problemas (por decirlo un problema) en C# con los Array o Vectores, es que no se pueden redimensionar mediante un metodo del objeto, es por eso que debemos improvisar y crear nuestro propio metodo que se encargue de realizar esta tarea.

    El código lo que hace en realidad es crear un nuevo Array, y volcar los valores del anterior Array al nuevo que tiene un tamaño mayor. Deben tener en cuenta que el código sólo sirve para expandir el tamaño, no para reducirlo. Continúa Leyendo Redimensionar un Array en C#

  111. Codificar en Base64 con Java

    Febrero 15, 2010. Dejanos el Primer Comentario..

    Si necesitamos en cualquier ocasión codificar los ficheros o texto en Base64 tenemos muchas opciones para hacerlo, una de ellas la alternativa opensource mantenida por Christian d’Heureuse. En realidad nos ofrece muchas alternativas, es decir, hacer lo mismo en varios lenguajes, Java, SQL Server, C, C++, entre otros.. También nos ofrece otros tipos de soluciones si quieren pasar a ver.

    La clase es simple, aqui os dejo: Continúa Leyendo Codificar en Base64 con Java

  112. Encriptar / Desencriptar Texto en S-DES con Java

    Febrero 12, 2010. Dejanos el Primer Comentario..

    Ya habíamos visto anteriormente como encriptar ficheros con Java en AES-256, el caso de hoy será semejante, a diferencia que no encriptará ficheros completos, sino texto plano. El ejemplo es sencillo de utilizar, necesitamos la palabra a encriptar, la llave, que es una palabra secreta definida por nosotros, cuanto mas compleja ésta, más difícil violar el encriptado a fuerza bruta, les recomiendo que tenga una extensión de 16 o 32 caracteres, y un booleano que sirve para determinar la operación a realizar, y encriptar o desencriptar.

    Este código se tiene que tener cuidado para utilizarlo, ya que si lo encriptado se hizo en un sistema de codificación y el desencriptado en otro, no funcionará, ejemplo: Windows utiliza ASCII para éste efecto y GNU/Linux Unicode, así que lo que fue encriptado en Windows no se podrá desencriptar en GNU/Linux. Utilícenlo únicamente si siempre será en el Continúa Leyendo Encriptar / Desencriptar Texto en S-DES con Java

  113. Concurso MSDN Net Minds

    Febrero 11, 2010. Dejanos el Primer Comentario..

    Ya sabemos que en marzo se estaría lanzando la siguiente versión de IDE de desarrollo por excelencia de Microsoft, Visual Studio 2010. El 22 de febrero del corriente a las 10:00 se hará el concurso típico MSDN Net Minds, el cual está compuesto de 10 problemas de lógica, que se deberán solucionar secuencialmente, incrementándose la dificultad a medida vamos subiendo de nivel.

    Los 3 primeros en resolver los 10 problemas en el menor tiempo, serán los ganadores. ¿Y qué es el premio? Una licencia de Visual Studio 2010 Ultimate + MSDN Premium, además del reconocimiento de la comunidad y los participantes.

    Desde aquí puedes ver el portal, y desde aquí inscribirte al concurso. Es hora de probar tus habilidades :D

  114. Jonidimo, GNU/Linux definitivo

    Febrero 8, 2010. 3 Comentarios.

    Hace unos días se contacto conmigo Jonatan, para comentarme de un interesante proyecto GNU e invitarme a participar del mismo, aun está en pañales el proyecto ya que se está buscando gente que quiera contribuir de algún modo, ya sea difundiéndolo, desarrollando, traduciendo, o cualquier otro modo.

    Intentaré contribuir en la medida que pueda al proyecto según vaya pasando el tiempo y madurando la idea, para comenzar lo publico aquí intentando reclutar voluntarios.

    Bueno, creo que he escrito mucho sobre reclutamiento y no he contado de que trata el proyecto :( La idea es facilitarle a las personas que solo saben navegar en internet y chatear que quieran migrarse a GNU/Linux el proceso de instalación, y a saber elegir una distro que vaya con ellos y su hardware. La idea en bruto es detectar el hardware de la PC desde una aplicación Web, probablemente HTML5 o un applet de Java, y generar la distro con las aplicaciones y drivers que necesite, descartando las cosas innecesarias, para así alivianar el sistema operativo.

    Existen aplicativos semejantes Continúa Leyendo Jonidimo, GNU/Linux definitivo

  115. MariaDB, ¿Un Nuevo motor de Base de Datos?

    Febrero 8, 2010. Un Comentario.

    Logo de MariaDB

    MariaDB

    Como ya es conocido por todos, la empresa Oracle hace unos meses atrás compró a SUN Microsystems, por lo tanto es dueña de MySQL también, el creador original de ésta base de datos Michael Mounty hizo su campaña para que Oracle no cierre el proyecto MySQL ya que éste es de libre distribución y código libre. De hecho logró que Oracle prometa contribución al código de éste por 3 años y una inversión de poco más de 20 millones de dolares.

    Pero con todo esto Michael no quedó satisfecho siendo que Continúa Leyendo MariaDB, ¿Un Nuevo motor de Base de Datos?

  116. Realizar Consultas Paginadas en SQL Server, MySQL, Oracle & PostgreSQL

    Febrero 5, 2010. Un Comentario.

    Paginar nuestras consultas resulta que siempre aligera más la carga del motor de base de datos, siempre y cuando éste tenga los índices donde corresponden y no en cualquier columna o peor aun, no tener indices, ya que sólo se transmiten los datos a mostrarse en el momento, ésta característica se siente mucho mejor cuando estamos trabajando con aplicaciones web, u otras que corran sobre una red de baja velocidad o alta concurrencia. De ahí su gran implementación en los últimos tiempos.

    Para lograrlo necesitamos de la ayuda de nuestro motor de base de datos, ésta vez veremos el ejemplo en 4 motores muy populares, SQL Server, Oracle, MySQL y PostgreSQL. Personalmente creo que es más sencillo implementarlo en MySQL y PostgreSQL, seguido de Oracle y SQL Server. Aunque esto no hace que Continúa Leyendo Realizar Consultas Paginadas en SQL Server, MySQL, Oracle & PostgreSQL

  117. Capturar texto por consola en Java en modo Password

    Febrero 5, 2010. Dejanos el Primer Comentario..

    Si en un momento especifico necesitáramos hacer una aplicación en Java por consola que no muestre lo estamos tipeando, el caso típico del ingreso de un password, e incluso cualquier otro dato delicado que no queremos que lo lean otras personas.

    A partir de la versión 6 de Java podemos hacer uso del objeto Console, el cual nos ofrece un metodo readPassword que no hace eco en comparación con readLine(), veamos un ejemplo: Continúa Leyendo Capturar texto por consola en Java en modo Password

  118. Instalar Java Runtime Environment (JRE) en Ubuntu Server Manualmente

    Febrero 3, 2010. 2 Comentarios.

    Precisamente hoy tuve que instalar el Java Runtime Environment (JRE) en Ubuntu Server 8.04, ya lo había hecho en otras distribuciones como openSuSE y Fedora, en donde ejecutar el binario que nos ofrece hoy día SUN Microsystems Oracle era suficiente. El mismo podemos descargarlo desde aquí.

    Mucha diferencia realmente no hay, tan sólo que las variables de entorno debemos setearlas manualmente. Se que es sencillo, pero a más de uno servirá estos pasos.

    Paso 1

    Descargamos la versión binaria (no la rpm que sirve para otras distros) del enlace que he colocado arriba.

    Paso 2

    Creamos una carpeta en donde tendremos nuestro JRE, puede ser dentro de /opt o /usr ya que en ambos todos los usuarios por omisión tienen permisos.

    1
    
    sudo mkdir /opt/java

    Paso 3

    Suponiendo que descargamos Continúa Leyendo Instalar Java Runtime Environment (JRE) en Ubuntu Server Manualmente

  119. Ejecutar Comandos SSH y transferir ficheros por SCP desde C#

    Febrero 3, 2010. Dejanos el Primer Comentario..

    Ya vimos en una entrega anterior como ejecutar comandos Shell (SSH) con Java, en ésta oportunidad le tocará a C#, básicamente la aplicación podrá hacer lo mismo que hace el ejemplo anterior, la unica diferencia es lo más obvio, el lenguaje en que fue escrito :P .

    Para lograr esto en C# necesitaremos descargarnos la librería opensource Tamir | Gal el mismo nos servirá para realizar varias tareas, ejecutar comandos SSH y copiar ficheros por SCP. Una vez descargado agregamos las .dll a las referencias del proyecto, haciendo click derecho sobre references –>Agregar referencias.. –> Examinar –> Tamir.SharpSSH.dll. (Para este paso buscamos el directorio donde hemos descargado el archivo).

    1
    
    using Tamir.SharpSsh; <a href="http://www.devtroce.com/2010/02/03/ejecutar-comandos-ssh-y-transferir-ficheros-por-scp-desde-c/#more-720" class="more-link">Continúa Leyendo Ejecutar Comandos SSH y transferir ficheros por SCP desde C#</a>
  120. Leer datos de una base de datos con java

    Febrero 1, 2010. Dejanos el Primer Comentario..

    Hace tiempo vimos como ejecutar un procedimiento almacenado desde Java en una base de datos, en esta oportunidad veremos algo semejante, cargaremos datos de la base de datos a nuestra aplicación con JDBC mediando un ResultSet. Este ejemplo nos servirá para cargar nuestros formularios ya sea de escritorio, consola o web mismo si no usamos ningún framework que nos ayude.

    Para este caso en sí la conexión a la BD la hacemos a Firebird, pero es funcional con cualquier otro motor siempre y cuando cambiemos la cadena de conexión y el driver JDBC. Continúa Leyendo Leer datos de una base de datos con java

  121. Replicacion de datos en Firebird

    Enero 29, 2010. 3 Comentarios.

    Un método relativamente barato de conseguir replicación de una base de datos Firebird es crear una shadow en un disco externo de red local. Nos protege contra desastres en el disco donde se aloja la base de datos principal, aunque, evidentemente, si borramos datos de la principal, automáticamente se borrarán también de la copia “shadow”, por lo que este es un sistema válido únicamente contra daños físicos, incendios, robos, etc.

    Los requisitos necesarios son:

    • Equipo Servidor con Linux y Firebird
    • Disco externo de red local (Ethernet)

    Aunque las pruebas realizadas han sido en un servidor con Suse Linux 9.3 y Firebird 1.5, sirve cualquier distribución Linux. La base de datos (basedatosprueba.fdb) está alojada en el directorio /home/datos/ del mismo servidor. El disco externo es de conexión por red (Ethernet). Ambos están conectados a un router, aunque sirven igualmente un switch o un hub. Para los ejemplos se usan Continúa Leyendo Replicacion de datos en Firebird

  122. Obtener la IP de una PC Cliente con PHP

    Enero 26, 2010. Dejanos el Primer Comentario..

    Aplicar directivas de seguridad en cualquier ambiente, más aún en la web es requisito fundamental hoy día. También sabemos que gran parte de ellas estás construidas en PHP, y una de las politicas que podemos utilizar es almacenar la IP del cliente que se conecta, esto es sencillo hacerlo con éste lenguaje ya que nos trae unas pequeñas funciones para tal efecto. Incluso funciona con cualquier dispositivo que utilice el protocolo TCP/IP.

    Incluso si el cliente se esconde detrás de un servidor PROXY podriamos obtener la Continúa Leyendo Obtener la IP de una PC Cliente con PHP

  123. Crear un cliente Twitter con Windows Presentation Foundation (WPF)

    Enero 25, 2010. 9 Comentarios.

    Hoy nos dedicaremos a hacer algo más bien Geek :D un cliente en Windows Presentation Foundation (WPF) para twitter, elijo ésta tecnología para darle una mejor cara, obviamente es muy sencillo el ejemplo dado aquí, luego lo pueden ir expandiendo en funcionalidades y sería bueno si lo comparte en los comentarios con el resto de las personas.

    Primeramente debemos descargarnos la API que nos ofrecen desde aquí. Luego lo agregamos al proyecto haciéndole referencia. La interface sería algo así (es medio bruto pero un poco de imaginación lo hará brillar).

    El código está en C# y es como Continúa Leyendo Crear un cliente Twitter con Windows Presentation Foundation (WPF)

  124. ¿Querés ganar 10.000 Euros?

    Enero 24, 2010. Dejanos el Primer Comentario..

    No es DevTroce ni mucho menos yo él que te hará ganar ésta cantidad de dinero :P más bien es el banco BBVA con su reto Open Talent, ésta vez el reto es sobre desarrollo móvil llamado Reto Móvil febrero 2010 (la fecha está especificada en el nombre ya que cada tanto tiempo estarán haciendo retos distintos).

    El objetivo de ésto es incentivar al uso de las nuevas tecnologías y descubrir nuevos talentos, entre otros.. Básicamente consiste el reto en crear aplicaciones de ámbito bancario/financiero para los móviles iphone y Android.

    El plazo para participar de dicho reto es del 1 al 28 de febrero de éste año, así que no deberías perder más tiempo y comenzar a idear algo para éstas plataformas que el monto es bastante interesante para tomarse unas vacaciones tremendas :D

    Pueden conseguir más info desde el sitio oficial o leer las bases y condiciones.

  125. Guardar imágenes en la Base de Datos desde C#

    Enero 24, 2010. 12 Comentarios.

    Esto que veremos como hacer, se aplica a cualquier base de datos que soporte el tipo de dato BLOB o equivalente, aunque el ejemplo estará centrado en un motor especifico, el PostgreSQL ya que es uno de los motores que mejor tiempo de respuesta ofrece al trabajar con imágenes, hablo una vez que tenemos más del millon de imagenes, esto que digo está basado en una prueba mía con SQL Server, MySQL y Oracle XE. Por eso podría la mejor opción si necesitamos almacenar muchas imágenes y luego tener la facilidad que buscarlas con rápidez.

    En éste ejemplo lo insertaremos desde C# .Net, pero primeramente debe existir la tabla que almacenará la imagen, y su tipo de dato debe ser BLOB (Binary Long, o campo binario largo). Las imagénes necesitamos convertirlas al binario para almacenarlas, veremos como tomar una imagen que está en algún directorio y lo almacenamos, también incluye el método para volver a pasarla a imágen por si necesitamos volver a visualizarla, pero Continúa Leyendo Guardar imágenes en la Base de Datos desde C#

  126. Funciones en PostgreSQL

    Enero 20, 2010. Dejanos el Primer Comentario..

    En PostgreSQL —para los usuarios que vienen de otros motores— no existe el concepto de Procedimientos Almacenados o Stored Procedures, simplemente existen las Funciones que hacen el papel de ambas cosas en otros motores más populares.

    Otras de sus particularidades en PLPG/SQL es que éstos soportan sobrecarga (como en la orientación a objetos), es decir, pueden existir más de una función con el mismo nombre (a diferencia del resto) y ser diferenciados por la cantidad y tipos de parámetros recibidos. Vale recordar que este motor es sensible a las mayúsculas, cosa que a los que llegan recién les produce varios inconvenientes.

    Básicamente lo que veremos en este post, es 3 ejemplos de funciones, los que retornan valores, los que no. Lo escribiremos en plpgsql y sql estándar también. Existen otros factores que debemos considerar, como Continúa Leyendo Funciones en PostgreSQL

  127. Manejo de Errores en Oracle

    Enero 20, 2010. Dejanos el Primer Comentario..

    En PL/SQL tenemos mecanismos para manejar las excepciones, que son generadas a partir de situaciones de error o advertencias. Estos son administrados por bloques relativamente sencillos de utilizarlos, la sintaxis más común es la siguiente:
    Continúa Leyendo Manejo de Errores en Oracle

  128. Crear e Invocar funciones (UDF) en SQL Server

    Enero 18, 2010. Dejanos el Primer Comentario..

    Las siglas UDF viene del inglés User Defined Functions (Funciones Definidas por el Usuario), esto quiere decir que podemos crear funciones personalizadas para hacer un determinado proceso que utilizaremos en más de una ocasión, luego tan sólo deberíamos invocarlo para volver a utilizarlo. En Transact-SQL existen 3 tipos de funciones:

    1. Funciones Escalares
    2. Funciones en línea
    3. Funciones en línea de múltiples sentencias

    Para ver en acción esto, crearemos una base de datos (versión 2008 por el tipo de dato date que no es soportada en versiones anteriores) con una tabla y datos de ejemplo Continúa Leyendo Crear e Invocar funciones (UDF) en SQL Server

  129. Cadena de Conexión de SQL Server

    Enero 18, 2010. Dejanos el Primer Comentario..

    Siguiendo la temática de las cadena de conexión de los motores para los distintos lenguajes, ya hemos visto para Oracle, ahora veremos para SQL Server. Continúa Leyendo Cadena de Conexión de SQL Server

  130. Ejecutar procedimiento almacenado desde Java (JDBC)

    Enero 17, 2010. 3 Comentarios.

    En Java invocar a un procedimiento almacenado que no devuelve valores es bastante sencillo hacerlo desde JDBC, funciona de la misma manera que con cualquier base de datos, solo es cuestión de cambiar la cadena de conexión y el driver, el resto va igual.

    En el ejemplo veremos con MySQL, pero como vengo diciendo cambien los 2 factores y podrán usarlo con cualquier otro motor de base de datos. Continúa Leyendo Ejecutar procedimiento almacenado desde Java (JDBC)

  131. Personalizar la Configuración por defecto del VNC en Ubuntu

    Enero 14, 2010. Dejanos el Primer Comentario..

    Si necesitamos cambiar la configuración por defecto del protocolo VNC en nuestro Ubuntu, en realidad funciona con cualquier distro que tenga instalada el sistema de escritorio GNOME, tan sólo debemos abrir un terminal y ejecutar el siguiente comando: Continúa Leyendo Personalizar la Configuración por defecto del VNC en Ubuntu

  132. Capturar error en SQL Server y volver a Lanzarlo

    Enero 13, 2010. Dejanos el Primer Comentario..

    Cuando trabajamos con SQL Server con aplicaciones clientes escritas en el lenguaje de programación que sea y usamos transacciones controladas con try..catch, podríamos llegar tener problemas si no lo hacemos del modo correcto.

    Me explico mejor con un ejemplo práctico, supongamos que tenemos una aplicación de facturación y queremos eliminar una factura, para salvaguardar la integridad de nuestros datos lo más lógico es crear una transacción dentro del procedimiento que hará la baja, así por si ocurre un error en el eliminado del detalle de la factura, no borramos la cabecera, o si ocurre el error al eliminar la cabecera, deshacemos el eliminado previo del detalle para que todo quede como estaba anteriormente. Hasta este punto todo es muy bonito, si en el procedimiento declaramos la transacción controlada por un bloque try y dentro del catch hacemos sólo el rollback, la aplicación nunca se dará por enterada que en la base de datos hubo algún problema, y si éste emite un mensaje de proceso satisfactorio, lo hará incluso cuando tengamos errores. ¿Por qué esto? Simple, la excepción no se expandió desde la base de datos y no pudo ser capturada Continúa Leyendo Capturar error en SQL Server y volver a Lanzarlo

  133. Crear Bases de Datos Replicadas Maestro-Esclavo con MySQL

    Enero 13, 2010. Un Comentario.

    Replicar nuestras bases de datos muchas veces puede ser la solución para nuestros problemas empresariales, desde crear una carga de trabajo equitativa hasta centralizar datos desde lugares remotos en donde no existe una conexión de red constante ni estable o aumentar la velocidad de las aplicaciones cuando la velocidad es muy lenta. Obviamente ganar éstas características tiene su precio a parte del metálico, donde perdemos la capacidad de tener datos actualizados todo el tiempo, o la posibilidad de encontrarnos con conflictos al momento de hacer el “merge“.

    Para hacer esto mínimamente necesitaremos 2 Continúa Leyendo Crear Bases de Datos Replicadas Maestro-Esclavo con MySQL

  134. Desplegar ASP.Net en Apache Tomcat sobre GNU/Linux y SQL Server

    Enero 11, 2010. 8 Comentarios.

    Éste probablemente sea uno de los post mas raros que escribiré, todo programador cristiano sabe que ASP.net se despliega oficialmente sobre el servidor web de Microsoft IIS, necesitando necesariamente un servidor Windows. Hoy haremos lo que muchos desean, lo que muchos dicen ser imposible, o lo que muchos solamente quieren experimentar, haremos una mini aplicación escrita en C#.net y ASP.net, que se conecte a un servidor de base de datos SQL Server, desplegandolo sobre Apache Tomcat en GNU/Linux.

    Existen mods del proyecto mono para instalar sobre Apache que permiten correr ASP.net sobre él, pero no es precisamente eso lo que usaremos, sino algo más extravagante.

    ¿Y cómo se supone que haremos esto? La empresa Mainsoft (apoyado por Novell) ofrece un producto que forma parte de una comunidad, con licencia openSource, llamado Continúa Leyendo Desplegar ASP.Net en Apache Tomcat sobre GNU/Linux y SQL Server

  135. Solucionar problemas de Ajax en IIS 7

    Enero 8, 2010. Dejanos el Primer Comentario..

    Con la versión 7 del servidor web de Microsoft IIS7, se ha incluido el sistema de seguridad integrada, el cual ocasiona problemas con Ajax en nuestras aplicaciones, dando el siguiente mensaje de error:

    “Sys is undefined”

    Esto es una medida de seguridad más, ya que es muy típico los ataques debido a las “malas prácticas” que utilizan muchos programadores en Ajax, si igual queremos, podemos desactivar ésta caracteristica accediendo al terminal Continúa Leyendo Solucionar problemas de Ajax en IIS 7

  136. Limpiar la caché local de DNS en Windows, GNU/Linux & Mac

    Enero 8, 2010. Dejanos el Primer Comentario..

    Nuestras PC, sean el sistema operativo que utilice, cachean las direcciones DNS una vez que invocamos a alguna, entonces es más rápido hacer la resolución de nombres desde la caché que molestar al servidor DNS del ISP u otro que estemos usando, el problema está cuando cambiamos de servidor y éste adquiere una nueva ip o cambiamos de dominio y apuntamos al mismo servidor, normalmente puede tardar hasta 72 horas en refrescarse todos los servidores DNS, lo más común es que sea casi instantáneo, pero esto ya depende de la configuración interna del servidor DNS, de cuánto tiempo tiene que cachear una dirección antes de verificar si tuvo o no cambios.

    Si pasadas las 72 horas aún no logramos resolver el nombre de nuestro dominio, puede que el problema se encuentre en la caché local de nuestra PC, y eso lo podemos solucionar sencillamente, limpiándola. Ahora veremos Continúa Leyendo Limpiar la caché local de DNS en Windows, GNU/Linux & Mac

  137. Configurar varias instancias de MySQL en un mismo equipo

    Enero 6, 2010. Dejanos el Primer Comentario..

    Para tener varias instancias independientes del motor de base de datos MySQL debemos hacer un par de configuraciones manuales, ¿Qué significa este concepto? Que podemos tener en la misma instalación, o mismo terminal, más de un motor, escuchando en distintos puertos (uno por cada instancia), teniendo la posibilidad de configurar de manera totalmente independiente y distinta cada una.

    No debemos abusar del uso de las instancias, porque por cada una se corre un proceso que consume recursos y no se comparten entre ellos, sólo es recomendable si es estrictamente necesario, o si queremos ahorrar costos para no Continúa Leyendo Configurar varias instancias de MySQL en un mismo equipo

  138. Obtener el Nombre, Versión, Arquitectura y otras propiedades del Sistema Operativo con Java

    Enero 4, 2010. Dejanos el Primer Comentario..

    Si necesitamos crear una aplicación que sabemos que funcionará en varias plataformas realmente a la hora de implementarlo con Java, quizás necesitemos obtener algunos datos del Sistema Operativo, tales como su nombre, versión, arquitectura, directorio temporal, el nombre del usuario que está activo, los separadores del sistema ya sean de linea, ficheros o path, todos estos datos podemos saberlos con tan sólo éstas líneas de código aquí expuestas.. Continúa Leyendo Obtener el Nombre, Versión, Arquitectura y otras propiedades del Sistema Operativo con Java

  139. Crear Reportes con Visual Basic .Net, PostgreSQL y Crystal Report

    Enero 4, 2010. 18 Comentarios.

    La mayoría de las veces que trabajamos con Visual Basic .Net y Crystal Report, solemos conectarnos a SQL Server u Oracle como fuente de datos, debido a que tienen integración con el IDE de Visual Studio, para facilitar la creación de los mismos.

    Cuando hablamos de  motores como PostgreSQL, MySQL, Firebird, Teradata y otros, no tenemos la integración del IDE con el servidor de base de datos, esto hace que no podamos crear tan sencillamente los reportes como los hacemos como con los otros motores, pero no lo hace imposible, sólo se debe seguir unos pasos distintos, que también sirve para los 2 primeros motores mencionados anteriormente. Continúa Leyendo Crear Reportes con Visual Basic .Net, PostgreSQL y Crystal Report

  140. Instalar los drivers propietarios de nVidia en openSuSE

    Enero 2, 2010. Dejanos el Primer Comentario..

    Instalar los drivers de nuestras tarjetas de video es vital para su óptimo funcionamiento, dentro del mundo GNU, todo debe ser libre y cumplir con 4 fundamentales reglas:

    1. La libertad de ejecutar el programa, para cualquier propósito (libertad 0).
    2. La libertad de estudiar cómo trabaja el programa, y cambiarlo para que haga lo que usted quiera (libertad 1). El acceso al código fuente es una condición necesaria para ello.
    3. La libertad de redistribuir copias para que pueda ayudar al prójimo (libertad 2).
    4. La libertad de distribuir copias de sus versiones modificadas a terceros (la 3ª libertad). Si lo hace, puede dar a toda la comunidad una oportunidad de beneficiarse de sus cambios. El acceso al código fuente es una condición necesaria para ello.

    Los drivers de nVidia precisamente no cumplen con estas reglas, así como muchos otros controladores de distintos periféricos. Existe un proyecto libre llamado Nouveau de desarrollar la versión libre de Continúa Leyendo Instalar los drivers propietarios de nVidia en openSuSE

  141. Mejorar la velocidad de conexión del SSH Server

    Diciembre 31, 2009. Dejanos el Primer Comentario..

    El protocolo SSH nos permite controlar un equipo de manera remota como sabemos, el punto central de este post no es precisamente explicar como funciona o como podemos usarlo, si no más bien es para la gente que ya lo utiliza y quiere aumentar la velocidad de conexión contra el servidor SSH.

    La lentitud se siente más cuando el servidor DNS no está correctamente configurado o se está en una red que no lo usa, este protocolo último ralentiza mucho la autenticación, ya que debe comprobar si esta en el servidor de dominios registrado la IP entrante, lo cual resulta bastante molestoso, la solución es sencilla nuevamente, sólo debemos deshabilitar el uso de ésta comprobación de la siguiente manera:

    Desde un editor de texto editamos el archivo

    1
    
    vim /etc/ssh/sshd_config

    y agregamos la siguiente linea al final del fichero

    1
    
    UseDNS no

    Finalmente reiniciamos el servicio con

    1
    
    /etc/init.d/ssh restart
  142. Cambiar el Password del usuario root en MySQL

    Diciembre 30, 2009. Dejanos el Primer Comentario..

    En MySQL cuando hacemos una instalación nueva, ésta trae el usuario root del motor sin password, dejarlo así obviamente es impensable, así que si no disponemos de una interfaz gráfica o nos gusta más las consolas, lo haremos como expongo aquí. Personalmente creo que los sistemas de seguridad que implementa este motor de base de datos, no es precisamente el mejor que existe, como lo veremos más adelante, pero si ya estamos trabajando con este motor que nos ofrece ligereza lo podemos hacer así. Continúa Leyendo Cambiar el Password del usuario root en MySQL

  143. Habilitar la Indexación de ficheros en Apache

    Diciembre 30, 2009. Dejanos el Primer Comentario..

    Cuando hacemos una instalación por defecto en openSuSE del apache, este no tiene habilitada la opción de indexar el contenido de los directorios, lo que suele ser normal en las instalaciones limpias en otras distribuciones o sistemas operativos. Para habilitar esto tenemos que seguir los siguiente pasos bastantes sencillos.

    Con vim u otro editor de texto abrimos el fichero, Continúa Leyendo Habilitar la Indexación de ficheros en Apache

  144. Propagar la excepción con Java

    Diciembre 27, 2009. Dejanos el Primer Comentario..

    Normalmente cuando trajamos con la orientación a objetos manejamos muchas clases unas que llaman a otras, o que se heredan, muchos programadores cometen el pecado de tratar las excepciones en las clases mas “bajas“, siendo bastante mala práctica, ¿por qué lo es? simple, que pasaría si quisiéramos personalizar el mensaje de la interfaz, o tratarla de otro modo, o menos común pero no querer mostrar el mensaje de error, no podríamos hacer esto si trabajásemos así. Lo correcto es que las clases que no estarán directamente ligadas a la interfaz traten el error en el único sentido de controlarlas para evitar la inestabilidad del programa, pero que a su vez todos los objetos que le invoque puedan también enterarse que ocurrió una excepción en algún punto, por lo tanto necesitaremos expandir esa excepción, de clase en clase hasta llegar a la capa final de interfaz. Continúa Leyendo Propagar la excepción con Java

  145. Concatenar cadenas string con PHP

    Diciembre 27, 2009. 5 Comentarios.

    Una de las funciones que más utilizamos cuando trabajamos con nuestros programas es la de concatenar cadenas de texto, que por cierto suele ser simple pero muy útil. En PHP el concepto de concatenación es igual que en la mayoría de los lenguajes, lo único que cambia es el operador que lo hace. Continúa Leyendo Concatenar cadenas string con PHP

  146. Agregar/Indexar nuestro sitio web en los buscadores más grandes(Google, Bing, Yahoo)

    Diciembre 27, 2009. Dejanos el Primer Comentario..

    Agregar nuestro sitio a Google es muy sencillo realmente, tan sólo debemos acceder a este sitio

    http://www.google.es/addurl/

    completamos las 2 cajas de texto que nos pide, que son la URL raíz de nuestro sitio y un comentario sobre su contenido, luego es cuestión de esperar un par de días, al menos en mi experiencia no tuve que esperar más de 3 días para estar Continúa Leyendo Agregar/Indexar nuestro sitio web en los buscadores más grandes(Google, Bing, Yahoo)

  147. Realizar Consultas Recursivas en SQL Server

    Diciembre 26, 2009. 2 Comentarios.

    Como todo buen diseñador de base de datos sabe, es bastante común encontrarse con entidades recursivas en el diseño de nuestra BD, 2 ejemplos típicos son el jefe y el subordinado, en el diseño ambas personas se encuentran registradas como tuplas dentro de la entidad Persona o Funcionario (según el diseño que hemos tomado, incluso estaría mejor diseñado si se lo hace en base al cargo), al no existir 2 entidades que tengan cardinalidad 1:M, por que así obtendríamos duplicación de datos, debemos determinar un modo que ambos estén en la misma entidad y a su vez tener la capacidad de controlar quién es jefe de quién, esto se lograría agregando una columna más que sea del mismo dominio que su propia PK, es decir, la columna nueva sería FK de la PK que le determina, logrando así una cardinalidad 1:M recursiva.

    Otro ejemplo típico es el caso de los contratos, estos suelen tener la característica que vencen en una fecha determinada, por cuestiones de ventas/marketing al cliente se le facilita normalmente este proceso con una renovación de contrato Continúa Leyendo Realizar Consultas Recursivas en SQL Server

  148. Integrar Aplicaciones con el escritorio de Windows 7

    Diciembre 25, 2009. Dejanos el Primer Comentario..

    Como todos saben, hace unos meses que Microsoft ha lanzado su nuevo sistema operativo llamado Windows 7, el cual nos trae un montón de mejoras en cuanto a la interfaz gráfica de usuarios y su facilidad de uso. Pero no sólo queda ahí, también nos ofrece unas API completas a los desarrolladores para explotar éstas características fácilmente:

    1. Barras de Progreso Integradas
    2. Vistas Previas
    3. Botones en Thumbnail
    4. Jump List
    5. Sobreposición de Iconos

    Todo esto es posible hacerlo ya con nuestro IDE de Visual Studio 2008 (ni siquiera es necesario utilizar la versión 2010 aún). Lo primero que debemos hacer es crear un formulario de windows form con C# dentro de un proyecto llamado Windows7 y dejarlo como muestra la siguiente imagen Continúa Leyendo Integrar Aplicaciones con el escritorio de Windows 7

  149. Mostrar el Favicon en IE y Google Chrome

    Diciembre 23, 2009. Dejanos el Primer Comentario..

    El favicon es usado por casi todas las web’s hoy día, debido a que da un aspecto más trabajado del sitio, el cual permite ver un pequeño logo en la barra de direcciones, favoritos y bookmarks. Continúa Leyendo Mostrar el Favicon en IE y Google Chrome

  150. ¿Cómo saber que arquitectura, distro y versión es nuestro GNU/Linux?

    Diciembre 22, 2009. Dejanos el Primer Comentario..

    Más de una una vez necesité saber que versión o distro tiene instalado un servidor GNU/Linux, datos no muy dificiles de conseguir, pero si cuesta un poco más cuando hablamos de averiguar la arquitectura del Sistema Operativo, si es de 32 o 64 bits. Continúa Leyendo ¿Cómo saber que arquitectura, distro y versión es nuestro GNU/Linux?

  151. Verificar si un proceso está corriendo con C#

    Diciembre 21, 2009. Dejanos el Primer Comentario..

    Algunas veces necesitamos consultar si un proceso está corriendo en Windows, o una aplicación está abierta, con C# esta tarea es realmente simple de hacerla. Algunos usos que podemos darle es verificar si nuestra aplicación ya está abierta e impedir que vuelva a abrirse otra instancia, o si necesitamos de una aplicación para ejecutar correctamente la nuestra (dependencia de aplicaciones). Continúa Leyendo Verificar si un proceso está corriendo con C#

  152. Autenticarse contra un Web Service con Autenticación con Java y Visual Basic

    Diciembre 21, 2009. Dejanos el Primer Comentario..

    Hace unos días una de las programadoras que más admiro me comentaba que necesitaba conectarse desde Java a un Web Service construido en .Net con autenticación, aunque este ejemplo no sólo sirve para WS server hechos con esta tecnología, igualmente servirá si fue creado con java, delphi, u otro lenguaje. Me pareció una tarea interesante que es relativamente sencilla de hacerla. También me di cuenta que en la Web no circula mucha información sobre esto, por eso aprovecho para hacer un post sobre el tema :P

    Bueno, el ejemplo lo mostraré desde dos clientes, uno hecho con Java y otro con Visual Basic .Net

    En el caso de Java necesitaremos crear una clase extra para usarlo como credencial de red y va así Continúa Leyendo Autenticarse contra un Web Service con Autenticación con Java y Visual Basic

  153. Virtualizar con XEN 3 en openSuSE

    Diciembre 20, 2009. Dejanos el Primer Comentario..

    Lo que debemos saber antes

    Al virtualizar por hardware debemos asegurarnos que nuestro procesador tenga esta caracteristica. Asi evitamos la paravirtualizacion, en este caso, el sistema operativo anfitrion y el virtualizado tendran acceso nativo al hardware (no asi en la paravirtualizacion).

    Esta caracteristica en los procesadores Intel se lo llama IVT, y en procesadores AMD, AMD-V respectivamente.

    Paquetes prerequeridos

    • Desde la linea de comandos instalamos lo siguiente:
    1
    2
    3
    4
    5
    
     $ zypper install gcc
     $ git clone git://git.kernel.org/pub/scm/linux/kernel/git/shemminger/bridge-utils.git
     $ cd bridge-utils
     $ autoconf
     $ ./configure
  154. Un ejemplo sencillo y entendible de LINQ con C#

    Diciembre 19, 2009. 8 Comentarios.

    Este tema de LINQ produjo su conmoción desde que apareció como herramienta de rápido desarrollo para mapeo ORM, es decir, crear una abstracción de las tablas de nuestra base de datos en clases para nuestra aplicación, una tabla – una clase.

    Por ser un concepto relativamente nuevo, no quiere decir que sea complejo implementarlo, al contrario, es más sencillo y veloz el desarrollo de este modo. Personalmente me recuerda cierta tecnología de java. (sólo cierta semejanza ya que su implementación no es igual).

    Primeramente para nuestro ejemplo necesitaremos una base de datos de ejemplo, Continúa Leyendo Un ejemplo sencillo y entendible de LINQ con C#

  155. Enviar Email con Gmail por SMTP y C# incluyendo adjunto

    Diciembre 17, 2009. Dejanos el Primer Comentario..

    Cuando quise hacer esto, me di cuenta que esta pregunta plaga los foros, es más común de lo que uno espera.. Lograr esto con el framework 2.0 de .net es muy sencillo incluso con la versión 1, simplemente hay unas diferencias sutiles. Aunque en este caso el ejemplo estará basado en la segunda versión ya que es la más popular hoy día. Continúa Leyendo Enviar Email con Gmail por SMTP y C# incluyendo adjunto

  156. Como destruir clases en C#

    Diciembre 15, 2009. Dejanos el Primer Comentario..

    Así como todos los que programamos con orientación a objetos, sabemos que el constructor de una clase sirve para la gestión de la clase en sí, en el momento de ser instanciada, del mismo modo los destructores son los gestionadores de la clase en caso que ésta deje de ser utilizada.

    Esto se utiliza frecuentemente para cerrar conexiones de red, archivos abiertos y otros semejantes, de este modo podemos tener una aplicación que sea más eficiente a la hora de rendir cuentas de rendimiento, obtendremos menos uso Continúa Leyendo Como destruir clases en C#

  157. Crear un Web Service con Java y consumirlo con .Net

    Diciembre 14, 2009. Dejanos el Primer Comentario..

    Normalmente cuando recurrimos al uso de los Web Services lo creamos tanto del lado servidor como cliente en el mismo lenguaje, pero no siempre es así, varios pueden ser estos motivos, trabajamos con otra empresa que desarrolla en otro lenguaje que el nuestro, o queremos mezclar dos sistemas ya existentes sin construir todo de nuevo, incluso muchos otros motivos inimaginables. Hoy haremos un WS server construido con Java y NetBeans bastante sencillo, que recibirá 1 parámetro de fecha retornará la edad, esto será consumido desde una aplicación cliente construida en VB.net. Primeramente abrimos nuestro IDE y creamos un proyecto nuevo Java Web, de tipo Web Application.. Continúa Leyendo Crear un Web Service con Java y consumirlo con .Net

  158. Conversión Boxing y UnBoxing

    Diciembre 14, 2009. Dejanos el Primer Comentario..

    Suena un poco raro estos términos, pero son procesos sencillos y cotidianos para los que hemos en algún momento programado con VB y C# .net. La definición que da el MSDN es la siguiente:

    La conversión boxing se utiliza para almacenar tipos de valor en el montón de recolección de elementos no utilizados. Boxing es una conversión implícita de Tipos de valores al tipo object o a cualquier tipo de interfaz implementado por este tipo de valor. Al aplicar la conversión boxing a un tipo de valor se asigna una instancia de objeto en el montón y copia el valor en el nuevo objeto.

    Es una definición bastante sencilla de entender, pero si a alguno igual no le ha quedado claro, veamos 2 ejemplos Continúa Leyendo Conversión Boxing y UnBoxing

  159. Cadena de Conexión para Oracle

    Diciembre 13, 2009. Un Comentario.

    Lo siguiente no es un tema complejo ni dificil de encontrar información en la red, el objetivo más bien es juntar todas la cadenas de conexión (conection Strings) que se pueda en un solo lugar, en este caso para el motor de base de datos Oracle. Estarán listado por tipo de driver a utilizarse.

    ODP.Net (Oracle Data Provider .Net)

    1
    
    Espacio de Nombre: Oracle.DataAccess.Client.OracleConnection

    Usando TNS

    1
    
    Data Source=TORCL;User Id=myUsername;Password=myPassword;

    Usando Seguridad Integrada (Integrated Security)

    1
    
    Data Source=TORCL;Integrated Security=SSPI; <a href="http://www.devtroce.com/2009/12/13/cadena-de-conexion-para-oracle/#more-124" class="more-link">Continúa Leyendo Cadena de Conexión para Oracle</a>
  160. Configurar Linked Server con SQL Server y Firebird

    Diciembre 12, 2009. Un Comentario.

    Un Servidor Vinculado sirve para que el motor de base de datos (en este caso SQL Server) pueda tener acceso a otra BD para hacer consultas distribuidas, ejecutar Stored Prochttp://www.devtroce.com/wp-admin/edit.phpedures, entre otros, digamos de un modo “transaparente” ya sea del mismo proveedor o no.

    Para lograr esto necesitamos un proveedor de datos OLEDB y definir su cadena de conexión, a la par de asignarle un nombre lógico, el cual será usado para su invocación directa. Una vez definido esto podemos utilizarlo de manera abstracta para conectarnos a otras fuentes sin necesidad de volver a escribir toda la cadena de conexión. Crear esto con otro motor o instancia de SQL Server es relativamente sencillo, por lo tanto me centraré más bien en hacerlo con el motor de otro fabricante, en este caso Firebird, el cual fue el que más problemas me dió, con MySQL y PostgreSQL incluso fue más sencillo.

    Oficialmente Microsoft da soporte para crear Linked Servers contra SQL Server y Oracle, Continúa Leyendo Configurar Linked Server con SQL Server y Firebird

  161. Ejecutar comandos Shell (SSH) con nuestra aplicación en Java

    Diciembre 10, 2009. Un Comentario.

    Anteriormente vimos como descargar ficheros por SFTP, ahora veremos algo semejante. Como podemos iniciar sesión y ejecutar comando Shell en otra PC gracias al protocolo SSH (Secure SHell). Así como muchos ya lo habíamos hecho con el clásico PuTTY para Windows. Para esto del lado servidor debe estar habilitada esta opción o no funcionará, podemos ver en otro tópico más adelante como instalarlo.

    Así como ya lo venia diciendo en el ejemplo anterior, nuevamente vamos a necesitar de la librería JSch. Continúa Leyendo Ejecutar comandos Shell (SSH) con nuestra aplicación en Java

  162. Transferir ficheros por SFTP con Java

    Diciembre 9, 2009. Un Comentario.

    No es muy común que nuestras aplicaciones necesiten hacer descargas o subidas de ficheros a otras máquinas, pero si llegamos a necesitarlo, podemos usar el protocolo SFTP (Secure File Transfer Protocol). Con este protocolo agregamos un nivel de seguridad comparado con el típico FTP.

    Para lograr esto con Java, necesitamos de una librería externa que no viene incluido en el JDK, que nos proveerá JSch (Java Secure Channel). Pueden descargar la última versión de fichero aquí, luego tenemos que agregar con librería .jar externa en nuestro IDE, ya sea eclipse o NetBeans. Continúa Leyendo Transferir ficheros por SFTP con Java

  163. Crear formularios con forma de texto en C#

    Diciembre 8, 2009. Dejanos el Primer Comentario..

    Vamos a crear un formulario de escritorio con forma personalizada, esto no siempre es de mucha utilidad o común por lo menos, pero servirá para todos aquellos que quieran darle una personalización máxima a sus aplicaciones. Una idea es para la creación de skins.

    La implementación es sencilla, tan sólo un par de líneas: Continúa Leyendo Crear formularios con forma de texto en C#

  164. Crear redes personales sobre Internet sin abonar IP Publica

    Diciembre 8, 2009. Dejanos el Primer Comentario..

    hamachi

    Si es así como lo dice el título, podemos crear redes sobre internet sin abonar IP púbica, VPN ni otros servicios similares. La empresa LogMeIn nos ofrece un servicio que vengo usando hace bastante tiempo y me ha sido muy útil hasta hoy. La App en cuestión es Hamachi, la cual una vez instalado en nuestro SO crea conexiones de redes virtuales mediante la tecnologia P2P, asignandonos una IP virtual pública.

    Tiene 2 sistemas de administración, el más interesante es un panel en su propio sitio Continúa Leyendo Crear redes personales sobre Internet sin abonar IP Publica

  165. Ganar velocidad de conexión en MySQL

    Diciembre 7, 2009. 2 Comentarios.

    Hace unas semanas atrás nos tocó una mala pasada con mis compañeros de trabajo, una de nuestras aplicaciones se conecta con JDBC a MySQL, en laboratorio y en casi todos los lugares donde estaba implementado, funcionaba velozmente, pero en la última implementación, teníamos retardos y timeouts, lo primero que hicimos fue subir el tiempo de espera del JDBC, y se conectaba pero tardaba demasiado, (siendo ya un tiempo muy incomodo para el usuario). Verificamos los cables de red, las NIC, y otras tantas cosas, que estando entre varios se nos agotaron las ideas.

    Luego nuestro compañero El Gran Che, nos dió la luz. Todo el embrollo se debía a una configuración del motor de la BD. Este cuando recibía peticiones de conexión tenía activo la opción de resolver el DNS, al “no estar correctamente configurada” la configuración de red Continúa Leyendo Ganar velocidad de conexión en MySQL

  166. Leer, Guardar, Eliminar Ficheros de texto con Java

    Diciembre 7, 2009. Dejanos el Primer Comentario..

    Con Java, operar archivos de texto es muy sencillo, disponemos ya en el JDK las librerías necesarias para hacerlo. En este caso trabajaremos con un fichero llamado “dbxconnections.ini” que al fin y al cabo es un simple conjunto de texto plano, con la extension típica .txt cambiada. En muchas implementaciones este fichero se utiliza para almacenar parametros de conexiones a bases de datos, aunque no recomiendo normalmente ese uso. Aunque el ejemplo se base en eso no significa que no podamos hacer modificaciones menores para que almacene o lea otro tipo de contenido y formato.

    También la clase incluirá un método para eliminar ficheros previamente almacenados, que obviamente puede ser aplicado a cualquier tipo y no solamente a ficheros de texto. Continúa Leyendo Leer, Guardar, Eliminar Ficheros de texto con Java

  167. Diagrama de Venn implementado en SQL

    Diciembre 6, 2009. 2 Comentarios.

    Si queremos aplicar operaciones de conjuntos en el lenguaje SQL tenemos un par de formas de hacerlo, el modo más elegante de hacerlo es utilizar las sentencias diseñadas para este efecto. Los ejemplos que pondre se aplican a SQL Server y Firebird, esto también se puede hacer en Oracle, pero de un modo un tanto distinto, que lo veremos más adelante.

    • UNION Soportados por todas las versiones de SQL Server, y Firebird
    • EXCEPT Soportado por SQL Server 2005 en adelante, no soportado por Firebird 1.5 ni 2
    • INTERSECT Soportado por SQL Server 2005 en adelante, no soportado por Firebird 1.5 ni 2

    Para poder utilizar estas sentencias solo debemos cumplir con dos condiciones:

    1. Todos los conjuntos de datos deben tener la misma cantidad de columnas, del mismo tipo de datos.
    2. Sólo se puede aplicar una sentencia ORDER BY, en el ultimo SELECT.

    Los siguientes ejemplos trabajaremos con las entidades PROFESORES y ALUMNOS. Continúa Leyendo Diagrama de Venn implementado en SQL

  168. Encriptar / Desencriptar con Java en AES-256

    Diciembre 5, 2009. Dejanos el Primer Comentario..

    Muchas veces necesitamos encriptar o desencriptar ficheros con nuestras aplicaciones, siempre el dilema es a la hora de elegir cual método utilizar para esto. Hoy día uno de los más seguros y complejos, pero sencillos de implementar es AES (Advanced Encryptation Standard) tambien conocido en la práctica como el algoritmo Rijndael (aunque estrictamente no son el mismo algoritmo) el cual “reemplazo” a su predecesor DES, y está catalogado entre los algoritmos de criptografía simétrica. AES tiene un tamaño de bloque fijo de 128 bits y tamaños de llave de 128, 192 ó 256 bits, en este caso mostraré un ejemplo de como implementar esto en Java con 256 bits.

    Continúa Leyendo Encriptar / Desencriptar con Java en AES-256