Blogia

Kirai.Net

Blender

A todos aquellos que os guste el diseño 3D os recomiendo Blender. Es un programa de libre distribución que tiene una potencia similar a entornos profesionales como 3D Studio o Maya. Blender se ha utilizado en la industria cinematográfica para hacer bocetos previos, se usa mucho en el mundo de los videojuegos, en investigación, arquitectura etc... Es una alternativa real a programas profesionales, la única pega que le he encontrado es su interfaz muy poco usable, realmente agobiante al principio, pero una vez te haces con los controles yo creo que se pueden hacer cosas más rápidamente que con 3D Studio o similares. Además está disponible para Windows, Linux, Mac OS, lo que queráis y no llega a ocupar 2 megas. A bajárselo todo el mundo :)

Bruce Eckel

Todo programador Java conoce a Bruce Eckel y sus libros que se pueden encontrar de forma gratuita en la Web. El tema es que no me había enterado de que ahora tiene un blog en el que expone su perspectiva actual de Java, .NET etc. También está escribiendo un Libro nuevo sobre J2EE del cual os podeís bajar una versión de borrador que ya está bastante avanzada. Para los que queráis iniciaros en Java Enterprise está realmente bien. Explorando por la web os podéis bajar otros libros entre los cuales están los famosos Thinking in Java y Thinking in C++. Están todos en inglés y no conozco ninguna traducción. De todas formas es inglés sencillito.

Carl Sagan

"Nosotros somos la encarnación local del Cosmos, que ha crecido hasta tener consciencia de sí. Hemos empezado a contemplar nuestros orígenes: sustancia estelar que medita sobre las estrellas; conjuntos organizados de decenas de miles de billones de billones de átomos que consideran la evolución de los átomos y rastrean el largo camino a través del cual llegó a surgir la consciencia, por lo menos aquí. Nosotros hablamos en nombre de la Tierra. Debemos nuestra obligación de sobrevivir no sólo a nosotros sino también a este Cosmos, antiguo y vasto, del cual procedemos." Cosmos de Carl Sagan.


Si os ha gustado el párrafo anterior disfrutaréis leyendo cualquier libro de Carl Sagan. Su libro más famoso es Contact, adaptado a película hace unos años. Otros libros suyos son Cosmos, Miles de Millones o El cerebro de Broca.

¿Un cubo de infinitas dimensiones dentro de una esfera de infinitas dimensiones?

Hace un tiempo hice un comentario en un articulo de Tio Petrus. En este artículo se comentaba una paradoja mediante la cual se demuestra que la diagonal de un cubo de infinitas dimensiones tiene longitud infinita. Yo dije que de la misma forma se podría hacer la extensión a las circunferencias ya que dentro de una circunferencia podemos meter un cubo. Pero mi razonamiento es incorrecto.


Tio Petrus ha puesto un nuevo artículo comentando que no es correcto lo de la esfera dentro del cubo. Si queréis seguir la discusión está interesante aunque puede ser un poco abstractata debido a que hay que trabajar con muchas dimensiones. Pero lo mejor es que a partir de lo que dice Tio Petrus extraemos una nueva paradoja, "Los cubos de infinitas dimensiones con diagonal igual al radio de una esfera de infinitas dimensiones son más grandes que las esferas".

El código da vinci

Es el libro de moda, y se lo recomiendo a todo el mundo sin excepciones. Una novela entretenida que no puedes dejar de leer y mediante la cual además de pasarlo bien aprendes muchas cosas de disciplinas tan variadas como la criptografía, arte, matemáticas, historia etc... Es un libro que te dará un poquito más de cultura general y no podrás parar de leerlo por lo interesante de su trama. Lo mejor que he hecho estas navidades ha sido leer este libro.

Ondas Gravitacionales

Las ondas gravitacionales aun no han sido detectadas nunca por los humanos pero su existencia fue predecida por Einstein como consecuencia de su teoría de la relatividad general. Según la teoría de la relatividad, la fuerza atractiva que llamamos gravedad esixte porque la masa de los cuerpos deforma el universo tetradimensional (Espacio-Tiempo). Si un objeto denso se mueve violentamente, el espacio tiembla.


Esto que acabáis de leer puede parecer una paranoia a ojos de un inexperto pero hoy en día se gastan miles de millones de dólares para construir detectores de éstas ondas. El problema es que las ondas que generan objetos poco masivos son muy muy débiles, lo que se intenta es podre detectar las ondas emitidas por un choque de dos agujeros negros o fenómenos parecidos. Aún así cuando llegan a la tierra según los cálculos estas ondas son tan débiles que su amplitud de onda es del orden del tamaño de un átomo. Lo complicado entonces es construir detectores que puedan discriminar el ruido. Actualmente están en pruebas 6 centros que intentan detectar estas ondas a lo largo del mundo.El LIGO es el más importante, pero están teniendo muchos problemas con el ruido. Por eso la NASA y la ESA se han unido en un proyecto (LISA) para lanzar 3 satélites en el 2011 para intentar detectar las ondas gravitacionales eliminando así el ruido que genera la superficie terrestre.


Si conseguimos entender la naturaleza de la gravedad quizás podamos comenzar a construir coches voladores como los de las pelis. ¿Creando motores que generen ondas gravitacionales?

Mini Ordenador

Vaya aparatitos que inventan los japoneses. Se trata de un ordenador diminuto como podéis ver en la foto. Cada cubito de esos es un ordenador diferente. Yo lo veo especialmente util para gente que se tiene que desplazar mucho, en vez de tener un portátil te compras un cubito de estos y allí donde haya un monitor puedes usar tu ordenador. Ya veremos si llega por España algún día o se queda en una simple curiosidad. Via I4U y Microsiervos

Principios de programador

Principios de programacion según Daniel Read, los he encontrado por mi disco duro. No recuerdo de donde los saqué. Pero me ha venido bien recordarlos y supongo que a todo programador le vendrá bien por muy evidentes que parezcan :)


Principio del carácter personal
Escribe tu código de forma que refleje las mejores partes de tu carácter

Principio de la estética
Busca la elegancia y belleza en todo aspecto de tu trabajo.

The Principle of Clarity
Equipara la claridad y la corrección. Dando claridad al código conseguirás de forma implícita la corrección.

Principio de la forma
La forma visual del código debe comunicar de forma rápida la estructura del programa a lectores humanos

Principio de lo explícito
Siempre lo explícito es mejor que lo implícito

Principio del código auto documentado
La mejor documentación del software es el código en si mismo. Intenta que no hagan falta poner comentarios, y donde te sea imposible añade comentarios.

Principio de los comentarios
Comenta con frases completas

Principio de los supuesto
Comprueba siempre las cosas una y otra vez. No supongas demasiadas cosas.

Principio de la interacción
No hagas que los usuarios se sientan estúpidos.

Principio de la vuelta atrás
El mejor momento para hacer buen código es cuando lo estás escribiendo.

El principio del dinero y el tiempo
Un verdadero profesional no desperdicia el tiempo y el dinero haciendo trabajos de baja calidad

Don't make me think

Ya tengo el famoso libro de Steve Krug sobre la usabilidad de la web. Realmente genial, mucho mejor de lo que esperaba. Se lo recomiendo a todo el que tenga una página web. Con este libro estoy viendo los miles de fallos que puede cometer un diseñador de webs sin darse cuenta. La filosofía principal que nos muestra el autor es que no debemos Hacer Pensar a los usuarios lo más mínimo. No deben pararse a pensar algo tan trivial como ¿dónde esta tal o cual sección? simplemente deben intuir donde está la sección. Esto es muy complicado de conseguir aunque parezca trivial a simple vista. En el libro "No me hagas pensar" editado por Prentice Hall aquí en España encontraremos muchos consejos que nos ayudarán a conseguir que el usuario piense poco ;), y encuentre lo que quiere en nuestra web.

The Matrix

En The Matrix la primera película quedó claro que podía existir dos mundos, uno imaginario y uno real. Este mundo imaginario ha sido creado a partir del mundo real, por lo que la siguiente pregunta que asalta a mi mente es la siguiente: ¿Podría crearse otro mundo imaginario dentro del imaginario?. Es decir si estamos en Matrix podriamos crear otro mundo imaginario en el que puedan vivir otros seres. En este caso sería desarrollar un programa de vida artificial con nuestros ordenadores en casa. Si consiguieramos desarrollar un entorno con seres suficientemente inteligentes estos sería capaces de crear otro mundo. Y dentro de este se podría desarrollar otro mundo etc... y así ¿hasta cuando?.

¿Si pudiesemos ir cambiando entre los diferentes mundos como sabríamos en que momento estamos en el mundo de más "arriba", es decir, ¿que mundo se puede considerar como real? En terminos informáticos esto se podría ver como un programa recursivo en el que vamos bajando cada vez un nivel recursivo hasta la condición de parada. ¿En el caso de los mundos que se van creando cual es la condición de parada? ¿Podríamos ir creando mundos hasta el infinito?

Como ejemplo para los que hayan visto la segunda parte de Matrix, imaginemos que el arquitecto de Matrix (Es decir, un programa superavanzado, con una inteligencia artificial extraordinaria). Podría hacerse una copia de él mismo, creando un nuevo arquitecto dentro de matrix. Este nuevo arquitecto pensando que Matrix es el mundo real podría programar/crear desde Matrix otro programa de simulación que se llamase por ejemplo Sub-Matrix y hacer que las mentes de los hombres pasasen a vivir a este Sub-Matrix. En este Sub-Matrix se puede crear otra copia de un Arquitecto y crear un Sub-Sub-Matrix etc...

Esto nos lleva a la paradoja de que no podemos conocer realmente en que nivel estamos, además de no saber si puede realmente terminar alguna vez la creación de mundos. Seguramente el límite estaría en la potencia de los ordenadores que lo están simulando todo. Esto no solo nos lo preguntamos hoy en día, es una pregunta que se hacen filósofos y lógicos de todas las épocas. Si queréis saber más leed a Descartes.

Como habréis podido comprobar en Matrix Revolutions esta posibilidad aquí mostrada se descarta, queda claro que solo hay dos mundos. Yo creo que habría sido mucho más interesante como lo acabo de plantear pero quizás habría estado demasiado cargada de filosofía. Aunque la verdad es que hacer Revolutions peor es difícil.

De compras

Este finde estuve de compras en la Fnac . Me encanta este lugar y nunca puedo evitar comprarme algún libro o cualquier tonteria. Me compré un reproductor de DVD para la tele, un Philips 625 con un diseño elegante y muy pequeño. Lo he estado probando con algunas pelis, también he probado a leer Mp3 y cds de fotos. Hace muchas pijadas excepto leer DivX. A ver pelis con 30" estas navidades, la primera que veré será el Señor de los Anillos, Las Dos Torres edición especial que ha comprado mi hermano. (Por cierto la edición de coleccionista es más cara que un reproductor de DVDs, me parece un poco fuerte por muchos extras que lleve)

También me he comprado un disco donde viene la Sonata K448 para dos pianos de Mozart que comentaba en el post anterior. Llevaba mucho tiempo buscándola y por fin la encontré en la sección de sonatas para piano de Mozart

Ya no compré más cosas pero se me encaprichó un libro como siempre :). "A hombros de Gigantes" de Stephen Hawking, pero costaba 30 euros y decidí dejarlo para otra ocasión. Ya comentaré más cosas sobre este libro más adelante.

Efecto Mozart

Siempre me ha llamado la atención este efecto mediante el cual se supone que aumentan nuestras capacidades cognitivas oyendo ciertas obras musicales de Mozart. Según un estudio que se llevó a cabo a finales de los 80 "Después de haber escuchado durante 10 minutos la sonata K448 de Mozart, grupos de estudiantes mejoraron temporalmente su razonamiento espacio-temporal en cuantías de 8 o 9 puntos, medido mediante pruebas objetivas de coeficientes intelectuales".


El estudio se realizó sometiendo a otros grupos a escuchar otros tipos de música etc. Se llegó a la conclusión de que las músicas repetitivas atrofian la mente (Bacalao, Hardcore, Techno seguro que atrofian ;) . Miesntras que la sonata K448 de Mozart y los conciertos número 3 y número 4 para violín de Mozart incrementan nuestras capacidades durante cierto tiempo. Sobretodo las capacidades en cuanto a razonamiento geométrico y matemático. Si sois curiosos más datos sobre el efecto Mozart. Para el próximo exámen que tengáis de mates a escuchar a Mozart.

Número áureo

El Número Áureo es 1.618033 y aunque a primera vista no nos llame la atención es un número con el que convivimos día a día. Representa una relación de proporcionalidad casi mágica que podemos encontrar en muchos aspectos de la naturaleza y que los humanos hemos adaptado a nuestros objetos. Vamos a intentar explicar el concepto muy muy informalmente. Que me perdonen los puristas.
Para averiguar si un objeto cumple con unas proporciones áureas simplemente tenemos que dividir su lado más largo entre el lado más corto. Por ejemplo si nuestra televisión mide 50 cm de ancho por 30 cm de alto. Dividiendo tendremos que 50/30 = 1.66 lo cual se acerca bastante a la sección áurea. Si os dedicais a hacer esto con vuestra tarjeta de crédito, carteles publicitarios, posters, fotos, libros etc... veréis como se acercan sospechosamente a esta sección áurea. Quizás sea porque nos produce una sensación de armonía.
Históricamente esta proporción también la encontramos en el Partenón, en la catedral de Notre Dame, en la obra de Leonardo da Vinci etc... Y en la naturaleza la podemos encontrar en la forma como se disponen las pipas de un girasol, o en las proporciones de ciertas galaxias. ¿Que extraña relación puede hacer que dos entes tan lejanos se parezcan? Realmente apasionante.

Programas GNU en windows

Curioso proyecto que está muy interesante donde podremos encontrar montones de programas GNU organizados por temas que funcionan en Windows. Me parece muy bien la iniciativa para ir dando a conocer el software libre a la gente más reacia a pasarse a Linux. Desde la página de categorías podréis acceder a casi cualquier tipo de programa que podáis necesitar. Programas de diseño gráfico, juegos, sistemas gestores de bases de datos, exploradores como el Mozilla etc...

Truquillo en C

Este post quizás sea un poco durillo para los que no programen en C, pero os ará ver la gran potencia de la aritmética de punteros y de que forma nos puede solucionar la vida en una sola línea de código. Vamos a analizar las siguiente sentencia:



*strrchr(linea, 'n') = '0';

Sabiendo que strrchr lo que hace es buscar desde el final en la cadena pasada como primer parámetro el carácter pasado como segundo parámetro y devuelve un puntero al char de la posición donde se ha encontrado. Si miramos en el API de C encontraremos lo siguiente:



char * strrchr (const char *string, int c);

Ya podemos saber la operación que realiza la primera sentencia propuesta. Buscará en la linea la primera n desde el final y devolverá el puntero a char que apunta a esa dirección pero en la misma operación a este puntero le podremos asignar el nuevo valor 0. En definitiva como podéis observar estamos sustituyendo la última n por un 0 en una sola linea de código de C. Quizás sea mucho más sencillo hoy en día usando un metodo replace en cualquier lenguaje orientado a objetos, pero en C controlamos realmente lo que está sucediendo. En un lenguaje de alto nivel no sabemos realmente como está implementado el método replace.

Nemo encontrado

Aun no he visto la peli de Nemo pero quiero if a verla sin falta. Me encantan las pelis de pixar. Según me han comentado esta vez no han bajado el listón. Via Jorge he encontrado a Nemo jeje ;)

Construye tu propio Segway


He encontrado esta curiosa web donde un Americano aburrido y con mucha cabeza ha construido su propio Segway, en la web explica en teoría como podemos crear el nuestro. Yo lo veo un tanto complicado para mis conocimientos de mecánica. Para el que no lo sepa un Segway es un "patinete" como el de la foto que lleva una serie de circuitería en los motores de forma que controla el equilibrio del sistema de forma automática. Esto si lo pensáis no es tan complicado de conseguir:

if(inclinacion_derecha>30)
VelocidadMotor(-20)
if(inclinacion_izquierda>30)
VelocidadMotor(+20)

Esta sería la base para mantener el equilibrio, para hacer que funcione de forma más suave podemos añadir más condiciones o incluso crear un sistema fuzzy que lleve el control del sistema de forma automática. El problema es que estas instrucciones de tienen que ejecutarse muy rápidamente, transferirse los datos de sensores a CPU y de CPU a los motores en el mínimo tiempo posible sino acabaremos en el suelo. Si quereis empezar a investigar con robots balanceantes construir uno con Lego es un buen comienzo.

No-IP

Hoy he descubierto los servicios que ofrece No-IP de forma gratuita. El tema es que te puedes hacer redirecciones a una pagina web que tengas o a un servidor que tengas montado en tu propio ordenador. La ventaja que tiene es que no necesitas tener una Ip fija ya que te bajas un pequeño cliente que cada vez que te conectas se comunica con sus servidores y les da tu nueva Ip. Es la opción más barata que he visto para poder llevar una web en mi propio ordenador sin tener Ip fija. Solo tardaréis 5 minutos es probarlo, vale la pena. Yo ya me he creado http://torek.no-ip.com que estará disponible solo cuando yo esté conectado a internet y también un http://kirai.no-ip.org que redirecciona a este blog.

Lenna la primera chica del ciberespacio


No habéis visto miles de veces la cara de esta chica en ejemplos de programas de diseño gráfico, libros etc... Pues resulta que fue la chica playboy en noviembre de 1972. Parece ser que durante años ha habido cierta polémica por el origen de la foto en el mundillo de los ingenieros, pero al final se ha convertido en una especie de estándar para probar y ejemplificar en temas de gráficos. Si estáis interesados en el tema podéis leer la historia de la foto y ver la pinta que tiene actualmente Lenna ;) . Incluso podéis ver la versión completa de la foto que seguramente no conozcais, a no ser que tengáis la playboy del 72.

Concurso de PHP


Me entero que hace poco hubo un concurso de programación en PHP , ya ha terminado pero en la web encontraréis las aplicaciones ganadoras con su código fuente incluido. La aplicación a realizar consiste en hacer un sistema de mantenimiento de Tutoriales mediante la web, con Php. Hay algunas soluciones enviadas realmente potentes, que demuestran lo que se puede llegar a hacer con php en muy poco tiempo.


Trabajé con php hace un par de años y ahora mismo estoy con JSPs y Servlets de Java con los que se pueden hacer cosas mucho más potentes pero para realizar cosas sencillas son un poco coñazo. Si queréis hacer una página personal php, si tenéis que hacer una web corporativa, o una aplicación web interna para una empresa supongo que con tecnología Java es la mejor opción tanto por temas de seguridad como por su arquitectura fácilmente escalable. Me agradan ambas tecnologías, eso sí, ASP y ASPx de Microsoft apestan.