Урок 3: матрицы

Первые несколько лет после выхода «Матрицы» – полное безумие

Возможно, вы даже забыли, насколько сильно по фильму Вачовски сходили с ума в начале нулевых. Для сравнения: вышедший в том же 1999 году «Бойцовский клуб», который сейчас стал любимым фильмом всех инфантилов и псевдоинтеллектуалов, провалился в прокате и обрёл популярность гораздо позже. Тайлер Дёрден был никому не нужен в мире, в котором есть Нео, собирающий суммарно 450 000 000 долларов в мировом прокате.

С самого старта это был хит, поразивший людей масштабом, визуалом, нестандартным сюжетом и собранными в одном месте жанровыми приёмами. Для кого-то «Матрица» стала самым крутым фильмом из-за зрелищных драк, а кто-то в то время как раз разучивал треки «Гражданской Обороны» и вдруг попал на фильм, где точно победил пластмассовый мир. Попадание по всем фронтам – в детей, взрослых, бунтарей, офисный планктон, Нео и Агент Смит прошлись по каждому.

Помню нескольких людей, которые пересматривали прокатную кассету с «Матрицей» так часто, что знали все диалоги наизусть. Те же ребята пытались нелепо повторять движения уворачивающегося от пуль Киану, и давали на выбор две таблетки – к счастью, «Рондо» и «Тик-так».

А уж наклейки из жвачек с кадрами из «Матрицы» точно собирали все. Они ценились выше, чем устаревшие «Мортал Комбат» и «Черепашки-ниндзя». Те же, кому не нравилось коллекционировать и обмениваться, гордо обклеивали «Матрицей» стены лифта в родном подъезде.

Ах, да. Ну и тёмные очки с чёрными кожаными плащами – тоже достижение «Матрицы».

Главное ощущение от «Матрицы» заключалось в том, что она смотрелась и воспринималась как свежий фильм, даже когда с момента премьеры прошло три-четыре года. И этот статус не испортили даже более слабые сиквел и триквел. Школьники и студенты – всё-таки не кинокритики, поэтому любая «Матрица» считалась хорошей, ведь первая была настолько великой.

Помогало фильму и то, насколько вовремя он вышел. Киберпанк с модными очками, кунг-фу и борьбой с системой был шикарным завершением бунтарских 90-х с их «Братом», «На игле» и «Криминальным чтивом». «Матрица» давала ощущение, что началось нечто новое. И, как вы узнаете ниже, имела на то полное право.

Авторская концепция

Geometrix Design

Мирошкины Элен и Майкл – двое дизайнеров, страстно влюбленных в свое дело. Компании уже более 10 лет, в течение которых каждый день ребята стараются открывать новые грани в своей работе. Первые, кто применил в частных интерьерах Москвы принцип параметрического проектирования.

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

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

Мы хотели оставить интерьер светлым, как холст, но при этом построить
внутри что-то такое, что станет композиционным центром семейной Вселенной.

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

А спальни мы отсекли тем самым арт-объемом, который родился благодаря
ассоциациям с увлечением дочки героев: параметрический объем с зеркальным
напылением как будто застыл в причудливом танце. Игра отражений и света
заполняет общую монохромную гамму интерьера. Помимо эстетической составляющей,
объем скрывает и определенный функционал: дверь, ведущая в спальный блок,
растворена в пространстве, и скрывает за собой гардеробную зону. Раньше у
героев был единый длинный шкаф, где хранились и верхняя одежда, и обувь, тут же
– и постельное белье. Нам хотелось фунционально разделить гардеробные зоны
прихожей и спален. Ручку для нашей двери мы печатали на 3D−принтере.

Зеркальные столики стали продолжением концепции: они как осколки от
нашего арт-объекта застыли в зоне дивана и продолжают игру отражений.

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

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

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

Мы довольны тем, что получилось, так как наша параметрическая стена
по факту оказалась довольно сложным конструктивным элементом: проектирование,
фрезерование объекта с помощью робота, транспортировка, покрытие слоями
полимочевины для фундаментальной прочности, и финишное покрытие зеркальной
пленкой.

Для просмотра онлайн кликните на видео ⤵

КАК СДЕЛАТЬ КОД ИЗ “МАТРИЦЫ” В КОМАНДНОЙ СТРОКЕ WINDOWS? ОТВЕТ ЗДЕСЬ! Подробнее

CMD Приколы (Создание Матрицы,Просмотр Starwars и т.д.) Подробнее

Как сделать эффект матрицы на компьютере просто в блокноте Подробнее

Крутые команды cmd | матрица, звездные войны и т.д. Подробнее

5 трюков CMD для розыгрыша друга на компьютере – 5 tricks with CMD Подробнее

Как сделать “Матрицу” с помощью cmd Подробнее

Делаем эффект матрицы в командной строке Подробнее

Крутые команды консоли windows которые вы должны знать Подробнее

5 консольных команд чтобы удивить друзей Подробнее

Как создать рисунок из символов ASCII в командной строке Подробнее

Команды в cmd для новичков Подробнее

Эффект “Матрицы” с помощью команд cmd в Notepad. Подробнее

Матрица в командной строке. Подробнее

Как сделать эффект матрицы на компьютере просто в блокноте Подробнее

Как создать Эффект матрицы в блокноте. Подробнее

Как сделать матрицу в командной строке. Подробнее

Основы CMD | Консоль windows | Терминал юзера Подробнее

КАК СДЕЛАТЬ МАТРИЦУ НА КОМПЬЮТЕРЕ | ЭФФЕКТ МАТРИЦЫ | МАТРИЦА КАК В ФИЛЬМЕ | Подробнее

Как сделать Матрицу в Командной строке! Подробнее

Что такое объекты, классы, методы и конструкторы?

Далее мы будем использовать понятия «объект», «метод», «класс» и «конструктор». Это базовые понятия ООП. Если хотите углубиться — читайте наш цикл, а пока вот основные положения: 

Объект — это «коробка», в которой могут лежать данные и действия. В нашем случае объектами будут отдельные сменяющиеся буквы и «потоки» из этих букв. Объекты можно вкладывать в объекты. 

Метод — это действие, которое может совершать объект. Например, символ из тучки может опускаться на сколько-то вниз. Если метод доступен извне объекта, то мы можем в программе сказать, грубо говоря, так: , где — это объект, а — это метод. 

Класс — это «чертёж», по которому наша программа может изготовить много одинаковых объектов, как на конвейере. В нашем случае нам нужно, чтобы программа рисовала сотни букв в десятках потоков, и изготавливать их мы будем не вручную, а с помощью класса. 

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

Шаг 23

Добавьте корректирующий слой Цветовой тон / Насыщенность (Hue/Saturation) для изменения цвета светового эффекта справа на зелёный, чтобы он соответствовал цвету на заднем фоне. Удалите эффект на левом глазу с помощью мягкой чёрной кисти:

Примечание переводчика: после того, как вы применили корректирующий слой Цветовой тон / Насыщенность (Hue/Saturation), перейдите на маску данного корректирующего слоя и с помощью мягкой чёрной кисти, скройте коррекцию в области левого глаза, сохранив голубой цвет светового эффекта слева.

Отличная работа! Вы справились! Круто, не правда ли? Теперь вы можете создать портреты своих друзей или членов своей семьи. Надеюсь, что вам понравился этот урок. Удачи, не стесняйтесь выкладывать свои работы! До новых встреч!

Итоговый результат:

Ответы знатоков

Duality:

Cmatrix. s youtu.be/A4qK1X5psa8?t=25

Niis:

Что значит «сделать матрицу»? Вводить можно по строкам или по столбцам, выводить вообще как угодно.

Кэп со стажем:

1) Открой программу Блокнот. Скопируй и вставь вот этот текст:

setlocal enabledelayedexpansion :: Отключаем вывод. echo off :: Задаём заголовок окошка. title It’s Matrix color 02 :: Отчищаем экран командной строки. cls :: Ставим метку для создания замкнутого цикла. :prodolgit :: Задаём цикл со сменой цветов в случайном порядке, но в заданном диапазое. set stroka= for /l %%i in (0,1,78) do ( set /a vremenno=!random!%%2 set stroka=!stroka!!vremenno! ) set /a generate=!random!% if %generate%==0 (color 0A) else (color 02) :: Выводим матрицу на экран. echo %stroka% :: Переходим по метке. goto prodolgit

Нажми

Александр Фадеев:

Win + Rcmd.exe

cd \

tree

наслаждайтесь

Алекс Куха:

«Клава, я потею! «(с) Матрицу сделать не только в КС проблематично, но и на плюсах невозможно. Матрица не программа, матрица — идеология. Программирование не метод власти, это просто технология. Как говорится Calm down

piza piza:

setlocal enabledelayedexpansion echo off title It’s Matrix color 02 cls :prodolgit set stroka= for /l %%i in (0,1,78) do ( set /a vremenno=!random!%%2 set stroka=!stroka!!vremenno! ) set /a generate=!random!% if %generate%==0 (color 0A) else (color 02) echo %stroka% goto prodolgit

Студия:

@echo offpausecolor amode 1000

A;@echo %random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random%Goto a

герман раус:

О, да тут сборище программистов прям)

никита вохминцев:

хе хе хе

Светлана Фадюшина:

Win + R

Пишем в открывшемся окошке без кавычек: «cmd.exe»

В новом открывшемся окошке пишем без кавычек: «color a»

Далее пишем без кавычек: «cd \»

Далее пишем без кавычек: «tree» и нажимаем Enter☻☻(цвета можно менять от: «a» до «f» и цифрами от «0» до «7» но только до запуска

Проектируем поведение символов

Чтобы не прописывать поведение для каждого символа в отдельности, а задать общие правила для всех, сделаем класс Symbol. Каждый объект, созданный на основе этого класса, будет вести себя так, как написано в классе. Это даст нам предсказуемое поведение для каждого символа и сократит количество кода.

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

Также сделаем метод rain() — он будет отвечать за падение символа вниз, как капля дождя. Логика простая: если символ ещё не улетел за край, сдвигаем его вниз на значение скорости.

Умножение матриц

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

  1. У нас есть две матрицы A и B. Их нужно перемножить, чтобы получить новую матрицу C. 
  2. Размер матрицы A два на два: есть две строки и два столбца. Первая строка состоит из элементов А₁₁ и А₁₂; вторая — А₂₁ и А₂₂. 
  3. У матрицы B такая же размерность: есть две строки и два столбца. Первая строка состоит из элементов B₁₁ и B₁₂; вторая — B₂₁ и B₂₂. 
  4. У нас две одинаковые по размеру матрицы с двумя строками и столбцами. Это значит, что и матрица C будет размером два на два. Первая строка будет состоять из элементов C₁₁ и C₁₂; вторая — C₂₁ и C₂₂. 
  5. Считаем элемент C₁₁. Умножаем первый элемент первой строки матрицы А (А₁₁) на первый элемент первого столбика матрицы B (B₁₁). Это первая часть, после которой ставим знак плюс. Вторая часть: умножаем второй элемент первой строчки матрицы А (А₁₂) на второй элемент первого столбика матрицы B (B₂₁). Складываем обе части и получаем первый элемент первой строки матрицы С (C₁₁). 
  6. Считаем элемент C₁₂. Умножаем первый элемент первой строки матрицы А (А₁₁) на первый элемент второго столбика матрицы B (B₁₂). Это первая часть. Вторая часть: умножаем второй элемент первой строчки матрицы А (А₁₂) на второй элемент второго столбика матрицы B (B₂₂). Складываем части и получаем второй элемент первой строки матрицы С (C₁₂). 
  7. Считаем элемент C₂₁. Умножаем первый элемент второй строки матрицы А (А₂₁) на первый элемент первого столбика матрицы B (B₁₁). Это первая часть. Вторая часть: умножаем второй элемент второй строки матрицы А (А₂₂) на второй элемент первого столбика матрицы B (B₂₁). Складываем части и получаем первый элемент второй строки матрицы С (C₂₁). 
  8. Считаем элемент C₂₂. Умножаем первый элемент второй строки матрицы А (А₂₁) на первый элемент второго столбика матрицы B (B₁₂). Это первая часть. Вторая часть: умножаем второй элемент второй строки матрицы А (А₂₂) на второй элемент второго столбика матрицы B (B₂₂). Складываем части и получаем второй элемент второй строки матрицы С (C₂₂). 

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

Формула умножения матрицПример умножения квадратных матриц размерностью 2×2

Что может в себя включать матрица контента

Для каждой ниши будет своя матрица, но есть ряд универсальных категорий — колонок, которые вы можете применить в своей работе.

Ключевые направления бизнеса

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

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

Основные характеристики товара или услуги

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

Пример. Для маркетингового агентства используются такие параметры: виды услуг, тарифы, сроки проведения работ и варианты отчетности. А для компании по производству фильтров для воды будут актуальны характеристики: тип очистки и ее степень, присутствие накопительной области и ее объем — кувшин 2 литра, а также особенности фильтрации.

Данные по целевой аудитории

Здесь указываются характеристики сегментов ЦА: возраст, пол, география, социальные признаки и многое другое. Эта информация поможет выявить, какой контент и в каком формате интересен аудитории.

Пример. Сегмент целевой аудитории для компании, продающей телевизоры — мужчины, 30-40 лет, женаты, в семье один-два ребенка, уровень дохода: средний или выше среднего. Проживают в центральной части Москвы. Досуг: видеоигры, просмотр фильмов или сериалов. Организация может рассказать клиенту о том, как использовать телевизор, что на нем есть заранее установленные сервисы онлайн-кинотеатров, а также что их продукт подойдет для подключения игровой приставки.

Нюансы использования продукта

Этот пункт актуален для большинства сфер бизнеса. Здесь можно указать следующие варианты контента: инструкции, инфографику, обзоры и отзывы.

Пример. Для производителя косметики можно написать о том, как макияж поведет себя под воздействием воды и как на него может отреагировать кожа. А для производителя кофе — указать способы заваривания, рассказать о культуре потребления напитка.

Решение проблем клиентов

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

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

Интересные факты

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

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

Смежные темы

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

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

Виды контента

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

Пример. Категории контента: статья, полезный пост, продающий текст, подкаст со специалистом, видеоотзыв и подборка фотографий продукта с описанием характеристик.

Использует

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

Не только линейные преобразования могут быть представлены матрицами. Некоторые преобразования, которые являются нелинейными на n-мерном евклидовом пространстве R n, могут быть представлены как линейные преобразования на n + 1-мерном пространстве R n +1 . К ним относятся как аффинные преобразования (например, перевод ), так и проективные преобразования . По этой причине матрицы преобразования 4 × 4 широко используются в трехмерной компьютерной графике . Эти п матриц + 1-мерные преобразования называются, в зависимости от их применения, аффинных матриц преобразования , проекционных матриц преобразования , или в более общем случае нелинейна матриц преобразования . Что касается n- мерной матрицы, n + 1-мерная матрица может быть описана как расширенная матрица .

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

Важно различать активные и пассивные преобразования. По умолчанию, путь трансформации , математики обычно имеет в виде активные преобразований, в то время как физика может означать либо.

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

Объединяем трансформации : матрица ModelViewProjection

… Просто стандартные матричные преобразования, которые вы уже полюбили!

Совмещаем все вместе

Первый шаг — создание нашей MVP матрицы. Это должно быть сделано для каждой модели, которую вы отображаете.

Второй шаг — передать это в GLSL:

Третий шаг — используем полученные данные в GLSL, чтобы трансформировать наши вершины.

Готово! Теперь у нас есть такой же треугольник как и в Уроке 2, все так же находящийся в начале координат (0, 0, 0), но теперь мы его видим в перспективе из точки (4, 3, 3).

В Уроке 6 вы научитесь изменять эти значения динамически, используя клавиатуру и мышь, чтобы создать камеру, которую вы привыкли видеть в играх. Но для начала мы узнаем как придать нашем моделям цвета (Урок 4) и текстуры (Урок 5).

Задания

Попробуйте поменять значения glm::perspective
Вместо использования перспективной проекции попробуйте использовать ортогональную (glm:ortho)
Измените ModelMatrix для перемещения, поворота и масштабирования треугольника
Используйте предыдущее задание, но с разным порядком операций

Обратите внимание на результат.. Замечания

Замечания

  1. И к счастью для нас, матрица 4х4 может выполнить эту проекцию: На самом деле, это не правильно. Перспективное преобразование не является аффинным и как таковое не может быть полностью представлено матрицей. После умножения на ProjectionMatrix однородные координаты делятся на свой собственный компонент W. Этой W-компонентой оказывается -Z (потому что проекционная матрица создана таким образом). Таким образом, точки, находящиеся далеко от начала координат, делятся на большое Z; их координаты X и Y становятся меньше; точки становятся ближе друг к другу, объекты кажутся меньше; и это то, что дает перспективу. Это преобразование выполняется в аппаратном обеспечении и не отображается в шейдере. 

«Матрица» задала новый стандарт визуальных эффектов

В частности, тот самый bullet time, который потом стал чем-то вроде фирменной фишечки боевиков из нулевых. До этого он уже использовался в том же «Блэйде», но я что-то не припомню, чтобы сцену из «Блэйда» пытались воссоздавать в школьных коридорах и пародировали в КВН. До «Матрицы» этот приём точно не был настолько массовым.

С остальными достижениями ситуация похожая. Каждый элемент мы где-то уже видели в отдельности – киберпанк в «Джонни Мнемонике», крутые эффекты и непобедимых роботов в «Терминаторе-2», крутые кожаные костюмы в «Блэйде», а кунг-фу в гонконгских боевиках и фильмах Джона Ву. Но никто ещё не собирал это воедино и не делал так круто, как это показано в «Матрице». В год выхода фильм смотрелся как итоговая выставка достижений в спецэффектах и боевой хореографии. И всё бесшовно и невероятно стильно.

Приёмы, ставшие культовыми в «Матрице», в нулевых ещё многократно появлялись в других фильмах. Например, в тарантиновском «Убить Билла» или «Сорвиголове» с Беном Аффлеком. Мы просто должны были коллективно принять, что теперь по-настоящему ядерный экшн выглядит вот так, как нам показали. И это не единственное новшество.

День рождения Powershell

Товарищи программисты, админы и им сочувствующие, поздравляю всех нас со скромным праздником — Днем рождения Powershell.

14 ноября 2006 года, была выпущена финальная версия (Release to Web, RTW) Powershell. Эта версия была выпущена для Windows XP SP2, для Windows Vista, финальная версия Powershell была выпущена 30 января 2007 года.

Конечно, до этого были предрелизные версии (Release Candidate), был проект Monad, который являлся предшественником Powershell. Непосредственно Powershell, его финальная версия, был выпущен именно 14 ноября 2006 года.

Я с самого начала не очень позитивно воспринял появление Powershell — мне он казался просто немного расширенной версией командной строки, не дающий особых преимуществ по сравнению с последней — тогда мне вполне хватало CND, VBS, Autoit и т.д.

До определенного момента я Powershell запускал только для каких-нибудь экспериментов, не рассматривая его как инструмент для повседневной работы.

В один прекрасный момент, мне надо было решить задачу по обработке большого количества файлов — на почтовом сервере письма сохранялись в виде отдельных файлов *.eml, а общий формат был: Адрес_отправителя-ID_письма.eml. Писем было несколько сотен тысяч.

Я эту задачу решил, причем решил на CMD, VBS и Autoit. После этого, мне опять на глаза попался Powershell и я решил решить задачу на нем, в качестве упражнения. Решение нужной мне задачи занимало на VBS примерно 30 строк кода. Каково же было мое удивление, когда решение этой задачи на Powershell составило всего 3 строки!

За прошедшее время, Powershell не раз меня выручал, давая возможность просто решать задачи различной степени сложности.

После этого, я решил попристальней посмотреть в сторону Powershell и разобраться с ним получше.

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

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

Сегодня, в честь дня рождения Powershell, я решил выложить новую версию своей книги.

Поделитесь Вы, уважаемые читатели, помогал ли Вам Powershell каким-либо образом в работе?

Эффект Матрицы

Код

Module Module1
 Sub Main(ByVal args As String())
  Console.Title = "Matrix"
  Console.ForegroundColor = ConsoleColor.DarkGreen
  Console.WindowLeft = InlineAssignHelper(Console.WindowTop, 0)
  Console.WindowHeight = InlineAssignHelper(Console.BufferHeight, Console.LargestWindowHeight)
  Console.WindowWidth = InlineAssignHelper(Console.BufferWidth, Console.LargestWindowWidth)
#If readkey Then
Console.WriteLine("Hit any key to continue")
Console.ReadKey()
#End If
  Console.CursorVisible = False
  Dim width As Integer, height As Integer
  Dim y As Integer()
  Dim l As Integer()
  Initialize(width, height, y, l)
  Dim ms As Integer
  While True
   Dim t1 As DateTime = DateTime.Now
   MatrixStep(width, height, y, l)
   ms = 10 - CInt(DirectCast((DateTime.Now - t1), TimeSpan).TotalMilliseconds)
   If ms > 0 Then
    System.Threading.Thread.Sleep(ms)
   End If
   If Console.KeyAvailable Then
    If Console.ReadKey().Key = ConsoleKey.F5 Then
     Initialize(width, height, y, l)
    End If
   End If
  End While
 End Sub
 Dim thistime As Boolean = False
 Sub MatrixStep(ByVal width As Integer, ByVal height As Integer, ByVal y As Integer(), ByVal l As Integer())
  Dim x As Integer
  thistime = Not thistime
  For x = 0 To width - 1
   If x Mod 11 = 10 Then
    If Not thistime Then
     Continue For
    End If
    Console.ForegroundColor = ConsoleColor.White
   Else
    Console.ForegroundColor = ConsoleColor.DarkGreen
    Console.SetCursorPosition(x, inBoxY(CInt(y(x) - 2 - (l(x) / 40 * 2)), height))
    Console.Write("B")
    Console.ForegroundColor = ConsoleColor.Green
   End If
   Console.SetCursorPosition(x, y(x))
   Console.Write("D")
   y(x) = inBoxY(y(x) + 1, height)
   Console.SetCursorPosition(x, inBoxY(y(x) - l(x), height))
   Console.Write(" "c)
  Next
 End Sub

 Private Sub Initialize(ByRef width As Integer, ByRef height As Integer, ByRef y As Integer(), ByRef l As Integer())
  Dim h1 As Integer
  Dim h2 As Integer = CInt((InlineAssignHelper(h1, CInt((InlineAssignHelper(height, Console.WindowHeight)) / 2))) / 2)
  width = Console.WindowWidth - 1
  y = New Integer(width - 1) {}
  l = New Integer(width - 1) {}
  Dim x As Integer
  Console.Clear()
  For x = 0 To width - 1
   y(x) = m_r.(height)
   l(x) = m_r.(h2 * (If((x Mod 11 <> 10), 2, 1)), h1 * (If((x Mod 11 <> 10), 2, 1)))
  Next
 End Sub

 Dim m_r As New Random()

 Private ReadOnly Property R() As Char
  Get
   Dim t As Integer = m_r.(10)
   If t <= 2 Then
    Return CChar(("0"c & m_r.(10)))
   ElseIf t <= 4 Then
    Return CChar(("a"c & m_r.(27)))
   ElseIf t <= 6 Then
    Return CChar(("A"c & m_r.(27)))
   Else
    Return CChar(CChar(CStr((m_r.(32, 255)))))
   End If
  End Get
 End Property

 Public Function inBoxY(ByVal n As Integer, ByVal height As Integer) As Integer
  n = n Mod height
  If n < 0 Then
   Return n + height
  Else
   Return n
  End If
 End Function

 Private Function InlineAssignHelper(Of T)(ByRef target As T, ByVal value As T) As T
  target = value
  Return value
 End Function
End Module
·

Зачем нужна матрица контента

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

Выгорание или отсутствие «вдохновения»

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

Не обязательно использовать тематики только из вашей сферы бизнеса. Подумайте, как он связан с другими областями.

Плохое знание бизнеса и его тематик

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

Здесь и поможет матрица контента. Отбираем категории: онлайн-сеансы, обереги, защита от сглаза, амулеты для безопасности дома и так далее. Расписываем варианты статей: коммерческий пост, знакомство с «ведьмой», подборка, описание.

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


Небольшая подборка ключевых фраз для клиента, занимающегося эзотерикой

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector