texto:   A-   A+
eliax

Una cámara que toma 6.1 millones de fotos por segundo
eliax id: 6554 josé elías en may 2, 2009 a las 01:14 AM ( 01:14 horas)
En el 2005 les hablamos acá en eliax de una cámara que podía tomar 1 millón de fotos por segundo. Ahora hay una que hace que esa parezca una cámara lenta...

Científicos de UCLA (University of California, Los Angeles) acaban de romper el previo récord de velocidad de la cámara mas rápida del mundo, al producir una que toma mas de 6 millones de fotografías por segundo, o el equivalente a tener un obturador que abre y cierra una vez cada una millonésima de millonésima de segundo...

Sin embargo, lo mas asombroso de esta cámara bautizada STEAM quizás no sea su velocidad, sino que su novedosa técnica de cómo obtener estas fotografías.

En vez de tener un foto-sensor que capta luz en millones de micro-celdas como lo hacen todas las cámaras digitales, esta cámara funciona enviando un solo haz de luz para iluminar una escena y después captando el rebote de ese solo haz de luz para formar la imagen (vean el video incluido, es muy visual).

El truco está en disparar un solo haz de luz, o debido al principio de dualidad cuántica, un fotón de luz a la vez. Este fotón de luz es entonces subdividido en varias frecuencias que forman el concepto de una linea de pixeles, y después esta línea es vuelta a subdividir para formar el concepto de una matriz de dos dimensiones, en efecto haciendo el papel de un fotosensor bi-dimensional como los tradicionales (aunque no se si esto es capaz de generar colores en el sentido tradicional, creo que no).

Sin embargo, lo asombroso es que estos científicos no están contentos con 6.1 millones de fotos por segundo, y dicen que ya tienen sus miras en una nueva versión que producirá 100 millones de fotos por segundo...

¡Gracias al lector Jack Sparrow por el enlace!

Fuente de la noticia

Video a continuación (enlace YouTube)...




autor: josé elías


Mini-Jardín en la Luna para el 2012 posiblemente
eliax id: 6553 josé elías en may 1, 2009 a las 10:10 PM ( 22:10 horas)
Si todo sale bien, dentro de 3 años crecerá la primera planta en la Luna, protegida dentro de un vial, en lo que sin duda será un gesto simbólico del intento de la naturaleza de esparcir vida por todo el Universo...

La planta, derivada de la planta de la mostaza, se eligió porque tiene la particularidad de que es bastante bien conocida, y porque crece bien rápidamente. Esta planta crece en 14 días terrestres, que es el mismo tiempo que dura un solo día lunar, por lo que la misión que lleve este singular objeto a la Luna deberá sincronizarse para alunizar justo al inicio de ese día, para que al final la planta ya haya crecido.

Este proyecto es un beneficio colateral del proyecto Google Lunar X Prize del cual les hablamos hace un par de años, en donde Google premiará con US$30 millones de dólares a la primera nave civil que para el 2012 llegue a la Luna, envíe video en vivo a la Tierra, se desplace 500 metros sobre la superficie lunar, vuelva a enviar mas video y lleve un cargamento consigo.

Si una nave llega a completar esta misión, será interesante ver los comentarios de los conspiracionistas que dicen que el ser humano no llegó a la Luna, como discutido aquí en eliax recientemente)... :)

Fuente de la noticia

Página oficial del Google Lunar X Prize

Previamente en eliax:

Google: US$20 Millones al que aterrice robot en la Luna (Septiembre 2007)

Pregunta a eliax: ¿Aterrizó el ser humano en la Luna? (Abril 2009)

autor: josé elías


Super espectacular avance de Transformers 2 - Revenge of the Fallen
eliax id: 6552 josé elías en may 1, 2009 a las 11:22 AM ( 11:22 horas)
Detengan todo lo que están haciendo y vean ahora mismo este último trailer/avance oficial (en excelente calidad) de Transformers 2 - Revenge of the Fallen. Si esta película ofrece apenas el 50% de lo que vemos en el trailer, será sencillamente espectacular.

¡WOW, nos vemos en el cine el 24 de Junio!

Fuente



autor: josé elías


Requerimientos oficiales para instalar Windows 7
eliax id: 6551 josé elías en may 1, 2009 a las 11:06 AM ( 11:06 horas)
Microsoft ya había ofrecido una lista de requerimientos preliminares para uno poder instalar a Windows 7 por su cuenta, pero ahora publicó una lista oficial y mas completa al respecto, que detallamos a continuación...

Para instalaciones de 32-bits (es decir, las clásicas)
- Procesador de 1 GHz
- 1 GB de memoria RAM
- 16 GB de espacio disponible en disco duro
- Tarjeta de video con soporte para DirectX 9 con WDDM 1.0

Para instalaciones de 64-bits (las menos compatibles pero mas modernas)
- Procesador de 1 GHz
- 2 GB de memoria RAM
- 20 GB de espacio disponible en disco duro
- Tarjeta de video con soporte para DirectX 9 con WDDM 1.0

Y si quieres ejecutar a Windows XP de manera virtualizada, también necesitarás que el CPU (procesador principal) de tu equipo soporte instrucciones Intel-VT o AMD-V y que estas estén habilitadas.

Fuente de los datos

Previamente en eliax:

Mas detalles sobre "XP Mode" en Windows 7 (Abril 2009)

autor: josé elías


Iron Man 2 en proceso de filmacion, primera foto oficial
eliax id: 6550 josé elías en may 1, 2009 a las 09:04 AM ( 09:04 horas)
A los admiradores de la muy buena adaptacion de Iron Man les tenemos la buena noticia que desde hace 3 semanas ya se esta filmando la fotografia princial de la secuela, Iron Man 2, y que la foto que acompaña el articulo es la primera revelada oficialmente de la pelicula.

En esta continuacion, que arranca 6 meses despues que termino la otra, veremos como Stalk lidiara con el hecho de haberse revelado ante todo el mundo como el Iron Man. Ademas veremos un poco mas de la trama secundaria que tiene que ver con S.H.I.E.L.D., y de paso veremos a Mickey Rourke ("El Luchador") como Whiplash, Scarlett Johansson como Black Widow y a Sam Rockwell como Justin Hammer.

¡Gracias al lector Raúl Méndez por el enlace!

Fuente de la noticia

Previamente en eliax:

Enlaces de Iron Man en eliax

autor: josé elías


Eliax Pregunta: ¿Qué harías con 100 Millones de dólares?
eliax id: 6549 josé elías en may 1, 2009 a las 06:40 AM ( 06:40 horas)
Aprovechando que eliax está actualmente en Modo de Baja Productividad, y que no puedo escribir mucho, aprovecho la oportunidad para preguntar algo yo a ustedes y sean ustedes los autores :)

Es la pregunta clásica que estoy seguro casi todos los que visitan a eliax han discutido al menos un día con sus familiares y amigos, pero que sin duda será curioso ver las respuestas que ofrecen personas de diferentes naciones: "Si te sacas la lotería (o heredas) 100 Millones de dólares, ¿qué harías con todo ese dinero?"

Así que para empezar, contestaré yo la pregunta brevemente (quizás añada mas cosas en los comentarios):

1. Lo primero: Toda (y me refiero a toda) la familia de vacaciones por un mes. :)

2. Después de regresar de vacaciones, ver en qué puedo ayudar a mis familiares y amigos, y no me refiero a regalar dinero, sino a cosas mas importantes (ayuda en crearles negocios, pagar costos universitarios, mejorar sus viviendas, cubrir costos médicos, etc).

3. Le regalo casi todos los proyectos de mi empresa a mis empleados.

4. Dedico todas las noches a mi familia (los que trabajan en temas relacionados a la computación ya conocen la rutina de las noches y el trabajo).

5. Me dedico mas a escribir en eliax.

6. Me dedico a investigar (y desarrollar) sobre temas que me gustan (que ya lo hago hoy día, pero el tiempo no me basta).

7. Retomo a dibujar y pintar.

8. Me dedico a hacer películas independientes.

9. En vez de donar una parte significativa del dinero, fundo y patrocino programas de educación comunitarios con el fin de ocasionar cambios desde adentro de la comunidad y no desde afuera, pues creo que es mucho mas efectivo el pelear la carencia educacional y social de esa manera.

