domingo, 30 de agosto de 2009

Sofware libre vs.Código Abierto

Durante unos días tuvimos publicada una encuesta que preguntaba si existía alguna diferencia entre software libre y código abierto, donde los resultados indicaron que el 80% de los votantes indicaban que si había diferencia y el 20% que no. La mayoría de los votantes acertaron en sus votaciones, porque existen muchas diferencias, principalmente desde el punto vista ético, algo que muchas personas no entienden.

Ahora, cuál es la diferencia entre software libre y código abierto?

Software libre es todo software que se distribuya bajo una licencia que cumpla con cuatro libertades:

- Libertad 0. Usar el programa, con cualquier propósito.
- Libertad 1. Libertad de estudiar cómo funciona el programa, y adaptarlo a tus necesidades. El acceso al código fuente es una condición previa para esto.
- Libertad 2. Libertad de distribuir copias, con lo que puedes ayudar a tu vecino.
- Libertad 3. Libertad de mejorar el programa y hacer públicas las mejoras a los demás, de modo que toda la comunidad se beneficie. El acceso al código fuente es un requisito previo para esto.

En cambio, Código abierto no se plantea mótivos éticos y es menos idealista que el software libre, que nació unos años antes por iniciatiava de Richard Stallman. El código abierto hace caso omiso a las libertades, ya que encuentra este movimiento un tanto rígido. Erick Raymond, ideólogo del esta corriente, nunca apoyó las corrientes de software libre, ya que éste solo reconoce los valores prácticos para un mejor módelo de desarrollo, para así obtener softwares más confiables y seguro.

Erick Raymond, ve el software más como herramientas que pueden ser mejoradas, al igual que el creador del kernel de Linux, Linus Tolvard, que es otro de los grandes exponente de esta corriente. Stallman, dirige un movimiento filosófico, que busca beneficiarse de los ideales y creencias de una ética liberal que muchos creen practicar y pocos realmente conocen. Estos ideales buscan erradicar la pobreza, proteger la naturaleza, el desarrollo de salud pública, la aceptación de diferentes estilos de vidas, entre otros. Pero, en la práctica, no es del todo cierto, vemos como muchas fundaciones buscan engordar los bolsillos de aquellos que las lideran, a diferencia del código abierto, donde claramente se busca un beneficio a partir de la implementación del ingenio del ser humano sin tener que esconderse detrás de una pantalla simulada.

Esa ideología ha hecho que exponentes como Tolvard y Raymond se alejen de este movimiento que consiguió grandes resultados a principio de los años 80, ya que las libertades que definen el software libre busca hacer entender a las personas cosas que generalmente ignoran.

Acaso la fundación software libre realiza aportes de tipo social al mundo? por lo menos, eso no sucede en República Dominicana. Estas fundaciones no buscan ayudar al pueblo mediante responsabilidad social, es más, a pesar de todo, el software libre es el menos difundido, casi no llega a las masas y solo un grupo (bastante técnico) muy pequeño lo maneja.

Hay que mejorar, las herramientas desarrolladas bajo código abierto han llegado a un mayor número de persona que el código abierto, personas que no son técnicas inclusive, y desde ese ideal se han fundado varias empresas que han empleados miles de personas que conforman a familias, para mi esto si es un aporte.

Si deseas devolver algo a la sociedad, porque no usar los programas de responsabilidad social, y hagamos algo, aprovechemos por ejemplo este 19 de septiembre y reunámonos a limpiar las costas del mundo, y de esta forma si estamos ayudando a mejorar la sociedad.

Yo apoyo el código abierto, y tu?

Tecnología Web - Que avances

Sin duda, la tecnología Web ha tenido un desarrollo increíble, y ahora que veo esta noticia donde se informa que desde una página web se puede editar videos en el sitio Pixorial estoy cada día más sorprendido. Para aquellos que hemos desarrollados algunas cositas con DirectX, sabemos lo díficil que es trabajar con este tipo de herramienta. La dificultad no la presenta la programación, sino como usar de forma más eficiente las capacidades de nuestro equipo, es decir, un mejor uso del rendimiento del equipo (Ram y CPU).

Con Pixorial podemos recortar escenas, cambiar formatos, agregar efectos básicos de videos. Los cambios realizados al video pueden ser descargados o subidos a otras herramientas web como Facebook. El site puede manejar archivos de hasta 784 mb en distintos formatos como .avi, .flv, .wmv y .mp4.

Así que probemos esta herramienta, que puede ser el inicio de una nueva forma de editar videos, aunque existen otras, esta apunta a revolucionar el mercado.

jueves, 27 de agosto de 2009

Virtual Private Cloud

Hoy en día se habla mucho de un nuevo modelo de negocio (VPC o Virtual Private Cloud) donde las empresas deben apostar por tener su información en un espacio en cientos de servidores disperso en el mundo. Ahora, cual es la diferencia entre un hosting donde almacenamos la información de nuestra empresa, web site, base de datos, entre otras cosas y la famosa nube privada; sencillo la nube está compuesta por cientos de equipos (hosting) donde puedes almacenar tu información.

Qué ventaja nos ofrece? una muy importante que es muy posible que nuestro Web Site se encuentre fuera de servicio, ya que al salir un servidor de servicio en la nube, entra otro y ofrece la información solicitada por el web services que comunica esos equipos.

Es seguro este tipo de infraestructura de negocio? si es segura, muchas empresas ofrecen el servicio mediante IPsec securizados mediante pequeñas sub-redes internas dentro de la gran nube.

