The most common functionalities of function keys
• F1: help
• F2: rename/edit selected
• F3: open finder, find next
• F4: focus address bar, toggle fullscreen, close
• F5: reload, run
• F6: focus next, focus address bar
• F7: open spelling and grammar checker, open thesaurus, toggle caret browsing
• F8: open the macros dialog, safe mode
• F9: take a screenshot, refresh document
• F10: focus menu bar
• F11: toggle fullscreen, open editor
• F12: open debugger
• F1: help
• F2: rename/edit selected
• F3: open finder, find next
• F4: focus address bar, toggle fullscreen, close
• F5: reload, run
• F6: focus next, focus address bar
• F7: open spelling and grammar checker, open thesaurus, toggle caret browsing
• F8: open the macros dialog, safe mode
• F9: take a screenshot, refresh document
• F10: focus menu bar
• F11: toggle fullscreen, open editor
• F12: open debugger
Do not be so blinded by the idealistic and perfectionist advantages of unification and purity to ignore its disadvantage in implementation and efficiency.
Imagine exposing an infant only to formal logic, with a unified syntax and minimal symbol set instead of any natural language.
“I'm afraid of losing my obscurity. Genuineness only thrives in the dark.”
— Aldous Huxley
— Aldous Huxley
Shape ideas and then name them; do not make up ideas for the sake of the names.
“Anything on the screen should be purely informative about my prior actions, "what you've typed", not "what you can type"”
— the semicolon, advocating CLI over GUI
— the semicolon, advocating CLI over GUI
1. Create a name set surrounding your idea.
2. Partition your idea to properties.
3. Group properties to intensions and essence.
4. Optionally separate one idea to a hierarchy of ideas.
5. Evaluate your name set.
6. Name each idea.
7. Formally describe ideas.
2. Partition your idea to properties.
3. Group properties to intensions and essence.
4. Optionally separate one idea to a hierarchy of ideas.
5. Evaluate your name set.
6. Name each idea.
7. Formally describe ideas.
For every unformalized general problem there is a set of informal specific problems that if they become formalized, sufficiently lead to said generalization.
ComputerScientist
For every unformalized general problem there is a set of informal specific problems that if they become formalized, sufficiently lead to said generalization.
“By a small sample we may judge of the whole piece.”
— Miguel de Cervantes
— Miguel de Cervantes
“Using case-insensitive filenames and commands is an act of evil and the sinners must be punished with deprecation.”
— the semicolon
— the semicolon
“Chuck's greatest contribution was teaching that understanding and simplifying the problem was far more effective than adding complexity to a solution.”
— massung, GitHub comment
— massung, GitHub comment
How to keep your code clean
• Modularize: break it down to pieces that make sense alone and may be reused elsewhere
• Have general conventions for naming files, modules, functions, variables, etc.
• Document everything: write comments, docstrings and function helplines
• Keep performance in mind: free files, resources and dynamic memory
• Abstain from repeated code: use procedures and functions instead
• Keep your code readable using indentation and alignment
• Keep global variables to a minimum by using singletons
• No surprises: handle exceptional cases
• Modularize: break it down to pieces that make sense alone and may be reused elsewhere
• Have general conventions for naming files, modules, functions, variables, etc.
• Document everything: write comments, docstrings and function helplines
• Keep performance in mind: free files, resources and dynamic memory
• Abstain from repeated code: use procedures and functions instead
• Keep your code readable using indentation and alignment
• Keep global variables to a minimum by using singletons
• No surprises: handle exceptional cases
A worthy abstraction is one which is achieved through introducing little indirection.