viernes, 19 de febrero de 2016

62. This platform could not be created becouse a solution platform of the same name alrready exists (Ayuda Rápida XIX)

Cuando trabajamos con muchos datos y requerimos que se saque el máximo provecho del procesador, es necesario también considerar la compilación sobre la que se hará la aplicación, compilar a 64 bits nos puede traer buenos resultados cuando los milisegundos cuentan.

El error:

This platform could not be created becouse a solution platform of the same name alrready exists

es un error común, que genera Visual Studio cuando a un proyecto que ya se encuentra previamente configurado para compilar a 64 bits, se agrega otro nuevo proyecto, que no trae esta configuración por defecto.


La solución a esto, es la creación manual de un perfil para la compilación a 64 bits, 

¿Como hacemos esto?

Es necesario que abramos en un editor de texto el archivo de proyecto del nuevo proyecto que estamos agregando (csproj).


Dentro de el, encontraremos la siguiente seccion:



La sección que se encuentra delimitada por PropertyGroup indica el tipo de compilación, en este caso vamos a agregar el tipo de compilación a 64 bits, para ello debemos agregar la siguiente configuración
.
Guardamos el archivo.

abrimos nuevamente nuestra solución, y ya tendremos la configuración de proyecto para compilar a 64 bits.




domingo, 14 de febrero de 2016

61. Motivación (comentario)



Ver a las estrellas y tomarlas con las manos, leerlas conocerlas y ver que hay mas allá, tener el conocimiento de la humanidad en nuestras manos, comprenderlo, e investigarlo.

Los desarrolladores tenemos en nuestras manos la posibilidad de potenciar el desarrollo de la humanidad hasta limites que no se han alcanzado anteriormente.

La información se ha democratizado y el conocimiento de la humanidad esta cada día mas cerca de nuestra manos, organizarlo analizarlo, encontrar cosas nuevas esa es nuestra labor.

Todos los desarrolladores son buenos, y tenemos una lucha de egos, por que, por que todos tenemos una forma muy especial de razonamiento, somos constructores de un mundo abstracto, eso ha cambiado nuestra forma de pensar con respecto al resto de la gente.

Al ser constructores de este mundo abstracto podemos construir caminos para hacer maravillas, no solo en un plano virtual en donde nos movemos, sino en un plano físico.

Dejemos de vivir el sueño de otros, convirtamos en parte de un sueño común, dejemos nuestra huella en la humanidad misma.

Estamos viviendo una epoca de evolución sin precedentes en la historia de la humanidad, si bien tenemos muchas cosas que superar, somos un punto que puede impulsar la solución.

¿Como?

La union hace la fuerza, y los sistemas informáticos deben ser la fuerza de esa union, necesitamos unir las redes de información y hacer que de ellas surja el conocimiento, que las dependencias se hablen, que las fuentes de datos puedan compartir la información.

Estamos en una era de big data con sistemas que pueden procesar información a velocidades sorprendentes, debemos mejorar eso, para hacer que ese conocimiento se desarrolle mas rápido.

Ya no somos solamente los encargados de una caja fuerte en donde se resguarda información, la época de ser creadores de ABC ha quedado en el pasado, ahora somos aquellos que pueden crear los medios para impulsar el conocimiento.

Los desarrolladores somos el nuevo catalizador para encontrar lo que hay en el futuro para comprender el pasado para hacer que todo lo que se ha construido se mueva de una mejor manera.

Debemos buscar comprender todo aquello que esta en el universo, descubre los secretos de la creación, ver las maravillas de dios, y todo eso como, generando conocimiento, uniendo lo que tenemos, haciendo útil, analizando la información.

Esa debe ser nuestra motivación.

Bueno es solo un comentario

sábado, 13 de febrero de 2016

60. Ondas Gravitacionales de Einstein

Este no es un tema de computo, pero dada su importancia debo mencionarlo, un evento que inicia no solo una nueva era en la Astronomía, sino que inicia una nueva era en la historia de la humanidad, las ondas gravitacionales que Einstein describir en 1916 han podido ser observadas, esto realmente representa el inicio de una nueva era por las aplicaciones que presenta la partícula elemental que se desprende de dicho descubrimiento el Gravitón que es una partícula sin masa.

