elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Temas
Páginas: [1] 2
1  Sistemas Operativos / GNU/Linux / How-To Guardar videos Flash desde chrome en: 5 Marzo 2011, 00:03 am
Bienvenidos a posiblemente uno de los how-to más dementes de elhacker.net

Créditos: No recuerdo quien se curró el script, pero era un tío majo en stackoverflow

Va, ahora, al asunto.

No me he parado a mirar si el tema está ya comentado por aquí, tampoco me voy a extender a explicar a fondo los entresijos del funcionamiento del método, pero con el script y el método que ahora comentaré, es posible guardar los videos en flash que se tengan cargados en chrome.

Desconozco si funciona cono otros exploradores.

Todo esto se debe hacer sin cerrar la pestaña donde tenemos cargado el video en el explorador

Código
  1. !#/usr/bin/env bash
  2.  
  3. for flashpid in $(pgrep -f flashplayer.so); do
  4.    cd "/proc/$flashpid/fd"
  5.    for video in $(file * | grep '/tmp/Flash' | sed 's/\(^[0-9]*\).*/\1/g'); do
  6.        echo "/proc/$flashpid/fd/$video"
  7.    done
  8. done
  9.  

Supongamos que hemos cargado un único video en chrome, como hice yo hace unos minutos cuando se me ocurrió la idea de subir el método que llevo usando unos días.

Abrimos el Shell, lanzamos nuestro super script y obtenemos lo siguiente:

[akai@Arch-Akai ~]$ ./woot.sh
/proc/13266/fd/11

Tenemos un descriptor de fichero del tamaño del video que apunta a un archivo borrado de /tmp . Qué pena, no?

Pero nosotros somos más listos

[akai@Arch-Akai ~]$ cat /proc/13266/fd/11 >> 1.flv

