Tumgik
#and also i hate the emacs editor so much
shopjust · 1 year
Text
Plain text workflow
Tumblr media
#Plain text workflow how to
#Plain text workflow pdf
#Plain text workflow pro
#Plain text workflow code
That’s a lot of technobabble, let me break that down some. The major downside is that it is expensive, although the developer lets you use it without paying if you can put up with periodic scolding popups.Įverything is saved to a git repository which gets to be in a private repo on GitHub. But I like Sublime Text over those other alternatives because (a) it’s extremely fast, stable, and lightweight (basically the opposite of Word), and (b) it has a plug-in system based in Python, which is one of my preferred programming languages-so it’s very easy for me to directly program my editor. There are fine alternatives for editing plain text, like Atom, BBEdit (Mac-only), and Notepad++ (Windows-only). I use Sublime Text pretty much only for editing markdown or plain text prose-when I write code, I usually use emacs or vim-so I don’t have to muck around with complicated file-type-specific settings. On the Mac, I do most of my markdown writing in Sublime Text, which is a totally bulletproof programmer’s text editor. Typically, for longer works (big articles, books) or multi-stage projects, I’ll have multiple markdown files with different logically separated portions of text, plus files for notes, paragraphs that need to be discarded or moved to a better home, etc. etc.
#Plain text workflow how to
For people who are interested in Markdown, I wrote a tutorial on how to work with Markdown here. There are different flavors of Markdown (for reasons to be described below, I use the Pandoc version), but the basics are very simple.
#Plain text workflow pdf
It’s readily convertible to MSWord format, as well as PDF (if you’ve installed LaTeX), HTML, and all kinds of more arcane things-it’s very commonly used by programmers and bloggers, and I think it’s by far the best way to write initial drafts. Markdown, for those who aren’t familiar, is a plain text format with very lightweight markup for things like bold/italics, links, and the like. So my workflow has the following elements: I want to use git for version control so that I can recover prior versions if something gets horribly screwed up. I like being able to relatively seamlessly switch between writing on my MacBook and on my iPad.Į. I also hate manually formatting my citations.ĭ. Most of the major alternatives to word (OpenOffice, Google Docs, Pages) are crap.Ĭ. Word “features” like styled paste, auto-conversion of URLS to links, bizarre dictatorial bullet point numbering, etc. I also want something that doesn’t impose involuntary formatting on me.
#Plain text workflow code
My writing needs to be scriptable-I need to be able to read my writing into an ordinary programming language as a string, run code on it, and spit it back out again as a string. If I want to do something weird or automated with my content, I want to be able to do so. It takes longer to start than XCODE, which, for those of you who program, you’re probably screaming in horror at the very idea.)
#Plain text workflow pro
I have a brand new souped up 16-inch Macbook Pro with an i9 and 32 gigs of ram. (It’s utterly mind-blowing how badly Word performs. I want something that doesn’t crash or hang all the time, unlike Word. Yet I recognize that many people that publish things I write need Word format, so I need to do something that converts to Word fairly readily. Subconsiderations: I won’t use it if it can be helped at all. I’m incredibly paranoid about losing work.ī. Here are the considerations, in rough order of priority, that drive me:Ī. This is a work in progress document I’ve promised to share my toolkit with a couple people, so, as those people say to me “hey, this makes no sense,” I’ll probably edit to clarify. I have an unusual and complicated academic writing workflow/toolkit, but one that might be of use to some other people, so I thought I’d share it here. This one is for academics rather than practitioners, though some of the details are applicable to practitioners as well.
Tumblr media
1 note · View note
oflgtfol · 3 years
Text
in my computation class i'm supposed to be writing LaTeX documents in emacs but lmfaooo i hate having to compile to every time and since i don't have a graphics window i have to go manually download it jsut to make sure my document looks decent . so i hate it
so i kinda cheat and just use overleaf to actually WRITE the stuff that way i can compile and check it over in real time to make sure everything's okay so it isn't some big hooplah like it is in emacs DX
1 note · View note
chipotle · 4 years
Text
Panic's Nova text editor (a review)
Review: Panic’s Nova text editor
Panic, the long-established makers of Mac utility software, seems fully aware that introducing a new, commercial code editor in 2020 is a quixotic proposition. Is there enough of an advantage to a native editor over both old school cross-platform editors like Emacs and explosively popular new editors like Visual Studio Code to persuade people to switch?
I’m an unusual case as far as text editor users go: my primary job is technical writing, and the last three jobs that I’ve worked at have a “docs as code” approach, where we write documentation in Markdown and manage it under version control just like source code. The editor that works best for me in tech writing is the venerable BBEdit. When it comes to editing code, though, BBEdit lags behind. My suspicion is that BBEdit’s lack of an integrated package manager has hurt it here. Also, BBEdit’s language modules don’t support extending one another, making it effectively impossible to do full highlighting for a templating language like JSX or Jinja.
When I was a web programmer, I was one of many who moved to TextMate, and used it for everything for a while. When the Godot-like wait for TextMate 2.0 became unbearable, I wandered the text editing wilderness, eventually splitting my loyalties between BBEdit, Sublime Text, and more recently VS Code. At this point, I suspect nothing will pull me away from BBEdit for technical writing, but for programming I’m open to persuasion.
So: meet Nova.
Tumblr media
I’ve been using Nova off and on in beta for months. I’ve reported some bugs, although I may mention a couple here that I didn’t catch until after 1.0’s release. And, I’m going to compare it to the GUI editors that I’ve been using recently: BBEdit, Sublime Text, and VS Code.
Nova is a pretty editor, as far as such things go, and with files of relatively reasonable size it’s fast. With stupid huge files its performance drops noticeably, though. This isn’t just the ridiculous 109MB, nearly 450,000-line SQL file I threw at it once, it’s also with a merely 2MB, 50,000-line SQL file, and Nova’s offer to turn off syntax highlighting in both files didn’t help it much. This may sound like a silly test, but in my day job I’m occasionally stuck editing an 80,000-line JSON file by hand (don’t ask). This is something BBEdit and VS Code can do without complaint. Panic wrote their own text editing engine for Nova, which is brave, but it needs more tuning for pathological cases like these. They may not come up often, but almost every programmer has one stupid huge file to deal with.
Nova has an integrated terminal and an integrated SSH client, and even an integrated file transfer system based on Panic’s Transmit. In fact, if you have Transmit and use Panic Sync, it knows all of those servers out of the box. Nova has a task workflow system for automating building and running. You can associated servers, tasks, and more with individual projects; Nova’s project settings are considerably more comprehensive than I’ve seen in other editors. You can even set up remote tasks. Nova has a serviceable Git client built in, too. Like VS Code, Nova uses JavaScript for its extension API, and it has built-in Language Server Protocol support—it’s a superbly solid foundation.
Beyond that, some smaller features have become table stakes for modern GUI editors, and Nova handles them with aplomb. “Open Quickly” can jump to any file in the open project, as well as search by symbols or just symbols in currently open files; it has a command palette; you can comprehensively edit keybindings. It has multiple cursor support for those of us who like that, and a “mini map” view for those of you who like that, although know that you are wrong. Nova’s selection features include “Select all in scope” and “Select all between brackets,” a command I often use in BBEdit and miss dearly in Code. (Both Nova and BBEdit select between brackets and braces, although BBEdit also selects between parentheses.) This effectively becomes “Select between tags” in HTML, a nice touch. There are a few other commands like “Select all in function” and “Select all in scope” that I didn’t have any luck in making work at all; a little more documentation would be nice.
That’s worth an aside. Panic has created a “library” of tech note-style articles about Nova sorted by publication date rather than an actual manual, and it’s not always easy to find the information you want in it. I know this is just what a technical writer would say, but I’d dearly like to see a human-organized table of contents starting with the editor basics and moving to advanced topics like version control, server publishing and extension authoring.
The Zen of Language Servers
A lot of Visual Studio Code’s smarts depend on the implementation of a “language server” behind the scenes: language servers offer almost spookily intelligent completion. For instance, take this PHP snippet:
if ($allowed) { $response = new Response(405); $response->
If you have the Intelephense PHP language server plugin, Code understands that $response is an instance of Response and, after you type the > above, offers completions of method names from the Response class.
Right now, Nova’s mostly limited to the language servers Panic provides, and they’re… not always so smart. In that snippet above, Nova starts by offering completions of, apparently, everything in the open project, starting with the variables. If I type “s,” it narrows things down to methods that begin with “s,” but it’s all methods that start with “s” rather than just the methods from Response. The “Jump to Definition” command shows a similar lack of context; if I highlight a method name that’s defined in multiple places, Nova shows me a popup menu and prompts me to choose which one to jump to, rather than introspecting the code to make that decision itself.
But, this is a solvable problem: there’s (I think) no reason someone couldn’t write an Inteliphense plugin for Nova. If Nova’s ecosystem takes off, it could be pretty formidable pretty quickly.
Walk like a Mac
Even so, LSP support isn’t Panic’s biggest selling point. Unlike Sublime Text or VS Code, Nova isn’t cross-platform: it’s a Mac-only program written to core platform APIs. Is that still a huge draw in 2020? (Is it instead a drawback?)
You can definitely see a difference between Nova and BBEdit on one side and Sublime and Code on the other in terms of resource usage. With the two Ruby files shown in the screenshot above loaded, I get:
VS Code: 355 MB, 6 processes
Sublime Text: 338 MB, 2 processes
Nova: 101 MB, 2 processes
BBEdit: 97 MB, 1 process
Code is an Electron-based program, although Microsoft famously puts a lot of effort into making it not feel like the black hole a lot of Electron-based apps are. Sublime uses its own proprietary cross-platform framework. In fairness, while us nerds like to harp on research usage a lot, if your computer’s got 16G or more of RAM in it, this probably isn’t a big deal.
You notice Nova’s essential Mac-ness in other ways. Its preference pane is, like BBEdit’s, an actual preference pane, instead of opening in another tab like Code or just opening a JSON file in a new tab (!) like Sublime. And while all editors better have first-class keyboard support—and Nova does—a good Mac editor should have first-class mouse support, too, and it does. You notice that in the drag-and-drop support for creating new tabs and splits. Nova’s sidebar is also highly customizable, possibly more so than any editor I’ve regularly used. (Yes, Emacs fans, I know you can write all of Nova in Lisp if you want. When one of you does that, please get back to me.)
Unlike BBEdit, though, Nova doesn’t have a Mac-like title bar, or a Mac-like outline view of the project files, or Mac-like tabs. (Well, BBEdit doesn’t have tabs at all, which turns out to be a great UI decision once you have a dozen or more files open, but never mind.) This isn’t necessarily bad; people often say BBEdit “looks old,” and it’s hard not to suspect that what people mean by that—whether or not they know it—is that it looks like the long-established Mac program it is. Nova is relying less on “we have a Mac UI and the other guys don’t” than on “we have Panic’s designers and the other guys don’t.” Make no mistake, having Panic’s designers counts for a lot.
What may be more disappointing to old school Mac nerds is AppleScript support: none whatsoever. It doesn’t even have a vestigial script dictionary. Again, this may not be something most people care much about; personally, I hate having to write AppleScript. But I love being able to write AppleScript. BBEdit’s extensive scriptability is one of its hidden strengths. Nova’s Node-based JavaScript engine is probably more powerful for its own extensions and certainly more accessible to anyone under the age of 50, but it may be hard to call it from external programs.
So is it worth it?
That probably depends on where you’re coming from.
If you loved—or still use—Panic’s older editor, Coda, this is a no-brainer upgrade. If you used Espresso, a Coda-ish editor that always seemed to be on the verge of greatness without ever reaching it, Nova may also be a no-brainer for you.
If you’re a fan of Sublime Text, BBEdit, TextMate, or another editor that doesn’t have native Language Server Protocol support, you should definitely try Nova. Sublime and TextMate have more plugins (especially Sublime), but many extensions seem to be languishing (especially TextMate). BBEdit never had a great extension ecosystem to start with. All of these editors have strengths Nova doesn’t, but the reverse is also true, and Nova may catch up.
If you’re an Emacs or Vim power user, we both know you’re just reading this out of academic interest and you’re not going to switch. C’mon.
If you use Visual Studio Code, though, it’s way tougher to make the case for Nova. Code has a vastly larger extension library. It has the best support for LSP of any editor out there (LSP was developed for Code). Despite being Electron-based, it’s pretty high-performance. Code doesn’t have an integrated SSH or FTP client, but it does have an integrated terminal and task runner and Git client. If you don’t object to using an editor that isn’t a “perfect fit” with the Mac UI, Code is very, very good… and it’s free.
I don’t object to Nova’s pricing model—$99 up front including a year of updates, $49 for future years of updates—but I can’t help but wonder if Panic should have gone with super aggressive introductory pricing. Also, I saw more than a few suggestions on Hacker News about how there should be a Code-to-Nova extension translator; I’m not sure automatic conversion would be practical, but a guide on manual conversion seems like an excellent idea.
For my day job of technical writing, I’m going to stick to BBEdit. (One day I’ll write up an article about why I think it’s the best “documentation as code” editor on the market.) For programming and web editing, when I was working on both a Ruby and a PHP project—the former a Rails learning exercise, the latter an obstinate “I am going to write a modern PHP app without using a framework” exercise—I kept trying Nova’s betas and then switching back to Code for Inteliphense and, I swear to God, MacVim for Tim Pope’s amazing rails.vim plugin. I suspect Nova could duplicate both of those, but I’m not sure I want to be the one to do it. (Also, while Panic has decent reference documentation for writing extensions, I’d like to see a few simple end-to-end walkthroughs for those of us who look at a huge list of reference topics and don’t know where to start.)
But Nova isn’t just pretty, it’s powerful, and has a lot of promise. The editors I’ve been comparing it to have been around since 2015 for VS Code, 2008 for Sublime Text, and 1992 (!) for BBEdit; it’s not reasonable to expect Nova to blow past them in every respect right out of the starting gate. Even so, they are Nova’s competition. Catching up fast is an essential requirement.
So: yes, I’ve bought Nova, and I’m rooting for Panic here. I’ll come back in a year and report if I’m willing to stay on the update train.
3 notes · View notes
thagaste-blog · 4 years
Text
A new start
 Feeling better today. Blood pressure is down, thank God. I resumed a few of the online courses that I began a while back. My plan: work on every one of them for a bit and then reward myself for the good work with an episode of "Big Bang Theory". I started from season 1 again (thankfully, I had forgotten all of it) and I am enjoying it no end!
 Started writing something for this blog yesterday but as I read it today, it seems pretty whiny and not as much "in the moment" as I'd like it to be. Brief background: I've given myself one month off and I'd like to see where this takes me. Incidentally, it is lent, which added motivation to narrow my focus: this month, I am not reading any news (at least not as obsessively as I have done for the past few months), I am eating less to lose a little weight (10 lbs would be nice), and I am going to let go of all prep work for school.
 It feels just bloody good to even write this.
 Right now, I'm finishing a course on the Emacs editor (Udemy), then I'll plow through a lesson each of these - I might comment on my progress later on:
Quantum computing hardware (edX)
Scratch vs. Python (FutureLearn)
Machine Learning basics (Coursera)
Internet of Things (OpenSAP)
Using the Jupyter Notebook for Data Science (Udemy)
 I really, really, really love learning new things every day. I have found that, somehow, magically almost, they slot into my existing skill stack. I should write something about this as it unfolds.
 Also, I hate paying for stuff and then not using it: I paid for a couple of these courses (though not much), and now I want to get the certificate, if only to have something to show for! I know this is remnant vanity and not quite appropriate perhaps for my age but so be it. Nobody's perfect and those who are should just stay away.
 God bless y'all!
 Thagaste
1 note · View note
planetarduino · 7 years
Text
PlatformIO and Visual Studio Take over the World
In a recent post, I talked about using the “Blue Pill” STM32 module with the Arduino IDE. I’m not a big fan of the Arduino IDE, but I will admit it is simple to use which makes it good for simple things.
I’m not a big fan of integrated development environments (IDE), in general. I’ve used plenty of them, especially when they are tightly tied to the tool I’m trying to use at the time. But when I’m not doing anything special, I tend to just write my code in emacs. Thinking about it, I suppose I really don’t mind an IDE if it has tools that actually help me. But if it is just a text editor and launches a few commands, I can do that from emacs or another editor of my choice. The chances that your favorite IDE is going to have as much editing capability and customization as emacs are close to zero. Even if you don’t like emacs, why learn another editor if there isn’t a clear benefit in doing so?
There are ways, of course, to use other tools with the Arduino and other frameworks and I decided to start looking at them. After all, how hard can it be to build Arduino code? If you want to jump straight to the punch line, you can check out the video, below.
Turns Out…
It turns out, the Arduino IDE does a lot more than providing a bare-bones editor and launching a few command line tools. It also manages a very convoluted build process. The build process joins a lot of your files together, adds headers based on what it thinks you are doing, and generally compiles one big file, unless you’ve expressly included .cpp or .c files in your build.
That means just copying your normal Arduino code (I hate to say sketch) doesn’t give you anything you can build with a normal compiler. While there are plenty of makefile-based solutions, there’s also a tool called PlatformIO that purports to be a general-purpose solution for building on lots of embedded platforms, including Arduino.
About PlatformIO
Although PlatformIO claims to be an IDE, it really is a plugin for the open source Atom editor. However, it also has plugins for a lot of other IDEs. Interestingly enough, it even supports emacs. I know not everyone appreciates emacs, so I decided to investigate some of the other options. I’m not talking about VIM, either.
I wound up experimenting with two IDEs: Atom and Microsoft Visual Studio Code. Since PlatformIO has their 2.0 version in preview, I decided to try it. You might be surprised that I’m using Microsoft’s Code tool. Surprisingly, it runs on Linux and supports many things through plugins, including an Arduino module and, of course, PlatformIO. It is even available as source under an MIT license. The two editors actually look a lot alike, as you can see.
PlatformIO supports a staggering number of boards ranging from Arduino to ESP82666 to mBed boards to Raspberry Pi. It also supports different frameworks and IDEs. If you are like me and just like to be at the command line, you can use PlatformIO Core which is command line-driven.
In fact, that’s one of the things you first notice about PlatformIO is that it can’t decide if it is a GUI tool or a command line tool. I suspect some of that is in the IDE choice, too. For example, with Code, you have to run the projection initialization tool in a shell prompt. Granted, you can open a shell inside Code, but it is still a command line. Even on the PlatformIO IDE (actually, Atom), changing the Blue Pill framework from Arduino to mBed requires opening an INI file and changing it. Setting the upload path for an FRDM-KL46 required the same sort of change.
Is it Easy?
Don’t get me wrong. I personally don’t mind editing a file or issuing a command from a prompt. However, it seems like this kind of tool will mostly appeal to someone who does. I like that the command line tools exist. But it does make it seem odd when some changes are done in a GUI and some are done from the command line.
That’s fixable, of course. However, I do have another complaint that I feel bad for voicing because I don’t have a better solution. PlatformIO does too much. In theory, that’s the strength of it. I can write my code and not care how the mBed libraries or written or the Arduino tools munge my source code. I don’t even have to set up a tool chain because PlatformIO downloads everything I need the first time I use it.
When that works it is really great. The problem is when it doesn’t. For example, on the older version of PlatformIO, I had trouble getting the mBed libraries to build for a different target. I dug around and found the issue but it wasn’t easy. Had I built the toolchain and been in control of the process, I would have known better how to troubleshoot.
In the end, too, you will have to troubleshoot. PlatformIO aims at moving targets. Every time the Arduino IDE or the mBed frameworks or anything else changes, there is a good chance it will break something. When it does, you are going to have to work to fix it until the developers fix it for you. If you can do that, it is a cost in time. But I suspect the people who will be most interested in PlatformIO will be least able to fix it when it breaks.
Bottom Line
If you want to experiment with a different way of building programs — and more importantly, a single way to create and build — you should give PlatformIO a spin. When it works, it works well. Here are a few links to get you started:
The PlatformIO IDE (requires Atom)
PlatformIO Core (not needed if you install an IDE package)
Visual Studio Code (install PlatformIO from within the IDE)
Bottom line, when it works, it works great. When it doesn’t it is painful. Should you use it? It is handy, there’s no doubt about that. The integration with Code is pretty minimal. The Atom integration — while not perfect — is much more seamless. However, if you learn to use the command line tools, it almost doesn’t matter. Use whatever editor you like, and I do like that. If you do use it, just hope it doesn’t break and maybe have a backup plan if it does.
Filed under: Arduino Hacks, ARM, Hackaday Columns, reviews, Skills
PlatformIO and Visual Studio Take over the World was originally published on PlanetArduino
0 notes