18-febrero-2013
admin

Patrón Decorator para Javascript

El patrón decorator es un patrón de diseño que permite añadir un comportamiento adicional a un objeto existente dinámicamente.

var JQuery ={
	getNombre:function(){
		return "Pepe"; 
	}
};

//Decorado del objeto con la capacidad de formar un nombre completo
(function($){
        $.test = function(apellido){ 
                      return JQuery.getNombre() + " " + apellido;
        }
})(JQuery);

// Usando la funcionalidad decorada
console.log( JQuery.test("Contreras") );

El resultado obtenido es: «Pepe Contreras»

18-febrero-2013
admin

Patrón Módulo Revelado para Javascript (Revealing Module)

Se trata de uno de los patrones más utilizados y elegantes a la hora de organizar código javascript. Su principal atractivo es que resulta extremadamente útil para conseguir código reusable y, sobre todo, modular.
Consiste en una función que actúa como contenedor para un contexto de ejecución. En su interior, se declaran una serie de variables y funciones que solo son visibles desde dentro del mismo.

if(!es){
     var es = {};
}
if(!es.com){
     es.com = {};
}
if(!es.com.disastercode){
     es.com.disastercode = {};
}


es.com.disastercode.lib = ( function(){
  var prop = 'propiedad';

  var privateMethod = function(){
        return 'método privado';
  }
 
  return {
        publicMethod : f1,
	publicMethod2 : f2
  }
  
  
  function f1(){
        return privateMethod() + prop;
  }
  function f2(){
        return "";
  }
	
})();

var prueba = es.com.disastercode.lib;
console.log(prueba.publicMethod());

El resultado obtenido es: «método privadopropiedad»

23-enero-2013
admin

String vs StringBuffer vs StringBuilder

En Java tenemos distintas formas para realizar la concatenación de las cadenas de texto (tipo String). Las tres formas más habituales son: el uso del operador de suma, usaar StringBuffer y usar StringBuilder.

El operador suma está sobrecargado en la clase String, y es la forma más básica de concatenar dos cadenas de caracteres. Al concatener dos String con el operador suma, se crea un nuevo String resultante, con lo que constantemente estamos creando objetos nuevos. Lo cuál hace que no se la mejor opción.

String var1 = "Hola, ";
String var2 = "mundo";
String holamundo = var1 + var2;

La clase StringBuffer es una secuencia de caracteres mutable; es decir, es una clase que nos permite concatenar String de una manera simple y muy eficiente.
Los métodos de StringBuffer son sincronizados, por lo cual la podemos usar de manera segura en un ambiente de multihilos.

StringBuffer buffer = new StringBuffer();
buffer.append("Hola, ");
buffer.append("mundo");
String holamundo = buffer.toString();

La clase StringBuilder es una clase que aparece con el JDK 5, y es la clase recomendada para la concatenación de String en la mayoría de los casos. Su uso es idéntico al StringBuffer (tienen el mismo API). Los métodos de StringBuilder no son sincronizados, por lo que tiene mejor rendimiento que StringBuffer cuando solo hay un único hilo.

StringBuilder builder = new StringBuilder();
builder.append("Hola, ");
builder.append("mundo");
String holamundo = builder.toString();

Fuente

16-enero-2013
admin

Consultar un Servicio Web en Android utilizando la librería KSOAP

Se va a utilizar para el ejemplo el servicio web implementado en la entrada anterior (Recordar que se creó un servicio web con wsdl en php utilizando la librería nusoap).

1 – Descargar la librería Ksoap aquí.

2 – Copiarla en la carpeta libs de tu proyecto Android. Añadirla al «Build path» y seleccionarla en “Order and Export”.

3 – Ahora ya se puede utilizar. Y esto sería un ejemplo de utilización:

    private static final String SOAP_ACTION = "getNombre";
    private static final String METHOD_NAME = "getNombre";
    private static final String NAMESPACE = "http://disastercode.com.es/ws/nusoap";
    private static final String URL = "http://disastercode.com.es/ws/servicioWsdl.php?wsdl";
        
    private void pruebaWS(){
    	String res = "";
    	SoapObject soapclient = new SoapObject(NAMESPACE,METHOD_NAME);
    	soapclient.addProperty("dni","99999999N");
    	 
    	SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    	envelope.setOutputSoapObject(soapclient);
    	HttpTransportSE httpTransportSE = new HttpTransportSE(URL);
    	
    	try {
    		httpTransportSE.call(SOAP_ACTION, envelope);
    		res = envelope.getResponse().toString();
    	} catch (Exception e) {
    		e.printStackTrace();
    	}
    	//TODO en la variable res tienes el valor devuelto por el ws
    }

14-enero-2013
admin

Crear un Web Service con WSDL en PHP utilizando NUSOAP

1 – Implementar el servicio web. Archivo servicioWsdl.php


	require_once("lib/nusoap.php");
	$ns="http://disastercode.com.es/ws/nusoap";
		
	$server = new soap_server();
	$server->configureWSDL('CalculadoraWSDL',$ns);
	$server->wsdl->schemaTargetNamespace=$ns;
	$server->register('getNombre',array('dni' => 'xsd:string'),array('return' => 'xsd:string'),$ns);
		
	function getNombre($aux){
		if($aux == '99999999N')
			return new soapval('return','xsd:string','Manolito Gafotas');
		return new soapval('return','xsd:string','');
	}
	
	$server->service($HTTP_RAW_POST_DATA);
?>

Comprobar que el wsdl se crea correctamente: http://disastercode.com.es/ws/servicioWsdl.php?wsdl

2 – Implementar un cliente de prueba. Archivo clienteWsdl.php


	require_once('lib/nusoap.php'); 

	$wsdl="http://disastercode.com.es/ws/servicioWsdl.php?wsdl";
	//$client=new soapclient($wsdl, 'wsdl'); //esto no funcionará si el servidor tiene habilitada la extensión SOAP para PHP
	$client=new nusoap_client($wsdl, 'wsdl');

	$param=array( 'dni'=>'99999999N' ); 
	echo "DNI: 99999999N; ".$client->call('getNombre', $param)."
"; $param=array( 'dni'=>'45654654P' ); echo "DNI: 45654654P; ".$client->call('getNombre', $param); ?>

Para probarlo: http://disastercode.com.es/ws/clienteWsdl.php

Fuente

11-enero-2013
admin

Crear un Web Service en PHP utilizando NUSOAP

¿Que es NuSOAP?
NuSOAP es un kit de herramientas (ToolKit) para desarrollar Web Services bajo el lenguaje PHP. Está compuesto por una serie de clases que nos harán mucho más fácil el desarrollo de Web Services. Provee soporte para el desarrollo de clientes (aquellos que consumen los Web Services) y de servidores (aquellos que los proveen). NuSOAP está basado en SOAP 1.1, WSDL 1.1 y HTTP 1.0/1.1

¿NuSOAP es el único soporte para Web Services en PHP?
No, no es el único, existen otros, pero es uno de los que están en una fase de desarrollo mucho más avanzada. Sin ir más lejos, PHP a partir de su versión 5 comienza a dar soporte para SOAP, pero aún está en fase experimental.

¿Por qué NuSOAP y no otro?
– Está en una fase madura de desarrollo.
– No necesita módulos adicionales.
– Es muy fácil su instalación y uso .

¿Cómo instalo NuSOAP?
La instalación es bastante sencilla, sólo basta ir a la pagina en sourceforge de NuSOAP http://sourceforge.net/projects/nusoap/ y bajar el archivo comprimido (es un .zip).
Lo descomprimimos en un directorio de nuestro servidor web (como puede ser /lib que es el directorio por default), y listo, ya podemos hacer uso de NuSOAP.

Ejemplo de uso

1 – Implementar la clase con contendrá las funciones que se desean utilizar. Archivo calculadora.php


    function calculadora($x, $y, $operacion){
		if($operacion == "suma")
			return $x + $y;
		else if($operacion == "suma")
			return $x + $y;
		else if($operacion == "resta")
			return $x - $y;
		else if($operacion == "multiplica")
			return $x * $y;
		else if($operacion == "divide")
			return $x / $y;
		return 0;
    }
?>

2 – Implementar el servicio web. Archivo servicio.php


	require_once('lib/nusoap.php');
	require_once('calculadora.php');
	 
	$server = new nusoap_server();
	$server->register('calculadora');
	 
	$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
	$server->service($HTTP_RAW_POST_DATA);
?>

Para probar, ver que no da errores: http://disastercode.com.es/ws/servicio.php

3 – Implementar un cliente de prueba. Archivo cliente.php


	require_once('lib/nusoap.php');
	$cliente = new nusoap_client('http://disastercode.com.es/ws/servicio.php');
	$resultado = $cliente->call('calculadora', array('x' => '3', 'y' => 4, 'operacion' => 'multiplica'));
	echo $resultado;
?>

Para probarlo: http://disastercode.com.es/ws/cliente.php

Fuente
Introduction to NuSOAP

10-enero-2013
admin

Temas gratuitos para WordPress

Listado de diferentes páginas donde se pueden encontrar temas gratuitos para utilizar con WordPress.

http://www.free-premium-wordpress-themes.com

http://www.freepremiumwordpressthemes.info


http://www.freewpthemes.co

http://freepremiumthemes.com

6-enero-2013
admin

Hola Mundo!! en Android con PhoneGap

  • Paso 1: Creación del proyecto inicial
    – Crear un proyecto normal para Android
    – Añadir al proyecto dos nuevos directorios: /libs y /assets/www
  • Paso 2: Añadir librerías para PhoneGap
    – Copiar cordova-2.2.0.js al directorio /assets/www
    – Copiar cordova-2.2.0.jar al directorio /libs. Añadir al Build Path del proyecto ésta nueva librería.
    (Se puede descargar de la página oficial de PhoneGap)
  • Paso 3: Crear la página html a mostrar
    – Añadir al directorio /assets/www un archivo index.html con un HolaMundo.
    – Debe contener:

     
    

  • Paso 4: Crear la actividad que lanza la página html
    package com.example;
     
    import android.app.Activity;
    import android.os.Bundle;
    import org.apache.cordova.*;
     
    public class MainActivity extends DroidGap{
        @Override
        public void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);
            super.loadUrl("file:///android_asset/www/index.html");
        }
    }
    

  • Paso 5: Modificar el AndroidManifest.xml
    Añadiendo:

    
         
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

  • Paso 6: Por ultimo crear el archivo /res/xml/plugins.xml
    
    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    
    

16-noviembre-2012
admin

Herramientas online para crear nubes de etiquetas

Si deseas crear una de esas nubes de etiquetas donde se muestran las palabras claves o los temas más populares de un sitio web o blog. Ahora puedes hacerlo de forma sencilla mediante diversas herramientas online que nos permiten crear la nube de tags sin mucho esfuerzo.

Por orden de preferencia:
Tagxedo – http://www.tagxedo.com/app.html (Pide instalar Silverlight)
TagCrowdhttp://tagcrowd.com/
Tagulhttp://tagul.com/
TagCanvas – http://www.goat1000.com/tagcanvas.php
Wordlehttp://www.wordle.net/
ToCloudhttp://www.tocloud.com/

14-noviembre-2012
admin

Plugin para el eclipse que genera aplicación automaticamente

Sotilizator

En GitHub he creado un repositorio donde comparto un plugin para el eclipse que he implementado y que facilita el desarrollo aplicaciones J2EE https://github.com/roberto-pf/Sotilizator. El plugin consigue implementar toda la lógica de negocio de una aplicación que utiliza: Struts + Spring + hibernate + JQuery.

Qué es el Sotilizator?
Se trata de un plugin para el eclipse (probado en su versión Helios). La finalidad de este plugin es la creación de una aplicación web de forma automática y con unas determinadas características a partir de un esquema de una Base de Datos.
Estas características son:
1 – La aplicación resultante estará realizada empleando un MVC en J2EE con Struts 1.3, inyección de dependencias con Spring 3.0, hibernate 3.2.6 para el acceso a datos para la parte de la lógica de negocio. Mientras que para la parte de la vista se empleará jquery junto a las tag-libraries de struts. Además, de DWR para interactuar con el servidor desde el cliente.
2 – Se generará un fichero pom.xml para que a través de MAVEN se puedan obtener las dependencias.
3 – Se generará un fichero build.xml donde estarán las tareas Ant necesarias para el despliegue de la aplicación en Tomcat, JBoss y OAS.
4 – La aplicación resultante será capaz de construir las tareas CRUD de las tablas automáticamente. A partir del esquema de la BD obtendrá los campos y su tipo.
5 – Las capas que contendrá la aplicación son las siguientes:

        VO: Objetos que hace referencias a las tablas.
	DAO: Capa que realiza el acceso a la BD. 
	Manager: Capa sobre la que se aplican las transacciones.
	Delegate: Capa que se encarga de relacionar la parte de la vista 
                  con la lógica de negocio.
	Action: Aquí deberán ir las diferentes acciones que luego el 
                controlador mapea para interactuar con la vista.

Esquema de la lógica de negocio

Nota: Para más información consultar manuales del usuario y del programador: https://github.com/roberto-pf/Sotilizator/tree/master/Readme

Páginas:«1...222324252627282930»

Categorias

Linkedin