SlideShare uma empresa Scribd logo
1 de 29
Why sending patches back to upstream is so important. If you’re working with open source software. Macpaul Lin 2011/Dec/09
This slide is made for you, and for your BOSS. 這個投影片是讓你拿去給老闆看的
We often made our products based on open source software. 公司經常會叫你 偷開放原始碼的軟體來做產品
These software are usually need to be modified to adapt into the products. 但是這些軟體不改 通常沒辦法直接拿來用
Open source software indeed helped us to develop products. 用開放原始碼的軟體開發產品, 的確很快也很有幫助, 也不用花錢買軟體來改。
But the realistic is… 但事實是…
You will have problem on compatible and upgrade issues between different versions. 你會在不同的版本之間, 碰到相容性和升級的問題。
If you started from tarball, upgrade will be almost impossible because you have to compare each file and directory. 如果你從下載的  tarball  開始做你的產品, 那軟體升級就會幾乎不可能, 因為你必須比對每一個檔案或每一個目錄。
You will still also have lot of testing work to do… 更別說你還要做各種大量的測試…
So, you will restart the work every time when a new project kick off. 而且你每次都得重複一次這樣的工作 Download Tarball and Unpack Compare Bugfix, feature and Upgrade Release Integrate and Test
No, actually you won’t get those components be upgraded if they should be upgraded… Like most WiFi devices shipped nowadays are still using u-boot 1.0.0 (2003) and busybox 1.0.0 (2004). 不,你不會想去碰那些該升級的部份的 例如:至今仍有很多剛出貨的無線產品, 仍在使用  2003  年的  u-boot  或  2004  年的  busybox
There is still hope. 還好我們(這些工程師)都還沒掛
Thanks version control, for example, if you’re using git, you just need to do “git rebase” to apply all the patches. 感謝有人發明了版本管理, 例如,如果你用  git , 你只需要下  git rebase  , 就可以把所有的  patch  掛上來。
But we still have problem even we used version control. 即使我們用了版本管理工具, 還是會碰到問題
Upgrade Process of Integrating Open Source Software 整合開放原始碼軟體的升級過程 Developing Release Developing Release You Download The Release Integrating, Bug fix. Download Release Integration Problem.
The only way to do upgrade is to reorganize your patches to fit the new release. 升級的唯一方法, 就是把這些補丁拆掉再重組, 以相容新版的軟體。
To fix a “single” patch usually takes 10 minutes to 2 hours and even longer; if your patch is fortunately really beautiful. 修理一個補丁通常要花上 10 分鐘到 2 小時, 或者更長的時間; 那是在你運氣很好, 補丁都寫得的很漂亮的狀況下, 也要這麼多時間。
Think about it: If you didn’t submit these patches (bugfix and features) back to upstream, what will you get? 試想:如果你不把這些補丁(包括錯誤修正和新功能)送回去上游,你會得到怎樣的結果?
Finally you will get a  vicious circle each time when you need to do upgrade, because you have to fix each accumulated patch. 所以每次升級,你就得把累積的補丁逐一修正, 最後掉進惡性循環,不會有空做真正該做的事情。 Official Software Maintained Patches keeps growing
Then you will need days to weeks to do upgrade.  然後你就需要花上好幾天, 甚至數週的時間來做升級, 而不能做別的事情。
Is it your life now? 你是不是已經被一堆補丁壓垮了?
Why not send your patches back? You can maintain less modifications. You’ll be free to do more creative things. 把補丁送回去吧! 這樣你可以少些負擔。 然後你就可以有自由的身心靈 來做更多有創意的事情。
Other people will help you to maintain bugfixs, give you suggestion, to avoid you use the wrong method to develop the software. 世界上其他厲害的工程師會一起幫你維護程式,給你意見,然後避免你用錯的方法,甚至老舊的觀念來寫程式。
The above sounds great, but don’t forget,  the basic work is to organize the patch simple and clear as possible. 以上聽起來或許很不錯, 但是別忘了,基本功很重要, 必須把每一個補丁, 寫得盡可能簡單又清楚。
If you and your boss still didn’t understand this, show the following slide to him. 講了這麼多, 如果你和你的老闆, 還是聽不懂這到底是怎麼一回事, 給他看最後的這張投影片。
The feature of your product, this should be located at an intersection.
你家的產品應該長得這樣 他應該落在某一個交集區之內
Send your patches back, this will let your work easier and get better results from now on. 把你的補丁都送回去吧, 這會讓你的工作變得簡單些, 而且得到更好得產出。
Any comment and suggestion is welcome. We can make this world better just start from our working environment. You can use this slides freely. macpaul  gmail.com 歡迎給予任何的建議 我們可以從改善工作環境開始, 讓世界變得更好 請隨意使用這份投影片 @

Mais conteúdo relacionado

Mais procurados

DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)Nitin Bhide
 
Efi Merdler Kravitz - 7 things you should know before going serverless
Efi Merdler Kravitz - 7 things you should know before going serverlessEfi Merdler Kravitz - 7 things you should know before going serverless
Efi Merdler Kravitz - 7 things you should know before going serverlessAWSCOMSUM
 
DevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsDevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsNitin Bhide
 
MeetingPoint 2015 - Swimming upstream in the container revolution
MeetingPoint 2015 - Swimming upstream in the container revolutionMeetingPoint 2015 - Swimming upstream in the container revolution
MeetingPoint 2015 - Swimming upstream in the container revolutionBert Jan Schrijver
 
Discovery delivery agiletour-xian
Discovery delivery agiletour-xianDiscovery delivery agiletour-xian
Discovery delivery agiletour-xianQiao Liang
 
Visual Studio Mobile Center: A story about mobile DevOps
Visual Studio Mobile Center: A story about mobile DevOpsVisual Studio Mobile Center: A story about mobile DevOps
Visual Studio Mobile Center: A story about mobile DevOpsGeert van der Cruijsen
 
Continuous Deployment Pipeline for Systems - Presented at Ohio LinuxFest 2017...
Continuous Deployment Pipeline for Systems - Presented at Ohio LinuxFest 2017...Continuous Deployment Pipeline for Systems - Presented at Ohio LinuxFest 2017...
Continuous Deployment Pipeline for Systems - Presented at Ohio LinuxFest 2017...garrett honeycutt
 
Java Forum Nord 2015 - Swimming upstream in the container revolution
Java Forum Nord 2015 - Swimming upstream in the container revolutionJava Forum Nord 2015 - Swimming upstream in the container revolution
Java Forum Nord 2015 - Swimming upstream in the container revolutionBert Jan Schrijver
 
DevOps - Continuous Integration, Continuous Delivery - let's talk
DevOps - Continuous Integration, Continuous Delivery - let's talkDevOps - Continuous Integration, Continuous Delivery - let's talk
DevOps - Continuous Integration, Continuous Delivery - let's talkD Z
 
Geecon Microservices 2015 - Swimming upstream in the container revolution
Geecon Microservices 2015 - Swimming upstream in the container revolutionGeecon Microservices 2015 - Swimming upstream in the container revolution
Geecon Microservices 2015 - Swimming upstream in the container revolutionBert Jan Schrijver
 
DevOps - the Future of Agile - Why/What/How - from Enterprise DevOps Israel 2015
DevOps - the Future of Agile - Why/What/How - from Enterprise DevOps Israel 2015DevOps - the Future of Agile - Why/What/How - from Enterprise DevOps Israel 2015
DevOps - the Future of Agile - Why/What/How - from Enterprise DevOps Israel 2015Yuval Yeret
 
NextBuild 2015 - Swimming upstream in the container revolution
NextBuild 2015 - Swimming upstream in the container revolutionNextBuild 2015 - Swimming upstream in the container revolution
NextBuild 2015 - Swimming upstream in the container revolutionBert Jan Schrijver
 
Software Development 2020 - Swimming upstream in the container revolution
Software Development 2020 - Swimming upstream in the container revolutionSoftware Development 2020 - Swimming upstream in the container revolution
Software Development 2020 - Swimming upstream in the container revolutionBert Jan Schrijver
 
EuregJUG 2016-01-07 - Swimming upstream in the container revolution
EuregJUG 2016-01-07 - Swimming upstream in the container revolutionEuregJUG 2016-01-07 - Swimming upstream in the container revolution
EuregJUG 2016-01-07 - Swimming upstream in the container revolutionBert Jan Schrijver
 
Devoxx BE 2015 - Swimming upstream in the container revolution
Devoxx BE 2015 - Swimming upstream in the container revolutionDevoxx BE 2015 - Swimming upstream in the container revolution
Devoxx BE 2015 - Swimming upstream in the container revolutionBert Jan Schrijver
 
