10 interesting stories served every morning and every evening.
Computational Complexity and other fun stuff in math and computer science from Lance Fortnow and Bill Gasarch
...
Read the original on blog.computationalcomplexity.org »
New U. S laws designed to protect minors are pulling millions of adult Americans into mandatory age-verification gates to access online content, leading to backlash from users and criticism from privacy advocates that a free and open internet is at stake. Roughly half of U.S. states have enacted or are advancing laws requiring platforms — including adult content sites, online gaming services, and social media apps — to block underage users, forcing companies to screen everyone who approaches these digital gates.
“There’s a big spectrum,” said Joe Kaufmann, global head of privacy at Jumio, one of the largest digital identity-verification and authentication platforms. He explained that the patchwork of state laws vary in technical demands and compliance expectations. “The regulations are moving in many different directions at once,” he said.
Social media company Discord announced plans in February to roll out mandatory age verification globally, which the company said would rely on verification methods designed so facial analysis occurs on a user’s device and submitted data would be deleted immediately. The proposal quickly drew backlash from users concerned about having to submit selfies or government IDs to access certain features, which led Discord to delay the launch until the second half of this year.
“Let me be upfront: we knew this rollout was going to be controversial. Any time you introduce something that touches identity and verification, people are going to have strong feelings,” Discord chief technology officer and co-founder Stanislav Vishnevskiy wrote in a Feb. 24 blog post.
Websites offering adult content, gambling, or financial services often rely on full identity verification that requires scanning a government ID and matching it to a live image. But most of the verification systems powering these checkpoints — often run by specialized identity-verification vendors on behalf of websites — rely on artificial intelligence such as facial recognition and age-estimation models that analyze selfies or video to determine in seconds whether someone is old enough to access content. Social media and lower-risk services may use lighter estimation tools designed to confirm age without permanently storing detailed identity records.
Vendors say a challenge is balancing safety with how much friction users will tolerate. “We’re in the business of ensuring that you are absolutely keeping minors safe and out and able to let adults in with as little friction as possible,” said Rivka Gewirtz Little, chief growth officer at identity-verification platform Socure. Excessive data collection, she added, creates friction that users resist.
Still, many users perceive mandatory identity checks as invasive. “Having another way to be forced to provide that information is intrusive to people,” said Heidi Howard Tandy, a partner at Berger Singerman who specializes in intellectual property and internet law. Some users may attempt workarounds — including prepaid cards or alternative credentials — or turn to unauthorized distribution channels. “It’s going to cause a piracy situation,” she added.
In many implementations, verification vendors — not the websites themselves — process and retain the identity information, returning only a pass-fail signal to the platform.
Gewirtz Little said Socure does not sell verification data and that in lightweight age-estimation scenarios, where platforms use quick facial analysis or other signals rather than government documentation, the company may store little or no information. But in fuller identity-verification contexts, such as gaming and fraud prevention that require ID scans, certain adult verification records may be retained to document compliance. She said Socure can keep some adult verification data for up to three years while following applicable privacy and purging rules.
Civil liberties’ advocates warn that concentrating large volumes of identity data among a small number of verification vendors can create attractive targets for hackers and government demands. Earlier this year, Discord disclosed a data breach that exposed ID images belonging to approximately 70,000 users through a compromised third-party service, highlighting the security risks associated with storing sensitive identity information.
In addition, they warn that expanding age-verification systems represent not only a usability challenge but a structural shift in how identity becomes tied to online behavior. Age verification risks tying users’ “most sensitive and immutable data” — names, faces, birthdays, home addresses — to their online activity, according to Molly Buckley, a legislative analyst at the Electronic Frontier Foundation. “Age verification strikes at the foundation of the free and open internet,” she said.
Even when vendors promise to safeguard personal information, users ultimately rely on contractual terms they rarely read or fully understand. “There’s language in their terms-of-use policies that says if the information is requested by law enforcement, they’ll hand it over. They can’t confirm that they will always forever be the only entity who has all of this information. Everyone needs to understand that their baseline information is not something under their control,” Tandy said.
As more platforms route age checks through third-party vendors, that concentration of identity data is also creating new legal exposure for the companies that rely on them. “A company is going to have some of that information passing through their own servers,” Tandy said. “And you can’t offload that kind of liability to a third party.”
Companies can distribute risk through contracts and insurance, she said, but they remain responsible for how identity systems interact with their infrastructure. “What you can do is have really good insurance and require really good insurance from the entities that you’re contracting with,” she said.
Tandy also cautioned that retention promises can be more complex than they appear. “If they say they’re holding it for three years, that’s the minimum amount of time they’re holding it for,” she said. “I wouldn’t feel comfortable trusting a company that says, ‘We delete everything one day after three years.’ That is not going to happen,” she added.
Federal and state regulators argue that age-verification laws are primarily a response to documented harms to minors and insist the rules must operate under strict privacy and security safeguards.
An FTC spokesperson told CNBC that companies must limit how collected information is used. While age-verification technologies can help parents protect children online, the agency said firms are still bound by existing consumer protection rules governing data minimization, retention, and security. The agency pointed to existing rules requiring firms to retain personal information only as long as reasonably necessary and to safeguard its confidentiality and integrity.
...
Read the original on www.cnbc.com »
My LinkedIn and Twitter feeds are full of screenshots from the recent Forbes article on Cursor claiming that Anthropic’s $200/month Claude Code Max plan can consume $5,000 in compute. The relevant quote:
Today, that subsidization appears to be even more aggressive, with that $200 plan able to consume about $5,000 in compute, according to a different person who has seen analyses on the company’s compute spend patterns.
This is being shared as proof that Anthropic is haemorrhaging money on inference. It doesn’t survive basic scrutiny.
I’m fairly confident the Forbes sources are confusing retail API prices with actual compute costs. These are very different things.
Anthropic’s current API pricing for Opus 4.6 is $5 per million input tokens and $25 per million output tokens. At those prices, yes - a heavy Claude Code Max 20 user could rack up $5,000/month in API-equivalent usage. That maths checks out.
But API pricing is not what it costs Anthropic to serve those tokens.
The best way to estimate what inference actually costs is to look at what open-weight models of similar size are priced at on OpenRouter - where multiple providers compete on price.
Qwen 3.5 397B-A17B is a good comparison point. It’s a large MoE model, broadly comparable in architecture size to what Opus 4.6 is likely to be. Equally, so is Kimi K2.5 1T params with 32B active, which is probably approaching the upper limit of what you can efficiently serve.
Here’s what the pricing looks like:
The Qwen 3.5 397B model on OpenRouter (via Alibaba Cloud) costs _$0.39_ per million input tokens and _$2.34_ per million output tokens. Compare that to Opus 4.6′s API pricing of $5/$25. Kimi K2.5 is even cheaper at $0.45 per million input tokens and $2.25 output.
And this ratio holds for cached tokens too - DeepInfra charges $0.07/MTok for cache reads on Kimi K2.5 vs Anthropic’s $0.50/MTok.
These OpenRouter providers are running a business. They have to cover their compute costs, pay for GPUs, and make a margin. They’re not charities. If so many can serve a model of comparable size at ~10% of Anthropic’s API price and remain in business, it is hard for me to believe that they are all taking enormous losses (at ~the exact same rate range).
If a heavy Claude Code Max user consumes $5,000 worth of tokens at Anthropic’s retail API prices, and the actual compute cost is roughly 10% of that, Anthropic is looking at approximately $500 in real compute cost for the heaviest users.
That’s a loss of $300/month on the most extreme power users - not $4,800.
However, most users don’t come anywhere near the limit. Anthropic themselves said when they introduced weekly caps that fewer than 5% of subscribers would be affected. I personally use the Max 20x plan and probably consume around 50% of my weekly token budget and it’s hard to use that many tokens without getting serious RSI. At that level of usage, the maths works out to roughly break-even or profitable for Anthropic.
The real story is actually in the article. The $5,000 figure comes from Cursor’s internal analysis. And for Cursor, the number probably is roughly correct - because Cursor has to pay Anthropic’s retail API prices (or close to it) for access to Opus 4.6.
So to provide a Claude Code-equivalent experience using Opus 4.6, it would cost Cursor ~$5,000 per power user per month. But it would cost Anthropic perhaps $500 max.
And the real issue for Cursor is that developers want to use the Anthropic models, even in Cursor itself. They have real “brand awareness”, and they are genuinely better than the cheaper open weights models - for now at least. It’s a real conundrum for them.
Obviously Anthropic isn’t printing free cashflow. The costs of training frontier models, the enormous salaries required to hire top AI researchers, the multi-billion dollar compute commitments - these are genuinely massive expenses that dwarf inference costs.
But on a per-user, per-token basis for inference? I believe Anthropic is very likely profitable - potentially very profitable - on the average Claude Code subscriber.
The “AI inference is a money pit” narrative is misinformation that actually plays into the hands of the frontier labs. If everyone believes that serving tokens is wildly expensive, nobody questions the 10x+ markups on API pricing. It discourages competition and makes the moat look deeper than it is.
If you want to understand the real economics of AI inference, don’t take API prices at face value. Look at what competitive open-weight model providers charge on OpenRouter. That’s a much closer proxy for what it actually costs to run these models - and it’s a fraction of what the frontier labs charge.
...
Read the original on martinalderson.com »
WorldTaco on Iran will come too late for TrumpThe thing that everyone expected to happen has happenedSaudi Aramco warns of ‘catastrophic consequences’ if Iran war drags onGoldman pitches hedge funds on strategies to bet against corporate loansUSTaco on Iran will come too late for TrumpGoldman pitches hedge funds on strategies to bet against corporate loansFive ways the Iran war could unfoldIran is a crucial test case for the American way of warCompaniesSaudi Aramco warns of ‘catastrophic consequences’ if Iran war drags onInside one of the wildest days the oil market has ever seenTechYann LeCun’s AI start-up raises more than $1bn in Europe’s largest seed roundMarketsThe thing that everyone expected to happen has happenedSaudi Aramco warns of ‘catastrophic consequences’ if Iran war drags onInside one of the wildest days the oil market has ever seenGoldman pitches hedge funds on strategies to bet against corporate loansOpinionTaco on Iran will come too late for TrumpThe thing that everyone expected to happen has happenedIran is a crucial test case for the American way of warWork & CareersWhite men will have ‘fewer board seats’ in future, says UK diversity chair Venice’s cicchetti renaissance: where to find the city’s best bar snacksYou can turn this to your advantage if every news story has ‘tax exile’ in itLife & ArtsThe world’s most expensive properties are supercharging their securityRoy Chan can turn you into Austin ButlerCan the Renault 5 E-Tech make French cars cool again?How To Spend It
Yann LeCun’s AI start-up raises more than $1bn in Europe’s largest seed roundGet 2 months free with an annual subscription at .
Access to eight surprising articles a day, hand-picked by FT editors. For seamless reading, access content via the FT Edit page on FT.com and receive the FT Edit newsletter. per month. Complete digital access to quality FT journalism on any device. Cancel or change your plan anytime during your trial. Essential digital access to quality FT journalism on any device. Pay a year upfront and save 20%.Complete digital access to quality FT journalism with expert analysis from industry leaders. Pay a year upfront and save 20%.Check whether you already have access via your university or organisation.Discover all the plans currently available in your countrySee why over a million readers pay to read the Financial Times.Find out why
How To Spend It
...
Read the original on www.ft.com »
Background: Why I put my whole life into a single database
Back in 2019, I started collecting all kinds of metrics about my life. Every single day for the last 3 years I tracked over 100 different data types - ranging from fitness & nutrition to social life, computer usage and weather.
Ideas or suggestions?
I’d love to hear from you!
The goal of this project was to answer questions about my life, like
How does living in different cities affect other factors like fitness, productivity and happiness?
How does sleep affect my day, my fitness level, and happiness?
How does the weather, and the different seasons affect my life?
Are there any trends over the last few years?
How does computer time, work and hours in meetings affect my personal life?
Since the start of this project, I collected ~380,000 data points, with the biggest data sources being:
Naturally after I started collecting this data, I wanted to visualize what I was learning, so I created this page. Initially, the domain whereisFelix.today (now renamed to howisFelix.today) started as a joke to respond to friends asking when I’d be back in NYC or San Francisco. Rather than send them my schedule, I’d point them to this domain. However, now it’s more than my location: it’s all of me.
Use a single database, owned and hosted by me, with all the data I’ve collected over the years
Be able to easily add and remove questions on the fly, as I learn what’s beneficial to track
Full control of how the data is visualized
Works well for frequent flyers with mixed time zones
I selected 48 graphs to show publicly on this page. For privacy reasons, and to prevent any accidental data leaks, the graphs below are snapshots taken on a given day.
Visualization of the number of data entries in FxLifeSheet over the last 10 years, and where the data came from.
Initially (2014) the only data used was RescueTime and Foursquare Swarm location data
Once I started the FxLifeSheet project in April 2019, I manually tracked , ranging from mood, sleep, social life, to fitness data
I was able to retrospectively fetch the historic weather data based on my location on a given day
I also implemented other import sources, like fetching my historic weight and the number of steps from Apple Health
Days tracked my Mood to be Happy & Excited
On days where I tracked my mood to be “happy” & “excited”, the following other factors of my life were affected
50% more likely to have pushed my comfort zone
44% more likely to have meditated that day
33% more excited about what’s ahead in the future
31% more likely to drink alcohol that day (parties, good friends and such)
28% more time spent reading or listening to audio books
26% more likely to have worked on interesting technical challenges
20% more likely to have learned something new that day
45% less time spent in video & audio calls that day
All flights taken within the last 7 years, tracked using Foursquare Swarm, analyzed by JetLovers.
The stats clearly show the impact of COVID starting 2020
Sunday has been my “commute” day, flying between San Francisco, New York City and Vienna
All flights taken within the last 7 years, tracked using Foursquare Swarm, analyzed by JetLovers.
Frankfurt - Vienna was the flight connecting me with most US airports
Germany is high up on the list due to layovers, even though I didn’t spend actually much time there
Inspired by Your Life in Weeks by WaitButWhy, I use Google Sheets to visualize every week of my life, with little notes on what city/country I was in, and other life events that have happened.
The first 14 years I didn’t really get much done
I can highly recommend taking a few weeks (or even months) off between jobs (if you have the possibility)
Shades of blue indicate my full-time employments
You can create your own version using my template
Average daily steps measured through the iPhone’s Apple Health app. I decided against using SmartWatch data for steps, as SmartWatches have changed over the last 8 years.
I walked a total of steps over last 8 years
I walk more than twice as much when I’m in New York, compared to any other city
In NYC I had the general rule of thumb to walk instead of taking public transit whenever it’s less than 40 minutes. I used that time to call friends & family, or listen to audio books
Although Vienna is very walkable, the excellent public transit system with subway trains coming every 3-5 minutes, has caused me to walk less
San Francisco was always scary to walk
This graph clearly shows the correlation between my body weight and my sleeping/resting heart rate. The resting heart rate is measured by the Withings ScanWatch while sleeping, and indicates how hard your heart has to work while not being active. Generally the lower the resting heart rate, the better.
I started my lean bulk (controlled weight gain combined with 5 workouts a week) in August 2020
My resting heart rate went from 58bpm to 67bpm () from August 2020 to March 2021 with a weight gain of (+19lbs) as part of a controlled lean-bulk combined with a 5-day/week workout routine
The spike in resting heart rate in July & August 2021 was due to bars and nightclubs opening up again in Austria
After a night of drinking, my resting/sleeping heart rate was about 50% higher than after a night without any alcohol
The spike in resting heart rate in Oct/Nov/Dec 2021 was due to having bronchitis and a cold/flu, not getting correct treatment early enough
How healthy have I been over the Years?
Every day I answered the question on how healthy I felt. In the graph, the yellow color indicates that I felt a little under the weather, not sick per se. Red means I was sick and had to stay home. Green means I felt energized and healthy.
During the COVID lockdowns I tended to stay healthier. This may be due to not going out, no heavy drinking, less close contact with others, etc. which resulted in me having better sleep.
Usually during excessive traveling I get sick (cold/flu)
Q4 2021 I had bronchitis, however, I didn’t know about it at the time and didn’t get proper treatment
Overall I’m quite prone to getting sick (cold/flu)
Days with more than 4 Alcoholic Drinks
On days where I had more than 4 alcoholic beverages (meaning I was partying), the following other factors were affected
21x more likely to dance
80% more likely to take a nap the day of, or the day after
40% warmer temperatures, and 40% less precipitation. There weren’t many opportunities for parties in Winter due to lockdowns in the last 2 years. Also, people are more motivated to go out when it’s nice outside.
My FxLifeSheet bot asks me 4 times a day how I’m feeling at the moment.
This graph groups the entries by month, and shows the % of entries for each value (0 - 5) with 5 being very excited, and 0 being worried.
I designed the ranges so that 0 or 5 are not entered as much. 0 is rendered as dark green at the top, whereas 5 is rendered as light green at the bottom.
For privacy reasons I won’t get into some of the details on why certain months were worse than others.
Every Swarm check-in over the last 7 years visualized on a map, including the actual trip (flight, drive, etc.)
Every Swarm check-in over the last 7 years visualized, zoomed in
Each time I did a check-in at a place (e.g. Coffee, Restaurant, Airport, Gym) on Foursquare Swarm at a given city, this is tracked as a single entry.
Each check-in at a given city is counted as a single entry, grouped by years
2018 and 2019 I lived in New York City
The longer it’s been since I moved away from Austria, the more time I actually spent back home in Austria for visits and vacations
2020 clearly shows the impact of COVID
Each check-in at a given category is tracked, and summed up over the last years
In 2020 and 2021, check-ins at Offices went down to zero due to COVID, and a distributed work setup
Airports being the #4 most visited category was a surprise, but is accurate. A total of 403 airport check-ins, whereas a flight with a layover would count as 3 airport check-ins
Earlier in my life, I didn’t always check into ‘commute’ places like public transit and super markets
Number of Foursquare Swarm check-ins on each quarter over the last 10 years. I didn’t use Foursquare Swarm as seriously before 2015. Once I moved to San Francisco in Q3 2015 I started my habit of checking into every point of interest (POI) I visit.
Q3 2015 I moved to San Francisco, however I couldn’t use Swarm yet, since my move was a secret until the official announced at the Twitter Flight conference
Q2 2020 clearly shows the impact of COVID with Q3 already being open in Austria
Q3 2021 the vaccine was already widely available and I was able to travel/visit more again
My time in New York was the most active when it comes to check-ins. When I’m in NYC, I tend to eat/drink out more, and grab to-go food, which I do way less in Vienna
Every Swarm check-in visualized on a map. Only areas where I’ve had multiple check-ins are rendered.
Number of days per year that I’ve spent in full lockdown, meaning restaurants, bars and non-essential stores were closed.
I escaped parts of the Austrian lockdown by spending time in the US when I was already vaccinated
Surprisingly 2021 I spent more days in a full lockdown than in 2020, even with vaccines available
How was my life affected by the recent COVID lockdowns? As lockdown day I classify every day where places like restaurants, gyms and non-essential stores were closed.
200% more time spent in audio & video calls with friends (non-work related)
60% more likely to follow my meal plan (macros & calories)
50% colder temperatures: Lockdowns tended to happen in Autumn and Winter
100% less likely to dance
Alcoholic drinks per day. Days with no data are rendered as white
Friday and Saturday nights are clearly visible on those graphs
2021 and summer/winter of 2019 also show the Wednesday night party in Vienna
Q2 and Q4 2020 clearly show the COVID lockdowns, as well as Q2 2021
Summer of 2021 all bars and dance clubs were open in Vienna
...
Read the original on howisfelix.today »
After you’ve reviewed these contribution guidelines, you’ll be all set to
contribute to this project.
Loading
...
Read the original on gitlab.redox-os.org »
I’ve been maintaining Emacs Solo
for a while now, and I think it’s time to talk about what happened in this latest cycle as the project reaches its two-year mark.
For those who haven’t seen it before, Emacs Solo is my daily-driver Emacs configuration with one strict rule: no external packages. Everything is either built into Emacs or written from scratch by me in the lisp/ directory. No package-install, no straight.el, no
use-package :ensure t pointing at ELPA or MELPA. Just Emacs and Elisp. I’m keeping this post text only, but if you’d like to check how
Emacs Solo looks and feels, the repository has screenshots and more details.
Why? Partly because I wanted to understand what Emacs actually gives you out of the box. Partly because I wanted my config to survive without breakage across Emacs releases. Partly because I was tired of dealing with package repositories, mirrors going down in the middle of the workday, native compilation hiccups, and the inevitable downtime when something changed somewhere upstream and my job suddenly became debugging my very long (at the time) config instead of doing actual work. And partly, honestly, because it’s a lot of fun!
This post covers the recent refactor, walks through every section of the core config, introduces all 35 self-contained extra modules I’ve written, and shares some thoughts on what I’ve learned.
Now, I’ll be the first to admit: this config is long. But there’s a principle behind it. I only add features when they are not already in Emacs core, and when I do, I try to build them myself. That means the code is sketchy sometimes, sure, but it’s in my control. I wrote it, I understand it, and when it breaks, I know exactly where to look. The refactor I’m about to describe makes this distinction crystal clear: what is “Emacs core being tweaked” versus what is “a really hacky outsider I built in because I didn’t want to live without it”.
The single biggest change in this cycle was architectural. Emacs Solo used to be one big init.el with everything crammed together. That worked, but it had problems:
— It was hard to navigate (even with outline-mode)
— If someone wanted just one piece, say my Eshell config or my VC extensions, they had to dig through thousands of lines
— It was difficult to tell where “configuring built-in Emacs” ended and “my own hacky reimplementations” began
The solution was clean and simple: split the config into two layers.
This file configures only built-in Emacs packages and features. Every
use-package block in here has :ensure nil, because it’s pointing at something that ships with Emacs. This is pure, standard Emacs customization.
The idea is that anyone can read init.el, find a section they like, and
copy-paste it directly into their own config. No dependencies. No setup. It just works, because it’s configuring things Emacs already has.
These are my own implementations: replacements for popular external packages, reimagined as small, focused Elisp files. Each one is a proper provide/require module. They live under lisp/ and are loaded at the bottom of init.el via a simple block:
If you don’t want one of them, just comment out the require line. If you want to use one in your own config, just copy the .el file into your own lisp/ directory and require it. That’s it.
This separation made the whole project dramatically easier to maintain, understand, and share.
The init.el file is organized into clearly labeled sections (using outline-mode-friendly headers, so you can fold and navigate them inside Emacs). Here’s every built-in package and feature it touches, and why.
The emacs use-package block is the largest single section. It sets up sensible defaults that most people would want:
— Window layout commands bound under C-x w (these are upcoming
Emacs 31 features: window-layout-transpose,
window-layout-rotate-clockwise, window-layout-flip-leftright,
window-layout-flip-topdown)
— Disabling C-z (suspend) because accidentally suspending Emacs in a terminal is never fun
— Sensible file handling: backups and auto-saves in a cache/
directory, recentf for recent files, clean buffer naming with
uniquify
— Tree-sitter auto-install and auto-mode (treesit-auto-install-grammar t and treesit-enabled-modes t, both Emacs 31)
— delete-pair-push-mark, kill-region-dwim, ibuffer-human-readable-size, all the small quality-of-life settings coming in Emacs 31
A full abbrev-mode setup with a custom placeholder system. You define abbreviations with ###1###, ###2### markers, and when the abbreviation expands, it prompts you to fill in each placeholder interactively. The ###@### marker tells it where to leave point after expansion. I wrote a whole article about it.
Configures auth-source to use ~/.authinfo.gpg for credential storage. Simple but essential if you use Gnus, ERC, or any network-facing Emacs feature.
Makes buffers automatically refresh when files change on disk. Essential for any Git workflow.
Configuration file mode settings and a compilation-mode setup with ANSI color support, so compiler output actually looks readable.
Custom window management beyond the defaults, because Emacs window management out of the box is powerful but needs a little nudging.
Tab-bar configuration for workspace management. Emacs has had tabs since version 27, and they’re genuinely useful once you configure them properly.
Two IRC clients, both built into Emacs, both configured. ERC gets the bigger treatment: logging, scrolltobottom, fill, match highlighting, and even inline image support (via one of the extra modules). The Emacs 31 cycle brought nice improvements here too, including a fix for the scrolltobottom/fill-wrap dependency issue.
This is where Emacs Solo’s completion story lives. Instead of reaching for Vertico, Consult, or Helm, I use icomplete-vertical-mode, which is built into Emacs. With the right settings it’s surprisingly capable:
I’ve also been contributing patches upstream to improve icomplete’s vertical rendering with prefix indicators. Some of those features are already landing in Emacs 31, which means the polyfill code I carry today will eventually become unnecessary.
A heavily customized Dired setup. Custom listing switches, human readable sizes, integration with system openers (open on macOS,
xdg-open on Linux), and the dired-hide-details-hide-absolute-location
option from Emacs 31.
Writable Dired, so you can rename files by editing the buffer directly.
This one I’m particularly proud of. Emacs Solo’s Eshell configuration includes:
— Shared history across all Eshell buffers: Every Eshell instance reads from and writes to a merged history, so you never lose a command just because you ran it in a different buffer
— Custom prompts: Multiple prompt styles you can toggle between with C-c t (full vs. minimal) and C-c T (lighter vs. heavier full prompt)
This is one of the largest sections and one I’m most invested in. Emacs’s built-in vc is an incredible piece of software that most people overlook in favor of Magit. I’m not saying it replaces Magit entirely, but with the right configuration it covers 95% of daily Git operations:
— Git add/reset from vc-dir: S to stage, U to unstage, directly in the vc-dir buffer. Admittedly, I almost never use this because I’m now used to the Emacs-style VC workflow: C-x v D or C-x v =, then killing what I don’t want, splitting what isn’t ready yet, and finishing with C-c C-c. Amending with C-c C-e is awesome. Still useful once or twice a semester.
— Browse remote: C-x v B opens your repository on GitHub/GitLab in a browser; with a prefix argument it jumps to the current file and line
— Jump to current hunk: C-x v = opens the diff buffer scrolled to the hunk containing your current line
— Switch between modified files: C-x C-g lets you
completing-read through all modified/untracked files in the current repo
Merge conflict resolution and diff viewing. Ediff configured to split windows sanely (side by side, not in a new frame).
Documentation at point, with eldoc-help-at-pt (Emacs 31) for showing docs automatically.
The LSP client that ships with Emacs. Configured with:
— Custom server programs, including rassumfrassum for multiplexing TypeScript + ESLint + Tailwind (I wrote a whole post
about that)
— Keybindings under C-c l for code actions, rename, format, and inlay hints
— Automatic enabling for all prog-mode buffers except
emacs-lisp-mode and lisp-mode
Diagnostics, spell checking, and whitespace visualization. All built-in, all configured.
The Emacs newsreader and email client. Configured for IMAP/SMTP usage.
RSS/Atom feed reader built into Emacs. Customized with some extras I build my self for dealing with youtube feeds: thumbnail, transcripts, sending to AI for a quick summary, and so on.
Org-mode configuration, because of course.
File tree navigation in a side window. With Emacs 31, speedbar gained speedbar-window support, so it can live inside your existing frame instead of spawning a new one.
Buffer name disambiguation when you have multiple files with the same name open.
Quick web searches from the minibuffer. Configured with useful search engines.
Specific configurations for every language I work with, organized into three areas:
Common Lisp: inferior-lisp and lisp-mode with custom REPL interaction, evaluation commands, and a poor man’s SLIME/SLY setup that actually works quite well for basic Common Lisp development.
Non-Tree-sitter: sass-mode for when tree-sitter grammars aren’t available.
Tree-sitter modes: ruby-ts-mode, js-ts-mode,
json-ts-mode, typescript-ts-mode, bash-ts-mode,
rust-ts-mode, toml-ts-mode, markdown-ts-mode (Emacs 31),
yaml-ts-mode, dockerfile-ts-mode, go-ts-mode. Each one configured with tree-sitter grammar sources (which Emacs 31 is starting to define internally, so those definitions will eventually become unnecessary).
This is where the fun really is. Each of these is a complete, standalone Elisp file that reimplements functionality you’d normally get from an external package. They’re all in lisp/ and can be used independently.
I call them “hacky reimplementations” in the spirit of Emacs Solo: they’re not trying to be feature-complete replacements for their MELPA counterparts. They’re trying to be small, understandable,
and good enough for daily use while keeping the config self-contained.
Custom color themes based on Modus. Provides several theme variants: Catppuccin Mocha, Crafters (the default), Matrix, and GITS. All built on top of Emacs’s built-in Modus themes by overriding faces, so you get the accessibility and completeness of Modus with different aesthetics.
Custom mode-line format and configuration. A hand-crafted mode-line that shows exactly what I want: buffer state indicators, file name, major mode, Git branch, line/column, and nothing else. No doom-modeline, no telephone-line, just format strings and faces.
Enhanced navigation and window movement commands. Extra commands for moving between windows, resizing splits, and navigating buffers more efficiently.
Configurable format-on-save with a formatter registry. You register formatters by file extension (e.g., prettier for .tsx,
black for .py), and the module automatically hooks into
after-save-hook to format the buffer. All controllable via a
defcustom, so you can toggle it on and off globally.
Frame transparency for GUI and terminal. Toggle transparency on your Emacs frame. Works on both graphical and terminal Emacs, using the appropriate mechanism for each.
Sync shell PATH into Emacs. The classic macOS problem: GUI Emacs doesn’t inherit your shell’s PATH. This module solves it the same way exec-path-from-shell does, but in about 20 lines instead of a full package.
Rainbow coloring for matching delimiters. Colorizes nested parentheses, brackets, and braces in different colors so you can visually match nesting levels. Essential for any Lisp, and helpful everywhere else.
Interactive project finder and switcher. A completing-read
interface for finding and switching between projects, building on Emacs’s built-in project.el.
Vim-like keybindings and text objects for Viper. If you use Emacs’s built-in viper-mode (the Vim emulation layer), this extends it with text objects and additional Vim-like commands. No Evil needed.
Highlight TODO and similar keywords in comments. Makes TODO,
FIXME, HACK, NOTE, and similar keywords stand out in source code comments with distinctive faces. A small thing that makes a big difference.
Git diff gutter indicators in buffers. Shows added, modified, and deleted line indicators in the margin, like diff-hl or
git-gutter. Pure Elisp, using vc-git under the hood.
Quick window switching with labels. When you have three or more windows, this overlays single-character labels on each window so you can jump to any one with a single keystroke. A minimal reimplementation of the popular ace-window package.
Centered document layout mode. Centers your text in the window with wide margins, like olivetti-mode. Great for prose writing, Org documents, or any time you want a distraction-free centered layout.
Upload text and files to 0x0.st. Select a region or a file and upload it to the 0x0.st paste service. The URL is copied to your kill ring. Quick and useful for sharing snippets.
Edit files as root via TRAMP. Reopen the current file with root privileges using TRAMP’s /sudo:: prefix. A reimplementation of the
...
Read the original on www.rahuljuliato.com »
I’m sometimes late to notice new and terrible things about macOS 26 Tahoe, because I use it only for testing, on a secondary Mac. My main Mac remains on Sequoia, as enforced by Little Snitch. I was of course aware that app windows on Tahoe have exaggerated corner radiuses, but I was unaware until now that the window corner radius on Tahoe is not uniform: different windows can have different corner radiuses!
Below is a TextEdit window on Tahoe.
And below is a Calculator window in front of the TextEdit window. Notice the corners of the TextEdit window sticking out!
What accounts for the difference? A toolbar in the window.
In a new Mac app Xcode project, the main window has a less exaggerated corner radius by default, like TextEdit.
When I add a toolbar to the window, the corner radius automatically becomes more exaggerated, like Calculator.
Apparently the corner radius also changes on Tahoe for some other window elements, such as a sidebar.
If this isn’t the stupidest user interface “feature” ever invented, I don’t know what is. The Mac used to be famous for consistency; now it’s becoming infamous for inconsistency.
By the way, Tahoe’s UI changes are perplexing not only for Apple users but also for Apple engineers. Here’s a bug fix from the open source WebKit browser engine powering Safari: [macOS] Scroll bars of root scroller may be cutoff due to corner radii of window.
See my follow-up post The evolution of Mac app window corners.
...
Read the original on lapcatsoftware.com »
Ce blog traite d’éducation, d’enseignement supérieur, du Limousin et du Périgord, de Nantes et alentours, de société, de ce que nous lisons, il pose des questions, attend des réponses, informe. Espérons que personne ne dira “quoras auras-tu’chabat de platussar ?” quand auras-tu fini de faire du blablaware ? “When will you stop quacking?” (blog joint :http://quoras-tu-chabat.hautetfort.com/)
...
Read the original on lefenetrou.blogspot.com »
To add this web app to your iOS home screen tap the share button and select "Add to the Home Screen".
10HN is also available as an iOS App
If you visit 10HN only rarely, check out the the best articles from the past week.
If you like 10HN please leave feedback and share
Visit pancik.com for more.