10. Construyo un gran centro cultural, con un par de teatros y centros para las ciencias y las artes, y le doy la oportunidad a todo el que lo desee a que exponga sus últimas creaciones artísticas y científicas ante una audiencia de sus colegas. Así mismo trato de que sea un modelo a seguir por otras personas en otros países.

11. Creo un programa de becas para estudiantes de artes y ciencias que demuestren potencial y talento.

12. Patrocino decenas de eventos de terceros en las artes y las ciencias.

13. Creo un fondo para emprendedores en negocios con buenas ideas o proyectos intrigantes y visionarios.

14. Trato de influenciar la legislación para crear leyes que den mas oportunidad, igualdad y libertades a los ciudadanos.

15. Convertirme en turista espacial.

16. Haríamos la madre de todas las conferencias anuales con el EMC :)

Así que ahí tienen, y como dicen, ¡soñar no cuesta nada! Y tu, ¿qué harías con esos US$100 Millones?

Y como siempre, pueden acceder a mas artículos similares en la sección de "Pregunta a eliax", y enviar sus preguntas por este medio.

autor: josé elías


GMABooster, acelera los gráficos integrados de tu PC o Laptop
eliax id: 6548 josé elías en may 1, 2009 a las 05:46 AM ( 05:46 horas)
Si tienes una PC, Laptop o Netbook con una tarjeta de video integrada que contenga uno de estos chips de Intel: 945GM/GME/GMS/GSE and 943/940GML/GU Express featuring GMA 950, y juegas video-juegos o haces renderización en tiempo real en 3D (como con Google Sketchup o Google Earth), he aquí un programa que te acelerará la velocidad de los gráficos en 3D, sin tu invertir un solo centavo.

Se trata de GMABooster, un programa que lo que hace es cambiar el valor del reloj del chip que viene de fábrica para ponerlo a ejecutar instrucciones a un ritmo mas rápido.

Lo que sucede es que estos chips, en particular en laptops, son puestos a funcionar a una velocidad menor de lo que pueden hacerlo con el fin de ahorrar energía y extenderte la vida de la batería, y lo que este hack hace es precisamente volver a poner el chip a funcionar a su máximo rendimiento.

Ojo, que al habilitar esta extra velocidad (el programa también te permite regresar a la velocidad mas lenta) que la batería de tu laptop se verá seriamente afectada, por lo que es recomendable que solo utilices este hack si la laptop está conectada a un toma-corrientes.

Noten que aunque los creadores del programa dicen que pueden acelerar el 3D en tu máquina a mas del doble, que en la realidad lo que puedes esperar es alrededor de un 22% de incremento, lo cual no suena mucho, pero si estás jugando un juego es posible que se note la diferencia en cuadros por segundo adicionales.

Página oficial de GMABooster

Fuente de la noticia

Previamente en eliax:

Conecta hasta 6 monitores a 1600x1200 en tus puertos USB (Noviembre 2007)

autor: josé elías


Magia con Realidad Aumentada
eliax id: 6547 josé elías en abr 30, 2009 a las 09:38 PM ( 21:38 horas)
Ahora los dejo para que se le deleiten con este super curioso video de un mago geek que ha armado su propio sistema de Realidad Aumentada, y lo ha combinado con el arte de la magia.

Es importante que noten que todo lo que verán en el video ocurre en tiempo real y no fue añadido previamente con efectos especiales. Bastante asombroso...

!Gracias Mauricio Sanchez Varona por el enlace al video! (nombre corregido! :))

Video a continuación (enlace YouTube)...




autor: josé elías


Un ratón al estilo Nintendo (NES)
eliax id: 6545 josé elías en abr 30, 2009 a las 02:32 PM ( 14:32 horas)
¿De verdad se necesitan palabras para describir por qué este objeto es tan bello y llamativo a los geeks y fanáticos de los video-juegos que rondan por acá en eliax? :)

¡Gracias a todos los que enviaron este enlace!

Fuente

autor: josé elías