Con esto van a desaparecer muchos datacenters que daban un servicio de VPN
internos dentro de las empresas, para que generar costos de electricidad, mantenimiento de equipos, personal, entre otros; cuando hay una empresa que por un buen precio me ofrece todo lo que tengo y no tengo que preocuparme por nada.

Quienes lo ofrecen? hasta el momento Microsoft, Google, Amazon, entre otros.

martes, 25 de agosto de 2009

SQL Injection

Un gran porcentaje de los Web Sites que se encuentran en Internet son vulnerables a los ataques de SQL Injections, especialmente aquellos que tienen algunos años de desarrollados. Muchos Sitios Web desarrollados bajo ASP 3.0, PHP, Perl y Java que tienen forman las sentencias SQL mediante string que son ejecutadas directamente desde el web site a la base de datos son muy propensa al este tipo de ataque. Ahora veamos un ejemplo:

var = "select count(*) from users where username = ' " + username +" ' and password = ' " + pass + " ' ";

ese mismo código puede ser interceptado ya sea cambiando un campo hidden o una variable por querystring de esta forma:

var = "select * from users where username = ' " + username +" ' or 1 = 1 and password = ' " + pass + " ' or 1 = 1";

De esta forma es posible se puede conseguir las cuentas de usuarios con todos los privilegios, y podemos seguir hasta pasar un query en la sentencia con algunas tablas del sistemas con las cuentas de usuarios. Algunos métodos para protegerse de este tipo de ataques son:
  • Una forma de prevenir esto es utilizando procedimientos almacenados que reciban parámetros cerrados (con longitud definida, si es posible encriptado).
  • No pasando variables importantes por querystring (si es posible cambiar las variables a tipo Guid que puedan ser cambiada en la plataforma).
  • En .Net podemos usar los SqlCommand para crear nuestras consultas y asignar parámetros que reciban el valor de forma indirecta mediante la clase parameters.
  • No utilizar cuentas con privilegios administrativos (muy importante).
  • No Proporcionar mayor información de la necesaria.
  • Cuidado con las sentencias que utilicen UNION (muy utilizado en los injectios, al unir un query con una sentencia que llame los registros de alguna tabla de sistema).

lunes, 24 de agosto de 2009

Portabilidad Numérica en República Dominicana

El 30 de septiembre del 2009 inicia en República Dominicana la implementación de la portabilidad numérica según informaciones publicadas en los diarios Listin Diario y Diario Libre en el país. El anuncio fue hecho por el presidente del Instituto Dominicano de las Telecomunicaciones (Indotel), José Rafael Vargas durante el día de hoy. Con esto cada usuario podrá tener la soberanía sobre un determinado número telefónico.

Al mismo tiempo, hizo un llamado a las prestadora de servicios telefónicos a mantener un buen servicio, para facilitar la entrada en vigor y sin complicaciones del nuevo sistema. Este proyecto, iniciado en agosto del 2006 en conjunto con la empresa española Corte Inglés que ganó la licitación de este proyecto a la también empresa española telefónica.

Vargas indicó que la portabilidad tiende a favorecer la competencia leal (Indirecta a Orange Dominicana, por el comercial contra Claro), efectiva y sostenible en el tiempo, así como a eliminar barreras de entrada a potenciales competidores que sean eficientes en la prestación de servicios de telefonía al tiempo que permite la salida de los usuarios desde un determinado prestador de servicios.

Ahora, para los que no sabes que es la portabilidad numérica, esta se define como la capacidad técnica mediante la cual el cliente de una Prestadora continúa con el mismo número de identificación de la línea telefónica que utiliza, en el caso de que decidiera recibir el servicio con otra Prestadora; es decir es el derecho de los usuarios a cambiarse de operador de telefonía fija o móvil sin perder su número telefónico.

Con la introducción de la Portabilidad Numérica, la decisión del usuario o cliente al seleccionar a su prestadora de telefonía fija y móvil se orientará a la evaluación de las condiciones de calidad y precio, sin riesgo de perder su número telefónico al cambiarse de prestador de servicios.

En nuestro país según el último informe realizado en el mes de marzo de 2009, existían al 31 de diciembre de 2008, un total de 8,196,194 de usuarios de líneas fijas y móviles, de las cuales:
  • 985,711 son líneas fijas.
  • 7,210, 483 líneas móviles ó celulares.
Otro informe realizado en el país arroja que un 93.4% de la población apoya la aplicación de la portabilidad numérica conforme a iniciarse el 30 de septiembre.

El servicio de cambio de prestadora solo aplica cuando el cambio es de un equipo fijo a otro equipo fijo o de uno móvil a otro móvil, por el momento no puede realizarse desde uno fijo a uno móvil y viceversa. El trámite de este proceso puede durar desde 3 a 10 días laborables según una información divulgada por imágenes dominicanas.

Espero que nuevo proyecto iniciado por Indotel (una de las pocas instituciones gubernamentales que está realizando un buen trabajo) tenga éxito y que las prestadoras de servicio se acojan al mismo para que el país pueda crecer aún más gracias a una competencia más leal y a un mejor servicio (debe mejorar de ahora en adelante).



domingo, 23 de agosto de 2009

PostgreSQL

Desde hace unos años he venido utilizando la base de datos MySQL como herramienta alternativa para base de datos pequeña (o las express edition de Microsoft SQL Server). Ahora tengo un dilema, estoy desarrollando un sistema que va a mover según mis calculos hasta 5 TB de información, las versiones express edition no maneja más de 4 GB de información y no tengo el presupuesto para adquirir un motor como Oracle o SQL Server.

Tampoco puedo pagar un hosting que tenga un buen motor de base de datos, porque se escaba de mi presupuesto, por lo que he tenido que optar por un nuevo motor, que según sus características puede resolver mis problemas, PostgreSQL.

