martes, 25 de mayo de 2010

Si estoy comenzando a programar y quiero ser un programador core, es mejor empezar vía c, c++ y luego visual c++, c++ .net cli, o con C# es que no estoy seguro si la mejor forma de empezar es vía managed code. Gracias.

Bueno; yo no veo problema en comenzar a aprender managed code. De hecho, lo considero mucho menos traumático y sobretodo más productivo. Creo que el único motivo que me llevaría aconsejar comenzar con C++ en cualquiera de sus sabores, es si realmente se va a desarrollar una carrera profesional basado en programación nativa que igual hoy sigue siendo útil para gente que hace drivers, aplicaciones nativas para teléfonos, mantenimiento a aplicaciones viejas, o aplicaciones nuevas que requieren un uso extremadamente eficiente del hardware (realmente son pocas las que requieren esto). O tal vez programación directa de multimedia sobre DirectX. Cosas así, son las que requieren C/C++. Pero si lo que uno quiere es dedicarse a hacer aplicaciones de negocio o de usuario final, comenzar de una vez a ser productivos con managed code, es el mejor camino.

Ask me anything

martes, 18 de mayo de 2010

Ventajas R�pidas en Expression Web

En el video r�pido de esta semana, muestro ventajas que he encontrado usando Expression Web en la creaci�n de un proyecto Open Source en el que necesitaba algo muy r�pido y sencillo, pero con estilo.

Veamos c�mo para lograr esto, Expression Web nos ayuda bastante. Principalmente abordo temas como edici�n de texto, formateo y aplicaci�n de estilos: C�mo se crean autom�ticamente dentro de la p�gina a trav�s de cuadros de di�logo visuales. Y c�mo se pueden administrar para reunirlos autom�ticamente en un archivo de estilos.

Tambi�n algunos tips HTML como. Centrar un div dentro del body y crear un template con varias columnas en divs.

Algo r�pido, sencillo y �til. Enjoy!

Nuevo Post: http://ping.fm/OhfzB - Ventajas R�pidas en Expression Web

sábado, 15 de mayo de 2010

NaCl: El Silverlight/Flash de Google?

En mi continuo transitar por las novedades tecnol�gicas (no s� a que hora visito tanto sitio�) Me encontr� con que Google de una manera bastante discreta estaba lanzando una tecnolog�a abreviada como la sal: NaCl. Acr�nimo de Native Client.

NaCl = Sal

Native Client es una idea supernovedosa

Con la cual de acuerdo a lo que encontramos en el sitio del proyecto, tenemos un fabuloso SDK que permitir� al browser ejecutar c�digo nativo para construir aplicaciones web de alta respuesta e interactividad� (no les suena esto familiar?)

Lo cual, me parece bastante curioso, dado todo lo que Google ha dicho acerca de su firme apoyo a HTML 5, que pretende solucionar el mismo tipo de problema.

Dijo el vice presidente de ingenier�a Vic Gundotra en el Google I/O de 2009: �HTML 5, will be the future of the web�.

Y si es as�? Para qu� desgastarse tratando de implementar toda una tecnolog�a para correr c�digo nativo desde el browser? Sobretodo cuando se ha criticado al mismo tipo de tecnolog�as ya implementadas como Silverlight y Flash?

Ser� que en el fondo no creen mucho en HTML5? O ser� que en el fondo creen mucho en tecnolog�as Silverlifght/Flash?

NaCl tiene un SDK que funciona en Windows, Linux y Mac� Genial! Y lo mejor de todo, es que las aplicaciones las programar�amos en una suerte de sancocho (l�ase mescolanza o MIX para los m�s modernos) de CSS, HTML, Javascript y s�, el amigable C/C++! Todo para lograr que la aplicaci�n no se vea como un frame embebido dentro del HTML, sino como puro HTML.

Este C/C++ nos permitir� crear de una forma bastante sencilla gr�ficos en 2D/3D, ejecutar audio y responder a eventos del mouse y teclado!

Pero�

Cu�l es el AS bajo la manga de Google que aventajar� a Silverlight y Flash?

Pues que no se requerir� plugin! No habr� que instalar nada!!!
Bueno, excepto el propio browser de Google (Chromium). Entonces ha de ser que para ellos no existen m�s browsers :

�all without requiring users to install a plugin. These web apps run in recent versions of Chromium with the --enable-nacl flag.�

Bueno; pero pongamos esas des-virtudes a un lado y d�mosle una oportunidad de prueba; observemos c�mo ser�a la programaci�n. Primero, veamos c�mo ser�a la p�gina web que hospedar�a la sal; digo, NaCl:

   1:  DOCTYPE html>




   2:  <html>




   3:    




   8:  <head>




   9:    <title>Hello, World!title>




  10:   




  11:    <script type="text/javascript">




  12:      hello_world = null;  // Global application object.




  13:      status_text = 'NO-STATUS';




  14:   




  15:      function moduleDidLoad() {




  16:        hello_world = document.getElementById('hello_world');




  17:        updateStatus('SUCCESS');




  18:      }




  19:   




  20:      // If the page loads before the Native Client module loads, then set the




  21:      // status message indicating that the module is still loading.  Otherwise,




  22:      // do not change the status message.




  23:      function pageDidLoad() {




  24:        if (hello_world == null) {




  25:          updateStatus('LOADING...');




  26:        } else {




  27:          // It's possible that the Native Client module onload event fired




  28:          // before the page's onload event.  In this case, the status message




  29:          // will reflect 'SUCCESS', but won't be displayed.  This call will




  30:          // display the current message.




  31:          updateStatus();




  32:        }




  33:      }




  34:   




  35:      function fortytwo() {




  36:        try {




  37:          alert(hello_world.fortytwo());




  38:        } catch(e) {




  39:          alert(e.message);




  40:        }




  41:      }




  42:   




  43:      function helloworld() {




  44:        try {




  45:          alert(hello_world.helloworld());




  46:        } catch(e) {




  47:          alert(e.message);




  48:        }




  49:      }




  50:   




  51:      // Set the global status message.  If the element with id 'status_field'




  52:      // exists, then set its HTML to the status message as well.




  53:      // opt_message The message test.  If this is null or undefined, then




  54:      //     attempt to set the element with id 'status_field' to the value of




  55:      //     |status_text|.




  56:      function updateStatus(opt_message) {




  57:        if (opt_message)




  58:          status_text = opt_message;




  59:        var status_field = document.getElementById('status_field');




  60:        if (status_field) {




  61:          status_field.innerHTML = status_text;




  62:        }




  63:      }




  64:    script>




  65:  




  66:  "pageDidLoad()">




  67:   




  68:  

Native Client Simple Module





  69:  





  70:    




  71:    




  72:   




  73:    




  76:    
"nacl_helloworld_content">




  77: