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


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


Páginas: [1] 2 3 4 5 6 7 8 9 10
 1 
 en: Hoy a las 20:28 
Iniciado por Tachikomaia - Último mensaje por @XSStringManolo
Para que algo sea tuyo, debes crearlo tú. Si te lo genera la IA sin ningún proceso creativo, no lo estás creando tu.


 2 
 en: Hoy a las 18:16 
Iniciado por El_Andaluz - Último mensaje por El_Andaluz



El 10 de junio de 2026, los combates entre Rusia y Ucrania habrán durado más que la Primera Guerra Mundial. Se suponía que también ese conflicto iba a concluir en unas pocas semanas. Al igual que en Ucrania, los combates se estancaron y el alto mando malgastó vidas humanas en una serie tras otra de asaltos condenados al fracaso. En agosto de 1918, los aliados utilizaron nuevas tácticas para romper las líneas alemanas. Hoy, en cambio, Ucrania no se rinde y Rusia no sabe cómo ganar.

Incluso en una dictadura, un dirigente que carece de una teoría de la victoria no hace otra cosa que acumular problemas. Como aprendió a su pesar el zar Nicolás II en la Primera Guerra Mundial, tarde o temprano llega el momento de rendir cuentas. Cuantas más vidas rusas desperdicie hoy Putin de forma absurda, mayor será la crisis a la que se enfrentará mañana.

La raíz del problema de Putin es que no ha logrado de derrotar a Ucrania en el campo de batalla. La ofensiva del verano de 2025 (la tercera y más ambiciosa), ha supuesto un estrepitoso fracaso. La táctica rusa consiste en enviar pequeños grupos de hombres a la zona de combate. Ahora bien, por más que algunos consigan abrirse paso y llegar a sus posiciones, el resto no puede aprovechar el avance. En cuanto se agrupan, son aniquilados.

Si la matanza continúa al ritmo de 2025, el total de bajas rusas rozará los 4 millones

Las cifras reflejan esa realidad terrible. En el año transcurrido hasta mediados de octubre, las bajas rusas aumentaron casi un 60%, hasta situarse en algún punto entre 984.000 y 1.438.000. El número de muertos se sitúa ahora entre los 190.000 y los 480.000. Es posible que mueran cinco soldados rusos por cada ucraniano. Y, sin embargo, durante el verano, los ejércitos de Putin no han sido capaces de tomar ni una sola ciudad importante. Rusia avanza, pero para ocupar los cuatro óblasts que reclama como propios necesitaría cinco años más. Si la matanza continúa al ritmo de 2025, el total de bajas rusas rozará los 4 millones.

La falta de progresos explica por qué Putin también está atacando ciudades e infraestructuras ucranianas. Espera convertir algunas partes del país en inhabitables y destruir la moral de la población. Rusia ha empezado a hablar del devastador invierno que se avecina. Nadie debería trivializar el sufrimiento de Ucrania, pero los ataques a civiles rara vez provocan el colapso de un país. Los ucranianos ya saben que Rusia es despiadada. Cada misil que golpea un objetivo civil no hace más que subrayar lo mucho que tienen que perder en caso de una victoria de Putin.

En cambio, los ataques de Ucrania en el interior de Rusia pueden hacer que algunos cambien de opinión. Según las encuestas, el 70% de los rusos dice apoyar la guerra. Quizás solo uno de cada cinco sea alguien realmente convencido. El resto opta por el camino más sencillo y se niega a pensar en lo que está sucediendo. Sin embargo, con los ataques a infraestructuras petroleras y aeropuertos en un momento en que la economía se desacelera y los presupuestos se contraen, Ucrania podría obligar a los rusos a enfrentarse a la realidad.

Putin también albergaba esperanzas de que el presidente estadounidense Donald Trump inclinara la balanza a su favor. Retirando su apoyo vital (en materia de inteligencia y defensa aérea, sobre todo), Trump podría imponer una paz desfavorable a Ucrania. A principios de 2025, lo intentó brevemente.

El caso es que esas tácticas ya no parecen probables. El pacificador que ocupa hoy la Casa Blanca sigue mostrando una actitud ambigua hacia el presidente ucraniano Volodímir Zelenski, por quien no siente aprecio alguno. No obstante, es ahora Europa la que paga las facturas de Ucrania y con ello neutraliza la principal queja MAGA de que Estados Unidos es objeto de abuso. Además, Trump parece haber llegado a la conclusión de que abandonar a Ucrania a los osos daría al traste con su aspiración de convertirse en un estadista ganador del Premio Nobel. En octubre llegó incluso a imponer sanciones a Lukoil y Rosneft, dos empresas petroleras rusas.

Por último, es posible que Putin tenga la esperanza de ver desmoronarse la determinación europea. El dinero que Ucrania necesita para seguir luchando se agotará en febrero. Sobre el continente ya se cierne la perspectiva de unos gobiernos populistas menos hostiles al Kremlin. Una Europa dividida y disfuncional tendrá dificultades para dar a Ucrania el respaldo a largo plazo que necesita para prosperar una vez que cesen los combates.





 3 
 en: Hoy a las 16:49 
Iniciado por Tachikomaia - Último mensaje por Mr.Byte
Bueno, es un tema algo mas complejo, segun la noticia, el "creador" utilizó un prompt muy largo, y eso le da protección. Si hubiera utilizado un prompt de una sola linea no tendría la protección legal.

El otro dia, utilice una IA para crear un juego que use una sola linea "crear juego tipo Arkanoid", y en un minuto obtuve el juego.
Soy yo el creador de dicho juego? Que pensáis?

El juego, hecho 100% por IA :
https://wormhole.app/xkavRP#lp4PJqXhzYF5I0MnyaWNuw


Código:(copiarlo y crear un archivo con la extensión HTML)
Código
  1. <!DOCTYPE html>
  2. <html lang="es">
  3.    <meta charset="UTF-8">
  4.    <meta name="viewport" content="width=device-width, initial-scale=1.0">
  5.    <title>Arkanoid con Canvas</title>
  6.    <style>
  7.        body {
  8.            background-color: #111;
  9.            display: flex;
  10.            justify-content: center;
  11.            align-items: center;
  12.            height: 100vh;
  13.            margin: 0;
  14.            font-family: 'Courier New', Courier, monospace;
  15.            color: white;
  16.        }
  17.        canvas {
  18.            background-color: #000;
  19.            border: 2px solid #fff;
  20.        }
  21.    </style>
  22. </head>
  23.  
  24.    <canvas id="gameCanvas" width="480" height="320"></canvas>
  25.  
  26.    <script>
  27.        // --- CONFIGURACIÓN INICIAL ---
  28.        const canvas = document.getElementById('gameCanvas');
  29.        const ctx = canvas.getContext('2d');
  30.  
  31.        // --- CONSTANTES DEL JUEGO ---
  32.        const PADDLE_WIDTH = 75;
  33.        const PADDLE_HEIGHT = 10;
  34.        const BALL_RADIUS = 8;
  35.        const BRICK_WIDTH = 75;
  36.        const BRICK_HEIGHT = 20;
  37.        const BRICK_PADDING = 10;
  38.        const BRICK_OFFSET_TOP = 30;
  39.        const BRICK_OFFSET_LEFT = 30;
  40.        const BRICK_ROWS = 3;
  41.        const BRICK_COLS = 5;
  42.  
  43.        // --- VARIABLES DEL JUEGO ---
  44.        let score = 0;
  45.        let lives = 3;
  46.  
  47.        // --- OBJETO PALETA ---
  48.        const paddle = {
  49.            x: (canvas.width - PADDLE_WIDTH) / 2,
  50.            y: canvas.height - PADDLE_HEIGHT - 10,
  51.            width: PADDLE_WIDTH,
  52.            height: PADDLE_HEIGHT,
  53.            speed: 7
  54.        };
  55.  
  56.        // --- OBJETO PELOTA ---
  57.        const ball = {
  58.            x: canvas.width / 2,
  59.            y: canvas.height - 30,
  60.            dx: 3, // Velocidad en el eje X
  61.            dy: -3, // Velocidad en el eje Y
  62.            radius: BALL_RADIUS
  63.        };
  64.  
  65.        // --- CONTROL DE TECLAS ---
  66.        let rightPressed = false;
  67.        let leftPressed = false;
  68.  
  69.        // --- INICIALIZACIÓN DE LOS BLOQUES ---
  70.        // Creamos una matriz 2D para los bloques
  71.        const bricks = [];
  72.        for (let r = 0; r < BRICK_ROWS; r++) {
  73.            bricks[r] = [];
  74.            for (let c = 0; c < BRICK_COLS; c++) {
  75.                // status: 1 = visible, 0 = destruido
  76.                bricks[r][c] = { x: 0, y: 0, status: 1 };
  77.            }
  78.        }
  79.  
  80.        // --- EVENT LISTENERS (para el control de la paleta) ---
  81.        document.addEventListener("keydown", keyDownHandler);
  82.        document.addEventListener("keyup", keyUpHandler);
  83.        document.addEventListener("mousemove", mouseMoveHandler); // Opcional: control con ratón
  84.  
  85.        function keyDownHandler(e) {
  86.            if (e.key === "Right" || e.key === "ArrowRight") {
  87.                rightPressed = true;
  88.            } else if (e.key === "Left" || e.key === "ArrowLeft") {
  89.                leftPressed = true;
  90.            }
  91.        }
  92.  
  93.        function keyUpHandler(e) {
  94.            if (e.key === "Right" || e.key === "ArrowRight") {
  95.                rightPressed = false;
  96.            } else if (e.key === "Left" || e.key === "ArrowLeft") {
  97.                leftPressed = false;
  98.            }
  99.        }
  100.  
  101.        // Opcional: control con el ratón
  102.        function mouseMoveHandler(e) {
  103.            const relativeX = e.clientX - canvas.offsetLeft;
  104.            if(relativeX > 0 && relativeX < canvas.width) {
  105.                paddle.x = relativeX - paddle.width / 2;
  106.            }
  107.        }
  108.  
  109.        // --- FUNCIONES DE DIBUJO ---
  110.  
  111.        function drawBall() {
  112.            ctx.beginPath();
  113.            ctx.arc(ball.x, ball.y, ball.radius, 0, Math.PI * 2);
  114.            ctx.fillStyle = "#0095DD";
  115.            ctx.fill();
  116.            ctx.closePath();
  117.        }
  118.  
  119.        function drawPaddle() {
  120.            ctx.beginPath();
  121.            ctx.rect(paddle.x, paddle.y, paddle.width, paddle.height);
  122.            ctx.fillStyle = "#0095DD";
  123.            ctx.fill();
  124.            ctx.closePath();
  125.        }
  126.  
  127.        function drawBricks() {
  128.            for (let r = 0; r < BRICK_ROWS; r++) {
  129.                for (let c = 0; c < BRICK_COLS; c++) {
  130.                    if (bricks[r][c].status === 1) {
  131.                        const brickX = c * (BRICK_WIDTH + BRICK_PADDING) + BRICK_OFFSET_LEFT;
  132.                        const brickY = r * (BRICK_HEIGHT + BRICK_PADDING) + BRICK_OFFSET_TOP;
  133.                        bricks[r][c].x = brickX;
  134.                        bricks[r][c].y = brickY;
  135.                        ctx.beginPath();
  136.                        ctx.rect(brickX, brickY, BRICK_WIDTH, BRICK_HEIGHT);
  137.                        // Damos un color diferente a cada fila
  138.                        ctx.fillStyle = `hsl(${r * 60}, 100%, 50%)`;
  139.                        ctx.fill();
  140.                        ctx.closePath();
  141.                    }
  142.                }
  143.            }
  144.        }
  145.  
  146.        function drawScore() {
  147.            ctx.font = "16px Arial";
  148.            ctx.fillStyle = "#FFF";
  149.            ctx.fillText("Puntuación: " + score, 8, 20);
  150.        }
  151.  
  152.        function drawLives() {
  153.            ctx.font = "16px Arial";
  154.            ctx.fillStyle = "#FFF";
  155.            ctx.fillText("Vidas: " + lives, canvas.width - 65, 20);
  156.        }
  157.  
  158.        // --- DETECCIÓN DE COLISIONES ---
  159.  
  160.        function collisionDetection() {
  161.            for (let r = 0; r < BRICK_ROWS; r++) {
  162.                for (let c = 0; c < BRICK_COLS; c++) {
  163.                    const b = bricks[r][c];
  164.                    if (b.status === 1) {
  165.                        if (ball.x > b.x && ball.x < b.x + BRICK_WIDTH && ball.y > b.y && ball.y < b.y + BRICK_HEIGHT) {
  166.                            ball.dy = -ball.dy; // Invertimos la dirección de la pelota
  167.                            b.status = 0; // Marcamos el bloque como destruido
  168.                            score++;
  169.                            if (score === BRICK_ROWS * BRICK_COLS) {
  170.                                alert("¡GANASTE! &#127881;");
  171.                                document.location.reload(); // Recargamos la página para empezar de nuevo
  172.                            }
  173.                        }
  174.                    }
  175.                }
  176.            }
  177.        }
  178.  
  179.        // --- BUCLE PRINCIPAL DEL JUEGO ---
  180.        function draw() {
  181.            // Limpiamos el canvas en cada frame
  182.            ctx.clearRect(0, 0, canvas.width, canvas.height);
  183.  
  184.            // Dibujamos todos los elementos
  185.            drawBricks();
  186.            drawBall();
  187.            drawPaddle();
  188.            drawScore();
  189.            drawLives();
  190.            collisionDetection();
  191.  
  192.            // --- LÓGICA DE REBOTE DE LA PELOTA ---
  193.            // Rebote en las paredes laterales
  194.            if (ball.x + ball.dx > canvas.width - ball.radius || ball.x + ball.dx < ball.radius) {
  195.                ball.dx = -ball.dx;
  196.            }
  197.            // Rebote en la pared superior
  198.            if (ball.y + ball.dy < ball.radius) {
  199.                ball.dy = -ball.dy;
  200.            }
  201.            // Rebote en la paleta
  202.            else if (ball.y + ball.dy > paddle.y - ball.radius) {
  203.                // Comprobamos si la pelota está dentro de los límites horizontales de la paleta
  204.                if (ball.x > paddle.x && ball.x < paddle.x + paddle.width) {
  205.                    // Un toque extra: cambiamos la dirección de la pelota según dónde golpee la paleta
  206.                    const hitPos = (ball.x - (paddle.x + paddle.width / 2)) / (paddle.width / 2);
  207.                    ball.dx = hitPos * 5; // Ajusta este valor para cambiar el ángulo
  208.                    ball.dy = -ball.dy;
  209.                } else {
  210.                    // Si no toca la paleta, pierde una vida
  211.                    lives--;
  212.                    if (!lives) {
  213.                        alert("GAME OVER &#128546;");
  214.                        document.location.reload();
  215.                    } else {
  216.                        // Reseteamos la posición de la pelota y la paleta
  217.                        ball.x = canvas.width / 2;
  218.                        ball.y = canvas.height - 30;
  219.                        ball.dx = 3;
  220.                        ball.dy = -3;
  221.                        paddle.x = (canvas.width - paddle.width) / 2;
  222.                    }
  223.                }
  224.            }
  225.  
  226.            // --- MOVIMIENTO DE LA PELOTA Y LA PALETA ---
  227.            ball.x += ball.dx;
  228.            ball.y += ball.dy;
  229.  
  230.            if (rightPressed && paddle.x < canvas.width - paddle.width) {
  231.                paddle.x += paddle.speed;
  232.            } else if (leftPressed && paddle.x > 0) {
  233.                paddle.x -= paddle.speed;
  234.            }
  235.  
  236.            // Llamamos a la función draw() de nuevo para crear el bucle de animación
  237.            requestAnimationFrame(draw);
  238.        }
  239.  
  240.        // Iniciamos el juego
  241.        draw();
  242.  
  243.    </script>
  244. </body>
  245. </html>
  246.  

 4 
 en: Hoy a las 16:15 