Este motor de base de datos puede almacenar hasta 32 TB de información en tablas, el tamaño de base de datos es ilimitado, el tamaño de una registro de una tabla puede contener hasta 1.6 TB y acepta desde 250 hasta 1600 columnas y un número ilimitado de índices dentro de la base de datos.

Eso unido a que este motor funciona sobre los siguientes sistemas operativos:
FreeBSC
Linux: Debian, Ubuntu, SUSE y CentOS.
Solaris
MacOS X
Windows

Está basada en SQL 92/99 con pocas funciones propietarias, que nos puede complicar un poco a la hora de diseñar nuestra arquitectura en capas, Después de eso, les recomiendo utilizarla, ya que es muy eficiente.
Por último, es una base de datos Open Source y es completamente gratis, consume poco recursos por lo que he podido probar.


sábado, 22 de agosto de 2009

Microsoft y Yahoo continuan haciendo frente a Google

Sin dudas, Google se ha convertido en la empresa líder en tecnología Web, olvídense el boom del Iphone, BB, entre otros dispositivos móviles, donde muchos de ellos usan aplicaciones desarrolladas por google para los servicios que ofrecen.

Microsoft y Yahoo hace unos días anunciaron una alianza para competir con google en el área de buscadores, ahora sale la noticia que estas empresas han emprendido a digitalizar más de un millón de libros que tienen caducado el derecho de autor para ofrecerlo en Internet y de esta forma poder competir con google en este encasillado.

El nuevo proyecto se conoce como "Open Book Alliance" que viene a interponerse en el acuerdo que Google tiene con las organizaciones American Publishers y Authors Guild donde Google les ofrece a estas empresas alrededor de un 30% de los ingresos de ventas. Actualmente Open Book Alliance ofrece un 70% de estos beneficios.

viernes, 21 de agosto de 2009

Si está hecho para que construirlo

Una frase muy vieja es aquella que dice "si algo está hecho, para que construirlo nuevamente", y en el área de desarrollo hay muchos programadores que teniendo el conocimiento de la existencia de algún producto que hace el trabajo que ellos desean, vuelven a intentar a construir la rueda fabricando un producto que ya existe en el mercado desde hace algún tiempo.

Hoy les voy a colocar un enlace donde tenemos varios proyectos desarrollados en la plataforma .Net que nos pueden servir de plataforma para desarrollar nuestros propios proyectos o para las empresas en las que trabajamos. Estos Starter kits and community projects como son llamados en el site de .Net lo pueden encontrar en el siguiente enlace http://www.asp.net/community/projects/.

Que podemos encontrar aquí?

DotnetNuke: uno de los mejores CMS en el mercado, puede competir con cualquier CMS popular en el mercado como Joomla (Mambo en versiones anteriores), entre otros.

Splendid CRM: está basado en el famoso CRM Open source Sugar CRM (muy bueno por cierto) y para mí no tiene nada que envidiarle al Dynamic Microsoft CRM 4.0 de Microsoft. Bastante bueno, y maneja una mayor cantidad de información que el Sugar CRM sin desmejorar el rendimiento. La única ventaja que tiene el Dynamic CRM es que puede ser utilizado desde otras aplicaciones, es decir, podemos integrarlo a otras aplicaciones, espcialmente las otras de Dynamic como Great Plays, Nav, gracias a su poderosa API desarrollada sobre XML.

DashCommerce: buena herramienta e-commerce, con un buen catálogo de productos, y habilidad de manejar carritos de compra. Excelente para iniciar un Web Site de ventas.

Existen más aplicaciones que pueden utilizar de distintos tipos, estas tres la he probado y he tenido la oportunidad de desarrollar sobre su plataforma para soluciones que me han solicitado, y realmente son muy buenas.

Otros Web Site Open Source son:

http://www.codeplex.com: herramientas sobre .Net
http://csharp-source.net/: solo herramientas desarrollados sobre c# en los distintos Frameworks (.Net 1.1, 2.0, 3.5)
http://sourceforge.net/: herramientas en distintos lenguajes, desde C, Java, .Net, Perl, o cualquier otro lenguaje de tu preferencia.

Vamos a apoyar los proyectos Open Sources, ya que en comunidad todos nos desarrollamos, aunque trabajes en proyectos propietarios (como mi caso) siempre es bueno compartir el conocimiento, de esta forma aprendemos todos.

jueves, 20 de agosto de 2009

Novedades SQL Server 2008

Microsoft se ha empeñado en hacer que su motor de base de datos escale a los primeros puestos a nivel mundial en su categoría, donde es dominada claramente por Oracle. Con la introducción de Sql Server 2008 llegan nuevas tendencias de programación a nivel de Transact-SQL que van a cambiar la forma de desarrollar aplicaciones en estos tiempos.

Con esto se busca que muchos del tiempo y recurso de desarrollo se queden en el servidor de base de datos, y que no dependa tanto de la aplicación cliente. De esta forma se busca mejorar aun más el desarrollo de aplicaciones en capas.

SQL Server que había introducido los tipos de datos tablas en la versión 2005, en esta nueva versión permite el uso de tablas como parámetro de datos en procedimientos y funciones. Así mismo nos trae nuevos tipos de datos:

Date: 0001-01-01 hasta 9999-12-31 para almacenar datos de tipo fecha.

Time: para guardar solo información tipo hora.

Geometrical: para manejar información geográficas

Geometric: para almacenar información de planos de coordenadas.

Hierarchy Id: este guarda información de una posición en una estructura de árbol.

