|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
Who the Hell...?!motagirl2, la culpable de todo esto¿De qué va esto?Temas
¿Más cosas interesantes?Elementos compartidos de motagirl2Quiero estar al dia!- Subscribirme usando mi agregador de noticias ^^- No, gracias, prefiero recibir un mail cuando haya nuevos artículos ;) ¿Dónde está mota?En Anime-Planet En Anobii En Blogspot En DailyMotion En DeviantArt En Facebook En Flickr En GoEar En Hammerfest En LastFM En MySpace En Tuenti En Twitter En Wordpress En YouTube
|
Se muestran los artículos pertenecientes al tema Tech/Geek. Hoy es un gran día. No sólo he tomado café con mi cabeza para debatir y tomar grandes decisiones respecto a nuestra interacción con el resto del universo, sino que poco después (como si fuera una recompensa) el cartero ha llamado a mi puerta con un paquete de parte de Gemma. ¡Y qué paquetazo! Mirad todo lo que había dentro: ¡Un montón de accesorios para mi Diana+! Concretamente, todo lo que va dentro del Diana Deluxe Kit de Lomography (excepto la cámara, puesto que ya la tenía). A saber: Por si teneis curiosidad en ver la imagen de cada cosa, he subido un par de fotos a Flickr con las cositas etiquetadas con su nombre. Hay una foto para las lentes y otra para el resto de accesorios. Y eso es todo, que no es poco =) Desde aquí un superabrazo emotivo y lloroso a Gemma por todas las horas de diversión y entretenimiento que me ha donado desinteresadamente.. ¡estoy deseando usarlo todo!. Y nada, tendré que ir planteándome tejer o comprar un bolsón para llevar tantas cositas jeje ¡Yeah! ¡Lo hice! Conseguí poner yo solita el carrete a la Diana =^_^= Siempre se me dió fatal poner carretes a las cámaras (las normales, de 35mm), así que con esta estaba acojonada de verdad jeje (Recordemos que ayer mismo saqué uno por primera vez) Para empezar, tengo que dar parte del mérito a Lomos y Lomitos y a los estupendos posts de NikkaXXX, el tutorial sobre cómo poner el carrete de 120mm a la Diana+ me ha venido de perlas (aunque hay partes que me he pasado muy mucho por el forro, pero es infinitamente más explicado que este post mío). Podeis verlo aquí. El caso: al final he comprado un carrete de 100 ASA en vez del de 400 ASA que he comprado las veces anteriores, se supone que la única diferencia es que es menos sensible, con lo cuál necesitaré más luz (o más tiempo de exposición). A ver qué sale. He estado a punto de comprarme una película para diapositivas y así empezar a experimentar con el proceso cruzado, pero el carrete valía algo así como un huevo... y todavía soy joven. Pero no lo descarto para la próxima vez, esto se está convirtiendo en mi único hobby: ¡Quiero probar cosas nuevas! ¡Quiero colores molones! ¡Quiero mi propio laboratorio en casa! ¡Quiero...!... . .. ¿Por dónde iba? Ah sí, que todavía estoy aprendiendo a poner carretes, cachis.... Lo primero de todo: Abrir la cámara: Posición de la palanca en open, y estirar hacia abajo. Me hace gracia la Diana+ porque ves una cámara inmensa, la coges y dices... ¡pero si no pesa nada! Y claro, es que está hueca :P Es la gracia de la mecánica. Aquí se puede ver la cámara con el carrete nuevo ya metido (y sin destapar, porque me ha parecido más sencillo hacerlo así), y en mi otra mano, el eje del carrete viejo... que es donde se irá enrollando la película expuesta (aka carrete gastado) Luego, he despegado la protección del carrete (esa pegatina que lo mantiene enrollado). A continuación se procede a poner el eje del carrete gastado en el hueco que queda en el lado contrario al del carrete (es simétrico). Si vas a usar una máscara, es el momento de encajarla en su sitio. En la foto de arriba se aprecia que yo sí que he usado una (eso cuadrado del centro, hará que no quede expuesto todo el negativo, sino que cada foto quedará "aislada" del resto"). Vamos ahora con el carrete: metemos la parte más estrecha en la ranura del eje vacío, y giramos varias veces para comprobar que está correctamente puesto, hasta que nos sale el START o equivalente. Todo esto, por supuesto, con mucho cuidado de que el carrete no se desenrolle, porque en ese caso .... se velará. Y yo se de una a la que probablemente se le hayan velado un par de carretes por los bordes. Aunque como digo, "es parte de su encanto". O eso quiero creer :P Para terminar, ponemos la tapa de la cámara. Dependiendo de la máscara que hayamos puesto (o que no hayamos puesto :P), seleccionaremos un número de fotos (12 o 16) poniendo la flechita apuntando al susodicho. A continuación giramos hasta que veamos pasar por la ventanita roja todos los circulitos de tamaño decreciente (o flechitas, o cuadraditos, o numeritos... depende de la marca. Una vez más, os remito a Lomos y Lomitos) y veamos en ella un maravilloso y flamante número 1. Enhorabuena: primer fotograma. Tu cámara está lista y preparada para capturar un mogollón de buenos momentos :) Y ahora la gran duda... ¿Lo habré hecho bien? ¿Lo habré hecho mal? ¿Se habrá velado por los bordes? Lo descubriremos cuando haya tirado las 12 fotos... que espero que sea pronto porque este es mi carrete especial para San Isildur... y si me sobra alguna, quizá para la playita ;) (Aparte de poner carretes, vivir en el laboratorio y ver a los de Bellas Artes hacer performances extrañas en la uni, hoy también me he conseguido comprar unas zapatillas para mi vestido. ¡Por fin voy a poder estrenarlo!) Hoy, en Las Increíbles Aventuras de Motagirl.... .... ¡mira mami, he sacado yo solita el carrete! ¡Es mi primera vez! He tenido que improvisar mi propio cuarto oscuro (de estos, no de estos otros, ejem) en el cuarto de baño por si acaso el carrete salía torcido de la máquina y tenía que reenrollarlo en su eje, pero por suerte creo que todo ha ido bien (cuando me las revelen lo sabremos) Como veis, los carretes de 120mm son tochísimos (ya os lo comenté), no como los normales. Aparte, me he pillado un dedo y casi me cargo la cámara, pero vamos que parece que ambas hemos sobrevivido bastante bien al proceso. Mañana compraré uno nuevo (todavía no he decidido si será normal o especialito, dejaré que me aconseje el chico de la tienda jeje), pediré algunas copias en papel de mi primer carrete, y probablemente por la noche tenga alguna anécdota tan absurda como la de hoy....porque tendré que poner el carrete nuevo yo solita :S En fin, todo esto y mucho más en... Las Increíbles Aventuras de Motagirl. ¡No acepte imitaciones! Acabo de terminar de leer The Unix Hater’s Handbook (ya hablé de él hace unos días). Encontré otro segmento muy simpático en dicho libro, del que los autores aseguran no ser los creadores (sino que rulaba por el ciberespacio ya a principios de los noventa). Este trozo, creo recordar que en el capítulo dedicado a C++, nos cuenta la hipotética historia de un programador que desea escribir el clásico "Hola Mundo", conforme pasan los años: The evolution of a programmer High school/Junior high #include //Disclaimer: En el bucle donde se compara con ’0’, debería ser con ’barra cero’, pero he tenido que cambiarlo para que no falleciera el resto del blog ahí ;) Estos días estoy disfrutando (gratamente) de la lectura de "The Unix Hater's Handbook", un libro muy majo, gracioso y divertido con anécdotas sacadas de antiguas listas de correo sobre Unix. Además, está en inglés, con lo que me está sirviendo de "precalentamiento" para Anathem jejeje The novice Unix user is always surprised by Unix’s choice of command names. No amount of training on DOS or the Mac prepares one for the majestic beauty of cryptic two-letter command names such as cp, rm, and ls. Y ahora, sacado del mismo libro, una super selección de "chistes" para tu shell, que no tendrían ni puta gracia si se tradujeran a castellano, así que no lo haré. % ar m God Como buena ingeniera, gran parte de mi vida diaria (xD) está relacionada con formulas matemáticas y/o físicas. Muchas veces, a mis profesores no les basta con ver las prácticas hechas en Matlab o similares, sino que quieren unas memorias bonitas sobre ellas. Y cada vez que eso ocurre, tengo pesadillas con la edición de fórmulas. Muchos de mis compañeros utilizan latex y otros el editor de ecuaciones de Microsoft Office. Yo todavía no he hecho el ánimo de hacer funcionar el primero (me da mucha perrería) y sobre el segundo... yo soy de Open Office. Y el asunto, para el que no lo sepa, es que el editor de ecuaciones del Open Office es un truñazo sideral. La antítesis de lo intuitivo y de lo medianamente funcional (por favor, si hay aquí algún fan, que no se me tire a la yugular, gracias). El caso es que viendo el aluvión de memorias que se me presenta esta semana, me he puesto a buscar hasta que he encontrado la solución a todos mis problemas: MathCast. MathCast es un programilla muy sencillo para editar ecuaciones. Ni siquiera necesita instalación: lo abres, te montas tus formulilla, las exportas al programa que quieras, lo cierras, y aquí no ha pasado nada. Podeis descargarlo de aquí, y encima, para que no os quejeis, está publicado bajo licencia GPL. Al principio es un poco extraño, pero en cuanto te aprendes los shortcuts de los operadores que más utilices, todo va como la seda. Además, la interfaz es extremadamente sencilla: botoncitos para añadir nuevas fórmulas, copiarlas o reorganizarlas. Cada fórmula es independiente de las demás, de manera que cuando terminas de editar una, puedes copiarla y pegarla directamente en un documento de OpenOffice Writer (por ejemplo). Además, se pueden guardar los archivos con fórmulas (en formato xml), de manera que puedes retomar el trabajo en cualquier momento o editar fórmulas antiguas. El aspecto del editor es así: una lista con todas las fórmulas que han sido introducidas en el documento abierto, y abajo una línea para editar la fórmula seleccionada. Los operadores pueden meterse mediante un shortcut o haciendo clic en el símbolo correspondiente (bien en la barra rápida de abajo, bien en los menús) La graaaan y principal pega es que (que yo sepa) sólo existe para Windows (buscaré algo similar para Ubuntu porque me he quedado encantada de la vida). Bueno, eso y que a veces descuadra un poco las matrices :P Bonus: acabo de descubrir que también incluye un conversor de unidades super completo :O Ale, pues ya sabeis lo que hace una mujer como yo un sábado a las 4 de la mañana. Le fu. Odio cambiar de móvil. Generalmente la gente daría un pedazo de la oreja por cambiar de móvil frecuentemente, pero yo soy un bichete de costumbres y preferiría seguir siempre con el mismo. Actualmente, tengo un Sony Ericsson Z750i (aún no anciano, sólo madurito). Ya no funciona a la perfección: de vez en cuando se queda "colgado" y tengo que sacarle la batería y reencenderlo, y muy a menudo no funciona el auricular y tengo que usar el manos libres para escuchar algo (recordad esto si me llamais para una conversación privada :P) El caso es que le tengo bastante amor y estoy manteniéndolo todo lo posible. Pero ayer, por una oferta relámpago del programa de puntos de Movistar, me surgió la casi-obligación* de hacerme con otro terminal. Ojeando el catálogo de móviles, el más decente de los que ofrecen por el precio que estoy dispuesta a pagar es este, el Sony Ericsson Xperia X10 Mini (como decían por ahí, el nombre es más grande que él xD) Me ha parecido muy asequible para ser un smartphone, con su Android y toda la pesca, y para qué engañarnos, también es bastante mono. Curioseando en Internet, he visto opiniones de todos los colores: gente que lo ama, y gente que lo detesta a muerte. Y en todas las páginas de gentes expertas lo ponen muy bien. La conversación en mi cerebro viene a ser algo así: - Trozo de cerebro a favor del cambio: Oish... ¡es una monería! Qué chiquitín es... - Trozo de cerebro en contra: Pero tiene una pantalla muy pequeñita... - Trozo de cerebro a favor del cambio: Bueno, da igual, tampoco necesitamos un pantallón. Además, la que tenemos ahora tampoco es más pequeña. - Trozo de cerebro en contra: Y dicen que la batería no dura mucho. - Trozo de cerebro a favor del cambio: ¿Vamos a tirarnos todo el día con el WiFi encendido? ¿No, verdad? Pues eso. - Trozo de cerebro en contra: ¿Entonces para qué queremos que tenga WiFi? - Trozo de cerebro a favor del cambio: Para no tener que cargar con el portátil o buscar un ordenador cada vez que tengamos que mirar el correo en la uni. - Trozo de cerebro en contra: Y además dicen que es un teléfono muy complicado.... Y eso no nos gusta. - Trozo de cerebro a favor del cambio: Venga, por dios, ¡que sabes que eso lo hemos leído en un foro de hoygans! - Trozo de cerebro en contra: ¿Y lo de qué es táctil? Tampoco nos gustan las pantallas táctiles... - Trozo de cerebro a favor del cambio: ¡Pero ahora no encuentras otra cosa, y lo sabes! - Trozo de cerebro en contra: ¡Perderemos la fabulosa feature de espejo de mano! - Trozo de cerebro a favor del cambio: ¡Eso no es excusa! - Trozo de cerebro en contra: ..... - Trozo de cerebro a favor del cambio: A ver si puedes rebatirme esto: ANDROID - Trozo de cerebro en contra: Pero pero pero.... ¡es que no queremos cambiar de móvil ahora! - Trozo de cerebro a favor del cambio: Pero pero... sabemos que habrá que hacerlo antes o después. - Trozo de cerebro en contra: Y_Y Se admiten posicionamientos en los comentarios a favor o en contra del cambio. *Cambiar ahora por casi-gratis, o arriesgarme a perder la oferta y que mi móvil muera en un futuro próximo, con lo cual el cambio ya no sería casi-gratis. Siempre me han gustado los "acertijos" de lógica en los que se ofrecen una lista de objetos para ordenar y otra lista de condiciones para llegar a la solución. Desconozco el nombre "oficial" de este tipo de acertijos, con lo cuál me cuesta encontrar nuevos para resolver. Sin embargo, ahora mismo, leyendo "Matemática, ¿Estás ahí?" me he encontrado uno que desconocía (y parece ser muy famoso). Se llama "El Acertijo de Einstein", y la leyenda cuenta que lo propuso el propio Einstein y que dijo que un 98% de las personas eran incapaces de resolverlo. Por supuesto, no he podido evitar resistirme al reto :P Y hay que decir que no creo que sea TAN difícil ya que yo misma he conseguido resolverlo. Eso sí, supongo que ayuda tener cierta experiencia con este tipo de problemas, y saber cómo plantearlos. El problema trata sobre una calle en la que hay cinco casas de distintos colores. En cada una vive una persona de distinta nacionalidad, y cada una de estas personas tiene una mascota diferente. Además, cada uno tiene una bebida favorita y fuma una marca distinta de cigarrillos. Os dejo aquí el enunciado, y la solución en los comentarios. Pregunta: ¿Quién es propietario del pececito? Claves: 1) El británico vive en la casa roja. Por cierto, si conoceis alguna página con acertijos de este tipo, hacédmelo saber :D Hace poco he terminado de leer "Software libre para una sociedad libre", que es una recopilación de charlas y artículos del señor Stallman acerca de software libre y todas estas cosas. Es muy recomendable, siempre que al final no os importe que os haga sentiros malas personas -_- El trozo que reproduzco aquí abajo pertenece al captítulo "Software libre:libertad y cooperación" (transcripción de una conferencia en la New York University, el 29 de mayo de 2001.) En concreto en esta parte (que me ha parecido muy simpática) comenta cómo llegaron a nombrar al sistema GNU con ese nombre (GNU = GNU Not Unix) Todo lo que teníamos que hacer para empezar el trabajo era encontrar un nombre para el sistema. Bueno, nosotros los hackers siempre buscamos nombres divertidos o traviesos para los programas, porque pensar que a la gente le haga gracia el nombre es la mitad de la diversión de escribir el programa. Teníamos una tradición de acrónimos recurrentes para decir que el programa que estás escribiendo es parecido a algún programa existente. Puedes ponerle de nombre un acrónimo recurrente que diga: esto no es lo otro [this one’s not the other]. Así, por ejemplo, había muchos editores de texto Tico en la década de 1960 y 1970, normalmente se les llamaba tal y cual Tico. En ese momento, un hacker espabilado llamó al suyo Tint, lo que quería decir Tint Is Not Tico —el primer acrónimo recurrente. En 1975, creé el primer editor de texto Emacs; había muchas imitaciones de Emacs, muchas de las cuales se llamaban tal y cual Emacs, pero una se llamaba Fine, por Fine Is Not Emacs, y también estaba Sine, por Sine Is Not Emacs, y Eine* por Eine is not Emacs, y Mince por Mince Is Not Complete Emacs. Esa era una imitación descarada. Y entonces Eine fue reescrito casi por completo, y la nueva versión se llamó Zwei** por Zwei Was Eine Initially. *Eine = "Uno" en alemán. ** Zwei = "Dos" en alemán. ¿Alguna vez te has preguntado cómo hace tu navegador para "traerte" las páginas que le pides? ¿Te lo ha explicado "tu amigo informático" y te has quedado igual que antes? A mí me lo han preguntado más de una vez, y doy fe de que soy lo peor en cuando a explicaciones simples. ¡Pero eso ya se acabó! Por fin, una explicación "para niños" de lo que ocurre desde que introduces una dirección en tu navegador hasta que la página se muestra en tu pantalla. A muy grandes rasgos, claro, pero muy explicativa. La descubrí a través de un compartido de Google Reader. Ayer fue un día de renovaciones, así que hice de tripas corazón (7 metros, concretamente) y por fin saqué un rato para hacer una instalación limpia de la """nueva""" Ubuntu (Ubuntu 10.04 Lucid Lynx). Que sí, que ya sé que la siguiente sale en un par de semanas másomenos, pero esta es LTS y ... y... vale, no tengo más excusas. Así que Aleph ahora luce tal que así: Hacía como mil años (desde la 8.04 Hardy Heron, cuando me compré este portatil) que no hacía una instalación limpita. La pobre /dev/sda3 había ido acumulando mierdecilla tras actualizaciones varias (Hardy Heron, Intrepid Ibex, Jaunty Jackalope, Karmic Koala) y mi felicidad extrema como root. El cambio no ha sido traumático porque guardé religiosamente copia de todas las configuraciones/personalizaciones/cosicas varias que pude encontrar, y además Peibol ya venía usando esta versión desde hace unos meses (con lo cual ya estaba visualmente acostumbrada). Lo peor que me ha pasado (de momento!) es que, encendiendo, el mount me ha escupido un error y he tirado a editar fstab con el vi. Y a mitad de la operación me he dado cuenta de que no me sabía el comando de guardar ¬¬ Y ahí estaba yo, rompiendo cosas desde línea de comandos y sin una triste conexión a internet para mirar un maldito manual. Mañana aprovecharé parte de la clase de Visión Artificial para intentar conectar con la red de la UPV, deseadme mucha mucha suerte xD (que quede constancia aquí de que con Karmic Koala NO lo conseguí ¬¬. Y eso que se supone que es insultantemente sencillo...) ¡Ah! Y hablando de Visión, sigo buscando respuestas. Hace unos días me llegó una bonita caja-sorpresa de Duracell/Bloguzz. ¿El motivo? Probar el nuevo Duracell MyGrid y compartir mi experiencia con vosotros :D El MyGrid en cuestión es un dispositivo con el que Duracell quiere cambiar la forma en la que cargamos nuestros gadgets, para dejar de preocuparnos por llevar los chorrocientos cargadores que necesitamos diariamente (para móviles, reproductores mp3, videoconsolas...) Para usarlo, basta conectarlo a una toma de corriente y situarlo sobre una superficie plana. Dependiendo del dispositivo que queramos cargar, deberemos ponerle una funda especial de silicona (para iPhone, iPod Touch, BlackBerry Curve o BlackBerry Pearl) o ponerle un conector con una especie de clip (para el resto de dispositivos con puertos miniUSB, Nokia o microUSB) Una vez tenemos nuestro gadget listo, simplemente hay que ponerlo sobre el MyGrid y yasta: él solito se va cargando sin cables ni historias raras. Y no sólo eso, sino que podemos cargar hasta 4 dispositivos a la vez sin perder velocidad de carga. Desde mi punto de vista, lo que peor le veo es que deberían incluir en el pack menos fundas para BlackBerrys e iCosas (en serio alguien tiene 4 de estos en casa?) e incluir un par de "clips" genéricos más. Y lo mejor de todo es que para 2011 tendremos adaptadores para cualquier tipo de móvil (¡mi Sony ahora mismo no es compatible!), consolas portátiles (DS, DSi) y videoconsolas en general (Wii, Xbox, PlayStation....). Poder cargar también las consolas sí que me apetece, que siempre las tengo enchufadas al portátil u_u Eso sí, si os ha gustado, tendréis que esperar hasta octubre para poder comprarlo. Entonces se venderá con una oferta de lanzamiento del 50% de descuento (40 euros), y 30 euros cada accesorio. Y por si no ha quedado claro, he grabado un video y todo para que lo veais funcionando. Y no un video cualquiera, ojo: es el primer video que pongo en el blog en el que salgo yo, y salgo hablando (no os riais :P). Dentro video! Anoche, antes de dormir, me encontraba felizmente inmersa en la interesante lectura de una revista femenina de esas super fantásticas en la que las lentejuelas son "paillettes", los volantes son "ruffles", en vez de "estampado hortera de leopardo" pondrán "animal print" y jamás verás escrito "tacón de aguja" sino "stilettos". Vale, en realidad sólo estaba mirando las fotos y descojonándome con el número de cifras que tenían los precios. Pero de pronto, algo llamó mi atención. Me froté los ojos. No, no estaba soñando. Allí, claramente, aparecía la palabra "Arduino". ¿Lol? Inciso: Info para los que no conozcais Arduino. Copypasteándome a mí misma: Arduino es una plataforma de hardware de fuente abierta basada en una sencilla placa con entradas y salidas (E/S), analógicas y digitales, y en un entorno de desarrollo que implementa el lenguaje Processing/Wiring. Está basado en el procesador Atmega8, un chip sencillo y de bajo coste que permite el desarrollo de múltiples diseños. Hay más info y múltiples ejemplos en su web. ¿Qué hace un hardware como tú en una revista como esta? Me leí el artículo, y es que resulta que la diseñadora Purificación García ha sacado una nueva serie de bolsos, llamada Thinking Of Dallipur, con la idea de dar los beneficios a proyectos de rehabilitación de una aldea en la India. El bolso, que es bastante bonito y asequible (creo que ronda los 60€), tiene un montón de LEDs que se iluminan formando el nombre del proyecto: Y poco más. Algunas fotos... Además, hay un video curioso del proceso de soldado de los 192 LEDs de un bolso en poco más de una hora. Está en el blog de Arduino. En resumen, me gusta. Es un buen ejemplo de que moda y diseño no van caminan tan lejos de la tecnología como podría parecer :) (Nota: todas las fotos, excepto la primera, son del Flickr del propio David Cuartielles.) Con amor para todas aquellas personitas que se preguntan por qué estoy desaparecida en combate esta semana: Hace unos días fue en mi antigua uni ( la de Alicante ) el examen de la asignatura de Periféricos de mi antigua carrera (Ing.Tec. Informática de Sistemas). Dicha asignatura tiene fama (con razón) de ser la muerte en persona: la teoría es bastante amplia y abundante, y las prácticas son... bueno, muy bonitas con su C a bajo nivel y demás. Por suerte para mí, el año pasado la aprobé a la primera (en una convocatoria "asequible" en la que aprobamos 20 de 170), pero muchos de mis ex-compañeros siguen cargando con ella... desde hace varios años. Sé (por experiencia xD) que la gente se presenta a este examen sin ganas (porque el porcentaje de aprobados no es muy halagüeño) pero con cierta esperanza en que caiga algo de lo que suele pedir (interrupciones, fragmentación, pantallas...). Eso sí, todo teórico (para contárselo "en prosa" según sus palabras). O como mucho, como en los últimos años, con un problema de demostrar cosas que nadie conseguía nunca hacer. Pero, hace unos días, el profesor rompió en miles de brillantes pedacitos todas las esperanzas de aprobar de sus alumnos, esos alumnos que habían estudiado decenas de horas cantidades ingentes de teoría de Periféricos. ¿Cómo? Pues no sólo hizo que el examen de prácticas (programación de interrupciones mayormente) fuera a base de papel y boli, sino que encima puso un examen infernal de nada más y nada menos que 5 (¡cinco!) problemas y sólo 2 tristes preguntillas de teoría. Yo lo he visto y me he quedado transpuesta.... (imagen por cortesía del ex-mangarrufo Krone. ¡Regresad, malditos!) Pero después del susto, hay una cosa que me encanta: el segundo problema. Visto así, en frío, no tiene gracia. Pero es que tiene su historia, es uno de esos problemas que se vuelven recurrentes en los exámenes. Una vez, hace varios años, este señor puso en un examen un problema que era algo así: "Un hombre es tan pobre que sólo puede comprarse un disco duro con dos pistas, de parámetros tal y cual. Calcula el tiempo de latencia" No recuerdo exactamente qué pedía calcular, pero el enunciado era similar a eso. Por lo visto, nadie o casi nadie supo resolverlo, así qiue el curso siguiente lo comentó y resolvió en clase. Y en la convocatoria de ese año, se sacó otro problema de la manga: "Al hombre pobre se le ha estropeado su disco duro y no puede comprarse otro. Ahora, entre lectura y lectura el cabezal salta aleatoriamente de pista a pista. En cambio el proceso de lectura lo hace bien. Calcula el tiempo medio de acceso". Pero no quedó ahí la cosa, no. El hombre pobre comenzaba a ser conocido entre los alumnos y, como no podía ser de otra manera, volvió a hacer acto de presencia varios meses después: "A perro flaco, todo son pulgas. En efecto, ayer vino a visitarme al despacho el hombre pobre cuyo disco hemos considerado en otras ocasiones. Su funcionamiento es cada vez más defectuoso. Ahora, el motor gira tan lento que el tiempo de pista a pista es despreciable en comparación con el tiempo de latencia. Además, algo hay suelto por dentro de forma que cuando el cabezal se sitúa sobre una de las pistas algo roza en el borde del disco y lo enlentece aún más. En resumen: nuestro amigo tiene un disco con dos pistas. Una pista tiene x sectores y cuando el cabezal se encuentra sobre ella el disco gira con velocidad angular w1. La otra tiene y sectores y cuando el cabezal se encuentra sobre ella el disco gira con velocidad angular w2. Demostrar que en estas condiciones el tiempo medio de acceso a los sectores es t= pi/(x+y)^2 [ x^2/w1 + y^2/w2 + xy(1/w1 + 2/w2)]" Wooohooww!! El hombre pobre ha dejado de dar lástima y se ha convertido en un ser totalmente odioso... ¿Por qué no hacer una colecta para comprarle un nuevo disco y desterrarlo para siempre de estos exámenes? Pues por ahí va el tema, porque no sólo deja de ser pobre sino que encima pasa de los problemas de discos duros a los de colas! Ahora sí, ¡go panic! Llevad cuidado y para la próxima convocatoria miraros bien el tema de óptica, Dicho todo esto, tengo que decir que es la asignatura que más me gustó de toda la carrera :P Disfruté muchísimo con ella (sufrimiento y lágrimas de sangre incluídos) y con su combo de historia, teoría, problemas y programación "esotérica" jejeje. ¡Ánimo chicos! ¡Vosotros podeis! (Y siempre SIEMPRE recordaré el sms mañanero con el que me despertó Mortizer con la buena noticia de nuestros aprobados =^_^= ) Martes, 8 de la mañana. Clase de Electrónica. Yo luchando contra el sueño. Profesor comentando un circuito, con tiristores y diodos, al que se refiere como "este montaje". El mensaje llega a mi cabeza. No del modo esperado. Se crea un monstruo. No me mateis, por favor, ya sabeis que como en otras ocasiones, tenía que hacerlo. Vale, pues ahora que ya lo he hecho, por fin voy a poder estudiar en paz. Porque era ver los múltiples libros de la asignatura rondando por la habitación y algo se removía en mi interior clamando por salir xD Qué bonitas son las vacaciones... haciendo comparativas de modems submarinos, haciendo zumo mi cerebro con la cinemática de brazos robot... lo típico, vaya. Con tanto trabajo, no podía dejar de recordar este video, que me pusieron unos compañeros de clase al poco de estar en la UPV (por si alguien se perdió esos posts, terminé Informática de Sistema en la UA, y ahora estoy en el segundo ciclo de Ingeniería Automática (de la Escuela de Industriales) en la UPV) Explicación para los que no saben de qué va el tema, por orden de aparición: El protagonista es un profesor de Física al que todos llaman "El Hitler" (no quiero saber por qué). A mí no me ha dado clases y tampoco creo que lo haga, pero es famoso en Industriales entero por ser, digamos, "muy exigente". Con "las locomotoras" se refiere a unas cuantas locomotoras antiguas que hay puestas en un jardincillo de la Escuela de Industriales. Se pueden ver en Google Maps (coordenadas 39.482221, -0.342611 y metedle zoom). El tal Juliá al que se menciona un par de veces es el rector de la UPV, y "los de Caminos", es un supuesto pique que hay por cual de las dos escuelas es la más cool de la UPV. Lo demás creo que se autoexplica... (Por cierto, el video está sacado de la peli El Hundimiento, y si no la habeis visto, estais tardando) Por cierto (y van 2 xD), en el blog del que saqué esto, PolideformaT*, también había una selección de hechos físico-matemáticos (I y II) de este señor al más puro estilo Chuck Norris facts. Destacaré algunos: * PolideformaT: parodia de PoliformaT Hace unas semanas, el señor Mephisto me comentaba cosas atractivas sobre algo muy interesante: la CAVE que hay en la UPV. Nunca había oído hablar sobre ello, y en ese momento me pareció una frikada de excepción, y cuánto más escuchaba, más ganas me daban de verlo con mis propios ojos. CAVE (Cave Automatic Virtual Envirnment) La CAVE de la UPV (situada en la Ciudad Politécnica de la Innovación, edificio 8G) es una sala con forma de cubo en la que se proyecta cualquier simulación gráfica en cuatro pantallas (dos laterales, una frontal y el suelo), con la idea de sumergir al espectador (¿o deberíamos decir actor?) en el escenario mediante el uso de unas gafas especiales que le permiten observar la proyección en 3 dimensiones. Además el ángulo de visión del usuario se corrige modificando la perspectiva, calculada a partir de su posición (captada por las cámaras). Las imágenes son proyectadas hacia unos espejos que enfocan a las paredes, que son translúcidas. Es decir, que la imagen que puede verse en las paredes se proyecta desde fuera (esto no ocurre así en el suelo, donde es proyección directa). Como dato curioso, la máquina que mueve toda la parte "gráfica" de esta CAVE es un animalito de 16 procesadores y 16 GB de RAM, sobre la que corre una versión especial de SuSe. MoCap (Motion Capture) El MoCap (o "captura de movimiento" en castellano) es un sistema que permite almacenar movimientos digitalmente. En la sala de MoCap que hay en la UPV (no sé exactamente dónde, pero supongo que también en el edificio 8G u 8H) se dispone de 8 cámaras y 2 trajes con 25 bolas, que permiten grabar animaciones para videojuegos y/o cortos, con hasta dos personas interactuando a la vez. II Semana del Videojuego UPV La próxima semana se celebra en la UPV la II Semana del Videojuego. ¿Y en qué afecta a todo lo anterior? Pues que, entre otros eventos y con motivo de esta semana, se harán visitas tanto a la CAVE (jueves 11 por la mañana) como a la MoCap (viernes 12). La parte mala es que sólo había 30 invitaciones/entradas (gratuitas, por supuesto) para cada lugar, y todas están agotadas :( Eso sí, también decían que intentarían formar más grupos si se agotaban. Y digo yo...¿alguien se apuntaría a venir conmigo si sacan más plazas? ¡Seguro que es super interesante! Ensalada de enlaces: - Centro de Visualización de la UPV He tardado un montonazo, pero por fin puedo decir que he terminado con el Patapon, que es el juego que venía por defecto cuando me regalaron la PSP :) El juego en sí es bastante repetitivo, y estoy segura que mucha gente ha acabado odiándolo por ello. La historia y el modo de juego son muy simples: la tribu de los Patapon (esa especie de ojos con patas) está en guerra con otra tribu (que son iguales pero de color rojo). Tú eres el Ser Supremo, y tienes que guiarlos en su lucha. ¿Cómo? Pues muy fácil: cada botón de tu PSP es un tambor: el triángulo es Chaka, el cuadrado es Pon, la X es Don, y el círculo es Pata. Y dependiendo del patrón, tus patapons harán una cosa u otra. Por ejemplo, pata-pata-pata-pon hace que avancen, con pon-pon-pata-pon atacan al enemigo, con chaka-chaka-pata-pon se cubren... y así hasta seis movimientos posibles. Eso sí, ¡hay que hacerlo al ritmo de la música! Además, hay varios tipos de guerreros: infantería, caballería, arqueros..., de manera que según contra qué enemigo se estén enfrentando será más eficiente usar unos u otros. También hay distintos tipos de armas y cascos, y "estofados" que se usan como potenciadores. Además, aparte del juego normal, hay varios minijuegos extremadamente monos que hacen que tus patapons obtengan los elementos necesarios para crear nuevas armas o guerreros. A parte de lo gracioso que es (el final es la muerte) creo que lo más destacable son los gráficos: simples y elegantes, oscurillos pero carismáticos. Y si no lo creeis, echad un ojo en google. Otra de las cosas que más me han gustado es que puedes volver a pantallas anteriores, por ejemplo, para luchar contra jefes que ya venciste y hacer más fuerte tu ejército. Incluso después de haber terminado con el final boss todavía me apetece darle caña a algunos intermedios :) En fin, que estoy deseando hacerme con la segunda parte de este juego :) Con mi clásico efecto retardado y demás, por fin me decidí a actualizar a Ubuntu Karmic Koala. En realidad pensaba esperar a la 10.04, que será LTS, para hacer una instalación limpia y decente... pero estaba aburrida y tenía una conexión a internet.... Además, mi vieja Jaunty Jackalope que empezó funcionando bastante decentemente se había convertido en un maremagnun de comportamientos erráticos: tardaba más de 5 minutos en encenderse, la mitad de los procesos eran incapaces de finalizar por sí mismos... vamos, que se hacía un poco odiable trabajar con ella. Por suerte o por desgracia, en el 90% de mi tiempo de mi tiempo "productivo" de estos meses he necesitado usar programas muy concretos que sólo tiran en Windows (Solidworks, Quartus II...) así que tampoco es que lo haya notado mucho. De momento estoy feliz con Karmic en un porcentaje bastante decente: ahora carga a velocidad record (en unos segundos), los programas son perfectamente capaces de cerrarse por sí mismos y cargan rápido :3 Pero por supuesto, también tengo mis pegas... - PulseAudio se vuelve loco de vez en cuando y me bloquea el sonido. Es aleatorio, lo mismo no me ocurre en un día entero que me pasa cada 10 minutos. De momento siempre tengo una terminal abierta y a punto para hacer un "pulseaudio --kill" y que vuelva en sí, pero es un coñazo. La semana que viene termino exámenes y me pondré a escarbar en los foros de Ubuntu a ver si encuentro una solución rápida. Y si no, habrá que sobrevivir hasta abril. ¡Acepto ideas! - El cursor se vuelve también loco de vez en cuando, también aleatoriamente: sabe desplazarse pero cuando digo de hacer click, nanai: se pone a cambiar de forma (flecha, cursor, mano, etc) y no se arregla hasta que lo muevo con el touchpad. No tengo ni idea de dónde sale este error, es tan absurdo que no se por dónde cogerlo xD - Firefox sigue a su rollo y no se deja instalar complementos (o al menos ningún complemento para Twitter). - La pantalla de bienvenida aparece descuadrada, en alguna resolución de pantalla misteriosa. Tengo que desplazar el cursor hasta las esquinas para centrarla y poder hacer login. Esto más que molesto es curioso xD - ¡El logo de descarga de la pantalla de despedida sigue saliendome en 8 bits! Aunque ahora como es en blanco y negro no es tan divertido como antes que era de colorines, pero mola verlo pixelado... - ¡Sigo sin encontrar ningún maldito software de ToDo Lists que haga lo que yo quiero! Vale, esto no es un error, pero me jode.. Al final voy a tener que programármelo yo misma ¬¬ Quiero un gestor de ToDo Lists que simplemente me permita poner una hora de inicio y otra de final, que me avise a la hora de inicio y que me permita mostrar una lista con toda la planificación del día. ¡Sólo eso! Instalé y probé un montón, y ninguno me gustó u_u Y ahora lo chungo: cada vez que lo enciendo me salta una notificación del tipo de "oh dios mio tu discoduro está a punto de morir, ¡cámbialo!" ¿Hasta qué punto le daríais credibilidad a esto? No está mi economía como para ir cambiando discosduros así alegremente u_u (y gracias a Dell que fueron majos y la placa base me la cambiaron gratis....) ACTUALIZADO: Parece ser que lo del disco duro es un bug https://bugs.launchpad.net/ubuntu/+source/libatasmart/+bug/438136 . Al pasar smartctl a mano obtengo: En fin, que salvo lo del sonido (que es un coñazo) todo lo demás son errores tontos y podré vivir con ellos. Y para finalizar... let’s flame: Mencanta =^_^= ¿Sabías que tu proveedor de energía eléctrica te roba cada vez que bajas en ascensor? No me refiero a que acudan a tu casa, te esperen en la planta baja, te golpeen con un ladrillo y se lleven un pozal lleno con tus joyas y tu dinero, sino que te están robando tu energía. Veámoslo. En primer lugar, necesitamos saber más o menos cómo es y cómo funciona un motor. Externamente, los motores eléctricos suelen tener este aspecto: Caja de bornes: donde se encuentran las conexiones para enchufar nuestro motor a la red (en estrella o triángulo) Por dentro, son así (este concretamente es de jaula de ardilla, lo sabemos por las "rayitas" del rótor): Pasemos ahora a ver (muy por encima, estilo para dummies) qué es lo que hace que un motor gire. El estátor, la parte fija, tiene un montón de espiras conductoras enrolladas. Cuando estas espiras están conduciendo electricidad (cuando el motor se conecta a la red), generan un flujo de campo magnético. Es decir, el estátor se comporta como una especie de imán, con polo norte y polo sur en su interior. Y en este interior está ubicado el rótor, que también tiene otro montón de espiras enrolladas. ¿Y qué pasa cuando metes una espira en un campo magnético? Pues que esta espira gira y tiende a orientarse con el campo. Por otro lado, también hay que saber que un motor y un generador son totalmente reversibles. Es decir, que si tenemos un motor y en vez de darle corriente, le damos un movimiento de rotación a su eje, estaremos generando electricidad en los bornes de las espiras del estátor , con lo que tenemos un generador (y de hecho ese es el principio de funcionamiento de, por ejemplo, los aerogeneradores) Veamos ahora la diferencia de funcionamiento entre un motor y un generador en la forma más simple posible: mediante un esquemita de entradas y salidas en unos simples conductores y a base de GIMP: ¿A que hace mucho que no veíais algo tan cutre? :D En el caso del primer conductor, lo tenemos inmerso en un campo magnético B y le damos una intensidad I y un par resistivo Tres (por ejemplo, gente dentro de la cabina del ascensor). Frente a esto, se producirá una fuerza en sentido contrario y una velocidad intentando contrarrestar el par resistivo. Esto es, tenemos un bonito y precario motor. En el segundo conductor, también inmerso en un campo magnético B, operamos al contario: lo dotamos de un par de rotación Trot (por ejemplo, viento haciendo girar un molino). En este caso, también tenemos una fuerza que se opone al giro y.. tachán! Una preciosa corriente I y una fuerza electromotriz e, listas para ser usadas. Ahora que ya sabemos cómo funcionan y en qué se diferencian un motor y un generador, podemos volver a nuestro ascensor de antes. Cuando el ascensor está subiendo, no hay ningún problema: el peso de la cabina actúa como par resistivo, la conexión a la red le da la intensidad que necesita y el motor de nuestro ascensor está actuando como en el primer caso (motor) y no pasan cosas raras. Pero... ¿y cuándo bajamos? El peso de la cabina va en el sentido del movimiento, así que ya no es un par resistivo, sino que nuestro motor se convierte en el segundo caso: sin haberlo planeado, tenemos un generador. La pregunta es bastante clara... ¿a dónde va toda esta energía generada? Pues en la inmensa mayoría de los casos... se devuelve a la central eléctrica. ¿Y alguno de vosotros ha visto una sóla factura de su compañía eléctrica en la que se le devuelva algo de dinero en concepto de energía generada y devuelta a la red? No, ¿verdad? Aunque hay comunidades de vecinos negociando con las eléctricas para que les devuelvan el dinero, parece poco probable que estas vayan a ceder. Pero hay otras soluciones más o menos complejas, por ejemplo, montar algún sistema de almacenamiento (baterías o bancos de condensadores, por ejemplo) de manera que toda esa energía sobrante se almacene para, por ejemplo, alimentar la iluminación de la escalera. Pero las aplicaciones no son sólo para ascensores (aunque sí que es el ejemplo más cercano). Por ejemplo, este sistema (que recibe el nombre de "frenada regenerativa") se usa contínuamente en metros y trenes, donde la energía producida al bajar una cuesta o frenar en una estación se devuelve a la catenaria y se utiliza para alimentar otros trenes cercanos. También es común en coches eléctricos o híbridos, donde se utiliza para recargar la batería. Y también se ha hecho relativamente conocido últimamente en sistemas como el KERS, recién implantado en la Fórmula1 para recargar una batería auxiliar que permite a los pilotos obtener más potencia después de una frenada. Ensalada de enlaces: - Regenerative Brake (en la wikipedia en inglés) - Frenada Regenerativa (en "Control de Máquinas Eléctricas", de google books) - Sistema de frenada regenerativa en el metro de Granada (en Ecomovilidad.net) - ¿Qué es el freno regenerativo? (en Meka-Eko) - Bicicleta con freno regenerativo (en Engadget) - Frenada regenerativa en el Toyota Prius (en Mecánica Virtual) - Frenada regenerativa en un cochecito de juguete (12", en Youtube) - Frenada regenerativa en una bicicleta para encender una bombilla (18", en Youtube) - Fernando Alonso vs Trulli, adelantamiento gracias al KERS (22", en Youtube) - Kone Serie-R, ascensores que utilizan frenada regenerativa para iluminación interna entre otras cosas (pdf, Kone.com) Me ha llevado deceeenas de horas (no las he contado, pero más de 30 seguro), pero por fin puedo decir que he terminado la tarea 6 de Sistemas Mecánicos: este bonito modelo 8062-3 de los LegoTechnics, usando Solidworks. Quizá no parezca para tanto, pero las tripas del camión son una fiesta de engranajes (para la dirección, las ruedas, levantar la caja, bajar la rampa...). Tengo otros modelos anteriormente, pero este me ha dado tantos problemas que me ha hecho especial ilusión xD Un día de estos hago el ánimo y os enseño también los anteriores (y los que me quedan por hacer .... u_u) Resistencia de 1KΩ + estaño + soldador = Anillo fantabuloso. Rápido, sencillo y barato, a la par que elegante y superfashion de la muerte en ambientes ingenieriles. Claramente, era lo que viene siendo un gato en tiempo contínuo. Tranquilos, Pinocho sigue bien, pero encontré esto cuando buscaba more info sobre Fourier (en escasos días me examino de Señales y Sistemas y me gusta saber cosas sobre la gente en la que tengo que pensar durante más de 10 minutos) Por otro lado, xkcd (los autores de la viñeta) están hoy haciendo un homenaje a GeoCities, que por lo visto cierra hoy, con un rediseño espectacular de su web. No os lo perdais, os vais a sentir muuuy viejunos, recordareis los bonitos modems de 56k, los perpetuos cartelitos de "under construction".... No hace falta viajar en el tiempo, sólo mirad la captura: Yo formaba parte de la gran masa de usuarios de linux que cuando necesitan usar su scanner buscaban un pc con Windows cerca para ahorrar odio y tiempo. Hasta ayer, que me dio el ramalazo geek y me dije "mota.... ¡vamos a ganar unos cuantos puntos de exp!" Y puesto que me llevó unos cuántos dolores de cabeza y unas cuántas horas de navegación, prueba y error, os contaré aquí cómo he hecho para que tire. En primer lugar, necesitamos una interfaz mágica para comunicarnos con nuestro scanner. Yo he elegido XSane por dos razones: 1- venía de serie en mi Ubuntu. 2- SANE viene de "Scanner Access Now Easy", y si pone "easy" no puede ser malo. Si no lo tenemos (o no estamos seguros, que también puede ser), abrimos una terminal, escribimos sudo apt-get install xsane metemos la contraseña de superusuario, y dejamos que se descargue y se instale. Una vez que lo tenemos, accedemos a él desde Aplicaciones - Gráficos o directamente tecleando xsane en la terminal. Se nos abrirá una ventanita en la que nos pedirá seleccionar el dispositivo entre todos los encontrados (en mi caso, la webcam y el susodicho scanner, que es el que nos interesa). Lo seleccionamos, aceptamos.... y lo más probable es que nos encontremos con esto: Que no cunda el pánico, vamos a solucionarlo. Lo primero que necesitamos saber es el modelo exacto de nuestro scanner (en mi caso, un Acer ScanPrisa 640U que está a punto de cumplir diez añitos) y si está soportado por Sane. Nos metemos aquí a la página del proyecto Sane y buscamos nuestro modelo de scanner (ojo, si tienes un Acer como yo, debes saber que ahora se llaman BenQ): ¡Bien! Está soportado. Concretamente mi modelo de scanner utliza SnapScan así que entramos en el enlace a ver qué versión del firmware necesitaremos para hacerlo funcionar: Sabiendo esto, el siguiente paso es hacernos con la versión del firmware que necesitamos. Para ello, usamos el CD que venía con el dispositivo o lo obtenemos directamente de la web del fabricante. Generalmente, lo que descargaremos será un pack de un montón de megas, pero lo que nos interesa apenas ocupa unos pocos KB: es un archivo .bin con el nombre que hemos visto en el paso anterior. También puede ser que la versión no sea exactamente la misma (mi caso, cómo no xD), así que con coger la inmediatemente superior suele valer. Una vez hemos encontrado nuestro firmware, lo copiamos a alguna carpeta mágica donde pueda dormir tranquilamente. Por ejemplo, /etc/bin (originalidad al poder). A continuación, según pone en la página de SnapScan, necesitamos "crear" el dispositivo: mknod /dev/usbscanner c 180 48 Y hecho esto, debemos decirle a XSane dónde están los drivers. Vamos a la carpeta /etc/sane.d y buscamos el archivo de configuración que va a usar nuestro scanner, que es el indicado en la página donde miramos si era compatible. En mi caso, snapscan.conf, así que lo abrimos como superusuario para poder cambiarlo: sudo gedit /etc/sane.d/snapscan.conf Buscamos donde ponga /usr/share/sane/snapscan/your-firmwarefile.bin (es la primera linea no comentada) y lo sustituimos por la ruta hasta nuestro precioso archivo .bin que guardamos antes, de manera que quede así (pero obviamente, con tu versión del firmware): firmware /etc/bin/u96v121.bin Guardamos (recuerda que probablemente tendrás que ser superusuario), volvemos a lanzar XSane, seleccionamos el scanner, y pueden pasar dos cosas: 1) Que nuestro scanner empiece a hacer ruidos sospechosos y nada agradables justo antes de recibir el mismo mensaje de error que al principio. Esto significa que la versión de firmware que has usado no es la buena. Que no cunda el pánico, a mi me ha costado cinco intentos encontrar la correcta dentro del pack. Simplemente, ve probando hasta que encuentres la que lo hace funcionar. Eso sí: entre cambio y cambio de snapscan.conf deberás desconectar y reconectar el scanner para que los cambios tengan efecto. 2) Que todo haya ido bien y encuentres en tu pantalla un mar de ventanitas similares a estas: ¡Enhorabuena! ¡Todo ha ido bien! Al principio, XSane puede parecer un auténtico caos de opciones sin sentido y demás, pero en cuanto has mirado un poco las opciones descubres que es el paraiso de la customización, y todo al alcance de la mano. Algunas opciones interesantes a un sólo clic: elegir color/B&N/grises, elegir la resolución, ajustar el contraste, brillo y gamma, ajustar los colores.... y lo mejor: elección del modo de salida. Podemos escoger si queremos abrirla con el visor interno, guardarla automaticamente, enviarla por correo, enviarla a la impresora....o una cosa muy útil: crear un proyecto multipágina y exportarlo directamente a pdf cuando hayamos escaneado todas las páginas. ¡Un amor! Además, vemos (antes de empezar a scanear) el tamaño y peso (en megas) que tendrá nuestra imagen (lo cuál se agradece). Cuando hayamos toqueteado todas las opciones y lo hayamos configurado a nuestro gusto, simplemente tenemos que hacer clic en "Adquirir vista previa" en la ventana de vista previa, seleccionar sobre ésta la parte de la imagen que queramos obtener, y luego pulsar "Explorar" en la ventana principal del programa (que es donde están también todas las opciones). La imagen irá a donde hayamos seleccionado en el modo de salida. Espero que esto haya sido más o menos útil, creo que no me he dejado ningún paso... Quejas, dudas y traumas, en los comentarios :) No puedo evitar visualizar esto cada vez que leo "almacenamiento magneto-óptico" en los apuntes, así que he tenido que perpetrar este sacrilegio para que todos seais partícipes y no sea yo la única traumada :D ¡Festival del humor! Cinco minutos de Gimp hacen maravillas con mi integridad mental xD ¡Otro post mágico sobre periféricos! Y probablemente esta semana y la que viene haya algunos más, puesto que tengo el examen de prácticas el martes y el de teoría el lunes siguiente. Recordemos los capítulos anteriores porque probablemente serán útiles en este: - Punteros y modelos de memoria - Acceso a ROM para obtener los patrones de bits de los caracteres - Modificación de los patrones de bits de los caracteres - Acceso a la Tabla de Vectores de Interrupción Bien, dicho esto, también nos será útil saber cómo organiza VGA el acceso a los colores. Sabemos que, si escribo un carácter directamente en memoria de video (en nuestro caso -80x25- el segmento comienza en 0xB800), este ocupará 2bytes repartidos tal que así: 8bits: carácter Sabiendo esto, podemos usar 4 bits para el color, es decir, que tenemos 16 colores distintos a elegir. En realidad, cada uno de esos colores está apuntando a una paleta, que a su vez indexa 256 registros de un conversor analógico digital (DAC), en el que cada color (rojo, verde, azul) ocupa 6bits. O sea, 3 colores de 6 bits cada uno (64 posibilidades por cada color) nos da 256 bonitos colores para usar. La manera en que utilizaremos esto es la siguiente: modificaremos la paleta de un color determinado (en este caso, el 5, violeta) para que indexe otro color del DAC. Entonces, cada vez que pintemos algo de ese color, se estará pintando en realidad del color con el que lo hayamos modificado. ¿Lo primero que necesitamos saber? A donde apunta (en el DAC) el color que hemos elegido. Esta función es útil para eso: int indiceDAC(int indcolor) { Una vez sabemos cuál es el índice del DAC que vamos a modificar, probablemente queramos saber sus componentes originales: int lee_paleta(int indDAC, int *R, int *V, int *A) { Y por supuesto, alguna manera de modificarlo: int establece_color(int indDAC, int R, int V, int A) { Ahora que sabemos todo esto, lo suyo sería comprobarlo. Para ello, dibujaremos un cuadrado directamente en memoria de video y lo rellenaremos del color 5. Esto es tan simple como un par de bucles anidados en los que asignamos valores de caracter y color a un cacho de memoria de video. Podemos cambiar de color directamente (leer paleta,modificar colores, establecer color) o hacerlo interactivo: creando una nueva interrupción (así), en la que leemos el buffer de teclado (puerto 0x60) y en función de las teclas pulsadas modificaremos los colores. En mi caso: A y Z modifican los rojos, S y X los verdes y C y D los azules. Para hacerlo aún más pijotero, podemos hacer un bucle mágico para escribir los valores actuales de cada color en la memoria de video. Y esto es lo que tenemos al final: Credits: Las funciones "establece_color", "lee_paleta" e "indice_DAC" han sido sacadas del libro de apuntes de la asignatura, descargable aquí. Desde hace varios años, llevan celebrándose por estas fechas en Yecla unos ciclos de astronomía y astrofísica. Nunca puedo ir puesto que se realizan de lunes a jueves y me suele pillar en Alicante, pero esta vez creo que podré asistir al menos a dos de las charlas. Siempre he leído cosas muy buenas sobre estos eventos, y tengo muchas ganas! Si alguno más os animais, os dejo la programación. Todas las charlas son a las 20.30 en el Aula de Cultura "Azorín" de la CAM (C/ España, 14). Lunes 11: “De 7 a 200 mil:el sistema Solar crece...!!!” Martes 12: “Luz extrema. El Universo en rayos X y gamma” Miércoles 13: “Fractales y nubes interestelares” Jueves 14: “6 números que definen el Universo” Por cierto, seguro que a más de uno os suena el de la charla del martes jeje. En primer lugar y antes de nada, Vladi me acaba de galardonar con el super premio Blog de Oro. Gracias!! Técnicamente debería entregárselo a otros 15 blogs más, pero como no quiero que os peleeis, consideraos todos premiados también =) Por otro lado, a lo que iba: hace unos días (concretamente el 23Abril) salió la versión final de Ubuntu. Su nombre es Jaunty Jackalope, que significa "jackalope vivaz". Un jackalope viene siendo un conejo con cuernos de ciervo que podría ser la versión americana del típico gambusino gamusino. Misteriosamente, de momento no he tenido ningún problema raro (siempre me pasa algo), salvo las típicas chorritonterías. A saber: - El logo con la barra animada vaciándose que sale al cerrar sistema sigue saliendo en nula-resolución. Vamos, que decir que está a 16 colores sería pasarse xD Vamos, que practicamente no he notado cambios (la vez anterior fue como una hecatombe en miniatura) En fin, que todo lo de arriba no es más que una excusa para postear el preciosísimo wallpaper que encontré hace tiempo en Ubuntips: ¡Por dios! No me digais que no os parte el alma =) Niños, niñas, elefantes voladores y demás: vayan vaciando sus agendas para el martes 12 de mayo a las 17.30 porque... ¡viene Stallman! La pista la dio VicenteJuan en twitter, y tras una rápida búsqueda en google encontré la fuente original de la noticia, en la FreeSoftwareFoundation, right here. Según pone, y suponemos que será cierto,(cito textualmente), Alicante, Spain. Aula CAMON, Avd. Ramón y Cajal, 5, Torrevieja. Richard Stallman hablará sobre las metas y la filosofía del movimiento del Software Libre, y el estado y la historia del sistema operativo GNU, el cual conjuntamente con el núcleo Linux ahora es utilizado por decenas de millones de usuarios en todo el mundo. Lo único malo, malísimo, es que es mi tarde con más clases (ninguna obligatoria, aunque sí recomendables) y que es en Torrevieja. Pero seguro que encuentro alguien para hacer una excursión.... o eso espero :S Edit: Parece ser que podría haber un error en la noticia original, y que fuera en Alicante-Alicante, puesto que en esa misma calle y número (pero en Alicante) existe una CAM (google maps says). Esto es lo que ocurre cuando en todos los pueblos de los alrededores hay una maldita Avenida Ramón y Cajal XD Acabo de ver en Ubuntips esta bonita gráfica que (basándose en sus características) supuestamente te ayuda a saber cuál es el nombre "técnico" y "respetable" de tu ordenador portátil, puesto que "portatil chiquitín" no es muy descriptivo ^^ Por ejemplo: netbook, ultraportatil, etc etc Ahí va: Por ejemplo, en mi caso: - Acer Aspire ¿1391? (aka "mi portátil viejo"): Is the PC worth more than 0? -> YES -> Is the screen larger than 13"? -> YES -> You’ve got a plain old LAPTOP - Dell XPS M1330 (aka "mi portátil nuevo"): Is the PC worth more than 0? -> YES -> Is the screen larger than 13"? -> NO -> Does it have an optical disc? -> YES -> You’ve got an ULTRA-PORTABLE Puedes poner tus cosicas en los comentarios, que no muerden. (Disclaimer: Esta entrada está basada en notas que he tomado durante una charla, así que probablemente no haya mucha coherencia entre párrafo y párrafo. No me lo tengais en cuenta. Tampoco voy a poner links, porque me puedo morir. ¡Usad un buscador! ) Esta mañana he estado en la sesión informativa de Sun OpenSource Technologies, junto con los agradables mangarrufos Lord_Kote y Scipion. Han sido tres intensas horas de información, self-promoting (esto era esperable), datos técnicos a porrillo, etc etc. en una pequeña sala que con15 alumnos y 5 profesores ya estaba llena.. Por cierto, yo era la única mujer no profesora... después de 5 años y todavía me sorprende xD La sesión estaba planeada en tres grandes bloques: 1 . OpenSolaris De ellos, el que más interesante me ha parecido es es de openSPARC, pero puesto que ha sido el más "técnico" ha sido del que menos notas he tomado (muchos esquemas, datos y demás). A cambio, sobre OpenSolaris tengo miles de notas, así que tendré que dejarme cosas en el tintero. Y sobre los programas para universidades, pues muy interesante también, pero ahi los estudiantes ni pinchamos ni cortamos. En primer lugar, y con una Solaris 2008.11 sobre la que se había virtualizado Ubuntu y otros OSs (el ponente, un Arquitecto de Sistemas, se ha declarado Ubuntero de corazón) nos han contado cosas de por qué Sun es guay: Solaris, SPARC, StorageTec, Java, MySQL... etc etc, que son la empres que más invierte en OpenSource por persona, etc. Ya entrando en el tema de openSolaris, nos han contado que su objetivo es llegar a ser tan amigable como Linux, lo que venía reducido en la frase "Easy to Get-Install-Use-Maintain". Para ello, tenemos liveCDs, un instalador gráfico, el uso de Gnome/Compiz, repositorios de paquetes en la red (Image Packaging System, con unos 4000 paquetes actualmente). Estos paquetes están divididos en tres clases: Community (donde meten las last releases y el software de terceros), Sun (su software) y uno último, de pago, llamado Subscription (donde meten actualizaciones de seguridad, bugs y demas). Han insistido bastante también en que la HCL (lista de hardware compatible) es muy grande y va en aumento. Además, se supone que cuando vas a instalar Solaris, se analiza el sistema y si hay algún driver no soportado, se avisa al usuario y se le indica dónde y cómo puede conseguirlo. Una diferencia fundamental de Solaris con , por ejemplo, Ubuntu, es que está más orientado a unos objetivos comerciales. Por ello, sacarán una nueva versión cada 5 años, pero manteniendo los updates trimestrales: La idea es evitar cambios drásticos frecuentes en sistemas grandes y/o críticos. Después de la introducción, nos han contado las cosicas de las que se sienten más orgullosos: el ZFS, el D-Trace, CIFS incorporado en el kernel, el sistema de repositorios y AMP/MARS. ZFS, que viene siendo Zettabyte File System es, como su nombre indica, el sistema de archivos. Nos cuentan que es el primer sistema de archivos de 128 bits, que es muy escalable y fiable, que la información siempre se mantiene consistente y que no se degrada, que es un sistema transaccional, que las instrucciones son atómicas, que es muy rápido y que por todas estas cosas no necesita file-checks periódicos. Además, nos premite usar algo llamado "atributos" para garantizar un tamaño mínimo, elegir el algoritmo de compresión, el de cifrado, etc etc. Por cierto, han dejado caer que OS X Leopard utiliza ZFS para la famosa time-machine. Todo esto de la consistencia y no degradación de los datos viene dado por algo llamado Copy-On-Write (que crea duplicados del dato y de sus punteros en el espacio libre por si ocurre un imprevisto), otra cosa llamada End-To-End Checksums (que usa checksums de 64Kb separadas de los datos, garantizando que no haya pérdidas de datos ni "escrituras fantasma") y los Solaris Containers (que vendría a ser la virtualización de distintas zonas "estancas" (frente a las zonas globales) e independientes unas de otras, que sólo compartirían el núcleo de Solaris, lo que las haría más eficientes ocupando menos espacio). El siguiente "punto gordo" es D-Trace, quees una herramienta de trazabilidad que usa unas 30.000 "sondas" activables o desactivables por el usuario para optimizar aplicaciones, permitiendo ver cómo responde el sistema operativo de una manera no intrusiva y ligera. Se supone que esto dota de flexibilidad y dinamismo al sistema porque no hace necesario el lanzamiento de un core dumped para ver dónde está fallando. Para acabar con esta primera parte, nos han hecho una comparativa con RedHat. Que el ciclo de vida de openSolaris es mayor, cómo se reparten el mercado, el precio de la subscripción (más o menos igual), el soporte hardware , etc. Después, ha empezado la de OpenSparc. Nos han hablado de las tres línas de procesadores que Sun lleva en marcha. A saber: x86/x64, UltraSparc Sparc64 y UltraSparc CoolThreads, que es lo último que han sacado. Ha comentado un poco el tema de los problemas en los procesadores: la latencia, debida a que la tecnología que desarrola memorias no tiene nada que ver con la que desarrolla procesadores (y cada vez se alejan más), y la velocida de reloj (cuyo aumento necesita un alto consumo energético, y por tanto, mucho calor). También se han comparado las tecnologías de single-threading con las de multi-threading. Como media, las primeras pasan un 85% de los ciclos esperando a la memoria, por lo que sólo ofrecen un 15% de tiempo de uso. Por el contrario, el multi-threading ofrece una media de 85% de tiempo de uso. Entonces, en 2005, a Sun se le ocurrió la idea de juntar CMP (múltiples núcleos) con HMT (múltiples hilos) para obtener lo que llamaron CMT: Chip Multi Threading. De ahí salió entonces el UltraSparc T1 (de nombre Niagara), que a menos velocidad de reloj (entre 1 y 1.4GHz) y siendo mucho más simple que los procesadores comerciales del momento, era capaz de ejecutar más instrucciones. Algunos datos que nos han dado es que ejecuta los threads de 4 en 4, y cada uno de estos grupos en un core (existe en versión de 4, 6 y 8 cores), que el acceso a la memoria es UMA y que consume muy poquito. Como dato curioso, inicialmente sólo tenía una FPU (unidad de coma flotante) lo que obviamente creaba cuellos de botella en aplicaciones que necesitaran usar dicha unidad (esto se arregló para la siguiente versión, la ultraSparc T2, donde metieron una FPU para cada core). A cambio del pequeño fail con la FPU, el sistema era perfecto para servidores web, LDAP y similares, puesto que incluía de serie una cripto-aceleradora embebida. Respecto al ultraSparc T2, como ya dije, arreglaron el tema de la FPU (poniendo una en cada core), aumentaron los hilos a 8 por cada núcleo, y además embebieron el PCI, la interfaz gigabit ethernet y los controladores de memoria, obteniendo así un SOC (System On a Chip) Después, se sacaron de la manga el T2+ (Victoria Falls), también SOC y SMT (simultaneous multi threading), pero con algunos cambios para mantener la coherencia. Y ya que estaban, subieron a 128 threads por core. Para terminar, nos habló de los problemas de estas tecnologías (como la escalabilidad, programabilidad, verificación y desarrollo de software), y nos ha contado algo sobre openSPARc:que es un procesador Open Source de 64 bits liberado bajo la GPLv2, que se pueden obtener los diseños online (wiki.opensparc.net) y que los donan a universidades y cosas así. En este punto de la charla, alguien ha hecho una pregunta interesante: ¿En qué beneficia todo esto del opensource a Sun? La respuesta ha sido que si fuera algo cerrado, se comerían el 100% de la tarta de beneficios, pero sería una tarta pequeña. En cambio, abriéndose y liberando sus cosicas (por ejemplo, Java), consiguen ser más usados y conocidos, y por tanto, la tarta de beneficios crece ingentemente. Y aunque el porcentaje de beneficios que se comen es más pequeño, es ingentemente más grande que la tarta pequeña entera. Vamos, que se supone que todos salimos ganando. Despues, y muy rápido porque ya eran casi las 15.00 (se suponía que acabaríamos a las 14.00), nos han hablado de que tienen diferentes programas para las Universidades: donación de hardware y software (para uso docente o de investigadores), proyectos de fin de carrera, la suite Star Office, cursos de formación gratuita (SAI) con posibilidad de certificación, etc etc etc. En definitiva, una charla interesante sobre un tema, para mi, practicamente desconocido. Aunque se les habían olvidado los CDs de openSolaris que se supone que nos iban a regalar (las prisas...), tenían algunas camisetas e "identificadores para el equipaje" que han repartido entre los que han hecho preguntas y cosas así. Yo no he hecho ninguna, pero al salir uno de ellos se me ha acercado y me ha dado un pack ^^ La camiseta es blanca y XL-hombre (aka gigantesca, me la pondré en verano para dormir xD) con un logo azul grisaceo que pone "Sun, 25 years of innovation" y spam encubierto de AMD64Opteron en una manga. Respecto al identificador de equipaje, es naranja y blanco, con el logo de Java y el de Solaris , lleva escrito "Sun Tech Days, a WorldWide Developer Conference. Innovation Happens Here" y huele a plástico. A mí lo de Sun Tech Days me ha sonado a programar en verano al solanero junto a la piscina, pero no creo que se refieran a eso xD Se supone que enviarán a un profesor las transparencias que han utilizado y él las colgará en su blog para que las podamos descargar (o eso he entendido), así que si a alguien le interesa ojearlas, que me lo diga y cuando me entere de que están disponibles se lo hago saber. Moraleja: Buscaré mi CD de Solaris 10, o en su defecto, pediré uno de OpenSolaris para trastearlo en mi portatil viejo y darle una segunda oportunidad (a Solaris) Ale, me voy a teletransportarme que pierdo el bus. Lo siento mucho si ha sido muy espeso xD Otro bonito capítulo sobre mis prácticas de periféricos, de esos que nadie comenta pero luego cuando nos cruzamos por el campus me rascais la cabeza y me dais las gracias :P Esta no pensaba hacerla todavía, pero por lo visto esta mañana a las 7.00 mis vecinos han considerado divertido poner música a todo volumen (nunca antes odié a Bach) y pasear con tacones (o equivalente). Así que como no podía dormir, y no tenía nada mejor que hacer (en realidad sí, pero no importa), le he dedicado un rato a esta práctica que es muy sencilla. La tabla de vectores de interrupción es un cacho de memoria (concretamente, desde el 0000:0000) en el que se almacenan las direcciones de las funciones o rutinas que atenderán a cada interrupción. Es decir, que cuando se produce una interrupción, se transfiere el control del sistema a la rutina situada en la dirección indicada en la posición de memoria especificada en la posición correspondiente de este vector. Hay 256 interrupciones (la lista está aquí).Cada una, usa 4bytes de este vector: 2bytes para el offset y otros 2bytes para el segmento en que se encuentra la función (no, no me he equivocado: guarda primero el offset y después el segmento). Por tanto, en total la tabla ocupa 1KB. Además, cada interrupción está en la posición indicada por su número: La dirección de la interrupción 0 se encuentra en los 4 primeros bytes, la de la interrupción 1 en los 4 siguientes, etc. En definitiva: el offset de la dirección de la interrupción i se encuentra en el byte tvi+4*i y su segmento en el tvi+4*i+2 (suponiendo tvi el inicio de la tabla de vectores de interrupción, o sea, 0000:0000) Supongamos que no nos gusta la rutina normal de teclado, y queremos una propia que por ejemplo, en vez de escribir el carácter por pantalla, imprima el valor del código de teclado (es decir, el código de la tecla pulsada, que no depende del carácter sino de la posición de la tecla y de si se pulsa o se suelta. Por ejemplo, el ESC genera el scancode 1, el 1 genera el código 2, el 2 el 3, etc etc. La tabla completa está aquí -la Tabla90-). Podría ser algo tal que así: void interrupt rutina_teclado(){ char codigo; } Inciso: Sí, pongo las llaves así, mucha gente lo ve raro pero ... a mi me parece más amigable que ambas en nueva línea. :P La palabra interrupt le indica al compilador que lo que está haciendo no es una función normal, sino una interrupción. O sea, que le está pidiendo al compilador que genere código para salvar y restaurar el estado de la CPU cada vez que se ejecute ese código (esa es la gracia de las interrupciones) Con inport(0x60) lo que hace es leer el scancode de la tecla pulsada/soltada, y el outport(0x20, 0x20) simplemente es el EOI (End Of Interruption), que hace que se salga correctamente de una interrupción. ¡Debemos usarlo siempre para terminar una interrupción! Bueno, obviamente, esto así solito, en el limbo de los códigos, no tiene mucho sentido, así que tendríamos que modificar la TVI para que cada vez que pulsemos una tecla, vaya a nuestra maravillosa rutina en vez de a la normalita. Como ya sabemos, la interrupción de teclado es la 9, así que lo que nos interesa está en esa posición (O sea, necesitamos un punterete hacia MK_FP (0 , 9*4)). Lo primero, antes de romper nada, es guardarnos la dirección de la rutina original. (Aunque si se rompe algo, que no panda el cúnico: basta con cerrar y abrir nuestro maravilloso emulador de DOS). Para ello, guardamos en un par de variables el offset y el segmento, que como dije antes, están respectivamente en los dos primeros y dos siguientes bytes de 0 , 9*4. Lo siguiente es modificar la posición de la tabla que nos interesa y decirle que ahora tiene que apuntar a nuestra rutina. El identificador de una función es en realidad un puntero a la misma, así que se convierte en algo tan simple como lo que sigue: asm cli; Es importante desactivar la llegada de interrupciones antes de cambiar nada. ¿Os imaginais la super catástrofe que sería que se produjera una interrupción de teclado después de haber cambiado el offset pero antes de haber modificado el segmento? ¡Eso sí que sería una fieshta! Podemos hacerlo con instrucciones en ensamblador: asm cli (desactivarlas) y asm sti (activarlas), una vez que se han modificado. Cuenta la leyenda que también se puede usar disable() y enable(), que están incluidas en dos.h . . . pero yo no las he usado así que no prometo nada. Y una vez cambiado esto... ya podríamos casi decir que está todo hecho. Eso sí: En el tremendamente abierto "hacer cosas" de la rutina es bastante interesante configurar un caracter "de escape", para que cuando se detecte una determinada tecla pulsada, se salga de la interrupción restaurando la rutina original (y así además te ahorras tener que cerrar el DOS para poder usar el teclado normalmente xD). Pero eso lo haceis vosotros: no os lo voy a dar todo mascadito :P Fail típico 1: poner un while(salir==false) dentro de la rutina. Esto es absurdo, porque la rutina se invocará SIEMPRE que pulse o suelte una tecla, así que el bucle no me hace falta. Fail típico 2: llamar explícitamente a la función. ¡No hace falta! Vendrá ella solita cada vez que pulses una tecla. Ale, espero que os haya servido de algo, y si no es así... al menos a mi me ha servido para "afianzar conocimientos". Acepto comentarios, mails y tabletas de chocolate :P Os dejo con la típica captura de rigor: En ella pulso las teclas M O T A en ese orden. Si pinchais en la imagen y la veis en flickr, le he puesto notitas explicativas ^^ Por cierto, fe de erratas del artículo sobre Modificación de los patrones de bits de los caracteres: Comprobé una vez más el ejecutable sobre cmd, y resulta que no funcionaba por la simple razón de que no lo tenía configurado en el modo 80x25 y en pantalla completa. En cuanto lo cambié, comenzó a tirar. Cosas que pasan XD [Capítulo anterior: Acceso a ROM para obtener los patrones de bits de los caracteres] Hace unos días os conté cómo acceder a ROM (la BIOS de toda la vida) para coger los patrones de bits de los que están formados los caracteres que se escriben en la memoria de video. Esto puede ser divertido, pero... también un poco estático, ¿no? El experimento ganaría en posibilidades si pudiésemos modificar esos patrones para crearnos nuestras propias fuentes. Vale, sí, sería una cosa muy artesanal y a bajo nivel, bit a bit y todo eso, pero... ¿acaso teneis algo mejor que hacer? xD Yo no voy a crear aquí un juego de fuentes entero porque no estoy tan enferma (de momento), sino que me voy a conformar con ponerle una rayita encima a la letra A (sí, igualito que en el enunciado de la práctica 4 de Periféricos, soy poco original). Así, de primeras, no podemos modificar los patrones de bits porque están en ROM, que como su propio nombre indica, es Read Only Memory. Así que el primer paso es copiar esa lista de 256 caracteres * 16 bytes/caracter de la ROM a la RAM. ¿Como? Creando una variable char* de ese tamaño (con malloc), y asignándole byte a byte el contenido de la variable (también char*) original que contiene la lista de patrones en la ROM (esto lo expliqué aquí) Ahora, puedo añadir todas las modificaciones que desee, puesto que mi tablita ya está en memoría escribible. Como dije, añadiré una rayita sobre la A. Puesto que la A es el carácter 65, avanzo hasta su posición. Los 8 siguientes bytes son cada una de las "filas" de pixeles de las que está formada la A, así que como quiero la rayita ENCIMA de la A (en el primer byte), no necesito desplazarme "hacia abajo" (sumando entre 1 y 8 al desplazamiento de 256*16): *(listaRAM+65*16)=255; 255 es en hexadecimal lo que en binario viene siendo 11111111, o sea, en el idioma de los pixeles (xD) una línea. Ahora que ya tenemos nuestra lista con la modificación, lo que queremos es decirle a la tarjeta dónde está el nuevo juego de carácteres, para que "olvide" el viejo y use el nuestro (modificado). Esto tenemos que hacerlo con interrupciones en ensamblador, o sea que necesitareis un TurboAssembler o equivalente. El código sería el siguiente: asm push ax; Ese cacho de código viene siendo una llamada a palo seco a una señora interrupción software. En primer lugar, guarda los registros del procesador en la pila (push). Luego guarda en AX, BX, CX y DX los valores predeterminados para "decirle" a la interrupción qué es lo que quiere. Después, se llama a la interrupción en sí con "int" (la interrupción 10h, con 1100 en AX, que es esta), y finalmente devuelve a su sitio los registros del procesador (pop), para que pueda seguir su curso. Y "asm" indica al compilador que lo que sigue es ensamblador, así que con eso llama al TurboAssembler. Tras compilar y linkar, ejecutamos, y esto es lo que obtenemos: Todos los caracteres "A" de la pantalla se convierten en "A con palito" (aka "A customizada") hasta que hacemos un cls. ¿A que mola? ^^ Un par de fotos del "antes" y "después" de la operación: Por alguna misteriosa razón, funciona perfectamente sobre DosBox, no así con el símbolo de sistema (cmd). No me pregunteis por qué, pero llevo una semana volviéndome loca con esto, así que antes de moriros de asco... probadlo con DosBox xD (A mí la idea me la dio el profesor, porque hasta este momento había estado usando cmd) No he probado con otros emuladores, pero si alguien se ha aburrido y lo ha hecho, podría darnos feedback :P Carl Sagan respecto a los canales de Marte, que Percival Lowell atribuía a vida marciana inteligente: "No hay duda de que los canales marcianos tenían un origen inteligente, la única duda estaba en saber a qué lado del telescopio se encontraba la inteligencia" Pareidolia, amigos míos, o lo que viene a ser lo mismo: cada uno cree ver lo que quiere ver. O quizá lo que su cerebro adiestrado quiere que vea. ¡Ay qué bonicas son las prácticas de Periféricos cuando comienzan a funcionar! Ya os comenté el otro día cómo acceder a memoria de video y juguetear con ella, y el tema de hoy está bastante relacionado con ello (siempre basado en TurboC sobre MS-DOS, si usais otros compiñadores compiladores y no tira... no es mi culpa :P) Bueno, resulta que cuando escribimos un carácter en la memoria de video, por ejemplo, la ’M’ de motagirl, no estamos escribiendo en realidad esa M, sino un 77, que es su código ASCII (podeis consultarlos todos aqui). En realidad, para lo que sirve ese 77 es para indexar una tabla presente en la BIOS, donde se encuentra un patrón de bits para cada carácter (1 indica pixel relleno, 0 indica pixel vacío). La tabla tiene 256 carácteres,y cada carácter consta de 16bytes, siendo la M tal que así: (Si os alejais un poco se ve algo mejor) ¿Y cómo podemos acceder a la tabla? La dirección nos la puede dar una función de la BIOS. Para invocarla, es necesario poner unos determinados códigos en los registros de la CPU (ax: 0x1130, bx: 0x0600), llamamos a la función usando una interrupción software (para la Bios de video, la 0x10) y esta amablemente nos dejará los valores deseados en otros registros de la CPU (es: segmento, bp: offset). Para ello, creamos una estructura de tipo REGPACK, a la que llamaremos rp y que actuará como pseudoregistros (y que no se nos olvide el #include del dos.h :P) : struct REGPACK rp; Y esto nos dará , como dije antes, la dirección de la tabla de patrones de bits de los caracteres, con el segmento en ES y el offset en BP. Ahora sólo necesitamos montarnos nuestro punterillo a dicha dirección: char* lista = (char *)MK_FP(rp.r_es,rp.r_bp); Y ya tenemos nuestro puntero mágico apuntando al inicio de la tabla.¿Y para acceder a una posición concreta? Bueno, supongamos que quiero ir a la letra M, a la que, como dije antes, corresponde el código 77. Pues simplemente tendría que "saltar" los 76 caracteres anteriores, a 16 bytes cada uno. Podría hacerlo así: lista = (lista+77*16); Con eso estaría apuntando al inicio de los 16*8 bits de los que consta el patrón de la M. (Nótese que estamos usando un puntero a char, es decir, que cada vez que avancemos una posicion (por ejemplo, lista= lista+1) estaremos avanzando 8bits)¿Y cómo "pinto" el patrón de bits? Esto ya es más chispeante ^^ Necesitamos crearnos una bonita función o equivalente que devuelva un determinado bit (0 o 1) de un char (1byte, 8bits). Un ejemplo de cómo hacerlo podría ser esto: (*p & (1<>n; que devuelve el enésimo (n) bit de un char* p, usándo máscaras y desplazamientos. Entonces, para obtener (por pantalla,o a un archivo) el patrón de bits, simplemente debemos apuntar a la letra deseada (lista = (lista+77*16);), y recorrer sus 16 filas mostrando bit a bit las 8 columnas (las columnas en orden decreciente, por que si no sale como reflejado en un espejo). Dicho así queda un poco raro, pero en realidad cada carácter no es más que un churro de 16bytes que tenemos que sacar por pantalla en cachos de 8 en 8 bytes. Si alguien tiene curiosidad, he subido un archivo con el volcado de todos los patrones aquí. (Hecho a base de un bucle de 256 (caracteres), otro anidado de 16 (filas) y otro más anidado , de 8 (columnas)) . Los primeros treintayalgún patrones no tienen mucho sentido porque son caracteres no imprimibles, las letras ·de verdad"se ven más claras :) En breve (aka cuando lo termine xD) colgaré otro post explicando cómo pasar esa tabla a RAM, modificarla con tus propios caracteres customizados, y toquetear las interrupciones para que los patrones usados sean los tuyos y no los de la BIOS :) [Siguiente capítulo: Modificación de los patrones de bits de los caracteres] Hace un par de días sufrí en propias carnes algo que nadie jamás me había explicado hasta ese momento: La diferencia entre los punteros near y los punteros far. Resulta que un puntero far ocupa cuatro bytes porque guarda el segmento (2bytes) y el offset (otros 2bytes), mientras que un puntero near sólo ocupa dos bytes porque sólo guarda el offset.¿Qué significa esto? Que con un puntero near NO puedes acceder a otro segmento distinto al que estás usando. Curioso... (Para los que no sepan de qué hablo: un puntero es mas o menos como una variable, pero en vez de guardar un valor (’2’, ’3’, "patata") guarda otra dirección de memoria (04E6,0000 por ejemplo)). Otra cosa importante es el modelo de memoria elegido. Esto representa el modelo de "cómo" accederá a memoria el compilador. En TurboC podemos elegir entre Tiny, Small, Medium, Compact, Large y Huge. Estos se diferencian en los tamaños de los segmentos de código, datos y pila, y en el tipo de los punteros. Podría explicarlo en modo texto pero se ve más claro en una tabla: 1Mb Por ejemplo, el modelo Medium se utiliza para programas pequeños que utilizan pocos datos, al contrario que el Compact, que es usado para programas pequeños que utilizan gran cantidad de datos. Como ejemplo de lo "importante" (pasad por alto la trivialidad del programa de ejemplo xD) que puede llegar a ser esto (habérmelo leído antes me hubiera ahorrado una tarde de programas con comportamientos erráticos), os expongo el ejemplo que me trajo de cabeza a mí. Resulta que el compilador que usamos para esta asignatura, Borland TurboC (sí, algo actual y todo eso) sobre MS-DOS (idem) viene por defecto con el model Small. Y claro, para esto necesitabamos como mínimo Compact (aunque vamos de sobraos y lo recomendado era Huge) El programa en cuestión consiste en acceder a la memoria de video y escribir directamente en ella para crear un rectángulo con un carácter y todas las variantes de color de carácter y color de fondo. El acceso a la memoria se realiza mediante un puntero, tal que así: char *p = MK_FP(0xB800, 0x000) donde MK_FP indica que queremos un puntero far (FP,Far Pointer) y 0xB800, 0x0000 indica el inicio del segmento 0xB800, que es el de video. Así que, nos ponemos manos a la obra y compilamos/enlazamos/ejecutamos con varios modelos de memoria (esto se puede cambiar desde Options/Compiler/Model en el TurboC) -Tiny, Small y Medium: Los "efectos" son variados, desde un warning al compilar ("Conversión sospechosa de puntero"), warning al enlazar ("No hay pila"), error al ejecutar ("Instrucción no permitida") hasta autoabortos: Bueno, al menos no me salta el antivirus como hace un par de años xD -Compact, Large y Huge: Ahora sí que se está accediendo al segmento "bueno" por ser un puntero far, y el resultado es justo el que esperábamos: ¿A que es mono? Pues casi lagrimeo un poco cuando descubrí que mi código era bonito y maravilloso pero que el error estaba en el modelo de memoria elegido. Ahora seguro que ya no se me vuelve a olvidar :D Ahora resulta que si tienes un modem de 56 k .... ¡tus descargas tardarán menos que si te conectas con ADSL! Genial. El mundo al reves xD Me ocurrió en la página de descarga de software de MSDN (Microsoft Developer Network). Sí. Hace muchos muchos muchos años cometí el error de crearme una base de datos en Access y ahora me da pereza migrarla a MySQL :P ¡Los chicos de Microsoft son unos chistosos! (aunque también puede que sea casualidad... ) ¿Sabeis cuál es el fondo de escritorio por defecto al instalar la versión beta de Windows 7? Este: (la foto es de EnigmaTres, donde hay un completísimo reportaje fotográfico sobre dicho SO) ¿No le veis la gracia? Ains, cómo se nota que no teneis pescaditos en casa.... El pececito tan mono que protagoniza el fondo es un Betta Splendens, aka Luchador de Siam, aka Beta Combatiente. ¿Lo pillais? ¡Un beta para windows beta! Qué chispa xD Por cierto, se llaman betas combatientes porque los machos se pelean entre ellos hasta que sólo queda uno... y las hembras no lucen tanto porque no tienen las aletas tan grandes y colores tan vivos. Lo cuál es una pena porque técnicamente sólo puedes tener uno de estos cada vez ... ¿Se peleará Windows 7 con los otros windows? schan chan Vale, mis profesores de Programación Orientada a Objetos son oficialmente unos frikis xD Atención al código del corrector de la práctica2 (sólo copypasteo los cachos interesantes :P) // Creamos la especialidad, sus habitaciones y sus médicos: Y ya de paso, el mensajito navideño que sale al ejecutarlo tampoco tiene precio: Running 50 tests<~~~ (:> F3L1Z N4V1D4D <:) ~~~>.................................. WARNING PARA ALUMNOS: Por cierto, chavales, al ejecutar evalua.sh se borraran los directorios include, lib, y src del directorio donde esté. Así que llevad cuidado no vayais a perder todos los fuentes con sus modificaciones. Adivinad a quién le ha pasado. Efectivamente,a mi. Menos mal que eran una copia de los originales, así que "sólo" he perdido el trabajo de una tarde. (Fotos de la epic-fieshtaca con bizarro invisible de anoche en breve -esperemos-) ¡Sorpresa! Microsoft saca su propia linea de camisetas, Softwear, dividida en dos colecciones: Classic y Common’s. No tienen muchos diseños, pero lo mejor (y más extraño) es que... (para algunas) ¡puedes descargarte la plantilla con el diseño para fabricarte la camiseta tú mismo! Increíble. Y encima tienen nombres carismáticos. En la colección Classic: - The DOS Tangle: The first logo you saw on a screen. (La Maraña de DOS: El primer logo que viste en una pantalla) - The Misdemeanor: Everyone deserves a second chance. (La Infracción: Todo el mundo merece una segunda oportunidad) - The 101: Learn to speak the language. (La 101: Aprende a hablar el lenguaje) - The Albuquerque: It all started in the desert. (La Albuquerque: Todo empezó en el desierto) En la colección Common’s ("coproducida" con el rapero y actor Common) - The Reminisce: 1985: Word is born (La Evocadora: 1985, nace el Word) - The Creator: The Code of Hip Hop (El creador: El código del hip hop) - The Giver: The Real Message (El dador: El auténtico mensaje) - The Vision: The Boss Sees Clearly (La visión: El jefe lo ve claro) Reconocedlo chicos: a veces hacen cosas guays... ¡casi tanto como el Solitario! (y yo tengo que confesar que la de MSDOS me encanta xD) En principio, parece ser que pueden comprarse en Urban Outfitters, pero sólo aparecen dos modelos... Muy en la línea de "cómo decir de forma rebuscada algo más simple que el mecanismo de un botijo" (¿recordais la Ley de Rendimientos Decrecientes?), acabo de encontrar esta definición del principio de optimalidad de la Programación Dinámica: Un problema de optimización cuya solución se puede expresar mediante una secuencia de decisiones cumple el principio de optimalidad si, dada una secuencia que corresponde a la solución óptima, se cumple que cualquier subsecuencia de esa solución corresponde a la solución óptima del subproblema asociado. Está clarisimo, ¿verdad? Seis veces me lo he tenido que leer :P (Por cierto, la forma "clara" de decir eso mismo en castellano es "Si el camino de A a C es óptimo y contiene el subcamino de B a C, este también es óptimo) Versión 2.0 grafico-textual de la felicidad: Acabar la práctica de POO... ¡con más de una semana de antelación! (por cierto, en la anterior tuve un encantador y nada desdeñable 8.6) a) 50/50 tests ok =D b) 0 errores de valgrind, 0 fugas de memoria :3 Dicho esto, me encantaría poder decir algo así como "ya soy libre" o "wow, voy a tomarme un tiempo de descanso", pero no, tengo dos exámenes, otra práctica y un proyecto final de Diseño y Análisis de Algoritmos. Y como me va la marcha, no podía cogerme uno de los proyectos facilmente encontrable (su pseudocódigo) en google, o libros o algo. Nooooo. Me he cogido (con un par) el único problema que se han inventado en mi universidad, así que me toca tipificar y diseñar mi propio algoritmo de Ramificación y Poda aplicado a un problema de asignación de turnos por preferencias. Y el soplido que ha emitido mi profesor cuando le he dicho que había elegido este, no era nada esperanzador xD En fin, que cuando lo tenga terminado, entregado y mi nota en el expediente, os contaré la gran fumada xD No, no tengo un iPhone, y no, probablemente no es esto lo que esperabais pero... es terriblemente cierto. ¿O no? Transformada de Fourier en el límite: Dícese del equipo de ingenieros en Telecomunicaciones que hacen transformadas de Fourier mientras se tirar en parapente desde la cima del Everest. (inspirado por mi clase de Señales y Sistemas de hoy) Mirad qué chispa tiene el tipo que escribió el manual de comandos especiales de doxygen. Esto puede encontrarse en la parte referente a la etiqueta author: Lo que en castellano viene a ser: Ooops... perdón perdón, NO ese Intrepid Ibex, sino este otro: Atended, os contaré mi historia: Jueves, 30 de Octubre 2008 - Ubuntu Intrepid Ibex ya está entre nosotros, y así me lo comunica el gestor de actualizaciones. ¡Hey! ¡Mola! ¡Upgradeemos! Le doy la orden, y actúa en consecuencia: Buscar paquetes, borrar los que ya no le valen (un tal landscape-client, el flashplayer y .... los drivers de la NVIDIA) instalar, blablablá, limpiar. Y ahi se queda. Colgado. Colgadísimo. Mucho rato. Busco en google y descubro que es aparentemente normal, que todo está acabado peeeero se le va la olla y no se cierra. ¿La solución? Cerrar a mano (no hay botón cancelar, por supuesto) Guay, cierro, reinicio (que supuestamente era lo que faltaba) y hey... Veo algo raro! Es.. es la resolución! Bingo:mi encantador pc es incapaz de sacar más de 800x600. Voy al gestor de Controladores de Hardware, y , efectivamente, hay un paquetito de drivers majetes de NVIDIA que están siendo bloqueados por ser software privativo (lo típico), marco "habilitar"... y espero. No me deja habilitarlos (sí, era superuser,sí). La primera en la frente. Bueno, me dije, que no cunda el pánico. Sigo mirando cosillas... hasta que veo algo preocupante en el acerca-de: "Ubuntu Hardy Heron". ¡¿Cómo?! Si acabo de upgradear! Vuelvo a ejecutar el gestor de actualizaciones y veo que, aunque supuestamente sigo estando en Hardy, todos los repositorios han sido "actualizados" para Intrepid. ¿Mande? El caso, le digo que si, que updatee todo lo updateable, y se ofrece a descargar 800 MB. "Vale", pensé, "esto tiene sentido". Pues lo dejo descargando/instalando/configurando cosas y me voy al gimnasio. Cuando vuelvo, aparentemente no ha habido problemas con la instalación y me está pidiendo otro restart. Se lo doy, y empiezan los líos. Por lo visto no cierra bien sesiones y me aparecen "unas sobre otras", cuando cierro unas las otras se abren y cosas raras. Consigo apagar, y cuando enciendo... ..."Undefined Video Mode 21b" WTF?! Ya ni el modo terminal me respeta, increíble... Selecciono un modo al azar, y cuando se cargan las X... ¡¿QUÉ DEMONIOS ES ESTA RESOLUCION DE MIERDA?! ¡No va más allá de 640x480! Esto es increíble, no puedo ver ni la cuarta parte de cada maldita ventana T_T Descargo los controladores de la NVIDIA de su propia página web. sudo sh NVIDIA-blablabla.pkg1.run. "You appear to be runing an X server; please exit X before installing" aka "Zas en toda la boca" . Pues nada majo, ¿que lo quieres sin entorno gráfico? Pues como tu quieras, si a mi me da igual. Me voy a una consola, supuestamente cierro las x, pero nada aquello no tira ni para atrás, cada vez tira un error. Vuelta escarbar en google. Leo sobre un programilla llamado ENVY, que detecta tu tarjeta NVIDIA, instala los controladores apropiados y además los configura. Oye, esto ... mola, eh? Instalo ENVY, supuestamente hace lo que debe hacer... y nada, restart again. Tachán... ahora puedo poner hasta 800x600, uoo!! Me siento ochentera a tope, es una super mejora! (odio contenido) Inesperadamente, el gestor de actualizaciones me da un aviso, tiene algo para mi. ¿Habrá tenido sentido algo de lo que hice? Y ahora viene la gracia: Errr... ¿Cerrar? Respuesta del sistema (dramatizacion): "Hola, hay chorrocientos paquetes que podrías actualizar.. pero mira, te los enseño y no te dejo instalarlos...ni siquiera seleccionarlos!!" Bueno, pues.... ¿Actualización parcial? What the elf? Finalmente, me permite instalar DOS paquetes, ambos relacionados con jockey-gtk (el gestor de controladores de hardware del que hablé arriba). Lo actualizo y... tachán, deja de funcionar. Ahora ni siquiera se abre, ni en modo gráfico ni invocándolo desde una terminal. Y en esas estamos: ni para alante, ni para atrás. ¿Qué puedo hacer? En principio pensé en hacer un downgrade "casero y manual": cd de la 8.04 y chafar esta bazofia que ni es una versión ni otra xD Aaaaaunque no tendría gracia perder todas las configuraciones y eso... pero en fin, más se perdió en la guerra. Cualquier otra idea, elefante volador y/o helado de chocolate será bienvenido. Y a los que hayan llegado hasta aquí.. un frigopie por su paciencia xD EDITADO: Unos 15 minutos despues de escribir esto apago, enciendo.... y FUNCIONA. Acojonante. Mi resolución vuelve a ser de 1200x800. Eso sí, del jockey-gtk ni rastro. Y lo de las actualizaciones tampoco tira. Pero... al menos puedo trabajar. :D EDITADO 2: Vale, como siempre, es postear y arreglarse xD Gracias al caballero enver555, que me dio sabios consejos tal que sudo apt-get install ubuntu-desktop sudo apt-get update sudo apt-get dist-update todo ha ido a pedir de mota, se ha arreglado a sí misma, y ya es una Intrepid Ibex purrrrfect :D Pues sí, señores, señoras... a falta de conciencia propia y buenos hábitos, he decidido instalarme una externa: QToDo. QToDo es un ToDo List Manager. O sea: un software al que yo le digo las cosas que tengo que hacer (exámenes, entregas de prácticas,..), el plazo del que dispongo, la prioridad y el estado de la tarea... le doy unos criterios para ordenar esa lista (por ejemplo, plazo más corto y prioridad más alta primero).... y él me dice un orden para realizarlo! Es genial! Aquí os dejo un par de pantallazos del modo "completo" (programa abierto, para añadir y editar eventos) y en el modo "vista rápida", guardadito en su panel. Si te parece interesante, que yo sepa está solo para linux, pero seguro que hay mil opciones más para otros sistemas) Adivine, en menos de dos minutos, dónde está el fallo (clic aqui para ver en grande, clic en la imagen para pistas). ¿A alguien más le ocurre eso? O_oU Después de unos días intentando explicar esta tira, y confirmada mi nula gracia para contar cosas graciosas, he llegado a la conclusión de que acabaré más rápido si la cuelgo directamente que si sigo intentando contarla xD Es de xkcd, que recordareis (espero) de otros summums del graciosismo frikil (¿o frikismo graciosil?) como, por ejemplo, Fetishes. Esto lo ví en una foto de tuenti (si, he dicho tuenti, si), y como me pareció carismático, pues ahí va. (Y quien dice "teleco", dice "informática", "Ingeniera industrial", etc xD) Complementos de la mujer universitaria vs Complementos de la mujer teleco Mujer Universitaria: Maquillaje y pote para la cara (nunca se sabe cuándo el chico de sus sueños puede invitarla a tomar una Coca-Cola Light en la cafetería de la facul) Mujer Teleco: Vaselina u otros lubricantes (nunca se sabe cuándo el profesor de sus pesadillas puede petarle el culete con un examen sorpresa) Mujer Universitaria: Cuerdecitas de muchos colores para hacerse unas trencitas guays a lo Lucrecia por si se aburre como una ostra en clase. Mujer Teleco: Cables de colores para poder distinguir el follón de señales que tiene montado en la placa. Mujer Universitaria: Carnet universitario por si a última hora se entera de que hay una fiesta y tiene que demostrar para entrar que es estudiante de la universidad. Mujer Teleco: Carnet universitario para poder sacar manuales y cables de bus del laboratorio. Mujer Universitaria: Algo de dinero suelto por si en el último momento una amiga le anima a saltarse las clases para tomarse un piscolabis en la cafetería. Mujer Teleco: Algo de dinero suelto por si en el último momento se quema un chip y tiene que ir a Electrónica del Futuro a que le claven. Recién salido del horno de mi práctica de Señales y Sistemas: MATLAB no se aclara consigo mismo... (Parte I - Unpacking e Instalación de Windows XP) Bien. Sábado por la mañana, he dormido de maravilla, tengo un sandwich de nocilla en la mano y mucho karma positivo. Todo parece correcto para continuar con la operacion. Inserto el disco de Ubuntuu 8.04, y comienzo con la instalación (antes hago una verificación de disco y un chequeo de memoria). Elijo el particionado manual. Hay: - /dev/sda1 (fat 16) -131 MB - /dev/sda2 (ntfs) - 52427 MB (Windows xP ) - /dev/sda3 - 20974 MB - /dev/sda6 - 326543 MB Formatearemos la sda3 como "sistema ext3 transaccional", estableciendo el punto de montaje " / ". Necesitamos, además, una partición de intercambio (swap). ¿Qué tamaño debe tener? Si la RAM tiene menos de 1 GB, la swap debe ser del mismo tamaño. Si la RAM es de entre 2 y 4 GB, la swap debe ser más o menos la mitad de ésta. Y, como mucho, el tamaño máximo que debería tener una partición swap es 2 GB, porque no siempre el sistema será capaz de manejarla. En mi caso, le daré un tamaño de 1GB, así que le "quitamos" un cacho a la sda6 para crear una partición lógica sda5 al final, que formatearemos como espacio de intercambio. La particion de 300GB, la sda6, la formatearemos más adelante como ntfs desde windows. La tabla de particionees queda tal que así: - /dev/sda1 (fat 16) -131 MB - /dev/sda2 (ntfs) - 52427 MB (Windows xP ) - /dev/sda3 (ext3) - 20974 MB - /dev/sda6 - 325540 MB - /dev/sda5 (swap) - 1003 MB Aceptamos todo, pide reiniciar.... y ahi lo tenemos: grub se ha configurado a sí mismo y podemos entrar sin problemos a windows y ubuntu :) Ahora bien, ¿qué pasa con esos 300 gigas que se han perdido en el limbo de los discos duros? Pues nada, hacemos uso de gparted y los formateamos como fat32, para poder acceder a ellos desde windows y formatearlos como ntfs (si, es una solucion cutre pero es la unica que se me ha ocurrido :P) Desde windows, vemos una unidad C de 52 GB y una unidad D de 303 GB. Creo un par de archivillos desde cada SO en la particion de 300, para comprobar que efectivamente funciona bien, y listo! Ahora, el modo pijadilla para que la particion de windows y la de datos se monten al iniciar: instalar (sudo apt-get install) ntfs-3g, fuse-utils y ntfs-config. Desmonta ambas particiones si estaban montadas. Ahora, entra Aplicaciones > Herramientas de sistema > Herramienta de configuración NTFS > Activa el soporte de escritura interno y externo> escribe un punto de montaje (rollo "/media/Datos" y "/media/windous") y a correr. El siguiente paso, comprobar que todo funciona correctamente. Una vez que estamos seguros de que todo está en su sitio y que no vamos a necesitar formatear o toquetear cosas raras, ya podemos empezar con las cosas divertidas: instalar software y customizar ambos sistemas. Y después, a meter los datos del antiguo pc :D Otra pijadilla: Por defecto, Windows alojará Mis Documentos en la misma partición que él está instalado. En teoría esto no es lo que queremos puesto que la partición de 300 GB está para eso, para los datos (música, fotos, documentos etc). Para indicarle que la queremos en otro sitio, vamos Mis Documentos, hacemos clic derecho > Propiedades. En el campo Destino, indicamos "D:Mis Documentos" , aceptamos y ya está listo :D Y ale, si todo ha ido bien, Perseo y Aleph estarán preparados para poder sustituir a Adel y Sirio :) (Dell XPS M1330 - Parte I - Unpacking e Instalación de Windows XP) Bueno, esta "Parte II" de mi aventura con el M1330 va dedicada a los controladores y a Windows XP. Debido a que Dell no ofrece soporte de ningun tipo para XP con los XPS, hay que buscarse un poco las castañas para encontrar algunos controladores. Me he tirado todo el día de foro en foro y de tutorial en tutorial para conseguir todos los drivers que necesitaba, he visto errores de todos los colores y he reiniciado unos seis millones de veces. Especialmente, los más chungos de encontrar han sido los de la gráfica (una Nvidia GeForce) y los de audio (la página del fabricante ni siquiera existía), pero tambien ocurrían cosas curiosas, como controladores que supuestamente estaban instalados pero los dispositivos no tiraban, o dispositivos no identificados, o "comportamientos erráticos". Finalmente, he elaborado una lista con los controladores que a mi me han funcionado y un par de tutoriales majetes. A saber: --- Tutoriales: - M1330.es - DellComunity Forum/Laptop/General Hardware: Install Windows XP on Dell XPS M1330 --- Drivers: - Intel Mobile Chipset Driver: R153997 (ftp Dell) - Ricoh Memory Card Driver: R141246 (ftp Dell) - Creative Labs Laptop Integrated Webcam: R173082 (ftp Dell) - Dell Touchpad / Pointing Stick: R175658 (ftp Dell) - Broadcom 59XX 10/100 Ethernet Controller: R155246 (ftp Dell) - NVIDIA-GeForce 8400M GS: nv_gfgo_101.34-2kxp32 (softpedia) - SigmaTel HD Audio Codec-Driver: R158235 (ftp Dell) - Bluetooth/Wireless Driver: R127314 (ftp Dell) - UPEK TouchStrip Reader (lector de huellas) : 2.12_package.zip (upek.com) -- No lo he probado, pero supongo que funciona - Intel Serial ATA driver: 7kim06ww.exe (ftp IBM) - Microsoft UAA Bus Driver for High Definition Audio Support: B888111 WXPS2 (ftp Microsoft) El siguiente paso debería ser instalar todo el software que utilizo habitualmente, pero prefiero esperar a.... Parte III: Instalando Ubuntu/Partición de Almacén He sido mamá! La criatura, de un agradable color azul medianoche, midió 13.3" y pesó aproximadamente 1.5kg. Aquí podeis ver unas fotos de una madre orgullosa (yo) con su encantador retoñito y los trastitos que venían con él: - Mi pequeño y yo (disculpad mi peinado, que acabo de dar a luz): - Funda de regalo: - Adaptadores, cables de red etc etc (con notas en flickr) - Mi nuevo chiquitín con su hermano mayor: Desgraciadamente, las cosas no son perfectas y sabía que habría problemas en el parto (concretamente, con la Vista del bebé) así que contaba con someterla a una delicada operación de neorocirugía en el mismo momento de su nacimiento. ¿Cuál es el objetivo final? Desterrar Windows Vista (para siempre), instalando a cambio Windows XP y Ubuntu, además de realizar una partición de datos. Allá vamos: 15:00- Abro paquete, saco PC, cables, libretos y demás parafernalia. 15.15- ¡Encendido! Todo correcto, pero: el disco hace un clic-clac que según Dell es perfectamente normal y la unidad óptica al insertar/extraer un disco suena como a gato. Según foros y tal, es muy normal. Eso espero ¬¬ 15:20: Confirmación de que no me voy a llevar bien con Vista. 15.30: Windows Vista consigue que mi teléfono móvil se quede colgado con una transferencia bluetooth. Eso es lo que llaman daños colaterales, no? ¬¬ 15.45 - Leo guías y más guías, me decanto por la más completa y "recomendada", la de http://m1330.es 17:00 - Formateo todo (adios Vista, adios MediaDirect, adios Recovery Partition). El disco es de 400 gigas, así que dejo 48 para Windows, 20 para Linux, y el resto para datos. 17.30- comienza la instalación de Windows XP 17:50- termina la instalación de Windows XP. Hace unos chasquidos muy raros que antes no hacía. 18.00- Instalo drivers.FSM bendiga el sistema de drivers de DeLL 18:10- Por fin, ya detecta la tarjeta de red, asi que puedo conectar y bajar un archivo que hace falta para algo raro del disco duro (SATA vs AHCI) 18:30- Sigo instalando drivers mientras me como un sandwich de philadelphia 18:40- Me pego el susto de la era al descubrir que los botones iluminados de audio, sonido y extraer cd son ópticos xD 18.45: Muchas cosas no funcionan, encuentro un pack lleno de drivers para el m1330 y los instalo todos a saco. 19:00 - Todos los drivers instalados, y reiniciando 19:05: La gráfica hace cosas raras, de los drivers de audio ni rastro y hace unos crujidos sospechosos. 19:15: Necesito un descanso, mañana seguiré. Y bien, hasta aquí mi aventura. Seguiré ojeando por webs y tal a ver qué encuentro, y mañana más. Ideas, ayudas y palmadas en la espalda, en los comentarios :P Pd: bueno, olvidé decirlo pero la idea es que quede con XP y Ubuntu ^^ Sigue la aventura en... - Dell XPS M1330 - Parte II - Drivers en XP - Dell XPS M1330 - Parte III - Instalando Ubuntu / Partición de Almacenamiento Porque ellas jamás mienten: Use The Best... Como bien le he dicho a Janzo cuando me la ha enviado: "acojona. pero más me acojona haberla pillado". Podeis ver el original aqui, y algunas "pistas" en la wikipedia, como El Teorema de Incompletitud de Gödel, los Principia Mathematica de Russell/Whitehead y por supuesto, algo de autorreferencia. Ley de Hofstadter: Siempre toma más tiempo del que se preveía, aún cuando se toma en cuenta la Ley de Hofstadter. (visto, como no, en Gödel, Escher, Bach: Un Eterno y Grácil Bucle) Mirad qué GMT* más simpaticuno ha sacado el Skype cuando me he conectado desde la PSP: GMT -46529.6!! Franja horaria de Marte, como mínimo. Lo vio outime, que se copió vilmente y también lo posteó :P *Para desubicados: El GMT varía entre GMT -12 (más o menos en el Pacífico) y GMT +12 (Australia), siendo GMT+1 la hora española. ¿Creíais que se habían acabado? Pues no, os engañé! Hoy os traigo aún más pruebas de la absurdidad de los Arquitectos de Computadoras ^^ Algunos sí, y otros no, sabréis que hay dos maneras de organizar en una memoria los datos de más de un byte: Big Endian y Little Endian. A esto se le llama "Endianness": - Little Endian: Usada por el DEC PDP 11, el VAX y los 80x86. En esta ordenación, la dirección de un dato es la dirección del byte menos significativo. Es decir, tomando el ejemplo de la wikipedia, que si queremos almacenar el valor hexadecimal 0x4A3B2C1D, se almacenará "1D 2C 3B 4A" - Big Endian: Usada por el IBM 360/370 y los Motorola, por ejemplo. Para los computadores que siguen esta ordenación, la dirección de un dato es la dirección del byte más significativo. O sea, que en el ejemplo anterior, el valor a almacenar sería "4A 3B 2C 1D" Ahora bien, ¿por qué se llaman respectivamente "Big Endian" ("de grande a final") y "Little Endian" ("de pequeño a final"). Pues por algo tan sumamente encantador como puede ser el libro Los Viajes de Gulliver. En esta obra, hay un grave conflicto armado entre Lilliputienses y Blefuscanos. ¿La razón? Los lilliputienses abren los huevos hervidos únicamente desde el extremo pequeño y, los blefuscanos, sólo desde el grande. ¿Por qué? Inicialmente, todos abrían los huevos por el lado ancho, pero el abuelo del rey de Lilliput, cuando era pequeño, se cortó abriendo un huevo y emitió un decreto que promulgaba por ley que todos los lilliputienses tenían que abrir los huevos por el lado pequeño (Concretamente: "Se ha calculado que, en distintos períodos, once mil personas han preferido la muerte a cascar los huevos por el extremo más estrecho"). Y sí, eso es motivo de guerra entre ellos. Primero, Gulliver está de lado de Lilliput, luego se pasa al bando de Blefuscu, vuelve a luchar por Lilliput y después es ascusado de alta traición. Luego se intenta firmar un tratado de paz entre ambas naciones, para lo que necesitan un traductor (ya que a pesar de ser naciones hermanas, cada una habla una lengua distinta). Aunque el tratado se firma por fuerza y no acaba de cuajar. Finalmente, Gulliver se harta de todo y se vuelve a su casa, y que cada uno abra los huevos como le de la gana O_oU (Podeis leer el capitulo en el que se habla de los huevos en Wikisource) Y para acabar, pregunta: ¿Tú por qué lado abres los huevos duros? Yo por el grande, siempre se les queda aire ahi y es más fácil. Aunque mi profesora de Dibujo Técnico de bachillerato nos contó la manera de ponerlos en el cazo para que estuvieran perfectamente equilibrados y salieran bonitos y lustrosos. La pega es que nos lo contó a base de ovoides, tangentes y demás, y no recuerdo nada :P Este ha sido mi fantásticomaravilloso plan de esta noche. Iba a explicarlo y así se me queda mejor, pero es que veo triple, especialmente los cablecillos del esquema T_T Os tendréis que conformar con la versión críptica megaguay :/ 1. Ciclo de búsqueda de instrucción IF/ID.IR ← Mem[PC]; 2. Ciclo de decodificación de la instrucción/carga de registros 3. Ciclo de ejecución / dirección efectiva Referencia a memoria Instrucción ALU Salto/ bifurcación 4. Paso de acceso a memoria / completar salto: Instrucción Load/Store Instrucción ALU Instrucciones ALU Disfrutad mientras podais de mis rayadas de Arquitectura de Computadores a altas horas de la madrugada (5.13 en estos momentos), mañana empiezo con Programación Orientada a Objetos y ahí si que no hay de dónde sacar... espero xD En primer lugar, ¿qué es DLX? DLX es una arquitectura de microprocesadores RISC de carga-almacenamiento, muy sencilla. Está basada en observaciones sobre las primitivas más frecuentes utilizadas en los programas y suele utilizarse mucho para comparativas de rendimiento y cosas así. En segundo lugar, y motivo de este post: ¿De dónde viene ese nombre? En principio es algo que no llama la atención, "DLX", bah, qué chorrada. Pues no, es un claro ejemplo de aburrimiento épico: Resulta que viene de hacer la media aritmética de nombres de una serie de máquinas próximas* a DLX, expresado en números romanos: AMD 29K , DECStation 3100, HP 850, IBM 801, Intel i860, MPS M/102, MIPS M/1000, Motorola 88K, RISC I, SGI 4D/60, SPARCStation-1, Sun-4/110 y Sun-4/260. O sea: 29 + 3100 + 850 + 801 + 860 + 102 + 1000 + 88 + 1 + (4 + 60) + 1 + (4 + 110) + (4 + 260) = 7274 7274 / 13 = 559.53 , que aproximando es 560, que en números romanos es DLX. *No sé exáctamente a qué se refieren con "próximas". ¿En el tiempo, quizás? Según mis apuntes de Arquitectura de Computadores: "La mejora incremental en la aceleración conseguida por una mejora adicional en el rendimiento de una parte del cálculo disminuye tal y como se van añadiendo mejoras" Ayer dediqué más de 15 minutos de mi vida a intentar comprender esa frase. Ahora, por fin, creo que lo he conseguido. Estaba leyendo "Las 21 Leyes Básicas de la Programación" en SoyGik, y al llegar al punto "8. La probabilidad de hacer el ridículo en una demostración pública de tu software es directamente proporcional al número de gente viéndola, creciendo además de manera exponencial el riesgo cuanto mayor sea la cantidad de dinero invertido en dicha aplicación." , no he podido evitar acordarme de este video: woohoo!! Es una conferencia de COMDEX (una de las convenciones de negocios de computadores más grandes del mundo -que ya no se realiza-) en abril de 1998, donde que Bill Gates y su ayudante Chris Camposella intentaban mostrar lo sencillísimo que era Windows 98 de usar. Concretamente, la idea era enchufar un scanner para demostrar que Windows 98 soportaba dispositivos Plug and Play. Al menos Bill se lo toma con humor diciendo "That must be why we’re not shipping Windows 98 yet." (o sea, "esto debe de ser la razon por la que todavía no vendemos Windows 98") Porcierto, creo que este video es el más claro ejemplo de "situación en la que no me gustaría estar" xD Uoooo quiero uno de estos, y lo quiero ahora! Traduzco de su propia web, que yo estoy perra para inventar y mejor que se han vendido ellos no lo voy a hacer yo XD "El NeoCube es un elemento de entretenimiento sin igual. Está compuesto por 216 imanes de tierras-raras, individuales y muy potentes. Esto te permite crear y recrear una increíble cantidad de formas y patrones. El NeoCube es literalmente un puzzle con billones de soluciones, que te dará horas y horas de entretenimiento sin igual" Vale, dicho así suena a chufa (salvo la frikada de que esté hecho de lantánidos y/o actínidos xD), así que lo realmente revelador es ver el video: Este es solo uno de ejemplo, pero hay muchos más en videos relacionados. Y como pone en la descripción (en youtube): "NeoCube, quizá el objeto más guay que todavía es legal poseer" xD ¿El precio? 40 dólares + gastos de envio desde los EEUU WARNINGS: Puede dañar dispositivos electrónicos si entran en contacto, al igual que no deben acercarse a personas con marcapasos. Nos recomiendan no acercarlo a discos duros ni similares (obvio) y no quemarlo (¿qué pasará?). Y lo más interesante: "Si se desprende el material metálico que recubre las bolas, deje de usarlo. El material NdFeB que forma las bolas es relativamente nuevo, y sus efectos a largo plazo sobre el contacto con la piel son todavía desconocidos" uooooo y encima peligrosillo XD Quiero uno!!! maeghith ha puesto este video en un post sobre impresoras, tinta, y hojas de alineación, como respuesta a mi ’genial’ idea de hacer impresoras a base de plastidecores. Como podeis ver, es un simpático robotito con 6 patitas al que se le ha añadido un rotring. Según pone, los archivos dxf (de autocad, por ejemplo) se convierten en movimientos de translación del robot y se le transmiten secuencialmente. uaaaaaahhh!!! qué monadaaaaaaa (ojitos) es que es monísmo TT_TT (Entrada BETA hasta que se añada el video del evento xD) EDIT: Ya hay video! Aunque es de la primera prueba que hicimos. Se ve como funciona bien hasta que tiene que dejar las piezas en la cinta, donde hay un pequeño problema "lógico" xD Como bonus final, se nos oye disertando sobre la sentencia MOVED XD Automatización, gran asignatura. Pocas otras han conseguido que los alumnos se queden una hora de clase más sin rechistar XD Y es que hoy , además, teníamos una buena razón: la práctica consistía en hacer unos miniprogramitas para que un brazo robótico hiciera cosas. Concretamente el robot, un Scorbot ER-IX, tenía que coger piezas de un plano inclinado para ponerlas en una mesa giratoria y, cuando estuvieran todas, moverlas a una cinta transportadora a distancias fijas. No es difícil, pero había un problemilla fundamental: no tenía ni la más remota idea de programar con ACL (Lenguaje de Control Avanzado). Pero contaba con una poderosa arma de nivel-5: Un manual de 200 páginas sobre cómo utilizarlo. (y que colgaría aquí, pero como no estoy segura sobre la legalidad de esto.... a quien le interese que lo pida :3) Ahí va una mini mini mini explicación de cómo utilizarlo (por si algún día vuestra vida depende de un bicho de estos) En primer lugar, varias cosas importantes: El tamaño máximo de nombre de variable es 5 caracteres, las etiquetas de salto tienen que ser números, no valen caracteres raros (tildes, eñes...), ni tabuladores, y las líneas de comentarios deben empezar con asterisco y no ser excesivamente largas. Además, las distancias se miden en décimas de milímetro (cuando son lineales) y en pasos de encoder (las que son radiales). Una vez aprendido eso (a base de "BUG DETECTED" ¬¬)... creo que va a ser más rápido si copio mi propio programa y lo explico línea a línea XD BRICONSEJO: aparte de esta versión "plana"(lo rojo, nada mas), en mi pc trabajé con una versión "user-friendly" en la que sí que usé tabuladores y comentarios verdadosos. Cabecera: sirve para asignar a los distintos programas (AUT10 .. AUT13) los códigos 70..73 $pr 70 AUT10 Programa AUT12: Mueve la cinta transportadora 3000 décimas de milímetro (esta vez, el movimiento es lineal) La cantidad es negativa porque la cinta se movia "hacia acá" y no "hacia allá" xD Programa AUT13: Igual que el AUT11, pero la mesa gira en el sentido contrario Programa AUT10: El programa principal. DEFINE: permite declarar una variable, en nuestro caso, pieza, que usaremos para contar el número de piezas (ya que a priori es desconocido). Con SET le asignamos el valor 0. LABEL define una etiqueta a la que saltaremos posteriormente (para hacer bucles, basicamente). IF IN[2]=1 comprueba la entrada 2 (que es un sensor colocado en el plano) para saber si hay más piezas (cuando vale 1). Si la hay, aumenta el contador de piezas, e invoca al programa AUT01 (dado por el profesor. el robot coge una pieza y la mueve a la mesa) con GOSUB. Cuando el programa AUT01 acaba de ejecutarse, se vuelve al mismo sitio desde el que se invocó. Se invoca al AUT11, el que os he contado arriba, que mueve la mesa giratoria. Luego. con el GOTO 1, se vuelve a donde pone LABEL 1 y se repite ese cacho. Cuando no hay piezas se entra en el ELSE. Como en el paso anterior hemos ido aumentando el contador piezas hasta que sabemos cuántas piezas tenemos que mover, este paso tendremos que realizarlo ese mismo número de veces. Por eso, mientras el contador diga que hay más de 0 piezas es que nos queda alguna por mover. Le restamos uno, e invocamos con GOSUB al programa AUT02 (también proporcionado por el profesor, coge una pieza de la mesa giratoria y la translada a la cinta transportadora) y luego al AUT13 para desplazar la mesa en el sentido contrario (y estar preparados para coger la pieza siguiente. Aquí controlamos el movimiento de la cinta una vez hemos movido la pieza. La cinta tiene un sensor a una determinada distancia de la zona donde caen las piezas: la cinta tiene que estar en marcha hasta que la pieza llega allí (para que las piezas queden todas a la misma distancia) Para ello, consultamos el sensor de la entrada 1: si vale 0 es que la pieza no ha llegado todavía al sensor, así que la cinta debe seguir avanzando (invocamos al AUT12), y estamos en ese feliz bucle hasta que se detecta la pieza. Entonces, movemos una vez más: para que salga del rango del sensor y cuando comparemos con la siguiente pieza NO valga 1, y volvemos a repetir desde LABEL 2. Cuando ya no quedan piezas, se sale de todos los IF y ELSE (con los ENDIF) , limpiamos el bufer "porsiaca" (CLRBUFB) y terminamos con un END como una casa :D Despues de escribir el programilla, se le envía a la parte de control del sistema, donde se comprueba su sintaxis y se cargan en el bicho :) Luego se le da la orden RUN AUT10 y a correr!! WARNING: Me encantaría decir que el programa va perfecto... pero sólo he podido probar la mitad porque a los del grupo de antes se les ha roto la mesa giratoria por un choque bastante brutal con la pinza del bicho :/ Pero tendremos la esperanza xD (Y eso que jamás he visto usar un botón del pánico tantas veces en tan poco tiempo xD) Y eso es todo, creo. Si Skelv cuelga el video, lo añadiré a esta entrada =^_^= (por eso es beta) ¿Cansado de los mismos juegos de tablero de siempre? ¿Harto del parchis? ¿El Monopoly te produce alergia? ¿Te sabes todas las respuestas del Trivial? ¿Buscas un juego familiar que ponga tus neuronas a tope? ¡C-Jump es la solución! Sí, me temo que es lo que parece. ¡Un juego de tablero de ski basado en la programación en C! Este juego, pensado para que los niños a partir de 11 años aprendan los fundamentos de la programación, porque nos enseña las bases de la programación de un modo guay!! (sic) Superado el LOL inicial, veamos el modo de juego (O lo que yo he entendido): Cada jugador puede tener una o varias fichas que pueden ir por distintos trozos del programa (no pienses en hilos de ejecución, no pienses en hilos de ejecucion!!). Se lanza el dado, y el número obtenido corresponde al valor de la x. El jugador se mueve el número de casillas indicado por el que marcó el dado operado por la casilla. Por ejemplo, si sacas un 4 y estás en una casilla "x++", avanzas 5. Las fichas, que representan esquiadores (O_o) solo pueden parar en las casillas con "{" o "}". El jugador entrará en los ifs cuando cumple la condición del bucle, si no tendrá que pasar por el lado del else. Lo mismo para los loops y los whiles. Dentro de un bucle, el jugador puede caer en un "continue" (sigue en el bucle) o en un "break" (sale de él). Cuando se cae en un "goto", tiene que saltar a la casilla "jump:". Las casillas de switch van controladas por el valor del lanzamiento del dado. Gana el que llega a la casilla "finish" sin pasarse. Y si caes en el "return". ... tienes que volver a empezar!!! :O Porcierto, pone que está basado en esquiadores porque "la analogía entre el ski/snowboard y la programación es perfecta!" (a mi que me lo expliquen) No podemos dejar pasar el FAQ, en el que responden a preguntas filosóficas como "¿Es "while (x>0)" un bucle infinito?" o "¿Por qué este juego incluye la infame sentencia "goto"? ¿Te ha gustado? ¿Quieres que tus hijos acaben como tú, o en su defecto, como yo? (xD) Pues puedes comprarlo aqui por 25$ + 12$ (de gastos de envío), y empezar a generar niños geeks, como el de la foto, a partir de YA. (via piratizarros) Bueno, después de una maravillosa casi-semana de vacaciones blogueriles que me han sentado fenomenal, en las que si alguien me preguntaba por el blog mi respuesta mayormente era "yo no tego blog"....vuelvo magicamente para salvaros la vida. Pues sí, hijos míos, esta noche Peibol y yo hemos tenido un pequeño accidente: nos ha "reventado" una bombilla de bajo consumo cuando íbamos a empezar a cenar. Digamos que ha empezado a salir un gas misterioso de dentro la bombilla, un gas blanquito y que olía a yodo, que picaba en los ojos y que no molaba nada respirar. Inmediatamente hemos abierto las ventanas y nos hemos llevado la cena a otra parte. Nada más llegar a casa, he buscado en internet algo sobre el misterioso gas..... y esto, entre otras cosas, es lo que he encontrado: (…) algunos expertos advirtieron a los consumidores que deberán extremar los cuidados a la hora de deshacerse de las bombillas (de bajo consumo) que se hayan fundido o roto para evitar la contaminación con el mercurio venenoso que contienen. La Agencia del Medio Ambiente del Reino Unido reconoció que tanto el comercio como las autoridades tienen que hacer mayores esfuerzos para informar al público de cómo hay que reciclar ese tipo de bombillas Así que ya sabeis: cuidado con estas bombillas cuando se rompen. Sólo algo que me preocupa: hemos ventilado, pero cuando se ha roto la bombilla... mi cena estaba debajo!!! :/ PS: parezco un horrible mail en cadena de esos de "reenvía esto a las personas que realmente te importan si tienes corazon" ¬¬ Ahora hago chas y me saco de la manga otro mágico post de relleno. Es lo que tienen los puentes, que me convierten en un ente vaguete y amorfo (en realidad estoy demasiado ocupada). Me encantan los includes, la función BSOD y los printfs comentados xD (visto en Bocabit) (Antes de nada, los credits: Mi grupo éramos Héctor, Aitor y yo misma =^_^=) El pasado jueves estuvimos en clase de Automatización jugando con Arduino. ¿Qué es Arduino? Arduino es,copypasteando de la wikipedia, una plataforma de hardware de fuente abierta basada en una sencilla placa con entradas y salidas (E/S), analógicas y digitales, y en un entorno de desarrollo que implementa el lenguaje Processing/Wiring. Está basado en el procesador Atmega8, un chip sencillo y de bajo coste que permite el desarrollo de múltiples diseños. Hay más info y múltiples ejemplos en su web. Tengo que decir que es la primera vez que trabajaba con algo así, y que me ha encantado la experiencia. ¿Por que? Porque, para empezar, es tremendamente sencillo de utilizar: Sólo hay que escribir el código en C un poco modificado, enchufar la placa al pc por usb, volcarle el programa, montar el circuito y ale, a correr. Pega: necesitas una placa, pero rondan los 30 euros (visto lo visto, no es tanto); aproximadamente la mitad si montas los componentes por separado (aunque te sale una placa más grande) Concretamente, el modelo que hemos utilizado en clase ha sido una Arduino Diecimila, que aquí podeis ver en mi manita: (haciendo clic en la imagen podeis acceder a ella en flickr, le he puesto unas cuantas notas explicando más o menos qué es cada cosa) Al principio, el profesor nos sugirió que pensáramos nosotros un posible uso de la placa para escribir el código (sin circuito). Y me costó mucho, muchísimo pensar algo xD Pero cuando empezamos a utilizarla "fisicamente"... miles de ideas vinieron a mi ^^ Y eso da gustito :) (Aquí es cuando inserto un "gracias al señor mapache", por pasarme enlaces interesante con ejemplos, como este o este) En esta práctica, la idea era diseñar e implementar un sistema de control para una puerta de garaje. En nuestro sistema, tenemos un botón para abrir la puerta, otro para cerrarla y además un detector de presencia, que para no montar más lio de cables, sustituimos/simulamos con un tercer botón. Además, en la puerta hay conectados dos finales de carrera, para indicar si la puerta está cerrada o abierta completamente. Se usan, además, dos relés para abrir y cerrar, y unas cuántas resistencias para no quemar nada (y mira que nos gusta xD) Bueno, y por supuesto, la puerta del garaje, el motor, el piñon-cremallera.... también eran bastante necesarios jaja. O sea: Este es el esquema de conexión de las entradas: Y este es el esquema de conexión de las salidas: Y aquí, podeis verlo todo montadito (slalvo la puerta con su motor y finales de carrera): Sencillo, verdad? :) El código se escribe en un software especial para esto, que se puede descargar desde la propia página de arduino y corre sobre Windows, Mac y Linux. Este software te informa de si tu código es o no correcto, te permite pasarlo a la placa, enviarle órdenes y seguro que hace más cosas. Para pasar el código a la placa, simplemente se instalan los drivers que van con el software, se conecta la placa por usb al pc, se elige el puerto correcto (en mi caso, el COM4) y le dices "alah, vuélcalo" . Y a correr! Cosa graciosa: el programa "inicial - por defecto" que lleva la placa es simplemente apagar y encender el LED que lleva incorporado. Pero lo hace a una velocidad bastante graciosa y suena como cuando se cocinan palomitas xD Como bonus-colofón final, el video del artilugio funcionando (Dirigido por Hector, filmado por Aitor, y las manos que aparecen son mías XD) Seguro que me he dejado algo por explicar/contar/agujeros de conocimiento. Si se os ocurre algo, preguntad en los comments, que para eso están =^_^= Actualizado: Nuevo video, made by Héctor: "El diámetro de los discos compactos, que es de 5" (12,7 cm), corresponde a la anchura de los bolsillos superiores de las camisas para hombres, porque según la filosofía de Sony, todo debía caber allí." Y no lo digo yo, lo dice la wikipedia. Miau! Otra ronda de tests ^^ Encontré estos dos en el blog de Kurisu Neko, espero que os gusten =^_^= Eres un .mpg! Vives la vida como si fuera una película. Siempre en movimiento, haces disfrutar a la gente, pero a menudo estás oculto. Eres Windows XP!! Debajo de tu exterior alegre y luminoso hay una personalidad fuerte y firme. Tienes tendencia a hacer más de lo que se te ha pedido, o incluso de lo que quieres. Qué maja :3 Aunque eso no quita que sea un windous (Había una pregunta buenísima, que decía: "Te importa lo que salga de este test?" y una de las respuestas era "No, pero como me salga Windows ME alguien va a salir herido..." xDDD) Otra divertida y apasionante práctica de Automatización!! Cómo me gusta esta asignatura :3 Esta vez, el circuito que construimos ha sido un Detector Óptico de Barrera por menos de 3 eurillos usando estos componentes (aunque a nosotros nos invita la uni): Diodo LED normal y corriente, Diodo LED infrarrojo (IRED), resistencia de 220 ohmios, dos resistencias de 1000 KOhmios, transistor (no sé exáctamente de qué tipo) y fototransistor . ¿En qué consiste un detector de este tipo? Pues muy facil. Simplemente son dos circuitos separados (el del emisor y el del receptor), que trabajan conjuntamente para detectar cuándo se interpone un objeto opaco entre ellos. - Circuito del Emisor: Más simple que el mecanismo de un botijo. Consta simplemente de una fuente de alimentación (6 Voltios), una resistencia (220 ohmios en nuestro caso) y un diodo LED emisor de infrarrojos (o sea, un IRED). Esto lo que hace es emitir luz infrarroja constantemente. La luz infrarroja no puede verse a simple vista, pero, TRUCO: usando una cámara de un teléfono móvil, sí que puede verse :O (se aprecia en la siguiente imagen) - Circuito del Receptor: También bastante sencillo. Usaremos la misma fuente de alimentación de 6 Voltios. El elemento que actuará como detector será un fototransistor . Este elemento conduce corriente cuando su base es excitada por luz infrarroja (la del emisor). Estos son un poco cerdos porque solo tienen 2 patitas y parecen diodos. Lo que se consigue con esto es que la corriente encuentre menos resistencia por ese camino y "pase" por alli. Sin embargo,cuando se interpone un objeto entre el emisor infrarrojo y el fototransistor, éste deja de se conductor y los electrones pasan por el lado en el que encuentran menos resistencia: el del diodo LED normal, que se enciende (además tenemos otro transistor enmedio actuando como una especie de interruptor). Y bueno, poco más que decir sobre esto. Os enseño una imagen del circuito una vez terminado: Y como novedad, un video casero del funcionamiento del invento. Aunque la distancia entre emisor y receptor en nuestro caso es un centímetro aproximadamente, el profesor nos ha comentado que con esta mierdecilla de componentes podríamos consguir hasta 15 o asi :) Porcierto,volvimos a olvidarnos las tijeras en casa. Menos mal que tuvimos que usar pocos cables y estaban todos pelados ya XD - "¿Qué has hecho hoy en el cole?" - "err... quemar diodos xD" Salgo horrible de cara, pero feliz de corazon (excusa barata) Ese es nuestro circuito majete, justo antes de probarlo... y quemar los diodos y el optoacoplador (y probablemente tambien el LED) xD En fin, una pura fiesta. Se puede ver (a falta de otro diodo más y un LED) junto con "el resultado de la alineacion aleatoria y casual de dos fragmentos de cable arbitrariamente retorcidos" (by skelv) Bonito, verdad? No se ve muy claro, pero basicamente es esto: Una via de tren, por la que pasará un tren que hará de resistencia, cerrando el circuito de la izquierda. Cuando se cierra el circuito de la izquierda se produce una caída de tensión en el diodo, que alimenta al diodo LED encapsulado dentro del optoacoplador. Éste excita la base del transistor (también encapsulado), cerrando el circuito de la derecha y provocando que se encienda el LED que señalizará el paso del tren. La gracia está en que no importa el voltaje al que se conecte (siempre que haya una resistencia -el tren- que impida que se quemen los diodos): los diodos siempre van a darnos una caída de tensión constante (concretamente, los que usamos eran de 1.07 voltios) que impedirá que quememos el optoacoplador (el nuestro, CNY74-4H ) tenía una tensión máxima de 1.6 Voltios). Para alimentar la via usamos un generador de 9Voltios. Divertido, verdad? No se me ocurre nada más que explicar sobre ello, asique dudas, patatas y elefantes voladores, en los comentarios :) Nota Mental para Skelv, Podereski y yo misma: Coger unas tijeras, pelar los cables con los dientes no es muy bueno xD PS: El hecho de que me sepa los códigos de colores de las resistencias, hace que me miren mal u_u juars juars juars acabo de ver esto en TecnoDiva y me estoy partiendo la caja un buen rato xD (En negrita, lo que dijo el geek. En cursiva, lo que quiso realmente decir) "Tengo tu fotografía guardada en la carpeta de mis imágenes” “Te voy a montar un directorio activo, con servicios dns y dhcp” “Voy a tener que limpiarte el slot del puerto agp” “Mi servidor de impresión tiene una cola muy larga” “La mejor solución va a ser virtualizar tus servidores” “Pedazo de servidor con doble procesador que tienes” “He implementado un sistema de backup de imágenes en el servidor” “Desde que instalé el service pack todo va mejor” “En mi escenario tengo sistemas Microsoft y sistemas Linux cada uno “Tengo un Mac” Es monísima!! Casi me entran ganas de que falle (aún) más a menudo.... No se si existiría antes, pero yo hoy es la primera vez que la veo :3 (Visto en ALT1040) Impresionante la cantidad de fricazos de level maximo que hay por ahi :3 Como muestra, PaulTheWineGuy , que se dedica a "geekizar" obras de arte clásicas. Yo hago una selección con las que más me han gustado, pero el set completo de flickr podeis encontrarlo aqui ^^ The Scream. (Edvard Munch, 1893) Composition with Yellow, Blue, and Red (Piet Mondrian, 1921) 100 Cans (Andy Warhol, 1962) One blue pussy (Andy Warhol, 1954) Annunciation (Antonello da Messina, 1474-1475) The Creation of Adam (Michelangelo, 1477-80) L’Absinthe (Edgar Degas, 1876) The inspiration of St. Matthew (Caravaggio, 1602) David with the Head of Goliath (Caravaggio, 1609-10) The Thinker (Auguste Rodin, 1609-10) The Last Supper (Leonardo da Vinci, 1495–1498) Galileo facing the Roman Inquisition (Cristiano Banti, 1857) Signboard for a Schoolmaster (Ambrosius Holbein, 1516) Pensaba que esta advertencia, en la que Windows se detecta a sí mismo como virus era una leyenda urbana pero.... no! Ayer estaba en casa de pablo y me dijo "Ven, que me acaba de salir un error más raro.... " ... y voy y me encuentro esto xD (clic para ampliar) Prevención de ejecución de datos - Microsoft Windows Para ayudar a proteger el equipo, Windows cerró este programa. Nombre: Windows Explorer Fabricante: Microsoft Corporation Ains... He actualizado por fin a Ubuntu 6.10 7.04 7.10 !! Si, habeis leido bien, 6.10 7.04 7.10 xD Hasta ahora usaba la 6.06 (con un par) pero ya empezaba a no haber soporte para ciertas cosicas y era un poco cansino... asíque en una tarde muerta me han convencío :3 Ya no soy Dapper, ahora soy una Edgy Feisty Fawn Gutsy Gibbon feliz juas juas (estoy delirando, lo se) Y misteriosamente no he tenido ningún problema ... ya saldŕan Estaban esperando a que mirara para otro lado, lo se. Ahora, mágicamente muestra la partición donde tengo todos los documentos y tal, excepto la carpeta de música e imágenes, que... oh casualidad, son las que más utilizo ¬¬ No pienso arreglarlo ahora, que estamos de exámenes, leite Mañana, la semana que viene seguiremos upgradeando.... o no xD Creo que por ahora ya está bien .. hasta abril PS: SÍ, es un auto-auto-copy-paste xD He actualizado por fin a Ubuntu 6.10 7.04!! Si, habeis leido bien, 6.10 7.04 xD Hasta ahora usaba la 6.06 (con un par) pero ya empezaba a no haber soporte para ciertas cosicas y era un poco cansino... asíque en una tarde muerta me han convencío :3 Ya no soy Dapper, ahora soy una Edgy Feisty Fawn feliz juas juas (estoy delirando, lo se) Y misteriosamente no he tenido ningún problema ... ya saldŕan xD Mañana, la semana que viene seguiremos upgradeando.... o no xD PS: SÍ, es un auto-copy-paste xD He actualizado por fin a Ubuntu 6.10!! Si, habeis leido bien, 6.10 xD Hasta ahora usaba la 6.06 (con un par) pero ya empezaba a no haber soporte para ciertas cosicas y era un poco cansino... asíque en una tarde muerta me han convencío :3 Ya no soy Dapper, ahora soy una Edgy feliz juas juas (estoy delirando, lo se) Y misteriosamente no he tenido ningún problema ... ya saldŕan xD Mañana, seguiremos upgradeando.... o no xD Ayer, o antes de ayer, o por ahi mas o menos, leí en emezeta este artículo sobre lenguaje de programación complicados o... mas bien raros (oficialmente, "lenguajes esotéricos"). Y de entre todos ellos , a pesar de que los habia muy bonitos (como el brainfuck (que sólo usa punteros), whitespace (que solo usa espacios, tabuladores y retornos de carro) o el ook (que solo usa las palabras "ook.", "ook?" y "ook!").... me quedo sin dudarlo con el Chef. Aquí os dejo su helloworld : Hello World Souffle: Ingredients. (cuanto menos, peculiar XD) El número de ingredientes (72, 101, etc) no es nada más y nada menos que la codificación binaria de las letras de Hello World , y el " put in the mixing bowl" lo echa por salida. Y ahora... un ejemplo más pro: mostrar por pantalla los primeros 100 fibonacci : Fibonacci Numbers with Caramel Sauce. (el caramel sauce es un método auxiliar) BONUS: *Principios de diseño: - Las recetas no solamente deben generar salidas válidas: deben ser fáciles de preparar y deliciosas. - Las recetas deben ser aptas para todos los presupuestos. - Se usará el sistema métrico, aunque pueden usarse medidas traidiconales como "tazas" o "cucharillas" BONUS 2: ( en inglés, que estoy perra) All recipes have ingredients! The ingredients hold individual data values. All ingredients are numerical, though they can be interpreted as Unicode for I/O purposes. Liquid ingredients will be output as Unicode characters, while dry or unspecified ingredients will be output as numbers. Chef has access to an unlimited supply of mixing bowls and baking dishes. These can contain ingredient values. The ingredients in a mixing bowl or baking dish are ordered, like a stack of pancakes. New ingredients are placed on top, and if values are removed they are removed from the top. Note that if the value of an ingredient changes, the value in the mixing bowl or baking dish does not. The values in the mixing bowls and baking dishes also retain their dry or liquid designations. Multiple mixing bowls and baking dishes are referred to by an ordinal identifier - "the 2nd mixing bowl". If no identifier is used, the recipe only has one of the relevant utensil. Ordinal identifiers must be digits followed by "st", "nd", "rd" or "th", not words. The following items appear in a Chef recipe. Some are optional. Items must appear in the order shown below, with a blank line (two newlines) between each item. The recipe title describes in a few words what the program does. For example: "Hello World Souffle", or "Fibonacci Numbers with Caramel Sauce". The recipe title is always the first line of a Chef recipe, and is followed by a full stop. recipe-title. Comments are placed in a free-form paragraph after the recipe title. Comments are optional. The next item in a Chef recipe is the ingredient list. This lists the ingredients to be used by the program. The syntax is Ingredients. Ingredients are listed one per line. The intial-value is a number, and is optional. Attempting to use an ingredient without a defined value is a run-time error. The optional measure can be any of the following: The optional measure-type may be any of the following: The ingredient-name may be anything reasonable, and may include space characters. The ingredient list is optional. If present, it declares ingredients with the given initial values and measures. Cooking time: time (hour[s] | minute[s]). The cooking time statement is optional. The time is a number. Pre-heat oven to temperature degrees Celcius [(gas mark mark)]. Some recipes require baking. If so, there will be an oven temperature statement. This is optional. The temperature and mark are numbers. Method. The method contains the actual recipe instructions. These are written in sentences. Line breaks are ignored in the method of a recipe. Valid method instructions are: The final statement in a Chef recipe is a statement of how many people it serves. Serves number-of-diners. This statement writes to STDOUT the contents of the first number-of-diners baking dishes. It begins with the 1st baking dish, removing values from the top one by one and printing them until the dish is empty, then progresses to the next dish, until all the dishes have been printed. The serves statement is optional, but is required if the recipe is to output anything! These are small recipes which are needed to produce specialised ingredients for the main recipe (such as sauces). They are listed after the main recipe. Auxiliary recipes are made by sous-chefs, so they have their own set of mixing bowls and baking dishes which the head Chef never sees, but take copies of all the mixing bowls and baking dishes currently in use by the calling chef when they are called upon. When the auxiliary recipe is finished, the ingredients in its first mixing bowl are placed in the same order into the calling chef's first mixing bowl. For example, the main recipe calls for a sauce at some point. The sauce recipe is begun by the sous-chef with an exact copy of all the calling chef's mixing bowls and baking dishes. Changes to these bowls and dishes do not affect the calling chef's bowls and dishes. When the sous-chef is finished, he passes his first mixing bowl back to the calling chef, who empties it into his first mixing bowl. An auxiliary recipe may have all the same items as a main recipe. (más en wikipedia ) Otra de videos: Máquinas de Turing explicadas por Carlos/Buckethead, dos minutos antes de hacer el examen de Computabilidad/Modelos Abstractos de Cálculo . Transcripción porque se oye un poco mal: (vid1) Alvaro: A ver, qué es lo que es? .. Esto qué es lo que es? Carlos: Pues esto basicamente es una representación un tanto friki de una Máquina de Turing, ves? Aquí está la cinta, los unos, los ceros, los blancos... (vid2) Carlos: Esto es un malvado orco que está esclavizando a los goblins.. y esto en sí es el cabezal que va tirando los ceros, los unos, los blancos.... (Porcierto, el otro Turing se ha cubierto de una simpática capa negra de moho que da muy mal rollo. Temo que un día salte de la estantería, me quite un ojo y trate de conquistar el mundo) Para los que me leen por feed: No os asusteis si veis que salen artículos prehistoricos repetidos mil veces, he creado una categoría nueva y para acomodar los posts he tenido que republicar algunos. Y además, al toquetear la plantilla para meter las nuevas listas de Lastfm y la cosa de Technorati (todo en el lateral izquierdo).. pues también se le ha ido la olla ^^U Y ahora una bonita imagen, la tipica que se abre en algunas paginas para comerse al navegador y decirte "tienes muchos virus, uhhh vas a morir! haz clic aqui": (clic para ampliar) Jooooder, pero si es miPC!! es super creíble... salvo que ni esa es mi IP, ni estoy en Kiev, ni esa es mi version de Firefox, ni tengo dos lectores de disco..... ah! y que uso Ubuntu ¬¬U (Porcierto, cómo ha avanzado la IA, que ya te permiten "Borrar Archivos Compremetedores"!! Se las saben todas xD) ....con sólo una linterna y una grabadora de CD DVD!! me parece un poco... hmmm como decirlo.... peli.... peli...peligroso!! sí, peligroso es la palabra. (visto en no puedo creer que lo hayan inventado) Después de haberme pegado la paliza de buscar mi viejo PC, bajarlo del altillo, traerlo a mi estudio y encontrar enchufes y cables como para hacerlo funcionar.... intento cargar solaris y me encuentro con la siguiente fiesta (aka error de grub): ERROR 28: SELECTED ITEM CANNOT FIT INTO MEMORY bieeeeen mota bieeeeen al parecer, el susodicho pc tiene 128 de RAM (que además son los que detecta el Grub) , y no ha habido manera de encontrar los requisitos minimos, aunque según esto necesito más bien algunos megas mas... ahora a decidir: compensa comprarme un modulo más, de segunda mano??? chan chan chan. Necesito mi kit de destornilladores, rapido!!! - Viento - Mano con herramienta / No mano con herramienta - Rayo / No rayo - Flechas apuntando a circulo / No flechas apuntando a circulo - HORA DEL ALMUERZO: - CUALQUIER OTRO MOMENTO DEL DIA: Estaba buscando una bonita imagen para ilustrar un breve y metafísico post que había escrito sobre Junio, el mes que me pasé sentada en un sillón.... ...pero he encontrado esta preciosa página y no puedo dejar de mostraosla. Se llama Informática Poética , y parece ser que son poemas que ha escrito Mercedes López Carril, alumna de Administración de Sistemas Informáticos, en un Instituto de Jerez de la Frontera. Yo os copypasteo aqui aquellos que van mas acordes con mi precioso examen de mañana de Sistemas de Transporte de Datos (Nota: una oración por mi alma a las 14.30 T_T) IMPLANTACIÓN DE UNA LAN de algún remoto cliente. MI RED DE AREA LOCAL OTRAS OBRAS: El árbol binario, Programación en C++, Yo tengo una profesora, Listas enlazadas, El árbol de búsqueda, Fundamentos de programación, Implantación de una LAN, Mi Red de Area Local, La rama informática, Si yo fuera tutor..., Protocolos TCP/IP, Paquete IP, Cinco de Junio, El liderazgo,Evaluación final. NOTA al final que nadie leerá: ¿Por qué hay un jedi como imagen? . . . . . . . . . . . por que es OBI-WAN KENOBI!!!! xDDDDD EDIT: dedicado a Javi xD EDITv2: Contribución de javi: (esto es de los comments) Dime, oh, pequeña Mota, ========================== Respuesta de Mota: Gracias señor Javi Aaaatención: Pregunta de examen, examen de Administración de Sistemas Operativos en Red, Septiembre 2004: 14. ¿Qué es el balanceo de carga? Yo creo que es la a.... (que nooooo, que es la c!!! . . . . .creo... porque no tengo ni idea xD) ... o sea, definitivamente geek ^^U Desde que lo ví puesto en una mesa del sótano 1 del Aulario II de la universidad, no he podido olvidarlo. Sentía mi corazón latir por las noches pensando en tener su amor, en llevarlo conmigo, en darle todo mi cariño y protección. Pero... él no estaba a mi lado, dándome su calor. Asíque, el siguiente día que nuestros caminos se cruzaron, antes de caer rendida ante su espectacular encanto, le pedí su dirección . Días después, nerviosa, fui a buscarle y lo traje a mi casa. Estuvimos conociéndonos. Aprendí muchas cosas de él. Y ahora... ahora está sobre mi cama. Espero que lo comprendais y no me juzgueis sin antes conocerlo. No pude resistirme. Os dejo una foto: (Clic para ampliar) =^_^= BRICONSEJO: no useis el servicio Cicerone de la UA. Su menú del día es: de primero, Firefox; de segundo, recursos con patatas; de postre, consola de Java. Hago un copypaste de este "relatillo" que me ha maileado el señor juanmi/guelote y que aparece en tuxpepino: En este artículo quiero demostrar que GNU/Linux es más que un sistema operativo y te puede ayudar hasta con tu vida personal. Por ejemplo, a buscarte la novia perfecta y todo lo que viene después, que no es poco… Espero que no haga falta decir que es un artículo de humor y bastante geek xD Empezaremos por buscar una novia Nos la quedamos Ojeamos sus atributos La comparas con otra a la que tanteabas desde hace una semana Compruebas si hay conexión Y cómo es dicha conexión Sí, definitivamente nos la quedamos. Nos aseguramos que sepa que somos su novio… …y de que no nos pueda poner los cuernos… La moldeamos a nuestro gusto Nos vamos a una fiesta en casa de unos colegas y tenemos un calentón. Nos vamos a un lugar aislado, oculto Comprobamos que no hay nadie más Buscamos el fastidioso enganche del sujetador… Al lío. Conectamos nuestros cuerpos de la forma tradicional Si alguien quiere un 69 (u otro “slot”), tan sólo hay que decírselo Dejamos nuestra semilla Y separamos nuestros cuerpos Ordenamos y limpiamos un poco el cuarto Poco después te enteras de que metiste el penalti (¡Maldito preservativo!). Nueve meses más tarde tu novia da a luz Por las presiones de las familias, decides formalizar la relación y os casáis. Fundáis una familia con todo lo que ello conlleva… Haces una nota mental para acordarte de este “”"”maravilloso día“”"” y que no se te olvide, todo ello para evitar que no te ponga a parir la parienta Todo va bien hasta que inexplicablemente un día se le cruzan los cables a la parienta y mata a vuestro hijo Meditas sobre todo lo que ha sucedido y sobre las mujeres Y efectivamente llegas a una sabia conclusión Pese a que te aseguraste de que no tendrías cuernos, si ambos sois de una raza y el crío de otra, o tienes otro tipo de confirmación, vete buscando a un tal root… Ale, al lío. mola ^^ <6,<6,6>> = (A2) IF Z3 != 0 GOTO D que no te digo na y te lo digo yo juajuajua mirad lo que pasa cuando vas a ejecutar un comando como root en los linux de los laboratorios de la Politecnica: Qué grande!! he estado dos horas partiéndome xD EDIT: un par de apreciaciones a) Obviamente podeis ver el logo de Windows, asique, tecnicamente NO es linux. Lo que estaba haciendo era acceder a uno de los routers del GCIST (que sí que son linux) por L2TP, usando Putty Lo que viene siendo ejecutar comandos remotamente, vamos b) Donde pone /usr/bin/brtcl , debería poner /usr/sbin/brtcl . Me di cuenta de que la había cagado despues de haber ejecutado la primera vez y haber hecho la captura de pantalla jeje Imagina que tienes que hacer una práctica en C, con el compilador TurboC, algo (por el momento) muy simple. Imagina que no tiene más que tres funcioncillas totalmente absurdas, de manejo de enteros y cadenas. ¿No parece muy dificil, verdad? Sigue imaginandote una de estas bonitas funciones. Es una monada, totalmente inofensiva. Incluso, a pesar de no ser más que un puñado de electrones saltando por un cacho de conductor, podríamos decir que es adorable. Yo diria que hasta blandita. Sin embargo, a mi antivirus no le ha parecido algo tan inofensivo. Os enseño una capturita de pantalla: chan!! La traduccion a lo que nos dice sería algo así como "ehhhh, paaara, máquina!! ese ejecutable es un virus!!". No tendría ningún problema en creerle si no fuera porque... ese ejecutable lo he hecho yo. Es esa funcion adorable de la que hemos hablando arriba!! No puede ser mala!! Dios, asco de heurística !! siiii!!!! Estoy escribiendo este post desde Ubuntu, con la wifi de la UA :D Me ha dado un par de problemillas con los drivers (no sabia si eran wext o ipw - al final resulto que eran los ultimos) y no me daba user, pero lo he conseguido al segundo intento ^^U Ains, es emocionante xD Y bueno, esta tarde pelearé también con la wifi de casa... y será la tercera wifi que me configuro en Ubuntu esta semana XD ale, voy a ver si puedo importar las preferencias de firefox y demas ^^ Buenas! Hoy voy a postear... pero como no tengo mucho tiempo ni demasiado que contar (salvo que esta mañana me he quedado sobadísima y he llegado media hora tarde a clase xD), pues voy a hacer un copy paste de javimoya . En este caso, razones por qué los Geeks son somos buenos amantes: Los geeks tienen un destreza inigualable con los dedos. Los geeks están acostumbrados a tirar dados. Los geeks juegan a videojuegos, resuelven cubos de rubick. Los geeks pasan páginas y más páginas de cientos de libros. Los geeks están todo el día tecleando en el ordenador, y usando caracteres como ~, ^ y |, que nadie, aparte de ellos, sabe siquiera que existen. Los geeks manejan calculadoras con notación postfija. El resultado de todo esto es que un geek sabe perfectamente como mover sus pequeñas extremidades para obtener el mejor efecto posible. En definitiva: Sí tienes un botón que necesita ser pulsado, o un joystick triste, no hay mejor persona que un geek para hacer el trabajo. Los geeks no se duermen en los laureles. Debido a una inteligencia superior y, por consiguiente, una mayor y profunda compresión de la trágica condición humana, los geeks son los que mejor han entendido que el césped solo parece más verde desde el otro lado de la valla. Es por esto que permanecen instintivamente fieles a sus parejas, para lo bueno y lo malo. Además, sus habilidades sociales no están lo suficientemente desarrolladas como para que puedan optar a tener una aventura… cuando ni siquiera están muy seguros (ni se lo acaban de creer) de como han conseguido que su actual pareja se haya sentido atraída por elllos. Cuando te comprometes con un geek, sabes que va a ser tuyo hasta que se muera. Los geeks son hábiles en las cosas que les gustan. Todo geek que se precie cuenta, tras una aparente torpeza y monótona vida, con una pasión oculta en la que son los mejores, y que suelen desarrollar a altas horas de la madrugada. Puede tratarse de un hacker/programador experto, o del jugador con mayor nivel de World of Warcraft, de un blogstar de éxito, o de una habilidad sin igual a la hora de hacer modding con el ordenador. Tan sólo haz que el sexo se convierta en su nuevo pasatiempo nocturno favorito, y descubrirás que un geek no se rinde hasta que no haya conseguido ser el mayor experto mundial en la materia (además están acostumbrados a eso del “trabajo en paralelo”… son multitarea… y esto lo ponen en práctica también durante las artes amatorias… tratando de estimular todos tus zonas erógenas simultáneamente). Los geeks no están interesados en mantener un status social. Los geeks se convierten en geeks porque eligen gastar su tiempo en hacer las cosas con las que ellos realmente disfrutan (programar, leer, hacer cubos de rubick, loquesea), y pasan de aquellas cosas que sólo les servirían para hacerse populares entre los demás, como los deportes o la moda. La habilidad para resistir a la presión social es importante para un geek. Esto se traduce en que están mas interesados en ser (y hacerte) verdaderamente feliz, que en tratar de caerle bien (o “aparentar”) a los demás. Esto te vendrá fenomenal en el caso de que estés necesitada de atención… sea del tipo que sea… desde alimenticia a lasciva (incluso, y al no ser incompatibles, puede ser una combinación de ambas). Los geeks están ansiosos por complacerte. Muchos chicos que triunfan socialmente, tras años y años de éxito entre las chicas, acaban tan confiados sobre sus posibilidades de obtener una pareja que sólo les interesan de éstas su faceta sexual. No tienen la más mínima intención de ir más allá. Para ellos sólo serás un rollo más… su penúltima diversión pasajera. Todo lo contrario sucede con los geeks. La escasez de compañeras sentimentales hace que estos se aproximen a sus nuevas parejas con la ilusión y ganas de un neófito. No están sobrados de confianza; por lo que no te costará trabajo domesticarlo como a un conejito; que ansiosa y gustosamente complacerá cualesquiera que sean tus necesidades. Te tratará como a una reina… y tranquila, en lo que no son aprendices es en la “guarreridas” sexuales… al fin y al cabo media vida viendo porno a través de Internet les habrá servido para algo. Los geeks tienen mucho aguante. ¿Quien no has visto alguna vez a un geek, absorto, afanado en lograr alguna cosa? Los geeks pueden canalizar su energia en una tarea concreta, con la intensidad de un guepardo en plena cacería. Vale… es cierto que estas tareas se acercan mas a ir a cazar orcos con dados de doce caras que en ir a atrapar gacelas con sus garras… pero el hecho es que un geek, una vez que se propone un reto, y se toma un café, va a trabajar sin descanso, como un esclavo, hasta conseguir su objetivo. Pon un litro de café en la mesilla de noche, y a un geek entre las sabanas, y habrás encontrado a un amante implacable. ¿Cuando fue la ultima vez que toda la noche significó realmente toda la noche? Los geeks son imaginativos. Una vez que has encontrado a un amante excepcional, lo peor que puede ocurrir es que las cosas acaben haciéndose aburridas, monótonas. Ahí es donde los geeks demuestran su superioridad. Estos, gracias a su afición a los videojuegos, saben que, por encima incluso de los “gráficos”, la “jugabilidad” es el factor más importante, y esta convicción inconscientemente adquirida la trasladan también a sus relaciones. En serio, ¿No te gustaría salir con quien creó un mod para el Quake 3? ¿Y con alguien que escribió un fancomic subido de tono, incluyendo incesto entre elfos, sobre el Everquest? ¿Y que me dices de alguien que prefiere ser Morfeo antes que Fernando Alonso? No! Obviamente NO soy yo la que lo ha instalado ^^U Es este simpatico caballero que lo ha instalado en .. ejem, un "nuevo tipo de máquina" (pista , y no es matrix) Bueno, como iba diciendo. Está en inglés sin subtitular y al tio se le entiende perfectamente (bueno, yo lo entiendo casi perfectamente :S) Para mis amigos negaos del idioma de chespir (xD) hago una transcripcion aproximada despues del video: (via 120%Linux ) "Hey! que tal? Esto es un "Windows Vista", el fantástico nuevo sistema operativo de microsoft. Voy a mejorar mi sistema (blablabla) y aqui tengo todo lo que necesito. Pero... lo puse en mi maquina y parece que es incompatible con todo lo que tengo en mi ordenador. Ahora posiblemente estés pensando "bahh seguro que su pc es viejo". No. Está totalmente nuevo. Y funcionaba, porque he visto la Pantalla Azul de la Muerte numerosas veces. Oh, genial! parece facil. si.. si! es muy simple! aha... muy bien. Ya hemos seguido perfectamente las instrucciones. Y ahora, cogemos el disco: nuestro disco de Windows Vista! Es bonito y brillante, .. como todos los productos de microsoft. Ahora.. lo cargamos en nuestra maquina. Ui.... parece que tampoco carga bien del todo en esta maquina. Oh, parece que voy a tener que trabajar un poco mas con esto. Si! ya lo tenemos!! Se ha cargado!! Veamos... si, aqui está, totalmente listo para su uso. Maravilloso! Y así es como instalamos Windows Vista ^^ " Y bueno, para acabar, un chiste: Se abre el telón y aparecen Linux, MS-DOS y Windows 95. Se cierra el telón, como se llama la pelicula? ... ... ... El bueno, el feo y el malo! xD nos vemos ^^ Visto en NPC (si, es un sujetador que se ata con tecnologia USB ... o lo que es lo mismo: unplug & play! XD) Este texto largo de cohones, pero merece la pena ^^U Obviamente, no puedo estar de acuerdo con todo al 100% (ni con esto ni con nada ^^U pero sí que tiene su gran parte de razon. Y tambien hay que tener en cuenta que tiene casi 6 años. Eso tambien influye ^^U (Respecto a la imagen... siiii!! es un adorable Commodore-64 !!!! Iba a poner una imagen del ENIAC pero ya era pasarse xD) Octubre del 2001 - Revisión 1.0 Para la demostración de todas las anteriores premisas contaremos con la ayuda de nuestros 2 inestimables colaboradores: 2 - Ingredientes necesarios para instalar un Pringao 3 - Modo de instalación y funcionamiento Bien, ya tenemos el germen de nuestro pringao instalado en el sistema... 3.1 Instalando a nuestro Pringao A las 2 horas ya tenía el CD de Windows Millennium Edition (tenía que ser buenísimo porque el nombre suena guay) de mi primo Rodrigo Mita y pasé con cara de ``pobrecito niño (tm)'' a casa del vecino, procurando que me viera su madre. Con un tímido `` YA TENGO EL PROGRAMA QUE ME DIJISTE, ¿ME LO INSTALAS?'' conseguí tener al pringao en mi casa instalándome el Windows ME. Qué hacer un sabado por la noche en casa?? ... aparte de ver una peli?... pues.... si!! postear XD Bueno, sólo diré que tengo una lista enoooorme de cosas para enseñaros , asique intentare poner dos o tres al dia ( no soporto dejar las cosas pendientes mucho tiempo) Porcierto, hoy hace un año que falleció mi pajaro, Piloto U_U Creo que puse hace algun tiempo un post con una imagen, pero no lo encuentro. Era un jilguero normal y corriente, pero era tan majo... Yo le hablaba y el me cantaba para despertarme T_T Se llamaba Piloto porque tenia las plumas de alrededor de los ojos medio peladas, y parecía un aviador ^^U Y estuvo conmigo mas de 6 o 7 años ,un monton. Y nada, esta noche a dormir temprano, que mañana despues de desayunar como dios manda ( lo que viene siendo tortas fritas ), Pablo y yo nos iremos de excursión a la Sierra de Tobarrillas , que parece que hay bastante nieve ^^ y si hay que ir mas lejos... se va! Bueno, a ver que tontunilla pongo ahora... .. hmmmm pues.... si. Voy a poner algo que vi en Sospechosos Habituales : Un poema romantico! Sin ti, no compilo ains, que profundidad ^^U Nos vemos mañana ;) Buenas! El martes en clase de Redes, hablando con el señor Juanma, salió el tema de las diferentes áreas de la informatica. El problema era que no se acordaba xD Y bueno, como ayer aparecieron en mis apuntes, pues aquí las dejo. Y de paso, las leemos todos. 1- ALGORITMOS Y ESTRUCTURAS DE DATOS - Teoría: Teoría de la computabilidad , complejidad , concurrencia , bases de datos , redes , grafos . - Experimentación: Evaluación de algoritmos , Metodologías de diseño algorítmico. - Diseño: Librerías de programas, aplicaciones . 2- LENGUAJES DE PROGRAMACIÓN - Teoría: Lenguajes , gramáticas , máquinas abstractas - Experimentación: Muy amplios tipos de programacion, imperativa , orientada a objetos .. - Diseño: Un gran número de lenguajes de programación 3- ARQUITECTURA - Teoría: Electrónica digital , codificación, máquinas de estados finitos - Experimentación: Modelos de circuitos, modelos de máquinas - Diseño: CISC , RISC , VLSI , Multiprocesadores , cubos 4- SISTEMAS OPERATIVOS Y REDES - Teoría: concurrencia, planificación, encriptación , gestión de memoria, flujos de trabajo - Experimentación: modelización de abstracción y ocultación de información - Diseño: Numerosos sistemas operativos, protocolo de comunicaciones 5- INGENIERÍA DEL SOFTWARE - Teoría: Verificación, lógica temporal y reusabilidad, construcción de grandes sistemas - Experimentación: Numerosos paradigmas: programación estructurada, flujos de datos, orientación a objetos - Diseño: Herramientas 4generación, herramientas de especificacion, diseño UML 6- BASES DE DATOS Y RECUPERACIÓN DE INFORMACIÓN - Teoría: Álgebra relacional, cálculo relacional, concurrencia, bloqueos, sincronización, búsqueda, indexación.. - Experimentación: modelos de datos: jerárquico, relacional, orientada a objetos, XML - Diseño: ORACLE, SQL, server, INGRES,ADABAS 7- INTELIGENCIA ARTIFICIAL Y ROBÓTICA - Teoría: Modelización del conocimiento animal y humano - Experimentación: Razonamiento lógico, representación del conocimiento, teoría del aprendizaje, reconocimiento del habla,robótica - Diseño: Programación lógica, sistemas expertos, redes neuronales, lógica difusa 8- GRÁFICOS - Teoría: Geometría computacional - Experimentación: Modelización de representaciones gráficas, realidad virtual, simulación - Diseño: Estandarización de las representaciones, VRML, aplicaciones gráficas 2D-3D, simuladores 9- INTERACCIÓN COMPUTADORA-HUMANA - Teoría: Teoría de la comunicación, ergonometría - Experimentación: CAD - Diseño: CAD aplicado a múltiples campos, multiples modelos de interacción 10- CIENCIA COMPUTACIONAL - Experimentación: Modelos secuenciales, modelos paralelos - Diseño: mathematica, mathlab 11- INFORMÁTICA ORGANIZACIONAL - Teoría: Sistemas organizacionales, sistemas de información, sistemas informáticos - Experimentación:Management Informaticon Systems (MIS) - Diseño: Numerosas implementaciones 12- BIOINFORMÁTICA Campo emergente: Química computacional, cálculo de moléculas,algoritmos de strings para el proyecto Genoma Humano, retinas y oidos artificiales, memorias para series históricas Buenas (otra vez). Hoy os traigo un texto muy majete que casualmente tenia que comentar para clase, y ya que estaba... . Os voy a dejar aqui un resumencillo mio, en el que "solo" he puesto las partes mas interesantes. Por si a alguien le interesa leerlo entero (unas 5 paginas en inglés), dejo este enlace . El texto, escrito por Peter J. Denning , se llama El Mito del Campo de Programadores (aqui me imagino siempre un montón de gente clavada en un huerto gigante, con solo las cabezas sobresaliendo). Trata, en general, sobre el hecho de que muchisima gente crea que la Informática es simplemente "algo" con poco de ciencia o de ingeniería, como un simple "grupo de programadores". Según él, esto viene de que es "logico" que , ya que los ordenadores necesitan programas para funcionar, la programación sea fundamental. Además (copio textualmetne porque este trozo es muy.. poetico o algo) : "La mayoría de trabajos de clase se llaman "proyectos de programación", y no "proyecto de diseño", "proyecto de bases de datos", "proyecto de redes" o "proyecto de gráficos". Cuando forjan su opinion del campo mas importante en la universidad, los estudiantes miran atrás hacia sus clases de informática y se ven... programando. Aquellos interesados en mejores puestos se ven... haciendo programación Orientada a Objetos con Java. Los medios de comunicación cuentan muchas historias sobre informática. ¿Quién creó y distribuyó los modernos sistemas de claves criptográficas públicas? Programadores. ¿Quién creó las instrucciones de las docenas de microprocesadores en tu coche? ¿Quién creó el software que analiza tus resonancias magnéticas? ¿Quién creó los navegadores Web? ¿Quién escribió el código de SETI que ayuda a buscar vida extraterrestre cuando tu PC está desocupado? Todo programadores. ¿Quién se cuela en un sistema? Los hackers, una secta de pícaros programadores. ¿Quién escribe virus y gusanos? ¿Quién lanza ataques de denegación-de-servicio? ¿Quién ataca páginas web? ¿Secuestra ordenadores y los vende a los spammers? Más programadores pícaros. ¿Quién cometió el error que hizo que una sonda se estrellara en Marte? Un programador. Están en todas partes, tio. Para lo bueno y para lo malo, todo está hecho por programadores. La mayoría de gente no ve las historias de especialistas en arquitectura de computadores, ingenieros de redes, ingenieros de sistemas operativos, ingenieros de bases de datos, especialistas en gráficos, arquitectos software, diseñadores de sistemas software, expertos en seguridad, en simulación, en realidad virtual, en supercomputación, en robótica y muchos mas. Todas las historias se cuentan como protagonizadas por programadores." (...) "Hay que crear un nuevo retrato de nuestro campo que enfatice la diferencia entre nuestros principios cientificotécnicos y la parte práctica. Los principos fundamentales están en el diseño y la mecánica de la computación, comunicación, coordinación, recopilación y automatización. Estos principios no están cogidos de otros campos: los cientificos informáticos los desarrollaron. Nuestras cuatro prácticas fundamentales son la programación, la ingeniería de sistemas, el modelado y la innovación" En otra parte del texto, comenta que según la especialización elegida y el estilo, cada profesional debe poner más enfasis en unas partes prácticas o en otras. Hasta ahí la parte que por ahora me ha parecido mas interesante. Lo de hacer distinciones me parece dificil, pero una gran idea. Sigamos con el texto. También se habla de la crisis del software, y cómo en una cumbre de la OTAN en 1968 se ponen de manifiesto los retos del software del futuro: tratar con requerimientos difusos y cambiantes, asesorar y manejar el riesgo, sistematizar el proceso de localización y erradicación de errores, organizar y manejar equipos de programadores y satisfacer a los clientes. A esto le dieron un neuvo nombre: Ingeniería del Software. También deja caer la idea de que para manejar la compleja conducata de los sistemas grandes de software, haría falta cultivar "diseñadores" (no programadores) , ya que la producción del software conlleva un problema intrínseco de talento-y-diseño. Así que insta a la comunidad informática a enseñar a los informáticos a ser grandes diseñadores y desarrolladores de software. (en realidad, la idea es de Fred Brooks , pero no le pone ninguna pega) También cuenta cosas de Dijkstra (cómo me mola su algoritmo ^^) , y quelo que para él, lo mejor sería unir todas las hojas dispares en una única disciplina. Borrar todas las palabras "del mundo real" de los primeros cursos, y en vez de ello, enseñar las derivaciones formales de los programas a partir de predicados lógicos que expresan sus requrimientos. Ademas, apuesta por la enseñanza de la detección de errores y cosas asi, que normalmente se consideran partes mas "blandas" o "debiles". Y , por último, da 4 recomendaciones para ayudar a reorganizar la enseñanza de las 4 prácticas y no confundirlas con los principios: 1- Promover el pensamiento algorítmico 2- Agrupar las enseñanza prácticas en una sección de Prácticas de Computación 3- Crear una estructura de enseñanza basada en la competencia en la práctica. (lo pongo en inglés): beginner (aprenden la sintaxis y la ejecución de las relgas de programación y los modelos basicos de deteccion de errores), advanced beginner , competent (conocimientos extensos de las librerias y los algoritmos basicos, deberian ser ademas capaces de unir varios modulos en un único sistemas para satisfacer una peticion), proficient (deben encontrar facil la programación en varios lenguajes, ver los lenguajes individualmetne como maneras de expresar algortimos que ya están "en su mente" y crear "estandares" que los demás podrían admirar y seguir), virtuoso, master (deben tener conocimineto extenso sobre el desarrollo histórico de la programación, deben ser capaces de diseñar grandes sistemas software combinando diversos niveles de abstracción, y también de definir nuevos métodos y mejorar las prácticas de programación) y legend. 4- Enseñar la detección y correción de errores. Y bueno, poco mas. Todo lo basa en eso. Espero que os haya parecido interesante, y si no... solo teneis que olvidarlo ^^ Saludos (PD: cualquier incoherencia sintáctica o lo que sea....la culpa es de que estoy en un medio hostil para mis neuronas.) Acabo de encontrar este texto+ imagen en "Todas ",y no se por qué, pero me ha hecho mucha gracia ^^U • Los vaqueros, camiseta o jersey negro y deportivas, son el uniforme de Steve Jobs en sus Keynotes. Veremos si este año, mantiene su look habitual, minimal y modernillo -bastante clasicón, a pesar de los levi´s-, last generation, por supuesto y lingerie Leopard inside. • Bill Gates, muestra en sus apariciones públicas una imagen más a lo office, un look más neutro, standar; con corbata y americana, habitualmente, a veces nos sorprende con una camisa a cuadros y un jersey en pico, como de primera comunión, wonderful corretly. Apostamos que él elige siempre BOXers. • Richard Stallman, tiene una imagen acorde a su pensamiento más anarquista, ¿libre de modas? con su imagen, rollito la arruga es bella improvisada, es el más actual, con esos pantalones caídos, barriguita cervecera y una camiseta…de rebajas ¡Lidl shopping rulez!. Poooorcierto: estoy oyendo The Test, de The Chemical Brothers... y una de las frases mas repetidas (sobre todo al final) es "Did I pass the acid test? " ..... decidme que no tiene nada que ver con navegadores !!! Acabo de descubrir este "truquillo" en Microsiervos , y la verdad es que sí que se nota un poquito. Copy&pasteo literalmente: " " Cómo ?!? que todavía usas internet explorer?? :O pues puedes descargar firefox aqui (aunque ami el que realmente me gusta es epiphany ..*_*) Acabo de ver esto en microsiervos . Es.. acohonante O_o, todavía estoy flipando. Os dejo el video: ehm bueno, no se donde he encontrado exactamtente esto, pero ... aqui os lo dejo, para que disfruteis (sobre todo los que todavía llevan IB xD): --- al lado pongo entre parentesis el enlace a wikipedia para los no iniciados --- - puerta NOT y buffer (NOT - Buffer ) - puertas AND y NOR ( AND - NOR ) - puertas OR y NAND ( OR - NAND ) Via Yo, Yo mismo y mi Ego , encuentro este post/how-to en La Estancia Azul : Aquí van unos consejos para cabrear a tu profesor a la hora de corregirte unas prácticas si estudias informática. Por supuesto, no esperes caerle muy bien. Abusa de los comentarios Incluye una licencia en todas tus practicas Asegurate de que leen tu código Deja claro que no usas Windows No seas creativo Adjunta bibliografía Fragmenta el código tanto como puedas Dale a la documentación un formato irritante Aprovecha las tutorías No demuestres lo que sabes hasta la entrega Incluye un miembro extra en el equipo Visto en Gadget4Girls , el raton mas mono de la temporada : el ratón-fantasma ! y aqui una imagen: no me digais que no es cuco... Tiembla ACER, mi portátil sigue en garantía!! muahahahahaha (tengo un mes) regrabadora nueva YA! Bueno, este articulo lo he leido en El Pais Semanal esta mañana, en su edicion impresa. Y me ha encantado, pero he estado a punto de no ponerlo (escribir todo eso?? buff), pero al final lo he encontrado en la edicion digital Aqui os lo dejo: Los huevos de Pascua son una deliciosa repostería de chocolate. Y desde los años setenta también constituyen divertidas sorpresas escondidas en programas informáticos y videojuegos, extendidos a las películas en DVD. Para abrir el huevo de Pascua hay que teclear secuencias de órdenes –en el teclado o el mando a distancia– que no aparecen en ningún manual. Son guiños de los programadores que llevan a escenas inéditas de películas o pequeños juegos. Un huevo de Pascua informático es, según la enciclopedia en línea Wikipedia, “una parte de código que el programador esconde intencionadamente para que lo encuentren los usuarios más atentos, que entenderán el chiste”. Llegar a él es cuestión de teclear secuencias secretas, usar comandos no documentados, hacer clic en el sitio adecuado… Por ejemplo, en el DVD de Moulin Rouge, en inglés, hay que seleccionar en el menú The Cutting Room y entrar; tras presionar la flecha hacia abajo del mando tres veces, se iluminará el Main Menu. Después de tocar la flecha a la izquierda aparecerá un molino rojo; al entrar en él aparecerá un ensayo de la escena en que Ewan McGregor canta Your song a Nicole Kidman. Complicado, sí. Los huevos de Pascua son un reto y una forma de recompensar a los usuarios que exploran exhaustivamente el producto. La diversión no se encuentra sólo en el regalo escondido, sino también en la aventura de llegar hasta él. Los aficionados llenan páginas de Internet explicando estos trucos, a los que algunas empresas informáticas y productoras son más proclives que otras: Moulin Rouge tiene documentados 15 huevos de Pascua, cuando lo normal en la mayoría de las películas es encontrar uno o dos como mucho. Nadie sabe cuál fue el primer huevo de Pascua digital. En 1977, algunos juegos de Atari 2.600 empezaron a incluir sorpresas. Para evitar las copias, sus programadores escondían en archivos invisibles datos que identificaban cada uno de ellos, a veces de forma jocosa. Pronto, los sistemas operativos para Macintosh y Amiga se unieron a la fiesta y los huevos crecieron en calidad y cantidad. Hoy día, la mayoría de programas y videojuegos llevan algo escondido. Suelen ser listas divertidas de los programadores que han participado en su creación, juegos o imágenes. Los últimos en adoptar esta práctica han sido los DVD, que esconden fotos, cortos, información adicional, música, tomas falsas, etcétera. La sensación de descubrir uno de estos huevos es parecida a la de abrir uno de chocolate. Desenvolverlo y romperlo, buscando el premio, aumenta la excitación y la sorpresa cuando se encuentra, confiriéndole un halo de magia, una conexión directa entre quien escribió el programa y el usuario. Como pequeña muestra, proponemos abrir un nuevo documento en el programa Word de Microsoft, escribir “=rand(200,99)” y pulsar la tecla Enter. Aparecerá escrita decenas de veces la frase: “El veloz murciélago hindú comía feliz cardillo y kiwi”. En su libro Easter eggs-software surprises, David Nagy-Farkas define el huevo de Pascua digital como el que ha sido escrito por sus programadores originales: es universal, en el sentido de que está presente en todas las versiones del programa; no está documentado en los manuales, no causa ningún daño y es divertido. Algunas compañías informáticas consideran que esta práctica es una pérdida de tiempo de sus empleados y pone en riesgo el buen funcionamiento del programa. Algunos programadores se saltan esta restricción programando el huevo para que empiece a funcionar en una fecha posterior al lanzamiento del producto. Como dice uno de ellos, “introducir un huevo en un programa no es fácil. Por eso, conseguirlo pone orgulloso a cualquier programador”. Un viejo empleado de Amazon Dónde: Tienda virtual Amazon.com. Cómo: Ir a http://www.amazon.com. En la primera página, bajar hasta el final y pinchar el enlace Directory of All Stores. Se abre una nueva página. Ir hasta el final y, bajo el número 1996 de la nota de derechos de autor, hay un pequeño enlace invisible que se descubre dando vueltas con el cursor por los alrededores. Si se pincha, lleva a una web en honor de uno de sus más antiguos empleados. Una sonrisa desconocida Dónde: teléfonos móviles Sony Ericsson. Cómo: abrir un nuevo mensaje SMS. Seleccionar el botón de añadir símbolo. Insertar “:-*” sin las comillas. Aparece un emoticón. El pez danzarín Dónde: programa Winamp 5 o superior. Cómo: ir al cuadro de Preferencias. Seleccionar Plug-ins y la sección Input. Seleccionar la entrada Nullsoft Vorbis Decoder y pinchar el botón About. Aparecen unos créditos con un pez. Si se pincha en el pez, éste da vueltas. La voz de Schwarzenegger Dónde: programa MSN Messenger. Cómo: mientras se conversa, escribir “/sbrb” y sonará la voz de Arnold Schwarzenegger diciendo: “Ahora vuelvo”, en inglés. Si se escribe “/sdoh”, se oye a Homer Simpson decir: “¡Oh!”. Cómo suena esta nariz Dónde: programa de chat mIRC. Cómo: abrir el menú de ayuda y seleccionar Acerca de. Aparece la foto de su creador. Pinchar justo al final de su nariz. Suena. Un camaleón linuxero Dónde: sistema operativo Linux/SuSE. Cómo: insertar un CD o DVD de SuSE 8.2. Después de la bienvenida, presionar las teclas Arriba y Abajo para pararlo. Pinchar la tecla F5 y aparecerá un camaleón. Jugar al Tetris Dónde: sistema operativo Mac OS X. Cómo: abrir Aplicaciones, Utilidades y Terminal. Teclear emacs y presionar la tecla Enter, seguida de Esc y X al mismo tiempo. Teclear tetris. Aparece el juego. Elvis en paracaídas Dónde: programa Corel Draw 5. Cómo: presionar Mayúsculas y Ctrl a la vez. Pinchar en Ayuda y dejar de presionar las teclas anteriores. Hacer doble clic en cualquiera de los dos iconos que aparecen. Presionar el botón derecho del ratón y aparece Elvis Presley. Créditos saltarines Dónde: programa Nero Burning Rom. Cómo: ir a Ayuda y Acerca de Nero. Hacer doble clic con el botón izquierdo del ratón en la ventana que aparece. Ver a Sharon Stone ensayando Dónde: Instinto básico en DVD. Cómo: seleccionar la pantalla Special Features y llevar el cursor del control remoto hacia el picador de hielo que se encuentra a la derecha, en la parte baja de la pantalla. Apretar Enter y esperar a que aparezcan hasta cuatro ensayos de escenas de la mismísima Sharon Stone. Final alternativo de ‘Terminator 2’ Dónde: Terminator 2: Extrem Edition en DVD. Cómo: ver la película con el modo interactivo activado. Cuando acaba, aparece un símbolo en la pantalla. Tras presionar Enter, aparecerá el final alternativo. ‘Storyboard’ de ‘Final fantasy’ Dónde: Final fantasy en DVD. Cómo: en el disco dos, después de la animación de Aki, aparece un menú con tres apartados. Seleccionar menú principal y apretar Derecha y después Abajo. Se iluminará un dibujo en azul y amarillo. Apretar Enter para ver un storyboard. Tom y Penélope Dónde: Vanilla Sky en DVD. Cómo: navegar por el menú Special Features y entrar en Photo Galleries. En el menú de esta página, seleccionar Special Features y presionar la flecha hacia la derecha en el mando. Se ilumina un icono en la parte superior de la pantalla. Presionar Enter; aparecerán cinco minutos de tomas informales del rodaje. __________________________________________________________________ chachi, verdad? por ahora solo he podido probar el de amazon y el del messenger. Si alguien prueba alguno, que lo diga ^^ Nos memos ;) en primer lugar, perdonadme por actualizar mil veces hoy pero es lo que tiene no dormir y no salir de festa xD El caso, curioseando por internet, he encontrao LadyBenko.net , y ahi, unas cosillas curiosas xD - Poesía en C++ . grandisima! impagable la parte de "Wind.Blow("stern","maximum");" o sea, "viento en popa a toda vela" xDDDDDDD - Ventajas de Tener una Novia Friki . Esto estaba en uno de los links, elaine marley.com. Tengo que imprimirlo y darselo a peibol xD - Desventajas de Tener una Novia Friki . La otra cara de la moneda. Tambien tendre que imprimirlo, eah (hay que ser objetivos xD) Por cierto, he dicho ya que me he vuelto a cortar (mas) el pelo?? ^^ pues si! otro maldito post geek/freak/comoqueraisllamarlo: este ma matao , porque es grande grande grande, Mis favoritos: - el "Madison Cube Garden" XD - El de la gasolinera mas cercana. es muy MUY bueno - el de aleph cero (a ver cuando ponen eso en un examen de lga: sea un cine de infinitas salas con infinitos espectadores. podremos meterlos a todos en una unica sala de infinitos asientos?? chan chan) - La bestia binaria jajaja - El de la Entrada Cuántica ( no os perdais el dibujo ) - La cerveza de Klein!! como se puede ser tan jodidamente geek???!?!? (hablando de geeks.... que alguien me regale una botella de klein U_U) - la Historic Root 66 xDDD - pi-in- one xDDD - pi-th avenue xDDDD en fin, grandisimo Sacado dl blog del SrSmaug sacado de Barrapunto escrito por Adrián Paenza: " Cómo trabajar para Google " curioso ^^U nueva forma de ver el mundial (thanks a rakun ) En Windows, Inicio -> Ejecutar Escribe cmd. tachan tachan.--- edito: si ademas haceis clic en su botón de la barra de tareas -> propiedas -> tamaño-> fuente: 6x8 .. se vera mejor que mejor) dios, acabo de leer esto en mi libro de computabilidad y estoy flipando. La conjetura de Goldbach consiste basicamente en afirmar que cualquier número par mayor o igual que 4 es siempre la suma de dos números primos. Aunque esta conjetura lleva abierta mas de 250 años, nadie ha conseguido demostrarla. Veamos... 4 = 2+2 6 = 3+3 8 = 3+5 10 = 5+5 12 = 7+5 14 = 7+7 16 = 11+5 18 = 13+5 20 = 17+3 22 = 19+3 24 = 19+ 5 26 = 19+7 28 = 23+5 30 = 23+7 .... pues... va a ser verdad #include using namespace std; void mota() { //Esta funcion no se sabe exactamente qué realiza,sin embargo, //aparece en muchos sistemas como codigo de usuario //(quiza en otra fase de desarrollo fue una especie de "traza" return(); } pensaba que las Videoconsolas iban a pasar sin pena ni gloria por mi vida... pero despues de plantearme en serio comprarme una DS ( jiji ) .. y despues de babear mil veces viendo el video de la Wii . .. ya no estoy tan segura :S (Wii --> consola : 299 € / juegos: menos de 50$) (DS ---> consola: 140 € / juegos: ~30 € (he visto de todo)) (PS3 ---> consola: 500-600€ / juegos: ?? ) pues eso, cosicas nuevas qeu le he hecho: -he instalado POR FIN anjuta!! siii, soy una info-vaga!!! xD -he instalado tmb todas las fumadas xtrañas de gcc. -he instalao (de esto no m acordaba, xo ha venido a mi)... el fortune!! xD muy majo, xo las ironías en inglés me cuesta pillarlas ^^U -me he peleado inutilmente un rato con el configurador de TV (ADMITO SUGERENCIAS) -le he dicho a la tarjeta de sonido que funcionase (lastima que esto en mi portatil no ocurra xD) asique en principio, de las cosas urgentes , solo me queda configurar la conexion a internetenete y poco mas....... bueno, pos eso, me voy a seguir haciendo grafos simpaticos con maple9. ( atencion a la matriz del ejercicio 9: http://www.dccia.ua.es/dccia/inf/asignaturas/AMD/Matrius%20practica%201.doc ) en fin , niños y niñas, portaos bien y comed mucho turron, que es bueno y está ico ooohhh siii!!!! he conseguido descubrir cómo hacer que mi movil se comunique amigablemente con el de mi padre!!! sin malos rollos, con amor y cariño, bluetooth de x medio, claro XD La suerte es que mi padre tmb tiene un motorola (en su caso, el L6 DeLuXe, con la tontuna del adaptador manos libres de coche y tal y cual) Y eso , que le he pasao una foto to maja de mi bro y yo a mi padre ^^ Ps: chu... tienes una foto que a peibol y a mi nos interesa ejem ejem >;D bueno, niños y niñas, y publico en general: aquí os presento a mi nuevo juguete/objeto de uso diario: mi nuevo movil !!!! (baba++) es el motorola V360, ya le he cambiao todas las configuraciones cambiables (si, m gusta , k pasa xD), solo m falta pillarme unos auriculares con la clavija pekeñita y una tarjeta de memoria maja xa meterle musica y convertir mi movil en un mp3. Ademas me ha caido muy bien la camara (la calidad "alta" es bastante aceptable), el sonido tmb es bruuuuuuutal. es pekeñito , no demasiado grueso, al abrirlo tiene la medida justa oreja-boca, no pesa casi; la pantalla externa es un puntzo xk muestra to lo basico que puedes necesitar en un momento d urgencia XD ademas, y aunque mi pc se niegue a admitirlo, tiene bluetooth.. pero ya me encargaré mas adelante de que se entiendan entre ellos, jeje. Que mas.... ah si, marcacion x voz, xo no me ha convencido (tarda demasiado), los accesos directos son superconfigurables (baba++), el calendario-planificador de eventos es tambien bastante "grafico" (el que tenia en el mvl de antes era bastante mas modo-texto).... en fin, que estoy realmetne contenta con este bicho ;) xcierto, tambien hoy he estrenao nueva distro d linux (suse 10); tambien es muy maja, xo creo ke ese pc es demasiado "cacharro" para ella jejee. al menos mi hermano ha quedado satisfecho ^^ saluditos a todos!!! bien, hago copy paste xD: otra vez el **** GRUB de los ******* Sólo quiero expresar mi enervacion actual: Me acuesto a las 4 (estudiando), dejo el PC encendido para aprovechar y que se acabe de bajar Gantz, me levanto 6horas mas tarde (para estudiar), y misteriosamente , el jodido PC está frío y silencioso. Me acerco a él y pienso "cojones, pero... si está apagado!!". Bien, cagándome en todos sus hermanos portátiles, le doy al jodido botoncito de encender, me doy la vuelta, hago un par d cosas y cuando welvo , se ha quedado atascado intentando cargar desde el modo hibernación... Ahí si que me pierdo del todo ("hibernación?" "por qué hibernación??" "yo no lo he puesto a hibernar!!"), y empiezo a pensar qué puede haber pasado ("Lo habrá apagado alguno d mis padres?? No, mierda, ellos lo hubieran apagado, no hibernado!!") Así que me rallo muuuuucho. A todo esto, acabo de conseguir que se encienda (se queda colgao cuando intenta deshibernar, asique entro en modo normal), y por el estado de las descargas puedo comprobar que no estubo mucho más de una hora encendido desde que yo me acosté. En fin, puede parecer una gilipollez xo eske ya es x lo menos la tercera o cuarta vez que me ocurre. Hasta los webos! by quasar ^^ |
||||||||||||||||||||||||||||||||||||||||||||||||||
Blog creado con Blogia.
Blogia apoya: Fundación Josep Carreras