Posts encontrados en Mayo, 2005

May 05 31

Hiperpaginación o thrashing, del control al caos

Tiempo estimado de lectura: 2,36 minutos

¿Alguna vez sus máquinas se les pusieron mortalmente lentas y el led del disco no paraba ni aunque la desenchufaran? Bueno, acá les intentaré explicar de la forma más sencilla que puedo, qué es lo que pasa en estos casos TAN desagradables.

Los sistemas operativos multi-procesos, deben administrar la memoria de la mejor manera posible para que todos los procesos coexistan de forma equilibrada. Para esto, el SO. usa una técnica llamada paginación, que divide la memoria en distintos frames o páginas que le son asignados a cada proceso.

Todos sabemos que la memoria no es un recurso ilimitado, por esto es que existe la memoria virtual. Esta memoria virtual, no es más que una extensión de esas páginas en otro dispositivo de almacenamiento que no sea la memoria Principal (por ejemplo el disco rígido). Esto es lo que se conoce comúnmente como swaping; utilizar otro dispositivo de almacenamiento como extensión de la memoria principal (lo hace Photoshop cuando trabaja con imágenes grandes).

Ahora bien; cada proceso, tiene un número mínimo de frames o páginas que requiere que estén en la memoria principal para funcionar de forma correcta; por lo que no funcionaría si le falta alguno de esos espacios de memoria. Cuando esto sucede, el proceso, llamémosle A, envía un error de paginación solicitando que se le dé más espacio en la memoria principal. Hasta acá funcionaría todo bajo control.

¿Qué pasa cuando no tenemos disponibles esa cantidad mínima de memoria que necesita este proceso A?, tendríamos dos posibilidades: la primera sería quitarle alguna página a otro proceso B que se esta ejecutando para dársela a este. La segunda y que no viene al caso, sería dejar en cola de espera el proceso hasta que haya memoria suficiente, lo cual podría esperar eternamente sin resultados.

Supongamos que le quitamos páginas en memoria al proceso B y las bajamos al disco rígido haciendo swaping para que se cumpla que haya disponible el mínimo necesario para que nuestro proceso A funcione. Todo fantástico con el proceso A; pero resulta que el proceso B manda un error de paginación ya que necesitaba que sí o sí estén en la memoria principal esos frames que le quitamos. Otra vez corremos con la disyuntiva de que podríamos hacer.
Supongamos que somos un sistema operativo tipo Windows y le bajamos de nuevo al proceso A algunas páginas al disco rígido para dárselos al B; el B estaría fabulosamente bien, pero el A se moriría de bronca y le haría un piquete al SO con una bandera de “error de paginación”.

De esta forma, el procesador se mataría paginando y bajando de la memoria principal al swap y viceversa para que los dos estén felices… pero ninguno lo estaría. Ni el proceso A ni el proceso B que tardarían años en terminar sus funciones, ni el SO que estaría matando al microprocesador en acciones inútiles ni muchos menos nosotros que veríamos como la PC esta casi muerta con el procesador al 100% y el led del disco estaría rojo en todo momento.

Imaginen por un momento esta situación cuando tenemos más arriba de 50 procesos simultáneos. Sería un verdadero quilombo.

Es por eso que mientras mayor es el grado de multiproceso más probabilidades hay que nuestra PC esté en estado de thrashing. Este gráfico podría ayudar a entender el moco que sería.

thrashing - hiper paginacion

Ahora ya lo entienden al Windows, cuando hace esto o simplemente cuando dice que hay un error de paginación y unos números que nadie podría entender. No es tarea fácil ser un sistema operativo. :P

May 05 30

Face analyzer, “Who am I?”

Tiempo estimado de lectura: 0,49 minutos

Javier me ha pasado un meme bastante original. A pesar de lo que puedan pensar, no me gustan los memes (prometo que este es el último por un buen tiempo) pero este me resultó interesante bajo el punto de vista técnico y gracioso desde el punto de vista social.

Se trata de un sistemita que biometriza un retrato y te dice aspectos de tu personalidad de acuerdo a esos parámetros biométricos

Ver imágen de mi resultado

Y respondiendo el meme:

¿Cuántas fotos tube que mandar?
A la 4ta foto recién me pudo analizar

Estoy de acuerdo con:
Risk: Por lo gral no me gusta tomar riesgo… voy sobre lo seguro :P
Ambition: Suelo ser ambicioso con lo que me gusta
Inteligence: 6.7/10 si… creo que por ahi va :)

No estoy de acuerdo con:
Gay Factor: si bien es bajo, crei que lo tenía más claro :O
Income: Pucha… estaría bueno…
“You may enjoy using drugs to escape reality and explore different perspectives.” Jajaja… si, la cara me vende… :P

¿A quién le paso el meme?
A todos los que se creían que yo era drogadicto…

Después de ver mi resultado seguí haciendo pruebas :P

May 05 27

A los memes me remito.

Tiempo estimado de lectura: 1,04 minutos

Me tiraron la bocha y me hicieron chanta cuatro, no me puedo zafar y tengo que volver a arrimar el bochin. Aunque sigo pensando que es una trampa de las discográficas para deschabar a todos los piratas. Que ironía ¿no? Los piratas denunciando a piratas en una cadena “inocente”…

El culpable fue Fede que me revoleo este meme tan famoso y que esta en post de todos. Va a ser dificil pasarlo ya que casi todos lo hicieron.

Tamaño total de los archivos de música en mi PC (díscos rígidos):

WMA 26 archivos - 87,4 MB (91.742.208 bytes)
MP3 1820 archivos - 3,98 GB (4.277.600.256 bytes)

Ultimo disco que me compré:
Los Hermanos Mattar, lo compre por 1,99 pesos en Musimundo hace más de dos años (creo que fue el peor clavo de mi vida en lo que a música se refiere).

Canción que estoy escuchando:
El rito, del trabajo 11 episodios sinfónicos de Ceratti.

Ultimo tema/s “Adquirido/s” (o en progreso :P):
MOBY - Hotel (2005)
MOBY - Dream About Me

5 canciones que escucho un montón o que tienen algún significado para mí:

  • Sentimental mood (John Coltraine - Duke Elington)
  • I saw her standing there (The Beatles)
  • El arriero (Atahualpa Yupanqui)
  • Zamba por vos (Los Chalchaleros)
  • Unchained Melodies (Version de Elvis Presley)

5 personas a las que les paso el testigo:
* Pvncho (http://1pato.blogspot.com)
* Osvaldo (http://untitledlog.com)
* Merovingio (http://seguridadtotal.blogspot.com)
* N@no (http://andalaosa.com.ar)
* Gabriel (http://gatodegrandesbotas.com)

También se los paso todos aquellos que no tienen blog, y me leen. Dejen un comentario en este post respondiendo este meme.

May 05 26

Tip para el manejo de rangos de fechas DATETIME

Tiempo estimado de lectura: 0,53 minutos

Los que trabajamos en PHP conocemos que es algo engorroso trabajar con fechas sino es con alguna clase hecha que se encargue de todo. Pero aveces no encontramos la que necesitamos.

El formato timestamp de unix es sencillo de usar pero limitado en el rango que abarca, este va desde 1970 hasta el 2038 en Windows y va desde 1901 hasta 2038 en Unix. Por lo que trabajar con fechas anteriores o posteriores da errores.

Para esto, hay varias soluciones que van desde librerías con timestamps más amplios hasta trabajar con otro formato como por ejemplo el DATETIME de MySQL.

Este tip apunta obtener los registros cuyo campo “campoFecha” en formato DATETIME, está entre un rango de años determinado.

Para sacar registros cuyo campo ‘campoFecha’ está dentro de un rango que va desde el 1789 hasta el 2000 podríamos hacerlo simplemente de este modo:

SELECT * FROM tuTabla WHERE DATEDIFF('1789',campoFecha) < 0 AND DATEDIFF('2000',casmpoFecha) > 0

DATEDIFF('fecha1','fecha2') saca la diferencia de la primer fecha respecto a la segunda. Por lo que si la fecha1 es mayor a la fecha2 el número da positivo y, por el contrario, si fecha1 es menor a fecha2 el número resultante da negativo.

Entonces, si tenemos que el registro tiene una fecha mayor a 1978 y esa fecha es menor a 2000, lo selecciona. Se pueden usar también >= o <= para incluir la fecha límite.

Lamentablemente, la función DATEDIFF funciona a partir de la versión MySQL 4.1.1. y muchos de los servicios de hosting actuales disponen de versiones anteriores de este motor de base de datos.

Entonces una de las alternativas para versiones de MySQL inferiores podría ser la siguiente:

SELECT * FROM tuTabla WHERE TO_DAYS('1978') - TO_DAYS('campoFecha') < 0 AND TO_DAYS('2000') - TO_DAYS(campoFecha) <= 0

TO_DAYS('año') devuelve la cantidad de días desde el año 0 hasta ese mismo año. Por lo que la diferencia daría positivo o negativo según los valores restados.

May 05 25

Star Wars Episodio III - Mi opinión

Tiempo estimado de lectura: 1,07 minutos

La he visto y me sorprendió, es una de las cualidades que me gustan cuando veo una película. La historia es impecable, se notó el esfuerzo que hicieron para unir todos los cabos sueltos y criticables y lo lograron con creces. Desde el diseño de las naves hasta la morfología de las razas todo concuerda y hasta se dieron el lujos de incorporar nuevas.

No comparto con mi amigo Osvaldo la incongruencia en la tecnología; se han esforzado (y se notó) para que todo quede en una coherencia que superó mis espectativas. Desde la mano de metal reemplazando la mano de anakin (la de luke era mucho más humana) hasta el diseño del sable lazer de anakin que luego sería entregado a Luke por Obi-Wan pasando por la escena de Vader contemplando la estructura de la estrella de la muerte (los tableros son iguales a las otras).

Lo que no me terminó de cerrar fueron en general cosas de menor importancia, como abusarse en la sobrehumanidad de los protagonistas en los ríos de lava, o luchando por barandillas mas angostas que un pie humano o el absurdo incendio del Coronel Groevius echando fuego por los ojos. Lo que si es un poco menos aceptable fue la ceguera del consejo Jedi ante la transformación de Anakin.

Por lo pronto es una película que me sorprendió, me gusto y me hizo sentir cosas, tal como lo hicieron la IV, la V, y la VI. Esto reafirma a Star Wars como la mejor zaga de ciencia ficción de todos los tiempos.

Esta es mi apreciación 30 minutos despues que salí del cine.

May 05 24

Casa nueva para eleZeta

Tiempo estimado de lectura: 0,21 minutos

Ya lo había previsto hace unos días atras, me mudaría de hosting. El primer cambio groso que notarán, son las URL usables, luego viene la velocidad y luego la estabilidad. Iré corrigiendo errores a medida que salgan.

El downtime creo que estubo rondando lo esperado, no se si llego a estar 15 minutos caído el blog. Les pido a los visitantes que error que vean, por favor me lo reporten para poder solucionarlo, sin duda saldrán muchos.

Saludos y bienvenidos a mi nueva casa !! :)

May 05 22

Una apuesta con sabor a victoria

Tiempo estimado de lectura: 0,36 minutos

boca juniors vs. river plateNo me gustan demasiado las apuestas, por lo general no las acepto. Pero cuando JEL me lo propuso, me pareció genial la idea. Hoy domingo 22 de mayo se jugó el partido del superclásico entre Boca y River; todo el pais se paraliza entorno a este espectáculo.

Ambos equipos venían cuesta arriba, aunque es un superclásico y es imposible guiarse por eso a la hora de conjeturar resultados.

La apuesta consistía en que si ganaba river yo pondría en el header de mi blog un banner x diseñado por JEL, pero si Boca era el triunfador (como lo fue) él pondría el banner que yo le hice.

Me gustó ver como cumplió la promesa al pie de la letra, quizá con esto se cure de tirar por el excusado tanta dignidad y deje de hacer apuestas.

GRACIAS BOQUITA POR UNA NUEVA ALEGRÍA !!!

May 05 20

Mudanza de eleZeta

Tiempo estimado de lectura: 0,31 minutos

Estoy en un período de cambios; ésto, lejos de ser una metamorfosis planteada como la de Franz Kafka, es un cambio de aire podria llamarse. Quizá esta página se caiga por algun tiempo, no son problemas de hosting, por el contrario son soluciones.

Me estoy por pasar a un hosting pago despues de casi un año de traqueteos en servidores “gratuitos”. No se crean que es un cambio de hosting solamente; sino también de filosofía, muchos saben por qué lo digo.

Pero como todo tiene una etapa y la he alcanzado, he decidido mudarme. Intentare que el down time sea el menor posible; ¿pero saben como es esto no? Asi que desde ya mis disculpas si dependen TANTO de mi blog como para pegarse un tiro…. :P

May 05 18

Odisea de un Operador/Administrador de un canal de chat IRC

Tiempo estimado de lectura: 1,21 minutos

no place like 127.0.0.1Hace unos días atrás un compañero de la facultad, me pasó por email la dirección de un artículo en DiarioTi sobre una odisea entre un administrador de un canal de chat en IRC y un “hacker”. Es realmente IMPERDIBLE.

Muchos de nosotros tubimos nuestro tiempo en el IRC, y conocemos varias anécdotas; pero como esta muy pocas. Para los que no sepan que es IRC (Internet Relay Chat) es un protocolo estándar de chat.

Aparentemente entra un “hacker” al canal acusando que uno de los operadores lo baneó sin razón aparente (hasta ahí nada nuevo, siempre pasa). Ante la parsimonia del operador, este supuesto hacker le pide la dirección de IP a este operador para formatearle el disco con un supuesto programita que se había hecho (¿pedir la dirección de IP para hackear?). Entre risas y carcajadas este operador le da su IP, pero también la de todos; pues ésta era la IP privada del servidor local o localhost (127.0.0.1).

Contento y triunfante el hacker empieza su fechoría, pero no la completa, pues se cae del chat súbitamente. Al rato entra acusando que no podía hackear la máquina del operador porque éste tenía un firewall, que si era “machito” que lo desactive (¿huh?) Este cansado, le dice que ya lo desactivó. Y el hacker sigue su fechoría.

Mientras cumplía su fechoría, iba relatando cómo sus unidades se estaban formateando, hasta que cuando iba por el relato de la unidad C… vuelve a caerse para nunca más volver.

Si este hacker hizo lo que pensamos, formateó su propia máquina o en el peor de los casos, el servidor de internet local basado en Windows con algún programa de formateo remoto.

Realmente existen estos individuos. He lidiado con varios quizá menos drásticos, pero igualmente graciosos.

Acá esta el log completo de la cosa contada por el mismo operador del canal.

¿Uds. Se han divertido con alguna de éstas?

May 05 12

Desarrollo del Sistema Web para Córdoba Weblogs

Tiempo estimado de lectura: 2,03 minutos

Cordoba WeblogsSe está armando un revuelo, aunque lógico también innecesario, por la larga espera del nuevo Córdoba Weblogs. Digo lógico porque parece dar la sensación de que no se está haciendo nada y digo innecesario, porque carece de sentido apurar al grupo de gente que está a cargo del desarrollo teniendo en cuenta que no existe remuneración en el proyecto.

Algunos podrán decir con razón que quieren aportar ideas, para esto se abrieron ya muchas discusiones en distintos post que han servido de mucho. Es cierto, que no pueden saber si se tuvieron en cuenta o no, y no se sabrá hasta que vayan saliendo a la luz; pero si les diremos que tenemos en cuenta la factibilidad de cada una de ellas.

He visto reacciones de todo tipo, gente que espera impaciente, gente que se cansó de esperar, gente que quiere armar algo en paralelo, gente que aporta ideas, gente que no lo hace; en fin, por suerte, de todo tipo.

A los impacientes les diré que tienen razón, pero que sepan entender; laburamos sin ningún interés personal, tan sólo por el hecho de hacer algo por CW ya que nos sentimos parte de la blogósfera cordobesa. Aunque somos concientes que no podemos dejar nuestras responsabilidades por esto.

A los que se cansaron de esperar, no tengo mucho para decirles más que lo que les digo a los impacientes; verán algo cuando haya algo para sacar ala luz.

A los que quieren hacer algo en paralelo, les digo que están en su derecho en hacerlo, pero si lo logran hacer, sólo dañaría a la comunidad; la dividiría innecesariamente. Tengan en cuenta que hace meses que estamos en esto y requiere de diseñadores, de programadores, de ideas y de tiempo libre; no se hace de un día para el otro. Asi que sólo les diría que lo piensen bien.
Continuar leyendo »