I still use plain text for everything. (2016)
lifehacker.com
lifehacker.com
The FOSS world thinks it's innovative but it's stuck in the 1980s. And because of that, ordinary people (and tech geeks) don't have a way to personally utilize and store their copious multimedia - it's all tied to some company's servers. For example, there's no good way to backup your Snapchat or Facebook page, or even better, to create an equivalent locally.
But I also guess the likes of Facebook make it hard to access "your" data on purpose
Some are better than others.
All of these are easily convertible to HTML or many other formats using something like Pandoc[1].
They're also pretty easy to write and to read.
It's not like posting something on Facebook, or using a good text editor.
Care to explain what you mean with multimedia? What is missing with the existing audio/video/picture-formats?
> And because of that, ordinary people (and tech geeks) don't have a way to personally utilize and store their copious multimedia
There are dozens of tools to organize and utilize your media-content? Kodi is widely used as I know.
> For example, there's no good way to backup your Snapchat or Facebook page,
How is this the fault of the FOSS-world? They can't dicate a company what they offer and what not.
> or even better, to create an equivalent locally.
Yes, but for what? What is Facebook or Snapchat in your mind that it would be even neccessary to create it locally? But, there are tools with similar function. It's just not simple to use, because such services are not simple by they their own nature and nobody, neither FOSS nor commercial world, has made it simple enough yet to setup services for any random user.
To be clear, my wishful thinking would include an editor for images and video that's like a great text editor.
Open source is a license, not a standard.
Like HTML or PPTX.
Plain text is a design decision that is still advantageous today. Plain text is universal and easy to build more complex formats on top of. It can easily be inspected, edited, compressed, encrypted, diff'ed, filtered, and processed by tools on any platform.
ESR wrote: "Text streams are a valuable universal format because they're easy for human beings to read, write, and edit without specialized tools. These formats are (or can be designed to be) transparent.
Also, the very limitations of text streams help enforce encapsulation. By discouraging elaborate representations with rich, densely encoded structure, text streams also discourage programs from being promiscuous with each other about their internal states and help enforce encapsulation."
Source: http://www.catb.org/~esr/writings/taoup/html/ch05s01.html
Moreover, the FOSS world is what is pushing technology further, without FOSS you wouldn't have git, ffmpeg, 7z and other archiving tools. The reason why a lot of FOSS tools deal with plaintext is because it opens much more doors than you can even think about.
BTW, if you're an EU citizen you can get zipped html copies of your FaceBook data, and I assume of Snapchat as well.
(there are even packages for making a screenshot and dropping the file in the current folder and making the aforementioned link, which I use a lot during online lecture note taking)
"Text manipulation languages are to programming what routers are to woodworking. They are noisy , messy, and somewhat brute force. Make mistakes with them, and entire pieces can be ruined. Some people swear they have no place in the toolbox. But in the right hands, both routers and text manipulation languages can be incredibly powerful and versatile. You can quickly trim something into shape, make joints, and carve. Used properly, these tools have surprising finesse and subtlety. But they take time to master. "
Quoted from https://flylib.com/books/en/1.315.1.37/1/
However, the impact of mistakes can be largely mitigated with good source control, a rapid rollback capability and good monitoring (Loggly, New Relic?). One I figured this out, I became more fearless with my coding.
Of course, good unit tests will prevent bugs also. I consider them a must for any large, wholesale changes.
I think it's a solid analogy.
Fortunately, no body parts were in its path.
I've always been a bit leery of routers since.
It’s not perfect - Markdown, or at least code blocks, would be nice, and tags (I think those are coming in the next OS release), but in terms of ease-of-use, I haven’t found anything close.
Happy to share the access and get feedback.
On that note (no put intended), I’d expect iOS 16 Notes to support markdown now that SwiftUI and UIKit in iOS 15 now have native markdown support.
So a word of caution for other Notes users - Notes has its advantages, but if you ever end up with a large number of notes and you want to copy them outside of the Apple ecosystem, it will probably not be straightforward.
But I got irritated with Apple Notes. It lacks Markdown support. It auto-converts my note from plaintext to rich text anytime I start numbering, bulleting, or pasting, without a way to convert the note back to plaintext. Lastly, my notes had no structure or hierarchy. They were simply sorted by last-modified date.
So this month I researched note-taking apps having (1) Markdown support, and (2) support for syncing my data to Fastmail. Because again, I don't want to be locked into Apple. I settled on 1Writer[2]. It syncs to WebDAV endpoints, which Fastmail offers. My notes are now files, and I can organize them into folders, all within 1Writer.
For now, I love it. Markdown support is great, including highlighting in edit mode, and I don't miss anything from Apple Notes.
Go, plain text and open standards!
1: https://www.fastmail.com/help/notes/usage.html 2: https://1writerapp.com
[1] - https://simplenote.com/
My email client is VM, written in Emacs Lisp. I've used it to read mail for almost as long as I've used Emacs. VM (and ancillary tools, like Personality Crisis and mairix)
* does a great of job displaying HTML messages. For the very few that it doesn't, one keystroke sends the message to my web browser running locally.
* sends URLs I select (all from the keyboard) to the web browser
* opens images and attachments
* auto-adjusts the From: line of outgoing messages depending on the recipient
* archives messages to various folders using various criteria
* search my archived mail going back a quarter century at lightning speed
Of course, I can write Emacs Lisp code of my own to extend any or all of the above.
plain text todo / notes combination [https://jeffhuang.com/productivity_text_file/]
plain text accounting [https://plaintextaccounting.org/]
plain text academic publishing [http://www.sitzextase.de/blog/2017/02/22/plain-text/]
plain text organizer [https://danlucraft.com/blog/2008/04/plain-text-organizer/]
plain text daily diary [https://georgecoghill.wordpress.com/2018/01/01/the-one-line-...]
[0]: https://hledger.org/
Though this is presentation only, not editing.
(I made this.)
Replaced a lot of awk for me, along with places I might have been tempted to use sqlite. Unfortunately never had much luck with the bash or c integrations.
"Can you send me the word doc source for that PDF so I can make changes?"
"Uh, it's actually markdown with this hacked together rendering pipeline."
"..."
Source: I tried this.
The idea is to have either single pane docs for just a plain text editor or split pane docs for Markdown, AsciiDoc, Latex, etc with the editor in one pane and the rendered version in the other. Doc editing/viewing would be collaborative with sharing similar to Google Docs.
I've done some research and I haven't seen anything like this which means either I have lost my Google-fu, it is a dumb idea or nobody has thought of it (in descending likely-hood).
Anyone have thoughts? Does this seem interesting/useful?
Also, https://overleaf.com for LaTeX projects.
For starters, you can take inspiration from apps like bear notes, ia writer, ulysses, typora, or even apple notes (which has collaborative editing nowadays).
I can draw well, so using plain text feels so limited and constrained, rigid and not flexible enough.
Linear text and having to use a special language (markup) feels so clunky compared to a real 2D connection.
With paper you have eink support, A3 and A2 sizes if necessary and as big space as you need.
It is extremely cheap, does not need batteries, mobile and normal people understand it(WYSIWYG) much better than if you have to explain them how to install a Markdown viewer or worse something like emacs modes.
I am a lisper,fluent in emacs, could use it for notes and sometimes I do. I used Latex in University instead of Word.
But it feels so wrong for me. When I talk with artists in general they share the feeling I have. They will not use the keyboard if they could but their hand. For them programmers are just autistic not understanding their world.
Most programmers also can not understand artists. For them losing all the expression of handwriting and writing is just fine and for them the keyboard is sacred, and people should be trained in typing instead of computers doing the work for understanding human natural movements.
Very few people understand both worlds.
But let me ask you: What do you think about using an iPad with the Apple Pencil?
Then, I just use groff+ms+eqn+tbl... to get a PDF from a simple text file.
Also, as I use Unifont as my terminal font, the Unicode support is huge, really huge. So I can typeset math exercises with a simple xterm/st and a light PDF viewer such as MuPDF.
No special syntax is required. It just works. I've since been adding URLs in comments all over my code, for references. It's marvelous.
It could be extended to recognize filename.jpg and filename.mp3 to display or play those files, too. Again with no special syntax whatsoever. It just works.
Everyone suggests using "gx" but this is for opening local files in a viewer. If you do gx on a url it downloads the referent, and then tries to open the result using the local filename. If the extension is ".html" this fails fairly miserably because all the css, images, etc. are missing. If the page doesn't have an extension it fails entirely.
I look forward to being corrected!
You can make it do that with a keybinding and a little vimscript function. Vim can run shell commands, so all it really needs to do is check if the text under the cursor is a URL, and if it is call a browser on it. Something like this (note I'm not exactly a vimscript master):
function! OpenUrl()
let pattern = 'http[^)\]"\n \t<>]\+'
let line_text = getline('.')
let matched = matchstr(line_text, pattern)
if strlen(matched) > 0
exe "norm! :!firefox ".matched."\n"
endif
endfunction
nmap <CR> :call OpenUrl()<CR>
This calls the function when you hit Enter in normal mode (the `<CR>`).It's still mostly plain text, with just enough structure.
Can also be read straight without rendering too.
-- update --
Okay then people. Go open a Word Document in your text editor and see what you get. If it is smart, like Emacs, it will open a directory of xml files. How about if you open up a ipython notebook? not plain text. But RMarkdown is.
-- update 2 --
Well, what does the Linux Information Project say about Plain Text?
(http://www.linfo.org/plain_text.html)
- Plain text refers to any string (i.e., finite sequence of characters) that consists entirely of printable characters (i.e., human-readable characters) and, optionally, a very few specific types of control characters (e.g., characters indicating a tab or the start of a new line).
- However, plain text can contain instructions that are written in plain text for formatting, for adding images, for creating hyperlinks, etc. that can be used by programs that convert plain text into other forms. That is, it can contain tags (i.e., instructions or indicators that are written in plain text) that tell a word processor, web browser or other program to format it in a certain way, including which typefaces and fonts to use, how to set the margins, where to underline the text and where to use bold or italic characters.
- HTML (hypertext markup language) and XML (extensible markup language) are good examples of the use of instructions that (1) are used to convert plain text into some form of formatted text, (2) are written in plain text and (3) are embedded in the plain text documents that they are used to format. For example, the HTML tags <b> and </b>, although written in plain text, instruct any web browser that reads a file containing them to render (i.e., display) any plain text located between them in bold characters. Among the many other things that HTML can tell browsers are where to create hyperlinks, how to set margins, which images to use and where to insert them, which typefaces and fonts to use and where to render text in italics or underlined characters.
www.linfo.org/plain_text.html
Well, a paragraph is separated by a new line. Sentences are separated by periods and the first word of sentence of capitalized. White space is used to delimit words within sentences--with some exceptions, as just shown.
Dammit, I guess this isn't plain text either.
If you absolutely must have an objective definition, I might try saying that "plain text" is WYSIWYG Unicode or ASCII. WYSIWYG meaning the formatting it exhibits when displayed is the same formatting it exhibits in the editor, and Unicode or ASCII meaning only the formatting available from those character encodings is available (so a Word Document doesn't count as plain text even though it is WYSIWYG).
<p id="edit"> but I did upvote you for your different opinion, I don't really think it should be downvoted like it did, arbitrary word definitions are just that - arbitrary, including opinions from Linux Info and of course me and you. What really decide them in the end is the public perception of the term in question.</p>
What about the blank line between these two paragraphs? Andwhydontiwritesentenceslikethis?
When people talk about plain text in that space, they usually mean the interaction level, not the technical level. Any cryptic rules which gives the text meaning in some parser is a rule the user need to first learn and internalize, which makes usage harder. Any tooling is an extra step you need to maintain for handling your texts.
Of course, markdown and org-mode are relativ simple, but it stills needs tools, thus has extra requirements. It's not as plain and simple as starting notepad and call it a day.
I've read and edited my own org files in notepad on occasion, which works perfectly well (imagine doing that with a word document!), The same is true for markdown files- to such a degree that it is the standard for readme files, and those are definitely supposed to be readable by anyone.
So to me that definitely makes it plain text- all the more as you will be perfectly fine not adhering to any of the rules within an org file, but then suddenly dropping a table with formulas in there and having it work immediately (again, image word here).
So I would say it doesn't _need_ tools, but can _benefit_, as opposed to word/etc.
You might say these are quantitatively less "plain text" in some way when compared with a literal .txt file, which is fair enough, but I think they're extremely similar when compared to a .docx file.
Well, yes, but no. It's more readable than the json or xml-files used by jupyter or word (which technically are still plain text). But they are less readable then any markup-free plain text. If you use slightly complex markup, like links or tables, they can become quite unreadable too. That's the nature of complexity. Additionally, you still must be aware of the syntax and it's rules, especially when you wanna write it, not just read them.
That's why simple markups considered an in-between. The requirements are low, but they still are there.
> So I would say it doesn't _need_ tools, but can _benefit_, as opposed to word/etc.
True, but what are the benefits of using them without tools? Why not go full freestyle plain text? Use whatever text you want, make syntax up on the spot as you need it. That would be 100% plain text, as there is no cage that limits your expressioness.
completely agree
> Use whatever text you want, make syntax up on the spot as you need it. That would be 100% plain text, as there is no cage that limits your expressioness.
However, see my point above: with md (but especially with org) one is completely free to do this!
Antiword, Catdoc.
Want a quick analysis of some data in the same file? Toss it into a table, write a code block, run the code block, get a new table as output. I can export it to a variety of formats without much trouble in order to share with others.
Joking, but as someone that has mostly used vim, I have the feeling that emacs is trying to do everything within emacs while vim are supposed to be used in tandem with other unix tools.
I wouldn't expect this to be anywhere near feature complete but for an old vim hand like me it's interesting.
I'm a big fan of VimWiki personally but I'm in awe of some of the Org-mode demos I've seen.
In the right editor syntax highlighting makes the structure obvious, and automatic formatting/linting keeps things sensible.
Any requirement for multimedia has been satisfied with links to local files or online sources.
The only issue has been collaboration, but in my experience it's easier to just use whatever my collaborators prefer. I can still have my own markdown as a searchable and familiar origin point, with links into whatever they are using.
Switched to plaintext, never looked back. Simple, cross-platform
I migrated all my notes to QOwnnotes (https://www.qownnotes.org) synchronized with DropBox, and use any markdown editor in mobile. I would be happier if it had encryption, but even if it had, a compatible mobile editor would be hard to find.
Both let you mix text and media/attachments, but CherryTree is more user friendly.
There's a whole subculture growing up now surrounding linked notes in markdown / plaintext and it's glorious.
edit: article needs a (2016) tag.
File format is compatible with Obsidian as well so you can move your life anywhere. And you can back up to a private github repo so you can use multiple machines. I like Logseq so much I feel compelled to donate since its main competitor is outrageously priced.
You build up a hierarchy of notes, but you can also cross-link so a note appears in multiple places. You can also drop arbitrary files alongside any given note. I expand it occasionally as I need new features; most recently I added regular expression searching and a command to locate "orphaned" notes. It's at https://github.com/floren/zk which contains the Go library to interact with the files on disk, and a command-line tool which wraps the library.
The ironie is that the recent wave seems to originated from roam and other webservices, which are quite far from being plain text or even just being open.
I've only used plain text for the last 15 years and it has been great. If I want images (or other files) I just put the file path to the images (or folder) in the notes. And since it's just a single text file called "notes" (now a handful of MB large) I can easily search through it with any tools I want.
Wikis would come and go like mushrooms and I too was burned once, so I figured Wikipedia's data will never be abandoned and so have been using mediawiki for over a decade. Even if mediawiki is one day abandoned the migration tools will be excellent.
history, syntax highlighting, inline images, tables etc. Markdown would be nice - and there's an extension which enables that, but who knows if that extension will have a lifespan/migration-path like Wikipedia will.
The biggest downside to a text file is when you need to add “not text”. At least, “not ASCII”. Non-latin characters. Images. Sound files.
Sure, some programs will accept unicode as readily as ASCII, but not all. Formatting symbols are not well, or universally, defined. And definitely no consistent support for non-text items.
Of course, these are mostly minor non-issues on a day-to-day basis.
That said, I do wonder sometimes if the answer is HTML. Easily written, significant support for writing in text editors, virtually automatic support for the entire unicode set, lots of built-in markup, images, sounds, and movies are easy to embed, and there isn’t an OS that can’t display it.
Just a thought.
Spaniard here, not a big issue with Unicode, and with a US intl keymap you could type up accented [a-u] and u with diaeresis and enye with ease.
It's certainly more friction than using apple notes, which I used to use, but in an extreme long term view, markdown plaintext files will still be accessible if Apple ever goes out of business, whereas anything stored in my iCloud is kaput.
If Apple Notes would let you write markdown and easily export/sync notes, I think I would use it again just for ease of use (especially when AFK). But on my computer I've always got vscode open anyway, so why not just have a window open to my notes repo.
> I’ve moved away from plain text in favor of apps in a couple places to help simplify things...any public, long form writing I do goes through the likes of Google Docs, Microsoft Word
The only places where his preferences are likely to be different from most readers is that he uses plaintext for taking notes, to-do list, and reminders.
I'm building an app (3D memory palace) and the save file format is JSON. It's not plaintext, but it is text, and structured in such a way that you could rebuild the app yourself if you wanted to - or still have access to your data should the app stop working one day. It also means it's trivial to edit the JSON if you want to add or remove something, or make mass-changes that would be impractical to do within the app itself.
At work as a web developer, I'll often facilitate CSV import & Export for Product to work with the app. This lets them use Excel, which they're already comfortable with, and removes me from the development cycle because now changes are just a file upload that they can do themselves.
Both JSON and CSV are great plaintext ways to represent structured data. Personally, I wish there was a markdown for excel, or some way of representing the entire capabilities (such as formulas) in plaintext instead of in a proprietary XLS. Hopefully someone has something in the works around that.
Proprietary is easy - just do whatever you want. But doing things in a way that lets users & other developers "yes and" your work is an under appreciated value add.
MS office is a weird thing in this regard. The current formats are technically open (called Office Open XML), but good luck with the multi-thousand page reference.
I like the idea of plaintext as a least-common-denominator for many things, but it becomes difficult to use it beyond a small, constrained set of applications.
I’ve built a note taking system based on this idea: https://github.com/knazarov/notes.sh
Support for your metadata.
Still readable and writeable as plain text.
Lots of built-in support in the major text editors.
I feel like if you wanted to write notes in HTML, you would need to do it from within some WYSIWYG editor environment that felt like plain text most of the time but easily let you drop into metadata, links, tables, etc.
"Have you considered using charcoal?"
"I don't want to use charcoal, which is potentially one of the last viable options, for unspecified reasons."
I've never found most of the arguments about the UNIX philosophy or plaintext super compelling. Some people love to wax poetic about "composing together small programs" and "being able to use one toolset to accomplish many things." In my experience this works really great for systems administration (the activity the paradigm was designed around - big surprise) but not very well for other things. Sometimes I want to take a picture. Sometimes I want to query a sqlite database. Sometimes I want Powershell objects. Life is not systems administration, and neither is computing.
Don't get me wrong, I have emacs open all day every day at work. But when I hear people talk about using plaintext for everything, I think about Bret Victor's rant about the inhumanity of keyboards and screens:
- Typesetting documents: Groff+MS / Groff+Mom
- Spreadsheets: sc-im+gnuplot/visidata+gnuplot/awk/perl
- Accounting: ledger
- Music: streamripper $URL + find . -iname "*.mp3" > ~/music.m3u
- Video/Audio production: sox+ffmpeg. Yes, really.
For text that I expect to use for a long time, I will never again use programs that use proprietary text formats. Once you commit to them you're at the mercy of the proprietor - and the platform (if they're not cross-platform). The programs may even fail after an OS update. That's a burn that's not soon forgotten.
Markdown is perfectly readable directly off the page, and is easy to write. HTML and XML are a pain both to read and write.
Plain text takes <1 second to open and start editing.
And of course all of the code I write is plain text.
Easy to version, easy to diff, easy to render, easy to (rip)grep.
plug: i'm the creator of one of these tools (dendron.so) which I use to manage over 20k notes in plaintext
Or when you want to share them and edit them collaboratively with someone else.
SyncThing is one of the most underrated programs out there.
>Sharing
There's a billion ways to share a text file with someone
>Collaborative editing
That's a fair point. Although, I've never had the need to collaboratively edit a text file. But it does look like there's stuff out there e.g. EtherPad, Gobby, HackMD.