Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
“Hey”, an interruption tracker written in Scheme (interrupttracker.com)
49 points by jstewartmobile on Nov 29, 2017 | hide | past | favorite | 41 comments


> just type hey <person's name>

> ...

> To invoke that just type hey graph

Boss: meet your new coworker, "graph".

Oh no.


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?


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


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.


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 , but 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."


It's not the specific comment, the whole account was (hell)banned: https://news.ycombinator.com/item?id=15725778


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.


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


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.


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.


hit me up on twitter (@masukomi) or email masukomi@masukomi and i'll let you know as soon as the new version with better installer is available. Also, I'd love to hear any suggestions you may have regarding what i could do that would help people like you to get a better sense of how interruptions are affecting them / their work .


yeah. also that's completely BS. the data this generates is really only for the person running it. it's to help YOU figure out trends in your interruptions so that you can take measures to address them. Like finding out that people interrupt you between 2 and 3 pm. Maybe prepare that time for not doing anything constructive. Or maybe Bob is always interrupting you about X well you could sit down with bob to make sure he understands it better. Or, maybe lots of people interrupt you about Y... maybe write some documentation on that..

re learning scheme... this is not a good example. seriously. Chicken scheme is great, but this was a quick hack that just kept getting bigger. the codebase is ... not a great place to start at all. Sorry.

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.


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!


Specifically the install script is looking for

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


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.


Same, no luck trying to build it from the gitHub clone on Ubuntu.

Still, it does seem like an interesting idea. Maybe one I'll tuck away for the next time I have some spare cycles for a project and want to learn a new language.


it's not a great starting point for learning Scheme. it's a quick hack that kinda spiraled out of control. 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.


yeah. i'm sorry about that @joekrill . I'm in the middle of a rewrite that'll address that. setups 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"


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.


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.


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.


Have you run the chicken compiler with the -deploy flag? It doesn't create a statically linked binary but does dynamically link all the libraries with the binary in a single folder.


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.


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.


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


> You can even have a "do not disturb" sign on your door.

You can't. At least not in modern open plan offices, nobody except management loves.


I tell some people that every day. I even tell them that as they find an open desk near me so they can interrupt me before there's any chance for them to realize the solution to the problem on their own. They just smile and laugh and keep doing it.


I've tried this to no avail. Only change was "Sorry for interrupting you but..." or "Oh I thought this was a quick thing. I don't mean to interrupt you. Do you want me to come by again later?"

Showing a breakdown of where my time had gone using Toggl (literally 50% to interruptions) did the trick.


(author here) I'm a tech lead. My job is to answer questions all day, but at the same time i need to actually do some tasks that require focus. I wanted to learn who is interrupting me, when, and why so that i could take measures to improve the situation. If Bob is always bugging me about X i could sit down with Bob and help him understand X better. If i'm always interrupted at a specific time of the day i could make sure i don't try and dive into anything that requires focus then. If many people are interrupting me about Y i can write documentation so they can answer their own questions.

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


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.


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.


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


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.


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"


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 :-)


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


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


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


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

"Hey! Listen!"


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


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




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: