Some simple rules to follow when doing things.
Simplify as much as possible. Never repeat myself.
Use only what I need. If something doesn't provide me any value, get rid of it.
Learn from my mistakes. If things fail, learn from it and move on.
Build ideas. Experiment. Take risks.
Be mindful of my actions and thoughts.
Don't compare myself to other people. Surround myself with people that inspire me.
Be consistent. Make friends with imperfection. Enjoy the process and don't fixate on the goals.
Don't judge anyone. Attempt to see another person's point of view.
Be honest. Don't lie to myself nor anyone else.
Embrace change. Never complain about anything. Be proactive.
Build good habits. Be strict in following through with new habits.
Adjust these rules and my workflow to match what I learned.
Follow these rules. Take it easy. You only live now.
Exercise. 50+ min cardio (walking/running/cycling) & 15 min bodyweight exercises or yoga daily.
Eat a whole food, plant based diet.
Drink lots of water & tea. Limit coffee consumption (1 cup / day max). No added sugar in drinks/food.
Sleep at least 8 hours every day. Wake up & go to sleep at same time.
Always have good posture. Sit properly and upright, don't bend my back/spine.
Everything in moderation. Avoid alcohol and hard drugs (like opiates).
Be very aggressive in cutting any kind of distractions when working.
Don't visit blocked sites and apps when focusing. Don't touch the phone unless necessary.
When focusing, do the task at hand and nothing else.
Be mindful of my habits and temptations. Don't succumb to them and focus on the task at hand.
Change location. Work from different places.
Look at where I spend my time in Timing and cut those out with Focus and scripts.
Use one screen when coding. Much easier to context switch.
Use noise canceling headphones if surroundings are too noisy.
Don't waste time. Step back and reflect on what I do.
Build useful tools. Create art.
Do one thing at a time. Resist temptations. Remove friction.
Deep focus. Minimize distractions. Say no to things. Set constraints.
No news/distractions during Focus time. Can only view 'news' sites on breaks.
Plan my time based on Focus Board. Make calendar events based on it
Prioritize. Do important things first. Be clear on what I want to achieve. Think long term.
Think about the problem I want to solve. Don't give up. Don't rush things.
Always breathe fresh air. Don't stay indoors for long. Open windows and go outside on breaks.
If my mind wanders and avoids doing the task, take a walk and do some exercise.
Do things that scale with time.
Reuse other people's work.
Use the right tool for the job. Only when you master a tool, do you learn when not to use it. Learn new tools.
Start. Don't be afraid to solve the problem no matter how complex or intimidating it may be.
Ship early. Get feedback and iterate on it. Rinse and repeat.
Track all time in Timing. Reflect on it at the end of the week.
Wear comfortable clothes. Have the same clothes in wardrobe for different purposes. Remove decision making burden.
Use standing desk when working where possible. Never sit for too long.
When sitting, sit up right always. Never slouch. Keep shoulders at good width. Be comfortable.
Always learn new things.
Document everything. Don't repeat things. Link instead.
Ask questions. Don't be afraid of not knowing something and ask for help.
There are no dumb questions. Do your own research first though.
Ask myself what is it that I am trying to solve or understand. Why?
Go deep. Specialize. Be great at some thing and then branch out.
Learn fundamentals first.
Draw. Use drawings and imagination to distill complex ideas.
Watch videos (talks & tutorials) in 1.75 or 2 speed, unless it hurts comprehension.
Listen to podcasts (~ 1.4 + smart speed). Audiobooks (Books & Audible) (1.25/1.5). With 1 when falling asleep.
Share everything I know and made.
Submit bugs and feature requests (Twitter or email (most often) with feedback assistant (for Apple)).
Value each animal’s life as equal to that of my own. Don't eat or hurt anyone.
Minimize suffering caused to other people. Be conscious of other people's feelings.
Only use what is necessary. Experiment with things but never keep things you are not actually using. That mostly includes plugins and modifications.
Establish a good mental model of what I need and what I use as I approach modifying my workflow and tools.
Use best tools available to complete tasks. If don't exist, create new tools or adjust existing ones.
Adhere to my budget that I set in Monzo.
Keep digital receipts of expensive purchases for warranty (scan it, if it's in paper).
Make sure the payments go through for everything (flight tickets, etc). It can cause troubles down the road.
Always have natural light present at home. Open windows, breathe fresh air.
Aggressively research whatever it is I don't understand. Google/dictionary/.. . Read, build a model of things in my head/software. Translate it to a workable solution.
Use my solving problems outline. Be flexible but persistent if the problem is worth solving.
Write code to be read by other people. Prefer to be explicit over implicit. Readability Matters More Than Correctness
Make the code run first. Then make it fast (if necessary).
Read documentation. Update docs where necessary.
Delimit files that have spaces with
- instead of
Use switch cases over long ifs.
Function name should describe what it does, not when it's run. Good function names summarize what happens inside.
Comment over my code. Be mindful of not repeating things. Don't comment obvious things.
In comments, don't write Will ... Just write what it will do. Remove unnecessary (filler) words.
Use imperative tense. Instead of # Outputs, use # Output.
Only add one space after the code for inline comments. Don't space them out.
Where appropriate, write a small comment on top of the file to describe the purpose of the file.
Say things that contribute to the conversation. Be honest.
Giving users too many options is often a bad idea. Give very few options but make each one of them count and stand out.
Do emails in burst. Bring my Inbox to 0 every day. Action on each email.
Label and archive important emails. Delete emails otherwise.
Pin emails that need my attention and I need to reference.
Only show relevant emails to me in Inbox.
Don't erase trashed email manually. Erase trashed emails of over a month automatically.
Use proper punctuation and capitalize things appropriately.
When making tasks (2Do, Trello, GitHub issues), use imperative tense.
Remove unnecessary and filler words. Use adverbs sparingly, they often undermine your point.
If something can be said in less words, say it in less words. Be clear and to the point.
Minimize using word here. When wanting to reference a certain URL, I don't need to mention and you can see it here. I can most likely just change the thing I want to show and wrap that in URL. It looks cleaner this way and saves space.
Use headings to separate sections of articles.
Use a spellchecker and lint mistakes.
Don't say Want to. Instead say Will in Changes. This applies more generally too, try be more proactive with anything I do. Intention counts.
Version control all projects.
Do atomic commits and write proper appropriate commit messages.
Commit often. Commits are cheap. I can always reverse changes.
Review all changes before committing.
Write commits in form of:
scope: subject. Prefix subject with an action (add/remove/fix/update). Use imperative tense.
Commit changes and push before making a release.
When making changes to other projects, respect their Git workflow and commit style.
Prefix branch names with
Squash commits into 1 before merging. (GitHub lets you easily do it from PR).
Add appropriate topics to each repo. Add the languages used in the repo as topics.
Use relative links instead of hard wired links. For example in GitHub you can use
../issues/ to reference issues of current repo from readme.
Decouple the issue/pr in the GitHub issue/PR itself. Using Bee app. Update it as I am working.
#readme to repos that are curated lists with simple README.
Create & update all gists from SnippetsLab.
Use HTML for rendering images if I need control of their size or position.
Add appropriate quote to briefly describe the repo (often is the same as description but with links).
If the README is long enough, add a Contents reference table.
Don't add anything that is not needed and focus on the content.
Add a way to visually show the workflow/library in action where appropriate.
Don't link to Imgur images as links, render them in the README itself.
Add image fully itself to the repository and reference it if the image is big enough and requires high quality.
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 say thanks badge on curated lists.
Don't need to add
: to the end of text when adding image below as it is implicit.
Only use HTML to adjust the image if the original size is not what I need. Don't adjust images blindly and check how the final image looks rendered compared to the text.
Use Bold for strong emphasis. Use Italic for soft emphasis. And
code quotes for actual code, variables, path names and quoting inline (in same sentence).
Share everything I know and need to reference in the wiki. Document my life and reflect.
Describe links on the same line with
Interlink entries between each other within wiki where necessary. Don't over do it.
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).
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 the lists from wiki. Find the right tool for the job. The wiki should act as a glue between things.
Keep all files lowercased.
If I am watching a talk, it is best not to jot down notes from the talk itself but capture ideas and note down these ideas in the wiki, sometimes referencing the talk where the idea or insight was taken from for context.
Think about structuring the content and entries as I add new entries. Should a new category be added for the topic (thing) and under what category should the entry be placed.
If I move a file anywhere in the wiki, make sure to search for the path to the file in the entire wiki and change the references to the previous file with new one.
Don't abbreviate folders and files. Unless it is clear what abbreviation means.
Add links to headings that link to the description of what the wiki file is about.
I need to, but say
I will .. or
I try to ... Be proactive. Intention counts.
Temporary shares with Transfer.
More permanent shares with Dropbox (wiki & articles). Don't delete items from shares folder unless the reference to it from either wiki or articles is gone.
If the files are stored on GitHub somewhere, I can use jsDelivr to get a downloadable link of the raw file.
Have a nice looking website. The first look matters.
Reduce noise. Don't follow any person or content I have no interest in.
Don't have more than 2 level of separation for filtering. (i.e. Top 1 / Top 2 lists on Twitter but no Top 3). Filter aggressively. Optimize for actionable/useful signal.
Have same profile picture across all social networks for consistency and profiles.
Be mindful of the data fingerprint I leave from using a service. If the service disregards my privacy and brings me no value. Don't use it.
When adding resources and bookmarks. Prioritize adding them to LA curated lists first and LA itself (not Trello). The goal of the wiki is to mostly contain my own notes and references.
The resources should be moderated and extended by the community through clear guidelines.
Comment all my aliases briefly saying what they do. Comment all Zsh functions. Be mindful that I can then search through these functions and aliases later.
Practice self documentation. Where possible, document things inline in the code base or app itself in some way. Don't duplicate things.
When doing macros to focus on something, name the macro like sidebar focus rather than focus on sidebar.
Minimize inputs and preconditions to macros. Sometimes it's possible that the input I need to a macro, I can get from another place within the macro itself.
Prefer making semantic mappings and chunk mappings by theme or context. Make it mnemonic.
Organize mappings by keyboard layout. Q -> W -> ..
Use mnemonic names for aliases/functions.
Keyword triggers should be one string (no spaces). Try to make keyword be semantically appropriate to workflow and easy to memorize and type.
Have descriptives external triggers with spaces between words (lowercased) for Karabiner.
Release all my workflows (that have no sensitive information) either in small workflows or standalone if they contain quite a bit of code.
Name all modifier triggers (uppercased).
Color Alfred objects that have errors in them and need to be fixed in red color. Acts as a
When preparing for interviews, code up solutions myself instead of looking at solutions. Be able to express solution in my own words.
Only have notifications from real people and 2Do. The rest should be blocked. No badges.
Spend time on phone mindfully. Read & be proactive.
Use Single Sign On where available. Mark it accordingly in 1Password (F (FB), G (Google), H (GitHub)). FB preferred for social circle.
Use 2FA where available. Saved to 1Password.
Upload all non personal 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).
Map command line tools in the curated list. Only add commands where I do want to add some optional commands as snippet to SnippetsLab.
Attach the URL to snippets as note as a first thing always if URL is needed. Add other notes underneath the URL.
Plan the next day fully in advance in the calendar. Follow through with the plan but adapt where necessary.
Only contain things I need to get done Today in Today. Important tasks are stored in Starred sorted by priority. Keep Today list manageable (< 15 tasks).
All 2Do tasks need to be actionable.
Work on tasks based on priority (starred completed first).
Don't include context in the task title. Add it as a tag instead.
Add time estimates to tasks that might take 1 hour or more, where appropriate.
If the idea is not private. Share it in Trello. Add relevant description and links to describe the idea clearly.
Let the ideas evolve. Work on it and it might change into something far greater over time.
Capitalize everything where appropriate (Sentences / Headings / Alfred workflows / GitHub descriptions / GitHub issues and PRs / Comments in SnippetsLab / Main dashed points / Tweets / ..).
When posting an error or an issue, give as much relevant information as I can to help debug it.
For asking questions about Alfred workflows, link to the workflow you are trying to edit in the comment. And paste the debugger output from when the issue occurs.
When asking for feedback, never ask people if they like the product I built. Ask them whether they don't like anything instead.
Welcome any feedback. The more critical feedback, the better. Iterate on it.
When reading articles in Reeder, use stars on articles liked. Can have a process to later transfer these stars to wiki.
Make notes as I read books.
Review each book I read on Goodreads and add it to an appropriate category. Add the review to books after.
Work to complete the task I have at hand.
Set deadlines for all things. Adjust plan according to the deadlines.
Deadlines set are of utmost importance. Do my best to complete the deadlines I have set for today before venturing in trying to do anything else. Learn how to deal and set appropriate deadlines with time.
Limit distractions. Strive to increase signal to noise ratio.
Always turn Focus when starting to work and make things and fully focus on the task/s at hand. 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.
Always have water next to me.
Work away from home ideally.
Don't make a card of a fact or something that you can easily look up.
Check my work and go through my calculations again. It's easy to miss something.
Meet new people. Go to seminars, talks, conferences.. even if you won't understand much of it. Big chance you'll find something interesting or meet someone.
Comment over all mappings in vimrc itself.
Only add things that are essential to me and what I actually use.
Top should include posts with highest value to me. Put other profiles into other lists appropriately. Don't keep
top too big.
Prefer to have the prefix reference the meaning in some way for easier mental mapping of prefix to meaning.
Name and prefix things with focus on clarity. The semantics of prefixes should ideally be obvious. And naming should be appropriate.
Prefer to sleep and wake up at the same time.
6:30AM - Wake up.
10:30PM - Sleep.
Sleep for ~ 8 hours each day.
No Mac/phone in bed in the the morning.
Minimize News time and aim at < 40 hour News time a day. Ideally less. Block everything that is distracting when working.
Mark all time past in Timing. Adjust filters and projects to what kind of things I am working on.
Keep screenshots and interesting images saved in Pixave.
Only run apps I actually need. Quit everything else.
Delete apps I am not using and have no need over. Only use what I need or may need.
Have full control over what is going on my system to a reasonable degree. Don't use/install things I do not actually need.
Don't force empty trash. Erase trashed items automatically after a week.
Yellow arrows & text is much nicer than red when annotating on screenshots with Annotate.
Don't play games on mac. Use more suitable platforms for it like Windows/PS4.
Install packages with nix always. If package not available, make a derivation myself.
Always plan the next day ahead of me with events. Adjust the schedule on the day only where necessary. Stay true to the schedule.
Only bookmark personal information and links. The rest should be available via curated lists.
Add any new recipe I discover or make to Paprika. Add correct ingredients, instructions and a photo to each recipe.
Don't save unnecessary information. This mostly concerns tracking data and the like. More data is not always better. Quality and purposeful data is.
Make the data actionable in some way. Either as a way that you can query it later and read or look back upon in the future (as is case with Day One) or as a way you can immediately take action on in form of analysis of it.
Knowing what goals you have and the reasons why you are collecting or using certain kind of data is important and saves a lot of time in the future when you want to minimize and simplify things in life.
Data that is not backed up is lost data. Automate backups.
Share boards publicly that contain no sensitive or private information.
Order of importance for cards: Watching -> Next -> No label.
Add links to wiki or curated lists over adding them to Trello where appropriate.
Buy travel/train/accommodation arrangements for future events/conferences as soon as possible (if I know I will be attending the event).
Plan travels in advance in order to save on travel expenses.
Proof check the dates you are getting the tickets for. Make sure they are ones you want/need (i.e. going to event).
Check everything once I leave a room. In case I forget anything.
Avoid confusion. Don't use anything only I can understand.
Be aware of my own quirks and ask myself why I do what I do.
Don't overthink things to the point of not doing anything.
Don't purposefully hurt myself in any way.
Everything evolves with time. Projects, articles, ideas will evolve with time and will never be what I first envisioned them to be.