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ú

Mensajes - leogtz

#1091
¿por qué en C++?
#1092
Los beneficios serían mayores, para agregar elementos solo tendrías que mover un apuntador, algo sencillo, no sería tanto rollo. Sin contar que estarías trabajando en verdad con listas, no simulando listas con arreglos.
#1093
A ver, prueba el siguiente script, lo que hace es que comprueba cuál dispositivo, si wlan0, mon0 ó flkd5 está activo. Guarda en una variable el nombre del dispositivo activo:

Código (bash) [Seleccionar]
#!/bin/bash

devices=(
wlan0
mon0
flkd5
);

for device in "${devices[@]}"
do
iwconfig | grep -i "^${device}" > /dev/null && {
dispositivo=$device
}
done

echo -e "Dispositivo detectado : $dispositivo";


En una sola línea:

Código (bash) [Seleccionar]
#!/bin/bash
dispositivo=$(iwconfig | grep "^wlan0\|mon0\|flkd5" | cut -f 1 -d' ');
echo -e "Dispositivo encontrado : ${dispositivo}";



Código (bash) [Seleccionar]
#!/bin/bash
dispositivo=$(iwconfig | awk '/^(wlan0|mon0|flkd5)/ {print $1}')
echo -e "Dispositivo encontrado : $dispositivo";
#1094
@Khronos14, creo que aquí debes trabajar con listas enlazadas, no con arreglos, sería la mejor opción al ir cambiando la longitud de la lista.
#1095
Foro Libre / Re: Burradas informáticas CSI
31 Diciembre 2010, 18:20 PM
Jajajajaj, excelente!
#1096
Foro Libre / Re: Que es para ti el hacker.net?
31 Diciembre 2010, 09:28 AM
Cita de: Arcano. en 31 Diciembre 2010, 09:27 AM
Exacto. Ni tampoco pretendes ayudar a "l@s matratad@s". Sólo pretendes, cual diva en celo, fastidiar al staff.

Saludos.

Jaja.
#1097
@illera88, según tu respuesta anterior, lo que tu quieres es la coincidencia con wlan0, y ya te he dado la respuesta:

Código (bash) [Seleccionar]
coincidencia=`comando | grep -i "wlan0"`

Lee tus mensajes y verás que lo que pides no está claro.

A ver, trataré de adivinar. lo que tu quieres es que capture TODO lo de wlan0, es decir, ¿esto?:


wlan0     IEEE 802.11bgn  ESSID:"JAZZTEL_C8"
         Mode:Managed  Frequency:2.462 GHz  Access Point: 00:1A:2B:4F:45:37
         Bit Rate=1 Mb/s   Tx-Power=20 dBm
         Retry  long limit:7   RTS thr:off   Fragment thr:off
         Encryption key:4530-3031-4432-3045-3942-3943-38
         Power Management:off
         Link Quality=59/70  Signal level=-51 dBm
         Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
         Tx excessive retries:0  Invalid misc:0   Missed beacon:0



Prueba lo siguiente:
Código (bash) [Seleccionar]
salida=`perl -E '$s = qx(iwconfig) =~ m/^(wlan0.*^$)/sm; print $s;'`
echo -e "wlan0 -> ${salida}";


#1098
Programación General / Re: KEYPRESSHER
31 Diciembre 2010, 02:26 AM
Me refería al lenguaje de programación.
#1099
No, no es lo mismo. vector es propio de notación matemática, aunque también es aplicable aquí. Matriz es diferente de arreglo o array.
#1100
Scripting / Facebook Manager [ Perl ]
31 Diciembre 2010, 00:45 AM
Antes que nada, no pretende distribuir este pequeño programa, solo lo pongo a su disposición porque para mi es muy útil, lo desarrollé hace unos días.

Otra de las razones por las que no lo pongo a distribución es porque se necesitan algunos módulos que deberán instalar ustedes. Si no saben instalar módulos yo les enseñaré.

Otra cosa, no corre en Windows, es solo para GNU/Linux, claro que se puede correr sobre Windows, pero es mucho más engorro.

Ah, otra cosa, necesitan instalar fbcmd.




¿Y por qué no hacer todo esto directamente desde facebook.com?
Lo hice porque a veces no quiero entrar a facebook, simplemente quiero poner un status, o ver el estado de alguien
o lo que sea. Aparte si entro a veces me agarran en el chat.

Para que funcione necesitan algunos módulos, Gtk2, Gtk2::GladeXML, entre otros, instalarlos es muy sencillo, yo les
enseñaré como.

INSTALAR MÓDULOS DESDE CPAN

CitarCPAN es el acrónimo de Comprehensive Perl Archive Network. Es un enorme archivo de software escrito en Perl, así como de
documentación sobre el mismo. Tiene presencia en la Web a través de su sitio www.cpan.org y sus 236 mirrors distribuidos
por todo el mundo.

Primero, ingresamos en:
http://search.cpan.org/

Ingresamos el nombre del módulo que queremos instalar. En este caso Gtk2, seleccionamos el primero que sale en la lista.
Al lado derecho sale la imagen del autor, debajo dice "Downloads", descargamos el módulo y lo descomprimimos:

Código (bash) [Seleccionar]
leo@leo-desktop:~/Escritorio/test$ ls -1
Gtk2-1.222.tar.gz
leo@leo-desktop:~/Escritorio/test$ tar zxvf Gtk2-1.222.tar.gz
...
...
...


Nos creará una carpeta:

Código (bash) [Seleccionar]
leo@leo-desktop:~/Escritorio/test$ ls -1
Gtk2-1.222
Gtk2-1.222.tar.gz


Entramos en ella e instalamos de la siguiente manera:

Código (bash) [Seleccionar]
cd Gtk2-1.222/
sudo perl Makefile.PL
sudo make
sudo make test
sudo make install


Y eso es básicamente la instalación de módulos, también podemos hacerlo através de la utilidad cpan:
Código (bash) [Seleccionar]
sudo cpan i /Gtk2-1.222/

Así continuamos con los demás modulos que nos pida instalar.

El programa está desarrollado con glade-e
Instalación:

Código (bash) [Seleccionar]
sudo apt-get install glade

Seguro que les pedirá instalar muchos módulos, así que ¡paciencia!.

Les dejo el código y los archivos necesarios para su funcionamiento:

Código (perl) [Seleccionar]
#!/usr/bin/perl -w
# Leo Gutiérrez R.
# leorocko13@hotmail.com
use strict;
use Gtk2 -init;
use Gtk2::GladeXML;
use 5.010;
use encoding ':locale';
use constant TRUE => 1;
use constant FALSE => !TRUE;

# Variables globales indispensables.
########################################################################

my($programa, $ventana_principal);
$programa = Gtk2::GladeXML->new('hola.glade');
$ventana_principal = $programa->get_widget('window1');
my $ventana_de_estado = $programa->get_widget('ventana_de_estado');
my $ventana_about = $programa->get_widget('about');

# Cargamos los componentes.
$programa->signal_autoconnect_from_package('main');

# La señal para que cuando cierre se CIERRE TODO.
$ventana_principal->signal_connect(destroy => sub
{
Gtk2->main_quit();
}
);

$ventana_de_estado->signal_connect(destroy => sub
{
$ventana_de_estado->hide();
}
);

$ventana_about->signal_connect(destroy => sub
{
$ventana_about->hide();
}
);

# Mostrar todo.
$ventana_principal->resize(520, 570);
$ventana_principal->show_all();
#$ventana_principal->set_resizable(FALSE);

my $user_selected;
my @friends;

########################################################################

# Agregar el combo.
my $combito = $programa->get_widget('combito');
&llenarComboAmigos;
$combito->signal_connect('changed' => \&on_combito_changed);
$combito->set_active(0);

# Agregar los TextBox
my $texto = $programa->get_widget('texto');
my $texto_2 = $programa->get_widget('texto_2');

# Agregar la barra de status
my $status = $programa->get_widget('status');
my $context_id = $status->get_context_id("");

# Agregar la imagen de perfil
my $imagen_perfil = $programa->get_widget('perfil_Image');

# Agregar texto salida de información
my $textoSalida = $programa->get_widget('textoSalida');
my $buffer = $textoSalida->get_buffer();

$ventana_principal->show_all();
Gtk2->main();

sub on_boton_cerrar_clicked
{
  Gtk2->main_quit();
}

sub on_salirFileItem_activate
{
Gtk2->main_quit();
}

sub llenarComboAmigos
{
for(qx|fbcmd friends|)
{
push(@friends, m/^\d+\s+(.*)/);
}
map($combito->append_text($_), sort @friends);
}

sub on_combito_changed
{
my ($cb) = @_;
if($cb->get_active())
{
$user_selected = $cb->get_active_text();
$status->push($context_id, sprintf("Usuario seleccionado : %s", $user_selected));
$buffer->set_text("");
}
}

sub on_texto_activate
{
unless ($user_selected)
{
$status->push($context_id, sprintf("Seleccione un usuario para enviar el mensaje."));
return;
}

my $mensaje = $texto->get_text();
$mensaje =~ s/"/\\"/g;
$mensaje =~ s/`/\\`/g;
$mensaje =~ s/\(/\\(/g;
qx|fbcmd wallpost "$user_selected" "${mensaje}"|;

$status->push($context_id, sprintf("Mensaje publicado en muro de usuario : %s", $user_selected));
}

sub on_texto_2_activate
{
my $mensaje = $texto_2->get_text();
$mensaje =~ s/"/\\"/g;
$mensaje =~ s/`/\\`/g;
$mensaje =~ s/\(/\\(/g;
qx|fbcmd status "${mensaje}"|;
$status->push($context_id, sprintf("Status cambiado"));
}

sub on_verImagenDePerfil_activate
{
unless ($user_selected)
{
$status->push($context_id, sprintf("Seleccione un usuario de la lista."));
return;
}

qx|fbcmd ppics "$user_selected" . "-pf=[tname].jpg" -ppsize=1|;
$imagen_perfil->set_from_file("$user_selected" . ".jpg");
unlink("$user_selected" . ".jpg") or warn("No se pudo borrar el archivo \"${user_selected}.jpg\"");

}

# Ventana de estado

sub on_verEstado_activate
{
unless ($user_selected)
{
$status->push($context_id, sprintf("Seleccione un usuario de la lista."));
return;
}

my $vbox = Gtk2::VBox->new(FALSE, 5);

my $frame = Gtk2::Frame->new("Amigo - Estado");
$frame->set_border_width(5);

my $sw = Gtk2::ScrolledWindow->new (undef, undef);
   $sw->set_shadow_type ('etched-out');
$sw->set_policy ('automatic', 'automatic');
$sw->set_size_request (600, 100);
$sw->set_border_width(5);

my $tview = Gtk2::TextView->new();
  my $buffer = $tview->get_buffer();
my $s = &getStatus();
$buffer->set_text($s);

$sw->add($tview);
$frame->add($sw);
$vbox->pack_start($frame,TRUE,TRUE,4);
$vbox->show_all();
$ventana_de_estado->add($vbox);

$ventana_de_estado->show();

}

sub getStatus
{
my $s = qx|fbcmd fstatus "$user_selected"|;

my($status) = $s =~ m/^$user_selected\s+(.*)/gims;
#$status =~ s/\s{22}(.*)/\n$1/gi;
#$status =~ s/^(\s+)(.*)/$2/gim;

return $s;

}

sub getPresence
{
my($s) = qx(fbcmd finfo online_presence "${user_selected}") =~ m/(active|offline)$/;
return $s;
}

sub on_verPresencia_activate
{
$buffer->set_text("Presencia : " . &getPresence());
}

sub on_aboutFileItem_activate
{
$ventana_about->run();
$ventana_about->hide();
}


Archivos:
http://rapidshare.com/files/440038591/facebook_manager.rar
http://www.megaupload.com/?d=BZQBNEVS