SlideShare a Scribd company logo
Getting Merged
All about social coding
Yo-An Lin
@c9s
Pull Request,
What's that? 什麼碗糕
The	
  old	
  school	
  open	
  source	
  
collaboration
以往的開源協作
...	
  are	
  done	
  by	
  patches	
  and	
  mailing	
  lists.
是靠 patch + mailing list 完
成的
sometimes	
  you	
  can	
  only	
  contact	
  the	
  
maintainer	
  with	
  an	
  e-­‐mail...
有時候你甚⾄至只有 e-mail
Getting merged
⼀一鍵寄出,⾳音訊全無
You	
  have	
  to	
  poke
戳戳樂,如果你很愛玩的話
無⽌止境合併衝突
The	
  new	
  age	
  of	
  open	
  source	
  
collaboration
新時代的開源協作
..	
  are	
  done	
  by	
  pull	
  requests
是靠 Pull Request 來完成的
Introduced by GitHub in 2008/2009
It	
  combines	
  review,	
  merge,	
  and	
  social
集檢閱, 合併, 社交於⼀一⾝身
One Click
Merge
It	
  reduces	
  the	
  cost	
  of	
  communication	
  &	
  
efforts
減少以往的溝通成本
How does it
work?
Pull Request
如何運作?
Getting merged
Getting merged
Getting merged
Getting merged
Getting merged
For what
reason? 發什麼 PR
"I	
  am	
  doing	
  +ine!	
  why	
  do	
  I	
  have	
  to	
  send	
  
the	
  PRs?!"
我好好的,發什麼 PR ?
http://wowquote.tw/quote/371
If	
  you	
  want	
  to	
  enrich	
  your	
  CV
您的 CV 很無聊嗎?
Then	
  you	
  should	
  send	
  PRs
那就送 PR 吧!
Do	
  you	
  want	
  to	
  claim	
  that	
  you're	
  the	
  
contributor	
  of	
  XXX	
  project?
你想要聲稱是某專案的貢獻
者
Then	
  you	
  should	
  send	
  PRs
那就送 PR 吧!
Seriously,
認真的說,
Once	
  you	
  merged	
  the	
  changes	
  to	
  
upstream
⼀一旦可以合併本地修改到上
游
1.	
  Reduces	
  the	
  cost	
  of	
  maintenance
1. 減少維護成本
2.	
  Helps	
  you	
  update	
  bug	
  Nixes	
  from	
  
upstream	
  without	
  pain
2. 無痛接收新的 BugFix
3.	
  Helps	
  you	
  avoid	
  merge	
  conNlicts	
  for	
  
the	
  future
3. 避免未來的修改衝突
4.	
  The	
  document	
  will	
  be	
  maintained
4. 還有⼈人持續幫你維護⽂文件
有這麼好康還說什麼
Rejected 駁回
Your	
  PR	
  might	
  be	
  rejected	
  if	
  ...
你的 PR 有可能會遭到駁回,
如果...
It	
  doesn't	
  match	
  the	
  direction	
  of	
  
the	
  project
與專案進⾏行⽅方向有衝突
It's	
  out	
  of	
  scope
或者超出範圍
It	
  will	
  break	
  the	
  compatibility
A Real World Case:
Getting merged
遭到駁回
The scientific ways to send
pull requests
RFC First 提案與回饋
Ask	
  First,	
  Shoot	
  later
問清楚,再動⼿手
先射後補也會讓⼈人尷尬
Nobody is
somebody 沒有⼈人就是你
"This	
  project	
  is	
  too	
  large!	
  What	
  
can	
  I	
  do?"
Anything	
  can	
  be	
  included	
  in	
  a	
  pull	
  
request
Build	
  system,	
  Documentation,	
  
Coding	
  style,	
  Designs,	
  Icons...	
  etc
Don't	
  limit	
  yourself
Start small 從⼩小處著⼿手
Small	
  things	
  usually	
  would	
  get	
  
merged	
  easily
Spaces,	
  Wordings,	
  Typos,	
  Small	
  
Nixes...	
  etc
https://twitter.com/jserv/status/552725130690826240
"That letter [the last s] is sad because all the others
have those things [=] below them and it does not."
This patch fixes the tragedy so all the letters can be
happy again.
Read The
Contribution
Document
Big	
  projects	
  have	
  their	
  own	
  coding	
  
rules	
  and	
  contribution	
  rules,	
  you	
  
have	
  to	
  read	
  them	
  carefully.
If	
  you're	
  not	
  doing	
  it	
  right	
  on	
  the	
  
coding	
  style,	
  you're	
  wasting	
  your	
  
time	
  to	
  get	
  merged.
For	
  example,	
  the	
  golang	
  team	
  asks	
  
you	
  to	
  run	
  `go	
  fmt`	
  when	
  
everytime	
  you	
  submit	
  a	
  patch
http://django-oauth-toolkit.readthedocs.org/en/latest/contributing.html
Divide and
Conquer 分⽽而治之
When	
  you	
  want	
  to	
  do	
  something	
  
big
You	
  should	
  divide	
  it	
  into	
  small	
  
separated	
  pull	
  requests
Good	
  impression	
  helps	
  a	
  lot
這是⼀一個
"最熟悉的陌⽣生⼈人"
的概念
Detail matters 細節
Busy	
  people	
  are	
  usually	
  too	
  busy	
  
to	
  listen,	
  think	
  or	
  understand	
  ...
A	
  good	
  brief	
  helps	
  reviewer	
  
quickly	
  understand	
  the	
  changes
BugFix	
  PR	
  should	
  contain	
  a	
  failing	
  
test	
  case	
  and	
  the	
  way	
  to	
  
reproduce	
  the	
  problem.
To	
  proof	
  it's	
  author's	
  fault
Or..	
  to	
  prevent	
  things	
  like	
  this...
Getting merged
At	
  least	
  it	
  prevents	
  from	
  the	
  time-­‐
consuming	
  communication
PR For Feature
• Objective
• Summary
• Effect (Or side effect)
• Tests
Safety 安全
Maintainers	
  usually	
  worry	
  about	
  
breaking	
  backward	
  compatibility,	
  
build	
  system,	
  dependencies...	
  etc
It's	
  also	
  important	
  to	
  get	
  
continuous	
  testing	
  pass
When	
  adding	
  new	
  features,	
  good	
  
tests	
  also	
  help	
  author	
  to	
  verify	
  the	
  
changes
Write	
  down	
  the	
  side	
  effects	
  to	
  
show	
  your	
  careful	
  thoughts	
  to	
  the	
  
author
Just Ask 問就對了
Asia	
  people	
  usually	
  are	
  too	
  shy	
  to	
  
ask	
  
Sometimes	
  people	
  just	
  don't	
  write	
  
down	
  their	
  concern	
  on	
  GitHub
有時專案作者很少會寫下⾃自
⼰己的⼼心中顧慮的部分
When	
  you	
  don't	
  get	
  reply,	
  you	
  
should	
  ask
"If	
  you	
  have	
  any	
  concern,	
  please	
  
let	
  me	
  know"	
  also	
  ping	
  them	
  back	
  
to	
  reply
Timezone
matters 時區有差
Human	
  beings	
  usually	
  check	
  their	
  
e-­‐mail	
  in	
  the	
  morning
For	
  company	
  sponsored	
  projects,	
  
people	
  usually	
  check	
  newly	
  
opened	
  issues	
  in	
  daylight.
For	
  just-­‐for-­‐fun	
  projects,	
  people	
  
usually	
  check	
  the	
  issues	
  in	
  night.
Some	
  non-­‐Asia	
  people	
  usually	
  
don't	
  check	
  e-­‐mail	
  or	
  work	
  on	
  
weekend
Don't	
  expect	
  their	
  e-­‐mail	
  on	
  the	
  
weekend
They	
  have	
  life!
Getting merged
And	
  for	
  Asia	
  
people,	
  you	
  can	
  
just	
  poke	
  around,	
  
they	
  will	
  reply	
  
you	
  all	
  day
San Francisco people get up at
01:00 AM Taipei Time (GMT+8)
And	
  they	
  get	
  off	
  work	
  at	
  10:00	
  
AM	
  Taipei	
  Time	
  (GMT+8)
People from London get up at 15:00
PM Taipei Time
They	
  are	
  having	
  their	
  lunch	
  while	
  
you're	
  having	
  dinner!
To	
  get	
  response	
  instantly
要得到快速回覆
You	
  should	
  send/reply	
  at	
  the	
  correct	
  
time
你應該在正確的時間點發信
And	
  you	
  shall	
  mostly	
  get	
  the	
  
response	
  quicker	
  then	
  you	
  
thought.
And	
  once	
  you	
  get	
  the	
  ping,	
  you	
  
have	
  to	
  pong	
  back	
  quickly
First	
  in,	
  First	
  out
Last	
  In,	
  Never	
  Out
Because	
  they've	
  got	
  off	
  work
The lines on this map show 12 cities’ typical working day, beginning with 9 AM on
the right and ending at 5 PM on the left, and each workday’s overlap with time
zones around the world. Each clock shows that city’s workday overlap with other
cities’ and the best time to schedule a call.
https://hbr.org/2010/10/vision-statement-why-mumbai-
at-1-pm-is-the-center-of-the-business-world
Timezone overlapping
World Clock app for multi-timezone
Countersign 連署
Votes	
  can	
  show	
  the	
  need	
  to	
  the	
  
author
Getting merged
Partnership 合作夥伴
By	
  being	
  reviewed	
  or	
  reviewing	
  
PRs	
  from	
  others	
  
you	
  will	
  know	
  good	
  people
Different	
  from	
  LinkedIn,
You	
  know	
  their	
  code	
  &	
  
personality
Negotiation 交涉
Screenshot
Rocks 有圖有真相
Screencast	
  even	
  better!
Getting merged
https://github.com/c9s/CLIFramework#automatic-zsh-completion-generator
LICEcap
https://github.com/lepht/licecap
Questions? 問題?
Getting merged
Ad

More Related Content

Viewers also liked (20)

Globo.com - migração do player flash para html5
Globo.com  - migração do player flash para html5Globo.com  - migração do player flash para html5
Globo.com - migração do player flash para html5
Leandro Moreira
 
XAML 入門
XAML 入門XAML 入門
XAML 入門
ShinichiAoyagi
 
LINQ の概要とかもろもろ
LINQ の概要とかもろもろLINQ の概要とかもろもろ
LINQ の概要とかもろもろ
ShinichiAoyagi
 
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
ShinichiAoyagi
 
LINQ概要
LINQ概要LINQ概要
LINQ概要
ShinichiAoyagi
 
WindowsストアーアプリでSharpDXを動かしてみる
WindowsストアーアプリでSharpDXを動かしてみるWindowsストアーアプリでSharpDXを動かしてみる
WindowsストアーアプリでSharpDXを動かしてみる
ShinichiAoyagi
 
Windows ストアーアプリで SQLite を使ってみよう
Windows ストアーアプリで SQLite を使ってみようWindows ストアーアプリで SQLite を使ってみよう
Windows ストアーアプリで SQLite を使ってみよう
ShinichiAoyagi
 
Why to choose laravel framework
Why to choose laravel frameworkWhy to choose laravel framework
Why to choose laravel framework
Bo-Yi Wu
 
How to choose web framework
How to choose web frameworkHow to choose web framework
How to choose web framework
Bo-Yi Wu
 
12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL
Konstantin Gredeskoul
 
暗号通貨勉強会
暗号通貨勉強会暗号通貨勉強会
暗号通貨勉強会
Kohei Ogawa
 
Atomic Design powered by React @ AbemaTV
Atomic Design powered by React @ AbemaTVAtomic Design powered by React @ AbemaTV
Atomic Design powered by React @ AbemaTV
Yusuke Goto
 
簡単、クレカ決済! PAY.JPを使ったクレカ決済の仕組み・開発運用時の考慮点について
簡単、クレカ決済! PAY.JPを使ったクレカ決済の仕組み・開発運用時の考慮点について簡単、クレカ決済! PAY.JPを使ったクレカ決済の仕組み・開発運用時の考慮点について
簡単、クレカ決済! PAY.JPを使ったクレカ決済の仕組み・開発運用時の考慮点について
dcubeio
 
AWS Black Belt Techシリーズ AWS Management Console
AWS Black Belt Techシリーズ AWS Management ConsoleAWS Black Belt Techシリーズ AWS Management Console
AWS Black Belt Techシリーズ AWS Management Console
Amazon Web Services Japan
 
AWS Black Belt Tech シリーズ 2015 - AWS WAF
AWS Black Belt Tech シリーズ 2015 - AWS WAFAWS Black Belt Tech シリーズ 2015 - AWS WAF
AWS Black Belt Tech シリーズ 2015 - AWS WAF
Amazon Web Services Japan
 
Introduction to node.js by Ran Mizrahi @ Reversim Summit
Introduction to node.js by Ran Mizrahi @ Reversim SummitIntroduction to node.js by Ran Mizrahi @ Reversim Summit
Introduction to node.js by Ran Mizrahi @ Reversim Summit
Ran Mizrahi
 
Intro to JavaScript Testing
Intro to JavaScript TestingIntro to JavaScript Testing
Intro to JavaScript Testing
Ran Mizrahi
 
Dependency Injection @ AngularJS
Dependency Injection @ AngularJSDependency Injection @ AngularJS
Dependency Injection @ AngularJS
Ran Mizrahi
 
AWS Black Belt Techシリーズ Amazon VPC
AWS Black Belt Techシリーズ Amazon VPCAWS Black Belt Techシリーズ Amazon VPC
AWS Black Belt Techシリーズ Amazon VPC
Amazon Web Services Japan
 
Starting a Collaboration Revolution
Starting a Collaboration RevolutionStarting a Collaboration Revolution
Starting a Collaboration Revolution
Sven Peters
 
Globo.com - migração do player flash para html5
Globo.com  - migração do player flash para html5Globo.com  - migração do player flash para html5
Globo.com - migração do player flash para html5
Leandro Moreira
 
LINQ の概要とかもろもろ
LINQ の概要とかもろもろLINQ の概要とかもろもろ
LINQ の概要とかもろもろ
ShinichiAoyagi
 
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
ShinichiAoyagi
 
WindowsストアーアプリでSharpDXを動かしてみる
WindowsストアーアプリでSharpDXを動かしてみるWindowsストアーアプリでSharpDXを動かしてみる
WindowsストアーアプリでSharpDXを動かしてみる
ShinichiAoyagi
 
Windows ストアーアプリで SQLite を使ってみよう
Windows ストアーアプリで SQLite を使ってみようWindows ストアーアプリで SQLite を使ってみよう
Windows ストアーアプリで SQLite を使ってみよう
ShinichiAoyagi
 
Why to choose laravel framework
Why to choose laravel frameworkWhy to choose laravel framework
Why to choose laravel framework
Bo-Yi Wu
 
How to choose web framework
How to choose web frameworkHow to choose web framework
How to choose web framework
Bo-Yi Wu
 
12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL
Konstantin Gredeskoul
 
暗号通貨勉強会
暗号通貨勉強会暗号通貨勉強会
暗号通貨勉強会
Kohei Ogawa
 
Atomic Design powered by React @ AbemaTV
Atomic Design powered by React @ AbemaTVAtomic Design powered by React @ AbemaTV
Atomic Design powered by React @ AbemaTV
Yusuke Goto
 
簡単、クレカ決済! PAY.JPを使ったクレカ決済の仕組み・開発運用時の考慮点について
簡単、クレカ決済! PAY.JPを使ったクレカ決済の仕組み・開発運用時の考慮点について簡単、クレカ決済! PAY.JPを使ったクレカ決済の仕組み・開発運用時の考慮点について
簡単、クレカ決済! PAY.JPを使ったクレカ決済の仕組み・開発運用時の考慮点について
dcubeio
 
AWS Black Belt Techシリーズ AWS Management Console
AWS Black Belt Techシリーズ AWS Management ConsoleAWS Black Belt Techシリーズ AWS Management Console
AWS Black Belt Techシリーズ AWS Management Console
Amazon Web Services Japan
 
AWS Black Belt Tech シリーズ 2015 - AWS WAF
AWS Black Belt Tech シリーズ 2015 - AWS WAFAWS Black Belt Tech シリーズ 2015 - AWS WAF
AWS Black Belt Tech シリーズ 2015 - AWS WAF
Amazon Web Services Japan
 
Introduction to node.js by Ran Mizrahi @ Reversim Summit
Introduction to node.js by Ran Mizrahi @ Reversim SummitIntroduction to node.js by Ran Mizrahi @ Reversim Summit
Introduction to node.js by Ran Mizrahi @ Reversim Summit
Ran Mizrahi
 
Intro to JavaScript Testing
Intro to JavaScript TestingIntro to JavaScript Testing
Intro to JavaScript Testing
Ran Mizrahi
 
Dependency Injection @ AngularJS
Dependency Injection @ AngularJSDependency Injection @ AngularJS
Dependency Injection @ AngularJS
Ran Mizrahi
 
Starting a Collaboration Revolution
Starting a Collaboration RevolutionStarting a Collaboration Revolution
Starting a Collaboration Revolution
Sven Peters
 

Similar to Getting merged (20)

Levelling up in open source
Levelling up in open sourceLevelling up in open source
Levelling up in open source
Jon Spriggs
 
Avram ODonovan Blogtalk2008
Avram ODonovan Blogtalk2008Avram ODonovan Blogtalk2008
Avram ODonovan Blogtalk2008
coniecto
 
How good is your software development team ?
How good is your software development team ?How good is your software development team ?
How good is your software development team ?
Kinshuk Adhikary
 
Distributed cat herding
Distributed cat herdingDistributed cat herding
Distributed cat herding
Jilles van Gurp
 
Agile Development Overview (with a bit about builds)
Agile Development Overview (with a bit about builds)Agile Development Overview (with a bit about builds)
Agile Development Overview (with a bit about builds)
David Benjamin
 
Pretotype it (first pretotype edition) - ProductCamp Nuremberg 2014
Pretotype it (first pretotype edition) - ProductCamp Nuremberg 2014Pretotype it (first pretotype edition) - ProductCamp Nuremberg 2014
Pretotype it (first pretotype edition) - ProductCamp Nuremberg 2014
pcampger
 
Webinar - Design thinking 101 - 2018-07-24
Webinar - Design thinking 101 - 2018-07-24Webinar - Design thinking 101 - 2018-07-24
Webinar - Design thinking 101 - 2018-07-24
TechSoup
 
Avram O Donovan Bannon Blogtalk 2008
Avram O Donovan Bannon Blogtalk 2008Avram O Donovan Bannon Blogtalk 2008
Avram O Donovan Bannon Blogtalk 2008
Blogtalk 2008
 
10 tips to save you time and frustration while programming
10 tips to save you time and frustration while programming10 tips to save you time and frustration while programming
10 tips to save you time and frustration while programming
Hugo Shi
 
How to Teach Yourself to Code
How to Teach Yourself to CodeHow to Teach Yourself to Code
How to Teach Yourself to Code
Mattan Griffel
 
Open Collaboration and Peer Production: Technical Infrastructure and Communit...
Open Collaboration and Peer Production: Technical Infrastructure and Communit...Open Collaboration and Peer Production: Technical Infrastructure and Communit...
Open Collaboration and Peer Production: Technical Infrastructure and Communit...
Sebastian Benthall
 
new srccon pres.pdf
new srccon pres.pdfnew srccon pres.pdf
new srccon pres.pdf
Davis Shaver
 
Finding the Center
Finding the CenterFinding the Center
Finding the Center
Andrew Heaton
 
CTO Crunch avec Julien Simon, Viadeo
CTO Crunch avec Julien Simon, ViadeoCTO Crunch avec Julien Simon, Viadeo
CTO Crunch avec Julien Simon, Viadeo
France Digitale
 
Life in the tech trenches (2015)
Life in the tech trenches (2015)Life in the tech trenches (2015)
Life in the tech trenches (2015)
Julien SIMON
 
Many to many: no man is an island
Many to many: no man is an islandMany to many: no man is an island
Many to many: no man is an island
Jacopo Romei
 
Many to many: no man is an island
Many to many: no man is an islandMany to many: no man is an island
Many to many: no man is an island
Jacopo Romei
 
TMA 2015 The Technical Mind
TMA 2015 The Technical MindTMA 2015 The Technical Mind
TMA 2015 The Technical Mind
Steve Levy
 
Reaching Peak Performance for Knowledge Workers
Reaching Peak Performance for Knowledge WorkersReaching Peak Performance for Knowledge Workers
Reaching Peak Performance for Knowledge Workers
Richard Thripp
 
DevOps Transition Strategies
DevOps Transition StrategiesDevOps Transition Strategies
DevOps Transition Strategies
Alec Lazarescu
 
Levelling up in open source
Levelling up in open sourceLevelling up in open source
Levelling up in open source
Jon Spriggs
 
Avram ODonovan Blogtalk2008
Avram ODonovan Blogtalk2008Avram ODonovan Blogtalk2008
Avram ODonovan Blogtalk2008
coniecto
 
How good is your software development team ?
How good is your software development team ?How good is your software development team ?
How good is your software development team ?
Kinshuk Adhikary
 
Agile Development Overview (with a bit about builds)
Agile Development Overview (with a bit about builds)Agile Development Overview (with a bit about builds)
Agile Development Overview (with a bit about builds)
David Benjamin
 
Pretotype it (first pretotype edition) - ProductCamp Nuremberg 2014
Pretotype it (first pretotype edition) - ProductCamp Nuremberg 2014Pretotype it (first pretotype edition) - ProductCamp Nuremberg 2014
Pretotype it (first pretotype edition) - ProductCamp Nuremberg 2014
pcampger
 
Webinar - Design thinking 101 - 2018-07-24
Webinar - Design thinking 101 - 2018-07-24Webinar - Design thinking 101 - 2018-07-24
Webinar - Design thinking 101 - 2018-07-24
TechSoup
 
Avram O Donovan Bannon Blogtalk 2008
Avram O Donovan Bannon Blogtalk 2008Avram O Donovan Bannon Blogtalk 2008
Avram O Donovan Bannon Blogtalk 2008
Blogtalk 2008
 
10 tips to save you time and frustration while programming
10 tips to save you time and frustration while programming10 tips to save you time and frustration while programming
10 tips to save you time and frustration while programming
Hugo Shi
 
How to Teach Yourself to Code
How to Teach Yourself to CodeHow to Teach Yourself to Code
How to Teach Yourself to Code
Mattan Griffel
 
Open Collaboration and Peer Production: Technical Infrastructure and Communit...
Open Collaboration and Peer Production: Technical Infrastructure and Communit...Open Collaboration and Peer Production: Technical Infrastructure and Communit...
Open Collaboration and Peer Production: Technical Infrastructure and Communit...
Sebastian Benthall
 
new srccon pres.pdf
new srccon pres.pdfnew srccon pres.pdf
new srccon pres.pdf
Davis Shaver
 
CTO Crunch avec Julien Simon, Viadeo
CTO Crunch avec Julien Simon, ViadeoCTO Crunch avec Julien Simon, Viadeo
CTO Crunch avec Julien Simon, Viadeo
France Digitale
 
Life in the tech trenches (2015)
Life in the tech trenches (2015)Life in the tech trenches (2015)
Life in the tech trenches (2015)
Julien SIMON
 
Many to many: no man is an island
Many to many: no man is an islandMany to many: no man is an island
Many to many: no man is an island
Jacopo Romei
 
Many to many: no man is an island
Many to many: no man is an islandMany to many: no man is an island
Many to many: no man is an island
Jacopo Romei
 
TMA 2015 The Technical Mind
TMA 2015 The Technical MindTMA 2015 The Technical Mind
TMA 2015 The Technical Mind
Steve Levy
 
Reaching Peak Performance for Knowledge Workers
Reaching Peak Performance for Knowledge WorkersReaching Peak Performance for Knowledge Workers
Reaching Peak Performance for Knowledge Workers
Richard Thripp
 
DevOps Transition Strategies
DevOps Transition StrategiesDevOps Transition Strategies
DevOps Transition Strategies
Alec Lazarescu
 
Ad

More from Lin Yo-An (12)

Code Generation in PHP - PHPConf 2015
Code Generation in PHP - PHPConf 2015Code Generation in PHP - PHPConf 2015
Code Generation in PHP - PHPConf 2015
Lin Yo-An
 
OSDC.TW - Gutscript for PHP haters
OSDC.TW - Gutscript for PHP hatersOSDC.TW - Gutscript for PHP haters
OSDC.TW - Gutscript for PHP haters
Lin Yo-An
 
Happy Go Programming
Happy Go ProgrammingHappy Go Programming
Happy Go Programming
Lin Yo-An
 
Happy Go Programming Part 1
Happy Go Programming Part 1Happy Go Programming Part 1
Happy Go Programming Part 1
Lin Yo-An
 
Secret sauce of building php applications
Secret sauce of building php applicationsSecret sauce of building php applications
Secret sauce of building php applications
Lin Yo-An
 
LazyRecord: The Fast ORM for PHP
LazyRecord: The Fast ORM for PHPLazyRecord: The Fast ORM for PHP
LazyRecord: The Fast ORM for PHP
Lin Yo-An
 
Vim Script Programming
Vim Script ProgrammingVim Script Programming
Vim Script Programming
Lin Yo-An
 
CPAN 模組二三事
CPAN 模組二三事CPAN 模組二三事
CPAN 模組二三事
Lin Yo-An
 
Vim Hacks (OSSF)
Vim Hacks (OSSF)Vim Hacks (OSSF)
Vim Hacks (OSSF)
Lin Yo-An
 
Perl.Hacks.On.Vim Perlchina
Perl.Hacks.On.Vim PerlchinaPerl.Hacks.On.Vim Perlchina
Perl.Hacks.On.Vim Perlchina
Lin Yo-An
 
Perl.Hacks.On.Vim
Perl.Hacks.On.VimPerl.Hacks.On.Vim
Perl.Hacks.On.Vim
Lin Yo-An
 
Vim Hacks
Vim HacksVim Hacks
Vim Hacks
Lin Yo-An
 
Code Generation in PHP - PHPConf 2015
Code Generation in PHP - PHPConf 2015Code Generation in PHP - PHPConf 2015
Code Generation in PHP - PHPConf 2015
Lin Yo-An
 
OSDC.TW - Gutscript for PHP haters
OSDC.TW - Gutscript for PHP hatersOSDC.TW - Gutscript for PHP haters
OSDC.TW - Gutscript for PHP haters
Lin Yo-An
 
Happy Go Programming
Happy Go ProgrammingHappy Go Programming
Happy Go Programming
Lin Yo-An
 
Happy Go Programming Part 1
Happy Go Programming Part 1Happy Go Programming Part 1
Happy Go Programming Part 1
Lin Yo-An
 
Secret sauce of building php applications
Secret sauce of building php applicationsSecret sauce of building php applications
Secret sauce of building php applications
Lin Yo-An
 
LazyRecord: The Fast ORM for PHP
LazyRecord: The Fast ORM for PHPLazyRecord: The Fast ORM for PHP
LazyRecord: The Fast ORM for PHP
Lin Yo-An
 
Vim Script Programming
Vim Script ProgrammingVim Script Programming
Vim Script Programming
Lin Yo-An
 
CPAN 模組二三事
CPAN 模組二三事CPAN 模組二三事
CPAN 模組二三事
Lin Yo-An
 
Vim Hacks (OSSF)
Vim Hacks (OSSF)Vim Hacks (OSSF)
Vim Hacks (OSSF)
Lin Yo-An
 
Perl.Hacks.On.Vim Perlchina
Perl.Hacks.On.Vim PerlchinaPerl.Hacks.On.Vim Perlchina
Perl.Hacks.On.Vim Perlchina
Lin Yo-An
 
Perl.Hacks.On.Vim
Perl.Hacks.On.VimPerl.Hacks.On.Vim
Perl.Hacks.On.Vim
Lin Yo-An
 
Ad

Recently uploaded (20)

Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 

Getting merged