{"@attributes":{"version":"2.0"},"channel":{"title":"Luciano Mammino","description":"Cloud Architect and Fullstack Developer","link":"https:\/\/loige.co\/","item":[{"title":"2016 - A year in review","link":"https:\/\/loige.co\/2016-a-year-in-review\/","guid":"https:\/\/loige.co\/2016-a-year-in-review\/","description":"A personal review of 2016 highlights career growth through a new job, open source contributions, conference talks, and co-authoring a Node.js book. The post also covers learning new technologies like Elixir and AWS, while noting failures like lack of focus on a side project.","pubDate":"Sat, 24 Dec 2016 18:13:18 GMT","category":"life","author":"Luciano Mammino","comments":"https:\/\/loige.co\/2016-a-year-in-review\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/2016-a-year-in-review.png","length":"0","type":"image\/png"}}},{"title":"2017 - A year in review","link":"https:\/\/loige.co\/2017-a-year-in-review\/","guid":"https:\/\/loige.co\/2017-a-year-in-review\/","description":"In 2017, Luciano Mammino gave 17 conference talks, contributed to open source projects like Fastify and Middy, and learned new technologies like Terraform and Ansible. He looks forward to presenting more in 2018 and learning technologies like Rust, Elastic Search, and Kubernetes.","pubDate":"Wed, 03 Jan 2018 18:59:58 GMT","category":"life","author":"Luciano Mammino","comments":"https:\/\/loige.co\/2017-a-year-in-review\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/2017-a-year-in-review.png","length":"0","type":"image\/png"}}},{"title":"2018 - A year in review","link":"https:\/\/loige.co\/2018-a-year-in-review\/","guid":"https:\/\/loige.co\/2018-a-year-in-review\/","description":"A personal 2018 year in review including achievements like migrating my blog to a serverless setup, 8 conference talks, career growth at Vectra, open source contributions, and reflections on side projects. Outlines goals for 2019 like writing more, releasing middy 1.0, and getting advanced AWS certifications.","pubDate":"Sun, 20 Jan 2019 02:18:58 GMT","category":"life","author":"Luciano Mammino","comments":"https:\/\/loige.co\/2018-a-year-in-review\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/2018-a-year-in-review.png","length":"0","type":"image\/png"}}},{"title":"2019 - A year in review","link":"https:\/\/loige.co\/2019-a-year-in-review\/","guid":"https:\/\/loige.co\/2019-a-year-in-review\/","description":"Luciano Mammino reflects on his 2019 tech career achievements including conference talks, career moves, open source contributions, and blog posts. He also sets realistic goals for 2020 like finding a new job, releasing Middy 1.0, and getting an advanced AWS certification.","pubDate":"Sat, 25 Jan 2020 14:18:58 GMT","category":"life","author":"Luciano Mammino","comments":"https:\/\/loige.co\/2019-a-year-in-review\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/2019-a-year-in-review.png","length":"0","type":"image\/png"}}},{"title":"2020 - A year in review","link":"https:\/\/loige.co\/2020-a-year-in-review\/","guid":"https:\/\/loige.co\/2020-a-year-in-review\/","description":"Luciano Mammino reflects on his 2020, including publishing Node.js Design Patterns Third Edition book, giving 13 conference talks, joining Fabfitfun as Principal Engineer, releasing Middy 1.0, launching Linkerflix MVP, and setting goals for improving as a software engineer, cloud architect, and indie maker in 2021.","pubDate":"Sat, 02 Jan 2021 12:50:00 GMT","category":"life","author":"Luciano Mammino","comments":"https:\/\/loige.co\/2020-a-year-in-review\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/2020-a-year-in-review.png","length":"0","type":"image\/png"}}},{"title":"2021 - A year in review","link":"https:\/\/loige.co\/2021-a-year-in-review\/","guid":"https:\/\/loige.co\/2021-a-year-in-review\/","description":"In 2021 I joined fourTheorem, became a Microsoft MVP, spoke at many conferences, learned Rust, contributed to open source and much more. I reflect on my professional achievements over the past year.","pubDate":"Wed, 02 Feb 2022 20:25:00 GMT","category":"life","author":"Luciano Mammino","comments":"https:\/\/loige.co\/2021-a-year-in-review\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/2021-a-year-in-review.png","length":"0","type":"image\/png"}}},{"title":"2022 - A year in Review","link":"https:\/\/loige.co\/2022-a-year-in-review\/","guid":"https:\/\/loige.co\/2022-a-year-in-review\/","description":"In 2022 Luciano Mammino was awarded AWS Serverless Hero, confirmed as Microsoft MVP, became Codemotion Ambassador, spoke at 25 events, produced 45 AWS Bites podcast episodes, streamed live coding 36 times, surpassed 8M downloads for Middy and much more. His plans for 2023 include growing his AWS and Serverless expertise, learning Rust and Solid.js.","pubDate":"Tue, 20 Dec 2022 08:50:00 GMT","category":"life","author":"Luciano Mammino","comments":"https:\/\/loige.co\/2022-a-year-in-review\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/2022-a-year-in-review.png","length":"0","type":"image\/png"}}},{"title":"2023 - A year in Review","link":"https:\/\/loige.co\/2023-a-year-in-review\/","guid":"https:\/\/loige.co\/2023-a-year-in-review\/","description":"In 2023, Luciano Mammino attended his first re:Invent, grew open source projects like Middy, continued podcasting on AWS Bites, and strengthened connections through public speaking and live coding. He also contributed to sustainability through LifeFoliage's Landscape Hunt game.","pubDate":"Wed, 27 Dec 2023 15:00:00 GMT","category":"life","author":"Luciano Mammino","comments":"https:\/\/loige.co\/2023-a-year-in-review\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/2023-a-year-in-review.png","length":"0","type":"image\/png"}}},{"title":"2024 - A year in Review","link":"https:\/\/loige.co\/2024-a-year-in-review\/","guid":"https:\/\/loige.co\/2024-a-year-in-review\/","description":"In his 2024 year-in-review, Luciano Mammino covers his work in Rust, serverless AWS projects, his contributions to open source projects like Middy, public speaking engagements, the AWS Bites podcast, and personal milestones.","pubDate":"Sun, 09 Feb 2025 20:12:00 GMT","category":"life","author":"Luciano Mammino","comments":"https:\/\/loige.co\/2024-a-year-in-review\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/2024-a-year-in-review.png","length":"0","type":"image\/png"}}},{"title":"2025 - A year in Review","link":"https:\/\/loige.co\/2025-a-year-in-review\/","guid":"https:\/\/loige.co\/2025-a-year-in-review\/","description":"Luciano Mammino's 2025 year in review: releasing the fourth edition of Node.js Design Patterns, progressing on Crafting Lambda Functions in Rust, approaching 5 years at FourTheorem, public speaking, AWS Bites podcast, open source contributions, and some major personal milestones.","pubDate":"Tue, 30 Dec 2025 10:00:00 GMT","category":"life","author":"Luciano Mammino","comments":"https:\/\/loige.co\/2025-a-year-in-review\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/2025-a-year-in-review.png","length":"0","type":"image\/png"}}},{"title":"3 invitations to try Atom.io","link":"https:\/\/loige.co\/3-invitations-to-try-atom-io\/","guid":"https:\/\/loige.co\/3-invitations-to-try-atom-io\/","description":"The author received 3 invites to try Atom.io, a new text editor built by GitHub using Node.js. They find it promising but slower than SublimeText. The post shares the invites with readers who follow the author on social media and comment.","pubDate":"Wed, 09 Apr 2014 10:58:22 GMT","category":"atom-io","author":"Luciano Mammino","comments":"https:\/\/loige.co\/3-invitations-to-try-atom-io\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/3-invitations-to-try-atom-io.png","length":"0","type":"image\/png"}}},{"title":"404: Newsletter Found","link":"https:\/\/loige.co\/404-newsletter-found\/","guid":"https:\/\/loige.co\/404-newsletter-found\/","description":"Discover the journey behind FullStack Bulletin, a weekly newsletter for full-stack developers with 404 curated issues over 8 years. Learn about its origins, technical implementation, and future plans.","pubDate":"Sat, 21 Dec 2024 15:30:00 GMT","category":["life","serverless","aws","lambda","api","git"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/404-newsletter-found\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/404-newsletter-found.png","length":"0","type":"image\/png"}}},{"title":"5 lessons learned at the Bank of Ireland Accelerator","link":"https:\/\/loige.co\/5-lessons-learned-at-the-bank-of-ireland-accelerator\/","guid":"https:\/\/loige.co\/5-lessons-learned-at-the-bank-of-ireland-accelerator\/","description":"The author shares 5 powerful quotes and lessons learned from mentors during an intensive 3-month accelerator program in Ireland focused on startups and entrepreneurship. Key takeaways include the importance of passion, understanding customers' problems, building a great team, and working tirelessly while maintaining positivity.","pubDate":"Mon, 22 Dec 2014 21:23:58 GMT","category":["startup","entrepreneurship"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/5-lessons-learned-at-the-bank-of-ireland-accelerator\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/5-lessons-learned-at-the-bank-of-ireland-accelerator.png","length":"0","type":"image\/png"}}},{"title":"6 Rules of thumb to build blazing fast web server applications","link":"https:\/\/loige.co\/6-rules-of-thumb-to-build-blazing-fast-web-applications\/","guid":"https:\/\/loige.co\/6-rules-of-thumb-to-build-blazing-fast-web-applications\/","description":"This post highlights 6 important rules to keep in mind when developing performant web applications: avoid premature optimization, do the minimum required work, defer non-critical tasks, leverage caching, avoid N+1 queries, and design for horizontal scaling. Following these guidelines will help you write efficient code from the start and build apps ready to handle growth.","pubDate":"Sat, 25 Jul 2015 18:57:00 GMT","category":["php","symfony","laravel","performance","scalability"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/6-rules-of-thumb-to-build-blazing-fast-web-applications\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/6-rules-of-thumb-to-build-blazing-fast-web-applications.png","length":"0","type":"image\/png"}}},{"title":"6 Tips to Build Fast Web Applications (Php Dublin March 2016 Talk)","link":"https:\/\/loige.co\/6-tips-to-build-fast-web-applications-php-dublin-march-2016-talk\/","guid":"https:\/\/loige.co\/6-tips-to-build-fast-web-applications-php-dublin-march-2016-talk\/","description":"This post shares 6 tips to build fast web applications based on a talk at Php Dublin in March 2016. It includes slides and covers topics like caching, compression, database optimization, and more.","pubDate":"Wed, 23 Mar 2016 09:16:00 GMT","category":["php","slides","talk","performance"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/6-tips-to-build-fast-web-applications-php-dublin-march-2016-talk\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/6-tips-to-build-fast-web-applications-php-dublin-march-2016-talk.png","length":"0","type":"image\/png"}}},{"title":"8 invitations to try Keybase.io","link":"https:\/\/loige.co\/8-invitations-to-try-keybase-io\/","guid":"https:\/\/loige.co\/8-invitations-to-try-keybase-io\/","description":"Keybase.io is a new service that combines asymmetric cryptography with a social network. It allows users to easily share public keys and authenticate messages by linking keys to profiles on Twitter, GitHub, Reddit, etc. The service provides encrypted messaging and bitcoin wallet pairing to make adopting cryptography seamless.","pubDate":"Tue, 26 May 2015 22:25:45 GMT","category":["security","cryptography"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/8-invitations-to-try-keybase-io\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/8-invitations-to-try-keybase-io.png","length":"0","type":"image\/png"}}},{"title":"Announcing the book \"Node.js design patterns - second edition\"","link":"https:\/\/loige.co\/announcing-the-book-node-js-design-patterns-second-edition\/","guid":"https:\/\/loige.co\/announcing-the-book-node-js-design-patterns-second-edition\/","description":"The author announces the release of \"Node.js design patterns - second edition\", a new book covering design patterns for Node.js and JavaScript. It includes updated code for Node v6 and ES2015 across 11 chapters and 100+ examples.","pubDate":"Sun, 31 Jul 2016 18:25:00 GMT","category":["node-js","books","design-patterns"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/announcing-the-book-node-js-design-patterns-second-edition\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/announcing-the-book-node-js-design-patterns-second-edition.png","length":"0","type":"image\/png"}}},{"title":"AWS Command line: S3 content from stdin or to stdout","link":"https:\/\/loige.co\/aws-command-line-s3-content-from-stdin-or-to-stdout\/","guid":"https:\/\/loige.co\/aws-command-line-s3-content-from-stdin-or-to-stdout\/","description":"The AWS CLI s3 cp command supports streaming content to and from S3 using stdin\/stdout with the - argument. This enables powerful pipelines without intermediary files.","pubDate":"Sat, 05 May 2018 12:00:14 GMT","category":["aws","bash","shell"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/aws-command-line-s3-content-from-stdin-or-to-stdout\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/aws-command-line-s3-content-from-stdin-or-to-stdout.png","length":"0","type":"image\/png"}}},{"title":"AWS Solution Architect Associate exam, my notes and tips","link":"https:\/\/loige.co\/aws-solution-architect-associate-exam-notes-tips\/","guid":"https:\/\/loige.co\/aws-solution-architect-associate-exam-notes-tips\/","description":"The AWS Solutions Architect Associate exam covers a wide range of AWS services. This post shares helpful notes and tips for studying key concepts like EC2, S3, VPC, DynamoDB, and more. It provides advice on the exam mindset and lists official and unofficial preparation resources. The notes summarize important details around provisioned throughput, instance types, database replication and more that are helpful to know for the exam.","pubDate":"Sun, 21 Oct 2018 11:57:00 GMT","category":"aws","author":"Luciano Mammino","comments":"https:\/\/loige.co\/aws-solution-architect-associate-exam-notes-tips\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/aws-solution-architect-associate-exam-notes-tips.png","length":"0","type":"image\/png"}}},{"title":"AWS Solution Architect Professional exam, my notes and tips","link":"https:\/\/loige.co\/aws-solution-architect-professional-exam-notes-tips\/","guid":"https:\/\/loige.co\/aws-solution-architect-professional-exam-notes-tips\/","description":"The AWS Solutions Architect Professional certification is one of the toughest IT certifications. This post shares preparation tips, exam strategies, study resources, and sample questions to help you succeed.","pubDate":"Tue, 26 Apr 2022 18:20:00 GMT","category":"aws","author":"Luciano Mammino","comments":"https:\/\/loige.co\/aws-solution-architect-professional-exam-notes-tips\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/aws-solution-architect-professional-exam-notes-tips.png","length":"0","type":"image\/png"}}},{"title":"Backup your server with Dropbox","link":"https:\/\/loige.co\/backup-your-server-with-dropbox\/","guid":"https:\/\/loige.co\/backup-your-server-with-dropbox\/","description":"This post explains how to install Dropbox command line client on a Linux server, create a dedicated user and setup it as a service to have automated backups on Dropbox cloud.","pubDate":"Fri, 17 Jan 2014 03:44:19 GMT","category":["backup","dropbox","server"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/backup-your-server-with-dropbox\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/backup-your-server-with-dropbox.png","length":"0","type":"image\/png"}}},{"title":"Building x86 Rust containers from Mac Silicon","link":"https:\/\/loige.co\/building_x86_rust-containers-from-mac-silicon\/","guid":"https:\/\/loige.co\/building_x86_rust-containers-from-mac-silicon\/","description":"This article walks through the challenges of cross-compiling a Rust web app from a Mac Silicon machine to an x86 Docker container using musl, RusTLS, multi-stage builds and other techniques to produce a small container image.","pubDate":"Fri, 05 May 2023 09:29:00 GMT","category":["rust","docker"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/building_x86_rust-containers-from-mac-silicon\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/building_x86_rust-containers-from-mac-silicon.png","length":"0","type":"image\/png"}}},{"title":"I am co-authoring a book about Rust and Lambda","link":"https:\/\/loige.co\/coauthoring-a-book-about-rust-and-lambda\/","guid":"https:\/\/loige.co\/coauthoring-a-book-about-rust-and-lambda\/","description":"Announcing Crafting Lambda Functions in Rust, a new book that guides you through building efficient, reliable, and cost-effective AWS Lambda functions using Rust, written by Luciano Mammino and James Eastham. Learn why Rust and serverless are a perfect match. Early access is now available at rust-lambda.com!","pubDate":"Mon, 16 Dec 2024 09:30:00 GMT","category":["rust","serverless","lambda"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/coauthoring-a-book-about-rust-and-lambda\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/coauthoring-a-book-about-rust-and-lambda.png","length":"0","type":"image\/png"}}},{"title":"Create resources conditionally with CDK","link":"https:\/\/loige.co\/create-resources-conditionally-with-cdk\/","guid":"https:\/\/loige.co\/create-resources-conditionally-with-cdk\/","description":"This post explains how to conditionally create resources in AWS CDK using CfnCondition. It provides a practical example of creating an S3 bucket based on an SSM parameter value. The post covers defining a condition, attaching it to a low-level CDK construct, and importing the conditionally created resource.","pubDate":"Mon, 01 Nov 2021 09:15:00 GMT","category":["aws","cdk","javascript","typescript"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/create-resources-conditionally-with-cdk\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/create-resources-conditionally-with-cdk.png","length":"0","type":"image\/png"}}},{"title":"Debugging AWS API Gateway HTTP with OIDC-JWT authorizers","link":"https:\/\/loige.co\/debugging-api-gateway-http-oidc-jwt-authorizer\/","guid":"https:\/\/loige.co\/debugging-api-gateway-http-oidc-jwt-authorizer\/","description":"Learn how to debug silent failures in AWS API Gateway HTTP when your OIDC provider doesn't implement the .well-known\/openid-configuration endpoint. Enable FailOnWarnings to catch these issues before they break your production deployment.","pubDate":"Wed, 17 Dec 2025 10:00:00 GMT","category":["aws","serverless","api-gateway","jwt","authentication"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/debugging-api-gateway-http-oidc-jwt-authorizer\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/debugging-api-gateway-http-oidc-jwt-authorizer.png","length":"0","type":"image\/png"}}},{"title":"Debugging custom ApiGateway authorizers","link":"https:\/\/loige.co\/debugging-custom-apigateway-authorizers\/","guid":"https:\/\/loige.co\/debugging-custom-apigateway-authorizers\/","description":"When building a custom API Gateway authorizer, mysterious 500 errors can happen. This post shows how to enable CloudWatch logging for API Gateway to inspect the logs and debug problems.","pubDate":"Sun, 05 Nov 2023 13:48:00 GMT","category":["aws","serverless","lambda","api-gateway"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/debugging-custom-apigateway-authorizers\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/debugging-custom-apigateway-authorizers.png","length":"0","type":"image\/png"}}},{"title":"Developing a web application with Lumen and MySql","link":"https:\/\/loige.co\/developing-a-web-application-with-lumen-and-mysql\/","guid":"https:\/\/loige.co\/developing-a-web-application-with-lumen-and-mysql\/","description":"This tutorial shows step-by-step how to bootstrap a Lumen project, configure MySQL, create migrations and models, seed the database, define routes and templates to build a fully working motivational quote web app in less than 30 minutes.","pubDate":"Sat, 18 Apr 2015 16:10:35 GMT","category":["php","mysql","lumen","laravel"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/developing-a-web-application-with-lumen-and-mysql\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/developing-a-web-application-with-lumen-and-mysql.png","length":"0","type":"image\/png"}}},{"title":"Emerging JavaScript pattern: multiple return values","link":"https:\/\/loige.co\/emerging-javascript-pattern-multiple-return-values\/","guid":"https:\/\/loige.co\/emerging-javascript-pattern-multiple-return-values\/","description":"This article explores how to simulate multiple return values in JavaScript using arrays and objects. It covers use cases like React Hooks and async\/await error handling. The pattern enables elegant APIs but has performance implications.","pubDate":"Sun, 11 Nov 2018 17:00:00 GMT","category":["javascript","node-js","design-patterns","react","lua","go"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/emerging-javascript-pattern-multiple-return-values\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/emerging-javascript-pattern-multiple-return-values.png","length":"0","type":"image\/png"}}},{"title":"Extracting data from Wikipedia using curl, grep, cut and other shell commands","link":"https:\/\/loige.co\/extracting-data-from-wikipedia-using-curl-grep-cut-and-other-bash-commands\/","guid":"https:\/\/loige.co\/extracting-data-from-wikipedia-using-curl-grep-cut-and-other-bash-commands\/","description":"By using a combination of curl, grep, cut, sort, uniq and other common bash utilities it is possible to extract structured data from Wikipedia and compute insights without writing a full program.","pubDate":"Mon, 15 Aug 2016 17:17:00 GMT","category":["bash","shell"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/extracting-data-from-wikipedia-using-curl-grep-cut-and-other-bash-commands\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/extracting-data-from-wikipedia-using-curl-grep-cut-and-other-bash-commands.png","length":"0","type":"image\/png"}}},{"title":"Farewell FullStack Bulletin","link":"https:\/\/loige.co\/farewell-fullstack-bulletin\/","guid":"https:\/\/loige.co\/farewell-fullstack-bulletin\/","description":"After 458 issues, 3,073+ curated links, and nearly a decade of weekly curation, FullStack Bulletin is closing. Here's the story of the journey, why it's ending, and what lives on.","pubDate":"Sun, 29 Mar 2026 12:15:00 GMT","category":["life","collaboration"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/farewell-fullstack-bulletin\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/farewell-fullstack-bulletin.png","length":"0","type":"image\/png"}}},{"title":"Fastify and Preact for quick web app prototyping","link":"https:\/\/loige.co\/fastify-and-preact-for-quick-web-app-prototyping\/","guid":"https:\/\/loige.co\/fastify-and-preact-for-quick-web-app-prototyping\/","description":"This article shows how to quickly build web app prototypes using Fastify for the backend API and Preact for the frontend UI. It also covers how to dockerize the app for easy sharing. Key points are the plugin architecture of Fastify, the lightweight nature of Preact, and the use of htm for defining UI without transpilation.","pubDate":"Mon, 18 Feb 2019 20:22:58 GMT","category":["javascript","node-js","fastify","react","docker"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/fastify-and-preact-for-quick-web-app-prototyping\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/fastify-and-preact-for-quick-web-app-prototyping.png","length":"0","type":"image\/png"}}},{"title":"Finally\/First","link":"https:\/\/loige.co\/finally-first\/","guid":"https:\/\/loige.co\/finally-first\/","description":"A web developer fascinated by the web since childhood discusses the motivation behind starting a blog - to share thoughts on web development trends and experiments in a personal space.","pubDate":"Thu, 16 Jan 2014 23:04:36 GMT","category":"life","author":"Luciano Mammino","comments":"https:\/\/loige.co\/finally-first\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/finally-first.png","length":"0","type":"image\/png"}}},{"title":"From bare metal to Serverless","link":"https:\/\/loige.co\/from-bare-metal-to-serverless\/","guid":"https:\/\/loige.co\/from-bare-metal-to-serverless\/","description":"This article explores the history of cloud computing from bare metal servers to serverless, explaining key innovations like IaaS, PaaS, containers and FaaS along the way.","pubDate":"Sat, 16 Dec 2017 19:23:20 GMT","category":["serverless","aws"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/from-bare-metal-to-serverless\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/from-bare-metal-to-serverless.png","length":"0","type":"image\/png"}}},{"title":"Get an invitation for GitKraken","link":"https:\/\/loige.co\/get-an-invitation-for-gitkraken\/","guid":"https:\/\/loige.co\/get-an-invitation-for-gitkraken\/","description":"GitKraken is a new cross-platform graphical interface for Git currently in private beta. It has useful features like interactive commit graph visualization, easy branching\/stashing, and GitHub integration. The post shares invites to try the private beta version of GitKraken.","pubDate":"Tue, 19 Jan 2016 21:10:23 GMT","category":["git","github"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/get-an-invitation-for-gitkraken\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/get-an-invitation-for-gitkraken.png","length":"0","type":"image\/png"}}},{"title":"Gulp and FTP: update a website \"on the fly\"","link":"https:\/\/loige.co\/gulp-and-ftp-update-a-website-on-the-fly\/","guid":"https:\/\/loige.co\/gulp-and-ftp-update-a-website-on-the-fly\/","description":"This tutorial explains how to use Gulp and vinyl-ftp to watch local files for changes and automatically upload updates to a website via FTP. Useful for quickly editing legacy sites only accessible through FTP.","pubDate":"Sun, 25 Oct 2015 18:47:00 GMT","category":["gulp","javascript","ftp","server"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/gulp-and-ftp-update-a-website-on-the-fly\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/gulp-and-ftp-update-a-website-on-the-fly.png","length":"0","type":"image\/png"}}},{"title":"Having fun with Node.js, Slack and Chuck Norris","link":"https:\/\/loige.co\/having-fun-with-nodejs-slack-and-chuck-norris\/","guid":"https:\/\/loige.co\/having-fun-with-nodejs-slack-and-chuck-norris\/","description":"A tutorial was published on how to build a simple Slack bot in Node.js that tells Chuck Norris jokes, for some amusing fun. The bot is open source and available on GitHub and NPM.","pubDate":"Mon, 14 Sep 2015 22:05:30 GMT","category":["node-js","slack","collaboration"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/having-fun-with-nodejs-slack-and-chuck-norris\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/having-fun-with-nodejs-slack-and-chuck-norris.png","length":"0","type":"image\/png"}}},{"title":"How I added Bluesky likes to my Astro blog","link":"https:\/\/loige.co\/how-i-added-bluesky-likes-to-my-astro-blog\/","guid":"https:\/\/loige.co\/how-i-added-bluesky-likes-to-my-astro-blog\/","description":"Learn how I added Bluesky likes and avatars to my Astro blog using the bluesky-likes web components package. No API keys, no server-side code, just a few lines of Astro magic.","pubDate":"Sun, 08 Mar 2026 19:50:00 GMT","category":["javascript","astro","web-components"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/how-i-added-bluesky-likes-to-my-astro-blog\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/how-i-added-bluesky-likes-to-my-astro-blog.png","length":"0","type":"image\/png"}}},{"title":"How to crack a JWT token: two articles about distributed computing, ZeroMQ & Node.js","link":"https:\/\/loige.co\/how-to-crack-a-jwt-token-two-articles-about-distributed-computing-zeromq-node-js\/","guid":"https:\/\/loige.co\/how-to-crack-a-jwt-token-two-articles-about-distributed-computing-zeromq-node-js\/","description":"This blog post explains how to build a distributed application using Node.js and ZeroMQ that cracks JWT tokens. It provides a step-by-step guide on implementing the application and links to two in-depth articles on RisingStack that cover the theory and coding details.","pubDate":"Mon, 24 Oct 2016 22:44:51 GMT","category":["node-js","zeromq","distributed","collaboration","jwt","javascript"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/how-to-crack-a-jwt-token-two-articles-about-distributed-computing-zeromq-node-js\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/how-to-crack-a-jwt-token-two-articles-about-distributed-computing-zeromq-node-js.png","length":"0","type":"image\/png"}}},{"title":"How to send gzipped requests with boto3","link":"https:\/\/loige.co\/how-to-send-gzipped-requests-with-boto3\/","guid":"https:\/\/loige.co\/how-to-send-gzipped-requests-with-boto3\/","description":"The boto3 Python SDK allows intercepting requests before they are sent to AWS through an event handler system. This article shows how to use it to gzip the payload of PutMetricData requests sent to CloudWatch.","pubDate":"Tue, 22 Jun 2021 18:20:00 GMT","category":["python","aws"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/how-to-send-gzipped-requests-with-boto3\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/how-to-send-gzipped-requests-with-boto3.png","length":"0","type":"image\/png"}}},{"title":"How to to_string in Rust","link":"https:\/\/loige.co\/how-to-to-string-in-rust\/","guid":"https:\/\/loige.co\/how-to-to-string-in-rust\/","description":"This article explores how to convert values to strings in Rust using traits like Debug, Display and ToString. It explains the difference between user-facing and debug representations.","pubDate":"Wed, 26 May 2021 18:50:00 GMT","category":"rust","author":"Luciano Mammino","comments":"https:\/\/loige.co\/how-to-to-string-in-rust\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/how-to-to-string-in-rust.png","length":"0","type":"image\/png"}}},{"title":"Integrating Twig.js and BazingaJsTranslationBundle","link":"https:\/\/loige.co\/integrating-twig-js-and-bazingajstranslationbundle\/","guid":"https:\/\/loige.co\/integrating-twig-js-and-bazingajstranslationbundle\/","description":"The post explains how to integrate twig.js with BazingaJsTranslationBundle to handle translations consistently between PHP and JavaScript. It shows how to build a custom Twig extension to translate strings with the Bazinga Translator object and handle differences in parameter formatting.","pubDate":"Fri, 28 Feb 2014 11:40:05 GMT","category":["php","symfony","javascript","translation","twig"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/integrating-twig-js-and-bazingajstranslationbundle\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/integrating-twig-js-and-bazingajstranslationbundle.png","length":"0","type":"image\/png"}}},{"title":"Introducing flickr-set-get a command line app to download photos","link":"https:\/\/loige.co\/introducing-flickr-set-get-a-command-line-app-to-download-photos\/","guid":"https:\/\/loige.co\/introducing-flickr-set-get-a-command-line-app-to-download-photos\/","description":"The flickr-set-get command line app makes it easy to download entire Flickr galleries. It uses the Flickr API and Node.js asynchronous programming to download photos in parallel. The post explains the motivation behind the project, the technologies used, and how the asynchronous code works.","pubDate":"Mon, 11 May 2015 23:04:50 GMT","category":["javascript","http","node-js","api","flickr"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/introducing-flickr-set-get-a-command-line-app-to-download-photos\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/introducing-flickr-set-get-a-command-line-app-to-download-photos.png","length":"0","type":"image\/png"}}},{"title":"Introducing Gulp cozy - Manage your gulp tasks in a cozier way","link":"https:\/\/loige.co\/introducing-gulp-cozy-manage-your-gulp-tasks-in-a-cozier-way\/","guid":"https:\/\/loige.co\/introducing-gulp-cozy-manage-your-gulp-tasks-in-a-cozier-way\/","description":"Gulp-cozy is an experimental NPM package that allows you to separate Gulp tasks into small modules inside a dedicated folder, making them easier to maintain. It brings Node.js modularity principles into your Gulp workflow.","pubDate":"Mon, 18 Jan 2016 23:27:40 GMT","category":["gulp","javascript","node-js","library"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/introducing-gulp-cozy-manage-your-gulp-tasks-in-a-cozier-way\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/introducing-gulp-cozy-manage-your-gulp-tasks-in-a-cozier-way.png","length":"0","type":"image\/png"}}},{"title":"Introducing mongo-uri-builder, a Node.js module to easily create mongodb connection strings using objects","link":"https:\/\/loige.co\/introducing-mongo-uri-builder-a-nodejs-module-to-easily-create-mongodb-connection-strings-using-objects\/","guid":"https:\/\/loige.co\/introducing-mongo-uri-builder-a-nodejs-module-to-easily-create-mongodb-connection-strings-using-objects\/","description":"The mongo-uri-builder Node.js package easily generates MongoDB connection strings from configuration objects, supporting features like authentication, replicas, and options. It integrates well with config for managing different environments.","pubDate":"Tue, 29 Sep 2015 23:07:02 GMT","category":["node-js","library","mongodb","github"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/introducing-mongo-uri-builder-a-nodejs-module-to-easily-create-mongodb-connection-strings-using-objects\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/introducing-mongo-uri-builder-a-nodejs-module-to-easily-create-mongodb-connection-strings-using-objects.png","length":"0","type":"image\/png"}}},{"title":"Introducing ORM Cheatsheet","link":"https:\/\/loige.co\/introducing-orm-cheatsheet\/","guid":"https:\/\/loige.co\/introducing-orm-cheatsheet\/","description":"ORM Cheatsheet is a useful website that serves as a quick reference guide for developers struggling to remember how to use common PHP ORM libraries like Doctrine 2 and Propel. It provides examples for annotations, relationships, and configuration.","pubDate":"Fri, 11 Apr 2014 08:50:53 GMT","category":["php","doctrine","orm"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/introducing-orm-cheatsheet\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/introducing-orm-cheatsheet.png","length":"0","type":"image\/png"}}},{"title":"Invite-only microsites with Next.js and AirTable","link":"https:\/\/loige.co\/invite-only-microsites-with-nextjs-and-airtable\/","guid":"https:\/\/loige.co\/invite-only-microsites-with-nextjs-and-airtable\/","description":"Learn how to create a private, invite-only website using Next.js, AirTable, custom React hooks, and Vercel deploy. The post covers backend APIs in Next.js, data storage with AirTable, validating access with invite codes, collecting user input, and deploying the final app.","pubDate":"Tue, 09 Aug 2022 07:40:00 GMT","category":["javascript","typescript","react","nextjs","jwt"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/invite-only-microsites-with-nextjs-and-airtable\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/invite-only-microsites-with-nextjs-and-airtable.png","length":"0","type":"image\/png"}}},{"title":"JavaScript iterator patterns","link":"https:\/\/loige.co\/javascript-iterator-patterns\/","guid":"https:\/\/loige.co\/javascript-iterator-patterns\/","description":"This article explores different ways to create iterators and iterable values in Javascript for dynamic sequence generation, specifically using functions, iterators, iterables and generators. It provides code examples for implementing the Fibonacci sequence with each approach.","pubDate":"Mon, 21 Jan 2019 03:25:58 GMT","category":["javascript","node-js","design-patterns"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/javascript-iterator-patterns\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/javascript-iterator-patterns.png","length":"0","type":"image\/png"}}},{"title":"JavaScript, low-level or AI?","link":"https:\/\/loige.co\/javascript-low-level-or-ai\/","guid":"https:\/\/loige.co\/javascript-low-level-or-ai\/","description":"The software industry sees an interesting tension between generative AI capturing the software lifecycle and low-level languages aiming for better performance. As developers we must understand these trends and find a strategy. Learn one or both?","pubDate":"Fri, 10 Nov 2023 14:37:00 GMT","category":["opinion","javascript","rust","go","ai"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/javascript-low-level-or-ai\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/javascript-low-level-or-ai.png","length":"0","type":"image\/png"}}},{"title":"Lean NPM packages","link":"https:\/\/loige.co\/lean-npm-packages\/","guid":"https:\/\/loige.co\/lean-npm-packages\/","description":"Learn how to configure NPM packages to publish only the files needed by users, avoiding bloating node_modules folders.","pubDate":"Sun, 08 Sep 2019 16:40:58 GMT","category":["javascript","node-js","npm"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/lean-npm-packages\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/lean-npm-packages.png","length":"0","type":"image\/png"}}},{"title":"Learning Rust through open source and live code reviews","link":"https:\/\/loige.co\/learning-rust-through-open-source-and-live-code-reviews\/","guid":"https:\/\/loige.co\/learning-rust-through-open-source-and-live-code-reviews\/","description":"This article summarizes the experience of two developers learning Rust by building an open source project and having it reviewed live by a Rust expert. It covers the improvements suggested during the review, including simplifying project structure, adding documentation, handling strings, removing code duplication, improving input validation and testing.","pubDate":"Sun, 11 Oct 2020 19:50:00 GMT","category":"rust","author":"Luciano Mammino","comments":"https:\/\/loige.co\/learning-rust-through-open-source-and-live-code-reviews\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/learning-rust-through-open-source-and-live-code-reviews.png","length":"0","type":"image\/png"}}},{"title":"Middy 1.0.0 is here","link":"https:\/\/loige.co\/middy-1-is-here\/","guid":"https:\/\/loige.co\/middy-1-is-here\/","description":"The middleware framework Middy reached version 1.0, bringing middleware capabilities to AWS Lambda. This allows cleaner handler code by extracting cross-cutting concerns into reusable middleware.","pubDate":"Sun, 26 Apr 2020 15:25:00 GMT","category":["serverless","node-js","javascript"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/middy-1-is-here\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/middy-1-is-here.png","length":"0","type":"image\/png"}}},{"title":"Migrating from Gatsby to Astro","link":"https:\/\/loige.co\/migrating-from-gatsby-to-astro\/","guid":"https:\/\/loige.co\/migrating-from-gatsby-to-astro\/","description":"This article discuss the reason why I wanted to migrate this blog from Gatsby to Astro and the process I followed to do it. Plus a bunch of interesting and quirky bugs that I had to troubleshoot and fix along the way.","pubDate":"Wed, 24 Jan 2024 18:26:00 GMT","category":["javascript","node-js","astro"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/migrating-from-gatsby-to-astro\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/migrating-from-gatsby-to-astro.png","length":"0","type":"image\/png"}}},{"title":"My Serverless & AWS Lambda talk at Node.js Dublin January 2017","link":"https:\/\/loige.co\/my-serverless-aws-lambda-talk-at-nodejs-dublin-january-2017\/","guid":"https:\/\/loige.co\/my-serverless-aws-lambda-talk-at-nodejs-dublin-january-2017\/","description":"This post summarizes a talk about building a serverless architecture on AWS Lambda using the Serverless framework. It covers topics like authentication, authorization, testing, CI\/CD, and cost monitoring. The presenters share lessons learned from real-world experience building a production serverless application.","pubDate":"Tue, 14 Feb 2017 19:03:00 GMT","category":["slides","talk","node-js","javascript","aws-lambda","serverless"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/my-serverless-aws-lambda-talk-at-nodejs-dublin-january-2017\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/my-serverless-aws-lambda-talk-at-nodejs-dublin-january-2017.png","length":"0","type":"image\/png"}}},{"title":"My Serverless talk at Shift conference in Split","link":"https:\/\/loige.co\/my-serverless-talk-at-shift-conference-in-split\/","guid":"https:\/\/loige.co\/my-serverless-talk-at-shift-conference-in-split\/","description":"Luciano Mammino recounts his experience speaking at the Shift conference in Split, Croatia about Serverless architecture and its pros and cons. He provides links to his talk video, slides, and a Twitter moment.","pubDate":"Thu, 15 Jun 2017 13:49:59 GMT","category":["conferences","slides","speaking","serverless","javascript","node-js"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/my-serverless-talk-at-shift-conference-in-split\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/my-serverless-talk-at-shift-conference-in-split.png","length":"0","type":"image\/png"}}},{"title":"My Universal JavaScript Web Applications talk at Codemotion Milan 2016","link":"https:\/\/loige.co\/my-universal-javascript-web-applications-talk-at-codemotion-milan-2016-2\/","guid":"https:\/\/loige.co\/my-universal-javascript-web-applications-talk-at-codemotion-milan-2016-2\/","description":"This blog post summarizes a talk about building a Universal JavaScript application with React given at Codemotion Milan 2016. It includes commentary for each slide, photos from Twitter, and a video recording. The post explains what Universal JavaScript is, its benefits, challenges, and walks through demo code to add server-side rendering and routing to a React app.","pubDate":"Sat, 26 Nov 2016 09:53:55 GMT","category":["slides","talk","node-js","javascript","react"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/my-universal-javascript-web-applications-talk-at-codemotion-milan-2016-2\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/my-universal-javascript-web-applications-talk-at-codemotion-milan-2016-2.png","length":"0","type":"image\/png"}}},{"title":"My Universal JavaScript Web Applications talk at Codemotion Rome 2017","link":"https:\/\/loige.co\/my-universal-javascript-web-applications-talk-at-codemotion-rome-2017\/","guid":"https:\/\/loige.co\/my-universal-javascript-web-applications-talk-at-codemotion-rome-2017\/","description":"The author gave a talk on building universal JavaScript web apps at Codemotion Rome 2017. He updated his Judo Heroes demo to v2 with React 15.4, React Router 4, Webpack 2, and Express 5. The talk got positive feedback from the audience. Slides and video are linked.","pubDate":"Tue, 11 Apr 2017 22:41:40 GMT","category":["slides","talk","react","javascript","node-js"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/my-universal-javascript-web-applications-talk-at-codemotion-rome-2017\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/my-universal-javascript-web-applications-talk-at-codemotion-rome-2017.png","length":"0","type":"image\/png"}}},{"title":"New PHP library: PHPoAuthUserData","link":"https:\/\/loige.co\/new-php-library-php-oauth-user-data\/","guid":"https:\/\/loige.co\/new-php-library-php-oauth-user-data\/","description":"The PHPoAuthUserData library provides a simple interface to extract common user data like name, username, ID from various OAuth providers. It builds on top of PHPoAuthLib.","pubDate":"Mon, 10 Feb 2014 12:13:50 GMT","category":["library","php","oauth","github"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/new-php-library-php-oauth-user-data\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/new-php-library-php-oauth-user-data.png","length":"0","type":"image\/png"}}},{"title":"Node.js Design Patterns: Fourth Edition is out!","link":"https:\/\/loige.co\/nodejs-design-patterns-fourth-edition\/","guid":"https:\/\/loige.co\/nodejs-design-patterns-fourth-edition\/","description":"The fourth edition of Node.js Design Patterns is here. As one of the authors, I share why we wrote a new edition, what's new, and my thoughts on where Node.js is heading.","pubDate":"Thu, 18 Dec 2025 11:22:00 GMT","category":["node-js","javascript","books"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/nodejs-design-patterns-fourth-edition\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/nodejs-design-patterns-fourth-edition.png","length":"0","type":"image\/png"}}},{"title":"Provision an Ubuntu-based EC2 instance with CDK","link":"https:\/\/loige.co\/provision-ubuntu-ec2-with-cdk\/","guid":"https:\/\/loige.co\/provision-ubuntu-ec2-with-cdk\/","description":"This post explains how to use CDK to provision Ubuntu EC2 instances on AWS. It covers finding the right AMI, adding security groups, using init scripts, installing AWS utilities, and more.","pubDate":"Fri, 06 Aug 2021 13:05:00 GMT","category":["aws","cdk","javascript","typescript","nginx"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/provision-ubuntu-ec2-with-cdk\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/provision-ubuntu-ec2-with-cdk.png","length":"0","type":"image\/png"}}},{"title":"A random emoji in your terminal prompt. How and Why!","link":"https:\/\/loige.co\/random-emoji-in-your-prompt-how-and-why\/","guid":"https:\/\/loige.co\/random-emoji-in-your-prompt-how-and-why\/","description":"Customize your terminal prompt with Bash PS1 variable and RANDOM function to show a random emoji on each command. Learn Bash arrays, escape sequences, and functions. Emojis make your terminal more fun and keep your morale up during debugging.","pubDate":"Mon, 17 Dec 2018 18:50:00 GMT","category":["bash","shell"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/random-emoji-in-your-prompt-how-and-why\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/random-emoji-in-your-prompt-how-and-why.png","length":"0","type":"image\/png"}}},{"title":"React on the Server for Beginners: Build a Universal React and Node App","link":"https:\/\/loige.co\/react-on-the-server-for-beginners-build-a-universal-react-and-node-app\/","guid":"https:\/\/loige.co\/react-on-the-server-for-beginners-build-a-universal-react-and-node-app\/","description":"This article explains how to build a simple Universal JavaScript application using React, React Router and Express. It shows how to implement server side rendering with React and Node.js to create an isomorphic app.","pubDate":"Mon, 29 Aug 2016 21:49:47 GMT","category":["node-js","react","collaboration"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/react-on-the-server-for-beginners-build-a-universal-react-and-node-app\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/react-on-the-server-for-beginners-build-a-universal-react-and-node-app.png","length":"0","type":"image\/png"}}},{"title":"Reset your MySql server password","link":"https:\/\/loige.co\/reset-your-mysql-server-password\/","guid":"https:\/\/loige.co\/reset-your-mysql-server-password\/","description":"Learn how to reset a lost MySQL root password by restarting the server with disabled security checks. This allows resetting the password directly in the database. Useful when locked out but reduces security temporarily.","pubDate":"Sun, 30 Mar 2014 09:07:56 GMT","category":["security","mysql","server"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/reset-your-mysql-server-password\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/reset-your-mysql-server-password.png","length":"0","type":"image\/png"}}},{"title":"Rust shenanigans: return type polymorphism","link":"https:\/\/loige.co\/rust-shenanigans-return-type-polymorphism\/","guid":"https:\/\/loige.co\/rust-shenanigans-return-type-polymorphism\/","description":"This article explores return type polymorphism in Rust through examples like Default::default() and a custom dice rolling library. The technique allows writing generic functions that can return different types based on usage. Useful for extensible APIs.","pubDate":"Tue, 13 Apr 2021 09:15:00 GMT","category":"rust","author":"Luciano Mammino","comments":"https:\/\/loige.co\/rust-shenanigans-return-type-polymorphism\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/rust-shenanigans-return-type-polymorphism.png","length":"0","type":"image\/png"}}},{"title":"Simple echo server written in Go, dockerized!","link":"https:\/\/loige.co\/simple-echo-server-written-in-go-dockerized\/","guid":"https:\/\/loige.co\/simple-echo-server-written-in-go-dockerized\/","description":"By writing a Dockerfile we can containerize a simple Go echo server app. The Dockerfile installs Go, copies the server code, exposes the port, and defines the command to run the app. Building the Dockerfile produces an image that can be run as a container. The containerized Go app can then be easily distributed and run anywhere Docker is installed.","pubDate":"Sun, 29 Jun 2014 14:43:56 GMT","category":["server","go","docker"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/simple-echo-server-written-in-go-dockerized\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/simple-echo-server-written-in-go-dockerized.png","length":"0","type":"image\/png"}}},{"title":"Symfony, edit the Response globally using the Kernel Response event","link":"https:\/\/loige.co\/symfony-edit-the-response-globally-using-the-kernel-response-event\/","guid":"https:\/\/loige.co\/symfony-edit-the-response-globally-using-the-kernel-response-event\/","description":"The Symfony HttpKernel Component allows interacting with the response generation through events. The Kernel Response event permits modifying the response before sending it out. Two examples show how to use it to add custom headers and cookies without touching controller logic.","pubDate":"Sat, 21 Feb 2015 01:12:00 GMT","category":["php","symfony","http"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/symfony-edit-the-response-globally-using-the-kernel-response-event\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/symfony-edit-the-response-globally-using-the-kernel-response-event.png","length":"0","type":"image\/png"}}},{"title":"Symfony security: authentication made simple (well, maybe!)","link":"https:\/\/loige.co\/symfony-security-authentication-made-simple\/","guid":"https:\/\/loige.co\/symfony-security-authentication-made-simple\/","description":"This post collects resources and provides a graph to understand how Symfony authentication works behind the scenes, from the initial request to the final authenticated token. It clarifies the relationships between key classes like firewall, authentication provider and authentication listener.","pubDate":"Fri, 14 Feb 2014 00:34:23 GMT","category":["php","symfony","security"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/symfony-security-authentication-made-simple\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/symfony-security-authentication-made-simple.png","length":"0","type":"image\/png"}}},{"title":"The Definition of Senior: A Look at the expectations for Software Engineers","link":"https:\/\/loige.co\/the-senior-dev\/","guid":"https:\/\/loige.co\/the-senior-dev\/","description":"This article explores the multifaceted definition of a senior software engineer. It covers the technical skills like going a level deeper and having a broad understanding, as well as soft skills like communication, autonomy, business acumen, and leadership. It provides tips on how to grow, such as pair programming and content creation. The path to seniority requires dedication, perseverance and a growth mindset.","pubDate":"Sun, 26 Mar 2023 16:30:00 GMT","category":["life","career"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/the-senior-dev\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/the-senior-dev.png","length":"0","type":"image\/png"}}},{"title":"To promise or to callback? That is the question...","link":"https:\/\/loige.co\/to-promise-or-to-callback-that-is-the-question\/","guid":"https:\/\/loige.co\/to-promise-or-to-callback-that-is-the-question\/","description":"We explore two approaches to support both callbacks and promises in async JavaScript modules: 1) promisify callback functions, 2) make callback optional and return promise. The second allows flexible use of callbacks or promises.","pubDate":"Sun, 14 Feb 2016 13:32:00 GMT","category":["javascript","node-js"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/to-promise-or-to-callback-that-is-the-question\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/to-promise-or-to-callback-that-is-the-question.png","length":"0","type":"image\/png"}}},{"title":"Transparent pixel response with Symfony, how to track email opening","link":"https:\/\/loige.co\/transparent-pixel-response-with-symfony-how-to-track-email-opening\/","guid":"https:\/\/loige.co\/transparent-pixel-response-with-symfony-how-to-track-email-opening\/","description":"This blog post explains how to implement email open tracking in Symfony using a transparent tracking pixel. It provides code examples for generating a tracking image response and handling the tracking logic in a controller.","pubDate":"Fri, 13 Jun 2014 10:33:04 GMT","category":["php","symfony","http","tracking","email"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/transparent-pixel-response-with-symfony-how-to-track-email-opening\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/transparent-pixel-response-with-symfony-how-to-track-email-opening.png","length":"0","type":"image\/png"}}},{"title":"Two Interviews about Node.js, JavaScript and being a book author","link":"https:\/\/loige.co\/two-interviews-about-node-js-javascript-and-being-a-book-author\/","guid":"https:\/\/loige.co\/two-interviews-about-node-js-javascript-and-being-a-book-author\/","description":"Luciano Mammino recently participated in two interviews discussing his work with Node.js and JavaScript as well as his experience as an author writing books about Node.js design patterns.","pubDate":"Sun, 25 Sep 2016 13:24:08 GMT","category":["collaboration","node-js","javascript"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/two-interviews-about-node-js-javascript-and-being-a-book-author\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/two-interviews-about-node-js-javascript-and-being-a-book-author.png","length":"0","type":"image\/png"}}},{"title":"Unshorten (expand) short URLs with Node.js","link":"https:\/\/loige.co\/unshorten-expand-short-urls-with-node-js\/","guid":"https:\/\/loige.co\/unshorten-expand-short-urls-with-node-js\/","description":"This article explains how short URLs work and provides code examples to expand them in Node.js using request module or tall library. It covers basics of URL redirection, shows how to disable auto-redirect in request module, and introduces tall - a promise-based Node.js library to unshorten URLs.","pubDate":"Fri, 31 Mar 2017 23:23:09 GMT","category":["node-js","library","javascript"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/unshorten-expand-short-urls-with-node-js\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/unshorten-expand-short-urls-with-node-js.png","length":"0","type":"image\/png"}}},{"title":"Using Let\u2019s Encrypt and Certbot to automate the creation of certificates for OpenVPN","link":"https:\/\/loige.co\/using-lets-encrypt-and-certbot-to-automate-the-creation-of-certificates-for-openvpn\/","guid":"https:\/\/loige.co\/using-lets-encrypt-and-certbot-to-automate-the-creation-of-certificates-for-openvpn\/","description":"This post explains how to use Let's Encrypt and Certbot to automatically generate and renew SSL certificates for OpenVPN. It provides a complete Terraform setup as a practical example.","pubDate":"Mon, 19 Jun 2017 22:00:20 GMT","category":["ssl","web","terraform","security","aws"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/using-lets-encrypt-and-certbot-to-automate-the-creation-of-certificates-for-openvpn\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/using-lets-encrypt-and-certbot-to-automate-the-creation-of-certificates-for-openvpn.png","length":"0","type":"image\/png"}}},{"title":"Versioning and deploying a static website with Git, Flightplan and Nginx","link":"https:\/\/loige.co\/versioning-and-deploying-a-static-website-with-git-flightplan-and-nginx\/","guid":"https:\/\/loige.co\/versioning-and-deploying-a-static-website-with-git-flightplan-and-nginx\/","description":"This blog post provides a beginner's guide to managing versioning and deployment of static websites using Git for version control, Flightplan.js for automated deployment, and Nginx for serving. It outlines a simple yet complete workflow for implementing continuous delivery and rollbacks.","pubDate":"Tue, 08 Sep 2015 22:16:27 GMT","category":["javascript","server","node-js","nginx","git","flightplan","collaboration"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/versioning-and-deploying-a-static-website-with-git-flightplan-and-nginx\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/versioning-and-deploying-a-static-website-with-git-flightplan-and-nginx.png","length":"0","type":"image\/png"}}},{"title":"What's in a JWT (Json Web Token)?","link":"https:\/\/loige.co\/whats-in-a-jwt\/","guid":"https:\/\/loige.co\/whats-in-a-jwt\/","description":"This article explains what JWTs (JSON Web Tokens) are, looking at their internal structure with header, body, and signature. It illustrates how they enable stateless authentication and authorization in distributed systems.","pubDate":"Mon, 05 Oct 2020 09:00:00 GMT","category":"jwt","author":"Luciano Mammino","comments":"https:\/\/loige.co\/whats-in-a-jwt\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/whats-in-a-jwt.png","length":"0","type":"image\/png"}}},{"title":"Where to go to learn Rust in 2021","link":"https:\/\/loige.co\/where-to-go-to-learn-rust-in-2021\/","guid":"https:\/\/loige.co\/where-to-go-to-learn-rust-in-2021\/","description":"This article provides a list of free and paid resources to learn Rust in 2021 including books, blogs, videos, newsletters, podcasts, communities, exercises, workshops, and open source projects.","pubDate":"Sun, 28 Mar 2021 19:55:00 GMT","category":"rust","author":"Luciano Mammino","comments":"https:\/\/loige.co\/where-to-go-to-learn-rust-in-2021\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/where-to-go-to-learn-rust-in-2021.png","length":"0","type":"image\/png"}}},{"title":"Why you should consider Rust for your Lambdas","link":"https:\/\/loige.co\/why-you-should-consider-rust-for-your-lambdas\/","guid":"https:\/\/loige.co\/why-you-should-consider-rust-for-your-lambdas\/","description":"Rust is an ideal language for writing AWS Lambda functions. Its performance can reduce execution time and memory usage, lowering costs. Its safety features like no nulls and error handling can reduce bugs.","pubDate":"Wed, 16 Aug 2023 09:58:00 GMT","category":["rust","serverless"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/why-you-should-consider-rust-for-your-lambdas\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/why-you-should-consider-rust-for-your-lambdas.png","length":"0","type":"image\/png"}}},{"title":"Write a console application using Symfony and Pimple","link":"https:\/\/loige.co\/write-a-console-application-using-symfony-and-pimple\/","guid":"https:\/\/loige.co\/write-a-console-application-using-symfony-and-pimple\/","description":"This article shows how to build a simple command line application using the Symfony Console component and Pimple dependency injection container. It provides a step-by-step guide on structuring the code, defining services, configuring parameters and wiring everything together to create a executable console app.","pubDate":"Sat, 15 Mar 2014 02:16:20 GMT","category":["php","symfony","console","pimple"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/write-a-console-application-using-symfony-and-pimple\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/write-a-console-application-using-symfony-and-pimple.png","length":"0","type":"image\/png"}}},{"title":"Writing a new Extractor for PHPoAuthUserData","link":"https:\/\/loige.co\/writing-a-new-extractor-for-php-oauth-user-data\/","guid":"https:\/\/loige.co\/writing-a-new-extractor-for-php-oauth-user-data\/","description":"This post explains how to add support for Instagram to the PHPoAuthUserData library by writing a dedicated extractor class. It illustrates the concepts of loaders, normalizers and mapping to extract user profile data from the Instagram API.","pubDate":"Mon, 10 Feb 2014 17:23:54 GMT","category":["library","php","oauth","instagram","github"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/writing-a-new-extractor-for-php-oauth-user-data\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/writing-a-new-extractor-for-php-oauth-user-data.png","length":"0","type":"image\/png"}}},{"title":"Writing middlewares for Rust Lambda functions","link":"https:\/\/loige.co\/writing-middlewares-for-rust-lambda-functions\/","guid":"https:\/\/loige.co\/writing-middlewares-for-rust-lambda-functions\/","description":"How to write reusable middleware for Rust Lambda functions using tower, the generic middleware engine that already underpins the AWS Lambda Rust runtime. Includes a complete DynamoDB-backed IP rate limiter with SAM deployment.","pubDate":"Sun, 03 May 2026 14:58:32 GMT","category":["rust","serverless","aws","lambda"],"author":"Luciano Mammino","comments":"https:\/\/loige.co\/writing-middlewares-for-rust-lambda-functions\/#comments","enclosure":{"@attributes":{"url":"https:\/\/loige.co\/og\/writing-middlewares-for-rust-lambda-functions.png","length":"0","type":"image\/png"}}}]}}