24 Nov
Empty your memory,
with a free().
like a pointer!
If you cast a pointer to a integer,
it becomes the integer,
if you cast a pointer to a struct,
it becomes the struct.
The pointer can crash.,
and can Overflow.
Be a pointer my friend.
Cuando veo cosas como esta, me doy cuenta de cuándo un anuncio es bueno y cuando no. Es una parodia del conocidísimo anuncio de BMW, como ya os habréis dado cuenta. Sólo para programadores, por cierto.
El anuncio es tan bueno que lo ha parodiado hasta la competencia.
Visto en HacheMuda y Pixel y Dixel
2 Oct
No es oficial, pero según los rumores Telefónica volverá a doblar la velocidad del ADSL a finales de este año o principios del 2007. El resto del mundo tiembla ante semejante exhibición de avance tecnológico y se mueren de envidia con las virguerías tecnológicas de las que disponemos los Españoles, una de las super potencias más grandes del mundo.
Supongo que el precio seguirá siendo irrisorio, lo que hará plantearse a muchos extranjeros - y no solo del norte de África - si no vale la pena venirse a vivir aquí y trasladar las sedes de sus empresas más importantes a nuestro país.
Mientras tanto, en Japón siguen en la edad de piedra.
Un resumen, ahora hablando en serio: 100Mbps es “lo normal”, te puede costar unos 4000 yenes al mes (unos 20€?) aunque el máximo es 1Gbps (1000Mbps). En móviles, “lo normal” también son 128kbps pero los terminales que se están vendiendo este año ya alcanzan los 2,4Mbps. Y tienen una red inalámbrica que te permite conectarte a Internet hasta desde lo alto del Mt. Fuji. Vamos, que allí hasta hace poco tenían en un teléfono móvil (que por cierto, no son Nokia precisamente) lo que aquí en un ordenador doméstico. Y bastante más barato.
27 Sep

0. Introducción:
Tal y como os dije el otro día, me he decidido a instalar Ubuntu en mi PC. La experiencia ha sido mucho más agradable que la última vez que me atreví a ponerme Linux (una Debian 2.0 si no recuerdo mal). Aquella leyenda urbana que decía que Linux es muy difícil de instalar y más de configurar se ha suavizado bastante.
No me entendáis mal: Linux ahora mismo es muy fácil de instalar, aunque sigue siendo más difícil de configurar. Y desde luego, si queréis facilidad de uso por encima de todo, no salgáis de Windows.
Entonces, ¿por qué instalar Linux? Os dirán que es estable, que es gratuito… Yo os puedo dar las mías, pero seguramente no serán suficiente para los más reservados. La verdad es que os aconsejo que lo probéis y decidáis si os gusta o no. Y más ahora, que como vais a ver a continuación; probar Linux es más fácil que nunca gracias a Ubuntu.
¡Ah! Y otra cosa más: No hace falta saber informática ni ser un genio para instalar y utilizar Linux. Esto es importante, porque mucha gente me ha dicho que no lo prueba porque es muy complicado. Que esta razón no os eche para atrás porque es totalmente falsa. Linux es un sistema operativo desarrollado gracias a la aportación de miles de personas en todo el mundo, que lo mejoran cada día. Hay toneladas de información en Internet acerca de cómo hacer las cosas, mucha más que para Windows. Y comprobareis que la interfaz de usuario no es más fácil ni más difícil que la de un Windows o un MacOS, simplemente es diferente.
He escrito una mini-guía de instalación para quien le interese. Podéis leerla pulsando en (more…)
23 Sep

Ubuntu: an african word, meaning “humanity to others”, or “I am what I am because of who we all are”. The Ubuntu distribution of Linux brings the spirit of Ubuntu to the software world
Me he decidido a instalar la distribución de Linux Ubuntu en mi PC. Ya la probé en mi antiguo ordenador, pero cuando se me jodió la fuente de alimentación y me compré el actual, no tenía ganas de volver a configurarlo todo. Pero la aparición de Xgl y compiz y de sus infinitas posibilidades, me han hecho arder en deseos de comprobar lo que es capaz de hacer con mi Geforce 6600. Si todo va bien, la próxima entrada la escribiré desde Linux, y ya seré capaz de que mi ordenador haga esto:
5 Jun
Aviso para navegantes: este es un artículo únicamente dirigido a aquellos que programen en .NET y necesiten solucionar este problema. El resto, podeis pasar, porque seguramente os parecerá aburrido ![]()
Software necesario:
Introducción
El otro día, en el trabajo conseguí cómo hacer algo que en principio debería ser trivial, pero a muchos de los que programamos en .NET no nos lo parece en absoluto. O al menos, en la cantidad de foros que visité para saber cómo hacerlo, encontré infinidad de preguntas sin respuesta referentes al mismo tema.
Vereis, llevaba tiempo queriendo generar un informe en formato Excel utilizando una plantilla. Tengo una aplicación web desarrollada en ASP.NET que se dedica a interactuar con una base de datos en SQL Server 2000. En esta aplicación hay un DataGrid con una serie de datos que, al exportarlos a Excel, sirven para consultar una serie de estadísticas y gráficos que se generan mediante unas fórmulas de la plantilla.
Una vez puestos en situación, existen varias soluciones a este problema, de las cuales me quedo con dos:
Solución 1: Renderizar el DataGrid en un fichero de salida y renombrarlo a *.xls
Esta es la solución más chapucera, pero también la más sencilla y rápida. Y para según qué casos, sobre todo si no necesitáis usar una plantilla Excel, sólo exportar a este formato os puede resolver el problema enseguida.
Se trata de renderizar el DataGrid a html, y escribir mediante HTTP en un fichero, que guardaremos con extensión .xls. Es posible cambiar el formato del fichero de salida gracias al código HTML, pero poco más. El código es el siguiente:
Como veis, sólo se trata de escribir en un flujo de salida dirigido a un fichero, como si escribiéramos por http. Se puede utilizar código HTML, ya que el Excel lo entenderá. De esta forma se puede dar formato a un encabezado (por ejemplo) mediante las etiquetas HTML convencionales.
Fuente: El Rincón del Programador
Solución 2: Utilizando funciones de librerías .NET
La solución que utilicé yo, ya que con la anterior no se puede exportar a una plantilla. Sólo se puede crear un archivo vacío y sin formato (que le puede ser útil a mucha gente, no obstante). Lo detallaré paso a paso:
Hay que agregarlas en este orden, porque si no la segunda os dará error.
3. En el archivo web.config de vuestra aplicación ASP.NET, añadir la siguiente línea:
<identity impersonate=\"true\"/>
4. En vuestra clase, importar éste namespace:
Imports System.Runtime.InteropServices.Marshal
5. Por último, el código que abre la aplicación Excel, coge la plantilla, y genera un archivo nuevo utilizando los datos del DataGrid y de la plantilla es el siguiente:
Está bastante comentado, por lo que no creo que os dé problemas. Si es así, dejadme un comentario e intentaré resolverlo. Suerte! ![]()
Fuente: El Guille
Twitteos