Comentarios Recientes

Tutoriales de GIMP

| Categorías Linux, Software Libre, Tutoriales | | Comentario 0

Una de las principales objeciones que hacen los usuarios al intentar migrar a un entorno GNU/Linux es el uso de las herramientas artísticas, como lo es GIMP.  Aquí les dejo un link de un blog de una joven venezolana experta en GIMP, quién se ha dedicado a crear tutoriales muy interesantes sobre GIMP.

WWW.TATICA.ORG

@tatadbb

number of view: 43

Comandos interesantes: Manual wget

| Categorías Linux, Sistemas Operativos, Software Libre, Tutoriales, internet | | Comentario 0

Wget es un comando en Linux muy interesante y poderoso.  Su función más simple es descargar archivos desde la web, soportando transferencias sobre protocolos como FTP, HTTP y HTTPS.

Pues como se pueden descargar archivos, cuando intentamos descargar una página, simplemente WGET nos trae el contenido HTML de esta página.  Ahí es que viene lo de interesante, pues este comando tiene unas opciones sumamente poderosas, las cuales podemos utilizar para crear arañas, por ejemplo, como es la opción “-r”, que se refiere a recursivo.

(more…)

number of view: 219

Funcion para Debugging en PHP

| Categorías PHP, Programacion, Tutoriales, internet | | Comentario 0

Aquí les dejo una interesantísima función para imprimir el contenido de una variable, ya sea un objeto, un string, un array…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
< ?php
function show_php($var,$indent='&nbsp;&nbsp;',$niv='0')
{
    $str='';
    if(is_array($var))    {
        $str.= "<b>[array][".count($var)."]<br />";
        foreach($var as $k=>$v)        {
            for($i=0;$i< $niv;$i++) $str.= $indent;
            $str.= "$indent<em>\"{$k}\"=>";
            $str.=show_php($v,$indent,$niv+1);
        }
    }
    else if(is_object($var)) {
 
        $str.= "<b>[objet]-class=[".get_class($var)."]-method=[";
        $arr = get_class_methods($var);
           foreach ($arr as $method) {
               $str .= "[function $method()]";
           }
        $str.="]-";
        $str.="</b>";
        $str.=show_php(get_object_vars($var),$indent,$niv+1);
    }
    else {
        $str.= "<em>[".gettype($var)."]</em>=[{$var}]<br />";
    }
    return($str);
}
?>

Esta interesante función fue tomada de PHP.net

number of view: 206

Friendly URL solo con .htaccess y RewriteRule

| Categorías PHP, Programacion, Tutoriales, google, internet | | Comentario 1

Hace varios meses, les había mostrado como hacer URLs Friendly con .htaccess y PHP.  Hoy les muestro una forma de hacerlo que puede resultar más fácil y se presta a diferentes situaciones.
En el primer caso les mostraré  como hacer una URL que contenga algún “id” o parámetro, como para un e-commerce y los artículos.
RewriteBase /
RewriteRule ^(.*)-(.*).html$ products.php?id=$2

En este ejemplo, prodremos escribir URLs de este tipo:

http://www.ejemplo.com/mi_producto_favorito-451.html

Esto sería lo mismo que escribir:

http://www.ejemplo.com/products.php?id=451

De manera que estamos haciendo lo mismo, pero de manera “más estética” y aplicando nuestras técnicas de SEO ;) .

Otro ejemplo es algo más simple, pero funcional.  Ahora les muestro como crear, por ejemplo, documentos XML dinámicos.

RewriteBase /
RewriteRule ^googlefeed.xml$ googlebase.php
Este ejemplo realmente lo he utilizado para crear feeds para Google Base.  La idea es que el XML se genera “en vivo”, por así decirlo,  de manera que no se pierde ningún artículo a la hora de que el Robot de Google descargue el documento en cualquier momento.
number of view: 389

Parametros en la linea de comandos en PHP

| Categorías PHP, Personal, Programacion, Software Libre, Tutoriales | | Comentario 0

Mucha gente tiene la confusión de si se puede o no correr un programa escrito en PHP desde la línea de comandos.  Pues aquí les respondo que sí y les traigo algo para que vayan comprendiendo su funcionamiento.

El siguiente ejemplo se trata de un pequeño compresor de archivos con una técnica muy barata que he hecho para una clase de Codificación y que luego les mostraré de qué se trata.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
< ?php
/**
* Compress.php
*
* ejemplo de corrida:
* $ php compress.php  ARCHIVO_ENTRADA 
* $ php compress.php -d ARCHIVO_ENTRADA  ARCHIVO_SALIDA
*/
//saber los parametros que fueron pasados al correr el programa
if($argc < 2 )
    exit("Debe especificar al menos el archivo de entrada.\n");
 
define('COMPRESS',1);
define('UNCOMPRESS',2);
 
//saber que opcion se ha tomado
/**
 * La opcion '-c' es para comprimir
 * La opcion '-d' es para decomprimir
 * si no se especifica opcion, se va a comprimir
 */
if($argv[1][0] == '-') {
    switch($argv[1]) {
        case '-c':
            $action = COMPRESS;
            break;
        case '-d':
            $action = UNCOMPRESS;
            break;
        default:
            die("Opcion '{$argv[1]}' Incorrecta. Utilice '-c' para comprimir y '-d' para decomprimir.\n");
    }
    //archivo de entrada
    $source_file = $argv[2];
    //se verifica si el usuario especifico archivo de salida, de lo contrario
    // se verifica si se va a comprimir para generar el fichero de salida.
    // Si es para decompresion, se debe especificar el fichero de salida.
    if($argc > 3)
        $destination_file = $argv[3];
    else if($action == COMPRESS){
        $ext = end(explode(".", $source_file));
        $destination_file = str_replace(basename($source_file),str_replace($ext,'wmz',basename($source_file)),$source_file);
    }else{
        die ("Debe especificar el archivo de salida, no se conoce la extension del archivo original\n.");
    }
}
else {
    //Lo mismo que el paso anterior, pero ahora se sabe que es compresion porque
    // no se especificó una opcion y se asume compresion.
    $action = COMPRESS;
    $source_file = $argv[1];
    if($argc > 2)
        $destination_file = $argv[2];
    else {
        $ext = end(explode(".", $source_file));
        $destination_file = str_replace(basename($source_file),str_replace($ext,'wmz',basename($source_file)),$source_file);
    }
}
 
//Incluimos la clase BitMapping
//Notese que se producirá un error Fatal si no existe el fichero BitMapping.php
require_once 'BitMapping.php';
// Crear instancia
$compressor = new BitMapping($source_file,$destination_file);
//Proceder a Comprimir o Decomprimir
switch($action) {
    case COMPRESS:
        $compressor->compress();
        break;
    case UNCOMPRESS:
        $compressor->uncompress();
        break;
}
?>

En los próximos días publicaré la Class que comprime y decomprime =)

number of view: 180

Instalando Fedora 12 desde LiveCD

| Categorías Linux, Sistemas Operativos, Software Libre, Tutoriales, internet | | Comentario 0

Útil video de instalación básica de Fedora 12 desde un LiveCD.

number of view: 135