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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Temas
Páginas: [1] 2
1  Programación / Programación C/C++ / Compilador cree que el objeto que pusheo en vector es distinto tipo. en: 27 Mayo 2012, 00:33 am
Es un error bastante extraño, verán tengo 2 clases, una de ellas con un string como miembro y la otra tiene un vector de objetos de la otra clase y un metodo que solo crea y añade un objeto a ese vector.

Cuando tenía interfaz e implementación juntos en el mismo fichero, el compilador aceptaba el objeto sin problemas, pero después de separarlos ya no lo reconoce, aun pudiendo acceder sin problemas a la declaración de la clase del objeto.

Código
  1. #ifndef _MYHEADER_HPP_
  2. #define _MYHEADER_HPP_
  3. class A{
  4. public:
  5.    std::string someString;
  6. };
  7.  
  8. class B{
  9. public:
  10.    std::vector<A> aList;
  11. public:
  12.    void addA();
  13. };
  14.  
  15. #endif /* _MYHEADER_HPP_ */
  16.  
  17. //implementation file
  18.  
  19. #include <string>
  20. #include <vector>
  21. #include "myheader.hpp"
  22.  
  23. void B::addA(){
  24.    A a;
  25.    a.someString = "Hola";
  26.    // Here compiler says : Invalid arguments 'Candidates are: void push_back(const A &)' line 18 Semantic Error
  27.    aList.push_back(a);
  28. }
  29.  
  30.  

He intentado declarando un puntero a vector de A en vez de hacerlo de esta forma y resulta igual. También, si en B::addA() haces:
Código
  1. std::cout << a.someString << std::endl;
Accede sin problemas al objeto, con lo cual creo que puede acceder perfectamente a la declaración de la clase en ese momento.

¿Que estoy haciendo mal?

Gracias de antemano.
2  Foros Generales / Sugerencias y dudas sobre el Foro / Fallo marcar mensajes como leidos. en: 13 Febrero 2012, 22:01 pm
Hola.
Parece ser que hay algún problema con la configuración de apache o el enlace al que me lleva el foro cuando quiero marcar todos los posts como leidos en la sección de mi cuenta "Mostrar nuevas respuestas a tus mensajes". Apache me manda a un sitio al que no tengo permisos de acceder.

Echenle un vistazo plx.

Saludos!
3  Comunicaciones / Redes / Rangos IPv6 en: 12 Diciembre 2011, 22:31 pm
Hola,
En el curso superior de administración de sistemas y redes nos enseñaron muchisimas cosas sobre protocolos e ipv4, pero ipv6 solo lo mentaron.
¿Existen rangos/bloques para ipv6 asi como los hay para ipv4 (tipo a,b,c..)? Me imagino que si, si usan las máscaras de red, pero ¿cuales son? Estoy buscando en los rfcs pero no encuentro aun nada en el tema.

Saludos!
4  Programación / Java / [SRC] Obtener Titulos de un stream de audio. en: 11 Enero 2011, 01:09 am
Hola!
Me mandaron esto del instituto y creo que seria interesante compartir esta clase con ustedes, asi contribuyo un poquito ^^. Asi mientras todos hagamos esto, cumplimos con esa frase muy sonada y buena: "Ningún problema debería resolverse 2 veces".

Esta clase se encarga de mantenerse en escucha a la emisora de streaming que le digamos con el método setSource, y devuelve por pantalla el título de las canciones que esta ha reproducido.

La URL debe apuntar al stream directamente y no al playlist. Ha sido probada con servidores como shoutcast y icecast ( y el que usa M80 radio para emitir que no me acuerdo en estos momentos :D ) Para poner al programa en escucha se llama al método startLog.

Los comentarios los tengo escritos en ingles, pero he añadido una linea mas para los que lo quieran leer en español.

El codigo aqui:
Código
  1. /**
  2.  * Lectura de tags de streams de audio.
  3.  *
  4.  * 16BITBoy
  5.  */
  6.  
  7.  
  8. import java.io.BufferedInputStream;
  9. import java.io.IOException;
  10. import java.net.MalformedURLException;
  11. import java.net.URL;
  12. import java.net.URLConnection;
  13. import java.util.*;
  14.  
  15. public class StreamTitles {
  16.  
  17. /**
  18. * @param args
  19. */
  20. public static void main(String[] args) {
  21.  
  22. StreamTitleLog log = new StreamTitleLog();
  23.  
  24. //Especificamos la emisora a escuchar | Set stream URL.
  25.  
  26. try {
  27. log.setSource(new URL("http://relay5.slayradio.org:8000"));
  28. } catch (MalformedURLException e) {
  29. // TODO Auto-generated catch block
  30. e.printStackTrace();
  31. }
  32. //Que empiece el registro ;) | Start logging.
  33. try {
  34. log.startLog();
  35. } catch (IOException e) {
  36. // TODO Auto-generated catch block
  37. e.printStackTrace();
  38. }
  39.  
  40. }
  41.  
  42. }
  43.  
  44. class StreamTitleLog {
  45.  
  46. private final String tag = "StreamTitle='"; //We should look for this in the stream of bytes
  47.  
  48. private URL url = null;
  49.  
  50. //Default constructor
  51. public StreamTitleLog(){
  52.  
  53. }
  54.  
  55. public void setSource(URL url){
  56. this.url = url;
  57. }
  58.  
  59. public URL getSource(){
  60. return url;
  61. }
  62.  
  63. private void getTitle(BufferedInputStream is) throws IOException{
  64.  
  65. StringBuilder buffer = new StringBuilder();
  66.  
  67. while(true){
  68.  
  69. while(is.available() < 0){
  70. continue;
  71. }
  72.  
  73. buffer.append((char)is.read());
  74.  
  75. if(buffer.charAt(buffer.length() - 1) == '\''){
  76.  
  77. buffer.deleteCharAt(buffer.length() - 1);
  78. titles.add(buffer.toString());
  79.  
  80. System.out.println(buffer.toString());
  81.  
  82. break;
  83.  
  84. }
  85.  
  86. }
  87. }
  88.  
  89. public void startLog() throws IOException{
  90.  
  91. ArrayList<Character> buffer = new ArrayList<Character>();
  92.  
  93. //This is the get header info we need to send in order to retrieve stream titles
  94. //Esta es la info de cabecera del get que necesitamso enviar para recibir los titulos
  95. URLConnection uc = url.openConnection();
  96. uc.setRequestProperty("Connection", "close");
  97. uc.setRequestProperty("icy-metadata", " 1");
  98. uc.setRequestProperty("transferMode.dlna.org", "Streaming");
  99.  
  100. BufferedInputStream is = new BufferedInputStream(uc.getInputStream());
  101.  
  102.  
  103. //El metodo, como una videoconsola trata a un mando de juegos a la espera de
  104. //una combinacion de botones. Esa combinación será que cada uno de los caracteres
  105. //llegue al stream, si solo llega uno, tres o casi todos no nos sirve, lo queremos entero
  106.  
  107. //This method is like trying to retrieve the desired sequence of button presses.
  108. //If the sequence does not match at some point, buffer is cleared.
  109.  
  110. while(true){
  111.  
  112. while(is.available() < 0){
  113. continue;
  114. }
  115. buffer.add((char)is.read());
  116.  
  117. if(buffer.get(buffer.size() - 1) == tag.charAt(buffer.size() - 1)){
  118.  
  119. if(buffer.size() == tag.length()){
  120.  
  121. getTitle(is);
  122. buffer.clear();
  123.  
  124. }
  125.  
  126. }
  127. else{
  128.  
  129. buffer.clear();
  130.  
  131. }
  132. }
  133.  
  134. }
  135.  
  136. }
  137.  

Espero que os sea de alguna utilidad. Saludos ;)
5  Media / Juegos y Consolas / Cracktros de videojuegos y demos en: 22 Noviembre 2010, 22:11 pm
¿Alguien se acuerda de los cracktros?
Para quienes no sepan de que hablo, los cracktros eran las firmas introductorias de los equipos de cracking que salian antes de que el juego propiamente dicho iniciase su ejecución. Eran como demos pero de menor longitud y elaboración.

Estas intros por lo general estaban muy bien elaboradas, de modo que incluso a veces podias encontrarte un scrolling mucho mejor conseguido en el cracktro que el scrolling que implementaba el juego, o efectos gráficos que dificilmente te los encontrabas en el juego, además de incorporar música con melodias normalmente muy repetitivas pero sobre todo adictivas.

Por ejemplo:
http://il.youtube.com/watch?v=NwEUJO86vbE
http://il.youtube.com/watch?v=uMkciRaZXxk
http://il.youtube.com/watch?v=AzIq18xBCJg

Yo por lo que viví recuerdo algunas de juegos en Windows 95 / ms-dos pero en especial las que se hacian en la primera Playstation.

La que aún resuena en mi cabeza la musiquilla es esta, de lightforce:
http://www.youtube.com/watch?v=iqYoAV9y7IM&feature=related

¿y a ustedes, os gustan las intros y demos?

6  Programación / Java / Comprobar entrada del teclado en: 1 Noviembre 2010, 13:16 pm
Hola,

He escrito este trozo de código con la intención de que el programa no se pare en caso de que el usuario no haya pulsado una tecla, pero que la recupere en caso de que si lo haya hecho.

Código
  1. private byte checkInput(){
  2.  
  3. Scanner in = new Scanner(System.in);
  4. if(in.hasNext()){
  5. return in.nextByte();
  6. }
  7. return 0;
  8.  
  9. }
  10.  

Esa función hace que cuando llame a in.hasNext() o hasNextByte() se pare esperando a que haya algo que leer y entonces entra al bloque y lo devuelve. Obviamente eso es justo lo que no quiero, por eso creí que llamando a esa función no se pararía (al parecer eso lo hace bien cuando es un fichero :S). ¿Que método puedo utilizar?
7  Programación / Programación General / Leer código de un proyecto grande. en: 29 Octubre 2010, 21:07 pm
Hola,

Andaba leyendo algo de código, y normalmente curioseaba en github y sitios asi mirando proyectos pequeños. Pero decidí leer el código de un proyecto mas grande. Tampoco quedarme con todo el código en la cabeza obviamente.

Me propuse leer y entender una o varias clases relacionadas con el parser de código html5 que tiene Firefox. Cuando las encontré y empecé a leerlas me di cuenta de que estaba leyendo a un muy alto nivel de complejidad tal que para saber bien que estaba leyendo supuse que debía leerme cada modulo incluido en ese fichero, pero este a su vez también es complejo y necesitas "bajar" de nuevo.

¿Saben de algún método o tienen algún consejo que dar los que se hayan dedicado a leer código de proyectos grandes? Agradezco la ayuda que me puedan dar, ya que quiero aprender también de código de proyectos grandes, ya que seria de utilidad en un futuro poder hacerle modificaciones y tal :)

Salu2!
8  Programación / Programación C/C++ / ¿Considerais buena practica usar herencia múltiple? en: 29 Octubre 2010, 20:55 pm
Me viene esta pregunta a la cabeza, ya que en c++ se puede pero otros lenguajes como Java, C# o Go no permiten.

¿Consideráis hacer esto buena practica? Y si lo consideráis afirmativo, ¿en que casos creéis que es oportuno?

Por momentos pienso que si necesito hacer herencia múltiple, algo va mal con el planteamiento que tengo del problema.

¿Que opinan ustedes?
9  Programación / Java / Función que retorna objetos de "clases" extendidas de una abstracta en: 13 Octubre 2010, 20:10 pm
Hola amigos.

He estado haciendo uno de los ejercicios que mi profesor me ha mandado y resulta que al plantearme la lógica para resolver el problema, a mi me resulta lógico (no en todos los casos, pero en este si) hacer que una función según un valor que se le pasa o que lo tiene su clase, retorne un objeto de una clase distinta según ese valor. Eso java no lo permite ( y creo que muchos otros tampoco...) No se me ocurre por ahora una manera mas intuitiva para mi(o mejor dicho, personal, a mi estilo, que eso de intuitivo es algo que depende de cada uno :D) de resolver el problema que tengo, el cual si queréis expongo, pero por ahora os pongo el código de prueba, aislado, que muestra exactamente lo que intento.

A ver si se os ocurre algo en esta forma de pensar, que me ayude a solucionar el problema. Según un valor tengo que asignar en una referencia a objeto de clase abstracta un objeto de una clase extendida de esa misma abstracta, pero esta devuelta desde una función.

Código
  1. class Leer{
  2.    private int op;
  3.    private OpBinaria obj;
  4.    Leer(int op){
  5.        this.op = op;
  6.        obj = obtObjeto();
  7.    }
  8.    private OpBinaria obtObjeto(){
  9.        if(op == 1){
  10.            Suma suma = new Suma();
  11.            return suma; //Eclipse dice "NopeNope!" Tu dale OpBinaria :D
  12.        }
  13.    }
  14. }
  15.  
  16. abstract class OpBinaria{
  17.    public int x, y;
  18.    public abstract int op();
  19. }
  20.  
  21. class Suma extends OpBinaria {
  22.    public int op(){
  23.        return x + y;
  24.    }
  25. }
  26.  
  27. class Resta extends OpBinaria {
  28.    public int op(){
  29.        return x - y;
  30.    }
  31. }
  32.  
10  Foros Generales / Dudas Generales / Planificación de proyectos en: 25 Septiembre 2010, 23:50 pm
Hola!

Bueno, con planificación de proyectos no precisamente me refiero a los de una empresa, mas bien a los propios personales. Mi problema es que tengo muchas cosas que hacer, aveces se me da mal dar prioridades a las tareas o se me olvidan. Ya he intentado aquello de un horario junto con lista ToDo, y no funciona muy bien del todo, ya que rara vez cumplo con el tiempo y los horarios (tanto el tiempo que tardo en resolver X problema, como el tiempo del que dispongo para hacerlo o la hora a la que me pongo a hacerlo) puesto que cualquier contratiempo que tenga, ya sea por dificultad de lo que este haciendo, por mala priorización (se me olvida cuando tengo que tener terminado X por poner un ejemplo) o distracciones, hace que no cumpla el horario.

¿Como planifican ustedes sus proyectos con las demás cosas que deben hacer, ya sea trabajo, estudios...etc? No se si habrá algún buen método o truco, pero lo que si me repatea es terminar el día y saber que me queda algo por hacer y no estar seguro si voy en buenos tiempos.

Un Saludo!
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines