SlideShare ist ein Scribd-Unternehmen logo
1 von 74
如何參與自由軟體開發 經驗分享 By Kan-Ru Chen (陳侃如) [email_address] ICOS 2011 2011-09-11 NTU
程式有Bug或是不好用怎麼辦?
出版社排不出 Knuth 的書 於是有了 TeX
BitKeeper 死要錢 &%$#@*! 於是 Linus 寫了 git
還有很多很多類似的例子
結論
有需求(生氣)才有進步
長輩說
幹壞事是進步最大的原動力
例如: 為了抓圖學會了 perl+wget
還好我們有 Open Source/Free Software
% ls ~/src/mirror|wc -l 244
有了 Source Code 想做什麼都可以
如果...
做簡報到一半 OpenOffice.org又當啦! &%$@*!
聊天到一半... 輸入法又掛啦! &%$#@*!
不會寫程式 找別人救你
想辦法再當一次
有時候很簡單 有時候很難
紀錄流程
回報
會寫程式的人
自己動手,豐衣足食
想辦法再當一次
有時候很簡單 有時候很難
紀錄流程
回報 抓蟲
回報 (不管蟲有沒有抓到)
回報到哪?
溝通管道
Bug Tracking System
Mailing List
論壇(Forum)
IRC
語言隔閡
不用擔心
用點常識 Use your common sense
共通語言
冠C: I speak C language
爬說語(Python)嘶嘶嘶~
投PATCH問路
有時候,Patch不是目的
是溝通的方式
冠C: I speak C language
爬說語(Python)嘶嘶嘶~
只要有進步,就是好Patch!
沒什麼好害羞的!
Patch要給誰?
$ git log <file>
ChangeLog
Linux $ scripts/get_maintainer.pl
專案網頁
Bug Tracking System
Mailing List
論壇(Forum)
IRC
要有耐心
三天沒回覆很正常
一個禮拜沒更新提醒一下
一個月沒回音試試其他管道
熟悉 upstream 做事方法
說明來意
送 PATCH 不要送  tarball
注意授權方式
使用相同的風格 HACKING
測試過才送出
範例欣賞 經驗分享
Emesene http://kanru.info/blog/archives/330/
Forum vs. IRC vs. Email
Notmuch & Xapian http://thread.gmane.org/gmane.mail.notmuch.general/887
#xapian-2009-12-10 kanru>  Hi, can I assume the termlist is sorted in alphabetical  order?   ojwb>  it's sorted by byte ordering (which means unicode code point  ordering the utf-8)  ojwb>  but not by any collating order which your language might have  ojwb>  so, sort of yes  kanru>  thanks  ojwb>  for example, in german I believe the &szlig; character should  sort as if it were &quot;ss&quot;  kanru>  at least it's sorted, that's enough
#xapian-2009-12-11 cworth>  ojwb: A notmuch user just submitted a Xapian patch that  gives a 5-6x performance for the only performance bug  we're hitting notmuch (Xapian defect #250):  http://notmuchmail.org/pipermail/notmuch/2009/000886.html  cworth>  I guess I should go add that to the defect page...  *  ojwb sighs at the first hunk   ojwb>  yes, attach it to the ticket  ojwb>  I think richardb has been looking at that recently too  cworth>  ojwb: Added.  cworth>  ojwb: I haven't actually looked at the patch. Is it bad?  ojwb>  well, the first hunk contains only whitespace changes AFAICS  ojwb>  which is never a good sign  ojwb>  rather odd setting of cmp to -2, 0 or 2  ojwb>  it's probably along the right lines  cworth>  Oh, right. Not a clean patch.  cworth>  ojwb: Gotta be sure you don't get &quot;too close&quot; to 0 with a  value like 1 or -1, you know?  cworth>  ;-)  cworth>  ojwb: Anyway, I hope it leads to a proper upstream patch  soon.
#xapian-2009-12-11 ojwb>  does it pass the testsuite?  cworth>  ojwb: I haven't checked that yet, but I can.  ojwb>  if richardb isn't working on it after all, I'll happily review the  patch [...]  kanru>  oh.. hi :)  kanru>  that patch is against 1.1.3 aka svn branch  ojwb>  kanru: cool  kanru>  it passed the test suite  ojwb>  excellent  kanru>  rough but works :)  cworth>  kanru: Oh, hi! I should have noticed you in here. :-)
Credits & License ,[object Object]

Weitere ähnliche Inhalte

Andere mochten auch

Android Boot Time Optimization
Android Boot Time OptimizationAndroid Boot Time Optimization
Android Boot Time Optimization
Kan-Ru Chen
 
Application GUI Design - Notes from a Toolkit Developer
Application GUI Design - Notes from a Toolkit DeveloperApplication GUI Design - Notes from a Toolkit Developer
Application GUI Design - Notes from a Toolkit Developer
Samsung Open Source Group
 
SFO15-210: Kernel Mainline Status of Mobile Chipsets
SFO15-210: Kernel Mainline Status of Mobile ChipsetsSFO15-210: Kernel Mainline Status of Mobile Chipsets
SFO15-210: Kernel Mainline Status of Mobile Chipsets
Linaro
 
Emacs - COSCUP 2012
Emacs - COSCUP 2012Emacs - COSCUP 2012
Emacs - COSCUP 2012
Kan-Ru Chen
 

Andere mochten auch (20)

Android Boot Time Optimization
Android Boot Time OptimizationAndroid Boot Time Optimization
Android Boot Time Optimization
 
Lessons Learned with Time-Based Releases for EFL
Lessons Learned with Time-Based Releases for EFLLessons Learned with Time-Based Releases for EFL
Lessons Learned with Time-Based Releases for EFL
 
Linux Kernel Selftest Framework - Quality Control for New Releases
Linux Kernel Selftest Framework - Quality Control for New ReleasesLinux Kernel Selftest Framework - Quality Control for New Releases
Linux Kernel Selftest Framework - Quality Control for New Releases
 
BKK16-507 AOSP builds of Linaro with CI v2
BKK16-507 AOSP builds of Linaro with CI v2BKK16-507 AOSP builds of Linaro with CI v2
BKK16-507 AOSP builds of Linaro with CI v2
 
Webinar: Embedded Linux Boot Time Optimization
Webinar: Embedded Linux Boot Time OptimizationWebinar: Embedded Linux Boot Time Optimization
Webinar: Embedded Linux Boot Time Optimization
 
Ceph, Xen, and CloudStack: Semper Melior
Ceph, Xen, and CloudStack: Semper MeliorCeph, Xen, and CloudStack: Semper Melior
Ceph, Xen, and CloudStack: Semper Melior
 
BKK16-407 AOSP Toolchain Evolution and experimental languages on AOSP
BKK16-407 AOSP Toolchain Evolution and experimental languages on AOSPBKK16-407 AOSP Toolchain Evolution and experimental languages on AOSP
BKK16-407 AOSP Toolchain Evolution and experimental languages on AOSP
 
Synchronised Multidevice Media Playback with Gstreamer
Synchronised Multidevice Media Playback with GstreamerSynchronised Multidevice Media Playback with Gstreamer
Synchronised Multidevice Media Playback with Gstreamer
 
Android slides
Android slidesAndroid slides
Android slides
 
Boosting Developer Productivity with Clang
Boosting Developer Productivity with ClangBoosting Developer Productivity with Clang
Boosting Developer Productivity with Clang
 
AMM_The Future of AGL-JTA
AMM_The Future of AGL-JTAAMM_The Future of AGL-JTA
AMM_The Future of AGL-JTA
 
More Bang for Your Buck: How to Work with an Open Source Foundation
More Bang for Your Buck: How to Work with an Open Source FoundationMore Bang for Your Buck: How to Work with an Open Source Foundation
More Bang for Your Buck: How to Work with an Open Source Foundation
 
Application GUI Design - Notes from a Toolkit Developer
Application GUI Design - Notes from a Toolkit DeveloperApplication GUI Design - Notes from a Toolkit Developer
Application GUI Design - Notes from a Toolkit Developer
 
A Survivor's Guide to Contributing to the Linux Kernel
A Survivor's Guide to Contributing to the Linux KernelA Survivor's Guide to Contributing to the Linux Kernel
A Survivor's Guide to Contributing to the Linux Kernel
 
Building aosp
Building aospBuilding aosp
Building aosp
 
Userspace drivers-2016
Userspace drivers-2016Userspace drivers-2016
Userspace drivers-2016
 
SFO15-210: Kernel Mainline Status of Mobile Chipsets
SFO15-210: Kernel Mainline Status of Mobile ChipsetsSFO15-210: Kernel Mainline Status of Mobile Chipsets
SFO15-210: Kernel Mainline Status of Mobile Chipsets
 
Headless Android Strikes Back!
Headless Android Strikes Back!Headless Android Strikes Back!
Headless Android Strikes Back!
 
Emacs - COSCUP 2012
Emacs - COSCUP 2012Emacs - COSCUP 2012
Emacs - COSCUP 2012
 
Leveraging the Android Open Accessory Protocol
Leveraging the Android Open Accessory ProtocolLeveraging the Android Open Accessory Protocol
Leveraging the Android Open Accessory Protocol
 

Ähnlich wie How to join open source development

WTFin Perl
WTFin PerlWTFin Perl
WTFin Perl
lechupl
 
ooc - A hybrid language experiment
ooc - A hybrid language experimentooc - A hybrid language experiment
ooc - A hybrid language experiment
Amos Wenger
 
Php Loop
Php LoopPhp Loop
Php Loop
lotlot
 
ruote stockholm 2008
ruote stockholm 2008ruote stockholm 2008
ruote stockholm 2008
John Mettraux
 

Ähnlich wie How to join open source development (20)

Teflon - Anti Stick for the browser attack surface
Teflon - Anti Stick for the browser attack surfaceTeflon - Anti Stick for the browser attack surface
Teflon - Anti Stick for the browser attack surface
 
WTFin Perl
WTFin PerlWTFin Perl
WTFin Perl
 
Why Students Need the CppCat Code Analyzer
Why Students Need the CppCat Code AnalyzerWhy Students Need the CppCat Code Analyzer
Why Students Need the CppCat Code Analyzer
 
ooc - A hybrid language experiment
ooc - A hybrid language experimentooc - A hybrid language experiment
ooc - A hybrid language experiment
 
ooc - A hybrid language experiment
ooc - A hybrid language experimentooc - A hybrid language experiment
ooc - A hybrid language experiment
 
Let's contribute, HTML5Rocks/ko!
Let's contribute, HTML5Rocks/ko!Let's contribute, HTML5Rocks/ko!
Let's contribute, HTML5Rocks/ko!
 
Php Loop
Php LoopPhp Loop
Php Loop
 
Best practices in museum search
 Best practices in museum search Best practices in museum search
Best practices in museum search
 
.Net Squad. Deployments. Workflow. Namics
.Net Squad. Deployments. Workflow. Namics.Net Squad. Deployments. Workflow. Namics
.Net Squad. Deployments. Workflow. Namics
 
Node.js Patterns and Opinions
Node.js Patterns and OpinionsNode.js Patterns and Opinions
Node.js Patterns and Opinions
 
Um2010
Um2010Um2010
Um2010
 
How to Lose Functional Programming at Work
How to Lose Functional Programming at WorkHow to Lose Functional Programming at Work
How to Lose Functional Programming at Work
 
CppCat Static Analyzer Review
CppCat Static Analyzer ReviewCppCat Static Analyzer Review
CppCat Static Analyzer Review
 
A Bonus to the "Three Interviews About Static Analyzers" Article, or Intervie...
A Bonus to the "Three Interviews About Static Analyzers" Article, or Intervie...A Bonus to the "Three Interviews About Static Analyzers" Article, or Intervie...
A Bonus to the "Three Interviews About Static Analyzers" Article, or Intervie...
 
2009 Eclipse Con
2009 Eclipse Con2009 Eclipse Con
2009 Eclipse Con
 
File Polyglottery; or This Proof of Concept is Also a Picture of Cats
File Polyglottery; or This Proof of Concept is Also a Picture of CatsFile Polyglottery; or This Proof of Concept is Also a Picture of Cats
File Polyglottery; or This Proof of Concept is Also a Picture of Cats
 
Using Spark ML on Spark Errors – What Do the Clusters Tell Us? with Holden K...
 Using Spark ML on Spark Errors – What Do the Clusters Tell Us? with Holden K... Using Spark ML on Spark Errors – What Do the Clusters Tell Us? with Holden K...
Using Spark ML on Spark Errors – What Do the Clusters Tell Us? with Holden K...
 
Using Spark ML on Spark Errors - What do the clusters tell us?
Using Spark ML on Spark Errors - What do the clusters tell us?Using Spark ML on Spark Errors - What do the clusters tell us?
Using Spark ML on Spark Errors - What do the clusters tell us?
 
ruote stockholm 2008
ruote stockholm 2008ruote stockholm 2008
ruote stockholm 2008
 
Metasepi team meeting #16: Safety on ATS language + MCU
Metasepi team meeting #16: Safety on ATS language + MCUMetasepi team meeting #16: Safety on ATS language + MCU
Metasepi team meeting #16: Safety on ATS language + MCU
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Kürzlich hochgeladen (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

How to join open source development