डेविड मालन: ठीक है, हम वापस आ रहे हैं। रोमांचक के लिए तो निष्कर्ष, हमारे पिछले अनुभाग वेब प्रोग्रामिंग, जो मैं पर हम एक सामान्य शब्द के रूप में उपयोग लगा कुछ शेष विषयों पर कब्जा करने के लिए। के अंत में तो दिन, हम वास्तव में क्या करेंगे हाथ पर वेब प्रोग्रामिंग का एक छोटा सा जावास्क्रिप्ट नामक एक भाषा के साथ। और मुझे लगता है कि हम देख लेंगे छवियों से संबंधित कुछ पर और कुछ की खोज चुपके से एक छवि में छिपा हुआ है, और भी गूगल पर एक नज़र रखना मैप्स एपीआई, एप्लीकेशन प्रोग्रामिंग इंटरफेस है, कुछ के रूप में सॉफ्टवेयर के प्रकार का प्रतिनिधि कि तेजी से और आज स्वतंत्र रूप से उपलब्ध। लेकिन क्यों हम एक नज़र रखना नहीं है इस दुनिया के लिए एक घटक पर हम एक तरह से किया गया है कि दी ले मौजूद है कुछ समय के लिए, एक डेटाबेस। पिछले दिन के लिए और एक आधा हम ग्रहण किया है हम एक डेटाबेस के लिए उपयोग किया है, लेकिन लगता है कि एक डेटाबेस में क्या समस्या हल करता है? यह हमारे लिए क्या करता है? यह क्या है? दर्शकों: [सुनाई] डेविड मालन: सभी जानकारी रखती है, ठीक है, और क्या जानकारी के प्रकार आप इसे में डाल सकता है? दर्शकों: [सुनाई] डेविड मालन: कोई भी जानकारी आप इसे में डाल, तो आप वापस मिल जाएगा। यह सच है। और एक ठेठ वेब आधारित साइट या वेब पर आवेदन, सूचना किस प्रकार की है, विशेष रूप से, आप में डाल सकता है? दर्शकों: [सुनाई] डेविड मालन: उपयोगकर्ता। तो एक उपयोगकर्ता क्या है? दर्शकों: [सुनाई] डेविड मालन: ठीक है, पंजीकृत साइट के उपयोगकर्ता। और यह करने के लिए क्या मतलब है दुकान उपयोगकर्ताओं की जानकारी? क्या एक उपयोगकर्ता composes? एक उपयोगकर्ता क्या है? दर्शकों: [सुनाई] डेविड मालन: हाँ, व्यक्तिगत डेटा, और मुझे अच्छा लगा। के और अधिक सटीक हो। तो एक उपयोगकर्ता आमतौर पर एक नाम है, एक उपयोगकर्ता और क्या हो सकता है? दर्शकों: [सुनाई] डेविड मालन: एक addr-- ठीक है, इसलिए प्रथम नाम, अंतिम नाम। अच्छी बात है। वास्तव में, हम तय कर लो कि, क्योंकि यह जा रहा है के लिए एक अवसर के लिए खोलने के लिए चर्चा, अभी भी आगे। प्रथम नाम, अंतिम नाम, लिंग। किसी प्रकार की एक आईडी। और क्या? मैंने पहले कुछ और ही है, भी सुना। एक ईमेल, डाक पता। तो चलो वहाँ थामने के लिए और अब विचार करें नहीं क्या हम डेटाबेस में भंडारण कर रहे हैं, but-- और नहीं क्यों, यह शायद है, क्योंकि स्पष्ट है कि एक बार जब आप एक उपयोगकर्ता रजिस्टर, आप उन्हें कुछ समय के लिए याद रखना चाहते हैं। आप यह नहीं करना चाहती सिर्फ रैम में संग्रहित किया और इतने forgotten-- किया चलो कैसे पर ध्यान केंद्रित करते हैं। यह पता चला है कि में डेटाबेस की दुनिया, वहां इन दिनों कम से कम दो प्रकार के। कुछ है, एक एसक्यूएल डाटाबेस बुलाया स्ट्रक्चर्ड क्वेरी लैंग्वेज, या, चतुरता का नाम है, NoSQL, जो एसक्यूएल नहीं है। एक और दूसरा है के उदाहरण क्या हो सकता है एक वस्तु उन्मुख कहा जा, या एक वस्तु की दुकान, एक डेटाबेस कि वस्तुओं भंडार है, और नहीं, बहाना मुझे, के रूप में हम जल्द ही मिलते हैं, पंक्तियों होगा। इसलिए हम पर बस एक पल के लिए ध्यान केंद्रित करेंगे इनमें से पहला है, अर्थात्, एक एसक्यूएल डेटाबेस, अगर यह केवल क्योंकि इतना परिचित पहले से ही किसी को भी जो एक्सेल इस्तेमाल किया गया है या गूगल या एप्पल शीट्स नंबर या किसी भी मानक स्प्रेडशीट प्रोग्राम, या, यों, या अधिक sophisticatedly, माइक्रोसॉफ्ट की तरह कुछ Access या ओरेकल या MySQL या PostgreSQL, जो सभी के लिए कार्यान्वयन के लिए उत्पाद नाम हैं निम्नलिखित विचार की। एक रिलेशनल डेटाबेस बस है कुछ पंक्तियों और स्तंभों है। और पंक्तियों और स्तंभों से, मैं सचमुच कुछ मतलब इस तरह, तो हम कहाँ हो सकता है एक क्षेत्र है और यहाँ पर अपने प्रकार का नाम है। और वास्तव में, मुझे जाने अब इन नक्शा करने के लिए शुरू करते हैं। तो वास्तव में, मैं नहीं जानता यही कारण है कि मैं एक अलग चार्ट आकर्षित किया। चलो इस सरल रखो। हम यहीं है हमारे मेज, जहां की शुरुआत इस क्षेत्र का नाम है और इस डेटा प्रकार है, और प्रकार से मैं निम्नलिखित मतलब है। यह एक संख्या है, यह एक स्ट्रिंग है एक शब्द की तरह एक छोटी स्ट्रिंग, यह एक पैरा है, यह है बाइनरी डेटा, एक छवि की तरह? और हम सिर्फ इस तंग के अलावा सिर्फ एक पल के लिए। तो पहला नाम, नंबर, स्ट्रिंग, text-- का बड़ा हिस्सा दर्शकों: [सुनाई] डेविड मालन: हाँ, तो स्ट्रिंग। और एक डेटाबेस के संदर्भ में, हम करेंगे आम तौर पर इस चार क्षेत्र कहते हैं। मैं बस अभी के लिए चार कह देंगे लेकिन हम कर रहे हैं एक पल में इस परिष्कृत करने के लिए जा रहा है। चरित्र क्षेत्र। अंतिम नाम शायद ही है। लिंग? पुरुष या महिला, इसलिए यह एक चार क्षेत्र हो सकता है। यह या तो बोली हो सकता है, गंदें शब्द बोलना "पुरुष" या भाव, गंदें शब्द बोलना "महिला" या यह मीटर या एफ हो सकता है। आप और अधिक समावेशी होना चाहते हैं, आप एक तिहाई मूल्य आवश्यकता हो सकती है या पूरी तरह अन्य क्षेत्र में किसी तरह का। और हां आप सही गलत इस्तेमाल कर सकते हैं। क्षेत्र पुरुष कहा जा सकता है, और तो आप सही है या गलत कह सकते हैं। लेकिन यह जरूरी नहीं है पर कब्जा जानकारी तुम चाहते हो सकता है सब के सब। तो यह जाता है कि वहाँ एक और प्रकार है बाहर क्षेत्र के यहाँ उपयोगी हो सकता है कि एक ठेठ डेटाबेस में, एक बुलाया इनम, जहां यह एक चरित्र क्षेत्र है, लेकिन आप, डिजाइनर, के लिए मिलता है संभव मूल्यों गिनना, की तरह बोली, गंदें शब्द बोलना "पुरुष", बोली, गंदें शब्द बोलना "महिला" और बहुत आगे है। तो यह है कि जो कुछ भी मूल्य अपने डेटाबेस में है, वास्तव में चरित्र आधारित है, लेकिन यह उन मूल्यों में से एक हो गया है। हम शायद एक नहीं चाहेगा प्रथम नाम या अंतिम नाम के लिए इनम। अन्यथा हम होगा नाम के रूप में गणना करने के लिए, सचमुच हर, से निकला संभव प्रथम नाम और अंतिम नाम। ठीक है, तो आईडी क्या एक आईडी होना चाहिए? हाँ, तो शायद एक नंबर। तो चलो के साथ रहो अब के लिए है कि, नंबर। और संख्या से, संख्या है अब एक छोटे से बहुत व्यापक। दूसरे के अंत के लिए दिन, मैं हम की तरह लग रहा एक छोटे से अधिक सटीक होना चाहिए। संख्या की तरह हो सकता है, यह 1.236 ऐसा कुछ हो सकता है। और कहा कि शायद नहीं है हम एक आईडी से क्या मतलब। क्या हम शायद एक आईडी से क्या मतलब है? दर्शकों: [सुनाई] डेविड मालन: ठीक है, ओह, तो शायद यह भी एक नंबर नहीं है। हो सकता है कि यह वास्तव में एक अद्वितीय पहचानकर्ता है कि एक स्ट्रिंग, एक उपयोगकर्ता नाम की तरह है। तो बिल्कुल हो सकता है। मैं किसी को शायद लगता है संख्यात्मक मतलब है, यद्यपि। तो चलो उस के साथ रहते हैं। नंबर किस तरह का? क्या है एक अधिक एक पूर्णांक precise--। तो एक नंबर 0 की तरह, 1, 2, 3, इसलिए हम इस एक पूर्णांक फोन करता हूँ। और फिर भी, मैं कर सकता nitpicking किया है, यह नहीं वास्तव में सिर्फ एक सामान्य पूर्णांक आप चाहते हैं। तुम्हें शायद नकारात्मक मूल्यों नहीं करना चाहते, सिर्फ इसलिए, यह सिर्फ अजीब लगता है। आपको शायद यह सकारात्मक integers चाहते हैं। तो अगर आप भी व्यक्त कर सकते हैं एक डेटाबेस में है कि, लेकिन अब के लिए, हम पूर्णांक कहूँगा। ईमेल? यह शायद एक क्या just-- है? दर्शकों: [सुनाई] डेविड मालन: यह एक ईमेल है, लेकिन लगता है कि वर्ण, है ना? यह सिर्फ एक कायरता चरित्र है की तरह एक "पर" प्रतीक या कुछ और, लेकिन यह अभी भी एक चरित्र क्षेत्र है। और डाक पता? चरित्र क्षेत्र। तो यह है कि एक अच्छी शुरुआत है, लेकिन चलो अब एक छोटे से अधिक सटीक हो। तो यह पता चला है कि में एक डाटाबेस, आप अक्सर और अधिक परिष्कृत के ऊपर एक विकल्प है इन सब बातों के संस्करणों। वास्तव में, एक ठेठ एसक्यूएल डाटाबेस में, एसक्यूएल, या अधिक आम तौर पर, रिलेशनल डेटाबेस, पंक्तियों के साथ डेटाबेस और स्तंभों, आप अक्सर न केवल के प्रकार निर्दिष्ट करने के लिए मिलता है field-- मुझे कुछ कमरे here-- बनाते हैं लेकिन यह भी लंबाई। तो कितनी देर तक एक पहला नाम है? मुझे लगता है कि, डी-ए-V-मैं-डी। ठीक है, यह मुझे मिल गया शायद सिर्फ आधे की तरह नाराज कमरे में लोगों की, ठीक है, के बाद से अपने नाम पांच से रह रहे हैं पत्र है, तो पांच एक छोटे स्वार्थी लगता और अनुभवहीन है, तो एक बेहतर मूल्य क्या है? 10, सब ठीक है, और मुझे लगता है कि हम कमरे में ठीक कर रहे हैं। 13? 30? मैं क्यों नहीं लेते पहले के दृष्टिकोण जब हम सरणियों और स्मृति के बारे में बात कर रहे थे? क्यों कि मैं सिर्फ 1,000 की तरह नहीं कहते? कोई भी नाम चल रहा है 1,000 से अधिक समय होने के लिए। पीछे धकेलना। दर्शकों: [सुनाई] डेविड मालन: हाँ, यह है बेकार, ठीक है, विशेष रूप से केवल पांच या 10 सबसे नामों रहे हैं या 15 वर्ण, कि बहुत बेकार है। तो तुम जानते हो क्या? यह एक कठिन सवाल की तरह है। अब, हम निश्चित रूप से अंग्रेजी का विश्लेषण कर सकते हैं और किसी भी अन्य भाषा के नाम और यह पता लगाने की है, ठीक है, क्या है average-- औसत सच नहीं है us-- मदद क्या अधिकतम है शायद हम वास्तव में क्या चाहते हैं। लेकिन यह पता चला है कि हम भी है प्रकार यहां पर कुछ पसंद है। एक ठेठ एसक्यूएल डाटाबेस में, आप एक चार क्षेत्र कहा जाता है कुछ और यह भी एक varchar, वी-ए-आर, चर चार क्षेत्र के लिए। और अंतर यह है। एक चार क्षेत्र, आप डिजाइनर, अग्रिम में निर्दिष्ट करने के लिए क्षेत्र की सटीक लंबाई। तो शायद पहला नाम जैसे 20 तरह के सुरक्षित महसूस करता है। करने के लिए कुछ googling क्या हो सकता है देखना है कि यदि पर्याप्त वास्तव में सुरक्षित है। वहाँ शायद 21 के साथ एक नाम है वर्ण, लेकिन अब के लिए, मान लीजिए 20 सुरक्षित है। एक चार क्षेत्र मतलब होगा एक डेटाबेस में आप 20 और हमेशा 20 अक्षरों का उपयोग कर रहे हैं। अब अगर यह सिर्फ डी-ए-V-मैं-डी, 15 लोगों में से है बस खाली पात्रों होने जा रहे हैं, लेकिन आप अभी भी सभी 20 बाइट्स का उपयोग कर रहे हैं। एक varchar क्षेत्र, इसके विपरीत, इसका मतलब है स्ट्रिंग करने के लिए 20 अक्षरों का होना चाहिए लेकिन यह केवल यदि पांच, आप केवल उपयोग करने के लिए जा रहे हैं पांच, छह या शायद एक के लिए अंत में विशेष मूल्य, कि 0 की तरह हम उस पर चर्चा की एक चरित्र के अंत का प्रतीक स्मृति में अनुक्रम। तो जब आप सोचते हैं आप चार चुन सकते हैं varchar बनाम, कि व्यापार बंद को देखते हुए? चार है कि कई वर्ण, varchar का उपयोग करता है कि कई वर्णों से अधिक का उपयोग करता है। दर्शकों: [सुनाई] डेविड मालन: ठीक है, जब आप जानते हैं स्ट्रिंग की लंबाई बहुत सम्मोहक सिर्फ चार, क्योंकि उपयोग करें यदि तुम्हें पता है, बस इसे नीचे रख। और हो सकता है कि एक ज़िप के लिए सच है कोड, अमेरिका में, कम से कम, 02138, यह हमेशा पाँच होने जा रहा है आप जब तक पात्रों पानी का छींटा चार जोड़ें। लेकिन आप के लिए कुछ मूल्यों हो सकता है जो आप हमेशा लंबाई पता है। या हो सकता है राज्य के प्रतीकों, न्यू यॉर्क के लिए न्यूयॉर्क की तरह, और अमेरिका में मैसाचुसेट्स के लिए एमए। हो सकता है कि आप कुछ स्थितियों की क्या ज़रूरत है जहां कि पूरी तरह से उचित है, लेकिन लगता है कि तर्क से, क्यों कर रहे हैं हम भी इस overthinking? क्यों हम सिर्फ उपयोग नहीं करते varchar और फिर हम सिर्फ हूँ हमेशा वैसे भी दो अक्षरों का उपयोग करें, या हमेशा वैसे भी पाँच वर्णों का उपयोग करें? क्यों सिर्फ varchar नहीं बचा सब कुछ है, कि तर्क से? वहाँ एक पकड़ होना चाहिए। दर्शकों: [सुनाई] डेविड मालन: सका कुछ गलत लिखते हैं। तो यह सच है। लेकिन फिर भी, वे उपयोग नहीं कर सकते और अधिक स्मृति की तुलना में मैं आवंटित। मैं अब भी अंतिम है लंबाई पर कहते हैं, इसलिए वे गलती नहीं कर सकते उस गलती है, लेकिन एक अच्छा विचार। यह और अधिक सूक्ष्म है, लेकिन यह बहुत ही संबंधित है हमारी चर्चा करने के लिए, वास्तव में, सरणियों की और पहले लिंक सूचियों। यह एक डेटाबेस है कि पता चला है, अगर यह जानता मूल्यों के सभी कर रहे हैं कि एक निश्चित लंबाई की, भले ही उन मूल्यों के कुछ खाली कर रहे हैं, एक तरह से सौंदर्य की दृष्टि से खाली, डी-ए-V-मैं-डी और फिर 15 कारतूस, यह पता चला है कि हर यदि क्षेत्र में एक ही लंबाई है, एक सरणी की तरह ज्यादा अपने सामान के सभी था वापस वापस करने के लिए वापस करने के लिए वापस करने के लिए इतना है कि तुम सिर्फ प्लस 1 अगले करने के लिए मिल सकता है मूल्य, एक डेटाबेस तालिका में एक ही विचार है। अपने चरित्र के सभी हैं तार एक ही लंबाई हैं, आप क्या रैंडम एक्सेस कहा जाता है। सभी तारों के हैं लंबाई 20, आप बस नहीं है ऐसा प्लस 1 आप अभी क्या प्लस 20, प्लस 20, प्लस 20, प्लस 20, और तुम बहुत तेजी से स्क्रॉल कर सकते हैं या अपने डेटा के सभी के माध्यम से खोज। एक चर चार क्षेत्र, इसके विपरीत, हमेशा 20 वर्ण नहीं है। यह 20 और उसके बाद हो सकता है 15 और उसके बाद 19 और फिर 10, और इसलिए आप खोज करना चाहते हैं इसके माध्यम से, तुम नहीं कर सकते बस आँख बंद करके अगले एक को पाने के लिए 20 बाइट्स जोड़ें। तुम सचमुच के माध्यम से खोज करने के लिए क्योंकि डेटा संरचना के किनारे, अगर तुम जाएगा, प्रचंड है। यह एक तरह से में चला जाता है और बाहर आधारित स्ट्रिंग की वास्तविक लंबाई पर। तो जब आप के रूप में लंबाई, जानते करीम कहते हैं, एक चार क्षेत्र का उपयोग करें, क्योंकि आपको लगता है कि लाभ जा रहा है की दक्षता यह तेजी से के माध्यम से खोज करने के लिए सक्षम आप डेटा के लिए देख रहे हैं, अन्यथा एक चर का उपयोग करें। दुर्भाग्य से, मैं कोई अच्छा जवाब कितनी देर तक नाम होना चाहिए, लेकिन ऐसा कुछ के लिए एक नाम है, मैं कहूँगा एक varchar आम है क्योंकि यह नहीं हो रहा है हर किसी के लिए एक निश्चित लंबाई होने के लिए। 20, मैं नहीं जानता, 20 एक छोटे से तंग लगता है। के सिर्फ 50, 50 कहते हैं। यह वास्तव में आप खर्च नहीं करता है कि ज्यादा 50 के बजाय 40 में कहने के लिए और अधिक, लेकिन कुछ बिंदु पर, आप की जरूरत है एक निर्णय फोन बनाने के लिए। बहुत आम है, स्पष्ट रूप से, के लिये [? ऐतिहासिक?] कारण है, भले ही यह अत्यधिक है, ,, 255 कहने के लिए है, क्योंकि कुछ समय पहले लोकप्रिय डेटाबेस प्रणालियों में, जैसे MySQL, एक मुक्त खुला स्रोत उपकरण कि कंपनियों के एक बहुत की तरह भी फेसबुक का इस्तेमाल किया, इस अधिकतम डिफ़ॉल्ट था इसलिए लोगों को बस के साथ चला गया। तो अनुचित नहीं है, लेकिन हम करेंगे एक छोटे से अधिक अंतर्ज्ञान का उपयोग और कहते हैं, यकीन है कि 50, कि शायद एक छोटे से अत्यधिक। लिंग, मैं इनम तरह करते हैं, और इसलिए हम इसलिए कर सकते हैं नर हो या मादा गिनना, या हो सकता है और अधिक कुशलता से, मीटर या च या कुछ अन्य प्रतीक है, लेकिन इनम वहाँ एक अच्छा विकल्प की तरह लगता है। स्पष्ट होना, लिंग सिर्फ एक varchar हो सकता है, और हम बस सब कर सकता है के रूप में अच्छे लोग सहमत हैं, हमेशा वहाँ एक ही मूल्यों में डाल दिया। पुरुष या महिला या whatnot। लेकिन समस्या तो यह है कि हम कर सकते है एक गलती करते हैं, के रूप में [सुनाई] प्रस्तावित एक अलग संदर्भ में पहले। हम एक गलती करते हैं, तो हम मिल सकता है हमारे डेटाबेस में गलत मान। तो क्या डेटाबेस के बारे में अच्छा है Oracle और MySQL और अन्य लोगों की तरह, कि आप यह पिछले है रक्षा जहां की परत अपने डीबीए, डेटाबेस व्यवस्थापक, जो कोई भी हम जैसे इस तालिका को डिजाइन किया गया है मौखिक रूप से कर रहे हैं, डाल सकता है एक इनम जगह में है कि निर्दिष्ट द्वारा उस के खिलाफ की रक्षा करता है पुरुष, महिला, और तो कोई नहीं कोई और नहीं प्रोग्रामर गलती कर सकते हैं किसी भी अन्य मूल्य डालें। तो यह एक अच्छी बात होगी। यह एक विशेषता है। तो एक आईडी, एक अंकीय आईडी इसे संभालने, शायद एक सकारात्मक पूर्णांक होना चाहिए। और हम कभी कभी की क्या ज़रूरत है लंबाई चर्चा करने का अवसर। आप आम तौर पर नहीं होता यहाँ एक संख्या निर्दिष्ट, आप के बजाय निर्दिष्ट करेगा यह एक पूर्णांक, या एक बड़ी int है, वे कर रहे हैं के रूप में आम तौर पर कहा जाता है। लेकिन आम तौर पर, एक पूर्णांक हो सकता है, के, का कहना है कि 4 बाइट्स करते हैं। और अगर यह 4 बाइट्स है, कि कितने बिट्स है? दर्शकों: [सुनाई] डेविड मालन: 32 बिट। इसलिए हम में कितने उपयोगकर्ताओं हो सकता है हमारे डाटाबेस के वे सभी एक आईडी है और इस आईडी अनूठा हो गया है? 32 बिट हम पैटर्न का मतलब एक के, दो, तीन, चार, five-- शून्य की तो कितने अलग पैटर्न और लोगों को आप अगर वहाँ 32 हैं हो सकता है? यही कारण है कि के रूप में एक ही बात है पूछ क्या 32 के लिए दो है? यह एक बड़ी संख्या है कि मैं काफी ठीक से नहीं कर सकते हैं, लेकिन मुझे पता है कि यह मोटे तौर पर 4 अरब है। तो यह अपने डेटाबेस तालिका का मतलब कर सकते हैं चार अरब उपयोगकर्ताओं है और यह बात है। तो यह एक दिलचस्प है डिजाइन निहितार्थ। कंपनियों में से एक सभ्य संख्या का फैसला किया है, शायद इतना नहीं अपने उपयोगकर्ताओं के लिए मेज, क्योंकि होने 4 अरब उपयोगकर्ताओं को एक दुर्लभ समस्या है। यह एक फेसबुक शैली की तरह है समस्या है, न कि एक विशिष्ट कंपनी की समस्या है। लेकिन आप हस्तांतरण लॉग है हो सकता है अगर या कि लगातार डेटा को किसी तरह का अपने डेटाबेस में लिखा जाता है बिल्कुल अरबों हो सकता है और पंक्तियों के अरबों, और आप इसके लिए एक पूर्णांक उपयोग करते हैं, क्या जैसे ही होने जा रहा है आप पंक्ति को नंबर 4 अरब मिलता है और फिर आप सम्मिलित करने का प्रयास 4 billionth और 1, इतनी बात करने के लिए? मैं नंबर एक सा सरल बनाने रहा हूँ। तुम वापस कटौती कर सकते हैं, मैं तुम्हें क्या मतलब यह किसी भी तरह संभालना है। और क्या एक कंप्यूटर आम तौर पर करते हैं, आज सुबह से भी इसके बारे में सोचते हैं, 4-बिट मूल्य नहीं है, तो 1 की तरह, 1, 1, 1, जो, बस सुबह टाई करने के लिए एक साथ दोपहर को, क्या इस संख्या को बाइनरी में प्रतिनिधित्व करता है? ठीक है, हम इसे आसान बना देंगे। इस संख्या में क्या करता है द्विआधारी में प्रतिनिधित्व करते हैं? ठीक है, हम इसे आसान बना देंगे, क्या इस द्विआधारी में प्रतिनिधित्व करता है? दर्शकों: तीन। डेविड मालन: तीन, क्योंकि हम लोगों को column-- [हँसी] वाह! हम लोगों कॉलम था और twos स्तंभ। तो यह है कि लगता है, वास्तव में, हमारे [? रियासत?], 32 बिट नहीं थे लेकिन यह दो टुकड़े थे, हम कर सकते हैं उपयोगकर्ता संख्या 0, 1, 2, 3 से गिनती, और फिर हम किस तरह का हो वापस उपयोगकर्ता 00 को फिर से। तो यह क्या आम तौर पर होता है। क्या आपने कभी सुना है expression-- शायद नहीं है, लेकिन अगर आप have-- पूर्णांक अतिप्रवाह है, जहां आप अपने बिट्स के सभी flipping रखने सबसे बड़ी संभव मूल्यों होने के लिए, और फिर आप बिट्स से बाहर रहे हैं, क्या आम तौर पर क्या होगा? मैं 00 क्यों कहते हो? खैर, यह तीन है। मैं कैसे 4 प्रतिनिधित्व करते हैं? मैं कैसे का प्रतिनिधित्व करते हैं बाइनरी में नंबर 4 के लिए? दर्शकों: [सुनाई] डेविड मालन: One-- हाँ, 100 मत कहो प्रतिशत से, क्योंकि यह गलत है अर्थ, लेकिन 1-0-0। ताकि संख्या 1-0-0 वास्तव में है सही है, लेकिन आप केवल दो टुकड़े है, क्या तुम सच में क्या किया है? आप 00 से अधिक लुढ़का है। और वास्तव में, कि क्या होगा है। असल में, आप सोच सकते हैं यह अधिक परिचित के बारे में। यदि आपको याद है, क्या है, 16 साल पहले, दुनिया जब अंत करने वाला था Y2K समस्या हुआ। ऐसा क्यों था? वैसे ज्यादातर कंप्यूटर, के लिए उचित निर्णय, इस तरह की संख्या के संचय कर रहे थे वर्ष 1975 या वर्ष 1999 सिर्फ दो अंक का उपयोग करके कंप्यूटर की स्मृति में। तो ज़ाहिर है, क्या होता है जब आप वर्ष 2000 के लिए मिलता है, आप बल्कि इस लिए जाना है, या, हाँ। तो आप वर्ष 2000 के लिए जाना है, लेकिन अगर आप केवल दो अंक में यह लग रहा उपयोग कर रहे हैं साल की तरह 00 और ताकि आप अधिक लुढ़का है। और इस वजह से सिस्टम का एक बहुत समय पर अद्यतन करने की जरूरत है। साथ तो यह है कि ने कहा, जैसी कंपनियों फेसबुक इस के खिलाफ चला। एक ही तरीका है संभाल करने के लिए तो स्थिति, सच में, यह आशा है। या करने के लिए रास्ता साफ इस स्थिति को संभालने यह पूर्वानुमान करने के लिए इसलिए यदि आप नहीं करते है बाद में परिवर्तन करने के लिए। तो 8 बाइट्स के बजाय, आप जानते हो क्या? मैं आगे की सोच होने जा रहा हूँ यहाँ, यह भले ही एक छोटी सी आशा है कि हम 4 अरब लिए जा रहे हैं और हमारी वेबसाइट पर 1 उपयोगकर्ताओं। लेकिन हम सिर्फ 8 बाइट्स का उपयोग करते हैं, या 64 बिट्स, जो आम तौर पर होगा एक बड़ा पूर्णांक बहुत तकनीकी कहा जाता है। और कहा कि सिर्फ मतलब है कि आप कर सकते हैं अपनी संख्या में और भी अधिक अंक। लेकिन यह एक महत्वपूर्ण है डिजाइन निर्णय, क्योंकि अगर आप एक नंबर का चयन है कि अर्थवत्ता की भी कुछ बिट्स है आप वास्तव में बना सकते हैं अपने सॉफ्टवेयर में एक बग। ठीक है, तो चलो लपेट ईमेल और डाक पते के साथ। तो ईमेल, कब तक करना चाहिए एक ईमेल पता हो सकता है? 50। मैं वास्तव में पता नहीं है, लेकिन यह है शायद ऐसा कुछ, क्योंकि अन्यथा कोई भी जा रहा है आप लिखते हैं, तो यह बहुत लंबा हो जाता है, तो 50, चलो अभी के लिए इसके साथ चलते हैं। डाक पता, कब तक कि क्या होना चाहिए? दर्शकों: [सुनाई] डेविड मालन: यह नहीं है सिर्फ एक ज़िप कोड, यद्यपि। डाक पता, मैंने सुना है। तो यह 1 Brattle स्क्वायर की तरह है, अल्पविराम, कैम्ब्रिज जन।, अल्पविराम, 02138। और वास्तव में, मुझे बस खींच एक छोटे वर्कशीट यहाँ अप। यह मानना ​​है ऐसा लगता है जैसे एक अवसर खो दिया। अगर हम 1 Brattle वर्ग है, अल्पविराम, एमए कैम्ब्रिज 02138, मुझे लगता है कि हम बेहतर कर सकते हैं सिर्फ डाक पता है। क्यों हम यह एक छोटा सा विस्फोट नहीं है? क्या मैं पर हो रही है? हम बजाय क्या होना चाहिए हमारे पंक्तियों यहाँ, शायद? दर्शकों: [सुनाई] डेविड मालन: हाँ, तो चलो यह street_number कहते हैं, और एक अंडरस्कोर सिर्फ एक आम बात है क्या एक अंतरिक्ष की तरह लग रहा है की तरह, लेकिन यह नहीं है, वास्तव में। स्ट्रीट, और फिर खेद city--? दर्शकों: [सुनाई] डेविड मालन: हम ऐसा कर सकता है। रेखा एक, दो लाइन। हम क्यों रखेंगे नहीं है यह अभी के लिए सरल, लेकिन लगता है कि पूरी तरह से है एक स्वीकार्य निर्णय। और फिर राज्य, और फिर चलो अब के लिए एक छोटी सी अमेरिका केंद्रित हो और सिर्फ ज़िप कोड करते हैं, सिर्फ इसलिए कि यह एक रोचक गलती करने के लिए नेतृत्व करेंगे या यहाँ समस्या है। तो यह है कि अब हमारा पता है लगता है। यह एक छोटे से अधिक है कि कष्टप्रद है हम इन सभी को और अधिक क्षेत्रों है, लेकिन अब हम टैग कर सकते हैं एक छोटी चीजें बेहतर है। तो अब गली नंबर शायद एक चार नहीं होना चाहिए, यह होना चाहिए? यह क्या होना चाहिए? दर्शकों: [सुनाई] डेविड मालन: हो सकता है, एक नंबर फिर एक पूर्णांक की तरह? एक बड़ा पूर्णांक? आप शायद नहीं रहते 4 अरब मुख्य सड़क पर या ऐसा कुछ भी पागल। तो पूर्णांक शायद है ठीक है, लेकिन किसी को भी है कभी एक पते पर रहते थे जैसे 1 ए Brattle स्क्वायर, या 1 और 1/2? ये बातें मौजूद हैं, दुर्भाग्य से, यहां तक ​​कि अगर तुम वहाँ नहीं रहता है, वहाँ इन विसंगतियों हैं फ्लैट 1 ए, 1 बी, 1 सी की तरह। तो क्या आप जानते हैं कि क्या है, हम शायद पूर्णांक के साथ नहीं जाना चाहिए, अन्यथा हम जा रहे हैं कुछ बिक्री खोने के लिए। चार क्षेत्र, हो सकता है? मैं कितनी देर तक पता नहीं है। यह शायद नहीं होने जा रहा है कि लंबे समय से है, तो 10 या कुछ और। कोई भी लिख रहा है एक लंबे समय तक नंबर, हो सकता है। लेकिन फिर, हम शायद चाहिए कि अधिक लगा दे। हो सकता है, गूगल कुछ अनुसंधान करते हैं, लेकिन हम अब के लिए हमारी हिम्मत के साथ जाना होगा। सड़कें, चार, 50, मैं नहीं जानता। कुछ बिंदु पर, कोई भी हो रहा है एक लिफाफे पर यह लिखने के लिए, भी है, तो वहाँ शायद है वहाँ कुछ ऊपरी सीमा। सिटी, एक ही है, यकीन है, इसलिए 50 वर्ण। राज्य, अब के लिए अमेरिका केंद्रित हो सकता है। तो यह इतनी तरह एक सूची हो सकता है, एक निर्णय फोन, राज्य के। यह दो पात्रों की तरह हो सकता है। तो वास्तव में, हो सकता है, मैं चार कह रखा है। मैं शायद varchar मतलब है, बस कुछ दक्षता के लिए, लेकिन हम करने के लिए वापस आ गया हूँ एक पल में उस निर्णय। राज्य के लिए लंबाई 2 की एक चार हो सकता है। अमेरिका में वे हैं, एमए की तरह हैं, मैसाचुसेट्स, न्यूयॉर्क, न्यू यॉर्क, न्यू जर्सी, न्यू जर्सी, और बहुत आगे है। तो यह है कि कम से तय किया जा सकता है। वाशिंगटन डीसी के लिए डीसी। लेकिन मुझे लगता है, ओलिवर, आप एक और दृष्टिकोण का प्रस्ताव रखा। दर्शकों: [सुनाई] डेविड मालन: हाँ, तो यह एक है छोटी सी में टाइप करने के लिए कष्टप्रद है, लेकिन एक इनम अधिक मतलब हो सकता है, इस तरह से है, क्योंकि अमेरिका में कम से कम, आप गिनना सकता है अगर उबाते, लेकिन आप इसे अपने डेटाबेस में सिर्फ एक बार करना और फिर कभी नहीं के बारे में सोचने के लिए है यह सभी 50 दो-वर्ण कोड। तो मैं इनम पसंद है। वहाँ उस के साथ रहना करते हैं, क्योंकि यह एक तरह से अधिक कठोरता लागू करता है। और फिर कोड ज़िप? मुझे लगता है कि एंड्रयू उस पर एक सोचा था दर्शकों: [सुनाई] डेविड मालन: हाँ, पांच या नौ। चलो बस इसे सरल रखने के चलो। अभी के लिए पांच से करते हैं। लेकिन शायद मैं सिर्फ सकता है एक पूर्णांक, सही है? मैं कर सकता है, लेकिन क्या आपको पता है, मैंने बनाया इस गलती को एक बार, कुछ अर्थों में। सालों पहले, मैं से पलायन कर गया था माइक्रोसॉफ्ट आउटलुक जीमेल के लिए, और आउटलुक के निर्यात का एक तरीका है एक एक्सेल फाइल के रूप में अपने संपर्कों के सभी, एक सीएसवी फ़ाइल, अल्पविराम मूल्यों फ़ाइल अलग कर दिया। और मैं गलती की है, मैं इसे डबल क्लिक करने के बारे में सोच, एक बार मैं निर्यात करने के लिए, डाउनलोड सुनिश्चित करें कि यह देखा के रूप में मैं उम्मीद। मुझे बचाने के लिए या जाने मारा गया होगा में लात या कुछ और ऑटो को बचाने के। क्योंकि जब मैं तो आयात यह जीमेल में, यह सब काम किया। लेकिन साल के लिए, इस दिन के लिए, और मैं इस पाँच किया था, 10 साल पहले, मैं अभी भी दोस्त हैं, जो लग रहा है पता है कि इस तरह दिखेगा। क्यूं कर? दर्शकों: [सुनाई] डेविड मालन: यह ले लिया 0, ठीक है, बल्कि यह, पूरे ज़िप कोड के रूप में लिया एक नंबर, और इसलिए यह है एक अग्रणी 0 जिसका अर्थ है यह कोई अर्थ नहीं है। और तो 2138 मेरा ज़िप कोड हो रहा है। और यह, स्पष्ट है, एक कष्टप्रद एक्सेल सुविधा जिससे मैं डिफ़ॉल्ट रूप से लगता है, यह सिर्फ करने का मतलब है, भले ही पाठ हो, माइक्रोसॉफ्ट एक्सेल फैसला करता है, मुझे उपयोगी हो जाने दो, और ओह, मैं केवल संख्या को देखते हैं। की संख्या के रूप में इन का इलाज करते हैं। और यह अग्रणी शून्य truncates। मैं भगवान की कसम, हर जोड़े महीनों से मैं एक पते मिल जाए, और ओसीडी का एक तरह से बाहर है, मैं वापस जाने के लिए में और 0 से जोड़ने के लिए, यहां तक ​​कि मैं कभी नहीं यद्यपि लोगों पत्र या कुछ भी भेज सकते हैं। लेकिन मैं अभी भी इस के अवशेष खोज रहा हूँ। तो यह कहने के लिए है, यह एक अच्छा विचार है? नहीं, ठीक है, क्योंकि किसी को भी मैसाचुसेट्स, इस क्षेत्र में, एक हे उन्हें अग्रणी किया जा रहा है। तो चलो तरह से चलते हैं चार, शायद, पांच। और यहाँ, हम महसूस करते हैं एक इनम और हम इस्तेमाल कर सकते हैं 10,000 गिनना कर सकता है संभव ज़िप कोड, लेकिन लगता है कि लगता है यह शायद की तरह की, जैसे, लाभ एक लाइन पार। आप निवेश करने की है, तो यह है कि अपने डेटाबेस में ज्यादा डेटा कुछ के खिलाफ की रक्षा के लिए। तो चार आप टाइप कर सकता है एहसास हुआ अपने ज़िप कोड के रूप में एच-ई-एल-एल-ओ में, जो नहीं है, जाहिर है, आंकिक है। तो वहाँ में कोई रास्ता नहीं है, एक ठेठ डेटाबेस, केवल संख्यात्मक निर्दिष्ट करने के लिए और केवल पांच लंबे वर्ण, तो हम करने जा रहे हैं ऐसा करने के लिए कोड में। हम क्या करने के लिए है कि PHP में जा रहे हैं या जावा या जो भाषा हम कर रहे हैं सर्वर पर का उपयोग कर लागू करने के लिए बाधा की तरह। वाह! ठीक है, तो किसी भी सवाल का बस अभी तक? चलो एक और डिजाइन निर्णय करते हैं। ऐसा नहीं है कि आप पता चला है यह भी चयन करने के लिए मिलता है, जब एक एसक्यूएल डाटाबेस डिजाइन या ठेठ रिलेशनल database-- जहां फिर, रिलेशनल सिर्फ पंक्तियों और स्तंभों का मतलब है, कि कैसे आप अपने data-- का आयोजन है और पता है कि क्या इसका मतलब यह है, मैं में गुमराह किया गया है , मैं इस drawing-- हूँ कि क्या स्कीमा कहा जाता है एक डेटाबेस तालिका के लिए। इस तरह से है table-- के लिए विशिष्टताओं लेकिन जब यह समय आता है वास्तव में डाटा स्टोर करने के लिए, और हम यह सिर्फ उदाहरण के द्वारा यहाँ क्या करेंगे। मैं एक्सेल खोलने के लिए जा रहा हूँ, क्योंकि एक्सेल मेरे पंक्तियों और स्तंभों दे देंगे। और वह है कि क्या वास्तव में ओरेकल और MySQL और अन्य उपकरणों मुझे दे देंगे। तो मैं बस का उपयोग करने के लिए जा रहा हूँ यह चर्चा की खातिर। मुझे आगे चलते हैं और ऊपर खुला एक यहाँ प्रतिनिधि दस्तावेज़, एक बिट में ज़ूम। उदाहरण के लिए तो, हमारी हेडर अब कर रहे हैं प्रथम नाम, अंतिम नाम, लिंग, आईडी, ईमेल, गली नंबर, सड़क, वूप्स। सड़क, शहर, राज्य, बस के बारे में स्क्रीन पर फिट बैठता है। तो क्या इसका मतलब यह है कि जब एक उपयोगकर्ता पहले, मेरी वेबसाइट के लिए रजिस्टरों ऐसा कुछ होने जा रहा है डेविड, मालन, मी, हम कहते हैं कि 1 दो, malan@harvard.edu, गली नंबर होगा 1 Brattle स्क्वायर, कैम्ब्रिज, एमए की तरह हो सकता है, 02138, और फिर आगे तो। तो जब मैं कहता हूं कि एक संबंधपरक डेटाबेस या एसक्यूएल डाटाबेस पंक्तियों और स्तंभों है, मेरा मतलब यह है। यही कारण है कि वास्तविक डेटा संग्रहीत है पंक्तियों और स्तंभों में। यह सिर्फ एक संयोग है, कि हम बात कर रहे थे, और मैं सिर्फ यह ड्राइंग था पंक्तियों और स्तंभों में बाहर। यह सिर्फ स्कीमा है, व्यापक परिभाषा। इन क्षेत्रों के यहाँ तो, या यों, वहाँ, जो कि खेतों आपको लगता हैं मैं अगर मैं एक उपयोगकर्ता हूँ पर खोज करने के लिए की संभावना है या अगर मैं डेटाबेस व्यवस्थापक कर रहा हूँ? की तरह, क्या खेतों मैं हूँ पर वास्तव में खोज करने के लिए जा रहे हैं? दर्शकों: [सुनाई] डेविड मालन: नाम, हाँ तो मैं हाँ that-- तथ्य की तरह, ईमेल बहुत आम हो सकता है। क्षमा करें, आप नाम कहा। तो maybe-- और फिर, हम कर रहे हैं तरह का सार में बात कर रही है। मैं नहीं जानता कि आप क्यों चाहते हैं एक नाम के लिए खोज हो, लेकिन है कि यदि उचित लगता है आप एक उपयोगकर्ता के लिए खोज रहे हैं। हो सकता है कि कहा गया है, यकीन है, आईडी। और यह एक फिसलन है ढलान, क्योंकि मैं कर सकता जहां एक परिदृश्य ईजाद शायद मेरे मालिक ने मुझे कहा है, हम कितने आदमी हमारी साइट पर है? हम कितनी महिलाओं को हमारी साइट पर है? और तो उस बिंदु पर, आप चाहते हो सकता है भी, लिंग मैदान पर खोज करने के लिए, और कुछ नहीं। तो वहाँ एक व्यापार बंद यहाँ है। कोई फिर, वहाँ है सही जवाब है, लेकिन वहाँ सबसे एसक्यूएल डाटाबेस में एक विशेषता है अनुक्रमण, जिससे के रूप में जाना आप, डिजाइनर, डेटाबेस व्यवस्थापक, पहले से तय करने के लिए मिलता है जो खेतों डेटाबेस का अनुकूलन करना चाहिए पर खोजों के लिए। तुम बहुत भोलेपन से कह सकते हैं, अनुकूलन इस, अनुकूलन, कि, इस अनुकूलन अनुकूलन है कि और यह, और डेटाबेस होगा नीचे कुछ जादुई बात करते हैं डाकू, और इस तरह से कुछ करना कि अगली बार जब आप खोज इन क्षेत्रों में से किसी पर, यह वास्तव में, तेजी से हो जाएगा। यह संभव है। यह अपने आप को रद्द नहीं है। लेकिन वहाँ एक मूल्य भुगतान किया जाना चाहिए। यदि आप भोलेपन से, या अधिक उत्साहपूर्वक कहते हैं, सूचकांक इन क्षेत्रों के सभी, इतनी बात करने के लिए उन्हें सभी कुशलता से खोजा, क्या कीमत है जो आप भुगतान कर रहे हैं शायद? दर्शकों: [सुनाई] डेविड मालन: प्रदर्शन। आपका क्या अर्थ है? खैर प्रदर्शन, कम से कम में संदर्भ मैं चर्चा कर रहा हूँ, अब बेहतर है। यही कारण है कि अनुक्रमण की परिभाषा है। यह खोज तेज कर देगा। तो समय कम हो जाती है तो बात करो। दर्शकों: [सुनाई] डेविड मालन: अंतरिक्ष। तो फिर, ये एक आम व्यापार कर रहे हैं। मैं अपनी खोजों को गति कर सकते हैं, लेकिन यह है आप अंतरिक्ष के अधिक बाइट्स खर्च करने जा रही। क्यूं कर? खैर, डिफ़ॉल्ट रूप से, अगर हम में से कोई भी राशि इन लाल तारे, इन अनुक्रमित में से कोई भी, जैसा कि मैं कह रहा हूँ, आप कैसे खोज करते हैं इस डाटाबेस में एक नाम के लिए? तो चलो आकर्षित करते हैं हमारे इस उदाहरण पर ध्यान। अगर हम दाऊद और स्कली और करीम है और Arwa और इन पंक्तियों में अन्य लोगों, उदाहरण के लिए। तो चलो ठीक है कि ऐसा ही करे। स्कली में यहाँ है, और फिर हम करीम, और Arwa है, और बाकी सब, नहीं यदि आप करते हैं एक सूचकांक में परिभाषित इतनी बात करने के लिए है सबसे अच्छा तुम कर सकते हैं रैखिक खोज है। आप Arwa के लिए खोज करते हैं, तो हम नहीं कर रहे सही करने के लिए कूद करने के लिए सक्षम होने जा रहा है उसे जल्दी जल्दी। हम शीर्ष शुरू करने जा रहे हैं और नीचे करने के लिए सभी रास्ते जाओ, हमारे मूल के विपरीत नहीं माइक स्मिथ उदाहरण है। अगर, हालांकि, मैं कहता हूँ, अरे, डेटाबेस, सूचकांक पहला नाम क्षेत्र, तो यह कुछ करने के लिए जा रहा है शौक़ीन हैं और कुछ का समर्थन द्विआधारी खोज की तरह। यह शायद एसई प्रति द्विआधारी खोज नहीं है। डेटाबेस एक और प्रयोग करते हैं डेटा संरचना बी पेड़ कहा जाता है, द्विआधारी पेड़ के साथ भ्रमित नहीं होना चाहिए, सिर्फ यह खोज करने के लिए तेजी से बनाने कि कुछ प्रकृति में लघुगणक। लेकिन कीमत है जो आप कि निर्माण करने के लिए भुगतान करते हैं सुविधा, स्मृति में है कि डेटा संरचना, अधिक बाइट्स है। तो यह कुछ मेगाबाइट ले सकता है, कुछ गीगाबाइट, कौन जानता है? यह डेटा पर निर्भर करता है। कुछ बिंदु पर तो, आप को फैसला करना है, यह शायद एक आम बात नहीं है। ताकि वास्तविक आम क्या कर रहे हैं मामलों, तुम सच में चुनाव करना था, तो अपने पसंदीदा क्षेत्रों क्या हो सकता है? ईमेल। और मैं ईमेल क्योंकि ईमेल की तरह, सिद्धांत रूप में, अलग होना चाहिए। और तो आम तौर पर, जब आप जानते हैं अग्रिम में है कि अपने क्षेत्रों में से एक है या अद्वितीय होगा, कि एक अच्छा क्षेत्र हो जाता है , पर खोज क्योंकि जिस तरह से करने के लिए, जब आप कुछ के लिए खोज, तुम वापस एक पाने के लिए जा रहे हैं या प्रतिक्रियाओं शून्य और फिर आप कर रहे हैं। आप रखने के लिए की जरूरत नहीं है अभी तक दूसरों के लिए लग रही है। और इसलिए इस मामले में यहाँ, ईमेल, इतने लंबे समय आप दो बार के रूप में पंजीकृत नहीं कर सकता एक ही ईमेल के साथ, एक अच्छा एक है। परिभाषा के द्वारा आईडी, में कंप्यूटर विज्ञान की दुनिया है, आप एक के बारे में बात कर रहे हैं आईडी, बेहतर है कि अद्वितीय होना था। यही कारण है कि अर्थ की तरह है आईडी या पहचानकर्ता की। और इन में से बाकी हो सकता है, चलो उन्हें अमीर के लिए अच्छा कहते हैं, लेकिन वास्तव में आवश्यक नहीं। और हां एक डेटाबेस में, आप, अनुक्रमणिका निर्दिष्ट लेकिन आप और भी अधिक सटीक हो सकते हैं। आप कह सकते हैं, अरे, डेटाबेस, सुनिश्चित करें इस तालिका में हर आईडी अद्वितीय है। यहां तक ​​कि एक प्रोग्रामर मत देना गलती से एक नकली ईमेल में डाल या आईडी नंबर नकली। इतना enums की तरह हमें इसी तरह की रक्षा, आप उन निचले स्तर के गढ़ हो सकता है। और तो डेटाबेस डिजाइन में, कुछ समझ में, आनन्द की तरह है, क्योंकि आप इसे रक्षा करना। आप की तरह लगता है कि आप काम भयानक, भयानक प्रोग्रामर के साथ और आप के रूप में कई गढ़ में डाल करना चाहते हैं के रूप में आप कर सकते हैं अपने डेटा की रक्षा करने के लिए, लेकिन साथ ही साथ आप चाहते हैं मदद करने के लिए उन्हें बेहतर प्रदर्शन जो चुनने के द्वारा क्षेत्रों के लिए अनुकूलन के लिए। लेकिन तुम जरूरी यह नहीं कर सकते हम जैसे एक निर्वात की तरह यहाँ हैं। तुम्हें पता करने के लिए क्या कर रहे हैं मिल गया है उन आम मामलों जा रहा है। डेवलपर्स कर रहे हैं एक पते की किताब को लागू करने, आप बहुत अच्छी तरह से सक्षम होने के लिए चाहते हो सकता है लगभग हर क्षेत्र पर खोज करने के लिए, सिर्फ आवेदन के स्वभाव से। तो शायद आप खर्च कि अतिरिक्त जगह। ठीक है, कोई प्रश्न? हाँ। दर्शकों: [सुनाई] डेविड मालन: नहीं दर्शकों: [सुनाई] डेविड मालन: ठीक है। दर्शकों: [सुनाई] डेविड मालन: ओह, तो हम एक तरह से बात कर रहे हैं अब यह है कि पूरी तरह से नास्तिक भाषा है। इसलिए हम इस बारे में अब बात कर रहे हैं अधिक आम तौर पर रिलेशनल डेटाबेस, या एसक्यूएल अधिक आम तौर पर डेटाबेस। दर्शकों: [सुनाई] डेविड मालन: एक बेहतर शब्द का उपयोग करने के लिए है, किसी भी भाषा के द्वारा प्रयोग किया जा सकता है। तो मैं जावास्क्रिप्ट कोड लिखने, सी कर सकते हैं कोड, सी ++ कोड, जावा कोड, रूबी कोड, जो सभी के लिए एक करने के लिए बात डेटाबेस और निष्पादित प्रश्नों। वास्तव में, कि एक बुरा नहीं है एक उदाहरण के प्रश्न के segue। और फिर, हम में जाने के लिए नहीं जा रहे हैं जावा या सी ++ या अब इस बात का कोई हो, लेकिन एसक्यूएल में, भाषा जो मैं रखने के लिए चर्चा करते हुए, संरचित क्वेरी भाषा, यह अपने आप में एक प्रोग्रामिंग भाषा है, लेकिन इसके लिए, कोई इस्तेमाल के लिए होती है आश्चर्य की बात है, क्वेरी प्रश्नों संरचित। द्वारा कि मेरा यह मतलब है। जिस तरह से आप डेटा का चयन एक डाटाबेस से आप सचमुच अपने कार्यक्रम में टाइप कर रहा है उपयोगकर्ताओं से चुनिंदा स्टार की तरह कुछ और। मैं इस तालिका मान रहा हूँ कि, अब उपयोगकर्ताओं कहा जाता है। मैं इसे कुछ भी हम चाहते हैं कह सकते हैं, लेकिन उस तरह की समझ में आता है। और इसलिए का चयन एक बहुत है आम क्रिया, तुम अगर होगा, एसक्यूएल में, कि सचमुच करता है। क्या आप स्टार लगता है इस संदर्भ में इसका मतलब है? दर्शकों: [सुनाई] डेविड मालन: मैं माफी चाहता हूँ? दर्शकों: [सुनाई] डेविड मालन: आवश्यक नहीं है, यह कि अधिक से अधिक समावेशी, वास्तव में। यह वाइल्ड कार्ड चरित्र है। लगभग हमेशा स्टार कुछ भी मतलब है, तो इस का मतलब है, इस मामले में, डेटाबेस से सब कुछ का चयन करें। तो जब मैं यह कहना है, मेरा मतलब है मुझे वापस हर स्तंभ देना मेरी मेज से उपयोगकर्ताओं को बुलाया। तो मुझे एक परिणाम सेट, के रूप में यह कहा जाता है आज। दूसरे शब्दों में, मुझे की एक प्रति दे स्प्रेडशीट, क्या मैं पर हो रही है। लेकिन अगर मैंने कहा कि उन से चयन स्टार जहां आईडी 1 के बराबर होती है, कितना बड़ा होना चाहिए मेरी परिणाम सेट तो हो सकता है? या यों, कितनी पंक्तियाँ चाहिए मैं डेटाबेस से वापस सौंप दिया जा सकता है? शायद सिर्फ एक है, मैं वास्तव में हो, तो एक अद्वितीय पहचानकर्ता के रूप में इलाज आईडी, और अगर डेविड कि अद्वितीय पहचान है, मैं वापस एक और केवल एक पंक्ति मिलना चाहिए दाऊद की गई सारी जानकारी। तो मैंने कहा कि यह जहां आईडी 99 के बराबर होती है, मैं वापस मिलना चाहिए इस संदर्भ में, शून्य पंक्तियाँ, कम से कम समय में। हालांकि, अगर मैं वास्तव में परवाह नहीं है यह सब जानकारी के बारे में, मैं सिर्फ कह सकते हैं, जहां दाऊद रहता है? से ज़िप कोड का चयन करें उन जहां आईडी 1 है। यह मैं ही दाऊद की ज़िप करने के लिए चयन करेंगे कोड और न उस पंक्ति की सम्पूर्णता। मैं बजाय ऐसा क्यों हो सकता है स्टार क्वेरी, वाइल्ड कार्ड? दर्शकों: [सुनाई] डेविड मालन: हाँ, मैं केवल यह आवश्यकता हो सकती है। तो फिर प्रदर्शन जवाब यहाँ है। क्यों अधिक के लिए पूछना जानकारी की तुलना में आप की जरूरत है, क्योंकि भले ही यह सब ठीक एक साथ है, आप अभी भी उस डेटा कॉपी करने के लिए है, यह डेटाबेस से प्रतीत होता है, किसी भी तरह अपने कार्यक्रम में, और कहा कि अभी यदि आप मूर्खतापूर्ण है केवल उन अंकों में से पांच की जरूरत है, पंक्ति की सम्पूर्णता नहीं। तो मैं एक उपयोगकर्ता कैसे डालने हो? मान लीजिए कि एक उपयोगकर्ता बस है पहली बार के लिए दर्ज की गई। वाक्य रचना आम तौर पर इस तरह दिखेगा। उन में डालें, और फिर हम मूल्यों को कहते हैं, और फिर हम मूल्यों को कहेंगे जैसे, हम कहते हैं, लॉरेन स्कली, चलो हमारे videographer यहीं। और अगले क्षेत्र लिंग है। इसलिए हम कह देंगे बोली, गंदें शब्द बोलना "एफ", तो हम एक आईडी और मैं चलो say-- करने के लिए जा रहा हूँ नाटक वह वास्तव में यहाँ नहीं है, इसलिए हम कहानी में उल्टा करेंगे। तो 2 उसके आईडी होगा। और फिर अगले क्षेत्र यहां उसकी ईमेल है। तो यह की तरह होने जा रहा है लॉरेन स्कली और बहुत आगे है, और हम बस डॉट डॉट करेंगे यहां पर दूर से यह डॉट। अब यह एक छोटे से मिल जाएगा कठिन है, लेकिन डालने क्वेरी अंततः है कि तरह लग रही होगी। मैं से छुटकारा पाने के लिए चाहते हैं स्कली, ओह, चलो चलो deregister उसे, वह उसके खाते को हटाता है, उन जहां आईडी के बराबर होती है 2 से हटाने के लिए, स्कली से छुटकारा मिल जाएगा। या मैं अद्यतन उपयोगकर्ताओं सेट कह सकते हैं, हम कहते हैं, हम क्या बदल सकता है? मान लीजिए कि वह ले जाता है। सेट ज़िप बराबर 021-- नहींं, कि उसे चालू ज़िप है। 90210। केवल अन्य ज़िप कोड मैं दुनिया में पता है। तो यह है कि बदल जाएगा उसकी ज़िप वास्तव में code--, कि उसे ज़िप कोड बदल नहीं होता। मैं सिर्फ क्या किया? हालांकि वाक्य रचना शायद नया है। दर्शकों: [सुनाई] डेविड मालन: हाँ, मैं हर किसी के लिए ले जाया गया बेवर्ली हिल्स, कैलिफोर्निया के लिए। इसलिए मैं वास्तव में करना चाहिए कहते हैं कि जहां आईडी 2 के बराबर होती है। इत्यादि। तो एसक्यूएल इन सब के बारे में है निर्देश की तरह। , का चयन करें डालने, हटाने, अद्यतन, अंत में इन predicates साथ इन जहाँ खंड, तो बात करो। और वहाँ एक बहुत अधिक आप कर सकते हैं करते हैं, लेकिन यह वास्तव में सिर्फ नीचे फोड़े बस के लिए, अगर arcanely व्यक्त क्या आप डेटाबेस करना चाहते हैं। और उसके बाद डेटाबेस पता लगाना होगा जब, आप में लॉरेन स्कली डालने डेटाबेस, जहां स्मृति में उसे डाल करने के लिए इतना है कि हम बहुत जल्दी मिल सकता है उसे उसके ईमेल पते के आधार पर या उसकी आईडी नंबर या पसंद पर आधारित है। हाँ, दान। दर्शकों: [सुनाई] डेविड मालन: बहुत अच्छा सवाल। इन लिपियों से बदल जाएगा माइक्रोसॉफ्ट ओरेकल को देखकर MySQL के लिए PostgreSQL करने के लिए? संक्षिप्त जवाब यह निर्भर करता है। सिद्धांत रूप में, वहाँ एक बहुत है एसक्यूएल के महत्वपूर्ण आम सबसेट कि सभी भर में साझा किया इन कार्यान्वयन की। हालांकि, विभिन्न निर्माताओं जोड़ा सुविधाओं है अपने डेटाबेस के लिए कुछ बातें करने के लिए इन सुविधाओं के दायरे से परे, कि, वास्तव में, टूट सकता है। तो जिस तरह से डेवलपर्स इस के खिलाफ बचाव, वह यह है कि बजाय कच्चे लिखने से एसक्यूएल कोड की तरह मैं यहाँ लिख रहा हूँ, वे बजाय एक पुस्तकालय का उपयोग, एक आम पुस्तकालय है कि खुद को है प्रकार के उच्च स्तर और सार दूर आप उपयोग कर रहे हैं जो उत्पाद। और यह आपको देता है कार्यों और प्रक्रियाओं इतनी है कि आप कभी नहीं फोन करने के लिए वास्तव में कच्चे एसक्यूएल लिखें। सिद्धांत रूप में, तो, आप बदल सकते हैं ओरेकल से माइक्रोसॉफ्ट के लिए उत्पादों या ठीक इसके विपरीत या कुछ भी वरना, और तुम सचमुच अपने कोड के बारे में कुछ भी नहीं बदल जाते हैं। वास्तविकता है, हालांकि, यह है कि आप कभी कभी एक परिणाम के रूप में सुविधाओं को देने के। आप एक उत्पाद वजह से चुना गया हो सकता है यह इन मूल्य वर्धित सुविधाओं मिल गया है, और आप बस अब और नहीं कर रहे उन्हें बूझकर इस्तेमाल करते हैं। और anecdotally, ज्यादातर कंपनियों के लिए करते हैं अपने डाटाबेस से दूर स्थानांतरित करने के लिए कभी नहीं। तो, जबकि यह एक अच्छा है सुविधा है, वास्तविकता है, अगर आप ओवरहॉल रहे अपने डेटाबेस, आप कर रहे हैं शायद अन्य परिवर्तन के गुच्छों बनाने वैसे भी, तुम जरूरी नहीं है कि कि आशा करने की जरूरत है। इसलिए यह यकीनन है ओवर-इंजीनियरिंग समस्या, लेकिन यह सच संदर्भ पर निर्भर करता है। लेकिन सिद्धांत रूप में, एसक्यूएल साझा किया जाता है इन विभिन्न उत्पादों के पार। वास्तव में अच्छा सवाल है। हाँ। दर्शकों: [सुनाई] डेविड मालन: हाँ, तो आप एक डेटाबेस में सोच सकते हैं सिर्फ एक सर्वर है, के अंत में दिन, और उस सर्वर के अंदर की एक पूरी गुच्छा है टेबल, पंक्तियों और स्तंभों। और जब आप इस तरह एक प्रश्न भेजने अपने कार्यक्रम से, अपनी वेबसाइट, जावा में लिखा, रूबी, अजगर, जो भी हो, सर्वर इस आदेश प्राप्त कर रहा है और उस में व्याख्या सचमुच एक ही रास्ता हम साथ पहले भी चर्चा की व्याख्या की भाषा, और फिर शून्य पर कुछ कार्रवाई प्रदर्शन शून्य या अधिक तालिकाओं में या अधिक पंक्तियाँ। दर्शकों: [सुनाई] डेविड मालन: बिल्कुल, बिल्कुल। कुछ के लिए तो pseudocode जैसे कि यह हो सकता है। अपने PHP फ़ाइल या अपने में अजगर फ़ाइल या अपने जावा फ़ाइल, आप pseudocode कोड है, या होगा स्क्रैच-तरह ब्लॉक के रूप में, यदि उपयोगकर्ता का दौरा पहली बार के लिए acme.com/register~~V, तो उन में और बहुत आगे डालें। और हम को यह अनुवाद करेंगे अंत में और अधिक ठोस कोड। लेकिन वास्तव में, हम सब की है यहाँ इमारत ब्लॉकों, भले ही हम कुछ लंघन कर रहे हैं कार्यान्वयन कदम की। तो मुझे क्या के साथ गलती खोजने करते हैं हम अद्भुत बस एक पल पहले किया था। आप एक बहुत बनाया है उपयोगकर्ताओं के लिए संपूर्ण तालिका। वैसे, हम लागू कर सकता है कुछ अलग अलग तरीकों से इसे, लेकिन आप वास्तव में हमें का नेतृत्व किया path-- नीचे और मैं आप कहते हैं, लेकिन यह शायद एक काफी की मेरी fault-- है अक्षम डेटाबेस कार्यान्वयन। यह सामान्य नहीं है। और सामान्यीकृत से मेरा मतलब वहाँ होने जा रहा है, समय के साथ, एक महत्वपूर्ण अतिरेक, और इसलिए अक्षमता, कि अंतरिक्ष की बर्बादी है। आप यहां है ही क्या देखते हैं, सकते हैं पर आधारित आप कल्पना जहां अंतरिक्ष की इस बर्बादी समय के साथ, से आने के लिए जा रहा है, अधिक से अधिक उपयोगकर्ताओं रजिस्टर के रूप में अपनी वेबसाइट के लिए? क्या डेटा निरर्थक हो सकता है? दर्शकों: [सुनाई] डेविड मालन: तुम ऐसा क्यों क्या मतलब है? दर्शकों: [सुनाई] डेविड मालन: हाँ। और चलो प्रयोजनों के लिए मान लेते हैं आज का यह सच है कि। पता चला है, और हम इस सीखा है कठिन रास्ता है, यह सच नहीं है। किसी तरह कई शहरों, लोगों की है किसी भी तरह, एक ही ज़िप कोड, जो इस अद्भुत अंतर्ज्ञान टूट जाता है। लेकिन यह सच है लगता हैं, यह लगभग हमेशा सच है क्योंकि। तो एक ज़िप कोड है कि लगता है हमेशा एक ही शहर के साथ जुड़े और राज्य है, जो प्रकार है उचित धारणा की, लेकिन गलत, यह पता चला है। लेकिन एक उचित धारणा आज के उद्देश्यों के लिए। तो है कि मैं कैम्ब्रिज में रहते हैं लगता है, एमए, यह उपयोगकर्ता की तालिका के अनुसार, और अनुमान है कि लॉरेन स्कली कैम्ब्रिज, एमए में रहती है, और अनुमान है कि करीम कैम्ब्रिज, एमए में रहती है, और Arwa कैम्ब्रिज में रहती है, एमए, 02138 में हम सभी के। हम क्यों कैम्ब्रिज याद कर रहे हैं, एमए, हम सभी के लिए चार 02138? क्या याद करने के लिए पर्याप्त होना चाहिए? दर्शकों: [सुनाई] डेविड मालन: बस ज़िप कोड। बस यह कि 02138 मौजूद है, क्योंकि आप जानते हैं कि हम क्या कर सकता है? हम एक छोटे से कल्पना यहां मिल सकता है और यहाँ पर, किसी अन्य तालिका को परिभाषित जहां इस होने जा रहा है नाम, इस प्रकार के होने जा रहा है इस होने जा रहा है लंबाई, और इसके बाद, मैं हूँ यह मेरा शहरों तालिका फोन करने के लिए जा रहा है। यह, बुलाया गया था बेशक, मेरी उन मेज। और तो क्या मैं यहाँ पर रखा जाना चाहिए मेरे नगर तालिका के लिए, आप क्या सोचते हैं? दर्शकों: [सुनाई] डेविड मालन: हाँ। तो और राज्य और शहर ज़िप। और इसलिए प्रकार यहाँ, हम कहेंगे यह, फिर एक चार 5 होने जा रहा है पहले की बहस के अधीन। यह एक इनम हो जाएगा, शायद की तरह इससे पहले, और शहर के एक varchar 50 हो जाएगी। और इसलिए अब मैं क्या मिलता है इस तालिका से मिटा करने के लिए कि अक्षमता को समाप्त करने के लिए? दर्शकों: [सुनाई] डेविड मालन: अच्छा लगा। राज्य और शहर चले जाओ, तो मैं अब है संभावित अक्षमता का सफाया के लिए प्रचुरता से याद है, कैम्ब्रिज, एमए, कैम्ब्रिज, एमए, कैम्ब्रिज, एमए, कैम्ब्रिज, एमए, जो, उम्मीद कभी नहीं बदलने जा रहा है। और अगर यह होता है, यह है minorly कष्टप्रद, अब मैं बदलना होगा कि यह कई पंक्तियों में, यहाँ जबकि, मैं सिर्फ सकता है एक ही स्थान में बदल जाते हैं। अब क्या व्यापार बंद है, शायद है? इस सुपर सुविधाजनक था। अच्छी तरह से एक साथ मेरे सारे डेटा था। लेकिन क्या स्पष्ट रूप से अब मामला है? दर्शकों: [सुनाई] डेविड मालन: वास्तव में, और मैं हूँ खुशी है कि तुम, शब्द में शामिल होने के लिए इस्तेमाल किया क्योंकि है कि वास्तव में कीवर्ड का है, संबंधपरक डेटाबेस की दुनिया में एसक्यूएल में, यह एक वास्तविक शब्द है आप दर्ज हो सकता है या कम से कम व्यक्त करते हैं। और वास्तव में, क्या हम अब क्या करना है चयन करने के लिए दाऊद की पूरी जानकारी है से चयन स्टार की तरह कुछ उपयोगकर्ताओं, शहरों में शामिल है, और अब on-- मैं सिर्फ एक दूसरी लाइन को स्थानांतरित करने के लिए जा रहा हूँ तो यह है कि इस fits-- users.zip के बराबर होती है cities.zip, जहां users.ID के बराबर होती है 1। तो क्या चल रहा है? यह बदसूरत लग रहा है, लेकिन आप की तरह कर सकते हैं पढ़ने के लिए इसे नीचे करने के लिए सही, शीर्ष करने के लिए छोड़ दिया है। उपयोगकर्ताओं से तारे को चुनें , पहले की तरह ही है लेकिन यह उन, असल में से नहीं है। उन शहरों में शामिल होने से यह बात है। क्या मैं उन पर दो तालिकाओं में शामिल होने से कर रहा हूँ? खैर, जाहिर है, उन टेबल क्षेत्र से ज़िप, और इस अवधि में सिर्फ खास है वाक्य रचना है कि विचार व्यक्त करने के लिए, और यह शहरों टेबल ज़िप क्षेत्र है। मैं उन दो बराबर होना चाहते हैं, लेकिन मैं अंत में चयन करना चाहते हैं केवल उन पंक्तियों जहां उन तालिका में आईडी 1 के बराबर होती है, जो मेरा हो हुआ। और अभी स्पष्ट होना करने के लिए, एक प्रोग्रामर, आम तौर पर जब संख्या की तरह कुछ hardcode 1, क्योंकि अन्यथा केवल वेबसाइट डेविड या समर्थन करता है बहुत पहले उपयोगकर्ता, आप बजाय क्या होगा आईडी, जहां की तरह कुछ इस का प्रतिनिधित्व करता है एक चर, कुछ है कि समय के साथ बदल सकते हैं, इसी तरह क्या मैंने पहले कहा करने के लिए भावना में प्लेसहोल्डर्स के इन प्रकार के साथ। लेकिन अब के लिए हम सिर्फ 1 के रूप में यह hardcode करेंगे। और तो इसका क्या मतलब है? खैर, यह कल्पना करने के लिए एक अच्छा तरीका है अगर यह हाथ उन टेबल है कि, और इस हाथ ज़िप है मेज, हम एक तरह से finding-- रहे और मेरी उंगलियों के सुझावों ज़िप हैं यहाँ पर, और मेरी उंगलियों के सुझावों यहाँ ज़िप कर रहे हैं, आप कर रहे हैं एक तरह से यह इंटरलॉकिंग इतनी है कि आप जिसके परिणामस्वरूप वापस मिल मूल तालिका, सही मायने में शामिल होने से आम मैदान पर दो टेबल। और यह ज़िप होने की जरूरत नहीं है। यह सबसे अधिक और कुछ भी हो सकता है, लेकिन ज़िप अच्छा है, क्योंकि एक है, यह कम है, दो, यह हमेशा एक ही लंबाई, तो वहाँ के लिए एक असली दक्षता क्या ओलिवर यहाँ प्रस्तावित ज़िप बाहर फैक्टरिंग के साथ, और [सुनाई] का प्रस्ताव है कि हम छुटकारा पाने के शहर और राज्यों की। इसलिए इस प्रक्रिया है सामान्य बनाने के रूप में जाना जाता है। उस पर कोई सवाल? वैसे मुझे बाहर बात करते हैं इस सामान की तरह है, हालांकि यह काफी कम स्तर है, इस चर्चा यह है कि आपको लगता होगा आप की तरह हो रही है मातम में खो दिया है, यह पर्याप्त की एक मिसाल है डेवलपर्स के लिए अवसर बुरा हो सकता है। और वास्तव में, यहां तक ​​कि जब हम में पाठ्यक्रम मैं, सिखाया है कि जब हम को मिला है, उदाहरण के लिए, अनुभवहीन स्नातक प्रोग्रामर , वेबसाइटों का निर्माण पहली नज़र में, वेबसाइटों भयानक लग सकता है। और वे सभी को है कार्यक्षमता हम अनुरोध किया, डेवलपर्स के लिए एक अच्छा काम किया है। लेकिन वे जरूरी नहीं पता था पर्याप्त डेटाबेस डिजाइन के बारे में या वे मुश्किल नहीं लगता था पर्याप्त डेटा के प्रकार के बारे में और उन के प्रकार वेबसाइट, किया जा रहा था और हम पाते हैं, तो छह महीने बाद, उसके बाद वे स्नातक की उपाधि या पर चला गया है, कि यह लानत, हमारी वेबसाइट वास्तव में, वास्तव में धीमी है। और मैं भी होने के बारे में बात नहीं कर रहा लाखों या उपयोगकर्ताओं के हजारों। मैं परिसर में मतलब कुछ सौ उपयोगकर्ताओं, जिनमें से सभी के लिए करना चाहते हैं, उदाहरण के लिए, पर पाठ्यक्रम के लिए दुकान एक ही समय में, वे कर रहे हैं कि पाठ्यक्रम सूची का उपयोग आवेदन में मैंने उल्लेख किया और बात सच हो रही है धीमी गति क्योंकि वहाँ कोई अनुक्रमित थे। वहाँ कोई लाल सितारों थे, इसलिए करने के लिए बात करते हैं, या हम नहीं पड़ा जरूरी के लिए आम डेटा बाहर सकारात्मक असर अंतरिक्ष के कुछ बचत हो। और इसलिए जब एक डेवलपर पुनरीक्षण या डेटाबेस व्यक्ति या की तरह, सवालों के माध्यम से सोचने के लिए के प्रकार यहां तक ​​कि है, किसी के कोड की समीक्षा कर जब, कहने के लिए है, जरूरी नहीं लग रही उनके कोड के सभी, लेकिन कहते हैं कि के माध्यम से, के डेटाबेस तालिकाओं के माध्यम से देखो। आप क्या भंडारण कर रहे हैं? और फिर कहते हैं, ठीक है, एक इंतजार मिनट, तुम क्यों एक पूर्णांक का उपयोग कर रहे हैं? क्या होगा यदि हम 4 अरब है और इन पंक्तियों के 1? और के इन प्रकार सवाल एक अवसर है एक तरह से वापस धक्का और है, जहां की भावना हो यदि आप आराम से नहीं कर रहे हैं यह किसी के होने और अधिक तकनीकी इन सवालों के पूछने पर कि क्या है या नहीं व्यक्ति वास्तव में अपने सामान जानता है। और यह की तरह है सामान, भी, कि लोग इंटरनेट पर जो आत्म सिखाया जाता है, हो सकता है कम बार जानने के लिए, क्योंकि आप इसे भर में जरूरी नहीं आते हैं के रूप में ज्यादा है, क्योंकि आप प्राप्त कर सकते हैं डेटाबेस ऊपर और चल रहा है, लेकिन जब तक आप पढ़ा है ट्यूटोरियल पर या किया गया अप डेटाबेस सामान्यीकरण के बारे में बताया और अनुक्रमण और प्रदर्शन, इन सब बातों के प्रकार के होते हैं कि तुम्हें चोट करने जा रहे हैं। और अगर आप सोच सकते हैं, या एक बुरा इंजीनियर कहते हैं, ओह, ठीक है, हम बेहतर वेतन एक बड़ा डेटाबेस के लिए या एक तेज डेटाबेस या सिर्फ इस पर पैसे फेंक, खड़ी पैमाने पर है, जरूरी नहीं कि ऐसा। आप in-- जाओ और तुम में जा सकते हैं fact-- और जोड़ने के बाद अनुक्रमित, और इसके लिए कुछ घंटे लग सकते हैं कि नए डेटा का निर्माण करने के लिए डेटाबेस संरचना है कि मैंने पहले के लिए alluded, आप अभी भी इस तथ्य के बाद यह तय कर सकते हैं, यह है, जहां आप यह है कि भेद करने के लिए शुरू बुरे से अच्छा डिजाइनरों डिजाइनरों में ही नहीं, सौंदर्य की दृष्टि से, लेकिन प्रदर्शन के लिहाज से भी। कोई सवाल? नहीं? NoSQL है, जो अन्य प्रकार था के लिए तो डेटाबेस की जो मैंने पहले उल्लेख करने के लिए, आप पंक्तियों और स्तंभों की जरूरत नहीं है। इसके बजाय, आप कुछ होता है कि इस तरह एक छोटे से अधिक लग रहा है। मैं आम सिंटैक्स का उपयोग करने के लिए जा रहा हूँ। घुंघराले ब्रेसिज़ के लिए होता है यहां काफी इस्तेमाल किया जाएगा। आप कुछ हो सकता है पहला नाम की तरह दाऊद है, आप पिछले हो सकता है नाम मालन, उद्धरण है, आप आईडी हो सकता है- मुझे माफ करना, whoops-- आईडी 1 है, ईमेल malan@harvard.edu है, और मैं नहीं होगा बाकी बाहर टाइपिंग परेशान है, और फिर कुछ अन्य बातें। दूसरे शब्दों में, यह है एक शाब्दिक प्रतिनिधित्व हम आम तौर पर क्या कहेंगे की एक कंप्यूटर प्रोग्राम में एक वस्तु। और एक वस्तु आम तौर पर सिर्फ है महत्वपूर्ण मूल्य जोड़े का एक संग्रह। तो फिर, इस आवर्ती विषय है। हम HTML में महत्वपूर्ण मूल्य जोड़े को देखा, हम महत्वपूर्ण मूल्य जोड़े अब देखा डेटाबेस के संदर्भ, और हम में इस संदर्भ में महत्वपूर्ण मूल्य जोड़े को देखा की, मुझे लगता है, एक भाषा पहले आज। आ रहा रखता है। और वास्तव में, कि वास्तव में है क्या डेटा के लिए नीचे फोड़े, डेटा और मेटाडाटा, या मान और चाबी, क्रमशः। तो एक गैर रिलेशनल डेटाबेस, कुछ आधारित वस्तुओं, जहाँ आप सिर्फ पेड़ों का झुरमुट पर सब कुछ एक साथ और इसे रखा स्मृति में, आम तौर पर होगा के रूप में कल्पना, या, के बारे में सोचा इस रूप में। और मुझे लगता है कि अब छोड़ देंगे एक के रूप में वैकल्पिक दृष्टिकोण की तरह। और एक जरूरी नहीं है अन्य की तुलना में बेहतर है। वास्तव में, बहुत ज्यादा प्रचलन में इन दिनों डेटाबेस प्रणालियों रहे हैं MongoDB और Redis और कुछ की तरह अन्य ऐसे उपकरण, स्वतंत्र रूप से उपलब्ध है, लेकिन वे प्रचलित एन तेजी से कर रहे हैं। आंशिक रूप क्योंकि वे अतिरिक्त प्रस्ताव इन सारणीबद्ध दृष्टिकोण से अधिक सुविधाओं, बल्कि इसलिए भी कि वे कर रहे हैं थोड़ा आसान उपयोग करने के, आप के रूप में मुश्किल लगता है की जरूरत नहीं है क्योंकि इन डिजाइन निर्णय के बारे में बहुत कुछ। pluses और minuses तो। तो पता है कि वहाँ विकल्प हैं से परे है कि हम क्या बस पर समय बिताया। तो चलो यह करते हैं। चलो थोड़ा संक्रमण चलो पीठ अब वेब प्रोग्रामिंग करने के लिए, इसलिए हम किस तरह का निष्कर्ष है कि कुछ के साथ आज कि एक छोटे से हाथ पर है, भरने कल से कुछ अंतराल में। मुझे इस पहले के लिए चलते हैं। तो यह है कि कल को याद हम कुछ विहित एचटीएमएल था पृष्ठों है कि शुरू में था, केवल एचटीएमएल, सीएसएस और फिर गौणतः था, व्यापक शैली पत्रक। यह एक नया टैग है कि हम नहीं किया है कल देखते हैं, या पर ध्यान केन्द्रित करना, स्क्रिप्ट टैग तथाकथित। पता चला है कि आप वास्तव में एक एम्बेड कर सकते हैं अपने वेब में जावास्क्रिप्ट बुलाया भाषा पेज और अपने वेब बनाना पृष्ठों में कुछ करो। इसलिए मुझे लगता है कि क्या मतलब है? खैर, मुझे आगे और अभी चलते हैं एक पल के लिए इस कोड को उधार ले। मैं Cloud9 में जाने के लिए जा रहा हूँ, कोई ज़रूरत नहीं बस अभी तक वहाँ अपने आप को जाना, और मैं इस alert.HTML फोन करने के लिए जा रहा हूँ। मैं यहाँ मेरी फाइल में पेस्ट करने जा रहा हूँ। और बस स्पष्ट करने के लिए मैंने क्या किया है, चलो मुझे इस पते पर जाने और सचेत करने के लिए जाना है, और आप हैलो दुनिया देखते हैं। लेकिन इस underwhelming की तरह है। मैं कुछ करना चाहता हूँ थोड़ा सा अलग। इसलिए मैं वास्तव में यह करने के लिए जा रहा हूँ। मैं यहाँ ई में जाने के लिए जा रहा हूँ और मेरी स्क्रिप्ट टैग के बीच में, का कहना है कि चेतावनी ( 'हैलो, दुनिया'); इसलिए नोटिस यह एक छोटे से मैला है, लेकिन मैं HTML मिल गया है, अंदर जिनमें से एक है जावास्क्रिप्ट बुलाया भाषा, और यह है कि क्या एक कहा जाता है समारोह कॉल या प्रक्रिया कॉल। यह इस मामले में सचमुच एक क्रिया है, और मैं कोड कार्यक्षमता लागू तस्वीर कि किसी और ने लिखा है। तो यह है कि कार्यक्षमता एक है चेतावनी, तो चलो इस पृष्ठ पर जाने दिया अब और अधिक लादना क्लिक करें, और अब आप अन्तरक्रियाशीलता का एक छोटा सा देखते हैं। यह पुराने स्कूल और बदसूरत की तरह है। इस तरह के की याद दिलाता है पॉप-अप, शायद, पुराने के लेकिन यह कुछ एक क्या किया छोटे से अधिक कार्यक्रम। तो उस से अधिक, चलो अधिक दिलचस्प कुछ। मुझे यहाँ में जाने के लिए और इससे छुटकारा पाना करते हैं। और मैं आगे जाने के लिए जा रहा हूँ और एक फार्म बनाने जैसे हम कल किया था। असल में, तुम जानते हो क्या? मैं में जाने के लिए जा रहा हूँ google.html है, जो हम कल पर शुरू कर दिया है, जो की तरह देखा यह है, जो के माध्यम से हम बिल्ली के लिए खोज लेकिन वहाँ एक की तरह है नोटिस वर्तमान संस्करण में बग। यह बिल्लियों के लिए काम करता है, लेकिन लगता है कि मैं सहयोग नहीं है और मैं कुछ भी नहीं लिखते हैं, और मैं बस प्रस्तुत करें। यह अजीब व्यवहार की तरह है। मुझे असली गूगल लिए ले लिया, मुझे एक त्रुटि संदेश नहीं दिया। मैं उपयोगकर्ता बताना चाहूँगा आप हमें एक मूल्य देने की जरूरत है। इसलिए हम ऐसा कैसे कर सकता है? वैसे मुझे Cloud9 और वापस जाने दिया मुझे मेरे पेज के शीर्ष में जाने और इस तरह एक स्क्रिप्ट टैग को जोड़ने, जहां मैं कुछ जावास्क्रिप्ट कोड टाइप करने के लिए जा रहा हूँ। और मैं निम्नलिखित क्या करने जा रहा हूँ। अगर (document.getelementByID-- और याद कि हम के बारे में बात की है कि पहले, उस समारोह। क्या आईडी मैं प्राप्त करना चाहते हैं? मैं क्यू प्राप्त करना चाहते हैं, और मैं करने जा रहा हूँ कहते हैं, कुछ भी नहीं के बराबर होती है this-- की तरह वास्तव में मुझे डबल उद्धरण का उपयोग करें सिर्फ consistency-- के लिए कुछ भी नहीं के बराबर होती है, फिर अलर्ट यहाँ ( "कृपया एक प्रश्न टाइप")। तो मैं क्या प्रतीत होता है एक शर्त की तरह कुछ। हम खरोंच में यह सामान्य विचार देखा है। यह उन लोगों के लिए पहेली की तरह है टुकड़े है कि इस तरह से देखा। और मैं क्या कह रहा हूँ? खैर, यहाँ नीचे, मैं हूँ नोटिस निम्न करने के लिए जा रहा। मैं इस रूप देने के लिए जा रहा हूँ क्षेत्र न केवल क्यू का एक नाम है, जो क्या गूगल को पारित कर दिया जाता है, लेकिन मैं कर रहा हूँ है यह एक स्थानीय पहचानकर्ता देने के लिए जा रहा है, यह भी कहा जाता है क्यू। लेकिन मैं यह कुछ भी कह सकते हैं मैं चाहता, मैं सिर्फ इसे सरल रखने के लिए जा रहा हूँ और यह भी क्यू फोन, बस सादगी के लिए। और अब मैं क्या करने जा रहा हूँ कुछ एक छोटे से अधिक है। यहां फार्म क्षेत्रों पर, मैं जा रहा हूँ जोड़ने के लिए क्या कोई ईवेंट हैंडलर कहा जाता है। प्रस्तुत पर, मैं फोन करना चाहते हैं एक समारोह में मान्य बुलाया। यह अभी तक अस्तित्व में नहीं है, इस शब्द, या इस क्रिया को मान्य, क्योंकि मैं क्या करने जा रहा हूँ यहां तक ​​अब कुछ कोड जोड़ने के लिए है। मैं इस समारोह मान्य कहने जा रहा हूँ। मैं इस इंडेंट और एक अन्य को जोड़ने के लिए जा रहा हूँ यहाँ घुंघराले ब्रेस और यहाँ एक और एक है। क्या यह अब क्या कर रहा है पर विचार करें। मैं now-- इस के बारे में सोच के रूप में बनाया है मेरी खुद की पहेली टुकड़ा है कि पहले नहीं किया था मौजूद हैं, और मैं इस पहेली को बुलाया है मान्य पहेली टुकड़ा टुकड़ा। जीवन में अपने उद्देश्य पर अमल करने के लिए है इसके अंदर का कोड की चार लाइनें। अगर document.getElementById इसलिए धारणा, कि, तत्व में जाना जा रहा है HTML तत्व जिसका अद्वितीय विचार भले ही सिर्फ क्यू है, और फिर वाक्य रचना थोड़ा अजीब लग रहा है, कि बराबर सिर्फ बराबरी का मतलब बराबर होती है। तो इसका मतलब है कि यदि साथ तत्व क्यू की अद्वितीय पहचानकर्ता, जब मिल गया, कोई मूल्य नहीं है, यह सिर्फ बराबरी बोली गंदें शब्द बोलना, वहाँ में कुछ भी नहीं है, तो मैं क्या करना चाहते हैं? मैं उपयोगकर्ता पर चिल्लाना चाहते हैं। और हम महान विस्तार यहाँ नहीं जाना होगा। मैं झूठी वापस करने के लिए जा रहा हूँ। यही कारण है कि एक त्रुटि है। वरना, मैं सच लौटने के लिए जा रहा हूँ। इसलिए या तो इसे काम किया है या यह नहीं था। झूठी या सच। और अब अगर मैं किसी भी गलती नहीं बना था, मुझे इस बचाने के लिए और यह फिर से लोड करते हैं। और मुझे बस डबल की जाँच करते हैं कि मैं नहीं, वास्तव में, किसी भी typos बना था, इसलिए मैं अपने आप को नीचा दिखाने के लिए नहीं है। चलो देखते हैं अगर यह काम करता है। तो अब मैं बिल्लियों टाइप करने के लिए जा रहा हूँ। यह अभी भी काम करता है, या आधा काम करता है, कम से कम। अब मुझे यह फिर से लोड, और अब चलो मेरे टाइप के बिना प्रस्तुत करने की कोशिश anything-- यह लानत है, उसे तोड़ दिया। एक क्षण। मुझे सांत्वना खोलते हैं, [सुनाई], लॉग पृष्ठ पुनः लोड। मुझे यह फिर से कोशिश करते हैं। धत तेरी। मैं भूल गया। मैं एक टाइपो बनाया है। मुझे याद है कि यह क्या है। .Value। मैं मूल्य अगर कहने का मतलब तत्व की जिसका आईडी क्यू है बराबर होती है, तो उपयोगकर्ता पर चिल्लाना। तो अब मुझे फिर से अपनी सांस रोक दें। ये रहा। हम वहाँ चलें। कृपया एक प्रश्न लिखें। तो यह मुझे के माध्यम से नहीं दे रहा है। मैं इस के साथ एक तरह से चंचल हो सकता है, और बदले में कोई मूल्य के लिए जाँच की, मैं कुछ कह सकते हैं जैसे, कोई और अधिक बिल्लियों के लिए खोज, और अब हम सिर्फ अधिक हँसी में छोड़ कर सकते हैं कुत्तों के लिए उपयोगकर्ता की खोज करता है, तो वह या वह चाहता है, या अगर मैं यहाँ में जाने के लिए और बिल्लियों के लिए खोज, अब मैं नहीं कर सकता। तो क्या takeaway यहाँ है? तो एक है, हम में पेश किया है एचटीएमएल और सीएसएस के बारे में हमारी दुनिया है, प्रोग्रामिंग कार्यक्षमता। मैं वास्तव में अब कर सकते हैं कोड में निर्णय करते हैं। इससे पहले, सब मैं कर सकता निशान है पाठ्य सामग्री या चित्रमय सामग्री और यह बताओ कि क्या देखने के लिए की तरह है और जहां प्रदर्शित करने के लिए। अब मैं वास्तव में पूछ सकते हैं वेब पेज के सवाल और आधार पर निर्णय लेने उस पर, और उपयोगकर्ता संकेत अगर मैं उसे या उसके पर चिल्लाओ करने की जरूरत है। तो चलो कुछ करने की कोशिश करते हैं इस के साथ अपने दम पर। आगे बढ़ो, मुझे अगले स्लाइड ऊपर खुला यहाँ है, और सिर्फ एक बात कहना है। बस सीएसएस के साथ की तरह, हम बाहर कारक कर सकते हैं एक अलग फाइल करने के लिए हमारे जावा स्क्रिप्ट कोड, आप एक ही बात कर सकते हैं सीएसएस के साथ के रूप में जावास्क्रिप्ट के साथ। और अगर आप एक स्रोत का उपयोग कर का उपयोग करें कि स्क्रिप्ट टैग की विशेषता। लेकिन हम अब के लिए चीजों को मुश्किल नहीं होगा। इसके बजाय, अगर तुम सकता है इस पृष्ठ पर जाएँ, but-- मेरे order-- में इस के चारों ओर चलते हैं करने के लिए, इस पृष्ठ में यहां जाने के लिए अगर तुम सकता है। यहाँ इस यूआरएल। यह आज की स्लाइड्स में है। क्योंकि आप फिर से लोड करने के लिए हो सकता है मैं बात की एक जोड़ी जोड़ दिया है। लेकिन वहाँ जाना है, जहां कुछ पहेली का इंतजार है। और यह हमें एक मौका देना होगा, एक से थोड़ा अधिक मज़ा संदर्भ में, कुछ जावास्क्रिप्ट के साथ तर करने के लिए। और जब तुम वहाँ हो, मैं क्या इंतजार कर रहा है समझाता हूँ। हरे रंग जाओ। नीले रंग सेट करें। सेट हरे, लाल तय करता है। उफ़। माफ़ कीजिये। इस की हद तक है हमारे इस चुनौती के लिए दस्तावेज। और इस प्रकार के रूप में काम करने के लिए जा रहा है। तो क्या आप इस पर है पेज एक पूरी गुच्छा है एक दोस्त के द्वारा छवि पहेली की स्टैनफोर्ड विश्वविद्यालय में। तो क्या आप यहाँ देख रहे हैं लगभग है उन जादू आंख पहेली में से एक की तरह है, लेकिन तुम सिर्फ यह घूरते हैं, कुछ भी नहीं है तुम पर बाहर पॉप करने के लिए जा रहा है। दरअसल, कुछ है इस छवि में छिपे हुए। और यह निम्नलिखित तरीके में छिपा हुआ है। छवियों, तुम जानते हो, हो सकता है सिर्फ तीन रंगों से बना। कुछ लाल, कुछ नीले, हरे और कुछ। और हम सभी कर सकते हैं इंद्रधनुष में रंग किसी भी तरह उन तीन रंगों के मिश्रण से। तो यह ज्यादातर हरी लग रहा है और नीले, लेकिन निक यहाँ कहते हैं, इस लोहे पहेली छवि एक पहेली है। यह की एक छवि शामिल कुछ प्रसिद्ध है, हालांकि, छवि विकृत कर दिया गया है। प्रसिद्ध वस्तु लाल मूल्यों में है। हालांकि, लाल मूल्यों सभी 10 से विभाजित किया गया है। तो वे 10 का एक पहलू से बहुत छोटे हैं। तो दूसरे शब्दों में, निक एक मूल छवि ले लिया, और वह सभी desaturated इसमें से लाल रंग का, लाल की मात्रा को कम स्याही, अगर तुम जाएगा, उस में। नीले और हरे रंग मूल्यों सब सिर्फ व्यर्थ कर रहे हैं, यादृच्छिक मूल्यों, उर्फ ​​शोर डिजाइन किए वास्तविक छवि अस्पष्ट करने के लिए। तो क्या निक किया था वह था लाल और फिर नीचे टोंड वह बस यादृच्छिक फेंक दिया नीले और हरे रंग की मात्रा अस्पष्ट की तरह करने के लिए छवि पर क्या वास्तव में अभी भी वहाँ है। आप इन विकृतियों को पूर्ववत् करना होगा छवि प्रकट करने के लिए। सबसे पहले, सभी नीले और हरे रंग मूल्यों को निर्धारित शून्य करने के लिए उन्हें रास्ते से बाहर निकलने के लिए, और परिणाम को देखो। फिर 10 से प्रत्येक लाल मूल्य गुणा, अप करने के लिए वापस स्केलिंग लगभग अपने अंतिम मूल्य। प्रसिद्ध वस्तु क्या है? इसलिए आप सभी को इस आयत है अभी आपके ब्राउज़र में। और नोटिस कुछ है कि वहाँ स्टार्टर कोड, तो बात करो। यह जावा स्क्रिप्ट कोड है कि निक आप के लिए लिखा है। और सूचना है कि वहाँ बीच में एक पंक्ति है कि एक स्लेश स्लेश के साथ शुरू होता है, कि क्या आम तौर पर एक टिप्पणी कहा जाता है। इसका मतलब यह प्रोग्रामर के लिए एक मुहावरा है कि कोई कार्यात्मक अर्थ नहीं है। यह मानव के लिए सिर्फ एक दृश्य संकेत है। तो तुम आगे बढ़ो और कर सकते हैं सिर्फ इतना है कि लाइन हटाने के लिए, और सावधान सुपर नहीं हो नष्ट या कुछ बदल जाते हैं। और मुझे बस के माध्यम से चलते हैं इस कोड को करता है और मैं इसे छोड़ देंगे क्या आप के लिए रहस्य बाहर आंकड़ा छवि। यह पहली पंक्ति यहाँ है कि मैं सिर्फ है प्रकाश डाला आप निम्नलिखित देता है। बाएं हाथ की ओर, आप क्या कहा जाता है एक चर निक मनमाने ढंग से किया है, लेकिन काफी छवि के लिए im बुलाया। दाहिने हाथ की ओर कि बराबर चिह्न की, वह कह रहा है मुझे एक नया देना बोली, गंदें शब्द बोलना "सरल छवि"। सरल छवि, इस संदर्भ में , ठीक है, क्या एक वर्ग कहा जाता है यह एक class-- तरह की तरह है तकनीकी रूप से एक prototype-- लेकिन वास्तव में, यह मेरे लिए एक नई वस्तु दे रहा है, सामग्री जिसमें से फ़ाइल कर रहे हैं, लौह puzzle.png। दूसरे शब्दों में, निक बनाया गया है एक सरल छवि की इस धारणा इसलिए हम कर सकते हैं, शैक्षणिक लिए कि प्रयोजनों के लिए, छवि के साथ खेलते हैं और उसके लाल बदलने के लिए, हरे और नीले मूल्यों। और हम उस कैसे कर रहे हैं? यह कुछ हद तक गुप्त वाक्य रचना यहाँ एक तरह से दोहराने ब्लॉक की तरह है आप में से कुछ पहले स्क्रैच में देखा था कि आज है, जहां आप 10 बार दोहरा सकते हैं। इस मामले में, निक नहीं है 10 की तरह एक नंबर हार्डकोडेड। इसके बजाय वह कह रहा है, प्रारंभ एक चर 0 एक्स कहा जाता है, अगर जांच एक्स से कम नहीं है छवि की चौड़ाई। और तो और अधिक उचित हो, छवि है चर, डॉट इसका मतलब यह के अंदर जाना और इसकी चौड़ाई हो, और तो खुले में कुछ शब्द, बंद कुछ शब्द सिर्फ एक प्रोग्रामर की तरह है की और कहा कि यह एक समारोह है। यह एक प्रक्रिया है। यह कार्यक्षमता है किसी और ने लिखा है। यह प्रयोग करें और मुझे वापस दे एक जवाब। और फिर x ++ का एक अच्छा तरीका है कह रही है के बाद आप एक बार इस किया है, 1 से एक्स वेतन वृद्धि। दूसरे शब्दों में, इस एक प्रोग्रामर की तरह है के एक पाश है कि उत्प्रेरण पर पुनरावृति करने के लिए जा रहा एक छवि में स्तंभों के सभी। एक छवि बस का एक ग्रिड है डॉट्स, पंक्तियों और स्तंभों डॉट्स की। इस पुनरावृति का एक तरीका है उन स्तंभों में से सब कुछ खत्म। और अंदर पर, इस बीच, हम पुनरावृति रहे हाइट्स, यहाँ पर और यहाँ और यहाँ। तो यह सिर्फ traipsing का एक तरीका है, लगभग एक पुराने स्कूल टाइपराइटर की तरह, बस पर जाने के लिए iteratively पूरी छवि। यहां तक ​​कि काफी पूर्ण नहीं है स्पष्ट है, बस अभी के लिए विश्वास पर ले, उन तीन लाइनों है कि कोड के साथ कर रहे हैं आप iteratively देखने के लिए अनुमति देने के लिए जा रहा हर पिक्सेल पर, हर छवि में डॉट। एक पिक्सेल क्या है? खैर, स्पष्ट होना करने के लिए, अगर हम देखो मूल में है और में ज़ूम, अगर तुम सच में अपनी आँखें डाल कंप्यूटर स्क्रीन करने के लिए, कि सिर्फ डॉट्स की एक पूरी गुच्छा, कई हजार डॉट्स एक साथ वहाँ पैक। और तो क्या आप के बारे में क्या कर रहे हैं? उन डॉट्स से हर एक, एक अंतिम परिभाषा क्या आम तौर पर है का परिणाम है कहा जाता है आरजीबी, लाल, हरे, नीले, जो फिर से, करने के लिए जोड़ा जा सकता है आप रंगों के किसी भी नंबर दे। वास्तव में, यदि आप याद कई साल पहले कई से, इन चीजों की तरह प्रोजेक्टर स्क्रीन नहीं एक लेंस लेकिन तीन किया करते थे। उनमें से एक लाल बत्ती थूक में से एक उन्हें उनमें से एक हरे रंग की रोशनी बाहर थूक, नीली बत्ती थूक। और अगर आप एक मिडिल स्कूल में थे जैसे मैं गया था, जहां वे कभी नहीं थे ठीक से गठबंधन, तुम थे हमेशा इतिहास फिल्में देखने कि थोड़ा विकृत थे, क्योंकि तीन रंग नहीं थे ठीक से संयोजन। लेकिन इसके बारे में पता चला है कि प्रत्येक इन मूल्यों, लाल, हरे और नीले, उनके साथ जुड़े एक नंबर हो सकता है। उदाहरण के लिए, लाल रंग के लिए 0 कोई मतलब है लाल, हरे रंग के लिए 0 कोई हरी मतलब है, और नीले रंग के लिए 0 कोई नीले मतलब है। तो तुम कोई लाल, कोई हरे रंग की है, और कोई नीले, क्या रंग है तुम्हारे पास? दर्शकों: [सुनाई] डेविड मालन: क्या तुम करोगी आशा है कि हां, यह सफेद है। दुर्भाग्य से, यह खेद operates--? दर्शकों: [सुनाई] डेविड मालन: आप तो वास्तव में इस मामले में, काले लोगों की है। तो अगर आप इनमें से कोई भी हो, तो रंगों पर दिया, आप काला है। हालांकि, अगर आपके पास है, की एक बहुत कुछ कहते हैं उनमें से, लाल रंग का एक बहुत पसंद है, इसके बारे में 255, हरे रंग का एक बहुत कुछ है, और एक बहुत नीले रंग की, कि सफेद है। तो इन दो चरम सीमाओं कर रहे हैं। इसलिए इस तर्क से, अगर मैं एक बहुत कुछ है लाल और हरे रंग की कोई और कोई नीले रंग से, वह कौन सा रंग है? दर्शकों: [सुनाई] डेविड मालन: ठीक है, जाहिर है। और फिर कोई लाल, का बहुत कुछ , हरी कोई नीले, और उसके बाद अगर आप अच्छी तरह have--, हम सिर्फ पूरा करेंगे यह सिर्फ इसलिए है, लेकिन यह, ज़ाहिर है, अब, नीला है। और अब आप इन रंगों को जोड़ सकते हैं। अब एक अलग रूप में, यदि आप में से किसी भी रूप में कभी कुछ वास्तविक वेबसाइट डिजाइन किया है, आप वास्तव में हो सकता है इस तरह के संकेत चिन्हों को देखते हैं। FFF-- और वास्तव में, यह है शायद नहीं भी है। यह FFFFFF है। कभी किसी को एफ और ई देखा और इसलिए यह निकला एक through--, हम दशमलव के बारे में कल बात की थी, और आज, की तरह दशमलव के बारे में। आज हम बाइनरी के बारे में बात की थी। पता चला है, हेक्साडेसिमल एक बहुत है आम आधार प्रणाली कंप्यूटिंग में उपयोग करने के लिए। बाइनरी दो है, दशमलव 10, हेक्स 16 है। और यह पता चला, कैसे करना है आप हेक्साडेसिमल में गिनती? शून्य, एक, दो, तीन, चार, पांच, छह, सात, आठ, नौ, क्या आप नौ के बाद प्रयोग करते हैं? अगले संख्या क्या है? हम पहले से ही शून्य इस्तेमाल किया। मैं इनमें से 16 की जरूरत है। शून्य, एक, दो, तीन, चार, पांच, छह, सात, आठ, नौ, आप कुछ मनमाने ढंग से सम्मेलन की जरूरत है। और क्या मानव जाति के लिए कुछ समय का फैसला पहले उस के बाद नौ पत्र आता है एक और तो बी और फिर सी तो जिस तरह से आप हेक्साडेसिमल में गिनती शून्य, एक, दो, तीन, चार, पांच, छह, सात, आठ, नौ, ए, बी, सी, डी, ई, एफ, और कहा कि गिनती होगी आप सभी तरह से यह पता चला है, 15 के लिए। तो शून्य से 15 शून्य के माध्यम से है एफ अब क्यों कि महत्वपूर्ण है? ठीक है, तुम लोगों की है जब दो एफ, कि कैसे आप 255 का इजहार है। इतने लंबे समय लघु कहानी, में फोटोशॉप की दुनिया, कि ग्राफिक डिजाइन सॉफ्टवेयर, वेब विकास की दुनिया में, आप रंग के बहुत सारे है जहां, जाहिर है, के साथ खेलने के लिए, अक्सर प्रोग्रामर होगा हेक्साडेसिमल में उन एक्सप्रेस, बस, क्योंकि यह आदत थोड़ा आसान हो सकता है। यहां तक ​​कि पहली नज़र में, हालांकि इसे और अधिक जटिल है। किसी भी मामले में तो, यह महत्वपूर्ण है क्योंकि स्टैनफोर्ड में निक हमें कार्यक्षमता के छह टुकड़े दिया है कि तुम, नवोदित प्रोग्रामर, अब का उपयोग करने की क्षमता होगी। इस वेब में निर्मित पेज छह कार्य है, छह प्रक्रियाओं है कि निक ने लिखा है। इनमें से तीन आप एक नंबर मिल जाएगा, एक लाल, एक हरे रंग की है, या एक नीले रंग की मूल्य। इनमें से तीन है कि मूल्य की स्थापना की जाएगी। और इन रेखांकित बस प्लेसहोल्डर्स कर रहे हैं, तो तुम्हें पता करने के लिए क्या कर रहे हैं उन की जरूरत है। तो इन तीन कार्यों के साथ, इन बातों के पहले एक एक्स-समन्वय स्थापित होने जा रहा है, और इन बातों के दूसरे एक वाई-समन्वय स्थापित होने जा रहा है। दूसरे शब्दों में, जो डॉट, में जो पिक्सेल आप की हरी प्राप्त करना चाहते हैं, , के नीले मिल के लाल मिलता है। और फिर यहाँ, इस होने जा रहा है एक्स, यह एक y मान होने जा रहा है, और यह एक संख्या होने जा रहा है। तो चलो पहले करते हैं इस लाइन का एक साथ और फिर मैं इसे आप के लिए छोड़ दूँगा बाकी परिणाम निकालना करने की कोशिश। तो निर्देशों के अनुसार इस पृष्ठ पर, हम की जरूरत है का एक पहलू से लाल बढ़ाने के लिए 10, और हम हरी को दूर करने की जरूरत है और नीले रंग को हटा दें। के बाद के परिदृश्य के साथ शुरू करते हैं। तो अगर मैं चाहता हूँ, और मैं जा रहा हूँ कुछ रिक्त स्थान का उपयोग करके इंडेंट करने के लिए, मैं लाल सेट करना चाहते हैं, हरे, नीले या मूल्य, मैं निम्नलिखित करने के लिए जा रहा हूँ। छवि, im.setBlue, और उसके बाद मेरे निर्देशों का यहां पर आधारित है, जो तीन बातें मैं चाहिए अब कोष्ठकों के अंदर टाइप? मैं एक्स मूल्य की जरूरत है, y मान, और क्या नंबर मैं यहाँ रखा जाना चाहिए अगर मैं छुटकारा पाने के लिए चाहते हैं नीले रंग से, इस कहानी यहाँ पर आधारित है? बस शून्य। अगर मैं कोई नीले चाहते हैं, मैं अभी कर रहा हूँ शून्य करने के लिए इसे बदलने के लिए जा रहा है। अब चलो बस संक्षिप्त यह क्या कर रहा है। मैं यहाँ इन शीर्ष पर है दूसरे और तीसरे लाइनों, मैं दो छोरों का दावा किया है, नेस्ट छोरों, तुम अगर उस आशय के लिए जा रहे हैं बाएँ से सही करने के लिए प्रगति की, एक्स के सब से अधिक नीचे से ऊपर मूल्यों और y मूल्यों के सभी। फिर क्योंकि, एक तस्वीर है सिर्फ पंक्तियों और स्तंभों का एक ग्रिड। तो यह हो रहा है सभी नीले से छुटकारा। मुझे आप के लिए अगली पंक्ति में छोड़ दें। कैसे मैं सभी हरे रंग से छुटकारा मिलता है? दर्शकों: [सुनाई] डेविड मालन: अच्छा लगा। दर्शकों: [सुनाई] डेविड मालन: अच्छा लगा। और मैं बाहर ज़ूम करने के लिए जा रहा हूँ, और बस ले का ख्याल है कि आप किसी भी typos नहीं किया है। और अगर आप आराम कर रहे हैं तुमने क्या किया है के साथ, आगे बढ़ो और बटन क्लिक करें भागो / बचाने के लिए और तुम क्या हो। और फिर, हम कर दिया है सिर्फ तीन परिवर्तन। हम पहले से नष्ट कर दिया है कि टिप्पणी और इसे बदला कोड के इन दो लाइनों के साथ। और यह ठीक है आप हिट की जरूरत है, तो भागो / सहेजें बटन एक दो बार कुछ ठीक करने के लिए। और मुझे भी पर ज़ूम चलो मेरे कोड ताकि आप टाइप कर सकते हैं। अच्छा। तो मैं देख एंड्रयू क्या है एक गलती हो रहा है। वह सिर्फ एक बड़ा काला मिल गया है उसकी स्क्रीन पर आयत। किसी और की है एक बड़ा काला आयत? दर्शकों: हाँ। डेविड मालन: बिग काले आयत? ठीक है, तो चलो लगता है इस बारे में क्या मतलब है। हमने कहा कि शून्य, शून्य, शून्य, तो कोई हरे, कोई लाल, कोई नीले, आप काला देने जा रहा है। और यह पता चला है कि हमारे लैपटॉप के सबसे अभी काफी निष्ठा नहीं है। आप काफी वहाँ नहीं बता सकते हैं वास्तव में वहाँ कुछ है। और अगर आप की तरह हो सकता है दुबला आगे और पीछे अपनी स्क्रीन, हो सकता है आप एक देख पा रहे हैं वहाँ थोड़ा कुछ और? हो सकता है, एक तरह से, की तरह? यह पूरी तरह से काला नहीं है। दर्शकों: [सुनाई] डेविड मालन: बिगाड़ने! कुछ लाल, वहाँ है, लेकिन विशिष्टताओं से याद समस्या की, निक यह नीचे toned। उन्होंने कहा कि यह कुछ हद तक desaturated, लेकिन शून्य नहीं करने के लिए सभी तरह। इसलिए हम राशि बढ़ाना चाहते हैं लाल रंग का, मुझे इस चाल का प्रस्ताव करते हैं। मुझे मेरी स्क्रीन पर ज़ूम करते हैं। और मुझे आगे जाना है और हम कहते हैं राशि im.getRed (एक्स, वाई) के बराबर होती है। कोड की यह पंक्ति मुझे दे रहा है कुछ एक चर बुलाया। मैं मनमाने ढंग से किया है, लेकिन, यकीनन, यथोचित मेरे चर क्या कहा जाता है, जाहिरा तौर पर? रकम। सिर्फ राशि। मैं यह कहा जाता है सकते हैं कुछ भी मैं चाहता हूँ, लेकिन मैं कर रहा हूँ इस समारोह का उपयोग अन्य मैंने पहले बताया कि एक्स अल्पविराम Y पर लाल की राशि पाने के लिए। मैं ऐसा क्यों किया था? क्या तुम यहाँ क्या करना चाहते हैं? आप add-- करने की जरूरत है दर्शकों: [सुनाई] डेविड मालन: हाँ, हो सकता है 10 से गुणा। और अगर आप को यह पता नहीं है, मैं कर रहा हूँ आगे जाना है और यह करने के लिए जा रहा है। मैं आगे जाने के लिए जा रहा हूँ और कहते हैं, मैं लाल रंग की राशि चाहते हैं मैं जो कुछ भी होना चाहते हैं लाल पर है, बार 10, और सितारा, पर तारांकन अपने कीबोर्ड the-- एक्स का उपयोग नहीं करते है। स्टार का प्रयोग करें। यही कारण है कि आप चीजों को गुणा है सबसे प्रोग्रामिंग भाषाओं में। तो करीम का अंतर्ज्ञान के अनुसार, इस चर राशि कहा जाता है में संग्रहीत है, कितना लाल मैं स्थान पर XY चाहते है। कैसे, अब, मुझे लगता है कि ऐसा करना पिक्सेल है कि नंबर है? आप पहले से ही इस से पहले किया है। आप हरे रंग की और सेट कोई मूल्य नहीं करने के लिए नीले, शून्य करने के लिए। दर्शकों: [सुनाई] डेविड मालन: ठीक है, हाँ आप इसे 10 के लिए नहीं करना चाहती। आप पहले से ही गणित यहाँ था। इसलिए हम लाल के मूल्य में हो रही है जो एक कम संख्या, शायद है। हम 10 से ऊपर बढ़ रहे हैं। आप के साथ क्या करना चाहते हैं अब चर राशि है? दर्शकों: [सुनाई] डेविड मालन: अच्छा लगा। तो क्या im.set--? दर्शकों: setRed। डेविड मालन: स्थान XY पर setRed। हाँ। और बस राशि। दूसरे शब्दों में, एक चर एक अस्थायी प्लेसहोल्डर है कि आप कुछ भी आप चाहते डाल सकते हैं। हम एक डाल होना होगा यह नंबर, पल में। हम इसे से गुणा किया है 10 यह बड़ा बनाने के लिए। और अब मुझे लगता है कि चर प्रतिस्थापन कर रहा हूँ कि तीसरा तर्क, या इनपुट के रूप में लाल स्थापित करने के लिए। और इतना है कि एक बार आप खत्म कि, और ध्यान रखना अर्द्ध कॉलन और कोष्ठक की। आगे बढ़ो और क्लिक करें चलाने / फिर से बचाने के लिए, और आप देखना चाहिए, जादुई, वास्तव में क्या था क्या आप वहां मौजूद हैं। [? Arwa?] वहाँ क्या है? पूर्ण में एफिल टॉवर लाल, काफी अंधेरा नहीं। यह अब और अधिक स्पष्ट किया जाना चाहिए, हाँ? ठीक। और एंड्रयू, कोई और अधिक ब्लैक बॉक्स? दर्शकों: [सुनाई] डेविड मालन: ठीक है। तो मैं स्क्रीन पर इस रखेंगे। आप इस के साथ खेलना चाहते हैं बाद में, मैं आप के लिए इस विश्राम करेंगे। लेकिन इस कोड को यहाँ बिल्कुल ऐसा ही किया। क्यों हम एक दूसरे से नहीं करते हैं। मुझे थोड़ा नीचे स्क्रॉल करते हैं। तो इस मामले में, प्रोजेक्टर वास्तव में यह न्याय नहीं करता। लेकिन अपनी स्क्रीन पर, आप शायद एक बहुत ही लाल और बहुत ब्लैक बॉक्स है। यह भी एक पहेली है कि कुछ प्रसिद्ध चलता। हालांकि, छवि विकृत कर दिया गया है। यह सच है छवि, इस बार, है नीले और हरे रंग के मूल्यों में। हालांकि, वे सभी विभाजित किया गया है 20 से इसलिए मूल्यों को बहुत छोटे हैं। लाल मूल्यों बस रहे हैं यादृच्छिक संख्या, शोर। इन विकृतियों को पूर्ववत करें यह सच है छवि प्रकट करते हैं। तो निक तो आपको बताता है कि क्या करना है। शून्य करने के लिए लाल मूल्यों सेट करें, और तो खराब नहीं है कि यह क्या है। फिर नीले गुणा और 20 से हरी मूल्यों। तो यह लगभग है एक ही कार्यक्रम के रूप में पहले, लेकिन आप इस प्रक्रिया के पीछे रहे हैं। और मैं अपने कोड डाल दिया जाएगा पहले मामले में स्क्रीन पर आप इसे वापस उल्लेख करना चाहते हैं या कि एक के साथ आगे खेलते हैं। मुझे उस पर ज़ूम करते हैं। लेकिन तांबे की छवि का समाधान पहेली, नंबर दो। दर्शकों: [सुनाई] डेविड मालन: ठीक है, तो यह एक मैं हूँ के रूप में कई संकेत देने के लिए नहीं जा रहा है। तो मैं ओह would--, चलो देखते हैं, आप एक टाइपो यहाँ है। तो याद है, यह यहाँ वास्तव में वहाँ जाने की जरूरत है। तो मैं क्या प्रस्ताव होगा, अगर तुम चाहते हो यह एक पर ध्यान देते हैं, वहाँ जवाब है। आपको लगता है कि टाइप करने के लिए, कि चाहते हैं पहले एक काम कर रहे हो जाना चाहिए। और फिर आप उपयोग कर सकते हैं कि के रूप में एक दूसरे के लिए प्रेरणा। अच्छा लगा। अच्छा। और उत्सुक के लिए, यह एक सरल उदाहरण है एक विज्ञान या एक कला की स्टेग्नोग्राफ़ी कहा जाता है, छवियों में जानकारी को छिपाने की कला। आमतौर पर, छवियों हो सकता है बहुत शोर मचाते हुए वॉटरमार्क तल में एक लोगो के साथ कोने, लेकिन स्पष्ट रूप से, आप और अधिक परिष्कृत हो सकता है इसके बारे में और वास्तव में छवियाँ में अन्य छवियों को छिपाने किसी भी तरह इस तकनीक के साथ। एक और 30 सेकंड ले लो, और फिर हम करेंगे कम से कम घोषणा तुम क्या देखना चाहिए। और मैं तीसरे छोड़ देंगे एक में रहनेवाला व्यायाम के रूप में एक, आप एक से अधिक चाहते हैं इस सप्ताह के अंत चुनौती है। और मुझे लगता है कि हो सकता है एंड्रयू यह पहली बार मिल गया है। दूसरी छवि, एंड्रयू क्या है? दर्शकों: मूर्ति लिबरटी की। डेविड मालन: स्वतंत्रता की प्रतिमा इस सवाल का जवाब इस समय होगा। तो फिर, बस कुछ सरल उदाहरण, जिनमें से लक्ष्य आप कैसे की भावना दे रहा है हम सचित्र स्क्रैच अनुवाद किया है अधिक कष्टप्रद और अधिक करने के लिए ब्लॉकों जटिल कोड, लेकिन विचारों के सभी अभी भी वही कर रहे हैं, परिचय के साथ यद्यपि अब एक चर की धारणा का, किया जा रहा है कुछ अस्थायी रूप से स्टोर करने में सक्षम। चलो एक और हाथों पर करते हैं, बस अब डॉट्स कनेक्ट करने के लिए कुछ एक छोटे से अधिक वास्तविक दुनिया के लिए। जब आप तैयार हैं, अगर तुम सकता है स्क्रीन पर इस URL पर जाएं। यही कारण है कि की अपनी कॉपी में भी है स्लाइड, developers.google.com/maps~~V। वास्तव में कुछ करो वास्तविक, तो बात करने के लिए वेब पर गूगल मैप्स एपीआई का उपयोग कर, या एप्लीकेशन प्रोग्रामिंग इंटरफेस, निम्नलिखित तरीके से। गूगल, कई कंपनियों की तरह, मुक्त कार्यक्षमता का एक बहुत प्रदान करता है आप का निर्माण करने के लिए उपयोग कर सकते हैं कि आपके खुद दिलचस्प आवेदनों। वास्तव में, यदि आप कभी भी उपयोग किया उबेर एक टैक्सी या एक कार पाने के लिए, आप शायद जानते उबेर है कि एक नक्शा और यह इस पर कारों का पता चलता है। यही कारण है, जितना मैं कर सकता सबसे अच्छा के रूप में बताओ, गूगल मैप्स एपीआई। वे वास्तव में, गूगल के नक्शे का उपयोग कर रहे हैं लेकिन उबेर एक मानचित्रण कंपनी नहीं है, और न ही यह है कि एक होगा विशेष रूप से दिलचस्प समस्या के शीर्ष पर हल करने के लिए उनकी कार सेवा समस्या है। और इसलिए वे खड़े कर रहे हैं, फिर, कंधों पर दूसरों की, इस मामले में गूगल। इसलिए वे गूगल के नक्शे लेकिन उनके स्वयं के उपयोग कार सेवाओं और अन्य ऐसी सुविधाओं। इसलिए हम लाभ लेने के लिए जा रहे हैं इस के बाद क्या करना है। और मैं भी तेजी से चला गया है, बस मुझे एक पल में खत्म कहते हैं। छवि के सामान में से कुछ संक्षिप्त करने के लिए मुबारक हो। तुम अपने आप को देखना चाहिए इस तरह एक पेज पर। तो गूगल अच्छा है, और वे सबसे अच्छा बीच में हैं न केवल एपीआई प्रदान करने की, लेकिन मुक्त एपीआई कि आप साथ खेलने के लिए या व्यावसायिक तौर पर उपयोग कर सकते हैं। वे अपने उपयोग करता है, तो आप चार्ज करना शुरू कर उच्च है, लेकिन मैं अग्रिम में आगे चला गया और हमारे ऊपर हस्ताक्षर किए गए एक मुक्त खाते के लिए कि, उम्मीद है, 10 कंप्यूटर अचानक लिए हमें अयोग्य घोषित नहीं होंगे। तो उम्मीद है कि इस प्रदर्शन के लिए काम करेंगे। और नोटिस वे के लिए एपीआई है एंड्रॉयड, आईओएस, वेब, और वेब सेवाओं, जो कुछ भी है। वेब पर ध्यान केंद्रित करते हैं। तो गुलाबी बॉक्स, वेब, क्लिक करें और है कि आप का नेतृत्व करेंगे, उम्मीद है, एक पृष्ठ पर यहाँ। और वे एपीआई की एक पूरी गुच्छा मिल गया है। और यह एक छोटे हो सकता है पहली बार में भारी, लेकिन मुझे लगता है हमें हम क्या चाहते हैं के माध्यम से बधिया कर देंगे। ऊपर छोड़ दिया पर गूगल मैप्स है जावास्क्रिप्ट एपीआई, जावास्क्रिप्ट एपीआई। तो आगे चलते हैं और क्लिक करें कि एक। और कहा कि आप अब तक का नेतृत्व करेंगे पेज, क़ौम और नमूना कोड का पालन। मुझे यहाँ से बाहर ज़ूम करते हैं। और हमें है-- नीचे स्क्रॉल मेरे मिलता है जहां यह जल्दी शुरू कदम कहते हैं। अपनी स्क्रीन की खान की तरह दिखना चाहिए। और वहाँ दो कदम है, मिलता है एक महत्वपूर्ण और विकसित करने लगते हैं। मैं पहले से ही एक कदम के लिए किया था अमेरिका, एक तथाकथित कुंजी हो रही है। और यह एक आम विचार है। एक एपीआई कुंजी आम तौर पर सिर्फ है एक बड़ा यादृच्छिक संख्या या स्ट्रिंग आप अपेक्षा की जाती है कि अपने कोड में पेस्ट करने के लिए, तो यह है कि गूगल जानता है कि आप जो कर रहे हैं जब आप अपने एपीआई उनकी सेवा का उपयोग कर रहे हैं। इसका मतलब यह नहीं है कि हम कर रहे हैं कुछ भी आरोप लगाया जा रहा है। और अब, क्लिक करें, बजाय एक, विकासशील शुरू क्लिक करें। तुम सिर्फ मुझे लहर कर सकता है खत्म हो यकीन है कि जहां हम कर रहे हैं। तो हम बस खरोंच हूँ सतह, यहाँ लेकिन क्या मैंने सोचा कि सम्मोहक होगा वास्तव में हम सभी के लिए है, एक खिड़की में Cloud9 का उपयोग कर और अन्य विंडो में इस ट्यूटोरियल, वास्तव में हमारे अपने प्राप्त करने देता है आवेदन ऊपर है और चल कि एक कस्टम गूगल embeds हमारे अपने वेबपेज में नक्शा और फिर एक या दो सुविधाओं कहते हैं। लेकिन हम सिर्फ खरोंच हूँ हम क्या कर सकते हैं की सतह। तो बस एक त्वरित मानसिक स्वास्थ्य की जांच। हर कोई इस पेज पर है, गूगल मैप्स जावास्क्रिप्ट एपीआई? शुरू हो रही कहना चाहिए। हम के माध्यम से जाने के लिए नहीं जा रहे हैं किसी भी तरह से पूरी बात। ठीक है, अन्य टैब में, अगर तुम नहीं करते यह खुला है, Cloud9 में जाना है और अपने आप को सिर्फ करने के लिए मिलता है एक नया टैब, अंततः। तो फिर, कल से c9.io, c9.io, और सिर्फ एक नई फ़ाइल बनाएँ। और आगे जाना है और कॉल यह आप जो भी करना चाहते हैं। मैं मेरा map.html बुलाया। यह कुछ भी .html में समाप्त होने को बुलाओ। और अगर आप मोटे तौर पर होना चाहिए जहां मैं इस प्रक्रिया में हूँ एक खाली बस में एक निमिष प्रॉम्प्ट के साथ टैब map.html ऐसा कुछ कहा। या फ़ाइल, नई फ़ाइल इस बार। और अब, पर गूगल मैप्स जावास्क्रिप्ट एपीआई, हम पढ़ने छोड़ देंगे इस पाठ के माध्यम से सभी। लेकिन सूचना है कि हैलो दुनिया है वास्तव में हर जगह है, आप इसे अब देखते हैं। हैलो दुनिया के इस बड़े रंगीन है एचटीएमएल की एक पूरी गुच्छा का उदाहरण है। आगे बढ़ो और कॉपी और पेस्ट केवल यह है कि एचटीएमएल, शीर्ष पर डॉक्टर प्रकार से इसलिए बंद एचटीएमएल टैग के लिए सभी तरह, जाओ आगे और that-- के सभी फिर से नकल, कि नमस्ते विश्व के तहत है example-- और पेस्ट करें कि आपके Cloud9 टैब में, तो यह है कि अब आपकी स्क्रीन मोटे तौर पर खान की तरह दिखना चाहिए। और अगर आप इसे बचाने के लिए कर सकते हैं, लेकिन बस अभी तक यह लोड नहीं है। पर चलो पहले देखो कोड और अगर हम अनुमान या नहीं सीख सकते हैं क्या यह गूगल से है पड़ा है हमें आँख बंद करके कॉपी और पेस्ट। वे सिर्फ मदद करना चाहते हैं, सचमुच, हमें आरंभ करने, लेकिन वहाँ है कि ज्यादा नहीं है जटिलता वास्तव में वहाँ। कोई प्रश्न बस अभी तक? हम आगे बना करने के लिए सुरक्षित कर रहे हैं? ठीक। इतनी जल्दी चलो बस कुछ जल्दी विवेक जाँच करता है। रेखा के एक क्या मैं देखते हैं, और उम्मीद है, आप , इसका क्या मतलब है, doctype एचटीएमएल देखते? करीम, याद करते हैं? दर्शकों: [सुनाई] डेविड मालन: हां। यहाँ एचटीएमएल 5 आता है। इस बीच, पर दो लाइन स्क्रीन यहां अरे ब्राउज़र का मतलब है, यहाँ वास्तविक HTML आता है। लाइन तीन अरे ब्राउज़र है, यहां सिर आता है। रेखा चार, ज़ाहिर है, हे ब्राउज़र, यहाँ शीर्षक आता है। लाइन पांच क्या करता है? दरअसल, यह नहीं करता है वास्तव में हमारे लिए कुछ भी कर। इस मामले में, यह सिर्फ आकार बदलता है एक डिफ़ॉल्ट करने के लिए पृष्ठ। लाइन छह, हम के बारे में बात नहीं की है, लेकिन यह वर्ण एन्कोडिंग निर्दिष्ट करता है। वहाँ फ़ाइलों एन्कोड करने के लिए अलग अलग तरीके है, विशेष रूप से विदेशी भाषाओं के लिए। UTF-8 बस डिफ़ॉल्ट हो जाता है। तो अब हम लाइन में देखेंगे 16 के माध्यम से सात, कुछ सीएसएस। और फिर भी हम नहीं देखा है इन बातों से पहले के सभी, हम किस तरह का अनुमान कर सकते हैं। तो आठ साधन लाइन, हे ब्राउज़र, लागू जिसके बाद करने के लिए दो टैग के सभी, जाहिरा तौर पर? एचटीएमएल और शरीर पाठ। तो अल्पविराम वहाँ नई बात है। और वह बस का एक तरीका है एक बार में एकाधिक टैग निर्दिष्ट। तो फिर हम घुंघराले ब्रेसिज़ मिल गया है। तो जाहिर है, इस ब्राउज़र बताता है, पेज 100% की ऊंचाई बनाते हैं। तो वहाँ बहुत कम है, भले ही सामग्री, पूरे पेज बनाने, बात पेज भरने बनाते हैं। नक्शा अंततः पेज भरने बनाओ। मार्जिन, इसका क्या मतलब है? यही कारण है कि आम तौर पर मनमाने ढंग से की तरह है किनारों के आसपास सफेद स्थान कि कुछ ब्राउज़र डिजाइनर सिर्फ , वहाँ होना चाहिए फैसला किया है क्योंकि यह तरह की बातें करता है क्लीनर देखो। लेकिन हम चाहते हैं कि नहीं करना चाहती। हम चाहते हैं कि नक्शा जा रहा किनारों के लिए सभी तरह। Padding, मार्जिन की भावना में समान है। हाशिये के बाहर, गद्दी साधन मतलब अंदर है, लेकिन यह सौदा की इसी तरह की है। यह एक बफर का एक छोटा सा है आप और किनारों के बीच। और फिर 13 लाइन एक अच्छा है एक त्वरित समीक्षा के लिए मौका है। क्या तेज साइन नक्शा करता है मतलब, या हैशटैग नक्शा मतलब है? क्या है कि सिद्धांत रूप में, का उल्लेख करता है? दर्शकों: [सुनाई] डेविड मालन: बिल्कुल। यह संपत्ति, इस सीएसएस संपत्ति सिर्फ एक ही बात करने के लिए लागू होता है, एचटीएमएल टैग लगता है कि बोली की एक आईडी, गंदें शब्द बोलना "नक्शा" है। और अब चलो तेजी से आगे, पुस्तक फ़ाइल के नीचे, जो करने के लिए नीचे बहुत दूर नहीं है, और लाइन पर नोटिस 19, आप वास्तव में यह पेस्ट, तो जैसे मैंने किया था, लाइन 19 सिर्फ एक div है, जो एक है पेज, जो कल मैं का विभाजन एक आयताकार क्षेत्र कहा जाता है। यह उस में कुछ भी नहीं मिला है। यह एक खुला टैग, करीब टैग है। लेकिन यह एक अद्वितीय पहचान है। तो क्या हो रहा है यहाँ क्या हो रहा है गूगल हमारी वेब पेज तैयारी कर रहा है एक पूरा 100% ऊंचाई है, और कोई गद्दी, कोई मार्जिन, क्योंकि क्या हम अंदर डाल करने के लिए जा रहे हैं इस div, जिसका अद्वितीय पहचान है नक्शे, एक वास्तविक एम्बेडेड नक्शा है। और हम इसे भरने के लिए चाहते हैं पेज और नहीं बस बीच में कुछ छोटे आयत हो। तो लाइन 14 इसी तरह जोर देती है, नक्शा ही 100% की ऊंचाई होनी चाहिए। तो अब लाइनों के बीच 20 को नोटिस और 28, इस जावास्क्रिप्ट कोड है। और यह है, यह भले ही वाक्य रचना से थोड़ा अजीब, वहाँ नहीं है कि बहुत सारे यहाँ पर जा रहा है। लाइन 21 में, यह घोषित किया जाता है कुछ एक चर बुलाया। इसके बजाय यह बुलाने की जैसे हम पहले किया था, मात्रा, हम और अधिक ठीक कह रहे हैं वर, जो सिर्फ चर का मतलब है। हम इस्तेमाल किया जा सकता है कि में निक के कोड, लेकिन उन्होंने ऐसा नहीं किया, तो मैं या तो यह क्या कर रही जहमत नहीं उठाई। यह एक चर बुलाया नक्शा, और फिर वहाँ है एक समारोह है कि जाहिरा तौर पर initMap बुलाया। तो यह हमारे स्वयं के कस्टम की तरह है खरोंच में पहेली टुकड़ा। हम का एक टुकड़ा बना लिया है initMap बुलाया कार्यक्षमता, और आप की तरह अनुमान कर सकते हैं यहाँ क्या चल रहा है। बाएं हाथ की ओर, हम एक चर मिल गया है, इसलिए हम निम्नलिखित डाल करने के लिए जा रहे हैं उस चर अंदर की बात है, दांये से बांये तक। दाहिने हाथ की ओर कहते हैं, अरे ब्राउज़र, मुझे एक नया गूगल मानचित्र दे। और google.maps.map सिर्फ एक कायरता तरीका है निर्दिष्ट करने के इस कार्यक्षमता है कि गूगल मैप्स के अंतर्गत आता है। कोष्ठकों के बाद, हमने देखा है इस से पहले, हे ब्राउज़र, मिल मेरे पेज में तत्वों, पेज जिसका अद्वितीय पहचान में टैग है- दर्शकों: [सुनाई] डेविड मालन: --map। और क्या, ठीक चल रहा है, इस लाइन को एक साथ, रेखा 23, अनिवार्य रूप से कह रहा है, अरे ब्राउज़र, मुझे मिल जाना पेज पर कि खाली div जिसका अद्वितीय पहचान नक्शा है, क्योंकि मैं सम्मिलित करना चाहते हैं it-- इसे में इंजेक्षन में, यदि आप सामग्री की एक पूरी गुच्छा will-- यदि कि वेब से आ रही होना होता है, बाद में। और गूगल के हमारे लिए है कि सभी कर रहे हैं। तो फिर, दिन के अंत में, हम अमूर्त के इस उदाहरण है। मैं क्या एक नक्शा है पता नहीं है या कैसे एक नक्शा एपीआई को लागू करने के लिए। हम की जरूरत नहीं है। हम सिर्फ नक्शा बताने की जरूरत जहां खुद को डाल दिया, और छोड़ने के लिए उन अंतर्निहित कार्यान्वयन गूगल के लिए विवरण। अब वहाँ जाहिरा तौर पर है डेटा के दो टुकड़े इस उदाहरण है गूगल के एपीआई के लिए प्रदान करते हैं। जाहिर है नक्शे के केंद्र, और ज़ूम स्तर, तो बात करो। और किसी को भी इन पहचान करता है निर्देशांक, अक्षांश और देशांतर? शायद नहीं, लेकिन हम वापस जा सकते हैं ट्यूटोरियल के लिए, सचमुच देखें। लेकिन हम सिर्फ एक क्षण में इसे देखेंगे। ज़ूम स्तर के बीच एक मूल्य के मैं नहीं पता है, 13 में एक या ऐसा कुछ। यह सिर्फ आप कैसे दूर कर रहे हैं के साथ नहीं है में या बाहर तेजी से बढ़ी है, और यह बात है। और अब के बहुत अंत में पेज, नोटिस लाइन 29-- यह इसलिए है क्योंकि एक छोटी सी बदसूरत है यह कोड की इस पंक्ति wraps-- क्या करने के लिए डाउनलोड करता है ब्राउज़र गूगल के वास्तविक एपीआई। कोड के सभी है कि गूगल की इंजीनियरों को लागू लिखा है embeddable नक्शे के इस पूरे सुविधा। अब चलो कुछ भी बदलने नहीं। आप के साथ पालन कर रहे हैं, आगे बढ़ो और सिर्फ इतना है कि फाइल को बचाने, अगर आप वास्तव में है जो मेरे पास है। इसके URL पर जाएं। तुम भागो बटन क्लिक कर सकते हैं शीर्ष अप और कहा कि बता देंगे आप फिर से अपने वेब सर्वर का URL। और यह एक नया टैब को बढ़ावा मिलेगा। आप के लिए क्लिक करें खुला तो map.html, और बाधाओं आप कर रहे हैं एक सूचना पाने के लिए जा रहा है, एक त्रुटि संदेश, हाँ? त्रुटि संदेश त्रुटि संदेश? तो दुर्भाग्य से, त्रुटि संदेश है कि शिक्षाप्रद नहीं है जब तक आप वास्तव में खुले कंसोल, कि विशेष टैब हम कल खोलने रखा है और एक छोटा सा पहले आज। लेकिन मैं भर में ठोकर खाई यह पहले है, इसलिए मैं पहले से ही समझ से बाहर क्या समाधान है। आज के स्लाइड में, या बल्कि, Cloud9 में, नोटिस हम ऐसा नहीं था कि जानबूझ कर कुछ और। सूचना है कि इस स्क्रिप्ट टैग रेखा 29, आप इसे माध्यम से पढ़ा है, यह maps.googleapis.com/ की तरह है कुछ, कुछ, कुछ, फिर किसी को नोटिस, डेवलपर्स में से एक, सभी राजधानी में लिखा था पत्र, अपने एपीआई कुंजी। हम वहाँ में कुछ पेस्ट करने की जरूरत है। और इस कदम था मैं हमारे लिए पहले किया था, और फिर वे काला सूची में डालना हो सकता है हमें अचानक हैं, तो 12 या हम में से अधिक एक ही कुंजी का उपयोग शुरू, लेकिन देखते हैं क्या होता है। तो अगर आप आज के में जाने स्लाइड, एक स्लाइड बाद में, वहाँ है पाठ के इस बहुत ही कायरता दिखने स्ट्रिंग। आगे बढ़ो और सिर्फ इतना है कि कॉपी और यह पेस्ट जहां यह अपने एपीआई कुंजी कहते हैं। यही कारण है कि मैं एक के लिए हस्ताक्षर किए हैं। और निश्चित रूप से कोशिश नहीं करते स्वयं इसे बाहर टाइपिंग, क्योंकि यह भरा लगता है typos के साथ, संभावित। तो बस कॉपी और पेस्ट है। और यह लाइन बनाने जा रहा है अब, लेकिन अब, अभी स्पष्ट होना करने के लिए, यह एक छोटे से अधिक दिखना चाहिए यही नहीं, जहां कुंजी नहीं के बराबर होती है जैसे तुम पर चिल्ला पूंजीकृत। अपने पृष्ठ सहेजें, वापस जाओ अन्य टैब के लिए, पुनः लोड, और जहां का एक नक्शा देखने की उम्मीद है? दर्शकों: ऑस्ट्रेलिया। डेविड मालन: ऑस्ट्रेलिया। तो जाहिरा तौर पर उन लोगों के हैं जीपीएस ऑस्ट्रेलिया का समन्वय करता है। और मुझे बस एक पल के लिए चारों ओर चलें और जो कोई नहीं काफी वहाँ की मदद लेकिन मेरे प्रस्ताव गूगल के माध्यम से, ढूँढते हैं, जीपीएस अपने गृहनगर के निर्देशांक या अपने खुद के घर देश। और शायद गूगल इस बारी कर सकते हैं अप, या विकिपीडिया आप बता सकते हैं। लेकिन दो अलग मूल्यों का चयन अक्षांश और देशांतर के लिए, में वापस जाने के लिए और उन्हें पेस्ट, और तो बचाने के बाद पृष्ठ पुनः लोड और देखो कि तुम एक हो सकता है अपने गृहनगर के लिए चुने। और आप के साथ काम कर रहे हैं जब कि, अनुवर्ती challenge-- और मैं, एक छोटे से कम दिशा दे दूँगा जान-बूझकर, ताकि आप जान-बूझकर एक जोड़ी के लिए संघर्ष करना पड़ता है दस्तावेज के साथ मिनट, नक्शा बदल यह नहीं होना करने के लिए cartoonish डिफ़ॉल्ट, लेकिन एक उपग्रह नक्शे। तो अगर आप वास्तव में उपग्रह को देखने के सुंदर रंग के बजाय कल्पना। और संकेत मैं तुम्हें दे दूँगा नक्शे के प्रकार बदलने के लिए है। हो रही है कि करने के लिए वापस जाओ प्रेरणा के लिए पेज शुरू कर दिया। आप gleaned हो सकता है, आप देख रहे हैं, वहां खूब सारा है चीज़ें जो आप कर सकते हों। आप में से कुछ पहले से ही है नक्शा प्रकार बदल दिया है। लेकिन आप उदाहरण के लिए do-- कर सकते हैं, मुझे जाने कुछ हम पाठ्यक्रम के लिए क्या किया जाना मैं maps.cs50.net teach--। हमारे undergrads से एक ऐसा किया। हम हार्वर्ड यार्ड और अधिक से अधिक हमारे नक्शे केंद्र इन इमारत नाम के सभी ओवरले, और हम उसे इस जोड़ने के लिए किया था। तो अगर मैं के लिए खोज करना चाहते हैं, उदाहरण के लिए, मैथ्यू हॉल, हम एक छोटे से ड्रॉप-डाउन मेनू है। और मुझे लगता है कि वह बूटस्ट्रैप, इस्तेमाल कर रहा है पुस्तकालय हम इस के लिए पहले भी चर्चा की। और तुम मैथ्यू पर क्लिक करते हैं हॉल, इसे तुरंत एक निश्चित करने के लिए नक्शे कूदता स्थान, और यह दिखाता है आप इस छोटे से पॉप-अप में एक तस्वीर। लेकिन फिर भी इस छोटे से पॉप-अप, हम को लागू नहीं किया। अगर मैं हमारे रही पर नीचे स्क्रॉल पेज शुरू किया और जानकारी विंडो के लिए लग रही है, आप जो कुछ देखेंगे कार्यक्षमता आप अपने आप को जोड़ सकते हैं, यद्यपि के साथ थोड़ा और अधिक जटिलता, कुछ जानकारी विंडो कहा जाता है। और अगर मैं एक उदाहरण के लिए क्लिक करें यहां, और यह क्या मज़ा है, आप इस तरह की बातें कर सकते हैं, देखा एक मार्कर पर क्लिक करके और फिर, जानकारी के चबूतरे। इसलिए हम काफी पेश नहीं किया जावास्क्रिप्ट के लिए पर्याप्त सुविधाओं वास्तव में की तस्वीर उभर आती है आप कैसे यह सब के सब एक साथ तार सकता, लेकिन हम एक तरह से सतह खरोंच है। वास्तव में, क्या मैं बस जब किया मुझे लगता है कि मार्कर पर क्लिक किया, एक घटना, एक ट्रिगर था क्लिक करें घटना पर तथाकथित। और हम वास्तव में देखा एक घटना इससे पहले आज, तथाकथित घटना प्रस्तुत है, जब हम रोकने थे बिल्लियों के लिए खोज से उपयोगकर्ता। इसलिए हम एक तरह से उठाया और choosed गए इन सभी विभिन्न सुविधाओं के बीच से, आप भावना देने के लिए, उम्मीद है, की क्या आप वास्तव में कर सकते हैं थोड़ा और अधिक के साथ क्या प्रोग्रामिंग में आराम, और पूरी तरह से मुक्त संसाधनों। कोई सवाल? नहीं? यह आपका अंतिम मौका है, कम से कम आज, शुक्रवार को, अपने सीने से कुछ भी पाने के लिए इतनी है कि आप यहाँ से बाहर चलना आत्मविश्वास और आरामदायक महसूस कर रही। हाँ। दर्शकों: क्यों नहीं करते आप एक बात और जोड़ सकते हैं? डेविड मालन: हे भगवान। मैं इस सप्ताह के अंत में आराम करने की जरूरत है, मुझे लगता है। अन्य सवाल? दर्शकों: [सुनाई] डेविड मालन: आप ने can-- इंटरनेट एक्सप्लोरर, शांति, आप वीबी डाल करने में सक्षम होना करने के लिए इस्तेमाल किया स्क्रिप्ट, आभासी बुनियादी स्क्रिप्ट, लेकिन लगता है कि वास्तव में कभी नहीं पकड़ा। तो कम जवाब सिर्फ जावास्क्रिप्ट है। अन्य सवाल? ठीक है, ठीक है, मुझे यह करते हैं। मुझे बाहर हमारे सहयोगियों ले लो। वे कुछ मूल्यांकन किया है रूपों है कि वे हर किसी को चाहते हैं कुछ ही मिनट खर्च करने के लिए बाहर भरने। वे उस रूप को इकट्ठा करना चाहते हैं और किसी भी छूट आप बाहर हो सकता है। उन्होंने यह भी प्रमाण पत्र दिया जाएगा। मैं वहाँ लग रहा है अभी भी बाहर कुछ नाश्ता। मुझे इन बाहर होकर जाने दे, और यदि आप , इस बीच में किसी भी सवाल है मैं चारों ओर और अधिक व्यक्तिगत रूप से चलना होगा और हम आप शुरू कर सकते हैं। हां बिल्कुल। दर्शकों: [सुनाई] डेविड मालन: यही कारण है कि आमतौर पर इन दिनों सच है। निश्चित रूप से वेब के साथ सॉफ्टवेयर, आप झुकाव रहे हैं दूसरों पर या तो आप कर रहे हैं सौंदर्य की दृष्टि से चीजों का उपयोग बूटस्ट्रैप तरह है, तो आप नहीं करते निम्न स्तर को लागू करने के लिए है मेनू के विवरण और बटन और यह सब। आप किसी पर झुकाव रहे हैं गूगल की तरह है कि ताकि आप एक उबेर का निर्माण करने की जरूरत नहीं है व्यापार और एक मानचित्रण व्यापार, और इसी तरह के किसी भी संख्या साथ ही आवेदन पत्र। वास्तव में, लॉगिन लोकप्रिय भी हैं। यदि आप Spotify या उपयोग किया है वेबसाइटों के किसी भी संख्या, यदि आप कुछ करने के लिए लॉग इन करेंगे फेसबुक का उपयोग वेबसाइटों। तो क्या अच्छा है, वहाँ है लॉगिन के लिए एपीआई हैं आजकल, तुम नहीं है तो यह है कि अपने खुद के उपयोगकर्ताओं टेबल है और अपने खुद के डेटाबेस के सभी जरूरी उसी हद तक। आप फेसबुक सब क्या कर सकते हैं आप के लिए है कि जटिलता की। तो यह एक रोमांचक समय है, ईमानदारी से, प्रोग्रामिंग में, क्योंकि वहाँ बहुत सारे तीसरे पक्ष के हैं सेवाओं है कि आप के शीर्ष पर निर्माण कर सकते हैं। और फिर, कीमत है जो आप भुगतान करना है या तो वित्तीय या डाउनटाइम। गूगल नीचे चला जाता है, इसलिए उबेर करता है, यकीनन, एक लेकिन शायद यही है उचित व्यापार बंद। और फिर, कि विषयों में से एक था, उम्मीद है, पिछले कुछ दिनों से लिए, इन व्यापार-नापसंद है। और शायद ही कभी वहाँ जा रहा है एक सही जवाब हो सकता है। यह वास्तव में बेहतर है दो या दो से अधिक जवाब की। इन चारों ओर गुजरती हैं। और इन खातों Cloud9 जारी रहेगा काम करने के लिए, सिद्धांत में, शाश्वत। आपको मिल सकता है अगर आप कुछ दिनों के इंतजार या एक सप्ताह या उससे अधिक के लिए उन्हें वापस में प्रवेश करने के लिए, यह एक या एक तरह ले सकता है पांच मिनट तक वापस खोलने के लिए, लेकिन लगता है कि सिर्फ इसलिए कि वे डाल दिया है यह संसाधनों को बचाने के लिए सोने के लिए।