Una historia de tres juegos: programación en lenguajes para niños (II de IV)
Posted by Leonel in Ingeniería, Programación on 28 July 2010
Empecé programando en Scratch de MIT. Hay que recordar que en el MIT es donde trabaja Seymour Papert, el creador del lenguaje Logo y por ello de alguna forma Scratch se parece mucho a Logo, se puede decir que cada imagen en Scratch es como una tortuga de las de Logo y de hecho se comporta como tal.
Scratch viene con una extensa galería de imágenes listas para usar y además se pueden dibujar otras en una herramienta de dibujo incorporada. También es posible usar cualquier imagen de la computadora o bajada de Internet.
Empecé haciendo que el gato (que es la imagen que aparece al crear un nuevo proyecto) se colocara en el centro de la parte superior de la pantalla y de ahí se moviera permanentemente hacia la derecha o izquierda – controlado por las flechas del teclado – y hacia abajo, es decir nunca se está quieto. El gato sería “la bolita” de Rapid Roll pero sin opción a detenerse.
Luego agregué una barra horizontal de color azul y la programé para que se colocara en la parte de abajo en una posición aleatoria sobre el eje x y de ahí se moviera hacia arriba a una velocidad constante.
Aquí es donde las características de Scratch se empiezan a hacer evidentes. Cada imagen, que se llama “sprite” en inglés y “objeto” en español, tiene su propio espacio de programación totalmente independiente de los demás, la única opción de comunicación es enviar mensajes a todos con la instrucción “enviar a todos” (“broadcast” en la versión en inglés) con lo que se puede preparar un script en los otros objetos para que se ejecute cuando se recibe un mensaje particular.
Scratch provee al programador con instrucciones especiales que son “sensores” que sirven para evaluar condiciones como si una imagen está tocando cierto color, cual es la distancia hacia otro objeto, si está tocando un borde, etc. Usando estas instrucciones coloqué una condición al movimiento hacia abajo del gato, de tal forma que cuando estaba tocando azul (es decir tocando una de las barras que suben) en vez de caer sube a una velocidad ligeramente mayor a la de las barras. Con esto logré el efecto deseado de que el gato cae permanentemente a menos que esté sobre una barra azul.
Luego fue tan sencillo como copiar la barra azul cuatro veces y obtuve otras cuatro barras que se comportaban de la misma forma. Esta fue la primera versión que coloqué en línea.
Todavía no era un “juego” porque no había forma de “perder”. Entonces se me ocurrió agregar un mar que se bambolea en la parte de abajo, y cuando el gato llega al mar “se ahoga”, el gato debe evitar caer al mar porque al fin y al cabo a los gatos no les gusta el agua. Esta fue la segunda versión.
Pero aun faltaba un elemento más, algo que le diera emoción. Un tiburón saliendo del mar y subiendo con las fauces abiertas para tragarse al gato parecía buena idea, pero dos era todavía mejor. Uno de ellos aparece al principio del juego y el segundo se agrega 30 segundos después. Los tiburones se mueven un poco más rápido que las barras de forma resultan amenazantes para el gato. Agregué un efecto rápido de movimiento de los tiburones cuando “se comen” al gato, resultó divertido. Esta fue la tercera versión.
Al final me sentí muy satisfecho con el resultado. Pude haberle agregado un montón de cosas más, como un marcador, niveles, ¡más tiburones! Pero me conformé con subir las distintas versiones previas del juego al sitio de Scratch de donde quienquiera que desee agregarles funcionalidad puede bajarlas y trabajarlas, lo cual por cierto es algo grandioso de Scratch, uno pone sus proyectos en línea muy fácilmente y recibe comentarios de otros usuarios. Es una auténtica red social.
Además el experimento continuaba con Alice, tenía que hacer el mismo juego – o similar – con Alice. De eso les cuento en el próximo post.
Una historia de tres juegos: programación en lenguajes para niños (I de IV)
Posted by Leonel in Ingeniería, Programación on 23 July 2010
Programar juegos de computadora puede sonar divertido pero para nada es trivial. Un buen juego es un excelente ejemplo de ingeniería simple: fácil de usar, divertido, entretenido pero con mucho esfuerzo y trabajo bien pensado como soporte.
La primera vez que intenté programar un juego fue cuando estaba en el bachillerato y aprendimos el lenguaje Basic para la Osborne, una de las primeras PC “portátiles”. Se trataba del famoso “tic-tac-toe” también llamado “equis y ceros”. Recuerdo que vi la película “Juegos de Guerra” (buenísima, un auténtico clásico de computadoras) y me impresionó porque se supone que usan el juego de Equis y Os para enseñarle a la computadora que no hay forma de ganar siempre, y por eso intenté programar ese juego. Ni qué decir que no funcionó, pero me hizo pasar muchas horas en el laboratorio del colegio.
Desde entonces no había vuelto siquiera a intentar programar un juego hasta que empecé a usar los lenguajes para niños Alice, Scratch y más recientemente Small Basic. Como parte de una pequeña investigación sobre esos lenguajes decidí que era una buena idea intentar hacer el mismo juego en los tres ambientes y resultó divertido y revelador.
El juego que elegí como modelo se llama “Rapid Roll” que juego en mi celular de vez en cuando y es sobre una bolita que va cayendo y uno debe hacer que aterrice sobre barras que suben de forma que no llegue nunca al suelo. El juego se va haciendo más rápido y se complica pero es bastante entretenido.
Claro que mis versiones no quedaron iguales y ni siquiera se parecen tanto al “Rapid Roll” original, pero algo que aprendí de esto es que uno disfruta mucho jugando los juegos que uno mismo programa, así que también fue un experimento divertido.
De la investigación puedo comentarles que los tres lenguajes usan paradigmas de programación ligeramente distintos. Alice es muy cercano a lo que conocemos como “orientado a objetos”, Scratch es un lenguaje procedural donde cada figura se programa independientemente y Small Basic utiliza objetos pero solo como un mecanismo para acceder a ciertos recursos: la pantalla gráfica es un objeto, lo mismo que la de texto, el sistema de archivos y no puede tener más de un objeto de la misma clase.
Alice y Scratch implementan muy bien los mecanismos de ejecución simultánea mientras que en Small Basic lo natural es que todo vaya a un solo hilo de proceso. Y todavía hay más, pero mejor paso a contarles cómo me fue y qué pude lograr, pero eso será en el siguiente post.
Reactos, el sucesor de Windows
Posted by Leonel in Ingeniería, Internet, Programación, Temas generales on 19 July 2010
Por Juan Manuel
Editado por Leonel
ReactOS (React Operating System) es un proyecto de código abierto para crear un sistema operativo compatible con aplicaciones y controladores de Windows en general. Esto significa que se podrá instalar en una computadora común y corriente y podrá correr todos los programas que le sirven a un usuario de Windows.
Parte de su código está basado en el proyecto Wine, que es un esfuerzo similar para implementar todo el API de Windows (Application Programming Interface, el conjunto de funciones que hacen correr los programas de Windows) en ambientes Linux, de forma que Wine también se beneficia de los avances de ReactOS.
La historia
La utilidad de los sistemas operativos de Microsoft es indiscutible. Sin embargo, el tema de las licencias – o la falta de ellas – siempre significó una dificultad más o menos importante. Las alternativas existentes nunca fueron totalmente compatibles y ni siquiera estaban ampliamente disponibles.
Por ello desde el principio siempre flotó en el aire la idea de un sistema operativo 100% compatible y 100% libre. Muchas personas sabían que esto era posible.
En 1996 un grupo de programadores comenzaron un proyecto llamado Freewin95 el cual consistía en implementar un clon de Windows 95 pero completamente libre, sin embargo éste atravesó por una serie de problemas cuando solo se había implementado la capa compatible con MS-DOS. Para 1997 el proyecto no había lanzado ninguna versión así que los miembros del proyecto coordinados por Jason Filby lo reiniciaron completamente y cambiaron el núcleo del sistema compatible con MS-DOS y de ahí en adelante lo basaron en uno compatible con Windows NT ya con el nombre actual (ReactOS).
El cambio de MS-DOS a Windows NT fue una buena idea ya que este último fue el primer sistema de Microsoft que no corría sobre DOS, de la misma forma en que las versiones más recientes – XP, Vista, etc. – tampoco necesitan más de DOS.
¿Clon de Windows?
Definitivamente que no. ReactOS es un sistema operativo compatible con Windows. Una importante diferencia es que no se trata de un sistema cerrado sino abierto (open source) en el que cualquier persona tiene acceso a revisar los fuentes en caso de errores o funcionamiento inadecuado, lo cual no sucede con su contraparte comercial de código cerrado.
También es importante tomar en cuenta que no se necesita ninguna licencia para instalar y ejecutar ReactOS.
Situación actual
Después de 10 años trabajando en el desarrollo del producto, ReactOS se encuentra actualmente en su fase de pruebas alfa, es decir, en pruebas que se realizan por usuarios en ambientes controlados por los desarrolladores. Las razones son varias, pero vamos a comentar dos como principales. Primera: el código del modelo que se está intentando copiar (Windows) es cerrado, de forma que no hay manera de revisar cómo ha sido implementado, el alcance de sus funciones y el comportamiento exacto de cada porción de código. Es como intentar emular una caja negra, el comportamiento debe ser igual pero la única forma de conseguirlo es probando qué resultados se obtienen para el mayor rango posible de entradas. Segunda: trabajar en un sistema operativo es una tarea increiblemente compleja y los programadores que la realizan ofrecen su tiempo de forma voluntaria sin ningún cargo, lo cual no significa que no estén comprometidos con el proyecto, pero no necesariamente es tu tarea prioritaria.
La primer versión de ReactOS vio la luz el 25 de enero de 2004 y la más reciente (0.3.11) el 16 de diciembre de 2009, se espera que pronto se llegue a la versión 0.5 ya considerada como beta, es decir, liberada para pruebas fuera de los ambientes controlados por los desarrolladores.
¿Desea probarlo?
Estudiantes, investigadores, centros educativos, laboratorios, etc., que deseen probar ReactOS pueden obtenerlo en su dirección oficial: http://www.reactos.org/ que contiene una sección de descarga. Se recomienda utilizar algún paquete de virtualización – como VirtualBox -, instalar una máquina virtual y trabajar en ella, de forma que cualquier fallo afecte lo menos posible.
Se puede seguir las instrucciones que se proveen aquí:
http://reactos.wordpress.com/2008/11/12/instalar-reactos-037-en-virtualbox-sobre-windowsxp/
http://reactos.wordpress.com/2008/11/15/instalar-reactos-037-en-virtualbox-sobre-windowsxp-ii/
Puede que el título de “sucesor de Windows” suene un poco ambicioso para ReactOS, pero en el fondo, y pensándolo un poco más allá de lo obvio, hay que reconocer que el modelo de software libre y abierto sobre el que se construye ReactOS bien puede ser el verdadero sucesor del modelo comercial detrás de Windows.
Los ingenieros y las matemáticas (III de III)
Posted by Leonel in Ingeniería, Matemáticas on 18 February 2010
Decíamos en el artículo anterior que el ingeniero dispone por su formación, de un bagaje de conocimientos matemáticos que persisten latentemente en su intelecto. Están a la espera de saltar sobre el problema ideal para ellos, de la misma forma en que una ficha de dominó está lista en las manos del jugador experto para ser utilizada en el momento justo cuando el juego ha alcanzado una determinada condición, o como la pieza de un rompecabezas que parece no encajar en ningún lugar al iniciar el armado, pero que luego se ve que ajusta perfectamente y ayuda a entender la imagen completa.
Ahora bien, como sucede con los atletas, que deben ejercitar todos los músculos de su cuerpo, aunque no tengan una conciencia clara de cuál es el papel de cada uno en las competencias, también el ingeniero no debe conformarse con aprender “en teoría” la matemática, ni siquiera con “entenderla bien”. Es necesario ejercitarla ampliamente.
De ahí se deriva el constante bombardeo de hojas de trabajo, ejercicios, tareas, problemas, exámenes, etc., con el que los jóvenes estudiantes de ingeniería son a veces mortificados hasta el agotamiento.
Todo para asegurar que cuando la identidad trigonométrica, la técnica de derivación o integración, la función biyectiva o la demostración matemática adecuada sean requeridas estén listas y prestas en la caja de herramientas mental del ingeniero.
Y de la misma forma en que en el atleta los ejercicios que realiza en sus mejores años deportivos dejan una huella permanente en su constitución corporal aunque posteriormente cambie sus hábitos y actividades por otros más sedentarios, en el ingeniero también queda una huella intelectual de todos esos problemas y retos de análisis matemático que realizó en sus años de formación y conforman una especie de sexto sentido con el que percibe de forma ligeramente diferente los hechos y situaciones que se le presentan.
El ingeniero busca llevar los problemas al plano numérico con la dimensión y la medida, y con ello lograr la optimización, la eficiencia, la eliminación del desperdicio, y el funcionamiento ideal.
Ojo que al decir esto no pretendo afirmar una supuesta superioridad de las profesiones de ingeniería sobre las demás, de ninguna forma. Cada rama del saber y sus profesionales aportan su particular perspectiva a cada problema y situación de la vida humana y estas son complementarias, pero precisamente por eso es importante que cada cuál sepa lo que se espera que aporte.
También hay que hacer una distinción específica respecto de los matemáticos y físicos “puros”. A pesar de tener énfasis parecidos en el análisis numérico, a los ingenieros se les exige la constante aplicación práctica de sus conocimientos, el conocimiento y uso de las técnicas actuales, el desarrollo o implementación de tecnología siempre que haga falta y la preferencia de la solución particular sobre la general si esta última no es necesaria para resolver el problema que se tiene entre manos. Cuando físicos y matemáticos se emplean en la industria en labores de ingeniería usualmente también se adhieren a estos parámetros, mientras que si lo hacen en actividades de investigación entonces privilegian la búsqueda de soluciones generales. Claro que esto se podría matizar un poco y explicar de otra forma, pero para las intenciones de este artículo, esta exposición debería ser suficiente. De hecho ahondar entre la diferencia entre científicos e ingenieros merece un artículo especial y de alguna forma ya fue intentado en este blog con el chiste del matemático, el físico y el ingeniero.
Podrían hacerse muchas más observaciones sobre el uso de las matemáticas en la ingeniería, de momento dejaremos aquí estas reflexiones, sin embargo, debido a que toca la naturaleza misma de la profesión, seguramente volveremos sobre ellas en el futuro.
Los ingenieros y las matemáticas (II de III)
Posted by Leonel in Ingeniería, Matemáticas on 15 February 2010
Comentábamos en el artículo anterior que por siglos el cálculo ha sido una parte integral de la vida de los estudiantes de ingeniería. Pareciera que se trata de un sustrato ineludible para todas las ramas de ingeniería.
No creo que sea posible disculpar de su estudio a los ingenieros mecánicos, eléctricos, químicos, agrónomos, civiles, entre otros.
Pero algunas ramas modernas de la ingeniería, que se derivan o se relacionan fuertemente con la revolución tecnológica de la segunda mitad del siglo XX – la invención del transistor, el desarrollo de las computadoras digitales, los lenguajes de programación, etc. – parecieran mejor servidas si enfatizan sobre todo la matemática que se relaciona con los conjuntos numerables o contables: las matemáticas discretas.
Ingenieros de sistemas, informáticos, electrónicos, de telecomunicaciones, etc., tienden a analizar el mundo desde una perspectiva discreta y amparados por tecnologías digitales.
Se puede argumentar, también desde la física cuántica moderna, que en última instancia las variables discretas modelan de forma más coherente (que no necesariamente es lo mismo que más exacta, más adecuada o más conveniente) el universo y sus fenómenos que las variables continuas o analógicas.
También se puede argumentar que el ingeniero hoy en día – y aquí no importa de qué rama de la ingeniería se hable – utiliza sobre todo técnicas y métodos numéricos, que son aproximados y están basados en algoritmos que se ejecutan en computadoras digitales.
Esto quiere decir que a pesar de que para muchos problemas comunes está disponible una solución analítica exacta, la rapidez y amplia disponibilidad de las herramientas digitales (computadoras) hacen que se acuda a la solución aproximada preferentemente.
Por ejemplo, si se necesita calcular la potencia de entrada para una bomba de agua que bombea hacia un pozo de petróleo, se puede obtener la solución exacta calculando afanosamente o se puede hacer uso de un software que proporciona la respuesta en base a un conjunto de parámetros estándar, que es más rápido y tiene menor probabilidad de error.
La matemática aplicada que el ingeniero aprendió y que le permitiría resolver ese problema particular se queda sin uso inmediato.
Ahora bien, decía el Dr. Antonio Guillot que la diferencia entre el ingeniero y el maestro de obras es que este último sólo sabe que la mezcla fragua, pero el ingeniero debe saber por qué fragua. El maestro de obras tiene un conocimiento que le resulta muy eficaz para realizar un determinado conjunto de obras, pero cuando se excede ese grupo, en obras donde la incertidumbre sobre el procedimiento correcto es mayor, entonces se necesita el conocimiento más avanzado del ingeniero, no porque éste sepa exactamente cuál es la forma correcta de hacer la obra, sino porque se asume que tiene las herramientas cognoscitivas necesarias para encontrar el mejor procedimiento.
Lo que esto quiere decir es que esa matemática “no utilizada” en realidad está ahí a la espera de encontrar el momento justo en que debe ser aplicada, no necesariamente de una forma operativa sino como el reconocimiento de un patrón de cálculo que requiere medidas especiales para producir resultados coherentes.
Hablaremos de este “sexto sentido matemático” en el próximo artículo.
Los ingenieros y las matemáticas (I de III)
Posted by Leonel in Ingeniería, Matemáticas on 10 February 2010
Tarde o temprano teníamos que hablar de este tema. No es posible escribir un blog sobre cuestiones de ingeniería sin tocar eventualmente el tema de las matemáticas. También ayuda el hecho de que en el segundo semestre de 2009 di un curso de matemáticas precisamente, así que tuve tiempo para reflexionar sobre esta cuestión.
Fue un curso de Matemática Discreta, donde se abordan temas sobre los conjuntos numerables y la teoría y las técnicas de conteo. Esta matemática es fundamental para ciencias de la computación y es válido reconocer que mucho del desarrollo de la informática moderna tiene sus bases en los conceptos que se estudian en esta rama de la ciencia de las cantidades.
Y como siempre los alumnos preguntan ¿y esto para qué nos va a servir? El catedrático se ve cuestionado no sólo en la utilidad de los conocimientos impartidos sino en la mismísima motivación para siquiera interesarse por estudiar estos temas.
Así que, reconociendo de antemano que será necesario tocar temas un poco arduos y probablemente polémicos, voy a abordar el tema de las matemáticas en ingeniería.
Sin más: el ingeniero debe estudiar matemáticas. No hay otra manera de formar adecuadamente el pensamiento analítico, el rigor demostrativo, el sentido de la exactitud – y el de la aproximación aceptable también –, la objetividad numérica, la propensión a la medición, y tantas otras cualidades de los buenos ingenieros.
El punto a veces es entonces ¿qué matemática? Porque hay tantas ramas en esta ciencia que los diseñadores de planes de estudio en ingeniería pasan verdaderos problemas para decidir qué sí y qué no se incluirá en la carrera.
Por siglos se ha considerado que el cálculo – diferencial e integral – es básico en ingeniería. Pero ¿cuántos ingenieros conocemos que se pasen el día haciendo derivadas y resolviendo integrales en su trabajo? Además de los que son profesores universitarios, la respuesta es pocos (poquísimos).
Lo interesante del asunto es que quienes más desarrollan las áreas técnicas de la ingeniería durante su vida profesional, o quienes buscan especializaciones más avanzadas o estudios de doctorado, son precisamente quienes requieren del cálculo como herramienta cotidiana.
Entonces, de alguna forma se puede decir que quienes encarnan el ideal del ingeniero técnico, enfocado en solucionar los más difíciles problemas de ingeniería, son también quienes más utilizan las herramientas matemáticas.
La respuesta a la pregunta es entonces bien sencilla. ¿Para qué le sirve la matemática al ingeniero? Si se dedicará a administración y gerencia, las habilidades de análisis, demostración, cálculo y procedimientos matemáticos le aportarán un importante valor a sus productos intelectuales, que serán más difíciles de conseguir para profesionales de otras ramas. Y si decide enfocar su ejercicio profesional en solucionar problemas técnicos de “ingeniería pura”, las matemáticas serán su pan diario.
Las otras preguntas son un poco más complicadas. ¿Qué matemática incluir en el pensum de estudios? ¿Qué matemáticas van mejor con qué ramas de la ingeniería? ¿Cuáles son las que son tan fundamentales que no pueden disculparse en ningún ingeniero? Dejaremos estas preguntas para el siguiente artículo.
¿Qué son y para qué sirven las aplicaciones portables?
Posted by Leonel in Internet, Programación, Temas generales, Usabilidad on 5 February 2010
Por Juan Manuel
Por aplicación portable o portátil en informática definimos a aquel programa o conjunto de programas que pueden ejecutarse en una computadora sin necesidad de realizar instalación alguna de sus componentes en el sistema de directorios del sistema operativo instalado.
Típicamente al instalar alguna aplicación por ejemplo Microsoft Office, debemos realizar una serie de pasos para tener el conjunto de programas que lo componen funcionando, como son:
1.- Tener a la mano el paquete o asistente de instalación del sistema de programas que componen Microsoft Office.
2.- Iniciar el instalador, ingresar la clave de instalación, seleccionar los programas que queremos instalar y ingresar la ruta donde queremos instalar el paquete de programas.
3.- Esperar a que el asistente copie todos los archivos necesarios al disco duro de la computadora y registre los programas en las entradas de menús del sistema, asocie los programas con determinados tipos de archivos, etc., para que sean completamente funcionales.
Durante el proceso de copiado de los archivos al disco de la máquina el asistente los acomodará en diferentes partes del mismo, por ejemplo archivos de programa, system32, etc., resultando muy complicado determinar cuales archivos han sido copiados a tal o cual localización pues generalmente estos antes de ser copiados se encuentran en archivos comprimidos y tal vez encriptados si se trata de una aplicación de tipo comercial. Además resulta difícil exportar esa aplicación ya instalada a otra computadora pues no se conoce con precisión que archivos en el disco duro la componen ni donde se encuentran ubicados, peor aún podría haber dependencias al registro de Microsoft Windows que si no se encuentran presentes al momento de mover todo el conjunto de programas a un nuevo destino no funcionarían correctamente.
Entonces para que una aplicación pueda ser designada “portable” debe evitar que todo el conjunto de programas/archivos que la componen sean distribuidos en el conjunto de directorios del sistema operativo en curso y de ser posible no requerir la existencia de determinados registros en las bases de datos del mismo y tampoco depender de la existencia de ciertos programas, archivos u otra información previamente instalada en la computadora destino para poder funcionar correctamente.
Lamentablemente esto no siempre se cumple pues muchos de los programas denominados “portables” están programados en Java o VB.Net los cuales requieren que se encuentre previamente instalada la máquina virtual que los hace funcionar, pero minimizando este problema nos encontramos con verdaderos programas que son capaces de funcionar en cualquier computadora (por ahora solo probado con Microsoft Windows instalado) únicamente copiando a una carpeta en el disco duro los archivos que componen la aplicación, pero realmente no es necesario pues la mayoría de ellos puede funcionar desde una memoria o pendrive usb, lo cual los hace útiles para casos necesarios como por ejemplo rescate del sistema o ejecutar sistemas operativos alternos al actual sin tener que instalar absolutamente nada en el disco duro de la computadora.
Ahora veamos el proceso de instalación de la versión portable de OpenOffice a nuestro sistema operativo en curso, aclarando que la aplicación OpenOffice requiere un proceso de instalación similar a la de Microsoft Office pero con algunos ajustes es posible generar una versión que no requiere de instalación en el disco duro, pudiendo ejecutarse sin problemas desde un pendrive.
1.- Tener a la mano el paquete o asistente de instalación del sistema de programas que componen OpenOffice.
2.- Iniciar el instalador, ingresar la ruta donde queremos instalar el paquete de programas y esperar a que el asistente copie todos los archivos necesarios al disco duro de la computadora, con la ventaja que una vez copiados todos ellos podemos simplemente copiar la carpeta donde fueron instalados a otra ubicación (carpeta, o incluso otra computadora) y nuestra aplicación con todos los programas que la componen es funcional al 100%, es decir no se requiere hacer uso del asistente de instalación de nuevo.
Por supuesto no todo podría ser ventajas en las aplicaciones portables, estas tienen ventajas y desventajas que se resumen en esta lista:
Ventajas: | Desventajas: |
---|---|
1.- Poder migrar fácilmente la instalación de una aplicación portable a otra computadora manteniendo la configuración previa. | 1.- Algunos programas requieren Java o .Net Framework instalado previamente para funcionar. |
2.- Si es necesario formatear y reinstalar el sistema operativo no es necesario reinstalar nuevamente los programas, basta con copiarlos nuevamente al disco duro de la computadora para tenerlos funcionando tal cual estaban antes del formateo. | 2.- La mayor parte de ellos no son auto actualizables, teniendo que esperar a que se libere la siguiente versión portable y teniendo que bajar el asistente nuevamente para reemplazar la instalación anterior. |
3.- No utilizan el registro de Microsoft Windows. | |
4.- Poder utilizar al mismo tiempo varias versiones del mismo programa sin conflictos por la instalación (véase la imagen de éste post, la cual muestra a los navegadores IE 5.5, 6 y 7 ejecutándose al mismo tiempo sin conflictos debido a la instalación). |
¿Son legales?
Si, pero dependen de la versión del programa original, si el programa es freeware no hay ningún problema en crear una versión portable, podemos decir lo mismo de programas con licencias libres como GPL, BSD, etc., pues la misma licencia permite la distribución gratuita como comercial de los mismos. Sin embargo, existen diversos programas que en la red se distribuyen como “portables” teniendo como sinónimo “gratis”, cuando en realidad son de carácter comercial y se le han hecho modificaciones para ejecutarlos sin necesidad de instalación y clave de activación, por lo cual si los usamos estamos incurriendo en el delito de piratería; por lo que es recomendable mirar previamente la licencia del programa original antes de buscar su versión portátil.
¿Dónde conseguirlos?
En la red abundan los sitios de descargas de programas portables sin costo alguno, una buena opción son los siguientes enlaces:
http://portableapps.com/apps
http://appsportables.blogspot.com/
http://www.pendriveapps.com/
¿Cómo crear aplicaciones portables?
Existen en la red varios programas para transformar cualquier aplicación común (instalable) en portable, pues estos analizan el programa y miran todas las dependencias y automáticamente hacen los cambios necesarios para crear un ejecutable que pueda ser exportado sin problemas a otra computadora, a través de éste link http://www.taringa.net/posts/ebooks-tutoriales/1990237/Crear-Programa-Portable-%28Portatil%29.html podemos darnos una idea del uso de un software llamado Thinstall que nos será de ayuda para crear nuestras propias versiones portables.
En resumen:
Las aplicaciones portables son aquellas que no requieren de una instalación en disco duro para funcionar, lo cual las hace candidatas a llevar a todas partes en un pendrive usb y trabajar con ellas con las configuraciones que se hagan a las mismas. También presentan la enorme ventaja de que al no requerir instalación pueden servir para reinstalar con rapidez los programas de uso común en la computadora cuando se reinstala el sistema operativo. Sin embargo no todas las aplicaciones portables existentes en la red son 100% legales pues muchas de ellas en realidad son comerciales y al crear una versión portátil se está violando los derechos de la misma con lo cual nos podemos hacer acreedores a sanciones administrativas. Valen la pena utilizarlas.
Fuentes de consulta para más información
Aplicación portátil
http://es.wikipedia.org/wiki/Aplicaci%C3%B3n_port%C3%A1til
Crear programa portátil
http://www.taringa.net/posts/ebooks-tutoriales/1990237/Crear-Programa-Portable-%28Portatil%29.html
¿Programas portables?
http://es.answers.yahoo.com/question/index?qid=20090315075526AALroU7
Ventajas o beneficios de los programas portables
http://darkub.wordpress.com/2008/05/08/ventajas-o-beneficios-de-los-programas-portables/
¿Se ve mejor el mundo detrás de una lente? (II de II)
Posted by Leonel in Fotografía, Sociedad, Temas generales on 26 January 2010
Asistíamos a la inauguración de una obra pública y el funcionario encargado se dispuso a dar su discurso en el improvisado salón. Entonces, un camarógrafo elegantemente vestido se colocó justo enfrente del orador, exactamente entre él y los asistentes al acto. Durante todo el evento no se movió. Siguió parado obteniendo una excelente toma de primer plano que seguramente está no tan bien almacenada como el recuerdo de su mal educada actitud de ese día. Era como si nos estuviera diciendo: no importan ustedes, lo importante es que yo tenga una buena toma que después se pueda usar para publicitar las obras del gobierno, ustedes vean mi espalda.
La primera regla de todo camarógrafo debería ser: nunca convertirse en el centro de atención. En cuanto el fotógrafo o el camarógrafo en un evento empiezan a llamar la atención por su forma de filmar o fotografiar entonces algo está mal. La mejor cámara es aquella que pasa inadvertida, que no distrae de lo importante que está ocurriendo y que permite ponerle atención a los verdaderos protagonistas.
Volvamos al punto inicial. Esto de tomar fotos en algunas personas es tan obsesivo que parece que en realidad no ven nada del evento directamente porque siempre tienen enfrente la cámara. Obstruyendo entre ellos y las personas hay un aparato que impide mirar a los ojos directamente, que evita dedicar la sonrisa a alguien (se sonríe “a la cámara”) y que aísla al dedicado fotógrafo de la convivencia social.
Es muy bonito ver fotos viejas, sobre todo por los recuerdos que evocan, pero para evocar recuerdos bastan unas pocas fotos y ni siquiera tienen que ser excelentes fotos, es suficiente con que nos hagan volver a ese lugar y tiempo maravillosos en que se tomaron.
Por supuesto que existen las buenas fotos y también las excepcionales. En la sala de nuestra casa tenemos una ampliación – lo más grande que pudimos – de una foto de nuestros hijos que a mi me parece mágica cada vez que la veo. Y como sucede a menudo en estos casos, la foto se tomó casi sin proponérselo, pero al verla después descubrimos que era grandiosa para nosotros porque a mucha gente puede no pasar de parecerle una foto más de niños sonrientes.
Claro que quisiera tener más fotos como esa, pero no me preocupa demasiado. Ya se que preocuparse mucho por eso es camino seguro para obsesionarse con la fotografía y empezar a perderse momentos de vida por buscar buenas fotos.
Algo más me reafirmó esta creencia. Vi a Juan Pablo II varias veces en sus visitas a Guatemala y en 1993 en Denver Colorado por la Jornada Mundial de la Juventud. Al igual que la de muchos hombres y mujeres de corazón grande y alma límpida, la mirada del papa polaco era de tal intensidad que uno sentía que iba dirigida sólo a uno, aunque estuviera entre miles de personas.
Pero una vez, viendo una página de noticias, me topé con una foto impresionante. Estaba el papa en primer plano y detrás de él una multitud muy cerca, todos – o casi todos – viendo hacia la pequeña pantalla de una cámara. Eso me hizo hacerme esta pregunta por primera vez ¿es que acaso se ve mejor el mundo detrás de una cámara?
Otro punto importante es que por mucho que ahora sea tan fácil tomar fotos y videos y luego compartirlos, los recuerdos no dejan de ser personales y esos no se pueden compartir tan fácilmente.
Por eso a veces es también chocante ver (o ser obligado a ver) las fotos personales o familiares de alguien más. Como no podemos empatizar tanto con los dueños de las fotos como para comprender exactamente qué sienten ellos al ver esas imágenes, esa exposición puede resultar aburrida o hasta algo ridícula.
En resumen, el mundo definitivamente se ve mejor cuando se ve y se disfruta directamente, sin cámaras de por medio, la foto es para el recuerdo, pero no es el recuerdo.
¿Se ve mejor el mundo detrás de una lente? (I de II)
Posted by Leonel in Fotografía, Sociedad, Temas generales, Video on 22 January 2010
También tomé bastantes videos que después digitalicé ya que sólo dispongo de cámara de video que graba en cinta de 8mm, y coloqué algunos en YouTube.
Pero varios hechos concretos me hicieron preguntarme qué sentido tenía llevar esa afición al extremo.
Uno de ellos fue una hermosísima presentación de baile tradicional que nos ofrecieron en la Universidad de las Américas en Puebla, México, con ocasión de la clausura del congreso LA-Web 2006. Tomé algunas fotos y luego me di cuenta de que por estar tratando de sacar una buena foto me estaba perdiendo de vivir el momento y disfrutar el espectáculo. No tenía sentido. Guardé la cámara.
En otra ocasión, habíamos recibido una invitación del Ingenio Pantaleón – el ingenio azucarero más grande de Guatemala y probablemente de Centroamérica – para pasar un día en sus instalaciones. El tema era “un día con la academia” o algo similar, y asistíamos académicos de varias universidades.
Tomé algunas fotos de las instalaciones y del grupo. Ya casi al final de la visita, estábamos en un salón de conferencias y de repente entró un nutrido grupo de niños con sus uniformes escolares y una alegría y seguridad en el rostro que nos llenó a todos de emoción. Los flashes de las cámaras no se hicieron esperar. Entonces me di cuenta de algo más en relación a las cámaras: aunque pueden guardar una imagen no son capaces de capturar el momento y por ello es inútil querer utilizarlas para esto último. El momento hay que vivirlo, y entre más intenso se viva mejor quedará grabado en nuestra memoria.
De aquel momento particular recuerdo la excelente habilidad comunicativa de los niños, su chispa intelectual, su sentido cívico, político y democrático – se trataba del presidente y diversos funcionarios de los órganos de gobierno organizados y electos por los estudiantes de la escuela primaria que patrocina el ingenio – la seriedad y responsabilidad con que se tomaban sus funciones, etc.
Sobre ese experimento educativo cívico alguna vez leí una crítica (algo sobre que los niños eran utilizados por el ingenio para promover su imagen o alguna tontería por el estilo) y me pareció totalmente injusta. Sigo pensando que lo que hacen en esa escuela es ejemplar y digno de admiración.
Volviendo al tema de las cámaras. Una y otra vez he tenido ocasión de reafirmar esa idea de que el mundo no se ve mejor detrás del lente y que perseguir irracionalmente la captura del momento con la cámara, además de ineficaz, puede resultar irrespetuoso, molesto o por lo menos de mala educación.
Una vez nos invitaron al cumpleaños de un amigo de mis hijos – en Guatemala es común que los papás de los niños también asistan a las celebraciones de cumpleaños – y el papá, que también es amigo nuestro, difícilmente cruzó un par de palabras con nosotros, con su familia y con el resto de invitados, la razón: estaba absorto tomando fotos.
Otra vez asistíamos a una serie de conferencias interesantísimas de renombrados físicos guatemaltecos (Fernando Quevedo y Julio Gallegos, entre otros) y un jovencito fotógrafo, al parecer encargado por la misma universidad chapina donde se presentaban los científicos, no cesaba de tomar fotos con una cámara de fuerte flash. Cada foto nos distraía más y más, al punto que poner atención a la conferencia se volvió complicado. Estuve a punto de salirme de mis casillas.
También tengo presentes casos similares con cámaras de video. Se las cuento en la segunda parte.
El chiste del ingeniero, el físico y el matemático
Posted by Leonel in Diseño, Ingeniería on 5 January 2010
He recibido chistes de ingenieros varias veces por email y seguramente quienes leen esto conocen algunos más (y apuesto que un mayor número sobre abogados, creo que… ¡ellos se lo buscaron!). Pero hubo uno que me enviaron que me gustó mucho porque en mi opinión refleja de forma bastante exacta algo que podríamos llamar el sentido práctico que nos caracteriza.
Un ingeniero, un matemático y un físico llegan de visita a una granja y el granjero les pide que midan el volumen de una de sus vacas.
El ingeniero llena de agua un depósito, mete a la vaca dentro, mide el volumen de agua desplazado y da la respuesta.
El matemático construye un modelo parametrizable en base a la altura del bovino y distancia desde la cabeza a la cola, hace un programa en C++ y lo presenta al granjero como solución general con la que puede averiguar el volumen de todas las vacas que quiera con un error de sólo 5%.
El físico inicia su razonamiento así: “supongamos que la vaca es esférica…”.
Claro, es un chiste, y de ninguna manera se puede asumir que corresponde exactamente a la realidad, pero me parece que refleja muy bien la formación y preparación que cada profesional recibe.
El ingeniero está constantemente resolviendo problemas concretos y particulares. Por ejemplo, un edificio, una carretera, un sistema informático, una planta de procesamiento, un vehículo o sumergir una vaca en un depósito para medir su volumen, son soluciones concretas a problemas particulares, ninguno soluciona de forma general el problema habitacional, de transporte, de proceso de información, de producción, etc. Físicos y matemáticos, por el contrario, buscan soluciones generales aplicables a todos los casos, probablemente con métodos y herramientas diferentes, pero similares en cuanto al objetivo.
Un físico o un matemático podrían construir un edificio, lo mismo que un ingeniero podría desarrollar una teoría que funcionara como solución general a un tipo de problemas, pero no es lo usual ya que no es lo que corresponde a su preparación.
En conclusión, este chiste, como muchísimos más nacidos del ingenio y chispa humanos, contiene una percepción bastante acertada acerca de ingenieros, físicos y matemáticos.
Comentarios recientes