или как я узнал, что программисты всем обязаны оптоволокну

В рамках моего буткемпа меня попросили выступить в течение 10 минут на любую тему. Я вяжу крючком с 2013 года, а спицами — с 2018 года, и я заметила некоторое сходство между тем, как я подходила к проекту, будь то волокно или программирование. Чего я не ожидал найти, так это богатой истории волоконного искусства и программирования, влияющих друг на друга.

Начало

Волоконное искусство, такое как вязание, представляет собой ремесла с использованием пряжи, веревки, ниток и т. Д. Это охватывает тысячи лет истории, начиная с 6500 г. до н.э. с викингов Nålbinding. Другие ремесла, включенные в этот раздел, включают вязание крючком, вышивку, ткачество и изготовление текстиля.

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

Связь между искусствами волокна и программированием становится еще более очевидной с Core Rope Memory (также называемой памятью Little Old Lady). Используемое в 1960-х годах НАСА, программное обеспечение, написанное программистами Массачусетского технологического института, было вплетено в основную память рабочими женщинами.

Направление тока, проходящего через провода, заставляло силы поля циркулировать по часовой стрелке или против часовой стрелки. Одно направление — это сохраненная 1, а другое — сохраненный 0. В результате получилось энергонезависимое хранилище, которое могло хранить большой объем информации без питания — примерно 2,5 мегабайта на кубический метр. Это было 18-кратное улучшение по сравнению с памятью на магнитных сердечниках, стандартным решением, использовавшимся в то время.

В настоящее время

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

Ravelry была создана в 2007 году с бесплатным членством и рекламой только художественного волокна. Сегодня Ravelry является центром сообщества художников по волокну с более чем 9 миллионами пользователей. Их веб-сайт был первым, который позволил людям обмениваться информацией, инструментами, материалами и шаблонами в формате pdf в больших масштабах и на всех языках, что произвело революцию в отрасли. Кроме того, они предлагают дискуссионные группы, чтобы люди могли получить помощь с шаблонами и методами.

Они принадлежат и управляются 6 женщинами, они используют технический стек из примерно 10 серверов Gentoo Linux, MySQL 8.0, Ruby on Rails, Manticore Search, Amazon S3 для хранения изображений и CDN, Redis, memcached, nginx и haproxy.

Устранив барьеры для входа, Ravelry приписывают взрыв интереса к вязанию спицами и крючком, стимулируя инновации в более простых узорах. Я лично разговаривал с владельцами местных магазинов пряжи об их опыте до и после Ravelry, и они описывают его как ночь и день. Сейчас вязальщицам в основном 25–35 лет. Местные, региональные и международные группы по вязанию, фестивали волокон и сборы пряжи возникли повсюду. Пряжа, окрашенная инди, в настоящее время является огромным бизнесом. Возобновился интерес к выставкам волокон, которые рассказывают людям, откуда берется их пряжа. Аудитория блогов и подкастов, связанных с искусством волокна, в целом выросла в геометрической прогрессии.

Основа для вязания

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

Паттерны как программирование

  • Дизайнеры схем вязания следят за DRY.
  • Повторы шаблона предназначены для циклов, обычно заключенных в скобки, звездочки или круглые скобки.
  • Обычно можно увидеть такие циклы, как «до конца ряда» или «до n стежков до маркера».
  • Языки более высокого уровня, такие как Python и Javascript, используют символы и ключевые слова, чтобы сообщить компьютеру, какой результат требуется, точно так же, как схемы для вязания.
  • Подобно языкам ассемблера, операнды вставляются и выталкиваются на иглы.
  • Шаблоны тестируются и повторно тестируются пользователями на правильность, масштабируемость и внешний вид готового объекта (также известный как ожидаемый результат).
  • Разработчики паттернов отдают предпочтение ПО с открытым исходным кодом (Darktable, Gimp, Libre, Stitchmastery и др.).
  • Разное расположение пряжи и игл дает разный результат.

Эта шаль связана из 8 петель — все лицевые (без изнаночных). Один ряд был прописан так: 3лиц, ПМ, (2лиц вместе, накид) 2 раза, [1лиц, накид, ссск, накид, ск2п, накид, 2лиц вместе, накид] до 5 петель перед маркером, 1лиц, (накид, сск) 2 раза), ПМ, 3лиц

Было даже два (более не поддерживаемых) языка программирования, разработанных специально для ручного вязания — KnitML, язык разметки, и KEL, вдохновленный Groovy, языком Java.

Шаблоны как регулярные выражения

Скажем, мы хотим сделать квадрат из резинки. kp — это регулярное выражение для одной лицевой петли, за которой сразу следует одна изнаночная петля. Фигурные скобки используются для повторов, поэтому kp, повторенное 10 раз, выглядит так: (kp){10}. Для новой строки мы используем новую строку, написанную \n. Полное регулярное выражение для строки — then (kp){10}\n. Так как мы поворачиваем квадрат для вязания следующего ряда, то следующая строчка должна быть pkс, или (pk){10}\n. Мы хотим, чтобы в нашем квадрате было 40 строк, поэтому они, в свою очередь, заключаются в еще большее количество скобок, что дает: ((kp){10}\n(pk){10}\n){20}. Более общий шаблон будет выглядеть как ((kp){x}\n(pk){x}\n){y}.

Паттерны как инструменты для обучения программированию

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

«Следование за нитью: схемы вязания и трассировка программы» Мишель Крейг, Эндрю Петерсон, Сара Петерсон

Крейг, Петерсон и Петерсон продолжают говорить, что программисты могут учиться на том, как онлайн-сообщество вязальщиков разработало стандартные соглашения для передачи таких понятий, как итерация, условия и документирование проектных решений. В частности, то, как они появились, пытаясь сделать шаблоны понятными для начинающих. Например, использование вариантов завершения с «until» делает цикл while более понятным. Еще говорят, что создание вязаного конечного объекта аналогично калькированию, так как демонстрирует понимание узора.

Вывод

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

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

Если вы уже являетесь художником по программированию волокон в проектах Ravelry, ознакомьтесь с моим проектом Knitworthy!

Дополнительное развлечение

Вязание — это программирование, а пряжа программируется в этой физической лаборатории

Вязание — приемлемая шепелявость

Программист работал со своей дочерью преобразовывать текстовые инструкции в диаграммы с помощью Perl

Дополнительные источники