Code Monkey home page Code Monkey logo

tilbit's Introduction

TILBit

Retain the information you consume. Think deeply about things you learn.

Assumptions

  • Quality of information is more important then quantity.
  • You can only retain quality information by reflecting on it periodically.
  • Timing of information is very important, but hard to pin down. The best we can do is to trigger recall often and hope it's relevant.

Features

  • Quickly add thoughts throught the command line. Supports in-line JSON metadata.
  • Parse highlights done on a Kindle (via "My Clippings.txt" file)
  • Support for a custom Markdown file format for TILs from one source.

Usage

Get random tilbit from default sources:

tilbit
# or
tilbit show random

Get a specific tilbit:

tilbit show 1a4f5080

Get all tilbits:

tilbit show all

Load from a specific source:

tilbit show random --source=seeds/  # for directory
tilbit show random --source=seeds/ralph-waldo-emerson.tilbit.md  # for specific file

Show specific format:

tilbit show random -f=box
tilbit show random -f=text
tilbit show random -f=yaml

Formats

  • box - default terminal UI like decorator
  • text - plaintext, with source data in specific format
  • yaml - plaintext YAML, dumping all the data about an item, useful for inspection

Configuration

Default sources

Suggestions for use

  • Do not fill your database with quotes from random sources. Only add things that really spoke to you.
  • Focus on your own learnings, rather than "inspiration". The goal is to make you think about the media you consume and consciously learn from it.
  • Do not drown yourself with recall. Aim for one item per hour at most. Think about the item for at least 30 seconds.
  • Focus in "write" rather than "read", especially in the beginning. You're instinct will be to be a consumer of data, we want to transform ourselves into being able to think crititally about what we are consuming and thinking about it deeply.
  • A negative result is a result. If you haven't learned anything worthwhile, think about how you got to that particular item. What made you want to read it? How did it draw you in.

Temporary database migration plan - to be removed.

I want to transition the tool to have a permanent local database of items. This is general has a lot of strong points, mostly relating to how data can be queried without re-inventing the wheel.

To keep the simplicity of having just a set of text files that can be freely edited, I've decided to keep the option of having them as sources. The db will be used to annotate them. The only problem this approach has, is that if the content of the tilbit changes, there will be orphaned items in the database. This could potentially be solved by caching the content of the tilbit and if any orpans are detected, to try to find the new iteration using some kind of fuzzy text metric (like Levenshtein distance).

I want to do this in a very non-breaking and small steps approach so the tentative plan is to:

  • keep the source approach for now
  • refactor the current sources into a new repository struct
  • implement and test the db handlers and all the db as a new alternative repository
  • implement importers that will wrap current parsers
  • the db will be an in-memory database for the time being that runs importers on each run
  • this will allow for gradual testing and moving to a new approach
  • at some point, I will just move the sqlite from in-memory to a file and cut down on the overhead

tilbit's People

Contributors

gregpk avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.