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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Temas
Páginas: [1] 2 3
1  Programación / Programación C/C++ / Cambiar la versión por defecto de una librería estática al ejectuar un programa en: 12 Enero 2015, 21:01 pm
Buenos días a todos. Este fin de semana he estado trabajando en un pequeño proyecto de programación, un juego, en C++ utilizando la librería SFML.

El caso es que me gustaría poder ejectuar el juego en un ordenador de mi instituto, que es un ordenador un poco antiguo y que no tiene todas las librerías de C++ a la última versión (es una distro linux basada en ubuntu). No puedo instalar ni cambiar nada, pues evidentemente no me dejan  :xD

Así pues lo que hice fue compilar el proyecto e introducir con el ejecutable todas las librerías que se pudiesen necesitar (omito las que son requeridas por SFML, pues son irrelevantes). Es decir:
Código:
libc.so.6
ld-linux.so.2
ligcgmanager.so.0
libstdc++.so.6
libudev.so.1

Estas son las librerías que encontré en mi sistema, en el cual estoy utilizando gcc en su versión 4.9. El problema es que la máquina de mi instituto no tiene instaladas, como ya dije, las mismas versiones de estas librerías y por lo tanto me gustaría que el ejecutable usase las que yo pongo al lado y no las que hay en el sistema.

El error que aparece es este:
Código:
relocation error: ./(directorio del ejecutable)/libc.so.6: symbol _dl_find_dso_for_object, version GLIBC_PRIVATE not defined in file ld-linux.so.2 with link time reference

Un saludo y muchas gracias de antemano

EDITO: La máquina puede ejecutar juegos que no requieran mucha potencia, por lo que ese no es el problema
2  Programación / Programación General / Distancia en una estructura de nodos en: 23 Diciembre 2014, 22:36 pm
Buenos días a todos, estoy resolviendo un problema en la siguiente web: codingame.com (totalmente recomendada si no la conociais). El caso es que para resolverlo he creado una clase como esta:

Código
  1. class Node {
  2.    int id;
  3.  
  4.    final List<Node> connectedNodes = new List<Nodes>();
  5.  
  6.    Node(this.id);
  7.  
  8.    void connectNodes(Node otherNode) {
  9.        if (otherNode == null) return;
  10.  
  11.        connectedNodes.add(otherNode);
  12.        otherNode.connectedNodes.add(this);
  13.    }
  14.  
  15.    void removeLinks(Node otherNode) {
  16.        if (otherNode == null) return;
  17.  
  18.        connectedNodes.removeWhere((node) => node == otherNode);
  19.        otherNode.connectedNodes.removeWhere((node) => node == this);
  20.    }
  21. }

Y en el main tengo la siguiente lista:

Código
  1. List<Node> nodes = new List<Node>(size);

Ahora bien, necesito una función para encontrar la distancia minima entre dos nodos. Tras devanarme los sesos durante un buen rato, he escrito la siguiente función que (sorpresa, sorpresa), no funciona.

Código
  1. int findDistance(int id1, int id2) {
  2.        int count = 0;
  3.  
  4.        if (id1 == id2) return 0;
  5.  
  6.        Node node1 = nodes[id1];
  7.        Node node2 = nodes[id2];
  8.  
  9.        List<int> idsExpanded = new List<int>();
  10.        List<int> distances = new List<int>();
  11.  
  12.        void expand(Node n1) {
  13.            count++;
  14.  
  15.            for (var subNode in n1.connectedNodes) {
  16.                if (subNode.id == id2) distances.add(count);
  17.  
  18.                if (!idsExpanded.contains(subNode.id)) {
  19.                    idsExpanded.add(subNode.id);
  20.                    expand(subNode);
  21.                }
  22.            }
  23.  
  24.            count--;
  25.        }
  26.  
  27.        expand(node1);
  28.  
  29.        // Las ordena de menor a mayor
  30.        distances.sort();
  31.  
  32.        return distances.first;
  33.    }

He buscado información sobre búsqueda en árboles y grafos por ahí, pero debido a que mis conocimientos de algoritmos son muy limitados (no soy universitario ni nada de eso, he aprendido por mi cuenta) no suelo entender las páginas que encuentro.

Agradecería si alguien me pudiese explicar el método que debería usar o cual es la manera optima de diseñar esta función.

El maravilloso lenguaje que estoy usando es Dart, una especie de mezcla entre javascript y Java, para que nadie se asuste  :xD

Un saludo y gracias de antemano.

PD: El problema es el Skynet Finale - Level 2, de los difíciles, por si alguien ya conocía la página
3  Sistemas Operativos / GNU/Linux / No se puede cambiar el volumen en: 25 Agosto 2014, 17:04 pm
Buenos días a todos, ayer estaba configurando diferentes opciones para grabar una partida de un videojuego en linux, en concreto estaba atascado con el sonido, porque no se grababa. Al final deje de intentarlo y me dí cuenta de que la barra de sonido que hay arriba había desaparecido y que las teclas para subirlo, bajarlo o mutearlo no funcionaban.

Puede que haya borrado algo o instalado algo que no debía, pero he intentado de todo y no se me ocurre que puede pasar.

Mi so es Elementary OS, que está basado en Ubuntu, así que la solución para uno funcionará para el otro.

Un saludo y muchas gracias por adelantado.
4  Sistemas Operativos / GNU/Linux / ¿Funcionará linux con estás piezas? en: 3 Julio 2014, 22:05 pm
Buenas a todos, he estado ahorrando todo el año y finalmente tengo suficiente para comprarme un pc a piezas, con un presupuesto de 700€. Esta es la configuración:

www.pccomponentes.com/pccly/B873E083

La verdad es que me gustaría tener solo linux de momento y no sé si funcionará bien o dará problemas de drivers con la placa base y la gráfica. Y a parte quisiera saber que opinan del pc, que cambiarían, etc.

Un saludo y muchas gracias de antemano
5  Sistemas Operativos / GNU/Linux / Error de tamaño al restaurar una partición en: 30 Abril 2014, 19:39 pm
Buenos días a todos, estoy instalando Linux en mi portátil y como es un HP con 4 particiones primarias ya instaladas por defecto seguí este tutorial para poder instalarlo.

http://www.nosoyeltipicofriki.com/2011/02/03/instalar-ubuntu-linux-en-un-portatil-hp-con-4-particiones-primarias/

Ya hice un backup en un disco duro externo, borré la partición /dev/sda2 y creé partición extendida y las tres virtuales en su interior.

La copia de seguridad pesa unos 40 GB y la partición en la que estaba tenía una capacidad de 450GB. Ahora quiero recuperarla a una partición de 300GB NTFS y sin embargo cuando lo intento me salta un error diciendo que la nueva partición es más pequeña que la partición original.

Esto es verdad, sin embargo el backup pesa tan solo 40GB y cabe de sobra en la partición de destino. No sé que estoy haciendo mal...

Un saludo y muchas gracias de antemano

PD: mil disculpas si no es el subforo correcto

PD2: es el mismo problema que esta página http://ubuntuforums.org/showthread.php?t=1589375, pero no entiendo muy bien la respuesta que le dan
6  Programación / Scripting / [Python] Introducir la contraseña de un usario desde el propio script en: 21 Abril 2014, 21:19 pm
Buenos días a todos, estoy creando un pequeño programa en python que recorre una lista con usuarios y ejecuta el comando para abrir firefox en cada uno de ellos.

El código es el siguiente:

Código
  1. #!/usr/bin/python
  2.  
  3. import os
  4.  
  5. lista_usuarios = ['pepe', 'mario', 'jorge']
  6. lista_contrasenas = ['fosil', 'matrix', 'maria']
  7.  
  8. for user in lista_usuarios:
  9.    os.system("su " + user + " '-c firefox'")

El problema es que la ejecución del script se va deteniendo para preguntarme la contraseña y esto es algo que no quiero. Me gustaría poder introducir la contraseña directamente desde el script, sabiendo que están todas guardadas en otra lista.

Un saludo y muchas gracias de antemano
7  Programación / Programación C/C++ / Duda para rotar un punto en función de otro en: 5 Abril 2014, 17:54 pm
Buenos días a todos, estoy creando un programa en C++ y quiero rotar un punto alrededor de otro. He estado buscando en internet y he encontrado en wikipedia una manera de rotarlo alrededor del origen de coordenadas (el punto 0,0).

http://es.wikipedia.org/wiki/Matriz_de_rotaci%C3%B3n

Lo que dice esta página es básicamente que para rotar un punto hay que multiplicarlo por la matriz de rotación, es decir, las coordenadas del punto quedarían así:

Código
  1. new_x = x * cos(angulo) - y * sen(angulo);
  2. new_y = x * sen(angulo) + y * cos(angulo);

Pero yo necesito que gire alrededor de otro punto y por más que lo intento no lo consigo (mi nivel de matemáticas de 1º de bachillerato no da para mucho en estos temas  ;D).

Un saludo y muchas gracias de antemano.
8  Foros Generales / Dudas Generales / ¿Por qué el binario fue (y es) más efectivo? en: 5 Marzo 2014, 19:20 pm
Buenos días a todos, el otro día estaba leyendo un artículo sobre los origenes de la informática y me surgió una duda, a ver si alguien la puede resolver  :D

En el artículo decía que una de las primeras computadoras fue la ENIAC, que era decimal, ocupaba varias habitaciones y pesaba treinta toneladas. Más adelante apareció la EDVAC, que fue la primera en utilizar el código binario y en el artículo se menciona que esto redujo significativamente el tamaño y la complejidad de esta.

Mi pregunta es, básicamente, ¿por qué el uso la aritmética binaria redujo el tamaño y el peso de la máquina? Es decir, ¿por qué el binario fue más efectivo que el decimal?

Un saludo y gracias de antemano

PD: No sabía muy bien en que subforo colocar este tema, mil disculpas si no es el acertado  ;D
9  Programación / Programación C/C++ / Algunos problemas de memoria con SFML 2.1 en: 27 Enero 2014, 00:08 am
Buenos días a todos, estoy realizando un proyecto con SFML (en su versión 2.1) y llegados a un determinado punto me vi obligado a usar los sound buffers para la correcta reproducción de sonidos.

Funciona todo perfecto (los sonidos se cargan y suenan sin ningún problema), pero el compilador me tira un segmentation fault al llegar al final de la ejecución del programa. Ni siquiera es apreciable para el usuario que vaya a ejecutarlo, pero no me gustaría que tenga ningún problema de memoria cuando este terminado.

Probé a compilar estáticamente y el error ya no ocurre, sin embargo el programa consume mucha más memoria y esto es algo que tampoco quiero.

Mi pregunta es básicamente si alguien ha tenido alguna vez estos problemas de memoria al usar los sonidos en SFML y ya de paso me gustaría que me aclararan por qué la versión estática del programa consume más memoria y más cpu que la versión dinámica.

Un saludo y muchas gracias de antemano
10  Programación / Programación C/C++ / Duda sobre las expresiones lambda en C++11 en: 17 Enero 2014, 20:39 pm
Buenos días a todos, estoy siguiendo un tutorial para C++11 y me he topado con las expresiones lambda, las cuales no entiendo en aboluto  :P
Este es el código:
Código
  1. auto found = std::find_if(mChildren.begin(), mChildren.end(),
  2.                              [&] (Ptr& p)->bool{return p.get() == &node; }); //Aqui esta la maldita xDD

El principio lo comprendo todo, pero cuando llego al tercer argumento de std::find_if literalmente me pierdo. Agradecería si alguien me pudiera explicar paso a paso lo que significa cada cosa, porque los tutoriales que he visto no los entiendo tampoco.

Un saludo y gracias de antemano.
Páginas: [1] 2 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines