Search Ideas
2392 ideas match your query.:
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.
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.
Somebody on Twitter wrote, addressing old-school programmers in the context of vibe coding, “Your once exclusive access just got democratized.”
I wonder if that’s the same or at least analogous to minds error correcting some skill to the point they automatize it.
In both cases, access to knowledge becomes cheap and fast.
Let me know what you think about all this.
One of my colleagues at Apple was an incredibly competent veteran engineer whom I respected a lot. One of the things he taught me was to not always go with my first instinct, but to come up with several solutions to a problem and seeing which one is best. (Looking back and putting it in Veritula terms, I’d rephrase it as: which one survives all criticism. I think in practice, that’s what he did, too.) So your post resonates with me.
Many of my choices are kind of uncreative—I simply do the first thing that pops into my mind …
This approach isn’t necessarily bad, though. I think it depends on whether you already have a considered opinion on a matter. Sometimes, you might do the first thing that pops into your mind because it’s the result of many rounds of previous error correction from similar situations, and you’ve automatized the solution. Then I think it’s fine.
But don't let impatience cause you to reduce the number of minutes you go with—the best ideas often come when we are getting bored or feeling a little friction.
That sounds like it could be a bit self-coercive at times.
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 didn’t spend 5 minutes exclusively thinking about it.
Should it say ‘hadn’t spent’ rather than “didn’t spend”? Or ‘would do … if I didn’t’.
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:
You have two consecutive colons there. Maybe you meant to merge those two parts?
Should be fixed as of 9ea99f9 but let me know if you’re still having issues.
Done as of af4e814. There’s now a default wall tab and an activity tab. The wall only shows posts made specifically to the profile. That means posts by the user and others to that profile, and the user’s reposts from anywhere. Version chains are collapsed into the most recent version.
Using https://haptics.lochie.me/ by lochie, mobile devices now give haptic error feedback when exceeding the limit.
I love obsessing over small details like this one.
Nice bio:
A life aimed at infinity 🦉 🐚 🕯️ 🚀
I’m guessing:
🦉 = wisdom
🕯️ = enlightenment
🚀 = progress
But I wonder what the seashell means… 🤔
… the posts are lost amongst the other user activity.
To be clear, when you say “posts”, you mean specifically ideas the user posted only to their profile, outside of discussions?
What about reposts from discussions?