Keeping Track of Your Things - Desktop Customization & Workflow

Users browsing this thread: 1 Guest(s)
venam
Administrators
Hello fellow nixers,

This thread is about having your machine help you remember things throughout your days, to be your companion.

If you’ve been in the “Unix Ricing” world for a while you’ve certainly heard of the hype around knowing how other people workflows look like. Not so long ago we had a thread regrouping a compilation of workflows. It was quite entertaining. What some of us tend to forget is that to make a workflow smooth you don’t especially need to know your tools by heart but you have to reach a point where your tools will guide you.

You might argue that as a Unix user you want full power over your machine but this is not what this is about. No one, except the masochist, would want to work on a system by forcing his intentions into it. As a developer, sys-admin, Unix enthusiast, you dream of those days when everything goes smooth, where you’re happy to have chosen Unix because it suits you best. The smoothness comes from the fact that your environment evolved and morphed to your needs and is now capable of helping you get on track when you get lost.

Enough of the sentimental talk, let’s get into how you reach such state. Apart from knowing the basics of your system and how to use the programs themselves the biggest part of an enjoyable and sweet workflow is one that can acts as your second memory. By second memory I mean an extension of your thoughts, thinking, and physical brain memory.

[Image: hack_it.jpg]

Let’s start with a simple exercise, for those of you that have been on Unix for more than a year. Close your eyes and remember the last time you had to work on a machine that wasn’t yours, what were the things that annoyed you the most? Was it the window manager itself? Was it that it was missing the tools you usually work with? Was it because it just didn’t seem to be responsive to your needs? Or was it because you were lost on that system?

The hard truth is that the only reason it was annoying to work on that other machine was because you were lost, it wasn’t your home, you didn’t know how to handle things that weren’t in your mundane daily flow. What makes a flow so intuitive.
My guess is that it’s all about the way you inserted your thoughts in the environment in the first place. People keep track of things, that’s what information technology is all about. Let’s list all the places where I keep my memories as a personal example:
  • A todo list — I keep a huge todo list in a text file
  • Commands — I use hnb to keep a list of nice commands that I might use later or if I forget them
  • Browser Bookmarks/Opened Tabs — My bookmarks are my thoughts of the moment.
  • Program Launchers — My program launcher keeps history of the last opened programs.
  • Conky/Wallpaper — I personally stopped using those but having a wallpaper with notes of things you might forget is a heavy boost in productivity.
  • Shell History/Aliases/Functions — This is where all my life is. I can just browse back in time if I don't remember the arguments for a certain command, or just alias it and get it over with. Functions are life savers.
  • File Manager Bookmarks/Soft Linking — If I have a location on my disk that I cherish, I just add it to my special list, it's way easier to access this way.

Exercise number two: List the top of your memory-helpers on your current machine. Now think back to that time when you used that foreign machine, if you could have the equivalent of those memory-helpers on that box would you still feel the same way?
No, there’s nothing wrong with having your machine helping you remember things. No, it doesn’t make you machine dependent, on the opposite, it helps considerably. My bet is that you’re already doing all that I mentioned unconsciously. Though it would be a bad idea to start doing that if you haven’t grasp the basics and are heavily reliant on your little fake memory.

The last step is to make those actions concious. If you know that your shell history has helped you why not take it to the next level and have a side program handle that history for you. Keep notes of all the commands you might forget.

That’s it folks!

Let’s discuss what you use as your memory-extension.

NB: It would also be cool if someone could talk about how this will extend through “The Internet of Things”, and “Wearable Computers”.

Update 2016-06-16:

Colin Wight in his podcast Let’s Know Things has an interesting episode about Automation and AI.

He endorses the idea that we as human should see our technology as our creation, not fear it, but instead embrace it.

Embrace it to such extent that we become one with it, that it enables us to combine the best of both the computer world and the human world.

Technology would just be our new way of evolving and dealing with the world around us.
bsdkeith
Long time nixers
My memory joggers are written down in a notebook, (always have been ever since I started using computers).

My work environment usually has quick links to my most used programs, (be that desktop icons or a personalised menu).

The only thing I sometimes miss is a battery state indicator on a laptop.

My main websites are also written in a notebook, those that I always use, so it never takes long to get where I want.

Likewise, my main passwords, are backed up in a notebook.

My music & movies are backed up onto external media as well, (I learnt that the hard way!)
nounoursheureux
Members

(25-04-2015, 08:41 AM)bsdkeith Wrote: The only thing I sometimes miss is a battery state indicator on a laptop.

This is really simple to do using acpi to fetch the battery state and bar/dzen2 to display it
bsdkeith
Long time nixers
Thanks for the info, I'll have to look into it for my OpenBSD systems.
xero
Long time nixers
my big two are:
* shell setup
--- aliases
--- diy one off scripts to automate common tasks
* window manager/keybinds
--- i have all my systems completely customized to my optimum workflow. when i use anyone else's it just feels "foreign"
greduan
Long time nixers
To keep track of things I mostly depend on quick notes. I am currently keeping a journal about OpenBSD using Emacs+Org-mode.

But other than that I don't keep track of a lot of stuff. Bookmarks keep track of most of my links online, the rest is memory.

Oh and my blog.
Eduan / greduan
https://greduan.com
me@greduan.com
z3bra
Grey Hair Nixers
As a sysadmin, I login to different machines a lot, where I sometimes need to run complex commands that I might need to reuse later (greping different logs at the same time, extracting databases, changing container's max memory, ...). So I had to adapt my workflow to it. I now have a few different ways to make my computer remember things for me:

1. history(1)

I'm lost without it. Seriously. It has saved my ass a lot of times as the default values on centos set it to 1024 single commands. When I need to remember a complex task I do often on a server, I just "history | grep pattern", and then copy/paste/edit. Simple and efficient.

2. scripts

I make heavy use of scripts as remimders, because they're shell independent (if you make them POSIX), and are text files, so you can read them to remember a complex set of commands.
But as they are only available on my local machine, they're not really useful when I'm remotely connected to a server. They do help a lot locally though.

3. text files / wiki

My last resort for procedures and general purpose remind-me-later things. I have a directory on my computer which stores tons of text files about everything I need to remember, sorted by theme:

* certificate.txt to make SSL certificates and export them to different formats
* git2cvs.txt to convert a CVS repository to git
* openvz.txt to setup new openvz containers and configure them correctly
* ...

And many other things. When I need them, I just read them with less and copy/paste/edit the commands.
We also use confluence at work (a wiki engine from Atlassian), so when those notes are well polished and general enough, I add them to the "knowledge database" of the company, for everyone to use.
venam
Administrators
(26-04-2015, 05:32 PM)z3bra Wrote: 1. history(1)

I'm lost without it. Seriously. It has saved my ass a lot of times as the default values on centos set it to 1024 single commands. When I need to remember a complex task I do often on a server, I just "history | grep pattern", and then copy/paste/edit. Simple and efficient.

I'm even worse than you...
Code:
HISTFILE=~/.histfile
HISTSIZE=10000
SAVEHIST=10000
...and this saves me time in 95% of the cases.
z3bra
Grey Hair Nixers
Haha, that's actually an other way to go ^^
venam
Administrators
I forgot to mention the offline documentation.
It's always frustrating to not have perldoc or man pages installed, especially on systems that don't have their equivalent.
venam
Administrators
I'm bumping this thread an idea that is closely in touch with the topic of keeping track of things, a knowledge base. Be it similar to offline documentation, cheat sheets or others.

It's sort of coming on and off in the tech news:
https://dnote.io/blog/how-i-built-person...or-myself/
https://blog.stephenwolfram.com/2019/02/...structure/

Some people are combining this with all sorts of tracking tools, heavily relying on them as an external memory or not (Extended mind sort of way).

So nixers, are you using any of these tools, are you building your own knowledge base and how?
z3bra
Grey Hair Nixers
I have no idea how to track things. I use to write blog posts for that, but the idea of a blog post is to share knowledge with others.
At work I have a "howto" folder with random stuff, but it died as I don't take the time anymore to write things down.

I used shell scripts as documentation before, and it works great!
Unfortunately it doesn't work for ideas or concepts... I might start making "presentations" using sent(1), the suckless presentation tool, as the text format is simple amd it can include images.
Another idea would be a braindump gopherhole, which is simple as well, and can be accessed remotely.
pyratebeard
Long time nixers
I started using vimwiki for taking notes in work. I created a git repo and combined that with gollum to serve it as a webpage which I can access from anywhere.

I could do with a shot of rum right now.
z3bra
Grey Hair Nixers
My issie is that I wouldn't know how to organise stuff in a wiki. I think i just need a big greppable directory :P
pyratebeard
Long time nixers
(01-03-2019, 07:33 PM)z3bra Wrote: I think i just need a big greppable directory :P

I use ag (the_silver_searcher) from within vim to search my wiki files.

I could do with a shot of rum right now.
z3bra
Grey Hair Nixers
what's better in ag than the good old grep?
Also I don't use vim. My shell is too powerful to hide it behind such a rigid interface :P
venam
Administrators
I've recently stumbled upon more people using blog or static site generators to create their knowledge base instead of stuff like zim or zeal or any personal wiki software.

This is quite interesting as I've said in a comment on lobste.rs I find myself searching on my own blog or own writing more often and reviewing it as a reminder, a sort of wiki. This isn't as quickly accessible as other solutions but it's still something.
fraun
Members
(12-03-2019, 06:46 AM)venam Wrote: I find myself searching on my own blog or own writing more often and reviewing it as a reminder, a sort of wiki. This isn't as quickly accessible as other solutions but it's still something.

That's something I do all the time for my job - reading back through journal articles and papers (and my thesis) that I've written over the last few years. In much the same way as a blog post - they share information with others, but also act as a well written reminder of how to do things or how things work. (Although publishing papers is obviously not the easiest way to do this with the cost of publishing in open access journals reaching highs of £2000+, and the trauma of having them peer reviewed...)
thuban
Members
Most of the time, i write "memos" in plain text file. I use grep or dmenu to find what I need later.
After a while, I write it on my website (a pseudo blog) to find them even when I'm away from home.
venam
Administrators
The topic has resurfaced again, this time on lobste.rs: https://lobste.rs/s/utdgs1/what_is_good_...ng_desktop

I haven't gone through all the comments, I'll try to read everything and summarize the biggest ideas.
fraun
Members
thuban
Members
Haha, nice, using email. I love how clever and simple is this idea.
pyratebeard
Long time nixers
(12-03-2019, 06:46 AM)venam Wrote: I find myself searching on my own blog or own writing more often and reviewing it as a reminder, a sort of wiki.

I also look through my own blog to remind myself of commands or information. I use vimwiki quite a bit, and combined with git and gollum I now have a simple online copy of my own wiki I can easily access from any browser.

I could do with a shot of rum right now.
z3bra
Grey Hair Nixers
I love the email idea!
It would be cool to find a way to expose it, say via gopher
thuban
Members
(28-03-2019, 03:26 PM)z3bra Wrote: I love the email idea!
It would be cool to find a way to expose it, say via gopher
set up the root index to the Maildir :)
z3bra
Grey Hair Nixers
That's smart :)
I think I'll want to trim the headers though ^^
thuban
Members
A cron job calling a script to remove unwanted headers and copy body to an auto index directory ?
z3bra
Grey Hair Nixers
That's what I had in mind yeah. Another solution could be a sieve script in dovecot, but this sound much more complex and specific...
thuban
Members
Most mail server allow you to pipe incoming envelopes to a script in aliases file.
i.e. on openbsd smtpd, you can write in /etc/mail/aliases something like
Code:
toto: |/path/to/the/script

The envelope is like a file passed as argument ($1)
z3bra
Grey Hair Nixers
That's a good way to go! You will have to manually push the mails to your maildir if you want to keep them. But that is something I can live with :)
You just reinvented microblogging dude!