miércoles, 24 de abril de 2013

Problema al mostrar muchas filas en un GridView (más de 1.000)

Buenas a tod@s

La semana pasada me encontraba desarrollando una aplicación en ASP.NET para mi empresa. En esta aplicación, tiene una serie de filtros que una vez aplicados muestran una tabla con los registros, que además posee una casilla para seleccionarlo. Evidentemente hablamos de ASP.NET por lo que para mostrar todos los elementos de la tabla utilice un control GridView con la primera columna con CheckBox para poder marcar o desmarcar los datos. Tras realizar un montón de pruebas dimos por válida la aplicación.

Cuando se lo mostramos a nuestro director el comenzó a hacer pruebas y encontró un error en el control GridView. Realizando un filtrado que devolvía más de 1.000 líneas la página queda congelada y si pulsas cualquier otro control no funciona. El problema es que no da un error como tal hasta que intentas recargar con F5 y entonces aparece este error "Operation is not valid due to the current state of the object".

Como indico anteriormente el problema viene dado por que son más de 1.000 líneas las que se muestran en nuestro GridView. Para solucionar este problema evidentemente podemos paginarlo a un máximo de 1.000 líneas por ejemplo o podemos ampliar el número de líneas que el GridView puede mostrar.

Esto último es muy sencillo simplemente hay que introducir un parámetro en el appconfig de la aplicación web, donde le indicaremos el máximo de líneas que mostrarán las colecciones.

Esta es la línea en cuestión:

<add key="aspnet:MaxHttpCollectionKeys" value="Número de Líneas" />

Como podéis observar algo sencillo a la vez que útil.

Este problema lo solucione gracias a Google (por mostrarme la información que buscaba) y al blog de  Max Martin Rojas (Martin Cox Rojas Blog) que escribio el siguiente Artículo (el cual te agradezco mucho)

Muy importante, si decides comentar o republicar parte de este articulo porque te ha sido útil, por favor cita la fuente y el autor del mismo (vamos cítame) y pon un enlace al artículo de mi blog

Muchas gracias por leerme.

Saludetes a tod@s

P.D. Podéis seguirme en Twitter @jberron y linkedin

miércoles, 17 de abril de 2013

El Bitcoin..... ¿Que es eso?

Buenas a tod@s

Hoy voy a hablaros de uno de los temas más candentes de momento en internet, en tecnología y en economía. ¿En economía? Si, si eso he dicho en economía también.


¿Qué es un Bitcoin?
Básicamente un Bitcoin es una moneda virtual, ni más ni menos. Virtual, libre no está sujeta a ningún gobierno de ningún país, a ninguna entidad… digamos que es lo más libre que puede ser una moneda. Se basa en el protocolo P2P (si el mismo que el Emule, Bittorrent…) y es totalmente descentralizada. No existe un servidor que se encargue de llevar la cotización, ni el saldo, ni nada por el estilo ya que está pensada como un cliente P2P como el emule en el cual se transmiten unos paquetes cifrados con los movimientos de todas las cuentas existentes. Es una moneda en la nube.

Esta moneda fue pensada entre otras cosas para no depender de un banco al realizar transacciones por internet. No tenemos una cuenta corriente, básicamente tenemos un monedero virtual en el que guardamos nuestros Bitcons. Este monedero (que es un programa P2P) es el que se encarga de mantener el Bitcoin vivo enviando y recibiendo los paquetes de movimientos para así tener siempre el saldo de nuestras cuentas actualizado

Imaginar una moneda sin fronteras y sin bancos la cual puedas tenerla en España, Belgica o en Australia sin preocuparte de cambios, transacciones, comisiones, bancos y además sea sencillo de mantener de una forma segura. Es una idea maravillosa, demasiado buena para ser real.

Parece algo sacado de ciencia ficción ya que con un Bitcoin no se puede comprar nada… ¿no?
Hasta hace unos meses bien es cierto que prácticamente nadie aceptaba el pago con esta moneda, pero ya sabéis como son las cosas en internet. Mega (la nueva empresa del creador de MegaUpload) empezó a aceptar el pago de sus servicios Premium con Bitcoins, luego apareció una cadena de pizzerías y casi podríamos hablar que cualquier servicio puede ser comprado con Bitcoins.

