For programmers
An O'Reilly book in PDF, a 600-page specification or an arXiv paper reads like a book: one column, your type size, and every listing intact, with its indentation and colours by language. The AI answers with the text and the code of the book, not with what it remembers: every answer brings the passage and the page, and one tap takes you there. No account, no install, no upload.
Reading asks for nothing. An account is asked for only when you ask a question; it is free and only needs an email.
3.3. Composition19
So far, we have only been using the functions that come with Python, but it is also possible to add new functions. A function definition specifies the name of a new function and the sequence of statements that run when the function is called. Here is an example:
def print_lyrics():
print("I'm a lumberjack, and I'm okay.")
print("I sleep all night and I work all day.")def is a keyword that indicates that this is a function definition. The name of the function is print_lyrics. The rules for function names are the same as for variable names: letters, numbers and under-
score are legal, but the first character can't be a number. You can't use a keyword as the name of a function, and you should avoid having a variable and a function with the same name.
19
What you see above: page 41 of the Think Python PDF (Allen Downey, CC BY-NC), as it comes out of the converter. The running header and the folio are removed, the text flows in your type size, and the listing stays intact: indentation, line breaks and Python colours. An EPUB with code looks the same. The text is trimmed to fit; nothing else is.
The original page is still there. Switch whenever you want.
What it is for
What changes between a 500-page book, an RFC and a two-column paper is the layout; code, index and questions work the same in all three.
Try it: press a marker in the answer.
How is rebase different from merge, and when should I not use it?
Both integrate changes from one branch into another. Rebasing replays the changes of one line of work onto another in the order they were introduced; merging takes the endpoints and merges them together. The final snapshot is the same, only the history differs. And the book's rule is one line: do not rebase commits that exist outside your repository and that people may have based work on.
“Rebasing replays changes from one line of work onto another in the order they were introduced, whereas merging takes the endpoints and merges them together.”
“If you rebase commits that have already been pushed publicly, and people may have based work on those commits, then you may be in for some frustrating trouble, and the scorn of your teammates.”
Note that the snapshot pointed to by the final commit you end up with, whether it's the last of the rebased commits or the final merge commit, is the same snapshot; it's only the history that is different. Rebasing replays changes from one line of work onto another in the order they were introduced, whereas merging takes the endpoints and merges them together. If you rebase commits that have already been pushed publicly, and people may have based work on those commits, then you may be in for some frustrating trouble, and the scorn of your teammates.
What it does not do
This is the audience that smells hype. This is what Marginalia is not and what it does not do well yet with technical books.
Privacy
What it is tested with
The converter is tested with these openly licensed documents, and the reading order is compared with the published text where there is one. Code listings are checked by hand: indentation, line breaks and no prose inside.
If your PDF comes from another layout and comes out wrong, send it: every new layout goes into the tests.
Questions
Yes. Monospaced blocks are detected by font and by geometry, indentation and line breaks are kept, and they are not mixed with prose. If a listing comes out wrong, that is a converter bug and the PDF is welcome.
Thirty-two grammars: JavaScript, TypeScript, Python, Java, C, C++, C#, Go, Rust, Kotlin, Swift, Ruby, PHP, SQL, shell, HTML, CSS, JSON, YAML and others. The book can declare any of them; without a declaration, the dominant language of the book is used.
Yes. Select it and ask: the AI receives that block and answers about it, citing the book. Direct actions on a selection (explain line by line, what it prints) are on the way.
Yes, it is a full EPUB reader: index, search, highlights and notes. The listings in those books declare the language and come out coloured with it.
To read it, yes: the file does not leave the browser. When you ask, the question travels with the passages needed to answer it, so with code or specifications that must not leave it is better not to ask.
Nothing today: reading needs no account; asking does, and it is free with a daily and monthly cap that is generous. There is no API and no desktop app; it is a website that installs as an app.
Start
No account and nothing to install. Pro Git opens at once; a PDF with code converts once and stays saved. If you read often, it installs as an app.