Книги про модули

Что такое модуль? Какие бывают модули?

Хитрости » 1 Май 2011       Дмитрий       219537 просмотров

Любой код VBA должен где-то храниться. Для хранения кодов в VBA используются модули, которые хранятся в книге. Книга может содержать сколько угодно модулей. Каждый модуль в свою очередь может содержать множество процедур(макросов).

Все имеющиеся в книге модули можно посмотреть через редактор VBA (Alt+F11). Имеющиеся модули отображены в левой части редактора в проводнeике объектов(Project Explorer).
рис.

1
Сам проводник объектов может быть не отображен по умолчанию и тогда его необходимо отобразить: нажать Ctrl+R либо в меню редактора VBA-ViewProject Explorer

Модули делятся на пять основных типов:

Для того, чтобы создать новый стандартный модуль(Module), модуль класса(ClassModule) или пользовательскую форму(UserForm) надо просто в окне щелкнуть правой кнопкой мыши, выбрать пункт Insert и затем тип добавляемого объекта(ModuleClassModuleUserForm). Так же добавить модуль можно и через меню: Insert -тип модуля.
Удалить тоже просто: щелкнуть правой кнопкой мыши на нужном модуле в окне проекта и выбрать Remove. Подробнее про удаление в конце статьи этой статьи: Удаление модулей

СТАНДАРТНЫЙ МОДУЛЬ

на рис.1 Module1.
Самый распространенный тип модулей, который используется в большинстве случаев. Именно в них макрорекордер создает записываемые макросы. Все коды и процедуры в таких модулях пишутся вручную, либо копируются из других источников(другого модуля, с этого сайта и т.п.). В основном именно в стандартных модулях содержится большая часть кодов. Они предназначены для хранения основных процедур и Public переменных, которые могут быть доступны впоследствии из любого модуля. Как создать стандартный модуль: в окне проводника объектов щелкаем правой кнопкой мыши-InsertModule. При записи макрорекордером модули создаются автоматически и им автоматически присваиваются имена.
Многие коды, опубликованные в статьях на сайте необходимо размещать именно в стандартных модулях. Для этого достаточно создать новый стандартный модуль, скопировать текст кода с сайта и вставить.

МОДУЛЬ ЛИСТА

Лист1 или Sheet1 — на рис.1: Лист1(Лист1),Лист2(Лист2),Лист3(Лист3).
Для каждого листа книги имеется свой отдельный модуль. Попасть в модуль листа проще, чем в остальные модули. Для этого надо просто щелкнуть правой кнопкой мыши по ярлычку листа и выбрать из контекстного меню пункт Исходный текст(View Code)
:

Можно и более трудным путем пойти — через редактор VBA: Alt+F11 и в окне Проводника объектов(Project Explorer) дважды щелкнуть по объекту с именем листа или правая кнопка мыши на модуле листа —View code.

Размещая код в модуле листа следует помнить, что при копировании или переносе данного листа в другую книгу код так же будет скопирован, т.к. является частью листа. Это и плюс и минус одновременно.

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

Минус же заключается в некоторых нюансах обращения к ячейкам(подробнее можно ознакомиться в этой статье: Как обратиться к диапазону из VBA) и необходимости размещения ВСЕХ используемых процедур в этом листе, иначе при переносе в другие книги коды могут работать с ошибками.

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