Pero en una moneda normal, el banco del país genera la moneda… ¿Quién "imprime los billetes"?
Evidentemente es una forma de hablar. A día de hoy, no existen billetes de Bitcoin, pero si es necesario generar la moneda. ¿y quién la genera? Es curiosa la denominación que los creadores de Bitcoin han puesto a las maquinas encargadas de esta tarea, son los mineros (miners).  Los mineros básicamente son ordenadores conectados a una cola de proceso la cual recibe datos desde la red de Bitcoin y se encarga de generar unos paquetes y los reparte entre los mineros. Los mineros descifran estos paquetes y se genera nueva moneda. Evidentemente dejar un ordenador encendido para generar moneda sin recibir nada a cambio es una tarea un poco absurda a así que el creador de Bitcoin otorga parte la moneda generada por los mineros a ellos mismos. De esta forma si tenemos un minero mi potente descifrara muchos paquetes y ganaremos muchos Bitcoins.

Pues a generar Bitcoins se ha dicho
Bueno es una opción pero el tema seria ver si es realmente rentable. Para generar los Bitcoins rápidamente, el software de minería no utiliza el procesador principal del ordenador (CPU, es decir el Intel i7 flamante que tenemos) para generarlo sino que utiliza el chip de la tarjeta gráfica. ¿Por qué? Bueno aunque parezca algo rarísimo no lo es. Las tarjetas gráficas poseen procesadores en la mayoría de las ocasiones con varios núcleos, con mayor número de bits, además de una memoria más rápida que la del resto del ordenador y además únicamente dedicada para ella (todo un lujo Jeje). Por lo que para tareas de este estilo es mucho más rápidas y eficientes al utilizar el procesador de una GPU (Graphics process unit) que el de una CPU (Central process Unit).

Para poder generar Bitcoins rápido debemos tener una tarjeta gráfica muy potente y hacerla trabajar al máximo durante bastante tiempo. Además podemos utilizar varias tarjetas.

El problema de la generación, tras un estudio detallado de la situación actual, la generación con nuestro equipo no es rentable. En un breve periodo de tiempo (si no lo han hecho ya) empezaran a vender una maquinas llamadas ASICS de la empresa Butterfly Labs, su máquina más pequeña con un coste de 249$ tiene una velocidad de proceso de 4500 Mhash/s. Si ponemos un ejemplo de lo que podemos obtener nosotros con una maquina nuestra podríamos decir que una AMD Radeon 6990 valorada en unos 500€ es capaz de proporcionar unos 835 Mhash/s consumiendo unos 130W mientras que el ASICS consume 5W.

Además cuantos más mineros menos dinero recibe cada uno, ademas más complejos son de generar los Bitcoins.

Bajo mi punto de vista la generación de Bitcoins está muy masificada y la inversión no se prevé rentable. En este momento, con una maquina ASICS si el Bitcoin sigue al precio actual la amortizarías en 5 días pero nadie garantiza que al aprecer muchas de estas máquinas conseguir Bitcoins se haga mucho mas complicado. Ademas esta maquina esta expresamente diseñada para de este uso, no vale para nada más. Es una inversión a fondo perdido, puede ser muy rentable o puede acabar siendo algo inservible.

Olvidamos la idea de la generación, ¿porque ha subido tanto de precio el Bitcoin?
Los analistas dicen que después del dólar fue la moneda más fiable del año 2012 y con los problemas que últimamente está teniendo la Unión Europea con el € (caso Chipre) dice que muchos europeos cambia su dinero por el Bitcoin. Si nos plateamos cambiar nuestro dinero a Bitcoins con tener en nuestro portátil nuestro monedero podríamos marcharnos a cualquier país del mundo y tener capital si depender de que el haya caído una moneda u otra, algo que lo hace atractivo. Pero al ser esta una moneda cuyo número de monedas es controlado, no se puede generar más. De hecho cada vez es más difícil generar moneda y ha subido muchísimo de precio dado que no hay entidad que regule su precio. El Bitcoin ha pasado de valer uno 15$ a 200$ en menos de dos meses y de repente ha vuelto a caer. Realmente quien regula el precio del Bitcoin es el propio mercado. Por lo tanto a más demanda, mayor precio. Hace un año una pizza costaba 10.000 Bitcoins, hoy con ese dinero puede comprar un piso.

