Programación

Cluster_RH
Cluster_RH
Cluster_RH
Cluster_RH

He estado trabajando estos días con varios clusters de Red Hat, por lo que me dispuse a buscar plugins de nagios para monitorearlos, encontré algunos plugins que podian servir, pero que no funcionanban como yo lo quería, por lo que decidí modificar uno de los plugins que encontré para monitorear los servicios del cluster de Red Hat.

Básicamente con el script podemos saber cuando los servicios están en estado Stopped (parados) y también cuando los servicios hacen failover hacia cualquiera de los nodos del cluster.

El script está programado en python, posiblemente tenga algunas mejoras al respecto, se los dejo a su criterio.

Descargar: check_failover.py

Django Logo
Django Logo
Netbeans Logo
Netbeans Logo


























Cómo muchos sabrán ya en NetBeans 6.9 tiene soporte python, como apenas ando aprendiendo a programar en python, decidí usar netbeans como IDE, y además quizé entrar a la par a usar django, así que comenzé a investigar si podía depurar paso a paso una aplicación de django desde netbeans, y entre varios blogs encontré lo siguiente:

  1. Primero deben instalar el plugin para Python de netbeans, lo podran encontrar en Tools->Plugins ahi buscan python y lo instalan.
  2. Crean un proyecto de django con la herramienta de django de toda la vida, digamos que se llama ProyectoWeb, desde la consola tecleamos:
    django-admin startproject ProyectoWeb
  3. Luego para usar el proyecto de django desde Netbeans van a: File -> New Project -> Choose Project -> Python -> Python Project with Existing Sources
  4. En Project Name ponen ProyectoWeb y en el Project Folder la ruta hasta el directorio de ProyectoWeb(incluyendo la carpeta ProyectoWeb), no sobreescribe ni borra nada, solo crea un directorio . Fijense bien de haber seleccionado a Python en la Python Platform
  5. En el siguiente paso en Source Root Folders le dan a Add Folder y añaden la carpeta de ProyectoWeb(sí, otra vez) y Finish
  6. En el proyecto dan clic derecho -> Properties -> Run y en Main Module ponen
    manage.py

    y en Application Arguments ponen

    runserver  –noreload

Hasta este punto ya podemos depurar nuestra aplicación de django en Netbeans y a la hora de dar clic en Project -> Run

Entonces, para poder depurar el proyecto como si estuviera integrado al IDE deben ir a Tools -> Python Platforms -> Python2.6.2(o el que tengan instalado)-> Python Path.

Fuente: http://blog.dimeder.com/2009/05/31/django-en-netbeans-651/

3 5122
python
python

Sigo leyendo sobre python, por lo que pongo aquí lo que voy entendiendo sobre python:

Tipos Básicos

Dentro de los tipos básicos de datos tenemos:

  • Números (Enteros, flotantes y complejos)
  • Cadenas de texto
  • Booleanos

Números:

Enteros: Son los números positivos o negativos que no tienen decimales (además del cero) y se representan con:

 int

(de integer, entero) o del tipo

long

(de largo), ejemplo:

entero=20
entero_largo = 20L

Reales: Son los números que tienen decimales, en python se representan con:

float

Ejemplo

real = 0.0023

Complejos: Son aquellos números que tienen una parte real y una imaginaria. Se representan con el tipo de dato

complex

Que en realidad se almacenan en una estructura de C, compuesta de dos variables double para en una almacenar la parte real y en la otra la imaginaria. Ejemplo:

complejo = 2.7 + 4.3j 

Cadenas de texto:

Las cadenas no son más que texto encerrado entre comillas simples (‘Texto’) o comillas dobles (“Texto”)
Ejemplo:

a='este es un texto'
b="Este es otro texto"

Booleanos:

Este tipo de variables solo puede tener dos valores

  • True (Cierto)
  • False (Falso)

Estos dos valores son importantes para las expresiones condicionales y los bucles.

Hasta aquí vemos los tipos básicos de datos que se usan en python, pronto iré poniendo más cosas sobre este lenguaje.

8 3619
python
python

Desde hace tiempo tengo ganas de aprender a programar en python. Por lo que ahora que tengo al menos 30 minutos disponibles al día comenzaré a hacer mis pininos con python.

Usaré el libro “Python para todos” escrito por Raúl González Duque , pero en lugar de usar python 2.5 como interprete usaré la versión de python más actual, que al día de hoy es la 3.1

Y como siempre se comienza en las clases de programación, comenzaremos con el Hola Mundo.

Y crearemos un archivo que se llame hola.py con el siguiente contenido:

#! /usr/bin/pyhton3.1

print ("Hola Mundo")

Para correrlo basta con que hagamos:

k4ch0@venus:~$ python3.1 hola.py
Hola Mundo

Y listo tenemos nuestro primer programa en python. Ahora seguiré leyendo y haciendo más programas con python.

2 1755

Un programa que pedían en la Universidad, especialmente en la clase de Inteligencia artificial fue el programa de las 8 reinas, el cual consiste en poner 8 reinas en un tablero de ajedrez sin que estás se amenacen.

Movimientos posibles de la reina
Movimientos posibles de la reina

Y se podía desarrollar en cualquier lenguaje, en este caso fue en perl.

#/usr/bin/perl
$N = 8;
for ($i = 0; $i < $N; $i++)
{
    for ($j = 0; $j < $N; $j++)
    {
        $tablero->[$i][$j] = "X";
    }
}

&Ajedrez (0);
&imprimir ();

sub Ajedrez
{
    local ($fila) = @_;
    local ($i, $j);
    local ($linea) = 0;
    if ($fila == $N)
    {
        return (1);
    }
while ($linea < $N)
{
    if (&test ($fila, $linea))
    {
        $tablero->[$fila][$linea] = "Q";
        if (&Ajedrez ($fila + 1))
        {
            return 1;
        }
        $tablero->[$fila][$linea] = "X"
    }
    $linea++;
}
return (0);
}

sub test
{
    local ($fila, $linea) = @_;
    local ($r, $l);
    $r = $fila;
    $l = $linea;
    while ($r >= 0 && $l >= 0)
    {
        if ($tablero->[$r][$l] eq "Q")
        {
            return (0);
        }
        $r--;
        $l--;
    }
    $r = $fila;
    $l = $linea;
    while ($r >= 0 && $l < $N)
    {
        if ($tablero->[$r][$l] eq "Q")
        {
            return (0);
        }
        $r--;
        $l++;
    }
    $r = $fila;
    $l = $linea;
    while ($r >= 0)
    {
        if ($tablero->[$r][$l] eq "Q")
        {
            return (0);
        }
        $r--;
    }
    return (1);
}

sub imprimir
{
    local ($i, $j);
    for ($i = 0; $i < $N; $i++)
    {
        print "\n\t\t\t";
        for ($j = 0; $j < $N; $j++)
        {
            print " $tablero->[$i][$j] ";
        }
    }
}

Para correrlo basta con mandar a llamar el interprete de perl, con el programa, y la salida del mismo sería la siguiente:

/usr/bin/perl reinas.pl

Q X X X X X X X
X X X X Q X X X
X X X X X X X Q
X X X X X Q X X
X X Q X X X X X
X X X X X X Q X
X Q X X X X X X
X X X Q X X X X

Espero les sirva…