Entradas

JavaScript: El Lennguaje de Programación Más Malentendido del Mundo

(Aquí les dejo traducido, el primer texto que leí de Douglas Crockford , y con el que me introduje en el interesantisimo mundo de javascript) Javascript tambien conocido como: Mocha, LiveScript, JScript, ECMAScript es uno de los lenguajes de programación más populares del mundo. Virtualmente todo computador personal en el mundo tiene, al menos, ún interprete de JavaScript instalado en él, y en uso activo. La popularidad de JavaScript se debe enteramente a su rol como lenguaje de scripting de la WWW. A pesar de su popularidad, solo algunos saben que JavaScript es un muy buen lenguaje de programación dinámico, orientado a objetos, de proposito general. Cómo puede ser esto un secreto? Porqué este lenguaje es tan malentendido? El Nombre El prefijo Java sugiere que JavaScript está, de alguna manera, relacionado a Java, que es un sub conjunto o una version menos poderosa de Java. Resulta que el nombre fué intencionalmente seleccionado para crear confusión, y de la confusión viene el malen...

currying functions

Currando funciones en javascript ja, esto es un tema avanzado asi que a todos los que se aburren mucho con mis otros post les comento que este les va a encantar. que son las curried functions. Simple son funciones que si reciben menos paramtros de los que deberian recibir simplemente se compilan a si mismas con los parametros que recibieron y devuelven una función que solo necesita un parametro para terminar su ejecución. Veamos un ejemplo simple supongamos que la funcion myFunc suma dos parametros alert(myFunc(2,2)); // devuelve 4 var adds4 = myFunc(4); // adds4, es ahora una función, // que le suma 4, a lo que reciba de argumento. alert(adds4(5)); // devuelve 9. bien ahora veamos como implementar esta funcion function add(a, b) { if (arguments.length return add; } else if (arguments.length return function(c) { return a + c } } else { return a + b; } } No es mucho mas complicada, pero t...

Un poco de Magia para empezar el dia

Hola hoy les acerco un poco de sintaxis util en javascript: Formas de crear un objeto: EN JAVASCRIPT TODO ES UN OBJETO y como tal no deberia ser dificil crear uno nuevo, para esto tenemos varias opciones var obj= new func(); nos permite crear un objeto a partir de una funcion y utilizando su prototipo. Sin embargo la mejor manera de crear un obj es utilizando la notacion JSON veamos un ejemplo y lo explicamos despues var obj = { miembro1:123, meiembro2:"hola", metodo1: function(){ return "metodo1";}, metodo2: function(){ return "metodo2";}, "metodo3": function(){ return "metodo3";} }; alert(obj.metodo3()); si se fijan bien la declaracion del objeto esta encerrada en llaves { }, y luego dentro se encuentran pares nombre valor separados por comas. ahora cada par nombre valor, nombre puede ser un identificador o un string y el valor puede ser cualquier valor (incluida una funcion) hasta otro objeto. Ahora hagamos un obj...

Metaprogramación o DSL con javascript method chaining

Hoy vamos a ver un poco de como crear un mini Lenguaje de dominio especifico (como SQL, o CSS) con javscript de manera facil, rápida, elegante, agil y económica. Partamos de un problema. Supongamos que tenemos un select html de paises y solo si elijen eeuu debemos mostrar el select de estados, hariamos lo siguiente (usando la libreria prototype) Event.observe(window, "load", function() { Event.observe($("country"), "change", function() { if ($F("country") == "United States") $("state-field").show(); else $("state-field").hide(); }); }); por ahora creanme que Event.observe recibe un objeto del dom, el nombre de un evento, y la funcion a attachear, $ en la lib prototype es un atajo a document.getElementById, $F es un atajo al value de un objeto de formulario, y finalmente se le agregan a los objetos del DOM dos metodos show y hide que simplemente manipulan el valor de display a nivel de css. lo...

Vamos a soñar despiertos

yo soy de los que opinan que las majores ideas para los browsers del futuro la dan los que hacen los mejores browser del presente: Mozilla le pidio a Jesse James Garrett (muchacho que en el 2004 dijo, si convinamos javascript html y xml tenemos AJAX) que diseñe conceptualmente como deberían ser los browser dentro de 10 a 50 años. Si se fijan bien muchos de los conceptos son realizables ya hoy en dia mediante javascript.pero mejor los dejo con el video disfrutenlo en HD es el ultimo link. Saluts http://labs.mozilla.com/projects/concept-series/ http://adaptivepath.com/aurora/ http://www.vimeo.com/1450211

Mi sueño se hizo realidad (Otra vez)

asi es, siempre quise tener un buen editor de código con resaltador de sintaxis multi lenguaje (php,javascript,css,html) y aunque bespin es un proyecto muy en serio que ataca este problema, esta escrito en python y no es nada facil de instalar en tu hosting. Pero ahora tenemos a ecoder que es una aplicacion php que te permite editar tu código en linea. Como un gran amigo mio siempre decía, "Los cambios se implementan en el entorno de producción, ja!". Disfrutenlo, y aunque todavia está en una etapa muy beta, se que vamos a seguir escuchando noticias de él. Notas: es un tanto dificil de instalar ya que tiene muy poca documentación (los comments del código) pero si son bueno php-hackers se las van a arreglar muy bien. ecoder

Como programar en Javascript

Javascript es un lenguaje funcional esto implica que sus construcciones de codigo son simplemente funciones. Pero no implica que solamente se pueda programar en formato funcional ya que podemos aplicar muchos paradigmas. Como por Ejemplo el paradigma orientado a objetos. Como dijimos antes EN JAVA SCRIPT TODO ES UN OBJETO, inclusive las funciones, pero no existen las clases, y esto nos presenta una dificultad como trabajar con el paradigma orientado a objetos. supongamos que necesitamos crear una persona con dos miembros, un nombre y un apellido, y un metodo hablar que nos alertará el nombre y el apellido. veamos como hacer esto function persona (pNombre, pApellido){ this.nombre = pNombre; this.apellido= pApellido; } persona.prototype.hablar = function (){ alert(this.apellido + ", " + this.nombre); } var a = new persona("picante","verde"); a.hablar(); funcamentalmente entendamos una cosa, function persona (pNombre, pApellido){ ... } es un ataj...