Michele Nasti

Thoughts on what I learn

All my articles in one page

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