slash n: technical session 8 - making time - minute by minute - janmejay singh

25
Making Time minute by minute Janmejay Singh

Upload: slashn

Post on 05-Dec-2014

487 views

Category:

Technology


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh

Making Timeminute by minute

Janmejay Singh

Page 2: Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh

● Automation

● Env/Platform/Tools

● Customization and Tweaking

● Choice of Hardware

● Routine and Discipline

Page 3: Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh

Automation

Page 4: Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh

tests let you go faster

you can drive fast, because you have brakes

Page 5: Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh

write tests and do "CI"

● easy maintenance and evolution

● "CI" helps keep tests fresh and project

healthy

● manual testing: last resort

Page 6: Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh

"personal builds"

● CI build is a sacred cow

● essence: "personal build"s allow multi-tasking

● PB: a not-so-sacred cow, so no one messes with the sacred cow

Page 7: Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh

"git HEAD..<ref>"

● git push -f personal HEAD:master

● personal-git@ci4:repos/pricing-xyzabc-jj

Page 8: Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh

Env/Platform/Tool

Page 9: Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh

heterogeneous dev-env

● may catch issues early: like incompatibility or

behavioural differences

● team members use tool-set and env they are

most productive with

● smart editors(Emacs or Vim) outshine IDEs for

all but java, try em!

Page 10: Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh

debugging session in emacs

Page 11: Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh

context switching for devs

● get "git"

● branches: multiple streams

● "branched development" + "personal build"

● stash: urgent fixes over half written patches

● bisect: spot behavioural changes with ease

● if easy, avoid context switching

Page 12: Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh

learn!

● gdb (and cousins)

● shell scripting and tools like awk, sed etc

● intricate details of your deployment env

● performance analysis/monitoring tools

● all IDE, Editor and Shell shortcuts

● ... anything else you use everyday

Page 13: Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh

embrace env-management tools

● especially for teams working on multiple

projects

● "rvm" and "gems", "virtualenv" and "pip",

"slots" and "portage", "gcc -Wl,-rpath", and

should all else fail, the mother of them all:

"chroot"

● if you are really hardcore: use VMs

Page 14: Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh

make a sane dev-env

● tip of the iceberg: debug and nail issues that

only you seem to have

● have scripts to take care of repetitive tasks on

your box (aliases, functions, executables etc)

● smart shell: radiate information you need on

prompt, keep it non resource hungry

Page 15: Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh

use what you understand well

● generally any flavour of "Unix" is dev friendly

● if you know "Windows" really deeply you may

well be more productive with it

● general notion of a user-friendly env is a

misnomer, it is a function of user's

understanding

Page 16: Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh

Customization and Tweaking

Page 17: Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh

maximize screen-space

● cut clutter and peg to highest resolution

● tiling window managers are brilliant with

screen utilization

● hide visible controls that you rarely use

● don't fall for eye candy (compiz / plasma /

clutter / unitiy never help you with work)

Page 18: Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh

tiling window manager and other tweaks in action

Page 19: Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh

master the keyboard

● touch-typing: prevents injuries and makes

you faster

● configure frequently used shortcuts close to

the home-row

● use terminal multiplexer: utilizes screen real-

estate well + allows swift navigation

Page 20: Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh

my extreme customizations

● cpu freq tuning (max, min, threshold, or just

manual flip)

● gc tuning IntelliJ for 1 big and 2 small

codebases

● page-cache and swappiness tuning

● cpu/io scheduler

● noatime

● ...

Page 21: Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh

Choice of Hardware

Page 22: Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh

well, choose wisely

● solid-state over magnetic disks

● try multi-monitor setup

● use larger, hi-res panels

● watch out for physical injuries: keyboard,

docking-station, monitor alignment

Page 23: Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh

Routine and Discipline

Page 24: Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh

core working hours

● no meetings time

● close twitter and facebook

● close mail client

● ideal, but difficult to do as a team

● easy to do at individual level

● can be task driven

Page 25: Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh

Keep exploring, may the source be with you!