¿Y qué podemos ganar con todo esto y en que nos influye indirectamente?
Si nosotros no intentamos generar Bitcoins (tenemos el gasto de hardware, software y electricidad), lo único que podemos ganar es una nueva divisa que en principio debería ser más estable. Ya que se mueve por ley de oferta y demanda, no tiene un banco que se encargue de poner su precio, y tampoco es necesario un banco para operar con ella. Podríamos ahórranos por ejemplo el problema que tienen Chipre con los bancos. Por esta parte es algo bueno, pero también tiene su parte mala, ya que podría tener mayor inflación. Pongamos el ejemplo que dé se prevén malos tiempos en Japón, actualmente la gente cambiara los Yenes por Dólares para conservar sus ahorros y los especuladores realizaran el cambio a la inversa. Si en vez de comprar Dólares compramos Bitcoins al ser libre mercado subiría su precio, los poseedores venderían muy caro y se mantendría caro hasta que se desplome la burbuja de nuevo además podría en grave desventaja y con gran pérdida de poder adquisitivo a los ciudadanos de una u otra parte del mundo aunque realmente sea no sea así, si lo será de cara al exterior y podría comprar servicios mucho más baratos de lo que realmente son.

Ante todo recordemos que aunque por internet podamos comprar muchas cosas, en la panadería de la esquina no aceptan Bitcoins.
En un momento tranquilo en el que la moneda no fluctué mucho podríamos utilízalo como un medio para intercambiar divisas ya que la comisión por cambio es inexistente si se trata siempre de una misma divisa y si son varias es un 2,5%, en comparación con las casas de cambios o bancos habituales mucho más económico. Aunque ya empieza a haber casas de cambio "un poco piratas" que nos intentan engañar, ya sabéis.

Conclusión
A día de hoy y según acontece no auguro buen futuro al Bitcoin. Aunque la idea es muy buena y el funcionamiento está francamente bien pensado, ha caído en la especulación y ya sabéis, como se decía por esta parte del mundo "los pisos nunca bajan".

Si tienes otra opinión te invito a que la expongas en mi blog. Yo no soy contable sino informático, hablar de divisas, cambios de moneda… es para mí un reto y un tema con gran parte de desconocimiento y con el que de vez en cuando topo y mediante lo que encuentro en internet y la lógica intento encontrar conclusiones. Si ves algo incorrecto, coméntarlo y será modificado de inmediato.

Muy importante, si decides comentar o republicar parte de este articulo porque te ha sido útil, por favor cita la fuente y el autor del mismo (vamos cítame) y pon un enlace al artículo de mi blog

Muchas gracias por leerme.


Saludetes a tod@s

P.D. Podéis seguirme en Twitter @jberron y linkedin

Actualización
Por si ha al alguien el interesa el tema de la minería en este enlace tenéis una calculadora de rentabilidad para miners https://bitclockers.com/calc

miércoles, 10 de abril de 2013

No solo de informática vive en informático

Buenas a tod@s