Datetime2: almacena una hora más exacta que el datetime normal.

Estos tipos de datos unido a los tipos XML y Table introducidos en el 2005, además de otras mejoras en el rendimiento del servidor hace que este motor de base de datos pueda competir de forma cerrada con Oracle a nivel mundial.

Con el tipo de dato Hierarchy Id vienen funciones para el manejo de este tipo de registros, como son GetLevel(), GetRoot() y IsDescendant() que sirven para manipular las posiciones de un árbol.

Otros cambios son: nuevos operador +=, -=, *= y /= y la indexación de una parte de los datos:

CREATE INDEX Idx_Clientsstatus001 ON clients WHERE status = 1

SELECT vendor FROM clients WHERE status = 1

Además, aumentaron el límite de columnas en una base de datos a 1024 columnas por tablas (no se si es adecuado llegar a ese punto, aunque prefiero no intentarlo para preservas las buenas normas de normalización de datos, en especial la normalización 3 que nos dice que una tabla no debe tener más de 35 campos)

Diseño de Reportes

Para diseñar un reporte en sql Server 2008 no necesitamos tener un IIS configurado, sino que con la librería HTTP.SYS podemos realizarlo y viene con soporte integrado para Microsoft Word 2000 hasta la versión 2007 y puede ser integrado con SharePoint 2007. También, viene con nuevos gráficos, como son gantt, pirámides, Radar entre otros.

miércoles, 19 de agosto de 2009

La difícil tarea de documentación

No llevo mucho tiempo en el mundo de la informática, desde 1998 a la fecha, unos 11 años de los cuales 7 son ejerciendo como profesional el desarrollo de software. Y lo más difícil para un programador es documentar el software que ha desarrollado. Esta tarea es pesada y tediosa, por lo que muchas veces cuando concluimos el desarrollo de la aplicación, nos olvidamos de la documentación del mismo (ni siquiera los xml que son generados por los mismos IDE de desarrollo de hoy en día).

Muchas empresas contratan un personal solo para que realice esta tarea (excelente, un persona que desarrolla no puede documentar también, ya que una de las tareas se queda inconclusa o mal), pero en los países latinoamericanos como República Dominicana, el desarrollador tiene que hacerlo todo, analizar el proyecto, realizar el levantamiento del mismo, desarrollarlo, auditarlo, ponerlo en marcha y si, "eso mismo que están pensando", documentarlo.

Para eso, les voy a dejar unos cuantos consejos de que medidas tomar para entregar software con una documentación clara y coherente de como funciona o como está diseñado.

Primero: Defina los proceso, las actividades y las tareas que va a ejecutar su programa. Luego de definir estos procesos y tareas, se debe eleborar un diagrama donde se muestre el funcionamiento del software.

Segundo: trate de ir documentando todas las variables, funciones y procedimientos que declara en su proyecto, esto lo ayudará bastante a la hora de generar su XML y posterior su documentación (puede utilizar programas como NDoc, SandCastle, entre otros para Visual Studio y JavaDoc para Java, entre otros, dependiendo del lenguaje que utilice). Nota: Al momento de documentar es vital que se escriba en tercera persona identificando quien realiza la acción, ejemplo: el sistema, el módulo, etc. Utilizar los verbos en presente, sin usos de gerundios.

Esta parte es la que se conoce como documentación técnica, y es la que debe entregarse a los auditores de sistemas y otros programadores que tengan que desarrollar sobre la plataforma que usted ha creado. Este tipo de documentación no está orientada a usuarios finales por lo que no es necesario que se encuentre muy estructurada y comprensible.

Tercero: luego de tener su software técnica lista, se deben imprimir las pantallas paso a paso de como debe funcionar el sistema para ser utilizadas en la documentación de usuario final.

Cuarto: elaborar una documentación con los requerimientos de hardware necesario para el correcto funcionamiento de su sistema (Cantidad de memoria, procesador, espacio en disco) y otra con los requerimientos de software (componentes de terceros necesarios para el correcto funcionamiento de la aplicación, sistema operativo, entre otros)

Luego de tener los requerimientos de hardware y software y las capturas de las pantallas con el funciomiento del sistema o módulo paso a paso, se debe pasar a elaborar la documentación completa del sistema, explicando en un lenguaje sencillo y comprensible como funciona la aplicación. En este punto, se debe tratar de eliminar los términos técnicos de programación (un error que cometemos frecuentemente los desarrolladores).

El documento debe estar bien ordenado y estructura de acuerdo de una estructura jerárquica de hipertexto que mida la compactación del documento y el grado de organización del mismo.

La presentación de la documentación es muy importante, en la misma se deben tomar en cuenta los siguientes puntos:
  • Título o nombre del software
  • Compañía
  • Derechos de Copia Legal
  • Versión del producto
  • Fecha de revisión
Ojo, para aquellos que desarrollan software libres, deben tener el cuenta el tipo de licenciamiento, como son los GNU GPL, entre otras, para más imformación ver. Además, no olvidar las famosas cuatros (4) libertades de la licencia GPL que caracteriza el sistema operativo libre: El software se puede usar, el software se puede modificar, el software se puede distribuir y el software se puede distribuir ya modificado.

Para los gustos los colores, y el tipo de software que desarrolle va a influir en el tipo de documentación que va a entregar, pero nunca olvide, el software tiene una intención fundamental: usarlo y mientras más sencillo es, más fácil será su acogida por el público.


Mejorar rendimientos Queries SQL

Hoy les traigo unas técnicas de como mejorar el rendimiento de sus consultas a SQL Server y así obtener mejores resultados de los desarrollos de nuestras aplicaciones. A continuación algunos trucos de como mejorar el desempeño de los queries en SQL:

Uso forzado de índices: muchas veces escuchamos que si la consulta que realizamos no tenemos que especificar el nombre del índice que estamos usando ya que el motor de base de datos lo asume por defecto. Cuando tenemos tablas grandes y que manejan muchos datos, esto no es del todo correcto. podemos mejorar hasta un 70% en el rendimiento de una consulta si forzamos el query y especificamos el nombre del índice a utilizar. Ejemplo:

select * from countries (index=idx_countryname,nolock)

Nota: la sentencia nolock hace que la consulta no provoque bloqueos en la base de datos, especialmente cuando traemos datos mediante la sentencia TOP que realiza bloqueos en las tablas. Lo malo de usar NOLOCK es que podemos traer registros que estén en medio de una transacción.

Uso de Exists: cuando queramos hacer una sub-consulta en una base de datos utilizando la sentencia NOT IN, analicemos si podemos cambiar nuestro queries con el uso de la sentencia Exists que es mucho más eficiente que la anterior. O en todo caso utilizar IN en vez de NOT IN, ya que esto hace un scan completo en la tabla descartando opciones a omitir. Ejemplo:

select * from countries (index=idx_countryname,nolock) where countryname not in (select name from blacklist)
Optimizado con exists:
select * from countries a (index=idx_countryname,nolock) where exists (select * from blacklist b where a.countryname = b. name)

Uso de Distinct: utilizar distinct para excluir datos duplicados es muy usado por los programadores para evitar errores de diseño de base de datos y así esconder algunos duplicidad de información, pero esto es un grave error. Es una de las sentencias que más necesita hacer I/O en el disco y forza bastante el procesados. Por tal motivo, si es necesario evitemos utilizarla.

Uso de Top: cuando se quiere traer un grupo de registros es mejor utilizar la sentencia Top y no Rowcount, ya que esta última presenta algunos inconvenientes con listas no oldenadas, en caso contrario, si la lista es ordenada, es más eficiente que la sentencia Top.

select top 10 countryname from countries with(nolock)
es más eficiente que:
set rowcount 10
select countryname from countries with(nolock)

en caso de que los registros tengan un índice para el campo countryname que ordene los registros utilizar rowcount puede ser más eficiente que el top.

Uso de *: cuando estamos realizando consultas que van a devolver muchos campos es mejor definir todos los campos que queremos devolver en nuestro queries, ya que el uso de * o All impide el uso de índices de forma eficiente.

Usos de otras tablas ara guardar datos sumarizados: si queremos presentar datos sumarizados o agrupados de una tabla que maneja miles o quizás millones de registros, es mejor utilizar un trigger que guarde la información en una tabla auxiliar o mediante un proceso que se ejecute en background y recalcule nuestros registros.

Verificar si existe un registro: muchos programadores utilizan el count(*) para ver si un registro existe en la base de datos, pero una forma más eficiente de hacerlo es con el Exists, ya que cuando este encuentra un registro detiene la búsqueda del mismo.

lunes, 17 de agosto de 2009

Noticias República Dominicana

Congreso Educación y Sofware Libre

Me informan que la Fundación Código Libre va a impartir un congreso en la Universidad Autónoma de Santo Domingo a partir del 14 de septiembre hasta el 17 de septiembre del 2009. Este congreso es muy importante, ya que esta organización a indicado que no tiene el apoyo de las instituciones educativas del país para propagar el uso de software open source en la República Dominicana.

El mismo será realizado en la biblioteca Pedro Mir de la Universidad, y esperamo que cuente con el apoyo de los estudiante y profesionales del país, para que exista una mayor competencia entre software propietarios y software libre en el país, que personalmente pienso que no existe tal competencia.

Ver afiche aquí.

Nota: Gracias al Sr. Fidel Florián por la información.

Venta Codetel a AT&T

Se está corriendo el rumor muy fuerte de que la empresa CODETEL se encuentra en un proceso de ventas de las operaciones alámbricas de la mismo a la empresa estadounidense AT&T. No se que tan cierto son esos rumores, pero la empresa ha salido al frente negando tan situación, indicando que una empresa que ha invertido más de US$2,100 millones de dólares en el país en los últimos años no tendría sentido.

Hasta cierto punto la operación no suena tan descabella, ya que todo el que tiene conocimiento sobre telecomunicaciones sabe que las operaciones alámbricas no son el fuerte de la empresa American Móvil que la adquirió hace un tiempo dividiendo la Empresa Verizon en dos empresas, Codetel y Claro. La empresa America Móvil puede quedarse ofreciendo los servicios de telefonía móvil y venderle la telefonía alámbrica a una empresa que conoce bastante bien ese mercado AT&T, que una vez manejó las operaciones de Codetel antes de ser adquirida por Verizon.

Por más decir, que los mexicanos de América Móvil han confrontado inconvenientes con la parte alámbrica, disminuyendo bastante el servicio que ofrecía la empresa y confrontando serios inconvenientes a nivel de Internet y Datos. Esa y otras razones me sugieren que la idea de una posible venta de algunas de sus operaciones que no son el fuerte de la empresa es lógica y poco descabellada.

Administración Web SQL Server

El sueño de un buen administrador de sistemas o base de datos es hacer el trabajo de la manera más sencilla posible y mucho mejor si lo puede hacer desde su casa o dejar que otro haga parte del trabajo por el. Cuando tenemos que compartir servidores SQL Server tenemos el temor de que colocando nuestros servidores públicos puedan ser afectados por alguien que busque hacer daño a nuestros servidores.

Yo prefiero otorgar acceso mediante herramientas de administración Web que encasuplen la seguridad de mis servidores, por eso les voy a mostrar una herramienta Web de administración de SQL Server que nos puede acomodar el trabajo desde nuestra casa.

SQL Server Web Data Administrator: herramienta de microsoft de solo 3.3 mb de instalación que te permite acceder a tus bases de datos por un entorno web, puedes visitar el siguiente enlace. Con esto podemos ofrecer soportes 24/7 a las bases de datos sin tener que utilizar un cliente instalado en tu equipo. Si le das acceso a un usuario, este no puede ejecutar Jobs, ver el log de la base de datos, detener el servicio del SQL Server y no tienen permisos para ejecutar el xp_cmdshell, que como hablamos en una de las primeras entregas del blog puede ejecutar cualquier tarea desde SQL Server.

Lo mejor de todo, es que es una herramienta gratis que Microsoft pone en nuestras manos para ofrecerlos a sus usuarios.

Microsoft tambié cuentan con herramientas para administrar remotamente el IIS a partir del 6.0 en adelante, para más información visitar:
http://support.microsoft.com/kb/324282
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/aae1d311-103e-4b06-8788-e6b0554d7230.mspx?mfr=true

domingo, 16 de agosto de 2009

Trucos para eliminar archivos sospechosos DOS

Cuantas veces no confrontamos inconvenientes cuando conectamos discos externos a nuestro computador ya que se encuentran infectados por virus que son ejecutados en el autorun del disco portátil o USB. Este blog está dedicado a tareas de programación y administración de base de datos, pero voy a mostrarle unos truquitos para cuando encuentre algunos inconvenientes conectando discos externos a su equipo.

Primero vaya a Inicio (Start) y presione Ejecutar (Run).
Luego escriba CMD.
Debe abrir la venta de DOS.
Digite la unidad del disco USB o portatil (F: en mi caso).
Digite dir /a para que nos muestre un listado de archivos incluyendo archivos ocultos.


Si ve algún archivo con nombre sospechoso o desconocido (Archivos con extensiones .pif, .exe, .bat, .ini. inf)
Escriba attrib filename -s -h -r para asignarle los persmisos para que estos puedan ser eliminados. Mucho cuidado con los archivos autorun.inf ya que estos son los que mandan a ejecutar las mayorías de los virus.
luego escriba del filename para borrar el archivo.

De esta forma puede deshacerse de algunos archivos que no son detectados por los antivirus y que pueden ocasionarles inconvenientes en su equipo.


viernes, 14 de agosto de 2009

ASP.Net 4.0 en la esquina

Con Visual Studio 2010 Beta 1 al doblar de la esquina, voy a introducirlos a algunas nuevas característica que nos trae ASP.Net 4.0 para mejorar el rendimiento sobre el ASP.Net 3.5 que como muchos saben con la introducción de Ajax, este framework se comporta un poco más lento.

Una de las mejoras que han anunciado las personas de Microsoft es la forma de los ViewState (hablámos sobre esto en la entrega anterior) donde han agregado una propiedad denominada ViewStateMode enable or disable o heredadada (inherits) de otro control que la tenga activa.

<asp:panel ID="pnlViewState" runat="server" ViewStateMode="Disabled">
<asp:label Disabled: ID="label1" runat="server" Text="Value set in markup" ViewStateMode="Inherit" />
<asp:label Enabled: ID="label2" runat="server" Text="Value set in markup" ViewStateMode="Enabled" />
<asp:button ID="Submit" runat="server" Text="Postback" />
<asp:panel />

En este ejemplo, se deshabilita el panel principal y heredados su viewstatemode en el Label1. El Label2 lo habilitamos para y solo este puede mantener la información cuando presionemos Submit. Esto lo podíamos hacer con el EnableViewState del control, pero carecía de consistencia, es decir, a veces lo ejecutaba, otras no.

Otras mejoras son en las búsquedas de las páginas, Meta, keywords and Description en la cabezera de la página. Ya no tenemos que poner todo ese código en el Head del html, se puede hacer mediante programación en el code behing de esta forma:

protected void Page_Load(object sender, EventArgs e) {
this.Page.Title = "My ASP.NET Blog";
this.Page.MetaKeywords = "ASP.NET, Web Development, Blog, ASP.NET Blog";
this.Page.MetaDescription = "This Blog contains posts related to ASP.NET and Web Development";
}
Que es lo mismo que:
<name="keywords" content="ASP.NET, Web Development, Blog, ASP.NET Blog" />
<name="description" content="This Blog contains posts related to ASP.NET and Web Development" />

Por defecto todas las páginas y controles en Asp.Net 4.0 utilizan output cache para así agilizar la carga de las páginas. Se agregó además el RedirectPermanent para corregir algunas fallas presentadas en el Response.Redirect desde el Asp.Net 2.0 que no se habían podido corregir.

Por el momento eso es todo sobre ASP.Net 4.0, espero que en unas próximas entregas pueda publicar más artículos al respecto. Para más información visite el siguiente enlace.

Tips al desarrollar sobre ASP.Net

Cuando vamos a comenzar un desarrollo de una aplicación web hay que tener varias cosas en cuenta que muchas veces pasamos por alto cuando estamos acostumbrado a desarrollar sobre plataforma de escritorio, cosas que a mi me ha pasado en par de aplicaciones que no funcionaron de la forma más óptima. Hoy les voy a mostrar unos consejos sobre tecnologías poderosas pero que hacen que las aplicaciones sean más lentas.

