»
S
I
D
E
B
A
R
«
PHP: De Array a XML en 44 Lineas.
Jun 4th, 2009 by Jose Salomon
<?php
/**********************************************************************
* Autor:    Jose Salomon                                              *
* Correo:   seoane81@gmail.com                                        *
* Twitter:  @josesalomon                                              *
*                                                                     *
* Descripcion: convertir un Array a un XML                            *
* Soporta atributos, y secuencias de elementos.                       *
*                                                                     *
***********************************************************************/

function arrayToXML($data, $xml = null, $node = null)
{
	$xml = ($xml === null)? new DOMDocument('1.0', 'utf-8'): $xml;

	foreach($data as $name => $value)
	{
		if (is_array($value)){
			//Creamos el nuevo elemento.
			$newElement = (isset($value['_value'])) ?
						$xml->createElement( $name , $value['_value']) :
						$newElement = $xml->createElement( $name );

			//Eliminamos _value del arreglo.
			unset($value['_value']);

			//Agregamos los atributos y lo eliminamos del arreglo
			if (isset($value['_attributes'])){
				foreach($value['_attributes'] as $attribute_name => $attribue_value){
					$newElement->setAttribute( $attribute_name, $attribue_value );
				}
				unset($value['_attributes']);
			}

			if ($value['_sequence']){
				foreach($value['_sequence'] as $potienter){
					arrayToXML($potienter, $xml, $newElement);
				}
			}else{
				arrayToXML($value, $xml, $newElement);
			}

			//Añadimos el elemento al DOM
			($node === null) ? $xml->appendChild( $newElement ) : $node->appendChild( $newElement );
		}
		else {
			//Creamos el nuevo elemento
			$newElement = $xml->createElement( $name , $value);
			//Añadimos el elemento al DOM
			($node === null) ? $xml->appendChild( $newElement ) : $node->appendChild( $newElement );
		}
	}

	return $xml;
}
/***********************************************************************/

//Un ejemplo de como se utiliza.

$data['Message']['_attributes']['version']= '1.5';
$data['Message']['_attributes']['xmlns']= 'http://www.josesalomon.com/messaging';
$data['Message']['Header']['To'] = 'mailto:SSSDIR.dp@josesalomon.com';
$data['Message']['Header']['From'] = 'seoane81@gmail.com';
$data['Message']['Header']['MessageID'] = '1';
$data['Message']['Header']['SendtTime'] = '';
$data['Message']['Header']['Security']['UsernameToken']['Username'] = '';
$data['Message']['Header']['Security']['UsernameToken']['Password']['_attributes']['Type'] = 'PasswordDigest';
$data['Message']['Header']['Security']['UsernameToken']['Password']['_value'] = 'Password encode 64';
$data['Message']['Header']['Security']['UsernameToken']['Nonce'] = '';
$data['Message']['Header']['Security']['UsernameToken']['Created'] = '';
$data['Message']['Body']['AddPrescriber']['Prescriber']['DirectoryInformation']['PortalID'] = '1';
$data['Message']['Body']['AddPrescriber']['Prescriber']['DirectoryInformation']['AccountID'] = '1';
$data['Message']['Body']['AddPrescriber']['Prescriber']['DirectoryInformation']['BackupPortalID'] = '-1';
$data['Message']['Body']['AddPrescriber']['Prescriber']['DirectoryInformation']['ServiceLevel'] = '3';
$data['Message']['Body']['AddPrescriber']['Prescriber']['DirectoryInformation']['ActiveStartTime'] = '2009-01-01 10:10:30';
$data['Message']['Body']['AddPrescriber']['Prescriber']['DirectoryInformation']['ActiveEndTime'] = '2009-01-01 10:10:30';
$data['Message']['Body']['AddPrescriber']['Prescriber']['Identification']['DEANumber'] = '1234567890';
$data['Message']['Body']['AddPrescriber']['Prescriber']['Name']['LastName'] = 'Seoane Garcia';
$data['Message']['Body']['AddPrescriber']['Prescriber']['Name']['FirstName'] = 'Jose Salomon';
$data['Message']['Body']['AddPrescriber']['Prescriber']['Address']['AddressLine1'] = 'Colonia';
$data['Message']['Body']['AddPrescriber']['Prescriber']['Address']['AddressLine2'] = 'Calle';
$data['Message']['Body']['AddPrescriber']['Prescriber']['Address']['City'] = 'Mexico';
$data['Message']['Body']['AddPrescriber']['Prescriber']['Address']['State'] = 'Distrito Federal';
$data['Message']['Body']['AddPrescriber']['Prescriber']['Address']['ZipCode'] = '86080';
$data['Message']['Body']['AddPrescriber']['Prescriber']['PhoneNumbers']['_sequence'][0]['Phone']['Number'] = '5555555555';
$data['Message']['Body']['AddPrescriber']['Prescriber']['PhoneNumbers']['_sequence'][0]['Phone']['Qualifer'] = 'FX';
$data['Message']['Body']['AddPrescriber']['Prescriber']['PhoneNumbers']['_sequence'][1]['Phone']['Number'] = '555555555';
$data['Message']['Body']['AddPrescriber']['Prescriber']['PhoneNumbers']['_sequence'][1]['Phone']['Qualifer'] = 'MX';

$dom = arrayToXML($data);
header( "content-type: application/xml; charset=UTF-8" );
echo $dom->saveXML();

?>
Optimización: Usabilidad en el Codigo
May 2nd, 2009 by Jose Salomon

Hola soy Jose Salomon, quisas me recuerdas en post como , como optimizar unos huevos rancheros, y optmizando mi TV.

No sabia como poner el POST, existe lo correcto y lo ideal.

El titulo correcto es: Usabilidad en el codigo. Pero eso no vende.

Lo ideal es: Enchulame mi codigo.

El codigo fuente, nos dice muchas cosas del programador.

Sabe programar, si es experimentado, metodico, ordenado, complicado, extrovertido, introvertido, divorciado, geek, genio, gay, etc.

Nombre de variables, sinceramente no tienen idea de lo importante que es por lo menos para mi escojer un nombre de variables, nombre de funciones y nombre metodos y objetos, siento que la usabilidad tambien tiene que estar implicita en el codigo. Y esa usabilidad te facilitara la vida a ti y los que trabajen con tu codigo.

Soy un freelance, y resulta que la unica forma de promocionarme es por medio de mi trabajo y para ser exactos es por medio de mi codigo fuente, que es lo que mis colabordores pueden ver de mi.

Asi que trato de dejar una buena impresion y servir de guia para aquellos que no tienen ni la mas minima idea sobre estandarizacion de codigo.

Vuelvo a recalcar soy totalmente autodidacta, si tu maestro te dice que estoy loco y que dejes de leer estos post que solo te llenan de malos abitos, no tengo ningun argumento para defenderme. Mas que vivo de esto y no me ha ido tan mal.

Primero recuerda siempre poner tus datos en los archivos que son de tu completa autoria.

Razones:

1.- Para que tengas un poco de verguenza.

2.- Para que la gente sepa de lo que tu eres capas.

3.- Por que generalmente, no estaras toda la vida hay para correjir los problemas y si en el futuro alguien necesita moverle algo al sistema, no dejaste ni un solo comentario, tengan forma de contactarte y decirte hey amigo te tengo un trabajo que solo tu puedes hacer. O te diga y te haces llamar programador, ya convenci a mi jefe que todo lo que hiciste no sirve para un carajo. Pero como sea ya habras cobrado toda la plata que le podias sacar a esa empresa asi que ya no es tu problema.

/*

*  Autor: José Salomón Seoane García  *

*  Email: seoane81@gmail.com                *

* Twitter: @josesalomon                             *

* Derechos Reservados: Duckling Soft           *

* Fecha: Hoy 2009-05-02                                *

*Description: Word Press Plugin                     *

*     Show in chronological order the post.   *

*/

Confesemoslo no somos buenos documentadores y no nacimos para hacerlo, pero que mejor que generar un codigo que se describa asi mismo y medio hacemos el trabajo de documentarlo.

Si soy flojo lo se lo acepto me declaro culpable, me gusta hacer cosas interesantes y desafiantes y andar describiendo todo lo que hago meda flojera, asi que no seas ojete piensa en el programador que vendra detras de ti, despues de que te corran por que borraste una base de datos por error, o se te subio el ego y pediste un aumento de sueldo, por lo menos el que venga detras de ti pensara que eres un buen programador y te agregara de perdis al twitter.

La meta es hacer un codigo que no necesite comentarios y se describe el mismo:

——————————————————————–

$documento = $Solution->factory('Document');

if ($document->loadById(1))
{
   echo "El documento existe";

   if ($document->isPdf())
   {
      echo "Es un pedf";
      //Lo que querramos hacer aqui don el PDF
   }
}
else
{
   echo "El documento no existe.";
}
-------------------------------------------
$reader = $Solution->factory('Reader');

if ($reader->isOn())
{
   echo "Yes the user is read in this moment.";

   //Great i have you attention

   if ($reader->understant())
   {
      echo "Please continu reading the post.";
      continue();
   }
   else
   {
      echo "User not understant the problem.";

      if ($Solution->saveMyTime() == 'YES')
      {
         echo "Please click in other post... Thanks...";
         exit();
      }
   }
}
-----------------------------------------

Puntos basicos (Estos los escribo no mas que tenga otro chance).

  • Ingles o español pero no espanglish.
  • Escoje una indentacion estandar y respetala.
  • Piensa en los nombres de Variables, Funciones y Clases,  (empezando en la DB).
  • Define una structura de archivos: configuracion, clases, Diseño, JS, CSS.
  • Adelantate a los errores, Valida en JS y PHP si a un que tede hueva me vale madres flojera.
Desarrollo Web en frases
May 2nd, 2009 by Jose Salomon

Resumen de algunas cosas que he aprendido en estos años:

  • Ser el mejor no sirve de mucho si no te sabes vender.
  • No es necesario ser el mejor, con saberlo aparentar es suficiente.
  • Si te preocupa el rendimiento piensa en la DB después en CODIGO y por ultimo en Servidor.
  • Calcula el tiempo de desarrollo pensando que trabajas 4 horas diarias.
  • Educar a los clientes es parte del trabajo.
  • Se desordenado en lo que quieras menos en el trabajo.
  • Más vale ser parte de un Éxito, que dueño de un fracaso.
  • Escoge bien a tus clientes, y a un mejor a tus socios.
  • No vale la pena hacer bien lo que para empezar no vale la pena hacer.
  • Lo correcto no siempre es lo mejor.
  • El código dice todo de ti.
  • Por mucho que te encante tu trabajo no dejes de cobrar lo que vale.

Los grandes proyectos están hechos por personas que saben hacer equipo, no importa que tan grande o pequeño seas, si no sabes sumar fuerzas, tu alcance es limitado.

Pena de muerte apunto de ser eliminada en EU.
Feb 25th, 2009 by Jose Salomon

Acabo de escuchar en la tele que la pena de muerte, está a punto de ser quitada en varios estados de la unión americana.

Y no fue por manifestaciones, ni por junta de firmas, ni por presión de los defensores de los derechos humanos, si no por la crisis económica, yo pensaba que la pena de muerte era la opción mas económica comparada con la cadena perpetua, pues bien no es así, resulta que cuando sentencian a muerte a alguien, la familia y muchas demás asociaciones comienzan a poner recursos legales para dificultar lo más posible que dicha orden tenga efecto, y en ese proceso cada pena de muerte al estado le sale por lo menos $500,000 USD a $3,000,000 USD. Y por la crisis decidieron ahorrar ese dinero, y quitar la pena de muerte.

Conclusiones:

  • La pena de muerte puede llegar hacer 10 veces mas cara que la cadena perpetua, no por el costo de la acción, si no por todos los tramites legales que conlleva hacerla.
  • La pena de muerte es un lujo que le gusta darse al gobierno.
  • Las razones económicas pesan más que la opinión de 2/3 de la población.

Mas información

Programación
Jan 28th, 2009 by Jose Salomon

Al momento de escribir este post tengo casi 9 años en la industria de software y 100% en internet.

Si me preguntan que es la programación, es el arte de solucionar problemas a través de la informática. Y la premisa de que siempre se puede mejorar el proceso hasta el infinito.

Donde la imaginación es nuestra materia prima y nuestros dedos la herramienta, capases de construir mundos virtuales, ayudar a la gente a prosperar y mejorar su calidad de vida, un esfuerzo por darles una forma de vida sencilla a ustedes, pero un estilo de vida complejo para nosotros los programadores.

Un programador se apasiona con lo que hace, necesitas disfrutar el crear y saber que estás haciendo herramientas útiles y necesarias.

Mi nombre es Jose Salomon y soy programador.
Jan 22nd, 2009 by Jose Salomon

Hola buen dia, mi nombre es Jose Salomon y este es mi blog.

Bien tiene tiempo que he querido hacer mi blog, y hoy es el dia que por fin lo veo en linea.

¿ Que puedes encontrar aqui.?

Por ser un blog personal puedes encontrar cualquier cosa. Pero supongo que los principales temas seran.

Programacion

Video juegos

PHP y MYSQL.

Solo me queda agregar que todo lo que se es por medio de el autodidactismo, no curse una universidad, no tengo buena hortografia. Pero are mi mejor esfuerzo por componerla ahora con el abito de escribr seguido.

No quiero ser un blogstar, por que no pienso escribir muy seguido, en cambio espero escribir cosas que puedan servirles, ya se en programacion o el tema que toque escribir, o solo para conocer un punto de vista mas sobre X tema.

Sin mas por el momento me despido esperando verlos en mi proximo post asta luego.

»  Substance: WordPress   »  Style: Ahren Ahimsa