Ábrase el fichero 1.flv con el reproductor deseado, disfrútese las veces que quiera del video que estabas viendo en youtube (en realidad todos sabemos que estabas en sitios más nefarios, pillín) en forma de contenido en flash, para cuando no te apetezca esperar, o estés sin internet.
2  Comunicaciones / Dispositivos Móviles (PDA's, Smartphones, Tablets) / HTC Wildfire VS Samsung Galaxy 3 ¿cual elegir? en: 3 Diciembre 2010, 22:47 pm
Estoy pensando en cambiar de móvil y por cuestiones de puntos (vodafone) y precio había considerado estas dos opciones:

(Esto es lo que considero que tiene uno mejor frente al otro)
HTC Wildifre: tiene mayor almacenamiento propio, cámara de 5 MP con flash

Samsung Galaxy 3: mejor pantalla (240x400 pixels), mejor procesador.

No tengo claro cual de los dos elegir, pero me estaba inclinando algo más hacia el Galaxy. ¿Qué opináis y por qué?

3  Programación / Programación C/C++ / Duda con licencias de Qt en: 15 Noviembre 2010, 14:01 pm
No se si este es exactamente el lugar correcto para este post, pero debido a que no encontraba una sección donde pudiese encajar bien y que en Qt se trabaja con C++... Entraré en la cuestión:

Estaba pensando en realizar una pequeña aplicación con interfaz gráfico utilizando Qt 4.7 que es posible distribuya de alguna forma, pero no tengo previsto que a su vez se distribuya el código de la misma. Si no me equivoco, Qt prevé dos clases de licencia:

-Comercial: No tienes por qué distribuir el código de tus aplicacionesni modificaciones que hagas sobre el propio código de Qt. A su vez puedes distribuir tus aplicaciones según te plazca.
-LGPL 2.1 : Estás obligado a que cualquier aplicación que desarrolles  utilizando Qt, modificaciónes del código de Qt, o a su vez cualquier librería que crees con Qt y los programas/librerías derivados de ella los liberes bajo esta licencia de uso libre.

¿Me equivoco en algo? ¿Existe alguna otra opción que se pueda emplear para un programa de código cerrado utilizando Qt sin tener que recurrir a una licencia comercial?

Gracias de antemano a todo aquel que aporte algo de información al respecto.
4  Programación / Programación C/C++ / Duda con sobrecarga de operador ( ) en: 15 Noviembre 2010, 09:13 am
En una de las prácticas de una asignatura que curso en la facultad, estamos trabajando con un programa que convierte imágenes en formato PPM en RGB a blanco y negro ascii.

Compilando el programa, me surge el siguiente error:

-------------- Build: Debug in TaulaHashP ---------------

Compiling: image.cc
C:\Users\Akai\Facultat\2 EDA\Pràctiques\P2\TaulaHashP\image.cc: In copy constructor 'ImageColor::ImageColor(const ImageColor&)':
C:\Users\Akai\Facultat\2 EDA\Pràctiques\P2\TaulaHashP\image.cc:40: error: no match for call to '(const ImageColor) (int&, int&)'
C:\Users\Akai\Facultat\2 EDA\Pràctiques\P2\TaulaHashP\image.h:20: note: candidates are: Pixel& ImageColor::operator()(int, int) <near match>

El método que falla es el constructor de copia:

Código
  1. ImageColor::ImageColor(const ImageColor &der) {
  2.    width=der.getWidth();
  3.    height=der.getHeight();
  4.    data = new Pixel[width*height];
  5.    for(int i=0;i<height;i++){
  6.        for(int j=0;j<width;j++){
  7.            data[coord2index(i,j)]=der(i,j);
  8.        }
  9.    }
  10. }

Concretamente en la linea:
Código
  1. data[coord2index(i,j)]=der(i,j);

Y la implementación de la sobrecarga de dicho operador

Código
  1. Pixel& ImageColor::operator()(int row ,int col) {
  2.  return data[coord2index(row,col)];
  3. }

Os dejo el código completo en pastebin:
http://pastebin.com/VSDB2hSS

¿Alguna idea de qué puede estar ocurriendo?

PD: uso code::blocks 10.05
5  Programación / Programación C/C++ / Debugger para C++ en Windows en: 9 Noviembre 2010, 14:34 pm
Saludos a todos:

Llevo una temporada programando en C++ sobre Windows (con Code::Blocks) y hasta ahora me ha bastado con el debugger integrado en el IDE, pero debido a que estoy empezando un proyecto más grande que lo que he hecho hasta ahora, necesito algo más potente al respecto.

Por ahora únicamente he oido de WinDbg pero no lo he llegado a usar (y el incorporado en VS 2010, que tampoco he usado puesto que me he bastado con codeblocks como IDE para programar hasta ahora).

A parte de estos dos, existen otros debuggers de confianza para windows? Y pregunta a parte, ¿de los dos citados, cual es más potente / recomendable para usar?

PD: uso windows 7
PD2: a poder ser, que no se mencione la opción de programar sobre Linux, es algo que también he hecho durante una temporada, pero estoy algo cansado de eso.
6  Informática / Hardware / Mal funcionamiento de puerto USB (Portátil: fujitsu Esprimo mobile v6535) en: 5 Noviembre 2010, 11:00 am
Desde hace unos días estoy experimentando en mi portátil que uno de los 3 puertos usb que tiene  (2 detrás-derecha, 1 derecha), concretamente el situado en el borde derecho, da problemas.

Si le conecto un ratón usb, no recibe todos los movimientos, no lo realiza de forma fluida, va a trozos... Y si es el caso de un adaptador de red inalámbrico usb, prácticamente congela el equipo.

Debido a que dicho puerto no lo uso demasiado (puesto que únicamente suelo conectar el ratón y lo hago en los de atrás por comodidad) no me había percatado de dicho malfuncionamiento.

Es posible (no lo recuerdo demasiado bien) que en algún momento mientras estaba algún dispositivo insertado se pudiese dar algún golpe (leve) hace un tiempo.

A primera vista no se aprecian daños en el puerto.

¿Qué puedo hacer? (A parte de llevarlo a la garantía, cosa que preferiría dejar como última opción debido a que es mi herramienta de trabajo diario)

PD: el portátil apenas tiene un año.
7  Programación / Desarrollo Web / Seleccionar imagen según resolución de pantalla en: 1 Noviembre 2010, 13:24 pm
Ultimamente he estado trasteando con un blog, pese a no ser precisamente ducho en desarrollo web o html y demás, y me surgió una duda a la cual no he podido encontrar demasiada información al respecto (o bien no he sabido como buscarla):

-Debido al abanico de gente con diferentes resoluciones que pueda entrar al blog, quería saber si es posible mediante algún script o código html seleccionar una imagen como fondo según la resolución de pantalla de la persona que entra al blog.

Gracias de antemano.
8  Informática / Hardware / Microsoft Natural Ergonomic keyboard 4000 (buscando algo similar) en: 24 Octubre 2010, 23:49 pm
Saludos a todos:

Resulta que estuve el otro día curioseando por la red en busca de un teclado para sustituir mi "viejo" G11. No estoy buscando un teclado para gaming puesto que dicha fase de mi vida la dejé atrás hace un tiempo. Buscaba algo más "profesional", a poder ser ergonómico y me encontré con el teclado dicho en el título



La pena es que no lo venden en España (se me ocurrió comprarlo en la página alemana de alternate o algo similar, pero antes quería más información).

¿Conoce alguien algún teclado / marca que venda teclados con un diseño similar y que no pase de los 100-120€? Descarté los que por ahora venden tanto Microsoft como Logitech en España. Son todos ergonómicos los que miré pero ninguna con esa característica de tener el teclado partido.

Gracias de antemano.
9  Comunicaciones / Redes / Acceder a un PC desde otro/ un portátil en: 24 Octubre 2010, 21:58 pm
Por distintos motivos estaba pensando en reestructurar la distribución de periféricos, pantalla y alguna cosa más de mi sobremesa a mi portátil [usando doble monitor (comprobado que lo soporta)]. La cuestión es que para ciertas tareas voy a seguir necesitando que el sobremesa esté activo (es el equipo administrador de la red de la cual dependen otros ordenadores para imprimir). Al dejarlo sin monitor estuve pensando para que pudiese desempeñar la función de administrar la red en lo siguiente:

-Configurarlo para que encendiese sin pedir usuario: Si sólo se lo iba a usar para imprimir y poco más, en principio iría bien.

Pero luego pensé en si surgían problemas o necesitaba/quería utilizarlo. Digamos que me vendría de perlas el monitor de este ordenador y no puedo permitirme ahora mismo comprar otro, así que pensé en utilizar alguna clase de control remoto de este ordenador desde el portátil.

Mi idea era poder usar el sobremesa prácticamente como si lo estuviese usando físicamente (programas, descargas y transferir archivos de uno a otro) pero desde el portátil, bien estando en la red de casa (donde tengo físicamente el sobremesa) o bien estando yo en la facultad.


Estuve curioseando por internet pero no conseguí encontrar nada en claro que me convenciese al 100%, y me quedé con las siguientes dudas:

- ¿Qué procedimientos/programas debería usar para ello?
- ¿Sería suficiente con usar Hamachi (por ejemplo) + escritorio remoto de windows (ambos (portátil y sobremesa) tienen windows 7 proffesional)?
- ¿como configurar el sobremesa "servidor" para ello?

Espero haberme expresado correctamente y que se entienda lo que planteo.

Gracias de antemano.

PD: Ambos usan windows 7 proffesional, el sobremesa de 32 bits, el portátil de 64 bits.
PD2: Características del sobremesa-> core 2 duo 4500 2.20GHz, 2 GB de RAM, nvidia 9400
10  Programación / Programación C/C++ / Ejecutar programas en Windows sin necesidad de pausas (system (pause) etc) en: 5 Octubre 2010, 12:20 pm
[El código de los dos programas usados en este pequeño tutorial se encuentran al final del post [codi]]

Para muchos se que no estoy contando nada nuevo, pero el motivo de este post es sobretodo para gente que empieza a programar, especialmente para aquellos que creen necesitar agún tipo de pausa al ejecturar programas para ver resultados (system(pause), getchar, getch etc).

Para este problema se nos plantean, entre otras, dos soluciones:
  • Compilar/ejecutar el programa con Code::Blocks [cdbl]
  • Ejecutar el programa una vez compilado vía la consola de windows [cmdw]

Vía Code::Blocks [cdbl]

Code::Blocks es un IDE (entorno de desarrollo) con compilador (podemos elegir qué compilador usar),  open source, cross plataform y gratuito. Una de sus muchas ventajas, es que cuando compilamos y ejecutamos un programa en este IDE, el propio entorno retiene la ventana mostrando el return y el tiempo empleado en la ejecución del programa (tiempo total, no sólo de ejecución de instrucciones, cuenta también el tiempo que tardamos en introducir datos vía scanf, cin y demás instrucciones que nos soliciten que pulsemos algo).

Dado que esto no es un manual de como usar Code::Blocks, me centraré en la compilación y ejecución con este entorno. Supongamos que tenemos ya un programa creado en Code::Blocks:



El recuadro rojo señala donde debemos hacer click para compilar y/o ejecutar nuestro programa. En la siguiente imagen muestro como hacer lo mismo vía el menú "Build".



El resultado de ambas es la siguiente, donde vemos que el programa se ha ejecutado, nos ha dado unos resultados y Code::Blocks lo ha detenido.






Vía consola de windows [cmdw]

Otra solución reside en ejecutar los programas vía el cmd de Windows. A diferencia de si hiciésemos doble click en el programa ya compilado (que abriría una ventana y la cerraría inmediatamente después de su uso) ejecutarlo de esta forma permite visualizar los textos, resultados etc que el programa imprima por pantalla sin que desaparezca en un instante. Procedo a explicar como:

Asumamos que ya tenemos nuestro programa compilado y deseamos probarlo. Para ello, vamos al menú inicio y buscamos cmd:




Le damos a Enter y nos aparecerá una ventana similar a esta:




En principio la ruta en la que nos encontramos es la de nuestro usuario, pudiendonos mover de directorio con el comando cd y obtener el contenido de un directorio con el comando dir:




Una vez nos encontramos en el directorio de nuestro programa, procedemos a ejecutarlo de la siguiente forma:
nombre del programa.extensión argumento 1 argumento 2....

En este caso, el programa recibe un archivo txt como argumento:





y el resultado de la ejecución es:




Conclusión

Como habréis podido observar, es bastante sencillo ejecutar programas sin necesidad de instrucciones para detenerlos al finalizar, ahorrando instrucciones como system (pause), getchar, getch ( y por ende, NO necesitamos conio.h (como librería obsoleta)).

¿Comentarios, dudas, sugerencias, feedback en general?


[codi]

class_pila.cpp
Código
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4.  
  5. class pila{
  6.  
  7. struct node{
  8.    int num;
  9.    struct node *seg;
  10.    };
  11.  
  12. node * cap;
  13.  
  14. public:
  15.    pila();
  16.    ~pila();
  17.    void push(int num);
  18.    int pop();
  19.    int top() const;
  20.    bool buidap() const;
  21.    pila & operator << (const int num);
  22. };
  23.  
  24.  
  25. pila::pila(){
  26.    cap=0;
  27. }
  28.  
  29. pila::~pila(){
  30.    while(cap){
  31.    node *aux=cap;
  32.    cap=cap->seg;
  33.    delete aux;
  34.    }
  35. }
  36.  
  37. bool pila::buidap() const{
  38. return (!cap);
  39. }
  40.  
  41. int pila::top() const{
  42.    if(!buidap())
  43.        return cap->num;
  44.    else return -666;
  45. }
  46.  
  47. int pila::pop(){
  48.    if(cap){
  49.        node *aux=cap;
  50.        cap=cap->seg;
  51.        int numaux=aux->num;
  52.        delete aux;
  53.        return numaux;
  54.    }
  55.    else return -666;
  56. }
  57.  
  58. void pila::push(int n){
  59.    node *nou;
  60.    nou=new node;
  61.    nou->num=n;
  62.    nou->seg=cap;
  63.    cap=nou;
  64.  
  65. }
  66.  
  67. pila & pila::operator << (const int num){
  68. push(num);
  69. return *this;}
  70.  
  71. int main(){
  72.    pila p1;
  73.    int num;
  74.    ifstream fitx;
  75.    fitx.open("class_pila.txt");
  76.  
  77.    if(!fitx){
  78.        cerr << "error al abrir el fichero" << endl;
  79.        return -1;}
  80.  
  81.    while(fitx >> num){
  82.    cout << num << endl;
  83.    //p1.push(num);
  84.    p1 << num;
  85.    }
  86.  
  87.    if(!p1.buidap())
  88.        cout << "pila con elementos" << endl;
  89.  
  90.    while(!p1.buidap()){
  91.    cout << p1.pop() << endl;
  92.    }
  93.  
  94.    if(p1.buidap())
  95.        cout << "WARNING: pila vacia" << endl;
  96.  
  97.    fitx.close();
  98.    return 0;
  99. }
  100.  

class_pila2.cpp
Código
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4.  
  5. class pila{
  6.  
  7. struct node{
  8.    int num;
  9.    struct node *seg;
  10.    };
  11.  
  12. node * cap;
  13.  
  14. public:
  15.    pila();
  16.    ~pila();
  17.    void push(int num);
  18.    int pop();
  19.    int top() const;
  20.    bool buidap() const;
  21.    pila & operator << (const int num);
  22. };
  23.  
  24.  
  25. pila::pila(){
  26.    cap=0;
  27. }
  28.  
  29. pila::~pila(){
  30.    while(cap){
  31.    node *aux=cap;
  32.    cap=cap->seg;
  33.    delete aux;
  34.    }
  35. }
  36.  
  37. bool pila::buidap() const{
  38. return (!cap);
  39. }
  40.  
  41. int pila::top() const{
  42.    if(!buidap())
  43.        return cap->num;
  44.    else return -666;
  45. }
  46.  
  47. int pila::pop(){
  48.    if(cap){
  49.        node *aux=cap;
  50.        cap=cap->seg;
  51.        int numaux=aux->num;
  52.        delete aux;
  53.        return numaux;
  54.    }
  55.    else return -666;
  56. }
  57.  
  58. void pila::push(int n){
  59.    node *nou;
  60.    nou=new node;
  61.    nou->num=n;
  62.    nou->seg=cap;
  63.    cap=nou;
  64.  
  65. }
  66.  
  67. pila & pila::operator << (const int num){
  68. push(num);
  69. return *this;}
  70.  
  71. int main(int argc, char **argv){
  72.    pila p1;
  73.    int num;
  74.    ifstream fitx;
  75.    fitx.open(argv[1]);
  76.  
  77.    if(!fitx){
  78.        cerr << "error opertura fitxer" << endl;
  79.        return -1;}
  80.  
  81.    while(fitx >> num){
  82.    cout << num << endl;
  83.    //p1.push(num);
  84.    p1 << num;
  85.    }
  86.  
  87.    if(!p1.buidap())
  88.        cerr << "pila amb elements" << endl;
  89.  
  90.    while(!p1.buidap()){
  91.    cout << p1.pop() << endl;
  92.    }
  93.  
  94.    if(p1.buidap())
  95.        cerr << "WARNING: pila buida" << endl;
  96.  
  97.    fitx.close();
  98.    return 0;
  99. }
  100.  

contenido de class_pila.txt:
Código:
1
5
6
7
10
20
50
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines