Mostrando entradas con la etiqueta relax. Mostrar todas las entradas
Mostrando entradas con la etiqueta relax. Mostrar todas las entradas

7.9.11

¿Pachequés o flexo?

Disculpen el título. Nel, ni se que dije.

Bueno... aquí traigo otra de las cosas locas -y divertidas- que me laten de PHP, ya me dirán.
Trabajando un poco en un proyecto que tengo alojado en mi cuenta de GitHub quise darle la vuelta a un problema especifico: diseñar una API que fuese amigable y divertida a la vez, desde luego me refiero al lenguaje mismo y no más.

Así pues descubrí que dos conceptos pueden existir bajo el mismo nombre, y hablo en serio:

function foo()
{
}

class foo
{
}

¿Y que chingados con eso?

Pues eso, de alguna extraña forma php permite nombrar de la misma manera una función y/o clase. Esto evidentemente nos brinda la posibilidad de escribir una serie scripts de diversa índole bajo el mismo "namespace" o algo parecido.

Vamos a imaginar una librería para manejar sesiones:

session_start();

class session
{
  public static function fetch($item)
  {
    return $_SESSION[$item];
  }
  public static function assign($item, $value)
  {
    $_SESSION[$item] = $value;
  }
  public static function remove($item)
  {
    unset($_SESSION[$item]);
  }
}

function session($item, $value = NULL)
{
  if (func_num_args() === 1)
  {
    return session::fetch($item);
  }
  elseif (is_null($value))
  {
    session::remove($item);
  }
  else
  {
    session::assign($item, $value);
  }
}

En mi experiencia esto facilita las cosas de una forma sumamente agradable y consistente, si no me creen hagan la prueba.

¡Diviertanse!

3.9.11

Classy patch

Ahora que lo pienso no se si existe algo parecido a esto.

Diviertiendome pensé que sería divertido jugar con alguna otra cualidad de PHP. Hice un podo de research y no hallé al respecto así que me dedique a diseñar algo así.

// registramos el buen autoloader
spl_autoload_register(function($class)
{
  rescue($class);
});

// registramos filtros
function resolve(Closure $with = NULL)
{
  static $patch = array();


  if (func_num_args() === 0)
  {
    return $patch;
  }

  $patch []= $with;
}

// y los ejectuamos
function rescue($class)
{
 foreach (resolve() as $callback)
 {
   $callback($class);
 }
}

Si, es un sistema de autoload, sin embargo no es una convencional. Y tiene varias ventajas mas.

Pa' sonreír, ¿no?

31.8.11

Radical, un pensamiento natural

Lo que me fascina de los lenguajes es el potencial que tienen para mejorar nuestra concepción del pensamiento mismo. Cada día me sorprendo mas.

Pero hablemos al chile (y no hablo del país), yo no soy fanático ni mucho menos obsesivo con ningún lenguaje. Solo trato de ser justo y humano, al final todo es cuestión de gusto.

Aquí es donde entra el radicalismo, no me gusta la forma tradicional de programar ni 100% objetos, ni 100% funcional. Creo que una buena combinación de ambos es perfecta para mi: PHP

Cuando observamos Javascript no parece que todo fuera un objeto, pero así lo es. Así mismo pasa con Ruby, y así cualquiera se acostumbra. Ni hablar de JAVA. No lo uso ni de keyword...

Ando tratando de llevar todo lo que he aprendido al limite, explotando todos los medios para desarrollar algo loco, la verdad solo busco mas aprendizaje y no más. Si gustan revisen mi Github

Después de todo soy scripter, ya lo verán.

18.8.11

Nel pastel

Recién vagando por mi TL y en algún tema de @forosdelweb mo topé con éste enlace.
He visto cosas muy locas entre lenguajes, y una de las cosas que me gustan es la "negación infinita", si, ya se que suena raro pero así es.

$foo = TRUE;

if ( !!!!!!!!!!!!!!!!!!!!!!!! $foo)
{
  echo 'Damn.';
}

¿Saben lo que significa?
Como cuando te dicen "no digas nada", yo lo entiendo como un "not(say(null))" osea que me quedo igual, "dí algo", true.

function not($is)
{
  return !!! $is;
}

function say($something)
{
  return $something;
}

echo not(say(null)) ? 'algo' : 'nada';

La neta la primera vez que torcí un !! no entendía ni madres, sin embargo un poco de reflexión pachequera me aclaro las cosas, casi como leí en un tema acerca de lo siguiente (que en PHP, obviamente no es posible).

$a = 5;
$b = $a ++ 5; // Parse error: syntax error, unexpected T_LNUMBER in...

Lo que si, esto que dicen está chingón:

on PHP you can do this: if($a == $b) { echo "true"; } else { echo "false"; } : try to do that whith Python

No más chequen.

7.8.11

Consola carajo

No se de donde saque la idea pero creo que sí. Solo que no se si es legal poner una imagen en el post, me da igual. Mejor no pongo la imagen.

Bueno, la neta nunca había usado la consola de php.

Como fanático xubuntero que soy pues me late usar cualquier terminal de consola, y eventualmente cuando desarrollo ando usándola. Casi siempre.
Con PHP no me refiero a programar scripts para la consola, sino usarla para ejecutar código interactivamente.

A chinga, me dije. He pecado de pe#$&\!.

Pues ya, la primer consola interactiva que emplee fue irb de Ruby o alguna de Javascript, no me acuerdo.

En corto, primero un $ php --help | grep shell

  -a               Run as interactive shell

¡Papas!

3.8.11

WTF!

¿Que que pedo?
Okey, esta bien. Soy ese mero, un scripter común y corriente.

¿De que se trata todo eso?
Ni puta idea. Pero como me late la programeada voy a escribir de eso, sin censura.

Wey, ¿y si te atoran? No pus yo que, la neta chido el que me entienda, yo solo escribo porque que me pachequea.

Y mientras escribo esto fijo una regla semántica: aquellos términos que mi corrector de idioma en uso marque como mal escritos, dejaré como con énfasis.

Aquí el core, cosas que vengo escuchando mas a menudo, es scriptear un rato.
Si unos lo pueden hacer de forma profesional y casi dogmática, ¿por que no hacerlo al contrario pregunto me yo?

No más no se fijen de como escribo y parloteo, si se escribir bien, no mas me da hueva.