Search

Ideas that are…

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.

#4517​·​Dennis Hackethal revised about 4 hours ago​·​Original #4514

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.

#4515​·​Dennis Hackethal revised about 4 hours ago​·​Original #4514​·​Criticized1

Maybe fun = profitable thinking.

#4514​·​Dennis Hackethal, about 5 hours ago​·​Criticized1

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.

#4513​·​Dennis HackethalOP, about 7 hours ago

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:

html
<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:

Switch input

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:

javascript
const 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:

javascript
this.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:

javascript
trigger([
{ 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:

javascript
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:

Haptic editor

Usage

Importing the package is easy. In Rails, for example:

ruby
# config/importmap.rb
pin "web-haptics", to: "https://esm.sh/web-haptics@0.0.6"
javascript
import { WebHaptics } from 'web-haptics';
// In a Stimulus controller somewhere
let haptics = new WebHaptics();
haptics.trigger('success'); // or 'error', 'warning', etc for built-in haptics
haptics.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:

javascript
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.

#4511​·​Dennis Hackethal revised about 10 hours ago​·​Original #4509

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:

html
<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:

Switch input

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:

javascript
const 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:

javascript
this.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:

javascript
trigger([
{ 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:

javascript
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:

Haptic editor

Usage

Importing the package is easy. In Rails, for example:

ruby
# config/importmap.rb
pin "web-haptics", to: "https://esm.sh/web-haptics@0.0.6"
javascript
import { WebHaptics } from 'web-haptics';
// In a Stimulus controller somewhere
let haptics = new WebHaptics();
haptics.trigger('success'); // or 'error', 'warning', etc for built-in haptics
haptics.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:

javascript
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.

#4510​·​Dennis Hackethal revised about 11 hours ago​·​Original #4509​·​Criticized1

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:

html
<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:

Switch input

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:

javascript
const 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:

javascript
this.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:

javascript
trigger([
{ 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:

javascript
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:

Haptic editor

Usage

Importing the package is easy. In Rails, for example:

ruby
# config/importmap.rb
pin "web-haptics", to: "https://esm.sh/web-haptics@0.0.6"
javascript
import { WebHaptics } from 'web-haptics';
// In a Stimulus controller somewhere
let haptics = new WebHaptics();
haptics.trigger('success'); // or 'error', 'warning', etc for built-in haptics
haptics.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:

javascript
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.

#4509​·​Dennis Hackethal, about 11 hours ago

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.

#4507​·​Dennis Hackethal revised about 13 hours ago​·​Original #4506

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.

#4506​·​Dennis Hackethal, 1 day ago​·​Criticized1

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!

#4505​·​Benjamin Davies revised 1 day ago​·​Original #4421

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.

#4504​·​Benjamin Davies, 1 day ago​·​Criticism

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.

#4503​·​Dennis Hackethal, 1 day ago​·​Criticism

There is, in the comments.

#4502​·​Dennis HackethalOP, 1 day ago​·​CriticismCriticized1

But there’s no indication that the current version has been superseded.

#4501​·​Dennis HackethalOP, 1 day ago​·​Criticism

…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.

#4500​·​Dennis HackethalOP, 1 day ago​·​CriticismCriticized1

I first want to see some more people posting to their profiles so there’ll be enough ideas to show in that tab.

#4499​·​Dennis HackethalOP, 1 day ago​·​Criticism

Valid, done.

#4498​·​Dennis HackethalOP, 1 day ago​·​CriticismArchived

Both ideas are about working toward a universal theory of creation by studying parallels between mind and economy.

#4497​·​Dennis Hackethal, 1 day ago​·​Criticism

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.

#4496​·​Benjamin Davies, 2 days ago

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.

#4494​·​Benjamin Davies revised 2 days ago​·​Original #4490​·​Criticized1Archived

I'm struggling to understand how this ties in with your original post about common preferences.

#4493​·​Benjamin Davies, 2 days ago​·​CriticismCriticized1

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!

#4492​·​Benjamin Davies revised 2 days ago​·​Original #4421​·​Criticized1

I think users will expect reposts to appear on their profile alongside their posts on the wall. That seems natural.

#4491​·​Benjamin Davies, 2 days ago​·​Archived

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.

#4490​·​Benjamin Davies, 2 days ago​·​Criticized1Archived

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.

#4489​·​Benjamin Davies, 2 days ago