Arquitectura de aplicaciones empresariales HTML5

Avatar de Alvaro Torres Tatis/* Life Runs on Code */

El aspecto más importante de una buena arquitectura es la independencia y la integración de todas las partes del sistema. En otras palabras «acoplable y modular». Esta entrada pretende mostrar marcos de trabajo (Frameworks) y estructuras utilizadas típicamente para implementar una aplicación empresarial basada en JavaScript/HTML5/CSS. Se trata entonces de una guía básica de elementos comunes.

HTML5

Por supuesto, la base de todo. De hecho HTML5 es un término genérico para describir un conjunto de especificaciones HTML, CSS y JavaScript diseñado para permitir a los programadores crear la próxima generación de aplicaciones. No se trata solo de nuevas etiquetas como <header>y <footer>. La W3C habla de 100 o más especificaciones relacionadas: Web Workers, Web Sockets, IndexedDB, Canvas, soporte nativo de audio y video, etc, etc, etc. ¡HTML5 es enorme! Aprovéchelo.

API de acceso al DOM

Cuando hablamos de acceso al DOM inmediatamente pensamos en jQuery, que de hecho se…

Ver la entrada original 800 palabras más

Object-Oriented JavaScript

Avatar de Alvaro Torres Tatis/* Life Runs on Code */

JavaScript tiene capacidades de programación orientada a objetos (a pesar de algunos debates) con sus diferencias y particularidades marcadas si lo comparamos con otros lenguajes de programación.

Este artículo muestra conceptos de la programación orientada a objetos en JavaScript, pero particularmente la utilización de algunos patrones al momento de definir sus “clases” (Functions). En general todos los patrones que menciono a continuación, nos ayudan a reducir la probabilidad de que los nombres de las funciones y variables entren conflicto con otros definidos en secuencias de comandos adicionales en una página.

Module Pattern

Se utiliza para emular el concepto de clases, de tal manera que nos permite incluir variables y métodos tanto públicos como privados dentro de un solo objeto, exponiendo solo lo necesario al ámbito global.

/*---------------------------------------Module Pattern---------------------------------------*/(function(){// Constructor
    window.Calculator =function(){// Variables privadasvar history 

Ver la entrada original 695 palabras más

Paquetes de versiones de Ubuntu obsoletas

Avatar de viktorLa victácora

Si necesitáis seguir usando una versión obsoleta de ubuntu, la buscáis en

http://old-releases.ubuntu.com/ubuntu/dists/

vais a Gestor de actualizaciones -> configuración -> otro software -> añadir

ejemplo: deb http://old-releases.ubuntu.com/ubuntu natty main

Ver la entrada original

Las distribuciones de Linux mas vistosas (y como instalarlas)

Avatar de abner coronadoAbner coronado

Linux es un S.O. multiproposito, se pueden encontrar diferentes distribuciones enfocadas a redes, programación, seguridad, o como un sistema operativo completo. Aunque sea un S.O. famoso mucha gente tiene miedo de cambiarse a Linux debido a que no saben que distribución elegir de tantas que existen.

Hoy les voy a enseñar 4 de las distro mas amigables para iniciar en el mundo de los S.O. libres que se creo en parte gracias al programador Linus Torvalds.

Ver la entrada original 442 palabras más

Instalar el módulo Rewrite de Apache en versiones más recientes de Ubuntu

MongoDB, MySQL, and ORMs: when and where to use them

Avatar de Jonathan Nacionalesiamalivingcontradiction

I had a really interesting conversation on facebook today with a friend I knew from school. We are both professional developers now, and we occasionally exchange ideas on software development. I feel that this particular conversation was worth documenting for posterity because of the natural progression of ideas. I think that the overall conversation simplifies  a lot of very complicated ideas into a narrative structure.

Edgar: What’s your opinion on this hilarious discussion?

Me: I’ve actually seen this. We use both MongoDB and MySQL at work. There is a religious war between different teams, here.

Edgar: I think MySQL is better in situations where you need reliability above all else.

Me: You can get reliability with MongoDB. You just don’t have transactions across documents. Databases have transactions across tables. MongoDB only supports transactions for a single document. That issue is important when you design your application.

Me: The problem is…

Ver la entrada original 1.236 palabras más

MySQL Database Replication

What’s New in PHP 5.5

Avatar de AwaissoftCanvas Code

PHP 5.5 was recently released, introducing several exciting new features to the language. In this article, we’ll go through some of the most interesting additions and discuss the benefits they provide to developers.

Generators

Generators are one of the most eagerly anticipated new features. They provide a way to handle iteration without having to write a class that implements the Iterator interface. Making a class conform to the Iterator interface requires a substantial amount of boilerplate code, so being able to avoid this by using generators can significantly reduce the size and complexity of code that developers must write.

Generators derive their functionality from the new yield keyword. A generator looks very similar to a normal function, but instead of returning a single value, a generator may yield any number of values.

To properly illustrate the power of generators, an example is needed. Consider PHP’s range() function, which returns an…

Ver la entrada original 1.236 palabras más

Creando consultas Select con Zend_Db_Select – PHP Tips

Uno de los frameworks con los cuales mas me gusta trabajar es con ZendFramework, sobre todo con las funciones de conexión y consulta MySQL, ya que el uso de estas me simplifica el trabajo. Hoy voy a explicar un poco el uso del Zend_Db_Select en la versión de ZendFramework 1.12. Vamos a suponer que la conexión a la base de datos ya la tenemos configurada.


// $db es la conexión a la base de datos

$select = $db->select();

$select->from('mitable');

$select->where('id LIKE ?' => $id);

$stmt = $select->query();

$result = $stmt->fetchAll();

Este seria un ejemplo básico de selección de un dato de una tabla y devolver todos los datos con ese Id.

Para mas información y mas métodos http://framework.zend.com/manual/1.12/en/zend.db.select.html

 

 

 

Acceder a datos JSON con jQuery – jQuery Tips

Una de las maneras para rellenar un formulario dinámicamente en base a una petición AJAX es por medio de JSON.

Supongamos el siguiente escenario. Tenemos un formulario que se tiene que autorellenar en base a una petición AJAX, por ejemplo, le pasamos el código de una persona y nos tiene que mostrar los datos.


// Fichero datos.php

$datos = array(

1 => array('nombre' => 'Yo', 'apellidos' => 'mismo'),

2 => array('nombre' => 'Tu', 'apellidos' => 'aquel'),

);

$codigo = filter_input(INPUT_POST, 'codigo', FILTER_SANITIZE_NUMBER_INT);

foreach ($datos as &$dato) {
 $dato = utf8_encode($dato);
 }
 echo json_encode($datos[$codigo]);


<!-- Fichero formulario.html -->

<form id='formulario'>
 <input type='text' id='codigo'>
 <button type='button' id='buscar'>Buscar Registro</button>
 <input type='text' id='nombre'>
 <input type='text' id='apellidos'>
</form>
<script>
$('#buscar').click(function(){
 $.post('datos.php', {codigo:$('#codigo').val()}, function(data){
 data = JSON.parse(data);
 $('#nombre').val(data.nombre);
 $('#apellidos').val(data.apellidos);
 });
 return false;
});
</script>

En este ejemplo los datos están almacenados dentro de un array, lo normal es que fueran resultado de una consulta SQL.

En el formulario pongo, por ejemplo, el 1 para obtener los datos, estos se mandan vía post al fichero de datos, antes de devolverlos los codifico con utf8_encode para que no de ningún error, luego les damos formato con json_encode, y una vez que lo recibimos los tenemos que tratar con JSON.parse para poder acceder a ellos como si fueran un objeto.