Rotating Header Image

March, 2007:

Complicated vs Complex

The topic of complicated vs complex is not new. I can not remember which blog I picked it up from, but googling will get you a plethora of pages. I thought I’d redraw the picture.

| Problem |
| ^ |
| | . |
|Complex | D . C |
| | . |
| |.................. |
| | . |
|Simple | A . B |
| | . |
| +------------------> Solution |
| Simple Complicated |

So there are four regimes:

  • A: Simple solutions for simple problems. This is run of the mill engineering, known techniques, working out the solutions. Let’s call it manufacturing.
  • B: Sometimes, however, you will have people that will want to appear intelligent, and they will overdesign a solution, making it complicated in the process. This is the worst quadrant to be in, though some people who prefer to appear smart will and thus see it otherwise. I’ll call it consultancy (or if you want, marketing).
  • C: This is the standard regime for problems that are complex and that have not been solved before. They are big and tough to solve, and initially one can imagine that complicated solutions will arise. This is what engineering is all about.
  • D: However, ideally, one would find a simple solution to a complex problem. And this, although it is the hardest of all, this is what I believe science should be about.

Just a thought :)

Edit: I had a brief conversation about this with a colleague. And just because I call C engineering does not mean it’s not research. Obviously it can be research, just that it would be engineering research and not science research (in the computer science sense, for instance).

Vim Sessions

Well, you learn something new every day.

Nowadays, tabbing are becoming pervasive… Firefox has them, consoles have them, and since version 7, vim has them. This often leads to 6-7 tabs open in my vim editor with different files related to one project, the same project that I’m often working on. This means that every time I reopen VIM, I get to nicely do “tabe file” “tabe file2″ …

Looking around a bit, I found out about sessions in vim which are great. They allow you to save your current system. After playing around a bit, because they seem to enjoy saving too much, I finally abstracted the following nice piece of functionality to my ~/.vimrc:

set sessionoptions=blank,buffers,curdir,folds,help,resize,tabpages,winsize
map :mksession! ~/.vim/.session
map :source ~/.vim/.session

First of all, I change my sessionsoptions as I do not want to save the ‘options’ (this would save all my shortcuts from the latex-suite while that is not necessary). Secondly, I added ‘resize’ as I would like to get back the original window size. The rest is all existent in the default setting of sessionoptions. Then I define some shortcuts to easily save and reload my session with CTRL+Q for saving(q from quit…) and CTRL+S for reloading (as CTRL+R was already taken).

Happy vimming!