# Rules

Some simple rules to follow for myself doing things.

## General

• Name and prefix things with focus on clarity. The semantics of prefixes should be obvious. And naming should be appropriate.

## Wiki

• Only add snippets of code that are really useful.
• Keep simple things I use for my own reference in SnippetsLab only.
• Heading should always be on one level heading.
• And Snippets / Notes / Links / on two level heading.
• Everything else on three levels where appropriate.
• Describe links on the same line with - separator (if needs more description, then sub dash).
• Don't repeat myself or anyone else.
• If something has already been said either by me or someone else, link to it (especially in this wiki).
• Interlink entries between each other often within wiki where necessary.
• Don't over do it.
• Try to use other services for logging and other things where possible. Like in the case of Letterboxd and its Lists feature. It's better to make lists there and link to them from wiki.

## Git

• Always initialise new projects with Git.
• Do atomic commits and write proper appropriate commit messages.
• Don't use emojis in commit messages. Aside from ✨ commit in Knowledge repo.
• Everything else, add explicit, ideally atomic commit messages.

## Code

• Comment over my code (be mindful of not repeating things, sometimes code speaks for itself).
• Uppercase comments for consistency.
• Write code to be read by other people. Prefer to be explicit over implicit.

## Karabiner

• Document any changes I make in Karabiner map instantly in the map (update where necessary).
• Try to make semantic mappings and chunk mappings by theme or context.

## Markdown

• Don't leave whitespace between headings and text.
• Don't need to add : to the end of text when adding image below as it is implicit

## GitHub

• Add appropriate topics to each repo.
• Make many experiments and share them.
• Add credits to repos and acknowledge work of people I am using.

## GitHub README

• Use HTML for rendering images as I have more control on the size and things.
• Add appropriate quote to briefly describe the repo (often is the same as description but with links)
• Don't repeat what is said in the quote in the description underneath the quote.
• If the readme is long enough, add a Contents table
• Don't add anything that is not needed and focus on the content.
• Add image or logo if possible to visually show the workflow / library in action.
• Don't link to Imgur images as links, render them in the GitHub README itself.
• In screenshots of Alfred prompts and other prompts, show the cursor.
• Add Related section to most repos linking to similar projects either of my own or of other
• Not all projects need this.
• Don't add Thank You clause in idea stage projects.
• If the project has many ways to contribute, create a contributing.md file and link to it.

## Alfred

• Name triggers with spaces between words (all lowercased)
• Release all my workflows (that have no sensitive information) either in small workflows or standalone if they contain quite a bit of code
• Add keyword triggers and descriptions to workflows even if I don't use them
• Name all modifier triggers (uppercased)

## MindNode

• Use lighter themes for sharing (it's nicer) (and using in general)
• Use one tree structure for organisation especially when sharing maps (makes the map much easier to follow)

## Writing

• Use proper punctuation and capitalise things appropriately
• When adding :, don't add space beforehand
• Remove unnecessary words
• If something can be said in less words, say it in less words
• Always try to be clear and to the point
• Both in code and prose. Say more with less and never repeat myself.

## Social Networks

• Only add people I really know on Facebook.
• Only add/follow people I am really interested in other networks.

## Sharing files

• More permanent shares are shared with Dropbox
• Don't delete items from shares folder unless I delete the file somewhere myself
• Temporary shares with Transfer
• If the files are stored on GitHub somewhere, I can use this to get a downloadable link of the raw file

## Releasing workflows with OneUpdater

• Don't forget to update version number and then also commit the workflow so info.plist on GitHub has the latest version

## Working

• Work to complete the task I have at hand
• Turn on Focus block when starting a work block and focus fully on the tasks
• adjust the focus list to block even more distractions and tune my workflow to only do the task/s I have
• Live by my calendar
• assign tasks and blocks of time in advance and work through each of the blocks
• adjust when necessary
• Work away from home.

## SnippetsLab

• Upload all non sensitive snippets as Gists.
• Create smart group for each new prefix I add.
• Add correct language syntax to every snippet.
• Prefer to use comments in the code itself rather than notes (easier to follow).

## Planning

• Plan the next day fully in advance in the calendar
• plan deadlines one week in advance
• follow through with the plan but adapt where necessary

## My Mind

• Uppercase entries in the main map + articles / GitHub + notes

## 2Do

• Only contain things I really need to get done in Today
• All 2Do tasks need to be actionable
• Work on tasks based on priority (starred completed first)

## Ideas

• If the idea is not private or something really small
• Share it in the wiki (or hopefully soon in crafting ideas)

## Capitalising things

• Capitalise everything where appropriate (Sentences / Headings / Alfred workflows / GitHub descriptions / GitHub issues and PRs / Comments in SnippetsLab / Main dashed points / Tweets / ..)

## Ship app

• Prioritise repos in the sidebar

## Stack Overflow CV

• Only add repositories that are meaningful to the list

## Reading books

• Make notes as you read books
• Review each book you read on Goodreads and add it to an appropriate category
• add the review to books after

## Productivity

• Always have water next to me. Drink water when taking breaks and take breaks.
• Set deadlines for all things. Adjust plan according to the deadlines.
• Sound of rain and thunderstorm is the best sound to write code to.
• Limit distractions. Strive to increase signal to noise ratio.

## Anki

• Post all my anki decks in the wiki here under anki decks
• Lowercase all deck names and folders
• Follow the same capitalising rules as in markdown for making cards
• start all cards capitalised
• Don't make a card of a fact or something that you can easily look up

## Product Hunt

• Add products I like to an appropriate collection.

## Vim

• Document my main mappings in the vimrc itself (make things easier to search for)

## Spotify

• Add all songs I like to my Likes playlist
• add all songs I really like to Favourites playlist
• add songs to other playlists accordingly

## Focus

• Be very aggressive in cutting any kind of distractions when working
• look at where I spend my time in Timing and cut those out with Focus and scripts

## Airmail

• Action on all emails and keep Inbox 0 at all times
• Archive emails if I want them to be searchable later
• delete emails otherwise
• Label all emails accordingly (if it is appropriate)

## Licensing

• License my own code under MIT
• License curated lists and other things under CC1

## File naming

• Prefer to use - instead of _ in naming script files.

## Prefixing

• Prefer to have the prefix reference the name in some way for easier mental mapping of prefix to meaning.

## Sleep

• Prefer to sleep and wake up at the same time.
• 5:30AM- Wake up.
• 10:00PM - Sleep.
• Sleep for ~ 7 hours each day.

## 1Password

• Write down licenses of things purchased in there

## Tracking

• Minimise Distracting time and aim at < 1 hour Distracted time a day. Ideally less. Block everything that is Distracting when working.

## Day One

• Mark all memorable moments and experiences in Day One.
• Mark memorable moments throughout the day and put them in Photo a Day journal.

## Images

• Keep screenshots and interesting images saved in Pixave.k

## Knowledge indexing

• Index knowledge that is actionable in case I might need to reference it later.

## Email

• Do emails in burst. Bring my inbox to 0 every day. Action on each email.
• Star emails that are important and I may need to reference late.
• Sort newsletters automatically into groups for later viewings.
• Only show relevant emails to me in Inbox.

## Finance

• Track every purchase made with YNAB. Putting it in its respective category.
• Adhere to my budget that I have set for each of the categories.
• If there is no budget left for eating out. Don't eat out.