Viewstate: es muy utilizada por los desarrolladores .Net ya que permite almacenar información dentro de una página sin que se pierda información de la misma en PostBack, ya que guarda la información encriptada en un campo oculto, pero tiene serias repercusiones en el rendimiento de la página ya que incrementa el tamaño de la página y la cantidad de memoria a usar. Nota: con esto no digo que no deba usarse, sino que debe utilizarse de forma razonable.

Una buena técnica es deshabilitar el viewstate en controles que realmente no lo necesitan, especialmente en los gridview y datalist, que manejan tanta información.

Ajax Toolkit: los controles ajax son muy importantes ya que nos ayudan a entregar herramientas más profesionales y con mayor interoperabilidad con los usuarios. Pero, estos controles tienen mucho scripts internos que hacen que las aplicaciones sean un poco lentas, por lo que es recomendable no abusar de estos y si es necesario implementar nuestros propios códigos javascripts donde no es necesario realizar tareas muy complicadas.

Uso de Cache: Si la información que va a mostrar en una determinada página no cambia muy seguido sería una buena opción utilizar la caché para almacenar la página por un tiempo determinado para que así la búsqueda sea más rápida en una próxima llamada a la página. Para esto, puede pegar el siguiente código en su archivo Web.Config:

<caching>
<outputCacheSettings>
<outputCacheProfiles>
<add name="cached" duration="600" varyByParam="none" enabled="true"/>
</outputCacheProfiles>
</outputCacheSettings>
</caching>

Apagar el Trace: Cuando vaya a publicar su Web Site es recomendable apagar el trace en el Web.Config. Ejemplo:

<trace enabled="false" pageOutput="false" />

Deshabilitar Opción Depuración: cuando compile, es bueno poner esta variable en false para así evitar que el Servidor Web almacene información de todo lo que se ejecuta en la página.

<compilation debug="false">

Verificar archivo Web.Config y elimine httpModules no necesarios: verifique que su web site no tenga módules http que no esté usando, ya que estos son cargados en cada llamada a una página.

Optimize su Javascript y sus archivos CSS: es importante solo declarar las funciones que vamos a realmente utilizar en Javascript. Para esto puede ir a los siguientes enlaces:


Posiciones CSS y Javascripts: colocar los CSS al inicio de cada página y los Javascript al final de la página para que no cargue funciones que no sean necesarias al principio.

Uso de Server.Transfer: Utilizar Server.Transfer cuando sea necesario en vez de Response.Redirect ya que este ocaciona que se cargue la página completa y el primero solo el formulario.

Otra URL utilizada para verificar las páginas es: http://www.websiteoptimization.com/services/analyze/

Nota: Gracias a NM por enviarme la URL de WebSiteOptimization

jueves, 13 de agosto de 2009

Sistemas Operativos basados en Web

En Tecnología se puede decir que todo es una fiebre, donde los empresarios intentan buscar que es lo que buscan los clientes, a donde es que se va dirigiendo el mercado. En otras palabras, estos empresarios a los que podemos llamar personas emprendedoras tratan de ver más allá de donde puede ver un simple usuario de computadora. Ahora, la tendencia es la tecnología móvil y el desarrollo de poderosos sistemas operativos orientados a este tipo de herramienta. También, está en boga el desarrollo de sistemas operativos que se puedan ejecutar en la Nube (Internet), Google inició esa corriente, con su Google Docs, Microsoft que le ha seguido los pasos con el lanzamiento de un nuevo Web Site office.com (acaban de comprar el dominio)

Pero las cosas no se quedan ahí, con el posible lanzamiento de Google Chrome OS, del que ya le había hablado en una entrega anterior, sale la noticia que unos jóvenes españoles piensan lanzar al mercado un sistema operativo Web denominado EyeOS que inició en el 2005 como un simple manejador y depósitos de archivos en línea. Este software está basado en Linux, y como todo lo relacionado con Linux, su modelo de negocio está orientado al servicio, no a vender el software (en este modelo, los beneficios vienen del mantenimiento del sistema, soporte, asesoría en la instalación y cambios de plataforma). Distinto a Google, que es la publicidad o Microsoft que es la publicidad y vender su producto.

A Diferencia de Chrome o YouOS, EyeOS solo tiene disponible la aplicación, el servidor donde el cliente va a alojar la data está a disposición de ellos (hasta cierto punto le da más seguridad, ya que el código es abierto, y puede ser verificado por si existe algún deamon que pueda compartir la información personal de la empresa y porque está en manos del cliente tener su información segura).

Algo que no me gusta de la idea de Chrome, Office 2010, YouOS que tienen el sistema en sus servidores y la información del cliente está en mano de un tercero (no tan bueno) con la ventaja de que esas empresas tienen miles de servidores con la información replicada que ofrece seguridad a los usuarios.

Apostemos todo por el Sistema Operativo basado en la Nube, la próxima generación está a punto de llegar.

Fuente de la Noticia

miércoles, 12 de agosto de 2009

Una cosa es negocio, otra manipular la verdad

Hace unos días estuve leyendo un artículo sobre la principal empresa de telecomunicaciones del país (CODETEL), donde se hacía una reseña sobre una multa impuesta por el Instituto Dominicano de Telecomunicaciones (INDOTEL) a dicha empresa por degradación en el servicio que le ofrecía a sus usuarios de telefonía móvil.

La persona que escribió el artículo expresaba que las críticas que se hacían hacia la empresa por parte de sus clientes y la competencia era buscando afectar al proveedor de servicios de telecomunicaciones y que una empresa que empleaba RD$5,000 empleados directos e indirectos y aportaba millones de pesos al fisco así como un servicios a millones de usuario se le debe pasar por alto este hecho.

