Enhancements to the work tools
I enhanced my laptop environment recently with:
- Byobu: for avoiding many terminal tabs and windows
- Vim 8: for True Color, python scripting and latest improvements.
There are many other things I can improve, and this post will be dedicated to them. I consider my knowledge a work tool and include things to be read or watched.
System (Linux):
- A keyboard shortcut to open sound configuration window.
Vim:
- Mappings:
- to join a window into another tab.
Just get the buffer number, close the window,
move to the tab, open the buffer.
- To put a final char in each of the next N lines.
- Use B and W which does the same as b and w.
- Systematize the use of the keyboard:
- What are the characters used directly: lower and upper case.
- What are the sequences of characters used (e.g. zz, zt, gt…).
- What are the standard mappings that use CTRL, SHIFT, ALT.
- What are the best leader and localleader options.
- As a last resort, one can use a vmap to do something not used in the visual mode, but just to use its namespace.
- Break paragraph in the periods. And other clues (, and : and $ and ‘(‘)
- Use C-S-(HJKL) for window resizing. if the resulting lines are longer then X (~80) chars.
- to join a window into another tab.
Just get the buffer number, close the window,
move to the tab, open the buffer.
- Make the real-time updating of the logging file work.
- Learn better about what is new in version 8.
- Get more syntax highlighting plugins.
- Learn the right way to add tokens to the spell checking repertoire.
- AA plugin to send messages from inside vim. Features:
- input message
- can use a specific line and file to build a message:
- Use line number
- Line content
- File name and size
- Repository name, if any
- Use line number
- Keeps track of time:
- Can be set to remind the user by audio or visual cues
- Can be set to send cues in a periodic timespan
- Starts a timesplot after the sent message or after the last cue (should be set by user as preffered)
- maybe use Sessions again:
- A session receives a tag
- The session might be embeded in the messages them selves (e.g. message S_sessionTag_
- Might be related to a screencast (which might be just another message)
- A session receives a tag
- send each message to IRC channels?
- can use a specific line and file to build a message:
- input message
- Plugin to generate images for equations and import images to VIM’s interface. Useful for presentations.
- Plugin for dealing with the .swp and .swo files
- Work with compilation of latex files from inside vim.
- Make a Vim plugin/gadget with which one might
select some lines of Python code, and it would open
a template with those lines positioned as convenient,
with all the previous lines executed in an outer function
or script.
A rudimentary routine might clean the outer script
by:
- a = locals().keys()
- go to the last line of the script + selected lines
- in each line:
- check if there is any variable not known.
- If the line is one of the selected lines, any variable defined is kept in the watched list.
- Any unknown variable needed to obtain a variable in the watched list is added to the list. 5.1. In a more conservative and less error prone implementation, any variable, known or not, used to calculate a variable in the watched list, gets added to the list.
- If the line contains a definition of a variable on the watched list, it gets marked to be kept in the final outer script.
- Keep all ‘import * ‘ statements
(Repeat steps 3-7 until the script + selected lines ends.)
- write the outer script using the lines marked.
If the selected lines are inside a function or class, special care should be taken to look for used variables in the local scope and then to the global namespace. Inside a function: look for definition inside the function, then in the global namespace. Inside a class:
- If inside a function of the class, look for vars in the scope of the function and then in the scope of the class (self.) and then in the global scope.
- If outside function, check for scope of the class and higher
- If in function/class arguments, check for scope of class and higher
IPython:
- Make an intensive study on using and making magic commands.
- Remember how to use IPython’s functionalities (e.g. PDb).
- Check the plugins to know what are the useful stuff out there.
Byobu:
- Learn tmux better and how Byobu communicates with tmux.
- Know about the plugins.
- Change/add the keyboard shortcuts:
- Alt+[1-9] for accessing the windows in a session.
- Maybe Ctrl+[1-9] for accessing the sessions.
- Alt+[1-9] for accessing the windows in a session.
Latex:
- I already use it a lot, these should be less basic topics.
- Learn fundamentals
- Learn how to program in tex
MOOCs, books and articles:
- Make some items in the articles post to present the numerous results I already have.
- MOOCs on:
- data visualization;
- web development;
- python programming for specific tasks (e.g. SNA);
- English writing;
- audio and music;
- complex networks;
- text mining;
- Make the enthough courses;
- Signal processing:
- https://www.youtube.com/watch?v=rkvEM5Y3N60 (Oppenheim!)
- Books on data visualization:
- Munzner
- Ward
- Ware
- The two visual analytics
- The doctorate thesis
- The book from 9X’s.
Other: - Get nice teas.
Such as the post on the articles, I will keep updating this list. The date means only the day when I started it.