A little bit of magic for keeping track of the things you have to do.

Be productive.

To-do lists are supposed to help you get things done. And I suppose looking through all the stuff you still have to do each time you want to decide what to do next might be helpful.

More likely, though, it's just a time-consuming task that serves to stress and demotivate you while sending your brain off thinking about a n different things at once. That's how it works for me, anyway.

"Hey, me too!"

Maybe you've heard the suggestion that you paginate your to-do list--break off, say, ten things, and just look at that sub-list until it's done. Now you have a smaller to-do list. Hoorah.

Here's a better idea: divide your to-do list into two categories. One, all the thing (yes, thing) you should be working on now. Two, all the things you aren't working on now, and don't need to think/worry/wonder/whatever about until you are.

include "superpowers"

This here now.go gives you a little bit of magic. Here's how it works:

Start it up.

$ nowserve
2010/07/08 12:34:17 web.go serving :5939

When you have something you need to do later, tell it.

$ later make sure now.go actually works.
$ later write about now.go.

When you want to know what you should be doing, ask it.

$ now
make sure now.go actually works.

Let it know when you're done.

$ now -done
write about now.go.

Just add focus and consistency.

Trust it to keep track of everything for later, and you'll have all your attention for now. It's (theoretically) that easy.

No command line required!

(Note: that heading is a lie! The webpage is still half useless, since later is unaccounted for.)

GUI type, eh? Well, then, point your browser to localhost:5939 for a no-nonsense, this-is-what-you-should-be-doing-now interface. (Theoretically, a great default new-tab page!)

Speaks HTTP, too!

Are you a robot who's just not very good at multitasking?

POST /later/    thing=some+thing+to+do
GET  /now.json
POST /now       thing=go+directly+to+now
POST /done      done=

or

DELETE /now

(The format is obviously a little goofy and subject to change. The spirit will remain the same, though.)

"I don't trust it."/"I want to reorder."/"I miss that overwhelming list-full-of-stuff feeling."

With a slight admonition that "you're probably defeating the intended purpose", I point you to ~/.next.things. Verify/reorder/gaze upon to your heart's content. It's just plain text, one thing to a line. Whatever changes you make will be accomodated by now.go (just be sure to leave it alone while you're doing your manual editing).

"Okay, I want it!"

Great!

First, you'll need an installation of the Go language. If you don't have one already, it's easy enough to get one.

Once you've got Go up and running, you can goinstall now.go:

$ goinstall github.com/alloy-d/now.go

...but this just gives you the library that the tools use. To get the tools themselves installed, there are a few more steps:

$ cd $GOROOT/src/pkg/github.com/alloy-d/now.go/tools/
$ for i in *; do (cd $i; make install); done

This will install now, later, and servenow to your $GOBIN, which should already be in your $PATH.

Special notes on installation

The given method will leave the source tree intact in $GOROOT/src/pkg/github.com/alloy-d/now.go. If you don't use goinstall, you will want to make sure to keep the source around after you build the library. At the moment, it uses an ugly hack to find the static files needed for the HTML interface (see dirty-rotten-hacks.go).

Another thing to note if not using goinstall: the import in tools/nowserve/nowserve.go should be changed from github.com/alloy-d/now.go to alloy-d/now.

Miscellaneous topics

"What is this HTTP nonsense? How brain-dead are you?"

If you'd like something less bloated than an HTTP server, you can replace local now and later with these lines in your ~/.whatever-shellrc:

alias now='head -n 1 ~/.next.things'

later() {
    echo "$@" >> ~/.next.things
}

nowdone() {
    things=$(wc -l ~/.next.things)
    tail -n $(($things-1)) ~/.next.things > ~/.next.things
}

Now you can go along your merry way, blissfully unaware of my bloat, bugs, poor design, and any other harmful things contained herein.

"'Grats on reinventing the FIFO queue."

I know, I'm pretty much a champion.

Please don't nominate me for the Turing Award now, though; I have hopes that I might yet do something even better.

"Installation sucks."

I agree. goinstall is an experiment in package installation, though, and doesn't seem to consider packages that come with commands. No good solution is immediately obvious to me.

Similar Resources

[爬虫框架 (golang)] An awesome Go concurrent Crawler(spider) framework. The crawler is flexible and modular. It can be expanded to an Individualized crawler easily or you can use the default crawl components only.

go_spider A crawler of vertical communities achieved by GOLANG. Latest stable Release: Version 1.2 (Sep 23, 2014). QQ群号:337344607 Features Concurrent

Dec 30, 2022

Example golang using gin framework everything you need, i create this tutorial special for beginner.

Golang Gin Framework Fundamental Example golang using gin framework everything you need, i create this tutorial special for beginner. Feature Containe

Dec 16, 2022

📔 Journal helps you manage multiple journals with ease from the comfort of your terminal, web browser or API client.

📔 Journal helps you manage multiple journals with ease from the comfort of your terminal, web browser or API client.

Journal helps you manage multiple journals with ease from the comfort of your terminal, web browser or API client. You can import/export journals as horcruxes and set simple customizations for layout, theme, and keybindings.

Sep 14, 2022

an online REST renting book platform which you can authenticate, order, reserve a book in your account.

an online REST renting book platform which you can authenticate, order, reserve a book in your account.

BOOK MAN an online REST renting book platform which you can authenticate, order, reserve a book in your account. it's a microservices project with hig

Jul 22, 2022

A Go Application helps you save your contacts on cloud safely

Contact Saver This Application helps you save your contacts on cloud safely. The backend is built with Go programming language and the front end with

Nov 10, 2021

GoAdmin is a toolkit to help you build a data visualization admin panel for your golang app.

GoAdmin is a toolkit to help you build a data visualization admin panel for your golang app.

the missing golang data admin panel builder tool. Documentation | 中文文档 | 中文介绍 | DEMO | 中文DEMO | Twitter | Forum Inspired by laravel-admin Preface GoAd

Nov 25, 2021

Application to save log of anything you want

Logbook Application to save log of anything you want. SSL Gen Key openssl genrsa -out logbook.key 4096 Gen PEM file openssl req -x509 -new -days 365 -

Dec 2, 2021

66 is two player game played with playing cards and from now on you can play it from browser with your friends.

altmis-alti 66 is two player game played with playing cards and this project provides multiplayer game space from browser. How to run? Clone the proje

Feb 1, 2022

A simple command line tool using which you can skip phone number based SMS verification by using a temporary phone number that acts like a proxy

A simple command line tool using which you can skip phone number based SMS verification by using a temporary phone number that acts like a proxy

Fake-SMS A simple command line tool using which you can skip phone number based SMS verification by using a temporary phone number that acts like a pr

Dec 31, 2022
this allows you to get the real link of without get tracked bit.ly
this allows you to get the real link of without get tracked bit.ly

check the real url from a url shortener (bit.ly) Also you can use it as an API example with deno const rawResponse = await fetch("https://anti-url-s

Feb 19, 2022
urlhunter is a recon tool that allows searching on URLs that are exposed via shortener services such as bit.ly and goo.gl.
urlhunter is a recon tool that allows searching on URLs that are exposed via shortener services such as bit.ly and goo.gl.

a recon tool that allows searching on URLs that are exposed via shortener services

Jan 7, 2023
A rest api to help automate some of the things Matt does

AutoMatt A rest api to help automate some of the things Matt does run in docker for dev go build && \ docker build -t automatt:latest . && \ docker ru

Dec 6, 2021
Hammond is a self hosted vehicle management system to track fuel and other expenses related to all of your vehicles.
Hammond is a self hosted vehicle management system to track fuel and other expenses related to all of your vehicles.

Hammond is a self hosted vehicle management system to track fuel and other expenses related to all of your vehicles. It supports multiple users sharing multiple vehicles. It is the logical successor to Clarkson which has not been updated for quite some time now.

Jan 2, 2023
Gazer system is used to track data.

Gazer System - 凝视系统 这是一个用于长期追踪数据变化的工具。 我们常需要定时针对某些链接进行爬取,以获取历史数据,这个系统为此而生。这是一组无状态的服务,意味着它可以简单地水平扩展。它提供了如下几个功能: 自动代理:使用洋葱路由进行代理,无需自行维护 IP 池,也可以绕过大多数基于

Nov 24, 2022
Blackjack on Exercism's Go Track

Blackjack Welcome to Blackjack on Exercism's Go Track. If you need help running the tests or submitting your code, check out HELP.md. If you get stuck

Dec 6, 2021
This is my solution the React exercise on Exercism's Go track.

Solution to React Exercise on Exercism This is my solution the React exercise on Exercism's Go track. The original readme is below. React Welcome to R

Feb 8, 2022
Go kickstart is a simple repository that I'm managing to a have a fast setup for Go web application

Go kickstart is a simple repository that I'm managing to a have a fast setup for Go web application with my most common use cases using practices that I found useful and easy to maintain.

Jan 30, 2022
A little example about protobuf and Golang

Protocol buffers A little example about protobuf and Golang What is it? - IDL = interface description language - Multilenguage - Optimized serializati

Dec 15, 2021
log4jScanner: provides you with the ability to scan internal (only) subnets for vulnerable log4j web servicelog4jScanner: provides you with the ability to scan internal (only) subnets for vulnerable log4j web service
log4jScanner: provides you with the ability to scan internal (only) subnets for vulnerable log4j web servicelog4jScanner: provides you with the ability to scan internal (only) subnets for vulnerable log4j web service

log4jScanner Goals This tool provides you with the ability to scan internal (only) subnets for vulnerable log4j web services. It will attempt to send

Jan 5, 2023