Mas detalles sobre "XP Mode" en Windows 7
eliax id: 6546 josé elías en abr 30, 2009 a las 11:38 AM ( 11:38 horas)
Como reporté anteriormente por eliax en Twitter, Windows 7 vendrá con una funcionalidad que permitirá ejecutar aplicaciones de XP de manera nativa por medio de virtualización, y he estado investigando al respecto y les tengo unas cuantas informaciones mas al respecto.

Para el que no lo sepa, la idea es tener un modo opcional dentro de WIndows 7 llamado "XP Mode" que permitirá que arranques una aplicación en un entorno virtual de Windows XP, lo que significa que la aplicación ejecutaría tal cual lo haría en un ambiente XP, obviando por completo cualquier problema de compatibilidad con Windows 7.

Sin embargo, aunque esto suena fenomenal en papel, he encontrado algunos problemas con la manera que Microsoft hasta el momento planea implementar esta tecnología:

1. El programa que habilita el Modo XP será un descarga opcional gratuita, no vendrá instalado por defecto, y solo estará disponible para las versiones Professional, Enterprise y Ultimate de Windows 7. Si tienes cualquier otra versión de Windows 7 no podrás hacer este truco.

2. Se requiere de un CPU (procesador) que soporte extensiones nativas para virtualización (de Intel o AMD). La mayoría de los CPUs recientes tienen esto, pero la gran mayoría de los CPUs actuales en el mercado no, por lo que solo PCs y laptops recientes podrán tomar ventaja de esto. Espero que Microsoft o un tercero saque una herramienta para decirle al usuario común si su PC será compatible o no con XP Mode.

3. Se requerirá como mínimo 2GB de memoria RAM. Esto es de esperarse dado los recursos que por lo general ocupa una Máquina Virtual. (VM)

4. Esto es lo que me preocupa: Se requerirá de una nueva licencia legal de Windows XP con Service Pack 3 para que esto funcione. Es decir, esta no es una tecnología que viene con el necesario runtime de XP integrado (como se podría hacer con WINE), sino que es una VM por separado como lo hacen productos como Paralles o VMFusion. Esto de requerir una licencia nueva creo que es un error, pues se supone que la idea es simplificarle la vida a los consumidores que tendrían problemas con migrar a Windows 7.

Sin embargo, aclaro que aun no está claro si para cuando Windows 7 finalmente salga al mercado una licencia de XP será requerida para usuarios de Professional, Enterprise y Ultimate, o si XP Mode estará disponible de manera pagada para otras versioens de Windows 7. Hago esa aclaración ya que Microsoft ha sido un poco bajo al respecto (si alguien tiene mas datos concretos, compártanlos con nosotros en los comentarios), y los datos que publico aquí es basado en lo que he podido averiguar al respecto.

Más noticias relacionadas con Windows en eliax

autor: josé elías


Crean pantalla multi-táctil que se transforma en botones físicos
eliax id: 6544 josé elías en abr 30, 2009 a las 09:42 AM ( 09:42 horas)
He aquí algo que siempre he deseado (y comentado acá en eliax) y que por fin se convertirá en realidad.

Como muchos saben, hoy día hay dos maneras básicas de interactuar con dispositivos móviles (o no tan móviles): (1) con un teclado físico de algún tipo o (2) con una pantalla plana multi=táctil sobre la cual presionas "teclas virtuales" dibujadas en la pantalla.

Pero, ¿no sería genial si se pudiera combinar ambas cosas? Pues eso es precisamente lo que ha logrado un equipo de científicos de Carnegie Mellon University al lograr crear un prototipo de pantalla plana multi-táctil que cuando es necesario puede transformar su superficie para que los botones (o cualquier otra forma) dibujados en su superficie "surjan" físicamente hacia arriba, de modo que estos botones dibujados son ahora también botones físicos.

Como se podrán imaginar, esto por fin podría hacer obsoleta las guerras entre los usuarios de iPhone y Blackberry sobre cual método es mejor para interactuar con sus dispositivos.

Esta tecnología funciona poniendo una capa de latex (similar a los preservativos/condone) sobre la superficie, y (en este caso) teniendo formas pre-determinadas detrás de la pantalla que se inflan con presión de aire (a la micro-escala, obviamente). Después la imagen se proyecta en el botón "inflado" desde atrás con unos micro-proyectores.

