A general question about what people use for managing a diverse array of projects in one place. I’m trying to get a nice workflow that facilitates:
- Coding projects
- Writing papers
- Todo lists
- General scheduling and planning
- Easy git interface (can always just go back to command line for this though).
I’d really like an all in one interface. I’ve been trying emacs but the learning curve is killing me. I’m very comfortable with vim but there’s only so much you can do (e.g., planning/org-mode stuff in vim just has been hacky in my experience). VSCode is probably the the next best thing, but I always get to a point where customizing it to do what I want is enough work that I may as well be setting up emacs again and save my battery life.
In terms of One Tool to Rule them All, nothing comes close to Emacs in my experience.
I’ve been trying emacs but the learning curve is killing me.
Have you heard of Spacemacs? http://spacemacs.org/
I run a custom setup, but it is very close in spirit to this. In this way, you don’t have to memorize a ton of bindings all at once.
I’ve heard of it but I’ve also heard that it’s really bloated. Does it very complicated to adjust things once using spacemacs, or is it as simple as putting it in your init.el.
Yes, spacemacs is pretty “bloated”, but it might be better for a beginner to have an “opinionated” environment. My recommendation is to just use it as a starting point, it should be able to do most things that you want. Just use it as a glorified vim and slowly start adding things you find useful.
When configuring spacemacs becomes too frustrating (i.e. you start forming your own opinions about a workflow), you can move on to a custom Emacs setup. Emacs has a rich package ecosystem, there probably already exists a package for anything you may want to do.
Of course, people tend to be very particular about the tools they use. Personally, Emacs has been able to handle every task that I have thrown at it, I hardly even have to tweak my configuration nowadays.
I’m curious if others have had similar success with other tools
I really appreciate you taking the time to respond. I think I may try doing vanilla emacs and stealing some configurations from spacemacs to get the evil configs working better. I tried spacemacs a year ago and immediately didn’t like how complicated it was to customize something.
I still wish there were some magic vim plugin that solve all of my problems, but that’s kind of the opposite of what vim plugins do. They usually just solve one very small problem.
That’s pretty much what I would recommend.
Generally, for single-person projects I use https://orgmode.org/ and its zillion extensions (which I agree can be confusing at first, there are so many customizations — so you may want to look at packages used/developed by another scientist, eg John Kitchin).
For collaborations I use Gitlab (including compiling papers via Docker to make sure that they are always consistent, etc).
Are there any configs I you suggest I look at for reference?
Emacs was both very good to me and very bad. Good in that I learned a ton using it, both about Lisp and about open-source software in general. Bad in that it ruined my wrists (carpal tunnel in both).
Currently I have set up my work environment to use voice recognition and I avoid typing and using the mouse with an infrared camera. However, on Windows Emacs doesn’t work well: the terminals are really broken and I could never get Julia to run properly.
This sounds really interesting, would you mind sharing the details of your setup?
Here is some more information in this thread. The infrared camera is SmartNav (can be bought on Amazon), and for clicking I use a blinded optical mouse (so that it doesn’t read motion), or a mechanical mouse with glued-in ball, or a special USB button (again, available on the web).
Bad in that it ruined my wrists (carpal tunnel in both).
Sorry to hear that
I grew tired of emacs default keybindings very quickly. Contorting your hands to press multiple keys at once is a painful way to interface with your machine. My setup is similar to spacemacs, where there is a “normal mode” where a sequence of keypresses triggers a command.
Currently I have set up my work environment to use voice recognition and I avoid typing and using the mouse with an infrared camera.
Cool! I have always thought that a flat grid of buttons is a horribly inhuman interface. But I guess is makes laptops look nice and slim when they are closed . Have you heard of Google’s project Soli: https://www.youtube.com/watch?v=Na89OzXllkk? I think it looks very promising.
My two cents:
- for coding and writing and text editing in general I use vim (neovim for acouple of years) since I think 1998 or so. For me it has the best “language” which feels natural to express text modifications (
c2w -> change two words,
dap -> delete a paragraph etc. but I don’t want to start an editor-war). “fugtive” to have Git inside the editor and of course I have my own configuration which developed over the last two decades
- for scheduling and planning of projects I (we) use a self-hosted GitLab CE with different GitLab runners using Docker. This works perfectly fine for issue management, collaborating, discussing, testing and of course also for compiling documents (TeX)
- ToDo lists and notes (more like the personal stuff): I use a plain old paper notebook and adapted the Bullet Journal workflow which works for me flawlessly and it’s really easy to learn since it’s minimalistic and very intuitive. I can throw anything on it I really tried all kinds of organisers and todo managers and whatnot (different kinds of PDAs like Psion/Palm/Sony/…, software like OmniFocus, Things, Evernote, Wunderlist, younameit) but after years I faced the fact that for me only paper works.
These are my 3 tools to tackle project/life management. I like minimalism and I think I reached a point where I cannot abandon more
Ergoemacs helped me a lot with hand pain. It took a while to get working correctly for me, unfortunately.
Thank you for the pointer, I was not aware of this mode. However, at the moment I could easily use Emacs as it is, with its Baroque key bindings, because I would operate it by voice. The problem is that the terminal couldn’t be made to work properly witth Julia on Windows. (At least I couldn’t make it to work. If there someone out there who has figured it out, do let me know. Thanks.)
Traditional the term Project Management Tool is specifically about tools for managing a project.
E.g Microsoft Project, Mingle, Asana, Trello, Basecamp.
Microsoft Project will absolutely not do what you want. It is very focused on large teams and waterfall planning.
The others might, i’ve never used Basecamp though, so idk about that.