Pero yo no soy experto en este tema, por lo que les dejo un par de ligas que explican el tema.

http://www.bbc.com/mundo/noticias/2016/02/160212_ciencia_ondas_gravitacionales_einstein_como_fue_gtg

http://www.bbc.com/mundo/noticias/2016/02/160211_ciencia_ondas_gravitacionales_relatividad_einstein_gtg

Ademas de esto una explicación del tema hecha para niños en Inglaterra narrada por el mismísimo Dr Who (David Tennant) para explicar a los niños de manera sencilla la teoría general de la relatividad de Einstein.


celebremos la nueva era que ha iniciado, 100 años después de que se hizo la hipótesis de las ondas gravitacionales, han sido comprobadas.

hasta pronto

viernes, 12 de febrero de 2016

59. ¿Que contiene una actualización de Windows?

Desarrollo no es solo escribir lineas y lineas de código, debemos estar enterados de la compatibilidad de los componentes que usamos con el sistema operativo, con frameworks, debemos ser capaces de dar una alerta cuando una aplicación se encuentre en riesgo, muchas veces por un cambio que se da por una actualización de sistema operativo.

Estos cambios son costosos por que hacen que una aplicación que hoy funcione mañana no lo haga, es importante revisar  ¿Que contienen las actualzaciones de Windows?, bueno esto microsoft nos lo indica por lo menos para el caso de windows 10 en la siguiente pagina:

http://windows.microsoft.com/en-us/windows-10/update-history-windows-10

revísenla de vez en cuando, mas vale prevenir que llevarse algunas sorpresas desagradables

58. BCP (BulkCopy) Unicode en SQL Server(Ayuda Rápida XVIII)

Últimamente he estado hablando de muchos temas de SQL, no he olvidado los de C#, todavía debemos continuar con los patrones de diseño, y con los cambios que nos ha traído la nueva versión del lenguaje, pero como lo he mencionado anteriormente, un desarrollador completo debe conocer varios aspectos del entorno en el que se mueve.

El bulkcopy y el bulk insert son herramientas muy útiles por que nos permiten la rápida carga y descarga de datos, bulk insert es mucho mas flexible, y se puede considerar una evolución de Bulkcopy, hablemos hoy de bulkcopy.

Bulkcopy nos permite extraer a un archivo desde una ventana de comando toda la información o parte de ella de una tabla de SQL, de una manera muy rápida, pero ojo, la velocidad tiene un precio, Bulkcopy provoca bloqueos en la base de datos.

Así podemos extraer la información con una instrucción como esta:

bcp [Query] queryout [ruta] -S [Servidor] -T -d [Base_de_datos] -c -C ACP

que le estamos diciendo a la base que efectue un bulk copy de un query, esto lo copie a una ruta de salida, -S le indica cual es el nombre del servidor -T indica que no usara pasword, - d indica el catalogo -c indica el tipo de datos a usar en el archivo de texto - C ACP, este es el caso por el que escribimos este post, nos especifica la codificacion para que se guarden los datos que se encuentran en unicode de manera correcta.

¿Por que nos interesa esto?

Bueno el problema que se genera es que cuando usamos un tipo de dato como nvarchar, almacenamos la información en unicode, es decir tenemos un tamaño de palabra mayor que nos permite almacenar una mayor cantidad de símbolos, la version 5.1 de unicode permite alrededor de 100 000 símbolos, si no especificamos el formato, un símbolo se trata de representar por su equivalente en otro formato, como consecuencia el documento se corrompe.

En el caso del idioma español esto nos pasa con la ñ, los acentos que son propios de nuestro idioma.

Ahora si tenemos un archivo ¿Como podemos hacer el proceso contrario y subirlo a la base de datos?

La instrucción es muy similar

bcp [tabla] in [Archivo] -S [Servidor] -d [base de datos] -T -c -E -C ACP

que dice la instrucción, la instrucción anterior dice lo siguiente, inserta en la tabla, el contenido del archivo, -S nos indica el servidor de base de datos -d la base de datos -T que no pedirá password -c que los campos son caracteres -E como es una inserción le decimos que puede insertar columnas tipo identity -C ACP indica la codificación.

Es muy importante que si los datos se extraen con una codificación estos se importen con la misma codificación.


Felices lineas

jueves, 11 de febrero de 2016

57. Eliminar la parte de tiempo de una fecha (Ayuda Rápida XVII)

En C# tenemos el tipo de dato DateTime, pero existen casos en los que no nos interesa la hora, minutos y segundos, la forma de eliminarlos es muy sencilla.

DateTime Fecha = DateTime.Now;
var Fecha2 = Fecha.Date;

se emplea la propiedad Date de DateTime

Esta si fue ayuda rápida, saludos

56. Formato Universal de Fecha en SQL (Ayuda Rapida XVI)

Un problema muy común en las consultas de SQL, sobre todo cuando estas se deben hacer por algún medio que no se encuentra parametrizado (siempre que pase un parámetro a una consulta en C# independiente mente del la forma en la que se realice esto, se recomienda especificar el tipo de dato) por ejemplo al hacerlas desde el Management Studio es el poder colocar una fecha y que el motor la interprete correctamente sin importarle el idioma y la región geográfica.

Los desarrolladores debemos tener el conocimiento por que al final nuestro principal objetivo es el procesamiento de la información, y nuestra principal fuente de datos son las bases de datos.

Si estamos en C# que es el lenguaje que empleamos en este Blog, nuestro motor principal es SQL Server.

Existen 2 formas una, es emplear el formato:

YYYYMMDD

Es decir, por ejemplo el 04 de enero de 2015 seria 20150104, pero esta representación no se encuentra completa, ya que en muchos casos necesitamos también la hora, para ello se usa el formato ISO8601, este formato fue creado para transferir fechas entre sistemas.

El formato que emplearemos de dicho estándar sera:

YYYY-MM-DDTHH:mm:SS.sss

Asi podemos tener una fecha de ejemplo como es:

2015-01-06T11:22:36.568

Felices Lineas

55. Hololents y Super Bowl

No puedo dejar de impresionarme, de como la tecnología cambia y nos lleva a pasos cada vez mas grandes, entramos a un tren de avances en los que estos cada día se dan a un paso mas rápido, dicen que perdemos la capacidad de maravillarnos, pero yo creo lo contrario, por que esa capacidad de maravillarnos es la capacidad que nos permite soñar, crear construir.

Cuando dejamos de maravillarnos dejamos de pensar en lo que puede venir, los desarrolladores nunca debemos perder esa capacidad, el futuro no esta escrito.

Pero hoy necesito que viajemos un momento al pasado, allá por el año de 1898, y vallamos a estados unidos, así que tomemos nuestra TARDIS, escojamos a nuestro Time Lord favorito y vallamos a ese punto y lugar del tiempo y el espacio.

Ahí conoceremos a una persona Charles Holland Duel, un hombre serio, formal, político educado, hijo de congresistas, que en ese tiempo se desempeñaba como Comisionado de la Oficina de Patentes y Marcas de Estados Unidos, toda aquella persona en estados unidos que quisiera efectuar el registro de una patente tenia que ir a esta oficina.

Es en esta época en la que se le atribuye una frase muy famosa.

"Todo lo que puede ser inventado ha sido inventado"

Quizás la frase fue sacada un poco de contexto, se maneja en muchos caso como un mito, no comprobado, pero nos hace pensar en algo, si perdemos esa capacidad de asombro, llegamos a considerar eso, que todo lo que se tenia que inventar ya ha sido inventado.

Nosotros somos piezas al servicio de la tecnología, y en nuestras manos tenemos un gran LEGO nuestros lenguajes de programación, con los que podemos crear construir e inventar las maravillas que nuestros hijos verán.

¿A que viene todo esto?

A un vídeo que se lanzo en los días previos al Super Bowl 50, en el que se muestra un dispositivo de Realidad Aumentada conocido como Hololents, dando una experiencia mas allá que la televisión, pero un vídeo dice mas que mil palabras, así que les dejo aquí el vídeo.



Felices lineas.


martes, 9 de febrero de 2016

54. Alto vuelo

Una muy mala practica que existe en el medio son las llamadas estimaciones a "Alto vuelo" o los dictámenes a "Alto vuelo", que se traducen como decir algo o comprometerse a algo sin tener la información para poder tomar una decisión.

Esta mala practica muy común en los niveles gerenciales, se convierte en una completa falta de respeto a lo que es la Ingeniería,  ya que no da elemento para poder emitir un juicio, elimina una fase de diseño, y en muchos de los casos busca forzar una ventaja competitiva, que en realidad no se tiene.

Esta frase también es una de las causantes de la crisis de la industria del software, ya que permite tomar decisiones al aire, muchas de ellas traen como consecuencia que los proyectos no se entreguen a tiempo o con la calidad indicada.

Es responsabilidad del Arquitecto, del desarrollador, del líder, no permitir que una decisión sea tomada sin tener los elementos completos, o indicar en el riesgo que se cae cuando se hace una decisión de este tipo.

Se debe valorar, una ventaja competitiva es oro molido para la industria, hacerla, puede conducir no solo al éxito de un proyecto sino que también al éxito de una organización, sin embargo forzarla, y fallar en obtenerla, causa desprestigio y desconfianza.

El ingeniero es el creador de soluciones, pero hay que tener los elementos para crear estas soluciones, piensen un poco mas analicen, y actúen.

Bueno solo es un comentario, felices lineas
  

viernes, 5 de febrero de 2016

53.Determinar si una constraint existe en SQL (Ayuda Rápida XV)

Como lo he dicho anteriormente un desarrollador no es aquel que solo sabe el lenguaje de programación, en nuestro caso C#, sino que es aquel que sabe como explotar todos los componentes que giran alrededor del mismo.

¿Como determinamos si una constraint ya existe en SQL?

El proceso es muy sencillo, vamos ha hacer una consulta a la tabla INFORMATION_SCHEMA.TABLE_CONSTRAINTS

¿Cuales deben ser nuestros criterios de búsqueda?

Consideraremos 3 criterios de búsqueda

1. El esquema
2. La tabla
3. El nombre de la constraint

¿Como seria la instrucción?

IF EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
                   WHERE CONSTRAINT_SCHEMA=[Esquema] AND CONSTRAINT_NAME=[Constraint] AND TABLE_NAME=[Tabla])
BEGIN
  [Accion]
END
GO


Felices lineas

52. Discos duros virtuales (Ayuda Rápida XIV)

El día de hoy es muy útil trabajar en maquinas virtuales, la virtualización nos permite simular ambientes y mejorar el proceso de pruebas, esto es muy útil para el desarrollador, podemos crear maquinas virtuales locales o incluso en la nube lo que nos permite entregar un software de mayor calidad ya que mejoramos el proceso de prueba, siempre es importante que nuestro software se pruebe en un ambiente en donde no se encuentren instalados los componentes que tenemos en nuestro equipo de desarrollo.

Los discos duros virtuales también se convierten en una herramienta muy útil ya que son contenedores en los que se puede almacenar archivos y estos archivos pueden guardarse con diferentes formatos de almacenamiento incluso diferentes al formato en el que se encuentra el disco duro local.

Los sistemas de archivos tienen diferentes características, y es importante conocerlas como desarrollador, ya que vivimos en la era del big data, en la que se tiene grandes cantidades de información, y tener un mal entendimiento o usar un formato solo por herencia puede generar alguna sorpresa desagradable, en un próximo articulo hablare sobre estos formatos.

El disco duro virtual como contenedor de archivos lo podemos usar para efectuar pruebas en diferentes equipos virtualizados teniendo un conjunto de pruebas precargado o emplearlo para compartir información de manera rápida.

Windows tambien es capaz de leer estos discos duros virtuales como si fueran un disco duro de sistema

Por lo regular esta es una tarea típica de un administrador de sistemas, pero como desarrolladores nos resulta muy útil saberlo hacer.

El disco duro virtual que emplearemos es el que tiene como extensión vhd.

¿Como hacemos esto?

1. Abrimos el administrador de discos, para ello emplearemos la instrucción.

2. En el administrador de seleccionamos el menú acción:


 3. Seleccione Exponer VHD


4. Seleccione el disco duro virtual


5. Y el disco duro se mostrara como un disco duro mas



Felices lineas