דוד י מאַלאַן: אַלע רעכט. אַזוי באַגריסונג צו דער ערשטער אלץ קס50 פּאָסטמאָרטעם פֿאַר אַ ויספרעג. מיר געדאַנק מיר 'ד ינאָגיערייט דעם מסורה דעם יאָר. און דעם וועט זיין אַ געלעגנהייט צו גיין דורך די סאַלושאַנז צו די ויספרעג. און מיר וועט גיכקייַט אַרויף אָדער פּאַמעלעך אַראָפּ באזירט אויף אינטערעס פון די דאָ. אַזוי איר ניטאָ מיסטאָמע דאָ ווייַל איר ניטאָ אינטערעסירט אין ווי איר קען האָבן אדער זאָל האָבן געענטפערט עטלעכע פון די פּראָבלעמס. אזוי וואָס טאָן ניט מיר נעמען אַ קוק אין דעם אָפּטיילונג ערשטער? אַזוי געטינג סטרינגס. דעם האט איר דרייַ פאַרשידענע ווערסיעס פון אַ פּראָגראַם וואָס איז געווען, לעסאָף, מענט צו באַקומען אַ שטריקל פון אַ באַניצער. צי אָדער ניט עס האט אַז איז געווען לינקס צו איר צו באַשליסן. און מיר געבעטן אין פראגע 0, רעכן אַז ווערסיע 1 איז צונויפגעשטעלט און עקסאַקיוטאַד. וואָס זאל דער פּראָגראַם סעגפאַולט? בייַ ערשטער בליק, קיין פֿירלייגן ווי צו וואָס? יאָ. וילעם: אזוי איך געדענקען געזען דעם אין אַ פרייַערדיק בייַשפּיל פון קוקן בייַ די טשאַר * s און געזען די יבערקוקן פון די s און געזען ווייַל עס ס אַ טייַטל, ווי האט עס ווירקן וואָס איר סקאַנד אין? איז עס s אָדער די אַדרעס פון ס? דוד י מאַלאַן: גוט. גוט. אַזוי לעסאָף, די מקור פון קיין פּראָבלעם איז מאַשמאָעס געגאנגען צו רעדוצירן צו אַז בייַטעוודיק ס. און עס ס טאַקע אַ בייַטעוודיק. די דאַטע טיפּ פון אַז בייַטעוודיק איז טשאַר *, וואָס מיטל עס ס געגאנגען צו אַנטהאַלטן די אַדרעס פון אַ כאַראַקטער. און דערין ליגט די ינסייט. עס ס געגאנגען צו אַנטהאַלטן די אַדרעס פון אַ העלד אָדער, מער בכלל, די אַדרעס פון דער ערשטער העלד אין אַ גאַנץ בלאָק פון אותיות. אבער די כאַפּן איז אַז יבערקוקן ס, ציל אין לעבן, איז געגעבן אַן אַדרעס און געגעבן אַ פֿאָרמאַט קאָד, ווי s%, לייענען אַ שטריקל אין די פּייַדע פון זיקאָרן בייַ אַז אַדרעס. אבער ווייַל עס ס ניט גלייַך צייכן פאר אַז פּינטל - קאָמע אויף דער ערשטער שורה פון קאָד, ווייַל מיר טאָן ניט פאקטיש אַלאַקייט קיין זיקאָרן מיט מאַללאָק, ווייַל עס האט ניט פאקטיש אַלאַקייט אַ מענגע פון ​​עטלעכע גרייס, אַלע איר ניטאָ טאן איז לייענען דער באַניצער ס קלאַוויאַטור אַרייַנשרייַב אין עטלעכע גאַנץ מיסט ווערט, וואָס איז אין ס דורך פעליקייַט. אַזוי שאַנסן זענען איר ניטאָ געגאנגען צו סעגפאַולט אויב אַז אַדרעס טוט ניט נאָר אַזוי פּאַסירן צו זיין אַ ווערט אַז איר קענען, אין פאַקט, שרייַבן צו. אַזוי שלעכט ניט צו אַלאַקייט אייער זיקאָרן עס. אַזוי אין קשיא 1, מיר געבעטן, רעכן אַז ווערסיע 2 איז צונויפגעשטעלט און עקסאַקיוטאַד. וואָס זאל דעם פּראָגראַם סעגפאַולט? אזוי דעם איינער איז ווייניקער וואָגן. און עס ס טאַקע נאָר איין קלאָר ווי דער טאָג וועג ווו איר קענען צינגל אַ סעגפאַולט דאָ. און דעם איז טהעמאַטיק. קיין צייַט מיר ניטאָ ניצן C אין זיקאָרן, וואָס קען איר טאָן צו פּויעלנ בייַ אַ סעגפאַולט מיט ווערסיע 2? וילעם: אויב איר נוצן אַז אַרייַנשרייַב אין אַ שטריקל אַז ס מער ווי 49 אותיות. דוד י מאַלאַן: פּונקט. קיין צייַט איר זען עפּעס פאַרפעסטיקט לענג ווען עס קומט צו אַ מענגע, דיין ראַדאַר זאָל גיין אַוועק אַז דעם קען זיין פּראָבלעמאַטיק אויב איר 'רע ניט קאָנטראָלירונג די באַונדריז פון אַ מענגע. און אַז ס די פּראָבלעם דאָ. מיר ניטאָ נאָך ניצן סקאַנף. מיר ניטאָ נאָך ניצן s%, וואָס מיטל פּרובירן צו לייענען אַ שטריקל פון דער באַניצער. אַז ס געגאנגען צו זיין לייענען אין ס, וואָס, בייַ דעם פונט, איז יפעקטיוולי די אַדרעס פון אַ פּייַדע פון ​​זכּרון אָדער עס ס עקוויוואַלענט. עס ס די נאָמען פון אַ מענגע פון אותיות פון זיקאָרן. אבער פּונקט אַז, אויב איר לייענען אַ שטריקל אַז ס מער ווי 49 אותיות, 49 ווייַל איר דאַרפֿן פּלאַץ פֿאַר די באַקסלאַש 0, איר ניטאָ געגאנגען צו לויפן אַז באַפער. און איר זאל באַקומען מאַזלדיק און קענען צו שרייב אַ 51 כאַראַקטער, 52, 53. אבער אין עטלעכע פונט, די אַס איז געגאנגען צו זאָגן, ניט. דעם באשטימט איז ניט זיקאָרן איר ניטאָ ערלויבט צו רירן. און דער פּראָגראַם איז געגאנגען צו סעגפאַולט. אַזוי עס, די העוריסטיקס זאָל זיין קיין צייַט איר 'ווע גאַט פאַרפעסטיקט לענג, איר האָבן צו מאַכן זיכער איר ניטאָ טשעק די לענג פון וועלכער עס איז איר ניטאָ טריינג צו לייענען אין עס. וילעם: אזוי צו סאָלווע אַז, איר געקענט האָבן געהאט אַ דערקלערונג טשעק פאקטיש איז די לענג גרעסער ווי אָדער ווייניקער ווי? דוד י מאַלאַן: לעגאַמרע. איר נאָר האָבן אַ צושטאַנד אַז זאגט, אויב די - אָדער גאַנץ איר טאָן ניט דאַווקע וויסן אין שטייַגן ווי פילע אותיות די באַניצער איז געגאנגען צו דרוקן, ווייַל איר האָבן הון און די יי. ניט ביז איר 'ווע לייענען עס אין מיט סקאַנף קענען איר געשטאַלט אויס ווי לאַנג עס איז. אבער בייַ אַז פונט, עס ס אויך שפּעט, ווייַל איר 'ווע שוין לייענען עס אין עטלעכע בלאָק פון זיקאָרן. אַזוי ווי אַ באַזונדער, די קס50 ביבליאָטעק אַוווידז דעם אַרויסגעבן בעסאַכאַקל, צוריקרופן דורך ניצן פגעטק. און עס לייענט איין כאַראַקטער אין אַ צייַט, שפּיץ-טאָוינג צוזאמען, געוואוסט אַז איר קענען ניט לויפן אַ העלד אויב איר לייענען איינער אין אַ צייַט. די כאַפּן איז מיט געצטרינג צוריקרופן איז אַז מיר האָבן צו קעסיידער שייַעך-גרייס אַז פּייַדע פון ​​זיקאָרן, וואָס איז נאָר אַ ווייטיק. עס ס אַ פּלאַץ פון שורות פון קאָד צו טאָן אַז. אַזוי אנדערן צוגאַנג וואָלט זיין צו פאקטיש נוצן אַ קוזינע, אַזוי צו רעדן, פון סקאַנף. עס זענען וועריאַנץ פון אַ פּלאַץ פון די פאַנגקשאַנז אַז פאקטיש קאָנטראָלירן די לענג פון ווי פילע אותיות איר זאל לייענען מאַקסימאַללי. און איר קען ספּעציפיצירן, טאָן ניט לייענען מער ווי 50 אותיות. אַזוי אַז וואָלט זיין אנדערן צוגאַנג אָבער ווייניקער אַקאַמאַדייטינג פון גרעסערע ינפּוץ. אַזוי פרעגן 2 פרעגט, רעכן אַז ווערסיע 3 איז צונויפגעשטעלט און עקסאַקיוטאַד. וואָס זאל אַז פּראָגראַם סעגפאַולט? אזוי דעם איינער איז פאקטיש דער זעלביקער ענטפֿערן, אפילו כאָטש עס קוקט אַ ביסל פאַנסיער. מיר ניטאָ ניצן מאַללאָק, וואָס פילז ווי מיר ניטאָ געבן זיך מער אָפּציעס. און דעמאָלט מיר ניטאָ פריינג אַז זיקאָרן אין די סוף. עס ס נאָך נאָר 50 ביטעס פון זיקאָרן. אַזוי מיר זאלן נאָך פּרובירן צו לייענען אין 51, 52, 1000 ביטעס. עס ס געגאנגען צו סעגפאַולט פֿאַר פּונקט דער זעלביקער סיבה. אבער עס איז אן אנדער סיבה אויך. וואָס אַנדערש קען מאַללאָק צוריקקומען אויסערדעם די אַדרעס פון אַ פּייַדע פון ​​זיקאָרן? עס קען צוריקקומען נאַל. און ווייַל מיר ניטאָ ניט טשעק פֿאַר אַז, מיר זאל זיין טאן עפּעס נאַריש פֿאַר אן אנדער סיבה, וואָס איז אַז מיר זאל זיין טעלינג סקאַנף, לייענען דער באַניצער ס אַרייַנשרייַב פון די קלאַוויאַטור אין 0 אָרט, אַקאַ נאַל. און אַז, צו, וועט באשטימט צינגל אַ סעגפאַולט. אַזוי פֿאַר די ויספרעג ס ציל, מיר וואָלט האָבן אנגענומען אָדער פון די ווי אַ גילטיק סיבה. איינער איז יידעניקאַל. איינער איז אַ ביסל מער נואַנסט. לאַסטלי, מיט רעספּעקט צו די פּראָגראַם ס נוצן פון זיקאָרן, ווי טאָן ווערסיע 2 און ווערסיע 3 אַנדערש? אַזוי פֿאַר וואָס עס ס ווערט, מיר געזען אַ אַ פּאָנעם אָנ אַ סאָף צושטעלן פון מעגלעך ענטפֿערס צו דעם. און צווישן מענטשן ס ענטפֿערס, וואָס מיר זענען געווען כאָופּינג פֿאַר, אָבער מיר אנגענומען אנדערע דאס, איז געווען עטלעכע דערמאָנען פון די פאַקט אַז ווערסיע 2 איז ניצן די אַזוי גערופענע אָנלייגן. ווערסיע 3 איז ניצן די קופּע. און פאַנגקשאַנאַלי, דעם טוט ניט טאַקע מאַכן אַלע אַז פיל פון אַ חילוק. אין די סוף פון די טאָג, מיר ניטאָ נאָך נאָר געטינג 50 ביטעס פון זיקאָרן. אבער אַז איז געווען איינער פון די מעגלעך ענטפֿערס אַז מיר זענען קוקן בייַ. אָבער איר וועט זען, ווי איר באַקומען אייער קוויזיז צוריק פון די טפס, אַז מיר האבן אָננעמען אנדערע דיסקוסיעס פון זייער דיספּעריט ניצט פון זיקאָרן ווי געזונט. אבער אָנלייגן און קופּע וואָלט האָבן שוין אַ גרינג ענטפער צו גיין מיט. קיין שאלות? איך געבן איר באַגאַזלענען. באַגאַזלענען באָודאַן: אזוי פּראָבלעם 4. דעם איז דער איינער ווו איר האט צו פּלאָמבירן אין די נומער פון ביטעס אויס פון אַלע די פאַרשידענע טייפּס געוויינט. אַזוי ערשטער זאַך מיר זען. יבערנעמען אַ 32-ביסל אַרקאַטעקטשער, ווי דעם קס50 מאַכשער. אַזוי איינער פון די פונדאַמענטאַל זאכן וועגן 32-ביסל אַרקאַטעקטשערז, אַז דערציילט אונדז פּונקט ווי גרויס אַ טייַטל איז געגאנגען צו זיין אין די אַרקאַטעקטשער. אַזוי מיד, מיר וויסן אַז קיין טייַטל טיפּ איז 32-ביטן אָדער 4 ביטעס. אַזוי קוקן בייַ דעם טיש, אַ נאָדע * איז אַ טייַטל טיפּ. אַז ס געגאנגען צו זיין 4 ביטעס. סטרוקט נאָדע *, אַז ס ממש יידעניקאַל צו נאָדע שטערן. און אַזוי אַז ס געגאנגען צו זיין 4 ביטעס. שטריקל, אַזוי עס טוט ניט קוקן ווי אַ טייַטל נאָך, אָבער די טיפּעדעף, אַ שטריקל איז נאָר אַ טשאַר *, וואָס איז אַ טייַטל טיפּ. אַזוי אַז ס געגאנגען צו זיין 4 ביטעס. אַזוי די דרייַ זענען אַלע 4 ביטעס. איצט, נאָדע און תּלמיד זענען אַ ביסל מער קאָמפּליצירט. אַזוי קוקן בייַ נאָדע און תּלמיד, מיר זען נאָדע ווי אַ ינטאַדזשער און אַ טייַטל. און תּלמיד איז צוויי פּוינטערז ין פון עס. אַזוי בייַ מינדסטער פֿאַר אונדזער פאַל דאָ, די וועג אַז מיר סוף אַרויף קאַלקיאַלייטינג די נומער פון דעם סטרוקט איז פּונקט לייגן אַרויף אַלץ אַז ס ין דער סטרוקט. אַזוי פֿאַר נאָדע, מיר האָבן אַ ינטאַדזשער, וואָס איז 4 ביטעס. מיר האָבן אַ טייַטל, וואָס איז 4 ביטעס. און אַזוי איינער נאָדע איז געגאנגען צו נעמען אַרויף 8 ביטעס. און סימאַלערלי פֿאַר תּלמיד, מיר האָבן אַ טייַטל אַז ס 4 ביטעס און אנדערן טייַטל אַז ס 4 ביטעס. אַזוי אַז ס געגאנגען צו סוף אַרויף זייַענדיק 8 ביטעס. אַזוי נאָדע און תּלמיד זענען 8 ביטעס. און די דרייַ זענען אַלע 4 ביטעס. פֿראגן אויף אַז? יאָ. וילעם: איז עס איז געווען אַ 64-ביסל אַרקאַטעקטשער, וואָלט אַז טאָפּל אַלע פון ​​זיי? באַגאַזלענען באָודאַן: עס וואָלט ניט טאָפּל אַלע פון ​​זיי. אַזוי 64-ביסל אַרקאַטעקטשער, עס, ווידער, ענדערונגען וואס פונדאַמענטאַל זאַך אַז אַ טייַטל איז איצט 64 ביטן. יאָ. אַזוי אַ טייַטל איז 8 ביטעס. אַזוי די וואס זענען 4 ביטעס זענען געגאנגען צו זייַן 8 ביטעס. אַ תּלמיד, וואָס איז געווען צוויי פּוינטערז, נו, איצט עס ס געגאנגען צו זיין 8 ביטעס, 8 ביטעס. עס ס געגאנגען צו מאַכן 16 ביטעס. אָבער אַ נאָדע איז נאָך 4 ביטעס. אַזוי דעם טייַטל איז געגאנגען צו זיין 8 ביטעס. דעם איז 4 ביטעס. אַזוי אַ נאָדע איז בלויז געגאנגען צו זיין 12 ביטעס. קיין אנדערע שאלות אויף אַז איינער? אַזוי דער ווייַטער איינער, די זענען די הטטפּ סטאַטוס קאָודז. און איר האט צו באַשרייַבן צושטאנדן אונטער וואָס די זאל זיין אומגעקערט צו איר. איין פּראָבלעם אַז איך געהערט עטלעכע סטודענטן האָבן איז אַז זיי געפרוווט צו מאַכן די ערראָרס זיין אויף די קליענט ס סוף. אַזוי ווען מיר פּרובירן צו מאַכן די בעטן צו די סערווירער, עפּעס גייט פאַלש אויף אונדזער סוף. אָבער בכלל, די קאָודז זענען זייַענדיק אומגעקערט דורך סערווירער. אַזוי מיר ווילן צו רעכענען אויס וואָס ס געגאנגען פאַלש אָדער רעכט אויף די סערווער אַז ז די זאכן צו זיין אומגעקערט. אזוי וואָס זאל אַ סערווירער קערט סטאַטוס קאָד 200? קיין געדאנקען? יאָ. אַזוי עפּעס וועגן הצלחה די בעטן זענען דורך. און זיי ניטאָ קענען צו צוריקקומען וועלכער איר געבעטן פֿאַר. אַזוי אַלץ איז געווען פייַן. וואָס וועגן 302 געפונען? יאָ. וילעם: די סערווירער איז געווען קוקן פֿאַר וואָס איר געבעטן. אבער עס קען נישט געפינען עס. אַזוי עס ס אַ טעות. באַגאַזלענען באָודאַן: אזוי סערווירער איז איר זוכט פֿאַר וואָס איר געוואלט. אַזוי נאָר קוקן דאָ, 302 געפונען, עס איז געווען קענען צו געפינען עס. וילעם: איך בין נעבעכדיק. געפונען מיטל אַז זיי האבן געפינען עס. נעבעכדיק. באַגאַזלענען באָודאַן: אזוי 302 געפונען. די סערווער איז קענען צו געפינען וואָס איר געוואלט. וילעם: אָבער עס ס ניט ווייַזנדיק עס? באַגאַזלענען באָודאַן: די חילוק צווישן דעם 302 און 200 איז אַז עס ווייסט וואָס איר ווילן. אבער עס איז ניט פּונקט ווו איר געוואלט צו פרעגן. אַזוי 302 איז אַ טיפּיש רידערעקט. אַזוי איר געבעטן אַ בלאַט. עס ווייסט, טאַקע, איך ווילן צו צוריקקומען איר דעם. אבער דעם איז אין אַ אַנדערש URL. אַזוי היי, איר פאקטיש ווילן דעם. דוד י מאַלאַן: עס ס אַ שטיק אַז האט אַז מיר האט איר גויס אַ רידערעקט פונקציאָנירן אַז געניצט די קאָפּצעטל פונקציאָנירן אַז, אין דרייען, געדרוקט אויס אָרט, קאָלאָן, און דעמאָלט די URL צו וואָס איר ווילן צו אָפּוואַרפן די באַניצער. אפילו כאָטש איר האט ניט זען 302 בפירוש עס, אַז איז וואָס פפּ וואָלט מאַדזשיקאַלי אַרייַנלייגן ווי די קאָפּצעטל געזאגט פּונקט וואָס ראָב האט עס - געפונען. אָבער גיין דאָ אַנשטאָט. באַגאַזלענען באָודאַן: גוט. אַזוי וואָס וועגן 403 פאַרבאָטן? וילעם: איך טראַכטן עס ס אַז די סערווירער איז בייסיקלי געזאגט אַז דער קליענט קענען ניט צוטריט די היים בלאַט. באַגאַזלענען באָודאַן: אזוי יאָ. נו, די טיפּיש ענטפער מיר זענען יקספּעקטינג איז עפּעס ווי, די טעקעס זענען ניט טשמאָדדעד אַפּראָופּרייטלי. אַז ס מיסטאָמע אונטער וואָס צושטאנדן איר געזען זיי. אבער עס איז אַ סיבה אַז דער קליענט קען זיין אין שולד דאָ. עס ס פאקטיש אנדערן סטאַטוס קאָד - 401. אַזוי די ביסט זייער ענלעך. 401 איז אַנאָטערייזד. און 403 איז פאַרבאָטן. און אַזוי אַנאָטערייזד איר אויסשליסלעך באַקומען אויב איר 'רע ניט לאָגד ין אבער לאָגינג אין זאל מיינען אַז איר זענען אָטערייזד. אבער אויב איר ניטאָ שוין לאָגד אין און איר נאָך טאָן ניט האָבן דערלויבעניש, דעמאָלט איר קענען אויך באַקומען פאַרבאָטן. אַזוי אויב איר זענען לאָגד אין און טאָן ניט האָבן דערלויבעניש, פאַרבאָטן איז אויך עפּעס איר קענען באַקומען. דוד י מאַלאַן: און די מעקאַניזאַם דורך וואָס די פּראָבלעמס זענען יוזשאַוואַלי סאַלווד אויף די סערווער איז דורך וואָס באַפֿעל? טשמאָד, אויב עס ס, טאַקע, אַ פּערמישאַנז אַרויסגעבן אויף דער טעקע אָדער וועגווייַזער. באַגאַזלענען באָודאַן: דערנאך 404 ניט געפונען. יאָ. אַזוי ניט ענלעך 302 ווו עס איז געווען ניט פּונקט ווו איר ניטאָ אַסקינג אָבער עס ווייסט וואָס איר ווילן, דעם, עס פּונקט האט קיין געדאַנק וואָס איר ווילן. און איר זענען ניט ריקוועסטינג עפּעס גילטיק. 418 איך בין אַ טשייַניק און דעמאָלט 500 ינערלעך סערווער. אזוי וואָס זאל איר באַקומען אַז? אַזוי סעגפאַולט - איך אַקטשאַוואַלי טאָן ניט וויסן די גריידינג נאָרמאַל פֿאַר דעם. אָבער אויב דיין פפּ קאָד האט עפּעס אומרעכט אין עס, אין טעאָריע, עס קען פאקטיש סעגפאַולט, אין וועלכע פאַל, דעם 500 ינערלעך סערווירער טעות, עפּעס איז פאַלש מיט דיין סערווער ס קאַנפיגיעריישאַן. אָדער עס ס אַ סינטאַקס טעות אין אייער פפּ קאָד. אָדער עפּעס שלעכט איז געגאנגען אויף. דוד י מאַלאַן: מיר האבן זען סעגפאַולט צווישן אַ ביסל מענטשן ס ענטפֿערס. און טעקניקלי, עס קען פּאַסירן. אבער אַז וואָלט זיין אַ פפּ, די פּראָגראַם געשריבן דורך אנדערע מענטשן, פאקטיש סעגפאַולטעד, וואָס נאָר אויב די מענטשן סקרוד אַרויף און געשריבן וואָגן קאָד אין זייער יבערזעצער וואָלט פפּ זיך סעגפאַולט. אַזוי אפילו כאָטש 500 איז ווי אַ סעגפאַולט אין גייסט, עס ס כּמעט שטענדיק דער רעזולטאַט פון אַ קאַנפיגיעריישאַן טעקע אַרויסגעבן מיט אייער וועב סערווער אָדער, ווי ראָב האט געזאגט, אַ סינטאַקס טעות, ווי איר האט ניט נאָענט אַ ציטירן. אָדער איר פאַרפאַלן אַ פּינטל - קאָמע ערגעץ. וילעם: אזוי פֿאַר די שוטטלע פּסעט, איך טראַכטן ווען איך האט עס אַמאָל איך קליקט דער בלעטערער, ​​אָבער גאָרנישט געקומען אַרויף, וואָס זיי גערופן ווייַס בלאַט. אבער עס איז געווען ווייַל פון די קאָד. איך טראַכטן אַז איז געווען דזשאַוואַסקריפּט, רעכט? באַגאַזלענען באָודאַן: יאָ. וילעם: וואָלט אַז טעות נאָך קומען אַרויף? באַגאַזלענען באָודאַן: אַזוי איר וואָלט ניט האָבן גאַטאַן דעם טעות ווייַל אַלץ פון די וועב סערווירער ס פּערספּעקטיוו איז גאָר פייַן. אָבער איר געבעטן ינדעקס.הטמל. איר געבעטן שוטטלע.דזשס און סערוויסע.דזשס. און עס איז געווען קענען צו הצלחה צוריקקומען צו איר אַלע פון ​​די זאכן - 200. גוט. עס ס נאָר ווען אייער בלעטערער געפרוווט צו טייַטשן די דזשאַוואַסקריפּט קאָד אַז עס ס ווי, וואַרטן, דעם איז ניט גילטיק דזשאַוואַסקריפּט טעות. קיין אנדערע שאלות? אַלע רעכט. דוד י מאַלאַן: אזוי ווייַטער אַרויף איז נומער 11. און 11 איז געווען די סקעריאַסט פֿאַר אַ פּלאַץ פון מענטשן. אַזוי די מערסט וויכטיק זאַך צו טאָן דאָ איז אַז דעם איז געווען, טאַקע, וועגן אַ דאַבלי לינגקט רשימה. אבער דעם איז ניט די זעלבע ווי לעצט יאָר ס דאַבלי לינגקט רשימה פּראָבלעם, וואָס האט ניט געבן איר די קייוויאַט אַז דער רשימה קען, אין פאַקט, זייַן ונסאָרטעד. אַזוי די פאַקט אַז דער רשימה איז ונסאָרטעד און די פאַקט אַז אַז וואָרט איז אַנדערליינד עס איז געווען מענט צו קאַנוויי אַז דאָס איז פאקטיש אַ סימפּלאַפיקיישאַן פון וואָס אַנדערש וואָלט האָבן שוין אַ מער טשאַלאַנדזשינג פּראָבלעם און אַ מער איין. אַזוי אַ פּראָסט גרייַז דאָ איז געווען צו האָבן שטעלן לעצטע יאָר ס לייזונג אויף דיין איין פּיידזשער און דעמאָלט נאָר בליינדלי קאָפּיע אַז אַראָפּ ווי די ענטפֿערן, וואָס איז די רעכט ענטפער צו אַ אַנדערש קשיא ענלעך אין גייסט. אבער די סאַטאַלטיז דאָ זענען ווי גייט. אַזוי איינער, מיר האָבן אַ נאָדע דערקלערט און דיפיינד אין די געוויינטלעך וועג דאָ. דעמאָלט מיר דיפיינד רשימה פון זיין אַ גלאבאלע טייַטל יניטיאַליזעד צו נאַל. דעמאָלט משמעות, עס ס צוויי פאַנגקשאַנז מיר האָבן פּראָוטאַטייפּס פֿאַר דאָ, אַרייַנלייגן און באַזייַטיקן. און דעמאָלט מיר האָבן עטלעכע מוסטער קאָד דאָ פון טאן אַ בינטל פון ינסערטיאָנס. און דעמאָלט מיר פרעגן איר צו פאַרענדיקן די ימפּלאַמענטיישאַן פון אַרייַנלייגן אונטן אין אַזאַ אַ וועג אַז עס ינסערץ N אין דער רשימה אין קעסיידערדיק צייַט, אויך אַנדערליינד, אפילו אויב שוין פאָרשטעלן. אַזוי די שיינקייט פון זייַענדיק קענען צו טאָן אין קעסיידערדיק צייַט איז אַז עס ימפּלייז אַז איר האָבן צו טאָן די נייַ נאָדע ווו? אין די פראָנט. אַזוי עס ילימאַנייץ, טאַנגקפאַלי, לפּחות איינער פון די קאַסעס אַז געניצט צו דאַרפן אפילו מער שורות פון קאָד, ווי עס האט לעצטע יאָר און אפילו אין קלאַס ווען מיר גערעדט דורך דעם טיפּ פון זאַך מיט יומאַנז און מיט עטלעכע מינדלעך פּסעוודאָ קאָד. אַזוי אין די לייזונג דאָ, לאָזן ס האָפּקען איבער צו אַז נאָר צו האָבן אַ וויזשאַוואַל אויף דעם עקראַן. באַמערקן אַז מיר ניטאָ טאן די פאלגענדע. און אויך באַמערקן די אנדערע סימפּלאַפיקיישאַן איז אַז אפילו אויב עס ס שוין פאָרשטעלן, אַזוי דעם מיטל אפילו אויב די נומער איז שוין דאָרט, איר קענען נאָר בליינדלי אַרייַנלייגן אנדערן קאָפּיע פון ​​עס. און אַז, צו, איז געווען מענט צו זיין אַ סימפּלאַפיקיישאַן, אַזוי אַז איר געקענט פאָקוס אויף, טאַקע, עטלעכע פון ​​די מער ינטעללעקטואַללי טשיקאַווע טייל און ניט נאָר עטלעכע נאָך טעות טשעק געגעבן די באגרענעצט צייַט. אַזוי אין דעם מוסטער לייזונג, מיר אַלאַקייט אַ טייַטל אויף די לינק-האַנט זייַט דאָ צו אַ נאָדע. איצט, פאַרשטיין אַז טייַטל, ווי באַגאַזלענען האט, איז בלויז 32 ביטן. און עס טוט ניט אַקטשאַוואַלי אַנטהאַלטן אַ אַדרעס ביז איר באַשטימען עס די אַדרעס. און מיר טאָן אַז אויף די רעכט-האַנט זייַט דורך מאַללאָק. ווי אַ גוט בירגער, מיר טשעק אַז מאַללאָק איז ניט, אין פאַקט, נאַל, אַזוי אַז מיר טאָן ניט אַקסאַדענאַלי שאַפֿן אַ סעגפאַולט דאָ. און קיין צייַט איר נוצן מאַללאָק אין לעבן, איר זאָל זיין טשעק פֿאַר נאַל, כדי איר האָבן אַ סאַטאַל זשוק. דעמאָלט מיר ינישאַלייז אַז נאַל דורך אַסיינינג N און פרייַערדיק און ווייַטער. און אין דעם פאַל דאָ, איך יניטיאַליזעד פרייַערדיק צו נאַל, ווייַל דעם נייַ נאָדע איז געגאנגען צו זיין די נייַ אָנהייב פון מיין רשימה. אַזוי עס ס געגאנגען צו זיין גאָרנישט איידער עס. און איך ווילן צו יסענשאַלי צוגעבן די שאַפֿן רשימה צו די נייַ נאָדע דורך באַשטעטיקן ווייַטער גלייַך צו רשימה זיך. אָבער איך בין ניט געטאן נאָר נאָך. אַזוי אויב דער רשימה זיך שוין געווען, און עס איז געווען לפּחות איין נאָדע שוין אין פּלאַץ, אויב דעם איז דער רשימה דאָ און איך טאָן אַ נייַ נאָדע דאָ, איך דאַרפֿן צו מאַכן זיכער אַז מיין ערשטע נאָדע ווייזט קאַפּויער צו מיין נייַ נאָדע, ווייַל דעם איז, ווידער, אַ דאַבלי לינגקט רשימה. אַזוי מיר טאָן אַ מייושעוודיקייַט טשעק. אויב רשימה איז ניט נאַל, אויב עס ס שוין איינער אָדער מער נאָודז עס, דעמאָלט צוגעבן אַז צוריק דערמאָנען אַזוי צו רעדן. און דעמאָלט דער זייער לעצטע זאַך מיר דאַרפֿן צו טאָן איז פאקטיש דערהייַנטיקן די גלאבאלע בייַטעוודיק רשימה זיך צו פונט צו אַז נייַ נאָדע. יאָ. וילעם: אין די טייַטל פייַל [ינאָדאַבאַל] יקוואַלז נאַל, טוט אַז האַנדלען מיט דער רשימה ווייַל די רשימה איז נאַל? דוד י מאַלאַן: נאָופּ. אַז איז פשוט מיר זייַענדיק פּראָואַקטיוולי אָפּגעהיט, אין אַז אויב דעם איז מיין אָריגינעל רשימה מיט אפֿשר עטלעכע מער נאָודז איבער דאָ און איך בין ינסערטינג מיין נייַ נאָדע איבער דאָ, עס ס געגאנגען צו זיין גאָרנישט איבער דאָ. און איך ווילן צו כאַפּן אַז געדאַנק דורך באַשטעטיקן פרייַערדיק צו נאַל אויף די נייַ נאָדע. און מאַשמאָעס, אויב מיין קאָד איז ריכטיק און עס ס קיין אנדערע וועג צו טאָן נאָודז אנדערע ווי דעם פֿונקציע, מאַשמאָעס, אפילו אויב רשימה שוין האט איינער אָדער מער נאָודז אין עס, מאַשמאָעס די רשימה, דער ערשטער נאָדע, וואָלט האָבן אַ פרייַערדיק טייַטל פון נאַל זיך. וילעם: און נאָר אַ נאָכפאָלגן אַרויף. די סיבה איר שטעלן טייַטל ווייַטער יקוואַלז רשימה איז איר ניטאָ געמאכט די טייַטל איידער רשימה אין אַז עס ס פּוינטינג צו דער ווייַטער, איך טרעפן - איך דאָון - נאָר רשימות? דוד י מאַלאַן: פּונקט. און אַזוי לאָזן ס פאקטיש באַטראַכטן צוויי קאַסעס דאָ טאַקע, אפילו כאָטש די סדר מיר וועט באַטראַכטן זיי איז ניט גאַנץ דער זעלביקער ווי די קאָד. אָבער אויף אַ הויך מדרגה, אויב דעם רעפּראַזענץ רשימה און דעם איז אַ 32-ביסל טייַטל, די סימפּלאַסט סצענאַר איז אַז דאָס איז נאַל דורך פעליקייַט. און רעכן איך ווילן צו אַרייַנלייגן די נומער 50 איז געווען דער ערשטער נומער. אַזוי איך בין געגאנגען צו גיין פאָרויס און אַלאַקייט אַ נאָדע, וואָס איז געגאנגען צו אַנטהאַלטן דרייַ פעלדער - ן, פרייַערדיק, און ווייַטער. איך בין געגאנגען צו לייגן די נומער 50 דאָ, ווייַל דעם וועט זיין N. דעם וועט זיין ווייַטער. און דעם וועט זיין פרייַערדיק. און אַזוי וואָס טוט איך טאָן אין דעם פאַל? נו, איך 'ווע פּונקט געטאן שורה 1 דאָ. טייַטל N געץ N. איך בין דעמאָלט געזאגט, פרייַערדיק זאָל באַקומען נאַל. אַזוי דעם איז געגאנגען צו זיין נאַל. דעמאָלט איך בין געגאנגען צו זאָגן ווייַטער איז געגאנגען צו באַקומען רשימה. און דעם נאָר אַרבעט אויס געזונט. דעם איז נאַל. און אַזוי איך בין געזאגט, דער נייַ נאָדע ס ווייַטער פעלד זאָל באַקומען וועלכער דעם איז. אַזוי אַז לייגט אנדערן נאַל עס. און דעמאָלט די לעצטע זאַך איך טאָן איז טשעק דאָ. אויב רשימה איז ניט גלייַך צו נאַל, אָבער עס איז גלייַך צו נאַל, אַזוי מיר האָפּקען אַז בעסאַכאַקל. און אַזוי אַלע איך טאָן ווייַטער איז רשימה געץ טייַטל, וואָס פּיקטאָריאַללי רעזולטאַטן אין אַ בילד ווי אַז. אַזוי אַז ס איינער סצענאַר. און דער איינער אַז איר זענען אַסקינג וועגן ספּאַסיפיקלי איז אַ סיטואַציע ווי דעם, ווו מיר שוין האָבן אַ איין-נאָדע רשימה. און אויב איך גיין צוריק אַרויף אין דער אָריגינעל פּראָבלעם דערקלערונג, דער ווייַטער מיר וועט אַרייַנלייגן זאָגן איז 34, נאָר פֿאַר די צוליב פון דיסקוסיע. אַזוי איך בין געגאנגען צו נאָר קאַנוויניאַנטלי ציען אַז איבער דאָ. איך 'ווע פּונקט מאַללאָסעד. זאל ס יבערנעמען איך בין טשעק פֿאַר נאַל. איצט, איך בין געגאנגען צו ינישאַלייז N צו זיין 34. און דעם וועט זיין N. דעם וועט זיין ווייַטער. און דעם וועט זיין פרייַערדיק. זאל ס מאַכן זיכער איך האט ניט באַקומען דעם קאַפּויער. פרייַערדיק קומט ערשטער אין די דעפֿיניציע. זאל מיר פאַרריכטן דעם. דעם איז פרייַערדיק. דעם איז ווייַטער. אפילו כאָטש די ביסט יידעניקאַל, זאל ס האַלטן עס קאָנסיסטענט. פרייַערדיק. דעם איז ווייַטער. אַזוי איך 'ווע פּונקט מאַללאָסעד מיין טאָן, אָפּגעשטעלט פֿאַר נאַל, אַסיינד 34 אין די נאָדע. פרייַערדיק געץ נאַל. אַזוי אַז גיט מיר אַז. ווייַטער געץ רשימה. אַזוי רשימה איז דעם. אַזוי דעם איז דער זעלביקער איצט ווי צייכענונג דעם פייַל, אַזוי אַז זיי פונט צו איינער אין דער זעלביקער. און דעמאָלט איך בין טשעק אויב רשימה איז ניט גלייַך צו נאַל. און עס ס ניט דעם צייַט. דעמאָלט איך בין געגאנגען צו טאָן רשימה פרייַערדיק געץ טייַטל. אַזוי רשימה פרייַערדיק געץ פּטר. אזוי דעם האט די ווירקונג פון פּאַטינג אַ גראַפיקאַל פייַל דאָ. און אַז ס געטינג אַ ביסל ווייווי, די שורות. און דעריבער, לאַסטלי, איך דערהייַנטיקן רשימה צו פונט צו טייַטל. אַזוי איצט דעם פונקטן צו דעם באָכער. און איצט, לאָזן ס טאָן אַ שנעל מייושעוודיקייַט טשעק. דאָ ס דער רשימה, וואָס איז די גלאבאלע בייַטעוודיק. דער ערשטער נאָדע איז, טאַקע, 34, ווייַל איך בין ווייַטערדיק אַז פייַל. און אַז ס ריכטיק ווייַל איך ווילן צו אַרייַנלייגן אין די אָנהייב פון דער רשימה אַלע נייַ נאָודז. זיין ווייַטער פעלד פירט מיר צו דעם באָכער. אויב איך האַלטן געגאנגען, איך שלאָגן ווייַטער איז נאַל. אַזוי עס ס ניט מער רשימה. אויב איך שלאָגן פרייַערדיק, איך באַקומען צוריק ווו איך דערוואַרטן. אַזוי עס זענען נאָך אַ ביסל פּוינטערז, דאָך, צו מאַניפּולירן. אבער דער פאַקט אַז איר זענען געזאָגט צו טאָן דעם אין קעסיידערדיק צייַט מיטל איר נאָר האָבן אַ ענדלעך נומער פון זאכן איר ניטאָ ערלויבט צו טאָן. און וואָס איז אַז נומער? עס זאל זיין איין שריט. עס זאל זיין צוויי. עס זאל זיין 1000 טריט. אבער עס ס ענדלעך, וואָס מיטל איר קענען ניט האָבן קיין טיפּ פון לופּינג געגאנגען אויף דאָ, קיין רעקורסיאָן, קיין לופּס. עס ס נאָר גאַט צו זיין שווער-קאָדעד שורות פון קאָד ווי מיר האָבן אין דעם מוסטער. אַזוי דער ווייַטער פּראָבלעם 12 געבעטן אונדז צו פאַרענדיקן די ימפּלאַמענטיישאַן פון צונעמען ונטער אין אַזאַ אַ וועג אַז עס רימוווז N פון דער רשימה אין לינעאַר צייַט. אזוי איר האָבן אַ ביסל מער וויגאַל צימער איצט. איר קען יבערנעמען אַז ן, אויב פאָרשטעלן אין דער רשימה, וועט זיין פאָרשטעלן ניט מער ווי אַמאָל. און אַז אויך איז מענט צו זיין אַ ויספרעג-באזירט סימפּלאַפייינג האַשאָרע, אַזוי אַז אויב איר געפינען די נומער 50 ערגעץ אין דער רשימה, איר טאָן ניט אויך האָבן צו זאָרג וועגן קאַנטיניוינג צו יטעראַטע, קוקן פֿאַר יעדער מעגלעך קאָפּיע פון ​​50, וואָס וואָלט נאָר דעוואָלווע אין עטלעכע מינושיאַ אין לימיטעד צייַט. אזוי מיט באַזייַטיקן, דעם איינער איז געווען באשטימט מער טשאַלאַנדזשינג און מער קאָד צו שרייַבן. אָבער בייַ ערשטער בליק, פראַנגקלי, עס זאל קוקן אָוווערוועלמינג און ווי עפּעס עס ס קיין וועג איר געקענט האָבן קומען אַרויף מיט אויף אַ ויספרעג. אבער אויב מיר פאָקוס אויף דעם יחיד טריט, אַלעווייַ, עס וועט פּלוצלינג שלאָגן איר אַז יעדער פון די יחיד טריט מאכט קלאָר ווי דער טאָג חוש אין רעטראַספּעקט. אַזוי לאָזן ס נעמען אַ קוק. אַזוי ערשטער, מיר ינישאַלייז טייַטל צו זיין רשימה זיך. ווייַל איך ווילן לינעאַר צייַט, אַז מיטל איך בין געגאנגען צו האָבן עטלעכע שלייף. און אַ פּראָסט וועג צו יטעראַטע איבער די נאָודז אין אַ רשימה ביניען אָדער קיין טיפּ פון ביניען יטעראַטיוועלי איז צו נעמען אַ טייַטל צו די פראָנט פון די דאַטן ביניען און דעריבער נאָר אָנהייב אַפּדייטינג עס און גיין דיין וועג דורך די דאַטן סטרוקטור. אַזוי איך בין געגאנגען צו טאָן פּונקט אַז. בשעת טייַטל, מיין צייַטווייַליק בייַטעוודיק, איז ניט גלייַך צו נאַל, לאָזן ס גיין פאָרויס און טשעק. האט איך באַקומען מאַזלדיק? איז די N פעלד אין די נאָדע איך בין איצט קוקן בייַ גלייַך צו די נומער איך בין קוקן פֿאַר? און אויב אַזוי, לאָזן ס טאָן עפּעס. איצט, באַמערקן דעם אויב צושטאַנד סעראַונדז די גאנצע ווייַטערדיק שורות פון קאָד. דעם איז דער בלויז זאַך איך זאָרגן וועגן - געפונען אַ נומער אין פרעגן. אַזוי עס ס ניט אַנדערש, וואָס סימפּלאַפייז דאס קאַנסעפּטשואַלי אַ קליין ביסל. אָבער איצט, איך איינגעזען, און איר זאל האָבן בלויז איינגעזען דעם נאָך טראכטן עס דורך אַ ביסל, עס ס פאקטיש צוויי קאַסעס דאָ. איינער איז ווו די נאָדע איז אין די אָנהייב פון די רשימה, וואָס איז אַ ביסל אַנויינג, ווייַל אַז ס אַ ספּעציעל פאַל, ווייַל איר האָבן צו האַנדלען מיט דעם זאַך, וואָס איז דער בלויז אַנאַמאַלי. אומעטום אַנדערש אין דער רשימה, עס ס די זעלבע זאַך. עס ס אַ פרייַערדיק נאָדע און אַ ווייַטער נאָדע, פרייַערדיק נאָדע, ווייַטער נאָדע. אבער דעם באָכער איז אַ קליין ספּעציעל אויב ער ס אין די אָנהייב. אַזוי אויב די טייַטל יקוואַלז די רשימה זיך, אַזוי אויב איך בין אין די אָנהייב פון דער רשימה און איך האָבן געפונען ן, איך דאַרפֿן צו טאָן אַ פּאָר פון זאכן. איינער, איך דאַרפֿן צו טוישן רשימה צו פונט צו דער ווייַטער פעלד, 50. אַזוי רעכן אַז איך בין טריינג צו באַזייַטיקן 34. אַזוי דעם באָכער ס גאַט צו גיין אַוועק אין נאָר אַ מאָמענט. אַזוי איך בין געגאנגען צו זאָגן, רשימה געץ טייַטל ווייַטער. גוט, דעם איז טייַטל. ווייַטער איז פּוינטינג איבער דאָ. אַזוי דעם איז טשאַנגינג דעם פייַל רעכט איצט צו פונט צו דעם באָכער דאָ. איצט, געדענקען, מיר האָבן אַ צייַטווייַליק בייַטעוודיק. אַזוי מיר האָבן ניט אָרפאַנד קיין נאָודז, ווייַל איך אויך האָבן דעם באָכער אין מיין ימפּלאַמענטיישאַן פון צונעמען. אַזוי איצט, אויב רשימה זיך איז ניט נאַל, איך דאַרפֿן צו פאַרריכטן אַ ביסל עפּעס. איך דאַרפֿן צו איצט מאַכן זיכער אַז דעם פייַל, וואָס איז פריער פּוינטינג 50-34, דעם האט גאַט צו גיין אַוועק, ווייַל אויב איך בין טריינג צו באַקומען באַפרייַען פון 34, 50 האט בעסער נישט טייַנען קיין טיפּ פון צוריק דערמאָנען צו עס ווי די פייַל סאַגדזשעסטיד. אַזוי איך נאָר האט דעם שורה. אַזוי דעמאָלט איך בין געטאן. אַז פאַל איז פאקטיש שיין גרינג. טשאַפּינג אַוועק די קאָפּ פון דער רשימה איז לעפיערעך סטרייטפאָרווערד. צום באַדויערן, עס ס דעם אַנויינג אַנדערש בלאָק. אַזוי איצט, איך האָבן צו באַטראַכטן די פאַל ווו עס ס עפּעס אין די מיטל. אבער עס ס ניט אויך געפערלעך, אַחוץ פֿאַר סינטאַקס ווי דעם. אַזוי אויב איך בין ניט אין די אָנהייב פון די רשימה, איך בין ערגעץ אין די מיטל. און דעם שורה דאָ איז געזאגט, אָנהייב אין וועלכער נאָדע איר ניטאָ בייַ. גיין צו די פריערדיקע נאָדע ס ווייַטער פעלד און פונט אַז אין די טייַטל. זאל ס טאָן דעם פּיקטאָריאַללי. אַז איז געטינג קאָמפּליצירט. אַזוי אויב איך האָבן אַ פרייַערדיק פעלדער דאָ - זאל ס טאָן דעם - ווייַטער פעלדער דאָ. איך בין געגאנגען צו פאַרפּאָשעטערן מיין פּוינטערז גאַנץ ווי ציען אַ גאַנץ בינטל פון דאס צוריק און אַרויס קריססקראָססינג יעדער אנדערער. און איצט, לאָזן ס נאָר זאָגן דעם איז 1, 2, 3 פֿאַר די צוליב פון דיסקוסיע, אפילו כאָטש אַז טוט נישט שורה אַרויף מיט די פּראָבלעם אין פרעגן. אַזוי דאָ ס מיין לינגקט רשימה. איך בין טריינג צו באַזייַטיקן צוויי אין דעם באַזונדער ווערסיע פון ​​דער געשיכטע. אַזוי איך 'ווע דערהייַנטיקט טייַטל צו זיין פּוינטינג צו דעם באָכער. אַזוי דעם איז פּטר. ער ס פּוינטינג דאָ. דעם איז רשימה, וואָס יגזיסס גלאָובאַלי ווי פריער. און ער ס פּוינטינג דאָ קיין ענין וואָס. און איצט, איך בין טריינג צו באַזייַטיקן צוויי. אַזוי אויב טייַטל איז פּוינטינג דאָ, איך בין געגאנגען צו נאָכפאָלגן, משמעות, די פרייַערדיק טייַטל, וואָס שטעלט מיר אין 1. איך בין דעמאָלט געגאנגען צו זאָגן אַז דער ווייַטער פעלד, וואָס ברענגט מיר איבער צו דעם קעסטל דאָ, איז געגאנגען צו גלייַך טייַטל ווייַטער. אַזוי אויב דעם טייַטל, דעם איז ווייַטער. אַז מיטל אַז דעם פייַל באדערפענישן צו פונט צו דעם באָכער. אַזוי וואָס אַז שורה פון קאָד האט פּונקט געטאן איז אַ קליין ביסל פון דעם. און איצט, דעם איז קוקן ווי אַ שריט אין די רעכט ריכטונג. מיר יסענשאַלי ווילן צו סניפּ 2 אויס פון די מיטל פון 1 און 3. אַזוי עס מאכט זינען אַז מיר ווילן צו מאַרשרוט דעם טייַטל אַרום עס. אַזוי דעם ווייַטער שורה איז טשעק אויב טייַטל ווייַטער איז ניט נאַל, עס ס טאַקע עמעצער צו די רעכט פון 2, אַז מיטל מיר אויך האָבן צו טאָן אַ ביסל סניפּ דאָ. אזוי איך איצט דאַרפֿן צו נאָכפאָלגן דעם טייַטל און דערהייַנטיקן די פריערדיקע טייַטל אויף דעם באָכער צו טאָן אַ קליין ביסל פון אַ וואָרקאַראָונד דאָ די פונט דאָ. און איצט, וויזשוואַלי דעם איז פייַן. עס ס אַ ביסל מעסי אין אַז עס ס קיין איינער פּוינטינג בייַ די 2 ענימאָר. 2 איז פּוינטינג צו די לינק. און 2 איז פּוינטינג צו די רעכט. אָבער ער קענען טאָן וועלכער ער וויל, ווייַל ער ס וועגן צו באַקומען באפרייט. און עס טוט ניט ענין וואָס די וואַלועס זענען ענימאָר. וואָס ס וויכטיק איז אַז די רוען גויס זענען רוטינג אויבן און ווייטער אים איצט. און טאַקע, אַז ס וואָס מיר טאָן ווייַטער. מיר פֿרייַ טייַטל, וואָס מיטל מיר דערציילן די אַפּערייטינג סיסטעם, איר זענען באַגריסונג צו ריקליים דעם. און דעמאָלט לאַסטלי, מיר צוריקקומען. אַנדערש ימפּליסאַטלי, אויב מיר האָבן ניט אומגעקערט נאָך, מיר 'ווע גאַט צו האַלטן קוקן. אַזוי טייַטל יקוואַלז טייַטל ווייַטער נאָר מיטל מאַך דעם באָכער דאָ. מאַך דעם באָכער דאָ. מאַך דעם באָכער דאָ אויב, אין פאַקט, מיר האבן ניט געפינען די נומער מיר 'רע איר זוכט פֿאַר נאָך. אַזוי פראַנגקלי, עס קוקט גאָר אָוווערוועלמינג, איך טראַכטן, בייַ ערשטער בליק, ספּעציעל אויב איר סטראַגאַלד מיט דעם בעשאַס די ויספרעג דעמאָלט זען עפּעס ווי דעם. און איר פּונקט זיך אויף די צוריק. נו, עס ס קיין וועג איך קען האָבן קומען אַרויף מיט אַז אויף די ויספרעג. אָבער איך וואָלט טייַנען, איר קענען אויב איר ברעכן עס אַראָפּ אין די יחיד קאַסעס און פּונקט גיין דורך עס קערפאַלי, אָלבייט, אַדמיטידלי, אונטער סטרעספאַל צושטאנדן. טאַנגקפאַלי, די בילד געמאכט אַלץ כאַפּיער. איר קען ציען דעם אין קיין נומער פון וועגן. איר טאָן ניט האָבן צו טאָן די קריססקראָססינג זאַך דאָ. איר קען טאָן עס מיט גלייַך שורות ווי דעם. אבער די גיסט פון דעם פּראָבלעם, אין אַלגעמיין, איז געווען צו פאַרשטיין אַז די בילד אין די סוף זאָל קוקן אַ ביסל עפּעס ווי דעם, ווייַל קעסיידערדיק צייַט ימפּלייד אַז איר האַלטן דזשאַמינג און דזשאַמינג און דזשאַמינג די נייַ נאָודז אין די אָנהייב פון די רשימה. קיין שאלות? מיסטאָמע די מערסט טשאַלאַנדזשינג פון אַוואַדע די קאָודינג שאלות. וילעם: אזוי איז רשימה ענלעך צו קאָפּ אין פרייַערדיק ביישפילן. דוד י מאַלאַן: פּונקט, פּונקט. נאָר אַ אַנדערש נאָמען פֿאַר אַ גלאבאלע בייַטעוודיק. וועלט ברייט וואָס? באַגאַזלענען באָודאַן: גוט. אַזוי דעם איז דער איין ווו איר האט צו שרייַבן די פּאַראַגראַף. עטלעכע מענטשן געשריבן מאמרים פֿאַר דעם קשיא. אָבער איר נאָר דאַרפֿן צו נוצן די זעקס ווערטער צו באַשרייַבן וואָס כאַפּאַנז ווען איר פּרובירן צו קאָנטאַקט facebook.com. אַזוי איך וועט נאָר רעדן דורך די פּראָצעס ניצן אַלע די טערמינען. אַזוי אין אונדזער בלעטערער, ​​מיר טיפּ facebook.com און שלאָגן אַרייַן. אַזוי אונדזער בלעטערער ס גיי צו בויען אַ הטטפּ בעטן אַז עס ס געגאנגען צו שיקן דורך עטלעכע פּראָצעס צו פאַסעבאָאָק פֿאַר פאַסעבאָאָק צו רעספּאָנד צו אונדז מיט די HTML פון זייַן בלאַט. אַזוי וואָס איז די פּראָצעס דורך וואָס די הטטפּ בעטן פאקטיש געץ צו פאַסעבאָאָק? אַזוי ערשטער, מיר דאַרפֿן צו זעץ Facebook.com. אַזוי נאָר געגעבן די נאָמען Facebook.com, ווו פאקטיש טוט די הטטפּ בעטן דאַרפֿן צו גיין? אַזוי מיר דאַרפֿן צו זעץ Facebook.com צו אַ יפּ אַדרעס, וואָס יוניקלי יידענטאַפייז וואָס מאַשין מיר פאקטיש ווילן צו שיקן דעם בעטן צו. דיין לאַפּטאַפּ האט אַ יפּ אַדרעס. עפּעס פארבונדן צו די אינטערנעט האט אַ יפּ אַדרעס. אַזוי דנס, פעלד נאָמען סיסטעם, וואָס איז וואָס ס געגאנגען צו שעפּן די איבערזעצונג פון facebook.com צו אַ יפּ אַדרעס אַז איר פאקטיש ווילן צו קאָנטאַקט. אַזוי מיר קאָנטאַקט די דנס סערווערס און זאָגן, וואָס איז facebook.com? עס זאגט, טאַקע, עס ס IP אַדרעס 190.212 עפּעס, עפּעס, עפּעס. אַלע רעכט. איצט, איך וויסן וואָס מאַשין איך ווילן צו קאָנטאַקט. אַזוי דעמאָלט איר שיקן אייער הטטפּ בעטן איבער צו אַז מאַשין. אַזוי ווי טוט עס באַקומען צו אַז מאַשין? נו, די בעטן גייט פון ראַוטער צו ראַוטער באַונסינג. געדענקען די משל אין קלאַס, ווו מיר פאקטיש געזען די מאַרשרוט אַז די פּאַקיץ גענומען ווען מיר געפרוווט צו יבערגעבן. מיר געזען עס שפּרינגען איבער די אַטלאַנטיק אקעאן אין איין פונט אָדער וועלכער. אַזוי די לעצטע טערמין פּאָרט. אַזוי דעם איז איצט אויף אייער קאָמפּיוטער. איר קענען האָבן קייפל זאכן איצט קאַמיונאַקייטינג מיט דער אינטערנעץ. אַזוי איך קענען זיין פליסנדיק, זאָגן, סקיפּע. איך זאל האָבן אַ וועב בלעטערער עפענען. איך זאל האָבן עפּעס אַז טאָררענטינג טעקעס. אַזוי אַלע פון ​​די זאכן זענען קאַמיונאַקייטינג מיט די אינטערנעט אין עטלעכע וועג. אַזוי ווען דיין קאָמפּיוטער נעמט עטלעכע דאַטן פון די אינטערנעט, ווי טוט עס וויסן וואָס אַפּלאַקיישאַן פאקטיש וויל די דאַטן? ווי טוט עס וויסן צי דעם באַזונדער דאַטע איז מענט פֿאַר די טאָררענטינג אַפּלאַקיישאַן ווי קעגן צו די וועב בלעטערער? אַזוי דעם איז דער ציל פון פּאָרץ אין אַז אַלע פון ​​די פּראָגראַמען האָבן קליימד אַ פּאָרט אויף דיין קאָמפּיוטער. אַזוי אייער וועב בלעטערער זאגט, היי, איך בין צוגעהערט אויף פּאָרט 1000. און דיין טאָררענטינג פּראָגראַם איז געזאגט, איך בין צוגעהערט אויף פּאָרט 3000. און סקיפּע זאגט, איך בין ניצן פּאָרט 4000. אַזוי ווען איר באַקומען עטלעכע דאַטן אַז געהערט צו איינער פון די פּראָגראַמען, די דאַטן איז אנגעצייכנט מיט וואָס פּאָרט עס פאקטיש זאָל זיין געשיקט צוזאמען צו. אַזוי דעם זאגט, טאַקע, איך געהערן צו פּאָרט 1000. איך וויסן דעמאָלט איך דאַרפֿן צו פאָרויס דעם צוזאמען צו מיין וועב בלעטערער. אַזוי די סיבה עס ס באַטייַטיק דאָ איז אַז וועב סערווערס טענד צו הערן אויף פּאָרט 80. אַזוי ווען איך קאָנטאַקט Facebook.com, איך בין קאַמיונאַקייטינג מיט עטלעכע מאַשין. אבער איך דאַרפֿן צו זאָגן וואָס פּאָרט פון אַז מאַשין איך ווילן צו יבערגעבן מיט. און וועב סערווערס טענד צו זיין צוגעהערט אויף פּאָרט 80. אויב זיי געוואלט, זיי קען שטעלן עס אַרויף אַזוי עס רשימות ווי אויף פּאָרט 7000. און דעמאָלט אין אַ וועב בלעטערער, ​​איך קען מאַניואַלי טיפּ Facebook.com: 7000 צו שיקן די בקשה צו פּאָרט 7000 פון פאַסעבאָאָק ס וועב סערווירער. דוד י מאַלאַן: און אין דעם פאַל, אפילו כאָטש מיר האבן ניט דאַרפן אַז מענטשן דערמאָנען דעם, אין דעם פאַל, וואָס פּאָרט וואָלט די בעטן פאקטיש גיין צו? פּרובירן ווידער. פּונקט. ניט קוקן פֿאַר אַז, אָבער אַ סובטלעטי אַז ס עס גאָרניט די לעצטע. באַגאַזלענען באָודאַן: אַזוי דער הטטפּס, זינט עס ס צוגעהערט ספּאַסיפיקלי פֿאַר די ינקריפּטיד, עס ס אויף פּאָרט 4430. וילעם: און ימיילז זענען 25, רעכט? דוד י מאַלאַן: אַוטבאַונד ימיילז, 25, יאָ. באַגאַזלענען באָודאַן: איך טאָן ניט אפילו וויסן רובֿ פון די - אַלע פון ​​די נידעריקער אָנעס טענד צו זיין רעזערווירט פֿאַר זאכן. איך טראַכטן אַלץ אונטער 1024 איז רעזערווירט. וילעם: פארוואס האט איר זאָגן 3 איז דעם אומרעכט נומער? באַגאַזלענען באָודאַן: ווייַל אין אַ יפּ אַדרעס, עס ס פיר גרופּינגז פון דידזשאַץ. און זיי ניטאָ 0-255. אַזוי 192.168.2.1 איז אַ פּראָסט היגע נעץ יפּ אַדרעס. באַמערקן אַלע פון ​​די זענען ווייניקער ווי 255. אַזוי ווען איך סטאַרטעד מיט 300, אַז קען ניט עפשער האָבן שוין איינער פון די נומערן. דוד י מאַלאַן: אבער אַז נאַריש קלעמערל פון - איז עס קסי, ווו זיי האט אַ נומער וואס איז אויך גרויס פֿאַר די יפּ אַדרעס. באַגאַזלענען באָודאַן: קיין שאלות אויף דעם? דער ווייַטער איינער, אַזוי גאַנץ ענדערונג אין טעמע, אָבער מיר האָבן דעם פפּ מענגע פֿאַר די הייזער אין די קוואַד. און מיר האָבן אַ ונאָרדערעד רשימה. און מיר ווילן צו דרוקן אויס יעדער רשימה פּונקט נאָר מיט די הויז נאָמען. אַזוי מיר האָבן אַ פאָרעאַטש שלייף. אַזוי געדענקען, די סינטאַקס איז פאָרעאַטש מענגע ווי פּונקט אין די מענגע. אַזוי דורך יעדער יטעראַטיאָן פון די שלייף, הויז איז געגאנגען צו נעמען אויף איינער פון די וואַלועס ין פון די מענגע. אויף דער ערשטער יטעראַטיאָן, הויז וועט זיין קאַבאָט הויז. אויף אַ רגע יטעראַטיאָן, הויז וועט זיין קעריער הויז און אַזוי אויף. אַזוי פֿאַר יעדער קוואַד ווי הויז, מיר ניטאָ נאָר געגאנגען צו דרוקן - איר אויך קען האָבן עקאָוד - דער רשימה פּאָזיציע און דעריבער די הויז ס נאָמען און דעריבער פאַרמאַכן די רשימה פּאָזיציע. די געגרייַזלט ברייסאַז זענען אַפּשאַנאַל דאָ. און דעמאָלט מיר אויך האט אין די קשיא זיך, געדענקען צו פאַרמאַכן די ונאָרדערעד רשימה קוויטל. אַזוי מיר דאַרפֿן צו אַרויסגאַנג פפּ מאָדע אין סדר צו טאָן דעם. אָדער מיר קען האָבן עקאָוד די נאָענט ונאָרדערעד רשימה קוויטל. דוד י מאַלאַן: אויך פייַן דאָ וואָלט האָבן שוין צו נוצן אַן אַלט שולע פֿאַר שלייף מיט אַ $ איך = 0 0 און ניצן קאַונץ צו רעכענען אויס די לענג פון די שטראַל. טאָוטאַלי פייַן אויך, נאָר אַ ביסל וואָרדיער. וילעם: אזוי אויב איר זענען געגאנגען צו [ינאָדאַבאַל], וואָלט איר טאָן - איך פאַרגעסן וואָס די שלייף [ינאָדאַבאַל] איז. וואָלט איר $ קוואַד קלאַמער איך? דוד י מאַלאַן: פּונקט. יאָ, פּונקט. באַגאַזלענען באָודאַן: עפּעס אַנדערש? דוד י מאַלאַן: אַלע רעכט. א-אָפס. אַזוי עס זענען באַנטשאַז פון ענטפֿערס מעגלעך פֿאַר יעדער פון די. מיר זענען טאַקע נאָר קוקן פֿאַר עפּעס קאַמפּעלינג פֿאַר אַ מיטנ קאָפּ און אַ דאַונסייד. און נומער 16 געבעטן, וואַלאַדייטינג ניצערס ' אַרייַנשרייַב קליענט-זייַט, ווי מיט דזשאַוואַסקריפּט, אַנשטאָט פון סערווירער-זייַט, ווי מיט פפּ. אַזוי וואָס ס אַ מיטנ קאָפּ פון טאן קליענט-זייַט? נו, איינער פון די זאכן מיר פארגעלייגט איז אַז איר רעדוצירן לייטאַנסי, ווייַל איר טאָן ניט האָבן צו אַרן קאַנטאַקטינג די סערווירער, וואָס זאל נעמען אַ ביסל מיליסעקאַנדז אָדער אפילו אַ פּאָר פון סעקונדעס דורך אַוווידינג אַז און פּונקט וואַלאַדייטינג ניצערס 'אַרייַנשרייַב קליענט-זייַט דורך טריגערינג אַן אויף-פאָרלייגן האַנדלער און נאָר טשעק, האט זיי טיפּ עפּעס אין פֿאַר נאָמען? האט זיי טיפּ עפּעס אין פֿאַר בליצפּאָסט אַדרעס? האט זיי קלייַבן אַ דאָרם פון די קאַפּ-אַראָפּ מעניו? איר קענען געבן זיי ינסטאַנטאַניאַס באַמערקונגען ניצן די גיגאַהערטז קאָמפּיוטער אָדער וועלכער זיי האָבן אַז ס פאקטיש אויף זייער שרייַבטיש. אַזוי עס ס נאָר אַ בעסער באַניצער דערפאַרונג טיפּיקלי. אָבער אַ דאַונסייד פון טאן קליענט-זייַט וואַלאַדיישאַן, אויב איר טאָן עס אָן אויך טאן סערווירער-זייַט וואַלאַדיישאַן איז אַז רובֿ ווער עס יז קומען אויס פון קס50 ווייסט אַז איר קענען נאָר שיקן קיין דאַטן איר ווילן צו אַ סערווירער קיין נומער פון וועגן. פראַנגקלי, אין רובֿ קיין בלעטערער, ​​איר קענען גיט אַרום אין די סעטטינגס און פּונקט דרייַ אַוועק דזשאַוואַסקריפּט, וואָס וואָלט, דעריבער, דיסייבאַל קיין פאָרעם פון וואַלאַדיישאַן. אבער איר אויך זאל צוריקרופן אַז אפילו איך האט עטלעכע אַרקיין זאכן אין קלאַס ניצן טעלנעט און פאקטיש פּריטענדינג צו זיין אַ בלעטערער דורך שיקן באַקומען ריקוועס צו אַ סערווירער. און אַז ס אַוואַדע נישט ניצן קיין דזשאַוואַסקריפּט. אַז ס נאָר מיר טייפּינג קאַמאַנדז בייַ אַ קלאַוויאַטור. אַזוי טאַקע, קיין פּראָגראַמיסט ין גענוג טרייסט מיט די וועב און הטטפּ קען שיקן וועלכער דאַטן ער אָדער זי וויל צו אַ סערווירער אָן וואַלאַדיישאַן. און אויב דיין סערווער איז ניט אויך טשעק, האט זיי געבן מיר אַ נאָמען, איז דעם אַקטשאַוואַלי אַ גילטיק email אַדרעס, האט זיי קלייַבן אַ דאָרם, איר זאל סוף אַרויף ינסערטינג פאַלש אָדער נאָר ליידיק דאַטן אין דיין דייטאַבייס, וואָס מיסטאָמע איז ניט געגאנגען צו זיין אַ גוט זאַך אויב איר זענען אַסומינג עס איז געווען דאָרט. אַזוי דעם איז אַ אַנויינג פאַקט. אבער אין אַלגעמיין, קליענט-זייַט וואַלאַדיישאַן איז גרויס. אבער עס מיטל צוויי מאָל ווי פיל אַרבעט. כאָטש עס טאָן עקסיסטירן פאַרשידן ליבראַריעס, דזשאַוואַסקריפּט לייברעריז פֿאַר בייַשפּיל, וואָס מאַכן דעם פיל, פיל ווייניקער פון אַ קאָפּווייטיק. און איר קענען רייוס עטלעכע פון ​​די קאָד סערווירער-זייַט, קליענט-זייַט. אבער טאָן פאַרשטיין אַז עס איז טיפּיקלי נאך אַרבעט. יאָ. וילעם: אזוי אויב מיר נאָר האט ווייניקער זיכער - דוד י מאַלאַן: [לאַפס] אַג. די זענען שטענדיק די האַרדער אָנעס צו אַדזשודיקייט. באַגאַזלענען באָודאַן: אַז וואָלט האָבן שוין אנגענומען. דוד י מאַלאַן: וואָס? באַגאַזלענען באָודאַן: איך באשאפן דעם פּראָבלעם. אַז וואָלט האָבן שוין אנגענומען. דוד י מאַלאַן: יאָ. וילעם: קיל. באַגאַזלענען באָודאַן: אבער מיר האבן ניט אָננעמען פֿאַר דער ערשטער איינער - נו, וואָס מיר זענען איר זוכט פֿאַר איז עפּעס ווי איר טאָן ניט האָבן צו יבערגעבן מיט די סערווירער. מיר האבן ניט אָננעמען נאָר פאַסטער. וילעם: וואָס וועגן טאָן ניט רילאָוד בלאַט? באַגאַזלענען באָודאַן: יא. אַז איז געווען אַ אנגענומען ענטפֿערן. דוד י מאַלאַן: עניטינג ווו מיר פּעלץ עס איז געווען מער מסתּמא ווי ניט מסתּמא אַז איר געוואוסט וואָס איר זענען געזאגט, וואָס איז אַ האַרט שורה צו ציען מאל. ניצן אַ לינגקט רשימה אַנשטאָט פון אַ מענגע צו טייַנען אַ אויסגעשטעלט רשימה פון ינטאַדזשערז. אַזוי אַ מיטנ קאָפּ מיר אָפֿט ציטירן מיט לינגקט רשימות אַז מאָוטאַווייטאַד זייער גאַנץ הקדמה איז איר באַקומען דיינאַמיזאַם. זיי קענען וואַקסן. זיי קענען ייַנשרומפּן. אַזוי איר טאָן ניט האָבן צו שפּרינגען דורך כופּס צו פאקטיש מאַכן מער זיקאָרן מיט אַ מענגע. אָדער איר טאָן ניט האָבן צו נאָר זאָגן, נעבעכדיק, באַניצער. די מענגע איז אָנגעפילט. אַזוי דינאַמיש וווּקס פון דער רשימה. א דאַונסייד כאָטש פון לינגקט רשימות? וילעם: עס ס לינעאַר. שאַרף אויף לינגקט רשימה איז לינעאַר אַנשטאָט פון וואָס איר קלאָץ ין דוד י מאַלאַן: פּונקט. שאַרף אויף אַ לינגקט רשימה איז לינעאַר, אפילו אויב עס ס אויסגעשטעלט, ווייַל איר קענען בלויז נאָכפאָלגן די ברויט ברעקלעך, די פּאָינטערס, פון די אָנהייב פון דער רשימה צו די סוף. איר קענען ניט לעווראַדזש טראַפ צוטריט און, אזוי, ביינערי זוכן, אפילו אויב עס ס אויסגעשטעלט, אַז איר געקענט טאָן מיט אַ מענגע. און עס ס אויך אנדערן קאָסטן. יאָ. וילעם: זכּרון באַטלאָניש? דוד י מאַלאַן: יאָ. גוט, איך וואָלט ניט דאַווקע זאָגן באַטלאָניש. אבער עס טוט קאָסטן איר מער זיקאָרן, ווייַל איר דאַרפֿן 32 ביטן פֿאַר יעדער נאָדע פֿאַר די נאָך טייַטל, אין מינדסטער פֿאַר אַ יינציקווייַז לינגקט רשימה. איצט, אויב איר 'רע בלויז סטאָרינג ינטאַדזשערז און איר ניטאָ אַדינג די טייַטל, אַז ס פאקטיש מין פון ניט-נישטיק. עס ס דאַבלינג די סומע פון ​​זיקאָרן. אבער אין פאַקט, אויב איר 'רע סטאָרינג אַ לינגקט רשימה פון סטרוקץ אַז זאל האָבן 8 ביטעס, 16 ביטעס, אפילו מער ווי אַז, אפֿשר עס ס ווייניקער פון אַ מאַרדזשאַנאַל פּרייַז. אבער עס ס אַ פּרייַז נאַנדאַלעס. אַזוי אָדער פון די וואָלט 'ווע שוין פייַן ווי דאָוונסידעס. 18. ניצן פפּ אַנשטאָט פון C צו שרייַבן אַ באַפֿעל-שורה פּראָגראַם. אַזוי דאָ, עס ס אָפֿט פאַסטער צו נוצן אַ שפּראַך ווי פפּ אָדער רובי אָדער פּיטהאָן. איר נאָר געשווינד עפענען אַרויף אַ טעקסט רעדאַקטאָר. איר האָבן פילע מער פאַנגקשאַנז פאַראַנען צו איר. פפּ האט די קיך זינקען פון פאַנגקשאַנז, כוועראַז אין C, איר האָבן זייער, זייער קליין. אין פאַקט, גייז די וויסן די שווער וועג אַז איר טאָן ניט האָבן האַש טישן. איר טאָן ניט האָבן לינגקט רשימות. אויב איר ווילן די, איר האָבן צו מאַכשער זיי זיך. אַזוי איינער מיטנ קאָפּ פון פפּ אָדער טאַקע קיין ינטערפּראַטאַד שפּראַך איז די ראַפּידאַטי מיט וואָס איר קענען שרייַבן קאָד. אָבער אַ דאַונסייד, מיר געזען דעם ווען איך געשווינד וויפּט אַרויף אַ מיסספּעללער ימפּלאַמענטיישאַן אין לעקציע ניצן פפּ, איז אַז ניצן אַ ינטערפּראַטאַד שפּראַך איז יוזשאַוואַלי סלאָוער. און מיר געזען אַז דעמאָנסטראַבלי מיט אַ פאַרגרעסערן אין צייַט פון 0.3 סעקונדעס צו 3 סעקונדעס, ווייַל פון די ינטערפּריטיישאַן אַז פאקטיש כאַפּאַנז. אן אנדער מיטנ קאָפּ איז געווען אַז איר טאָן ניט האָבן צו צונויפנעמען. אַזוי עס אויך ספּידז אַרויף אַנטוויקלונג אגב, ווייַל איר טאָן ניט האָבן צוויי טריט צו פליסנדיק אַ פּראָגראַם. איר נאָר האָבן איינער. און אַזוי אַז ס שיין קאַמפּעלינג ווי געזונט. ניצן אַ סקל דאַטאַבאַסע אַנשטאָט פון אַ קסוו טעקע צו קראָם דאַטן. אַזוי סקל דאַטאַבאַסע איז געניצט פֿאַר פּסעט7. קסוו טעקעס איר האט ניט נוצן פיל. אָבער איר געוויינט עס מינאַצאַד אין פּסעט7 ווי געזונט דורך גערעדט צו יאַהאָאָ פינאַנסע. אבער קסוו איז פּונקט ווי אַ עקססעל טעקע אָבער יבער פּשוט, ווו די שפאלטן זענען נאָר דעמאַרקעד דורך קאָמעס ין פון אַ אַנדערש טעקסט טעקע. און ניצן אַ סקל דאַטאַבאַסע איז אַ ביסל מער קאַמפּעלינג. עס ס אַ מיטנ קאָפּ, ווייַל איר באַקומען זאכן ווי קלייַבן און טאָן און אויסמעקן. און איר באַקומען, מאַשמאָעס, ינדעקסיז אַז מיסקל און אנדערע דאַטאַבייסיז, ווי אָראַקלע, בויען פֿאַר איר אין זיקאָרן, וואָס מיטל דיין אויסקלייַבן איז מיסטאָמע ניט געגאנגען צו זיין לינעאַר שפּיץ צו דנאָ. עס ס פאקטיש געגאנגען צו זיין עפּעס ווי ביינערי זוכן אָדער עפּעס ענלעך אין גייסט. אַזוי זיי ניטאָ בכלל פאַסטער. אָבער אַ דאַונסייד איז אַז עס ס נאָר מער אַרבעט. עס ס מער מי. איר האָבן צו פֿאַרשטיין דאַטאַבייסיז. איר האָבן צו שטעלן עס אַרויף. איר דאַרפֿן אַ סערווירער צו לויפן אַז דאַטאַבאַסע אויף. איר דאַרפֿן צו פֿאַרשטיין ווי צו קאַנפיגיער עס. אַזוי די ביסט נאָר די קינדס פון א-אָפס. כוועראַז אַ קסוו טעקע, איר קענען שאַפֿן עס מיט געדיט. און איר ניטאָ גוט צו גיין. עס ס קיין קאַמפּלעקסיטי ווייַטער אַז. ניצן אַ טריי אַנשטאָט פון אַ האַש טיש מיט באַזונדער טשיינינג צו קראָם אַ ווערטערבוך פון ווערטער רעמאַניסאַנט פון פּסעט5. אַזוי אַ פרוווט מיטנ קאָפּ, אין טעאָריע בייַ מינדסטער, איז וואָס? קעסיידערדיק צייַט, לפּחות אויב איר ניטאָ כאַשינג אויף יעדער פון די יחיד אותיות אין אַ וואָרט, ווי איר זאל האָבן פֿאַר פּסעט5. אַז זאל זיין פינף כאַשאַז, זעקס כאַשאַז אויב עס ס פינף אָדער זעקס אותיות אין די וואָרט. און אַז ס שיין גוט. און אויב עס ס אַ אויבערשטער געבונדן אויף ווי לאַנג דיין ווערטער זאל זיין, אַז ס טאַקע אַסימפּטאָטיקאַללי קעסיידערדיק צייַט. כוועראַז אַ האַש טיש מיט באַזונדער טשיינינג, די פּראָבלעם עס מיט אַז טיפּ פון דאַטן ביניען איז אַז די פאָרשטעלונג פון דיין אַלגערידאַמז יוזשאַוואַלי דעפּענדס אויף די נומער פון זאכן שוין אין די דאַטן סטרוקטור. און אַז ס באשטימט דער פאַל מיט קייטן, ווערביי די מער שטאָפּן איר שטעלן אין אַ האַש טיש, די מער די קייטן גיין, וואָס מיטל אין די ערגסטע פאַל, די זאַך איר זאל זיין קוקן פֿאַר איז אַלע דעם וועג אין די סוף פון איין פון די קייטן, וואָס יפעקטיוולי דעוואָלוועס אין עפּעס לינעאַר. איצט, אין פיר, עס קען לעגאַמרע זיין דער פאַל אַז אַ האַש טיש מיט קייטן איז פאַסטער ווי אַ קאָראַספּאַנדינג טריי ימפּלאַמענטיישאַן. אבער אַז ס פֿאַר פארשידענע סיבות, צווישן וואָס זענען פרוווט נוצן אַ גאַנץ פּלאַץ פון זיקאָרן אַז קענען, אין פאַקט, פּאַמעלעך זאכן אַראָפּ, ווייַל איר טאָן ניט באַקומען פייַן בענעפיץ פון עפּעס גערופן קאַטשינג, ווו זאכן וואס זענען נאָענט צוזאַמען אין זיקאָרן קענען זיין אַקסעסט אָפֿט מער געשווינד. און מאל איר קענען קומען אַרויף מיט אַ טאַקע גוט האַש פֿונקציע. אפילו אויב איר האָבן צו וויסט אַ ביסל פון זיקאָרן, איר זאל, טאַקע, קענען צו געפינען זאכן שנעל און ניט ווי שלעכט ווי לינעאַרלי. אַזוי אין קורץ, עס איז געווען ניט דאַווקע מיט קיין פון די איינער אָדער אפילו צוויי ספּעציפיש זאכן מיר זענען קוקן פֿאַר. טאַקע עפּעס פּערסווייסיוו ווי אַ מיטנ קאָפּ און דאַונסייד בכלל געכאפט אונדזער אויג. באַגאַזלענען באָודאַן: אזוי פֿאַר די מיטנ קאָפּ, מיר האבן ניט אָננעמען אויף זייַן אייגן "פאַסטער." דו האט צו זאָגן עפּעס וועגן עס. אפילו אויב איר האט טהעאָרעטיקאַללי פאַסטער, מיר געוואוסט אַז איר מין פון פארשטאנען אַז עס ס 0 פון 1. און האַש טיש, אין טעאָריע, איז ניט 0 פון 1. מענשאַנינג עפּעס וועגן רונטימע בכלל גאַט איר די פונקטן. אָבער "פאַסטער," רובֿ פון די סאַלושאַנז אויף די גרויס ברעט אַז זענען פרוווט זענען אַבדזשעקטיוולי סלאָוער ווי סאַלושאַנז וואס זענען האַש טישן. אַזוי פאַסטער אין און פון זיך איז ניט טאַקע אמת. דוד י מאַלאַן: דאָם דע דאַם דאַם. איך בין מיסטאָמע די נאָר איינער אַז ריאַלייזיז אַז ס ווי אַז ס געמיינט צו זיין פּראַנאַונסט, רעכט? באַגאַזלענען באָודאַן: איך האט פאקטיש ניט געדאַנק. דוד י מאַלאַן: עס געמאכט געפיל אין מיין קאָפּ. באַגאַזלענען באָודאַן: איך בין טאן דעם איין. גוט. אַזוי דעם איז דער איין ווו איר האט צו ציען די דיאַגראַמע ענלעך צו איר זאל האָבן געזען אויף פאַרגאַנגענהייַט יגזאַמז. אַזוי לאָזן ס נאָר קוק אין דעם. אַזוי פון די HTML נאָדע, מיר האָבן צוויי קינדער, די קאָפּ און די גוף. אַזוי מיר צווייַג - קאָפּ און גוף. די קאָפּ האט אַ טיטל צעטל. אַזוי מיר האָבן אַ טיטל. איצט, די איין זאַך אַ פּלאַץ פון מענטשן פארגעסן איז אַז די טעקסט נאָודז זענען יסודות ין דעם בוים. אַזוי דאָ מיר פּאַסירן צו ציען זיי ווי אָוואַלס צו דיפערענשיייט זיי פון די טייפּס פון נאָודז. אבער באַמערקן אויך דאָ מיר האָבן שפּיץ, מיטל, און דנאָ וועט סוף אַרויף זייַענדיק טעקסט נאָודז. אַזוי פערגעטינג די איז עפּעס פון אַ פּראָסט גרייַז. דער גוף האט דרייַ קינדער - די דרייַ דיווס. אַזוי דיוו, דיוו, דיוו און דעריבער די טעקסט נאָדע קינדער פון די דיווס. אַז ס שיין פיל עס פֿאַר אַז שאלות. דוד י מאַלאַן: און עס ס כדאי צו באמערקן, אפילו כאָטש מיר טאָן ניט וווינען אויף די פרטים אין די צייַט מיר פאַרברענגען אויף דזשאַוואַסקריפּט, אַז די סדר טוט, אין פאַקט, ענין טעקניקלי. אַזוי אויב קאָפּ קומט פאר גוף אין די HTML, דעמאָלט עס זאָל דערשייַנען צו די לינקס פון גוף אין די פאַקטיש דאַם. אַז זיין איז, אין אַלגעמיין, נאָר פיי, עפּעס גערופן דאָקומענט סדר, ווו עס טוט ענין. און אויב איר זענען ימפּלאַמענינג אַ פּאַרסער, אַ פּראָגראַם וואָס לייענט HTML אין בנין אַרויף די בוים אין זיקאָרן, צו זיין ערלעך, אַז ס ינטויטיוולי מיסטאָמע וואָס איר טאָן סייַ ווי סייַ - שפּיץ צו דנאָ, לינקס צו רעכט. באַגאַזלענען באָודאַן: פֿראגן אויף אַז? זאָל איך טאָן די ווייַטער איינער? דוד י מאַלאַן: זיכער. באַגאַזלענען באָודאַן: גוט. אזוי דעם איז די באַפער באַדעקן באַפאַלן קשיא. די הויפּט זאַך צו דערקענען דאָ איז, נו, ווי זאל אַ קעגנער קונץ דעם פּראָגראַם אין עקסאַקיוטינג אַרבאַטרערי קאָד? אַזוי אַרגוו1, דער ערשטער באַפֿעל שורה אַרגומענט צו דעם פּראָגראַם, וואָס קענען זייַן אַרביטרעראַלי לאַנג. אבער דאָ מיר ניטאָ ניצן מעמקפּי צו צייכענען אַרגוו1, וואָס דאָ איז באַר. מיר ניטאָ גייט פארביי עס ווי די אַרגומענט. און אַזוי עס ס גענומען אויף די נאָמען באַר. אַזוי מיר ניטאָ מעמקפּיינג באַר אין דעם באַפער C. ווי פילע ביטעס זענען מיר קאַפּיינג? גוט אָבער פילע ביטעס באַר כאַפּאַנז צו זיין ניצן, די לענג פון אַז אַרגומענט. אבער C איז בלויז 12 ביטעס ברייט. אַזוי אויב מיר טיפּ אַ באַפֿעל שורה אַרגומענט אַז ס מער ווי 12 ביטעס, מיר ניטאָ געגאנגען צו לויפן דעם באַזונדער באַפער. איצט, ווי זאל אַ קעגנער קונץ די פּראָגראַם אין עקסאַקיוטינג אַרבאַטרערי קאָד? אַזוי געדענקען אַז דאָ הויפּט איז פאַך פו. און אַזוי דעמאָלט הויפּט רופט פו. זאל ס ציען דעם. אַזוי מיר האָבן אונדזער אָנלייגן. און הויפּט האט אַ אָנלייגן ראַם בייַ די דנאָ. אין עטלעכע פונט, הויפּט רופט פו. נו, מיד, הויפּט רופט פו. און אַזוי פו געץ זייַן אייגן אָנלייגן ראַם. איצט, אין עטלעכע פונט, פו איז געגאנגען צו קריק. און איז פו קערט, מיר דאַרפֿן צו וויסן אין וואָס שורה פון קאָד ין פון הויפּט מיר זענען אין סדר צו וויסן ווו מיר זאָל נעמענ זיכ ווידער אין הויפּט. מיר קענען רופן פו פון אַ גאַנץ בינטל פון פאַרשידענע ערטער. ווי טאָן מיר וויסן ווו צו אומקערן? נו, מיר דאַרפֿן צו קראָם אַז ערגעץ. אַזוי ערגעץ רעכט אַרום דאָ, מיר קראָם ווו מיר זאָל צוריקקומען צו אַמאָל פו קערט. און דעם איז דער צוריקקער אַדרעס. אַזוי ווי אַ קעגנער זאל נעמען מייַלע פון דעם איז דער פאַקט אַז דעם באַפער C איז סטאָרד, לאָזן ס זאָגן, רעכט דאָ איז C. אַזוי מיר 'ווע גאַט 12 ביטעס פֿאַר C. דעם איז C. און דעם איז פו ס אָנלייגן רינג. אַזוי אויב די בייזע באַניצער גייט אריין מער ביטעס ווי 12 אָדער זיי אַרייַן אַ באַפֿעל שורה אַרגומענט אַז ס מער ווי 12 אותיות, דעמאָלט מיר ניטאָ געגאנגען צו לויפן דעם באַפער. מיר קענען האַלטן געגאנגען. און אין עטלעכע פונט, מיר גיין ווייַט גענוג אַז מיר אָנהייב אָווועררייטינג דעם צוריקקומען אַדרעס. אַזוי אַמאָל מיר אָווועררייט דער צוריקקער אַדרעס, דעם מיטל אַז ווען פו קערט, מיר ניטאָ אומגעקערט צו ווו נאָר די מאַלישאַס באַניצער איז טעלינג עס צו דורך וועלכער ווערט עס אריין, דורך וועלכער אותיות דער באַניצער אריין. און אַזוי אויב דער מאַלישאַס באַניצער איז זייַענדיק הויפּט קלוג, ער קענען האָבן דעם צוריקקומען צו ערגעץ אין די פּרינטדעף פונקציאָנירן אָדער ערגעץ אין די מאַללאָק פֿונקציע, נאָר ערגעץ אַרבאַטרערי. אבער אפילו מער קלוג איז וואָס אויב ער האט דער באַניצער צוריקקומען צו רעכט דאָ. און דעמאָלט איר אָנהייב עקסאַקיוטינג די ווי שורות פון קאָד. אַזוי בייַ אַז פונט, דער באַניצער קענען אַרייַן וועלכער ער וויל אין דעם געגנט. און ער האט גאַנץ קאָנטראָל איבער דיין פּראָגראַם. פֿראגן אויף אַז? אַזוי דער ווייַטער קשיא איז פאַרענדיקן די רעימפּלעמענטאַטיאָן פון פו אין אַזאַ אַ וועג אַז עס ס ניט מער שפּירעוודיק. אַזוי עס ס אַ פּאָר פון וועגן איר געקענט האָבן געטאן דעם. מיר נאָך האָבן C בלויז זייַענדיק פון לענג 12. איר קען האָבן געביטן דעם ווי טייל פון אייער לייזונג. מיר אויך צוגעלייגט אַ טשעק צו מאַכן זיכער באַר איז ניט נאַל. כאָטש איר האט ניט דאַרפֿן אַז פֿאַר פול קרעדיט. אַזוי מיר ניטאָ טשעק ערשטער די שטריקל לענג פון באַר. אויב עס ס גרעסער ווי 12, דעמאָלט טאָן ניט פאקטיש טאָן די קאָפּיע. אַזוי אַז ס איין וועג פון פיקסיר עס. אן אנדער וועג פון פיקסיר עס איז אַנשטאָט פון בעת C נאָר זיין פון לענג 12, האָבן עס זיין פון לענג סטרלען (באַר). אן אנדער וועג פון פיקסיר עס איז צו פאקטיש נאָר צוריקקומען. אַזוי אויב איר האט פּונקט גאַטאַן באַפרייַען פון אַלע פון דעם, אויב איר האט פּונקט אויסגעמעקט אַלע שורות פון קאָד, איר וואָלט האָבן גאַטאַן פול קרעדיט, זינט דעם פונקציאָנירן טוט ניט אַקטשאַוואַלי ויספירן עפּעס. עס ס קאַפּיינג די באַפֿעל שורה אַרגומענט אין עטלעכע מענגע אין זייַן היגע אָנלייגן ראַם. און דעמאָלט דער זאַך איז אומגעקערט. און וועלכער עס פארענדיקט איז ניטאָ. אַזוי צוריקקומען איז אויך אַ גענוג וועג פון געטינג פול קרעדיט. דוד י מאַלאַן: ניט גאַנץ דער גייסט פון די קשיא אָבער פּאַסיק פּער די ספּעק נאַנדאַלעס. באַגאַזלענען באָודאַן: פֿראגן אויף קיין פון אַז? די איין זאַך אַז איר בייַ מינדסטער דארף צו האָבן קאַמפּיילינג קאָד. אַזוי אפילו כאָטש טעקניקלי איר זענען נישט שפּירעוודיק אויב דיין קאָד טוט ניט צונויפנעמען, מיר האט ניט אָננעמען אַז. ניט קיין שאלות? גוט. דוד י מאַלאַן: צי איר ווילן צו זאָגן דעם טיטל? באַגאַזלענען באָודאַן: נומ ' דוד י מאַלאַן: אזוי אין דעם איין, דעם איז אָדער גוט נייַעס אָדער שלעכט נייַעס. דעם איז ממש די זעלבע פּראָבלעם ווי דער ערשטער ויספרעג. און עס ס כּמעט די זעלבע פּראָבלעם ווי פּסעט1. אבער עס איז געווען דיליבראַטלי סימפּלאַפייד צו זיין אַ סימפּלער פּיראַמיד, איינער וואס קענען זיין סאַלווד מיט אַ ביסל סימפּלער יטעראַטיאָן. און טאַקע, וואָס מיר זענען געטינג אין דאָ איז ניט אַזוי פיל די לאָגיק, ווייַל מיסטאָמע, דורך דעם פונט, איר ניטאָ מער באַקוועם ווי איר זענען אין וואָך איינער מיט פֿאַר לופּס אָדער וואָס לופּס, אָבער טאַקע צו רייצנ באַזונדער אַז איר ניטאָ אַ ביסל באַקוועם מיט די געדאנק אַז פפּ איז ניט נאָר וועגן וואָס פּראָגראַממינג. עס קענען פאקטיש זיין געוויינט ווי אַ שפּראַך צו שרייַבן באַפֿעל שורה מגילה. און טאַקע, אַז ס וואָס מיר זענען טריינג צו ציען אייער אויפמערק צו. דעם איז אַ באַפֿעל שורה פפּ פּראָגראַם. אַזוי C קאָד דאָ, בשעת ריכטיק אין C, ניט ריכטיק פֿאַר פפּ. אבער די קאָד טאַקע איז דער זעלביקער. אויב איר גלייַכן די סאַלושאַנז פֿאַר קוויז 0 קעגן קוויז 1, איר וועט געפינען אַז עס ס כּמעט יידעניקאַל, אַחוץ פֿאַר עטלעכע דאָלאַר וואונדער און פֿאַר די אַוועק פון אַ דאַטן טיפּ. אין באַזונדער, אויב מיר נעמען אַ קוק דאָ, איר וועט זען אַז מיר יטעראַטע, אין דעם פאַל, פון 1 אַרויף דורך 7. מיר געקענט האָבן געטאן עס 0 אינדעקס. אבער מאל, איך טראַכטן עס ס נאָר מענטאַלי גרינגער צו טראַכטן וועגן זאכן 1-7. אויב איר ווילן איין בלאָק, דעמאָלט צוויי בלאַקס, דעמאָלט דרייַ, דעמאָלט פּונקט, פּונקט, פּונקט זיבן. מיר האָבן דזש זייַענדיק יניטיאַליזעד צו 1 און דעריבער קאַונטינג אויף אַרויף צו איך. און אַלץ דאָ איז אַנדערש יידעניקאַל. אבער ווערט פון טאָן זענען אַ פּאָר פון זאכן. מיר געבן איר די צוויי שורות, דעם ערשטער איינער, גאָאָפילי געהייסן ווי אַ שעבאַנג פֿאַר שאַרף קלאַפּ. און אַז פּונקט ספּעסאַפייז די דרך, די טעקע, אין וואָס אַ פּראָגראַם קענען זיין געפונען אַז איר ווילן צו נוצן צו טייַטשן דעם טעקע. און דעמאָלט דער שורה נאָך אַז, פון קורס, מיטל אַרייַן פפּ מאָדע. און די שורה בייַ די זייער דנאָ מיטל אַרויסגאַנג פפּ מאָדע. און דעם אַרבעט, אין אַלגעמיין, מיט ינטערפּראַטאַד שפּראַכן. עס ס מין פון אַנויינג אויב איר שרייַבן אַ פּראָגראַם אין אַ טעקע גערופן פאָאָ.פפּ. און דעמאָלט אייער ניצערס האָבן צו נאָר געדענקען, גוט, צו לויפן דעם פּראָגראַם, איך האָבן צו דרוקן "פפּ פּלאַץ פאָאָ.פפּ." מין פון אַנויינג אויב גאָרנישט אַנדערש. און עס אויך ריווילז אַז אייער פּראָגראַם איז געשריבן אין פפּ, וואָס איז ניט אַלע אַז ילומאַנייטינג פֿאַר די באַניצער. אַזוי איר קענען אַראָפּנעמען די. פפּ בעסאַכאַקל צוריקרופן פון לעקציע. און איר קענען פאקטיש טאָן. / פו אויב איר 'ווע טשמאָדדעד עס דורך מאכן עס עקסעקוטאַבלע. אַזוי טשמאָד א + רענטגענ פו וואָלט האָבן געטאן אַז. און אויב איר אויך לייגן די שעבאַנג דאָ. אבער טאַקע, די פּראָבלעם איז געטינג אין דרוקן אויס עפּעס ווי דעם. ניט קיין HTML, קיין C-קאָד זיכער, נאָר עטלעכע פפּ. אַזוי מילאָ דעמאָלט אומגעקערט אין פּראָבלעם 25. און אין 25, איר זענען געגעבן די ווייַטערדיק סקעלעט קאָד, וואָס איז געווען אַ שיין פּשוט וועב בלאַט. און די זאַפטיק טייל HTML-קלוג איז אַראָפּ דאָ, ווו מיר האָבן ין פון דעם גוף אַ פאָרעם וואס האט יינציק שייַן פון ינפּוץ ין פון וואָס איז געווען צוויי ינפּוץ, איינער מיט אַ געדאַנק פון נאָמען, איינער מיט אַ געדאַנק פון קנעפּל. דער ערשטער איז געווען טיפּ טעקסט, די רגע פון ​​טיפּ פאָרלייגן. און אַזוי מיר האט איר, פאקטיש, מער ינגרידיאַנץ ווי איר דארף, פּונקט אַזוי איר גייז האט אָפּציעס מיט וואָס צו סאָלווע דעם פּראָבלעם. איר טאָן ניט שטרענג דאַרפֿן אַלע פון ​​די ידס. אבער עס אַלאַוז איר צו סאָלווע עס אין פאַרשידענע וועגן. און אַרויף אין די שפּיץ, באַמערקן אַז די אָביעקטיוו איז געווען צו צינגל אַ פֿענצטער ווי דעם - העלא, מילאָ! - צו קנאַל אַרויף אין דעם בלעטערער ניצן די סופּער פּשוט, אויב ניט מיעס, פלינק פֿונקציע. און אַזוי, לעסאָף, דעם בוילז אַראָפּ קאַנסעפּטשואַלי צו עפעס צוגעהערט פֿאַר סאַבמישאַנז פון די פאָרעם קליענט-זייַט , ניט סערווירער-זייַט, עפעס ריספּאַנדינג צו אַז סאַבמישאַן דורך גראַבינג די ווערט אַז דער באַניצער טייפּט אין צו די נאָמען פעלד, און דעמאָלט ווייַזנדיק עס אין די גוף פון אַ פלינק. אַזוי איין וועג איר קענען טאָן דעם איז מיט דזשקווערי, וואָס קוקט אַ ביסל סינטאַקטיקאַללי פּערפּלעקסינג בייַ ערשטער. איר קענען טאָן דעם מיט ריין דאַם קאָד - דאָקומענט.געטעלעמענט דורך שייַן. אבער לאָזן ס נעמען אַ קוק אין דעם ווערסיע. איך האָבן אַ פּאָר פון וויכטיק שורות ערשטער. אַזוי איינער, מיר האָבן דעם שורה, וואָס איז יידעניקאַל צו וואָס איר זאל האָבן געזען אין, איך גלויבן, פאָרמ2.הטמל פון קלאַס אין וואָך 9. און דעם איז נאָר געזאגט, ויספירן די פאלגענדע קאָד ווען דעם דאָקומענט איז גרייט. דעם זייַענדיק וויכטיק בלויז ווייַל HTML בלעטער זענען לייענען שפּיץ צו דנאָ, לינקס צו רעכט. און דעריבער, אויב איר פּרובירן צו טאָן עפּעס אין קאָד אַרויף דאָ צו עטלעכע דאַם עלעמענט, עטלעכע HTML טאַגס, אַז ס אַראָפּ דאָ, איר ניטאָ טוען עס אויך באַלד, ווייַל דעם האט ניט אפילו שוין לייענען אין זיקאָרן. אַזוי דורך זאגן דעם דאָקומענט.רעאַדי שורה, מיר ניטאָ געזאגט, דאָ ס עטלעכע קאָד, בלעטערער. אבער טאָן ניט ויספירן דעם ביז די גאנצע דאָקומענט איז גרייט, אַז איז דער דאַם בוים יגזיסס אין זיקאָרן. דעם איינער איז אַ ביסל מער סטרייטפאָרווערד, אויב סינטאַקטיקאַללי אַ ביסל אַנדערש, ווו איך בין געזאגט, כאַפּן די HTML עלעמענט וועמענס יינציק יידענטאַפייער איז ינפּוץ. אַז ס וואָס די האַש קוויטל דינאָוץ, די יינציק שייַן. און דעמאָלט איך בין פאַך. פאָרלייגן. אַזוי. פאָרלייגן דאָ איז אַ פֿונקציע, אַנדערש באקאנט ווי אַ מיטל, אַז ס ין פון די כייפעץ אויף די לינק-האַנט זייַט עס אַז איך האט ניט הויכפּונקט. אַזוי אויב איר טראַכטן פון ינפּוץ ווי אַ כייפעץ אין זיקאָרן - און טאַקע עס איז. עס ס אַ נאָדע אין אַ בוים - . פאָרלייגן מיטל ווען דעם פאָרעם מיט דעם שייַן איז דערלאנגט, ויספירן די פאלגענדע קאָד. איך טאָן ניט זאָרגן וואָס די נאָמען פון די פונקציע איז איך בין עקסאַקיוטינג. אַזוי דאָ איך בין ניצן, ווי איידער, וואָס ס גערופן די לאַמדאַ פונקציאָנירן אָדער אַ Anonymous פֿונקציע. עס ס ניט בייַ אַלע ינאַלעקטשואַלי טשיקאַווע אנדערע ווי עס האט ניט נאָמען, וואָס איז פייַן אויב איר 'רע בלויז אלץ געגאנגען צו רופן עס אַמאָל. און ין עס איך פאקטיש שעפּן די סאַבמישאַן פון די פאָרעם. איך ערשטער דערקלערן אַ בייַטעוודיק גערופן ווערט. און דעמאָלט וואָס איז די ווירקונג פון דעם כיילייטיד חלק דאָ איצט? וואָס טוט אַז טאָן בייַ אַ הויך מדרגה פֿאַר מיר? וילעם: עס געץ די ווערט אַז די באַניצער האט ניט אין די HTML אונטן. עס געץ אַז שייַן און דעמאָלט געפינט די ווערט פון עס. דוד י מאַלאַן: פּונקט. עס גראַבס די נאָדע, וועמענס יינציק יידענטאַפייער איז נאָמען. עס געץ די ווערט דערין, וואָס איז, מאַשמאָעס, וואָס דער באַניצער טייפּט אים אָדער זיך. און דעמאָלט עס סטאָרז אַז אין דער בייַטעוודיק גערופן ווערט. ווי אַ באַזונדער, איר געקענט האָבן אויך געטאן דעם אַ ביסל דיפערענטלי. טאָוטאַלי פּאַסיק דורך טאן עפּעס ליגן וואַר ווערט געץ דאָקומענט.געטעלעמענטבייד. און דעם איז וואָס עס ס אַ ביסל טידיאַס צו ניט נוצן דזשקווערי. "נאָמען". ווערט. אַזוי טאָוטאַלי פּאַסיק. פאַרשידענע וועגן צו טאָן דעם. דזשקווערי נאָר טענדז צו זיין אַ ביסל מער סאַקסינגקט און באשטימט מער פאָלקס צווישן פּראָוגראַמערז. איצט, איך בין טאן אַ ביסל פון אַ מייושעוודיקייַט טשעק, ווייַל אין די פּראָבלעם ויסזאָגונג מיר בפירוש געזאגט, אויב די באַניצער האט נישט נאָך טייפּט זיין אָדער איר נאָמען, טאָן ניט ווייַזן אַ אַלערץ. אָבער איר קענען קאָנטראָלירן פֿאַר אַז, דורך פּונקט טשעק פֿאַר די ליידיק שטריקל פֿאַר אַ ציטירן-ונקוואָטע אויב עס ס גאָרנישט פאקטיש עס. אבער אויב עס ס ניט גלייַך צו ציטירן-ונקוואָטע, איך ווילן צו רופן אַלערץ. און די טשיקאַווע טייל דאָ איז אַז מיר ניטאָ ניצן די פּלוס אָפּעראַטאָר, וואָס טוט וואָס אין דזשאַוואַסקריפּט? קאַנקאַטאַנייט. אַזוי עס ס ווי פפּס פּונקט אָפּעראַטאָר. זעלביקער געדאַנק, אַ ביסל אַנדערש סינטאַקס. און איך בין נאָר שאפן די שטריקל אַז איר געזען אויף דער עקראַן שאָס - העלא, אַזוי און אַזוי. און דעמאָלט די לעצטע דעטאַל איז דעם. פארוואס טאָן איך צוריקקומען פאַלש ין פון דעם Anonymous פונקציאָנירן? וילעם: עס ס ניט ווערט. איר שטעלן עס אין פאָרעם. עס פּונקט זאגט, אויב ווערט איז ניט גלייַך צו ליידיק, דעמאָלט טאָן עס. עס איז געווען אַ ליידיק אין אַז סאַבמישאַן. דוד י מאַלאַן: גוט. אָפּגעהיט כאָטש. עס ס קיין איינער אַנדערש דאָ. און אַז צוריקקומען פאַלש איז אַרויס פון די אויב באדינגונגען. אַזוי דעם כיילייטיד שורה, קריק פאַלש, עקסאַקיוץ קיין ענין וואָס ווען די פאָרעם איז דערלאנגט. וואָס טוט אומגעקערט פאַלש ין פון דעם געשעעניש האַנדלער, ווי עס ס גערופן, די געשעעניש אין קשיא זייַענדיק סאַבמישאַן? וילעם: ווייַל עס בלויז כאַפּאַנז אַמאָל. דוד י מאַלאַן: בלויז כאַפּאַנז אַמאָל. ניט גאַנץ. יאָ? וילעם: עס פּריווענץ די פאָרעם פון סאַבמיטינג צו די פעליקייַט אָפּפירונג, וואָס וואָלט מאַכן די בלאַט רילאָוד. דוד י מאַלאַן: פּונקט. אַזוי איך בין אָווערלאָאַדינג דער טערמין פאָרלייגן דאָ, ווייַל איך בין געזאגט, די פאָרעם איז זייַענדיק דערלאנגט. אבער ווי איר פֿאָרשלאָגן, עס ס פאקטיש נישט שוין דערלאנגט אין די אמת הטטפּ וועג. ווען איר גיט פאָרלייגן, ווייַל פון אונדזער אָנסובמיט האַנדלער, מיר ניטאָ ינערסעפּטינג אַז פאָרעם סאַבמישאַן אַזוי צו רעדן. מיר ניטאָ דעמאָלט טאן אונדזער זאַך מיט דזשאַוואַסקריפּט קאָד. אָבער איך בין דיליבעראַטלי אומגעקערט פאַלש, ווייַל וואָס איך טאָן ניט ווילן צו פּאַסירן אַ שפּאַלטן רגע שפּעטער איז פֿאַר די גאנצע פאָרעם זיך צו זיין דערלאנגט צו די וועב סערווירער מיט שליסל ווערט פּערז דורך טשאַנגינג די URL צו זיין עפּעס ווי ק = קאַץ אָדער וועלכער מיר האבן, פֿאַר בייַשפּיל, אין קלאַס. איך טאָן ניט וועלן אַז צו פּאַסירן, ווייַל עס איז ניט סערווירער צוגעהערט פֿאַר דעם פאָרעם סאַבמישאַן. עס ס ריין געטאן אין דזשאַוואַסקריפּט קאָד. און אַז ס וואָס איך האט ניט אפילו האָבן אַ קאַמף אַטריביוט אויף מיין פאָרעם, ווייַל איך טאָן ניט אויסן פֿאַר דעם צו אלץ גיין צו די סערווירער. אַזוי עס ס זייַענדיק דערלאנגט. אבער מיר ניטאָ ינערסעפּטינג אַז פאָרעם סאַבמישאַן און פּרעווענטינג די פעליקייַט נאַטור, וואָס איז צו פאקטיש גיין אַלע די וועג צו די סערווירער. וילעם: אזוי בעכעסקעם עס קליענט-זייַט. דוד י מאַלאַן: בעכעסקעם עס קליענט-זייַט. פּונקט רעכט. ווייַטער אַרויף איז געווען מיין טאַקע מיסקל. באַגאַזלענען באָודאַן: גוט. אזוי דעם ערשטער קשיא איז בכלל פּראָסט פֿאַר מענטשן. כאָטש די שפּעטער אָנעס זענען בעסער. אַזוי איר האט צו קלייַבן די ריכטיק דאַטן טייפּס פֿאַר ביידע פון ​​די שפאלטן. און ביידע פון ​​די האָבן עטלעכע זאכן וועגן זיי אַז מאַכן די ברירה שווער. אַזוי ינט איז געווען ניט אַ גילטיק טיפּ פֿאַר נומער. די סיבה זייַענדיק אַ 12-ציפֿער חשבון נומער, אַ ינט איז ניט גרויס גענוג צו קראָם גאַנץ דידזשאַץ. אַזוי אַ גילטיק ברירה וואָלט האָבן געווען אַ גרויס ינט אויב איר פּאַסירן צו וויסן אַז. אן אנדער ברירה קען האָבן געווען אַ טשאַר פעלד פון לענג 12. אַזוי אָדער פון די וואָלט האָבן געארבעט. ינט וואָלט ניט. איצט, וואָג, טראַכטן צוריק צו פּסעט7. אַזוי מיר ספּאַסיפיקלי געניצט דעצימאַל צו קראָם די ווערט פון שאַרעס אָדער - דוד י מאַלאַן: געלט. באַגאַזלענען באָודאַן: געלט. מיר געניצט דעצימאַל צו קראָם די סומע פון געלט אַז דער באַניצער איצט האט. אַזוי די סיבה מיר טאָן וואָס איז ווייַל, געדענקען, פלאָוץ. עס ס פלאָוטינג פונט אין פּינטלעכקייַט. עס קענען ניט דווקא קראָם די געלט וואַלועס ווי מיר ווילן דאָ. אַזוי דעצימאַל איז ביכולת צו דווקא קראָם עפּעס צו, זאָגן, צוויי דעצימאַל ערטער. אַז ס וואָס וואָג, מיר ווילן עס צו זיין דעצימאַל און ניט לאָזנ שווימען. דוד י מאַלאַן: און אויך, אויך, כאָטש עס זאל האָבן געווען קלוג אין אנדערע קאַנטעקסץ צו טראַכטן, אפֿשר דעם איז אַ געלעגנהייַט פֿאַר אַ ינט. איך וועט נאָר האַלטן שפּור פון זאכן אין פּעניז. ווייַל מיר בפירוש געוויזן די פעליקייַט ווערט פון זייַענדיק 100.00, אַז מיטל עס קען נאָר זיין אַ ינט. און אנדערן סובטלעטי אויך מיט נומער איז געווען אַז עס איז ניט מענט צו זיין אַ קונץ קשיא. אבער צוריקרופן אַז אַ ינט אין מיסקל, ווי אין C, לפּחות אין די מאַכשער, איז 32-ביסל. און אפילו כאָטש מיר טאָן ניט דערוואַרטן איר צו וויסן פּונקט ווי פילע דידזשאַץ אַז מיטל, טאָן צוריקרופן אַז די גרעסטן נומער איר קענען פאָרשטעלן פּאַטענטשאַלי מיט אַ 32-ביסל נומער איז בעערעך וואָס? וואָס נומער טאָן מיר שטענדיק זאָגן? 2 צו די 32, וואָס איז וואָס בעערעך? איר טאָן ניט האָבן צו וויסן דווקא. אבער בעערעך איז נוציק אין לעבן. עס ס בעערעך 4000000000. אַזוי מיר 'ווע געזאגט אַז אַ ביסל מאל. איך וויסן איך האָבן געזאגט אַז אַ ביסל מאל. און עס איז בעערעך 4000000000. און אַז ס אַ גוט הערשן פון גראָבער פינגער צו וויסן. אויב איר האָבן 8 ביטן, 256 איז די מאַגיש נומער. אויב איר האָבן 32 ביטן, 4 ביליאָן געבן אָדער נעמען. אַזוי אויב איר נאָר שרייַבן אַראָפּ 4000000000, איר וועט זען אַז עס ס ווייניקערע דידזשאַץ ווי 12, וואָס מיטל אַז ס קלאר ניט גענוג עקספּרעססיווענעסס צו כאַפּן אַ 12-ציפֿער חשבון נומער. באַגאַזלענען באָודאַן: גוט. אַזוי די אנדערע אָנעס זענען בעסער. אַזוי רעכן אַז די באַנק ימפּאָוזאַז אַ $ 20 כוידעשלעך וישאַלט אָפּצאָל אויף אַלע אַקאַונץ. מיט וואָס סקל אָנפֿרעג קען די באַנק אַראָפּרעכענען 20 $ פון יעדער ציילן, אפילו אויב עס רעזולטאַטן אין עטלעכע נעגאַטיוו באַלאַנסעס? אַזוי בייסיקלי, עס זענען פיר הויפּט טייפּס פון קוויריז - אַרייַנלייגן, אויסקלייַבן, דערהייַנטיקן, און ויסמעקן. אַזוי וואָס טאָן מיר טראַכטן מיר ניטאָ געגאנגען צו נוצן דאָ? דערהייַנטיקן. אַזוי לאָזן ס נעמען אַ קוק. אַזוי דאָ מיר ניטאָ אַפּדייטינג. וואָס טיש זענען מיר אַפּדייטינג אַקאַונץ? אַזוי אַפּדייטינג אַקאַונץ. און דעמאָלט דער סינטאַקס זאגט, וואָס אין אַקאַונץ זענען מיר אַפּדייטינג? נו, מיר ניטאָ באַשטעטיקן וואָג גלייַך צו די קראַנט ווערט פון וואָג מינוס 20. אַזוי דעם וועט דערהייַנטיקן אַלע ראָוז פון אַקאַונץ, סאַבטראַקטינג $ 20 פון די וואָג. דוד י מאַלאַן: אַ פּראָסט גרייַז דאָ, אפילו כאָטש מיר מאל מוחל געווען עס, איז געווען צו פאקטיש האָבן פפּ קאָד דאָ פאַך די אָנפֿרעג פונקציאָנירן אָדער פּאַטינג קוואָטעס אַרום אַלץ אַז האט ניט דאַרפֿן צו זיין עס. באַגאַזלענען באָודאַן: געדענק אַז מיסקל איז אַ באַזונדער שפּראַך פון פפּ. מיר פּאַסירן צו זיין שרייבט מיסקל אין פפּ. און פפּ איז דעמאָלט שיקט עס איבער צו די מיסקל סערווער. אבער איר טאָן ניט דאַרפֿן פפּ אין סדר צו יבערגעבן מיט אַ מיסקל סערווער. דוד י מאַלאַן: פּונקט. אַזוי קיין וועריאַבאַלז מיט דאָלאַר וואונדער זאָל זיין אין דעם קאָנטעקסט. עס קענען נאָר טאָן אַלע פון ​​די מאַט ין די דאַטאַבאַסע זיך. באַגאַזלענען באָודאַן: גוט. אַזוי דער ווייַטער איינער. איז דעם דער ווייַטער איינער? יאָ. אַזוי מיט וואָס סקל אָנפֿרעג קען די באַנק צוריקקריגן דעם חשבון נומערן פון זייַן ריטשאַסט קאַסטאַמערז, די מיט באַלאַנסעס גרעסער ווי 1,000? אַזוי וואָס פון די פיר הויפּט טייפּס זענען מיר געגאנגען צו ווילן דאָ? אויסקלייַבן. אַזוי מיר ווילן צו אויסקלייַבן. וואס טאָן מיר ווילן צו אויסקלייַבן? וואָס זייַל טאָן מיר ווילן צו אויסקלייַבן? מיר וועלן ספּאַסיפיקלי ווילן צו אויסקלייַבן נומער. אבער אויב איר האט שטערן, מיר אויך אנגענומען אַז. אַזוי אויסקלייַבן נומער פון וואָס טיש? אַקאַונץ. און דעמאָלט דער צושטאַנד מיר וועלן? ווו וואָג גרעסער ווי 1,000. מיר אויך אנגענומען גרעסער ווי אָדער גלייַך. לעצטע איינער. מיט וואָס סקל אָנפֿרעג קען די באַנק נאָענט, י.ע., אויסמעקן יעדער חשבון אַז האט אַ וואָג פון $ 0? אַזוי וואָס פון די פיר זענען מיר געגאנגען צו ווילן צו נוצן? ויסמעקן. אַזוי די סינטאַקס פֿאַר אַז? ויסמעקן פון וואָס טיש? אַקאַונץ. און דעמאָלט דער צושטאַנד אויף וואָס מיר ווילן צו ויסמעקן - ווו וואָג יקוואַלז נול. אַזוי אויסמעקן אַלע ראָוז פון אַקאַונץ ווו די וואָג איז נול. פֿראגן אויף קיין פון די? ווילן צו ריי? דוד י מאַלאַן: קיו פירער. אַזוי אין דעם איין, מיר האט איר אַ עפּעס באַקאַנט ביניען אַז מיר יקספּלאָרד אַ ביסל אין קלאַס אַלאָנגסייד פון סטרוקץ, וואָס איז געווען אַ דאַטן ביניען שייַכות אין גייסט. דער חילוק כאָטש מיט אַ ריי איז אַז מיר האט צו עפעס געדענקען וואס איז געווען אין די פראָנט פון די ריי, אין גרויס טייל אַזוי אַז מיר קען מאַכן מער עפעקטיוו נוצן פון דעם זיקאָרן, לפּחות אויב מיר זענען ניצן אַ מענגע. ווייַל צוריקרופן, אויב מיר האָבן אַ מענגע, אויב, פֿאַר בייַשפּיל, דעם איז די פראָנט פון די ריי, אויב איך באַקומען אין די ריי דאָ, און דעריבער עמעצער געץ אין שורה הינטער מיר, הינטער מיר, הינטער מיר, און איין מענטש טריט אויס פון שורה, איר קען, ווי מיר געזען עטלעכע פון ​​אונדזער מענטש וואַלאַנטירז אין קלאַס, האָבן אַלעמען יבעררוק דעם וועג. אבער אין אַלגעמיין, בעת אַלעמען טאָן עפּעס איז ניט דער בעסטער נוצן פון צייַט אין אַ פּראָגראַם, ווייַל עס מיטל דיין אַלגערידאַם איז פליסנדיק אין וואָס אַסימפּטאָטיק פליסנדיק צייַט? עס ס לינעאַר. און איך פילן ווי אַז ס מין פון נאַריש. אויב דער ווייַטער מענטש אין שורה איז דער ווייַטער מענטש וואס ס געמיינט צו גיין אין די קראָם, זיי טאָן ניט אַלע האָבן צו רירן צוזאַמען. נאָר לאָזן אַז מענטש זיין פּלאַקט אַוועק ווען די צייַט קומט, פֿאַר בייַשפּיל. אַזוי מיר קענען ראַטעווען אַ ביסל פון צייַט עס. און אַזוי צו טאָן אַז כאָטש, אַז מיטל אַז די קאָפּ פון די ריי אָדער די פראָנט פון די ריי איז געגאנגען צו פּראַגרעסיוולי מאַך דיפּער און דיפּער אין די מענגע און יווענטשאַוואַלי זאל פאקטיש ייַנוויקלען אַרום אויב מיר ניטאָ ניצן אַ מענגע צו קראָם די מענטשן אין דעם ריי. אַזוי איר קענען כּמעט טראַכטן פון די מענגע ווי אַ קייַלעכיק דאַטן ביניען אין אַז זינען. אַזוי איר עפעס האָבן צו האַלטן שפּור פון די נומער פון עס אָדער טאַקע די סוף פון עס און דעריבער ווו די אָנהייב פון עס איז. אַזוי מיר פאָרשלאָגן אַז איר דערקלערן איינער אַזאַ ריי, פאַך עס ק, נאָר איינער בריוו. דעמאָלט מיר פאָרשלאָגן אַז די פראָנט זיין יניטיאַליזעד צו נול און אַז די גרייס זיין ינישאַלייזד צו נול. אַזוי רעכט איצט, עס ס גאָרנישט ין פון אַז ריי. און מיר פרעגן איר צו פאַרענדיקן די ימפּלאַמענטיישאַן פון ענקוועוע אונטן אין אַזאַ אַ וועג אַז די פֿונקציע מוסיף N צו די סוף פון ק און דעמאָלט קערט אמת. אבער אויב ק איז פול אָדער נעגאַטיוו, די פונקציאָנירן זאָל אַנשטאָט צוריקקומען פאַלש. און מיר האט איר אַ פּאָר פון אַסאַמפּשאַנז. אָבער זיי ניטאָ ניט טאַקע פאַנגקשאַנאַלי באַטייַטיק, נאָר אַז באָאָל יגזיסץ, ווייַל, טעקניקלי, באָאָל טוט ניט עקסיסטירן אין C סייַדן איר אַרייַננעמען אַ זיכער קאָפּצעטל טעקע. אַזוי אַז איז געווען פּונקט מאַכן זיכער עס זענען געווען קיין איז דעם אַ קונץ קשיא טיפּ פון זאַך. אַזוי ענקוועוע, מיר פארגעלייגט אין די מוסטער סאַלושאַנז צו מאַכשער ווי גייט. איינער, מיר ערשטער קאָנטראָלירן די יז, די נידעריק-כאַנגגינג פירות. אויב די ריי איז פול אָדער די נומער אַז איר ניטאָ טריינג צו טאָן איז ווייניקער ווי נול, וואָס מיר האט אין די באַשרייַבונג פון די פּראָבלעם זאָל ניט זיין ערלויבט, ווייַל מיר בלויז ווילן ניט-נעגאַטיוו וואַלועס, דעמאָלט איר זאָל נאָר צוריקקומען פאַלש מיד. אַזוי עטלעכע לעפיערעך גרינג טעות טשעק. אויב כאָטש איר ווילן צו לייגן אַז פאַקטיש נומער, איר האט צו טאָן אַ ביסל פון טראכטן דאָ. און דעם איז ווו עס ס אַ ביסל אַנויינג מענטאַלי, ווייַל איר האָבן צו רעכענען אויס ווי צו שעפּן ווראַפּאַראָונד. אבער די גערמע פון ​​די געדאַנק דאָ אַז ס פון אינטערעס צו אונדז איז אַז ווראַפּאַראָונד אָפֿט ימפּלייז מאַדזשאַלער אַריטמעטיק און די מאָד אָפּעראַטאָר, די פּראָצענט זייַט, ווו איר קענען גיין פון אַ גרעסערע ווערט צוריק צו נול און דעריבער איין און צוויי און דרייַ און דעמאָלט צוריק אַרום צו נול, איין און צוויי און דרייַ און אַזוי אַרויס ווידער און ווידער. אַזוי די וועג מיר פאָרשלאָגן טאן דעם איז אַז מיר טאָן ווילן צו אינדעקס אין די מענגע גערופן נומערן ווו אונדזער ינטאַדזשערז ליגן. אבער צו באַקומען עס, מיר ערשטער ווילן צו טאָן וועלכער די גרייס פון דעם ריי איז אָבער דעריבער לייגן צו אַז וועלכער די פראָנט פון די רשימה איז. און די ווירקונג פון וואָס איז צו שטעלן אונדז אין די רעכט שטעלע אין דער ריי און ניט יבערנעמען אַז דער ערשטער מענטש אין שורה איז אין די אָנהייב, וואָס ער אָדער זי לעגאַמרע קען זיין אויב מיר זענען אויך שיפטינג אַלעמען. אבער מיר ניטאָ פּונקט שאפן אַרבעט פֿאַר זיך אויב מיר גענומען אַז באַזונדער דרך. אַזוי מיר קענען האַלטן עס לעפיערעך פּשוט. מיר טאָן האָבן צו געדענקען אַז מיר נאָר צוגעגעבן אַ ינט צו די ריי. און דעמאָלט מיר נאָר צוריקקומען אמת. דערווייַל, אין דעקוועוע, מיר געבעטן איר צו טאָן די ווייַטערדיק. מאַכשער עס אין אַזאַ אַ וועג אַז עס דעקוועועס, אַז איז רימוווז און קערט, די ינט בייַ די פראָנט פון ריי. צו באַזייַטיקן דעם ינט, עס איז גענוג צו פאַרגעסן עס. איר טאָן ניט דאַרפֿן צו אָווועררייד זייַן ביסל. אַזוי עס ס נאָך פאקטיש עס. פּונקט ווי דאַטע אויף אַ שווער פאָר, מיר ניטאָ פּונקט יגנאָרינג די פאַקט אַז עס ס איצט עס. און אויב ק איז ליידיק, מיר זאָל אַנשטאָט צוריקקומען נעגאַטיוו 1. אַזוי דעם פילז אַרבאַטרערי. וואָס קריק נעגאַטיוו 1 אַנשטאָט פון פאַלש? יאָ. וילעם: ק איז סטאָרינג בעפיירעש וואַלועס. זינט איר נאָר קראָם positive וואַלועס אין די ק, נעגאַטיוו איז אַ טעות. דוד י מאַלאַן: גוט, אמת. אַזוי ווייַל מיר ניטאָ בלויז סטאָרינג positive וואַלועס אָדער נול, דעמאָלט עס ס פייַן צו קריק אַ נעגאַטיוו ווערט ווי אַ סענטינעל ווערט, אַ ספּעציעל סימבאָל. אבער איר ניטאָ רירייטינג געשיכטע עס, ווייַל די סיבה מיר ניטאָ בלויז אומגעקערט ניט-נעגאַטיוו וואַלועס איז ווייַל מיר ווילן צו האָבן אַ סענטינעל ווערט. אַזוי מער ספּאַסיפיקלי, וואָס ניט נאָר צוריקקומען פאַלש אין קאַסעס פון ערראָרס? יאָ. וילעם: איר 'ווע ניט אַנדערש צו צוריקקומען אַ ינטאַדזשער. דוד י מאַלאַן: פּונקט. און דעם איז ווו C געץ שיין קאָנסטראַינינג. אויב איר 'רע געזאגט איר ניטאָ געגאנגען צו צוריקקומען אַ ינט, איר 'ווע גאַט צו צוריקקומען אַ ינט. איר קענען ניט באַקומען פאַנטאַזיע און אָנהייב אומגעקערט אַ באָאָל אָדער אַ לאָזנ שווימען אָדער אַ שטריקל אָדער עפּעס ווי אַז. איצט, דערווייַל, דזשאַוואַסקריפּט און פפּ און עטלעכע אנדערע שפּראַכן קענען, אין פאַקט, האָבן איר אומגעקערט פאַרשידענע טייפּס פון וואַלועס. און אַז קענען פאקטיש זיין נוציק, ווו איר קען צוריקקומען positive ינץ, זעראָס, נעגאַטיוו ינץ, אָדער פאַלש אָדער נאַל אפילו צו באַטייַטן טעות. אבער מיר טאָן ניט האָבן אַז ווערסאַטילאַטי אין סי אזוי מיט דעקוועוע, וואָס מיר פאָרשלאָגן צו טאָן איז - באַגאַזלענען באָודאַן: איר קענען צוריקקומען פאַלש. עס ס נאָר אַז פאַלש איז האַש דעפֿינירן פאַלש צו נול. אַזוי אויב איר צוריקקומען פאַלש, איר ניטאָ אומגעקערט נול. און נול איז אַ גילטיק זאַך אין אונדזער ריי, כוועראַז נעגאַטיוו 1 איז ניט אויב פאַלש געטראפן צו זיין נעגאַטיוו 1. אָבער איר זאָל ניט אפילו דאַרפֿן צו וויסן אַז. דוד י מאַלאַן: אַז ס וואָס איך האט ניט זאָגן עס. באַגאַזלענען באָודאַן: אבער עס איז ניט אמת אַז איר קענען ניט צוריקקומען פאַלש. דוד י מאַלאַן: זיכער. אַזוי דעקוועוע, באַמערקן מיר אָננעמען פּאָסל ווי זייַן אַרגומענט. און אַז ס ווייַל מיר ניטאָ ניט גייט פארביי עפּעס ין מיר נאָר ווילן צו באַזייַטיקן דעם עלעמענט בייַ די פראָנט פון די ריי. אַזוי ווי זאל מיר גיין וועגן טאן דעם? נו, ערשטער, לאָזן ס טאָן דעם שנעל מייושעוודיקייַט טשעק. אויב די ריי גרייס איז 0, עס ס קיין אַרבעט צו זיין געטאן. צוריקקומען נעגאַטיוו 1. געטאן. אַזוי אַז ס אַ ביסל שורות פון מיין פּראָגראַם. אַזוי נאָר פיר שורות בלייַבן. אַזוי דאָ איך באַשליסן צו דעקרעמענט די גרייס. און דעקרעמענטינג די גרייס יפעקטיוולי מיטל אַז איך בין פערגעטינג עפּעס איז אין עס. אָבער איך אויך האָבן צו דערהייַנטיקן ווו די פראָנט פון די נומערן זענען. אַזוי צו טאָן אַז, איך דאַרפֿן צו טאָן צוויי זאכן. איך ערשטער דאַרפֿן צו געדענקען וואָס די נומער איז בייַ די פראָנט פון די ריי, ווייַל איך דאַרפֿן צו צוריקקומען אַז זאַך. אַזוי איך טאָן ניט ווילן צו אַקסאַדענאַלי פאַרגעסן וועגן עס און דעמאָלט אָווועררייט עס. איך בין נאָר געגאנגען צו געדענקען אין אַ ינט. און איצט, איך ווילן צו דערהייַנטיקן ק.פראָנט צו זיין ק.פראָנט 1. אַזוי אויב דעם איז געווען דער ערשטער מענטש אין שורה, איצט, איך ווילן צו טאָן פּלוס 1 צו פונט אין דער ווייַטער מענטש אין שורה. אָבער איך האָבן צו שעפּן אַז ווראַפּאַראָונד. און אויב קאַפּאַציטעט איז אַ גלאבאלע קעסיידערדיק, אַז ס געגאנגען צו לאָזן מיר צו מאַכן זיכער ווי איך פונט צו די זייער לעצט מענטש אין שורה, די מאָדולאָ אָפּעראַציע וועט ברענגען מיר צוריק צו נול אין די פראָנט פון די ריי. און אַז כאַנדאַלז די ווראַפּאַראָונד דאָ. און דעמאָלט איך גיינ ווייַטער צו צוריקקומען N. איצט, שטרענג גערעדט, איך האט ניט האָבן צו דערקלערן N. איך האט ניט האָבן צו כאַפּן עס און קראָם עס טעמפּערעראַלי, ווייַל די ווערט איז נאָך עס. אַזוי איך קען נאָר טאָן די רעכט אַריטמעטיק צו קריק די ערשטע קאָפּ פון די ריי. אבער איך נאָר פּעלץ אַז דעם איז געווען מער קלאָר צו פאקטיש כאַפּן די ינט, לייגן עס אין ן, און דעמאָלט צוריקקומען אַז פֿאַר קלעריטי ס צוליב אָבער ניט שטרענג נייטיק. פּססט. זיי ניטאָ אַלע פּראָנאָונסעאַבלע אין מיין קאָפּ. באַגאַזלענען באָודאַן: אזוי ערשטער קשיא איז די ביינערי בוים פּראָבלעם. אַזוי ערשטער קשיא איז, מיר ניטאָ געגעבן די נומערן. און מיר ווילן צו עפעס טאָן זיי אין די נאָודז אַזאַ אַז עס איז אַ גילטיק ביינערי זוכן בוים. אַזוי די איין זאַך צו געדענקען וועגן ביינערי זוכן ביימער איז אַז עס ס ניט נאָר אַז די זאַך צו די לינק איז ווייניקער און די זאַך צו די רעכט איז גרעסער. עס דארף צו זיין אַז די גאנצע בוים צו די לינק איז ווייניקער, און די גאנצע בוים צו די רעכט איז גרעסער. אַזוי אויב איך שטעלן 34 דאָ בייַ דער שפּיץ, און דעמאָלט איך שטעלן 20 דאָ, אַזוי אַז ס גילטיק אַזוי ווייַט, ווייַל 34 אַרויף דאָ. 20 איז געגאנגען צו די לינק. אַזוי אַז ס ווייניקער. אָבער איך קענען ניט דעריבער לייגן 59 דאָ, ווייַל אפילו כאָטש 59 איז אויף די רעכט פון 20, עס ס נאָך אויף די לינק פון 34. אזוי מיט אַז קאַנסטריינט אין גייַסט, די יזיאַסט וועג פון מיסטאָמע סאַלווינג דעם פּראָבלעם איז צו נאָר סאָרט פון די נומערן - אַזוי 20, 34, 36, 52, 59, 106. און דעמאָלט טאָן די פון לינקס צו רעכט. אַזוי 20 גייט דאָ. 34 גייט דאָ. 36 גייט דאָ. 52, 59, 106. און איר אויך קען האָבן פיגיערד אויס מיט עטלעכע פּלאַגינג אין און ריאַלייזינג, טאַקע, וואַרטן, איך טאָן ניט האָבן גענוג נומערן צו פּלאָמבירן דעם אין איבער דאָ. אַזוי איך דאַרפֿן צו רעשיפט וואָס מיין מאַרשרוט טאָן איז געגאנגען צו זיין. אבער באַמערקן אַז אין די לעצט דרייַ, אויב איר לייענען פון לינקס צו רעכט, עס איז אין ינקריסינג סדר. אַזוי איצט, מיר ווילן צו דערקלערן וואָס די סטרוקט איז געגאנגען צו זיין פֿאַר די נאָודז אין דעם בוים. אַזוי וואָס טאָן מיר דאַרפֿן אין אַ ביינערי בוים? אַזוי מיר האָבן אַ ווערט פון טיפּ ינט, אַזוי עטלעכע ינט ווערט. איך טאָן ניט וויסן וואָס מיר גערופן עס אין די לייזונג - ינט N. מיר דאַרפֿן אַ טייַטל צו די לינק קינד און אַ טייַטל צו די רעכט קינד. אַזוי עס ס געגאנגען צו קוקן ווי דעם. און עס וועט פאקטיש קוק איידער ווען האט דער דאַבלי-לינגקט רשימה שטאָפּן, אַזוי באַמערקן - איך בין געגאנגען צו האָבן צו מעגילע אַלע די וועג צוריק אַראָפּ צו פּראָבלעם 11. אַזוי באַמערקן עס קוקט יידעניקאַל צו דעם, חוץ מיר נאָר פּאַסירן צו רופן די פאַרשידענע נעמען. מיר נאָך האָבן אַ ינטאַדזשער ווערט און צוויי פּוינטערז. עס ס נאָר אַז אָנשטאָט פון טרעאַטינג די פּאָינטערס ווי פּוינטינג צו דער ווייַטער זאַך און די פריערדיקע זאַך, מיר ניטאָ טרעאַטינג די פּוינטערז צו פונט צו אַ לינקס קינד און רעכט קינד. גוט. אַזוי אַז ס אונדזער סטרוקט נאָדע. און איצט, דער בלויז פונקציאָנירן מיר דאַרפֿן צו מאַכשער פֿאַר דעם איז דורך, וואָס מיר וועלן צו גיין איבער די בוים, דרוקן אויס די וואַלועס פון די בוים אין סדר. אַזוי קוקן דאָ, מיר וואָלט ווילן צו דרוקן אויס 20, 34, 36, 52, 59, און 106. ווי טאָן מיר ויספירן אַז? אַזוי עס ס שיין ענלעך. אויב איר געזען אין דער פאַרגאַנגענהייַט יגזאַם די פּראָבלעם אַז איר געוואלט צו דרוקן אויס די גאנצע בוים מיט קאָמעס אין צווישן אַלץ, עס איז געווען אַקטשאַוואַלי אפילו גרינגער ווי אַז. אַזוי דאָ איז די לייזונג. דעם איז געווען באטייטיק גרינגער אויב איר האט עס רעקורסיוועלי. איך טאָן ניט וויסן אויב ווער עס יז געפרוווט צו טאָן עס יטעראַטיוועלי. אבער ערשטער, מיר האָבן אונדזער באַזע פאַל. וואָס אויב דער שורש איז נאַל? דעמאָלט מיר ניטאָ נאָר געגאנגען צו צוריקקומען. מיר טאָן ניט ווילן צו דרוקן עפּעס. אַנדערש מיר ניטאָ געגאנגען צו דורך רעקורסיוועלי אַראָפּ. דרוק די גאנצע לינקס סובטרעע. אַזוי דרוקן אַלץ ווייניקער ווי מיין קראַנט ווערט. און דעמאָלט איך בין געגאנגען צו דרוקן זיך. און דעמאָלט איך בין געגאנגען צו רעקורסע אַראָפּ מיין גאנצע רעכט סובטרעע, אַזוי אַלץ גרעסער ווי מיין ווערט. און דעם איז געגאנגען צו דרוקן אויס אַלץ אין סדר. פֿראגן אויף ווי דעם פאקטיש אַקאַמפּלישיז אַז? וילעם: איך האָבן אַ קשיא אויף די [ינאָדאַבאַל]. באַגאַזלענען באָודאַן: אזוי איין וועג פון אַפּראָוטשינג קיין רעקורסיווע פּראָבלעם איז צו נאָר טראַכטן וועגן עס ווי איר האָבן צו טראַכטן וועגן אַלע די ווינקל קאַסעס. אַזוי באַטראַכטן אַז מיר ווילן צו דרוק דעם גאנצע בוים. אַזוי אַלע מיר זענען געגאנגען צו פאָקוס אויף איז דעם באַזונדער נאָדע - 36. די רעקורסיווע רופט, מיר פאַרהיטן די נאָר אַרבעט. אַזוי דאָ, דעם רעקורסיווע רופן צו דורך, מיר אָן אפילו טראכטן וועגן עס, נאָר טראַווערסינג די לינק דרייַ, ימאַדזשאַן אַז שוין פּרינץ 20 און 34 פֿאַר אונדז. און דעמאָלט ווען מיר יווענטשאַוואַלי רעקורסיוועלי רופן דורך אויף די רעכט, וואָס וועט ריכטיק דרוקן 52, 59, און 106 פֿאַר אונדז. אַזוי געגעבן אַז דעם קענען דרוקן 20, 34, און די אנדערע קענען דרוקן 52, 59, 108, אַלע מיר דאַרפֿן צו קענען צו טאָן איז דרוק אַרסעלף אין די מיטל פון אַז. אַזוי דרוקן אויס אַלץ איידער אונדז. דרוק אַרסעלף, אַזוי די קראַנט נאָדע דרוקן 36, רעגולער פּרינטף, און דעמאָלט דרוק אַלץ נאָך אונדז. דוד י מאַלאַן: דאס איז ווו רעקורסיאָן געץ טאַקע שיין. עס ס דעם אַמייזינג שפּרינגען פון אמונה ווו איר טאָן די טייניאַסט ביסל פון אַרבעט. און דעמאָלט איר לאָזן עמעצער אַנדערש טאָן די מנוחה. און אַז עמעצער אַנדערש איז, יראָניקאַללי, איר. אַזוי פֿאַר ערנסט בראַוני ווייזט, אויב איר מעגילע אַרויף אויף די פראגעס - באַגאַזלענען באָודאַן: אויף די שאלות? דוד י מאַלאַן: און אַראָפּ אַ ביסל צו די נומערן, טוט ווער עס יז וויסן ווו די נומערן קומען פון? באַגאַזלענען באָודאַן: איך האָבן ממש קיין געדאַנק. דוד י מאַלאַן: זיי דערשייַנען איבער די ויספרעג. וילעם: ביסט זיי דער זעלביקער נומערן? דוד י מאַלאַן: יענע נומערן. א ביסל יסטער יי. אַזוי פֿאַר די פון איר וואַטשינג אָנליין בייַ היים, אויב איר קענען זאָגן אונדז דורך בליצפּאָסט צו heads@CS50.net וואָס די באַטייַט פון די ריקערינג זעקס נומערן זענען איבער קוויז 1, מיר וועלן שפּריץ איר מיט אַמייזינג ופמערקזאַמקייַט אין די לעצט לעקציע און אַ דרוק פּילקע. פייַן, סאַטאַל. באַגאַזלענען באָודאַן: אַני לעצטע שאלות וועגן עפּעס אויף די ויספרעג?