 Semua orang, selamat datang ke Picon SG 2016. Sebenarnya, ia adalah Picon Seventh di Singapura. Picon Seventh, sebelum itu kita telah melakukan Picon Apex. Jadi, ini Picon Seventh di Singapura. Jadi, selamat datang. Saya akan mulakan dengan beberapa terima kasih. Pertama, terima kasih kepada semua anda yang datang. Ia sangat terima kasih melihat banyak Pitanists yang bergadut di satu tempat. Saya akan mulakan dengan berterima kasih kepada Dunman High. Mereka tidak berada di sini. Tetapi, Encik Guy telah mempunyai beberapa student-nya untuk membantu penerbangan. Saya sangat gembira dan terima kasih untuk itu. Terima kasih kepada sponsor kita. Sponsor Platinum, Garena, Quantopian dan Divertile. Mereka telah membantu penerbangan di luar. Kamu boleh bercakap dengan mereka tentang syarikat mereka. Sponsor Gold, Bitmass, AirBnb. Sponsor Silver, Carousel, Jublia, Artling. Dan Akron. Terakhir, kami terima kasih kepada NUS untuk menjadi sponsor venue kita. Untuk penerbangan yang cantik. Dan juga untuk komuniti kami yang mendukung Picon. Grup Pitan, Pai Data, Pai Ladies dan Jengonaut. Jengonaut Singapura. Dan saya ingin berterima kasih kepada komuniti Pitan user group. Iwan, Li Meng, presiden dan vice-presiden. Dan Michael, penerbangan, Morris dan Martin. Untuk membantu menunjukkan konferensi yang hebat. Sekarang, saya akan memperkenalkan penerbangan kita. Mereka sangat hebat. Saya telah memperkenalkan mereka selama beberapa tahun. Saya tidak beritahu mereka. Tapi sekarang saya beritahu. Danil dan Audrey. Mereka adalah penerbangan kedua jengobu. Saya ada kedua jengobu. Saya juga tidak beritahu mereka. Dan penerbangan kedua jengobu yang saya menggunakan dan saya tidak beritahu mereka. Mereka bersama-sama memperkenalkan penerbangan jengobu, penerbangan jengobu dan lagi. Mereka mengajar jengobu pada kedua jengobu. Mereka tidak bekerja. Audrey menikmati penerbangan jengobu. Penerbangan jengobu dan fotografi. Danil menikmati penerbangan jengobu. Mereka menikmati penerbangan jengobu dan fotografi. Dan penerbangan jengobu. Mereka bertemu di US Picon di 2010. Picon romance. Saya tidak fikir ia akan berlaku di sini. Mungkin. Saya tidak akan bercakap lagi. Saya akan beritahu Danil dan Audrey mengambilkan penerbangan jengobu. Boleh kamu dengar saya? Ya. Hai. Nama saya adalah Audrey Roy Greenfield. Saya adalah Danil Roy Greenfield. Dan kita bercakap hari ini adalah bagaimana kita beritahu penerbangan jengobu Picon di accident. Okey, jadi Max beri kita introdoksinya. Jadi, tidak banyak yang perlu dibuat di sini. Sampai kita adalah penerbangan penerbangan jengobu. Kita melakukan banyak kerja di penerbangan jengobu. Dan ini adalah penerbangan jengobu yang kita lakukan. Kita melakukan banyak kerja di penerbangan jengobu. Dan apabila kita melakukan kerja di penerbangan jengobu, ini adalah kerja penerbangan jengobu. Ini adalah kerja yang kita lakukan di masa perjalanan kita, hanya untuk membantu kembali ke komuniti Picon. Ada banyak sebab mengapa kita melakukan penerbangan jengobu. Bukan hanya beri kembali ke komuniti. Untuk penerbangan jengobu, salah satu perkara yang menarik untuk membuat penerbangan jengobu dan melakukan penerbangan jengobu atau di tempat lain, adalah ia membantu sebagai portfolio. Ia bermakna penerbangan jengobu atau penerbangan jengobu dapat melihat kode anda dan tidak hanya melihat apa yang anda lakukan sekarang, tetapi melihat bagaimana anda bergerak dari masa lalu. Apabila anda pertama mulai dan kode anda sangat menarik, atau anda melihat kembali kembali kemudian dan itu menarik. Mereka dapat melihat bagaimana anda bergerak dan sangat penting apabila anda melalui penerbangan jengobu. Penerbangan jengobu adalah bagus untuk mengubah masalah. Walaupun anda hanya menggunakan PIPI untuk mencari masalah, itu bagus. Tetapi apabila anda mempunyai masalah sendiri, anda perlu mengubah dan tiada pakaian di luar sana menulis pakaian dan mengubah dan mempunyai masalah yang lain membantu, ia dapat menjadi cara yang bagus untuk mengubah masalah besar di PIPI. Dan juga ada aspek komuniti. Anda dapat menjumpai orang di luar sana, di luar atau keadaan, atau di dunia dunia. Maksud saya, kami tahu gram sebab pakaian, kami tahu semua anda sekarang sebab pakaian pakaian. Jadi itu sangat bagus. Dan akhirnya, kami mempunyai masalah, kerana kami rasa ia adalah kebebasan yang kami menerima banyak dari PIPI. Jika tidak, untuk langkah PIPI, kami tidak akan bertemu. Jadi, kami ingin beri kembali. Dan tentu saja, sebabnya, ia bergantif. Ia beri kami rasa kami sedang melakukan sesuatu yang hebat. Ya, dan... Ya, saya tahu. Dan perkara itu, apabila anda bekerja di Open Source, apabila anda melakukannya sekejap, ada masalah kami. Ada masalah kami. Ada masalah kami. Tetapi, kami melakukannya kerana kami suka. Kerana ia membuat perbezaan dalam hidup kami. Dan, ya, ia adalah yang kami lakukannya. Ya, dan tiada apa yang lebih menarik daripada jika anda menerima sebuah hidup di luar sana. Dan, sebuah orang random menemui dan sebenarnya menggunakan. Dan kemudian, kemudian, anda tahu, mereka menemui sebuah bagi. Dan, anda tahu, mereka menerima bagi berita, dan mereka memberi anda sebuah pasangan. Dan, untuk menerima sebuah pasangan dari sebuah orang random, ia hanya sebuah kemahasaan yang paling terkenal dalam dunia. Jadi, salah satu tempat yang terkenal dalam dunia pembinaan pembinaan pembinaan adalah pembinaan pembinaan. Dan, ini tempat anda dapat mencari, saya rasa ia berada pada 80,000 pembinaan pembinaan dan anda dapat mencari dan mencari sesuatu yang anda perlukan, sesuatu yang anda perlukan. Jadi, saya hanya mahu mencari sebuah pembinaan yang dikenal dengan pembinaan pembinaan. Bagus. Bagus. Jadi, untuk orang anda yang tidak tahu, anda dapat pergi ke pipi.piphon.org. Baiklah. Siapa di sini sebenarnya menerima pembinaan pembinaan pembinaan pembinaan? Baiklah. Beberapa. Beberapa. Bagus. Untuk orang anda yang menerima pembinaan anda, anda hanya mahu memberikan sebuah ruang yang cepat kerana... Bagus. Sekarang, semua orang di dalam bilik ini, kami berharap, pada akhir pembinaan ini, atau segera, kami ingin melihat semua orang di sini menerima pembinaan pembinaan pembinaan dan beritahu kami, saya rasa, semua orang di Facebook, jadi... Ya, hanya menerima pembinaan kita dengan, Hey, saya menerima pembinaan. Dan anda mungkin menerima, anda mungkin fikir kita gila mengatakan ini, bahawa tidak menerima pembinaan yang susah. Dan ada banyak sebab anda mungkin fikir ini. Saya bermakna, anda mungkin hanya tidak tahu bagaimana membuat ini. Atau anda mungkin fikir, oh, saya tidak menerima pembinaan yang susah. Saya tidak dapat fikir idea untuk pembinaan yang susah. Atau anda boleh kata, atau anda hanya tidak mempercayai seberat untuk mempercayai pembinaan. Saya bermakna, siapa yang menggunakan itu? Anda mungkin fikir, oh, saya tidak mempercayai, anda perlu... anda perlu menjadi sebuah pembinaan yang susah untuk mengeluarkan paket python. Memang? Ya. Itu tak berminat. Jangan membuat kesilapan. Okey, jadi ada soalan yang besar tentang paket open-source. Ini adalah perkara yang kita belajar selama tahun. Dan kita akan berkongsi dengan anda. Tapi kita tak mahu anda beritahu sesiapa pun yang soalan itu. Kerana... Itulah soalan. Jadi jangan beritahu sesiapa pun. Bukan sebab paket kreator itu bukan paket khas. Tak ada apa-apa khas tentang paket kreator yang telah dibuat. Mereka... Mereka orang kota. Mereka kota seperti saya dan anda. Ya, saya bermakna... Ketua kita yang telah mengeluarkan paket dan membuat orang menggunakan mereka atau mungkin tak dapat orang menggunakan mereka. Ketua kita seperti yang anda semua telah lakukan. Apabila paket kreator berkongsi selepas ini... Saya rasa... Saya tak tahu apa yang telah dilakukan pada paket kreator. Tapi... Kita akan minum paket kreator dan makan apa-apa yang mereka beri. Seperti anda. Jadi bukan begitu banyak perbezaan. Ada satu perbezaan. Dan itu perbezaan. Mereka mengeluarkan paket. Mereka hanya melakukannya. Pertanyaan adalah anda boleh ambil sebuah fungsi. Anda tahu sebuah fungsi yang anda mungkin mempunyai dari projek ke projek. Dan anda menggunakan itu lagi dan lagi. Well, itu... Dengan pekerjaan sedikit... Dengan memasukkan pakaian yang dibuat. Mereka boleh dibuat menjadi paket yang menggunakan. Dan kemudian anda selesai. Anda telah mengeluarkan paket yang menggunakan lagi dan lagi... sebagai paket. Jadi... Paket memang tak perlu dilakukan. Kita betul-betul ingin mengelakukannya. Mereka boleh menjadi lebih mudah... mengambil sebuah pakaian yang menggunakan... sebuah pakaian yang menggunakan. Dan memasukkan itu menjadi fungsi. Memasukkan pakaian yang dibuat. Semua pakaian yang sedikit... untuk membuat paket yang anda boleh menggunakan... sebuah pakaian yang lain. Seperti pakaian yang anda telah memasukkan. Dan kemudian anda memasukkan itu. Anda memasukkan itu juga. Dan itu saja. Memasukkan fungsi anda... menjadi pakaian yang menggunakan... dan memasukkan itu sebagai pakaian. Itu saja. Dan itu adalah pakaian yang pertama. Pakaian yang kedua adalah perkara yang sama... tetapi bukan pakaian yang sedikit... ia boleh menjadi pakaian... atau pakaian yang sedikit... ia adalah pakaian yang sama... hanya... sedikit berbeza. Kita mahu memasukkan... pakaian yang saya beritahu. Kita adalah... beberapa pakaian yang agar... adalah pakaian yang kedua. Ini memiliki... pakaian yang mengdesakan... pakaian yang membuat singkat... dari pakaian yang dibangka. Maksudnya, jika anda ingin membuat pakaian yang dilantai... anda boleh menggunakan... pakaian yang dibangka... pakaian yang dibangka... untuk menghasilkan. Kita akan memasukkan sebuah kegantikan. Dan memasukkan. Tidak menghubungi. Okey. Tidak menghubungi. Okey. Kamu mahu... Maaf. Tunggu. Kita cuba mendapatkan terminal. Bagaimana kita... Bagaimana kita... Bagaimana kita... Oh, ya. Tapi kita perlu berubah. Okey. Okey. Okey. Okey. Jadi, saya akan menghubungi ini sedikit. Okey? Baiklah. Saya akan menghubungi ini... ke dalam kawasan. Okey. Jadi, saya akan menghubungi... pakaian yang dipanggil Foo. Dan semua ini adalah... apabila anda menghubungi Foo... ia akan mengubungi Foo sebagai kawasan. Dan untuk menghubungi ini... kita hanya menghubungi kawasan. Dan jika saya... jika saya mempunyai kawasan internet... saya dapat menghubungi ini. Dan itu akan bekerja. Saya akan menghubungi untuk menghubungi dan menghubungi tempatan... dan menghubungi itu. Namun, kita tidak mempunyai kawasan internet. Jadi... bagi saya, kita mempunyai kawasan. Jadi, kita akan menghubungi ini. Dan Audrey telah menghubungi kawasan. Jadi, kawasan pakaian kawasan. Ini adalah... ini adalah pakaian kawasan untuk... kawasan kawasan kawasan kawasan. Tempatan kawasan kawasan untuk membuat pakaian kawasan. Okey. Anda dapat melihat pakaian kawasan di MIT. Dia telah menghubungi dari situ. Dan pakaian kawasan GitHub... yang adalah adriar. Dan... nama projek yang kita akan menghubungi Foo. Dan anda dapat melihatnya... dengan pertanyaan yang akan meminta projek... terakhir untuk kita. Dan... saya rasa... Kita akan memberitahu. Sebenarnya, saya rasa kawasan ini... sedikit terlalu besar. Pakaian kawasan... Foo. Okey. Dan kemudian... kita akan memasak pakaian pakaian kawasan. Dia adalah adriar. Dan lagi, ia mempunyai pakaian kawasan. Dan versi... dan... kita akan memasak pakaian kawasan. Dan... kita tidak akan memasak pakaian kawasan... dengan Travis. Kita tidak percaya. Dan... kita tidak akan memasak pakaian kawasan... dengan pakaian kawasan. Kita ingin mempunyai pakaian kawasan. Jika orang lain membuat pakaian... untuk projek, kita dapat memasak pakaian. Kerana ia selalu baik memasak pakaian. Dan... kita akan mempunyai MIT. Dan... kita sebenarnya mempunyai pakaian kawasan sekarang. Kita dapat melihat... itu susah untuk melihat di sana. Tapi kita dapat melihat di atas bawah sana. Ada... dan jika saya memasak pakaian, Adam. Jadi pakaian kawasan itu... adalah pakaian pakaian kawasan... yang kita telah membuat... dengan memasak pakaian kawasan. Dan... apabila kita memasak pakaian kawasan... kita dapat memasak pakaian kawasan... dan anda boleh mengandungi kode. Anda boleh memasak pakaian kamu di sini. Namun saya tak tahu... apa pakaian kami akan membuat. Kita akan memasak pakaian. Jadi, ia sangat mudah, tapi ini adalah sesuatu yang jika kita memiliki... paham internet dan jika kita mahu... mabuatkan orang yang memasak pakaian pakaian... kita dapat memasak pakaian... di sini. Dan memasak pakaian Kitab, set-up.py register. Jadi, kita register paketnya dan kemudian ini akan di-upload. Jadi, kita register dan di-upload. Dan itu saja. Ini adalah sesuatu yang semua orang boleh lakukan. Semua yang kamu perlu lakukan adalah install cookie-cutter. Kamu boleh lakukan pip install cookie-cutter. Kamu boleh lakukan kandan install cookie-cutter. Kamu boleh lakukan broon install cookie-cutter. Mereka mempunyai packages Debian untuknya. Semua sistem operasi mempunyai. Ia bukan hanya flash-in-the-pan yang akan menunjukkan kepada kamu di Picon Singapore. Ini adalah sesuatu yang digunakan oleh kebanyakan besar di mana-mana. Jadi, apabila kita di Picon dan ada Microsoft dan Yelp dan LinkedIn dan sebagian-banyak kebanyakan yang lain. Mereka semua menggunakan cookie-cutter secara internasinya. Jadi, setiap IDE, yang lebih besar seperti PyCharm, PyCharm mulai pada awas, mereka akan bekerja di pilihan cookie-cutter. Jadi, ini bukan hanya kita yang minta kamu lakukan ini. Ini sebuah dunia yang minta kamu lakukan pilihan cookie-cutter. Minta kamu lakukan pilihan cookie-cutter. Dan kamu akan nampak kita memasukkan pilihan cookie-cutter. Tapi kamu mungkin akan menyebut apa dalam pilihan sebenar. Dan itu sesuatu yang kita menghargai kamu untuk menikmati juga. Apabila kamu menikmati pilihan cookie-cutter atau apabila kamu menikmati pilihan cookie-cutter jika kamu mahu menikmati pilihan cookie-cutter. Buka set-up.py. Lihat apa yang ada di sini. Lihat dokumentasi. Sebelum kamu tahu lebih baik. Jadi, disini ada beberapa paket yang bermula dengan cara ini. Sangat mudah. Paket yang kecil, hanya sedikit kode dan yang telah mempunyai sesuatu. Atau sedikit. Binaurianat atau proporan kasus. Ya, ini adalah paket yang kita membuat menggunakan proses ini. Yang kita menunjukkan sekarang. Dan paketnya yang kita menggunakan sekarang. Kemudian, projek yang mudah boleh berlalu menjadi projek kompleks. Jadi, ada beberapa mereka yang bermula dengan cara ini. Mereka tidak bermula dengan cookie-cutter. Tapi, seperti yang saya katakan, kamu ada projek yang berlalu yang berlalu. Pada jangkau, potlib mat, ipython, cookie cutter. Dan perkara itu adalah bahawa projek kompleks pun bermula dari projek yang mudah. Ia perlu bermula dari tempatan. Dari kode yang pertama. Jadi ya, projek kompleks. Mereka berlalu dari kode itu. Dan cookie cutter sendiri adalah sekarang projek kompleks yang berlalu menjadi projek kompleks yang berlalu. Tapi ia berlalu seperti perkara yang saya buat dengan beberapa file, hanya cuba mendapat sesuatu untuk bekerja di tempatan. Dan saya ingat apabila saya membuatnya. Saya tidak berfikir ia benar-benar berlalu mengubahnya sebagai paket di awal. Saya merasakannya. Saya fikir, oh mungkin ini hanya sebuah ukuran util yang saya boleh gunakan esok. Saya mungkin... Saya tidak boleh mengubahnya. Tapi saya mengubahnya. Dan saya tidak pernah memikirkan ia akan menjadi projek yang berlalu semasa saya tidak tahu setiap kode yang berlalu. Tiada siapa di kode kode yang berlalu. Dia tahu setiap kode. Tapi itu adalah cara projek berlalu. Jadi apa projek yang harus anda membina? Kita bercakap tentang projek kami. Tapi mari kita bercakap tentang apa yang kita harap anda lakukan. Dan ada sebuah formula untuk membuat projek. Dan itu untuk membina apa yang anda perlukan. Bila anda mempunyai biasanya anda memperkenalkan masalah yang menarik atau anda ingin anda mempunyai kode yang mengubah sesuatu, anda ingin anda mempunyai kode yang mempunyai sesuatu, dan anda mungkin melihat di sekitar pakej python di XR dan di GitHub. Anda mungkin melihat untuk kode itu. Dan ia mungkin bukan kode itu. Atau mungkin ada beberapa versi kode yang anda cuba yang tidak memperkenalkan cara yang anda inginkan. Dan ini adalah peluang yang hebat untuk membuat pakej python untuk membina apa yang anda perlukan untuk keputusan anda. Kemudian kadang-kadang komuniti memikirkan. Kadang-kadang anda tidak mempunyai untuk diri sendiri. Kadang-kadang orang lain membina. Mereka memperkenalkan masalah dan pembunyai pembunyai atau mereka menjadi pembunyai anda. Tapi itu tidak selalu benar. Kadang-kadang anda memperkenalkan pakej dan tiada siapa yang menggunakan ia, tetapi anda. Dan dan ia tidak penting jika anda memperkenalkan pakej anda memperkenalkan untuk pakej anda. Itu bermaksud anda boleh anda dapat memperkenalkan anda. Anda dapat memperkenalkan anda. Anda dapat memperkenalkan pakej anda pada pakej anda dan dapat memperkenalkan ia tanpa memperkenalkan anda. Memperkenalkan lagi dari skratch atau tanpa memperkenalkan pakej anda. Yang lain adalah ia, anda tahu, pada awal kita memperkenalkan profil anda di Github. Itu sesuatu yang lain yang, saya bermaksud, ini apa yang anda tahu, orang mencari. Jadi betul-betul, fokus pada perlukan anda. Fokus pada apa yang anda mahu memperkenalkan dengan pakej anda. Jangan mencari apa yang kita mahu atau apa yang anda tahu. Ada yang lain atau orang lain mahu. Fokus pada apa yang anda perlukan kerana apabila anda mulai menggunakan sesuatu dan orang lain memperkenalkan atau apabila anda membuat sesuatu dan orang lain memperkenalkan ia, jika ia bukan sesuatu yang anda perlukan, ia akan susah untuk memperkenalkan. Tapi, jadi, ya, fokus pada anda. Sekarang, mari kita masukkan cerita tentang pakej anda pakej yang yang kita memperkenalkan awal dan ini adalah pakej yang yang Danny membuat yang dia memperkenalkan sekarang. Dan ia adalah pakej kelas 4. Ia, ianya cukup kecil. Ia mempunyai saya rasa 130 langkah pakej. Ia memperkenalkan pakej objek, yang dapat membantu jika anda memperkenalkan data dari pakej lain atau anda memperkenalkan pakej kompleks dan anda mahu memperkenalkan ianya sebagai pakej. Ia mengandalkan untuk anda. Ia adalah pakej. Oh, saya salah. Ia adalah 131 langkah pakej. Ia adalah pakej untuk kelas yang tersebut. Pada kelebihan pertama ini mempunyai pakej tetapi setiap pakej bukan setiap pakej setiap pakej menggunakan pakej ini dan semua yang saya lakukan adalah kerana saya mengambil pakej ini dari projek non-web dan mempunyai pakej dari projek ke projek dan itu ia mempunyai untuk membuat ia mempunyai pakej jadi saya rasa Oh, saya akan menggunakan pakej dan saya akan memperkenalkan dan memperkenalkan pakej pakej pakej. Dan saya rasa saya akan menggunakan pakej ini. Dan seperti yang anda lihat ini ia mempunyai mempunyai pakej yang tersebut jadi 9 langkah pakej hanya sebuah kelas yang mudah dengan pakej pakej yang anda mungkin semua mempunyai sebelumnya dan kemudian dan kemudian anda tahu mempunyai pakej dan ini ini hanya sebuah sebuah kelas yang mudah sebuah kelas yang mudah yang anda tahu saya pasti semua yang di sini mempunyai pakej yang lebih kompleks daripada ini tapi ini sebaik-baik saja sebaik-baik saja pakej ini boleh mulakan. Tapi kemudian ia memperkenalkan yang pertama seseorang mengajar bahawa Hey, ini bukan seluruh kawasan jadi mereka memperkenalkan pakej pakej dengan sesuatu yang tersebut dan kemudian kita perlu memperkenalkan bagaimana untuk menetapkan yang sangat menarik. Dan kemudian ia memperkenalkan oleh mempunyai pakej pakej pakej dan ada sebuah kelas untuk tidak memperkenalkan atau memperkenalkan atau memperkenalkan atau membuat sesuatu seperti itu dan memperkenalkan ke dalam sebuah kelas standar. Jadi, saya ia sangat menarik bahawa saya dan Daniel di Greenfield mungkin memperkenalkan pakej pakej pakej pakej ia sangat menarik. Dan ini ia tidak akan berlaku jika dia tidak memperkenalkan untuk mengambil pakej pakej pakej dengan sebuah kode yang semua orang mengambil pakej ke dalam sebuah kelas sebuah kelas dan ia banyak perkara menggunakan sebuah kelas seperti pakej pakej pakej untuk pakej ia mempunyai sebuah kelas dan itu itu sangat menarik bahawa lagi perkara ini yang saya lakukan adalah masih sangat menarik tetapi ia dalam tidak begitu menarik pakej pakej pakej. Dan ini adalah sebuah kode yang dapat berlaku dengan pakej pakej anda. Sekarang seperti itu anda tahu kita perlu menghubungi tidak untuk memperkenalkan ia tidak selalu akan memperkenalkan begitu sepanjang masa itu tidak tetapi kita mahu anda terima kasih. perkara itu adalah untuk memperkenalkan kecil-kecil ini kecil-kecil ini yang anda memperkenalkan antara semua projek anda menemukan kecil-kecil ini ke mana anda anda boleh memperkenalkan pakej anda dengan hanya memperkenalkan sesuatu dan menerimanya memperkenalkan dan memperkenalkan perkara yang baik tentang perkara ini seperti dengan kecil-kecil saya tidak tahu bahawa ia tidak memperkenalkan dan tetapi seseorang yang lain menghubungi kepada saya dan kemudian saya belajar bahawa, hey, kode ini tidak memperkenalkan jadi itu perkara yang anda fikir adalah kecil-kecil dan yang anda memperkenalkan dalam kondisi lain yang anda mungkin tidak diberikan atau anda tidak memperkenalkan setidaknya sekarang ada masalah yang lain jadi dengan memperkenalkan kode ini anda memperkenalkan setidaknya dan anda anda memperkenalkan begitu banyak anda memperkenalkan dari setiap kontribusi jadi kita akan memberikan anda beberapa kisah tentang sebuah pakar yang telah berlaku dalam proses ini jadi jango uniform adalah sebuah library yang yang Danny membuat dan sebuah hari ini ia telah mempunyai ia telah mempunyai sebagai sebuah library yang baru disebut jango crispy forms yang yang dibuat oleh pasukan kontributasi dan ia memulai pada awal 2009 apabila saya di nasib dan kita kita membuat sebuah jango projek dan ia adalah sebuah projek pertama saya saya memperkenalkan jango sehingga itu dan masalah adalah jango di luar tidak atau jango di luar bukan sebuah perubahan dan itu kegayaan menerah untuk banyak aplikasi yang semua ini perlu jadi sebuah perubahan dan anda bohong apa yang terjadi perubahanlah examen sebuah perubahan perubahan adalah ada sudah jaman melanggar antara pilihan penggantuk jaman Jadi, anda tidak boleh mempunyai bahagian yang bergantung dan bernama, mempunyai bahagian yang berlainan di web-side supaya ia tidak menggantung kepada penggantungan perempuan. Dan bagi anda yang mempunyai web-side, 7% dari perempuan anda adalah penggantungan perempuan dan mempunyai perempuan ini dengan dapat membaca perkara. Jadi, ini tidak... ini sebenarnya sebuah hal yang besar. Ada banyak orang yang mempunyai perempuan ini. Kemudian ada orang yang tidak dapat melihat, yang mempunyai, yang mendengar perempuan perempuan menggantung perempuan anda. Dan bagi mereka pada hari ini, apabila setiap perempuan dibuat dengan perempuan, ini adalah masalah. Perempuan perempuan mempunyai perempuan dengan perempuan. Jadi, perempuan perempuan di NASA untuk menjumpai perempuan 5-way, dan mempunyai setiap perempuan untuk menjumpai perempuan, yang sangat hebat pada hari ini. Kita perlu menggunakan perempuan perempuan yang gila. Jadi, perempuan yang Danial menjelaskan pada NASA adalah, perempuan perempuan yang anda belajar mempunyai 80 perempuan yang berlainan, dan mereka semua perempuan yang menggunakan perempuan, dan menggantung perempuan yang berlainan supaya mereka menggunakan perempuan perempuan, adalah perempuan perempuan yang berlainan. Jadi, perempuan perempuan yang anda menggunakan perempuan untuk menjelaskan, anda tak boleh mengubah setiap perempuan dan itu akan terlalu lama untuk menjelaskan. Jadi, saya menulis perempuan perempuan ini. Untuk yang anda tahu, perempuan perempuan, yang semua orang di dalam bilik ini, ini perempuan perempuan, yang sebabnya perempuan perempuan ini sangat kecil, jadi anda tidak boleh menjelaskan perempuan perempuan saya. Tapi, ini saja. Ini telah dibundung menjadi perempuan. Jadi, perempuan Dani menggunakan perempuan ini. Oh, dan satu perkara yang anda tahu tentang ini adalah, ia hanya satu fungsi. Ia sangat mudah. Seperti yang kita katakan, perempuan perempuan ini boleh menjadi mudah sebagai sebuah fungsi. Jadi, kita menggunakan perempuan ini. Sebelumnya, ia berlainan dari sana dan ia berlainan kebiasaan. Sebelum menggunakan perempuan, ia menggunakan perempuan di setiap centre nasib, yang sangat hebat. Dan, sejujurnya, pemeriksaan yang besar di across the United States. Saya tidak tahu tentang dunia. Sebenarnya, saya tahu tentang dunia. Ia digunakan di banyak tempat yang berlainan kerana ia adalah sebuah penerbangan. Dan, kerana orang menggunakan perempuan, mereka menggunakan perempuan, perempuan perempuan. Jadi, saya menggunakan perempuan untuk menggunakan perempuan di sebuah perempuan. Saya tahu bahawa anda sepatutnya menggunakan perempuan yang berlainan dari sebuah perempuan, tetapi ini hanya sangat mudah dan elegan untuk menggunakan perempuan. Kemudian, tentu saja anda menggunakan perempuan, jadi anda perlu mengawal perempuan yang berlainan. Dan kemudian, setelah anda dapat menggunakan perempuan itu, orang akan dapat mengawal perempuan yang sangat baik. Jadi, anda menggunakan perempuan dan mengawal. Dan ini mempunyai perempuan lebih banyak. Dan saya menghubungkan perempuan yang sangat baik untuk menggunakan perempuan. Jadi, banyak perempuan yang terjadi dari perempuan yang menggunakan perempuan yang berlainan untuk menggunakan perempuan yang sangat baik. Jika Jenggu Uniform membuat ini atau itu, dan perempuan itu hanya berlainan dan berlainan, dan kemudian, Danny berlainan sebuah perempuan, tetapi itu sebab perempuan itu mengubahkan dirinya. Jadi, Jenggu Uniform sebenarnya adalah disebabkan itu kerana ada perempuan yang terkenal HMLCSS javascript di depan perempuan yang menggunakan perempuan untuk menggunakan perempuan yang berlainan. Dan kemudian, perempuan yang berlainan sebagai perempuan yang berlainan dengan perempuan yang berlainan dengan perempuan yang berlainan. Dan orang ingin perempuan yang berlainan untuk menggantikan tidak hanya perempuan yang berlainan, tetapi perempuan yang berlainan. Jadi, projek berlainan dan Miguel Arajo adalah salah satu perempuan yang berlainan dengan Jenggu Uniform. Dia berlainan dengan projek untuk mengembangkan perempuan yang berlainan dan Danny berlainan dengan Jenggu Uniform supaya ia berlainan perempuan yang berlainan dan perempuan. Sebelum beberapa hari yang lalu, kita berjumpa dengan sekitar 2400 perempuan. Dalam satu perempuan yang berlainan yang kita berlainan, tolong jangan berlainan. Ia berlainan dengan perempuan yang berlainan oleh banyak orang. Sekarang, Danny dan Miguel Arajo berlainan tetapi ada sebuah perempuan yang berlainan dengan perempuan yang berlainan. Jadi anda tidak tahu apapun perempuan akan berlainan. Jadi, itu cerita perempuan yang berlainan. Ia berlainan dan berlainan. Sekarang kita akan mengembangkan perempuan yang berlainan. Perempuan yang berlainan adalah online di www.jenggopackages.com. Ia adalah website untuk mengembangkan perempuan yang berlainan. Kita membuatnya di perempuan online yang disebut Jango Dash di 2010 apabila perempuan yang berlainan untuk membuat sesuatu perempuan yang berlainan dengan Jango. Ini adalah contoh. Saya rasa anda tidak dapat melihatnya. Tapi ada perjalanan dari perempuan yang berlainan. Jika anda mengembangkan perempuan yang berlainan, anda dapat melihat perempuan yang berlainan yang berlainan. Ini adalah perempuan yang berlainan dari perempuan Jango yang berlainan. Ini adalah cara anda mengetahui perempuan yang berlainan. Ia berlainan dari contoh Jango Dash. Pada idea pertama kita, kerana kita memasakkan idea itu, Hey, bagaimana dengan perempuan yang berlainan untuk Facebook? Kerana tiada siapa yang membuat itu. Kami tidak mempunyai idea apa yang kita akan membuat. Jadi kami berfikir tentang perempuan yang berlainan, tetapi kami terlalu muda mempelajari api Facebook. Jadi itu sebabnya kami membuat perempuan yang berlainan. Ia berlainan sepenuhnya. Kerana kami terlalu muda membuat perkara lain, Oh mungkin ini akan lebih mudah. Dan sebenarnya, apabila kami memulai perempuan, Hey, pada perempuan Jango yang berlainan, ada perempuan yang berlainan untuk perempuan blog dan CMS-nya. Kami berkata, Hey, mari kita duplikannya, tetapi membuatnya di database daripada perempuan yang berlainan. Jadi kami membuat perempuan ini dari perempuan Jango yang berlainan dengan perempuan yang berlainan dengan perempuan CMS yang berlainan. Dan kami menggunakan perempuan itu sebagai perempuan kami dan kami hanya memulai perempuan yang berlainan pada satu perempuan. Dan kami ada beberapa kata-kata, seperti membuatnya mungkin untuk sesiapa-siapa untuk membuat perempuan, membuat data dari GitHub dan perempuan Python dan membuat perempuan yang perempuan akan membuat. Jadi kami boleh mempunyai perempuan dan kami tidak akan menjadi perempuan yang mempunyai data. Itu adalah kata-kata kami. Dan ia berlainan. Ia berlainan dengan baik. Jadi, ada beberapa kata-kata yang kami ada tentangnya. Ia dibuat, kawasan kawasan kawasan dibuat pada weekendnya. Jadi, pada kawasan kawasan kawasan, ia dibuat untuk menjadi kompleks, tetapi lagi, ia dibuat untuk dibuat. Dan ia membutuhkan bahawa kami berlainan dengan semua pilihan dari kawasan jango yang berlainan. Dan kami ingin dapat mempunyai mereka. Jadi, itu adalah cara ini berlainan. Jadi, sekali lagi, fokus pada kawasan kamu apabila kamu membuat kawasan perempuan. Jadi, itu kata-kata jango. Selepas itu, kami akan membahas perempuan. Semua orang di sini menggunakan perempuan, kawasan kawasan. Sangat popular. Kami tidak menulis. Kenneth Wright menulis. Jangan kena menulis? Jadi, semua orang kamu sangat mengenal dengan ini. Problemnya adalah, bahawa kamu berlainan dan kamu berlainan. Jadi, apa yang dia lakukan adalah apabila dia mengidentifikan perempuan ini. Dan dia menulis perempuan ini. Ini sebabnya, dia membuat perempuan ini. Pada tahun 2011, dia memulihkan perempuan. Dan orang menggunakan perempuan. Dan melihatnya sekarang. Saya tidak perlu menggantikan kisahnya lebih daripada ini. Tetapi, ia memulihkan perempuan itu. Hei, saya memiliki perempuan ini. Saya ingin mengenal. Dan perkara yang menarik tentang perempuan ini adalah yang Kenneth memiliki perempuan yang sudah berlainan dan dia memiliki perempuan yang lebih daripada mereka. Itu adalah contoh yang lain yang anda boleh lakukan apabila anda membuat perempuan perempuan. Anda dapat melihat apa perempuan yang ada di sana adalah masalah untuk digunakan. Apa yang anda dapat membuat perempuan yang lebih daripada? Atau melihat perempuan perempuan perempuan dan memikirkan apa perempuan perempuan yang dapat memiliki perempuan yang lebih daripada. Saya tahu perempuan yang dapat memiliki perempuan yang lebih daripada untuk seperti itu. Dan orang yang cuba membuat perempuan memiliki perempuan yang berlainan mengenal. Tiada seseorang yang memutuskan sepenuhnya yang benar-benar benar. Jadi, ia sesuatu yang anda nak memuliki perempuan yang menarik adalah mencuba memiliki perempuan yang lebih daripada. Dan kita sebenarnya membuatnya memuliki. Baiklah. Baiklah. Sekarang kita akan bercakap lebih banyak tentang Kookie Cutter. Ya, jadi apabila saya membuat Kookie Cutter, sebelum saya membuatnya, saya... Saya berada di sebuah minyak ini, saya menghubungkan minyak GitHub untuk menghubungkan sesuatu kebiasaan setiap hari, dan saya... Saya berfikir, oh, mengapa saya tidak hanya membuat banyak paket baru seperti yang saya boleh, hanya untuk menenangkan, hanya untuk melihat apa yang akan berlaku. Dan sejak saya membuat ini, saya terlalu sibuk memasakkan paket yang berbual dengan penjara. Dan dengan penjara, setiap paket yang saya membuat mempunyai FIG file YML. Ia mempunyai instruksi, ia mempunyai, saya mempunyai setiap pilihan dan beberapa test yang berlaku. Saya terlalu sibuk menghubungkan dari paket ke paket ke paket. Dan pada masa itu, saya hanya membuat pilihan statik yang berlaku disebabkan kompleksiti. Dan saya berfikir, membuat... membuat... pilihan pilihan pilihan, saya boleh menggunakan teknik yang sama. Apa jika saya menggunakan konsep yang sama untuk membuat pilihan projek renderer? Dan... itu adalah bagaimana pilihan pilihan pilihan. Dan... nanti selepas pilihan pilihan pilihan pilihan pilihan pilihan pilihan, pada masa itu, ada... ada beberapa lagi pilihan pilihan untuk membuat pilihan projek pilihan pilihan pilihan. Dan dalam dunia javascript, ada Yoman. Tetapi saya cuba... saya cuba semua mereka dan saya hanya... saya merasa seperti mereka... membuat apa yang saya mahu. Dan... dan... itu adalah bagaimana saya berniat. Dan... saya... Jadi, ya, ini adalah pilihan pilihan yang saya ambil. Sebab dia... mempunyai GitHub selama sebuah bulan sebab ini. Jadi dia penjara Mozilla. Dan ya, itu isu saya. Saya sangat berlaku. Ya, dan... Ya, dan... dan... Dani berbual tentangnya dan... Ia merasa sedikit, tapi... Ya, dia perlukan gambar untuk blog post. Dan itu adalah apabila saya... anda tahu, menangis 5 minit dan... sangat cepat membuat logo cookie cutter. Dan... dan... anda tahu... itu adalah sebab yang terbaik. Kita mempunyai logo. Saya tidak mempunyai logo... untuk... projek lain. Dan... Ya, saya bermakna, seperti yang saya katakan... saya menerima perempuan yang dia ada yang ada... dan adalah sesuatu dengan banyak perempuan dari... pelihan. Penghantaran pulih... dan... kita mempunyai bagi... Picon North America ini. Kita ada di Portland. Ya, itu... ia... ia... itu berlaku dan berlaku. Ia sangat hebat. Dan ini adalah... kita mempunyai pilihan cookie cutter. Jika anda... You can look at the cookie cutter pie package template itself, and you can see what the boilerplate code that you would get if you generated a Python package would be. And the thing is you don't just have to use this particular template. There's alternative Python installation packages that are out there and they're listed on the cookie cutter read me. There's also ones for Django projects, Flask projects, Project Jupyter. Everyone who here is using Project Jupyter or iPython.toolchain. They're actually creating some to work with this. So it's yeah, a lot of people are using this. We don't want to be stuck in the boilerplate. And here's cache property and as you can see it's got some of the same repeated files. And he created it with cookie cutter too. And the end result is that now anyone or everyone in this room can create and submit packages very quickly. And that means that if you go to the Python package index and then you follow into the source code, you can see markers that this was created with cookie cutter, be it the contributing document or now we stick in badges. So yeah, we're trying to get more people to do more creative stuff. And there's, you know, we really would like to reduce the number of excuses that people have for not creating Python packages because it's just so easy now. And if anyone here has a hard time and wants help with releasing their first library, come find us or if you release a library and you want to help get it out to the world, let people know, let us know and we'll help you promote it. The other thing is that let's say you are doing microservices. You have a company with microservices and one of the problems that happens when you're dealing with microservices is what if, I mean it's important to have the same conventions across each service for discovery, for documentation, for interoptability. That's one of the places where cookie cutter really, really excels. That's why a lot of companies use it internally. So it empowers you at a lot of different levels. I do want to bring up something. Some of you might be wondering, oh, are there too many Python packages on the Python package index that it can be annoying, some of you are probably laughing. I know Graham is laughing. It can be a pain that, oh, you can't find what you need. And the people who complain about this are beginners and grumpy coders or the two main groups of people who complain about this. And the thing is that if you can't find what you need, you need to learn how to search intelligently. So if Python package index search doesn't work, search GitHub, search Google, that argument is similar to people who complain. There's too many websites out there. I miss the old World Wide Web before Google was created. Or you also have people who don't read Python books or blogs or articles who are just in their little corner not exploring what other people are doing and they're reinventing the wheel. Yeah, there are times that we say, hey, there's something out there that doesn't quite do what you want. So create your own. That's different than being ignorant of what's out there and just creating stuff because you haven't even bothered to look. So you can read the blogs and the books and to figure out what the interesting packages are. There's Planet Python. If you search for that, that's an aggregator of all the Python blog posts out there. And you can even, if you have a Python blog, you can get yours featured on there, for example. So the more you read, the more interesting libraries you can discover. The other thing that people have is that they don't go to meetups or they don't come to Python Singapore. So those people, you know, they're missing out on the chance to discover new things. Yes, so you're doing the right thing by being here today this weekend by expanding your knowledge and finding out about all the cutting edge tools out there. So just always remember that the more packages exist, the better we all of are. That more packages means a diversity of selection. It means that you have different viewpoints on the same problem. Yeah, it's kind of like, certainly I can cook chicken and put sauces in it and there's a way that we do it in Southern California. But if I come here and if I go out to eat with you and you take me a place where there's chicken and sauces, it may be based off the same ingredients, but I can tell you that the food here tastes really different. It also tastes really good, but you get the picture. And the diversity of different Python packages out there is evident when you look at the huge variety of Python web frameworks that are out there. So we love Django as a lot of you may know, but if Django doesn't meet your needs, you can easily find and use another web framework. And just case and point, the bold items here, Flask, Pyramid, and Web2Py were written as alternatives to Django. So imagine if someone had told Armand Monashor of Flask, like, hey, stop writing a new web framework. There's already so many web frameworks out there. We don't need another one. Flask would not exist. And if Flask and Pyramid, Web2Py, if they didn't exist, then all of you Flask, Pyramid, developers, you'd all be forced to learn Django and I don't know. We wouldn't enjoy it. But you might not have tried so much. So choices are great. Another example is the Python shelf. Fernando Perez, he started iPython as a experiment, a side experiment, and it grew from there to over 150,000 lines of code and it's launched Project Jupyter, which, who here is doing data science and using iPython notebook? Raise your hand. So there's a good number of you. So that start is this little side experiment. And the interesting thing about iPython is that was Fernando Perez's first Python program that he created that little, the 259 line of code program because he tried out the Python shelf. He wasn't quite what he needed, what he wanted and he thought, oh, I'll just do a little experiment to see if I can create something better. And these little experiments are just so valuable, especially if you're coming in with a fresh perspective and you have a mind to be able to see what could be better than some of these experiments can turn into the next big thing. So your contribution is important, it adds. It adds to the aggregate whole and it means that we are greater as a group because you have added your intelligence, your smarts. So, and the thing is it's better, more is good, it's better to write a new library even if no one uses it, even if you use the library that your little thing was supposed to replace because it will teach you how that original library was written. And it's better to write a new library than to be limited if there are options out there that just don't meet your needs, that if you go out there and try these different libraries and what you find out there just isn't quite what you want, don't be afraid to write new libraries and use cookie cutter. So, we're going to now give you the story of Matt Plotlib and we're getting close at the end. I know it's 10am but we started late. So, who here uses Matt Plotlib or is familiar with it? So the story behind it is better than the tool. It's incredible. So, there was John Hunter who passed away a few years ago and Matt Plotlib was his was his concept, his idea and it benefits us as a species. So, Fernando Perez of iPython and Jupiter told us this story. He was a very close friend and collaborator with John Hunter. Matt Plotlib was created by John in 2002 to solve this problem that he was, John was working in a lab. He was a postdoc at the University of Chicago hospital and he was working on the analysis of epilepsy seizure data in children. And some of the children they don't respond well to the epilepsy medicine and so to fix that and help them, they require brain surgery. And so to do this they would take them off of what medications that they're on, open up the brain and try to trigger a seizure and use electrodes that have been attached to the child to determine what part of the brain was needed to be removed. So this is a major investigatory and also fixing surgery to make this work. But there is a problem. The analysis tool was a proprietary product and it required an expensive, like crazy expensive license to work and the license was enforced by a dongle that you had to plug into a laptop or whatever computer was running this or the software wouldn't run. So this company was saying, hey, I'm going to prevent you from better operating on children in need because we want to make our money. And so and he also Matlab was also too expensive for the lab and so they switched to Python. And so what he did is he wrote this tool to localize where the electrodes are located on the child and then they would collate that with an MRI reconstructed skull so they would map this out. And then you can see on the left there's a predecessor to Matlab. Matplotlib. And it would plot and analyze the seizure data and so together with the electrodes in place. It would trace back the 3D location in the brain of where the seizure was focused. And so, John, this is an awesome story. He was attempting to heal people and he originally, John Hunter offered this plotting code to Fernando Perez to include into iPython. And his offering was as a patch as this contribution to the existing library and Fernando loved it. But the problem was Fernando was a grad student. He was working on finishing his grad thesis and as anyone who maintains a library knows it can be a lot of work to review a very big pull request and so Fernando encouraged John to create a separate library to package up his code and what John did was he created a library called Matplotlib. So, those are some stories about open source projects that have grown from small pieces of code that were addressing problems into awesome tools that we're using today. Ya, so you really never know what the future of a little snippet of code that you reuse. You never know what the future is going to be. That said, we've mentioned a lot about writing new libraries. There are situations when, yes, you absolutely should consider contributing your changes to existing projects out there, existing Python libraries. And, you know, especially if they are minor fixes or enhancements that if it doesn't make sense to create it as a separate library, it's always nice to contribute it back to the existing library. And if it fits the project needs and goals then certainly. But, you know, it's time to start a new project if no other project does like it just doesn't quite fit or there's simply nothing out there. Or you've tried the options and ya, you've tried the options and you're just not happy with how things are going. And if you feel that having your own library means less resistance to getting in the code that you need and it gives you more freedom to have the features that you want then do it, create that package. So, to summarize, anybody can create and release a package on the Python package index. And we've shown you the tools to do it, or there's other ways to do it, you can look those up online. And hopefully there should be nothing stopping you. All you have to do is just do it. And we would love to see a variety, a huge variety of Python packages out there coming from the Python Singapore community that there are just so many smart, creative programmers here and I think it would be wonderful for me to be able to start using more of your software. Ya, I mean, we can say ya, we know certain tools really well, like Django. Extremely well. But one of the awesome things about this room is I can point out someone and ask, what do you know that I don't? What are you a subject matter expert on? Or what do you have a lot of familiarity in that I don't? And I could use that skill, I could use that knowledge. So everyone here has something to add. And our hope is that maybe in a few years someone in this room right now will meet you at Python US because you'll be giving a talk about your future library or maybe even keynoting Python US because your library is just so important and fundamental and I think that would be amazing. So, my name is Daniel Roy Greenfeld. And Audrey Roy Greenfeld again. And we love open source. Thank you very much. I'm not sure. And some questions for Daniel and Audrey. Any question? Thank you guys for this inspiring presentation. I have two questions actually. First one is, right? Every time I create a project I will have some kind of internal fears that how I'm not using the best practice or my code might have some issues like how I'm not cleaning up will anybody scroll me on this? But this is kind of an information that prevents me from really promoting my project. And how can I overcome these issues and how can I teach them to overcome these issues. And a second question is I really want to contribute on some of the open source project where do I start? Because sometimes the project might be too big to understand Do you want to answer? You can stay there. So with the first question which is the fear of releasing I get that. I completely understand every time I release something new or a new feature release for a project, I feel fear you're not alone. And there are times when I get pull requests that are correcting my mistakes. I know that there's at least one person here who's done that. Who here contributed? Ya, there's... So they fixed my problems. But that's okay because I learned from them and now I know a better way to do it or even if I didn't accept the pull request or I learned. So the trick is do you do rock climbing or anything like that which you have fear you just have to think it's the same thing and I can do this. I have some things to add that first of all if you're putting your first or your early code out there one of the things that can be reassuring nobody will even care nobody will notice and if you're worried about that you can even use a fake name like I know I have my Audrey R. Github account I have a couple fake Github accounts where I put code where if I'm embarrassed and I want to just try experimenting with something you can do that. Oh, the other thing is there are tools out there so you can there's landscape.io there's other similar code quality checkers so you can run those and really improve your code before other people see it. Oh, what's the second question? The second question was contributing to existing. How do you contribute to existing projects was the second question? Yes, so contributing to existing projects typically the way that we end up contributing is if let's say we're working on some Django site and we run into we use a lot of different third party Django libraries for our projects and often while using someone's library you'll find a bug in the future and filing an issue is the easiest way to start on an existing tool that you already use but then the next step is if you you can offer when you find a bug you can offer to submit a patch submit a pull request fixing that bug or if you don't know what to fix projects that have low-hanging fruit issues so issues that are marked that are tagged on github with the label low-hanging fruit those are beginner friendly issues that are open for new contributors to start on and there are some problems sorry, there are some projects where it is very hard to contribute to so for example Django itself is I'm going to be polite because this is being recorded it is very challenging to contribute to that and it's not the only one so sometimes it's good if you have a favorite thing that you want to contribute but it's a hard path to do it find a different project but the one thing that all good projects have is a contributing document at the same level as the readme so if there's a project and you can't find a contributing document find another project any other questions last one thank you very much guys for your speech it's very inspiring you already speak a little bit about you already explain a little bit about but if you can a little deeper into like write your own library rather than contributing something that it's not quite similar or what you need suddenly you find that if you need some base or you do something you can make this library that fits on your needs sure so there's really a there's a gray area between when you should contribute to an existing library and when you should create a new library and it really it really depends on how similar that library is to what you want it to be and it can be it can be tricky it can really be on a case by case basis that if you if you're looking if you think that what your idea can be merge into an existing library then the first step would be to talk to the developer of the library or the team and propose something and see what just get some feedback see what they think of your idea and if they want to collaborate then why not it can be really fun to implement a feature for an existing library the time that you might want to create your own library is if let's say the libraries are very different from your idea so if you would have to completely change the API of some other library in order to have it be the way you want it you know or if you would basically be spiking a project in other words sending them a huge pull request that change every single file just to get it to work the way you want that's an example of one you might want to just create something new so another thing that you can do is let's say for example there's a library that doesn't quite do what you want but the underlying machinery is awesome what you can do is you can start your own library that extends the existing library to give you the API or the controls that you want request kind of writes as requested and start that way but that's how it is now it wraps what is it Uralib 3 and that's what powers it so it's one of the nice things about this approach about wrapping an existing library is you can do that as a prototype and maybe it always work that way so you get the benefit of all those other people working on it but you're not being you're being nicer about it to add to that often what what people do is they will create a standalone library and then they will ask the existing maintainer hey, I've created this experiment would you like it to be merged upstream would you like to or if it's changing even CPython's standard library you can ask if you can submit a proposal to merge it upstream and that's a very nice way to work thank you don't hesitate to come and find us during breakfast or in the hallway we'd love to meet as many people here as possible and this is an opportunity for us to talk and learn new things thank you very much