@ agnasg

agnasg


Sin aviso y sin protesto…

10-06-2012 9:53 AM

Estoy en proceso de mudanza de hosting en estos momentos. Mi nuevo proveedor es bluehost.com. No solamente es más rápido, sino que utiliza cpanel (la herramienta de administración de dominios, ftp, mysql, etc) así que no tengo que atravesar innumerables páginas de publicidad y tonterías cada vez que voy a hacer algún cambio. Si todo sigue bien voy a mudar todos mis dominios a este nuevo servicio (eso sonó raro, tipo porno o tipo hegemonía :s)

EDIT: todo ha funcionado perfectamente, micronosis.com está alojado en su nuevo servidor, y la mudanza de dominios ya comenzó… yayyy!

!continue;

06-06-2012 7:38 PM

Hablando de pruebas este es un ejercicio rápido de lógica simbólica. Es simple, se trata de cambiar las siguientes instrucciones por una construcción elegante. ¿Qué es una construcción elegante? Difícil de decir pero transformar esto en un sólo if y hacer una sola llamada al continue, podría ser un buen comienzo. Esta “cosa” (escrita en php pero puede ser cualquier lenguaje similar a C) está dentro de un loop y debe retornar al comienzo si el string “$link” tiene la palabra “region”, y si no la tiene y la variable $región es true (debe hacer el continue también). ¿Simple verdad? Oh, una dificultad extra, strstr retorna “algo” si encuentra la palabra, y false en caso contrario.
[cce lang=”c” width=”480″]
if (strstr ($link, “region”)) {
if (!$region)
continue;
} else if ($region)
continue;
[/cce]

Esto se transforma en:
[cce lang=”c” width=”480″]
if (!strstr ($link, “region”) && $region)
continue ;
if (strstr ($link, “region”) && !$region)
continue;[/cce]
lo cual fácilmente se puede simplicar en:
[cce lang=”c” width=”480″]
$a = strstr ($link, “region”) !== false;
if ($a != $region)
continue;[/cce] que por supuesto se puede simplificar más.

Bongard problem #38

05-06-2012 12:38 PM

El mismo día fallé en dos tests, de los que abundan en internet y encuentras casualmente o no en las páginas de noticias. El primero es  esta prueba, llamada problema Bongard #38.

Bongard-problem-038

Esta es una prueba como similar (parecida a) las pruebas de inteligencia, en este caso se trata de identificar qué tienen en común los dibujos en todas las cajitas de la izquierda. Bien. ¿Qué tienen en común todas las cajitas de la derecha? Usualmente yo no salgo tan mal en este tipo de pruebas. Por lo general estas pruebas consisten en identificar cuál es el siguiente dibujo en una secuencia. También puede ser el siguiente número en una secuencia de números. Por ejemplo, cuál es el siguiente número en la siguiente secuencia: 1,2,3,5,7,11… La respuesta es fácil, debe ser 13 porque la lista contiene solamente números primos. Pero, ¿y en esta lista? ¿cuál es el siguiente? 2,10,12,16,17… Creo que la prueba original llega hasta el 16 pero la estoy poniendo más fácil. El punto es que no pude resolver en tiempo razonable (¿2 minutos?) la prueba Bongard #38. Y peor aún, abandoné en la pregunta #4 esta prueba de conocimiento sobre lenguaje C.

Parece que estoy de malas con las pruebas últimamente. Pero entonces se me iluminó la mente. ¡Siempre planteo soluciones complicadas para problemas simples.  Es por eso que cuando tengo que resolver algo poco menos que obvio me quedo enredado en elucubraciones sobre los fundamentos de nuestra civilización. Esta mañana estaba tratando de entender por que un plugin de WordPress no capturaba correctamente el valor $_GET[] que le enviaba un selector, y me puse a divagar sobre la forma como el mecanismo SEO, y los permalinks de WP funcionan, navegué dentro del código más interno de WP para determinar donde procesaba estos valores, comencé a deshabilitar uno por uno los otros plugin sospechando que alguno de ellos interfería. Hastiado, hice scroll una líneas hacia arriba, y en la rutina de arriba aparecía el código perfecto que estaba buscando para capturar el valor. Lo más vergonzoso es que era la rutina que invocaba la rutina donde se desplegaba el selector…

Así que lo mismo me pasó con el problema Bongard, estudié complicados patrones, mensajes encriptados, posicionamientos ocultos, etc.. Con la prueba de C comencé a contruir los números  en 32 bits, realizar operaciones bitwise, etc, etc, etc. Al menos me queda el consuelo que en los comentarios de la prueba de C todo el asunto es calificado como ridículo porque al fin y al cabo nadie hace cosas como cuánto es MAXINT+1, o cuál es el resultado de (unsigned short)1 > -1. Esas son operaciones absurdas que no se presentan nunca en un programa y si es así, algo malo está haciendo el programador.Al final el autor escribió una explicación sobre sus motivaciones. Lástima que llegaron muy tarde, ya le había arruinado el día a varios…

¡Error 37!

31-05-2012 4:48 PM

El chiste del tristemente famoso error 37 que genera Diablo cuando no se puede conectar (e impide a los jugadores… jugar) está llegando a niveles insospechados: Niko va a pedir que le devuelvan su dinero,  y rabia incontrolable (¡¡¡ dónde estás los otros malditos 36!!!), y burlas y más burlas!