Моя мама никогда в жизни не писала ни одной строчки программного обеспечения, но она научила меня программировать. Она научила меня арифметике и дробям через выпечку, структуры данных через стирку, программирование и алгоритмы через ткачество. Звучит безумно? Позволь мне объяснить.

Выпечка и фракции

Как можно выучить дроби и арифметику с помощью выпечки, довольно очевидно, если вы когда-либо следовали рецепту. Что-то требуется 1 1/2 чайной ложки? Это половина столовой ложки, если вы из Северной Америки. Или три половинки чайных ложки. Половина чашки - это две мерные ложки чашки. Или восемь столовых ложек. Как только вы освоите основные дроби, вы начнете сокращать вдвое или удваивать рецепт. В конце концов, вы просто знаете эти преобразования, но в детстве это хороший способ научиться умножать и делить.

Я сразу понял, что эта математика не носит чисто академический характер.

Прачечная и структуры данных

Некоторое время назад я развешивал одежду на веревке, и мне пришло в голову, что моя мама научила меня моей первой концепции структуры данных: первым пришел, последний ушел. Веревка для белья - это физическое воплощение стопки.

Если вы сначала постираете джинсы и сначала поставите их на веревку, они могут оставаться там дольше всего, потому что они высыхают больше всего. Если вы вешаете быстросохнущее спортивное снаряжение в последний раз, возможно, вы будете готовы снять его и заменить другим багажом еще до того, как ваши джинсы даже подумают о сушке.

В качестве альтернативы, если у вас достаточно места на линии, так что вам не нужно перекладывать вещи на верхнюю часть стопки (ближайшую к дому) и снимать с нее, вы можете повесить свою одежду, которая больше всего склонна к складкам. во-первых, чтобы они оказались наверху стопки, когда все сложено в корзине.

Как и в случае с данными, способ их использования должен определять порядок их организации и хранения.

Maker, Crafter или это просто «Хобби»?

Недавно я попал в кроличью нору в Твиттере (обычно это плохая идея, если только это не один из проницательных твитов Сары Мей о серьезных проблемах программного обеспечения [например, о людях]), и побежал в спор вокруг различия между терминами «Изготовление» и «Ремесло». Одна сторона, казалось, подразумевала, что хобби, связанное с тканью, - это Ремесло, тогда как Изготовление относится к электронике, оборудованию, 3D-печати, деревообработке и т. Д. Что скажете?

Это различие было систематизировано в нескольких публикациях Maker Media, Inc. Вы можете увидеть, как Maker Media классифицирует эти два термина, если сравните Make Magazine и Craft Magazine.

Его не перестают печатать. На makezine.com вы можете видеть, что они предоставили этой публикации полный веб-сайт, тогда как домен craftzine.com в настоящее время перенаправляет на старую запись в блоге на makezine.com, которая объясняет, как следить за авторами крафта через RSS кормить. Может быть, они могли бы просто полностью объединить свои две публикации и перестать вносить свой вклад в эту ерунду?

Назовите ли вы это Изготовлением или Ремесленностью, мне кажется забавным, как развивается язык. Поколения моих родителей, бабушек и дедушек не называли себя Makers. У них просто были хобби, вроде садоводства и деревообработки. Мой дедушка Джон делал мебель для своей семьи и друзей. Мама ткала и оставила много красивых теплых одеял друзьям и семье, с которыми мы останавливались в семейных поездках по Канаде и обратно. Моя сестра вяжет такие вещи, как носки, по схемам лицевых и изнаночных петель.

Maker, Crafter или Fiber Artist, я бы назвал это физическим проявлением алгоритма.

Код как ткач

Может быть, где-то в курсе истории технологий вы слышали о связи между первой работающей аналитической машиной Бэббиджа и жаккардовым ткацким станком. Вы знаете, как работает механизм?

Жаккардовый ткацкий станок имеет ряд перфокарт. Отверстия в карточках сообщают ткацкому станку, когда поднимать и опускать изгороди. Нити основы были продеты через изгибы, прикрепленные к механизмам ткацкого станка, и подъем и опускание этих валов создают программу, которая создает узор в готовой детали. Чисто как грязь? Могут помочь подробные изображения более простого ткацкого станка.

Программирование плетения

Мой ткацкий станок представляет собой довольно простой противовес с 4 валами и 6 педалями. У меня сейчас есть программа для плетения шведского кружева.

Чтобы решить, как заправить ткацкий станок и какой рисунок протектора использовать, я взял базовую структуру шведского кружева и ввел ее в электронную таблицу Google. Первые 4 ряда сверху определяют резьбу: какие нити основы проходят через борозды на каких валах. Я использовал первые 8 столбцов в таблице, чтобы поиграть с узорами тредлинга и закрепления, пока не получил общую структуру ткани, которая мне понравилась. Оказалось, что мне нужно было всего 6 столбцов для шаблонов, которые я хотел сделать, и это здорово, потому что у меня всего 6 педалей.

Без изменения заправки основы, другой рисунок протектора (на самом деле, алгоритм) в столбцах слева приводит к существенно иной структуре по сравнению с переплетением.

С помощью жаккардового ткацкого станка, подобного тому, который я изображал ранее в Королевском музее Онтарио, вы можете ткать гораздо более сложные узоры. Это связано как с тем, что этот ткацкий станок может обрабатывать намного больше нитей основы для более широкого и тонкого переплетения, так и с тем, что система перфокарт и связанный с ней механизм позволяют поднимать и опускать отдельные изгороди независимо, а не как предварительно запрограммированную единицу на вал.

Создание красивого плетения означает правильную кодировку нити в ткацком станке. Затем этой кодовой базой манипулируют, изменяя способ движения этих потоков для создания шаблона.

Аналитическая машина

Самая ранняя версия универсальной вычислительной машины напрямую заимствовала механизм перфокарт жаккардового ткацкого станка. Аналитическая машина Бэббиджа использовала несколько наборов перфокарт, предоставляющих как данные, так и наборы инструкций, для вычисления сложных математических формул. Вместо того, чтобы определять, когда поднимать и опускать нити основы, как ткацкий станок, в разностном механизме отверстия в картах должны были использоваться для определения двоичного программирования.

Знаете, что мне кажется самым крутым в связи между ткацким станком, аналитическим механизмом и моим хобби? Ада Лавлейс - одна из тех, кто взглянул на ткацкий станок и искусство, которое он может производить, используя тот же механизм, что и аналитический механизм, и именно она определила, что предлагаемый аналитический механизм когда-нибудь сможет делать гораздо больше, чем просто вычислять числа. .

Из Bibliothèque Universelle de Genève, октябрь 1842 г., №82:

«Рабочий механизм может даже быть приведен в действие независимо от какого-либо объекта, над которым он работает (хотя, конечно, тогда нельзя было бы получить результат). Опять же, он мог бы воздействовать на другие вещи помимо числа, если бы были найдены объекты, взаимные фундаментальные отношения которых могли бы быть выражены отношениями абстрактной науки об операциях, и которые также должны быть восприимчивы к адаптации к действию обозначение работы и механизм двигателя. Предположим, например, что фундаментальные отношения тональных звуков в науке гармонии и музыкальной композиции могут быть подвержены такому выражению и адаптации, машина может составлять сложные и научные музыкальные произведения любой степени сложности или степени ».

Мысленный прыжок от математической машины к программируемому многоцелевому компьютеру был сделан человеком, который программировал в точности как девочка.