jueves, marzo 27, 2008

[Personal] Hoy se recibió mi primo Ezequiel

Hoy se recibió mi primo Ezequiel de Ingeniero Agrónomo. Quiero felicitarlo por este medio, hizo la carrera al día en 5 años (con 23 años cumplidos) y obtuvo una nota de 9 Distinguido en su última materia. Ahora solo falta ver los resultados del proyecto final sobre las plagas en la soja.

¡¡¡Felicitaciones Eze!!!

Ahora queda encontrar un buen trabajo y siendo una persona tan franca y noble no dudo que lo encuentres pronto.

Cuando baje las fotos subo algunas al blog de lo que fue la recibida, hasta excremento de cerdo le tiraron.

Saludos

Etiquetas:

[Personal] Hoy tuve vergüenza de ser argentino

Solo lean las declaraciones de Luis D’Elía:
Frases como:
  • "Odio a la puta oligarquía, odio a los blancos"
  • "Lo único que me mueve es el odio contra la puta oligarquía. No tengo problemas en matarlos a todos"
  • "Los odio. Odio a las clases altas argentinas que han hecho tanto daño, que han matado a tanta gente en nombre de una sola bandera que es la de su propia ganancia"
  • "Sépanlo de mi boca. Ustedes piensan que nosotros somos inmundicia, escoria, barbarie. Tengo el mismo odio que nos tienen ustedes a nosotros los del norte, lo único que me mueve es el odio contra ustedes"

Todo esto después de protagonizar incidentes y gopear gente en la Plaza de Mayo cuando la gente se manifestaba en forma pacífica.

Después de todo lo que está pasando con el gobierno y el campo y como se percibe en el exterior puedo decir que hoy me da vergúenza ser argentino.

Etiquetas:

viernes, marzo 21, 2008

[Estudio] S1 Core: Arquitectura I - S1_top

Empecé a investigar la estructura del S1 Core comenzando por el bloque exterior, es decir el que se comunicaría con los demas circuitos integrados en la placa o PCB.
Este bloque exterior esta formado por los siguientes archivos escritos en Verilog:
  • t1_defs.h: Se definen las constantes usadas por OpenSPARC T1
  • s1_defs.h: Se definen las constantes usadas por S1 Core
  • s1_top.v: Código donde se hacen las conexiones entre los bloques "sparc", "spc2wbm", "rst_ctrl" y "int_ctrl"
  • sparc.v: Definición del núcleo SPARC
  • spc2wbm.v: Código donde se implementa un "puente" de un núcleo SPARC del OpenSPARC T1 hacia una interfaz maestra que hace uso del protocolo de interconexión Wishbone
  • rst_ctrl.v: Este bloque implementa el Controlador de Reset usado por el S1 Core para despertar el núcleo SPARC del OpenSPARC T1; este comportamiento fue obtenido al hacer ingeniería inversa de las formas de onda del OpenSPARC T1
  • int_ctrl.v: Implementa el Controlador de Interrupciones usado por el S1 Core para detectar si algún perisférico produjo una interrupción
Utilzando el OpenOffice.arg Draw realicé un gráfico describiendo este bloque:



Las entradas al bloques son:
  • sys_clock_i: Reloj del sistema
  • sys_reset_i: Reset del sistema
  • sys_irq_i: Pedidos de interrupciones. Son 64 en total
  • wbm_ack_i: Entrada para la petición del bus Wishbone
  • wbm_data_i: Entrada del bus de datos del bus Wishbone de 64 bits
Las salidas del bloque son:
  • wbm_cycle_o: Inicio de ciclo
  • wbm_strobe_o: Requerimiento de strobe (si alguien conoce la traducción de strobe la agradeceré)
  • wbm_we_o: Habilitación de escritura
  • wbm_addr_o: Bus de dirección del bus Wishbone de 64 bits
  • wbm_data_o: Bus de datos del bus Wishbone de 64 bits
  • wbm_sel_o: Salida de selección de 8 bits
En definitiva la función del bloque S1_top son intercomunicar los distintos bloques:
  • Un núcleo SPARC del OpenSPARC T1
  • Un puente entre el núcleo SPARC y un manejador Wishsbone
  • Un controlador de Reset
  • Un controlador de Interrupciones
Para saber más del bus Wishbone en Opencores.org hay información al respecto.

Saludos

Etiquetas: , , , , ,

[Estudio] S1 Core: Versión reducida del OpenSPARC T1 Niagara de Sun

Hace un tiempo Sun liberó el código fuente de su microprocesador OpenSPARC T1 Niagara en código Verilog para que pueda ser estudiado.
Las características de de este microprocesador:

  • Arquitectura SPARC v9 de 64 bits
  • 8 núcleos SPARC
  • 4 hilos por núcleo (ejecución total de 32 hilos)
  • Cada núcleo SPARC tiene un cache de datos, un cache de instrucciones y TLB (translation lookaside buffers) totalmente asociativos para los 2 caches
  • Los 8 núcleos son conectados entre ellos por medio de un "crossbar" hacia un cache unificado L2
  • 4 controladores DRAM que pueden manejar DDR2
  • Controlador J-BUS que posibilita la inter-conexión entre el OpenSPARC T1 y el susbsistema de I/O (entrada y salida)

Descripción Funcional:

  • 8 núcleos SPARC v9, con 4 hilos por núcleo, para un total de 32 hilos
  • 132 Gbytes/sec para la comunicación "on-chip" por medio del "crossbar"
  • 16 Kbytes para el cache de instrucciones primario L1 por núcleo
  • 8 Kbytes para el cache de datos primario L1 por núcleo
  • 3 Mbytes para el cache secundario L2, bancos de 4 bias y cada uno con 12 bias asociativo compartido por todos los núcleos
  • 4 controladores DDR-2 DRAM con una interfaz de 144 bits por canal, dando un total pico de ancho de banda de 25 Gbytes/sec
  • Unidad de punto flotante IEEE 754 compartida por todos los núcleos
  • Interfaz externa J-BUS para entrada salida (I/O) con un ancho de banda pico total de 2,5Gbytes/sec con un bus de 128bits multiplexado entre datos y direcciones
  • Interfaz externa SSI (serial sistem interface) para bootear desde PROM

Pueden encontrar más información en la página oficial OpenSPARC T1

Luego de la introducción del OpenSPARC T1 una persona llamada Fabrizio Fazzino dejó una versión recortada de este microprocesador llamada S1 Core en Opencores con las siguientes características:

1 solo núcleo SPARC v9
4 hilos de ejecución
Interfaz Maestra Wishbone para la comunicación de otro núcleos de Opencores.org

Si tengo tiempo voy a ver si puede empezar a investigar el código de S1 Core para entender su arquitectura y comentarla por el blog.

Saludos.

Etiquetas: , , , , ,

miércoles, marzo 19, 2008

[Personal] Como conseguir tiempo para tus metas personales

Navegando por Barrapunto me encontré con esta entrada en La botella de Klein:

"
"Los obstáculos son esas horribles cosas que ves cuando desvías la mirada de tu meta". -Henry Ford


Uno de los mayores desafíos al tratar de cumplir alguna meta personal es que tendemos a postergarlas hasta mañana, o la semana que viene, en favor de otros asuntos mas acuciantes en el trabajo y en casa.

Desgraciadamente, el mañana nunca llega.

Si quieres cumplir una meta, tienes que empezar con ella hoy. Encontrar el tiempo para dar los pasos necesarios es el problema, por supuesto, mientras llevamos vidas ocupadas y complicadas, y cuando tenemos tiempo, estamos demasiado cansados para hacer cualquier cosa que requiera energía o pensar. Buscamos vegetar en frente de la televisión, o echar una siesta.

¿Así que como encontrar el tiempo para tus metas personales? Eso es lo que el lector Trin preguntó recientemente.

¿Como consigues hacer tiempo? No estoy seguro de donde empezar con mis propias metas, ya que siento que tengo que sacrificar algo importante para cuidarme. Me encantaría conocer tu opinión como padre de 6 niños ¿Qué actividades fueron eliminadas de tu vida diaria para meter tus metas personales?


