Está en: »

Artículos

Servidor LAMP en openSuse

LAMP - Linux Apache Mysql Php

Para sistemas Windows existen aplicaciones todo en uno que te instalan apache, mysql y php de una forma muy fácil y sencilla; para GNU/Linux y mac, tambien existen dichos paquetes, pero para el caso de GNU/Linux, es más sencillo, práctico y útil instalar dichos servicios desde los repositorios de nuestra distribución. En esta ocasión, me centraré en openSuse.

Continúe leyendo…

MyDNS: Servidor DNS alternativo a bind con datos en mysql

De bien es sabido que el rey dns en GNU/Linux es BIND. Pero también existen grandes alternativas como MyDNS.

MyDNS es un servidor dns bastante ligero que nos permite almacenar sus datos de registros dentro de una base de datos en MySQL. Esto tiene como ventaja el poder integrarse fácilmente en proyectos que lo requieran.

Otra principal ventaja es que podemos replicar esos datos en distintos servidores y así tenerlos completamente sincronizados prescindiendo de las jerarquías de las réplicas en DNS.

Y creo que la mayor ventaja es que cada vez que realicemos un cambio, no hay que recargar el demonio (como ocurre en BIND).

Continúe leyendo…

Depuración y rendimiento de una aplicación en php (y por supuesto codeIgniter)

PHP quick profiler

PHP quick profiler

PHP quick profiler es una librería para php5 que nos permite tener una consola extra donde poder revisar la ejecución de nuestra aplicación.

Es una gran librería que nos revela información variada como datos recibidos, clases iniciadas, el lugar donde las mismas se inician, número de consultas a la sql, consultas a la sql, tiempo de carga, memoria consumida por la aplicación, archivos incluidos y un largo etcétera.

Continúe leyendo…

HMVC – Sistema modular en codeIgniter

codeIgniter

HMVC es un «plugin» que nos permite programar módulos bajo el framework php codeigniter.

En un principio, la librería nos permite tener para cada módulo los controladores, modelos, vistas y librerías que necesitemos. Es una librería realmente potente ya que incluso nos permite cargar la salida de una función de un controlador en otro controlador.

Página y archivo de descarga:
https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc

Continúe leyendo…

Triggers (disparadores) en mySQL

Hoy en día, prácticamente todos los motores de bases de datos populares y en mantenimiento incorporan una gran utilidad llamada triggers. Esta utilidad viene a ser como una acción a realizar automáticamente cuando hagamos una manual.

Básicamente un trigger realiza una acción cuando hacemos un insert, update o delete sobre una tabla determinada (a la que le hemos asignado dicho trigger).

Partamos de un ejemplo y lo explico:
Continúe leyendo…

Previsualización de datos de un formulario «en vivo»

previsualización de comentario en "vivo"
previsualización de comentario en «vivo»

He recibido alguna que otra pregunta sobre qué plugin utilizo para la previsualización de los comentarios antes de enviarlos. La respuesta es bien sencilla, ninguno.

Para realizar esta hazaña, utilizamos javascript, mediante el cual, le indicamos que cada vez que se presione una tecla, coja el contenido de lo que estemos escribiendo y lo inserte en el área de previsualización. Algo que parece complejo, pero que no lo es.

Bueno, comencemos:

Continúe leyendo…

Vmware server 1.x en opensuse 11.2

captura vmware 1.x en openSuse 11.2

captura vmware 1.x en openSuse 11.2

Hay algunos problemas con la instalación de vmware server 1.x en openSuse 11.2 debido a su kernel tan actual (el problema viene arrastrado desde la rama 2.6.26 y esta versión de opensuse utiliza la 2.6.31).

Normalmente me decanto por usar vmware 1.x en favor de vmware 2.x ya que este último para mi parecer es bastante lento y «especial» por lo que no me agrada mucho la verdad. Este método también sirve para versiones de vmware workstation 5.5.x ó superior.

Para empezar, esta versión de openSuse es la primera que hace una distinción entre el kernel normal y el kernel de escritorio, por lo que si se va a utilizar como servidor, recomiendo encarecídamente que se instale la versión kernel-default y se desinstale kernel-desktop, lo podemos hacer mediante (de ahora en adelante, usaremos la cuenta de root para todo):

Continúe leyendo…

FreeNX – Algo más que un ‘Términal Server’ mejorado (alternativa a vnc server en Linux)

freeNX (pantallazo de ejecución)

freeNX (pantallazo de ejecución)

La empresa Italiana nomachine hace ya bastante tiempo, liberó gran parte del código de su servidor «NX Server», el cual viene a ser algo parecido a un servidor vnc pero con una integración nativa con el servidor Xorg, de forma que brinda un espectacular rendimiento con un bajísimo consumo de recursos. A partir de esta liberación del código, se creo el proyecto freenx, que nos brinda esta tecnología totalmente libre.

En openSuse, la instalación del servidor biene a ser bien fácil:

Continúe leyendo…

Tolerancia a fallos y balanceo de cargas en red (bonding)

La técnica bonding consiste básicamente en hacer funcionar varias tarjetas de red con la misma dirección ip. Así podemos realizar que funcionen como una única tarjeta, obteniendo ventajas como la tolerancia a fallos y balanceo de cargas.

Actualmente hay 7 métodos de funcionamiento:

  • balance-rr (mode=balance-rr o mode=0): Configura una política de round-robin para la tolerancia de fallas y balanceo de cargas. Las transmisiones son recibidas y enviadas secuencialmente en cada interfaz esclava vinculada comenzando con la primera disponible.
  • active-backup (mode=active-backup o mode=1): Configura una política de respaldo activa para la tolerancia de fallas. Las transmisiones son recibidas y enviadas a través de la primera interfaz esclava vinculada disponible. Sólo se utiliza otra interfaz esclava vinculada si la interfaz esclava activa falla.
  • balance-xor (mode=balance-xor o mode=2): Configura una política XOR (o-exclusivo) para la tolerancia de fallas y el balanceo de cargas. Usando este método la interfaz coincide la dirección MAC de las peticiones entrantes con la dirección MAC de una de las NICs esclava. Una vez que se establece el enlace, las transmisiones son enviadas secuencialmente comenzando con la primera interfaz disponible.
  • broadcast (mode=broadcast o mode=3): Configura una política de difusión para la tolerancia de fallas. Las transmisiones son enviadas en todas las interfaces esclavas.
  • 802.3ad (mode=802.3ad o mode=4): Configura una política de agregación de enlace dinámico IEEE 802.3ad. Crea grupos de agregación que comparten las mismas especificaciones de velocidad y duplex. Transmite y recibe en todos los esclavos en el agregador activo. Requiere de un switch que sea conforme con 802.3ad.
  • balace-tbl (mode=balace o mode=5): Configura una política de balanceo de carga de transmisión (Transmit Load Balancing, TLB) para la tolerancia de fallas y el balanceo de cargas. El tráfico saliente es distribuido de acuerdo a la carga actual en cada interfaz esclava. El esclavo actual recibe el tráfico entrante. Si el eslavo receptor falla, otro esclavo toma la dirección MAC del esclavo fallido.
  • balance-alb (mode=balance o mode=6): Configura una política de balanceo de cargas activa (Active Load Balancing, ALB) para la tolerancia de fallas y el balanceo de cargas. Incluye el balanceo de cargas de transmisión y recepción para el tráfico IPV4. Se logra el balanceo de las cargas recibidas a través de la negociación ARP.


Es importante que el kernel soporte bonding. La mayoría de las distribuciones cotidianas actuales lo soportan, como es el caso de openSuse.

Continúe leyendo…

Despertar equipo por la red (wake on lan WOL)

Alguna que otra vez necesito acceder a alguna máquina de la red, y normalmente, está apagada. Como tengo un servidor 24 horas online (tengo un post pendiente sobre el mismo), pues he configurado los demás equipos de la red para que puedan despertar al mandarle un determinado paquete (magicpacket).

Para openSuse (creo que es el mismo método para fedora/Red Hat), simplemente hay que editar el archivo de configuración para la interface de red que queramos utilizar para despertar el equipo.
En mi caso , utilizo la interface eth0, por lo que edité el archivo /etc/sysconfig/network/ifcfg-eth0

Continúe leyendo…