Keeping Track of Your Things - Desktop Customization & Workflow
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 us of 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 where 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 a 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

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

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".
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!)

(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
Thanks for the info, I'll have to look into it for my OpenBSD systems.
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"
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
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.
(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...
...and this saves me time in 95% of the cases.
Haha, that's actually an other way to go ^^
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.

Members  |  Stats  |  Night Mode