
Ask HN: Engineers of HN, which tools and tech help your computer productivity? - robinhartley94
Hi engineers of HN, I’m interested in building software to help boost your productivity, particularly when using your computer.<p>Therefore, I was wanting to ask the two following questions.<p>If I get enough answers back, I’d like to write this up into an article, which I will post back to HN once done. You are welcome to answer the questions in the comments below, or using the Google Form I’ve set up here, whichever you’d prefer: https:&#x2F;&#x2F;forms.gle&#x2F;BQTbdYbjcNhzUVuD9<p>Question 1: It is my assumption that there are lots of repetitive keyboard actions you have to do in your day-to-day, both with highly specialised engineering software (database management, CAD, fluid modelling, stress analysis) and also when working with reports, spreadsheets and email.<p>For example, changing snap sizes in AutoCAD or formatting reports in Word. Is this an accurate assumption or do you generally find no repetitive keyboard actions in your computer work? Specific examples of the tasks and the software it occurs in would be excellent!<p>Question 2: If the above assumption is true, how do you overcome this repetitive computer work? Do you script your own macros, do you have a USB gadget to automate some of the process or do you use some existing software? 
Of course, you may do none of these and just get on with it – that’s a perfectly valid answer.<p>Thank you for your insight, if you’re interested in the software I’m developing, you can see what it’s about here: http:&#x2F;&#x2F;numpadsuperpowers.com<p>Cheers,
Robin
======
villeez
I do software development and have to also fill some tedious forms now and
then. I have a good experience of these three things to boost my productivity:

Shell scripts and Python based automations are good to perform repetitive
tasks. Python 3 is everywhere and easily installable, which makes it a good
base for writing automations.

Cron helps ensuring the automations are executed on time. This is nice for
some backup activities.

Automator (on OSX) is a good tool to connect key events to your automations.

"Say" (the shell command to perform text-to-speech synthesis) is nice way to
stay up-to-date on the executions.

I also utilize macro capabilities of editors when working with larger data
files.

The trend is that the existing tools are continuously being made more and more
powerful which also reduces the need for extra scripting on top of them.

Finally, I'd like to mention that the company I work for, Softagram,
[https://softagram.com](https://softagram.com) is also offering a tool to
boost productivity when working with larger or more risky code changes. The
tool automates dependency/risk analysis and offers the output in nicely
integrated visual report right to the comment field of pull request in GitHub,
GitLab, etc. systems.

------
makimat
I'm in software development too. Tend to setup and use keyboard shortcuts
extensively to avoid the mouse as much as possible.

I don't use an external mouse at all and only use the trackpad of my laptop
for quick swiping between full-screen views, back/forward in browser and for
selecting text in random apps. This has saved me both time and the health of
my wrist.

As someone who works a lot in Linux/Unix/OS X environments, maybe one of the
biggest daily productivity improvements for me was learning the Vim motions.
It began with the innocentish question "So, which one do you prefer: vim or
emacs?" from my ex-colleague at F-Secure, on the first day in my then new job.
I have to admit I hadn't thought before. I'm happy I chose the correct one :D

I even used to have Vimium in my Chrome so I could browse in command mode 8-)

Many modern IDEs have great refactoring features and stuff not provided
readily by the more ancient tools. A tool that really understands your code
_does_ make sense. Whenever I start using a new IDE or other development tool,
though, as the first thing I'll check if they provide vim mode.

Often times you'll get the job done easily with just plain vim, grep and sed.
You cannot install your IDE everywhere. These oldies are almost universally
available everywhere in the nix world. They have a learning curve, for sure,
but it makes _a lot_ sense to learn them.

Also, isn't it kind of cool to work with a tool that was invented before you
were even born?

~~~
villeez
I also have always admired the old unix tools after learning how to use them.
When working with big data files, it is super fast to get going by using cat,
grep, sed, awk, cut and wc. As an alternative to using some editor and
manually doing searches over data, the commands bring huge performance gain.

------
Adamantcheese
In an effort to be as unproductive and productive as I could, I built a robot
once that just pressed the 5 button on my mousepad avery ~1.2 seconds or so.
This let me, over the course of 30 days of straight button pressing,
successfully accomplish a goal in a video game without triggering their macro
detection. It also burned out a few LEGO motors and gears, but that's a minor
thing to pay for not having carpal tunnel.

But to actually answer your question, I have a mouse set up with a few macro
buttons. One is alt+tab and the other is alt+tab+tab, which lets me switch
between the last 3 visited windows very quickly. Usually I'm using it to
switch between a project program and its documentation. The last one is bound
to windows+lshift+s, for quick screenshots.

------
robinhartley94
To get the ball rolling, I'll share my personal experience. When I was
studying engineering, we had to do a load of AutoCAD drawing. I found it a
nightmare because you constantly had to type commands like "snap 10", "fillet
radius 20", "fillet radius 10" etc.

It's worse because you have to move your right hand back and forth between
typing commands on the keyboard and clicking the mouse.

At the time, I programmed an Arduino with a lot of the common pieces of text I
was typing, and then wired the Arduino to a keypad so I could press a key and
get it to type the text for me.

Have you had a similar problem in your engineering job? If so, how did you try
to solve it?

------
tmaly
Documenting how things are done, establishing simple processes, and creating
good training have been the most productive activities for me and my team.

When you have an order of magnitude more people wanting something from your
team, these are by far the most helpful.

