Buscando artículos sobre " Programación"
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

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
    
    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    
    

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

4-septiembre-2012
admin

Trunk, Branch y Tag

Los tres son los conceptos principales a manejar a la hora de utilizar un sistema de control de versiones, como CVS, Subversion,…

Trunk (tronco): es la línea principal de desarrollo, donde se llevan a cabo los cambios menos complejos del día a día. Idealmente debería poder compilarse y pasar todas las pruebas en todo momento (ver Integración continua).

Branch (rama): cuando se van a llevar a cabo cambios importantes que romperán la compilación, pruebas, experimentos o intentos de optimización, debe crearse una nueva rama de desarrollo, con la que no molestemos a los compañeros, esto es un branch: una copia del código o la rama de la que deriva. En esta copia haremos nuestros cambios, integraremos los arreglos que puedan haberse ido haciendo en el trunk, y, una vez terminado el desarrollo en la rama, integraremos (o no) los cambios en el trunk. También puede crearse una rama para una versión terminada, hacer mantenimiento de esta versión sobre esta rama, y continuar el desarrollo de la nueva versión en el trunk.

Tag (etiqueta): etiquetas que sirven para identificar un cierto momento en el desarrollo que queremos preservar. Se utilizan habitualmente para marcar cambios de versión (alfas, betas, RC, RTM) y puntos de interés. Sobre un tag no se puede / no se debe hacer cambios

Fuente

8-agosto-2012
admin

Crear un select multiple con checkbox . Utilizando JQuery.

.multiselect {
    width:20em;
    height:15em;
    border:solid 1px #c0c0c0;
    overflow:auto;
}
 
.multiselect label {
    display:block;
}
 
.multiselect-on {
    color:#ffffff;
    background-color:#000099;
}

jQuery.fn.multiselect = function() {
    $(this).each(function() {
        var checkboxes = $(this).find("input:checkbox");
        checkboxes.each(function() {
            var checkbox = $(this);
            // Highlight pre-selected checkboxes
            if (checkbox.attr("checked"))
                checkbox.parent().addClass("multiselect-on");
 
            // Highlight checkboxes that the user selects
            checkbox.click(function() {
                if (checkbox.attr("checked"))
                    checkbox.parent().addClass("multiselect-on");
                else
                    checkbox.parent().removeClass("multiselect-on");
            });
        });
    });
};

$(".multiselect").multiselect();

Fuente

10-junio-2012
admin

Elementos y atributos nuevos para formularios con HTML 5

En HTML 5 se han añadido nuevos elementos para emplear en los formularios. Éstos presentan nuevas funcionalidades, A continuación, se muestra un listado con los distintos types que se pueden usar en formularios con HTML 5:

text – Para introducir texto, simplemente.
search – Específico para input en un buscador.
url – Específico para direcciones de página web. Requiere http:// o http: simplemente.
tel – Se supone que para números de teléfono aunque no he conseguido que haga nada.
email – El nombre lo dice.
password – Escribe el contenido en asteriscos.
date – Para introducir un fecha (mes, día y año).
time – Para introducir una hora en formato 24 horas (horas, minutos y segundos).
datetime – Para introducir fecha y hora.
datetime-local – Igual que el anterior pero sin posibilidad de indicar zona horaria, ya que se entiende que es la local.
month – Para indicar el mes de un año.
week – Para indicar una semana de un año.
number – Específico para numeros.
range – Sale una barra para elegir un número entre un rango, el número hay que indicarlo entre un min=»10″ y un max=»12″ (los números son de ejemplo.)
checkbox – Para seleccionar y deseleccionar.
radio button – Para seleccionar, uno obligatorio.
color – Para seleccionar colores.

Nuevos atributos de HTML 5:
– Los elementos de fecha y hora permiten atributos max y min. Para indicar fecha/hora máxima y mínima.
Required que nos permite indicarle al formulario que ese campo es obligatorio.
Placeholder permite introducir un texto de ejemplo en el cuadro de texto. De esta forma se da a entender como tiene que ser el formato de lo que se introduce.
List nos permite asociar una lista a un cuadro de texto. El valor de este atributo list, debe coincidir con el identificador de una lista definida con una etiqueta datalist (esta etiqueta también es nueva en HTML 5. El resultado es un efecto muy parecido a un select pero con las ventajas de un text.
Autofocus hace que un determinado elemento tome el foco.

Cómo se ve, se pueden validar formularios sin ningún esfuerzo y sin necesidad de javascript. Ya que se encarga de realizar la validación el propio formulario. Incluso se pueden añadir funcionalidades con css en función de si se ha rellenado correctamente o no. Tal que así:


Este codigo modifica los colores de todos los input, que se encuentran dentro de un form cuyo id es «idForm», cuando son válidos o inválidos.

7-junio-2012
admin

Utilizar tags de HTML 5 en navegadores que no los soportan.

Para que funcionen las tags de html 5 en navegadores que no lo soportan (p.e. internet explorer 8 y anteriores). Basta con añadir el siguiente fragmento de javascript:

< script type="text/javascript">
   document.createElement("nav");
   document.createElement("header");
   document.createElement("footer");
   document.createElement("section");
   document.createElement("article");
   document.createElement("aside");
   document.createElement("hgroup");
< /script>

Además, se debe añadir la siguiente regla en la hoja de estilos.

nav, header, footer, section, article, aside, hgroup{
    display: block;
}

Páginas:«1...89101112131415»

Categorias

Linkedin