惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
C
Cybersecurity and Infrastructure Security Agency CISA
C
Cyber Attacks, Cyber Crime and Cyber Security
Project Zero
Project Zero
P
Proofpoint News Feed
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
Cisco Blogs
V
Vulnerabilities – Threatpost
G
GRAHAM CLULEY
N
News | PayPal Newsroom
NISL@THU
NISL@THU
雷峰网
雷峰网
J
Java Code Geeks
Latest news
Latest news
aimingoo的专栏
aimingoo的专栏
Microsoft Azure Blog
Microsoft Azure Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Cisco Talos Blog
Cisco Talos Blog
Hacker News: Ask HN
Hacker News: Ask HN
AWS News Blog
AWS News Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
T
The Exploit Database - CXSecurity.com
P
Privacy International News Feed
C
CXSECURITY Database RSS Feed - CXSecurity.com
Vercel News
Vercel News
Spread Privacy
Spread Privacy
V2EX - 技术
V2EX - 技术
S
Schneier on Security
K
Kaspersky official blog
Recent Announcements
Recent Announcements
T
Threat Research - Cisco Blogs
B
Blog RSS Feed
S
SegmentFault 最新的问题
Security Archives - TechRepublic
Security Archives - TechRepublic
Stack Overflow Blog
Stack Overflow Blog
Hugging Face - Blog
Hugging Face - Blog
Apple Machine Learning Research
Apple Machine Learning Research
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
W
WeLiveSecurity
PCI Perspectives
PCI Perspectives
The GitHub Blog
The GitHub Blog
The Last Watchdog
The Last Watchdog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - 【当耐特】
Engineering at Meta
Engineering at Meta
Scott Helme
Scott Helme
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
量子位
A
Arctic Wolf

Lobsters

Lunacy | Red Vice CIFSwitch: a non-universal Linux local root vulnerability RIPE NCC session fixation: poaching logins with an Atlas probe GNOME 2.20 but its Web Components Agentic Search for Context Engineering – Leonie Monigatti Garnix is shutting down [not OC] akashina.tngl.sh/jjc Concerning Emacs (and Jazz) Nitpicking the shell history scene in ‘Tron: Legacy’ What's cooking on SourceHut? Q2 2026 The tenth OpenPGP email summit Package managers that package package managers Clojure on Fennel part three: parsing WordPress at 23 Finding Miscompiles for Fun, Not Profit GitHub - creusot-rs/creusot: Creusot helps you prove your Rust code is correct. Announcing Rust 1.96.0 | Rust Blog A Love Letter to Neovim sqlite AGENTS.md Am I a Bad Friend? CSS vs. JavaScript • Josh W. Comeau Erlang Ecosystem Foundation - Supporting the BEAM community A brief note about slot access cost in Common Lisp Keyboard latency probe Rethinking the GNOME clipboard issues Back to the Building Blocks’ Building Blocks Tech Notes: Theseus: translating win32 to wasm Fast is better than slow Content-addressed Rust builds (or, what kache actually caches) Intent to Prototype: Embedding API Canada’s Bill C-22 and the security cost of collecting more data 5 PostgreSQL locking behaviors that trip people up okmij.org Stop advertising in your commits! | AksDev GitHub - mplsllc/macsurf: A modern web browser for Classic Mac OS 9 PowerPC. Real CSS3, ES5 JavaScript, native HTTPS — built with CodeWarrior on the Carbon API. Introducing DoomBench - Can Your Data Stack Run DOOM? What are some of your favourite developer tools? Building a Scalable Ingestion Pipeline with Temporal (Part 1) Converting shallow Git bundles into normal repositories Are you a member of any professional associations? What is a harmonic? An interactive comic about additive synthesis How Virtual Tables Work in the Itanium C++ ABI Using SwiftUI to Build a Mac-assed App in 2026 Rust (and Slint) on a jailbroken Kindle. ~jack/lambda-on-lambda - Serverless Haskell on AWS - sourcehut git Human proof for FOSS contributions Extremely simple internet radio controlled via IRC Announcing BABLR Splitting Konsole views from Helix to run tools | AksDev GitHub - yugr/rust-slides Serving files over HTTP three ways: synchronous, epoll, and io_uring update docs with information about building with build.py (#979) · astral-sh/python-build-standalone@c9c40c5 A Simple Makefile Tutorial On C extensions, portability, and alternative compilers Switching to Colemak | Pedro Alves Just How Bad Was The Intel IAPX432? Nix's Substituter List Is Not a Routing Table Accelerating copy_if using SIMD Lambda on Lambda: Serverless Haskell on AWS | Blog Announcing feed-repeat v1.0 Scaling Akvorado BMP RIB with sharding EYG news: A host of CLI improvements, new guides and new effects The social contract of writing JS Crossword C array types are weird; and related topics Flatpak will depend on systemd – OSnews Migrating from Go to Rust | corrode Rust Consulting A portentous reunion Vivado Licensing Options How my minimal, memory-safe Go rsync steers clear of vulnerabilities the entropy layer of a wavelet codec, on its own GitHub - nferhat/fht-compositor: A dynamic tiling Wayland compositor. Debian SE Linux and PinTheft Does bulk memmove speed up std::remove_if? (No.) 声明式部分更新 | Blog | Chrome for Developers Fully in-browser container builds Dianne Skoll's Web Site - Remind The Architecture of Open Source Applications (Volume 1)Berkeley DB Pardon MIE? - ironPeak Blog “Long-Term Support” doesn’t mean what you think Jira IS Turing-Complete hershey Floodgap Gopher-HTTP gateway gopher://thelambdalab.xyz/1cuneiforth/ HP QuickWeb, Singular And Pointless That one time I used Go panics for flow control A new suite of modern tools coming for editing and publishing RFCs From the Tabletop… The Digital Antiquarian Building a Host-Tuned GCC to Make GCC Compile Faster Are we self-sovereign PKI yet? Claw Patrol: an open-source security firewall for agents | Deno Revised^7 Report on Scheme, Large: Procedural Fascicle Draft is now public A Network Allow-List Won't Stop Exfiltration — André Graf From AFSK to Goertzel – µArt.cz Software For My New Home Server Introducing Neptune: Direct3D virtualization for QEMU AI Agent Bankrupted Their Operator While Trying to Scan DN42 - Lan Tian @ Blog mimalloc: A new, high-performance, scalable memory allocator for the modern era Making wl_shm fast The Soul of Maintaining a New Machine - Third Draft | Books in Progress What is Git made of?
May I recommend thinking of Emacs as your Fortress of Solitude
martinsos.co · 2026-05-24 · via Lobsters

First thing I do when I turn on my computer is open my Emacs.

What awaits me is a blank, dark purple screen with a random motivational quote on top.

scratch-buffer.webp

I will usually take a moment, enjoy the calmness of the empty canvas in front of me.

There is nothing fighting for my attention, nothing I have to react to. Just the familiar comforting view, patiently waiting for me.


#+begin_disclaimer

You might start thinking at this point, ok another stereotypical crazy Emacs user, sitting in his basement whole day writing C, browsing web with JS disabled, chatting on IRC and reading his email in his Emacs.

However, IMHO, I (and many others) am more unlike that stereotype than you might imagine!

It has been long time since I have written any C, lately it has been mostly TypeScript (ok and some Haskell I admit). I don't even code much these days! I am a founder/CTO of a startup and I spend most of my time hiring, managing, reviewing, emailing, marketing, strategizing. I have a family, small kids, a dog, hobbies (even some that are not Emacs). I read my email and browse web in Chrome, use Notion, G Suite, Discord, LLMs (not for writing though), and I never managed to get into IRC.

#+end_disclaimer



That unassuming blank canvas, inviting you to type? That is the scratch buffer.
It's there every time you start Emacs, by default. And while it may not seem like anything special, it says a lot about Emacs. No code editor I know of comes with such blank canvas. Text editors often do, but as a starting poing for a new document. Instead, in Emacs, it is just an unassuming canvas you can "scratch" on, assignment of meaning left to you.

Once in Emacs, I will usually open my daily schedule/agenda, which is only a key combo away. I hit <space> o d and in front of me is:

  • my daily checklist
  • scheduled events for today (synced from my gcalendar)
  • a list of tasks I planned for today + any from earlier days I haven't finished
  • some general notes
  • my inbox (of tasks, GTD style).
daily-agenda.webp
Figure 1: My daily agenda with a task open

Pressing e while on any task or event opens up its "page" where I can take any notes and work on it. I will also often "clock in" a task I am working on right now, tracking how long I am working on it, which I found very effective to maintain focus. Later I can also generate a report of time tracked.

At the end of the work day, I will hit <space> o c w j and write down my journal entry, just a couple of sentences reflecting on the work day.

journal.webp
Figure 2: Writing a new daily journal entry

Later in the day, I might start working on a non-trivial task.

Maybe it is a coding task, or it is a hiring strategy, or coming up with the new version of content for the landing page, or planning next sprint, or it is writing a longer, important email or Discord message.

Often, I will start with opening the task's "page" in Emacs and start writing it up and breaking it down there. I will put down what I know so far, define the requirements, collect links to the materials I have, brainstorm, create subtasks with relevant TODO statuses, put some time estimates, … .

At any moment, pressing <space> i c opens up chat with an LLM model of my choice in Emacs if I need it, with access to any open buffers ("tabs"/"docs") and whatever tools I defined for it (or whole Emacs if I decide to give it).
<space> ' opens up the terminal, and I can of course also run e.g. Claude Code or OpenCode from it.
File manager is just <space> d d away, while <space> g g opens magit, Emacs' crazy good interface for anything Git-related, all of these in the context of the current project or buffer.
If I want to focus on writing, like right now, I will hit <space> a w and only a single window will remain open, with text centered in the middle. A kind of a "Zen mode".

While doing all this, I am using the same keybindings and commands the whole time to move around, to edit text, to search, to manipulate windows, … . It's all one tightly integrated environment, smoothly flowing from one workflow to another.

sprint-planning.webp
Figure 3: Reviewing the sprint plan with LLM.

Why am I talking about my usage patterns above?

I am trying to demonstrate how Emacs goes beyond just an editor / IDE. Often you will hear that Emacs is not an editor, but an OS (operating system). I get where this comes from, but I don't think it does much favors to Emacs, as it presents it as something overly complex that you don't really need (I am already running Emacs on my OS, why would I need it to also be OS?). Or you might hear that Emacs is a "computing environment", and while I got to love that description once I got deep enough into Emacs, I don't think it does much for anybody new to it.

Instead, I would like to invite you to think of Emacs as your (digital) home base.

You might know about Superman's Fortress of Solitude. It is where he goes to recuperate, to heal, to collect his thoughts, to plan his next move. Whatever happens out there, he knows what he is coming back to, to his equipment, memorabilia, laboratory, all of it how he set it up, just for himself. His personal space, his home base, his sanctuary.

Well, Emacs is not so much different!

  • Due to how flexible and extensible it is, you can truly make it your own, personal and unique.
  • It exists outside of external events, as a piece of standalone, evergreen tech that has existed for 50y now and will likely be here for as many more, not influenced by hype or governed by a single company.
  • It gives you the space you need to collect your thoughts, to plan, to write, to build your knowledge base, to create.
  • It allows you to create your own custom tools and workflows, uniquely suited for you.

It is up to you to shape it, mold it into what you need, assign it meaning, and the guarantee you get is that you are free to do whatever you want and that it isn't going anywhere. Which is what you expect from a home (base).

This is what Emacs became to me. Emacs is my home base, my command center, my starting point and my rest stop. Feeling inspired? I will start writing/coding in Emacs. Feeling lost, overwhelmed? I can reorganize and plan it out in Emacs. Needing a fun task to relax? There is always something to configure in Emacs. Reflection? I journal and review it later in Emacs.

I feel like I haven't captured the spirit of what I am describing as well as I wanted to, but I don't know what else to add without repeating myself in one way or another. Might be that, as with many things in life, to get the point fully over, one has to experience it themselves.

When I started using Emacs, on uni, I certainly didn't look at it the way I do today. I saw it as a very cool code editor, a challenge, a choice I made as an antithesis to my brother's choice of Vim (gasp). For years following, I used it primarily as a code editor, and wasn't aware there might be more to it. The moment I really started using it as something more was when I started coding less and started managing more, since it naturally pushed me into looking for a similarly smooth experience of keyboard-driven UX but for non-coding tasks. That got me to learn more about Emacs, about Org mode, get more involved with the community, and realize the full potential Emacs has to offer.

If you are intrigued by all this and want to give it a try, I strongly suggest diving into Org mode, as one of the most popular major modes of Emacs.

Kind of like Emacs, Org mode is much more than it seems at the start. At first glance, it is just an alternative to Markdown with a couple of small extra features. In truth though, Org mode is much more: it is a foundation, a platform, that Emacs community has converged on and used it to, combined with the extensibility of Emacs itself, create an amazing suite of workflows and tools that cover a wide range of use cases.

This blog post is written in Org mode. Actually, my whole blog is implemented in Emacs (Lisp) and driven by Org mode. My whole Emacs config is written in Org mode. In Org mode, you can do presentations, literal programming (think Jupyter Notebook), use it as a productivity system (GTD and similar), a note taking system (org-roam, denote), AI chat interface (gptel), spreadsheet, Notion-like database system, … .

Emacs in the age of AI

🔗

A friend asked me recently why am I spending time configuring Emacs, when people are saying, due to agentic AI, that editors are a thing of the past and all you need is a CLI.

Whether you agree with that specific point or not, it doesn't really matter, because for me, as you know already, Emacs is not an editor, but my home base, my command center.

I would even say that with rise of generative AI, I feel even more inclined to use Emacs. It becomes a sort of a steady ground in this sea of fast paced change and constant push to try the latest tech or you will fall behind. An escape in a way, to a place where I can hear myself think, where I am enough.

Btw, with AI, it is now also easier than ever to configure your Emacs to your liking.

At the end, this post ended up as somewhat of a lover letter to Emacs. I guess it was unavoidable. Ultimatively, there is an l'art-pour-l'artistic element to Emacs, and regardless of how many people read this, I just enjoyed writing about Emacs, in my Emacs.


P.S. I wrote this post as an entry to the lovely effort of Emacs Carnival, for May 2026.

Thanks for reading till the end! If you found this interesting, check out Home for more of my writing. To learn more about my current main project, check out Wasp.

Built with care with Emacs (Org Mode).