No puedo darte una respuesta fácil. No hay un solo y pequeño truco que pueda darte para encontrar enormes reservas de tiempo donde puedas perseguir todas las metas con las que hayas soñado. Requiere trabajo, requiere compromiso, requiriere motivación… pero puede hacerse, sin duda. Yo lo hice –a pesar de estar casado, con seis niños, y teniendo dos trabajos hasta hace poco, encontré tiempo para entrenar para una maratón, para trabajar en eliminar mis deudas, para comer más sano, para eliminar el desorden y ser organizado, para levantarme temprano, y mas.

¿Cómo lo hice? De nuevo, no hubo un solo paso que lo llevase todo a cabo por mi, sino una serie de ellos que añadieron tiempo sobrante.

1.- Una meta cada vez. A menudo el problema es que intentamos alcanzar demasiadas metas a la vez. Tenemos una lista de cosas que intentamos realizar, abarcando el espectro: desde jardinería a aprender italiano o ponerse en forma. Puede ser abrumador, y por ello nunca empezamos. O en cambio, puede que empecemos llenos de energía, para después quedarnos sin ella rápidamente, por la extrema dificultad de mantener la concentración y la energía (los dos ingredientes clave para cumplir una meta) para demasiados metas a la vez. Incluso tener dos metas a la vez resulta difícil, si no estás en piloto automático para una de ellas. Por ahora céntrate en una sola meta cada vez. Cuando estés en piloto automático para una, puedes ir a por la siguiente. Calcula al menos un mes para cada meta.

2.- Asegúrate de que realmente lo deseas. No es suficiente con decir, "estaría bien aprender francés" o "molaría hacer yoga todas las mañanas". Tiene que ser algo que realmente desees. Pregúntate a ti mismo por qué quieres alcanzar una meta, y cuanto lo deseas. Conoce tus motivaciones. Es importante hacerlo pronto o no conseguirás tiempo para ella.

3.- Conviértela en tu mayor prioridad.
Todos tenemos multitud de cosas en las que concentrarnos en nuestras vidas, desde la escuela o el trabajo, a la familia o los recados, o varias metas, o compromisos y aficiones o actividades cívicas. Si nos concentramos en todas esas metas antes que en Nuestra Meta, nunca encontraremos tiempo para ella. Solo hay una cantidad limitada de tiempo en un día. En algún momento, tenemos que priorizar y si hacemos de nuestra meta nuestra mayor prioridad, le conseguiremos el tiempo.

4.- Reduce tus compromisos. Soy un gran fan de simplificar la vida –y una de las primeras cosas que deberías hacer cuando la simplifiques es hacer una lista corta de las 4-5 cosas que son más importantes para ti, para las que quieres conseguir tiempo, que amas y te dan alegría. Ya he dicho esto antes pero por dar un ejemplo, mis cosas importantes: son pasar tiempo con mi familia, escribir, leer y correr. Todo lo demás es no esencial. Una vez que has hecho tu lista, deberías reducir algunos de los compromisos no esenciales. ¿Ser miembro del club Harley-Davidson ya no te hace sentir alegre y realizado? Dimite elegantemente. Si reduces al menos algunos compromisos, tendrás espacio en tu vida para las cosas que quieres hacer –incluyendo tus metas personales.

5.- Mantenlo simple. Es importante no hacer tus metas demasiado complicadas. No quieres tener una enorme lista de cosas por hacer para cumplir tu meta. Te verás abrumado. En lugar de eso, concéntrate en una pequeña sub-meta que te lleve hacia una meta mayor. Si tienes como meta invertir para la jubilación, por ejemplo, haz tu primera meta simplemente aprender lo que necesitas saber sobre inversiones. Haz tu segunda meta abrir las cuentas necesarias y transferirles dinero. Después haz de tu meta el hacer ingresos automáticos y regulares y no tocarlos. Otra aproximación es concentrarse primero en crear un hábito que te lleve a tu meta. Si tu meta es ponerte en forma, por ejemplo, céntrate en formar el habito de caminar cada día (o correr, o hacer bicicleta, o lo que sea). Una vez que has formado el hábito, concéntrate en beber solo agua. Después en comer frutas y verduras en vez de tomar aperitivos (comida basura). Y así hasta que hayas alcanzado tu meta.

