Welcome to my website!
I'm Alessandro Marrella, a Software Engineer who likes pizza, padel tennis and Taylor SwiftPosts
Generate a podcast about anything you want
Google's NotebookLM is making the rounds on the internet (at least in my bubble). It's a new AI tool that Google pitches as a "personalized research assistant" but has evolved to be much more than that, including... a podcast generator.
Deepfaking myself was scarily easy
Moved by my curiosity on everything AI related, I decided to give it a try by creating a LoRa adapter on the FLUX.1 model by Black Forest Labs to generate pictures of myself that never happened.
BigQuery Editions vs On Demand
These are some notes on the tradeoffs and best practices between On Demand pricing vs Editions pricing.
How to quickly profile python imports and runtime
A small TIL about Python profiling.
The AI/ML concepts behind Apple Intelligence
On Monday, June 10, 2024 at their annual World Wide Developer Conference (WWDC) Apple announced "Apple Intelligence", their own flavour of AI integration into their operating systems.
Emphasis should probably go into integration, as the experience that was demoed at WWDC felt like every feature we are used to on our devices was augmented in a way or another by AI. AI is also able to orchestrate those features and use multiple apps and functionalities to achieve what the user wanted.
As someone who has a love/hate relationship with Siri, this is only good news, Siri will become way more powerful and able to understand what you want to do.
This post is not going to be an overview of Apple Intelligence from the users perspective though (for which I suggest the excellent blog post from Simon Willison Thoughts on the WWDC 2024 keynote on Apple Intelligence) but will explore key concepts such as the Semantic Index, App Intents Toolbox, and foundational model adaptations utilized by Apple.
BigQuery performance best practice: use semi joins when possible
SQL is an amazing language, it lets you declaratively say what you want, and the engine figures out for you the best way to return it to you. Or should I say, it figures out the best way to return it to you given the information it has and the capabilities of the engine itself.
In this post, we’ll discuss a performance optimization technique for BigQuery (also other advanced enough Enteprise Data Warehouses and databases support SEMI JOINS, but I'll focus on BigQuery since it's the one I use the most these days): using semi joins.
NOT IN and NOT EXISTS don't always produce the same result
IN
and EXISTS
often produce the same result, but when negated and dealing with NULL
values, they behave differently.
How to run and serve a webserver in Google Colab without ngrok
Today I learned how to run a webserver in Google Colab, without needing external services like ngrok. I'm using Dagster here as an example but any webserver should work.