Mahomedalid
simplemente la vida ... mahomedalid feed
revista urbana y cultural de tepic
Mostrando las entradas con la etiqueta ñoñocidades. Mostrar todas las entradas
Mostrando las entradas con la etiqueta ñoñocidades. Mostrar todas las entradas

viernes, mayo 22, 2009

Intel Star

No pude resistirme a copiarle este post a Josue's Blog. Aunque ahora no es copia, es un rollo 'viral'.

Jajja está simplemente genial:

martes, marzo 31, 2009

Los 0.88 centavos mágicos de la felicidad

Les voy a contar de un problema matemático que se presentó en el trabajo, curioso, cabe aclarar que no soy matemático.

Hay un sistema en el que existen transacciones, imaginen que por ejemplo, hay artículos en el OTSO que valen $50.40, digamos una pachita de Karat. Andale que nos dejan pagarla a cómodas mensualidades y llevamos pagados $49.52 pesotes. Pues ¡cuanto nos queda para poder obtenerla? 0.88 centavos.

Bueno, como sabrán, en México el IVA es de 15%. Entonces nos falta por pagar 0.88 centavos con ese 15% mágico incluido de IVA. ¿Cuanto desglosará el ticket del OTSO de IVA para esos .88 centavos?

Lo normal sería considerar que esa cantidad es en realidad el 115% del precio sin IVA. O sea que el precio original es de 0.76521 ..., ¿$0.77 o $0.76?. Según el redondeo hacía arriba sería de 0.76, pero vamos calculando las dos cantidades con IVA.

0.76 * 1.15 = 0.87
0.77 * 1.15 = 0.89

:S ¿y el .88?

Si se quedan debiendo 76 centavos tenemos que el IVA es de 11 centavos, cuya suma en total es de 87 centavos. Si se quedan debiendo 77 centavos tenemos que el IVA es de 12 centavos, cuya suma en total es de 89 centavos. ¿Qué hacemos? ¿Qué nos dirá el OTSO? ¿Y hacienda?

Misterios de la vida.

jueves, julio 13, 2006

Un Anillo para gobernarlas a todas

... las etiquetas SGML. :)

Así nace iTagHTML, un intento (en Innox) que junto con el uso de patTemplate va eliminando el para nosotros molesto uso de etiquetas html en php.

Su código es simple, y muy probablemente poco original, pero que funciona bien (hasta el momento ;)).

Primero definimos los blue prints que utilizaremos:


define("BLUE_PRINT_DEFAULT", "<@tag_name @parameters>@html");
define("BLUE_PRINT_SELF_CLOSE", "<@tag_name @parameters />");


Estos son los "planos" (de ahí Blue Print) de las etiquetas, vamos, metaetiquetas.

Y luego la definición de la clase...

class iTagHTML
{

var $_blue_print = NULL;
var $_tag_name = NULL;
var $_parameters = NULL;
var $_html = NULL;

function iTagHTML ( $tag_name
,$parameters = array()
,$html = NULL
,$blue_print = BLUE_PRINT_DEFAULT)
{
$this->setTagName($tag_name);
$this->setHTML($html);
$this->setParameters ($parameters);
}

function getParsedTag ( $tag_name,
$parameters = array(),
$html = NULL,
$blue_print = BLUE_PRINT_DEFAULT)
{
$tag = new iTagHTML($tag_name, $parameters, $html);
$tag->setBluePrint ($blue_print);
return $tag->parseTag ();
}

function setParameters ($parameters = array ())
{
if (is_array ($parameters)) {
$this->_parameters = $parameters;
}
}

function setTagName($tag_name)
{
$this->_tag_name = $tag_name;
}

function setHTML($html) {
$this->_html = $html;
}

function setBluePrint($blue_print)
{
$this->_blue_print = $blue_print;
}

function getParameters()
{
return $this->_parameters;
}

function getBluePrint()
{
return $this->_blue_print;
}

function getTagName()
{
return $this->_tag_name;
}

function getHTML()
{
return $this->_html;
}

function parseTag ()
{
$html = "";

if ($this->getBluePrint()) {
$parameters = "";
foreach ($this->getParameters() as $name => $value) {
if (!empty($value)) {
if (!empty($name)) {
$parameters .= " {$name}='{$value}'";
} else {
$parameters .= " $value ";
}
}
}
$replace_vars = array('@tag_name' => $this->getTagName(),
'@parameters' => $parameters,
'@html' => $this->getHTML());

$html = str_replace(array_keys($replace_vars)
,$replace_vars
,$this->getBluePrint());
}
return $html;
}

/**
* Ejemplo de un shortcut y uso de iTaHTML
*/

function img ($src, $alt, $parameters)
{
return iTagHTML::getParsedTag( 'img'
,array( 'src' => $src,
'alt' => $alt,
'' => $parameters)
, NULL
, BLUE_PRINT_SELF_CLOSE);
}
}


El código se explica por si mismo. ¡Listo! :) Se admiten sugerencias :P (Todo el código y mas shortcuts aquí)