Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - SeC

#1
GNU/Linux / Configuración jhbuild [problema]
24 Octubre 2010, 16:27 PM
Hello world,

Quiero indagar en la compilacion de una aplicacion usando jhbuild, para irme por el lado del desarrollo de gnome, pero apenas en la configuracion de jhbuild ya tengo un problema, he googleado, pero no he conseguido solucionar el problema, bueno diré lo que hice paso a paso a ver si alguien puede ayudarme =) ,

Estoy siguiendo esta guía para que me entiendan mejor (si es que no me explico correctamente): http://library.gnome.org/devel/jhbuild/2.30/jhbuild.html#getting-started

Esto es lo que hice (paso a paso):

En un directorio nuevo:

Código (bash) [Seleccionar]
$ git clone git://git.gnome.org/jhbuild
Código (bash) [Seleccionar]
$ cd jhbuild
$ ./autogen.sh
...
$ make
...
$ make install
...
$


luego agrege jhbuild a mi bashrc

Código (bash) [Seleccionar]
echo PATH=$PATH:~/.local/bin >> ~/.bashrc

luego copie el sample jhbuildrc a el home de mi user

Código (bash) [Seleccionar]
cp sample.jhbuildrc ~/.bashrc

Lo modifique, cree un directorio llamado "testing" y dentro de el otros dos llamados "gnome2" y "opt" tal y como se ve en el archivo de configuracion que dejé así: http://pastebin.com/pnkB2Dub

Y ahora ejectuto:
Código (bash) [Seleccionar]
jhbuild sanitycheck para comprobar que tengo lo necesario y me falta lo que se ve:

Código (bash) [Seleccionar]
sec ~/testing$  jhbuild sanitycheck
automake-1.8 not found
automake-1.9 not found
Could not find DocBook XSL Stylesheets in XML catalog
cvs not found
svn not found


hago lo que recomienda la guía que mencione al principio :
Código (bash) [Seleccionar]
jhbuild bootstrap
y es cuando ocurre el problema, me aparece el error:

Código (bash) [Seleccionar]
sec ~/testing$  jhbuild bootstrap
*** Checking out automake-1.8 *** [1/4]
*** Configuring automake-1.8 *** [1/4]
./configure --prefix ~/testing/opt/gnome2 --libdir '~/testing/opt/gnome2/lib64'  --disable-static --disable-gtk-doc
configure: error: expected an absolute directory name for --libdir: ~/testing/opt/gnome2/lib64
*** Error during phase configure of automake-1.8: ########## Error running ./configure --prefix ~/testing/opt/gnome2 --libdir '~/testing/opt/gnome2/lib64'  --disable-static --disable-gtk-doc  *** [1/4]

 [1] Rerun phase configure
 [2] Ignore error and continue to build
 [3] Give up on module
 [4] Start shell
 [5] Reload configuration
 [6] Go to phase "wipe directory and start over"
 [7] Go to phase "clean"
 [8] Go to phase "distclean"
choice:


Se que hice un poco extenso el tema, pero intente dar toda la información que consideré relevante, si alguien puede ayudarme, se lo agradecería :) , desde ya gracias .
#2
PHP / Duda arreglos asociativos
18 Abril 2010, 16:42 PM
Estaba haciendo un ejercicio y quise hacerlo usando arreglos asociativos, el problema creo que lo tengo en la sintaxis (aunque he mirando en php.net y creo lo hago bien), lo que intento hacer es algo así: (con el código voy explicando)

Código (php) [Seleccionar]
for($i=0;$i<$cant;$i++){  #cant es arbitrario
    $alumnos=array($i => array("nombre" => $nombres[$i]));
}


$nombres[] es una arreglo con indice numerico ascendente que contiene solo nombres, estilo:

Código (php) [Seleccionar]
$nombres[0] = "pedrito";
$nombres[1] = "pepito";
$nombres[2] = "felipito";


Y lo que intento con el código es en cada iteracion es ir seteando cada posición del arreglo, osea primero asigno algo a la pos 0,1,2,3... y lo que asigno es un arreglo asociativo de forma que quede algo así:

Código (php) [Seleccionar]

Array
(
            [0] => Array
                (
                    [nombre] =>Tomy
                )

            [1] => Array
                (
                    [nombre] => Carlitos
                )

            [2] => Array
                (
                    [nombre] => Juanito
                )
)


Bueno y finalmente lo que quiero hacer (aparte de tener esa estructura de mi array ) es mostrar los datos en cada iteración para ver que se asigno bien lo que yo quería y es acá donde no muestra nada, por ello se que tengo un error :/

