Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Automatiza, motherfucker

Automatiza, motherfucker

As developers, we have the chance to hack and customize the tools we use in our everyday work. Also, we tend to be lazy, and it's proved that automatizing common tasks saves a lot of time. This talk tries to motivate you and to show you in which aspects I have improved my day to day routine.

Fernando Blat

October 21, 2013
Tweet

More Decks by Fernando Blat

Other Decks in Programming

Transcript

  1. Fernando Blat •Programador web en •Ruby on Rails •Javascript •Devops

    •Aficionado a los side-projects • @ferblape · github.com/ferblape Monday, October 21, 13
  2. Trabajar en hacer una tarea rutinaria más eficiente vs. gastar

    más tiempo del que ahorras http://xkcd.com/1205/ Monday, October 21, 13
  3. Trabajar en hacer una tarea rutinaria más eficiente vs. gastar

    más tiempo del que ahorras http://xkcd.com/1205/ Monday, October 21, 13
  4. Trabajar en hacer una tarea rutinaria más eficiente vs. gastar

    más tiempo del que ahorras http://xkcd.com/1205/ Monday, October 21, 13
  5. Como programadores tenemos el superpoder de hackear cosas como nuestras

    herramientas de trabajo Monday, October 21, 13
  6. Jump to common files https://github.com/tpope/vim-­‐rails :Rcontroller  users :A  #  jump

     to  alternate  file :SA  #  open  alternate  file  in  split  window :TA  #  open  alternate  file  in  new  tab Monday, October 21, 13
  7. Custom jumps #  ~/.vimrc let  g:rails_projections  =  { \  "vendor/exporters/cardinal/lib/cardinal/*.rb":

     { \      "command":  "cardinal", \      "test":  "vendor/exporters/cardinal/spec/%s_spec.rb" \  } :Rcardinal Monday, October 21, 13
  8. #  Git alias  gl="git  log  -­‐-­‐pretty=oneline" alias  gfo='git  fetch  origin'

    alias  gp='git  fo  &&  git  re  &&  git  push' alias  gfr='git  fo  &&  git  re' alias  grc='git  rebase  -­‐-­‐continue' alias  gst='git  status' alias  p='git  pull  -­‐-­‐rebase' alias  P='git  push' Bash aliases Monday, October 21, 13
  9. #  Git alias  gl="git  log  -­‐-­‐pretty=oneline" alias  gfo='git  fetch  origin'

    alias  gp='git  fo  &&  git  re  &&  git  push' alias  gfr='git  fo  &&  git  re' alias  grc='git  rebase  -­‐-­‐continue' alias  gst='git  status' alias  p='git  pull  -­‐-­‐rebase' alias  P='git  push' Bash aliases Monday, October 21, 13
  10. #  Development alias  tld='tail  -­‐f  log/development.log' alias  tlt='tail  -­‐f  log/test.log'

    alias  sc='script/console' alias  sdbc='script/dbconsole' alias  cc='script/rails  c' alias  D='cap  deploy' Bash aliases Monday, October 21, 13
  11. BeBanjo Tools https://github.com/37signals/sub $  bj  console  movida.pro #  ssh  hostname01.bebanjo.net

    #  cd  apps/movida/app/current #  script/rails  console Monday, October 21, 13
  12. BeBanjo Tools $  bj  syslog-­‐tail  staging  app-­‐movida.log #  ssh  <syslog-­‐server>

    #  cd  /var/log/remote/environments/ staging #  tail  -­‐f  app-­‐movida.log Monday, October 21, 13
  13. BeBanjo Tools $  bj  sync #  get  app  name  from

     current  folder #  downloads  latest  backup  from  S3 #  loads  the  dump  into  the  database #  run  a  task  to  mask  data  from   users Monday, October 21, 13
  14. BeBanjo Tools $  bj  release  (feature|bugfix|other)  1423 #  get  pull

     request  #1423  information #  checkouts  to  stable  branch #  fill  in  HISTORY.md #  merge  topic  branch  into  stable  branch #  removes  topic  branch Monday, October 21, 13
  15. Bash aliases #  Alfredos function  alfredos  {    curl  -­‐s

     "https://bebanjo.jottit.com/alfredos-­‐rb"  |  grep  "@"  |  sed  's/<[^>]*>//g'    echo  `curl  -­‐s  "https://bebanjo.jottit.com/alfredos-­‐rb"  |  grep  "@"  |  wc  -­‐l` } ~  $  alfredos @ferblape @jorge @amaiac @xuanxu 4 Monday, October 21, 13
  16. Un servidor para... • Un side project • Un blog

    • Git • Correo • Backups • ... Monday, October 21, 13
  17. Detalles • Mil detalles más allá del LAMP: • rotación

    de logs • backups • monitorización • firewall • securizar SSH • notificaciones por correo Monday, October 21, 13
  18. recipes/default.rb include_recipe 'gems' include_recipe 'monit' include_recipe 'logrotate' package "libperl5.10" do

    action :install options "--force-yes" end package "libxslt1.1" do action :install options "--force-yes" end Monday, October 21, 13
  19. Alternativas • Linode scripts + API • Bash • Puppet

    • Image backup • ... Monday, October 21, 13
  20. Ifttt • Menciones en twitter de un keyword • Noticia

    sobre un tema • Enlazar reminders con SMS • Acciones de bolsa • Aviso de si va a llover a las 7AM • Si recibes un determinado tipo de archivo en Dropbox... Monday, October 21, 13
  21. Concluyendo • Te ahorra tiempo • Te ayuda a darte

    cuénta de cómo trabajas • Te ayuda a concentrarte en lo importante • Te permite hackear • Te hace más eficiente Monday, October 21, 13