6.- Mantente centrado. Una de las cosas más difíciles a la hora de alcanzar metas es mantener la concentración en la meta. Es fácil obsesionarse con algo más, y cuando perdemos la concentración, en seguida dejamos de conseguir tiempo para la meta. En lugar de eso, encuentra maneras de mantener la concentración. Pon un póster en la pared, o una impresión en la nevera, o haz de tu meta el fondo de pantalla de tu ordenador. Envíate recordatorios diarios. Coméntalo con los demás, en la vida real, en tu bitácora, y haz que te pregunten sobre ella diariamente.

7.- Reserva tiempo. Bien, este es un paso crucial. Puede que deba ser el número uno de la lista, pero siento que es importante poner las bases con los pasos anteriores. Pero una vez que has puesto esas bases, debes reservar tiempo para trabajar en tu meta. Cualquiera que sea el mejor momento para ti –la primera cosa por la mañana, almuerzo, media tarde, después de trabajar, por la noche. Intenta programar un momento en el que no seas interrumpido por otras cosas “urgentes” (reuniones, llamadas, niños, etc.) y cuando tengas buena energía. Para mi eso es en la mañana, y media tarde es el momento cuando otras cosas llegan para interrumpir tu programa (especialmente cuando trabajo en una oficina) y por a última hora de la tarde (justo después del trabajo para la mayoría de la gente) tiendo a estar un poco cansado. Tienes que encontrar el momento y el tiempo correctos. Designa no menos de 30 minutos, aunque en realidad una hora es mucho, mucho mejor. Dos horas no es algo factible para la mayoría, pero tu programa podría ser diferente.

8.- Conviértelo en tu cita más importante. Ese tiempo reservado que programaste tiene que tener la mayor prioridad. Hay citas que tomamos en serio – una cita con el doctor, o una reunión importante – y haremos todo lo posible para asegurarnos de acudir y no llegar tarde a ellas. “Lo siento, tengo una cita con el doctor a esa hora – no puedo coger el teléfono hasta un par de horas después”. Pero cuando se trata del tiempo en el que trabajamos para nuestras metas personales, normalmente lo dejamos de lado por otras presiones. No dejes que eso pase. Convierte en sacrosanto ese bloque de tiempo en tu agenda y nunca dejes que sea violado.

9.- Muestra que vas en serio. Comprométete. Coméntale tu meta a tanta gente como sea posible y sobre el sacrosanto tiempo programado a ella. Escribe sobre tu meta, y se específico. Piensa en los obstáculos y escribe sobre tu estrategia para afrontarlos. El plan muestra que vas en serio.

10.- Encuentra los malgastadores de tiempo. En la vida de cada persona, hay cosas que pueden ser fácilmente eliminadas sin que representen una diferencia. Cosas que gastan nuestro tiempo sin reportar mucho beneficio. Cosas como la televisión, los videojuegos, tonterías graciosas de Internet, ir de bares, etc. Si puedes identificar esos malgastadores de tiempo puedes liberar tiempo para trabajar en tus metas. Recuerda, si no está en tu lista (ver punto número 4 más arriba), puedes eliminarlo.

11.- Hazlo parte de tu rutina diaria. Esto es importante para mantener el camino a la meta por un largo período de tiempo. Si es una meta que puedes completar en una semana, no necesitas dar este paso. Pero la mayoría de metas que importan son aquellas que necesitan tiempo para completarse, y para ello, necesitarás hacerlas parte de tu rutina. Algunas metas necesitarán ser diarias –esto es, beber agua, o el hacer ejercicio, o quizá eliminar el desorden. Encuentra tiempo en tu rutina diaria donde siempre realices esta actividad, y no te permitas descartarla. Ponla a continuación de algo que ya esté firmemente arraigado en tu rutina –como ducharse o lavarse los dientes, o ir a trabajar- así no lo olvidarás. Para otras metas, una programación semanal podría ser mejor –por ejemplo hacer ingresos semanales o pagar deudas, o


"No lo intentes. Hazlo o no lo hagas. Pero no lo intentes." – Yoda en El Imperio Contraataca.
"
El texto original proviene de Zenhabits en esta dirección.

Saludos.

Etiquetas:

miércoles, marzo 12, 2008

[Personal] Murió Jorge Guinzburg

Hoy me encontré con la triste noticia que murió Jorge Guinzburg. Siempre fui fiel a todo lo que afrontaba ya que para mi gusto es el mejor humorista que conocí. Su picardía y su velocidad mental para los chistes improvisados era su firma.
Lo empecé a ver junto a mi viejo en La Noticia Reblede y lo seguí hasta Mañanas Informales, es una lástima su pérdida.
Desde la wikipedia se puede ver sus éxitos. También está su información en Imdb.


Hoy es una mañana triste.

Etiquetas:

lunes, marzo 10, 2008

[Blogs] Copada no es el primer menéame argentino

Buscando clones argentinos de menéame/digg me encontré con esta lista:


en esta entrada en el blog gracias y de nada! donde el autor especifica que copada.net no es le primer menéame argentino.

Posiblemente al ser un emprendimiento de Mariano Amartino, Martín Varsavsky y Alec Oxenford se haya hecho creer que es la primera.

Lo bueno de todo esto es que hay competencia y en la variedad está la diversión pero lo peor es que los internautas se dispersan y cada sítio se debilita por los pocos usuarios/visitantes, al contrario que menéame.

Saludos.

Etiquetas:

[Ocio] Tenían fin los videos-juegos ochenteros

Si tenes más de 27 años seguro que creciste en los "videosjuegos" o "fichines" por allá de los 80. Bueno, navegando por Chiflame.net encontré esta entrada que me llevó a este enlace:

¿Tenían fin los videosjuegos ochenteros?


No tenía ni idea que tenían un límite y eso que me encanta todo este tema porque me recuerda que después de ir a clases me iba directamente a los "videosjuegos" en donde hice muchos amigos y era el punto de encuentro para ir a jugar a la "canchita del barrio". ¡Cuanto tiempo pasé ahí!
En mi época de primaria no teníamos micro-computadoras, solo algunos tenían un reproductor de VHS y por lo tanto era más popular alquilar películas que jugar a los "jueguitos" en una Spectrum o Commodore 64, por lo tanto los "videosjuegos" y "flippers" era nuestro único divertimento lúdico electrónico.

Saludos.

Martín

Etiquetas: ,

domingo, marzo 02, 2008

[Estudio] Programación Funcional

Navegando por Barrapunto me encontré con este post sobre videos de programación funcional (como Ocaml que había descripto en mi post anterior). Al parecer Microsoft le está dando mucho empuje al lenguaje funcional F# para la programación concurrente (en donde se ejecuta en forma paralela distinto tipos de código) creo que impulsado por los microprocesadores multi-núcleo.
Por lo poco que leí la programación funcional está relacionada con la programación de los Lenguajes de Descripción de Hardware o HDL en ingles como Verilog, VHDL o Altera HDL. Conozco un poco de Verilog y mucho de Altera HDL ya que lo usé para hacer mi proyecto final de carrera y disfruté mucho programando.
Leyendo sobre el microprocesador de la PlayStation 3 (Cell) me enteré que a los programadores se le complica sacarle rendimiento porque su programación es en forma concurrente y hasta hace poco siempre se programaba en forma secuencial, por lo tanto hay poca experiencia en el mercado. Con este tipo de lenguajes funcionales se está atacando este paradigma y en los slices de las presentaciones de los videos hablan que C# 3.0 está incorporando características funcionales.
Se está recomendando Haskell como lenguaje para aprender la programación funcional pero yo prefiero Ocaml por tener la posibilidad de programar con orientación a objetos.
Si les interesa les dejo el enlace de los videos:

Funcional Programming Seminar

Saludos.

Etiquetas: , , , , ,