[संगीत बजाना] डेविड मालन: इस CS50 है, और इस सप्ताह आठ साल की शुरुआत है। और हम स्वागत करने के लिए उत्साहित कर रहे वापस, बड़ा आश्चर्य, CS50 के स्वयं के रेमन Galvan किया गया है, जो एक बढ़ती वरिष्ठ पिछले कई महीनों खर्च ला में जुलाई के बाद से, हॉलीवुड में, सचमुच एक ब्रांड के नए टीवी पर काम कॉलोनी बुलाया शो, जो के निर्माता वास्तव में एक हार्वर्ड फिटकिरी खुद है। और इसलिए हम यह देखने के लिए बहुत उत्साहित हैं संयुक्त राज्य अमेरिका नेटवर्क इस साल जनवरी पर पहली फिल्म है। तो उस के लिए देखते रहें, और के लिए सप्ताह के लिए और अधिक रेमन आने के लिए। अंत निकट है कि अब पता है। और क्या इसका मतलब यह नहीं है कि है सब इतना कहने के लिए दुख की बात है, CS50 के लिए छोड़ दिया। हम सिर्फ तीन समस्या है सेट वहाँ left-- समस्या में है जो six-- सेट अपने हाथों को अब या जल्दी ही हो जाएगा बाद में मतलब है week-- इस पुल के कारण कमांड लाइन, जहां के बारे में हमारी दुनिया हम प्रयोग कर हमारे समय के सबसे बिताया है सी और वेब प्रोग्रामिंग की दुनिया। ठीक है, तुम विचारों का एक बहुत देखेंगे कमांड लाइन काम से उधार लिया है, लेकिन नए का भी एक बहुत और दिलचस्प विचारों के लिए भी सार्थक होने जा रहे हैं कि मोबाइल अनुप्रयोगों और के लिए प्रौद्योगिकी, आम तौर पर, जिसके साथ आप लोग आजकल सभी परिचित हैं लैपटॉप और फोन और पसंद पर। तो क्या आप नहीं लागू करेंगे एक वेब पेज, या एक वेबसाइट दर असल, लेकिन एक वास्तविक वेब सर्वर। आप एक वेब सर्वर के बाकी लिखेंगे जिसका उद्देश्य जीवन में सी, में लिखा HTTP अनुरोध, उन प्राप्त करने के लिए है हम बात कर रख आभासी लिफाफे के बारे में है, और वास्तव में के साथ या तो प्रतिक्रिया एक डॉट एचटीएमएल जैसे कुछ स्थिर content-- फ़ाइल, या डॉट जेपीईजी या फाइलों के किसी अन्य संख्या, या यहां तक ​​कि एक PHP फ़ाइल जिससे अपने वेब सर्वर कि पीएचपी व्याख्या करने के लिए जा रहा है कोड और परिणाम थूक। अब, हम आप के साथ प्रदान की है ढांचे की काफी थोड़ा वास्तव में it-- के लिए समस्या के लिए वितरण कोड छह 1,000 से अधिक लाइनें लंबी है सेट, एक जिनमें से बहुत कुछ टिप्पणियाँ, fair-- हो रहा है लेकिन यह वास्तव में मतलब है एक अवसर होने की गंदा डाइविंग अपने हाथों को प्राप्त करने के लिए एक काफी बड़ी परियोजना में हम बहुत विशेष है कि आप के लिए बाहर खुदी टुकड़े, तो यह है कि वास्तव में आप CS50 से बाहर निकलें जब और प्रोग्रामिंग की असली दुनिया में प्रवेश और में भिगोना करना चाहते हैं परियोजनाओं के किसी भी संख्या, आप बहुत अधिक होगा आराम कुछ स्रोत को डाउनलोड कोड, कुछ खुला स्रोत वेब पर परियोजना, और गोताखोरी में कर रही है और आप फिट देखना है कि परिवर्तन। समस्या सात के बारे में होने जा रहा है सेट अपने खुद के वेब आधारित एप्लीकेशन बनाने कि गतिशील इनपुट लेता है और फार्म में गतिशील उत्पादन का उत्पादन एक etrade.com की तरह वेबसाइट के। और इस समस्या को आठ अभी तक पर ध्यान दिया जाएगा सेट जावास्क्रिप्ट के रूप में पहचानी जाने वाली भाषा। इस बीच, फाइनल परियोजना क्षितिज पर है। तथाकथित पूर्व प्रस्ताव आज से एक सप्ताह की वजह से है। विनिर्देश के अनुसार पूर्व proposal--, CS50 के website-- पर जो है एक सुंदर आकस्मिक अवसर के लिए है आप एक बहुत संक्षिप्त ईमेल भेजने के लिए अपने शिक्षण साथी को बस उसे अवगत कराया या आप क्या सोच रहे हैं, के लिए उसे एक लग बोर्ड के रूप में उसे या उसके उपयोग करें। और एक विवेक है check-- आप सोच रहे हैं कि क्या भी काट के बारे में बहुत कम ज्यादा है या हो सकता है, या हो सकता है आप जो भी कोई पता नहीं है और एक बातचीत में शामिल करना चाहते हैं। इसके बाद एक प्रस्ताव है और स्थिति रिपोर्ट, यहाँ में तथाकथित CS50 hackathon हार्वर्ड और येल छात्रों के लिए कैम्ब्रिज एक जैसे। अंतिम परियोजना के कार्यान्वयन तो कारण है। और फिर यहाँ एक CS50 निष्पक्ष, कैम्ब्रिज में, के रूप में अच्छी तरह से न्यू हेवन में एक और रूप। प्रस्ताव तो, पर एक नज़र रखना उन विवरण के लिए वेबसाइट। लेकिन अधिक excitingly भी है, है एक मौका अपने हाथ गंदे हो, और एक पूरे के लिए खुला अपने मन विषयों और उपकरणों का गुच्छा और तकनीकों है कि सहायक हैं पाठ्यक्रम की कोर पाठ्यक्रम के लिए, लेकिन फिर भी संबंधित है। और भी अद्भुत कदम पत्थर को वास्तव में अच्छा अंतिम परियोजनाओं कर रही है कि अच्छी तरह से सामग्री से परे हम कवर किया है जाना औपचारिक रूप से समस्या में सेट या व्याख्यान में। ऐसा करने के लिए CS50 की वेबसाइट पर जाना सेमिनार की पूरी रोस्टर। आप अभी तक पंजीकृत नहीं है, वह ठीक है। आगे बढ़ो और अभी साइन अप करें और हम करेंगे एक लाइव स्ट्रीमिंग लिंक के साथ पालन, दिन और समय वेबसाइट पर है। और सब कुछ हो जाएगा दर्ज की गई और ऑनलाइन डाल आप नहीं कर सकते हैं खास दिन और समय। Thereafter-- अच्छी तरह से आगे क्या करने के लिए के रूप में, जाहिर है, CS50 hackathon नहीं है। लिया सप्ताह शून्य से यह तस्वीर, याद है, पिछले कुछ वर्षों में शाम एक 4:00 के आसपास। CS50 निष्पक्ष, जो फिर से दोनों शहरों में जगह ले जाएगा। और फिर, सिर्फ संयंत्र के लिए बीज, यहां तक ​​कि अभी भी हम हालांकि एक महीने से अधिक है, तो सेमेस्टर के लिए छोड़ दिया आप CS50 के स्वयं के शिक्षण में शामिल होने के लिए करना चाहते हैं स्टाफ, और आप शुरू करना चाहते हैं एक सीए बनने के बारे में सोच रही है, या शिक्षण साथी जानते हैं कि, हम इस बारे में अधिक बात कर शुरू करेंगे बाद में इस सेमेस्टर। लेकिन यहाँ चित्र इस साल के टीम के अधिकांश। और हां, तो PHP-- और मैं बहुत दु: खी था पिछले हफ्ते [है? Allyse?] कृपया हो रही करने के प्रयास करने के लिए चला गया हमें इन अद्भुत सहारा मैं का उपयोग कर खत्म नहीं किया है कि, यह तो वास्तव में सिर्फ बेवकूफ की तरह देखा हम सब यहां बैठे एक फावड़ा था कि दिन पिछले बुधवार को, और एक छोटे चम्मच। लेकिन यह मेरी रूपक था रंग की कोशिश कर के रास्ते यही कारण है कि हम परिवर्तित कर रहे हैं की तस्वीर सी से पीएचपी तरह एक भाषा के लिए। और एक ही किसी के बारे में कहा जा सकता है languages-- जावा, अजगर, रूबी की संख्या others-- की लेकिन में जबकि या गुच्छों सी, उदाहरण के लिए, सी में एक प्रोग्राम लिखने आम तौर पर की तरह हो सकता है इस तरह से एक चम्मच लेने से और में एक छेद खुदाई जमीन, रेत या मिट्टी में। पीएचपी आप ज्यादा लेने के लिए अनुमति देता है समस्या से बाहर बड़ा काटता है, अब तक कम से कोड लिखने एक दूर छोटे उपकरण का उपयोग कर, बहुत अधिक तो नहीं है, क्योंकि कार्यक्षमता में pieced। अब, हम वास्तव में नाटकीय थे, हम फावड़ा के लिए कुछ होता है यहाँ है, लेकिन ऐसा ही होगा। इस बीच, अन्य रूपक हम साथ आया जाहिर है, तुम सकता है, एक रिंच तरह कुछ का उपयोग एक कील की तरह कुछ में हथौड़ा। लेकिन हां, सही उपयोग करने के लिए उपकरण जा रहा है इतना नहीं होना करने के लिए भाषा कहा जाता C-- और अब मैं सिर्फ नाराज [? सैंडर्स?] शायद, हम तो यह है कि later-- ठीक कर देंगे सही उपकरण का अक्सर उपयोग करने के लिए नहीं होने जा रहा है इस निम्नतम स्तर उपकरण। और वास्तव में, सी एक भाषा नहीं है कि आप में से अधिकांश कभी उपयोग करने के लिए जा रहे हैं या जरूरी फिर से उपयोग करना चाहिए। और वास्तव में, एक छोटी सी केवल समय secret-- मैं सी खुद के बीच बहुत ज्यादा है उपयोग हर गिरावट के सितंबर और दिसंबर सेमेस्टर। और है कि हम क्योंकि एक अवसर के रूप में इसका इस्तेमाल बुनियादी बातों को पढ़ाने के लिए प्रोग्रामिंग की, और यह कंप्यूटर के साथ विज्ञान के मूल सिद्धांतों, डेटा संरचनाओं, एल्गोरिदम और like-- लेकिन बहुत जल्दी आप करेंगे वाक्य रचना कि अब देखना है और विचारों सी अंतर्निहित इतनी शानदार हैं अधिक आधुनिक करने के लिए हस्तांतरणीय उच्च स्तर की भाषाओं, जैसे PHP और अजगर और पर्ल और जावा और उद्देश्य C--, इतना नहीं वास्तव में उद्देश्य C-- लेकिन स्विफ्ट, इन नए भाषाओं कि आप में से कई होगा तो आप अंतिम परियोजना के साथ भिगोना। आगे की हलचल के बिना तो, वास्तव में चलो कुछ समस्याओं को हल करने के लिए PHP का उपयोग करें। पिछले है, कि जल्दी पर याद करते हैं हफ्ते, हम सिर्फ इस्तेमाल किया CS50 आईडीई, हम एक छोटा सा प्रोग्राम लिखा कि बस "नमस्ते दुनिया है।" और फिर मैं इसे बचाया एक फ़ाइल hello.php बुलाया। और फिर मैं इस आदेश से भाग गया। और क्यों? अंग्रेजी में, यहाँ क्या हो रहा है? मैं जब क्या कर रहा था मैं इस आदेश से भाग गया? हाँ? दर्शकों: कुछ समारोह पीएचपी नहीं है कि in-- समझता है कि क्या पढ़ता है। डेविड मालन: अच्छा है, कुछ कार्य भी नहीं है PHP-- और मुझे और अधिक विशिष्ट हो जाने दो, पीएचपी एक कार्यक्रम में कहा उर्फ ​​नहीं है, समझता है कि एक दुभाषिया, hello.php की सामग्री, और करने के लिए शीर्ष व्याख्या नीचे, दाएं से बाएं और उन आदेशों का कहना है कि क्या करता है। hello.php में आदेश, ज़ाहिर है, सिर्फ code-- कार्यों स्रोत है और चर और छोरों और जैसे, हम खुद को पीएचपी में लिखना शुरू कर दिया है। लेकिन सी के विपरीत, जो है एक संकलित भाषा, पीएचपी आप बस इसे लिखते हैं, और इसे चलाते हैं। आप की है कि बिचौलिया कदम को छोड़ शून्य और लोगों को बदलने, और फिर यह चल रहा है। और इसलिए इस की तेजी में क्या है? क्यों हम कदम लंघन कर रहे हैं? क्यों और अधिक आधुनिक भाषाओं करना इस कदम को छोड़ जाते हैं? लाभ क्या था? या बस intuitively? हम नहीं है यहां तक ​​कि अगर इससे पहले कि बहुत पीएचपी लिखा है, क्या नहीं के बारे में फायदेमंद है अपने कोड संकलन तुम्हें क्या लगता है? नहीं? करने नहीं? अपने सिर scratching? हाँ। दर्शकों को अधिक गतिशील। डेविड मालन: अधिक गतिशील? आपका मतलब क्या है? दर्शकों: [अश्राव्य] डेविड मालन: ठीक है, अच्छा है, इसलिए इनपुट पर निर्भर करता है, आप इसे हर बार संकलन करने के लिए नहीं है। और यह सच है के रूप में है that-- के रूप में सरल क्या जारी रखने की बात है अपने कोड संकलन करने के लिए? यह है कि सिर्फ एक कदम है making-- यह, की आवश्यकता होती है पिछले कई के लिए सप्ताह में दो बार के रूप में कई कदम बस के रूप में अपने कार्यक्रम चल रहा है। यह आपको लगता है कि देखने में उपयोगी हो गया है बहुत आगे कुछ त्रुटि संदेशों करें और देखें लेकिन यह अभी भी सिर्फ एक कष्टप्रद कदम है। और तो प्रोग्रामर एहसास हुआ समय के साथ, हम क्यों नहीं करते ऐसा नहीं है कि भाषाओं लेखन शुरू , कि काफी यांत्रिक कदम की जरूरत इसलिए कि सिर्फ लिख सकते हैं अपने कोड और इसे चलाते हैं। लेकिन कीमत क्या था हम भुगतान देखा कि एक विशिष्ट उदाहरण के साथ, सप्ताह पिछले? हाँ? स्पीड। तो [? ?] द्विभाषियों क्या है एक छोटे से धीमी, उस में शून्य और लोगों रहे हैं अच्छा है और एक कंप्यूटर के लिए तेजी से समझने के लिए, क्योंकि इंटेल सीपीयू, या जो कुछ भी है, बस क्या हो रहा है समझता है बिट्स के उन नमूनों पर। एक दुभाषिया जबकि एक प्रोग्राम है कि वास्तव में है आस्की स्रोत को पढ़ने के लिए है लिखा है कि आप कोड, और इसे बदलने, तो बात है, या करने के लिए यह अंततः धर्मान्तरित के लिए बाहर निकालने शून्य और लोगों के लिए। तो यह सिर्फ एक छोटे से लेता है एक प्रदर्शन हिट का एक सा है। इसलिए यह एक व्यापार बंद का एक सा है। हम यहाँ पर यह करते हैं अब अगर, मुझे जाने दो आगे जाना है और इस प्रकार के रूप में एक उदाहरण है। मैं यहाँ में जाना है, तो नई फ़ाइल, मैं जा रहा हूँ फिर से इस को बचाने के लिए hello.php है। और अब मैं आगे जाने के लिए जा रहा हूँ और "प्रिंट दुनिया नमस्ते", कहते हैं - और मैं प्रिंट उपयोग कर सकते हैं कि याद है, मैं नहीं प्रिंट-एफ का प्रयोग किया है। और अब यहाँ नीचे, मैं hello.php की पीएचपी करते हैं, huh-- मैं यह व्याख्या की है, ऐसा नहीं लगता है। मैंने क्या गलत किया? दर्शकों: कोणीय कंगन। डेविड मालन: हाँ, आप की जरूरत है उस कोण ब्रैकेट ऊपर। तो यह कष्टप्रद की तरह है, लेकिन आप जल्दी से इसे करने के लिए इस्तेमाल किया हो। मैं PHP कोड लिखने के लिए है, तो मैं आम तौर पर कार्यक्रम बताने की जरूरत है, या अरे, दुभाषिया बताओ पीएचपी, यहाँ कुछ PHP कोड आता है। और फिर अच्छे उपाय के लिए, मैं करूंगा इस के साथ नहीं इस बंद, बल्कि सिर्फ सवालिया निशान कोण के साथ ब्रैकेट, अब यहाँ नीचे है, ताकि मैं फिर से इस चलाते हैं, अब मैं वांछित परिणाम मिलता है। अब हम एक मामूली अनुकूलन करते हैं, सिर्फ इससे पहले कि यह देखा है कि इतनी। इस तरह का गुस्सा आ रहा है मुझे लगता है कि पीएचपी अंतरिक्ष hello.php चलाने के लिए है, क्योंकि अतीत में मैं सिर्फ डॉट स्लेश लिख सकता है एक तरह से अच्छा है जो इस कार्यक्रम का नाम,। यह एक बेहतर प्रयोक्ता अनुभव की तरह है। यह पता चला है तो आप ऐसा कर सकते following-- मैं के साथ PHP में यह काफी गुप्त उपयोग कर सकते हैं यहाँ शीर्ष पर जादू, जो आम तौर पर एक कुटिया में कहा जाता है, यह एक तेज प्रतीक है, जिसके तहत तो बात है, यह एक धमाके है या एक विस्मयादिबोधक बिंदु। और यह अब एक कार्यक्रम के लिए रास्ता है एक ठेठ लिनक्स सिस्टम पर कि पर्यावरण, या वातावरण कहा जाता है। और इस लंबी कहानी line-- short-- लाइन एक बस कंप्यूटर अरे, पीएचपी पाते हैं, कहते हैं, वातावरण में मेरे लिए दुभाषिया, इतनी बात करने के लिए, अपनी स्मृति में यह लगता है। और, अब अच्छा क्या है कि मैं यहाँ नीचे जाना है, मैं डॉट स्लेश कर सकते हैं हैलो डॉट पीएचपी, or-- हम्म। अनुमति नहीं मिली। वैसे, अगर आप इस बात का भी अधिक देखेंगे अगर आप इस समस्या से सात सेट पहले से ही नहीं, अनुमति के साथ है। यह जरूरत है कि मैं बाहर जाता है इस आदेश पर अमल करने के लिए [कहा जाता है? chamod?] बदलाव के लिए एक से अधिक एक्स hello.php mode--। मैं [अश्राव्य] अतिरिक्त इस एक की जरूरत मेरे कंप्यूटर बता रहा है जो कदम, hello.php निष्पादन योग्य बनाते हैं। और अब डॉट happens-- क्या देखना hello.php स्लेश, यह सिर्फ चलाता है। मैं निर्दिष्ट करने की जरूरत नहीं है अब और दुभाषिया। और मैं यह भी सुंदर बना सकते हैं, फिर भी, अगर मैं इस बात का नाम बदलें। मैं बस के लिए hello.php ले जाते हैं Hello-- तो, ​​ऊपर छोड़ दिया में नोटिस कार्यक्रम का नाम है वास्तव में अब सिर्फ हैलो। अब मैं इसे एक सी प्रोग्राम की तरह लग सकता है, यह PHP-- में लिखा है कि भले ही या स्पष्ट रूप से किसी भी नंबर अन्य भाषाओं की। इसलिए सीमांत वृद्धि, कोई कार्यात्मक अंतर। लेकिन यह सिर्फ एक छोटी सी जिज्ञासा है अब, आप प्रोग्राम लिख सकते हैं तो यह है कि किसी भी भाषा में, और उपयोगकर्ता नहीं करता पता है या उन लोगों के हैं क्या परवाह है। ठीक है, चलो एक अधिक को देखो सम्मोहक उदाहरण अब मैं पहले से मार पड़ी है। और इस quote.php कहा जाता है। और यह ऑनलाइन उपलब्ध है। और यह बहुत short-- है कि नोटिस लेकिन यह है कि एक कमांड लाइन कार्यक्रम है शेयर की कीमतों को देखने के लिए जा रहा मेरे लिए, जो वास्तव में जा रहा है समस्या सात सेट करने के लिए सार्थक हो सकता है। तो चलो मैं क्या कर रहा हूँ देखते हैं। ऊपर से ही मुझे मिल गया है खुले ब्रैकेट प्रश्न चिह्न पीएचपी। मैं कर रहा हूँ जिससे तब मैं इस लाइन मिल गया है functions.php-- नामक एक फाइल की आवश्यकता होती है हम यह देखने के लिए जा रहे हैं एक बिट में इस पर और अधिक, लेकिन इस सी की तरह है तेज के संस्करण में शामिल आप कहाँ जाना चाहते हैं एक और फाइल शामिल है। पीएचपी यह, हालांकि यह आवश्यकता कॉल यह भी एक समारोह में शामिल है। और यह function.php पता चला है कि सिर्फ कुछ मैं क्लास से पहले लिखा था। मैं, क्योंकि एक ही निर्देशिका में डाल दिया मैं कुछ कोड बाहर कारक करना चाहता था कि हम कहीं और उपयोग करने के लिए चाहते हो सकता है। इस बीच, आप शायद कर सकते हैं यहाँ पर क्या हो रहा है उसका अनुमान लगा। इस C-- लेकिन एक छोटे से अलग है मैं क्या मतलब है समुचित उपयोग सुनिश्चित? अधिक तकनीकी रूप से यह अनुवाद। क्या परिस्थितियों में मैं कर रहा हूँ कार्यक्रम छोड़ने, या बाहर निकलने? हाँ? दर्शकों: आप जब नहीं है दो कमांड लाइन तर्क। डेविड मालन: मैं नहीं है जब लाइन तर्क कमान करने के लिए। और उन में से एक है कि याद तर्क कार्यक्रम के नाम ही है। और दूसरा होने जा रहा है एक और शब्द मैं शीघ्र बाद टाइप करें। तो बस सी की तरह, इस जाँच का मेरा तरीका है, उपयोगकर्ता सहयोग किया था और मैं उद्देश्य के रूप में इस कार्यक्रम को चलाने? अब, वहाँ कुछ है थोड़ा सा अलग सभी की C-- पहले से हम इस डॉलर के हस्ताक्षर है, और एक डॉलर की क्या करता है पीएचपी में निरूपित हस्ताक्षर? बस एक चर। यही द्वारा पीछा all-- सिर्फ एक चर है जो कुछ भी आप वास्तव में इसे कॉल करना चाहते हैं। वहाँ कुछ है नोटिस मेरे PHP कार्यक्रम से लापता, सिर्फ यह पिछले याद आ रही थी जैसे सप्ताह, सी, बनाम क्या वजह है? एक प्रकार है, लेकिन यह भी कुछ और। कोई कुछ नहीं है मुख्य समारोह function--। कोई मुख्य समारोह में नहीं है। तुम सिर्फ लेखन शुरू बिना अपने कोड एक काफी मनमाना के बारे में चिंता करने के लिए कुछ मूलभूत नामकरण का सम्मेलन समारोह के मुख्य। तो ARG सी सिर्फ सच है एक वैश्विक चर दुभाषिया कि मेरे लिए उपलब्ध बनाता है। अब, यह दिलचस्प है। इसलिए सामान को देखो। डॉलर के हस्ताक्षर शेयर पर है छोड़ दिया है, कि मेरे चर है। दाहिने हाथ की ओर, जाहिरा तौर पर वहाँ PHP में एक समारोह देखने का कहा जाता है कि मैं अपने पिछले कमांड लाइन से गुजर रहा हूँ तर्क जो कुछ भी है-- शब्द है। और हम यह कैसे देखेंगे एक पल में काम करता है। और फिर अंत में मैं कीमत रिपोर्टिंग कर रहा हूँ। मैं एक बाहर मुद्रण कर रहा हूँ फलां की हिस्सेदारी। और यह है, याद में PHP-- PHP-- में एक तरह से रास्ता तुम सब करने की जरूरत नहीं है, जहां अब डॉलर के हस्ताक्षर एस। तुम बस सर्पाकार उपयोग कर सकते हैं और कुछ चर में प्लग। आप के बारे में चिंता करने की जरूरत नहीं है एक ही रास्ते में printf का उपयोग कर। और एक तरफ, के रूप में आप एक चर डाल दिया जब इस तरह दोहरे उद्धरण चिह्नों के अंदर, आप एक फैंसी तकनीक का उपयोग कर रहे हैं चर प्रक्षेप बुलाया। यह बस यहाँ में चर प्लग इसका मतलब है। और एक तरफ, कुछ आप में से जो आने के रूप में अन्य प्रोग्रामिंग पृष्ठभूमि से, आप एकल उद्धरण का उपयोग नहीं हो सकता है चारों ओर तार यह करने के लिए। आप के लिए डबल उद्धरण का उपयोग करना चाहिए चर प्रक्षेप काम करने के लिए। नहीं तो आप सचमुच हूँ उन सर्पाकार देखते हैं। तो अंत में, आगे बढ़ते हैं और इस चलाते हैं। मुझे अपने टर्मिनल एक छोटे से बड़ा कर दूं। मुझे आगे जाना है और चलाते हैं मेरी बोली निर्देशिका के अंदर। [? CDsource?] [? पूर्वाह्न?] [? बोली?] पीएचपी बोली डॉट पीएचपी, और मैं कुछ के लिए खोज करने के लिए जा रहा हूँ इसका टिकर प्रतीक है जो GOOG, जैसे, और अपने नए नाम से एक हिस्सा है, वर्णमाला इंक, आज के रूप में, $ 717 लागत। ठीक है, हम करना चाहते हैं फिर से इस चलाने के लिए, किसी को भी एक और स्टॉक टिकर वे को देखने के लिए करना चाहते हैं? माइक्रोसॉफ्ट मुझे लगता है यह एक, MSFT-- $ 53। मैं याहू हो सकता है कि लगता है। और फेसबुक है। ऐसा करने के लिए इस कार्यक्रम क्या है? जादू एम्बेडेड किया जा रहा है कि देखने समारोह में। तो चलो एक त्वरित नज़र रखना। कि नहीं आती है यह पता चला है PHP के साथ, यह functions.php में है। और हम के माध्यम से नहीं जाना होगा महान विस्तार में यह, लेकिन यहां ऑपरेटिव शब्द है नोटिस कि functions.php-- की लाइन छह पर मैं सचमुच समारोह का कहना है। मैं अपने समारोह का नाम निर्दिष्ट करें। मैं तो किसी निर्दिष्ट तर्क, या मापदंडों मुझे लगता है कि समारोह में कोई प्रकार take-- करना चाहते हैं। और फिर मैं इसे लागू। और मैं अपने हाथ की लहर करेंगे कार्यान्वयन पर, यह काफी उन्नत सही है के बाद से अब, लेकिन हम वास्तव में इसे फिर से देखेंगे एक सप्ताह में समस्या में सात निर्धारित किया है। लेकिन मैं भी यह साफ कर सकते हैं। मैं भी शामिल आज के कोड एक संस्करण कोई डॉट पीएचपी फ़ाइल है जो बोली, के। पर संभवतः है क्योंकि क्या सिर्फ बोली नामक कार्यक्रम के शीर्ष? यही कारण है कि shebang-- तथाकथित काफी गुप्त जादू कि तब पीएचपी पाते हैं और कहते हैं, यहाँ अपने कोड पर चला रहे हैं। ठीक है, तो यह है कि लाता है हम कहाँ दूर छोड़ दिया करने के लिए हमें साथ यद्यपि पिछले time-- कुछ और अधिक उन्नत उदाहरण हैं। कोई प्रश्न इस प्रकार अब तक के बारे में पीएचपी या हम क्या कर रहे हैं? No-- सब ठीक है। हाँ? दर्शकों: अंदर HTML फ़ाइलों, you-- करना [? क्या आप ?] [? बस इसे कहते हैं?] एक [सुनाई] PHP फ़ाइल? डेविड मालन: अच्छा सवाल है। हम कर रहे हैं जो एक वेब संदर्भ में, के संक्रमण के लिए सचमुच के बारे में, आप तथाकथित उपयोग नहीं करते शीर्ष पर कुटिया, वेब server-- अक्सर एक है क्योंकि कार्यक्रम अपाचे या Microsoft बुलाया आईआईएस, इंटरनेट सूचना सर्वर, या अन्य वेब सर्वर सॉफ्टवेयर के किसी भी संख्या, यह देखता है कि जब जानता है एक डॉट पीएचपी फ़ाइल, यह है कि उस पर दुभाषिया चलाना चाहिए। ऐसा लगता है कि पहली पंक्ति में नहीं लगती है। इस पहली पंक्ति चाल तो आप कर रहे हैं बस जब है लिखने के कमांड लाइन programs-- हम सुपर अक्सर ऐसा नहीं करेंगे, जो लेकिन यह पाटने का हमारा तरीका है अब हमारे पीएचपी के लिए हमारी सी उदाहरण हैं। तो चलो वास्तव में इस दुनिया को पाटने जाने वेब के लिए कमांड लाइन दुनिया से निम्नलिखित करके। मुझे आगे जाना है और आकर्षित करते हैं यहाँ बस एक पल के लिए खत्म हो गया। हम नहीं बल्कि एक वेब सर्वर है, या तो अगर हम यहाँ अपने लैपटॉप से ​​अधिक है, तो जो मैं इस तरह से आकर्षित करेंगे। और यहाँ हमारे पास किसी न किसी रूप में इंटरनेट। और फिर यहाँ पर, हमारे पास एक building-- में एक सर्वर यह कैसे इंटरनेट है works-- और यहाँ में शायद कुछ रोशनी के साथ एक सर्वर है। वास्तव में क्या हो रहा है इन दो कनेक्शन के बीच? तो इस इमारत में एक वेब सर्वर है। यही कारण है कि सिर्फ एक कंप्यूटर है कि कुछ ऑपरेटिंग चल रहा है system-- शायद मुफ्त सॉफ्टवेयर बुलाया CS50 आईडीई चल रहा है, जो अपाचे,। तो अगर आप वास्तव में कर सकते हैं इस इमारत के बारे में सोच में इमारत होने के रूप में जो CSt0 आईडीई संग्रहित है। आप सभी को है कि जहां आप के खातों, जहां सभी अपने स्वयं के वेब सर्वर है आप सब चल रहा है अपने खुद के अनूठे यूआरएल है हम चर्चा करने के लिए शुरू कर दिया, पी छह सेट में और आप और अधिक देखेंगे। यहाँ मेरा लैपटॉप कहीं है इंटरनेट पर सब। मैं एक यूआरएल पर जाएँ और इसलिए जब कि अंतर्गत आता है मेरे लिए, कि इंटरनेट यातायात जा रहा है सर्वर, सर्वर के लिए खत्म हो प्राप्त एक HTTP request-- एक तरह सूचकांक पाने के लिए और यह है जो वेब पेज का जवाब दे रहे। तो यह है कि सामान्य प्रतिमान है। सब कुछ जबकि अब आज, सब कुछ जब तक में ही हो रहा था इस इमारत का किनारा। मैं अपने लैपटॉप का उपयोग कर रहा था, लेकिन मैं, CS50 आईडीई से जुड़ा था तो उन कार्यक्रमों के सभी मैं चल रहा था सर्वर है कि, खुद के अंदर था। लेकिन अब, चलो पीएचपी पुन: उपयोग शुरू करते हैं कुछ वास्तविक कार्यक्रमों लिखने के लिए कि एक वेब सर्वर द्वारा सेवा कर रहे हैं। और ऐसा करने के लिए, मैं जाने के लिए जा रहा हूँ उदाहरण के एक पूरे झुंड में यहाँ है कि इस विचार का परिचय। तो इस का एक अच्छा तरीका की तरह है एक प्रोग्रामिंग प्रतिमान का वर्णन। और वास्तव में, के रूप में आप CS50 से बाहर निकलें या, अंतिम परियोजनाओं पर काम या कुछ का पालन लेते हैं वर्ग पर, आप शुरू करेंगे world-- देखना है कि विशेष रूप से बड़े हो सी जैसी भाषाओं के साथ सुपर कम level-- हैं कि बेहतर है कि वहाँ का एहसास सॉफ्टवेयर लेखन के तरीके। कुछ कर रहे हैं आप का पालन कर सकते हैं पैटर्न, आपकी फ़ाइलों के आयोजन के कुछ तरीके और अपने कार्यों के नामकरण के तरीके, इसलिए कि लंबी कहानी को कम, दुनिया में आ गया है परिवर्णी शब्द की एक पूरी गुच्छा के साथ और प्रोग्रामिंग करने के तरीके के लिए नाम। ये आप का उपयोग हो सकता है सिर्फ तकनीक हैं। और उनमें से एक, MVC कहा जाता है मॉडल देखें नियंत्रक के लिए। और इस के लिए, बस है अब, एक पीढ़ी जटिल आप बाहर रखना चाहिए कि कैसे कहने का तरीका एक PHP आधारित वेबसाइट, हमारे मामले में। आप अपनी फाइलों को व्यवस्थित कैसे करते हैं, कैसे आप अपने तर्क का आयोजन करते हैं करने के लिए इसे आसान बना देता है कि एक तरह से और अधिक जटिल वेबसाइटों लिखना? और वास्तव में, हम जल्दी हूँ सात पी-सेट के साथ वहाँ मिलता है। MVC की दुनिया में तो, आप जा रहे हैं यह देखने के लिए कि हमारे कोड आम तौर पर कर सकते हैं या तो मॉडल कोड के रूप में होती हो, या नियंत्रक कोड, या देखने कोड। और मैं जा रहा हूँ follows-- के रूप में यह oversimplify नियंत्रक है अपने कार्यक्रम के दिमाग, इसके बारे में जहां सब है दिलचस्प तर्क होता है। इतना सब कुछ हम कर दिया गया है इस प्रकार अब तक कक्षा में लेखन, एक तरह से नियंत्रक की तरह है code-- इसे नियंत्रित है अपने कार्यक्रम, अपने छोरों, अपने स्थिति, अपने कार्यों और चर और यह सब। दृश्य, अब, एक छोटे से होने जा रहे हैं वेब की दुनिया में अधिक स्पष्ट है। एक दृश्य सौंदर्यशास्त्र है अपनी वेबसाइट के। यह उपयोगकर्ता के चित्र sees-- क्या है HTML तालिकाओं, एचटीएमएल टैग, और सभी कि, शराबी सौंदर्य के सभी की लिखने के लिए मुश्किल नहीं है कि सामान, लेकिन आप पैदा कर रहे हैं बस क्या है, तथाकथित देखने के लिए, सौंदर्यशास्त्र है। और मॉडल, अंततः जा रहा है डेटाबेस stuff-- होने के लिए जो हम सभी में गोताखोरी से शुरू करेंगे अधिक इस बुधवार। तो नियंत्रक तर्क है, देखें, सौंदर्य सामान है और मॉडल जहां होने जा रहा है हम अपने वास्तविक डेटा की दुकान। तो चलो अधिक concretely इस पर नजर डालते हैं निम्नलिखित उदाहरण के साथ। मैं यहाँ मेरी निर्देशिका में जाने के लिए जा रहा हूँ आज के स्रोत की, जिनमें से सभी code-- ऑनलाइन उपलब्ध है। और मैं संस्करण शून्य में जाने के लिए जा रहा हूँ। और यहाँ यह फोन करते है- CS50 की वेबसाइट के संस्करण शून्य। सभी पर ज्यादा यहाँ नहीं है। ऐसा लगता है कि एक बहुत ही सरल वेब पेज है शायद का उपयोग क्या एचटीएमएल tags-- बस पिछले उदाहरणों से लगता है क्या? वह क्या है? शायद यह है कि बड़ी बोल्ड लिए H1-- शीर्षक, शीर्ष तक कि लोगो, CS50। और क्या खेलने पर है? हाँ? दर्शकों: unordered सूची। डेविड मालन: अक्रमित list-- इसलिए उल टैग और लाइट टैग की शायद एक जोड़े। और अगर आप इन याद नहीं है, यह ईमानदारी से कोई फर्क नहीं पड़ता। इन के शराबी तरह कर रहे हैं एचटीएमएल के कार्यान्वयन के विवरण आप जल्दी से ऊपर लग रही है कि और तुम वापस अपने रास्ते पर हैं। हम प्रोग्रामिंग पर अधिक ध्यान केंद्रित करेंगे juicier टुकड़े कर रहे हैं कि विचारों। तो चलो बस एक त्वरित ले चलो HTML-- को देखो और वास्तव में मैं हाँ, यहाँ देखने के स्रोत के ऊपर खुला, तो कि वास्तव में यहाँ पर हो रहा है क्या। एक उल टैग नहीं है। उस के अंदर नेस्ट लाइट टैग करने के लिए है। और फिर मैं यूआरएल उधार यहां वास्तविक पाठ्यक्रम की। और उसके बाद में lectures.php जाहिरा तौर पर है एक और गतिशील रूप से उत्पन्न पेज कि, चलो आह see-- चलो, किया जा रहा है व्याख्यान के पहले दो हफ्तों। इसलिए सप्ताह शून्य और सप्ताह में एक, चलो मैं पृष्ठ स्रोत को देखने यदि है- देखो, यह भी सुपर सरल। इन दो पृष्ठों के लिए नेतृत्व कर रहे हैं कहा जाता week0.php, और week1.php। तो क्या हो रहा है अब विचार करें। मैं week0.php पर क्लिक करते हैं, अपने लैपटॉप week0.php के लिए एक अनुरोध कर रही है। वेब सर्वर, उर्फ, CS50 आईडीई, कि आभासी लिफाफा प्राप्त कर रहा है। यह संदेश देख रहा है जैसे, week0.php मिलता है। यह तो फ़ाइल व्याख्या है, शीर्ष नीचे करने के लिए, फ़ाइल right-- के लिए छोड़ दिया कहा जाता week0.php-- और परिणाम बाहर थूकना। इसलिए इस फाइल के अंदर, week0.php, होना चाहिए पैदा कर रहा है कि नियंत्रक तर्क इस HTML, और हम जल्द ही देखेंगे। लेकिन अब के लिए, मुझे सप्ताह शून्य पर क्लिक करते हैं और अब हम, बुधवार और शुक्रवार को है और अब हम स्लाइड है धीरे-धीरे सप्ताह शून्य से। और अगर आप याद कर सकते हैं वापस जब इस तरह से। तो यह है कि इस वेबसाइट से कर रही है सब है। तो चलो इसे इस कैसे कर रहा है पर विचार करते हैं। मैं में वापस जाने के लिए जा रहा हूँ CS50 आईडीई में यहां स्रोत कोड, और मैं index.php को खोलने के लिए जा रहा हूँ। इस फ़ाइल के शीर्ष पर टिप्पणियों का एक गुच्छा है। और फिर इस फाइल के बीच में, यह पता चला है, जो भी कोई PHP कोड है। आप में से किसी की जरूरत नहीं है क्योंकि अगर खुले ब्रैकेट प्रश्न चिह्न पीएचपी टैग, आप बस HTML डाल करने के लिए स्वतंत्र हैं। क्योंकि क्या पीएचपी दुभाषिया, ऐसा माना जाता है यह इस file-- पढ़ता है जब है नीचे से ऊपर, right-- के लिए छोड़ दिया यह केवल यह बीच में देखता कोड की व्याख्या उन कोण कोष्ठक निशान सवाल। और कुछ और यह नहीं है कि PHP के रूप में पहचान है, यह सिर्फ बाहर spits। और एचटीएमएल सामान के बीच में है यह सिर्फ बाहर थूक होगा। इसलिए इस फाइल को हो सकता था सूचकांक बुलाया गया, लेकिन मैं सब कुछ नामकरण कर रहा हूँ एक कदम पत्थर के रूप में डॉट पीएचपी। इसी तरह Lectures.php-- underwhelming, यह सिर्फ कुछ HTML है। Week0.php, इसी तरह से बस कुछ एचटीएमएल। लेकिन अब के पर डाल दिया लौकिक इंजीनियरिंग टोपी, और हम इस कैसे सुधार सकते हैं पर विचार करें। यह ऐसा करने के लिए मुश्किल नहीं है, लेकिन मैं एक तरह की कॉपी और पेस्ट में सौंप दिया। और वास्तव में, मैं इस सप्ताह दो बनाते हैं, तो आप मैं शायद ऐसा करने के लिए जा रहा हूँ पता है क्या? मैं मैं कर रहा हूँ, week1.php पर जाने के लिए जा रहा हूँ सब कुछ उजागर करने के लिए जा रहा है। मैं इसे कॉपी करने के लिए जा रहा हूँ, यह पेस्ट week2.php नामक एक नई फ़ाइल में, कुछ यूआरएल tweak, और अपने रास्ते पर हो। तो हम क्या किया है पर आधारित पहले से ही सी में देखा जाता है, यह उम्मीद है कि, सही नहीं लगता। कॉपी, पेस्ट शायद ही कभी सही समाधान है। इसलिए हम शुरू कर सकते हैं क्या इस में सुधार करने के लिए क्या करना है? जहां अवसर हैं बेहतर डिजाइन के लिए? मैं करने के लिए मिल समय से सप्ताह आठ, यह जा रहा है वास्तव में परेशान होने की मैं बदलना चाहते हैं में से हर एक का फ़ॉन्ट मैं चाहता हूँ, या अगर मेरे पन्नों लेआउट की संरचना बदलने के लिए। इसलिए जहां मौका है बेहतर डिजाइन के लिए? ठीक है, चलो क्या विचार करते हैं इन फ़ाइलों के सभी भर में साझा की है। यहाँ यहाँ सप्ताह है, हफ्ते में से एक है शून्य, यहां lectures.php है, यहाँ एक ही है क्या index.php-- है और अलग, मोटे तौर पर क्या बोल रहा है, इन फ़ाइलों में से प्रत्येक में? हाँ? दर्शकों: [अश्राव्य] डेविड मालन: ठीक है, अच्छा है। तो एक पैटर्न निश्चित रूप से, जिससे वहाँ हर बार जब मैं व्याख्यान मैं चुन मैं एक पैदा किया जाना चाहिए बहुत समान लग पेज। और तो शायद मैं उत्तोलन कर सकते हैं तथ्य यह है कि वास्तव में, जानबूझ संख्यानुसार हम हमारे lectures-- अनुक्रमित मैं और भी रख सकते हैं अपने जवाब में शब्द। और, वास्तव में, केवल एक चीज क्या है कि सप्ताह के बीच में बदल रहा है one-- और यह बात है तो मुझे नीचे स्क्रॉल मोटे तौर पर एक ही place-- में तो यहाँ सप्ताह शून्य है, मोटे तौर पर शीर्ष पर। यहां सप्ताह में एक, सप्ताह है शून्य, एक सप्ताह, सप्ताह शून्य। ठीक है, सचमुच अगर आप जानते हैं जो भी कोई कार्यक्रम, यह सिर्फ एक तरह अब है पैटर्न मिलान खेल है। तो क्या अलग है? हाँ? दर्शकों: [अश्राव्य] डेविड मालन: अच्छा है, तो शीर्षक कभी तो थोड़ा बदल रहा है। शून्य से एक के लिए, निश्चित रूप से, जा रहा है। एक ही बात H1 टैग में हो रहा है। और हम काफी, के रूप में इसे आसानी से देख नहीं है यूआरएल एक छोटे से लंबे हैं। लेकिन उन यूआरएल को थोड़ा बदल रहे हैं। लेकिन है नहीं बदल रहा है क्या, मैं हिम्मत कहते हैं, page-- की सामग्री के सबसे एचटीएमएल टैग भी ऐसा ही है, सिर है एक ही है, शीर्षक, लगभग एक ही है शरीर ही है, और लगभग सब कुछ के अलावा एक ही है उन छोटे tweaks। इसलिए हम के बारे में कैसे जा सकते हैं इस में से कुछ बाहर फैक्टरिंग? वैसे मुझे बिल्कुल प्रस्ताव दें अगले संस्करण में है। तो यहाँ संस्करण एक में, मैं सही है एक ही फाइल, प्लस दूसरों के एक जोड़े। यहाँ index.php-- और भले ही है आप पहले पीएचपी कभी नहीं देखा क्या मैं शायद इस को हल करने के लिए कर रहा हूँ आप यहाँ देख, उसके आधार पर problem--? हाँ, एक मामूली प्रतिबद्धता है? नहीं? हां जारी रखो। दर्शकों: [अश्राव्य] डेविड मालन: हाँ। दर्शकों: [अश्राव्य] डेविड मालन: मैं करने के लिए आप की जरूरत है सिर्फ एक छोटे से जोर से बोलते हैं। दर्शकों: [अश्राव्य] डेविड मालन: ठीक है, अच्छा है। और मैं यह था think-- you-- लेकिन मैं सुनना मुश्किल क्या आप पर हो रही है कि लगता है कि शीर्ष ऊपर आम थे कि टैग, पर आम थे कि और टैग नीचे, अब, बाहर सकारात्मक असर कर दिया गया है या फ़ाइलों को क्या करने के लिए चला? Header.php और footer.php-- और हम जा रहे हैं करने के लिए कुछ tweaks बनाने के लिए चिंता आप को संबोधित बस के लिए, संख्या बदलने के बारे में उठाया उदाहरण के लिए, मैं तुम्हें सही तरीके से सुना है। लेकिन यह है कि इसे का सार प्रतीत हो रहा है। की एक बड़ी रकम नहीं थी, तो पेज के शीर्ष पर अतिरेक, और की एक बड़ी राशि तल पर अतिरेक, के सचमुच सिर्फ प्रकाश डाला और उस सामग्री को बाहर कटौती, एक अलग file-- बस की तरह में डाल दिया हम बाहर सकारात्मक असर जहां सीएसएस के विचार डाल बहुत समान सौंदर्यशास्त्र, एक अलग डॉट पीएचपी फाइल में, mechanism-- की आवश्यकता के लिए जो प्रयोग सी तेज include-- की तरह है जो अनिवार्य रूप से जाना कह की तरह है , header.php की सामग्री को हड़पने और कॉपी और उन्हें यहाँ पेस्ट। लेकिन क्या इसका मतलब यह है कि अब में है index.php, मैं उन दो लाइनें है। Lectures.php में, मैं भी उन दो लाइनें है। Week0.php में, मैं भी उन दो लाइनें है। तो अब, मैं बदलना चाहते हैं मेरी पृष्ठों के सभी के शीर्षक, या मैं बदलना चाहते हैं आधारभूत संरचना, मैं तो बस एक ही स्थान पर अब इसे बदल सकते हैं या दो places-- लेख और पाद, क्रमशः। अब कोड के शुरुआती देखने के लिए एक छोटे से अधिक गुप्त, है ना? लेकिन आप के बारे में सोचते हैं, तो क्या पेज मैं week0.php का अनुरोध कर रहा हूँ, तो doing-- है, बस पर ड्राइंग पर की तरह here-- week0.php का अनुरोध किया जाता है, इसका क्या मतलब है? सचमुच, इस फ़ाइल है ब्राउज़र द्वारा अनुरोध किया। वेब server-- उर्फ CS50 ID-- यह पकड़ लेता है फ़ाइल, week0.php, और पढ़ता यह ऊपर से नीचे, सही करने के लिए छोड़ दिया है। लाइन एक पर, यह तुरंत मुठभेड़ों खुले ब्रैकेट प्रश्न चिह्न पीएचपी, की आवश्यकता होती है हैडर डॉट पीएचपी, और इसलिए क्या PHP दुभाषिया कि वेब में बनाया गया है does-- सर्वर, हम preconfigured क्योंकि यह यह स्वचालित रूप से चला जाता है you-- के लिए header.php में, प्रतियां सामग्री, उन्हें यहाँ चिपकाता है। लेकिन तब दुभाषिया मुठभेड़ों प्रश्न चिह्न बंद कोष्ठक, तो यह सब सोच हो चुका है। अब यह बस आँख बंद करके spits लाइनों के बाहर सात के माध्यम से दो, यह सिर्फ कच्चे एचटीएमएल है क्योंकि। आठ लाइन के लिए हो जाता है, और है कि करता है फ़ाइल खोलने again-- एक ही जादू, सामग्री हथियाने, और उन्हें आवश्यकता होती है या उन्हें चिपकाने सही है तो या वहाँ। लेकिन मैं सिर्फ एक बग के लिए alluded। इस पिछड़े एक आंशिक कदम है हम header.php में लग रही है, क्योंकि अगर, मैं एक तरह से एक कोने में कटौती की है। मैं क्रम में ऊपर को क्या सुविधा इस विवाद बेहतर डिजाइन हासिल करने के लिए? हाँ? दर्शकों: [अश्राव्य] डेविड मालन: हाँ, मैं एक तरह की एक nontrivial कोने में कटौती। आप क्या बदल रहा था कि बाहर की ओर इशारा शीर्षक था, शीर्षक में नंबर, और एच 1 में नंबर। तो मेरा समाधान है, ठीक है, था चलो बस पेज का नाम बदल देना, और उस के साथ सौदा नहीं जो भी समस्या है। तो यह है कि एक आंशिक है सुनिश्चित करने के लिए पीछे की ओर कदम। लेकिन यहाँ उल्लेखनीय क्या है मैंने किया है है कि क्या अन्यथा शामिल होती है सभी आम सामान बाहर। और footer.php में, मैं सकारात्मक असर नोटिस है कि सभी बाहर, कम ही सही, आम चीज है। तो मैं किसी भी तरह अब करने में सक्षम होने की जरूरत है एक और कदम आगे ले, और तय शीर्षक है कि मुद्दों। तो चलो करते हैं। मुझे मेरे दूसरे संस्करण में चलते हैं यहां, जो, फिर से, एक ही फाइल है एक नए इसके अलावा के लिए छोड़कर। और यह एक छोटे से अधिक है वाचाल, लेकिन यदि देखते हैं हम यहाँ पर क्या हो रहा है के अलावा तंग कर सकते हैं। तो बजाय की आवश्यकता होती है header.php, और footer.php, मैं केवल एक की आवश्यकता होने लगते हैं file-- helpers.php, ज़ाहिर है, कहा जाता है। और, मुझे अब बंधेज जाने helpers.php के अंदर क्या हो रहा है कार्यों की सिर्फ एक गुच्छा है कि मैं पहले की तरह लिखा था। लेकिन मैं यह helpers.php बुलाया। अब जाहिर है, में लाइन तीन और 10, मैं कर रहा हूँ दो functions-- बुला हैडर प्रस्तुत करना, पाद प्रस्तुत करना। साथ नहीं आते हैं उन पीएचपी, मैं उन लोगों से अपने आप को लिखा था। और मैं helpers.php में डाल दिया। अब, हम केवल इस वाक्य रचना को देखा है एक बार, और यह सुपर संक्षिप्त था। लेकिन जाहिरा तौर पर इस एक तर्क है हैडर, समारोह के लिए प्रस्तुत करना। क्यों मुझे लगता है कि पता है? वैसे यहाँ एक करीबी कोष्ठक है, यहां एक खुला कोष्ठक है। और हां, बस सी में की तरह, उन कोष्ठकों के बीच कुछ भी एक input-- या एक है समारोह के लिए तर्क। इस तर्क के डेटा प्रकार क्या है, मैं प्रकाश डाला है, उसके आधार पर? उन वर्ग कोष्ठक क्या करें पिछले हफ्ते के आधार पर संकेत मिलता है? हाँ, यह एक array-- है विशेष रूप से एक साहचर्य सरणी। और इस वाक्य रचना मानते एक छोटे कायरता है, लेकिन यह सिर्फ गुजर रहा है एक महत्वपूर्ण मूल्य जोड़ी में। कुंजी बोली गंदें शब्द बोलना है, शीर्षक है, और मूल्य CS50 है। हम किया था, तो इस सी में, यह बजाय हो सकता है इस तरह से अधिक लग रही है, सिर्फ बोली गंदें शब्द बोलना CS50-- या वास्तव में यह घुंघराले होगा ब्रेसिज़, या सी में ऐसा कुछ, जहां कुंजी शून्य है, और मूल्य CS50 है। लेकिन फिर, पीएचपी में, भले ही वाक्य रचना, फिर से, एक अजीब सा है यह आप में पारित करने के लिए अनुमति देता है शब्द के बजाय संख्या मूल्यों के साथ कुंजी संबद्ध करने के लिए। तो इस सब का क्या मतलब है? मैं helpers.php में जाना है, चलो इस समारोह को देखो। renderHeader.php, बल्कि renderHeader, मेरे समारोह है और मुझे लगता है मैं देख रहा हूँ क्योंकि जानते हैं कि यहां समारोह कीवर्ड। यह जाहिरा तौर पर यह C-- से नया है data-- नामक एक तर्क लेता है लेकिन मैं यह कहा हो सकता है कुछ भी हो, लेकिन मुझे लगता है, डेटा यह कहा जाता है सिर्फ एक छोटे से clean-- हो सकता है और सिर्फ विशेष रूप से, एक अनुमान ले आप कुछ अन्य में प्रोग्राम है अगर इससे पहले उच्च स्तर की भाषा, कुछ सेल्सियस से ऊपर, धारणात्मक। क्या बराबर खुला ब्रैकेट करता है शायद वर्ग कोष्ठक मतलब है? या फिर यह क्या मतलब हो सकता है? हम हाँ सी में यह देखा नहीं गया है? एक खाली सरणी। विशेष रूप से, इसका मतलब यह है कि अगर उपयोगकर्ता renderHeader फोन नहीं करता एक तर्क के साथ, मैं अभी भी जा रहा हूँ डेटा बुलाया एक तर्क है, लेकिन इसकी डिफ़ॉल्ट मान है एक खाली सरणी होने जा रहा। तो यह सिर्फ एक अच्छी सुविधा है। मैं, उपयोगकर्ता पर चिल्लाना नहीं है या तुम मेरे समारोह गलत इस्तेमाल किया कहते हैं। मैं सिर्फ उपयोगकर्ता एक डिफ़ॉल्ट दे सकते हैं मूल्य, मैं विशेष रूप से परवाह नहीं है। अब इस समारोह में, मैं कर रहा हूँ पर मेरे हाथ लहर करने के लिए जा रहा है। लेकिन इस निकालने समारोह की अनुमति देता है हमें डाटा में इन चर पारित करने के लिए निम्नलिखित तरीके से header.php में। और यह पिछले टुकड़ा है, मैं कायरता वाक्य रचना की, लगता है। यहाँ मेरा नया संस्करण है की यह header.php-- सचमुच, कहने के लिए प्रयोग किया जाता है, खुला ब्रैकेट शीर्षक CS50 है, और वह यह था। और एच 1 के लिए एक ही बात है। अब यह स्पष्ट तौर पर कहते हैं, बहुत कुछ दिखलाना। और मुझे इस सरल जाने एक पल के लिए के रूप में इस प्रकार है। यह मैं क्या है होना मेरे शीर्षक बदल दिया है। हालांकि, यह एक छोटे बदसूरत हो रही है PHP के साथ लगातार खुला कोष्ठक करने के लिए, और फिर प्रिंट समारोह का उपयोग करें। यह पीएचपी एक आशुलिपि पता चला है कि बस है जो इस अंकन के लिए, तकनीकी रूप से एक है जो एक बराबर चिह्न, कहा जाता समारोह, बजाय प्रिंट की गूंज लेकिन इसे प्रभावी ढंग से, एक ही बात है। यही कारण है कि सिर्फ बेहतर लग रहा है। यह सिर्फ एक वाक्यात्मक है चीनी, अगर तुम जाएगा, कि मेरे कोड थोड़ा बेहतर लग रही है। लेकिन यह पता चला है, और हम फिर से इस देखेंगे लंबे समय से पहले, हम इस कॉल करने के लिए annoyingly लंबे समारोह में बुलाया एचटीएमएल विशेष वर्ण में पीएचपी, यह पता चला है क्योंकि कुछ सूचनाओं के देखते हैं यूजर हमें दे सकता है या उपयोगकर्ताओं के लिए हमें दे सकता है, कि हमारी साइट को तोड़ने के लिए जा रहे हैं। लेकिन हम जानते हैं कि अगले देखेंगे जावास्क्रिप्ट के साथ सप्ताह। लेकिन अब के लिए, बस इतना पता है कि इस फ़ाइल में headers.php, बस शीर्षक लेता है मैं में पारित किया है, इसे बनाने के लिए यह सुरक्षित है यकीन है कि एक वेब में इंजेक्ट किया पेज, और यह मेरी शीर्षक के रूप में इसे बाहर spits और मेरी एच 1 के रूप में। इसलिए मैं अब इस संस्करण में जाना है, व्याख्यान में अपने खिताब वापस है कि नोटिस, सप्ताह शून्य से वापस अपने शीर्षक है, और दरअसल, एचटीएमएल मैं पैदा कर रहा हूँ क्या मेरा पहला संस्करण के लिए समान है मेरी खाली स्थान को छोड़कर was--, मैं स्वरूपण शुरू कर दिया है क्योंकि अलग ढंग से अपने कोड के एक छोटे से। लेकिन मैं सभी उत्पन्न किया है मैं देखभाल के बारे कोड। मेरे लिए तो हम रोक देते हैं बस एक पल और देखना किसी भी सवाल है कि अगर वहाँ या भ्रम मैं बना लिया है। ठीक है, तो चलो मोड़ जाने थोड़ा कठिन यहाँ एक है कि अगर वहाँ देखने के लिए सुधार के लिए अवसर। Helpers.php भी इस पड़ा समारोह, renderFooter बुलाया। और के बारे में उल्लेखनीय क्या है renderHeader, और renderFooter? और फिर, आज के उद्देश्यों के लिए है, पता है निकालने समारोह है कि बस गुजर तर्क का मेरा तरीका header.php और footer.php में। क्षमा करें? दर्शकों: [अश्राव्य] डेविड मालन: हाँ, मैं केवल लाइन की आवश्यकता बदल दिया है। तो सचमुच, मैं पाप किया है कॉपी करने और चिपकाने की, एक बार फिर। यह एक बड़ी संख्या नहीं है लाइनों की, लेकिन on-- आ मैं कॉपी करने और सब कुछ चिपका रहा हूँ, तो सिर्फ एक छोटा सा शब्द बदलने के लिए, और एक छोटा सा शब्द एलन बताते हैं कि बाहर बनाम, यहां पाद यहाँ हैडर। अन्यथा, सब कुछ है समान, के लिए छोड़कर, जाहिर है, समारोह के नाम। इसलिए हम बेहतर क्या कर सकता है? वैसे मुझे इस संस्करण को खोलने दें यहाँ, जिससे helpers.php में, यही कारण है कि मैं सिर्फ एक नहीं मिलता इस बारे में होशियार कम? थोड़ा और अधिक जटिल लिखें कोड, लेकिन इसे प्रस्तुत करना कहते हैं? इसलिए मैं मौलिक क्या बदल गया है? यह एक बहस लेता now-- दो तर्क है, अभी भी डेटा। और फिर पहले क्या है शायद के लिए इस्तेमाल किया जा रहा नाम, आप यहां पढ़ रहे हैं, उसके आधार पर? यहां तक ​​कि अगर वाक्य रचना से कुछ अभी भी नया है। डॉलर के हस्ताक्षर टेम्पलेट क्या है? क्षमा करें? दर्शकों: हैडर या पाद। डेविड मालन: हैडर या पाद। तो जाहिर है, मैंने तय किया है कि यदि बदल रहा है कि केवल एक चीज मैं चाहता हूँ कि क्या टेम्पलेट है print-- और टेम्पलेट से करने के लिए मैं इस के लिए खाका है मतलब मैं उत्पादन करना चाहते हैं कि कोड, लेकिन मैं कुछ में प्लग करना चाहते हैं values-- यदि ऐसा है तो यह केवल शीर्ष लेख है या पाद, मैं क्यों parameterize नहीं है कि और तर्क डॉलर के हस्ताक्षर फोन टेम्पलेट? और फिर इस कायरता वाक्य रचना मुझे अनुमति देता है यहां एक चर में एक रास्ता बनाने के लिए। तो डॉलर के हस्ताक्षर पथ एक चर रहा है। इस वाक्य रचना करता है क्या आप परिचित हैं, तो क्यों है? हाँ? दर्शकों: [अश्राव्य] डेविड मालन: बिल्कुल। टेम्पलेट है, तो गंदें शब्द बोलना बोली, शीर्षक, या टेम्पलेट है, गंदें शब्द बोलना बोली, पाद, वहाँ है कि लाइन मैं प्रकाश डाला है कि, लाइन आठ, बस हेडर की तरह है, उस नाम ले रहा है, और डॉट पीएचपी साथ यह concatenating। इसलिए हम इस ऑपरेटर नहीं था सी में यह डॉट ऑपरेटर है अगर आप कर रहे PHP-- में एक अद्भुत बात जावास्क्रिप्ट या जावा के साथ परिचित, आप प्लस का उपयोग कर सकते हैं कड़ी ऐसा करने के लिए साइन इन करें। सी में, यह neck-- में दर्द हो रहा है छह पी-सेट में और मैं माफी चाहता हूँ, तुम्हें क्या करना है करने के लिए जा रहे हैं है- यह गर्दन में दर्द हो रहा है तार जोड़ना। क्यों? खैर, अगर तुम मिल गया है क्योंकि लंबे समय से इस बात है कि एक स्ट्रिंग, और लंबे समय से इस है कि एक और स्ट्रिंग, आप सिर्फ एक साथ उन्हें प्लग नहीं कर सकते। क्या आप के बजाय सी में क्या करना है? हाँ? दर्शकों: [अश्राव्य] डेविड मालन: आप malloc के लिए है स्मृति, या ढेर पर एक सरणी का उपयोग करें। और अगर आप वास्तव में करने के लिए है पर्याप्त है कि सरणी बड़ा बनाने इस के साथ साथ इस फिट करने के लिए, प्लस बैकस्लैश शून्य। तब का उपयोग कर उन्हें एक साथ जुटना पाश के लिए एक साथ बिल्ली या मैन्युअल हलचल या तकनीक के किसी भी संख्या। और हम आप में एक जोड़े को दिखाने के पी-सेट छह। यह गर्दन में दर्द हो रहा है। और इस बारे में मैं क्या मतलब है सही मायने में है पीएचपी बनाम सी की तरह है- बनाम यह। आप सिर्फ इतना अधिक मिलता है मुक्त करने के लिए कार्यक्षमता, आप ध्यान केंद्रित कर सकते हैं, जिससे कि आदर्श रूप में, मज़ा पर कोडिंग का हिस्सा है, आप को हल करना चाहते परियोजना, बल्कि कम स्तर ज़रा सी बात से। तो यह सिर्फ उत्पन्न header.php या जो मैं फोन पर आधारित footer.php। और वास्तव में मैं जाना है index.php में, नोटिस कहा कि सभी के बजाय changed-- है हैडर प्रस्तुत करना या पाद लेख प्रस्तुत करना बुला रही है, मैं द्वारा पीछा किया, प्रस्तुत करना बुला रहा हूँ मैं करना चाहता हूँ कि टेम्पलेट का नाम। और तुम भी, यह देखेंगे, समस्या में, सात सेट हम आप का उपयोग करने की अनुमति है जिससे एक ही समारोह में गुच्छों बनाने के लिए और विभिन्न वेब पृष्ठों के गुच्छों। इसलिए बल्कि बहुत ध्यान केन्द्रित से उन details-- पर बहुत अधिक आप में फिर से देखेंगे जो समस्या सेट की नजर डालते हैं seven-- एक समाधान की अब शुरुआत में एक और अधिक दिलचस्प समस्या के लिए। इस प्रकार अब तक, कुछ भी हम है किया बचाया डेटा है। वास्तव में, केवल समय हम कभी भी बचा लिया हम इस वर्ग में किया है कुछ हम थोड़ी देर के लिए एक बहुत ही साधारण प्रदर्शन किया था है जब पीठ, जिससे हम, सी में फ़ाइल कब इस्तेमाल किया और मुझे लगता है कि मैं अपने नाम में टाइप लगता है, और हन्ना का नाम, और मारिया के नाम, या शायद एंडी नाम है, और फिर हम एक सीएसवी file-- बचाया अल्पविराम मूल्यों फ़ाइल अलग कर दिया। और हम मुझे लगता है कि fopen-- इस्तेमाल किया मुझे याद है, जैसा कि हम fprintf इस्तेमाल किया और हम एक फ़ाइल को बचाया। अब, यह सबसे सरल है एक डाटाबेस के रूप में। आप के लिए एक वेबसाइट बनाना चाहते हैं Frosh आईएमएस कार्यक्रम, जिससे freshmen आदर्श रूप में, एक खेल के लिए आप रजिस्टर कर सकते हैं उस डेटा के साथ कुछ करना चाहते हैं। पिछले हफ्ते, हम कुछ नहीं किया data-- साथ हम सिर्फ इतना कहा, आप वास्तव में नहीं है, पंजीकृत हैं। या हो सकता है मुझे ईमेल प्रॉक्टर, और वह यह था। अगर मैं कर सकता लेकिन यह अच्छा होगा कि, प्रॉक्टर एक सीएसवी फ़ाइल दे एक एक्सेल फाइल की तरह। या बेहतर अभी तक, यह होगा अगर मैं कर सकता अच्छा होगा उन उपयोगकर्ताओं का नाम रख दिया और नामों छात्रावास और है कि सभी एक डेटाबेस में है कि बस, पर हमेशा के लिए रहता है जब तक मैं डेटा को नष्ट करने के लिए चुनें। की अनुमति देता है कि एक डेटाबेस मुझे जानकारी क्वेरी के लिए। और वास्तव में, एक डेटाबेस है कि क्या हो रहा है। हम आज का परिचय दिया और अगले सप्ताह भी है, एक प्रौद्योगिकी कहा जाता SQL-- एक संरचित क्वेरी एक और भाषा है जो भाषा,। यह अनिवार्य रूप से एक प्रोग्रामिंग है भाषा, लेकिन डेटाबेस के लिए। और अब के लिए एक डाटाबेस, बस एक सुपर फैंसी संस्करण के रूप में के बारे में सोच माइक्रोसॉफ्ट एक्सेल, या गूगल की स्प्रेडशीट्स, या एप्पल नंबर। यह आम तौर पर अनुमति देता है कि एक कार्यक्रम है आप डेटा की एक पूरी गुच्छा स्टोर करने के लिए पंक्तियों और स्तंभों में काफी जैसे आप Excel में हो सकता है। लेकिन क्या है, खासकर अगर अच्छा है हम, एक्सेल के साथ सुपर परिचित नहीं हैं क्या एसक्यूएल तुम क्या करने की अनुमति देता है क्वेरी यह है कोड की लाइनों लिख कर जानकारी जहां आप कर सकते हैं, भले ही अपने डेटाबेस, उस में एक लाख पंक्तियाँ है आप चीजों को सुपर फास्ट पा सकते हैं। वास्तव में, एक्सेल, विशेष रूप से है बड़े डेटा सेट पर बुरा। और वास्तव में, कुछ करने के लिए ऊपर साल पहले, निकला एक्सेल केवल आप की दुकान करने की अनुमति होगी data-- जो अप करने के लिए 65,535 पंक्तियों पर लेकिन, एक बहुत की तरह लगता है बार मैं एक स्नातक छात्र था और मैं में फंसना याद यह है कि मैं पैदा हुआ था, क्योंकि मेरे शोध और मैं के लिए सीएसवी फाइल उन्हें जल्दी से विश्लेषण करना चाहता था सिर्फ एक्सेल में खोलने के द्वारा। बेशक, मेरे कंप्यूटर बस दुर्घटनाग्रस्त, मैं अधिक से अधिक 65,000 पंक्तियों था। लेकिन 65,535 कहाँ से आया था? माइक्रोसॉफ्ट क्या कर रहा था, शायद? आप दोनों में से अपनी शक्तियों के साथ अच्छा कर रहे हैं? हाँ, वे एक 16-बिट का उपयोग कर रहे थे मूल्य पंक्ति संख्या का प्रतिनिधित्व करने के लिए। और 16 के लिए दो है 65,536-- शून्य से एक है, क्योंकि अगर आप शून्य सूचकांक था कि इसका मतलब है मैं कर सकता था पंक्तियों की सबसे अधिक संख्या। और यह सिर्फ एक डिजाइन निर्णय था। 16 बिट्स बचत करके, वे मेरे सीमित बजाय 4 अरब की 16,000 पंक्तियों को, जो मैं आदर्श रूप में हो सकता था। लेकिन अब के लिए, हम करने जा रहे हैं एक वेब संदर्भ में यह अधिक परिचय। और क्या एसक्यूएल के बारे में अच्छा है कि और भी है यह बहुत शक्तिशाली और सुंदर है, हालांकि परिष्कृत, यह वास्तव में फोड़े नीचे करने के लिए चार प्रमुख संचालन, चार महत्वपूर्ण कार्यों, आप का चयन will-- हैं, , डेटा को पुन: प्राप्त खोज के लिए डेटा के लिए; हटाने या डेटा को हटाने; डेटाबेस के लिए पंक्तियों को जोड़ने के लिए डालने; और अद्यतन। क्या आपने कभी गूगल का इस्तेमाल किया है तो अगर स्प्रेडशीट्स, एप्पल नंबर, माइक्रोसॉफ्ट एक्सेल, आप को मार डाला है, सबसे अधिक संभावना है, सभी एक इंसान के रूप में इन आपरेशनों द्वारा की बस अपने कुंजीपटल और mouse-- का उपयोग कर अपनी आँखें, डेटा डालने का उपयोग कर का चयन करें या डेटा के लिए खोज करने के लिए, या अद्यतन डेटा, या निरस्त डेटा। अच्छा तो इसका क्या मतलब है? खैर, CS50 में पहले से स्थापित आईडीई MySQL के एक कार्यक्रम में कहा है। यह एक मुक्त, खुला स्रोत है सुपर लोकप्रिय है कि डेटाबेस। फेसबुक, उदाहरण के लिए, यह करने के लिए इसे इस्तेमाल करता है वे का उपयोग करने वाले अन्य उपकरणों के बीच दिन। और बहुत लोकप्रिय वेबसाइटों की एक बहुत का उपयोग करें यह बड़े हिस्से में यह तेजी से है, क्योंकि और क्योंकि यह मुफ़्त है। निश्चित रूप से हालांकि विकल्प मौजूद हैं। और आप में से कुछ के साथ भिगोना सकता है अंतिम परियोजनाओं के लिए विकल्प। इस कारण, इस बीच, एक स्क्रीनशॉट है phpMyAdmin नामक एक वेब आधारित उपकरण है। यह एक संयोग है कि इस वेब आधारित उपकरण भी है एक भाषा में लिखा, पीएचपी, लेकिन ऐसा करने का मतलब है क्या हमें दे रहा है एक वेब आधारित एक डेटाबेस के लिए इंटरफ़ेस। MySQL के लिए आम तौर पर है, क्योंकि कुछ, ऐतिहासिक, आप केवल के साथ बातचीत करेंगे एक कमांड लाइन के साथ। और यह सुपर होगा कष्टप्रद और संबंध के लिए रहस्यमय चयन करने के लिए शाब्दिक आदेश टाइप करने के लिए डेटा, डेटा डालें, और डेटा को हटा दें। इंटरनेट पर तो कुछ लोगों को एक वेब आधारित कार्यक्रम में लिखा था बस हमें का प्रबंधन करते हैं कि हमारे डेटाबेस में डेटा। यह एक्सेल पर डबल क्लिक करने की तरह है, और उसके एक वेब आधारित संस्करण चल रहा है। और आप के लिए इस का उपयोग करने के लिए जा रहे हैं अंतत: अगले सप्ताह, नहीं में पी-सेट छह, लेकिन कुछ का निर्माण करने के लिए है CS50 वित्त, जो बुलाया का एक डाटाबेस किया जा रहा है उपयोगकर्ता नाम और पासवर्ड के साथ उपयोगकर्ताओं, डॉलर की राशि है कि वे उनके बैंक खातों में है। यह होने जा रहा है आप स्टोर करने के लिए उपयोग कुछ प्रतीकों और मात्रा शेयरों की कि उपयोगकर्ताओं आभासी का उपयोग कर खरीदा है आप उन्हें दे दूँगा कि डॉलर। और यह उपयोगकर्ताओं को अनुमति देने के लिए जा रहा है आपकी साइट के लिए रजिस्टर करने के लिए, तो भी अपने मित्रों कि अपनी वेबसाइट के लिए में धुन कर सकते हैं और वास्तव में रजिस्टर, में प्रवेश करें, और चारों ओर खेलने और अपने कोड में गलती खोजने की कोशिश की, और अपनी वेबसाइट में कीड़े खोजने के लिए प्रयास करें। और वे आसानी से रजिस्टर करेंगे प्रभावी ढंग से खुद को जोड़ने, कोड के माध्यम से आप अपने डेटाबेस के लिए लिखें। उदाहरण के लिए, यह एक त्वरित स्क्रीनशॉट है क्या का एक डेटाबेस की तरह लग सकता है। इस में से एक से किया गया था पिछले साल के solutions-- इस एक मिनी एक्सेल की तरह है हमारे डेटाबेस में संग्रहीत, फ़ाइल, MySQL के नामक इस सॉफ्टवेयर में संग्रहीत। बाएं हाथ की तरफ, मैं जाहिरा तौर पर है हर यूजर को एक अद्वितीय संख्या दी। दूसरे स्तंभ में, मैंने दिया है हर कोई एक उपयोगकर्ता अपने ही name-- उनमें से। और दाहिने हाथ की ओर, मैं उन्हें एक हैश दिया है। अब यह वास्तव में एक पासवर्ड है, लेकिन यह एक सादा पाठ पासवर्ड नहीं है। यह है, एक एन्क्रिप्टेड पासवर्ड है आप करेंगे, या एक हैश पासवर्ड। जो कि हम लंबे समय से पहले करने के लिए वापस आ जाएगा। लेकिन क्या आपने कभी पढ़ा है कैसे के बारे में एक लेख कुछ बैंक या कुछ को अपने पासवर्ड वेबसाइट, समझौता किया गया है हो सकता है यह आम तौर पर दो चीजों में से एक हो सकता है। तो यह छह उपयोगकर्ताओं की सिर्फ एक अंश है। तुम सब अब समझ सकते हैं हैकिंग या खुर के माध्यम से बाहर हमारे छह लोगों के पासवर्ड क्या कर रहे हैं। लेकिन क्या आपने कभी मिल गया है, तो एक चेतावनी या माफी एक कंपनी या वेबसाइट से यह कहते हुए, क्षमा करें, एक हैकर हमारे डेटाबेस में तोड़ दिया आप शायद बदलना चाहिए अपने पासवर्ड, इसका क्या मतलब हो सकता है? खैर, एक, मतलब हो सकता है कंपनी अधिक मूर्खता कर दिया गया है और अपने पासवर्ड भंडारण किया गया है इस तरह से एक कॉलम में, अनएन्क्रिप्टेड। कौन सा विरोधी का मतलब है, जो, डेटाबेस चुराया सचमुच अपने जानता है उपयोगकर्ता नाम और पासवर्ड। यही कारण है कि सबसे ज्यादा संभव परिदृश्य है। और अगर आप पी-सेट में देखेंगे के रूप में सात से बचने के लिए इतना आसान है। बिल्कुल कोई बहाना वहाँ उस के लिए है आज के इंटरनेट में मूर्खता के रूप में। Two-- और हम कुछ लेख मिल जाएगा यह अभी भी तथ्य यह है कि गवाही देने के लिए nonetheless-- होता है, दो, शायद विरोधी डेटाबेस के इस संस्करण चुरा लिया। कौन सा है, अभी भी बुरी तरह से है क्योंकि अब वे मुझे छह ग्राहकों को पता है कि, मैं उपयोगकर्ता नाम पता उन छह ग्राहकों की, और मैं एन्क्रिप्टेड जानते संस्करणों, या hashed संस्करणों, उन छह ग्राहकों के पासवर्ड की। आप में से किसी लेकिन जो हो सकता है कर लिया [? हैकर 2?] आप पासवर्ड फटा, या लिया जहां एक समस्या के उस संस्करण को देखो सेट, क्यों अभी भी एक छोटे चिंताजनक यह है विरोधी अपने हैश जानता है पासवर्ड? दर्शकों: क्योंकि वे सकता है पूरे शब्दकोश दर्ज हैश समारोह में। और अपने पासवर्ड एक शब्दकोश है, तो शब्द, [? वे सिर्फ match-- सकता है?] डेविड मालन: वास्तव में, विरोधी बस आप में से कुछ की तरह है, कोड लिख सकते हैं [के लिए किया था? हैकर?] 2, आप पर पुनरावृति जिससे शब्दकोश में शब्द के सभी, एक या सभी संभव संयोजनों जेड के माध्यम से और nine-- के माध्यम से एक जो एक बहुत की तरह लगता है, और यह है। लेकिन एक कंप्यूटर के लिए, यह बहुत रफ़ू तेज है। और वास्तव में, यह था कि का केंद्र [? हैकर 2,?] था कि सामान लेने के लिए सचमुच, इस तरह दिखता है और रिवर्स इंजीनियर क्या यह वास्तव में था। हम कैसे कर सकते हैं तो हम में देख लेंगे और अधिक कुशलता से इस दुकान। शुक्र MySQL में पता चला है, डेटा प्रकार होने के लिए वहां जा रहे हैं। और के बारे में मजेदार भागों में से एक डेटाबेस डिजाइन, ईमानदार हो, वास्तव में खुद के लिए तय है कैसे आप डेटा का प्रतिनिधित्व करना चाहिए? आप के रूप में एक फोन नंबर का प्रतिनिधित्व करना चाहिए एक बड़ी संख्या है, या एक लंबे समय की तरह एक पूर्णांक,? या आप वास्तव में यह क्या करते हो वर्ण के एक दृश्य के रूप में? और बहुत ही नहीं किया जा सकता इस के गैर तुच्छ प्रभाव डालता है। वास्तव में, एक जल्द से जल्द, आनन्द सार्थक कहानियों मार्क जुकरबर्ग का निर्माण किया गया है, जब फेसबुक, यह मूल रूप में लिखा गया था, और अभी भी काफी हद तक PHP में लिखा है। और सबसे बड़ी चुनौतियों में से एक वे जल्दी स्केलिंग था पर सामना करना पड़ा। वे बाद स्कूल में जोड़ रखा है जब स्कूल के बाद, मेरी जानकारी के लिए, मूल समाधानों में से एक कॉपी और पेस्ट करने के लिए अनिवार्य था कुछ डेटाबेस और कोड के कुछ, हार्वर्ड था कि इतने अपने खुद के सर्वर पर चल रहा है, और एमआईटी अपने खुद के सर्वर पर चल रहा था। और यह क्यों था, के लिए कुछ आप में से कौन याद हो सकता है, आप दोस्तों के नहीं हो सकता था अन्य नेटवर्कों में। आप शायद कम से दोस्त नहीं है 10 या तो साल पहले एमआईटी या हार्वर्ड, लेकिन आप नेटवर्क अवधि नहीं कर सका आंशिक रूप से उस कारण के लिए। और के लिए सबसे बड़ी चुनौतियों में से एक मार्क और फेसबुक जैसी कंपनियों के लिए वास्तव में सैकड़ों संभाल रही है और हजारों और लाखों प्रति सेकंड अनुरोधों की। तो बातें हम शुरू करेंगे इस सप्ताह के बारे में बात कर वास्तव में करने के लिए सार्थक होने जा रहे हैं अच्छा सॉफ्टवेयर लेखन, और लोकप्रिय सफल उपकरण है कि उपयोगकर्ताओं के बहुत संभाल कर सकते हैं। इसलिए हम चीजों के बारे में बात करेंगे अनुक्रमण और खोज की तरह, लेकिन लगता है कि यह आज के लिए है। हम बुधवार को अधिक के लिए आप देखेंगे। [संगीत - "Seinfeld" थीम] डेविड मालन: आप के लिए कर सकते हैं यह, और इसे से घटाना। और आप के साथ रहना नहीं करना पड़ेगा स्मृति के कुछ पूर्व निर्धारित राशि। खैर, यह है कि क्या कहा जा रहा है? स्पीकर 1: ठीक है, क्या हो रहा है? स्पीकर 2: तुम क्या मतलब है? उन्होंने कहा कि एक व्याख्यान दे रही है। डेविड मालन: और हम एक का उपयोग कर सकते हैं समारोह memory-- को malloc बुलाया स्पीकर 1: क्यों अपने हथियार नहीं बढ़ रहे हैं? स्पीकर 2: ठीक है that's-- तुम्हें पता है, यह सामान्य है। वह बस की तरह बस बात ये है बड़े सॉस वहाँ फांसी। स्पीकर 1: यह सामान्य है? स्पीकर 2: हाँ, मुझे लगता है कि हम बस गलती से वह मान superglue के साथ उसकी दुर्गन्ध बदल दिया।