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


Tema destacado: Trabajando con las ramas de git (tercera parte)


  Mostrar Temas
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1  Programación / Programación General / Editor de texto online en: 7 Junio 2025, 19:56 pm
Hola a todos,

estoy buscando gente que esté interesada en crear un editor de texto online.

El editor de texto debe estar optimizado para dispositivos móviles y ser capaz de guardar texto en el lado del servidor.

Sé que hay muchos editores de texto en la web. Pero o son de pago o no están optimizados para dispositivos móviles o son confusos o requieren una cuenta de Google o, o, o, o...

La idea sería un simple editor de texto.

¿Les interesa?


Gracias y saludos
2  Programación / Programación General / Página para grupos de WhatsApp en: 29 Octubre 2024, 15:36 pm
Hola a todos,

busco a gente interesada en hacer una página mediante la cual se pueda entrar en grupos de WhatsApp y en la que se pueda compartir grupos de WhatsApp.

Se que existen dos en español. Pero en estas se necesita pasar por una aprobación de los moderadores para que el grupo pueda ser publicado.

La idea es poder compartir grupos de WhatsApp sin que se tenga que pasar por una aprobación.


Gracias y saludos
3  Foros Generales / Foro Libre / ¿Hay pacientes suicidas aquí? en: 23 Octubre 2024, 16:14 pm
Hola a todos,

¿hay pacientes suicidas aquí? Me gustaría intercambiarme con ellos. Últimamente yo también me siento mal. Encontré una solución.


Gracias y saludos
4  Programación / Bases de Datos / No puedo inicializar la base de datos en MariaDB en Termux en: 23 Septiembre 2024, 13:05 pm
Hola a todos,

trate de inicializar la base de datos con
Código:
mariadb-install-db
.

Pero me sale este error:
Citar
Installing MariaDB/MySQL system tables in '/data/data/com.termux/files/usr/var/lib/mysql' ...
2024-09-22 16:38:59 0 [ERROR] feedback plugin: failed to retrieve the MAC address
2024-09-22 16:38:59 0 [ERROR] InnoDB: File ./ib_logfile0 was not found
2024-09-22 16:38:59 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2024-09-22 16:39:00 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2024-09-22 16:39:00 0 [ERROR] Unknown/unsupported storage engine: InnoDB
2024-09-22 16:39:00 0 [ERROR] Aborting

Installation of system tables failed! Examine the logs in
/data/data/com.termux/files/usr/var/lib/mysql for more information.

The problem could be conflicting information in an external
my.cnf files. You can ignore these by doing:

shell> /data/data/com.termux/files/usr/bin/mariadb-install-db --defaults-file=~/.my.cnf

You can also try to start the mariadbd daemon with:

shell> /data/data/com.termux/files/usr/bin/mariadbd --skip-grant-tables --general-log &

and use the command line tool /data/data/com.termux/files/usr/bin/mariadb
to connect to the mysql database and look at the grant tables:

shell> /data/data/com.termux/files/usr/bin/mariadb -u root mysql
MariaDB> show tables;

Try '/data/data/com.termux/files/usr/bin/mariadbd --help' if you have problems with paths. Using
--general-log gives you a log in /data/data/com.termux/files/usr/var/lib/mysql that may be helpful.

The latest information about mariadb-install-db is available at
https://mariadb.com/kb/en/installing-system-tables-mysql_install_db
You can find the latest source at https://downloads.mariadb.org and
the maria-discuss email list at https://launchpad.net/~maria-discuss

Please check all of the above before submitting a bug report
at https://mariadb.org/jira

¿Cómo puedo solucionar el problema?


Gracias y saludos
5  Foros Generales / Foro Libre / ¿Navegan ustedes en la Darknet? en: 4 Septiembre 2024, 16:40 pm
Hola a todos,

cada vez veo aquí más usuarios preguntando por algo sobre la Darknet.

Estoy curioso y por eso pregunto: ¿Navegan ustedes por la Darknet?


Saludos
6  Foros Generales / Sugerencias y dudas sobre el Foro / ¿Se puede pedir voluntarios para foro en Darknet aquí? en: 4 Septiembre 2024, 16:34 pm
Hola a todos,

¿se puede pedir voluntarios para foro en Darknet aquí?


Saludos
7  Seguridad Informática / Hacking Wireless / Hackear wifi desde Android en: 5 Marzo 2024, 20:21 pm
Hola buenos usuarios,

hace un par de años empezé tener interés por el hacking wireless.

Antes de hacer la siguiente pregunta, tengo que aclarar que tengo los permisos necesarios del dueño del router como parte de una apuesta.

Mi pregunta es: ¿Como puedo hackear la contraseña de un wifi desde Android?

Fuerza bruta no puedo usar porque la contraseña no solamente es compleja sino que también es críptica.

¿Tengo que buscar vulnerabilidades en el router? ¿Como puedo hacerlo desde el celular sin estar conectado al router?


Muchas gracias
8  Programación / Desarrollo Web / Curso de javascript | 14. Fuente de error: acceder a elementos que aún no existen en: 9 Septiembre 2022, 21:26 pm
Fuente de error: javascript intenta acceder a elementos que aún no existen
En el último capítulo vimos que el siguiente programa de javascript se canceló con el mensaje de error "Uncaught TypeError: Connot read property …".

Código
  1. <title>Titulo de la pagina</title>
  2. </head>
  3. let parrafo1 = document.getElementById('area1');
  4. document.write("<br>" + parrafo1.innerHTML);
  5. console.log("<br>" + parrafo1);
  6.    <h1>Encabezado 1</h1>
  7.    <p id="area1">Primer parrafo con texto</p>
  8.    <p>Segundo parrafo con texto</p>
  9.    <a href="https://foro.elhacker.net">Texto del link</a>
  10. </body>
  11. </html>

¿Por qué esto es así? Nuestro programa javascript intenta a través de document.getElementById('area1'); acceder a un área en HTML que aún no se "muestra" en ese momento. ¿Que se quiere decir con eso? Nuestro párrafo con la ID area1 recién se "ejecuta" más adelante en el programa y solo entonces estara disponible para javascript.


La prueba para una mejor comprensión
También podemos hacer que esto sea muy claramente visible al mostrar en la consola lo que actualmente está disponible para javascript.

Usando la instrucción console.log(document.children[0].innerHTML); vemos el “estado de carga”.

Código
  1. <html>
  2. <head>
  3. <title>Titulo de la pagina</title>
  4. <script>
  5. console.log(document.children[0].innerHTML);
  6. window.addEventListener("load", function() {
  7. let parrafo1 = document.getElementById('area1');
  8. // console.log(parrafo1.innerHTML);
  9. // console.log(parrafo1);
  10. console.log(document.children[0].innerHTML);
  11. } );
  12. </script>
  13. </head>
  14. <body>
  15. <h1>Encabezado 1</h1>
  16.    <p id="area1">Primer parrafo con texto</p>
  17.    <p>Segundo parrafo con texto</p>
  18.    <a href="https://foro.elhacker.net">Texto del link</a>
  19. <script>
  20. console.log(document.children[0].innerHTML);
  21. </script>
  22. </body>
  23. </html>

La salida de la consola en la línea 6 muestra que solo está presente la sección head; por otro lado, obtenemos el código completo a través del mismo comando en la salida de la consola.


Independiente de la ubicación de nuestro código javascript
Y aquí es exactamente donde queremos independizarnos.

Queremos decirle a nuestro programa javascript que no se ejecute hasta que se hayan cargado todos los elementos HTML de la página.


EventListener - esperar a eventos definidos usando javascript
En javascript existen EventListeners que podemos usar para eventos como un clic del usuario, pulsaciones de teclas o incluso la carga completa de todos los elementos HTML en una página. Así que podemos consultar cualquier cantidad de Events (inglés para evento), es decir, esperar y "escuchar" (Listen en inglés) si estos llegan a ocurrir. La traducción al español de EventListener es realmente agradable: es el oidor de eventos.

Veamos la estructura en javascript:

La declaración de javascript comienza con window.addEventListener(). Después de iniciar nuestro programa javascript, a nuestra ventana se monitorea constantemente para ver si ocurre un evento específico. Y aquí el énfasis está en permanente. Compara esto con lenguajes de programación como PHP, donde se ejecuta un programa y cuando este programa ha llegado a la última línea de código, este se completa y termina. Si usamos EventListener en javascript, el código asociado se ejecutará en una función tan pronto como ocurra un evento (Event) específico. No te tropiezcas con la nueva palabra de función aquí: las funciones se introduciran más adelante.

Ahora, por supuesto, aún tenemos que decirle a addEventListener() qué evento (Event) debe escuchar:

Código
  1. window.addEventListener("load" );

Por lo tanto, estamos esperando que nuestro archivo se cargue por completo; en otras palabras, todas las instrucciones HTML están disponibles y javascript puede consultarlas o usarlas. Nuestro evento "load" no significa nada más que nuestra página completa ha terminado de cargarse.

Ahora está claro cuándo nuestro EventListener debería de activarse - ahora falta la actividad. Primero echemos un vistazo a la estructura básica:

Código
  1. window.addEventListener("load", function() {
  2. } );

Y con acción, se debe de mostrarse que la página se cargó por completo:

Código
  1. window.addEventListener("load", function() {
  2.    console.log("Pagina completamente cargada");
  3. } );

En lugar de nuestra salida de control, por supuesto, se puede colocar cualquier cantidad de declaraciones de javascript entre las llaves.

Pero ahora el gran final: por razones históricas (suena siempre bien, pero se refiere a evitar problemas con los navegadores antiguos), siempre se debe de ingresar false después de las llaves.

Código
  1. window.addEventListener("load", function() {
  2. }, false );
  3.  

Y ahora podemos insertar el ejemplo inicialmente problemático a la nueva sección y todo está bien:

Código
  1. <html>
  2. <head>
  3. <title>Titulo de la pagina</title>
  4. </head>
  5. <script>
  6. window.addEventListener("load", function() {
  7.    let parrafo1 = document.getElementById('area1');
  8.    console.log(parrafo1.innerHTML);
  9.    console.log(parrafo1);
  10. }, false );
  11. </script>
  12. <body>
  13.    <h1>Encabezado 1</h1>
  14.    <p id="area1">Primer parrafo con texto</p>
  15.    <p>Segundo parrafo con texto</p>
  16.    <a href="https://foro.elhacker.net">Texto del link</a>
  17. </body>
  18. </html>
  19.  

En los siguientes tutoriales siempre trabajaré con esta construcción para evitar estos problemas. Por lo tanto, utilícenlo siempre, incluso si addEventListener("load", ...) no se muestra en los ejemplos que vienen en aras de la claridad.
9  Comunicaciones / Dispositivos Móviles (PDA's, Smartphones, Tablets) / Grabar encuentro de Zoom desde Android 8 (Audio) en: 9 Septiembre 2022, 10:04 am
Hola a todos,

¿cómo puedo grabar un encuentro de Zoom (Audio) desde Android 8 sin permisos del administrador y sin root?


Gracias y saludos
10  Programación / Desarrollo Web / Curso de javascript | 13. Usar DOM a través de getElementById() en: 22 Agosto 2022, 14:36 pm
Usar DOM a través de getElementById()
Echemos un vistazo a getElementById().

Queremos apuntar a un elemento específico en nuestra página HTML.

Código
  1. <title>Titulo de la pagina</title>
  2. </head>
  3.    <h1>Encabezado 1</h1>
  4.    <p>Primer parrafo con texto</p>
  5.    <p>Segundo parrafo con texto</p>
  6.    <a href="https://foro.elhacker.net">Texto del link</a>
  7. </body>
  8. </html>

¿Cómo podemos usar javascript para obtener específicamente, por ejemplo, el primer párrafo? Para hacer esto, usamos la instrucción de javascript getElementById().

Nuestro elemento deseado ahora necesita un identificador único. Podemos agregar el atributo id y un nombre único a cualquier elemento HTML directamente en el código HTML. Aquí se aplican las siguientes reglas para un nombre único:

  • No deben de haber espacios.
  • No deben de haber guiones.
  • No deben de haber caracteres especiales (por lo que es mejor usar solo letras de la a a la z y números del 0 al 9).

En nuestro ejemplo, demos a nuestro primer párrafo el atributo HTML id y el nombre area1. Aquí el fragmento del código HTML extendido:

Código
  1. <p id="area1">Primer parrafo con texto</p>

Ahora podemos agregar el nombre a nuestro comando de javascript getElementById(). Además, a través de document., decimos que se use el documento HTML actual (es decir, nuestro árbol DOM):

Código
  1. document.getElementById('area1');

Si ejecutamos nuestro programa javascript, todavía no sucede nada visible.

Ahora podemos acceder a un elemento específico.

Nuestro elemento contiene el comando HTML completo y el contenido "Primer parrafo con texto" encerrado por el comando, es decir, la completa rama seleccionada, incluidas todas las ramillas y hojas de nuestro árbol DOM.

Si solo queremos el texto y no la rama completa - en otras palabras, no queremos que se devuelvan atributos ni comandos HTML - javascript nos ofrece la extensión a través de innerHTML.

Código
  1. document.getElementById('area1').innerHTML;

Por supuesto, estas notaciones de puntos hacen que las instrucciones en javascript sean cada vez más largas y, por lo tanto, más y más confusas. Y en la mayoría de las veces, en repetidas veces se necesita acceso al mismo elemento.

Por lo tanto, se construye a partir del siguiente código

Código
  1. document.getElementById('area1').innerHTML;

la siguiente construcción usando una variable:

Código
  1. let parrafo1 = document.getElementById('area1');
  2. console.log(parrafo1.innerHTML);
  3. console.log(parrafo1);
  4. alert(parrafo1.innerHTML);

Expandi nuestro programa existente y ve si hay una salida en la consola. Hay un 50% de posibilidades de que funcione (salvo por errores tipográficos).

¡Primero probalo antes de seguir leyendo!

¡En serio!

¿Funcionó? ¿Obtuviste el resultado esperado? Entonces nuestro programa javascript se insertó después de las salidas HTML en el archivo:

Código
  1. <html>
  2. <head>
  3. <title>Titulo de la pagina</title>
  4. </head>
  5. <body>
  6.    <h1>Encabezado 1</h1>
  7.    <p id="area1">Primer parrafo con texto</p>
  8.    <p>Segundo parrafo con texto</p>
  9.    <a href="https://foro.elhacker.net">Texto del link</a>
  10. <script>
  11. let parrafo1 = document.getElementById('area1');
  12. document.write("<br>" + parrafo1.innerHTML);
  13. document.write("<br>" + parrafo1);
  14. alert(parrafo1.innerHTML);
  15. </script>
  16. </body>
  17. </html>

Si no funcionó, nuestras instrucciones de javascript se insertaron antes de las salidas HTML de los párrafos. Entonces no viene ningún contenido, sino mensajes de error en forma de "Uncaught TypeError: Connot read property …".

¡Probalo, porque en el próximo capítulo nos haremos independientes de la posición de nuestras declaraciones de javascript en nuestro archivo!
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines