<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Pupax Blog]]></title><description><![CDATA[Thoughts, stories and ideas.]]></description><link>https://blog.pupax.me/</link><image><url>https://blog.pupax.me/favicon.png</url><title>Pupax Blog</title><link>https://blog.pupax.me/</link></image><generator>Ghost 3.12</generator><lastBuildDate>Tue, 21 Apr 2026 00:25:51 GMT</lastBuildDate><atom:link href="https://blog.pupax.me/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[How to install ESXI on unsupported SYS server]]></title><description><![CDATA[<p>I have recently purchased a new server from SYS (an OVH subcompany), but, after the server was activated, there was no option available for installing Esxi. It seems like they decided to remove it completely from their SYS lineup. There was also no option for installing a modern windows server</p>]]></description><link>https://blog.pupax.me/how-to-install-esxi-on-unsupported-sys-server/</link><guid isPermaLink="false">5c699fde343aca000130702d</guid><category><![CDATA[Guides]]></category><dc:creator><![CDATA[Andrea Ruggiero]]></dc:creator><pubDate>Sun, 17 Feb 2019 18:15:06 GMT</pubDate><media:content url="https://blog.pupax.me/content/images/2019/02/Cattura-8.PNG" medium="image"/><content:encoded><![CDATA[<img src="https://blog.pupax.me/content/images/2019/02/Cattura-8.PNG" alt="How to install ESXI on unsupported SYS server"><p>I have recently purchased a new server from SYS (an OVH subcompany), but, after the server was activated, there was no option available for installing Esxi. It seems like they decided to remove it completely from their SYS lineup. There was also no option for installing a modern windows server (only Windows Server 2008 was available), so hyper v was no an option. I could use proxmox or xenserver but, as you might know, veeam doesn't support other os than esxi and hyperv. Changing from Veeam to something different, such as Acronis was not an option. I don't have enough time. </p><p>I started looking on the web about how to install Esxi from the rescue mode.. but nothing found, so I decied to write a guide about it (if I was able to install it, of course).</p><h3 id="installing-esxi-from-rescue-mode">Installing ESXI from rescue mode </h3><p>First of all you need to boot the server in rescue mode, just go to your sys control panel and select boot options -&gt; rescue mode. Note that, in order to login to the resuce mode, you need to add an SSH key to your account. </p><p>You will also need to have an Esxi ISO. You can download it from the vmware website.</p><p>Once the rescue mode booted, login as root and type this command:</p><!--kg-card-begin: markdown--><pre><code class="language-bash">kvm -machine pc-i440fx-2.1 \
  -cpu host \
  -smp cpus=2 \
  -m 4096 \
  -hda /dev/sda\
  -cdrom VMware-VMvisor-Installer-6.5.0-4564106.x86_64.iso \
  -vnc :1 \
  -net nic -net user,hostfwd=tcp::80-:80,hostfwd=tcp::443-:443,hostfwd=tcp::2222-:22
</code></pre>
<!--kg-card-end: markdown--><p>Replace the path of the iso with the actual path of the esxi image you have download. I also tried installing esxi 6.7 but it didn't booted up, maybe beacuse of a driver issue. Feel free to try, maybe it will work.</p><p>This command will start a VM using the first drive (/dev/sda) as main drive (forwarding also port 80, 443 and 2222-&gt;22 on the host network).</p><p>You can now use any VNC-capable app to connect to the remote vm. Connect to the port :5901 and install Esxi.</p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/02/image-13.png" class="kg-image" alt="How to install ESXI on unsupported SYS server"></figure><p>Once the install is completed reboot the vm and enable SSH remote access (inside esxi), you will need to connect to it to configure the host network.</p><p>I changed this settings from the esx.cfg file:</p><!--kg-card-begin: markdown--><pre><code class="language-cfg">/adv/Net/ManagementAddr = &quot;&lt;server public ip&gt;&quot;
/adv/Net/ManagementIface = &quot;vmk0&quot;
/adv/Misc/HostIPAddr = &quot;&lt;server public ip&gt;&quot;
/adv/Misc/HostName = &quot;&lt;server hostname&gt;&quot;
/net/pnic/child[0000]/name = &quot;vmnic0&quot;
/net/pnic/child[0000]/mac = &quot;&lt;server mac address&gt;&quot;
/net/routes/kernel/child[0000]/gateway = &quot;&lt;server public ip with last number changed to 254&gt;&quot;
/net/vmkernelnic/child[0000]/name = &quot;vmk0&quot;
/net/vmkernelnic/child[0000]/enable = &quot;true&quot;
/net/vmkernelnic/child[0000]/tags/1 = &quot;true&quot;
/net/vmkernelnic/child[0000]/ipv4broadcast = &quot;&lt;server public ip with last number changed to 255&gt;&quot;
/net/vmkernelnic/child[0000]/dhcpv6 = &quot;false&quot;
/net/vmkernelnic/child[0000]/dhcpDns = &quot;false&quot;
/net/vmkernelnic/child[0000]/netstackInstance = &quot;defaultTcpipStack&quot;
/net/vmkernelnic/child[0000]/dhcp = &quot;false&quot;
/net/vmkernelnic/child[0000]/mac = &quot;&lt;server mac address&gt;&quot;
/net/vmkernelnic/child[0000]/routAdv = &quot;false&quot;
/net/vmkernelnic/child[0000]/ipv4netmask = &quot;255.255.255.0&quot;
/net/vmkernelnic/child[0000]/portgroup = &quot;Management Network&quot;
/net/vmkernelnic/child[0000]/ipv4address = &quot;&lt;server public ip&gt;&quot;
/vsan/faultDomainName = &quot;&quot;
/vsan/faultDomainVersion = &quot;2&quot;
/vmkdevmgr/logical/pci#p0000:00:1f.2#0/alias = &quot;vmhba0&quot;
/vmkdevmgr/pci/p0000:03:00.0/alias = &quot;vmnic0&quot;
/vmkdevmgr/pci/p0000:00:1f.2/alias = &quot;vmhba0&quot;

</code></pre>
<!--kg-card-end: markdown--><p>Now shutdown the vm and reboot the server booting from the local hard drive. If everything is fine in a few minutes you should be able to ping your server. If you can't ping the server reboot to rescue mode, restart the vm (also without the -cdrom flag, you don't need it anymore) and check the logs. You should find why the network start didn't work.</p><p>Feel free to ask me more details sending me an email at andrea@ruggiero.top.</p>]]></content:encoded></item><item><title><![CDATA[Cock O' The - GGJ 2019]]></title><description><![CDATA[<p>Settimana scorsa si è svolta in tutto il mondo la Global Game Jam 2019, io ho partecipato insieme al mio gruppo, Team 10, nel Jam Site di Milano, precisamente nell'edificio 26, aka mensa, del Politecnico di Milano.</p><p>Il tema principale, che ora possiamo rivelare, è: "Cosa 'casa' significa per te?</p>]]></description><link>https://blog.pupax.me/cock-o-the-ggj-2019/</link><guid isPermaLink="false">5c50aec01af20100019921ce</guid><category><![CDATA[Hackathons]]></category><dc:creator><![CDATA[Andrea Ruggiero]]></dc:creator><pubDate>Tue, 29 Jan 2019 20:31:22 GMT</pubDate><media:content url="https://blog.pupax.me/content/images/2019/01/LogoCockOThe.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.pupax.me/content/images/2019/01/LogoCockOThe.png" alt="Cock O' The - GGJ 2019"><p>Settimana scorsa si è svolta in tutto il mondo la Global Game Jam 2019, io ho partecipato insieme al mio gruppo, Team 10, nel Jam Site di Milano, precisamente nell'edificio 26, aka mensa, del Politecnico di Milano.</p><p>Il tema principale, che ora possiamo rivelare, è: "Cosa 'casa' significa per te?", o in inglese "What home means to you?". Un tema sicuramente molto più complesso rispetto al tema "tramissione" dello scorso anno. Casa più significare tutto, dalla "famiglia" al "riposare", se non addirittura il "bagno". Sono bastate poche ore perchè ci rendessimo conto di non riuscire a realizzare un gioco con un significato profondo, ognuno di noi ha una propria idea di casa, è impossibile accomunarle tutte ad un solo concetto. Abbiamo quindi deciso di preparare qualcosa di definitivamente più concreto è meno profondo, potremmo anche dire ai limiti del trash. </p><figure class="kg-card kg-embed-card"><iframe width="480" height="270" src="https://www.youtube.com/embed/SQApqp4Prjw?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></figure><p>La <em>casa</em> di un sito web è rappresentata dalla sua homepage, ed è questo l'obbiettivo del nostro <em>videogame</em>.</p><blockquote>You are browsing the web and you find yourself blocked in a webpage with no return button. What will you start looking for? Maybe you'll start searching for a "Home" button... and that's when the game start. You'll find yourself (as a chicken :P) blocked at the bottom of the page and you'll need to start jumping around to reach the home button. Once you get there, you will be redirected to the home page you were looking for!</blockquote><p>Nonostante l'innata stupidità del gioco, ci siamo resi conto che giocarci riesce a fare uscire qualche sorriso, soprattutto perché la difficoltà del gioco è rappresentata dalle pagine web, che, a volte, riescono a rendere impossibile raggiungere la homepage. Immaginatevi un sito web con nel mezzo un'immagine full-width molto alta, il protagonista di Cock O' The non sarà mai in grado di superarla. Abbiamo aggiunto le <em>uova-bomba</em> così da dare un <em>boost</em> al personaggio per superare degli spazi più lunghi ma, a volte, ciò non basta. In questi ultimi casi l'unica soluzione è andare a modificare la sorgente della pagina tramite ispeziona elemento, ovviamente tutto in meno di 60 secondi. Infine, per aggiungere un'ulteriore complicazione abbiamo dato una vita alle componenti della pagina, dopo un tempo casuale cadranno e non ti permetteranno più di salire. Vi auguro buona fortuna a risalire un sito con infinite-loading!</p><hr><p>Adesso addentriamoci nella sezione tecnica di questo gioco che, per deformazione professionale, risulterà ovviamente essere la più interessante. </p><p>Il gioco si tratta di un'estensione Chrome sviluppata in ES7 e pacchettizzata con Webpack e Babel. </p><h2 id="individuazione-della-homepage">Individuazione della homepage</h2><p>Un componente del gioco si occupa di individuare le candidate homepage della pagina web. Attraverso delle query XPath riesce a trovare tutto ciò che assomiglia ad una homepage e lo sostituisce con un trigger del gioco. Ovviamente nei casi in cui la homepage non si tratti di un vero e proprio link ma di un wrapper che linka alla homepage tramite javascript il componente non è in grado di individuarlo.</p><h2 id="parsing-della-pagina">Parsing della pagina</h2><p>Il parsing della pagina avviene non appena il gioco inizia. Il parser svolge una funzione fondamentale: individua le componenti della pagina su cui il personaggio potrà saltare. Per far ciò cerca tutti i paragrafi, le intestazioni, le immagini, i link, etc. e applica ad essi diverse trasformazioni bloccando così quelli che hanno una width larga tutta la pagina. Una delle trasformazioni più importanti è sicurezza l'inserimento di tutti i testi in uno span wrapper così che il contenitore occupi solo la larghezza del testo stesso. </p><h2 id="rendering-e-gestione-eventi">Rendering e gestione eventi</h2><p>Abbiamo deciso di affidarci all'engine del browser per gestire il movimento del personaggio, non abbiamo quindi fatto uso dei canvas. Questa decisione è stata dettata dal poco tempo a disposizione, non avremmo fatto in tempo a realizzare un engine in meno di 48 ore. Il rerendering della pagina è quindi collegato al numero di tick per secondo che il gioco esegue. Abbiamo impostato questo valore a 60 per dare una maggiore fluidità, a discapito di una maggiore pesantezza del gioco stesso. Ogni sessantesimo di secondo il componente Ticker chiama la funzione tick() di tutti i componenti ad esso registrato, i quali verificano il tempo, muovono il personaggio, aggiornano la ui, gestiscono lo sparo, etc. </p><h2 id="multiplayer">Multiplayer </h2><p>Non abbiamo avuto tempo per implementare un motore di rendering efficiente ma abbiamo deciso di provare ad implementare un multiplayer. Nel giro di poche ore abbiamo abbandonato quest'idea pazza, soprattutto quando ci siamo resi conto che permette a due giocatori di giocare sulla stessa pagina web anche con dimensioni della scheda diversa era impossibile, se non applicando strane trasformazioni alla pagina. Ad ogni caso è possibile provare il multiplayer in modalità sviluppo. Abbiamo realizzato un mini web-socket server con socket.io che non fa altro che broadcastare a tutti i client collegati le posizioni dei vari player, il gioco renderizza i player nella posizione che riceve. Ovviamente non è in alcun modo sicuro o funzionante, è solo uno scratch. </p><h2 id="sorgente">Sorgente</h2><p>Tutto il sorgente è disponibile su GitHub a questo indirizzo: <a href="https://github.com/pupaxxo/cock-o-the">https://github.com/pupaxxo/cock-o-the</a>. </p><p></p><p>Non esistate a contattarmi al mio indirizzo email per qualsiasi altra informazione: andrea@ruggiero.top </p><p></p>]]></content:encoded></item><item><title><![CDATA[Roadsense - Hack the Cloud 2018]]></title><description><![CDATA[<p>Settimana scorsa si è svolta la prima edizione di Hack the Cloud, un hackathon organizzato dal GARR insieme all'università Milano-Biccoca per incentivare l'utilizzo di tecnologie cloud come Openstack e Kubernetes.</p><p>Lo scopo dell'hackathon era quello di realizzare in meno di 8h un progetto per una Smart City che integrasse gli</p>]]></description><link>https://blog.pupax.me/hackthecloud/</link><guid isPermaLink="false">5c50d11a1af20100019921e4</guid><category><![CDATA[Hackathons]]></category><dc:creator><![CDATA[Andrea Ruggiero]]></dc:creator><pubDate>Sun, 25 Nov 2018 22:17:00 GMT</pubDate><media:content url="https://blog.pupax.me/content/images/2019/01/logo-hackaton-header-6ae20f1c.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.pupax.me/content/images/2019/01/logo-hackaton-header-6ae20f1c.png" alt="Roadsense - Hack the Cloud 2018"><p>Settimana scorsa si è svolta la prima edizione di Hack the Cloud, un hackathon organizzato dal GARR insieme all'università Milano-Biccoca per incentivare l'utilizzo di tecnologie cloud come Openstack e Kubernetes.</p><p>Lo scopo dell'hackathon era quello di realizzare in meno di 8h un progetto per una Smart City che integrasse gli OpenData e la rete cloud del GARR.</p><h2 id="roadsense">Roadsense</h2><blockquote>Il nostro progetto (Roadsense) si basa sull'applicazione di sensori intelligenti sui mezzi di trasporto pubblico di superficie, con un doppio obiettivo: monitorare lo stato delle linee per individuare eventuali problemi sulle tratte e, allo stesso tempo, grazie a dei sensori di movimento, rilevare la condizione del manto stradale urbano, aggregando i dati dei diversi autobus e segnalando le situazioni problematiche.Nel corso dell'hackaton siamo riusciti a realizzare una buona parte del backend e della webapp per il monitoraggio delle linee e delle strade; abbiamo inoltre sviluppato un prototipo del software da installare sui sensori, in cui abbiamo inserito per l'occasione dei dati simulati basati sugli Open Data del comune di Milano.</blockquote><h2 id="tecnologie">Tecnologie</h2><p>L'intero progetto è stato hostato su un cluster kubernetes formato da due nodi hostato sulla rete del GARR. </p><p>La realizzazione del progetto è stata divisa in due componenti</p><h3 id="backend">Backend</h3><p>Il backend è stato sviluppato in PHP con Symfony. Il suo obiettivo era quello di fornire un'API per i sensori presenti sui pullman e di fornire un'interfaccia web per visualizzare i dati in tempo reale.</p><h3 id="sensori">Sensori</h3><p>Abbiamo anche realizzato un finto pullman in grado di muoversi sui percorsi resi disponibile dall'OpenData di milano e inviare finti aggiornamenti al backend.</p><h2 id="risultato">Risultato</h2><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/01/image-15.png" class="kg-image" alt="Roadsense - Hack the Cloud 2018"></figure><p>Siamo arrivati terzi a pari merito con un altro gruppo. E disponibile sul sito ufficiale l'elenco degli altri progetti vincitori <a href="https://hackthecloud.it/it/vincitori">https://hackthecloud.it/it/vincitori</a>.</p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/01/image-16.png" class="kg-image" alt="Roadsense - Hack the Cloud 2018"></figure>]]></content:encoded></item><item><title><![CDATA[Metodica-Mente]]></title><description><![CDATA[<p>L'Istituto <strong><a href="https://www.iisbadoni.gov.it/" rel="home">di Istruzione Superiore 'A. Badoni'</a> </strong>di Lecco ci ha chiesto di sviluppare un'applicazione mobile per Android e iOS che permettesse agli studenti di accedere al registro elettronico, così che possano vedere i propri voti, gli argomenti, i compiti e le ultime news dal sito web.</p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/02/image-1.png" class="kg-image"></figure><p>Abbiamo sviluppato l'applicazione con</p>]]></description><link>https://blog.pupax.me/metodicamente/</link><guid isPermaLink="false">5c5710341af20100019921ed</guid><category><![CDATA[Portfolio]]></category><dc:creator><![CDATA[Andrea Ruggiero]]></dc:creator><pubDate>Wed, 31 Oct 2018 16:00:00 GMT</pubDate><media:content url="https://blog.pupax.me/content/images/2019/02/392x696bb--1-.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.pupax.me/content/images/2019/02/392x696bb--1-.jpg" alt="Metodica-Mente"><p>L'Istituto <strong><a href="https://www.iisbadoni.gov.it/" rel="home">di Istruzione Superiore 'A. Badoni'</a> </strong>di Lecco ci ha chiesto di sviluppare un'applicazione mobile per Android e iOS che permettesse agli studenti di accedere al registro elettronico, così che possano vedere i propri voti, gli argomenti, i compiti e le ultime news dal sito web.</p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/02/image-1.png" class="kg-image" alt="Metodica-Mente"></figure><p>Abbiamo sviluppato l'applicazione con React Native e EXPO. Per l'interfaccia utente abbiamo usato la libreria Native Base, molto comoda se si sviluppa per entrambe le piattaforme. Il risultato è stato più che soddisfacente. L'applicazione nonostante sia scritta in Javascript è molto veloce e fluida. E' stato possibile implementare tutte le funzionalità richieste in meno di due settimane. </p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/02/image-2.png" class="kg-image" alt="Metodica-Mente"></figure><p>L'applicazione è disponibile gratuitamente sugli store:<br>- <a href="https://play.google.com/store/apps/details?id=it.gov.iisbadoni.metodicamente">https://play.google.com/store/apps/details?id=it.gov.iisbadoni.metodicamente</a><br>- <a href="https://itunes.apple.com/us/app/metodica-mente/id1437576372?mt=8&amp;app=itunes&amp;ign-mpt=uo%3D4">https://itunes.apple.com/us/app/metodica-mente/id1437576372?mt=8&amp;app=itunes&amp;ign-mpt=uo%3D4</a></p>]]></content:encoded></item><item><title><![CDATA[Baank.ly - HackTheAlps 2018]]></title><description><![CDATA[<p>Settimana scorsa si è svolta la prima edizione dell'hackathon HackTheAlps in provincia di Bolzano a Kronplatz.</p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/01/IMG_2249.jpg" class="kg-image"></figure><p>Il tema di questo hackathon riguardava la progettazione e realizzazione di un progetto sostenibile in grado di integrarsi con la vita del Sud Tirolo in meno di 48 ore.</p><p>La location era stupenda, le</p>]]></description><link>https://blog.pupax.me/hackthealps-2018/</link><guid isPermaLink="false">5c50c2e91af20100019921d8</guid><category><![CDATA[Hackathons]]></category><dc:creator><![CDATA[Andrea Ruggiero]]></dc:creator><pubDate>Sun, 30 Sep 2018 20:51:00 GMT</pubDate><media:content url="https://blog.pupax.me/content/images/2019/01/HTA-Portrait-Square.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.pupax.me/content/images/2019/01/HTA-Portrait-Square.png" alt="Baank.ly - HackTheAlps 2018"><p>Settimana scorsa si è svolta la prima edizione dell'hackathon HackTheAlps in provincia di Bolzano a Kronplatz.</p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/01/IMG_2249.jpg" class="kg-image" alt="Baank.ly - HackTheAlps 2018"></figure><p>Il tema di questo hackathon riguardava la progettazione e realizzazione di un progetto sostenibile in grado di integrarsi con la vita del Sud Tirolo in meno di 48 ore.</p><p>La location era stupenda, le richieste molto meno. Non conoscendo la zona e il modo di vivere dei sud tirolesi non siamo riusciti a ideare qualcosa in grado di integrarsi nel modo di vivere della zona. Abbiamo quindi deciso di puntare ad un'altra challenge, decisamente più creativa <em>Design Your Dream “Banking” App. </em>Una scelta che, a posteri, sicuramente non avremmo più rifatto. La challenge si è rilevata decisamente troppo aperta. </p><h2 id="baank-ly">Baank.ly</h2><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/01/image-10.png" class="kg-image" alt="Baank.ly - HackTheAlps 2018"></figure><p>Baank.ly è il nostro progetto, la banca nella natura. Il progetto prevede un'interfaccia di accesso innovativa, vista nella natura. </p><h3 id="gestione-movimenti">Gestione movimenti</h3><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/01/image-11.png" class="kg-image" alt="Baank.ly - HackTheAlps 2018"></figure><p>Grazie al grafico ad alberi è possibile visualizzare quanto si è speso nelle varie categorie. Il sistema di categorizzazione è basato su un algoritmo molto stupido di machine learning. </p><h3 id="gestione-obiettivi">Gestione obiettivi</h3><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/01/image-13.png" class="kg-image" alt="Baank.ly - HackTheAlps 2018"></figure><p>L'interfaccia di gestione del proprio conto mette a disposizione un'innovativa gestione degli obiettivi. E' possibile definire degli obiettivi in denaro, che verranno poi rappresentati tramite un grafico a montagna. L'uomo che scala la montagna rappresenta il cliente che cerca di raggiungere l'obiettivo. </p><h3 id="gps-payment">GPS Payment</h3><p>Il sistema metteva a disposizione un innovativo sistema di pagamento veloce: il pagamento basato sul gps. Il sistema infatti è in grado di localizzare tutti gli utenti "vicini" e inviare bonifici con un semplice tap, senza più doversi scambiare IBAN e altre verifiche.</p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/01/image-14.png" class="kg-image" alt="Baank.ly - HackTheAlps 2018"></figure><h3 id="integrazione-con-il-sud-tirolo">Integrazione con il Sud Tirolo</h3><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/01/image-12.png" class="kg-image" alt="Baank.ly - HackTheAlps 2018"></figure><p>Ogni settimana il cliente sarà invitato a partecipare ad un evento della zona. Se parteciperà potrò ottenere sconti o addirittura premi. Gli eventi vengono caricati dall'Open Data del Sud Tirolo.</p><h3 id="tecnologie">Tecnologie</h3><p>Abbiamo realizzato il backend on PHP e Symfony. Il frontend è invece realizzato con React usando la libreria Ant per la UI.</p><p>Il codice sorgente è disponibile <a href="https://git.shitware.xyz/anvide/hackthealps2018">qua</a>.</p><hr><p>Durante l'hackathon abbiamo avuto di modo di testare l'Open Data Hub del Sud Tirolo. Durante la fase testing abbiamo trovato diverse vulnerabilità fra cui la possibiltà di fare SQL injection e di far crashare il server chiedendo risposte troppo grandi. Abbiamo fin da subito segnalato il problema ai gestori del portale. </p><p>Mi sembra inaccettabile trovare ancora questo tipo di vulnerabilità nel 2018. Abbiamo a disposizione migliaia di framework e linguaggi che cercano di prevenire in tutti i modi questo tipo di errori, a volte diventa quasi più difficile aggiungere la possibilità di SQL injection che toglierla. Open data Hub, hai fatto un brutta figura. Pubblicizzare un portale del genere, definirlo innovativo ad un gruppo di hackers e lasciare delle vulnerabilità del genere. Good Job. </p>]]></content:encoded></item><item><title><![CDATA[Resinelli - Mini Cooper]]></title><description><![CDATA[<p>Canon EOS 80D + ES-S18-135mm f/3.5-5.6</p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/01/IMG_2160_fixed2.jpg" class="kg-image"></figure><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/01/IMG_2179_dust.jpg" class="kg-image"></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.pupax.me/content/images/2019/01/IMG_2204.jpg" class="kg-image"><figcaption>f/4.5 1/320s ISO-100 35mm</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.pupax.me/content/images/2019/01/IMG_2167.jpg" class="kg-image"><figcaption>f/5 1/250s ISO-100 35mm</figcaption></figure>]]></description><link>https://blog.pupax.me/resinelli-mini-cooper/</link><guid isPermaLink="false">5c50d9c21af20100019921e8</guid><category><![CDATA[Photos]]></category><dc:creator><![CDATA[Andrea Ruggiero]]></dc:creator><pubDate>Sat, 15 Sep 2018 21:55:00 GMT</pubDate><media:content url="https://blog.pupax.me/content/images/2019/01/IMG_2160_fixed2-1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.pupax.me/content/images/2019/01/IMG_2160_fixed2-1.jpg" alt="Resinelli - Mini Cooper"><p>Canon EOS 80D + ES-S18-135mm f/3.5-5.6</p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/01/IMG_2160_fixed2.jpg" class="kg-image" alt="Resinelli - Mini Cooper"></figure><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/01/IMG_2179_dust.jpg" class="kg-image" alt="Resinelli - Mini Cooper"></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.pupax.me/content/images/2019/01/IMG_2204.jpg" class="kg-image" alt="Resinelli - Mini Cooper"><figcaption>f/4.5 1/320s ISO-100 35mm</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.pupax.me/content/images/2019/01/IMG_2167.jpg" class="kg-image" alt="Resinelli - Mini Cooper"><figcaption>f/5 1/250s ISO-100 35mm</figcaption></figure>]]></content:encoded></item><item><title><![CDATA[? Nuovo blog! ?]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Oggi, 23 agosto 2018, inauguriamo finalmente il mio nuovo blog!</p>
<blockquote>
<p>Di cosa mi occupo?</p>
</blockquote>
<p>Sono Andrea, un giovane sviluppatore amante delle nuove tecnologie. Generalmente sviluppo in PHP con Symfony e Javascript con React, ma ho anche diverse esperienze con applicazioni mobile native e non, e applicazioni desktop in .NET, Java</p>]]></description><link>https://blog.pupax.me/nuovo-blog/</link><guid isPermaLink="false">5b7f003d3a663b00018a45d7</guid><category><![CDATA[Notizie]]></category><dc:creator><![CDATA[Andrea Ruggiero]]></dc:creator><pubDate>Thu, 23 Aug 2018 19:15:33 GMT</pubDate><media:content url="https://blog.pupax.me/content/images/2018/08/jessica-lewis-623895-unsplash.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://blog.pupax.me/content/images/2018/08/jessica-lewis-623895-unsplash.jpg" alt="? Nuovo blog! ?"><p>Oggi, 23 agosto 2018, inauguriamo finalmente il mio nuovo blog!</p>
<blockquote>
<p>Di cosa mi occupo?</p>
</blockquote>
<p>Sono Andrea, un giovane sviluppatore amante delle nuove tecnologie. Generalmente sviluppo in PHP con Symfony e Javascript con React, ma ho anche diverse esperienze con applicazioni mobile native e non, e applicazioni desktop in .NET, Java o Electron.<br>
Ho anche una passione, che ho appena iniziato a coltivare, per la fotografia con una Canon EOS 80D. Cercherò, se possibile, di usare le mie foto come copertine ai post che pubblicherò, ma come si può vedere in questo post mi affiderò anche ad unsplash.com</p>
<blockquote>
<p>E di cosa parliamo?</p>
</blockquote>
<p>Non ho ancora una risposta ?</p>
<blockquote>
<p>Allora perchè hai aperto il blog?</p>
</blockquote>
<p>Lo scopo è quello di condividere storie e divertenti esperienze con diversi prodotti pieni di diversi problemi (Microsoft ?) cercando di non annoiare troppo i lettori.<br>
Per quanto possa amare l'informatica devo ammettere a che a volte è proprio noiosa ?</p>
<blockquote>
<p>Iniziamo?</p>
</blockquote>
<p>Iniziamo!</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Morterush]]></title><description><![CDATA[<p>Canon EOS 80D + ES-S18-135mm f/3.5-5.6</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.pupax.me/content/images/2019/01/IMG_1285-2.jpg" class="kg-image"><figcaption>f/10 1/640s ISO-500 72mm</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.pupax.me/content/images/2019/01/IMG_1377-1.jpg" class="kg-image"><figcaption>f/20 1/100s ISO-400 121mm</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.pupax.me/content/images/2019/01/IMG_1432.jpg" class="kg-image"><figcaption>f/5 1/2500s ISO-500 35mm</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.pupax.me/content/images/2019/01/IMG_1484.jpg" class="kg-image"><figcaption>f/22 1/5s ISO-100 18mm</figcaption></figure>]]></description><link>https://blog.pupax.me/morterush/</link><guid isPermaLink="false">5c50cdf01af20100019921df</guid><category><![CDATA[Photos]]></category><dc:creator><![CDATA[Andrea Ruggiero]]></dc:creator><pubDate>Sun, 12 Aug 2018 21:39:00 GMT</pubDate><media:content url="https://blog.pupax.me/content/images/2019/01/IMG_1302.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.pupax.me/content/images/2019/01/IMG_1302.jpg" alt="Morterush"><p>Canon EOS 80D + ES-S18-135mm f/3.5-5.6</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.pupax.me/content/images/2019/01/IMG_1285-2.jpg" class="kg-image" alt="Morterush"><figcaption>f/10 1/640s ISO-500 72mm</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.pupax.me/content/images/2019/01/IMG_1377-1.jpg" class="kg-image" alt="Morterush"><figcaption>f/20 1/100s ISO-400 121mm</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.pupax.me/content/images/2019/01/IMG_1432.jpg" class="kg-image" alt="Morterush"><figcaption>f/5 1/2500s ISO-500 35mm</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.pupax.me/content/images/2019/01/IMG_1484.jpg" class="kg-image" alt="Morterush"><figcaption>f/22 1/5s ISO-100 18mm</figcaption></figure>]]></content:encoded></item><item><title><![CDATA[BonAppétit]]></title><description><![CDATA[<p>BonAppétit è il progetto che, insieme al mio gruppo, ho portato avanti durante tutto il 2017-2018. </p><h2 id="cos-">Cos'è?</h2><p>BonAppétit è un gestionale semplice e innovativo per bar e ristoranti. Il nostro gestionale si adatta a locali di qualsiasi dimensione: dal piccolo bar al rinomato ristorante. </p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/01/image-3.png" class="kg-image"></figure><h2 id="cosa-offre-di-innovativo">Cosa offre di innovativo?</h2><p>BonAppétit si</p>]]></description><link>https://blog.pupax.me/bonappetit/</link><guid isPermaLink="false">5c50bd471af20100019921d5</guid><category><![CDATA[Portfolio]]></category><dc:creator><![CDATA[Andrea Ruggiero]]></dc:creator><pubDate>Fri, 01 Jun 2018 19:53:00 GMT</pubDate><media:content url="https://blog.pupax.me/content/images/2019/01/Cattura.PNG" medium="image"/><content:encoded><![CDATA[<img src="https://blog.pupax.me/content/images/2019/01/Cattura.PNG" alt="BonAppétit"><p>BonAppétit è il progetto che, insieme al mio gruppo, ho portato avanti durante tutto il 2017-2018. </p><h2 id="cos-">Cos'è?</h2><p>BonAppétit è un gestionale semplice e innovativo per bar e ristoranti. Il nostro gestionale si adatta a locali di qualsiasi dimensione: dal piccolo bar al rinomato ristorante. </p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/01/image-3.png" class="kg-image" alt="BonAppétit"></figure><h2 id="cosa-offre-di-innovativo">Cosa offre di innovativo?</h2><p>BonAppétit si pone come obiettivo quello di migliorare le attività in cui viene installato. Attraverso algoritmi di Machine Learning e IA impara a conoscere l'attività e la clientela dell'attività arrivando a dare dei suggerimenti al proprietario riguardo possibili miglioramenti. </p><blockquote>Vogliamo portare la tecnologia del 2018, composta da <strong>Machine Learning e IA</strong>, nel campo della ristorazione. <strong>Pensiamo si possa fare di più, vogliamo fare di più, facciamo di più.</strong></blockquote><h2 id="i-nostri-riconoscimenti">I nostri riconoscimenti</h2><p>Siamo arrivati primi alla competizione regionale, fra Lombardia e Veneto, di Imprese in Azione. </p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/01/image-4.png" class="kg-image" alt="BonAppétit"></figure><p>Alla competizione nazionale di Imprese in Azione abbiamo vinto il premio come migliore business plan. A scuola siamo riusciti ad ottenere il secondo posto nel premio Antonio Riva, volto a premiare i migliori progetti. </p><h2 id="le-componenti">Le componenti</h2><h3 id="il-backend">Il backend</h3><p>Abbiamo realizzato il backend in PHP usando il framework Symfony. Il backend si occupa di gestire tutte le ordinazioni ai tavoli, la stampa degli scontrini e il menu del ristorante. Il backend comunica anche con l'applicazione fornendole il menu del locale.</p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/01/image-9.png" class="kg-image" alt="BonAppétit"></figure><h3 id="il-sito-web">Il sito web</h3><p>Il sito web gestisce gli utenti dell'applicazione, il backup e la raccolta dati delle singole installazioni. Anch'esso è scritto in PHP con Symfony.</p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/01/image-7.png" class="kg-image" alt="BonAppétit"></figure><h3 id="l-applicazione">L'applicazione</h3><p>L'applicazione è stata sviluppata in React e permette ai clienti di ordinare nei ristoranti affiliati direttamente dal tavolo, senza attendere l'arrivo del cameriere. Permette inoltre di pagare direttamente con PayPal o POS. </p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/01/image-6.png" class="kg-image" alt="BonAppétit"></figure><h3 id="il-frontend">Il frontend</h3><p>Il frontend amministrativo è stato sviluppato in React e permette ai camerieri di prendere gli ordini ai tavoli e al proprietario di gestire il menu del locale e di visualizzare i consigli calcolati con Machine Learning e IA.</p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/01/image-5.png" class="kg-image" alt="BonAppétit"></figure>]]></content:encoded></item><item><title><![CDATA[Luconi Architetti Associati]]></title><description><![CDATA[<p><a href="https://luconiassociati.it/">https://luconiassociati.it/</a></p><p>Sito web realizzato con Joomla e Yootheme Pro. E' stato necessario anche realizzare un modulo custom per visualizzare gli ultimi articoli. </p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/02/image-8.png" class="kg-image"></figure>]]></description><link>https://blog.pupax.me/luconi-architetti-associati/</link><guid isPermaLink="false">5c575a611af20100019921fd</guid><category><![CDATA[Websites]]></category><dc:creator><![CDATA[Andrea Ruggiero]]></dc:creator><pubDate>Thu, 31 May 2018 20:17:00 GMT</pubDate><media:content url="https://blog.pupax.me/content/images/2019/02/Cattura-4.PNG" medium="image"/><content:encoded><![CDATA[<img src="https://blog.pupax.me/content/images/2019/02/Cattura-4.PNG" alt="Luconi Architetti Associati"><p><a href="https://luconiassociati.it/">https://luconiassociati.it/</a></p><p>Sito web realizzato con Joomla e Yootheme Pro. E' stato necessario anche realizzare un modulo custom per visualizzare gli ultimi articoli. </p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/02/image-8.png" class="kg-image" alt="Luconi Architetti Associati"></figure>]]></content:encoded></item><item><title><![CDATA[Pizzeria Vecchia Brianza]]></title><description><![CDATA[<p>Sito web realizzato con Silex. E' stato necessario sviluppare anche una parte amministrativa per gestire i vari menu.</p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/02/image-10.png" class="kg-image"></figure><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/02/image-11.png" class="kg-image"></figure>]]></description><link>https://blog.pupax.me/pizzeria-vecchia-brianza/</link><guid isPermaLink="false">5c575ba21af2010001992203</guid><category><![CDATA[Websites]]></category><dc:creator><![CDATA[Andrea Ruggiero]]></dc:creator><pubDate>Wed, 25 Apr 2018 20:22:00 GMT</pubDate><media:content url="https://blog.pupax.me/content/images/2019/02/Cattura-6.PNG" medium="image"/><content:encoded><![CDATA[<img src="https://blog.pupax.me/content/images/2019/02/Cattura-6.PNG" alt="Pizzeria Vecchia Brianza"><p>Sito web realizzato con Silex. E' stato necessario sviluppare anche una parte amministrativa per gestire i vari menu.</p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/02/image-10.png" class="kg-image" alt="Pizzeria Vecchia Brianza"></figure><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/02/image-11.png" class="kg-image" alt="Pizzeria Vecchia Brianza"></figure>]]></content:encoded></item><item><title><![CDATA[Lovers Italy]]></title><description><![CDATA[<p><a href="https://lovers-italy.it/en">https://lovers-italy.it/en</a></p><p>Sito web realizzato con Symfony 4. </p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/02/image-7.png" class="kg-image"></figure>]]></description><link>https://blog.pupax.me/lovers-italy/</link><guid isPermaLink="false">5c5759e41af20100019921fa</guid><category><![CDATA[Websites]]></category><dc:creator><![CDATA[Andrea Ruggiero]]></dc:creator><pubDate>Mon, 19 Feb 2018 21:15:00 GMT</pubDate><media:content url="https://blog.pupax.me/content/images/2019/02/Cattura-3.PNG" medium="image"/><content:encoded><![CDATA[<img src="https://blog.pupax.me/content/images/2019/02/Cattura-3.PNG" alt="Lovers Italy"><p><a href="https://lovers-italy.it/en">https://lovers-italy.it/en</a></p><p>Sito web realizzato con Symfony 4. </p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/02/image-7.png" class="kg-image" alt="Lovers Italy"></figure>]]></content:encoded></item><item><title><![CDATA[Sparkan - GGJ 2018]]></title><description><![CDATA[<p>Settimana scorsa si è svolta la Global Game Jam 2018 a cui io, insieme al mio Team, abbiamo partecipato. Il tema di quest'anno era la "Trasmissione". E' bastato un breve brainstorming per avere un'infinità di idee che potevano collegarsi alla trasmissione. La nostra natura Nerd ci ha portato come prima</p>]]></description><link>https://blog.pupax.me/sparkan-ggj-2018/</link><guid isPermaLink="false">5c57556e1af20100019921f3</guid><category><![CDATA[Hackathons]]></category><dc:creator><![CDATA[Andrea Ruggiero]]></dc:creator><pubDate>Tue, 30 Jan 2018 21:09:00 GMT</pubDate><media:content url="https://blog.pupax.me/content/images/2019/02/schermata_2018-01-28_alle_13.53.01.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.pupax.me/content/images/2019/02/schermata_2018-01-28_alle_13.53.01.png" alt="Sparkan - GGJ 2018"><p>Settimana scorsa si è svolta la Global Game Jam 2018 a cui io, insieme al mio Team, abbiamo partecipato. Il tema di quest'anno era la "Trasmissione". E' bastato un breve brainstorming per avere un'infinità di idee che potevano collegarsi alla trasmissione. La nostra natura Nerd ci ha portato come prima idea a un gioco ambientato nella rete Wi-Fi. Ci siamo resi conto dopo pochi minuti che contestualizzare l'idea della trasmissione nel campo dell'informatica non avrebbe portato a ottimi risultati, ed è così che è nato Sparkan. </p><figure class="kg-card kg-embed-card"><iframe width="480" height="270" src="https://www.youtube.com/embed/w3lrR_TDztc?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></figure><blockquote>A game set in a world where electricity finally rose against the human genre that has been exploiting it for years. Meet Brighty, an hero with the power to flow just like current and transmit itself through conductive surfaces.</blockquote><p>Il protagonista, Brighty, può muoversi sfruttando le pareti in grado di condurre o lanciando speciali raggi. Il suo obbiettivo è, grazie a questo sistema di teletrasporto, spostare il "Boss" (il cattivo) su una speciale piattaforma con il potere di ucciderlo. </p><p>Il gioco è stato realizzato con Unity e C#. Nonostante due di noi non avevano idea di come si utilizzasse Unity o C# siamo riusciti comunque a realizzare un bel gioco, nel suo piccolo anche divertente, che ci ha permesso di ottenere il premo "Più sbatta special".  Questo premio non era fra i premi ufficiali ma ci è stato dedicato perché il nostro gruppo era il gruppo più giovane e anche uno dei più piccoli di tutta la competizione. </p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/02/image-5.png" class="kg-image" alt="Sparkan - GGJ 2018"></figure>]]></content:encoded></item><item><title><![CDATA[BonAppétit]]></title><description><![CDATA[<p><a href="https://luconiassociati.it/">https://bonappetitapp.it/</a></p><p>Sito web realizzato con Joomla e Yootheme Pro.</p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/03/bonappetitapp.PNG" class="kg-image"></figure>]]></description><link>https://blog.pupax.me/bonappetitapp/</link><guid isPermaLink="false">5c8d4d7a343aca0001307033</guid><category><![CDATA[Websites]]></category><dc:creator><![CDATA[Andrea Ruggiero]]></dc:creator><pubDate>Thu, 11 Jan 2018 19:24:00 GMT</pubDate><media:content url="https://blog.pupax.me/content/images/2019/03/logo-complete-21d24e88.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.pupax.me/content/images/2019/03/logo-complete-21d24e88.png" alt="BonAppétit"><p><a href="https://luconiassociati.it/">https://bonappetitapp.it/</a></p><p>Sito web realizzato con Joomla e Yootheme Pro.</p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/03/bonappetitapp.PNG" class="kg-image" alt="BonAppétit"></figure>]]></content:encoded></item><item><title><![CDATA[INAC]]></title><description><![CDATA[<p><a href="https://inac.it/it/">https://inac.it/it/</a></p><p>Sito web realizzato con Joomla e Yootheme Pro.</p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/02/image-12.png" class="kg-image"></figure>]]></description><link>https://blog.pupax.me/inac/</link><guid isPermaLink="false">5c699e27343aca000130702a</guid><category><![CDATA[Websites]]></category><dc:creator><![CDATA[Andrea Ruggiero]]></dc:creator><pubDate>Thu, 30 Nov 2017 17:47:00 GMT</pubDate><media:content url="https://blog.pupax.me/content/images/2019/02/Cattura-7.PNG" medium="image"/><content:encoded><![CDATA[<img src="https://blog.pupax.me/content/images/2019/02/Cattura-7.PNG" alt="INAC"><p><a href="https://inac.it/it/">https://inac.it/it/</a></p><p>Sito web realizzato con Joomla e Yootheme Pro.</p><figure class="kg-card kg-image-card"><img src="https://blog.pupax.me/content/images/2019/02/image-12.png" class="kg-image" alt="INAC"></figure>]]></content:encoded></item></channel></rss>