Contructores múltiples en Python y PHP

python y php

Mae mía, ni en python 2.6.x ni en php 5.x se pueden escribir clases con contructores multiples, como se hace con toda normalidad en C# por ejemplo. Hace tiempo pensé un par de trucos parecidos para cuando estoy con lenguajes con esta particularidad y que me gustaría compartir, pero vamos que hay mil formas de hacerlo.

Python:

class Clase():
_id=None</code>

def __init__(self,*args):
if len(args) != 1:
if isinstance(args[0], str):
self.__constructor_uno (int(args[0]))
else:
self.__constructor_dos()

def __constructor_uno(self, id):
self._id=id

def __constructor_dos(self):
self._id=0

PHP:

class Clase {</code>

private $id;

function __construct() {
$args = func_get_args();
$nargs = func_num_args();
switch($nargs) {
case 1:
self::__constructor_uno($args[0]);
break;
case 2:
self::__constructor_dos();
break;
}
}

function __constructor_uno($get) {
$id=$get;
}

function __constructor_dos() {
$id=0;
}
}

Bitácora sobre NetSurvibox y sus nuevos modelos

Para todo aquellos que trabajen con los legendarios routers/firewall de IronGate, NetSurvibox266, deciros que hay una bitácora nueva sobre esta familia de dispositivos, igseguridadyredes.com. Y digo familia porque recientemente la han ampliado con dos modelos nuevos, el NetSurvibox 400 y el 667. He tenido la suerte de probarlos y son una maravilla, de hecho tengo un 400 en el salón ;-)

El 667 es el hermano mayor del NSB400. Ofrece las mismas características, pero su procesador funciona a 667 Mhz, y  tiene 256MB de RAM, aumentando el rendimiento y las prestaciones (más túneles VPN).

Se trata de un router ideado para la seguridad en la red de las PYMES, actuando como firewall, antivirus  (POP3) y filtrador de contenidos web. Ofrece una interfaz muy sencilla (similar a la del NSB266) basada  en objetos con la que podrás activar/desactivar dichos servicios de la forma más cómoda y rápida posible.

Dispone de 5 puertos de RJ-45 (4 de LAN en switch y 1 de WAN), y permite la posibilidad de añadirle (se vende por separado)  un módulo de ADSL2+ y una tarjeta minipci para conexiones Wireless (se vende por separado), compatible con los estándares de red inalámbricos 802.11 b/g/n, con la que pueden crearse dos redes inalámbricas distintas (por ejemplo, una de hogar y otra de trabajo), lo que supone una plataforma ideal para teletrabajo.

Con este dispositivo se pueden configurar hasta 40 VPNs, estáticas y/o dinámicas.

Dispone de brazos para montarlo en un armario de telecomunicaciones (rack) y ocupa 1,5 U (6cms) de altura.

Su músculo es de un Intel ARM IXP435 a 667Mhz con 256Mb de RAM y 4+1 conectores ethernet RJ45 en switch. El mío viene montado además con un router ADSL2+ y una CompactFlash.

web2py’s examples: helpers, validators y expresiones regulares

No me voy a explicar demasiado. Sólo un ejemplo de vista de formulario con web2py en el que interviene un input html, que limito con expresión regular palabras de entre  3 y 15 letras alfanuméricos, incluyendo “ñ”s, tildes y algo más, con una longitud máxima de 128 caracteres y 10 palabras. Incluye además un mensaje de error traducible. Ese mensaje de error luego se puede capturar con jquery y mostrarse cómodamente en un bonito efecto. Todo en una única línea, mu cómodo oiga.

1
INPUT (_value='', _name='tags', _id='tags', requires=(IS_NOT_EMPTY(error_message = T('Tags are required')), IS_MATCH('^([\wáéíóúÁÉÍÓÚñÑçÇàèìòùÀÈÌÒÙâêôûÂÊÎÔÛ]{3,15}\ ?){1,10}, error_message=T('only allowed words of third to fifteen characters')), IS_LENGTH(128)))

Python’s examples: quitar palabras repetidas de una cadena

Si algo me gustaba de php era lo sencillo que resultaba tirar código a toda velocidad y sin pensar. Desde el verano pasado me he aficionado a python por lo mismo y  sobre todo por la facilidades que tiene para trabajar con él en cualquier entorno operativo, ya sea de escritorio, consola o web. Muestra de ello, os dejo un ejemplo de cómo en una sola línea se pueden quitar las palabras repetidas de una cadena de texto:



1
2
3
4
>>> import string
>>> cadena=”hola esto es una lista lista de de cadenas hola repetidas”
>>> print string.join(set(string.split(cadena,’ ‘)),’ ‘)
esto repetidas de una hola cadenas lista es
Esta web utiliza cookies puedes ver aquí la política de cookies. Si continuas navegando estás aceptándola