Building high quality anki flash cards is sometimes difficult and time consuming. When I first started when flash cards, I always asked myself when and why I should make a card. Sometimes it was a spur of the moment decision. Some cards didn’t last very long, or I had to mark them down because they were poorly worded. Other times those cards didn’t follow supermemos 20 rules, which I consider to be a standard goldline practice for making any flash cards for long term memory retention, regardless of subject. Sometimes I make a card which I found interesting but really had no application to any goal I am striving to achieve.
Sometimes you have to write an annual work summary every year, of things you did to workplace. With dynalist its pretty easy. Once every week, I like to summarize all the important results + notable events that happened around that time. This is sometimes referred to as “sprinting”. What I like to do is write a daily journal of things I am currently working on, things that I would like to improve, thought processes that need to go on a piece of paper or in this case dynalist. So in dynalist, I have the following doc workflow:
About a few months back, I was tasked at rewrite a new catalog using Adobe Indesign. I hadn’t touched that program in almost a year, so I really couldn’t remember a lot of specifically nuanaces about the print industry and adobe AI. For instance, what margins / settings should I use? Which font-faces work best for fractions? Among that, many other specific questions that I could not recall. So I had to spend a great deal of time figuring out where I even put those notes as well. I hadn’t yet adopted my favorite notetaking app dynalist.io, so I didn’t quite recall where I put them, or where my specific notes were at.
Managing code snippets is extremely important when it comes to doing development. Because it is extremely difficult to remember all the things a programming language can do, while trying to solve a difficult problem. Even more so if you aren’t familiar with that language and are a programming noob like me.
Having ready-baked software that you have tested makes development significantly easier. Forgot a specific syntax? Forgot how to write an algorithm in a specific language? Forgot what a function does and the language’s official documentation / examples are too hard to relate too? Can’t recall which function should be used for converting strings to array, or different data types? Can’t trust someone elses code until you’ve tested and verified it yourself on your machine?
If you have any of these problems like I do, you’ll understand the importance of having your own code repository that you can refer to.
You might ask “Isn’t that what github is for?”, the answer is both yes and no.
Github and git subversion control is extremely important when it comes to keeping track of note / changelogs of a software package over time (as well as collaboration), but it was NOT designed as a place to handle pure code snippets.
By code snippets, I am referring to short 5-10 liners of code that handle common sets of problems that you encounter.
For instance, say I use this python code snippet when reading .txt files
import os dir_path = os.path.dirname(os.path.realpath(__file__)) lines = os.path.join(dir_path, "lines.txt") def main(): fh = open(lines) for line in fh.readlines(): print(line) if __name__ == "__main__": main()
There’s no way I will distinctly remember how to write this all out from memory since I haven’t used python long enough, but if I had this snippet of code somewhere I can easily copy+paste this snippet and modify things as needed. This way I only have to remember one piece of information at ANY point in time – where that file lives at – as opposed to knowing all the semantics / syntaxes
By only having to remember one thing as opposed to many, it makes it much more difficult to completely “forget” how to do things, if not impossible.
So instead of remember everything about a specific topic, I could just remember the place I remembered how to do something. This in turn enables me to retain essentially infinite amounts of information without really forgetting it and relearning it (since those notes are personalized to me), in fact this is sometimes referred to as a mind palace.
Managing Code Snippets
Back on topic
When it comes to managing code snippets, you could always resort to snippets named by subfolders, but this would get really complicated.
Especially when you have 1000+ of these code snippets and you start having trouble finding which code snippet was placed in which directory, or it takes too long to access those files
Because of this, its imperative to have a robust solution for taking short snippets of codes that can be accessed fast and scale well overtime
Previously, I had been using an app called https://app.gistboxapp.com/, which runs off your github gists into a nice user-friendly format.
I won’t cover all the specifics of gistbox. The problem I had with gistboxapp is the following:
- I can’t really add notes that quickly
- It takes me far too long to find whatever code snippet I stashed away
- I can’t organize regular notes along with it
- Too much wasted real estate on my screen
I ended up ditching gistboxapp for dynalist.io and haven’t looked back
I wrote 2 other posts on how I use dynalist in general, as well as what tools I use to make it awesome. It also covers how to add on codesnippets into dynalist using Piotr’s PowerPack extension.
One thing that Dynalist does well with Piotr’s PowerPack extension (see previous post) is the ability to create code snippets. This, along with all the other tools I use along with it allows me to take rich notes like these:
What you see above is my conceptual understanding of how a fibonacci sequence works in python as well as the math that goes behind it. Its powerful in the fact that I can combine:
- Code snippets
all at the same time to break down information in whatever form I want. This helps me understand a specific concept much easier, in turn makes it a very personalized note that I cannot really forget because its etched in my mind now
We can even take it further by adding mathmatical gifs to help break the concept down. E.g.
But I digress. This isn’t even the most powerful features I use with dynalist to help manage my code snippets
Below are the reasons why Dynalist is a superior code snippet manager to all its competitors
1 . You can take any flavor of notes you want effectively
One issue that I have with ANY dedicated code snippet manager, is that its purely dedicated to only handling code snippets for the most part.
Dynalist is first most a notetaking tool, not a code snippet manager, so you have powerful ways of organizing pieces of information together. These include
- The ability to collapse notes you don’t want to see
- Add as many sublists as yo uwant
- Bold and highlight important text as needed
- Markdown formatting
- Latex and Math
- Ability to add images, gifs
- Ability to add embedded youtube videos / codepen snippets, and much more
By having all of these features you can customize contextual text around those snippets much easier, allowing you to make those code snippets yours and therefore easy to recall
2. You can customize code snippet colors using CSS
I didn’t like the way some of code snippets looked like when appearing on the browser, so I modified my CSS so that its easier to look at :
color: #FFEBCD; /* Blanched Almond */
color: #FF355E; /* Radical Red*/
This is a part 1 response for this question from user “norm” : What do you use for taking longer / more complex notes” in dynalist http://talk.dynalist.io/t/what-do-you-use-for-taking-longer-more-complex-notes/1029
I figured I should probably just write my own post here (on my own blog), since I discussed bits and pieces on the forum many times, but not enough for the complete picture.
Its been awhile since I posted anything on this blog, as I haven’t gotten much oppurtunity to post anything as of late.
I’ve been postponing this software review for the longest time (7 months) and here it is in all of its glory (most of this information is highly condensed)
Writing blog content has never come easy to me. I know exactly what I want to write but many times I cannot find the correct words and descriptions to make my post easy to read.
However, I found an intermediate solution that works fairly well for me (skip the intro to next section if you’d like). Before I get into that, a little background on my blogging history:
If you’ve ever looked into hosting a blogsite, you’ll want a custom domain name for your readers to find / search. Chances are you already have a host like sitegrounds which manages its wordpress installs using cPanel
This quick guide will cover how to install a custom domain name (e.g., vincentmtang.com) to a wordpress host (e.g. sitegrounds) using cPanel.