Search Ideas
Maybe fun = profitable thought. Not in the sense of ‘thought that leads to good monetary decisions’. I mean it in the literal sense that there’s a kind of wealth being created inside your mind.
Maybe fun = profitable thinking. Not in the sense of ‘thoughts that lead to good monetary decisions’. I mean it in the literal sense that there’s wealth being created inside your mind.
Idea: ability to lock an idea to prevent edits. If you submit the first version, you get to lock the idea. Useful especially on your own profile that you might use as more of a blog and don’t necessarily want others changing your ideas.
web-haptics: Haptic Feedback Finally Comes to iOS Safari
lochie just published a package bringing haptic feedback to the web on iOS: web-haptics. I spent four years at Apple working mostly on UIs, so I pay close attention to design and UX. In terms of presentation, use case, and attention to detail, this package comes as close to perfect as I’ve seen.
The problem
On Android, haptics have been available through navigator.vibrate(), but iOS does not support this API. There is a workaround, though – the input element with the switch attribute:
<input type="checkbox" switch>
See this switch input in action here. On iOS, the input renders not as a regular checkbox but as a switch that can be toggled on or off:

Open the link on your iPhone, tap the switch, and you’ll feel haptic feedback. As far as I know, this is currently the only known practical workaround to trigger haptic feedback on the web in iOS.
Implementation
lochie cleverly bases his package on this single workaround and pushes it to its limits. The key lines are here, creating a switch input on the fly:
javascriptconst hapticCheckbox = document.createElement("input");hapticCheckbox.type = "checkbox";hapticCheckbox.setAttribute("switch", "");
The package also creates an associated label and clicks it to trigger haptic feedback on the connected input:
javascriptthis.hapticLabel.click();
(My understanding is that iOS will not trigger the haptic feedback when the input is programmatically clicked – so the ‘workaround within the workaround’ is to click the associated label instead.)
Custom haptics (!)
But web-haptics can do more than just trigger a single haptic ‘pulse’. The trigger function lets you pass in your own patterns with pulses of different duration and intensity, and even delays.
Want a simple success haptic? Trigger two pulses, as shown on the package homepage:
javascripttrigger([{ duration: 30 },{ delay: 60, duration: 40, intensity: 1 },])
Or simply call trigger('success') as a shortcut.
Here’s an error haptic I made based on Apple’s human interface guidelines:
trigger([{ duration: 40, intensity: 0.7 },{ delay: 40, duration: 40, intensity: 0.7 },{ delay: 40, duration: 40, intensity: 0.9 },{ delay: 40, duration: 50, intensity: 0.6 },])
lochie’s website even gives you an editor to make custom haptics. As you click and drag, both pulses and code update in real time. This experience is developer bliss:

Usage
Importing the package is easy. In Rails, for example:
# config/importmap.rbpin "web-haptics", to: "https://esm.sh/web-haptics@0.0.6"
import { WebHaptics } from 'web-haptics';// In a Stimulus controller somewherelet haptics = new WebHaptics();haptics.trigger('success'); // or 'error', 'warning', etc for built-in hapticshaptics.trigger([{ duration: 40, intensity: 0.7 },{ delay: 40, duration: 40, intensity: 0.7 },])
Pass a debug option to the constructor to hear clicks in development/on desktop:
new WebHaptics({ debug: true });
Again, this package comes as close to perfect as I’ve seen. In fact, I already use it on Veritula: as you type in a text field, an error haptic plays when you exceed the max length (#4473).
I highly recommend web-haptics by lochie.
web-haptics: Haptic Feedback Finally Comes to iOS Safari
lochie just published a package bringing haptic feedback to the web: web-haptics. I spent four years at Apple working mostly on UIs, so I pay close attention to design and UX. In terms of presentation, use case, and attention to detail, this package comes as close to perfect as I’ve seen.
The problem
On Android, haptics have been available through navigator.vibrate(), but iOS does not support this API. There is a workaround, though – the input element with the switch attribute:
<input type="checkbox" switch>
See this switch input in action here. On iOS, the input renders not as a regular checkbox but as a switch that can be toggled on or off:

Open the link on your iPhone, tap the switch, and you’ll feel haptic feedback. As far as I know, this is currently the only known practical workaround to trigger haptic feedback on the web in iOS.
Implementation
lochie cleverly bases his package on this single workaround and pushes it to its limits. The key lines are here, creating a switch input on the fly:
javascriptconst hapticCheckbox = document.createElement("input");hapticCheckbox.type = "checkbox";hapticCheckbox.setAttribute("switch", "");
The package also creates an associated label and clicks it to trigger haptic feedback on the connected input:
javascriptthis.hapticLabel.click();
(My understanding is that iOS will not trigger the haptic feedback when the input is programmatically clicked – so the ‘workaround within the workaround’ is to click the associated label instead.)
Custom haptics (!)
But web-haptics can do more than just trigger a single haptic ‘pulse’. The trigger function lets you pass in your own patterns with pulses of different duration and intensity, and even delays.
Want a simple success haptic? Trigger two pulses, as shown on the package homepage:
javascripttrigger([{ duration: 30 },{ delay: 60, duration: 40, intensity: 1 },])
Or simply call trigger('success') as a shortcut.
Here’s an error haptic I made based on Apple’s human interface guidelines:
trigger([{ duration: 40, intensity: 0.7 },{ delay: 40, duration: 40, intensity: 0.7 },{ delay: 40, duration: 40, intensity: 0.9 },{ delay: 40, duration: 50, intensity: 0.6 },])
lochie’s website even gives you an editor to make custom haptics. As you click and drag, both pulses and code update in real time. This experience is developer bliss:

Usage
Importing the package is easy. In Rails, for example:
# config/importmap.rbpin "web-haptics", to: "https://esm.sh/web-haptics@0.0.6"
import { WebHaptics } from 'web-haptics';// In a Stimulus controller somewherelet haptics = new WebHaptics();haptics.trigger('success'); // or 'error', 'warning', etc for built-in hapticshaptics.trigger([{ duration: 40, intensity: 0.7 },{ delay: 40, duration: 40, intensity: 0.7 },])
Pass a debug option to the constructor to hear clicks in development/on desktop:
new WebHaptics({ debug: true });
Again, this package comes as close to perfect as I’ve seen. In fact, I already use it on Veritula: as you type in a text field, an error haptic plays when you exceed the max length (#4473).
I highly recommend web-haptics by lochie.
web-haptics: Haptic Feedback Finally Comes to iOS Safari
lochie just published a package bringing haptic feedback to the web: ‘web-haptics’. I spent four years at Apple working mostly on UIs, so I pay close attention to design and UX. In terms of presentation, use case, and attention to detail, this package comes as close to perfect as I’ve seen.
The problem
On Android, haptics have been available through navigator.vibrate(), but iOS does not support this API. There is a workaround, though – the input element with the switch attribute:
<input type="checkbox" switch>
See this switch input in action here. On iOS, the input renders not as a regular checkbox but as a switch that can be toggled on or off:

Open the link on your iPhone, tap the switch, and you’ll feel haptic feedback. As far as I know, this is currently the only known practical workaround to trigger haptic feedback on the web in iOS.
Implementation
lochie cleverly bases his package on this single workaround and pushes it to its limits. The key lines are here, creating a switch input on the fly:
javascriptconst hapticCheckbox = document.createElement("input");hapticCheckbox.type = "checkbox";hapticCheckbox.setAttribute("switch", "");
The package also creates an associated label and clicks it to trigger haptic feedback on the connected input:
javascriptthis.hapticLabel.click();
(My understanding is that iOS will not trigger the haptic feedback when the input is programmatically clicked – so the ‘workaround within the workaround’ is to click the associated label instead.)
Custom haptics (!)
But web-haptics can do more than just trigger a single haptic ‘pulse’. The trigger function lets you pass in your own patterns with pulses of different duration and intensity, and even delays.
Want a simple success haptic? Trigger two pulses, as shown on the package homepage:
javascripttrigger([{ duration: 30 },{ delay: 60, duration: 40, intensity: 1 },])
Or simply call trigger('success') as a shortcut.
Here’s an error haptic I made based on Apple’s human interface guidelines:
trigger([{ duration: 40, intensity: 0.7 },{ delay: 40, duration: 40, intensity: 0.7 },{ delay: 40, duration: 40, intensity: 0.9 },{ delay: 40, duration: 50, intensity: 0.6 },])
lochie’s website even gives you an editor to make custom haptics. As you click and drag, both pulses and code update in real time. This experience is developer bliss:

Usage
Importing the package is easy. In Rails, for example:
# config/importmap.rbpin "web-haptics", to: "https://esm.sh/web-haptics@0.0.6"
import { WebHaptics } from 'web-haptics';// In a Stimulus controller somewherelet haptics = new WebHaptics();haptics.trigger('success'); // or 'error', 'warning', etc for built-in hapticshaptics.trigger([{ duration: 40, intensity: 0.7 },{ delay: 40, duration: 40, intensity: 0.7 },])
Pass a debug option to the constructor to hear clicks in development/on desktop:
new WebHaptics({ debug: true });
Again, this package comes as close to perfect as I’ve seen. In fact, I already use it on Veritula: as you type in a text field, an error haptic plays when you exceed the max length (#4473).
I highly recommend web-haptics by lochie.
Users can now pick a custom @username.
I just changed mine from @dennis-hackethal* to @dennis.hackethal. (Period instead of hyphen.) Old profile links are automatically redirected. Old @mentions have an asterisk and explain the change on hover while linking to the updated URL.
@usernames used to be assigned automatically based on a user’s first and last name. Now, users can choose.
To change your @username, go to Settings.
Users can now pick a custom @username.
I just changed mine to @dennis.hackethal. (Period instead of hyphen.) Old profile links are automatically redirected. Old @mentions are automatically updated.
@usernames used to be assigned automatically based on a user’s first and last name. Now, users have more choice.
To change your @username, go to Settings.
5 Minute Creativity
TL;DR: When making a decision or working to solve a problem, spend 5 minutes (using a timer) just coming up with ideas. Managing your attention like this can supercharge your creativity.
A few days ago I was helping a friend flesh out an idea for an app that he is developing in his spare time. We came up with a new feature that we were both excited about, and we spent a few minutes going over how much more useful and fun the app was going to be with this new feature.
But in the spirit of philosopher Karl Popper, I asked my friend: "Is there anything wrong with this new feature idea?"
He spent about two seconds considering the question, before confidently answering "No!"
This took me by surprise. Somehow he had come to think that if a problem didn't jump out at him within the first two seconds of looking for problems, then for him the idea mustn't have any problems.*
I took some time later in the day to reflect on that moment. My first thought was about how irrational he was to have spent so little effort trying to poke holes in this new feature idea. After all, he was getting ready to spend hours of his valuable time bringing this new feature into reality. If he had just spent one minute thinking about what could be wrong with the new idea, and in that minute he discovered a fatal flaw in it, it might've saved him hundreds of minutes of wasted work over the next few weeks! Silly guy! Lucky he had me there to save him!
But then I thought about it some more, and realised that maybe I'm not actually that different to him. In many aspects of my daily life, I don't consciously give myself a meaningful amount of time to come up with new ideas or criticisms for the things I want to do. Many of my choices are kind of uncreative—I simply do the first thing that pops into my mind, in much the same way my friend decided there was nothing wrong with the new feature idea; because that was the first thing that popped into his mind.
I did some e-sleuthing around this thought and found On Creativity - The joys of 5 minute timers by Neel Nanda. It suggests literally using timers to make sure we spend meaningful time thinking about the things that matter. It might be worth reading if you identify at all with anything I have just said.
My favourite part of the article is this:
Set a 5 minute timer, and make a list of problems in your life - things that annoy you, things you want to work on, things that could be better. And then, go through that list, and cross off any you’re confident you’ve spent at least 5 minutes of focused time trying to solve. If you’re anything like me, you’ll have an embarrassingly long list left over. I’d be pretty curious about what happens if you try doing a 5 minute brainstorm for anything left.
I also found Nate Soares blogposts talking about using this approach (I’m guessing the Neel Nanda article was at least partly inspired by Nate Soares).
In 'Obvious advice', Nate Soares writes:
When you're about to make a big decision, pause, and ask yourself what obvious things a reasonable person would do before making this sort of decision. Would they spend a full five minutes (by the clock) brainstorming alternative options before settling on a decision? Would they consult with friends and advisors? Would they do some particular type of research?
Then, actually do the obvious things.
In 'Be a new homunculus', Nate Soares writes:
Notice the guilt, listen to the message it bears, and actually write down the behavioral pattern that you wish to change. Then spend five minutes (a full five minutes, by the clock) brainstorming ways that you might change the pattern and start retraining your mind.
I think if I dedicated 5 minutes each week to thinking about all the things I could do that week, I would come up with a lot of stuff. Some of those ideas would suck, but some of them would probably be a lot more useful and interesting than whatever I would’ve done otherwise that week if I hadn't spent 5 minutes exclusively thinking about it. I might even start using 5 minute timers each morning to decide what I want to do that day. Time to explore.
It's worth mentioning that 5 minutes is just a nice round number to get started with. Some problems merit more dedicated time, and others less. If you are considering using a smaller number of minutes, I urge you to keep in mind why it is you're doing this in the first place—you're intentionally giving yourself more time to think than you would give yourself naturally. This is about experimenting with a new thinking pattern, so consider allowing yourself to feel some amount of boredom or friction when you are first trying it, rather than cutting the 5 minutes shorter. (The boredom may also be a sign that the problem isn't worth 5 minutes of your time, in which case... find a different problem!)
Let me know what you think about all this. Going forward, I expect to be using timers for a lot more than just cooking!
*Needless to say, I suggested he spend a little longer thinking about it before he added the feature to his plans. In less than a couple minutes, he found three or four legit problems that would need to be addressed before the feature would merit inclusion in the project. Yay Popper!
I would prefer to find out I was reading an outdated version of something before I started reading it, not at the end, and not in the comments.
I did some e-sleuthing around this thought and found On Creativity - The joys of 5 minute timers by Neel Nanda. …
My favourite part of the article is this:
I noticed a slight inconsistency here. You give exact links for each quote (by “exact” I mean links to highlighted passages) except this one, where you link to the article as a whole. If you turn the word “part” into a link to the passage, you’ll have perfect quoting consistency.
Here’s the exact link: https://www.lesswrong.com/posts/FHiM34PmrN224pqTz/on-creativity-the-joys-of-5-minute-timers#:~:text=Set%20a%205%20minute%20timer%2C%20and,5%20minute%20brainstorm%20for%20anything%20left.
It’s nice that you give exact links. Makes verification easier for readers.
But there’s no indication that the current version has been superseded.
…the site should let [visitors] know if there is a superseding revised version of [an idea].
There are arrow buttons linking to the previous and next version, and the UI says which version you’re currently looking at.
I first want to see some more people posting to their profiles so there’ll be enough ideas to show in that tab.
Both ideas are about working toward a universal theory of creation by studying parallels between mind and economy.
Pretty close!
🦉 = wisdom / focus / attention
🐚 = the fractal, recursive aspects of life, particularly in epistemology / striving towards "inward infinities"
🕯️ = this / having "the lights on" (being sentient, as opposed to being a philosophical zombie or a mindless animal)
🚀 = progress / striving towards "outward infinities" / let's colonise the galaxy!
I realise I don't have any overtly moral emojis in that set. But maybe that is fine.
Suggestion: Make italicised text the same colour as regular text.
Bold text is good in red. Italicised text is less legible, and the red compounds that.
This would also create more of a differentiation of emphasis between bold and italicised text.
I'm struggling to understand how this ties in with your original post about common preferences.
5 Minute Creativity
TL;DR: When making a decision or working to solve a problem, spend 5 minutes (using a timer) just coming up with ideas. Managing your attention like this can supercharge your creativity.
A few days ago I was helping a friend flesh out an idea for an app that he is developing in his spare time. We came up with a new feature that we were both excited about, and we spent a few minutes going over how much more useful and fun the app was going to be with this new feature.
But in the spirit of philosopher Karl Popper, I asked my friend: "Is there anything wrong with this new feature idea?"
He spent about two seconds considering the question, before confidently answering "No!"
This took me by surprise. Somehow he had come to think that if a problem didn't jump out at him within the first two seconds of looking for problems, then for him the idea mustn't have any problems.*
I took some time later in the day to reflect on that moment. My first thought was about how irrational he was to have spent so little effort trying to poke holes in this new feature idea. After all, he was getting ready to spend hours of his valuable time bringing this new feature into reality. If he had just spent one minute thinking about what could be wrong with the new idea, and in that minute he discovered a fatal flaw in it, it might've saved him hundreds of minutes of wasted work over the next few weeks! Silly guy! Lucky he had me there to save him!
But then I thought about it some more, and realised that maybe I'm not actually that different to him. In many aspects of my daily life, I don't consciously give myself a meaningful amount of time to come up with new ideas or criticisms for the things I want to do. Many of my choices are kind of uncreative—I simply do the first thing that pops into my mind, in much the same way my friend decided there was nothing wrong with the new feature idea; because that was the first thing that popped into his mind.
I did some e-sleuthing around this thought and found On Creativity - The joys of 5 minute timers by Neel Nanda. It suggests literally using timers to make sure we spend meaningful time thinking about the things that matter. It might be worth reading if you identify at all with anything I have just said.
My favourite part of the article is this:
Set a 5 minute timer, and make a list of problems in your life - things that annoy you, things you want to work on, things that could be better. And then, go through that list, and cross off any you’re confident you’ve spent at least 5 minutes of focused time trying to solve. If you’re anything like me, you’ll have an embarrassingly long list left over. I’d be pretty curious about what happens if you try doing a 5 minute brainstorm for anything left.
I also found Nate Soares blogposts talking about using this approach (I’m guessing the Neel Nanda article was at least partly inspired by Nate Soares).
In 'Obvious advice', Nate Soares writes:
When you're about to make a big decision, pause, and ask yourself what obvious things a reasonable person would do before making this sort of decision. Would they spend a full five minutes (by the clock) brainstorming alternative options before settling on a decision? Would they consult with friends and advisors? Would they do some particular type of research?
Then, actually do the obvious things.
In 'Be a new homunculus', Nate Soares writes:
Notice the guilt, listen to the message it bears, and actually write down the behavioral pattern that you wish to change. Then spend five minutes (a full five minutes, by the clock) brainstorming ways that you might change the pattern and start retraining your mind.
I think if I dedicated 5 minutes each week to thinking about all the things I could do that week, I would come up with a lot of stuff. Some of those ideas would suck, but some of them would probably be a lot more useful and interesting than whatever I would’ve done otherwise that week if I hadn't spent 5 minutes exclusively thinking about it. I might even start using 5 minute timers each morning to decide what I want to do that day. Time to explore.
It's worth mentioning that 5 minutes is just a nice round number to get started with. Some problems merit more dedicated time, and others less. If you are considering using a smaller number of minutes, I urge you to keep in mind why it is you're doing this in the first place—you're intentionally giving yourself more time to think than you would give yourself naturally. This is about experimenting with a new thinking pattern, so consider allowing yourself to feel some amount of boredom or friction when you are first trying it, rather than cutting the 5 minutes shorter. (The boredom may also be a sign that the problem isn't worth 5 minutes of your time, in which case... find a different problem!)
Let me know what you think about all this. Going forward, I expect to be using timers for a lot more than just cooking!
*Needless to say, I suggested he spend a little longer thinking about it before he added the feature to his plans. In less than a couple minutes, he found three or four legit problems that would need to be addressed before the feature would merit inclusion in the project. Yay Popper!
I think users will expect reposts to appear on their profile alongside their posts on the wall. That seems natural.
Suggestion: Make italicised text the same colour as regular text.
Bold text is good in red. Italicised text is less legible, and the red compounds that.
It also creates more of a differentiation of emphasis between bold and italicised text.
Suggestion: Allow reacts to be used in the activity feed.
That way I can quickly add colour to whatever has been happening recently on the site.