Michele Nasti

Thoughts on what I learn

All my articles in one page

  1. next project: detect moisture for automatic irrigation - May 17, 2026
  2. Another pet project: "da quando non piove" - May 8, 2026
  3. NGINX proxy manager, docker, and more - April 20, 2026
  4. hash() function in Python may not return the same value for the same input - February 26, 2026
  5. Vibe Coding: lessons learned - February 7, 2026
  6. Hobby project: Quando scade, an app to avoid food expiration - November 21, 2025
  7. Logical assignments in Javascript - September 26, 2025
  8. You may really be an imposter - September 3, 2025
  9. A dive into the world of Video Ads - March 25, 2025
  10. Why prehistory is fascinating me so much - February 17, 2025
  11. Fixing python imports, formatting and tooling in VSCode - February 12, 2025
  12. AI is already taking our jobs: programmers are the first - January 10, 2025
  13. Neural Networks and the derivatives - December 29, 2024
  14. Jenkins, Docker, npm and a weird repo merge - November 30, 2024
  15. A class that behaves like an Object and like a Dict in Python - October 20, 2024
  16. I'm back, Advertising Industry! - October 14, 2024
  17. Installing latest ruby with asdf on MacOS with M2 chip - August 22, 2024
  18. What I got so far about monorepos - August 10, 2024
  19. The esiest VPN you can create is with Tailscale - May 27, 2024
  20. Stress your server with WRK - April 10, 2024
  21. No-code development with Appsmith - March 3, 2024
  22. Come To Code 2023 - September 26, 2023
  23. Bye advertising industry! - September 1, 2023
  24. LogSeq: what's good, what's not, what I still haven't figured out - June 12, 2023
  25. serverless & 304, Viewability in apps - May 11, 2023
  26. How Wine Works - October 10, 2022
  27. No, i programmatori non sono hacker pazzoidi asociali strambi - August 30, 2022
  28. How to do the important things that you keep postponing - August 23, 2022
  29. Recover gitlab repositories from an hacked machine - July 22, 2022
  30. Install Samsung ML-2165w printer on newest Macs - July 14, 2022
  31. Lo ha fatto Elon, e ora lo faccio anch'io - June 5, 2022
  32. How DNS works? A refresh of the DNS algorithm and architecture. - May 11, 2022
  33. Some tricks for 11ty that I learned along the way - April 2, 2022
  34. This blog, revamped - March 25, 2022
  35. Going to rebuild this blog with 11ty - February 12, 2022
  36. My problem with job junting - February 7, 2022
  37. Number one quality for remote working - January 4, 2022
  38. Evaluating frontend frameworks and not choosing any - January 2, 2022
  39. A better Git Log - September 17, 2021
  40. Move your photos from Google Photos to Synology without losing your mind - July 19, 2021
  41. Remotalypse NOW: non tutti vogliono tornare in ufficio - July 6, 2021
  42. 1:1 Meetings - June 29, 2021
  43. Want to play songs in your web app? Say no more with JS Headless Playlist Player - May 3, 2021
  44. Clickhouse: a Database for your next Big Data project - April 2, 2021
  45. "A quest'ora avresti dovuto essere cieco" - intervista a uno sviluppatore che sta perdendo la vista - March 25, 2021
  46. How to integrate a django-select2 component in Django Admin - February 12, 2021
  47. "You should have been blind by now" - An interview with a developer who is losing his sight - January 28, 2021
  48. A gently intro to MVC Frameworks - December 27, 2020
  49. [BOOK] What If?: Serious Scientific Answers to Absurd Hypothetical Questions - October 9, 2020
  50. How to read and write from STDIN and STDOUT in GO - September 16, 2020
  51. What is a WAV file? - September 6, 2020
  52. My first Visual Studio Code Extension, create-link-to-git-server - June 15, 2020
  53. Sarò controcorrente, ma a me piaceva andare in ufficio - May 25, 2020
  54. Serve HTTPS requests with Express and NodeJS - May 23, 2020
  55. How Coronavirus affected my life - May 19, 2020
  56. I wish I had a programmers' quarantine - May 2, 2020
  57. Chaotic systems - February 26, 2020
  58. Microsoft Surface GO: more than a tablet - February 6, 2020
  59. a review of the book The Phoenix Project - January 30, 2020
  60. Pair Programming vs Pull Requests - December 9, 2019
  61. Thinking of customers like a CEO: lessons learned along the way - November 21, 2019
  62. Tips & Tricks from my linux experience - October 27, 2019
  63. How internet ads work - October 21, 2019
  64. Jest and Puppeteer from the barricades - October 2, 2019
  65. What is the difference between var, let and const in Javascript - August 17, 2019
  66. Detect network issues from your pc to a remote url - August 2, 2019
  67. Typescript, Babel, Webpack, ESLint: my configuration - June 27, 2019
  68. Typescript: why so complicated?! (A list of my preferred options) - June 24, 2019
  69. I work remote, I do two video meetings per day - June 13, 2019
  70. SSH cheatsheet (from zero to hero) - April 3, 2019
  71. What's the difference between Browserify and Webpack? - March 23, 2019
  72. How ads are loaded so fast: the command queue pattern - February 12, 2019
  73. Is typescript Namespace feature deprecated? - January 23, 2019
  74. Another remote job for me - January 17, 2019
  75. 10 years around the web platform, what's changed and what's not - December 12, 2018
  76. What I learned by writing my first npm module - November 17, 2018
  77. Inspiring tech people to follow: Nicholas C. Zakas - November 5, 2018
  78. The easiest way to understand Javascript Generators - October 29, 2018
  79. Docker cheatsheet - October 25, 2018
  80. Dovrei imparare Ruby on Rails o NodeJS ? - October 15, 2018
  81. Let's write our simple version of the require() function - October 2, 2018
  82. Javascript: call functions without using parentheses (what?!) - September 19, 2018
  83. Symbols & Iterators in Javascript - September 3, 2018
  84. Things you may not know about Object Oriented Javascript (Es6) - September 2, 2018
  85. "ma... cosa intendete per testing?" - una breve introduzione al testing software - August 21, 2018
  86. Handling configuration for multiple environments in NodeJS - July 22, 2018
  87. Designing the documentation for a tech product - July 9, 2018
  88. Come creare luoghi di lavoro in cui é bello recarsi - June 19, 2018
  89. Get the list of files blocked by a process in Linux - June 18, 2018
  90. [libri] Sei proprio il mio typo: la vita segreta dei caratteri tipografici - June 5, 2018
  91. Proteggi le tue applicazioni Express con HelmetJs - May 5, 2018
  92. Cambia la tua vita lavorativa! (partecipando a uno Startup Weekend) - April 22, 2018
  93. Ode ai libri di carta - April 16, 2018
  94. Un programmatore dovrebbe continuare a programmare nel suo tempo libero? - April 5, 2018
  95. Come realizzare un form esterno (Es. assistenza) che manda dati a MagNews - April 5, 2018
  96. Consigli ai junior e ai laureandi (ossia: evitate gli errori che ho fatto io) - February 25, 2018
  97. Un giro nell'universo React - February 18, 2018
  98. [Risultati Sondaggio] - I programmatori e i corsi di formazione - February 2, 2018
  99. Remap backtick, ñ and tilde characters on Windows computers - January 27, 2018
  100. Perchè la Green Card è una lotteria? - January 17, 2018
  101. La mia esperienza col Test Driven Development - January 12, 2018
  102. I trend Javascript del 2018 - January 9, 2018
  103. E' importante conoscere come sono fatte le librerie che usiamo? - January 7, 2018
  104. Essere programmatori e vivere di progetti propri - January 6, 2018
  105. VueJS basics - December 17, 2017
  106. Dovrei partecipare al programma Erasmus? - December 4, 2017
  107. Alla scoperta di VueJS - December 3, 2017
  108. Batman ha ispirato il ... Comic Sans: storia di un Font che tutti odiano - December 1, 2017
  109. Growth Hacker: cos'è? Intervista a Raffaele Gaito - November 18, 2017
  110. Other thoughts about NaN (then, stop) - November 16, 2017
  111. Not-A-Number: when javascript gets crazy - November 14, 2017
  112. Cryptomining and websites: how long will it be tolerated? - October 24, 2017
  113. Windows non fa più così schifo: recensione Dell XPS 15" 9560 (2017) - October 3, 2017
  114. Viviamo tutti in una grande simulazione aliena? Sembra di no - October 3, 2017
  115. JWT: what is it? How does it work? Why should we use it? - September 21, 2017
  116. Come capire il bitcoin: le funzioni crittografiche - September 19, 2017
  117. Due-tre opinioni sul Growth Hacking da uno che non ha mai fatto nulla di marketing - August 18, 2017
  118. Guida alla Val d'Aosta con un neonato - August 6, 2017
  119. L'innovazione non copia - July 27, 2017
  120. E' giusto fidarsi dei remote workers? - July 19, 2017
  121. Recensione del libro: Codice Montemagno - July 17, 2017
  122. Quanto è complicato essere Elon Musk - June 29, 2017
  123. We' waglio', vuoi venire a lavorare nella mia startup? - June 9, 2017
  124. Cinque tool per migliorare la vostra developer experience - May 30, 2017
  125. I colloqui di lavoro nelle Big - May 22, 2017
  126. Agile? No grazie, noi siamo Lean - May 4, 2017
  127. "Vorrei, ma ho paura che vada male" &#58 come assumersi dei "rischi intelligenti" - April 21, 2017
  128. Diventare Senior™ con Javascript: le funzioni filter, map, reduce - April 14, 2017
  129. All my articles about Testing in Javascript in one post - April 8, 2017
  130. Fantastic Unit Tests in Javascript with Mocks - April 7, 2017
  131. Become a test expert in NodeJS with these tricks - March 27, 2017
  132. Easy testing of NodeJS applications with Mocha - March 23, 2017
  133. L'Inglese tra italiani, a lavoro, è una scelta sbagliata - March 20, 2017
  134. Deploy a NodeJS app on Heroku in less than 1 minute - March 18, 2017
  135. Two easy ways perform GET requests in NodeJS - March 13, 2017
  136. JS Promises: description, pros, cons of this ES6 construct - March 12, 2017
  137. Quando l'azienda non paga gli stipendi - February 28, 2017
  138. The Javascript Event Loop for dummies - February 25, 2017
  139. I libri motivazionali funzionano? - February 15, 2017
  140. hey javascript function, take this! - February 10, 2017
  141. Debug a NodeJS application from command line - it's super easy! - February 8, 2017
  142. Discesa in Inferno e risalita in Paradiso: le 24 ore da incubo di Gitlab - February 7, 2017
  143. Quali sono gli svantaggi del lavoro da remoto? - February 5, 2017
  144. Node useful libraries - manage command line arguments with YARGS - February 2, 2017
  145. Tool of the week: Develop faster in NodeJS with Nodemon - January 31, 2017
  146. PRIMO LAVORO DA INFORMATICO - meglio una piccola o una grande azienda? - January 30, 2017
  147. Tip del giorno: stampare comandi di uno script Bash - January 12, 2017
  148. Web management of a Jekyll blog with Forestry - January 2, 2017
  149. Jekyll & Github in pratica - December 22, 2016
  150. Le tecnologie che compongono un blog Jekyll - December 18, 2016
  151. Le migliori piattaforme di blogging (per un developer) a confronto - December 15, 2016
  152. Perché un programmatore dovrebbe avere un blog - December 12, 2016
  153. Tasse e disuguaglianza - November 23, 2016
  154. Ognuno vota le tasse che vuole pagare - November 23, 2016
  155. Esportazioni e reddito - November 22, 2016
  156. Come riconoscere (e perché assumere) un buon "giocatore di squadra" - November 21, 2016
  157. I was not satisfied with Time Machine so I wrote my own Backup System - November 5, 2016
  158. OrientDB - November 4, 2016
  159. Develop a microservice with Ratpack - October 28, 2016
  160. Come ho cambiato lavoro (Prequel di: com'è lavorare da remoto?) - September 19, 2016
  161. Com'è lavorare da remoto? - September 18, 2016
  162. How to log a PHP Soap call with NuSoap - September 13, 2016
  163. My very personal Javascript Fatigue: the truth about JS testing - August 30, 2016
  164. Progetti a cui lavoro: HYPE - carta di credito, conto bancario, app. 3 in 1! - July 17, 2016
  165. Come scrivere un annuncio di lavoro efficace (soprattutto quando hai poco budget) - June 25, 2016
  166. Cambio Lavoro - June 23, 2016
  167. Flow e Typscript: Type checking per Javascript - June 6, 2016
  168. Visual Studio Code, l'editor che mancava per JS e Node - May 27, 2016
  169. Gestire le dipendenze frontend con... bower - April 28, 2016
  170. L'importanza di un Pet Project spiegata da chi non ne ha mai realizzato uno - April 4, 2016
  171. Come programmare in NodeJS, the right way - March 23, 2016
  172. Vuoi imparare flexbox ma ti annoi? Prova questo gioco - March 13, 2016
  173. 5 motivi per cui Rework ti cambierà la vita - March 9, 2016
  174. Chi è Jacopo Notarstefano, l'inventore del programma anti-Calderoli - March 4, 2016
  175. Javascript Meetup a Salerno! - February 29, 2016
  176. Considerazioni sul Public Speaking - February 27, 2016
  177. Il battesimo del sangue: il talk su NodeJS al Napoli DevDay - February 25, 2016
  178. "quanto ci metti?" - perchè i programmatori sono delle pippe col time management - February 19, 2016
  179. Ho partecipato a Google HashCode 2016. Ecco com'é andata - February 15, 2016
  180. Quando possiamo dire che conosciamo una tecnologia? - February 15, 2016
  181. Alla scoperta del Machine Learning - February 8, 2016
  182. I colloqui di lavoro iniziano (e finiscono) su facebook - January 31, 2016
  183. Sarò al Codemotion 2016, Roma - January 29, 2016
  184. Why Groovy is not that famous? - January 28, 2016
  185. Guida agli annunci di lavoro per sviluppatori - January 26, 2016
  186. Creare dinamicamente Groovy beans in Spring - January 26, 2016
  187. Realizzare un piccolo motore di Scripting in una webapp Java con Groovy - January 22, 2016
  188. un pratico esempio del perchè l'Object Oriented non è la Soluzione Universale©' - January 13, 2016
  189. La Programmazione Funzionale con le Funzioni Pure - January 12, 2016
  190. Essere bravi colleghi evitando di committare cazzate - December 24, 2015
  191. Non c'é nulla di più definitivo di una scelta provvisoria - December 11, 2015
  192. Leggere la query Hibernate in debug - November 28, 2015
  193. Tutti i modi per generare ID in Hibernate & JPA - November 27, 2015
  194. di ritorno dal Codemotion Milan 2015 - November 24, 2015
  195. Serve un piano, anzi tre - November 20, 2015
  196. I tre pilastri per migliorare la propria carriera - November 18, 2015
  197. React.js day a Napoli: impressioni - November 17, 2015
  198. Unofficial but simple way to upgrade Moodle - November 12, 2015
  199. Angularizing a jQuery website template: what I discovered, what I have done - November 4, 2015
  200. My problem: start custom js code with ngRoute - October 30, 2015
  201. Slide del mio mini-talk su NodeJS al Linux Day Salerno 2015 - October 23, 2015
  202. Libreria del giorno: imbroglia i server di Continuous Automation con Wolkswagen - October 13, 2015
  203. Follow me on Twitter and Linkedin! - October 9, 2015
  204. Perchè Node.JS è così difficile da imparare (per chi viene da Java) - October 6, 2015
  205. the story of a programmer (me) that failed in PHP - September 8, 2015
  206. loggare il tempo di esecuzione di un JS : console.time e console.timeEnd - July 28, 2015
  207. Css Position - July 27, 2015
  208. Informatica Antincendio - July 26, 2015
  209. Ci ho messo del tempo per capire il passaggio di parametri delle funzioni Javascript - July 21, 2015
  210. Instantiate beans with Spring without @Autowired - July 14, 2015
  211. Alcune Best Practices per non impazzire con i DB relazionali - July 3, 2015
  212. Impostare PHPUnit in IntelliJ - June 24, 2015
  213. iMovie and the -50 error - June 22, 2015
  214. iFrame, Safari, iOs e la lotta all'ultimo millisecondo - May 27, 2015
  215. Selenium WebDriver for dummies - May 26, 2015
  216. Interpretare HTML in una stringa popolata da angular con ng-bind-html - May 17, 2015
  217. BASTA! ai powerpoint fatti male - May 6, 2015
  218. convertire label in camelCase o CONSTANT_CASE con IntelliJ e String Manipulation - May 5, 2015
  219. Coderdojo a Salerno: la mia esperienza - May 4, 2015
  220. due risate con la libreria JS del giorno: Elevator.JS - April 24, 2015
  221. PHP Symphony: che faccio, me lo studio? - April 17, 2015
  222. How would you call your bleeding-edge Stuff framework in all programming languages and platforms? - April 14, 2015
  223. The Blog App in Ruby on Rails - iteration 2 - April 13, 2015
  224. IntelliJ IDEA, alla fine è arrivato l'amore - April 9, 2015
  225. BlogZinga! - April 8, 2015
  226. Codemotion Roma 2015 - day two - March 30, 2015
  227. Installing Ruby On Rails on Mac 10.10 is a pain - March 29, 2015
  228. Codemotion Roma 2015: raccontiamo questa prima giornata - March 27, 2015
  229. Howto: create a blog with Ruby on Rails - March 24, 2015
  230. Playing with my friend's 3D printer - March 19, 2015
  231. Tools that don't explain themselves clearly will not be used - March 15, 2015
  232. Scrivere codice migliore rispondendo a 12 semplici domande - February 24, 2015
  233. Quando assumere Generalisti vs Specialisti - February 19, 2015
  234. Pay attention to the ".active" progress bar class in Bootstrap - February 11, 2015
  235. WebApp nel tempo libero con approccio MEAN - February 6, 2015
  236. Pro e contro di AngularJs dopo 2 mesi di lavoro - February 2, 2015
  237. Imparare a programmare come ... chef Cannavacciuolo - January 29, 2015
  238. A video that makes Italians proud of their Country - January 24, 2015
  239. How to style a button to upload a file - January 20, 2015
  240. Codemotion 2015 - January 17, 2015
  241. Pdfmake : libreria JS per creare PDF - January 13, 2015
  242. Hackerando la caldaia Junkers CERACLASS SMART INCASSO per farla funzionare col termostato NetAtmo - January 11, 2015
  243. Uscire dalla Comfort Zone per ottenere più successo - January 9, 2015
  244. JAVA - Convertire un array di byte in un file con FileOutputStream - January 8, 2015
  245. chiamare una funzione Javascript subito dopo averla definita - January 8, 2015
  246. Il Document Object Model (DOM) - January 8, 2015
  247. Un breve riassunto sulla storia di Javascript - January 7, 2015
  248. What’s new in Javascript? - January 7, 2015