41554 blogs · [ { "id": "01a087da-33cd-702a-98b3-86b3534b01d9", "title": "Save an audio file into your Spotify account via CLI", "url": "https://saeedesmaili.com/posts/save-an-audio-file-into-your-spotify-account-via-cli/", "published_at": "2026-05-25T09:14:28+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b35d747908", "title": "Treat your morning ritual like an opening chess move", "url": "https://saeedesmaili.com/notes/treat-your-morning-ritual-like-an-opening-chess-move/", "published_at": "2026-03-16T21:14:28+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b353e5c94c", "title": "Taming Claude Code: Taking Back Control", "url": "https://saeedesmaili.com/posts/taming-claude-code-taking-back-control/", "published_at": "2026-02-18T11:00:00+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b354355f3a", "title": "Playing Tennis in the Netherlands: A Guide for Newcomers", "url": "https://saeedesmaili.com/posts/playing-tennis-in-the-netherlands-a-guide-for-newcomers/", "published_at": "2025-05-08T08:57:07+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b35df0851e", "title": "Pure Independence", "url": "https://saeedesmaili.com/notes/pure-independence/", "published_at": "2025-05-03T09:54:14+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b35e61590d", "title": "Never Been Easier to Learn", "url": "https://saeedesmaili.com/notes/never-been-easier-to-learn/", "published_at": "2025-04-26T12:36:15+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b35eec993a", "title": "Released a new tool: llm-url-markdown", "url": "https://saeedesmaili.com/notes/released-a-new-tool-llm-url-markdown/", "published_at": "2025-04-16T17:02:22+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b35f2ea4ee", "title": "Comparing local large language models for alt-text generation", "url": "https://saeedesmaili.com/notes/comparing-local-large-language-models-for-alt-text-generation/", "published_at": "2025-03-31T11:21:42+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b35fc405a0", "title": "Could That Meeting Be An Email?", "url": "https://saeedesmaili.com/notes/could-that-meeting-be-an-email/", "published_at": "2025-03-31T10:20:54+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b355236754", "title": "Building a Personal Content Recommendation System, Part Two: Data Processing and Cleaning", "url": "https://saeedesmaili.com/posts/building-a-personal-content-recommendation-system-data-processing-and-cleaning/", "published_at": "2025-03-26T21:32:31+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b3605ffd77", "title": "Lessons in creating family photos that people want to keep", "url": "https://saeedesmaili.com/notes/lessons-in-creating-family-photos-that-people-want-to-keep/", "published_at": "2025-03-23T00:00:00+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b36099c1dd", "title": "Enhancing Text-to-SQL With Synthetic Summaries", "url": "https://saeedesmaili.com/notes/enhancing-text-to-sql-with-synthetic-summaries/", "published_at": "2025-03-18T08:59:25+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b355907bcb", "title": "Building a Personal Content Recommendation System, Part One: Introduction", "url": "https://saeedesmaili.com/posts/building-a-content-recommendation-system-for-myself-part-one/", "published_at": "2025-03-16T14:49:44+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b361237518", "title": "Add Logprobs to Openai Structured Output", "url": "https://saeedesmaili.com/notes/add-logprobs-to-openai-structured-output/", "published_at": "2025-03-03T20:50:44+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b36144256b", "title": "Adding new entries to a Supabase postgres table via REST API", "url": "https://saeedesmaili.com/notes/adding-new-entries-to-a-supabase-postgres-table-via-rest-api/", "published_at": "2025-01-02T00:00:00+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b355de4972", "title": "Ten Favorite Photos I Captured in 2024", "url": "https://saeedesmaili.com/posts/ten-favorite-photos-i-captured-in-2024/", "published_at": "2024-12-22T10:02:38+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b3614b1f2a", "title": "Label-Studio: Annotate Text and Image Data for AI and ML training", "url": "https://saeedesmaili.com/notes/label-studio-annotate-text-and-image-data-for-ai-and-ml/", "published_at": "2024-12-19T21:42:00+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b361916760", "title": "Quickly Filter and Aggregate Python Lists", "url": "https://saeedesmaili.com/notes/til-quickly-filter-and-aggregate-python-lists/", "published_at": "2024-12-19T19:45:19+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b36200ae00", "title": "Pydantic Logfire for LLM and API Observability", "url": "https://saeedesmaili.com/notes/til-pydantic-logfire-for-observability/", "published_at": "2024-12-19T00:00:00+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b362d12dfd", "title": "Build a search engine, not a vector DB", "url": "https://saeedesmaili.com/notes/build-a-search-engine-not-a-vector-db/", "published_at": "2024-12-04T00:00:00+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b363896029", "title": "Access Google Gemini LLM via OpenAI Python Library", "url": "https://saeedesmaili.com/notes/access-google-gemini-llm-via-openai-python-library/", "published_at": "2024-12-01T00:00:00+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b363bff7c6", "title": "I Have Two Friends an Introverts Guide to Not Chasing Friendships", "url": "https://saeedesmaili.com/notes/i-have-two-friends-an-introverts-guide-to-not-chasing-friendships/", "published_at": "2024-08-12T09:49:59+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b363e17247", "title": "Goodbye Microsoft Hello Facebook", "url": "https://saeedesmaili.com/notes/goodbye-microsoft-hello-facebook/", "published_at": "2024-08-04T15:40:40+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b364022ded", "title": "Country Specific Consent Requirements for Photographing People", "url": "https://saeedesmaili.com/notes/country-specific-consent-requirements-for-photographing-people/", "published_at": "2024-06-29T12:21:11+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b356943390", "title": "Understanding Input Masking in LLM Finetuning", "url": "https://saeedesmaili.com/posts/understanding-input-masking-in-llm-finetuning/", "published_at": "2024-06-29T10:31:39+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b364428406", "title": "Control a smart light with multiple motion sensors in Home Assistant", "url": "https://saeedesmaili.com/notes/control-a-smart-light-with-multiple-motion-sensors-in-home-assistant/", "published_at": "2024-06-20T00:00:00+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b3652488e3", "title": "Upstream Productivity", "url": "https://saeedesmaili.com/notes/upstream-productivity/", "published_at": "2024-06-13T09:53:48+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b3658adfba", "title": "Evidence That You Should Take Your Content Diet More Seriously", "url": "https://saeedesmaili.com/notes/evidence-that-you-should-take-your-content-diet-more-seriously/", "published_at": "2024-06-13T09:47:01+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b3668aa764", "title": "To Chunk or Not to Chunk With the Long Context Single Embedding Models", "url": "https://saeedesmaili.com/notes/to-chunk-or-not-to-chunk-with-the-long-context-single-embedding-models/", "published_at": "2024-06-02T18:24:42+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b3677750f6", "title": "Excuse Me Is There a Problem", "url": "https://saeedesmaili.com/notes/excuse-me-is-there-a-problem/", "published_at": "2024-05-27T13:28:13+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b36841eda0", "title": "Lessons After a Half Billion Gpt Tokens", "url": "https://saeedesmaili.com/notes/lessons-after-a-half-billion-gpt-tokens/", "published_at": "2024-05-27T12:21:27+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b368b12191", "title": "Lucky vs Repeatable", "url": "https://saeedesmaili.com/notes/lucky-vs-repeatable/", "published_at": "2024-05-03T09:32:55+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b356b97bb5", "title": "Running Python on a serverless GPU instance for machine learning inference", "url": "https://saeedesmaili.com/posts/running-python-on-a-serverless-gpu-instance/", "published_at": "2024-04-22T00:00:00+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b368e6cdd5", "title": "Prove It", "url": "https://saeedesmaili.com/notes/prove-it/", "published_at": "2024-04-11T15:57:10+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b369957237", "title": "Can You Just Quickly Pull This Data for Me", "url": "https://saeedesmaili.com/notes/can-you-just-quickly-pull-this-data-for-me/", "published_at": "2024-04-01T09:07:21+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b36a62b699", "title": "An Introvert's Guide to Visibility in the Workplace", "url": "https://saeedesmaili.com/notes/an-introvert-guide-to-visibility-in-the-workplace/", "published_at": "2024-03-31T12:24:12+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b36b4ed1b9", "title": "Dealing With Surprising Human Emotions: Desk Moves", "url": "https://saeedesmaili.com/notes/dealing-with-surprising-human-emotions-desk-moves/", "published_at": "2024-03-22T14:53:52+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b36b9cb3ec", "title": "LLMs Shouldn't Write SQL", "url": "https://saeedesmaili.com/notes/llms-shouldnt-write-sql/", "published_at": "2024-03-18T17:44:36+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b36bcadf45", "title": "Effective Ways of Dealing With Spammers", "url": "https://saeedesmaili.com/notes/effective-ways-of-dealing-with-spammers/", "published_at": "2024-03-18T17:39:12+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b36c0ea849", "title": "Thinking Fast by Preparing Well", "url": "https://saeedesmaili.com/notes/thinking-fast-by-preparing-well/", "published_at": "2024-03-14T13:25:58+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b36c964abb", "title": "Optimizing Technical Docs for LLMs", "url": "https://saeedesmaili.com/notes/optimizing-technical-docs-for-llms/", "published_at": "2024-03-12T12:09:09+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b36caf77f3", "title": "Willingness to Look Stupid", "url": "https://saeedesmaili.com/notes/willingness-to-look-stupid/", "published_at": "2024-03-07T11:20:30+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b36d713eca", "title": "Alfred vs Raycast", "url": "https://saeedesmaili.com/notes/alfred-vs-raycast/", "published_at": "2024-03-03T20:04:44+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b36dbc7fc7", "title": "Fuck You Show Me the Prompt", "url": "https://saeedesmaili.com/notes/fuck-you-show-me-the-prompt/", "published_at": "2024-02-29T18:14:17+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b36eb67e47", "title": "GROUP BY ALL in Bigquery", "url": "https://saeedesmaili.com/notes/group-by-all-in-bigquery/", "published_at": "2024-02-28T09:48:49+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b36f66a5dd", "title": "Classless Css Libraries", "url": "https://saeedesmaili.com/notes/classless-css-libraries/", "published_at": "2024-02-25T10:29:02+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b35710d68c", "title": "My RSS-based Content Consumption Workflow", "url": "https://saeedesmaili.com/posts/my-content-consumption-workflow/", "published_at": "2024-02-22T19:25:49+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b370484450", "title": "Color Palette Generators", "url": "https://saeedesmaili.com/notes/color-palette-generators/", "published_at": "2024-02-21T16:30:08+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b37084a668", "title": "There Is a Huge Gap in Generative Ai", "url": "https://saeedesmaili.com/notes/there-is-a-huge-gap-in-generative-ai/", "published_at": "2024-02-20T16:52:12+00:00" }, { "id": "01a087da-33ce-70f5-92c6-4100342f8fb5", "title": "Office Politics", "url": "https://saeedesmaili.com/notes/office-politics/", "published_at": "2024-02-20T16:35:12+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b357d8598c", "title": "Migrating From Gatsby to Hugo", "url": "https://saeedesmaili.com/posts/migrating-from-gatsby-to-hugo/", "published_at": "2024-02-17T10:30:57+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b3586c1865", "title": "Hand-drawn xkcd style charts with matplotlib", "url": "https://saeedesmaili.com/hand-drawn-style-charts-in/", "published_at": "2023-12-09T00:00:00+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b358edd141", "title": "Why you should try Alfred", "url": "https://saeedesmaili.com/why-you-should-try-alfred/", "published_at": "2023-10-26T00:00:00+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b359d58273", "title": "Getting started with developing browser extensions", "url": "https://saeedesmaili.com/getting-started-with-developing-browser-extensions/", "published_at": "2023-09-25T00:00:00+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b35a134bce", "title": "Topic Classification of Texts Locally Using BERTopic", "url": "https://saeedesmaili.com/topic-classification-of-texts-locally/", "published_at": "2023-09-12T00:00:00+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b35a65cb06", "title": "Text Chunking and Headings Grouping: A Guide to Parsing Documents with Pandoc and Python", "url": "https://saeedesmaili.com/text-chunking-headings-grouping-parsing-documents-with-pandoc/", "published_at": "2023-07-08T00:00:00+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b35ad0196e", "title": "Demystifying Text Data with the unstructured Python Library (+alternatives)", "url": "https://saeedesmaili.com/demystifying-text-data-with-the-unstructured-python-library/", "published_at": "2023-07-05T00:00:00+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b35b95ea3b", "title": "Generating text embeddings locally using sentence-transformers", "url": "https://saeedesmaili.com/how-to-use-sentencetransformers-to-generate-text-embeddings-locally/", "published_at": "2023-07-02T00:00:00+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b35c08d646", "title": "TIL: Simplifying URL Parsing with Python's urlparse Library", "url": "https://saeedesmaili.com/til-simplifying-url-parsing-with-python-urlparse-library/", "published_at": "2023-06-25T00:00:00+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b35c0b9fa3", "title": "Exploring OpenAI's Whisper with Non-English Voices", "url": "https://saeedesmaili.com/exploring-openai-whisper-with-non-english-voices/", "published_at": "2023-06-21T00:00:00+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b35c117e24", "title": "Cleaning up incorrect and duplicates in a 1password account using its CLI", "url": "https://saeedesmaili.com/delete-unwanted-and-duplicated-items-on-1password/", "published_at": "2023-06-09T00:00:00+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b35c844e2c", "title": "Why do we need to have a central place for TODOs", "url": "https://saeedesmaili.com/why-do-we-need-to-have-a-central-place-for-todos/", "published_at": "2023-03-26T00:00:00+00:00" }, { "id": "01a087da-33cd-702a-98b3-86b35d6977f6", "title": "What I dislike about Google Docs (and what I like about it)", "url": "https://saeedesmaili.com/what-i-dislike-and-like-about-google-docs/", "published_at": "2023-03-14T00:00:00+00:00" } ] posts Claim your blog
Back to saeedesmaili
Blog · corpus.blog/blogs/saeedesmaili.com/posts

saeedesmaili

saeedesmaili.com

2026

2025

2024

2023