domingo, 16 de diciembre de 2012

Primer acercamiento php - xajax

Recientemente me puse a probar xajax para unas cosas que deseamos realizar en la empresa. Este es mi primera prueba. Lo primero que realice fue descargar de la pagina oficial de xajax la versión estándar. Luego en coloque dentro de una carpeta de pruebas la carpeta descomprimida de xajax. Ahora si algo de codigo. 1   xajax_prueba.php
2  
3  
4  
5  <?php
6  
7  
8  
9  
/*
10  
11    Funciones para el llamado desde la vista
12  
13  */
14  
15  

16  
17  
function myFunction($arg)
18  
19  {
20  
21  
 $newContent "Value of $arg: ".$arg;
22  
23  
 $objResponse = new xajaxResponse();
24  
25  
 $objResponse->assign("SomeElementId","innerHTML"$newContent);
26  
27  
 return $objResponse;
28  
29  }
30  
31  

32  
33  
function myFunction2()
34  
35  {
36  
37  
 $objResponse = new xajaxResponse();
38  
39  
 $objResponse->assign("SomeElementId","innerHTML""prueba");
40  
41  
 return $objResponse;
42  
43  }
44  
45  

46  
47  
48  
49  ?>
50  

51  Test2.php
52  
53  
54  
55  <?php
56  
57  
58  
59  
/*
60  
61  Recomendaciones:
62  
63  No dejar espacios en la parte inicial y final de las etiquetas <?php ? >
64  
65  En el llamado a la funcion ej. onclick=xajax_myFunction('Funciona'); no
66  
67  y no ej. onclick=myFunction('Funciona'); no
68  
69  */
70  
71  

72  
73  
//Incluimos la libreria del xajax
74  
75  
include "xajax/xajax_core/xajax.inc.php";
76  
77  

78  
79  
//Incluimos el archivo con las funciones a usar
80  
81  
include "xajax_prueba.php";
82  
83  

84  
85  
//Instanciamos un objeto ajax
86  
87  
$xajax = new xajax();
88  
89  

90  
91  
//Registrar el nombre de la funcion que deseamos usar
92  
93  //Se pueden registrar varias que tengan en el archivo que se incluyo previamente
94  
95  
$xajax->registerFunction("myFunction");
96  
97  

98  
99  
//Se maneja cualquiera request del xajax
100  
101  
$xajax->processRequest();
102  
103  

104  
105  
//Se escribe $xajax->printJavascript("xajax/"); en el head del html
106  
107  //para generar lo necesario del javascript
108  
109  

110  
111  
//En el div colocar el nombre del elemento al que le colocamos la respuesta del innerHTML
112  
113  //Call the function from a JavaScript event or function in your application
114  
115  

116  
117  ?>
118  

119  <head><?php  $xajax->printJavascript("xajax/"); ?></head>
120  
121  
122  
123  <div id="SomeElementId"></div>
124  
125  <button onclick="xajax_myFunction('Funciona');"></pre>
El archivo test2.php es el que llama al xajax_prueba.php .

domingo, 25 de noviembre de 2012

Faltan ingenieros y programadores bilingües - El Colombiano

Faltan ingenieros y programadores bilingües - El Colombiano


Una muy buena mirada al mundo de la programación en el país, solo una perqueña correción a la información suministrada: Steve Jobs nunca programó.

Como hacer web services con Zend

 
Zend es un Framework para el desarrollo en PHP, lo que permite el desarrollo de la estructura permítiendo el desarrollo de aplicaciones Modelo-Vista-Controlador. De una forma eficiente.

Lo primero que se debe hacer es instalar Zend Framework, se puede descargar de: http://www.zend.com/en/products/server/downloads hay varios blogs que muestran como hacer este proceso, algunos usan xampp o zend server. Los links los dejo al final.
  
Luego de tener instalado y probado el zend, pasamos a la creación de un web service y un consumidor. Para esto primero debemos entender un poco de que se trata esto. Los web services permiten de forma estandar la integración de aplicaciones web mediante el uso de SOAP, XML, WSDL, UDDI entre otros. Esto permite la interacción de diferentes tecnologias sin necesidad de que sean iguales. Los WSDL son usados como descripciones de los servicios de los servicios web, SOAP se ocupa de la transferencia de los datos y XML es usado para la descripcion de los datos.

Para este ejemplo no es necesario hacer toda la estructura MVC, solo tener la librerias necesarias.

Empecemos:

Vamos a utilizar el componente Zend_Soap que permite la creación de los web services. 
Nuestro ejemplo se divide en tres partes:
myws.php → Tiene la implementación de los métodos
ws.php → genera el wsdl
client.php → invoca el wsdl y llama a los métodos con parámetros válidos

Lo primero es crear en nuestro directorio htdocs una carpeta llamada testSOAP la cual contendrá nuestros tres archivos anteriores y nuestra carpeta Zend con las librerias.

Lo primero es crear los métodos del web services: myws.php

 
1    <?php
2       
3      
/**
4       * Web service methods
5       */
6      
class myws
7      
{  
8          
/**
9           * Get the add of two numbers
10           *
11           * @param   int  $one   The first number
12           * @param   int  $two   The second number
13           * @return  int
14           */
15          
public function sumita($one$two)
16          {
17              
$add $one+$two;
18       return 
$add;
19          }
20  
21          
/**
22           * Get the add of two numbers
23           *
24           * @param   int  $one   The first number
25           * @param   int  $two   The second number
26           * @return  string
27           */
28          
public function restica($one$two)
29          {
30              
$minus $one-$two;
31       return 
sprintf('%d - %d = %d',$one,$two,$minus);
32          }
33            
34          
/**
35           * Get the add of all the numbers of array
36           *
37           * @param   array  $numbers  Array with numbers
38           * @return  int
39           */
40          
public function vectoAdd($numbers)
41          {
42              foreach(
$numbers as $actual)
43       {     
44            
$val $val+$actual;               
45       }
46            return 
$val;
47          }               
48       }
49  
?>


 
Luego de tener listo esto, vamos a crear nuestro ws.php



1    <?php
2      require_once('myws.php');
3   
4      if (
$_SERVER['QUERY_STRING'] == 'wsdl'
5       {
6          require_once(
'/../Zend/Soap/AutoDiscover.php');
7   
8          
$auto = new Zend_Soap_AutoDiscover();
9          
$auto->setClass('myws');
10          
$auto->handle();
11      }
12      else 
13       {
14          require_once(
'Zend/Soap/Server.php');
15   
16          
$wsdl sprintf(
17              
'http://%s%s?wsdl',
18              
$_SERVER['HTTP_HOST'],
19              
$_SERVER['SCRIPT_NAME']
20          );
21   
22          
$soapServer = new Zend_Soap_Server($wsdl);
23          
$soapServer->setClass('myws');
24          
$soapServer->handle();
25      }     
26  
?>


Ahora por último creamos el cliente al que llamaremos en el navegador: localhost/testWS/client.php

1   <?php
2      
require_once('Zend/Soap/Client.php');
3   
4       
$url 'http://localhost/testSOAP/ws.php?wsdl';
5   
6              
$client = new Zend_Soap_Client($url);
7  
8       echo 
$client->sumita(3,27);
9       echo 
"<br />\n";
10       echo 
$client->restica(10,3);
11       echo 
"<br />\n";
12       
$vect = array(3,2,5,1,5);
13       echo 
$client->vectoAdd($vect);
14  
?>



Para comprobar que todo funcione de manera correcta, primeros lanzamos:
http://localhost/testSOAP/ws.php?wsdl el cual en el navagador nos debe mostrar el wsdl que tiene la descripción de los servicios del web services.





-->
Asi pues vemos como construir un web services y su consumidor.
Links:

 

Como conectar Oracle con PHP


1. Instalar Oracle, PHP o zend server
2. crear BD en Oracle y tener el tsnames.ora
3. script php:

error_reporting (E_ALL);
$tnsName     = '//tnsNamedelaBD';  
$username     = 'usuario';
$password     = 'contraseña';
$conector = oci_connect($username, $password, $tnsName);

if (!$conector) 
{
      $e = oci_error();
echo 'Falla la conexión:'.htmlentities($e['message']);
} else 
{
    echo 'Conecto OK!';
    oci_close($conector);
}
?>

lunes, 12 de noviembre de 2012

Calabazas electrónicas Halloween 2012

Con los compañeros de la empresa nos pusimos en la tarea de crear nuestras calabazas para adornar nuestros respectivos lugares de trabajo para el Halloween 2012. 

El resultado :


sábado, 20 de octubre de 2012

Nuevas monedas Colombianas



Estas son los nuevos formatos de las monedas de 500, 200, 100 y 50 pesos que circulan en el mercado colombiano  y el  retorno de la momeda de 1000 pesos que había desaparecido debido a su facilidad para su falsificación.

domingo, 14 de octubre de 2012

COLCOM 2013 - IEEE Colombian Conference on Communications and Computer

Invitación: CALL FOR PAPERS

COLCOM 2013 - IEEE Colombian Conference on Communications and Computer
Mayo 22 al 24 de 2013, Medellín, Colombia
Página del evento: http://ieee-colcom.org/


Apreciados integrantes IEEE Colombia, 

El presente es con el fin de invitarlos a enviar sus trabajos, artículos a la 6ta Conferencia Colombiana de Comunicaciones y Computación (COLCOM 2013 - IEEE Colombian Conference on Communications and Computer). COLCOM 2013 es la conferencia IEEE más importante en Colombia que busca mostrar los avances y desarrollos de la comunidad académica, científica e industrial en las diferentes áreas de las telecomunicaciones y la computación. En esta versión el tema principal son “TIC para el desarrollo”, las Tecnologías de la Información y la Comunicación – TIC – son consideradas el motor impulsor del desarrollo de una región o país, permitiendo disminuir la brecha digital. Para lograr esto se hace necesario ampliar la cobertura de las redes de transporte y acceso y proveer servicios y aplicaciones que permitan acercar la tecnología cada vez más a la sociedad. Motivamos la presentación de trabajos técnicos, especialmente en temas relacionados con este tema.

Los trabajos serán revisados por un comité técnico internacional de acuerdo con el procedimiento estándar de IEEE. Los trabajos aceptados serán presentados en sesiones orales y serán publicados en las memorias de la conferencia (base de datos IEEExplore, incluyendo ISBN).
 

Temas de interés (Topics of interest)
 
Los temas de interés son los siguientes (aunque no limitados):

TIC sostenibles y eficiencia energética
Smart grids
Arquitecturas y modelos
Seguridad de información en Smart grids
Pruebas y experiencias de implementación
Integración de Smart grids a las redes actuales

Aplicaciones TIC para el desarrollo de las regiones
Atención de desastres
E-salud, E-commerce, E-health
Internet of things
Software de comunicación, servicios y aplicaciones multimedia
Técnicas de simulación
Modelamiento de redes

Próxima generación de redes e internet
Redes inalámbricas y cableadas
Comunicaciones y seguridad de la información
Switching and routing 
Redes de fibra óptica y de alta velocidad
Redes de acceso
Internet del futuro
Sistemas de comunicación y procesamiento de señales 
Diseños cross-layer
QoS 
 
Envío de trabajos
Los artículos deben ser originales y enviados en versión digital (formato PDF), usando el enlace respectivo en este sitio web. Los artículos deben tener el formato estándar de doble columna para conferencia de IEEE. Se permite un máximo de seis (6) páginas por artículo (en fuente de 10 puntos), incluyendo las ilustraciones y referencias. Si el artículo está escrito en español, el título y resumen (abstract) deben estar en inglés, para poder incluir el artículo en la base de datos IEEExplore.

Fechas importantes
Fecha límite para recepción de artículos: 29 de Marzo de 2013
Notificación de aceptación: 20 de Abril de 2013
Fecha límite de artículo definitivo: 27 de Abril de 2013

JS -2: Tricks and tips

El objecto global de JS es el window. una varaible vive dependiendo de su scope.