Mostrar Mensajes

Esta sección te permite ver todos los mensajes hechos por este usuario, recuerda que solo puedes ver los mensajes en áreas en donde tu tienes acceso.


Mensajes - 3l3cTr0n1k_0

Páginas: [1] 2 3
1
Boletines y comunicados del foro / Re:Buscamos Staff
« : noviembre 30, 2012, 02:24:22 pm »
Bueno me presento "me obligaron  :xb: " jajajaj no mentira


Soy Octavio o 3l3cTr0n1k_0 de chile.

me gusta linux/mac
me gustan los autos "soy mecanico por hobby"
me gustan los sistema informaticos
me gusta liderar proyectos grandes/pequeños  ya he tenido mucha experiencia.
soy ingenierio en informatica, tecnico en electronica.
me gusta le seguridad en los sistema web/escritorio, por eso conoci a whk.
tuve mi epoca de lammers en latin hack team.

en fin muchas cosas :)

Saludos.

2
Temas generales / Re:Dudas dns.
« : octubre 11, 2011, 06:21:47 pm »
Noooo, lo que tienes que hacer es crearte una cuenta en www.zoneedit.com

te regalan hasta 2 zona dns gratis.

y con el administrar los dns, los mx para google apps y los dns web para el hostgator, y asunto arreglado, si se cae hostgator o el server tuyo los mx siguen arriba por zoneedit apuntando al google apps.

3
Perl / Re: Mini tutorial de Perl Moderno
« : mayo 01, 2010, 02:44:11 pm »
precisamente... necesitas saber por donde recoges esos datos, es una mala practica recibir datos indiscriminadamente xD

asi es, el problema es que cuando puedes pasar get por post es muchisimo mas suceptible a CSRF como pasa en cpanel, está llena de bugs por globalizar las request y no usar token de sesión como lo hace phpmyadmin.

no tiene que ver con inseguridad que use request o no :x3: esta mal programado y ya  :yum:

4
Perl / Re: Ejemplo básico de Perl orientado a WEB
« : abril 27, 2010, 05:28:19 pm »
Perl es un lenguage muy completo a la hora de programar para la web, vale la pena aprender a manejarlo, para resolver la mayoria de tareas.

Permite tener HTMl dentro del codigo o al reves, pero lo mas potente es utilizar las plantillas, apra ahorrar trabajo y ser mas ordenado

perl es un lenguaje que fue diseñado para script luego surgio para la web, php nacio para la web, creo que no se comparan ambos son muy bueno pero si es para la web, php siempre  :yum:

5
Perl / Re: Mini tutorial de Perl Moderno
« : abril 27, 2010, 05:24:30 pm »
ah super,
Código: perl [Seleccionar]
print $datos->param('nombre'); # imprimimos el dato


De que forma puedo saber si es una petición GET o POST?
Otra cosa... como puedes filtrar el texo como lo hace php para evitar un xss? en php se utiliza htmlspecialchars($var, ENT_QUOTES);


GET O POST --> Eso no importa a la hora de recoger los datos,, php por ejemplo es $_GET['var'] o $_POST['VAR'] asi que estas obligado a saber por que metodos se envian los datos;  en perl basta con param('nombreparmetro');


en Perl como las variables de ambiente se puede saber @ENV variable reservada.

los datos de GET  $ENV{'QUERY_STRING'}.
POST              $ENV{'CONTENT_LENGTH'}

sobre los XSS
Bueno no se mucho de eso, pero si imprimes un dato enviado directamente por un formulario  ejemplo:

Código: html4strict [Seleccionar]
<iframe src="http://www.example.com/search.pl?text=<script>alert(document.cookie)</script>">


Ahi hay un ataque xss y lograria pasar,,
un ejemplo para evitarlo por que hay muchas formas creo seria


Código: perl [Seleccionar]
 
   #!/usr/bin/perl
        use CGI;
        use HTML::Entities;

        my $cgi = CGI->new();
        my $text = $cgi->param('text');

        print $cgi->header();
        print "You entered ", HTML::Entities::encode($text);


pero creo que igual es un arma de doble filo, realmente yo protejo los datos a la hora de salida y no de entrada, ademas se debe tener el cuenta que validar, por ejemplo si quiero tomar solo texto usaria una expresion regular asi ($text =~ s/[^A-Za-z0-9 ]*/ /g; #no probado)

En algo mas avanzado de Perl uno ya le dice al script que haga escapes de HTMl cuando se necesite imprimir un dato.

Espero sirva de algo




Si usas request en php no necesita saber si es post, get o cookie ...


6
PHP / Re: ¿Que es el Modelo Vista Controlador (MVC)?
« : abril 27, 2010, 11:54:52 am »
Cito desde wikipedia:

http://es.wikipedia.org/wiki/Modelo_Vista_Controlador
Citar
Modelo Vista Controlador (MVC) es un estilo de arquitectura de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos. El patrón MVC se ve frecuentemente en aplicaciones web, donde la vista es la página HTML y el código que provee de datos dinámicos a la página. El modelo es el Sistema de Gestión de Base de Datos y la Lógica de negocio, y el controlador es el responsable de recibir los eventos de entrada desde la vista.


En otras palabras cuando un framework dice que se basa en MVC quiere decir que no vas editando manualmente cada diseño, tablas, formularios etc ya que el sistema los crea solo gracias a clases y funciones que lo hacen por ti, solamente los configuras según sea el framework en el que trabajas y luego lo envías a impresión sobre el sitio WEB.

Si alguien tiene dudas o aportes pues bienvenido sea :P


un framework quiere decir que cada capa de dato, logica, negocio, transporte, transaccion, etc...

la vas separando ordenadamente , y cada una de ella interactua solo comunicandoce y transpasando informacion...

Eso es un framework, MVC ( es un tipo de ordenamiento para el uso en un framework)

MVC significa = modelo,vista,controlador

El Modelo representa la estructura de datos. Típicamente sus clases de modelo contendrán funciones que lo ayudarán a recuperar, insertar y actualizar información en su base de datos.

La Vista es la información que es presentada al usuario. La Vista normalmente será una página web, una vista también puede ser un fragmento de una página como un encabezado o un píe de página. También puede ser una página RSS, o cualquier otro tipo de "página".

El Controlador sirve como un intermediario entre el Modelo, la Vista y cualquier otro recurso necesario para procesar la petición HTTP y generar una página web

7
PHP / Re: Framework
« : abril 13, 2010, 01:27:16 pm »
te recomiendo codeigniter no tienes que aprender comando y otras cosas
programas en mvc y es muy simple :P  :yum:

8
PHP / Re: Tablas con estilo Zebra
« : marzo 15, 2010, 01:36:27 pm »
solo una pregunta.. no entendi esta parte.. que es lo que quiere decir esta parte??  ???
Código: php [Seleccionar]
($estilo & 1)

tengo entendido que el && significa "y" pero & no lo habia visto?? que quiere decir ahi?? que es igual a 1?? diferente?? divisible??  ???

el signo & replecenta un puntero a la variable, para modificarla directamente...


tal vez quiso decir
Código: php [Seleccionar]

if($estilo % 2 == 0)

9
para el css podes usar link_tag que por defecto te crea un link para css

Código: php [Seleccionar]
link_tag('carpeta/archivo.css');


(esta en html helper)

para el metodo "add" deberias automatizar el base_url(), aunque se dependa del url helper de todas formas
Código: php [Seleccionar]

        public  function  add($filename)  {
                $this->style[]  =  base_url().$this->styleIn.$filename.$this->styleOut;
        }


lo demas esta bastante bueno... que bueno que no soy el unico que usa codeigniter hahahaha :hhm:
si habia pensado en automatizar base_url(); pero me di cuenta que a veces uno usa library de google por ejemplo y son externas, por eso motivo lo deje opcional...

10
Temas generales / Re: Como estan los amigos chilenos??
« : marzo 05, 2010, 04:06:43 pm »
estamos bién por ahora :D
En Santiago está todo bien, el problema es al sur donde está la Región Bio Bio y esas regiones.

PD. Otro chileno se uné.

no olvides la gente de ñuñoa y maipu :d

xD
 :yum:

11
Ola amigos :P como me puse a codear mucho en codeigniter he creado unas pequeña Library para manejar los Javascript y ademas lo Css en codeigniter


La primera library es

Css.php

esta debe estar creada dentro de la ruta application->library

Código: php [Seleccionar]

<?php
/*
 * Autor: Octavio Fuenzalida Mora.
 * mail : octavio1121@gmail.com
*/
Class CSS {
   
    private $styleIn = "\t<link rel='stylesheet' type='text/css' media='all' href='";
    private $styleOut = "'/>\n";
    private $style = array();
    private $msj = array("0" => "Error al devolver estilo\n",
                         "1" => "Error Al enviar la posicion y el estilo para modificar");

    public function add($filename) {
        $this->style[] = $this->styleIn.$filename.$this->styleOut;
    }
    public function get() {

        if(is_array($this->style)) {
            return $this->style;
        }else {
            return $this->msj[0];
        }
    }

    public function set($posicion=null,$filename=null) {
        if($posicion!=null && $filename!=null) {
            $this->style[$posicion] =  $this->styleIn.$filename.$this->styleOut;
        }
        else {
            return $this->msj[1];
        }
    }
}
?>



La segunda library se crea en el mismo directorio Application->library

se llama

Jss.php

Código: php [Seleccionar]

<?php
 /*
 * Autor: Octavio Fuenzalida Mora.
 * mail : octavio1121@gmail.com
 */
Class JS {
    private $jsIn = "\t<script type='text/javascript' src='";
    private $jsOut = "'></script>\n";
    private $javascript = array();
      private $msj = array("0" => "Error al devolver Javascript\n",
                         "1" => "Error Al enviar la posicion y el Javascript para modificar");

    public function add($filename) {
        $this->javascript[] = $this->jsIn.$filename.$this->jsOut;
    }
    public function get() {

        if(is_array($this->javascript)) {
            return $this->javascript;
        }else {
            return $this->msj[0];
        }
    }

    public function set($posicion=null,$filename=null) {
        if($posicion!=null && $filename!=null) {
            $this->javascript[$posicion] =  $this->jsIn.$filename.$this->jsOut;
        }
        else {
           return $this->msj[1];
        }
    }
}

?>



El modo de uso de esta librery dentro de codeigniter es el siguiente...

En nuetro controlador debemos agregar lo siguiente
Código: php [Seleccionar]

Class Registro extends Controller {
    function  __construct() {
        parent::Controller();

        //helper para el uso de URL.
        $this->load->helper('url');

        //Carga libreria CSS.
        $this->load->library("css");

        //Carga libreria JAVASCRIPT.
        $this->load->library("js");
    }
    function __cargaHeadLibrary() {//Esta es una funcion private de codeigniter asi via url no podremos llamarla solo a travez de codigo...


        //cargamos todas las plantillas...
        $this->css->add(base_url()."css/disenio.css"); //css es el directorio donde tengo mis css y disenio.css es el archivo css..

        //cargamos todos los javascript
        $this->js->add(base_url()."js/jquery-1.4.2.min.js"); //js es el directorio donde tengo mis js y jquery-1.4.2.min.js es el archivo javascript
        $this->js->add(base_url()."js/jquery-ui-1.8rc3.custom.min.js");
        $this->js->add(base_url()."js/jquery.datatables.js");

 //$data es nuestro array donde css contendra en un sub-array todo lo css y js contendra todo los javascript
        $data["css"] = $this->css->get();   //pedimos todo lo cargado para css
        $data["js"] = $this->js->get(); //pedimos todo lo cargado para js

        return $data;
    }


function __head() {

        $head = $this->__cargaHeadLibrary();
        $cabecera = "\t\n";

        foreach ($head  as $metadata => $key) {
            // if(is_array($metadata)) {
            switch($metadata) {
                case "css": {//tipo css
                        foreach($key as $css)
                            $cabecera .= $css;
                        break;
                    }
                case "js": {//tipo javascript
                        foreach($key as $js)
                            $cabecera .= $js;
                        break;
                    }
            }
        }
        return $cabecera;
    }


    function registroUsuario() {

        $data["head"] = $this->__head(); //retornamos todo lo css y js en un array y los pasamos al array head
       
        $this->load->view("Registro Usuario",$data);
    }
}
?>




nuestra vista tiene que tener el siguiente codigo

Código: php [Seleccionar]


<html>
    <head>
        <title>asdf</title>
 <?=$head?>
    </head>
    <body>
</body>
</html>


la gracias de esto es que automaticamente no creara todo esto

Código: php [Seleccionar]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
       
<link rel='stylesheet' type='text/css' media='all' href='http://localhost/automovileschile.cl/portal/css/disenio.css'/>
<script type='text/javascript' src='http://localhost/automovileschile.cl/portal/js/jquery-1.4.2.min.js'></script>
<script type='text/javascript' src='http://localhost/automovileschile.cl/portal/js/jquery-ui-1.8rc3.custom.min.js'></script>
<script type='text/javascript' src='http://localhost/automovileschile.cl/portal/js/jquery.datatables.js'></script>

    </head>
    <body>
</body>
</html>


como eso es muy repitivo en cada vista es mejor usa este metodo, obviamente se puede mejorar lo cree al vuelo nomas :D


saludos :P

12
Framework - Symfony / Comenzando un proyecto en symfony
« : febrero 24, 2010, 12:04:04 pm »
Introducción

El framework Symfony ha sido un proyecto de Código Abierto por más de tres años y se ha convertido en uno de los framework PHP más populares gracias a sus excelentes características y gran documentación. Esto ha sido una gran tradición desde sus inicios.

En Diciembre de 2005, justo después del primer lanzamiento oficial de Symfony, publicamos el "tutorial Askeet" como una serie de tutoriales, publicados día tras día entre el primero de diciembre y Navidad.

Dicho tutorial ha demostrado ser una herramienta invaluable para promover el framework entre los recién llegados. Muchos programadores aprendieron Symfony gracias a askeet y muchas compañías lo utilizan como su material principal de capacitación.

Pero el tutorial askeet comienza a mostrar su edad y con el lanzamiento de Symfony 1.2, hemos decidido a publicar otro calendario para un nuevo tutorial, Jobeet.

Este tutorial se ha publicado día a día en el blog de Symfony en 2008, y estás leyendo la adaptación del libro.

El Desafío

Cada capítulo/día está destinado a durar aproximadamente una hora, y será la ocasión de aprender Symfony mediante la codificación de un sitio web real, de principio a fin.

Una hora multiplicada por venticuatro hace un día, y eso es exactamente lo que creemos que un programador necesita para aprender los fundamentos de Symfony. Cada día, serán agregadas nuevas características a la aplicación, y nos valdremos de las ventajas de este desarrollo para introducirte a las nuevas funcionalidades de Symfony así como a las mejores prácticas de desarrollo web con Symfony.

Para askeet, el día 21 fue el denominado "consigue un guru symfony por un día". No teníamos ningún plan y la comunidad tenía que proponer una característica a agregar a askeet. Fue un gran suceso y la comunidad decidió que necesitábamos un motor de búsqueda para la aplicación. Y así lo hicimos. El día 21 del tutorial también demostró ser uno de los más populares dentro de los tutoriales de askeet.

Para Jobeet, vamos a celebrar la llegada del invierno/verano con un día 21 denominado "día de diseño". El diseño ganador será presentado al centro{fuente}, y se utilizará en este tutorial para el diseño por defecto. También será utilizado para el diseño del sitio web Jobeet.


Este Tutorial es diferente


Recuerdo los primeros días de PHP4 ¡Ah, la Belle Epoque! PHP era uno de los primeros lenguages dedicados a la web y uno de los más fáciles de aprender.

Pero con la rápida evolución de las tecnologías web, los desarrolladores web deben mantenerse al tanto de las últimas herramientas y mejores prácticas de desarrollo. Por supuesto que la mejor manera de aprender es leyendo blogs, tutoriales y libros. Hemos leído un montón de estos, sea que estén escritos para PHP, Python, Java, Ruby o Perl, y muchos se quedan cortos cuando el autor comienza a mostrar fragmentos de código como ejemplos.

Probablemente estés acostumbrado a leer adevertencias de este tipo:

"Para una aplicación real, no te olvides de agregar validación y un manejo de errores adecuado."

o

"La Seguridad es dejada como un ejercicioo para el lector."

o

"Por supuesto que vas a necesitar escribir tests"

¿Cómo? Estos temas son asuntos importantes. Son quizás la parte más importante de cualquier trozo de código. Como lector, te dejan solo. Si no nos preocupamos por proveer dicha información, los ejemplos resultan mucho menos útiles, no pudiendo utilizarlos como un buen punto de inicio. Eso no puede ser así, ya que la seguridad, la validación, el manejo de errores y las tests, por nombrar algunos, es lo que nos lleva a programar de forma correcta.

En este tutorial nunca vas a ver oraciones de ese tipo, vamos a escribir tests, manejo de errores, código para validación, y nos aseguraremos de desarrollar una aplicación segura. Todo ello porque Symfony es sinónimo de programación, de buenas prácticas y de como desarrollar aplicaciones profesionales para la empresa. Podemos darnos dicho lujo porque Symfony provee todas las herramientas necesarias para programar esos aspectos de forma fácil y sin la necesidad de escribir mucho código.

Debido a que la validación, el manejo de errores, la seguridad y los tests son ciudadanos de primera clase en Symfony, no nos va a llevar mucho tiempo explicarlos. Esta es una de las tantas razones por las cuales hay que utilizar un framework para proyectos de la vida real.

Todo el código que leerás en este tutorial es código que puedes usar en un proyecto de la vida real. Te invitamos a que copies y pegues el código en tus proyectos o que simplemente robes trozos completos del mismo.

El Proyecto

La aplicación a diseñar podría haber sido otro motor de blogs, pero nosotros queremos usar Symfony en algo útil. El objetivo es demostrar que Symfony puede ser usado para desarrollar aplicaciones con estilo y poco esfuerzo.

Al contenido del proyecto lo vamos a mantener en secreto por un días más ya que tenemos mucho para hacer por hoy. De todas formas, ya sabes el nombre de la aplicación: Jobeet.


¿Qué hacemos hoy?

Como 24 horas es más que suficiente para desarrollar una aplicación con Symfony, hoy no vamos a escribir código PHP. Pero incluso sin escribir una sola linea de código vas a entender los beneficios de utilizar un framework como Symfony simplemente al configurar un nuevo proyecto.

El objetivo del día es configurar un entorno de desarrollo y mostrar una página web de la aplicación en el navegador web. Esto incluye la instalación de Symfony, la creación de una aplicación y la configuración del servidor web.

Pre requisitos.

Primero que nada, asegúrate de que cuentas con un entorno de desarrollo web funcioando: un servidor web (Apache por ejemplo), un motor de bases de datos (MySQL, PostgreSQL, o SQLite), y PHP 5.2.4 o superior.

Como utilizaremos la línea de comandos constantemente, es preferible utilizar un sistema operativo tipo Unix, si utilizas Windows, va a funcionar de todas formas, simplemente vas a tener que ingresar comandos en la consola cmd.



Los comandos de Unix pueden serte útiles dentro de un entorno Windows. Si quisieras utilizar herramientas como tar, gzip, or grep en Windows puedes instalar
Cygwin. La documentación oficial puede ser un poco escasa pero una guía interesante puede encontrarse aquí. Los aventureros también pueden probar con los Servicios Windows para Unix. de Microsoft.


Como este tutorial se concentra en el framework Symfony, asumimos que ya cuentas con un conocimiento sólido de PHP 5 y de Programación Orientada a Objetos.

Instalación de Symfony

Primero crea un directorio donde albergar los archivos relacionados al proyecto Jobeet:
Código: c [Seleccionar]

$ mkdir -p /home/sfprojects/jobeet
$ cd /home/sfprojects/jobeet


En Windows:

Código: c [Seleccionar]

c:\> mkdir c:\development\sfprojects\jobeet
c:\> cd c:\development\sfprojects\jobeet



Se recomienda que los usuarios Windows configuren sus proyectos en una ruta sin espacios. Intenta no utilizar el directorio Documents and Settings, incluyendo cualquier ruta bajo Mis Documentos.


Crea un directorio para alojar los archivos del framework Symfony:
Código: c [Seleccionar]

$ mkdir -p lib/vendor


La página de instalación en el sitio web de Symfony listas y compara todas las versiones disponibles de Symfony.

Ya que este tutorial fue escrito para Symfony 1.2, ve a la página de instalación de Symfony 1.2.

Bajo la sección "Source Download", vas a encontrar el archivo en formato .tgz o en formato .zip. Descarga el archivo y colocarlo bajo el directorio lib/vendor que acabas de crear y descomprimelo:

Código: c [Seleccionar]

$ cd lib/vendor
$ tar zxpf symfony-1.2.2.tgz
$ mv symfony-1.2.2 symfony
$ rm symfony-1.2.2.tgz


En Windows puedes descomprimirlo en el explorador de archivos. Una vez que hayas renombrado el directorio a symfony, la ruta debería ser la siguiente: c:\development\sfprojects\jobeet\lib\vendor\symfony.

Como las configuraciones PHP varían mucho de una distribución a otra, tenemos que comprobar que tu configuración PHP cumple los requisitos mínimos de Symfony. Inicia el script de comprobación de la configuración que viene con Symfony desde la línea de comandos:

Código: c [Seleccionar]

$ cd ../..
$ php lib/vendor/symfony/data/bin/check_configuration.php


Si hay un problema, la salida te dará consejos sobre cómo solucionarlo. También debes ejecutar el script desde un navegador ya que la configuración PHP puede ser diferente. Copia el archivo en algún lugar bajo el directorio raíz del servidor web y accede al archivo. No te olvides de quitar el archivo del directorio raíz web después:
Código: c [Seleccionar]

$ rm web/check_configuration.php




Si el script no muestra ningún error, comprueba que Symfony se ha instalado correctamente usando la línea de comandos para mostrar la versión (nota la letra V mayúscula):

Código: c [Seleccionar]

$ php lib/vendor/symfony/data/bin/symfony -V


En Windows:

Código: c [Seleccionar]

c:\> cd ..\..
c:\> php lib\vendor\symfony\data\bin\symfony -V


Si eres curioso sobre lo que esta herramienta de línea de comandos puede hacer por tí, escribe symfony para ver una lista de las opciones y las tareas disponibles:

Código: c [Seleccionar]

$ php lib/vendor/symfony/data/bin/symfony


En Windows:

Código: c [Seleccionar]

c:\> php lib\vendor\symfony\data\bin\symfony


La línea de comandos de Symfony es el mejor amigo del programador. Te brinda un montón de utilidades para aumentar tu productividad en las actividades del día a día como limpiar el cache, generar código y mucho más.

Configuración del Proyecto

En Symfony, las aplicaciones que comparten el mismo modelo de datos se agrupan en proyectos. Para el proyecto Jobeet, vamos a tener dos aplicaciones diferentes: un frontend y un backend.

Creación del Proyecto

Desde el directorio jobeet, ejecuta la tarea symfony generate:project para realmente crear el proyecto symfony:

Código: c [Seleccionar]

$ php lib/vendor/symfony/data/bin/symfony generate:project jobeet


En Windows
Código: c [Seleccionar]

c:\> php lib\vendor\symfony\data\bin\symfony generate:project jobeet


La tarea generate:project genera por defecto la estructura de directorios y archivos necesarios para un proyecto symfony:
Directorio    Descripción
apps/    Hospeda todas las aplicaciones del proyecto
cache/     Los archivos en caché
config/    Los archivos de configuración del proyecto
lib/    Las bibliotecas y clases del proyecto
log/    Los archivos de registro
plugins/    Los plugins instalados
test/     Los archivos de pruebas unitarias y funcionales
web/    El directorio raíz web (véase más adelante)


¿Por qué Symfony genera tantos archivos? Uno de los principales beneficios de la utilización de un completo framework es normalizar tus desarrollos. Gracias a estructura predeterminada de archivos y directorios de Symfony, cualquier desarrollador con algunos conocimientos de Symfony puede asumir el mantenimiento de cualquier proyecto symfony. En cuestión de minutos, será capaz de bucear en el código, corregir los errores, y añadir nuevas funciones.


La tarea generate:project también ha creado un atajo symfony en el directorio raíz del proyecto Jobeet para reducir el número de caracteres que tienes que escribir cuando se ejecuta una tarea.

Así, a partir de ahora, en lugar de utilizar la ruta completa al programa de Symfony, vamos a utilizar el atajo symfony.

Creación de una Aplicación

Ahora, crear la aplicación frontend ejecutando la tarea generate:app:

Código: c [Seleccionar]

$ php symfony generate:app --escaping-strategy=on --csrf-secret=UniqueSecret frontend


 Como el archivo symfony es ejecutable, los usuarios de Unix puede reemplazar todas las apariciones de 'php symfony' por './symfony' de ahora en adelante.

En Windows puedes copiar el archivo 'symfony.bat' a tu proyecto y usar 'symfony' en lugar de 'php symfony':

Código: c [Seleccionar]

c:\> copy lib\vendor\symfony\data\bin\symfony.bat .


Una vez más, la tarea generate:app crea por defecto la estructura necesaria de directorios para una aplicación bajo el directorio apps/frontend:
Directorio    Descripción
config/    Los archivos de configuración de la aplicación
lib/    Las bibliotecas y clases de la aplicación
modules/    El código de la aplicación (MVC)
templates/    La plantilla global

Todos los comandos symfony debe ser ejecutados en el directorio raíz del proyecto a menos que se diga expresamente otra cosa.


Al llamar a la tarea generate:app, también hemos pasado dos opciones relacionadas con la seguridad:

    * --escaping-strategy: Permite escapar la salida para evitar ataques XSS
    * --csrf-secret: Permite tokens de sesión en los formularios para prevenir los ataques CSRF


Pasando estas dos opciones a la tarea, hemos asegurado nuestro futuro desarrollo de las dos vulnerabilidades más extendidas se encuentran en la web. Así es, Symfony automáticamente toma las medidas de seguridad por nosotros.


Si no sabes nada acerca de XSS o CSRF, date un tiempo para aprender más de estas vulnerabilidades de seguridad.


La Ruta de Symfony

Puede obtener la versión utilizada de Symfony por su proyecto escribiendo:
Código: c [Seleccionar]

$ php symfony -V


La opción -V también muestra la ruta de acceso al directorio de instalación de Symfony, se almacena en config/ProjectConfiguration.class.php:

Código: php [Seleccionar]

// config/ProjectConfiguration.class.php
require_once '/Users/fabien/work/symfony/dev/1.2/lib/autoload/sfCoreAutoload.class.php';


Para mejorar la portabilidad, cambia la ruta absoluta a la instalación de Symfony por una relativa:
Código: php [Seleccionar]

// config/ProjectConfiguration.class.php
require_once dirname(__FILE__).'/../lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php';


De esta manera, puedes mover el directorio del proyecto Jobeet a cualquier lugar de tu máquina u a otra, y éste funcionará.
Los Entornos

Si revisas el directorio web/, encontrarás dos archivos PHP: index.php y frontend_dev.php. Estos archivos son llamados controladores frontales: todas las peticiones a la aplicación se hacen a través de ellos. Pero, ¿por qué tenemos dos controladores frontales si hemos definido sólo una aplicación?

Ambos archivos apuntan a la misma aplicación pero para distintos entornos. Cuando desarrollas una aplicación, excepto si desarrollas directamente en el servidor de producción, necesitas varios entornos:

    * El entorno de desarrollo: Este es el ambiente utilizado por desarrolladores web para añadir nuevas funciones, corregir los errores, ...
    * El entorno de prueba: Este entorno se utiliza para probar automáticamente la aplicación.
    * El entorno staging: Este entorno es utilizado por el cliente para poner a prueba la aplicación e informar errores o características faltantes.
    * El entorno de producción: Este es el entorno donde un usuario final interactúa.

¿Qué hace que un entorno sea único? En el entorno de desarrollo, la aplicación necesita registrar todos los detalles de una petición para facilitar la depuración, debe mostrar la excepción en el navegador, pero la cache debe ser deshabilitada para que todos los cambios realizados al código se tengan en cuenta de inmediato. El entorno de desarrollo debe ser optimizado para el desarrollador:



En el entorno de la producción, la aplicación deberá mostrar mensajes de error personalizados en lugar de excepciones, y por supuesto, la capa del cache debe estar activada. El entorno de producción debe ser optimizado para el rendimiento y la experiencia del usuario final.



Resumiendo: un entorno symfony es un conjunto único de ajustes de configuración. El framework Symfony incluye tres de ellos: dev, test, y prod.

Si abres los archivos de los controladores frontales, verás que la única diferencia es el ajuste del entorno:

Código: php [Seleccionar]

// web/index.php
<?php
 
require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
 
$configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'prod', false);
sfContext::createInstance($configuration)->dispatch();



Definir un nuevo entorno symfony es tan simple como crear un nuevo controlador frontal. Veremos más adelante cómo cambiar la configuración de un entorno.



Configuración del Servidor Web: La Forma Fea


En la sección anterior, un directorio se ha creado para alojar el proyecto Jobeet. Si lo creaste bajo el directorio "raíz web" de tu servidor web, ya puedes acceder al proyecto en un navegador web.

Por supuesto, como no hay ninguna configuración, es muy rápido para establecer, pero intenta tener acceso al archivo config/databases.yml en tu navegador y comprederás las malas consecuencias de esta actitud perezosa. Si el usuario conoce que tu sitio web esta desarrollado con Symfony, él tendrá acceso a un montón de archivos delicados.

Nunca uses esta configuración en un servidor de producción, lee la siguiente sección para aprender cómo configurar su servidor web correctamente.
Configuración del Servidor Web: La forma segura

Una buena práctica web es poner bajo el directorio raíz web sólo los archivos a los que necesita tener acceso el navegador web: las hojas de estilo, JavaScripts, o imágenes. Te recomendamos almacenar estos archivos en el subdirectorio web de un proyecto symfony.

Si echas un vistazo a este directorio, encontrarás algunos sub-directorios para los recursos web y los dos archivos de los controladores frontales. Los controladores frontales son los únicos archivos PHP que necesitan estar bajo el directorio raíz web. Todos los demás archivos PHP se pueden ocultar del navegador, la cual es una buena idea en lo que respecta a seguridad.

La configuración del Servidor Web


Ahora es el momento de cambiar tu configuración de Apache para que el nuevo proyecto sea accesible para el mundo.

Busca y abre el archivo de configuración httpd.conf y añade la siguiente configuración al final:

Código: c [Seleccionar]

# Asegúrate de tener sólo una vez esta línea en su configuración
NameVirtualHost 127.0.0.1:8080

# Esta es la configuración de Jobeet
Listen 127.0.0.1:8080

<VirtualHost 127.0.0.1:8080>
  DocumentRoot "/home/sfprojects/jobeet/web"
  DirectoryIndex index.php
  <Directory "/home/sfprojects/jobeet/web">
    AllowOverride All
    Allow from All
  </Directory>

  Alias /sf /home/sfprojects/jobeet/lib/vendor/symfony/data/web/sf
  <Directory "/home/sfprojects/jobeet/lib/vendor/symfony/data/web/sf">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>




     El alias /sf le da acceso a las imágenes y los archivos JavaScript necesarios para adecuadamente mostrar las páginas symfony por defecto y la barra de herramientas de depuración web.

    En Windows, es necesario sustituir la linea Alias con algo como:
Código: c [Seleccionar]

    Alias /sf "c:\development\sfprojects\jobeet\lib\vendor\symfony\data\web\sf"

    Y /home/sfprojects/jobeet/web debería ser sustituida por:
Código: c [Seleccionar]

    c:\development\sfprojects\jobeet\web



En esta configuración, Apache escucha en el puerto 8080 de tu máquina, por lo que el sitio web de Jobeet será accesible en la siguiente URL:

http://localhost:8080/

Puedes cambiar 8080 por cualquier número mayor que 1024, ya que no se requieren derechos de administrador en esos puertos.

    Configurar un nombre dedicado de dominio para Jobeet

    Si eres el administrador de tu equipo, es mejor configurar un virtual host en lugar de añadir un nuevo puerto cada vez que se inicia un nuevo proyecto. En lugar de añadir un puerto y agregar una declaración Listen, elige un nombre de dominio y añade la declaración ServerName:

Código: c [Seleccionar]

    # This is the configuration for Jobeet
    <VirtualHost 127.0.0.1:80>
      ServerName jobeet.localhost
      <!-- same configuration as before -->
    </VirtualHost>

    El nombre de dominio jobeet.localhost tiene que ser declarado localmente. Si se ejecuta un sistema Linux, que tiene que hacerse en el archivo /etc/hosts. Si ejecuta Windows XP, este archivo se encuentra en el directorio C:\WINDOWS\system32\drivers\etc\.

    Añade la siguiente línea:
Código: c [Seleccionar]

    127.0.0.1         jobeet.localhost

    Tip Nota del Traductor Cuando se complican con estos pasos, los usuarios de Distribuciones Linux, como Ubuntu, pueden usar una herramienta gráfica que simplique aún más esta configuración. Rapache, es un software para sistemas Gnome que hace la configuración básica y necesaria, en los archivos /etc/hosts y httpd.conf, en un solo paso además de permitir el reinicio de Apache con un clic.

Probar la nueva configuración


Reinicia Apache, y comprueba que ahora tienes acceso a la nueva aplicación abriendo un navegador y escribiendo http://localhost:8080/index.php/, o http://jobeet.localhost/index.php/ dependiendo de la configuración de Apache que has elegido en la sección anterior.




Si tienes el módulo Apache mod_rewrite instalado, puedes remover la parte /index.php/ de todas las URL. Esto es posible gracias a las reglas de reescritura configuradas en el archivo web/.htaccess.


Deberías tratar de acceder a la aplicación en el entorno de desarrollo. Escribe la siguiente URL:

http://jobeet.localhost/frontend_dev.php/

La web debug toolbar o barra de herramientas de depuración web debería mostrarse en la esquina superior derecha, incluidos los iconos, demostrando que tu configuración alias sf/ es correcta.




La configuración es un poco diferente si quieres ejecutar Symfony sobre un server IIS server en un sistema Windows. Busca la manera de configurarlo en el tutorial.


Subversion

Es una buena práctica utilizar control de versiones de código fuente en el desarrollo de una aplicación web. Usar el control de versiones de código fuente nos permitirá:

    * trabajar con confianza
    * volver a una versión anterior si un cambio rompe algo
    * permitir a más de una persona para trabajar eficientemente en el proyecto
    * tener acceso a todas las versiones sucesivas de la aplicación

En esta sección, vamos a describir cómo utilizar Subversion con Symfony. Si utilizas otra herramienta de control de código fuente, debe ser muy fácil de adaptar según lo descripto para Subversion.

Suponemos que ya tienes acceso a un servidor Subversion.


    Si no tienes un servidor Subversion a tu disposición, puedes crear uno gratis en Google Code o solo escribir "free subversion repository" en Google para tener muchas más opciones.


En primer lugar, crea un nuevo repositorio para el proyecto jobeet:
Código: c [Seleccionar]

$ svnadmin create /path/to/jobeet/repository

En tu máquina, crea la estructura básica de directorios:

Código: c [Seleccionar]

$ svn mkdir -m "created default directory structure" http://svn.example.com/jobeet/trunk http://svn.example.com/jobeet/tags http://svn.example.com/jobeet/branches


Y comprueba el directorio vacío trunk/ :
Código: c [Seleccionar]

$ cd /home/sfprojects/jobeet
$ svn co http://svn.example.com/jobeet/trunk/ .


Entonces, elimina el contenido de los directorios cache/ y log/ porque no queremos ponerlos en el repositorio.
Código: c [Seleccionar]

$ rm -rf cache/* log/*

Ahora, asegúrate de poner los permisos de escritura sobre los directorios cache y logs a los niveles apropiados a fin de que tu servidor web pueda escribir en ellos:
Código: c [Seleccionar]

$ chmod 777 cache/ log/

Ahora, importa todos los archivos y directorios:
Código: c [Seleccionar]

$ svn add *

Como nunca queremos enviar los archivos situados en los directorios cache/ y /log, es necesario especificar una lista de ignorados:
Código: c [Seleccionar]

$ svn propedit svn:ignore cache

El editor de texto por defecto configurado para SVN debería ejecutarse. Subversion debe hacer caso omiso de todo el contenido de este directorio:
Código: c [Seleccionar]

*


Guardar y cerrar. Has terminado.

Repite el procedimiento para el directorio log/:
Código: c [Seleccionar]

$ svn propedit svn:ignore log

Y escribe:
Código: c [Seleccionar]

*

Finalmente, enviamos (commit) estos cambios al repositorio:
Código: c [Seleccionar]

$ svn import -m "made the initial import" . http://svn.example.com/jobeet/trunk



Los usuarios de Windows pueden utilizar el excelente cliente TortoiseSVN para gestionar sus repositorio de Subversion. Los usuarios de Linux tienen muchas opciones y una de ellas es utilizar el excelente cliente Rapidsvn para gestionar sus repositorio de Subversion.


Nos vemos Mañana

Bien, ¡el tiempo terminó por hoy! Incluso si aún no hemos comenzado a hablar de Symfony, hemos configurado un entorno de desarrollo sólido, hemos hablado de las mejores prácticas sobre desarrollo web, y estamos listos para iniciar la programación.

Mañana, vamos a revelar lo que hará la aplicación y conversar sobre los requisitos que necesitamos poner en práctica durante el tutorial.


    Si deseas comprobar el código del día de hoy, o de cualquier otro día, el código esta disponible día a día en el repositorio SVN oficial de Jobeet (http://svn.jobeet.org/doctrine/).

    Por ejemplo, puedes obtener el código de hoy de la etiqueta release_day_01:
Código: c [Seleccionar]

      $ svn co http://svn.jobeet.org/doctrine/tags/release_day_01/ jobeet/



Fuente:http://www.symfony-project.org/jobeet/1_2/Doctrine/es/01

13
también puedes hacerlo en modo gráfico con samba, le das click derecho al directorio y le haces click en compartir, si no tienes instalado samba te preguntará si deseas instañarlo y con eso ya puedes compartir archivos y directorios con el protocolo de red de ms windows.




si es una opcion pero si usar linux <----> linux es mejor usar nfs ( network files system) es un sistema base para el mundo linux/unix , ademas como mostre no es nada compricado montar la unidad por red, o desde internet incluso...
 :yum:

14
GRUB (GRand Unifier Bootloader) es un gestor de arranque: es lo primero que se carga cuando se inicia la computadora. Permite tener diferentes sistemas operativos, y diferentes versiones de ellos, en el mismo disco duro. Por ejemplo podemos tener Windows y GNU/Linux en la misma computadora, GRUB se cargará antes que cualquiera de éstos permitiéndonos elegir cuál iniciar.

El gestor de arranque GRUB viene preinstalado en la mayoría de las distribuciones de GNU/Linux modernas, entre ellas Debian, Ubuntu y sus derivadas. Anteriormente, el gestor de arranque más usado era LILO.


Los errores en las modificaciones de GRUB pueden llevar a problemas con el arranque. Por esto es recomendable hacer una copia de seguridad del archivo menu.lst antes de realizar algún cambio. Se puede hacer con el siguiente comando:
Código: linux [Seleccionar]

$ sudo cp /boot/grub/menu.lst /boot/grub/menu.lst.backup

Luego, para restaurar la copia de seguridad, hacemos lo siguiente:
Código: linux [Seleccionar]

$ sudo cp /boot/grub/menu.lst.backup /boot/grub/menu.lst



 Cambiar el sistema operativo por defecto


Si tenemos Windows instalado y después hemos instalado Ubuntu, la configuración de GRUB por defecto hará que arranque Ubuntu. Si por algún motivo necesitamos que arranque Windows por defecto, veamos los pasos a seguir.

    * Editamos el archivo de configuración del menú de arranque de GRUB:
Código: linux [Seleccionar]

$ sudo gedit /boot/grub/menu.lst

    * Buscamos la siguiente línea:
Código: linux [Seleccionar]

default 0

    * Cambiamos el 0 por el número que ocupe el sistema operativo en la lista que queremos que se inicie por defecto, empezando por 0.
    * Guardamos los cambios y cerramos el editor.

Cambiar el tiempo de espera

En Ubuntu, GRUB deja por defecto 10 segundos para permitir la selección del sistema operativo o versión del kernel. Este tiempo puede parecer excesivo o demasiado breve. Para modificarlo basta con seguir los siguientes pasos:

    * Editamos el archivo de configuración del menú de arranque de GRUB:
Código: linux [Seleccionar]

$ sudo gedit /boot/grub/menu.lst

    * Buscamos la siguiente línea:
Código: linux [Seleccionar]

timeout         10

    * Modificamos el valor 10 por el deseado, teniendo en cuenta que se trata de segundos.
    * Guardamos los cambios y cerramos el editor.


Ocultar el menú


Si utilizamos normalmente sólo un sistema operativo o una versión del kernel, es molesto que nos aparezca el menú en cada arranque del sistema. GRUB permite configurar el menú de modo que no se muestre al arranque salvo que presionemos la tecla Escape (Esc) durante el mismo. Para hacer esto, seguimos los siguientes pasos:

    * Editamos el archivo de configuración del menú de arranque de GRUB:
Código: linux [Seleccionar]

$ sudo gedit /boot/grub/menu.lst

Buscamos la siguiente línea:
Código: linux [Seleccionar]

#hiddenmenu

    * Borramos la almohadilla o numeral (#) de la línea, haciendo esto la descomentaremos. Debe quedar así:
Código: linux [Seleccionar]

hiddenmenu

    * Guardamos los cambios y cerramos el editor.

Proteger con contraseña

Para que ningún usuario no autorizado pueda modificar los valores de GRUB en tiempo de ejecución, podemos establecer una contraseña, de esta forma sólo pulsando la tecla 'p' e introduciendo la contraseña se podrán cambiar los parámetros del programa.

    * Editamos el archivo de configuración del menú de arranque de GRUB:
Código: linux [Seleccionar]

$ sudo gedit /boot/grub/menu.lst

Buscamos la siguiente línea:
Código: linux [Seleccionar]

#password topsecret

    * Borramos la almohadilla o numeral (#) de la línea, haciendo esto la descomentaremos. Debe quedar así:
Código: linux [Seleccionar]

password topsecret

    * Guardamos el archivo y cerramos el editor.

Ahora la contraseña es topsecret, se puede cambiar e introducir la que se desee.


Codificar contraseña

Si queremos que nadie pueda leer la contraseña en el archivo de configuración de GRUB, el programa también ofrece la posibilidad de codificarla en formato md5:
Código: linux [Seleccionar]

$ sudo grub update

    * Aparece la consola de GRUB, entonces escribimos:
Código: linux [Seleccionar]

grub> md5crypt

    * Introducimos la palabra a codificar, en este caso topsecret, el programa devolvería el valor:
Código: linux [Seleccionar]


$1$ddTCc1$8v3fWFR4m5kDfuRG5LUHo/'
$ddTCc1$8v3fWFR4m5kDfuRG5LUHo/'

    * Lo copiamos y volvemos a la consola de Ubuntu:
Código: linux [Seleccionar]

grub> quit

    * En el archivo de configuración del menú de GRUB, borramos la siguiente línea:
Código: linux [Seleccionar]

# password topsecret'

En su lugar, escribimos:
Código: linux [Seleccionar]

password --md5
password --md5 $1$ddTCc1$8v3fWFR4m5kDfuRG5LUHo/
$ddTCc1$8v3fWFR4m5kDfuRG5LUHo/

Y ya tenemos nuestro GRUB protegido por contraseña cifrada.

    * Guardamos los cambios y cerramos el editor.

Si queremos restringir el acceso a algún elemento del menú de GRUB, basta con añadir después del título del menú una línea con la contraseña, por ejemplo:
Código: linux [Seleccionar]

title Ubuntu, kernel 2.6.15-26-386 (recovery mode)
password --md5
title Ubuntu, kernel 2.6.15-26-386 (recovery mode)
password --md5 $1$ddTCc1$8v3fWFR4m5kDfuRG5LUHo/
root (hd1,0)
kernel /boot/vmlinuz-2.6.15-26-386 root=/dev/hdb1 ro single
initrd /boot/initrd.img-2.6.15-26-386
boot
$ddTCc1$8v3fWFR4m5kDfuRG5LUHo/
root (hd1,0)
kernel /boot/vmlinuz-2.6.15-26-386 root=/dev/hdb1 ro single
initrd /boot/initrd.img-2.6.15-26-386
boot

    * Guardamos los cambios y cerramos el editor.


Cambiar colores

Por defecto, en Ubuntu el menú del GRUB tiene un fondo negro con letras blancas. Para cambiar los colores del menú de arranque por otros más atractivos, seguimos los siguientes pasos.

    * Editamos el archivo de configuración del menú de arranque de GRUB:
Código: linux [Seleccionar]

$ sudo gedit /boot/grub/menu.lst

    * Buscamos la siguiente línea:
Código: linux [Seleccionar]

# color cyan/blue white/blue

    * * Borramos la almohadilla o numeral (#) de la línea, haciendo esto la descomentaremos. Debe quedar así:
Código: linux [Seleccionar]

color cyan/blue white/blue

    * Guardamos los cambios y cerramos el editor.

Ahora nos aparecerá un menú con fondo azul, al estilo de varias aplicaciones con interfaz de línea de comandos. Si queremos, podemos cambiar los colores reemplazando las palabras cyan, blue y white por otras, que representen los nombres de distintos colores en inglés.

Colocar una imagen de fondo

En vez de cambiar sólo los colores del menú, GRUB nos brinda la posibilidad de colocar una imagen de fondo para hacerlo aún más atractivo.

La imagen que se puede colocar en GRUB tiene que tener un máximo de 14 colores y un tamaño de 640 × 480 píxeles. Tiene que estar grabada en formato .xpm y conviene que esté comprimida con gzip (extensión .gz), aunque no es imprescindible.

    * Para saber desde GIMP cuántos colores tiene nuestra imagen ve a Colores -> Info -> Análisis del cubo de color...
    * Si tiene más de 14 colores, podemos reducir el número con Imagen -> Modo -> Indexado.
    * Una vez tenemos la imagen, para ponerla de fondo editamos el archivo de configuración del menú de GRUB:
Código: linux [Seleccionar]

$ sudo gedit /boot/grub/menu.lst

    * Añadimos al principio la línea:
Código: linux [Seleccionar]

splashimage=(hd0,2)/ruta_imagen/nombre_imagen.xpm.gz

Donde (hd0,2) identifica el disco y partición donde se encuentra la imagen. Esto varía según el equipo. Si tienes un solo disco duro, antes de la coma irá hd0; si tienes Ubuntu en una sola partición, pero compartiendo el disco con otro sistema operativo, posiblemente irá después de la coma un 1. Puede ayudarte ejecutar:
Código: linux [Seleccionar]

$ sudo fdisk -l

teniendo en cuenta que GRUB numera las particiones desde 0 (por ejemplo, (hd0,1) se corresponde con sda2; (hd1,2) con sdb3).

    * Reiniciamos y listo, ya tendremos una imagen de fondo en el menú de arranque.

Configuración mediante aplicación externa


Otra de las formas para configurar GRUB fácilmente es por medio de la aplicación Start-Up Manager, para instalarlo tan solo hay que hacer clic a el Deb de su aplicación, no se encuentra en los repositorios por lo tanto tendréis que descargalo aquí.

Con esta aplicación podremos configurar el GRUB de manera muy fácil, nos da a elegir todas las opciones de manera sencilla.

Para poder ejecutarlo debemos poner en la consola lo siguiente:
Código: linux [Seleccionar]

$ sudo startupmanager

15
Temas generales / grabar escritorio en formato gif
« : febrero 22, 2010, 05:10:33 pm »
Esta utilidad es fantastica. Y puede venir muy bien para generar videotutoriales (mejor dicho gif-tutoriales). Generalmente cuando queremos mostrar un video de nuestro escritorio utilizamos aplicaciones como Istanbul, xvidcap o record-my-desktop (que estan en los repositorios), entonces generamos un fichero .avi que subimos a servicios online como Youtube. Pero esto es pesado, lleva tiempo y ademas la calidad del video deja que desear pues una captura del escritorio completo, por ejemplo, se ve con un tamaño muy reducido.

Byzanz es una sencilla aplicacion que nos va a permitir grabar lo que esta sucediendo en nuestro escritorio (ya sea la pantalla completa o la porcion de la misma que le indiquemos) y generara una imagen gif animada con el resultado de la captura. Esto lo hace ideal para subirlo a paginas web o distribuirlo libremente.

Esta en los repositorios, para instalarlo ejecutamos:

$ sudo aptitude install byzanz

Entonces podemos ejecutarlo desde la linea de comandos pasandole una serie de parametros como son:

-d , graba un video con la duracion indicada
-l , crear un gif que se repite continuamente
-c, grabar la posicion del cursor
-x , posicion x de la ventana (cuando se captura una porcion)
-y , posicion y de la ventana (cuando se captura una porcion)
-w , ancho de ventana (cuando se captura una porcion)
-h , altura de ventana (cuando se captura una porcion)

si no se pasan estos ultimos cuatro parametros, se hace una captura del escritorio completo.

Aqui un Ejemplo, para capturar un rectangulo de 100×100 pixeles a un fichero llamado fichero.gif:

$ byzanz-record -c -x 0 -y 0 -w 100 -h 100 -l fichero.gif

Pero tampoco hay que complicarse tanto, porque Byzanz puede instalarse como un applet mas del panel y entonces ya podemos seleccionar si queremos capturar una porcion o la ventana completa, ademas de la duracion de la captura (click en el circulo para iniciar, click otra vez para parar):

Páginas: [1] 2 3
. . . . . . . .