
Noprocrast (2010) - ChankeyPathak
http://web.archive.org/web/20100423003857/http://mmcgrana.github.com/2010/03/noprocrast.html
======
TeMPOraL
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).

More details about implementation:
[http://jacek.zlydach.pl/blog/2020-05-25-blocking-
distraction...](http://jacek.zlydach.pl/blog/2020-05-25-blocking-distractions-
with-mikrotik-router.html).

~~~
baxtr
You could still change to LTE on your phone. Just sayin...

~~~
dmix
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.

~~~
roywashere
+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.

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

~~~
caleb-allen
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”

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

~~~
zarkov99
yes, but it all changes the moment one posts something, no matter how inane.
Then narcissism makes it almost impossible to stop checking it.

~~~
sudhirj
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.

~~~
zarkov99
Shhh, we do not talk about such things.

------
pandatigox
There are also the apps, Self Control available for MacOS[1] and Cold
Turkey[2], which is an universal app.

[1]: [https://selfcontrolapp.com/](https://selfcontrolapp.com/) [2]:
[http://getcoldturkey.com/](http://getcoldturkey.com/)

~~~
fbelzile
Maker of Cold Turkey here, thanks for sharing it! If anyone has questions
about the app, let me know :)

------
sirodoht
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`

[1]
[https://github.com/sirodoht/productivity.sh](https://github.com/sirodoht/productivity.sh)

[2]
[https://github.com/cbednarski/hostess](https://github.com/cbednarski/hostess)

~~~
curiousgal
You can use the NOPASSWD directive in your

    
    
         /etc/sudoers 
    

file to allow hostess to run in sudo without auth.

------
ausbah
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

~~~
AndrewOMartin
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.

~~~
JadeNB
> coworker would have also worked

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.

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

[1] [https://selfcontrolapp.com/](https://selfcontrolapp.com/)

~~~
tambourine_man
Oh my god, this is hilarious:

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.

[https://github.com/SelfControlApp/selfcontrol/wiki/FAQ](https://github.com/SelfControlApp/selfcontrol/wiki/FAQ)

“Until that timer expires, you will be unable to access those sites—even if
you restart your computer or delete the application.”

That’s… intense.

------
mnd999
Do you have a script to stop you procrastinating by writing scripts though?

~~~
Shared404
[https://imgur.com/a/Xmy7qgW](https://imgur.com/a/Xmy7qgW)

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

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

~~~
TeMPOraL
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.

~~~
0xCMP
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.

------
raldi

        echo `date`
    

could be expressed as just

    
    
        date

------
thom
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).

~~~
saagarjha
Do you not have to search for things online usually?

~~~
oefrha
M-x eww.

(Then you discover M-x eww
[https://news.ycombinator.com](https://news.ycombinator.com), back to square
one.)

~~~
thom
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.

------
danicgross
I used to have script that would gradually dim my display unless I typed.

The broader issue for me isn’t a particular website. It’s brain-dead
consumption of feeds. Typing guarantees that you’re thinking a little.

Even with email, it made me less likely to overthink things. It gave a bias to
action. Keep moving, keep typing.

I had a whitelist of exceptions (IntelliJ, Terminal, etc).

Unfortunately the script broke a few years ago. I keep on meaning to fix it
but I’ve been too busy reading feeds.

~~~
e40
Operating system on which it ran?

------
ISL
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?

~~~
smegma2
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.

~~~
ISL
It has now started blocking correctly. Must have needed something to get
flushed.

Back to it.

    
    
      $ noprocrast.sh

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

------
kissgyorgy
You can do this with Pihole blacklist, which not only apply this to your
current machine, but your whole network.

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

[https://selfcontrolapp.com/](https://selfcontrolapp.com/)

------
ashton314
This is great. I might start using this.

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.

------
idclip
I too had my go at this, and it was very effective

Checkout these two files

[https://github.com/Shokodemon/smallhacks/blob/master/sh/depr...](https://github.com/Shokodemon/smallhacks/blob/master/sh/deprocrast.sh)

[https://github.com/Shokodemon/smallhacks/blob/master/sh/proc...](https://github.com/Shokodemon/smallhacks/blob/master/sh/procra_targets.txt)

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

~~~
elektor
You can install NextDNS and use their blacklist feature to block distracting
websites.

~~~
notRobot
Seconded. This works really well.

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

~~~
wott
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?

~~~
Darmody
As far as I know you can block certain subreddits, yes.

------
henearkr
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).

~~~
JadeNB
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.

~~~
henearkr
Aw nice, I hadn't noticed the log file trick!

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

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

------
zucker42
There's a browser extension called "Leechblock" that I use and is good for
this purpose.

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

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

------
gavreh
Here are some good, maintained lists:
[https://github.com/jmdugan/blocklists](https://github.com/jmdugan/blocklists)

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

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

------
darkhorn
Why 127.0.0.1? It shows my website.

------
tarulahsan
Great tool. i think i can use it for my kids

------
chooseaname
gasmask on mac allows you to swap /etc/host files also.

------
mmcgrana
This post was scraped from my old technical blog:
[http://web.archive.org/web/20100423003857/http://mmcgrana.gi...](http://web.archive.org/web/20100423003857/http://mmcgrana.github.com/2010/03/noprocrast.html)

Looks like the site has a few other scraped posts as well.

FWIW I no longer use this exact noprocrast(1) approach to avoiding
procrastination, but do apply the same basic idea.

~~~
hanklazard
I’m sorry someone ripped off your post ... I wish there were more consequences
for doing so.

FWIW, it’s a cool idea that I may implement.

------
tangoalpha
Deleted

~~~
smegma2
I don't think this is particularly relevant to the post.