Посмотреть их можно так: выбираете объект(на рисунке ниже список в левой части) Worksheet, а в правом списке выбираете событие(в этом списке все процедуры, доступные для выбранного листа):

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

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

  • Activate — возникает при активации самого листа(но не возникает, если произошел переход из одной книги в другую и этот лист является там активным)
  • BeforeDoubleClick — возникает при двойном клике мыши на любой ячейке листа. Важно обращать внимание на передаваемые аргументы: Target и Cancel. Target — ссылка на ячейку, в которой было произведено действие; Cancel — отвечает за отмену режима редактирования
  • BeforeRightClick — возникает при клике правой кнопкой мыши на любой ячейке листа. Важно обращать внимание на передаваемые аргументы: Target и Cancel. Target — ссылка на ячейку, в которой было произведено действие; Cancel — отвечает за отмену показа всплывающего меню
  • Calculate — возникает при пересчете функций и формул на листе
  • Change — возникает при изменении значений ячеек на листе. Важно обращать внимание на передаваемый аргумент Target. Target — ссылка на ячейку, которая была изменена. Может отличаться от активной в момент обработки ячейки
  • Deactivate — возникает при переходе с этого листа на другой лист этой же книги
  • FollowHyperlink — возникает при переходе по гиперссылке, созданной в этом листе
  • SelectionChange — возникает при изменении адреса выделенной ячейки/области. Важно обращать внимание на передаваемый аргумент Target. Target — ссылка на диапазон ячеек, которые были выделены. Совпадает с выделенными на текущий момент ячейками

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

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

Для примера вставьте приведенный ниже код в модуль любого листа:

Private Sub Worksheet_Change(ByVal Target As Range) MsgBox «Адрес измененной ячейки: » & Target.Address & _ «; Адрес активной ячейки: » & Selection.Address, vbInformation, «www.excel-vba.ru»
End Sub

Private Sub Worksheet_Change(ByVal Target As Range) MsgBox «Адрес измененной ячейки: » & Target.Address & _ «; Адрес активной ячейки: » & Selection.Address, vbInformation, «www.excel-vba.ru» End Sub

После этого запишите в ячейку A1 значение 5 и нажмите Enter. Событие Change сработает в момент завершения редактирования — т.е. в момент нажатия Enter.

При этом будет произведен переход на ячейку A2(в большинстве случаев, если настройками не задано иное) и появится сообщение, которое покажет, что изменили ячейку A1, а выделена сейчас A2. Т.е.

Target — это всегда ссылка именно на измененную ячейку независимо от того, что сейчас выделено. Данное событие(Worksheet_Change) не будет срабатывать при изменении значений ячеек с формулами. Только ручной ввод.

МОДУЛЬ КНИГИ

ЭтаКнига или ThisWorkbook — на рис.1: ЭтаКнига.
В модуль книги можно попасть только через проводник объектов(Project Explorer) редактора VBA — двойной щелчок по ЭтаКнига (ThisWorkbook) или правая кнопка мыши на модуле —View code. В модуле книги так же содержатся «встроенные» событийные процедуры. Так же как и для листа выбираем в списке объектов(вверху слева) . В правом окне выбора процедур, так же как и с модулем листа, будут все процедуры, доступные для объекта ЭтаКнига. Пример использования событийных процедур книги можно посмотреть в статье Как отследить событие(например выделение ячеек) в любой книге?
Но там применяются все те же правила — главное не забывать про аргументы, доступные из этих процедур и передаваемые им самим Excel. Например, для события Workbook_BeforeClose доступен аргумент Cancel. Это можно использовать, если не хотите, чтобы книгу закрыл пользователь, не заполнив ячейку A1. Вот пример подобного кода:

Private Sub Workbook_BeforeClose(Cancel As Boolean) If Me.Sheets(«Отчет»).Range(«A1»).Value = «» Then MsgBox «Необходимо заполнить ячейку A1 на листе 'Отчет'», vbCritical, «www.excel-vba.ru» Cancel = True 'отменяем закрытие книги End If
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean) If Me.Sheets(«Отчет»).Range(«A1»).Value = «» Then MsgBox «Необходимо заполнить ячейку A1 на листе 'Отчет'», vbCritical, «www.excel-vba.ru» Cancel = True 'отменяем закрытие книги End If End Sub

Из кода видно, что на листе «Отчет» должна быть не пустой ячейка A1(лист «Отчет» тоже должен существовать в этой книге). Но есть и еще одна вещь — какое-то Me.

Это краткое обращение к объекту модуля класса, в данном случае это равнозначно обращению ThisWorkbook.

И еще один пример кода для модуля ЭтаКнига, который запрещает сохранять исходную книгу, разрешая сохранить её только через пункт Сохранить как(SaveAs):

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If SaveAsUI = False Then 'используется простое сохранить MsgBox «Эта книга является шаблоном. Сохранять её можно только через Сохранить как», vbCritical, «www.excel-vba.ru» Cancel = True 'отменяем сохранение книги End If
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If SaveAsUI = False Then 'используется простое сохранить MsgBox «Эта книга является шаблоном. Сохранять её можно только через Сохранить как», vbCritical, «www.excel-vba.ru» Cancel = True 'отменяем сохранение книги End If End Sub

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

МОДУЛИ ФОРМ

UserForm — на рис.1 UserForm1.
Содержатся внутри и её объектов. В Пользовательских формах в основном все завязано именно на событийных процедурах самой формы и на элементах этой формы(Кнопки, ТекстБоксы, КомбоБоксы(выпадающие списки) и т.д.). Очень удобно использовать Пользовательские формы в своих приложениях для общения с пользователем. Т.к. через формы очень удобно отслеживать действия пользователя и можно запретить доступ к листам с данными, путем их скрытия. Создается форма так же как и модуль: в окне проводника объектов щелкаем правой кнопкой мыши-InsertUserForm. Примеры кодов с использованием форм можно посмотреть в статьях: Каждому пользователю свой лист/диапазон, Как оставить в ячейке только цифры или только текст?

Читайте также:  Книги про любовниц

МОДУЛЬ КЛАССА

ClassModule — на рис.1 Class1.
В большинстве случаев создается специально для отслеживания событий различных объектов. Вряд ли понадобиться начинающим изучение VBA, хотя все зависит от поставленной задачи. Но обычно начинающим изучать это кажется слишком сложным. В любом случае, перед работой с модулями классов лучше научиться хоть чуть-чуть работать с обычными модулями и самостоятельно писать процедуры. Как добавить такой модуль: в окне проводника объектов щелкаем правой кнопкой мыши-InsertClass Module. Подробнее про модули классов и работу с ними можно почитать в этой статье: Работа с модулями классов. Там описаны все основные принципы и приложен файл примера.
Действия по удалению любого из модулей одинаковы для всех типов. Для этого необходимо перейти в проект VBA нужной книги, выбрать нужный модуль, щелкнуть по нему правой кнопкой мыши и в появившемся меню выбрать Remove (Имя модуля)…(Remove Module1, Remove UserForm1, Remove Class1 и т.п.). После этого появится окно с запросом «Do you want to export (имя модуля) before removing it?». Это означает, что VBA спрашивает: хотите ли Вы сохранить копию кодов модуля перед удалением? Как правило выбирать следует Нет. Но если Вы хотите сохранить текст кодов из удаляемого модуля в отдельном файле, то соглашаетесь, нажав Да. Будет предложено выбрать папку для сохранения модуля и можно даже задать ему отдельное имя.

Иногда нужно модуль из одной книги переместить в другую. Сделать это можно несколькими способами.

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

Коды модулей листов и книги придется переносить как обычный текст: переходим в модуль (откуда хотим копировать) -копируем весь код -переходим в модуль ЭтаКнига второй книги и вставляем скопированное:

Если же надо сохранить стандартный модуль, модуль класса или модуль формы и не переносить сразу же в другую книгу, то можно экспортировать модуль. Для чего это может быть нужно? Как правило, чтобы перенести коды из дома на работу, переслать кому-то на другой ПК(пересылка файла с макросами может быть запрещена политикой безопасности компании) и т.п. Делается это просто: щелкаем на модуле правой кнопки мыши —Export file.
У экспортируемых модулей есть разные расширения, в зависимости от типа модуля. Для стандартных модулей это (Module1.bas), для модулей класса — (Class1.cls). А вот для модулей форм будет создано целых два файла: и . Их важно хранить вместе — один без другого не может быть импортирован в дальнейшем в файл. В файле хранится информация об визуальном отображении формы и её элементах, если можно так сказать. В файле хранятся непосредственно тексты кодов для формы и служебная информация(имя и размеры формы, некоторые глобальные директивы и ссылка на файл .frx). Поэтому не рекомендуется без соответствующих навыков переименовывать эти два файла в надежде, что потом все заработает.

Для переноса экспортированного модуля в другую книгу надо просто в проводнике объектов выделить нужный проект правой кнопкой мыши —Import module -выбрать в диалоговом окне нужный модуль. Экспортировать можно любой модуль, а вот импортировать — нет. Модули листов и книг хоть и экспортируются в отдельные файлы(кстати, с расширением .cls), но импортировать их не получится в том виде, как это предполагается. Они будут импортированы как новые модули класса и только. Поэтому для переноса кодов из модулей листов и книг придется использовать все равно копирование и вставку непосредственно кодов.

И в довершение — можно переносить модули автоматически, кодами VBA: Как добавить код процедуры программно, скопировать модуль

Также см.:
Копирование модулей и форм из одной книги в другую
Что такое макрос и где его искать?
Как удалить макросы в книге?

Статья помогла? Поделись ссылкой с друзьями!

Источник: https://www.excel-vba.ru/chto-umeet-excel/chto-takoe-modul-kakie-byvayut-moduli/

Часто в вебинарах и в книге вы упоминаете модули статей

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

Самодостаточность

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

Как и у статьи, у модуля должно быть собственное введение, основная часть и заключение. Обычно во введении описывают содержание модуля, потом в основной части дают подробности, объяснения и примеры, в заключении — выводы, советы и тонкости.

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

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

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

  • Искать заранее
  • Введение. Обзор метода: планировать отпуск за полгода и брать билеты первыми.
  • Основная часть: объясняем основную мысль. Насколько рано можно бронировать билеты в разных авиакомпаниях? На что смотреть, если не уверены в датах.
  • Основная часть: пример. Рассказываем о семейной паре, у которых отпуск распланирован на год вперед.
  • Заключение: трудности. Что если вы фрилансер с непредсказуемым графиком? Что если на работе завал, и вас не отпускают? Как планировать надолго в России, где курс валют непредсказуемый?

Обратите внимание на трёхчастную структуру модуля: в начале даём обзор, потом объясняем подробнее. После объяснения — обязательно приводим пример, потому что статья без примеров — это сопли на воде.

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

Благодаря такой структуре модуль становится крепким и законченным по смыслу.

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

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

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

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

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

Поэтому мы ее добавим в модуль «Искать заранее», а не в модуль о пересадках:

  • Искать заранее
  • Введение. Обзор метода: планировать отпуск за полгода и брать билеты первыми.
  • Основная часть: объясняем основную мысль. Насколько рано можно бронировать билеты в разных авиакомпаниях? На что смотреть, если не уверены в датах.Что делать, если на нужные даты билетов нет?
  • Основная часть: пример. Рассказываем о семейной паре, у которых отпуск распланирован на год вперед.
  • Заключение: трудности. Что если вы фрилансер с непредсказуемым графиком? Что если на работе завал, и вас не отпускают? Как планировать надолго в России, где курс валют непредсказуемый?

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

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

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

Однотипность

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

Вернёмся к статье об авиабилетах. У нас три модуля: «Искать заранее», «Выбирать с пересадками» и «Ловить промоакции». Для модуля «Искать заранее» мы использовали такую структуру: «Обзор, объяснение, пример, трудности». Такую же структуру можно использовать для других модулей. На примере модуля о прересадках:

  • Выбирать с пересадками
  • Введение. Обзор метода: чем сложнее пересадки, тем дешевле.
  • Основная часть: объясняем основную мысль. Какие пересадки лучше выбирать? Какие не стоит? В каких ситуациях это может быть рискованно?
  • Основная часть: пример. Рассказываем о семейной паре, которая летает через Ригу и заходит в любимое кафе между самолётами.
  • Заключение: трудности. Что с багажом? Что с визами? Что с транспортом возле аэропорта? А если не успел на пересадку?

Та же структура, другое наполнение.

Для наглядности можно даже усилить типовую структуру подзаголовками «в подбор»:

  • Выбирать с пересадками
  • Обзор метода: чем сложнее пересадки, тем дешевле.
  • Как это делать. Объясняем основную мысль. Какие пересадки лучше выбирать? Какие не стоит? В каких ситуациях это может быть рискованно?
  • Например. Рассказываем о семейной паре, которая летает через Ригу и заходит в любимое кафе между самолётами.
  • Возможные проблемы. Что с багажом? Что с визами? Что с транспортом возле аэропорта? А если не успел на пересадку?
Читайте также:  Книги про тора

Такие маркеры внутри каждого модуля статьи покажут читателю, что статья упорядоченная и простая для восприятия.

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

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

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

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

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

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

И дальше мы можем решить: отрезать его или оставить.

Обратите внимание на устройство этой статьи: она начинается с обзора тем, дальше два модуля. Каждый модуль — обзор, простой пример, усложнение примера, заключение. Осталось вывод ко всей статье. Вот он:

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

Источник: https://bureau.ru/bb/soviet/20160918/

Книга: Модульные системы в графическом дизайне

6 февраля 2017

Автор Йозеф Мюллер-Брокманн (1914–1996) — графический дизайнер и преподаватель. Его работы являются образцом простоты в дизайне и тонкого использования типографики, формы, цвета. Они оказали влияние на многих современных дизайнеров.

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

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

На каждую тему представлены примеры макетов. Так как по размерам книга чуть больше листа А4, иллюстрации большие и подробные.

Примеры страниц с использованием модульной сетки

Дизайнеру на заметку

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

Про сетки

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

Когда выполнял тестовое задание для Туту.ру, то попался в эту ловушку. Перед тем как определиться с элементами на странице, решил, что буду использовать сетку на 4 колонки. Только после этого начал добавлять и выстраивать элементы относительно колонок.

В результате получилась скучная страница с большими отступами между элементами:

Сетка для макета главной страницы Туту.ру

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

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

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

Эскизы макетов с использованием модульной сетки в 32 клетки

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

Интересно, что модульную систему можно использовать при проектировании дизайна трёхмерных пространств: обозначить расположение мебели, светильников и вывесок в пространстве комнате.

Например, модульную систему используют при проектировании выставочных стендов.

Модульная структура трёхмерного пространства

Про типографику

Размер шрифта правильно называть кегль шрифта. Он соответствует числу пунктов, или как я понимаю, числу пикселей.

Правильно подобранный кегль шрифта делает текст удобным для чтения. Слишком маленький, как и слишком большой шрифт, читать утомительно. Для комфортного чтения длинного текста, в строке должно быть примерно 7-10 слов.

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

Шрифт Таймс Нью Роман разработан в 1932 году для газеты «Таймс»

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

Интерлиньяж — это расстояние между строками. К длине строки и выбору расстояния между строками относиться надо внимательно. Они влияют на удобочитаемость текста. Слишком длинная строка или слишком узкое пространство между строками ухудшат восприятие текста.

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

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

Примеры текста, набранные с разным кеглем шрифта и инерлиньяжем

Σ

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

Если коротко, то дизайнеру важно помнить:

  • Модульная система — это вспомогательный инструмент для придания макету логичности и структуры.
  • Типографика — важная часть дизайна, в которой должен разбираться дизайнер.

°°°

Книгу хорошо дополняет интерактивный учебник от бюро Горбунова «Типографика и вёрстка».

Источник: https://bizikov.ru/books/modulnye-sistemy/

Книги по Ардуино

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

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

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

Скачать книги по ардуино на русском языке

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

Изучаем Arduino. Джереми Блум

Данная книга описывает аспекты и принципы проектирования устройств с помощью Arduino. Рассказывает об аппаратной и программной части Ардуино. В этой книге объясняются принципы программирования в среде Arduino IDE.

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

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

Джереми Блум Изучаем Arduino- инструменты и методы технического волшебства (2015)

Проекты с использованием контроллера Arduino. Петин В.А

Проекты с использованием контроллера Arduino

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

Проекты с использованием контроллера Arduino. Петин В.А.

Программируем Arduino. Саймон Монк

Программируем Arduino. Саймон Монк

Данное издание посвящено программированию микроконтроллеров на базе Arduino. В книге рассмотрены примеры скетчей и принципы написания своих прошивок.

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

Страница программирование Ардуино поможет разобраться и запомнить основные функции и конструкции языка программирования Arduino.

Программируем Arduino. Саймон Монк

Arduino и Raspberry Pi в проектах Internet of Things. Виктор Петин

>Arduino и Raspberry Pi в проектах Internet of Things

Описание: Рассмотрено создание простых устройств в рамках концепции Интернета вещей (IoT, Internet of Things) на базе популярной платформы Arduino и микрокомпьютера Raspberry Pi. Показана установка и настройка среды разработки приложений Arduino IDE, а также среда макетирования Frizing.

Описаны технические возможности, особенности подключения и взаимодействия различных датчиков и исполнительных устройств. Показана организация доступа разрабатываемых проектов к сети Интернет, отправка и получение ими данных с использованием популярных облачных IoT сервисов: Narodmon, ThingSpeak, Xively, Weaved, Blynk, Wyliodrin и др.

Читайте также:  Книги про предательство

Уделено внимание обмену данными с помощью платы GPRS/GSM Shield. Рассмотрен проект создания собственного сервера для сбора по сети данных с различных устройств на платформе Arduino. Показано как использовать фреймворк WebIOPi для работы с Raspberry Pi. Приведены примеры использования Wi-Fi-модуля ESP8266 в проектах “Умный дом”.

На сайте издательства размещен архив с исходными кодами программ и библиотек.

— Установка и настройка среды разработки приложений Arduino IDE и среды макетирования Frizing — Датчики и исполнительные устройста для Arduino и Raspberry Pi — Отправка и получение данных из IoT сервисов Narodmon, ThingSpeak, Xively, Weaved, Blynk, Wyliodrin — Создание Web-сервера для сбора данных с Android-устройств — Обмен данными с помощью платы GPRS/GSM Shield — Фраймфорк WebIOPi для работы с Raspberry Pi

— WiFi-модуль ESP8266 в проектах “Умный дом”

Arduino и Raspberry Pi в проектах интернета вещей

Практическая энциклопедия Arduino

Практическая энциклопедия Arduino

В книге обобщаются данные по основным компонентам конструкций на основе платформы Arduino, которую представляет самая массовая на сегодняшний день версия ArduinoUNO или аналогичные ей многочисленные клоны. Книга представляет собой набор из 33 глав-экспериментов. В каждом эксперименте рассмотрена работа платы Arduino c определенным электронным компонентом или модулем, начиная с самых простых и заканчивая сложными, представляющими собой самостоятельные специализированные устройства. В каждой главе представлен список деталей, необходимых для практического проведения эксперимента. Для каждого эксперимента приведена визуальная схема соединения деталей в формате интегрированной среды разработки Fritzing. Она дает наглядное и точное представление — как должна выглядеть собранная схема. Далее даются теоретические сведения об используемом компоненте или модуле. Каждая глава содержит код скетча (программы) на встроенном языке Arduino с комментариями.

Практическая энциклопедия ардуино

Быстрый старт. Первые шаги по освоению Arduino

Быстрый старт Arduino

Стартовый набор-конструктор c платой Arduino — Ваш пропуск в мир программирования, конструирования и электронного творчества. Эта брошюра содержит всю информацию для ознакомления с платой Arduino, а также 14 практических экспериментов с применением различных электронных компонентов и модулей.

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