2016 - IGNITE - Rugged Enterprise DevSecNetQAGovOps
2016 - IGNITE - Rugged Enterprise DevSecNetQAGovOps2016 - IGNITE - Rugged Enterprise DevSecNetQAGovOps
2016 - IGNITE - Rugged Enterprise DevSecNetQAGovOpsdevopsdaysaustin
 
Bringing Change to Life | YOW 2016 | Melbourne, Brisbane, Sydney - Australia
Bringing Change to Life | YOW 2016 | Melbourne, Brisbane, Sydney - AustraliaBringing Change to Life | YOW 2016 | Melbourne, Brisbane, Sydney - Australia
Bringing Change to Life | YOW 2016 | Melbourne, Brisbane, Sydney - AustraliaBill Scott
 
Ethan huang 全民qa
Ethan huang   全民qaEthan huang   全民qa
Ethan huang 全民qaOdd-e
 
Scaling Up Lookout
Scaling Up LookoutScaling Up Lookout
Scaling Up LookoutLookout
 

Mais procurados (20)

DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)
 
Efi Merdler Kravitz - 7 things you should know before going serverless
Efi Merdler Kravitz - 7 things you should know before going serverlessEfi Merdler Kravitz - 7 things you should know before going serverless
Efi Merdler Kravitz - 7 things you should know before going serverless
 
DevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsDevOps - Understanding Core Concepts
DevOps - Understanding Core Concepts
 
MeetingPoint 2015 - Swimming upstream in the container revolution
MeetingPoint 2015 - Swimming upstream in the container revolutionMeetingPoint 2015 - Swimming upstream in the container revolution
MeetingPoint 2015 - Swimming upstream in the container revolution
 
Discovery delivery agiletour-xian
Discovery delivery agiletour-xianDiscovery delivery agiletour-xian
Discovery delivery agiletour-xian
 
Visual Studio Mobile Center: A story about mobile DevOps
Visual Studio Mobile Center: A story about mobile DevOpsVisual Studio Mobile Center: A story about mobile DevOps
Visual Studio Mobile Center: A story about mobile DevOps
 
Continuous Deployment Pipeline for Systems - Presented at Ohio LinuxFest 2017...
Continuous Deployment Pipeline for Systems - Presented at Ohio LinuxFest 2017...Continuous Deployment Pipeline for Systems - Presented at Ohio LinuxFest 2017...
Continuous Deployment Pipeline for Systems - Presented at Ohio LinuxFest 2017...
 
Java Forum Nord 2015 - Swimming upstream in the container revolution
Java Forum Nord 2015 - Swimming upstream in the container revolutionJava Forum Nord 2015 - Swimming upstream in the container revolution
Java Forum Nord 2015 - Swimming upstream in the container revolution
 
DevOps - Continuous Integration, Continuous Delivery - let's talk
DevOps - Continuous Integration, Continuous Delivery - let's talkDevOps - Continuous Integration, Continuous Delivery - let's talk
DevOps - Continuous Integration, Continuous Delivery - let's talk
 
Geecon Microservices 2015 - Swimming upstream in the container revolution
Geecon Microservices 2015 - Swimming upstream in the container revolutionGeecon Microservices 2015 - Swimming upstream in the container revolution
Geecon Microservices 2015 - Swimming upstream in the container revolution
 
DevOps - the Future of Agile - Why/What/How - from Enterprise DevOps Israel 2015
DevOps - the Future of Agile - Why/What/How - from Enterprise DevOps Israel 2015DevOps - the Future of Agile - Why/What/How - from Enterprise DevOps Israel 2015
DevOps - the Future of Agile - Why/What/How - from Enterprise DevOps Israel 2015
 
NextBuild 2015 - Swimming upstream in the container revolution
NextBuild 2015 - Swimming upstream in the container revolutionNextBuild 2015 - Swimming upstream in the container revolution
NextBuild 2015 - Swimming upstream in the container revolution
 
Software Development 2020 - Swimming upstream in the container revolution
Software Development 2020 - Swimming upstream in the container revolutionSoftware Development 2020 - Swimming upstream in the container revolution
Software Development 2020 - Swimming upstream in the container revolution
 
EuregJUG 2016-01-07 - Swimming upstream in the container revolution
EuregJUG 2016-01-07 - Swimming upstream in the container revolutionEuregJUG 2016-01-07 - Swimming upstream in the container revolution
EuregJUG 2016-01-07 - Swimming upstream in the container revolution
 
Devoxx BE 2015 - Swimming upstream in the container revolution
Devoxx BE 2015 - Swimming upstream in the container revolutionDevoxx BE 2015 - Swimming upstream in the container revolution
Devoxx BE 2015 - Swimming upstream in the container revolution
 
2016 - IGNITE - Rugged Enterprise DevSecNetQAGovOps
2016 - IGNITE - Rugged Enterprise DevSecNetQAGovOps2016 - IGNITE - Rugged Enterprise DevSecNetQAGovOps
2016 - IGNITE - Rugged Enterprise DevSecNetQAGovOps
 
Bringing Change to Life | YOW 2016 | Melbourne, Brisbane, Sydney - Australia
Bringing Change to Life | YOW 2016 | Melbourne, Brisbane, Sydney - AustraliaBringing Change to Life | YOW 2016 | Melbourne, Brisbane, Sydney - Australia
Bringing Change to Life | YOW 2016 | Melbourne, Brisbane, Sydney - Australia
 
Ethan huang 全民qa
Ethan huang   全民qaEthan huang   全民qa
Ethan huang 全民qa
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Scaling Up Lookout
Scaling Up LookoutScaling Up Lookout
Scaling Up Lookout
 

Destaque

OpenWRT, A value-add base solution for your product. (2nd, Macpual)
OpenWRT, A value-add base solution for your product. (2nd, Macpual)OpenWRT, A value-add base solution for your product. (2nd, Macpual)
OpenWRT, A value-add base solution for your product. (2nd, Macpual)Macpaul Lin
 
USB Specification 2.0 - Chapter 9 - Device Framework
USB Specification 2.0 - Chapter 9 - Device FrameworkUSB Specification 2.0 - Chapter 9 - Device Framework
USB Specification 2.0 - Chapter 9 - Device FrameworkMacpaul Lin
 
U boot porting guide for SoC
U boot porting guide for SoCU boot porting guide for SoC
U boot porting guide for SoCMacpaul Lin
 
How to build a community in a company blue&macpaul coscup2015
How to build a community in a company blue&macpaul coscup2015How to build a community in a company blue&macpaul coscup2015
How to build a community in a company blue&macpaul coscup2015Macpaul Lin
 
Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)Macpaul Lin
 
政黨票的故事
政黨票的故事政黨票的故事
政黨票的故事Macpaul Lin
 
Porting linux to a new architecture
Porting linux to a new architecturePorting linux to a new architecture
Porting linux to a new architectureKALRAY
 
Porting a new architecture (NDS32) to open wrt project
Porting a new architecture (NDS32) to open wrt projectPorting a new architecture (NDS32) to open wrt project
Porting a new architecture (NDS32) to open wrt projectMacpaul Lin
 
Linux Porting
Linux PortingLinux Porting
Linux PortingChamp Yen
 
U boot source clean up project how-to
U boot source clean up project how-toU boot source clean up project how-to
U boot source clean up project how-toMacpaul Lin
 
U boot 程式碼打掃計畫
U boot 程式碼打掃計畫U boot 程式碼打掃計畫
U boot 程式碼打掃計畫Macpaul Lin
 
Module 4 Embedded Linux
Module 4 Embedded LinuxModule 4 Embedded Linux
Module 4 Embedded LinuxTushar B Kute
 
Pull up & pull-down resistors
Pull up & pull-down resistorsPull up & pull-down resistors
Pull up & pull-down resistorsprathik
 
從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗
從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗
從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗Macpaul Lin
 
1169_ali_mohamed
1169_ali_mohamed1169_ali_mohamed
1169_ali_mohamedMohamed Ali
 
AVR_Course_Day7 timers counters and interrupt programming
AVR_Course_Day7 timers counters and  interrupt programmingAVR_Course_Day7 timers counters and  interrupt programming
AVR_Course_Day7 timers counters and interrupt programmingMohamed Ali
 
AVR_Course_Day2 what is pcb
AVR_Course_Day2 what is pcbAVR_Course_Day2 what is pcb
AVR_Course_Day2 what is pcbMohamed Ali
 

Destaque (20)

OpenWRT, A value-add base solution for your product. (2nd, Macpual)
OpenWRT, A value-add base solution for your product. (2nd, Macpual)OpenWRT, A value-add base solution for your product. (2nd, Macpual)
OpenWRT, A value-add base solution for your product. (2nd, Macpual)
 
USB Specification 2.0 - Chapter 9 - Device Framework
USB Specification 2.0 - Chapter 9 - Device FrameworkUSB Specification 2.0 - Chapter 9 - Device Framework
USB Specification 2.0 - Chapter 9 - Device Framework
 
U boot porting guide for SoC
U boot porting guide for SoCU boot porting guide for SoC
U boot porting guide for SoC
 
How to build a community in a company blue&macpaul coscup2015
How to build a community in a company blue&macpaul coscup2015How to build a community in a company blue&macpaul coscup2015
How to build a community in a company blue&macpaul coscup2015
 
Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)Bootstrap process of u boot (NDS32 RISC CPU)
Bootstrap process of u boot (NDS32 RISC CPU)
 
政黨票的故事
政黨票的故事政黨票的故事
政黨票的故事
 
Porting linux to a new architecture
Porting linux to a new architecturePorting linux to a new architecture
Porting linux to a new architecture
 
Porting a new architecture (NDS32) to open wrt project
Porting a new architecture (NDS32) to open wrt projectPorting a new architecture (NDS32) to open wrt project
Porting a new architecture (NDS32) to open wrt project
 
Linux Porting
Linux PortingLinux Porting
Linux Porting
 
U boot source clean up project how-to
U boot source clean up project how-toU boot source clean up project how-to
U boot source clean up project how-to
 
U boot 程式碼打掃計畫
U boot 程式碼打掃計畫U boot 程式碼打掃計畫
U boot 程式碼打掃計畫
 
Module 4 Embedded Linux
Module 4 Embedded LinuxModule 4 Embedded Linux
Module 4 Embedded Linux
 
Qt5 embedded
Qt5 embeddedQt5 embedded
Qt5 embedded
 
Pull up & pull-down resistors
Pull up & pull-down resistorsPull up & pull-down resistors
Pull up & pull-down resistors
 
Porting Android
Porting AndroidPorting Android
Porting Android
 
從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗
從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗
從u-boot 移植 NDS32 談 嵌入式系統開放原始碼開發的 一些經驗
 
1169_ali_mohamed
1169_ali_mohamed1169_ali_mohamed
1169_ali_mohamed
 
AVR_Course_Day7 timers counters and interrupt programming
AVR_Course_Day7 timers counters and  interrupt programmingAVR_Course_Day7 timers counters and  interrupt programming
AVR_Course_Day7 timers counters and interrupt programming
 
AVR_Course_Day2 what is pcb
AVR_Course_Day2 what is pcbAVR_Course_Day2 what is pcb
AVR_Course_Day2 what is pcb
 
Interrupt
InterruptInterrupt
Interrupt
 

Semelhante a Why sending patches back is so important

Continuous integration
Continuous integrationContinuous integration
Continuous integrationBoris Dominic
 
Devops Devops Devops
Devops Devops DevopsDevops Devops Devops
Devops Devops DevopsKris Buytaert
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous EverythingAndrea Tino
 
Coding With JRebel - Java Forever Changed
Coding With JRebel - Java Forever ChangedCoding With JRebel - Java Forever Changed
Coding With JRebel - Java Forever ChangedElizabeth Quinn-Woods
 
Coding With JRebel - Java Forever Changed
Coding With JRebel - Java Forever ChangedCoding With JRebel - Java Forever Changed
Coding With JRebel - Java Forever ChangedMadeline Gauthier
 
Coding With JRebel - Java Forever Changed
Coding With JRebel - Java Forever ChangedCoding With JRebel - Java Forever Changed
Coding With JRebel - Java Forever ChangedK. Dachos
 
White Paper: Release This! - Tools for a Smooth Release Cycle
White Paper: Release This! - Tools for a Smooth Release CycleWhite Paper: Release This! - Tools for a Smooth Release Cycle
White Paper: Release This! - Tools for a Smooth Release CyclePerforce
 
Five essential elements for successful software development
Five essential elements for successful software developmentFive essential elements for successful software development
Five essential elements for successful software developmentNirtiSingla
 
Five Mistakes Beginner Devops Professionals Make
Five Mistakes Beginner Devops Professionals MakeFive Mistakes Beginner Devops Professionals Make
Five Mistakes Beginner Devops Professionals MakeRock Interview
 
DevOps make teamwork great.
DevOps make teamwork great.DevOps make teamwork great.
DevOps make teamwork great.keithmin
 
Devops interview-questions-PDF
Devops interview-questions-PDFDevops interview-questions-PDF
Devops interview-questions-PDFMayank Kumar
 
7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins UsersAndrew Bayer
 
An introduction to DevOps
An introduction to DevOpsAn introduction to DevOps
An introduction to DevOpsAndrea Tino
 
Don't hate, automate. lessons learned from implementing continuous delivery
Don't hate, automate. lessons learned from implementing continuous deliveryDon't hate, automate. lessons learned from implementing continuous delivery
Don't hate, automate. lessons learned from implementing continuous deliverySolano Labs
 
DevOps interview questions and answers
DevOps interview questions and answersDevOps interview questions and answers
DevOps interview questions and answersHopeTutors1
 
Starting Fresh Every Morning Paper
Starting Fresh Every Morning PaperStarting Fresh Every Morning Paper
Starting Fresh Every Morning Paperyannmonclair
 
PVS-Studio confesses its love for Linux
PVS-Studio confesses its love for LinuxPVS-Studio confesses its love for Linux
PVS-Studio confesses its love for LinuxPVS-Studio
 

Semelhante a Why sending patches back is so important (20)

Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Devops Devops Devops
Devops Devops DevopsDevops Devops Devops
Devops Devops Devops
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
 
Coding With JRebel - Java Forever Changed
Coding With JRebel - Java Forever ChangedCoding With JRebel - Java Forever Changed
Coding With JRebel - Java Forever Changed
 
Coding With JRebel - Java Forever Changed
Coding With JRebel - Java Forever ChangedCoding With JRebel - Java Forever Changed
Coding With JRebel - Java Forever Changed
 
Coding With JRebel - Java Forever Changed
Coding With JRebel - Java Forever ChangedCoding With JRebel - Java Forever Changed
Coding With JRebel - Java Forever Changed
 
White Paper: Release This! - Tools for a Smooth Release Cycle
White Paper: Release This! - Tools for a Smooth Release CycleWhite Paper: Release This! - Tools for a Smooth Release Cycle
White Paper: Release This! - Tools for a Smooth Release Cycle
 
Five essential elements for successful software development
Five essential elements for successful software developmentFive essential elements for successful software development
Five essential elements for successful software development
 
Five Mistakes Beginner Devops Professionals Make
Five Mistakes Beginner Devops Professionals MakeFive Mistakes Beginner Devops Professionals Make
Five Mistakes Beginner Devops Professionals Make
 
DevOps make teamwork great.
DevOps make teamwork great.DevOps make teamwork great.
DevOps make teamwork great.
 
SAD15 - Maintenance
SAD15 - MaintenanceSAD15 - Maintenance
SAD15 - Maintenance
 
Devops
DevopsDevops
Devops
 
Devops interview-questions-PDF
Devops interview-questions-PDFDevops interview-questions-PDF
Devops interview-questions-PDF
 
Jenkins
JenkinsJenkins
Jenkins
 
7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users
 
An introduction to DevOps
An introduction to DevOpsAn introduction to DevOps
An introduction to DevOps
 
Don't hate, automate. lessons learned from implementing continuous delivery
Don't hate, automate. lessons learned from implementing continuous deliveryDon't hate, automate. lessons learned from implementing continuous delivery
Don't hate, automate. lessons learned from implementing continuous delivery
 
DevOps interview questions and answers
DevOps interview questions and answersDevOps interview questions and answers
DevOps interview questions and answers
 
Starting Fresh Every Morning Paper
Starting Fresh Every Morning PaperStarting Fresh Every Morning Paper
Starting Fresh Every Morning Paper
 
PVS-Studio confesses its love for Linux
PVS-Studio confesses its love for LinuxPVS-Studio confesses its love for Linux
PVS-Studio confesses its love for Linux
 

Último

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 

Último (20)

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 

Why sending patches back is so important

  • 1. Why sending patches back to upstream is so important. If you’re working with open source software. Macpaul Lin 2011/Dec/09
  • 2. This slide is made for you, and for your BOSS. 這個投影片是讓你拿去給老闆看的
  • 3. We often made our products based on open source software. 公司經常會叫你 偷開放原始碼的軟體來做產品
  • 4. These software are usually need to be modified to adapt into the products. 但是這些軟體不改 通常沒辦法直接拿來用
  • 5. Open source software indeed helped us to develop products. 用開放原始碼的軟體開發產品, 的確很快也很有幫助, 也不用花錢買軟體來改。
  • 6. But the realistic is… 但事實是…
  • 7. You will have problem on compatible and upgrade issues between different versions. 你會在不同的版本之間, 碰到相容性和升級的問題。
  • 8. If you started from tarball, upgrade will be almost impossible because you have to compare each file and directory. 如果你從下載的 tarball 開始做你的產品, 那軟體升級就會幾乎不可能, 因為你必須比對每一個檔案或每一個目錄。
  • 9. You will still also have lot of testing work to do… 更別說你還要做各種大量的測試…
  • 10. So, you will restart the work every time when a new project kick off. 而且你每次都得重複一次這樣的工作 Download Tarball and Unpack Compare Bugfix, feature and Upgrade Release Integrate and Test
  • 11. No, actually you won’t get those components be upgraded if they should be upgraded… Like most WiFi devices shipped nowadays are still using u-boot 1.0.0 (2003) and busybox 1.0.0 (2004). 不,你不會想去碰那些該升級的部份的 例如:至今仍有很多剛出貨的無線產品, 仍在使用 2003 年的 u-boot 或 2004 年的 busybox
  • 12. There is still hope. 還好我們(這些工程師)都還沒掛
  • 13. Thanks version control, for example, if you’re using git, you just need to do “git rebase” to apply all the patches. 感謝有人發明了版本管理, 例如,如果你用 git , 你只需要下 git rebase , 就可以把所有的 patch 掛上來。
  • 14. But we still have problem even we used version control. 即使我們用了版本管理工具, 還是會碰到問題
  • 15. Upgrade Process of Integrating Open Source Software 整合開放原始碼軟體的升級過程 Developing Release Developing Release You Download The Release Integrating, Bug fix. Download Release Integration Problem.
  • 16. The only way to do upgrade is to reorganize your patches to fit the new release. 升級的唯一方法, 就是把這些補丁拆掉再重組, 以相容新版的軟體。
  • 17. To fix a “single” patch usually takes 10 minutes to 2 hours and even longer; if your patch is fortunately really beautiful. 修理一個補丁通常要花上 10 分鐘到 2 小時, 或者更長的時間; 那是在你運氣很好, 補丁都寫得的很漂亮的狀況下, 也要這麼多時間。
  • 18. Think about it: If you didn’t submit these patches (bugfix and features) back to upstream, what will you get? 試想:如果你不把這些補丁(包括錯誤修正和新功能)送回去上游,你會得到怎樣的結果?
  • 19. Finally you will get a vicious circle each time when you need to do upgrade, because you have to fix each accumulated patch. 所以每次升級,你就得把累積的補丁逐一修正, 最後掉進惡性循環,不會有空做真正該做的事情。 Official Software Maintained Patches keeps growing
  • 20. Then you will need days to weeks to do upgrade. 然後你就需要花上好幾天, 甚至數週的時間來做升級, 而不能做別的事情。
  • 21. Is it your life now? 你是不是已經被一堆補丁壓垮了?
  • 22. Why not send your patches back? You can maintain less modifications. You’ll be free to do more creative things. 把補丁送回去吧! 這樣你可以少些負擔。 然後你就可以有自由的身心靈 來做更多有創意的事情。
  • 23. Other people will help you to maintain bugfixs, give you suggestion, to avoid you use the wrong method to develop the software. 世界上其他厲害的工程師會一起幫你維護程式,給你意見,然後避免你用錯的方法,甚至老舊的觀念來寫程式。
  • 24. The above sounds great, but don’t forget, the basic work is to organize the patch simple and clear as possible. 以上聽起來或許很不錯, 但是別忘了,基本功很重要, 必須把每一個補丁, 寫得盡可能簡單又清楚。
  • 25. If you and your boss still didn’t understand this, show the following slide to him. 講了這麼多, 如果你和你的老闆, 還是聽不懂這到底是怎麼一回事, 給他看最後的這張投影片。
  • 26. The feature of your product, this should be located at an intersection.
  • 28. Send your patches back, this will let your work easier and get better results from now on. 把你的補丁都送回去吧, 這會讓你的工作變得簡單些, 而且得到更好得產出。
  • 29. Any comment and suggestion is welcome. We can make this world better just start from our working environment. You can use this slides freely. macpaul gmail.com 歡迎給予任何的建議 我們可以從改善工作環境開始, 讓世界變得更好 請隨意使用這份投影片 @