Si, es cierto que la empresa Codetel ha realizado grandes aportes a nuestro país, y que ha impulsado la tecnología de telecomunicaciones hasta convertir nuestro país en uno de los principales a nivel de telecomunicaciones en América Latina. Pero, debemos recordar que es la misma empresa que tuvo un monopolio por más de 60 años en el país, que no permitía que las telecomunicaciones se desarrollaran, que gracias al surgimiento de otra empresa (Tricom) fue que las telecomunicaciones avanzaron gracias a competencia en el mercado y la llegada de otras proveedoras como son Orange y Centennial.

Por ser la pionera en telecomunicaciones en nuestro país, hemos dejado que el servicio que nos brindan sea el más caro del mundo, que por años nos brinden un servicio poco adecuado a estos nuevos tiempos.

Si no lo sabe, en este país la velocidad de Internet básica que se ofrece es de 384 kbps de bajada, cuando en muchos paises se pueden contractar 5 MB por el mismo precio que nosotros pagamos por esos 384 kb. Que pagamos uno de los servicios más caro del mundo de telefonía.

Señor, disculpeme, en un mundo globalizado, no nos pueden venir a cambiar oro por espejo desinformando a la sociedad. Una cosa es que defienda a la empresa a la que le brinda servicios profesionales, otra es que quiera manipular a sus lectores con ese tipo de noticias.

domingo, 9 de agosto de 2009

Comparaciones y sincronización de SQL Schema

Como administrador de base de datos muchas veces nos encontramos con situaciones dificiles, ya sea, por proyectos mal manejados por parte de los desarrolladores de software o poco control en los cambios que se realizan en la estructura de base de datos.

Existen herramientas que sirven para poder sincronizar y comparar las estructuras de base de datos cuando tenemos que realizar publicaciones del área de desarrollo a calidad o producción. La herramienta que le vamos a mostrar es conocida como SQL Comparer Pro, que sirve para comparar a y desde un backup de base de datos, archivos de SQL y sirve para sincronizar tablas, procedimientos, vistas y funciones, así como XML Schema, CLR Assemblies.

Anexo le mostramos un documento donde explica muestra cuales son los beneficios de la herramienta de RedGate.

El precio de la herramienta es solo US$395, que para una empresa que maneja un gran número de transacciones y necesitan realizar cambios en estructuras de base de datos que ya se encuentran publicadas en otros servidores, pueden utilizar una de estas herramientas para un mejor manejo.

Otras herramientas están Quest Optimizer for DB2, DB-Softs DB Compare, Free D-Softs DB Compare, entre otras muchas.

viernes, 7 de agosto de 2009

Ataque a Twitter, Blogger, Facebook.

Al parecer los Web Sites de Twitter y Facebook continuan siendo atacados, y hasta blogger en un momento parecía estar bajo el ataque del denial-of-service attack (DoS attack) o distributed denial-of-service attack (DDoS attack). Según una nueva fuente los ataques parecen provenir desde Rusia para callar a un bloguero de Georgia nombrado como Cyximu.

Bueno si así es como funciona el espionaje, donde dos monstruo de la tecnología de Internet no puedan responder hacia este tipo de ataque. Al parecer, lo que le había comentado sobre una tercera guerra mundial a través de Internet se afirma más con este tipo de ataque donde ya involucra varios países, y entre ellos dos potencias como son Estados Unidos y Rusia.

jueves, 6 de agosto de 2009

Problemas en Twitter y Facebook

Hoy cuando intenté entrar a mi cuenta de Twitter me encuentro que el servicio se encuentra abajo. Así me pasé gran parte de la mañana de hoy con esos inconvenientes. Resulta que tanto Twitter como Facebook fueron atacados por unos cibernautas mediante un presunto ataque de DDOS (Distribuited Denial Of Service Attack, por sus siglas en inglés) o Ataque de Denegación del Servicio Distribuido que afectó a millones de usuarios de estas herramientas.

El primer ataque fue realizado a más o menos las 8:00 A.M. y luego fueron atacados en una segunda ocasión.

De veras Microsoft cree que Linux es competencia para ellos?

Durante el día de ayer en la celebración anual del U.S. Securities and Exchange Commission Microsoft ha renocido que Linux es una real competencia para ellos (especialmente, Red Hat en el ambiente de grandes servidores y Ubuntu como sistema operativo personal). Pero hacen mención por arriba de lo que representa Mac OS y lo que puede presentar Google Chrome OS para ellos y no le dan la debida importancia a estos dos sistemas operativos.

Pienso que con esta noticia, Microsoft busca restarle importancia a los comentarios sobre la salida del Google Chrome OS, que se puede convertir en la más devastadora competencia con la que jamás se han enfrentado. Esta empresa tienen el Knowledge de lo que busca el usuario final, al igual que ellos hace unos años.

Tienen la capacidad humana para hacer frente a Microsoft, y principalmente han creado su propio emporio que los ubica como número #1 en varios aspecto tecnológico especialmente en herramientas que se ejecutan en la nube.

Sobre Linux, todavía creo que no están orientados a los usuarios finales para que pueda ser utilizado por las masas, no tienen un buen equipo de mercadeo y no cuentan con el soporte para brindar estos excelentes sistemas operativos que se ejecutan sobre el núcleo de Linux.

Pero, por el momento Microsoft lo que busca es desarticulizar la ofensiva que viene implementado Google, haciendo saber que ellos no lo consideran una fuerte competencia en el mercado de sistemas operativos. Solo el tiempo le dará la razón en caso de que sus premisas sean correctas.

Enlace de la noticia