Быстрый старт. Первые шаги по освоению Arduino

Источник: https://all-arduino.ru/knigi-po-arduino/

Модули ядра Linux

1. Предисловие от автора

Введение

Кому адресована эта книга

Структура книги

Соглашения принятые в тексте

Исходный код и замеченные опечатки

Замечания о версии ядра

Источники информации

2. Беглый взгляд на программирование модуля

Наш первый модуль ядра

Сборка модуля

Загрузка и исполнение

Структура модуля

Вывод диагностики модуля

Уровни диагностики в /proc

Основные ошибки модуля

Обсуждение итогов раздела 2

3. Архитектура и вокруг…

Ядро: монолитное и микроядро

Траектория системного вызова

Библиотечный и системный вызов из процесса

Возможен ли системный вызов из модуля?

Интерфейсы модуля

Взаимодействие модуля с ядром

Коды ошибок

Взаимодействие модуля с уровнем пользователя

Загрузка модулей

Параметры загрузки модуля

Подсчёт ссылок использования

Обсуждение итогов раздела 3

4. Окружение и инструменты

Основные команды

Системные файлы

Подсистема X11, терминал и текстовая консоль

Компилятор GCC

Ассемблер в Linux

Нотация AT&T

Инлайновый ассемблер GCC

Пример использования ассемблерного кода

О сборке модулей детальнее

Параметры компиляции

Как собрать одновременно несколько модулей?

Как собрать модуль и использующие программы к нему?

Пользовательские библиотеки

Как собрать модуль из нескольких объектных файлов?

Рекурсивная сборка

Инсталляция модуля

Нужно ли перекомпилировать ядро?

Обсуждение

5. Внешние интерфейсы модуля

Драйверы: интерфейс устройства

Примеры реализации

Управляющие операции устройства

Множественное открытие устройства

Счётчик ссылок использования модуля

Неблокирующий ввод-вывод и мультиплексирование

Блочные устройства

Интерфейс /proc

Интерфейс /sys

Сеть

Драйверы: сетевой интерфейс

Путь пакета сквозь стек протоколов

Протокол сетевого уровня

Протокол транспортного уровня

Статистики

6. Внутренние механизмы ядра

Механизмы управление памятью

Динамическое выделение участка

Распределители памяти

Слабовый распределитель

Страничное выделение

Выделение больших буферов

Динамические структуры и управление памятью

Циклический двусвязный список

Модуль использующий динамические структуры

Сложно структурированные данные

Обсуждение

Время: измерение и задержки

Информация о времени в ядре

Источник прерываний системного таймера

Дополнительные источники информации о времени

Три класса задач во временной области.

Измерения временных интервалов

Абсолютное время

Временные задержки

Таймеры ядра

Таймеры высокого разрешения

Часы реального времени (RTC)

Время и диспетчирование в ядре

Параллелизм и синхронизация

Потоки ядра

Синхронизации

Критические секции кода и защищаемые области данных

Механизмы синхронизации

Условные переменные и ожидание завершения

Атомарные переменные и операции

Битовые атомарные операции

Арифметические атомарные операции

Локальные переменные процессора

Предыдущая модель

Новая модель

Блокировки

Семафоры (мьютексы)

Спин-блокировки

Блокировки чтения-записи

Сериальные (последовательные) блокировки

Мьютексы реального времени

Инверсия и наследование приоритетов

Множественное блокирование

Предписания порядка выполнения

Обработка прерываний

Общая модель обработки прерывания

Регистрация обработчика прерывания

Отображение прерываний в /proc

Обработчик прерываний, верхняя половина

Управление линиями прерывания

Пример обработчика прерываний

Отложенная обработка, нижняя половина

Отложенные прерывания (softirq)

Тасклеты

Демон ksoftirqd

Очереди отложенных действий (workqueue)

Сравнение и примеры

Обсуждение и вопросы

7. Обслуживание периферийных устройств

Устройства на шине PCI

Подключение к линии прерывания

Отображение памяти

DMA

Устройства USB

8. Более экзотические возможности

Запуск процессов из ядра

Сигналы

Операции I/O пространства пользователя

Модификация системных вызовов

9. Отладка в ядре

Отладочная печать

Интерактивные отладчики

Отладка в виртуальной машине

Отдельные отладочные приёмы и трюки

Модуль исполняемый как разовая задача

Тестирующий модуль

Интерфейсы пространства пользователя к модулю

Комплементарный отладочный модуль

Некоторые мелкие советы в завершение

Чаще перезагружайте систему!

Используйте естественные POSIX тестеры

Тестируйте чтение сериями

10. Заключение

Приложения

Приложение А : сборка и установка ядра

Выбор ядра

Конфигурация

Компиляция

Установка

Обсуждение

Приложение Б: Краткая справка по утилите make

Приложение В: Пример — открытые VoIP PBX: Asterisk, FreeSwitch, и другие

Интерфейс устройств zaptel/DAHDI

Приложение Г: Тесты распределителя памяти

Источники информации

Архив примеров

Книга в формате OpenDocument (ODT, 346 599 байт)

Книга в формате PDF (1 519 449 байт)

Обсуждение книги на форуме нашего сайта

Обсуждение книги на форуме Linux.org.ru

Источник: http://rus-linux.net/MyLDP/BOOKS/Moduli-yadra-Linux/kern-mod-index.html

Книжки-викторины с электронным модулем

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

Каждая книга содержит 825 вопросов на разные темы. А кричащая надпись на обложке «1650 ответов и вопросов» своего рода маркетинговый ход, а также свидетельство того, что издатели умеют умножать на 2.Действительно, на каждый вопрос есть правильный ответ, вот и получаем, что на 825 вопросов дано 825 ответов. Далее складываем или умножаем, ну вы поняли.

Обложками полюбовались, давайте заглянем внутрь.

Насколько мне известно, первой увидела свет книга «Кто самый умный?».

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

А вот так выглядят развороты. Вопрос, четыре варианта ответа на каждый, яркие смешные картинки.

Вопросы есть смешные, есть интересные и познавательные.

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

Книга «Маленький гений». Название опять маркетинговое, но содержание интересное.

Немного естествознания, природоведения и зоологии.

Несколько разворотов.

В конце каждой книги приведены правила игры и правила обращения с электронным модулем.

Вкратце они такие: включаем электронный блок переключателем на обратной стороне книги. Выбираем количество игроков (на электронной клавиатуре нажимаем «Гений 1″ или «Гений 2″).

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

Надписи на дисплее около отвечающего мигают, пока какой-нибудь ответ не будет дан.

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

Еще одна книга, «Маленькие знатоки».

Постраничное содержание в вопросах.

Несколько разворотов. Красиво выполнено, ничего не скажешь.

Самая первая викторина, которая появилась у нас, детям очень понравилась. Играли взахлеб, соревновались, хохотали над смешными простыми вопросами. Сначала сын (10 лет) все время побеждал, потом и дочка (7 лет) уже не отставала от него.

А потом захотели поиграть по одному, стали делить книгу… В общем, после этого у нас появились еще две электронные викторины.

Теперь по поводу возрастных рекомендаций. Вопросы в книге достаточно простые. Многие под силу ребенку уже лет с трех, естественно, при этом вопросы ему читает взрослый. А некоторые загадки способны поставить в тупик и взрослого (по крайней мере, выявить пробелы в знаниях). Я лично только из этой викторины узнала, что ниндзя, оказывается, занимались шпионажем.

Младшая наша тоже любит книги-викторины. Перелистывает, рассматривает картинки и забавляется с электронным модулем, издающим разные интересные звуки.

Через интернет книги-викторины можно приобрести в небезызвестном вам My-shop («Кто самый умный«, «Маленький гений«, «Маленькие знатоки«).

Источник: http://igrudom.ru/knigi-viktoriny-s-elektronnym-modulem/

Ссылка на основную публикацию