Algo interesante que dicen los inventores de este prototipo, es que esta es la primera vez que en una misma pantalla se logran combinar (1) una pantalla que proyecta imágenes visuales (2) botones físicos, y (3) tecnología multi-táctil. Hasta ahora las tecnologías disponibles en laboratorios solo permitían dos de estas tres cosas a la vez.

Ya me imagino una laptop/netbook del futuro (como esta) en donde en vez de teclado esta tenga una segunda pantalla que se convierte en teclado cuando el usuario lo necesite...

Fuente de la noticia

Un video que explica esta tecnología (no dejen de verlo, es impresionante)

autor: josé elías


Microsoft a desabilitar AutoRun en Windows 7, XP y Vista
eliax id: 6541 josé elías en abr 30, 2009 a las 06:59 AM ( 06:59 horas)
Una de las operaciones mas molestas y peligrosas de Windows es su afán de querer ejecutar programas almacenados en discos externos o memorias USB en el momento que estas son insertadas en nuestras PCs y laptops.

El nombre de esta tecnología es AutoRun (Auto-Arranque) y es utilizado constantemente por creador de virus para transferir sus programas de una PC a otra.

El problema es tan serio que hoy día hay que cruzar los dedos, rezar a todos los dioses y esperar que el programa que tenemos de anti-virus no nos falle cada vez que insertamos una memoria externa por medio de USB a nuestras máquinas.

Ahora, Microsoft acaba de anunciar que desabilitará esta funcionalidad en la versión final de Windows 7, así como en próximas actualizacione de Windows XP y Vista. Noten que esto no afectará a dispositivos solo de escritura como CD-ROM y DVD-ROM los cuales continuarán con la funcionalidad actual.

Así que aplausos a Microsoft ya que después de varios años de súplica por parte de todo tipo de usuario, y decenas de miles de virus después, decidió hacer este cambio...

Fuente de la noticia



autor: josé elías


Cubrecamas iluminado con fibras ópticas
eliax id: 6540 josé elías en abr 30, 2009 a las 03:47 AM ( 03:47 horas)
Si eres de los que les gusta tener lo último de todo, o simplemente eres un chico Playboy que quiere impresionar, dale una mirada este cubrecamas que literalmente enciende las noches, ya que está cubierto por un material llamado Luminex que por medio de unos micro-fibras ópticas hace que toda su superficie se ilumine.

El único inconveniente es el precio, costando unos US$660 dólares. Sin embargo, la mirada que te darán al ver esto de noche, no tiene precio... :)

Lo puedes obtener en este enlace



autor: josé elías


Detectan objeto mas viejo del Universo a la fecha. 13,000 M. de años de antigüedad
eliax id: 6539 josé elías en abr 29, 2009 a las 11:46 PM ( 23:46 horas)
Telescopios de todo el mundo fueron apuntados ayer a un singular evento cósmico cuando un enorme estallido de rayos gamas con duración de 10 segundos fue detectado en un lugar remoto del Universo.

Para sorpresa de la comunidad científica, esta explosión se ha identificado como el estallido de una estrella de entre 30 a 100 veces mas grande que nuestro Sol y que data de nada mas y nada menos que de hace 13,000 millones de años de antigüedad, o en otras palabras, apenas unos 600 millones de años después del nacimiento de nuestro Universo.

La estrella explotó en un instante con una energía 1 millón de veces mas potente que toda la energía que nuestro Sol emanará en toda su vida, y por un breve momento (acorde llegara la luz a la velocidad de la luz) será visto por todo el Universo.

Esta estrella, denominada científicamente como "GRB 090423" fue detectada por el satélite Swift de la NASA, y el resplandor infrarrojo fue detectado por el Gemini Observatory en Hawaii.

Algo importante es que este acontecimiento arroja por primera vez prueba científica de una hipótesis que decía que estrellas masivas ya debían existir para esa temprana edad del Universo, por lo que pueden imaginarse que hoy día hay muchos científicos celebrando uno de los mas fortuitos acontecimientos celestes en tiempos recientes.

Nota curiosa: Para que se maravillen ante lo asombroso que es el Universo, esta estrella en realidad explotó hace 13,000 millones de años, y es justo ahora que la vemos explotar aquí en la Tierra, después de que la luz de esa explosión nos llegara viajando a 300,000 Kilómetros por segundo durante todos esos años...

Y como siempre, pueden leer mas noticias similares a esta en la sección de Ciencia en eliax.

Fuente de la noticia

autor: josé elías


Pregunta a eliax: ¿Qué estudio para ser competitivo en Informática?
eliax id: 6537 josé elías en abr 29, 2009 a las 10:12 PM ( 22:12 horas)
Debido a mi experiencia en la industria, y muchos de los artículos que publico acá en eliax, por lo general recibo unos cuantos emails semanales de personas jóvenes en ambiente universitario quienes me preguntan básicamente "¿Qué debería yo estudiar para mantenerme competitivo en el mercado de la informática?

La respuesta no es una, pero responderé de tal manera que espero pueda ayudar al menos a unos cuantos.

Lo primero a entender es que "informática" cubre muchísimas cosas, pero voy a asumir que hablamos sobre todo de "programación". Sin embargo, aun en programación hay dos grandes vertientes que puedes seguir (o ambas si así lo prefieres): Software de Aplicaciones, y Software de Sistema.

Por Software de Aplicaciones me refiero a poder crear (por ejemplo) programas para el mundo de los negocios, desde una simple agenda hasta portales de Internet, o desde un sistema de mensajería hasta una aplicación web para dar servicio al cliente.

Por Software de Sistema me refiero mas a programas de bajo nivel, que están mas cerca del hardware, y que incluye desde crear un simple driver para un puerto serial, hasta crear módulos para un sistema operativo (como Linux).

Así que voy a dar recomendaciones para ambos entornos por separado.

Software de Aplicaciones
Aquí creo que ante todas las cosas, se concentren en tecnologías web, y opcionalmente también en tecnologías móviles (aunque pronto será una necesidad ya que todo será móvil). Si lo que les enseñan en la Universidad es todavía como programar en Pascal o C, y no a como desarrollar aplicaciones web, no es que estén perdiendo el tiempo pero ciertamente están jugando en la cancha equivocada.

Si donde estudias no te ofrecen las siguientes tecnologías que nombro a continuación, recomiendo que utilices la web (y en particular a Google) para aprender por tu cuenta. Hoy día no es esencial comprar libros, ya que hay muchísimos recursos gratuitos en Internet para casi cualquier cosa que te puedas imaginar.

Así que para Software de Aplicaciones, recomiendo lo siguiente como mínimo:

1. Lo básico de páginas web estáticas. Es decir, HTML y CSS.

2. Lo básico de páginas web dinámicas con Javascript.

3. Alguna tecnología de generación dinámica de páginas web, como puede ser PHP, JSP, ASP o Coldfusion.

4. Integración de páginas web dinámicas con generación dinámica de páginas web, es decir, el concepto llamado "AJAX", que implica Javascript, HTML, preferiblemente CSS, y lo básico de XML y/o JSON (desde el punto de vista estructural, no tanto en detalle). Aquí también es bueno aprender de herramientas como JQuery y Prototype.

5. Saber Adobe Flash ayuda, pero personalmente trato de mantenerme alejado ya que rompe el esquema de aplicaciones web, aunque tiene sus usos prácticos. Sin embargo hoy día AJAX y HTML 5 están poco a poco reemplazando a Flash en muchas aplicaciones.

6. SQL, así como al menos una base de datos como MySQL o Postgress.

7. No está de mas saber Java, pues puede ser mucha ayuda para resolver ciertos tipos de problemas. Además con Java aprendes técnicas de programación mucho mas sofisticadas que con simple PHP o Javascript.

8. Dominar al menos una herramienta de desarrollo. Para desarrollo web recomiendo Dreamweaver. Para Java utilizo Netbeans pero Eclipse es igual de potente (sino mas, pero también requiere de mas esfuerzo configurarlo).

9. Saber un poco de Photoshop te puede sacar de muchos aprietos.

10. No está demás aprender técnicas de MVC para separar la lógica y el interfáz de usuario de tu aplicación (y de paso el mismo almacenamiento de los datos).

11. Algo útil también es Servicios Web (Web Services), lo que implica saber al menos los conceptos de WSDL y SOAP.

12. Otra cosa que puede venir útil es poder integrar con portales y servicios en la web, como Google Maps, Twitter, RSS, FedEx, Paypal, etc.

13. Es bueno conocer el concepto de un Contenedor de Aplicaciones, como lo hace J2EE o Coldfusion.

Software de Sistema
Crear Software de Sistema por lo general requiere de mayor experiencia por parte del programador, así como ser muy cuidadoso en el diseño, y poder saber técnicas avanzadas de optimización de bajo nivel (a veces hasta el nivel binario, haciendo trucos como un shift a la izquierda o derecha de los dígitos binarios para multiplicar o dividir).

Aquí es muy importante conocer técnicas de código bien estructurado y documentado, así como tener un arsenal de todo tipo de utilidades y trucos para comparar archivos, diagnosticar tu código, medir el rendimiento, etc. A tal fin recomiendo como mínimo lo siguiente:

1. Conocimiento del lenguaje C y C++. Si piensas programar en Mac OS X, también debes mojarte las manos con Objective C. El lenguaje C y sus variantes por lo general serán tus herramientas principales.

2. Java. Aunque no puede hacer todo lo que hace C, sí se acerca mucho, y es bastante útil para crear aplicaciones de redes o de interconexión. En muchos casos a este nivel hay programadores que pasan mas tiempo en Java que en el mismo C.

3. Saber moverte en la linea de comando, sea el DOS/CMD de Windows, o el Shell de Unix/Linux/OS X.

4. A veces ayuda poder hacer Shell Scripts, sea en DOS, sh, Perl, etc.

5. Saber depurar tu código tanto en tiempo real como paso-a-paso.

6. Entender técnicas de optimización de código (profiling), utilizando la regla del 80/20 (concéntrate en optimizar esa pequeña parte del código que te da el 80% del beneficio, pues optimizar el resto es posible que no te incremente mucho el rendimiento).

7. Ayuda bastante conocer varios lenguajes y entornos de programación, como Pascal/Delphi, Visual Basic, PL1, COBOL, etc. No porque los vayas a utilizar, sino porque en este campo es posible que te topes algún día con código que debas entender y que no estará escrito en C. Además, notarás que cuando vayas por el cuarto o quinto lenguaje, que la mayoría se parecen unos con otros, y que los mismos patrones se repiten en casi todos. Por ejemplo, si estoy aprendiendo un lenguaje nuevo, y necesito hacer algo como buscar una palabra dentro de una frase, lo último que trato de hacer es escribir yo mismo el código, sino que trato de adivinar si existe una función que ya haga eso similar a como se hace con otros lenguajes.

8. Entender bastante bien lo que es un API, y como leer documentación sobre ellos, así como proveer tu propio API a otros programadores.

9. Dependiendo de tu campo, es importantísimo aprender sobre al menos Sockets y HTTP para programar aplicaciones de redes, así como entender la diferencia entre TCP y UDP, y cuando utilizar cada protocolo.

10. Haber programado al menos unas cuantas veces al mas bajo nivel posible (cuando menos con Assembly Language en un micro-controlador) es de una utilidad que no se pueden imaginar hasta el día que les haga falta. Por ejemplo, programar en C tiene muchas repercusiones a bajo nivel que se entienden mejor cuando uno sabe Assembly/Machine Language, ya que entienden mejor los conceptos de punteros, registros, etc. En mi caso, por mas alto nivel que sea el lenguaje de programación (como Coldfusion, Javascript o Java), siempre estoy consciente de lo que ocurre "tras bastidores" a bajo nivel, lo que me ayuda a diagnosticar problemas que de otra forma hubiera sido casi imposible o tomado muchísimo tiempo de investigación.

Técnicas Avanzadas
Como dije, esas son las cosas básicas que como mínimo recomiendo aprendan. Sin embargo, cuando entren al mundo laboral, en particular si terminan haciendo trabajos para grandes empresas o multi-nacionales, notarán que les hacen falta mas conocimientos específicos, y algunos de esos que me vienen a la mente ahora son:

1. Cómo integrar sistemas construidos bajo diferentes plataformas. Hay decenas de formas, que van desde integración a nivel de base de datos, hasta screen-scraping, o integración a través de archivos planos (bastante feo) hasta integración por servicios web. En este tema herramientas como Java y XML ayudan mucho en algunos casos.

2. Entender el concepto de un JIT (Just-In-Time Compiler) y entender cómo funciona. Esto es muy importante con temas de Java, .Net y mas recientemente con Javascript, y de paso les permitirá escribir código mucho mas eficiente.

3. Entender temas de Máquinas Virtuales (como la JVM - Java Virtual Machine), pues muchas veces no podrás corregir errores en tus aplicaciones si no tienes una intuición sobre lo ocurre tras bastidores (como por ejemplo, con el uso de la memoria). Así mismo, y relacionado a esto, entender los temas de Garbage Collection (Recolectores de Basura) en relación a las VM.

4. Es importante saber algunos temas básicos de seguridad, como Certificados Digitales, lo que es un Hash, cifrado simétrico vs asimétrico, SSL, etc.

5. Entender el concepto de un Connection Pool, que es un tema crítico para escalar aplicaciones a grandes cantidades de usuarios, en particular cuando se aplica a base de datos, aunque también aplica a objetos en memoria, y es muy utilizado en conexiones de redes.

6. Entender el concepto de Connection Polling (no confundir con Connection Pool) que en muchos casos nos ayuda a crear protocolos bi-direccionales cuando uno de dos extremos no puede iniciar una conexión al otro lado. Esta es la manera principal como funciona GMail y programas de chateo por páginas web.

7. Entender el concepto de un Message Queue, así como cuándo utilizar un Buffer en su mas amplia definición.

8. Entender conceptos de replicación de datos, servidores redundantes, etc.

9. Entender conceptos como DNS, DNS dinámico, etc.

10. Tu arma mas poderosa será la de copy-paste. No reinventes la rueda. Si alguien ya resolvió el mismo problema que tratas de resolver y ofrece su código o algún componente, utilízalo. Aquí Google y la documentación de tu entorno de desarrollo son tus mejores amigos. Para que tengan idea, yo diría que entre el 40 y el 80% del código que yo escribo hoy día (dependiendo del proyecto) lo copio de proyectos anteriores que he realizado, y el resto es código muy específico al proyecto que estoy trabajando.

11. Saber Linux te podría abrir muchas puertas y resolverte muchos problemas, sí como permitirte aprender de conceptos de bajo nivel en sistemas operativos.

12. Recuerden que algunos de estos temas ya los he tratado en eliax, por lo que pueden hacer búsquedas dentro del blog a ver si encuentran un punto de partida para aprender algunos de estos temas. Además es posible que quieran visitar la sección de Software en eliax.

-
Pues eso es lo que se me ocurre en estos momentos. Si se me ocurre otra cosa (o alguien pone algo interesante en los comentarios) quizás actualice la lista para agregar unas cuantas cosas mas. Por ahora, espero que esto sea de utilidad para algunos de ustedes...

Y como siempre, pueden acceder a mas artículos similares en la sección de "Pregunta a eliax", y enviar sus preguntas por este medio.

autor: josé elías


¿Pocas noticias en eliax.com hoy? Prueba twitter.eliax.com...
eliax id: 6538 josé elías en abr 29, 2009 a las 03:30 PM ( 15:30 horas)
Hola a todos,

Esto es solo para avisarles que aunque en estos momentos eliax está en Modo de Baja Productividad, que sin embargo sí tengo unos minutos libres para actualizar a eliax vía Twitter, por lo que si visitan ahora mismo encontrarán al menos 3 mini-noticias que no han salido en el portal principal de eliax.

¡Gracias a todos por las visitas!

Enlace a twitter.eliax.com

autor: josé elías

"Muy buenos consejos dirigidos a la empresa, nada rencoroso, lo que queremos es salir todos beneficiados y que las cosas se hagan de una manera transparente y correcta."

por "Pavel Perez" en mar 15, 2011


en camino a la singularidad...

©2005-2024 josé c. elías
todos los derechos reservados
como compartir los artículos de eliax