[Грає музика] Девід Малан: Це CS50, і це початок тижня восьмій. І ми так раді вітати назад, великий сюрприз, власний Рамон CS50 в Гальван, висхідна старший, який був Провівши останні кілька місяців з липня в Лос-Анджелесі, в Голлівуді, буквально працює на новому телевізорі шоу під назвою Колонія, творцем якого насправді сам Гарвардський галун. І тому ми дуже раді бачити це Дебют в мережі США в січні цього року. Так що стежте за що, а для більш Рамон для тижнів приїхати. Знайте ж тепер, що кінець близький. І те, що це означає, що там не все, що багато чого залишилося CS50, на жаль. У нас є тільки три проблеми набори left-- є Проблема встановити six--, який знаходиться в Ваші руки зараз або найближчим часом буде, в кінці цього week-- покликана усунути наші світи в командному рядку, де ми провели більшу частину нашого часу, використовуючи С, а світ веб-програмування. Ну, ви побачите багато ідей запозичені з роботи з командного рядка, але також багато нового і цікаві ідеї які також буде доречна для мобільні додатки і технології, для в більш загальному, за допомогою якого Хлопці всі знайомі в даний час на ноутбуках і телефонах тощо. Таким чином, ви будете здійснюється не веб-сторінки, або веб-сайт як такої, але фактично веб-сервер. Ви будете писати інші веб-сервера написано в C, мета якого в житті це отримати HTTP запитів, ці віртуальні конверти ми продовжувати говорити о, а насправді відповісти або деякі статичні content-- як точка HTML файл або точка JPEG або будь-яке інше число файлів, або навіть файл PHP допомогою веб- сервер буде інтерпретувати цю PHP Код і виплюнув результати. Тепер, ми надали вам зовсім небагато рамках для it-- дійсно Код розподілу проблеми встановити шість завдовжки більше 1000 ліній, А багато з яких представлені відгуки, щоб бути fair-- але це насправді означає бути можливість щоб отримати ваші руки брудні дайвінг в досить великому проекті що ми дуже конкретно вирізані шматки для вас, так що насправді, коли ви виходите CS50 і ввести реальний світ програмування і хочете, щоб плескатися в будь-яку кількість проектів, Ви будете мати набагато більше комфорт скачування деякі джерело Код, деякі з відкритим вихідним кодом проекту в Інтернеті, і дайвінг в і робить Зміни, які ви вважаєте за потрібне. Проблема встановити сьомій буде про зробити свій власний веб-додаток який приймає динамічний введення і виробляє динамічний вихід у вигляді веб-сайту etrade.com-як. І проблема встановити восьмій будуть зосереджені на ще іншу мову відомий як JavaScript. Тим часом, остаточне Проект знаходиться на горизонті. Так званий попередньої заявки через тиждень з сьогоднішнього дня. Попередньо proposal-- у відповідності зі специфікацією, який знаходиться на website-- CS50 в є досить випадковий можливість для щоб ви відправити лист досить короткий у вчення товариша просто інформувати його або її, що ви думаєте, в використовувати його або її як рупор. І є розсудливість check-- Чи ви думаєте про відкушуючи занадто багато чи, може бути, занадто мало, або, може бути, ви поняття не маєте взагалі і хочете брати участь у розмові. Після цю пропозицію і звіт про стан, так званий CS50 Hackathon тут Кембридж для Гарварду і Єля студентів схожі. Остаточний проект-х Реалізація тоді через. А потім CS50 справедливо тут, в Кембриджі, а також ще один в Нью-Хейвені. Так пропозицією, погляньте на веб-сайт для тих частковостей. Але більш збудливо, теж є можливість отримати ваші руки брудні, і ваші уми, відкриті для цілого купа тим і інструментів і методи, які є допоміжними до основної програми Курсу, але тим не менш пов'язані між собою. А також чудовий сходинками до робити дійсно класні остаточні проекти, які виходять далеко за рамки матеріалу ми розглянули офіційно в задачі встановлює або лекції. Так що на сайт CS50 для Весь список семінарів. Якщо ви ще не зареєструвати, це нормально. Ідіть вперед і зареєструватися ще, і ми будемо стежити за живого зв'язку потокового день і час на сайті. І все буде записаний і поставити онлайн якщо ви не можете зробити у визначені дні тижня і час. Про те, що попереду thereafter-- добре, Звичайно, є CS50 Hackathon. Ця фотографія, нагадаємо, з нуля тиждень прийняті близько 4:00 ранку в один з вечорів минулого року. CS50 ярмарок, який знову відбудеться в обох містах. А потім, на завод насіння, хоча ми як і раніше Тобто в місяць плюс зліва від семестру, якщо Ви хотіли б приєднатися до власної вчення CS50 в персонал, і ви хочете, щоб почати думати про стає CA, або вчення молодець, знає, що ми починаємо говорити про те, що більш пізніше в цьому семестрі. Але на фото тут Найбільш команди в цьому році. І так, PHP--, і я був так сумно минулого тижня, що [? Allyse?] Люб'язно пішов в зусилля отримання нас ці чудові реквізит що я не в кінцевому підсумку за допомогою, так що насправді просто подивився роду нерозумно що у нас лопату сидячи тут все день минулої середи, і трохи ложку. Але це був мій метафоричний спосіб спробувати намалювати картина, чому ми переходу з С в мові, як PHP. І те ж саме можна сказати і про будь Кількість languages-- Java, Python, Ruby або пучки others-- але в той час як в С, наприклад, написати програму на С може бути, як правило, приймаючи ложку, як це і копати яму в земля, в пісок або бруд. PHP дозволяє зайняти набагато великі укуси з проблеми, писати код набагато менше використовуючи набагато меншу інструмент, бо є набагато більше, Функціональність зібрана в. Тепер, якщо ми справді драматичні, ми щось лопатою тут, але так воно і буде. Тим часом, з іншого Метафора ми придумали Тобто, звичайно, ви могли б використовувати щось на зразок гайкового ключа забивати чимось на зразок цвяха. Але, звичайно, право інструмент для використання збирається бути не стільки мова називається C-- і тепер я просто роздратований [? Сандерс ,?] Можливо, ми це виправимо later-- так правильний інструмент для часто використовують НЕ БУДЕ це найнижчий рівень інструментом. І справді, С не є мовою, яка більшість з вас коли-небудь використовувати, або обов'язково використовувати знову. І справді, трохи secret-- єдиний раз Я використовую C я досить багато між Вересень і грудень кожного падіння семестр. І це тому, що ми використовувати його як можливість щоб навчити основам програмування, а разом з ним комп'ютера наука основи, дані структури, алгоритмів і like-- але дуже швидко буде вам бачимо, що синтаксис і ідеї, які C так чудово передачі на більш сучасні високорівневих мов, як PHP і Python і Perl, Java і і Objective-C-- насправді, не так багато Цель-C-- але Свіфт, ці нові мови, що багато з вас буде то плескатися з вами остаточного проекту. Так що без подальших церемоній, давайте насправді використовувати PHP, щоб вирішити деякі проблеми. Нагадаємо, що на ранній стадії, в минулому тижні ми просто використовували CS50 IDE, ми написали невелику програму DINKY що тільки що сказав, "Привіт, світ". І тоді я врятував його в файл називається hello.php. І тоді я побіг цю команду. І чому? В англійській мові, що тут відбувається? Що я роблю, коли Я побіг цю команду? Так? АУДИТОРІЯ: Там якась функція PHP який читає те, що in-- розуміє. Девід Малан: Добре, є деяка функція PHP-- і дозвольте мені бути більш конкретним, є програма під назвою PHP, також відоме, як Перекладач, який розуміє вміст hello.php, та інтерпретує його зверху знизу, зліва направо, і робить те, що говорять ці команди. Команди в hello.php, звичайно, тільки джерело code-- функції і змінні і петлі і і т.п., що ми самі почали писати в PHP. Але на відміну від C, який є компільований мову, PHP ви просто написати його, і запустити його. Ви пропустити цей крок посередника перетворення його в нулів і одиниць, а потім запустити його. І так, що з ніг на це? Чому ми пропускаючи крок? Чому більш сучасні мови як правило, щоб пропустити цей крок? Що вигода? Або просто інтуїтивно? Навіть якщо ми не маю написано багато PHP раніше, що вигідно не про компіляції коду ви думаєте? Немає? Чи не вчиненні? Чесати голову? Так. АУДИТОРІЯ: більш динамічним. Девід Малан: Більш динамічний? Що ви маєте на увазі? АУДИТОРІЯ: [нерозбірливо] Девід Малан: ОК, добре, так залежно від вхідних даних, Ви не повинні зібрати його кожного разу. І це дійсно так просто, як те, що that-- є точкою продовження скомпілювати код? Це всього лише один крок, що це making-- це вимагає, Протягом останніх декількох тижні, в два рази більше кроків як тільки що виконання програми. Це було корисно в тому, що ви побачити деякі повідомлення про помилки і т.д., але це ще тільки дратує крок. І тому програмісти зрозуміли, протягом довгого часу, чому б нам почати писати мовах, що не потрібно що досить механічної крок, так що можна просто написати код і запустити його. Але якою ціною що ми побачили ми заплатили минулого тижня, з одного конкретному прикладі? Так? Швидкість. Так [? що?] перекладачі трохи повільніше, в тому, що нулі і одиниці в красиво і швидко для комп'ютера щоб зрозуміти, тому що Процесор Intel, або те, що є, просто розуміє, що відбувається на з цими моделями біт. У той час як перекладача це програма, яка насправді повинен прочитати джерело Ascii код, який ви написали, і перетворити його, так би мовити, або з'ясувати, як вона перетворює в кінцевому рахунку, в нулів і одиниць. Так що просто займає небагато трохи продуктивності. Так що це трохи компроміс. Тепер, якщо ми робимо це тут, дозвольте мені йти вперед і робити приклад наступним чином. Якщо я йду сюди, новий файл, я збираюся зберегти це знову hello.php. А тепер я збираюся йти вперед і сказати, "друк привіт світ" - і згадати, що я можу використовувати печатку, я не повинні використовувати печатку-F. А тепер сюди, якщо я PHP в hello.php, huh-- я здається, не інтерпретували його. Що я зробив не так? Аудиторія: кутові браслети. Девід Малан: Так, вам потрібно що дужка нагорі. Так що це вид дратує, але ви звикнете до нього швидко. Якщо я повинен написати PHP код, я як правило, необхідно, щоб повідомити програмі, або розповісти перекладача, агов PHP, ось деякі PHP-код. І тоді для хорошої заходом, я б закрити це не з цього, а з кутом марки просто питання кронштейн, так що тепер тут, якщо я запускаю це знову, тепер Я отримати бажаний результат. Тепер давайте зробимо невеликий оптимізації, просто так, що ви бачили раніше. Це свого роду дратує, що я повинні працювати PHP простір hello.php, тому що в минулому я може просто написати точка слеш Назва програми, яка є своєрідною приємно. Це свого роду кращого користувацького досвіду. Ось і виходить, ви можете зробити це в PHP з following-- I можна використовувати це досить загадковим заклинання у верхній тут, які, як правило, називається кубло, причому це різке символ, так би мовити, це вибух або знак оклику. І це в даний час є шлях до програми на звичайній системі Linux, що називається середу, або окр. І це line-- довгу історію short-- одна лінія тільки говорить, гей комп'ютер, знайти PHP перекладач для мене в навколишньому середовищі, знайти його в пам'яті, так сказати. І що тепер приємно, це що якщо я йду сюди, Я можу зробити точка слеш привіт точка PHP, ілі-- хм. Введено відмовлено. Ну, ви побачите навіть більше цього з проблемою встановити сьомій, якщо ви вже не маєте, з дозволами. Виявляється, що мені потрібно для виконання цієї команди називається [? chamod?] для зміни mode-- плюс х hello.php. Мені потрібно [нерозбірливо] це один додатковий крок, який каже мій комп'ютер, зробити hello.php виконуваний файл. А тепер подивіться, що happens-- точка скоротити hello.php, він просто працює. Мені не потрібно, щоб вказати інтерпретатор більше. І я можу зробити це, навіть гарніше, ще, якщо я перейменувати цю річ. Якщо перемістити hello.php просто Hello-- так помітити в лівому верхньому кутку, Назва програми є дійсно зараз просто Привіт. Тепер я можу зробити його схожим на програму C, навіть якщо це написано в PHP-- або відверто будь-яку кількість інших мов. Так гранична підвищення, немає функціональної різниці. Але це всього лише трохи цікавості Тепер, так що ви можете писати програми, на будь-якій мові, і користувач не повинні знати, або все одно, що це таке. Ну, давайте подивимося на більш переконливим прикладом в даний час що я на швидку руку заздалегідь. І це називається quote.php. І це доступно онлайн. І зауважте, що це досить short-- але це програма командного рядка, що це буде виглядати цін на акції для мене, що насправді відбувається бути доречні для проблем встановити сім. Отже, давайте подивимося, що я роблю. На самому верху я отримав відкриває дужка знак питання PHP. Тоді я отримав цю лінію, в результаті чого я вимагають файл під назвою functions.php-- ми збираємося, щоб побачити Докладніше про це в небагато, але це, як С-х версія різке включають, де ви хочете піти включити інший файл. PHP називає це вимагає, хоча це також має функцію включають в себе. І виявляється, що це function.php просто щось я вже писав класу. Я поклав його в тому ж каталозі, бо Я хотів, щоб винести код що ми могли б використовувати в іншому місці. Між тим, ви можете, ймовірно, висновок, що тут відбувається. Це трохи відрізняється від C-- але що я маю на увазі гарантувати належне використання? Провести це більш технічно. За яких обставин це я вихід з програми, або виході? Так? АУДИТОРІЯ: Коли у вас немає два аргументи командного рядка. Девід Малан: Коли я не командувати аргументи рядка. І пам'ятайте, що один з тих, Аргументи сама назва програми. І другий буде інше слово я друкую після рядку. Так само, як C, це це мій спосіб перевірки, зробив користувач співпрацювати і запустити програму як я збирався? Тепер, є дещо трохи відрізняється з C-- в першу чергу ми Тобто цей знак долара, і те, що робить долар увійдіть позначення в PHP? Просто змінна. Це all-- просто змінна подальшим все, що ви хочете насправді назвати це. Зверніть увагу, є щось відсутня з моєї програми PHP, так само, як це було в минулому відсутня тиждень, в порівнянні з C, який є що? А види, але ще дещо. Там немає то function-- основну функцію. Там немає основною функцією. Ви просто почати писати код без турбуватися про досить довільне Конвенція іменування за замовчуванням деякі Функція головний. Так аргумент С тільки дійсно глобальна змінна що перекладача робить доступними для мене. Тепер, це цікаво. Так що дивіться на речі. Знак долара акції на вийшло, що моя змінна. На правій стороні, Тобто, мабуть, функція в PHP називається пошук, що Я передаю свій останній командного рядка Аргумент, метою яких все слово. І ми побачимо, як це працює в даний момент. А потім, нарешті, я повідомляю ціну. Я друкую одним Частка такий-то. І пам'ятайте, що це спосіб PHP-- чином в PHP-- де ви не повинні робити знак долара S більше. Ви можете просто використовувати фігурні дужки і підключити якої-небудь змінної. Ви не повинні турбуватися про використовуючи Printf таким же чином. І, як в сторону, коли ви кладете змінну всередині подвійних лапок, як це, Ви використовуєте фантазії техніку називається інтерполяція змінних. Це просто означає, підключіть змінну тут. І, як в сторону, деякі з вас, хто прийшов від інших верств програмування, Ви не можете використовувати одинарні лапки навколо струни, щоб зробити це. Ви повинні використовувати подвійні лапки для інтерполяція змінних, щоб працювати. В іншому випадку ви будете буквально побачити ці фігурні дужки. Так, нарешті, давайте йти вперед і працювати в цьому. Дозвольте мені зробити мій термінал трохи більше. Дозвольте мені йти вперед і працювати всередині моєї цитатою каталозі. [? CDsource?] [? М.?] [? цитата?] PHP цитатою точка PHP, і я збираюся шукати щось як GOOG, який є його тікер, і одна акція новим ім'ям, Алфавіт Inc, вартість $ 717, як сьогодні. Гаразд, якщо ми хочемо, щоб Запустимо, хто є ще один біржових зведень вони хочуть, щоб подивитися? Microsoft, я думаю, це одне, MSFT-- $ 53. Я думаю, що Yahoo є, може бути ,. І в тому, що Facebook. Так що ця програма робить? Магія, здається, бути вбудовані в цій функції пошуку. Отже, давайте поглянемо. Виходить, що не прийшов з PHP, це в functions.php. І ми не будемо йти через це дуже докладно, але зверніть увагу на оперативне слово тут що на лінії шостий functions.php-- Я буквально сказати, функцію. Я вказати ім'я моєї функції. Я тоді вказати будь аргументи, або параметри, Я хочу, щоб функція НЕ take-- ніякі типи. І тоді я його реалізації. І я буду махати рукою на реалізацію, так як це досить просунутий право зараз, але ми будемо бачити його знову насправді в тиждень в задачі встановити сім. Але я можу очистити це теж. Я також включив в сьогодні код версія цитати, яка не має точка PHP файл. Тому що те, що, імовірно, на Верхня частина програми під назвою просто процитувати? Це так звана shebang-- досить загадковим заклинання що говорить знайти PHP, а потім запустити його на своєму коді тут. Гаразд, так що приносить нам, де ми зупинилися Останнє time-- хоча і з деякі більш просунуті приклади. Будь-які питання досі про PHP або те, що ми робимо? No-- все гаразд. Так? АУДИТОРІЯ: Усередині HTML файли, робити you-- [? чи ти ?] [? просто назвати його?] а [нерозбірливо] PHP файл? Девід Малан: Хороший вопрос. У контексті Веб, який ми знаходимося буквально про переходу до, Ви не використовуєте так званий притон у верхній частині, тому що веб-server-- часто Програма називається Apache або Microsoft IIS, Internet Information Server, або будь-яку кількість іншого програмного забезпечення веб-сервера, знає, що, коли він бачить файл точка PHP, що це слід запустити інтерпретатор на ньому. Це не дивиться на цій першій рядка. Так першої лінії трюк просто, коли ви писати командного рядка programs-- який ми не будемо робити супер часто, але це наш спосіб подолання наші приклади C досі нашої PHP. Так що давайте дійсно подолати цей світ від світу з командного рядка в Мережі роблячи наступне. Дозвольте мені йти вперед і робити тут на мить. Так що, якщо у нас є веб-сервер, або, вірніше, якщо у нас є свій ноутбук тут, які я буду малювати, як це. І ось у нас є Інтернет в якомусь вигляді. А потім сюди, у нас є сервер в building-- це, як Інтернет works-- і тут це сервер з деякими вогнями, може бути. Що відбувається насправді між цими двома з'єднаннями? Таким чином, у цій будівлі є веб-сервер. Це просто комп'ютер який працює в деяких операційних сістема-- можливо вільне програмне забезпечення під назвою Apache, який працює CS50 IDE. Таким чином, ви можете фактично думаю, з цієї будівлі як будівля, в який зберігається CSt0 IDE. Ось де у вас у всіх рахунки, де ви всі мати свій власний веб-сервер працює, ви все є свої власні унікальні адреси, як ми почали обговорювати, і ви будете бачити більше в П. встановлено шість. Ось мій ноутбук десь ще в Інтернеті. І тому, коли я відвідую URL, який належить мені, що інтернет-трафік буде на сервер, сервер-х отримання HTTP-request-- подібно отримати index.html, і це відповідаючи на цій веб-сторінці. Так що це взагалі парадигма. У той час як все до Дотепер сьогодні, все відбувається тільки в обмежується цієї будівлі. Я використав свій ноутбук, але Я був пов'язаний з CS50 IDE, так що всі з цих програм я біг був усередині цього сервера, самої. Але тепер, давайте почнемо повторного PHP написати кілька програм, які фактичні подаються до веб-сервером. А для цього, я збираюся піти в цілою купою прикладів що ввести цю ідею тут. Так що це свого роду химерний спосіб опису парадигми програмування. І справді, як ви вийдете CS50 або працювати на кінцевих проектів, або взяти деякі слідують від класу, ви почнете бачити, що world-- особливо виросли з мов, таких як C які є супер низькою level-- розумію, що є краще способи написання програмного забезпечення. Є певна шаблони ви можете слідувати, деякі способи організації файлів і способи іменування функцій, так що коротше кажучи, світ прийшов з цілою купою скорочень та імена шляхів програмування. Це всього лише методи, які Ви могли б використовувати. І один з них називається MVC, для моделі View Controller. І це тільки для Тепер, надмірно складним спосіб сказати, як ви повинні викласти сайт PHP на основі, в нашому випадку. Як вам організувати ваші файли, як ви організувати вашу логіку, таким чином, що робить його легше написати більш складні веб-сайти? І справді, ми швидко потрапити з розчином сім. Таким чином, у світі MVC, ви збираєтеся бачити, що наш код може взагалі можна охарактеризувати як будь-який код моделі, або код контролера, або вид Код. І я збираюся спрощувати його як follows-- контролер є мізки вашої програми, це, де все цікава логіка буває. Так що всі ми були писати досі в класі, ніби як контролер code-- це контроль ваша програма, ваші петлі, ваш умови, ваші функції і змінні і все таке. Переглядів, тепер, будуть трохи більш очевидним в світі в Інтернеті. Вид естетика вашого сайту. Це те, що користувач sees-- зображення, HTML-столи, HTML теги і всі того, що всі пухнастий естетики речі, які не те, що важко написати, але тільки те, що ви генерації, це так званий вид, естетика. І модель, в підсумку, буде бути stuff-- база даних, яка ми почнемо дайвінг в усі тим більше в це середовище. Так контролер логіка, погляд естетичне речі, і модель буде де ми зберігаємо наші фактичні дані. Отже, давайте подивимося на це більш конкретно на наступному прикладі. Я збираюся піти в мій каталог тут сьогоднішньої джерела code-- всі з яких доступно онлайн. І я збираюся йти у версії нульовий. А ось is-- давайте називати його на Версія нуль сайті CS50 в. Там не так багато тут взагалі. Це дуже простий веб-сторінки, що це ймовірно, використовуючи те, що HTML-tags-- тільки здогадатися з останніх прикладів? Що це? H1-- ймовірно, що великий сміливий Назва, логотип, що нагорі, CS50. І, що ще в грі? Так? АУДИТОРІЯ: Ненумерованний список. Девід Малан: Неупорядкований list-- так UL тег і, можливо, пару LI тегів. І якщо ви не пам'ятаєте, ці, це чесно не має значення. Ці пухнасті роду Деталі реалізації HTML що ви швидко шукати і ви знову на вашому шляху. Ми зосередитися на програмуванні ідеї, які є більш соковитими штук. Так що давайте просто взяти швидкий подивитися на HTML-- і дійсно якщо я відкриваю джерело вид тут, так, Це саме те, що відбувається тут. Там в тег UL. Вкладені всередині, що є LI тегів. І тоді я запозичив URL фактичного програмою тут. І тоді в lectures.php мабуть, другий динамічно сторінка що матиме, давайте see-- ах, перші два тижні лекції. Так нулю тиждень і тиждень з, давайте подивитися на this-- якщо я подивитися вихідний код сторінки, також супер просто. Вони ведуть до двох сторінок називається week0.php і week1.php. Так що тепер розглянути, що відбувається. Коли я натискаю на week0.php, мій ноутбук робить запит на week0.php. Веб-сервер, також відоме, як, CS50 IDE, отримує віртуальний конверт що. Це відображається повідомлення як, отримати week0.php. Потім інтерпретації файл, верхня вниз, вліво, щоб right-- файл називається week0.php-- і впливів результатів. Так всередині цього файлу, week0.php, повинні бути логіка управління, який генерує Цей HTML-і ми скоро побачимо, що. Але зараз, дозвольте мені натисніть на нульовій тижня, і тепер у нас є середу і п'ятницю, і тепер у нас є слайди повільно нульовий тижня. І ви пам'ятаєте це від шляху назад, коли. Так ось цей веб-сайт робить. Отже, давайте розглянемо, як це робить це. Я збираюся повернутися в Вихідний код тут, в CS50 IDE, і я збираюся відкрити index.php. У верхній частині цього файлу це купа коментарів. І тоді в середині цього файлу, його Виявляється, немає PHP коду б то не було. Тому що, якщо у вас немає будь-якої з відкритий кронштейн знак питання PHP теги, Ви вільні просто поставити HTML. Тому що те, що PHP- перекладач повинен робити, коли він читає цю file-- зверху вниз, зліва right-- це тільки інтерпретує код він бачить між ці дужки знак питання. І щось ще, що це не визнати PHP, він просто випльовує. І HTML-ли серед речей це буде просто виплюнути. Так цей файл може мати були index.html, але я все називаючи точка PHP як трамплін. Lectures.php-- аналогічно захват, це лише деякі HTML. Week0.php, аналогічно лише деякі HTML. Але тепер давайте на горезвісний інженерно капелюх, і розглянемо, як ми можемо поліпшити це. Це не важко зробити, але я начебто з перетворилися на копії і пасти. І справді, якщо я тиждень два, ви знаю, що я, ймовірно, буду робити? Я збираюся поїхати в week1.php, я збирається виділити все. Я збираюся скопіювати його, вставити його в новий файл з назвою week2.php, змінити деякі адреси, і бути на моєму шляху. Так на основі того, що ми бачив в C вже це не відчуває себе добре, з надією. Копіювання, вставка рідко правильне рішення. Так що ми можемо почати зробити, щоб поліпшити це? Які можливості для кращого дизайну? До того часу, я отримую, щоб тиждень восьмій, це буде щоб бути дійсно дратує якщо я хочу, щоб змінити шрифт кожного з мої сторінки, або якщо я хочу змінити структуру макета. То де ж можливість для кращого дизайну? Ну, давайте розглянемо те, що поділився у всіх цих файлів. Ось тижня один, от тиждень нулю, ось lectures.php, ось index.php-- що те ж саме, і Чим відрізняється, грубо кажучи, в кожному з цих файлів? Так? АУДИТОРІЯ: [нерозбірливо] Девід Малан: ОК, добре. Так що картина, звичайно ж, в результаті чого кожен раз, коли я вибираю лекції я, Я повинен бути генерування дуже схожий, стор. І тому, можливо, я можу використовувати той факт, що насправді, ми свідомо чисельно індексується наш lectures-- якщо я можу поставити ще слова у відповідь. І те, що це єдине, що, насправді, що змінюється між тиждень одно-- і дозвольте мені прокрутіть униз, щоб це приблизно в той же place-- так от нулю тиждень, приблизно зверху. Ось тижня один, тиждень нулю, тижня один, нуль тиждень. ОК, буквально, якщо ви знаєте, немає програми взагалі, це тепер так само, як малюнок логічній грі. Так чим же відрізняється? Так? АУДИТОРІЯ: [нерозбірливо] Девід Малан: Добре, так що назва змінюється, чуть-чуть. Нуль буде, звичайно, до одного. Те ж саме відбувається в тезі H1. І ми не зовсім розумію, як легко, бо URL-адреси трохи довго. Але ці URL-адреси змінюються незначно. Але те, що не змінюється поза, смію сказати, більшість з вмісту page-- HTML-теги той же, голова те ж саме, що назва майже те ж саме, тіло ж, і майже все інше те ж саме, за винятком маленькі хитрощі ті. Так як ми можемо йти про факторинг деякі з це? Ну дозвольте мені запропонувати саме що в наступній версії. Так от у версії однієї, у мене є точна ті ж файли, а також кілька інших. Ось index.php-- і навіть якщо Ви ніколи не бачили раніше, ніж PHP, що я, ймовірно, робити, щоб вирішити це problem-- основі того, що ви бачите тут? Так, це те, що невеликим прихильності? Немає? Так, йти далі. АУДИТОРІЯ: [нерозбірливо] Девід Малан: Так. АУДИТОРІЯ: [нерозбірливо] Девід Малан: Я хочу, щоб ти говорити тільки трохи голосніше. АУДИТОРІЯ: [нерозбірливо] Девід Малан: ОК, добре. І я think-- було важко почути, але я you-- думаю, що ви отримуєте на це, що теги, які були поширені до верхньої, і теги, які були поширені на знизу, в даний час винесена, або низведена до того, що файли? Header.php і footer.php-- і ми збираємося щоб зробити деякі хитрощі, щоб усунути заклопотаність ви просто піднято питання про зміну номера, для Наприклад, якщо я правильно почув тебе. Але це, здається, суть його. Якби не була величезна кількість резервування у верхній частині сторінки, і величезна кількість резервування на дні, давайте буквально родзинкою і скоротити цей зміст з, помістити його в окрему file-- просто як ідея CSS, де ми факторізовано дуже схожі естетика, поставлені це в окремому файлі PHP точка, використовувати вимагають mechanism-- які це як-дієз включати: який по суті, як кажуть йти захопити вміст header.php, скопіюйте і вставте їх тут. Але те, що це означає, що в даний час в index.php, у мене є ці дві лінії. У lectures.php, я також є ті дві лінії. У week0.php, я також є ті дві лінії. Так що тепер, якщо я хочу, щоб змінити назва всіх моїх сторінок, або я хочу змінити фундаментальна структура, Я можу змінити його тепер тільки в одному місці, або два places-- верхній і нижній колонтитули, відповідно. Тепер стартова Кодексу дивитися трохи більше загадкове, вірно? Але якщо ви думаєте, про те, що сторінка в doing-- якщо я з проханням week0.php, так само, як на кресленні над here-- коли week0.php запитується, що це означає? Буквально цей файл просив в браузері. Веб-server-- також відоме CS50 ID-- вистачає цього Файл, week0.php, і читає це зверху вниз, зліва направо. На першій лінії, відразу ж стикається з його відкриває дужка знак питання PHP, вимагають Тема точка PHP, і так що РНР does--, що вбудований в веб Сервер, тому що ми попередньо налаштований це для you-- він автоматично переходить в header.php, копіює вміст, вставляє їх тут. Але тоді інтерпретатор зустрічає знак питання поруч кронштейн, так що це все робиться думати. Тепер він просто сліпо плює з ліній другу по сім, тому що це просто сирої HTML. Отримує в лінію вісім, і робить, що ж магія again-- відкриття файлу, захоплюючи вміст, і вимагаючи від них або вставляючи їх прямо тоді або там. Але я просто посилався на помилку. Це неповний крок назад, тому що, якщо ми подивимося в header.php, Я начебто відрізати куточок. Що функція я відмовитися, щоб щоб отримати цю спірну кращий дизайн? Так? АУДИТОРІЯ: [нерозбірливо] Девід Малан: Так, я як би Вирізати нетривіальне кут. Ви зазначили, що те, що було зміна була назва, кількість в назві, і кількість в H1. Так що моє рішення було, добре, давайте просто перейменувати сторінку, а не займатися тим, що Проблема взагалі. Так ось неповний крок назад напевно. Але те, що примітно тут Це те, що я зробив в іншому випадку враховані з усього загального матеріалу. І в footer.php, зверніть увагу, я враховані з усіх, що, хоча менш, загальний матеріал. Так що я якимось чином потрібно тепер зможуть зробити ще один крок вперед, і виправити що питання назву. Так давайте зробимо це. Дозвольте мені йти в моєму другому варіанті тут, що, знову ж, має ті ж самі файли для одного нове доповнення винятком. І це трохи більше, багатослівний, але давайте подивимося, якщо ми може дражнити один від одного, що тут відбувається. Таким чином, замість того, щоб вимагати header.php і footer.php, Я, здається, тільки один вимагає file-- називається, звичайно, helpers.php. І дозвольте мені передбачають зараз, що всередині helpers.php це всього лише купка функцій що я написав, як і раніше. Але я назвав його helpers.php. Тепер, мабуть, в лінія три і 10, я виклику двох functions-- надавати заголовок, надають колонтитули. Ті, не приходять з PHP, я написав ті себе. І я поклав їх у helpers.php. Тепер, ми бачили тільки цей синтаксис один раз, і це було супер коротким. Але це мабуть аргумент надавати заголовок, функції. Чому я це знаю? Ну ось близький Хлопець, ось відкрита дужка. І, звичайно, як і в C, нічого між цими дужками є input-- або аргумент функції. Який тип даних цього аргументу, на основі того, що я виділив? Що робити ці квадратні дужки вказують, на основі останнього тижня? Так, що це array-- спеціально асоціативний масив. І це правда, синтаксис трохи наляканий, але це просто проходив в одній ключової пари значень. Ключ, цитата кінець цитати Назва та значення CS50. Якщо ми зробили це в C, це могло б замість виглядати приблизно так, просто цитата кінець цитати CS50-- або насправді було б кучеряве брекети, або щось подібне в C, де ключ дорівнює нулю, і значення CS50. Але, знову ж, в PHP, хоча Синтаксис, знову ж, трохи дивно, це дозволяє передавати в слова замість номера щоб зв'язати ключі зі значеннями. Отже, що ж все це означає? Якщо я йду в helpers.php, давайте подивимося на цю функцію. renderHeader.php, а renderHeader це моя функція, і я знаю, що, тому що бачу функція Ключове слово тут. Це нове від C-- його, мабуть приймає аргумент з ім'ям data-- але я міг би назвати це що-небудь, але я назвав його дані, просто бути трохи clean-- і просто взяти здогадку, особливо якщо ви програмували в деяких інших вище рівень мови, перш ніж, щось вище C, концептуально. Що робить рівний відкритий кронштейн квадратну дужку, ймовірно, маєте на увазі? Або те, що, можливо, це означає? Ми не бачили це в С. Так? Порожній масив. Зокрема, це означає, що якщо користувач не називати renderHeader з аргументом, я все ще збираюся мати аргумент з ім'ям даних, але його значення за замовчуванням буде порожній масив. Так що це просто хороший зручність. Я не повинен кричати на користувача, або сказати, що ви використовували моя функція не так. Я можу тільки дати користувачеві за замовчуванням значення, якщо я не особливо хвилює. Тепер ця функція, я збирається махати руками в. Але цей екстракт функція дозволяє нам передати ці змінні в даних в header.php наступним чином. І це остання частина, Я думаю, що, фанки синтаксису. Ось мій нова версія з header.php-- його проказував, в буквальному сенсі, відкритим Кронштейн назва CS50, і що це було. І те ж саме для H1. Тепер, мабуть, говорить він щось дуже наляканий. І дозвольте мені спростити це на мить, як слід. Це те, що я змінив свій титул, щоб бути. Тим не менш, це стає трохи некрасиво постійно відкритих дужках із PHP, а потім використовувати функцію друку. Виходить, що PHP має скорочену позначення для цього, який є тільки знак рівності, який є технічно Функція називається відлуння замість печатки, але це те ж саме, ефективно. Це просто виглядає краще. Це просто синтаксичний цукор, якщо хочете, що робить мій код виглядає трохи краще. Але, виявляється, і ми побачимо це знову незабаром, ми повинні назвати це дратівливо довго функція називається HTML спеціальні символи в PHP, тому що він виявляється Є певні входи що користувач може дати нам, або, що користувачі можуть дати нам, що збираються розбити наш сайт. Але ми побачимо, що в наступному тиждень з JavaScript. Але зараз, просто знаю, що цей файл, headers.php, просто приймає титул, який Я пройшов у це зробити впевнений, що це безпечно вводити в Інтернеті сторінка, і він випльовує його, як мій титул і як мій H1. Так що, якщо я йду в цій версії зараз, зауважити, що лекції має титул назад, нульовий тижня має свою назву тому, і справді, HTML я генерації ідентичний тому, що мій перший варіант was-- для мого прогалин, за винятком, тому що я почав форматування мій код трохи по-іншому. Але я все генерується код, який я хвилює. Отже, дозвольте мені зупинитися на тільки на мить і побачити якщо є які-небудь питання або сплутаність свідомості я створив. Гаразд, так що давайте крутити трохи складніше тут щоб побачити, якщо є можливість для поліпшення. Helpers.php також було це функція, звана renderFooter. І те, що примітно про renderHeader і renderFooter? І знову, для сьогоднішніх цілей, знають, що функція екстракт просто мій спосіб передачі аргументів в header.php і footer.php. На жаль? АУДИТОРІЯ: [нерозбірливо] Девід Малан: Так, я тільки змінений вимагають лінія. Так буквально, я вчинив гріх копіювання і вставки, ще раз. Це не величезна кількість ліній, але приходять on-- якщо я копіювання і вставки все просто змінити один слівце, і одна маленька слово, що Алан вказує аут нижній колонтитул тут, в порівнянні з заголовка тут. В іншому випадку, все ідентичні, за винятком, Звичайно, імена функції. Так що ми могли б зробити краще? Ну дозвольте мені відкрити цю версію тут, в результаті чого в helpers.php, чому я не просто отримати трохи розумніші про це? Написати трохи складніше Код, але назвати це зробити? Так що я принципово змінилося? Він приймає аргумент now-- два аргументи, дані раніше. І тоді те, що перший Назва, ймовірно, використовується для, на основі того, що ви читаєте тут? Навіть якщо деякі з синтаксису все ще є новою. Що шаблону знак долара? На жаль? АУДИТОРІЯ: верхній або нижній колонтитул. Девід Малан: верхній або нижній колонтитул. Таким чином, очевидно, я вирішив, що якщо Єдине, що змінюється це те, що я хочу, шаблон щоб print-- і за шаблоном Я маю на увазі, це проект для код, який я хочу для висновку, але я хочу, щоб підключити деякі values-- так що якщо це тільки заголовок або нижній колонтитул, чому я не параметризації що і називають знак долара аргумент шаблон? І тоді це фанкі синтаксис дозволяє мені створити шлях у змінній. Так знак долара шлях змінної. Що робить цей синтаксис робити, якщо ви знайомі? Так? АУДИТОРІЯ: [нерозбірливо] Девід Малан: Точно. Якщо шаблон, цитата кінець цитати, Тема, або якщо шаблон, кінець цитати цитати, підвал, ця лінія існує що я виділив, лінія восьмій, просто приймаючи це ім'я, як заголовок, та об'єднання її з точковою PHP. Таким чином, ми не повинні цього оператора в C. Цей оператор є точка дивовижна річ в PHP-- якщо ви знайомі з JavaScript або Java, Ви можете використовувати плюс увійдіть зробити конкатенацію. У C, це біль в neck-- і мені так шкода, в р-шість встановити, Ви будете мати, щоб зробити this-- це біль в шиї для об'єднання рядків. Чому? Ну, тому що, якщо у вас є рядок це так довго, і ще рядок це так довго, Ви не можете просто підключити їх разом. Що ви замість цього зробити в C? Так? АУДИТОРІЯ: [нерозбірливо] Девід Малан: Ви повинні Танос пам'яті, або використовувати масив в стеку. І ви насправді потрібно зробити це досить великий масив щоб відповідати це плюс це, плюс зворотний слеш нулю. Потім об'єднати їх разом за допомогою перемішати вручну або кішку з цикл, або будь-яку кількість методів. І ми покажемо вам кілька в р-встановити шість. Це біль в шиї. І це дійсно те, що я маю на увазі це проти this-- як C в порівнянні з PHP. Ви просто отримаєте значно більше Функціональність безкоштовно, так що ви можете зосередитися, в ідеалі, на веселощі частина кодуванні Проект ви хочете вирішити, а не на рівні дрібниць низькою. Так що це просто генерує header.php або footer.php на підставі яких я називаю. І справді, якщо я йду в index.php, повідомлення все, що changed-- Замість називаючи надати заголовок або нижній колонтитул зробити, Я дзвоню зробити, за ним ім'я шаблону, що я хочу зробити. І ви побачите, це теж, в задачі встановити сьомій, в результаті чого ми дозволяємо вам використовувати та ж функція, щоб зробити букети і грона різних веб-сторінок. Таким чином, замість зупинятися занадто більше на тих details-- які ви побачите знову в Проблема набір seven-- давайте подивимося на зараз почала розчину до більш цікавої проблемі. До цих пір, ми нічого не маю зробити є збережені дані. Насправді, єдиний раз, ми коли-небудь збережені те, що ми зробили в цьому класі це коли у нас був дуже простий демо деякий час тому, в результаті чого ми використовували файл IO в C, і я думаю, я набрав в ім'я Моє, і Ім'я Анни, і ім'я Марії, або, може бути, ім'я Енді, і тоді ми зберегли file-- CSV значення, розділені комами файл. І ми використовували fopen-- Я думаю, ми використовували fprintf, як я пам'ятаю, і ми зберегли файл. Тепер, що це найпростіший Форма бази даних. Якщо ви хочете, щоб зробити веб-сайт для Програма Фрош чати, в результаті чого першокурсників може зареєструватися на спорт, ти ідеально хочу зробити щось з цими даними. Минулого тижня, ми нічого не робили з data-- ми просто сказав Ви зареєстровані, не на самому справі. Або, може бути, я послав по електронній пошті Проктор, і що це було. Але було б непогано, якби я міг дати, що Проктор файл CSV, як файл Excel. Або, ще краще, це було б добре, якби я міг помістити імена цих користувачів і гуртожитку імена і все, що в базу даних, просто живе вічно, поки я не вибрати для видалення даних. База даних, яка дозволяє мені запит інформації. І справді, це те, що база даних. Введемо сьогодні, і на наступному тижні, теж технологія називається SQL-- структурний запит Мова, яка є іншу мову. Це істотно програмування мову, але для баз даних. І база даних зараз, просто думаю, як супер модні версії з Microsoft Excel або Google Таблиці, або яблучний чисел. Це в цілому програма, яка дозволяє зберігати цілу купу даних в рядках і стовпцях, досить як ви могли б в Excel. Але те, що приємно, особливо якщо ми не супер знайомі з Excel, те, що SQL дозволяє зробити запит це Інформація письмово рядків коду де ви можете, навіть якщо ваш база даних має мільйон рядків в ньому, Ви можете знайти речі дуже швидко. Справді, Excel особливо погано на великих наборів даних. І справді, до декількох років тому, виявилося Excel тільки дозволить вам зберігати до 65,535 рядків, які data-- звучить, як багато, але в той раз я був аспірантом, і я пам'ятаю, спотикаючись це тому, що я був генерації Файли CSV для мого дослідження, і я хотів проаналізувати їх швидко просто відкривши в Excel. Звичайно, мій комп'ютер просто розбився, тому що я був більш, ніж 65 000 рядків. Але де ж 65,535 прийшли? Що робити Microsoft, мабуть? Якщо ви добре з повноваженнями двох? Так, вони були з використанням 16-біт значення представляють число рядків. І два 16 є 65,536-- мінус одна, тому що якщо ви нульової позначки означає, що був Найбільша кількість рядків я міг би. І це був тільки дизайнерське рішення. При збереженні 16 біт, вони обмежені мене 16000 рядків, а не 4 млрд, які я міг мати в ідеалі. Але зараз, ми збираємося ввести цей більш у веб-контексті. І те, що приємно про SQL є те, що навіть хоча це досить потужна і досить складні, це дійсно кипить до чотирьох ключових операцій, чотири Основні функції, якщо ви оберете, will-- для вилучення даних, пошуку для даних; видаляти або видалення даних; вставити для додавання рядків в базі даних; і оновлення. Так що якщо ви коли-небудь використовували Google Таблиці, Apple, Microsoft Числа Excel, як Ви виконали, швидше за все, все з цих операцій, як людину по тільки за допомогою клавіатури і mouse-- вставки даних, використовуючи свої очі для вибору або пошуку даних, або дані оновлення або видалення даних. Отже, що ж це означає? Ну, попередньо встановлені в CS50 IDE є програма під назвою MySQL. Це безкоштовно, з відкритим вихідним кодом бази даних, що супер популярним. Facebook, наприклад, використовує його для цього день, серед інших інструментів, які вони використовують. І багато дуже популярних веб-сайтів використовувати це значною мірою тому, що це швидко, й тому, що це безкоштовно. Хоча, безумовно, існують альтернативи. І деякі з вас, можливо, плескатися з альтернативи для кінцевих проектів. Це знімок екрана, тим часом, з веб-інструмент називається PhpMyAdmin. Це збіг, що це веб-інструмент також написана на мові РНР, але те, що він хотів зробити це дати нам на основі веб- Інтерфейс до бази даних. Оскільки MySQL, як правило, є то, історично, вам взаємодіятимуть тільки з з командного рядка. І це було б супер дратує і таємницею мати ввести текстові команди для вибору Дані, вставити дані і видаляти дані. Таким чином, деякі люди в Інтернеті написав веб-програми що просто дайте нам управляти дані в нашій базі даних. Це як двічі клацнувши по Excel і працює їх веб-розрядних версій. І те, що ви збираєтеся використовувати це для в кінцевому рахунку, на наступному тижні, а не в р-встановити шостій, але щось побудувати називається CS50 Фінанси, які матиме базу даних користувачі, з іменами користувачів і паролями, долар суми, які вони мають у своїх банківських рахунків. Це буде те, що ви використовуєте для зберігання символи і величини запасів, що користувачі купив за допомогою віртуальної доларів, що ви будете давати їм. І це відбувається, щоб дозволити користувачам щоб зареєструватися для вашого сайту, так що навіть ваші друзі можете налаштуватися на свій веб-сайт а насправді зареєструйтеся, увійти, і пограти і спробувати знайти несправність в коді, і спробувати знайти помилки в свій веб-сайт. І вони просто зареєструватися, додавши себе, по суті, за допомогою коду ви пишете в базу даних. Наприклад, це швидкий скріншот що база даних може виглядати. Це з одного з solutions-- торішні це як міні-Excel подати, зберігається в нашій базі даних, зберігаються в цьому програмне забезпечення під назвою MySQL. На лівій стороні, мабуть, У мене враховуючи кожному користувачеві унікальний номер. У другій колонці, я дав всі користувач name-- моє серед них. А на правій стороні, Я дав їм хеш. Тепер це дійсно пароля, але це не простий текстовий пароль. Це зашифрований пароль, якщо Ви будете, або хеш пароля. Який ми повернемося до незабаром. Але якщо ви коли-небудь читав стаття про те, як пароль в якийсь банк або деякі веб-сайт може бути скомпрометована, він може, як правило означати одне з двох речей. Так що це просто уривок з шести користувачів. Все тепер ви можете зрозуміти з за допомогою злому або тріщин які паролі наших шести народні. Але якщо ви коли-небудь отримували попередження або вибачення від компанії або на сайті приказці, вибачте, хакер увірвалися в нашій базі даних, Ви, ймовірно, слід змінити свій пароль, що може означати? Ну, один, може означати, що Компанія була більш ідіотський, і був зберігання пароль в колонці, як це, в незашифрованому вигляді. Що означає, що противник, хто вкрав базу даних, буквально знає ваші Логін і пароль. Це найгірший сценарій. І, як ви побачите в р-набір сьомій, так легко уникнути. Там немає абсолютно ніякого виправдання за що форма дурості в сучасному Інтернеті. Two-- і ми знайдемо кілька статей щоб свідчити той факт, що це як і раніше буває, nonetheless-- два, може бути, противник вкрав цю версію бази даних. Які ще вид погано, тому що тепер вони знають, що у мене є шість клієнтів, Я знаю імена користувачів з цих шести клієнтів, і я знаю, зашифрований версії, чи версії, HASHED паролів цих шести клієнтів. Але кожен з вас, хто може зроблено [? Хакер 2?] де ви тріщини паролі, або взяв Погляд на цій версії проблеми набір, чому це досі мало турбує якщо супротивник знає ваш хеш паролі? АУДИТОРІЯ: Тому що вони могли введіть цілий словник в хеш-функции. І якщо ваш пароль словник Слово [? вони можуть просто match--?] Девід Малан: Рівне, противник можна просто написати код, як і деякі з вас зробив для [? Хакер?] 2, в якому ви перебору всі слова в словнику, або всі можливі комбінації А через Z і один через nine-- яка звучить, як багато, і це. Але для комп'ютера, це чертовски швидко. І справді, що було точка [? Хакер 2 ,?] Був прийняти речі, які буквально виглядає так, і зворотний інжиніринг те, що було насправді. Таким чином, ми будемо дивитися на те, як ми можемо зберігати це більш ефективно. Виявляється, на щастя, в MySQL, там збираються бути типи даних. І один з кумедних частин про проектування баз даних, щоб бути чесним, насправді вирішити для себе як ви повинні представляти дані? Якщо ви уявляєте, як номер телефону цілочисельне, як великий номер, або довгий? Або ви насправді зробити це як послідовність символів? І може бути дуже нетривіальні наслідки цього. Насправді, один з ранні, веселі історії герман коли Марк Цукерберг будує Facebook, він був спочатку написаний на, і досі в значній мірі написана в PHP. І одна з найбільших проблем, вони зіткнулися рано було масштабування. Коли вони продовжували додавати школу після Школа після школи, за моїми відомостями, один з оригінальних рішень по суті, скопіюйте і вставте деякі з баз даних і частина коду, так що Гарвард був працює на власному сервері, і Массачусетського технологічного інституту був запущений на власному сервері. І це було, чому, для деяких з вас, хто, можливо, пам'ятаєте, Ви не могли мати друзів в інших мережах. Ви, напевно, немає друзів на Массачусетський технологічний інститут Гарвардський або 10 або близько того років тому, але ви не могли займати мереж для частково з цієї причини. І одна з найбільших проблем для Марк і для компаній, таких як Facebook насправді обробки сотні і тисячі й мільйони запитів в секунду. Таким чином, те, що ми почнемо говорити про цей тиждень дійсно буде доречно, щоб написання гарної програми, і в народі успішні інструменти, може обробляти велику кількість користувачів. Таким чином, ми будемо говорити про те, як індексації та пошуку, але це на сьогодні. Ми будемо бачити Вас протягом більш в середу. [МУЗИКА - "Seinfeld" ТЕМА] Девід Малан: ви можете це, і відняти з нього. І ви не повинні дотримуватися деякі заздалегідь певні обсяг пам'яті. Ну, те, що, що буде називатися? СПІКЕР 1: Ну, що відбувається? СПІКЕР 2: Що ви маєте на увазі? Він читав лекцію. Девід Малан: І ми можемо використовувати Функція називається Танос в memory-- СПІКЕР 1: Чому не руки рухається? СПІКЕР 2: Ну that's-- Ви знаєте, що це нормально. Це просто, як він щойно сардельок висить. СПІКЕР 1: Це нормально? СПІКЕР 2: Так, я думаю, що ми тільки припустити, що він випадково замінити його дезодорант з суперклеєм.