u/Due_Battle_9890

Organizing Notes, Review Material, and Paper Review: Want Your Thoughts

Hey,

Probably not unlike a lot of you, I like to invest in continuous education and read papers, but I’m at bit of an impasse and would like your thoughts on organizing my vault. First, I’d like to share with you my workflow when approaching a subject.

  1. Create a note that’s dedicated to the chapter of my book
  2. Scan my chapter as a first pass
  3. On a light second pass, I write down in my notes questions and concepts I think I should understand
  4. On third pass, I actively read and take interactive notes. I also write to a dedicated section called points of confusion
  5. I review my notes and create a review section where it asks questions I should know the answer to
  6. Cleanup. At this point, I take my sloppy bullet points and turn it into something structured. I’ll often break the page into more atomic pages organized by topic rather than chapter.

I do similar-ish things for papers.

I have 5 top level directories:

- Reading/Lecture Notes
- Sloppy notes taken from when I read the chapter
- These really don’t link to anywhere and are just orphaned notes organized by Book/Chapter1.md
- Knowledge Base
- This is where the cleaned up version of chapter and lecture notes live
- Paper Review
- I didnt touch on this, but I integrate Zotero and specifically paper reviews and thoughts under this directory
- I keep this separate from my knowledge base, but these are cleaned up thoughts on papers. Ill often reference these papers in my knowledge base
- Anki
- I create a directory dedicated to Anki. I use Obsidian to Anki
- Fairly messy, but I organize by topic
- Project Notes
- For my ongoing projects, I keep lessons learned and thoughts here. Also fairly disjoint

This structure doesn’t feel ideal. The graph it create is rather disjoint. I would really like to better integrate review material into Obsidian. The Anki cards are kind of a monster, but work well enough. My paper organization also feels disjoint.

Want your thoughts and your setup if you do something similar?

reddit.com
u/Due_Battle_9890 — 10 hours ago

Wrote a small tool to drastically improve studying and some thoughts

Hey,

I wrote a small tool that I think drastically improves studying and learning in general. I actually think AI could be incredibly effective for learning if used correctly. It's far too often AI is used ineffectively. Ironically, it's both the worst and best thing for education.

The tool works by incorporating the best research in the field[^1]:

  • retrieval practice,
  • spaced repetition,
  • elaborative interrogation, and
  • self-explanation,

You provide a resource and it begins tutoring you. It doesn't explain things for you and instead, probes your understanding of a given topic. It forces you to apply studying best principles instead of just re-reading and highlighting, which have been shown to be ineffective [^1].

You could see what it looks like after you ingest material: here. You might note the few toggles available, feynman, labs, confidence levels :)

There's also first-class support for ePUB, PDFs and semi-support for YouTube (it grabs a transcript only, but you need only grab a link)

ePUB: https://imgur.com/a/11CW4RC

Opening a Resource: https://imgur.com/a/friPw78

I view AI usage as either additive or subtractive. I'll begin with the latter case, the subtractive case, where AI usage is harmful for learning. In the subtractive case, you offload your thinking to AI and have it summarize or explain things for you. This is obviously harmful and you do not meaningfully learn in this case. You're not doing "mental reps" necessary. The strain is where you learn.

In the additive case, you do everything you normally would. Whenever I read a paper or watch a lecture, I use the SQ3R[^2] method as I think it's the most effective technique. I still use it, but I use this tool in addition to SQR3, labs, projects, practice problems, etc. Why? First of all, it's interactive and the feedback feels good and second, it forces the use of best practices. It suggests exercises or labs I otherwise wouldn't have thought of. It forces me to explain things back and acts as a pupil who will continuously ask questions. It forces me to use retrieval practice when I otherwise wouldn't. There's also been times where I thought I understood a topic, but through probing, turns out it didn't. I do everything I normally would have before this tool and use this tool, hence why it's additive.

Why not just chatgpt.com? First class support for resource ingestion. Makes it easy! I also find it useful to use a dedicated tool. There's also vim support built in for typing nerds. I wanted a fun project to work on! References:

[^1] Hattie & Donoghue (2021) — "A Meta-Analysis of Ten Learning Techniques"

[^2] https://ctl.stanford.edu/students/reading-efficacy-sq3r-method

u/Due_Battle_9890 — 2 months ago
▲ 4 r/ghidra

Hey,

I was wondering what's the recommended for PyGhidra

I've been doing

class MyScript(GhidraScript):
  def __init__(self):
    super().__init__()
    self._state_var = 1 # Example
  def _do_thing(self):
    ...
  def _do_other_thing(self):
    ...
  def run(self):
    self._do_thing()
    self._do_other_thing()

m = MyScript()
m.run()

There's little examples and simply defining run doesn't seem to work (I actually need to invoke it)

Is there any reason to inherit from GhidraScript?

reddit.com
u/Due_Battle_9890 — 2 months ago
▲ 3 r/ghidra

Hey,

I am still learning Ghidra Scripting and have a question about about DBs. I am still getting used to navigating the docs and noticed that many of the classes are suffixed with DB (e.g., InstructionDB). I understand that these are just objects that inherit from DatabaseObject, but I want to make sure my understanding is correct. The docs describes it as:

> Base class for an cached object in the database. Database objects have keys. They are marked as invalid when a database cache is cleared and can be revived on a refresh as long as they haven't been deleted. Instantiating an object will cause it to be added immediately to the associated cache.

I'd like to take it step by step

> Base class for an cached object in the database.

Ghidra maintains a database and it's how, instead of re-analyzing or recomputing anything, Ghidra will cache it in the database

> Database objects have keys.

This is how you identify the object

> They are marked as invalid when a database cache is cleared and can be revived on a refresh as long as they haven't been deleted.

So, does this mean this isn't added to DB (only on save).

My second question:

It's a little more broard, but I get a bit overwhelmed searching the ghidra docs. Let's say that I want to iterate through the all the instructions, here's what I would do:

1.) Get the starting address

  a.) It's an ELF so I can get the start address

    i.) Could just grab the e_entry

  b.) But I have to construct `ghidra.app.util.bin.format.elf.ElfHeader`.

    i.) Have to construct it with a `ByteProvider`

    ii.) What's a byte provider???

    iii.) Do I just give the image base

The point is, it seems that navigating the ghidra API is horrid. It seems that it's obtuse and uses heavy inheritance (very java-y). I searched online and then I find something like. this, which is nicer. But this iterates when it encounters a null or is cancelled. I'd like to iterate over the entire text section which I think still requires me to get ELF details.

My general question: how does one actually navigate the docs? What are your strategies?

Thanks in advance!

u/Due_Battle_9890 — 2 months ago