El otro día estaba leyendo un artículo sobre lo que es un BROGRAMMER (http://www.genbetadev.com/desarrolladores/brogramador-101-adios-nerd-adios) . Con sinceridad puedo deciros que no había oído ese término en mi vida. Al parecer viene de juntar las palabras programmer y brother. Programmer (programador) no hace falta que os explique que es pero lo de brother (hermano) queda un poco raro. Bueno, en este caso Brother no quiere decir hermano como tal sino más bien habla sobre hermandad, refiriéndose a las hermandades de las universidades americanas (las de las fiestas salvajes que vemos en las películas).

El autor del artículo hablaba de que hoy en día ya no se busca en programador “friki” que no sale de su casa y únicamente se dedica a programar, sino más bien un buen técnico que pero tenga ciertas habilidades sociales y que sea capaz de integrarse con el resto de las personas del mundo aunque no se dediquen a una profesión parecida a la suya.

Sinceramente la informática tiene una muy mala publicidad. Aparentemente los informáticos somos gente rara, incapaz de comunicarse de una forma normal y que siempre tienden a esconderse del resto del mundo.

Sinceramente me entristece mucho esa visión que tiene la gente preconcebida de lo que es un informático. Tú dices “Yo me dedico a programar… vamos soy informático” y automáticamente acabas de convertirte en un extraterrestre.

Actualmente tengo 29 años y puedo decir con total convencimiento que soy una persona equilibrada. Tengo un buen montón de amigos, y realizo muchas actividades digamos “normales” con ellos. Desde jugar a los bolos, montar en bicicleta, esquiar, ir al cine, hacer footing, salir a cenar… o porque no de juerga.

Entonces, ¿dónde está el informático friki que se supone que soy?

Está claro que en mi campo soy un profesional y quizá entiendo sobre los temas de informática, móviles, internet más que los demás pero… pregunta a un mecánico sobre su coche o a una enfermera sobre alguna dolencia y veras que en el fondo son iguales que nosotros dentro de su campo.

El problema real, es esa imagen preconcebida de que el informático es un Friki que por las noches se dedica a picar código en vez de salir con sus amigos. Sinceramente si pica código por la noche es porque algo bueno va a sacar (un sobresueldo, un proyecto personal…) pero igual que un contable puede dedicarse a hacer la declaración de la renta a sus “amigos” para sacarse unos durillos.


Igual que todas las personas, necesitamos comunicarnos, tener amigos, familia y realizar actividades con ellos igual que si nos dedicáramos a cualquier otra profesión. Somos animales sociales, al igual que todos los demás. Para superar este problemilla que tenemos necesitamos vuestra ayuda para que de una vez por todas se entierre ese carácter despectivo de “Friki” asociada a un profesión sin la que muchos de nosotros no tendríamos trabajo si no existiera (hay muchos trabajos que sin informatica no existirían) y a otros tantos se lo facilita muchísimo (ingenieros de todo tipo, arquitectos, interioristas, periodistas, médicos ...).


Saludetes a todos y gracias por leerme



miércoles, 3 de abril de 2013

Cifrado o encriptación del disco de sistema con TrueCrypt

Buenas días a tod@s.

Supongo que este tema os sonara de un post anterior del blog en el que hablaba sobre la aplicación TrueCrypt la cual me parece muy interesante. En esta nueva entrada lo que realmente os voy a enseñar, es a cifrar un disco de sistema con TrueCrypt.

¿Qué significa realmente cifrar el disco de sistema?

Bueno, vamos a empezar por explicar que es el disco de sistema. El disco de sistema podríamos definirlo como el disco en el que se encuentra instalado el sistema operativo. Es decir donde se encuentra instalado nuestro Windows o Linux. 

En este ejemplo  vamos a cifrar el disco entero no solo una partición. Una partición es un trozo del disco. Un disco puede ser dividido en varias partes, de cara al sistema operativo puede mostrarlo como varios discos o varias unidades. Cada una de estas particiones es totalmente independiente de las demás. Es muy útil hacer particiones para asilar los datos de los programas por ejemplo, de esta manera si tenemos un problema y tenemos que reinstalar el sistema no perderemos nuestros preciados datos. Sobre particiones hablamos otro día, en otra entrada porque no es el cometido de esta entrada.

Como decía antes en este ejemplo vamos a cifrar todo el disco con todas sus particiones. 

Con este cifrado garantizamos que nadie podrá iniciar nuestro sistema sin tener la clave y no podrá acceder a los datos de ninguna manera.

Esto es muy útil por ejemplo para un portátil que llevamos de viaje habitualmente y podemos perder con “cierta facilidad”.


Comenzamos el tutorial

Para los que leísteis mi anterior entrada sobre TrueCrypt veréis que el proceso no es muy diferente.

Lo primero debemos tener instalado TrueCrypt en nuestro sistema. Podéis descárgalo desde su página web http://www.truecrypt.org/  y si queréis ver detalladamente el proceso de instalación podéis verlo en mi anterior entrada http://joseberron.blogspot.com.es/2013/02/cifrado-con-truecrypt.html
Una vez que lo tenemos instalado vamos a iniciar el programa


Una vez iniciado vamos a pulsar sobre el botón “Create Volume”
Una vez pulsado aparecerá el asistente para la creación de volúmenes.


Vamos a seleccionar como vemos la tercera opción “Encrypt the system partition or entire system drive” y pulsamos “next”


En este paso nos pregunta sobre nuestro disco, le decimos normal, ya que no es un disco normal y solamente nos interesa cifrar el sistema. No queremos realizar una encriptación y ocultar el disco, ya que posiblemente nos traiga más problemas que beneficios.


Ahora nos pregunta si deseamos cifrar la partición de Windows o el disco completo. Vamos a marcar la segunda opción. Nos explica que reemplazara el bootloader (es el programa que inicia el ordenador al encender, es un programa muy pequeño que normalmente no vemos y su función es arrancar el sistema operativo) del sistema para poner el suyo propio y permitir el descifrado para que funcione correctamente nuestro equipo.


En este paso nos pregunta si tenemos áreas ocultas en nuestro disco. Por defecto vamos a decirle siempre que sí. El sistema se encargara de buscar si existen y configurarlas, sino existen simplemente no las encontrara y las omitirá.


Esta cuestión puede ser compleja y explico porque. Nos pregunta si tenemos más de un sistema operativo instalado en nuestro ordenado. Normalmente solo tenemos 1 por lo que debemos marcar “single-boot” pero si tenemos más de uno “multi-boot”.
Sencillo ¿verdad?
Bueno… aquí viene el problema, duramente mis pruebas intente decirle a TrueCrypt que mi sistema tenía más de un sistema operativo y al continuar, llegue a un punto en el que me dijo que no estaba soportado. No sé si será porque realmente como solo tengo un sistema operativo y el software lo detecto, porque el error era “no está soportada la opción de multi-boot”. Sinceramente un jarro de agua fría, pero para un uso normal es suficiente.


En este paso nos pregunta por el algoritmo de cifrado. Seleccionar el que queráis en los desplegables. Como dije en la primera en el primer mensaje sobre TrueCrypt lo suyo seria buscar el más apropiado para nuestro cometido ya que existen varios. Para el ejemplo vamos a utilizar el que aparecer por defecto ya que es suficiente, además de ser lo suficientemente complejo para ser descifrado siendo un algoritmo rápido.
Pulsamos siguiente para continuar.


Ahora debemos configurar las claves de encriptación. Las KeyFiles no están soportadas, por lo que debe ser una contraseña. La cual puede ser todo lo larga que se nos ocurra. Aconsejo que no sea la misma que utilizamos para desbloquear nuestro usuario de Windows y así tener mayor seguridad.


El sistema está generando claves aleatorias por segundo.
Pulsamos siguiente para escoger una.


Aquí podemos ver las claves que el sistema ha escogido. No tiene mayor relevancia, pulsamos siguiente.


Este paso es muy importante y sin él no podemos continuar. Es la creación del disco de rescate. En la ubicación que aparece abajo el sistema va a crear una imagen ISO que debemos grabar en un CD. Este cd es necesario para arrancar el equipo si el sistema tiene problemas. Seleccionamos en el botón “Browse…” donde queremos guardarla y pulsamos siguiente.
A continuación debemos grabar la imagen creada en un disco.


En este paso el sistema va a comprobar que el disco que hemos grabado es correcto


Si no lo es aparecerá un mensaje como este y deberemos volver a grabar el disco para poder continuar. Sino el proceso terminará aquí.


Una vez que hemos validado el disco aparecerá este mensaje indicándonos que es correcto y podemos continuar. Pulsamos “next” para continuar


En esta pantalla vamos a escoger la forma de “limpiar” los datos. Podemos escoger entre varias opciones


Por lo general, cuantas más pasadas, más seguro pero más lento. Yo aconsejo que al menos se haga la de 3 pasadas ya que quedara todo limpio y bien encriptado pero aunque no lo hiciéramos poco a poco el propio sistema con el uso lo ira haciendo progresivamente. Es una forma de arrancar. Como es un ejemplo lo he dejado en “none” pero sería interesante utilizarlo.


Una vez que ya está todo terminado, el programa va a realizar una prueba para ver si es posible la encriptación con la configuración que hemos facilitado. Pulsamos el botón “Test” para continuar con el cifrado


Este mensaje es muy importante, ya que aquí nos explica que es lo que tenemos que hacer si falla la prueba y el sistema no vuelve a arrancar. Deberíamos imprimirlo o al menos guardar estas instrucciones en un lugar en el que podamos acceder en caso de necesidad, una memoria USB, un correo electrónico accesible desde el móvil…
Pulsamos siguiente para continuar con la prueba


Ahora parece un mensaje en el programa nos pide reiniciar nuestro pc. Pulsamos “Yes” y rezamos un poco para no tener que utilizar las instrucciones de las que hablábamos antes.


Bien si todo fue correctamente al encender de nuevo nos aparecerá una pantalla negra tan “bonita” como esta. Introducimos la contraseña y al pulsar Enter nuestro sistema debería arrancar con normalidad.


Una vez completada la prueba el programa va a proceder con el cifrado de todo el disco. Pulsamos el botón “Encrypt” y comenzará el cifrado


Igual que el paso anterior el programa nos va a dar unas pautas por si tenemos algún problema. Debemos de nuevo tenerlas accesibles por si fuera necesario.

Aquí podemos ver el avance del proceso de encriptación.


Una vez que el proceso termine aparecerá un mensaje parecido a este.


Y por fin ya hemos terminado. Pulsamos finish y ya tenemos el disco encriptado.


Si nos fijamos ahora en la pantalla inicial de truecrypt podemos ver que aparece un disco llamado “System Drive”.


Si pulsamos en propiedades podemos ver sus datos.



Si pulsamos el botón derecho podemos ver las operaciones como cambiar las claves, crear disco de rescate, cambiar encriptación…

Con esto hemos terminado ya tenemos nuestro equipo con su disco de sistema cifrado, para que nadie pueda acceder a los datos de ninguna forma y vamos a demostrarlo.

Prueba de funcionamiento

Vamos a comprobar que realmente sin saber las claves no podemos acceder a los datos contenidos en el disco. Mi primera idea como informatico es poner este disco en otro ordenado. Ya que es una maquina virtual voy a poner el disco duro virtual como una unidad de mi pc e intentar acceder a ella.
Primero mapeo el disco duro con el sofware de VmWare.

Ya aparece la unidad en mi equipo

Ahora intentamos abrirlo


Windows no puede acceder a la partición porque para el sistema no es válida (es lógico esta encriptado) y nos pide formatear para poder acceder. Pulsamos cancelar para que nos estropee los datos.


Como podemos ver no es posible acceder. Por lo que ya tenemos nuestros datos protegidos aunque perdamos nuestro equipo.


Fin del tutorial.

Sinceramente ha sido un tutorial bastante largo de escribir. Bien es cierto que se tarda más en explicar que en hacerlo. No tarde mucho más de 5 minutos en configúrarlo todo. Contároslo siempre es más costoso, ya sabéis.

Espero que os sea de interés, os ayude y guste.
Cualquier cosa que no os guste o sugerencia, podéis comentármelo a través del blog

Ya sabéis, si os ha gustado y decidís compartirlo no os olvidéis de los más importante, por favor cita la fuente y el autor del mismo (vamos citarme)


Saludetes a tod@s

P.D. Podéis seguirme en Twitter @jberron y linkedin