jueves, 14 de julio de 2011

Prospectiva de la Tecnologia

Prospectiva: se llama prospectiva a la ciencia que tiene porobjeto el estudio de las causas técnicas científicas económicasy sociales. La prospectiva es una disciplina que estudia el futurodesde un punto de vista social, económico, político, científico ytecnológico. Gaston Berger, uno de los fundadores de laprospectiva la definía como la ciencia que estudia el futuro paracomprenderlo y poder influir en el.
Nuestra empresa puede hacer estudios de prospectiva paraotras empresas, instituciones, colectivos de cualquier tipo,candidatos, inversores, directivos y evaluar riesgos uoportunidades, una de nuestras especialidades más singulareses la prospectiva judicial, por la que asesoramos en conflictos
judicializado para personas físicas o jurídicas, lugares y otras cosas valiosas.
La prospectiva política, tecnológica y económica nos ha interesado hasta el punto de
coleccionar predicciones, y de hacer apuestas.
PROSPECTIVA PREDICTIVA: su premisa básica dice que es posible comprender los
mecanismos que provocan la ocurrencia de ciertos hechos y evitan la de otros.
PROSPECTIVA INTERPRETATIVA: Trata de pronosticar futuros alternativos paramejorar la calidad de las decisiones del presente incrementado de esta forma la capacidadde reacción ante lo inesperado.
PROSPECTIVA CRÍTICA: es la más revolucionaría pues considera que no se puede hacer
perspectiva partiendo las proyecciones del presente.
Explorar el futuro requiere un gran rigor meteorológico para que los procesos seantransparentes y reproductibles. La prospectiva se inscribe en el realismo científicocaracterístico del estudio de los modelos de decisión que incorporan:
-
Variables de memoria de la historia, del conocimiento adquirido.
-
Variables de prospectiva, del futuro, del conocimiento por venir.
-
Variables de fines y objetivos, de valores.
  

jueves, 23 de junio de 2011

La singularidad Tecnológica

¿Que es la singularidad?
Es una teoría que predice que llegará un día en un futuro indeterminado (pero no muy lejano) en el que los ordenadores tendrán la capacidad de diseñar otros ordenadores mejor que un ser humano. En principio no parece gran cosa, pero si pensamos que el ordenador en cuestión era diseñado por los propios humanos, entonces los nuevos ordenadores también serán mejores que el ordenador original y los propios humanos, y podrán crear a su vez otros aun mejores. Así podemos entrar en una cadena en la que ordenadores crean otros ordenadores mejores que a su vez crean otros aun mejores, etcétera. Es decir, un punto en que se pierde el control, y tal vez la capacidad de comprender como evolucionan estos ordenadores. La Inteligencia Artificial aumentaría de forma geométrica. Muchas veces se dice que el dia en que el hombre invente este ordenador, sera el último invento de la humanidad.

Este hecho se le llama singularidad por analogía a la singularidad que estudian los físicos. Dentro de estas singularidades, las leyes de la física conocida dejan de ser validas (se supone que existe una singularidad en el interior de los agujeros negros, y también en el origen del Big Bang). De la misma forma, llegado al punto de la Singularidad Tecnológica, es imposible hacer ningún tipo de especulación sobre lo que ocurre después. Es un terreno desconocido. Pero si que podemos especular como se puede llegar a esa situación desde donde estamos. Esta es precisamente la parte más interesante y a la que se están dedicando más esfuerzos de investigación


¿Y este momento está cerca?

Pues depende de quien opine, claro. Algunos defienden que esta cerca, dado el ritmo en que esta evolucionando la informática e Internet, otros lo ven lejano y otros opinan que no ocurrirá nunca. Yo me voy a centrar en los que opinan que está cerca. Aún así, no es algo nuevo, el primero en hacer referencia a la singularidad fue Irving J. Good en 1965 en el artículo "Speculations Concerning the First Ultraintelligent Machine." Advances in Computers, Vol. 6.

Otra figura importante es Raymond Kurzweil, experto en Inteligencia Artificial. Kurzweil desarrolla la idea de base y utilizando la Ley de Moore (enunciada en 1965 por Gordon E. Moore, buen año por lo que parece) que predice un crecimiento exponencial en potencia de calculo y capacidad de los ordenadores, desarrolla su visión en la que predice que en este siglo XXI se fusionarán hombre y máquina (entre otras cosas).
Kurzweil es famoso porque sus predicciones tecnológicas se han cumplido mayoritariamente. Sus ideas están ampliamente desarrolladas en su libro La Singularidad está cerca (2005). 
Acontinuacion les mostraré unos videos de la singularidad tecnologica

Parte 1


Parte 2



Parte 3





miércoles, 1 de junio de 2011

Estructura de un Compilador y de un Intérprete

Estructura de un Compilador:


   El primero de ellos es el preprocesador, es el encargado de transformar el código fuente de entrada original en el código fuente puro. Es decir en expandir las macros, incluir las librerías, realizar un preprocesado racional (capacidad de enriquecer a un lenguaje antiguo con recursos más modernos), extender el lenguaje y todo aquello que en el código de entrada sea representativo de una abreviatura para facilitar la escritura del mismo.

mapa001.gif (1837 bytes)
   El segundo modulo es el de compilación que recibe el código fuente puro, este es él modulo principal de un compilador, pues si ocurriera algún error en esta etapa el compilador no podría avanzar. En esta etapa se somete al código fuente puro de entrada a un análisis léxico gráfico, a un análisis sintáctico, a un análisis semántico, que construyen la tabla de símbolos, se genera un código intermedio al cual se optimiza para así poder producir un código de salida generalmente en algún lenguaje ensamblador.

mapa002.gif (1845 bytes)
   El tercer modulo es el llamado modulo de ensamblado, este modulo no es ni más mi menos que otro compilador pues recibe un código fuente de entrada escrito en ensamblador, y produce otro código de salida, llamado código binario no enlazado. Si por un momento viéramos a este modulo como un programa independiente, veríamos que en este caso los términos programa compilador y proceso de compilación son los mismos. Pues este modulo no es mas que un compilador, que en su interior realiza como su antecesor un análisis léxico gráfico, un análisis sintáctico, un análisis semántico, crea una tabla de símbolos, genera un código intermedio lo optimiza y produce un código de salida llamado código binario no enlazado, y a todo este conjunto de tares se los denomina proceso de compilación. Como se puede ver este compilador (llamado ensamblador) a diferencia de los demás compiladores no realiza una expansión del código fuente original(código fuente de entrada), tiene solamente un proceso de compilación y por supuesto no enlaza el código fuente. Es un compilador que carece de los módulos de preprocesado y enlazado, y donde los módulos de compilación y ensamblado son los mismos.

mapa003.gif (1844 bytes)
   El cuarto y ultimo modulo es el encargado de realizar el enlazado del código de fuente de entrada (código maquina relocalizable) con las librerías que necesita, como así también de proveer al código de las rutinas necesarias para poder ejecutarse y cargarse a la hora de llamarlo para su ejecución, modifica las direcciones relocalizables y ubica los datos en las posiciones apropiadas de la memoria. Este ultimo modulo es el que produce como salida el código binario enlazado. Ya sea dinámico o estático, al decir dinámico se refiere a que el código producido utiliza librerías dinámicas (librerías ya cargadas en el sistema), esto implica que se obtendrá un código más corto y que se actualizara automáticamente si aparece alguna nueva versión de las librerías, mientras que el estático se refiere al echo que no se realiza enlace con ninguna librería y por lo tanto se obtendrá un código mas largo con una copia de las rutinas de librería que necesita.

mapa004.gif (1846 bytes)

Estructura de un intérprete.-
 


En la figura se representa el esquema general de un intérprete puro. Se puede observar que el
lenguaje fuente se traduce a una representación interna (texto o binaria) que puede ser almacenada en
memoria o en disco. Esta representación interna tiene todas las instrucciones numeradas o colocadas
consecutivamente en estructuras de tamaño fijo (por ejemplo un array o posiciones consecutivas de
memoria, o un fichero binario de estructuras de tamaño fijo). Mientras se realiza este paso se puede
construir la tabla de símbolos o etiquetas, que es una tabla que contiene una estructura donde están
todas las etiquetas y su posición en el programa fuente (las etiquetas se utilizan tanto en las instrucciones
de salto como en las llamadas a procedimientos y funciones). Una vez que este proceso ha finalizado,
comienza la ejecución por la primera instrucción del código, que se envía al evaluador de instrucciones,
éste la ejecuta (recibiendo datos si es necesario o enviando un mensaje de error). El evaluador de
instrucciones también determina la instrucción siguiente a ejecutar, en algunos casos previa consulta a la
tabla de etiquetas. En caso de que no haya saltos (GOTO) se ejecuta la siguiente instrucción a la
instrucción en curso.


CLASES DE COMPILADORES

  • Compiladores cruzados: generan código para un sistema distinto del que están funcionando.
  • Compiladores optimizadores: realizan cambios en el código para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original.
  • Compiladores de una sola pasada: generan el código máquina a partir de una única lectura del código fuente.
  • Compiladores de varias pasadas: necesitan leer el código fuente varias veces antes de poder producir el código máquina.
  • Compiladores JIT : forman parte de un interprete y compilan partes del código según se necesitan.

lunes, 30 de mayo de 2011

Diferencias entre "Compiladores e Intérpretes"

¿Qué es un compilador?
Es en traductor que cualquier programa que toma como entrada un texto escrito en un lenguaje, llamado fuente y da como salida otro texto en un lenguaje, denominado objeto. 

¿Qué es un intérprete?
   Es un traductor que realiza la operación de compilación paso a paso. Para cada sentencia que compone el texto de entrada, se realiza una traducción, ejecuta dicha sentencia y vuelve a iniciar el proceso con la sentencia siguiente.

 Diferencia entre Compiladores e Intérpretes:


Intérprete
Compilador
        Fácil localización de errores.
         Cada vez que se ejecuta el programa es necesaria su interpretación. 
           Adecuado en la etapa de desarrollo y depuración.
         Difícil localización de errores.
        Solo es necesaria una compilación. Y una vez realizada, la velocidad de ejecución es alta.
        Adecuado cuando no hay más errores (etapa de explosión).

  • Un compilador actúa como un traductor que recibe un libro escrito en un idioma determinado (lenguaje de alto nivel) y escribe un nuevo libro que, con mayor fidelidad posible, contiene una traducción de texto original a otro idioma (código de maquina). El proceso de traducción tiene lugar una sola vez y podemos leer el libro (ejecutar el programa) en el idioma destino (código maquina) cuantas veces queramos.
  • Un compilador se compila una vez y se ejecuta n veces.
  • En bucles, la compilación genera código equivalente al bucle, pero interpretándolo se traduce tantas veces una línea como veces se repite el bucle. 

  
  •  Un intérprete de programas actúa como su homónimo en el caso de los idiomas. En una conferencia en inglés en diferentes cuidades y un interprete ofrece su traduccion simultánea al castellano. Cada ves que la conferencia es pronunicada, el intérprete deve realizar nuevamente la traduccion. Es mas, la traducción se produce sobre la marcha, frase a frase, y no de un tirón al final de la conferencia. Del mismo modo actúa el intérprete de un lenguaje de programación: traduce cada vez que ejecutamos el programa y además lo hace intrucción a intrucción.
  • Puede ser rápidamente modificado y ejecutado nuevamente. 
  • Resultan muy apropiados durante la fase de desarrollo de un programa, ya que la compilación no permite la ejecución paso a paso del programa y con ello impide la edición seguimiento y depuración del programa. 
  •  El programa se puede ejecutar de inmediato, sin esperar a ser compilado.
     



viernes, 6 de mayo de 2011

Pantallas Táctiles de Pc

Las computadoras de pantalla táctil podrían convertirse en un producto masivo por la caída de los precios de las pantallas LCD, los avances tecnológicos y las aplicaciones en mercados de gran crecimiento.


La exitosa irrupción del iPhone de Apple ha impulsado a otras firmas a avanzar en esa tecnología, desde el líder del sector de móviles Nokia hasta Research in Motion, que logró que su BlackBerry Storm vuele de las estanterías este mes.

El sector podría además recibir un impulso mayor de parte de Microsoft, que afirma querer usar la tecnología de pantalla táctil en Windows 7, el sucesor del sistema Vista.

"Estas computadoras están desafiando la manera que tenemos de interactuar con ellas", dijo Bryan Ma, analista de IDC.

"El fenómeno todavía no ha despegado, y éstos solo son los pioneros, pero será interesante ver qué pasa", agregó.

Las computadoras de pantalla táctil, que utilizan un tipo especial de pantalla LCD, podrían despegar rápidamente si los diseñadores encuentran aplicaciones que puedan aprovechar su mayor flexibilidad frente a los teclados tradicionales, afirmó Jennifer Colegrove, analista de Display Search.

Los textos basados en escritura de caracteres no latinos como el chino son un buen ejemplo. "Los teclados no son suficientemente buenos para escribir chino y otros idiomas asiáticos", dijo.

"Las pruebas demuestran que la gente que tenía que escribir en chino ha sido muy receptiva a pantallas táctiles. Esto podría suponer un gran potencial en el enorme mercado chino", añadió.

Las computadoras de pantalla táctil existen desde hace más de una década, pero su alto costo y su funcionalidad limitada las han mantenido fuera del mercado masivo.

Pero los recientes avances tecnológicos, como la mejora de la calidad de la imagen o la mayor sensibilidad al tacto, combinados con la caída de precio del LCD modificaron el escenario.

Todo en uno
La empresa taiwanesa Asustek, que apuesta por esta tecnología, cree que los modelos que combinan la caja tradicional y el monitor en una sola unidad podrían ser candidatos estupendos para la tecnología táctil.

Dijo además que estos modelos, conocidos en la industria como "todo en uno" podrían llegar a ocupar hasta el 40% del mercado. 


Muy pronto llegarán...  las Pc del futuro...


jueves, 5 de mayo de 2011

¿Por qué es tan importante la Ingeniería de Sistemas?

La Cumbre Mundial sobre la Sociedad de la Información declaró en el año 2003 el deseo y el compromiso de todas las naciones por enfrentar uno de los más importantes desafíos a escala global, la construcción de una sociedad de la información centrada en la persona, integradora y orientada al desarrollo. Los arquitectos de esta nueva sociedad de la información deben ser principalmente los Ingenieros de Sistemas, los cuales tienen ante si grandes retos como:
  • Promover las Tecnologías de la Información y las Comunicaciones para el desarrollo de las naciones
  • Construir la infraestructura de la información y las comunicaciones como factor habilitador de la Sociedad de la Información
  • Facilitar el acceso a la información y al conocimiento a todos los hombres y mujeres.
  • Crear la capacidad humana para que cada persona tenga la posibilidad de adquirir las competencias y conocimientos para comprender la Sociedad de la Información.
  • Fomentar la confianza y seguridad en la utilización de las Tecnologías de las Información y las Comunicaciones.
  • Desarrollar un entorno propicio en nivel nacional e internacional en el marco de las Tecnologías de la Información y las Comunicaciones como una herramienta para el buen gobierno.
  • Aplicar las Tecnologías de la Información y las Comunicaciones para lograr beneficios en todos los aspectos de la vida de los seres humanos. Se puede decir entonces que el futuro de la Sociedad, depende en gran medida de la profesión de la Ingeniería de Sistemas.