Iniciado por barto39 - Último mensaje por @XSStringManolo
Hola chicos
1:Todos los puertos funciona correcto
#: El fallo está en programa USB over Network, Share ports on the internet, parece que no funciona  correcto en mi PC no lose cuál es problema
#:Encontré otro programa (USB Network Gate 10) y con este si funciona y puedo usar el puerto que quiero
@XSStringManolo: Teñas razón  no tenía ningún servicio escuchando en los puertos por culpa de USB over Network
Gracias a vosotros aprendí algunas cosas sobre puerto y comprobación

Genial!


 5 
 en: Hoy a las 16:00 
Iniciado por barto39 - Último mensaje por barto39
Hola chicos
1:Todos los puertos funciona correcto
#: El fallo está en programa USB over Network, Share ports on the internet, parece que no funciona  correcto en mi PC no lose cuál es problema
#:Encontré otro programa (USB Network Gate 10) y con este si funciona y puedo usar el puerto que quiero
@XSStringManolo: Teñas razón  no tenía ningún servicio escuchando en los puertos por culpa de USB over Network
Gracias a vosotros aprendí algunas cosas sobre puerto y comprobación

 6 
 en: Hoy a las 15:22 
Iniciado por Tachikomaia - Último mensaje por @XSStringManolo
En japón y en todos los sitios.

 7 
 en: Hoy a las 15:17 
Iniciado por Tachikomaia - Último mensaje por @XSStringManolo
Nada es 100% seguro.


 8 
 en: Hoy a las 12:07 
Iniciado por Tachikomaia - Último mensaje por Tachikomaia
Estos son links a nuevos chats en las páginas correspondientes:

https://poe.com/GPT-5

https://chat.deepseek.com/

Pero al dar un input se genera un link al cual el usuario puede acceder, pero otros usuarios no sé, probé cambiar un número de mi link y puso que no encontró el chat, que puede ser de otra persona supongo, quizá lo borraron...
No sé si otro usuario puede modificar el chat, supongo que no, si se le genera una copia que puede modificar, pero sobretodo si es peligroso, si a partir de un link puede averiguar cosas (más allá de lo dicho en la conversación, claro), otros chats del usuario que envió el link, u otra info.

GPT me había dicho que sí, el bot de acá también, entonces otra pregunta: ¿Cómo copio las conversaciones de modo que queden claras? Porque a veces tienen fórmulas matemáticas, o sea líneas, cuadrados alrededor de texto, el signo que parece una E, etc. Ni siquiera sé copiar y que quede la letra negrita creo.

 9 
 en: Hoy a las 07:28 
Iniciado por Tachikomaia - Último mensaje por Tachikomaia
https://somoskudasai.com/noticias/japon-copyright-imagenes-ia-prompts-detallados-caso-historico/

Supuestamente la imagen es esta:

 10 
 en: Hoy a las 02:52 
Iniciado por AldoRmz - Último mensaje por AldoRmz
Hola a todos,

Tengo un HP Pavilion 17-g121wm (Product Number: N9E13UA#ABA) con System Board ID **80B0**. El equipo entra en bucle y muestra **ACPI_BIOS_ERROR** al arrancar, incluso desde USB.

Lo que ya hice:
- Extraje el SoftPaq sp80252 (F.45) y probé 080AE.bin y 080B1.bin. 
- Hice recuperación de BIOS (Win+B/Win+V) y flasheos. 
- Probé sin disco duro conectado (sigue el error). 
- Verifiqué los hashes de los archivos que descargué.

Creo que el archivo correcto para mi placa es **080B0.bin**; no lo encuentro públicamente. Si alguien tiene el ROM o el SoftPaq con 080B0 (o un enlace con hashes), por favor compártalo.

Gracias — puedo aportar pantallazos y hashes.

Páginas: [1] 2 3 4 5 6 7 8 9 10
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines