My Dream
Keyboard
Many things we use every day, we are not thinking about optimizing.
One tool in particular as a programmer is the keyboard.
I have been through the process, that so many experience, when starting to upgrade their keyboard.
First you look into getting a nicer keyboard, this could be a metal keyboard, or a bit smaller portable keyboard.
Next you might look at ergonomic keyboards, as to prevent medical issues from working on a keyboard all day.
This can take the form of a staggered keyboard, a split keyboard, an ortholinear keyboard or an elevated keyboard.
All of these are to better fit the natural power of your fingers, and to not fight against the resting position of your hands.
A further step down the rabit hole, is scrinking the size of the keyboard, to minimize the required movement of the hands.
I have not reached somewhere near the extreme case for this, with a keyboard with only 32 keys.
However, we can go even further, this is assuming the use of a standard keyboard layout.
We could also improve the layout, as QWERETY
is not designed for efficient typing, thus many people walking down this parth,
also starts to learn Colemak or Dvorak.
But this is just a layout, after having been using emacs for a while, I know of the strengths of using chords and commands.
As such I started looking into stenography. Thus my dream setup, is no using a stenography keyboard, with tools like emacs or vim,
to execute commands from one chord. This process moves a lot of the workload away from your hands, and instead requires a lot more thinking.
A benefit of this setup, is that you will no longer get parsing errors, as you can work directly with correctly formattet statements,
as stenography has removed spelling errors from court reports. Furthermore, you can achieve speeds of 200-300 words/commands per. minut,
so the limit will definitely be on how fast you can think something into existence, instead of how fast you can type it.
Environment
This brings us to setting up an environment, which allows you to do more, than simply type. Most people are used to using search replace or refactor commands in IDE’s, however, this will allow you to use many more commands, as it is not some strange key combination you will need to remember, but rather a word or phrase for the command. Doing regex search replace, recording macros and applying them, jumping to a spefic point in a line, looking up documentation, compiling test, and anything else you can dream up, will be one chord away. Thus motivating the continiued learning and improvement of you setup, rather than getting bored of and accepting limitations of you work process.
Steps
Thus the steps to setting up this work process will be
- Learning stenograph
- Bulding you IDE (here emacs + evil mode)
My Philosophy
I think an important part of being a researcher or just interested in knowledge in general, is never to stop learning and improving. This also means updating and upgrading your workflow and the tools you are using.
The ideal setup I am seeking, is something that is efficient, costumizable and personal. As such I am usually looking at doing things from the bottom up, using tools like
- c++, emacs, QMK, stenography, ..
However, you should also not get lost in the details, and still remain productive! So tools like TODO lists, kanban boards, brain stom maps, project graphs and more are useful. One organization tool I enjoy using is Org-mode, as you can combine benefits of many programming langauges in one.
Examples
- I gave a presentation about optimizing (R code) at a spare time event for Coqnitive Science students: CogTalk
Every Day Cary (EDC)
The idea of EDC is finding useful tools, possibly with multiple functions, that you will cary with you everywhere every day. These can be things like:
- Medical kit: Bandages, plaster, wet whipes, disinfectants, etc.
- Small Toolkit: Nail clipper, knife, screwdriver, etc.
- Technical: Usb stick, dongle, security keys, etc.
I replaced my bulky wallet, with a smaller metal wallet which is RFID blocking. As such you can both improve your setup and reduce clutter, by thinking about and optimizing daily processes.
Security
You should think about your security, not because you have something to hide, but as a prevention for malicious actors, to take advantage of you and large parts of the population. If it is normal, not to care about security, then we want have any.
But we also need to remember, not to trade security and safety, for freedom.
They who can give up essential Liberty to obtain a little temporary Safety, deserve neither Liberty nor Safety. - Benjamin Franklin
You can be very safe in a prison cell, however, that is not a life worth persuing. We should instead find security, not at the cost of freedom, but to ensure the ideal of freemdom is hard to compromise.
Open source
Knowledge should be free and accessible.
Sell not virtue to purchase wealth, nor Liberty to purchase power. - Benjamin Franklin