|
Curiosidades
|
Aprovechando que ayer Google lanzó Dart, su nuevo lenguaje de programación, quizás hoy sea un buen momento en Historia de la Tecnología para hablar de uno de los lenguajes de programación más importantes y que sigue siendo materia de estudio en muchas Universidades y Escuelas de Ingeniería del mundo: el lenguaje de programación C.
El lenguaje C es fruto de un lenguaje de programación anterior, el lenguaje B, desarrollado por Ken Thompson, en los Laboratorios Bell en 1970, con la idea de recodificar el sistema operativo UNIX que, hasta esa fecha, se programaba directamente en ensamblador, con el inconveniente de estar vinculado a máquinas concretas (según el juego de instrucciones de cada máquina). Por tanto, se hacía necesario un lenguaje que permitiese al programador abstraerse de la capa hardware y conseguir una mayor portabilidad del código, algo que se realizó en B (basándose en el BCPL de Martin Richard de 1967).
Poco más tarde, también en los Laboratorios Bell, Dennis Ritchie se pone a trabajar en el diseño de un nuevo lenguaje de programación basado en el lenguaje B de Ken Thompson y al que aportó tipos y estructuras de datos que consiguiesen clarificar la programación y obtener un lenguaje mucho más eficiente, así nació el lenguaje de programación C. Ritchie diseñó, desde 1970 a 1972 junto a Brian Kernighan, un lenguaje que permitía realizar una programación estructurada en la que se podían economizar las expresiones a usar y con el que los desarrolladores podrían contar con un buen conjunto de operadores y tipos de datos para programar tanto en alto como en bajo nivel de manera simultánea. Ente sus características:
- Núcleo de lenguaje simple que incluye funciones matemáticas y de manejo de archivos proporcionadas por bibliotecas
- Lenguaje flexible que permitía programar de manera estructurada y no estructurada
- Inclusión de un sistema de tipos que impedía la realización de operaciones sin sentido
- Acceso a memoria de bajo nivel mediante el uso de punteros
- Conjunto reducido de palabras reservadas
- Paso de parámetros a funciones por valor
- Tipos de datos agregados (struct) que permitían combinar, bajo un mismo tipo, datos de tipos distintos y manejarlos como uno solo.
El lenguaje C ofrecía diversos tipos de datos: “CHAR” (carácter), “INT” (enteros), “FLOAT” (números reales en precisión simple), y “DOUBLE” (números reales en precisión doble) a los que posteriormente se añadieron los tipos “SHORT” (números enteros de tamaño menor a un INT), “LONG” (números enteros de tamaño mayor a un INT), “UNSIGNED” (Enteros sin signo), y “ENUMERACIONES” que junto a las estructuras, las uniones y las tablas y matrices componían un variado juego de tipos de datos con los que abordar múltiples problemas.
¿Y por qué trabajaron en un nuevo lenguaje de programaciòn? Realmente la motivación no está clara y se barajan dos hipótesis. Por un lado, se dice que ambos creadores querían jugar al juego Space Travel en uno de los mainframes de la compañía pero, debido a la carga de este sistema, decidieron llevarse el juego a un PDP-7 que no se utilizaba porque no tenía sistema operativo así que decidieron llevarse el del PDP-11 al PDP-7, algo que no se podía hacer al estar escrito en ensamblador. Pensando en poder llevarlo, y tener agilidad en la tarea, se cree que arrancaron el proyecto del lenguaje C.
La otra causa apunta a que se buscaba crear un sistema que automatizase el archivo de patentes de los Laboratorios Bell y, dado que la versión original de Unix se desarrolló en ensamblador, se usó C para rescribir el sistema operativo. De hecho, en 1973, C era tan potente que la mayor parte del núcleo de Unix estaba ya escrito en C.
En 1978 Kernighan y Ritchie publican la descripción del lenguaje C en el libro The C Programming Language, un libro de cabecera que describe todas las posibilidades de este nuevo lenguaje que y que aún se utiliza como manual de referencia.
El lenguaje C se hizo muy popular en los años 80 puesto que comenzó a desplazar a BASIC, los compiladores se hicieron muy populares y, además, de empezarse a usar en los IBM PC. En paralelo, Bjarne Stroustrup (que también trabajaba en los Laboratorios Bell) desarrolla C++, complementando C con clases y funciones virtuales, tipos genéricos y expresiones de ADA y un motor de objetos que permitía combinar la programación imperativa de C con la programación orientada a objetos.
En 1983, el Instituto Nacional Estadounidense de Estándares (ANSI) organizó un comité, X3j11, para establecer una especificación estándar de C que, tras un proceso largo, completó el estándar en 1989 (ANSI X3.159-1989), el C89. En 1990, la Organización Internacional para la Estandarización (ISO) tomó el C89 en el estándar ISO/IEC 9899:1990, conocido por C90. El lenguaje C permaneció estable, mientras que C++ siguió evolucionando, hasta que en 1999 volvió a revisarse con la ISO 9899:1999.
El Lenguaje C se ha utilizado mucho para para la programación en sistemas UNIX aunque también se ha utilizado en el desarrollo de sistemas operativos como Windows o GNU/Linux y en el desarrollo de aplicaciones de escritorio como GIMP. Tampoco es raro verlo en sistemas empotrados (control de procesos industriales, ascensores, sistemas de monitorización, etc) o como base de kits de desarrollo de microcontroladores (abstrayendo al usuario de la programación en ensamblador). Además, como decía al inicio, es un lenguaje muy especial dentro del mundo de la ingeniería puesto que se sigue enseñando en los primeros cursos de estos estudios y nunca ha dejado de ser utilizado.
Via: ALT1040
|
|
Para aquellos que no lo saben, los Boing 747 son grandes sistemas UNIX voladores. Hasta el momento, el sistema de gestión del motor de los aviones de esta compañía aérea estaban basados en SUN Solaris. Al parecer la utilización de SSH dañaba el sistema de menús y no se aprueba el presupuesto necesario para solucionar el problema, por lo que los ingenieros podrían tener acceso al motor del 747 aún cuando este se encuentre en vuelo y, si se observan problemas, se podría volver a ajustar el motor en el aire. El problema aquí es que todo lo que separaba a los sistemas de control del motor y la red abierta se basa filtros NAT. No hubo (ni parece haber hoy en día) ningún tipo de control de extrusión y sólo se filtra el tráfico entrante, pero todo el tráfico saliente está permitido. Para aquellos que se dedican a pentesting, no se necesita decir más.
Via: Segu_info
|
|
“Python es un lenguaje de script desarrollado por Guido van Rossum. Podemos codificar empleando programación lineal, estructurada y orientada a objetos”… Así comienza el curso que te llevará paso a paso, y poco a poco, a descubrir el mundo que se esconde detrás de este lenguaje de programación.
No importa en que plataforma estés, ya que puedes desarrollar aplicaciones en Python desde Mac, Linux, Windows, o etc. por ser multiplataforma. Así mismo, si te preocupa su poder, te comento que empresas como Google, Yahoo, NASA, entre otras lo utilizan para desarrollar algunas de sus aplicaciones.
Dentro de lo que podrás descubrir y realizar en Python se encuentra:
- Aplicaciones que se ejecutan en un servidor web (equivalentes a lo que se puede hacer con PHP, ASP.Net, JSP, Ruby)
- Aplicaciones de escritorio con interfaces visuales accediendo a componentes escritos en .Net (Microsoft), Qt, GTK, MFC, Swing (Java) etc.
- Programas no visuales que tengan como objetivo sistematizar procesos de administración del equipo (backup periódicos, borrado de archivos recursivos, búsquedad de archivos o contenidos de los mismos etc.)
- Aplicaciones para celulares.
Si te interesa aprender a programar, o conocer un nuevo lenguaje, esta puede ser la oportunidad que estabas esperando, anímate!
Curso: pythonya Visto en: Geeksroom
|
|
|
 Los que trabajamos con computadoras durante muchas horas al día estamos en constante “riesgo”, ya que al estar tan concentrados en nuestro trabajo nos olvidamos de la ergonomía y los descansos necesarios para que nuestro trabajo sea saludable.
A continuación quiero dejarles una excelente guía con ejercicios para mantenernos saludables si trabajamos con computadoras durante muchas horas al día. Se trata de un PDF (en inglés) donde podemos encontrar una serie de ejercicios simples que están acompañados de imágenes y una descripción para realizarlos.
Están buenos porque son simples y no llevam mucho tiempo, además pueden significar varios años más de estar más saludables y no terminar a los 40 años con problemas de visión y de columna :P.
Enlace: Exercises for Office Workers (PDF)
Visto en Lifehacker
|
|
La palabra hacker debe ser una de las que más diversas interpretaciones/definiciones posee en el ámbito tecnológico-social; asimismo discusiones tanto entre conocedores como si no. Miremos una arista más, la del hacker legendario que es Kevin Mitnick, quien habla de sus motivaciones en interesante entrevista para NPR. Atención a estas palabras:
Mi motivación para hackear fue siempre el reto intelectual, la seducción de la aventura y, lo más importante , la búsqueda del conocimiento […] Yo simplemente quería aprenderlo todo.
Desde mi punto de vista, pequeño si lo quieren ver así, esas palabras encierran la defición del verdadero hacker. Nada tienen que ver con conocer las combinaciones de todos los comandos Unix, ni la programación de un módulo superespecializado del kernel Linux, por supuesto, tampoco el diseño del virus informático más esquivo y contagioso; vamos, que ser hacker va más allá de ser criptógrafo, doctor en ciencias, niño genio, o estereotipo vivo de ropa negra, ojeras, anti social que consigue un Access Granted cada que le viene en gana. El hacking es actitud. Ésa actitud.
En ese sentido, creo que Leonardo da Vinci tenía las mismas motivaciones: aprenderlo todo. Su trabajo refleja genialdad artística e ingenieril, una voluntad inquebrantable para conseguir la perfección al tiempo que satisfacía una curiosidad incomparable. Ésta fue su lucha diaria; su aliciente para existir. Es más, si hay que nombrar un hacker máximo, me parece que ese debe ser da Vinci.
Volviendo con Mitnick, sabemos que disfruta de una vida tranquila y exitosa, alegrada por una fama que los años han vuelto romántica, lejos de los caminos subterráneos de sus inicios, pero feliz de recibir un buen sueldo por hacer exactamente lo mismo: vulnerar sistemas —sólo que esta vez a petición de sus dueños.
Mi recomendación es tomar las palabras de Mitnick como catalizadores para crecer en el trabajo, la escuela, el auto aprendizaje. Ya sea porque eres programador, profesor, político, hacktivista, estudiante, periodista, diseñador, escritor, cómico, padre o madre, lo que sea que eres o quieras llegar ser, hacker o no, el nombre es lo de menos:
-
busca el reto intelectual;
-
déjate seducir por la experimentación, como si de una aventura se tratara, porque lo es;
-
disfruta de equivocarte y volver a empezar;
-
busca el conocimiento, el placentero y socrático acto de querer aprenderlo todo aceptando que no sabes nada;
-
sorpresa: no esperes nada a cambio, que de por sí el camino merece mucho la pena ser andado.
|
|
|
|
|
|
|
Página 1 de 29
|
|