Bisca: il backend

È passato un po’ di tempo da quando avevo detto di aver cominciato a lavorare sul progetto della Bisca online. Da allora mi sono laureato, sono andato a trovare dei miei amici in giro per l’Europa, ma ce l’ho anche fatta ad andare avanti col progetto, tanto che ce n’è anche una versione online qui, sul mio VPS.

Il frontend è stato fatto senza usare alcun framework, l’unica dipendenza da terzi è socket.io, che uso per gestire i vari eventi su websocket, per il resto ho implementato tutto io. Comunque non è troppo curato e, di sicuro, se vorrò continuare con questo progetto, dovrò sistemarlo. Anzi, il Javascript che gestisce il gioco potrebbe essere un esempio di come non scrivere codice in questo linguaggio 😅️ .

Ma ciò di cui voglio parlare in questo articolo non è tanto il frontend, quanto il backend.

Come avevo già accennato, avevo valutato di usare il server ufficiale di socket.io, scritto in Javascript per Node.js, ma alla fine ho deciso di usare il port in Python.

Bisca come gioco non è difficile, tuttavia ci sono alcune cose a cui bisogna prestare attenzione.

La prima è l’asso di denari, che può essere sia la carta più bassa, che la più alta del gioco. … [Leggi il resto]

Bisca

Ho realizzato che è da un pezzo che non lavoro seriamente su un progetto mio.

Negli ultimi mesi, ho realizzato il plugin su cui ho scritto la mia tesi di laurea, però non conta troppo, perché, anche se qualche volta ho approfondio e fatto test durante il weekend, ci lavoravo principalmente durante la giornata lavorativa. E proprio per questo, tecnicamente non è neanche mio, perché la proprietà intellettuale del progetto è dell’azienda dove l’ho realizzato.

Adesso comunque per la tesi dovrei essere in dirittura d’arrivo e, appunto, ho deciso di cominciare un progetto che potessi dire completamente mio.

Già tempo addietro un mio amico mi aveva insegnato un gioco che noi chiamiamo “bisca”, ma non ho trovato un altro nome con cui sia conosciuto in giro per l’Internet.

Il gioco è carino e coinvolgente, quindi ho deciso di farne una versione online, anche perché col tempo ci siamo tutti un po’ sparsi, così è un modo anche per ritrovarsi virtualmente.

Come ho già detto in altre occasioni, trovo abbastanza noioso lo sviluppo di cose per il web, siano siti, oppure app, o altro ancora, tuttavia devo dire che mi sembra il modo migliore per sviluppare questo progetto. … [Leggi il resto]

10 Lunghi Anni

10 Luglio 2009 è la data del primo post di questo sito.

Si chiama Cosa ho fatto, ma in realtà era partito come una specie di post programmatico per me stesso, che però alla fine non ho più cancellato e ho solamente rinominato, anche se adesso non ricordo esattamente quale fosse stato il titolo iniziale.

All’inizio, il mio fine era avere puramente un sito, e avevo passato diverso tempo a mescolare diversi software, talvolta in modo un po’ goffo, solo per il gusto di farlo. Il cuore era basato su Flatpress e dopo pochi mesi (Gennaio 2010), è rimasto solo quello e ho eliminato le altre aree. Il nucleo della piattaforma è poi restato invariato per 9 anni e mezzo, anche se col passare del tempo ci ho aggiunto e modificato diversi plugin. A volte ripenso ancora proprio a quanto siano stati osceni certi tentativi di plugin, dei veri e propri orrori della programmazione.

Lo scorrere del tempo ha cambiato la natura degli articoli: all’inizio mi capitava di usarlo come un vero e proprio web log, diario nella rete, anche se l’argomento era comunque la tecnologia.

Con gli anni ho cominciato a scriverci sempre meno, un po’ perché ho dovuto dedicare più tempo alla mia istruzione, un po’ perché cerco di puntare sulla qualità piú che sulla quantità. Cerco di fare contenuti originali, scritti al meglio delle mie capacità e che possano veramente interessare a qualcuno: mi piace l’idea di chiamarli, per questi motivi, articoli e non post. … [Leggi il resto]

Aggiornamento del sito

Come avevo già annunciato nel post in cui parlavo di Whoosh, mi sono attivato per dare una buona rinnovata al sito, e finalmente ci sono arrivato.

I cambiamenti sono stati parecchi, partendo dal nuovo dominio, passando per il nuovo software, arrivando alla nuova grafica.

Il dominio è stata una vera e proprio questione di immagine: da tanti anni sto usando PieroV come nickname su diversi servizi, volevo quindi riflettere questo cambiamento anche sul mio sito, anche perché lo username vecchio poteva portare a fraintendimenti.

Invece riguardo la grafica, fortunatamente stavo già usando una grafica liquida, con misure in percentuali, ma era ancora una grafica da anni 2000, era ora di aggiornarla 😊 . Sono passato a Bootstrap, con qualche personalizzazione ai colori, ho ridotto di molto il numero di widget e li ho messi sotto, anziché come sidebar, aumentando notevolmente l’importanza dei post veri e propri. Inoltre questo mi ha permesso di unire grafica di desktop e dispositivi mobili, anziché avere due siti diversi. … [Leggi il resto]

Compara e unisci PDF

I PDF sono dei file molto comodi da leggere, ma possono diventare un inferno da modificare.

Avendo preso l’abitudine di prenderci appunti direttamente sopra, per me diventa un bel problema quando un documento viene aggiornato, così ho deciso di fare un’applicazione web che consenta di compararli visivamente e unirli.

È ancora un po’ un proof of concept. In pratica si basa sul noto PDF.js di Mozilla: lo usa per renderizzare le varie pagine in due canvas affiancati.

La navigazione è basata tutta su JavaScript vanilla, o meglio, su ES6, quindi con i browser moderni funziona, quindi, pur non avendo provato, sono sicuro che non vada su Internet Explorer.

Quindi questo progetto mi ha permesso di mettermi alla prova con JS, per vedere se riesco ancora a fare qualcosa senza jQuery, e mi ha dato modo di imparare un po’ a usare le API HTML5 per il Drag&Drop con i file.

Invece per il drag&drop dell’elenco di pagine che verranno unite mi sono affidato alla libreria html5sortable, che però non ha altre dipendenze. Avevo cominciato a implementare anche quello, però i risultati non erano buoni e la difficoltà parecchia. Quindi per questa cosa ha avuto senso usare una libreria, che peraltro non pesa molto.

Infine, per il lato client, ho usato Bootstrap 4, giusto per dare un po’ di classe al tutto.

Per il lato server ho usato una Servlet Java: pur non piacendomi molto come tecnologia, ha il vantaggio di poter chiamare direttamente l’ottima libreria iText, che è veramente potente e versatile.

L’unico svantaggio è la viralità della sua licenza: Afferro GPL. Mi vedo quindi costretto a rilasciare il lato server sotto questa licenza, invece il lato client, da solo, per quanto mi riguarda, se la Afferro lo concede, lo potete considerare sotto licenza MIT (non sono sicuro sia possibile, però).

Per il momento è ancora allo stato embrionale, soprattutto il codice lato server, quindi per motivazioni di sicurezza non ne faccio il deploy sul mio VPS, però vi lascio volentieri il codice per il download 😊 .