npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

pomodorojs

v0.6.1

Published

Hassle-free time tracking with the pomodoro technique.

Downloads

6

Readme

pomodorojs

Build Status Coverage Status

Track your pomodoros from the command line, witout any hassle.

Well, I got fed up with all the solutions available publicly. What I needed was a command line app that does not get in my way. Also, keeping in mind the fact that there is some actual work to be done, I decided to keep it as lean as possible, without any gold-plating or excess.

Features

They are mainly things I actually previously coded up using Bash (:heart:) while using tomato.es (:heart::heart::heart: the best one out there):

  • having access to the current pomdoro/break state (how much time is left),
  • playing sounds on starting/finishing a pomodoro,
  • displaying simple notifications on starting/finishing a pomodoro (mainly so that I can easily discern whether I deserve an 05:00 or a 15:00),
  • changing my availability on Pidgin so that nobody bothers me while I should be very vey busy,
  • tagging (this is an absolutely awesome feature of tomato.es which I fell in love with after some time).

The current time-state of the pomodoro is being written to a statefile every second while pomodorojs is running. I'm cating it to xmobar.

As to tagging and storing pomdoro data, the information is being output to a statsfile. The format is DATE\tTAG1,TAG2,..,TAGN. There can be zero or more tags. It has to be noted that the comma-separated format is not enforced (You can write whatever as tags) but it is the only one currently supported.

Dependencies

Also, I wanted the app to be absolutely hassle free to use (on my Linux and with the packages I had at my disposal at the time).

Consequently, the dependencies are as follows:

  • mpg123 for beeping and booping,
  • purple-remote for changing your availability on Pidgin,
  • libnotify for showing notifications,
  • dialog for asking to enter the tags.

I have not yet tested the app on a system without those dependencies - who knows, maybe it will even WORK!?

Usage and management

git clone [email protected]:elkorn/pomodorojs.git
cd pomodorojs && npm install
ln -s /path/to/pomodorojs/index.js /usr/local/bin/pomodorojs

pomodorojs
# GET TO WORK!

The second part of hassle-freedom is delegating the app management to Linux:

  • SIGINT causes the application to revert any relevant state it has introduced (restore Pidgin status, write '--:--' as the current pomodoro time-state).
  • SIGSTOP pauses the current pomodoro/break. Don't do this, it's against the rules of pomodoro!
  • SIGCONT starts up a paused pomodoro.

Example process mgmt:

kill -STOP $(pidof pomodorojs)
kill -CONT $(pidof pomodorojs)
kill -INT $(pidof pomodorojs)

Command line arguments

(no args)           Start pomodoroing.
-t, -today          Display pomodoros done today.
--t=N, --time=N     Display pomodoros done N days from now. Sensible values are N<=0 e.g.
                    --t=0 - today, 
                    --t=-1 - yesterday.
--tags=a,b,c...     Only show pomodoros having any of the specified tags.
-n,-numberonly      Only show the number of pomodoros.

todo

It works and is stable (I'm using it practically everyday), but is totally unpolished. All the stuff that I'm planning to do to it (sooner or later) is in the issues.

Acknowledgements

Thank You suonho for the incredible laser sound ! :smile: