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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: [1] 2 3
1  Comunicaciones / Redes / Re: WiFi y repetidor WiFi en: 11 Septiembre 2019, 22:25 pm
Si, la verdad es que funciona incluso mejor de lo que me esperaba, de ahí que crea que está todo correcto.
2  Comunicaciones / Redes / WiFi y repetidor WiFi en: 11 Septiembre 2019, 21:38 pm
Buenas noches! Tengo una ONT de huawei in su WiFi y tal, y un repetirlo en modo AP. La cosa es que no sé si estoy haciendo las cosas bien. Tengo EL WiFi de la ONT con el canal 7 y el canal del repetido el 10 ( son los 2 menos congestionados), el repetidor WiFi tiene el mismo nombre que el WiFi de la ONT para que el móvil se conecte a AP que más potencia tenga. La cosa es, es correcto poner el mismo nombre al AP o hay que poner uno distinto?

Gracias
3  Programación / Ejercicios / Pipes y Dup - ¿Qué hace? en: 17 Junio 2018, 05:25 am
Hola. Alguien podría decirme qué hace este fragmento de código. Gracias!

Código
  1. #include <unistd.h>
  2. main(){
  3.   pipeline("/usr/bin/yes", "/bin/more");
  4. }
  5. int pipeline(char *proc1, char *proc2){
  6.    int fd[2];
  7.    pipe(fd);
  8.    if (fork()!=0){
  9.       close(fd[0]); // No lo necesitamos aqui
  10.       close(1); // Cierra la salida estandar
  11.       dup(fd[1]);
  12.       close(fd[1]); // No lo necesitamos
  13.       execl(proc1, proc1, 0);
  14.   }
  15.   else{
  16.       close(fd[1]); // No lo necesitamos
  17.       close(0); // Cierra la entrada estandar
  18.       dup(fd[0]);
  19.      close(fd[0]); // No lo necesitamos
  20.      execl(proc2, proc2, 0);
  21.   }
  22. }
  23.  
4  Sistemas Operativos / GNU/Linux / Ayuda ejercicio [SOLUCIONADO] en: 16 Junio 2018, 02:35 am
Hola. Me gustaría saber si alguien me puede ayudar a hacer este ejercicio debido a que no me funciona. El problema es el siguiente:

"Vamos a proceder a crear una nueva llamada al sistema, que llamaremos
int sys info process(int pid), a la cual pasamos como argumento un PID de un proceso, y queremos que nos devuelva el PPID de ese proceso, o -1 en caso de que no exista ning´un proceso con ese pid."

Todo ello debe ir bajo el núcleo linux, con una llamada en /usr/src/disop/arch/i386/kernel/entry.S

Os paso captura del código mediante imagen, ya que la máquina virtual no me deja copiar y pegar.

Primera parte del código https://ibb.co/bxk9sy
Segunda parte del código https://ibb.co/fuPPQJ
5  Programación / Bases de Datos / Algebra relacional en: 6 Mayo 2018, 20:12 pm
Hola, me gustaría saber cómo se verían varias consultas en álgebra relacional ya que no tengo ni idea.

¿Alguien puede echarme una mano?

Gracias!
6  Programación / Java / Re: Ayuda crear radio FM Android en: 14 Diciembre 2017, 13:16 pm
Si, sería para usarlo en dispositivos que tengan antera FM. Sé que no van a ser nuevos ya que la app va a ir orientada a gente mayor, por lo tanto no se van a comprar un alta gama y la mayoría lleva receptor FM
7  Programación / Java / Ayuda crear radio FM Android en: 13 Diciembre 2017, 12:31 pm
Hola comunidad.
Estoy desarrollando una app para un trabajo de la universidad y no encuentro ni una pizca de código de radio FM, todas son streaming y me gustaría saber cómo puedo hacer una radio FM en Android Studio.

Gracias de antemano!
8  Programación / Programación General / Ayuda base de datos Android Studio en: 7 Octubre 2017, 18:55 pm
Hola, estoy intentando hacer una app super sencilla, pero estoy estancado en un sitio del que no tengo ni idea de cómo salir.

La app consta en registrar en una base de datos una serie de datos. ;-)

Os dejo mis clases por orden de creación:
MainActivity
Código
  1. public class MainActivity extends AppCompatActivity {
  2.  
  3.    @Override
  4.    protected void onCreate(Bundle savedInstanceState) {
  5.        super.onCreate(savedInstanceState);
  6.        setContentView(R.layout.activity_main);
  7.  
  8.        //ConexionSQLiteHelper conn=new ConexionSQLiteHelper(this,"bdTiendas",null,1);
  9.  
  10.    }
  11.  
  12.    public void onClick(View view){
  13.        Intent nueva_ventana = new Intent(MainActivity.this, registrarTienda.class);
  14.        startActivity(nueva_ventana);
  15.    }
  16. }

Utilidades (declaro variables y creo BBDD):

Código
  1. public class Utilidades {
  2.  
  3.  
  4.    public static final String TABLA_TIENDA="tienda";
  5.    public static final String CampoNumeroTienda="numTienda";
  6.    public static final String CampoNombreTienda="nombre";
  7.    public static final String CampoMuelleFrio="muelleFrio";
  8.    public static final String CampoMuelleFruta="muelleFruta";
  9.    public static final String CampoMuelleSeco="muelleSeco";
  10.    public static final String CampoDireccion="direccion";
  11.    public static final String CampoTelefono="telefono";
  12.  
  13.    public static final String CREAR_TABLA_TIENDA="CREATE TABLE"+TABLA_TIENDA+"("+CampoNumeroTienda+" INTEGER, "+CampoNombreTienda+
  14.            " TEXT,"+CampoMuelleFrio+" INTEGER, "+CampoMuelleFruta+" INTEGER,"+CampoMuelleSeco+" INTEGER,"+
  15.            CampoDireccion+" TEXT,"+CampoTelefono+" TEXT)";
  16.  
  17.  
  18.  

Tienda (pongo los metodos set y get):
Código
  1. public class Tienda {
  2.    private Integer numTienda;
  3.    private String nombre;
  4.    private Integer muelleFrio;
  5.    private Integer muelleFruta;
  6.    private Integer muelleSeco;
  7.    private String direccion;
  8.    private String telefono;
  9.  
  10.    public Integer getNumTienda() {
  11.        return numTienda;
  12.    }
  13.  
  14.    public void setNumTienda(Integer numTienda) {
  15.        this.numTienda = numTienda;
  16.    }
  17.  
  18.    public String getNombre() {
  19.        return nombre;
  20.    }
  21.  
  22.    public void setNombre(String nombre) {
  23.        this.nombre = nombre;
  24.    }
  25.  
  26.    public Integer getMuelleFrio() {
  27.        return muelleFrio;
  28.    }
  29.  
  30.    public void setMuelleFrio(Integer muelleFrio) {
  31.        this.muelleFrio = muelleFrio;
  32.    }
  33.  
  34.    public Integer getMuelleFruta() {
  35.        return muelleFruta;
  36.    }
  37.  
  38.    public void setMuelleFruta(Integer muelleFruta) {
  39.        this.muelleFruta = muelleFruta;
  40.    }
  41.  
  42.    public Integer getMuelleSeco() {
  43.        return muelleSeco;
  44.    }
  45.  
  46.    public void setMuelleSeco(Integer muelleSeco) {
  47.        this.muelleSeco = muelleSeco;
  48.    }
  49.  
  50.    public String getDireccion() {
  51.        return direccion;
  52.    }
  53.  
  54.    public void setDireccion(String direccion) {
  55.        this.direccion = direccion;
  56.    }
  57.  
  58.    public String getTelefono() {
  59.        return telefono;
  60.    }
  61.  
  62.    public void setTelefono(String telefono) {
  63.        this.telefono = telefono;
  64.    }
  65.  
  66.    public Tienda(Integer numTienda, String nombre, Integer muelleFrio, Integer muelleFruta, Integer muelleSeco, String direccion, String telefono) {
  67.        this.numTienda = numTienda;
  68.        this.nombre = nombre;
  69.        this.muelleFrio = muelleFrio;
  70.        this.muelleFruta = muelleFruta;
  71.        this.muelleSeco = muelleSeco;
  72.        this.direccion = direccion;
  73.        this.telefono = telefono;
  74.    }
  75. }

ConexionSQLiteHelper

Código
  1. public class ConexionSQLiteHelper extends SQLiteOpenHelper {
  2.  
  3.    public ConexionSQLiteHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
  4.        super(context, name, factory, version);
  5.    }
  6.  
  7.    @Override
  8.    public void onCreate(SQLiteDatabase db) {
  9.  
  10.        db.execSQL(Utilidades.CREAR_TABLA_TIENDA);
  11.    }
  12.  
  13.    @Override
  14.    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  15.        db.execSQL("DROP TABLE IF EXISTS tabla");
  16.        onCreate(db);
  17.    }
  18. }

Registrar Tienda

Código
  1. public class registrarTienda extends AppCompatActivity {
  2. EditText nombre_tienda,numero_tienda,muelle_frio,muelle_fruta
  3.        ,muelle_seco,direccion,telf;
  4.    @Override
  5.    protected void onCreate(Bundle savedInstanceState) {
  6.        super.onCreate(savedInstanceState);
  7.        setContentView(R.layout.activity_registrar_tienda);
  8.  
  9.        nombre_tienda=(EditText) findViewById(R.id.nombreTienda);
  10.        numero_tienda=(EditText) findViewById(R.id.numeroTienda);
  11.        muelle_frio=(EditText) findViewById(R.id.muelleFrio);
  12.        muelle_fruta=(EditText) findViewById(R.id.muelleFruta);
  13.        muelle_seco=(EditText) findViewById(R.id.muelleseco);
  14.        direccion=(EditText) findViewById(R.id.direccionTienda);
  15.        telf=(EditText) findViewById(R.id.numTelfTienda);
  16.  
  17.  
  18.    }
  19.  
  20.    public void onClick(View view){
  21.        registroTienda();
  22.        }
  23.  
  24.  
  25.  
  26.    private void registroTienda() {
  27.        ConexionSQLiteHelper conn=new ConexionSQLiteHelper(this,"bdTiendas",null,1);
  28.        SQLiteDatabase db=conn.getWritableDatabase(); //PROBLEMA
  29.  
  30.        ContentValues values=new ContentValues();
  31.        values.put(Utilidades.CampoNumeroTienda,numero_tienda.getText().toString());
  32.        values.put(Utilidades.CampoNombreTienda ,nombre_tienda.getText().toString());
  33.        values.put(Utilidades.CampoMuelleFrio,muelle_frio.getText().toString());
  34.        values.put(Utilidades.CampoMuelleFruta,muelle_fruta.getText().toString());
  35.        values.put(Utilidades.CampoMuelleSeco,muelle_seco.getText().toString());
  36.        values.put(Utilidades.CampoDireccion,direccion.getText().toString());
  37.        values.put(Utilidades.CampoTelefono,telf.getText().toString());
  38.  
  39.       // Long idResultante=db.insert(Utilidades.TABLA_TIENDA,Utilidades.CampoNombreTienda,values);
  40.       // Toast.makeText(getApplicationContext(),"Tienda: "+idResultante+" agregada",Toast.LENGTH_SHORT).show();
  41.    }
  42. }
  43.  

Y el problema está en esta última clase, donde lo indico. Comento esta línea (y las que dependen de ella) y la app no se crashea, mientras dejánlosa sin comentar, peta.

Gracias de antemano.


EDITO 7/10/2017 20:20

Solucionado, me faltaba un espacio en la secuencia del create table. Gracias amigos.
9  Programación / Programación General / Poner sonido a Snake HTML5 en: 28 Septiembre 2017, 10:14 am
Hola amigos. Es un proyecto en el que necesito poner un tono (el mio llamado pac.mp3) cuando la serpiente come.

Tengo esta parte de código:

serpiente.js

Código
  1. $(document).ready(function() {
  2.  
  3. // Creamos un contexto 2d de nuestro canvas
  4. var canvas = $("#snake")[0];
  5. var context = canvas.getContext("2d");
  6. var width = $("#snake").width();
  7. var height = $("#snake").height();
  8.  
  9. var cellWidth = 10;
  10. var d;
  11. var food;
  12. var score;
  13. var level = 6; // 1 El nivel más lento, 10 el nivel más rápido.
  14. // contiene el listado de celdas por donde pasa la serpiente
  15. var snake;
  16.  
  17. // El juego tiene la dirección "right" por defecto y se ejecuta la función paint
  18. // dependiendo el nivel que hayas configurado arriba
  19. function init()
  20. {
  21. d = "right";
  22. createSnake();
  23. createFood();
  24. score = 0;
  25.  
  26. if(typeof gameLoop != "undefined") {
  27. clearInterval(gameLoop);
  28. }
  29.  
  30. gameLoop = setInterval(paint, 500 / level);
  31. }
  32.  
  33. init();
  34.  
  35. // Creamos la serpiente
  36. function createSnake()
  37. {
  38. var length = 5;
  39. snake = [];
  40.  
  41. for(var i = length - 1; i >= 0; i--)
  42. {
  43. snake.push({ x: i, y: 0 });
  44. }
  45. }
  46.  
  47. //Creamos el recuado que tiene que comerse la serpiente
  48. function createFood()
  49. {
  50. food = {
  51. x: Math.round(Math.random() * (width - cellWidth) / cellWidth),
  52. y: Math.round(Math.random() * (height - cellWidth) / cellWidth),
  53.  
  54. };
  55. }
  56.  
  57. //Dibujamos la serpiente
  58. function paint()
  59. {
  60. context.fillStyle = "#ccc";
  61. context.fillRect(0, 0, width, height);
  62. context.strokeStyle = 'black';
  63. context.strokeRect(0, 0, width, height);
  64.  
  65. var nx = snake[0].x;
  66. var ny = snake[0].y;
  67.  
  68. if (d == "right") {
  69. nx++;
  70. } else if (d == "left") {
  71. nx--;
  72. } else if (d == "up") {
  73. ny--;
  74. } else if (d == "down") {
  75. ny++;
  76. }
  77.  
  78. if (nx == -1 || nx == width / cellWidth || ny == -1 || ny == height / cellWidth || checkCollision(nx, ny, snake)) {
  79. init();
  80. return;
  81. }
  82.  
  83. if(nx == food.x && ny == food.y) {
  84. var tail = {
  85. x: nx,
  86. y: ny
  87. function pla();
  88. };
  89. score++;
  90. createFood();
  91. } else {
  92. var tail = snake.pop();
  93.  
  94. tail.x = nx;
  95. tail.y = ny;
  96. }
  97.  
  98. snake.unshift(tail);
  99.  
  100. for(var i = 0; i < snake.length; i++) {
  101. var c = snake[i];
  102. paintCell(c.x, c.y);
  103. }
  104.  
  105. paintCell(food.x, food.y);
  106.  
  107. var scoreText = "Score: " + score;
  108.  
  109. context.fillText(scoreText, 5, height - 5);
  110. }
  111.  
  112. //Pintamos la celda
  113. function paintCell(x, y)
  114. {
  115. context.fillStyle = "red";
  116. context.fillRect(x * cellWidth, y * cellWidth, cellWidth, cellWidth);
  117. context.strokeStyle = 'white';
  118. context.strokeRect(x * cellWidth, y * cellWidth, cellWidth, cellWidth);
  119. }
  120.  
  121. //Verificiamos si hubo alguna colisión (si la hubo el juego se reinicia)
  122. function checkCollision(x, y, array)
  123. {
  124. for(var i = 0; i < array.length; i++)
  125. {
  126. if(array[i].x == x && array[i].y == y) {
  127. return true;
  128. }
  129. }
  130. return false;
  131. }
  132.  
  133. // Capturamos la pulsación de las teclas
  134. $(document).keydown(function(e) {
  135. var key = e.which;
  136.  
  137. if (key == "37" && d != "right") {
  138. d = "left";
  139. } else if (key == "38" && d != "down") {
  140. d = "up";
  141. } else if (key == "39" && d != "left") {
  142. d = "right";
  143. } else if (key == "40" && d != "up") {
  144. d = "down";
  145. }
  146. });
  147. });
  148.  

serpiente.html
Código
  1. <!DOCTYPE html>
  2. <html lang="es">
  3.    <meta charset="utf-8">
  4. <script src="http://code.jquery.com/jquery-1.10.1.min.js" type="text/javascript"></script>
  5. <script src="serpiente.js" type="text/javascript"></script>
  6.  
  7. .game
  8. {
  9. margin: 0 auto;
  10. width: 450px;
  11. }
  12. </style>
  13. </head>
  14.  
  15. <div class="game">
  16. <canvas id="snake" width="450" height="450"></canvas>
  17. </div>
  18. <audio controls autoplay loop>
  19.  <source src="horse.ogg" type="audio/ogg" >
  20.  <source src="horse.mp3" type="audio/mpeg">
  21. Your browser does not support the audio element.
  22. </audio>
  23. </body>
  24. </html>
  25.  

Gracias de antemano
10  Programación / PHP / Re: Creando una web y paginas que no podrían acceder en: 14 Enero 2017, 17:31 pm
Perdón, aquí dejo el codigo:

Código
  1. <html>
  2.  
  3. <link rel="stylesheet" type="text/css" href="css.css">
  4. <body>
  5.  
  6. <form action="" method="post">
  7. <table border="1" cellpadding="5" cellspacing="0" align="center">
  8. <tr><td colspan="2" align="center">ACCESO SIGUIENTE PRUEBA</td></tr>
  9. <tr><td>Usuario:</td> <td><input type="text" name="user" autocomplete="off" /></td></tr>
  10. <tr><td>Contrasñea:</td> <td><input type="password" name="pass" /></td></tr>
  11. <tr><td align="center" colspan="2"><input type="submit" name="enviar" value="Enviar" /></td></tr>
  12. </table>
  13. </form>
  14.  
  15.  
  16.  
  17. <h1>
  18. Prueba 8</h1>
  19. <p> Usuario suma de 1+1 y contraseña resta de 10-8</p>
  20.  
  21. </body>
  22. </html>
  23.  
  24.  
  25. <?php
  26. if(($_POST)){
  27. # Aqui definimos el usuario y password
  28. # Puedes cambiar el usuario y clave x lo q sea
  29. $usuario = '2';
  30. $clave = '2';
  31. # Aqui compruebo q los datos(usuario y contraseña) ingresados sean igual a lo que eh definido
  32. # Y si son correcto los datos redireciona al enlace de tu sitio Autorizado
  33. # En que caso que no sean correcto los datos  recirecciona al enlace de Error de  Datos Ingresados
  34. if(trim((($_POST['user'])==$usuario && trim($_POST['pass'])==$clave))) {
  35. header('Location: index2.html');
  36. }else{
  37. header('Location: Error.html');
  38. }
  39.   }
  40.  
  41. ?>
  42.  

Es un ejemplo de una prueba. En cada prueba hay un formulario con usuario y contraseña, que se desvelan mediante pistas. Con ese usuario y esa contraseña se pasa a la siguiente prueba.
Páginas: [1] 2 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines