Crear un Web Service en PHP utilizando el Toolkit de NuSOAP

Lo primero que debes saber es que NuSOAP es una reescritura de SOAPx4, proporcionada por NuSphere y Dietrich Ayala. Se trata de un conjunto de clases PHP – no se requieren instalar  extensiones de PHP adicionales. NuSOAP permiten a los desarrolladores crear y consumir servicios web basados ​​en SOAP 1.1, WSDL 1.1 y HTTP 1.0/1.1.

Algunos términos importantes que debes saber:

Web Service es un tecnología diseñada para soportar e intercambiar datos entre aplicaciones , la interoperabilidad de máquina a máquina a través de una red. Distintas aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos en redes de ordenadores como Internet. Este tiene una interfaz descripta en un formato que puede ser procesado por una máquina (específicamente WSDL, que veremos más adelante). Otros sistemas interactúan con el Web service utilizando mensajes SOAP los cuales se encuentran establecidos previamente.

SOAP – Simple Object Access Protocol es un protocolo de comunicación, el cual permite la comunicación entre aplicaciones a través de mensajes por medio de Internet. Es independiente de la plataforma, y del lenguaje. Esta basado en XML y es la base principal de los Web Services. Los mensajes SOAP son documento XML propiamente dicho

WSDL – Web Services Description Language es el lenguaje de la interfaz pública para los servicios Web. Es una descripción basada en XML de los requisitos funcionales necesarios para establecer una comunicación con los servicios Web. Podriamos decir que es el “manual de operación del web service“, porque nos indica cuales son las interfaces que provee el Servicio Web y los tipos de datos necesarios para la utilización del mismo.

Ejemplo de como construir el Web Service ( del lado del servidor,  como proveedor del servicio)

Referencias bibliográficas:

  • http://sourceforge.net/projects/nusoap/
  • http://nusoap.sourceforge.net/ ( para descargar el toolkit)
  • http://beeznest.wordpress.com/2009/03/16/servicios-web-con-php-utilizando-la-herramienta-nusoap/
  • http://es.wikipedia.org/wiki/Servicio_web

 

Analizar la plantilla de correo electrónico

Muchas veces que construimos aplicaciones topamos con la suerte de que nuestro sistema debe generar y construir notificaciones a los usuarios y/o clientes, y el asunto se complica más, cuando nuestro cliente solicita que la notificación se envíe en forma “bonita“, y nos dice: “Yo quiero que el sistema notifique a los clientes, pero que a su correo llegue en formato HTML, algo bien elaborado…bien bonito….“, es aquí  cuando empezamos a quebrarnos la cabeza porque nuestro código HTML es clasificado como spam, y por lógica muchas de las notificaciones no llegan a su destino, empiezan los dolores de cabeza y quejas de nuestros clientes porque el sistema “supuestamente” está fallando.

Para evitar este tipo de inconvenientes es importante saber algunos tips, como por ejemplo que nuestro correo salga autenticado y muy importante validar nuestra estructura HTML, adicional a la estructura HTML agregar en texto plano el contenido, entre otros tips.

Aquí les dejo una herramienta excelente para analizar lo mencionado; y otras estadísticas que muestra la herramienta muy interesantes:

http://www.mail-tester.com/ 

Al principio parece confuso, pero es simple, tomas la dirección electrónica que te da el sitio web, envías tu correo electrónico a esa dirección, y por último presionas el botón de “THEN CHECK YOUR SCORE“, ahí obtendrás el resultado y cosas interesantes que no sabías estaban ocurriendo y por esas razones los correos no llegaban a su destino.

Validador de Web Service WSDL – SOAP

Aquí les dejo una excelente herramienta que me pasó un colega para probar nuestros Web Services que programamos a diario.

El validador construye el objeto y los métodos/funciones de nuestro web service y solicita los datos/parámetros de la función.

http://www.validwsdl.com

http://www.wsdl-analyzer.com/

Ejemplo de phpmailer

PHPMailer es una clase elaborada en PHP que proporciona un conjunto de funciones para enviar correo electrónico. Las dos características principales es enviar correo electrónico en formato HTML y mensajes de correo electrónico con archivos adjuntos, entre otras funcionalidades adicionales. PHPMailer soporta casi todas posibilidades para enviar correo electrónico: mail (), Sendmail, qmail y directa con el servidor SMTP, también soporta el envio de correo autenticado con una configuracion básica en sus atributos  y/o métodos que proporciona la clase.Usted puede utilizar alguna de las funciones de correo electrónico basado en SMTP, múltiples recepients vía para, CC, BCC, etc

En resumen: PHPMailer es una forma eficiente para enviar e-mail dentro de PHP.

<?php
require("class.phpmailer.php");
$mail = new PHPMailer();$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "smtp1.example.com";
$mail->SMTPAuth = true;
$mail->Username = 'usuario-smtp';
$mail->Password = 'clave-usuario-smtp';

$mail->From="correo-origen@midominio.com";
$mail->FromName="nombre del Origen";
$mail->Sender="correo-origen@midominio.com";
$mail->AddReplyTo("replies@midominio.com", "Responder a....");

$mail->AddAddress("email@example.com"); ### Destinatario....
$mail->AddAddress("email2@example.com"); ### Mas Destinatarios....
$mail->AddAddress("email3@example.com"); ### Mas Destinatarios....

$mail->Subject = "Titulo del Correo";

$mail->IsHTML(true);
$mail->AddEmbeddedImage('logo.jpg', 'logoimg', 'logo.jpg'); // Adjuntar imagenes, recuerda colocar la ruta absoluta de la imagen donde esta almacenada en su servidor.
$mail->Body = "<h1>CONTENIDO HTML DE MI CORREO</h1>
    <p>Esto es una imagen: <img src=\"cid:logoimg\" /></p>";
$mail->AltBody="CONTENIDO ALTERNATIVO EN Texto Plano";

if(!$mail->Send()){
   echo "Error sending: " . $mail->ErrorInfo;;
}else{
   echo "Letter is sent";
}
?>

 

Código para CheckAll & UncheckAll CheckBox Jquery

Aquí les dejo un código para cuando requieres seleccionar todos los checks que tienes en el formulario y deschequearlos. Es un código sencillo y genérico, recuerda que tambien hay muchas formas de hacerlo funcionar. La que  posteo aquí es una de muchas.

Código HTML

<a class="excluir" onclick="$(this).check_all();" href="javascript:void(0);">Todos</a>

<a class="excluir" onclick="$(this).un_check_all();" href="javascript:void(0);">Ninguno</a>

Código jquery:

    jQuery.fn.check_all = function(){
        $(':input[type=checkbox]').each(function () {
                $(this).attr('checked', 'checked');
        });
        return false;
    }

    jQuery.fn.un_check_all = function(){
        $(':input[type=checkbox]').each(function () {
            $(this).attr('checked', false);
        });
        return false;
    }      
});

¿Por qué es necesario dar prioridad al diseño Adaptativo ” Web Responsive” Ahora! ?

Responsive DesignWeb Sites adaptativos conocido como “Diseño Responsive”  es el tema de moda para el 2013 -2014

Nos hemos ido más allá de la tecnología  móvil y finalmente hemos llegado al punto en el que las empresas están aceptando el hecho de que el mejor retorno de la inversión ROI proviene de los programas de marketing totalmente integrados.

Es difícil de integrar por completo cuando su sitio web es un lío complicado de versiones para diferentes dispositivos o peor aún, una sola versión que hace mal en diferentes dispositivos.

En en el caso para Web Sites adaptativos  se ha dejado claro, y el diseño de páginas web sensibles incluso se hizo saber en la lista de control de marketing/mercadeo de comercio electrónico para el año 2013 . Sin embargo, las empresas siguen siendo lentas para invertir el tiempo y dinero en el desarrollo necesario para convertir sus sitios web anticuados en sitios web adaptativos  o “Responsives” que hacen a la perfección sin importar el dispositivo que una persona está utilizando.

Es el momento de priorizar el diseño adaptativo en su presupuesto. Para saber por qué, hablé con Jody Resnick, director general de Trighton Interactivo , una agencia digital de servicio completo que se centra en gran medida en el diseño web adaptativos.

Resnick explica: "Con un sitio web “Responsive”, las empresas pueden estar al frente de los consumidores en cada etapa de su viaje en línea. Las personas que buscan un sitio de negocios ', comienzan a leer el contenido y ver videos desde sus computadoras de escritorio en el trabajo, y luego buscar el mismo negocio en sus teléfonos inteligentes durante el almuerzo son capaces de continuar su investigación en productos y servicios ininterrumpidos.

"Por el contrario, si la empresa tiene un sitio web tradicional y un sitio móvil, alguien que investiga o busca productos y servicios en línea puede llegar a frustrarse por la falta de contenido completo en el sitio móvil o la imposibilidad de navegar por el sitio completo en su teléfono inteligente. Por lo que podría abandonar la búsqueda del todo ", advierte Resnick.

"Sitios Web Responsive” proporcionan continuidad entre diferentes contextos de visualización, dejando completamente agnóstico para el tipo de dispositivo utilizado y el tamaño de la pantalla que se tiene. Lo que esto significa es que el mismo sitio web presentará un diseño optimizado, independientemente del dispositivo que se encuentra utilizando"

Una versión móvil de su sitio web no es lo suficientemente bueno

Es importante entender que el tener una versión móvil de su sitio web no es suficiente. Resnick dice, "sitios web Responsive simplifican la comercialización del Internet y SEO (Search Engine Optimization). En lugar de tener que desarrollar y gestionar contenido para varios sitios Web, las empresas con sitios Responsive pueden tomar un enfoque unificado para la gestión de contenidos, ya que sólo tienen un sitio a gestionar. Lo mismo sucede con el análisis y desarrollo de estrategias y la implementación. Un sitio web de respuesta significa que sólo hay una serie de análisis para examinar y una estrategia única para desarrollar y desplegar.

"Además, los sitios web de responsive son más fáciles para los consumidores encontrar que los sitios tradicionales o móviles porque vienen más arriba en el ranking motores de búsqueda", explica Resnick. "De hecho Google recomienda el diseño web responsive porque tiene una única dirección URL para el escritorio y sitios móviles hace que es más fácil para Google para descubrir contenido y de los algoritmos de Google para asignar propiedades de indización de contenido. "

Diseño de adaptativo "Responsive" en el Futuro

Tenga en cuenta, el diseño de Web Sites adaptativos  se encuentra todavía en su infancia, y el futuro parece muy brillante. "Hay un montón de cosas interesantes que vienen con el diseño responsive", dice Resnick. "Ya se está utilizando elementos de diseño responsive en las aplicaciones web, y los desarrolladores están explorando nuevas áreas de diseño al probar un gran número de integraciones que ya están disponibles."

Resnick predice, "A medida que Internet se transforma más en una plataforma de servicios e interfaces de usuario que se vinculan como servicios juntos, aprovechando esta tecnología en el futuro permitirá a las empresas integrar una gran cantidad de servicios de back-end, tales como , Twitter, Salesforce.com y Amazon Web Services, y luego presentar los datos integrados publicados en la capa front-end “parte publica” en un diseño de aplicación que se ve muy bien en todos los dispositivos sin necesidad de programación personalizada necesaria para cada dispositivo o tamaño de pantalla. Ya no son costosas las soluciones de back-end ó Administrativas necesarios para integrar sistemas heredados con socios de negocios ".

Una cosa es segura, usted no quiere quedarse atrás y ver a sus competidores lanzar sitios web adaptativos mientras que el suyo todavía se ha quedado atascado en el año 2010 (o anterior). El tiempo para llegar al diseño Web responsivo es ahora.

Fuente original: http://www.forbes.com/sites/work-in-progress/2013/03/26/why-you-need-to-prioritize-responsive-design-right-now/

 

 

 

Como obtener el primer y último día de una semana específica – SQL MySQL

Hola, un compañero de Trabajo ( Francisco Jiménez) realizó el siguiente aporte y me pareció interesanta compartirlo:

SQL para obtener el primer y último día de una semana específica:


[php]
SET @dia = ‘2013-10-26’;
SELECT WEEKOFYEAR(@dia),
DATE_FORMAT(@dia,"%Y-%m-%d") AS "Fecha",
CONCAT(ELT(WEEKDAY(@dia) + 1, ‘Lunes’, ‘Martes’, ‘Miercoles’, ‘Juevez’, ‘Viernes’, ‘Sabado’, ‘Domingo’)) AS "DiaSemana",
CONCAT(ELT(MONTH(@dia), ‘Enero’, ‘Febrero’, ‘Marzo’, ‘Abril’, ‘Mayo’, ‘Junio’, ‘Julio’, ‘Agosto’, ‘Septiembre’, ‘Octubre’, ‘Noviembre’, ‘Diciembre’)) AS "Mes",
DAYOFWEEK(@dia) AS "numDiaSemana", DATE_ADD(@dia, INTERVAL -(DAYOFWEEK(@dia)-1) DAY) AS "primerDiaSemana",
DATE_ADD(@dia, INTERVAL (7-DAYOFWEEK(@dia)) DAY) AS "ultimoDiaSemana"
[/php]

Espero que les pueda ser útil.

Sobre Business Process Management- BPM

A medida que las organizaciones y/o empresas crecen los procesos de negocio se vuelven más complejos, muchos flujos de trabajo se vuelven articulados, las actividades y tareas se vuelven más diversas y difíciles de controlar, sin antes mencionar que todo lo anterior está relacionado con papeleo excesivo, agendas desordenadas, tiempos de entrega de servicios o productos tardíos.

Es aquí cuando debemos realizar un "stop", y tratar de organizar nuestro "WorkFlow" para eliminar en lo posible, todo "error humano" que nos ocasione inconvenientes en nuestros procesos de negocio.

Actualmente existen herramientas licenciadas "debes comprarlas", y otras bajo el concepto de "Open-Source" ó  código abierto que le pueden ayudar a estandarizar y normalizar en un trabajo lineal, todo ese flujo que el proceso de negocio como lo puede ser una "labor de venta", de "Seguimiento al cliente", de "Producción", entre otras actividades estén desordenadas.

Estas herramientas se conocen bajo el concepto de BPM Business Process Management, aquí les dejo de referencia 3 herramientas bastante interesantes que les puede servir para lo comentado anteriormente.

Bonitasoft | Open Source Workflow & BPM software

Webmin – Herramienta de administración para Linux

En el siguiente artículo les comparto una herramienta para la administración  de linux en un ambiente CentOS 6.

Webmin es una fenomenal herramienta Web para la administración de ambientes linux, cuando en algunas ocasiones eres principiante y tienes a cargo la configuración e instalacion de paquetes sobre estos ambientes, y en algunas ocasiones me ha ayudado a solventar algunos problemas que para ser sincero no he podido resolver por consola “La famosa pantallita negra”  que todos conocemos.

Webmin puedes descargarlo e instalarlo del siguiente url, una ves que este como root, dentro de tu consola shell.

Debes descargarlo como se ve en la siguiente imagen:

shell: wget http://prdownloads.sourceforge.net/webadmin/webmin-1.620-1.noarch.rpm

y luego para instalarlo unicamente ejecutas el siguiente comando:

shell: rpm -U webmin-1.620-1.noarch.rpm

Para ingresar al panel de control basta con escribir tu direccion web: htttp://www.dominio.com:10000 (ojo!) que si no puedes ingresar, debes modificar tu archivo iptables con las siguientes instrucciones:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 10000 -j ACCEPT
 -A INPUT -m state --state NEW -m udp -p udp --dport 10000 -j ACCEPT

Listo!

Tu panel Webmin debe ver segun la verision que instales algo asi:

Soluciones en la Nube

Hoy por hoy, las soluciones informáticas han cambiado hacia un nuevo paradigma, el "Cloud Computing" por su término en inglés o "Soluciones en la Nube" en castellano; nos abre una nueva ventana para poder designar hacia un nuevo modelo de prestación de servicios de negocio de tecnología a través de internet.

La soluciones en la Nube permiten acceder a un catalogo de servicios estandarizados y responder a las necesidades de su negocio, de forma flexible y adaptativa, pagando unicamente por el consumo efectuado.

¿Qué posibilidades ofrece las soluciones en la nube?

Muchas diría yo!; desde la perspectiva de tecnologia, pero entre ellas puedo citar algunas:

  1. Productividad y Colaboración
  2. Acceso desde cualquier lugar e instantáneo a todos los datos compartidos.
  3. Multiplataforma a esto me refiero basicamente a un aspecto de accesibilidad ( PC, Telefono, IPAD, Navegador, Tablets, entre otros).
  4. Compatible con herramientas interesantes y conocidas por los buscadores.

Luego, estaré  hablando de los modelos de servicios entre ellos: SaaS, PaaS, IaaS.

Le dejo un video de una explicación bastante gráfica e interesante que encontré "googleando", el video especifica sobre las ventajas de un ERP en la Nube, que luego estaré haciendo un aporte sobre los ERP y algunas alternativas OpenSource.


Las ventajas del ERP en la nube Explania