Código (php) [Seleccionar]
for($i=0;$i<$cant;$i++){  #cant es arbitrario
    $alumnos=array($i => array("nombre" => $nombres[$i]));
    echo $noticias[$i]["nombre"];
}


A ver si alguien es tan amable de ayudarme :P , se me ocurre que tengo algun error de sintaxis, aunque la verdad nose que será.

PD: Lo que quiero estructuralmente es algo así (aunque con lo de arroba creo que quedo claro)  http://cl.php.net/manual/en/function.array.php#52885
( como el arreglo $fruits que crean .

Saludos y gracias de antemano a quienes contesten.
#3
Java / Expresiones regulares en Java
3 Abril 2010, 20:14 PM
Bueno esta publicación consiste en un básico ejemplo del uso de expresiones regulares en java. Ademas ya que estoy comenzando en este lenguaje recuerdo ese dicho de: "Enseñando/compartiendo se aprende", así es que vamos allá:

¿ Que son las expresiones regulares ?

CitarUna expresión regular, a menudo llamada también patrón, es una expresión que describe un conjunto de cadenas sin enumerar sus elementos. Por ejemplo, el grupo formado por las cadenas Handel, Händel y Haendel se describe mediante el patrón "H(a|ä|ae)ndel".

Citado de: Wikipedia

¿ Que necesitamos para usar expresiones regulares en Java ?

En Java a partir del JDK 1.4 se nos proporciona el paquete java.util.regexp el cual está formado por dos clases, que explicaré a continuación, la clase Matcher y la clase Pattern .


Las cuales incluiremos en nuestro programa de la siguiente manera:

import java.util.regex.Matcher;  
import java.util.regex.Pattern;  


Algunos métodos interesantes de la clase "Matcher":

int end(int group)  

Devuelve el índice del último carácter más 1 de la coincidente con la expresión regular.

boolean find()  

Busca en la cadena de texto a analizar a partir del último matching, la secuencia de caracteres que puede concordar con la expresión regular

boolean find(int start)  

Lo mismo que find() , pero empieza a buscar a partir de un índice que le es dado como parámetro.

String group()  

Devuelve la cadena que ha sido aceptada por la expresión regular.

String group (int group)  

Es el equivalente en perl a $n. Es decir, si tenemos una expresión regular tal que : “((a)(b)(c))”, group(2) sería a.


Algunos métodos interesantes de la clase "Pattern":

static Pattern compile (String expreg)  

Crea un patrón a partir de la expresión regular dada por expreg.

static Pattern compile(String regex, int flags)  

Crea un patrón a partir de la expresión expreg teniendo en cuenta los flags. Los flags son opciones que se incluyen para tener un trato especial cuando se este trabajando con la expresión regular.
Ejemplo: si quiero que no me distinga entre mayúsculas y minúsculas, tendré que añadir el flag Pattern.CASE_INSENSITIVE.

int flags ()  

Devuelve los flags asociados a la expresión regular o patrón.

Matcher matcher(CharSequence input)  

Realizará el tratamiento del patrón sobre el texto que se le pase como entrada.

static boolean matches(String regex, CharSequence input)  

La utilidad de este método es que permite la no utilización de un matcher para indicar si una expresión regular puede albergar una cadena o parte de esta.

String pattern()  

Devuelve la expresión regular asociada al objeto Pattern sobre el que estemos trabajando.

String [] split (CharSequence input)  

Tiene el mismo significado que en Perl;es decir, dado un patrón, te crea un array de String con las diferentes cadenas en las que se ha dividido.


El ejemplo

Código (java) [Seleccionar]

import java.util.regex.Matcher; 
import java.util.regex.Pattern; 
 
public class regexpjava { 
 
       public static void main(String[] args) { 
 
           Pattern pat=null; 
           Matcher mat=null; 
           String texto="<title>Hola soy el titulo</title>"; 
           pat=Pattern.compile("<title>(.*?)</title>"); 
           mat=pat.matcher(texto); 
           System.out.println("Texto \t\t\t: "+texto); 
           if(mat.find()){ 
 
               System.out.println("Expresion regular \t: <title>(.*?)</title>"); 
               System.out.println("Match! \t\t\t: "+mat.group(1)); 
           } 
       } 
}


La salida sería la siguiente:

CitarTexto                    : <title>Hola soy el titulo</title>  
Expresion regular   : <title>(.*?)</title>  
Match!                   : Hola soy el titulo  

Bueno creo que el ejemplo es mas que entendible, como para no explicarlo, cualquier cosa aquí estamos.

Referencias:
java.util.regex
java.util.regex.Pattern
java.util.regex.Matcher
BPSMind