I've been trying various "noprocrast" approaches over the years, including /etc/hosts and HN's own noprocrast settings. The one that finally worked for me was disabling distractions directly on the router - it covers all my computers, as well as my phone. I set it so that distracting sites are disabled during work hours (Monday-Friday, 08:00 - 18:00).
I find some phone use to be fine, the worst productivity breaker is tabbing to Reddit/HN/etc when you were focusing. Switching to your phone is already enough to a break from focusing where it's not a big deal. Plus you could just leave it in another room.
It's like what doctors recommend for bad sleep habits is to keep the bedroom/bed for sleeping only - don't spend hours using screens or eating in bed, then your body will have an easier association with sleeping + the mental habit. Likewise laptop + work hours = worktime. If you want to take a break stand up and check your phone or whatever.
"Perfection is the enemy of good" anyway, you don't need to go all out.
The primary point is using editing /etc/hosts (with `sudo chattr +i /etc/hosts` write locking to go further) is enough of a hassle for most of the time to break a negative loop. No need to make it impossible, the larger goal is self-discipline.
+1! Six months ago I added reddit, hacker news, Twitter and two of my favorite news sites to /etc/hosts mapping to localhost. I use those sites exclusively on mobile. I still accidentally open a tab out of habit from time to time, but go back to productive matters quickly.
Fwiw, I've found that the inversion approach of fighting procrastination works considerably better for me. So, instead of trying to not do something I try to do something instead. In more detail this means focusing on achieving a certain amount of deep work hours per day. First this means that I have to condition myself to want to do deep work in the first place. Rereading the first few pages of the book from time to time helps with this part.
Also, if the last thing I think about before falling asleep is about what it is that I wanted to do next, then the next day starting to do meaningful work is a lot easier, as I actually feel like I want to try this thing I thought about. Keeping a work logbook is another good method in being able to start up easier, as you can just pick the easiest item in the list and do that. Once the ball starts rolling and you get deeper in the zone, then procrastination is rarely much of a problem.
I’m with you on this. Doing something is much easier than resisting something.
That said, I also do something like OP to block out some sites, but that really only is important as I “get the ball rolling”. I noticed myself habitually tabbing to twitter or something whenever I got to a “hard part”
For me, setting myself up to be productive and have focus is more impactful than anything I try to do in the moment of trying to be productive. Running or biking a few miles, eating food that makes me feel healthy, not drinking alcohol, and getting good, quality sleep.
Being physically healthy is exponentially more effective than any anti-procrastination tools or techniques I have very tried.
I don’t know if the OP is even on Facebook, but I it noteworthy that it’s not on their list of sample blocked sites. I don’t find FB to be addictive either, unlike a lot of people. Usually when I check it, I find myself a quick skim of notifications and the newsfeed to be sufficient, really just a minute or two a day. It runs counter to the popular narrative of Facebook addiction.
Anyone else feel that way? I wonder if it’s because Facebook has no longer become a place for novel content, and there’s an aversion to lingering on it. Of course this is my personal opinion, but I do think it’s easier to find topical content on Twitter and HN, and so they’re more distracting and worth blocking.
I have a Facebook addiction. I post something; I crave feedback. When I get feedback, it's like a little jab of oxytocin to my system.
Twitter, Linkedin - I don't have the same problem. I post something (when I remember, which isn't often) and then forget about it. I can go weeks without checking LinkedIn. I tried Instagram and just didn't 'get it'. Reddit annoys me. TikTok scares me - I tend to avoid mirrors at the best of times, so the thought of short video clips of me floating in the aethers ... it's never going to happen.
I'm probably a little addicted to HN; I have no desire to cure myself of the site just yet. I'm not convinced that blocking the site in my browsers/devices would help me if I wanted to cure myself - I'd probably end up spending time trying to subvert the blocks (as a learning exercise, of course).
I've just deleted my reddit account because I found none of the communities I am interested in bearable anymore. But somehow Facebook keeps being the main source of interesting information for me.
I've unsubbed from most people and keep my friend list extremely slim (less than 200 people over ~10y of usage, with extensive pruning). Its basically a news aggregator for me, and additionally a way to connect with the communities I am involved in (which are niche (home) brewing groups). The groups are surprisingly untoxic but that's entirely down to the awesome moderators and the scientifically minded people they manage to attract.
I think the usage of mostly real names also helps knowing the people better than just some random nickname and knowing where (if even) they work.
I don't find any reason to repetitively check a post on Facebook (or Instagram / any of the other image/video sharing platforms.) If I put something up, I can go back and find out what my "final earnings" in social-capital were days/weeks later. There's no urgency to that. It's not like the stock market; it's not going to suddenly start dropping. It just rises until it plateaus.
I find places where I leave comments (like Reddit, or HN, but Twitter also works this way) a lot worse for this "addiction via narcissism" aspect. On these services, your post/comment doesn't only get more and more popular; it may also be rebutted by a reply (not necessarily made in good faith), at which point it might start getting less popular, possibly dipping into the negatives if the reply's reinterpretation paints you in a bad-enough light. Because of this, there's a feeling of having to watch for these replies, and leap to defend your post against them, so that the reply's interpretation of your words doesn't "win out" against your own actual meaning (which may not always have been perfectly clear from your original, succinct wording.)
That's "narcissism" too, in a much stronger sense of what Narcissistic Personality Disorder means: the obsessive paranoia over losing social capital, due to being perceived as having committed a social faux-pas, that leads one to avoid taking social risks, and perhaps even lying to make oneself seem more "middle-of-the-road" within one's social cluster than one actually is in private.
Oh, yes, sure, I was not really distinguishing posts from comments. Either works by attracting the attention of others in a public setting. In that context the effects of both praise and reproach are amplified enormously and otherwise sane people can't help but continuously engage, as you say.
Yes, I've long known that imaginary internet points are the only things that fill the void in my soul. I'm quite embarrassed to say that I go and re-read all my HN comments if I'm feeling low.
Freedom is a great service; I have a "forever" subscription. In addition to blocking apps, it works on iOS and you can manage all your devices, sessions (which can be scheduled), and blocklists centrally from a dashboard in your profile at their website. They also offer some nice affiliate discounts.
Disabling access from /etc/hosts has been very useful for me, though my similar [1] productivity script did not work as well as I wanted it.
For quite some time I had been using hostess [2] to enable/disable specific websites, yet this too had a couple of problems.
1. Docker Desktop (macOS) keeps appending on my /etc/hosts without asking me when I start it. This requires usage of `hostess fix` to remove duplicate entries.
2. Changing /etc/hosts requires sudo access, which means I have to keep inputting it when I need to make any changes.
Eventually I just `vim /etc/hosts` instead of `sudo hostess fix && sudo hostess on news.ycombinator.com`
a side note, but a dimple but effective strategy I use for getting of time consuming websites is to just use a password manager for all my accounts on those sites. logging out of those accounts, and having the password only be accessible via another long and complicated password (to access the password vault) is usually enough of a barrier in the moment
I did a combination of this strategy and the one in the article. I changed my hosts file, then changed my root password to something with ~20 characters, then I gave the password to my wife (coworker would have also worked) and told them not to let me have it before 6pm. In cases I need to install something I just had to convince them of the necessity.
The human element really worked wonders compared to a poorly technical solution.
I think some consideration of the social aspect here is required. I agree that part of a marriage is agreeing to help one another in these small accountabilities, but, if a random coworker tried to impose this on me, I would not appreciate even the small imposition on my time. It's not, and shouldn't be, my job to help a random coworker stop procrastinating.
… But maybe you meant "a coworker who is also a friend", in which case it's fine; but still then I'd argue that the important point is that you could give it to a friend, not that you give it to a coworker. In fact, even from a selfish point of view, the friendship is important: if a coworker asks this of me who isn't already a friend, then I'm less likely to spend energy in arguing with any password request, and so will simply grant it reflexively.
I just had to make the case to my wife/coworker. The nature of this technique is that it works best when you don't have much serious administration to do and just have to grind out a lot of writing.
The only no-procrast tool that is absolute and unforgiving enough to actually stop me from procrastinating is Self Control [1] (MacOS only afaik). Anything else which offers an escape hatch will always be useless for professional procrastinators.
Q: How do I disable SelfControl once it has started?
You can't. That's the idea. Just wait.
"But, but but..." you say.
Seriously, chill out. It's not the end of the world.
The timer will run out and the internet will come back again. In the meantime, you may find comfort in curling up in a ball under your desk and rocking back and forth for a while.
---
The whole FAQ is worth reading, but that one just cracked me up.
The problem with this approach is HN, reddit are necessary for work. I search HN all the time for technical info to avoid the blogspam and SEO marketing crap on Google. For me, the key to managing procrastination has been accountability - tracking my time and making myself radically accountable to friends I respect.
Hacker News also has a noprocrast feature that’s designed to keep you away from the site for a while if you’ve been using the site for too long. It’s a little buggy with how it does detection, though, so I have it turned off.
I don't think it's buggy, but it's probably too simple. From my observation, it just starts the counter on any HTTP request (with appropriate session data in it, of course). This means if you have HN open on a mobile phone and/or you have lots of tabs, there may be spurious reloads happening even when you're not looking at the page - all of which will start the noprocrast timer.
Yep. I had mine at like 30m and then 120m block and so if I accidentally loaded it like you said I would be like "oh crap this is my chance!" and load every single story I could into tabs before it would block me. Mobile is a great example but also when Chrome has a tab but it isn't loaded in memory anymore.
It did work, but it had some counter intuitive failures too.
I have found few things as effective as shutting down my X server and just working in Emacs in the console. Obviously less useful if you're doing web stuff (although NetSurf exists).
It's painful enough that I don't use it for social stuff, but most programming documentation (and Stack Overflow etc) renders well enough that it's functional when you need it.
Thanks for the catalyst to re-enable my /etc/hosts approach to simplifying my life.
I'm surprised to see that adding:
127.0.0.1 youtube.com www.youtube.com
to /etc/hosts doesn't seem to block youtube, but every other line I added blocked/routed as expected. Is there something special about youtube and chromium?
Yes, some sites are more resilient somehow. I experience the same thing with twitter. You could try flushing your dns cache but IIRC that didn't even work for me.
I've tried various versions of Noprocrast as a chrome and safari extensions.
I feel like that it falls into the category of that it will be 50/50 that it will work for you or not.
For me I would eventually circumvent the whole thing anyways. You may also want to think about why you are procrastinating? Then figure out how to alleviate that.
SelfControl is a free hosts file based blocker with some added features that prevent you from undoing your own blocks until the specified time period has elapsed.
I really appreciate that HN has a noprocrast tool. I’ve also used Apple’s Screen Time feature to help me break away from distractions. While I feel such tools are crutches for good self-control, I am not yet disciplined enough to not need them some times.
Facebook claims to care about its users. I think that’s hogwash. If FB actually cared I think they would have settings to enforce limits on engaging with their platform. But of course they have no incentive to do that because it cuts into their revenue stream. Apple has little problem putting limit tools in place because they get money just when you buy the device—not necessarily every time you use it.
Can someone please help me with how to achieve the same thing on windows that works on any browser ? I tried some DNS blocking programs and can't get anything to work properly.
I know someone who had the same problem and didn't want to pay for one of the subscription apps so he built his own [0]. Looked great from the demo he showed me but I don't have Windows so I haven't tried it personally.
Back when I was forced to work on windows I'd add rules to the default windows firewall. E.g. to block twitter I'd add a rule to drop all outbound packets to 104.244.40.0/21.
I added Reddit and some other sites to my uBlock blacklist because most of the time I would end up there unwillingly.
Control + t (new tab), red (autocomplete to reddit) and enter. Muscular memory.
Now uBlock tells me that the site is locked, I realize what I'm doing and I close the tab. That muscle memory is now gone.
Sometimes duckduckgo returns me some useful reddit links and uBlock gives me the option to allow it temporally which is a few minutes. So even if I start messing around after a while it blocks me again.
That method didn't work for me (if I am thinking of the same thing you are describing, not sure). I would soon routinely unblock Reddit, so the block would become useless in achieving its purpose and become just an annoying extra layer.
So what I did then was blocking specific subs (well, one actually, my national sub) in which I felt compelled to correct people all the time. On each browser on each computer I use, I installed an extension like "Silent Block" which allows to blacklist the URL you want with a regex (".* reddit.com/r/yourmostlovedandhatedsub.* "). Unlike /etc/hosts and similar methods, you don't have to block a whole domain, the control is finer.
So I can still freely view technical or whatever subs with which I don't feel engaged, and follow links to Reddit from search engine or other sites.
It's been over 1 year that I set up this system, and I never bypassed it. It's working fine for me.
Or perhaps Ublock blacklist allows this kind of 'fine grain' blocking too?
Anything requiring sudo or su is not enough: too easy to just take the habit to type the password very fast.
What I've found that works is using the command "lockout" with some weird modification of the sudoers file in order to allow only certain commands with sudo (or other commands with only certain arguments not matching forbidden patterns).
It doesn't stop it in the moment, but logging the date to ~/.procrasts does provide at least some after-the-fact accountability. I think a lighterweight initial approach is good, and, if logging reveals that it's abused, then one can move to harder-to-circumvent solutions.
Another approach is to block the websites in your router settings and to make that password very long, assuming you don't need to access it as often as sudo.
I actually built a password manager for myself that charges me $$ every time I want to access an addictive site (addictionlocker.com) literally because I'd do just this.
Run this on a Raspberry Pi in combination with DNSmasq, and point your routers DNS to Raspberry. Then you have a universal solution for all your devices at home, and that works for Chrome+Firefox. Most routers can have 2x different WiFi SSID with different DNS-settings, so you don’t get complains from your loved ones.
I messed around with the settings in HN the other day and managed to enable the procrastination settings. Was locked out for a couple hours....
That’s what I get for just toggling things. It’s been a habit since I was a child, if we visited a house or rented a car I would flip any switch or touch any button or knob I could reach.
I have (had!) a similar setup via /etc/hosts blocking HN and other sites. Entering a quick sudo gedit /etc/hosts has been so common, that my plan utterly failed.
I then blocked some sites on the router. Too bad the cell phone has a decent 4G connection... oh well.
For a natural & organic form of noprocrast, one can also try cultivating a crippling phone / tablet addiction that reduces any device with a keyboard to “work”.
Actually works quite well provided you keep the drugs in another room, it’s a shame I’m an iOS developer.
I've tried this but browsers like Chrome (and perhaps Firefox as well) will ignore the hosts file and use Google's DNS servers to resolve sites that are blocked by hosts.
Only a strong sense of purpose and an equally strong will to sacrifice everything we use to evade oursleves from our own lives will keep procrastination at bay. Nothing else creates deeply rooted meaning. Nothing else really works.
Putting hurdles between us and our distractions will, at worst, start a vicious cycle of circumventing them and putting them up again; at best, make us dependent on them so we resort back to our bad habits whenever we can't make use of those mechanisms--back to square one.
More details about implementation: http://jacek.zlydach.pl/blog/2020-05-25-blocking-distraction....