41554 blogs · [ { "id": "01a0874f-92ef-72cd-a003-dc27c0879fe4", "title": "Building personalized micro agents", "url": "https://blog.meain.io/2025/building-personalized-micro-agents/", "published_at": "2025-07-06T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27bf96cebf", "title": "Go talk to the LLM", "url": "https://blog.meain.io/2024/how-i-use-ai/", "published_at": "2024-10-02T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27bf5273bf", "title": "Putting Go's Context package into context", "url": "https://blog.meain.io/2024/golang-context/", "published_at": "2024-06-09T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27bef9554e", "title": "How does sync.WaitGroup work", "url": "https://blog.meain.io/2024/sync-waitgroup-internals/", "published_at": "2024-05-26T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27be364035", "title": "Firefox bookmark keywords for faster navigation", "url": "https://blog.meain.io/2024/firefox-bookmark-keywords/", "published_at": "2024-05-17T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27bdcae6c8", "title": "Just enough CORS to not get stuck", "url": "https://blog.meain.io/2024/just-enough-cors/", "published_at": "2024-02-08T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27bd9afa65", "title": "Navigating around in your shell", "url": "https://blog.meain.io/2023/navigating-around-in-shell/", "published_at": "2023-11-16T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27bc9cb6fa", "title": "How I manage my tasks in LogSeq", "url": "https://blog.meain.io/2023/logseq-task-management/", "published_at": "2023-10-17T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27bbdcbfc2", "title": "What is in that .git directory?", "url": "https://blog.meain.io/2023/what-is-in-dot-git/", "published_at": "2023-10-06T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27bb44fd81", "title": "Splitting and joining using tree-sitter", "url": "https://blog.meain.io/2023/split-join-tree-sitter/", "published_at": "2023-03-15T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27bacd4f8e", "title": "Releasing scopeline.el", "url": "https://blog.meain.io/2023/releasing-scopeline-el/", "published_at": "2023-03-12T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27b9fa0192", "title": "What is in a modern code editor?", "url": "https://blog.meain.io/2022/modern-text-editor/", "published_at": "2022-12-11T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27b93bb5c2", "title": "EmacsConf 2022", "url": "https://blog.meain.io/2022/emacsconf-2022/", "published_at": "2022-12-05T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27b8b1996f", "title": "Self hosted location history", "url": "https://blog.meain.io/2022/self-hosted-location-history/", "published_at": "2022-09-17T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27b86024fc", "title": "Navigating config files using tree-sitter", "url": "https://blog.meain.io/2022/navigating-config-files-using-tree-sitter/", "published_at": "2022-07-12T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27b79db252", "title": "Playing around with tree-sitter in Emacs", "url": "https://blog.meain.io/2022/more-treesitter-emacs/", "published_at": "2022-05-18T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27b6e8b95d", "title": "Your terminal on lsd", "url": "https://blog.meain.io/2022/your-terminal-on-lsd/", "published_at": "2022-03-26T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27b649c8b7", "title": "Drag and drop from terminal", "url": "https://blog.meain.io/2022/terminal-drag-and-drop/", "published_at": "2022-02-23T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27b559ba66", "title": "A useful shell prompt", "url": "https://blog.meain.io/2022/my-shell-prompt/", "published_at": "2022-02-12T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27b4a9a89f", "title": "Introduction to nix", "url": "https://blog.meain.io/2021/intro-to-nix/", "published_at": "2021-11-06T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27b40fac57", "title": "Intelligent snippets using tree-sitter", "url": "https://blog.meain.io/2021/intelligent-snippets-treesitter/", "published_at": "2021-10-16T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27b366534a", "title": "Releasing gh-issues-to-rss", "url": "https://blog.meain.io/2021/releasing-gh-issues-to-rss/", "published_at": "2021-10-13T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27b330e245", "title": "Emacs alternatives for pouplar Neovim plugins", "url": "https://blog.meain.io/2021/Emacs-alternatives-for-the-Vim-plugins-you-know-and-love/", "published_at": "2021-09-29T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27b3267a27", "title": "Just flip a coin", "url": "https://blog.meain.io/2021/just-flip-a-coin/", "published_at": "2021-09-10T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27b30f9cc4", "title": "Releasing evil-textobj-tree-sitter", "url": "https://blog.meain.io/2021/releasing-evil-textobj-tree-sitter/", "published_at": "2021-09-09T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27b2a8d5c4", "title": "A better way to think about tests", "url": "https://blog.meain.io/2021/better-way-to-think-about-tests/", "published_at": "2021-09-08T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27b22b036a", "title": "Zooming into Zoom meetings", "url": "https://blog.meain.io/2021/zoom-into-zoom/", "published_at": "2021-07-31T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27b21802e6", "title": "Edit everything in Emacs", "url": "https://blog.meain.io/2021/edit-everything-in-emacs/", "published_at": "2021-07-26T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27b1b6dda8", "title": "Templating things in Airflow DAG", "url": "https://blog.meain.io/2021/airflow-template-in-dag/", "published_at": "2021-05-12T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27b0cbdae7", "title": "Just a simple markdown previewer", "url": "https://blog.meain.io/2021/offline-markdown-preview/", "published_at": "2021-04-27T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27b082c41e", "title": "My workflow hacks", "url": "https://blog.meain.io/2020/my-workflow-hacks/", "published_at": "2020-12-31T00:00:00+00:00" }, { "id": "01a0874f-92ef-72cd-a003-dc27afc282d0", "title": "Highlight yanked region in Emacs", "url": "https://blog.meain.io/2020/emacs-highlight-yanked/", "published_at": "2020-11-20T00:00:00+00:00" }, { "id": "01a0874f-92ee-729b-a572-cf733c0b2948", "title": "Just a bunch of git stuff", "url": "https://blog.meain.io/2020/bunch-of-git-stuff/", "published_at": "2020-11-06T00:00:00+00:00" }, { "id": "01a0874f-92ee-729b-a572-cf733b4a2e5f", "title": "Floating scratch terminal in tmux", "url": "https://blog.meain.io/2020/tmux-flating-scratch-terminal/", "published_at": "2020-09-15T00:00:00+00:00" }, { "id": "01a0874f-92ee-729b-a572-cf733aa20dfc", "title": "What you need might not be Kubernetes", "url": "https://blog.meain.io/2020/you-might-not-need-kubernetes/", "published_at": "2020-06-21T00:00:00+00:00" }, { "id": "01a0874f-92ee-729b-a572-cf7339a918d7", "title": "Copy file opened in macOS preview to working directory", "url": "https://blog.meain.io/2020/copy-last-opened-file-to-current-folder/", "published_at": "2020-06-02T00:00:00+00:00" }, { "id": "01a0874f-92ee-729b-a572-cf7338e7b64d", "title": "Completely remove a file from git history", "url": "https://blog.meain.io/2020/completely-remove-a-file-from-git-history/", "published_at": "2020-05-22T00:00:00+00:00" }, { "id": "01a0874f-92ee-729b-a572-cf7338310c48", "title": "What exactly are stock options?", "url": "https://blog.meain.io/2020/what-exactly-are-stock-options/", "published_at": "2020-05-20T00:00:00+00:00" }, { "id": "01a0874f-92ee-729b-a572-cf7337c6269b", "title": "A simpler method for a reactive UI", "url": "https://blog.meain.io/2020/a-simpler-method-for-reactive-ui/", "published_at": "2020-05-16T00:00:00+00:00" }, { "id": "01a0874f-92ee-729b-a572-cf7337515c1a", "title": "Mounting S3 bucket in docker containers on kubernetes", "url": "https://blog.meain.io/2020/mounting-s3-bucket-kube/", "published_at": "2020-04-12T00:00:00+00:00" }, { "id": "01a0874f-92ee-729b-a572-cf7337494f8a", "title": "Auto shutdown VM if no active SSH connections", "url": "https://blog.meain.io/2020/auto-shutdown-no-ssh/", "published_at": "2020-04-05T00:00:00+00:00" }, { "id": "01a0874f-92ee-729b-a572-cf7337356cdf", "title": "Dynamic reverse proxy using nginx in Kubernetes", "url": "https://blog.meain.io/2020/dynamic-reverse-proxy-kubernetes/", "published_at": "2020-03-30T00:00:00+00:00" }, { "id": "01a0874f-92ee-729b-a572-cf7336edc930", "title": "Switching to DuckDuckGo", "url": "https://blog.meain.io/2019/switching-to-duckduckgo/", "published_at": "2019-12-17T00:00:00+00:00" }, { "id": "01a0874f-92ee-729b-a572-cf7336ba1f9e", "title": "Table operations like in Nu shell in BASH", "url": "https://blog.meain.io/2019/nu-like-table-operations-in-bash/", "published_at": "2019-11-16T00:00:00+00:00" }, { "id": "01a0874f-92ee-729b-a572-cf73361057cb", "title": "How to create a SVG blob thingy in HTML Canvas", "url": "https://blog.meain.io/2019/canvas-svg-blob/", "published_at": "2019-11-12T00:00:00+00:00" }, { "id": "01a0874f-92ee-729b-a572-cf7335591ae6", "title": "Making sure you won't commit conflict markers", "url": "https://blog.meain.io/2019/making-sure-you-wont-commit-conflict-markers/", "published_at": "2019-10-11T00:00:00+00:00" }, { "id": "01a0874f-92ee-729b-a572-cf733532f7a3", "title": "Accessing Kubernetes API from a Pod (RBAC)", "url": "https://blog.meain.io/2019/accessing-kubernetes-api-from-pod/", "published_at": "2019-08-12T00:00:00+00:00" }, { "id": "01a0874f-92ee-729b-a572-cf7334bdb054", "title": "Git never forgets, well kinda. `git-reflog`", "url": "https://blog.meain.io/2019/git_never_forgets_well_kinda/", "published_at": "2019-08-10T00:00:00+00:00" }, { "id": "01a0874f-92ee-729b-a572-cf7333db9c47", "title": "Setting local files as New Tab page in Firefox", "url": "https://blog.meain.io/2019/set-local-file-as-newtabpage-in-firefox/", "published_at": "2019-07-27T00:00:00+00:00" }, { "id": "01a0874f-92ec-721d-a02f-a621c148bcce", "title": "Understanding Kubernetes (Basics)", "url": "https://blog.meain.io/2019/understanding-kubernetes/", "published_at": "2019-06-26T00:00:00+00:00" }, { "id": "01a0874f-92ec-721d-a02f-a621c0e03359", "title": "Beginners guide to tensorflow serving", "url": "https://blog.meain.io/2019/beginner-guide-to-tf-serving/", "published_at": "2019-05-11T00:00:00+00:00" }, { "id": "01a0874f-92ec-721d-a02f-a621c00916dc", "title": "Automatically list files after cd", "url": "https://blog.meain.io/2019/automatically-ls-after-cd/", "published_at": "2019-05-06T00:00:00+00:00" }, { "id": "01a0874f-92ec-721d-a02f-a621bf942b32", "title": "A bit more about configuring nginx (rewrite and alias)", "url": "https://blog.meain.io/2019/a-bit-more-comlex-nginx-config/", "published_at": "2019-04-30T00:00:00+00:00" }, { "id": "01a0874f-92ec-721d-a02f-a621bf5b4023", "title": "How to do server side autocompletion (networking parts)", "url": "https://blog.meain.io/2019/simple-server-side-autocomplete/", "published_at": "2019-03-26T00:00:00+00:00" }, { "id": "01a0874f-92ec-721d-a02f-a621bed089db", "title": "Understanding Rust macros", "url": "https://blog.meain.io/2019/understanding-rust-macros/", "published_at": "2019-02-17T00:00:00+00:00" }, { "id": "01a0874f-92ec-721d-a02f-a621bdee8a1a", "title": "A really simple nginx config", "url": "https://blog.meain.io/2019/a-really-simple-nginx-conf/", "published_at": "2019-01-08T00:00:00+00:00" }, { "id": "01a0874f-92ec-721d-a02f-a621bdcb8107", "title": "Publishing a console application to pypi", "url": "https://blog.meain.io/2018/publish-console-application-pypi/", "published_at": "2018-12-28T00:00:00+00:00" }, { "id": "01a0874f-92ec-721d-a02f-a621bccc4904", "title": "Docker basics", "url": "https://blog.meain.io/2018/docker-basics-react-app/", "published_at": "2018-11-09T00:00:00+00:00" }, { "id": "01a0874f-92ec-721d-a02f-a621bc2b45c5", "title": "Quickly go to project root", "url": "https://blog.meain.io/2018/go-to-root-of-git-project/", "published_at": "2018-11-04T00:00:00+00:00" }, { "id": "01a0874f-92ec-721d-a02f-a621bb92258b", "title": "Connecting `Redux` to `React`, simplified", "url": "https://blog.meain.io/2018/connect-redux-to-react/", "published_at": "2018-01-24T00:00:00+00:00" }, { "id": "01a0874f-92ec-721d-a02f-a621ba96bc87", "title": "Take a picture of you every time you open your laptop", "url": "https://blog.meain.io/2018/profiling-yourself/", "published_at": "2018-01-09T00:00:00+00:00" }, { "id": "01a0874f-92ec-721d-a02f-a621b9d3257a", "title": "Creating a tic-tac-toe game in Clojurescript using Reagent", "url": "https://blog.meain.io/2017/tictactoe-clojurescript-reagent/", "published_at": "2017-09-28T00:00:00+00:00" }, { "id": "01a0874f-92ec-721d-a02f-a621b9bd70aa", "title": "Ehh, Webassembly?", "url": "https://blog.meain.io/2017/ehh-webassembly/", "published_at": "2017-08-27T00:00:00+00:00" }, { "id": "01a0874f-92ec-721d-a02f-a621b90a6f00", "title": "How Emacs took over my Vim life", "url": "https://blog.meain.io/2017/how-emacs-took-over-my-vim-life/", "published_at": "2017-06-13T00:00:00+00:00" }, { "id": "01a0874f-92ec-721d-a02f-a621b84499e5", "title": "How to make Vim and Tmux friends with system clipboard", "url": "https://blog.meain.io/2017/make-vim-and-tmux-friends-with-system-clipboard/", "published_at": "2017-05-27T00:00:00+00:00" } ] posts Claim your blog
Back to meain/blog
Blog · corpus.blog/blogs/blog.meain.io/posts

meain/blog

blog.meain.io

2025

2024

2023

2022

2021

2020

2019

2018

2017