- [Wouter Groeneveld](https://github.com/wgroeneveld/)
- 09/05/2017
- What is productivity?
- Who cares?
- (Lots of) mechanics
- (Lots of) examples
- Philosophy
- External resources
Productivity describes various measures of the efficiency of production
Developers are getting less efficient, not more!
Good for the company you work for...
But also and most importantly: good for yourself!
How long would you want to be this person?
Then why aren't we doing it?
- It's too difficult
- It's something you're not aware of (not anymore!)
- time pressure: takes too long to learn/master
- I'm too lazy
The right lazy people are productive and use the tools.
"The Medium is the Message" - Marshall McLuhan
We are struck with technology when what we really want is just stuff that works.
Concentrate on essence, not on ceremony.
How often do you click in this thing to get something started?
- Mac alternative: https://www.alfredapp.com/
- Windows: http://www.launchy.net/
Ceremony: bootstrapping. To get where you want to be.
Essence: You're there now. Do what you want to do.
Search always trumps navigation.
- http://windowsreport.com/desktop-app-launchers-windows-10/
- Unix
- Mac spotlight + alternatives
CMD+SHIFT+P
Mac: help search
Those who don't rely on their history are doomed to type it again.
Or use snippet managers like http://www.phraseexpress.com/ or https://www.phraseexpander.com/
- Windows:
F7
,F8
(Within one session) > Arrow up/down - Unix: "history",
set -o vi
, ESC + /
http://mridgers.github.io/clink/
It is during our darkest moments that we must focus to see the light.
(Aristotle)
F11
- Everywhere available nowadays (IDE, OS, TextEditor, ...)
- Turn off notifications!
- Don't live in your mailbox!
- Throw out your cellphone!
- Browser extensions that hide images
Introduce Quiet time
http://focusmanifesto.s3.amazonaws.com/FocusFree.pdf
(and keyboards/mice, pair programming)
I couldn't tell you in any detail how my computer works. I use it with a layer of automation.
- File manipulation on regular basis
- syncing directories:
rsync
- encoding/decoding, shrinking, ...
- Python & Ruby are excellent choices here
+1mil. Libraries of all languages available.
- C# - https://www.nuget.org/
- Ruby - https://rubygems.org/
- PHP - https://packagist.org/
- Node - https://www.npmjs.com/
- ...
Build tool plugins:
Livereload - https://www.npmjs.com/package/gulp-livereload
WebDriver. Kan in C#, python, ...
SVN
instead of Tortoisewget
instead of browsing
Integrate them somewhere
Automator example in OSX
http://thehumbleprogrammer.com/mastering-yagni/
... Or use dropbox/GDrive/...
Bob's PC === Jeff's PC Automate with Vagrant/puppet/...
Alternative: Ninite - Install and Update your programs all at once
- Unix:
ln -s link target
- Windows: junction
- Windows 10:
mlink /D link target
- Keep a personal Wiki
- Github pages + Static web engines like https://gohugo.io/
- Generate documents based on code - https://msdn.microsoft.com/nl-be/library/ff657806.aspx
- Analog Journaling (sometimes) > Digital
Automate tests, be productive, run stuff faster, get notifications faster, ...
Build tools, etc etc
teamcity build statistics, code coverage automated, ...
- Sometimes reflection is more elegant
- Sometimes reflection introduces complexity for nothing
- Depends on the language you'll be using
(Example)
Requirements:
macro recording, cmdline-able, regexp search/replace, +1 registers, crossplatform, your requirement here?
- IntelliJ platform
- Eclipse
- Visual Studio
- ...
Daily (heavyweight) work done here.
So why not be productive with it?
Get to know them - put in the extra time!
VI, Emacs - Yes, they are still very relevant!
Vi shortcuts in cmdline: set -o vi
(incl insert mode)
https://nathanleclaire.com/blog/2013/10/27/5-cool-unix-hacks-for-fun-and-productivity/
Cygwin, grep, sed, ...
http://www.brainbaking.com/wiki/unix/cmd/
find . -name "*.csproj" -exec grep -H 2 "utilities" {} \;
sed 's/<br/>(.*<br/>)/regel:<br/>1/g' log.tmp >> $logfile
cat file | sed -e 's/replace/by/g' -e 's/other/new/g'
echo 'holy shit I am seriously impressed'
Use a "real" (script) language to automate chores.
Why? Unit testability, vs shell/Bash script.
Why? Keep behaviour in (unit tested) code.
Productivity beyond coding: '(life) hacking'
Having a system that works and gets the work done.
Trying to be productive is older than you might think...
- The Productive Programmer: http://nealford.com/books/productiveprogrammer
- Leo Babauta's Focus manifesto: http://focusmanifesto.s3.amazonaws.com/FocusFree.pdf
- ReSharper Documentation: https://www.jetbrains.com/resharper/documentation/documentation.html
- Download Cygwin: https://cygwin.com/install.html
- Life Hacker: http://lifehacker.com/
- Learning the Vi and Vim Editors: http://shop.oreilly.com/product/9780596529833.do