Some simple rules to follow for myself 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 eat animals, don’t hurt any person. Don't waste anything.
- 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. Gym/Tennis/Run every morning.
- Eat a whole food, plant based diet. One salad every day.
- Drink water, tea and occasional coffee. No added sugar in drinks/food.
- Fast for 16 hours daily.
- Sleep at least 7 hours every day. Wake up & go to sleep at same time.
- Take Vitamin D & Vitamin B12 every morning.
- Everything in moderation. Avoid alcohol and hard drugs (like opiates).
- Lead a happy, mindful, stress free life.
- 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 day & week.
- Wear comfortable clothes when working from home and outside.
- Sit properly, don't bend my back.
- 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.
- Less than 1 hour News time every day.
- Use one screen when coding. Much easier to context switch.
- Don't listen to distracting music. Use Noizio, Oak or Focus playlist.
- Sit up right always. Never slouch.
- 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.
- Draw. Use drawings and imagination to distill complex ideas.
- Value each animal’s life as equal to that of my own. Don't eat anyone.
- Minimize suffering caused to other people. Be conscious of other people's feelings.
- Track every purchase made with YNAB. Put every purchase in its respective category.
- Adhere to my budget that I set for each of the categories. If there is no budget left for eating out. Don't eat out.
- Keep digital receipts of expensive purchases for warranty (scan it, if it's in paper).
- 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.
- Delimit files that have spaces with
- 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.
- Share everything I know and made.
- 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.
- 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 leave unnecessary whitespace between headings and text.
- 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 quotesfor actual code, variables, path names and quoting inline (in same sentence).
- Leave one space after text for image embed.
- Share everything I know and need to reference in the wiki. Document my life and reflect.
- Describe links on the same line with
-separator (if needs more description, then sub dash).
- 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.
- Don't say
I need to, but say
I will ..or
I try to ... Be proactive. 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.
- 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.
- Add appropriate topics to each repo. Add the languages used in the repo as topics.
- Make many experiments and share them.
- Use relative links instead of hard wired links. For example in GitHub you can use
../issues/to reference issues of current repo from readme.
- 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 iff 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 Thank You clause in idea stage projects.
- Don't add Say Thanks badge on curated lists.
- 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 Rawgit to get a downloadable link of the raw file.
Shipping a product
- 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 lock myself into using a service. Have my own system in place and give the social media a purpose. If there is no purpose to it, don't use it.
- 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.
Adding resources (links)
- 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.
- All macro names are lowercased. Unless it is necessary.
- 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.
- Prefix variable names by action (i.e. EDIT/OPEN/ALFRED). Each variable name should be descriptive.
- Keyword triggers should be one string (no spaces). Try to make keyword be semantically appropriate to workflow and easy to memorize and type.
- Name external triggers with spaces between words (lowercased).
- 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
- Alfred workflow description should be the same as GitHub description.
- Use one tree structure for organization especially when sharing maps (makes the map much easier to follow).
- If I publish the article, private note or anything that is not worth keeping. Delete it from Ulysses. Only keep
in progressthings in the library.
- 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.
- Lowercase and prefix all snippets. Notes uppercased.
- 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 in Today.
- 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 more than 10m, 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.
- Prioritize repos in the sidebar based on priority/urgency.
- 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.
- Add all songs I like to my Likes playlist.
- Add all songs I love to Bliss playlist.
- Add songs to other playlists accordingly.
- License my own code under MIT.
- License curated lists and other things under CC0.
- 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.
- 5:30AM - Wake up.
- 10:00PM - Sleep.
- Sleep for ~ 7 hours each day.
- No Mac/phone in bed in the the morning.
- Minimize News time and aim at < 1 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.
- Only use what is necessary. Experiment with things but never keep things you are not actually using. That mostly includes plugins and modifications.
- Try to establish a good mental model of what you need and what you use as you approach modifying your workflow and tools.
- 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.
- Do emails in burst. Bring my Inbox to 0 every day. Action on each email.
- Archive emails if I want them to be searchable later. Delete emails otherwise.
- Star emails that are important and I may need to reference later.
- Sort newsletters automatically into groups for later viewing.
- Only show relevant emails to me in Inbox.
- Label all emails accordingly (if it is appropriate).
- Don't erase trashed email manually. Erase trashed emails of over a month automatically.
- 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.
- Include all my Instagram posts in Photos. Link Twitter tweets, last.fm, movies seen.
- Install packages with nix always. If package not available, then use brew or 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.
- Watch talks and tutorials at 1.5+ speed. Unless it hurts comprehension than watch it at slower speeds.
- 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.
- Don't force empty trash. Erase trashed items automatically after a week.
- Share boards publicly that contain no sensitive or private information.
- Order of importance for cards: Watching -> Next -> Important -> No label.
- Add links to wiki or curated lists over adding them to Trello where appropriate.
- All newsletters should never reach inbox and be automated to appropriate mailboxes.
- 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.