Work Smarter not Harder

Make yourself indispensable

Travis Himes

0/5

What?

  • Jenkins & Git
  • WHAT is going on here?
  • Undo order edits
  • Dagger
    • Android, Dagger, and Databinding...
  • Jack of all Trades, master of none

Today's talk

In Words

  • Make you a 'better' developer
  • Make your work easier
  • More repeatable
  • Faster

Learn *nix Tools

  • Windows vs Mac / Linux

    • ​Unix?

  • ​grep / sed / awk

  • command line tricks: 

    • last command edits

    • reverse search of commands

    • single entry history

    • non-history commands

  • ​"man" pages

  • brew

  • But wait, there's more!

1/5

Learn Shell Scripting

  • I primarily use bash, not the only shell!

  • Mouse vs Keyboard

  • Copy / Rename / Move

  • Fix / Adjust

  • Input

  • Tips and Tricks!

Shell Scripting T&T

  • Google it!

  • echo it first!

  • Write a usage statement

  • Your tips & tricks?

*rc files

  • Edit your .bashrc file

  • Email it to yourself or write a gist!

  • git tricks

    • git status

    • co -

  • aliases:

    • up

    • login

    • quietLogs

    • clearData

    • airplane

    • notes

    • rmOrig

  • What might you do?

Problem

Spreadsheet with a BUNCH of detailed information in it, nicely organized, well written, but, you need it in a build.gradle file...

How I did it...

Export to CSV

Careful iterative sed work

Check along the way

Consider "current" vs "target"

Rinse, wash, repeat

For Example...

Not always!

Consider scale!

Interacting with APIs

  • Control both API and Client?
  • People element

  • Software element

  • Things change

  • Trust but Verify

  • "Can you take a look at this"

  • "This doesn't work"

2/5

Testing API behavior

Server behaves differently, depending on device-specific behaviors

 

Options (worst first):

  • Edit Client code
    • Always gets hardcoded response
    • Fake data to server for desired response
  • MITM it
    • Intercept response, adjust it
    • Intercept request, adjust it

Charles

  • Free Trial, but NOT free forever
  • Pain to setup on android
  • Awesome!
  • Response rewrite
    • sed for server data!
    • Setup specific case yourself
  • Request rewrite
    • sed for client calls...
    • Assert server behavior
  • HTTPS too!
  • Worth the $50

curl

  • Command line
  • Can write scripts
  • Quick, easy, get it done
  • Pipe it to jq for pretty JSON
  • Send GCM notifications!

Postman

  • UI for making REST calls
  • Save calls
  • Environments
  • Variables
  • Plenty to go into

Android Studio

  • Setup for collaboration
    • Line Numbers!
  • Mark Scheel "Android Studio is Wicked Pissah"
    • "Find Action"
  • Learn Keyboard Shortcuts!
  • Use Studio for merge conflict resolution
  • Code Templates
  • Plugins!

3/5

Helpful Plugins

  • Mark Scheel: KeyPromoter
  • Vim / Emacs plugin
  • Dagger Plugin
    • What provides this?
    • What uses this?
  • Otto plugin
  • Anyone have a favorite?
     
  • Not a plugin, but: KeyCastr

Android Studio Debugging Tricks

  • Attach Debugger to running app
  • Make breakpoints conditional
  • Evaluate expressions while debugging
  • Set value during debugging
    • including delete!
  • Step into / Step out
  • Learn the keyboard shortcuts!

Figure out how it works!

i.e. take apart the toaster, you just might learn something!

4/5

Don't be afraid to poke around!

  • Don't get fired
  • See what's possible
  • "No" is easy, "Let me try" is better
  • XML Drawables
    • there is a depth to be explored
    • idunnolol.com
  • SVG 
    • LOGO anyone?
    • No Bezier here
    • DEMO (if time)

Collaborate aggressively

  • Consider the bandwidth
    • Google Hangouts / Meet
    • ScreenHero
    • Slack or Hipchat
    • Email
    • Github or Trello
  • Consider the audience
  • Consider the problem

Share what you've learned

  • "Rubber Ducking" anyone?
  • Explaining it clarifies and solidifies it in your mind
  • Stack Overflow
    • make a friendly competition
  • Wikis
    • easy, quick, write it down
    • hacks
    • tricks
    • scripts
    • commands
  • Talks
  • Documentation

Push each other

  • Compete with your peers!
  • Golf challenges
  • Speed challenges
  • Language challenges
  • FRIENDLY competition

Try for the 

The End!

Questions?

5/5

References:

https://goo.gl/1J1Hts

  • www.google.com
  • www.stackoverflow.com
  • www.github.com
  • http://tldp.org/LDP/abs/html/
  • https://www.w3.org/TR/SVG/paths.html
  • https://plugins.jetbrains.com/plugin/4455-key-promoter
  • https://github.com/keycastr/keycastr
  • https://plugins.jetbrains.com/plugin/164-ideavim
  • www.google.com
  • http://idunnolol.com/android/drawables.html

https://goo.gl/pTC5D5

Work Smarter not Harder

By Travis Himes

Work Smarter not Harder

  • 1,799