
“Hey”, an interruption tracker written in Scheme - jstewartmobile
http://interrupttracker.com
======
junke
> just type hey <person's name>

> ...

> To invoke that just type hey graph

Boss: meet your new coworker, "graph".

Oh no.

~~~
masukomi
i'm not getting something about this comment. Is the implication that someone
would show the boss the graph of the interruptions by the new coworker?

~~~
junke
The intended joke was that a new coworker would be named "graph", which then
would break the perfect tracking system put in place by the narrator (given
that the command is unusable for this coworker); the narrator would then utter
"oh no", thinking about the inescapable flow of interruptions that would come
from "graph" in the future, for which he or she could not have any possible
mean of retaliation. The whole thing is of course a little bit absurd, and fun
I guess, because "graph" is not a realistic name. The "oh no" parts refers to
[http://webcomicname.com/](http://webcomicname.com/).

~~~
masukomi
ahh. yes i should have gotten it. thanks for the explanation. I actually used
to have a command, or was about to make one that did intersect with a not so
common name. I forget what it was now. So I pretty much hit this exact
problem.

------
meonkeys
Thanks for sharing! This is fascinating and I want to try it out. Might be an
excuse to learn Scheme, too; something I've been meaning to do.

Funny, I see only 6 comments at
[https://news.ycombinator.com/item?id=15795468](https://news.ycombinator.com/item?id=15795468)
, but
[https://hn.premii.com/#/comments/15795468](https://hn.premii.com/#/comments/15795468)
shows 7. Maybe that 7th was moderated?

The comment was way heavy on snark, maybe even mean/rude. But I think it is
important because it captures how I'd feel if I walked up to ask someone a
question and I saw them type "hey adam" on the command line. Going heads-down
is important, but so is overlap, banter, and face-to-face communication. And
not all of that should be organized/scheduled. Just let folks know you are
going heads-down by putting on headphones, setting your status in your
chat/presence app, or blocking out time on your calendar.

The comment was:

"This tool is specifically designed to help you be less helpful, less
friendly, more cold, more passive aggressive to friends and colleagues.

I know so many developers who are going to love it."

~~~
daveFNbuck
That comment sounds a lot like my latest performance review. It was actually
the constant interruptions that caused me to be less helpful, less friendly,
more cold, and more aggressive toward my colleagues. A tool that could help
mitigate these interruptions would probably improve my relationship with them
a lot. I don't think people realize how disruptive minor interruptions are
when multiplied by the size of their team. I can't have impromptu face-to-face
chats with 30 people every day and still do my job.

~~~
WorldMaker
There was a previous role where I was alternating both dev and devops hats and
it is easy to wonder if I had tracked interruptions and task switching a bit
more formally if I'd have more ammo for a performance review that seemed to
come out of nowhere for me. I was told that people thought I wasn't being
helpful or communicative enough, but I felt unproductive and like I was doing
almost nothing but helping other people most of the time. (In the long view
that situation worked out in my favor, surprisingly, but it's an interesting
thing to wonder about.)

~~~
daveFNbuck
Your situation sounds very similar to mine. How did it work out in your favor?
Right now it looks like I just have to give up completely on productivity to
get a promotion.

~~~
WorldMaker
It's not a way I can generally recommend, sorry. In that particular case the
extra scrutiny meant I was in the first wave of layoffs, and they almost
ruined my vacation doing it (I almost got word of the layoff right before
heading off on a cruise), but I got a full severance unlike some of the
following waves. The first wave was to make the quarter profits more
appetizing for sale to new owners, and eventually over the next couple of
years the new owners entirely laid off all software development in the region.

It seems preferable in retrospect to get a full severance and plenty of time
to find the next role (even as stressful as that was in the moment) than to
hang on for an ownership change and eventual layoff anyway. Some of my friends
hung on and regretted it.

Anyway, like I said, that's not generally applicable to every situation,
though. I hope you get some good luck or find a way to make the extra scrutiny
work for you.

Sometimes that extra scrutiny means they care for you and want you to
ultimately succeed (and may even depend on you succeeding) and you both need
to work together to figure out how to make that happen. That was the case in a
further previous role, though in that case that was mostly a sign to me that
it wasn't going to work in the long term (a lot of my "bad" behavior were
symptoms of stress and ethical anxiety), and I needed to move on.

------
joekrill
I can't seem to get this installed. I followed the directions and installed
Chicken Scheme with brew. It then says to run the installer.sh, but that seems
to be looking for some additional files that don't exist (they are part of the
source code, however). Also the URL in the README.md of the installer package
has the wrong URL.

Seems like a cool idea but I'm just not invested enough to track down the
issues here and get it working!

~~~
etimberg
Specifically the install script is looking for

source bash_files/ask.sh source bash_files/install_cli_tool.sh

~~~
masukomi
message me on twitter (@masukomi) or email me at masukomi@masukomi.org and
I'll let you know when there's a new version with simpler setup and / or help
you get the current version working. I'll try and fix that in the current
version.

------
masukomi
author here: wasn't expecting this to show up on HN... sadly, it's kinda bad
timing. A couple folks here have commented on problems getting it installed,
AND there are some issues with large data in graphs which i've addressed
locally but not pushed yet because.... I'm in the middle of rewriting this in
Crystal so i can just give folks a statically linked binary to run and have
better test coverage and many other good things (like cleaning up a codebase
that kind sprawled out of control.... was just a quick hack that kept growing)

So: if you're interested in this please message me on twitter (@masukomi) or
email me at masukomi@masukomi.org and I'll let you know when there's a new
version and / or help you get the current version working.

~~~
jstewartmobile
Sorry for the inconvenient posting.

I have a friend who _constantly_ gets interrupted by his supervisor just
talking about random stuff--like his home improvements or his stock portfolio
--so I thought this was a pretty fun idea.

~~~
masukomi
no worries. I appreciate the visibility even if the timing is bad. i should
have been aware of the bug, and i should have had a note on the site while i
fixed it (I do now). It's nice to have found that others find the idea
valuable. Also confirms that i need to finish the rewrite because easy install
is one of the most important things to me, and this app is failing on that,
despite my repeated attempts to beat that install script into submission and
work on multiple platforms. So, it's good in the end. thanks.

------
lancebeet
I apologize if I sound overly negative, but why not just tell people to send
you an email/message instead of interrupting you? You can even have a "do not
disturb" sign on your door. I'm sure slack has some functionality for turning
off notifications when you're busy.

~~~
borntyping
The purpose is tracking who is interrupting and why, not stopping
interruptions, with the aim of finding patterns.

In previous places I worked, it might have been quite useful if I kept a
record of what questions people interrupted me to ask, so I could look back on
that and work out parts of my software than needed to be made easier to use or
have documentation added. If I was using OP's tool to track this, I'd probably
include "interruptions" where someone sent an email or slack message as well
as those where someone came over in person.

~~~
masukomi
exactly right. I've been wanting to figure out how to get every message i
receive on slack piped into a script so that i could then extract
"interruptions" from that. but yes I track everything that wasn't a "planned
interruption".

------
jstewartmobile
This is _masukomi_ 's baby. I figured it would come in handy as an evidence-
builder if you have to report to someone.

" _Why isn 't it done yet?_"

Run _Hey!_ , turn monitor to face boss.

That, and just knowing where your time goes can be a real life-changer.

~~~
masukomi
yeah, that was definitely part of the thinking when i wrote it, although i'm
happy to say it was more ME wondering why things took as long as they did than
my boss.

------
melicerte
From the documentation:

" hey kill <name>

(Note: No humans will be harmed in the execution of this command.)

Deletes that person from your database, and removes them from any events. If
there are events that only involved that person, they will also be deleted. "

Good sense of humour

------
cnewey
This looks fantastic and I'd love to start using it. Unfortunately it seems to
be written in a particularly obscure Lisp dialect and the build script is...
temperamental at best.

~~~
masukomi
yeah. i'm sorry about that. I'm in the middle of a rewrite that'll address
that. setup's been a pain and i don't want people to have to install chicken
scheme just to use it. message me on twitter (@masukomi) or email me at
masukomi@masukomi.org and I'll let you know when there's a new version that
should "just work"

~~~
cnewey
Thanks! I love the idea most of all, and knocked up a very rough and ready
Python version this afternoon so that I could start using something similar
straight away. I'll definitely keep an eye on the project's progress :-)

------
agentultra
A nice idea, thanks for sharing.

I do something similar in emacs with org-capture. I use a capture template
that enters a row into a table in an org file. In that file I have some org-
babel blocks that computes my histograms and displays a nice graph for me.

Although emacs isn't exactly user friendly for most people. I hope your
project gets out there more. It's a useful tool to have.

(As a manager of an software development team my job is to be distracted and
handle them effectively... a tool like this has been invaluable.)

~~~
masukomi
i'd love to know exactly what graphs you've found to be valuable. I've been
finding that many of the things i _thought_ would be valuable to see graphed
end up looking more like modern art than useful data (people by hour for
example) .

~~~
agentultra
There are two I use the most;

1\. Histogram of frequency by distraction type [0]

2\. Histogram of frequency by distraction type filtered by person [1]

[0] This lets me know what is distracting me the most. If I find a particular
type is a clear leader in frequency then it prompts me to find a way to reduce
that particular type of distraction.

[1] When I'm investigating [0] if the type is not descriptive of the cause I
look to this graph to determine the person who causes it the most.

For example the "codehelp" type tends to be pretty strong over all. When we
launch a new feature or introduce a new software component on the back end I
tend to see a spike in these coming from the junior members on the team who
need extra guidance understanding the feature or technology. However when it
starts to move away from the average by looking at [0] I'll sometimes look
through each person using [1] until I find that there are one or two team
members that need extra guidance.... then in a week or two I usually see [0]
return to "average."

------
na85
I feel like there was an opportunity missed to make a Navi the Fairy
reference.

"Hey! Listen!"

------
KasianFranks
Genius. Adding a bidding/auction process would be nice too.

~~~
masukomi
...er... what? I assume you're joking, but even so it doesn't really make
sense. I could imagine that in a calendaring app. I'm not sure how it applies
to something that tracks interruptions. I'd honestly like to know because
sometimes those jokey ideas have a little value hidden in them.

