MsgBox — оператор VBA для вывода сообщений пользователю процедуры
Ранее мы уже узнали, в чем разница между макросами и процедурами, кроме того, попробовали самостоятельно записать простенький макрос. Теперь попробуем написать текст процедуры, позволяющей вывести текстовое сообщение. Для этого откроем приложение Word либо Excel, создадим новый документ или рабочую книгу и нажмем сочетание клавиш Alt+F11 для активизации редактора Visual Basic. Далее в окне Project Explorer выделим проект с именем созданного документа/рабочей книги и добавим в него новый модуль через меню Insert/Module. Редактор VB добавляет в проект новый модуль и открывает для него Code Window – окно, в котором пишется программный код процедуры. Исходный код новой процедуры VBA можно ввести в любом месте модуля (номера строк писать не нужно). Напишем классическую программу, выводящую диалоговое окно с сообщением «Hello, World!». Состоять она будет из трех строк.
Первая строка любой процедуры должна начинаться с ключевого слова Sub (сокращение от Subprogramm), за которым через пробел следует имя процедуры и далее пара пустых, круглых скобок, наличие которых обязательно.
Вторая строка процедуры HelloWorld образует тело процедуры и состоит из единственного оператора, выполняющего полезную работу. Тело процедуры может состоять как из одного, так и из многих операторов, а может и не состоять ни из одного оператора. Оператор MsgBox выводит диалоговое окно с текстовым сообщением «Hello, World!» для пользователя процедуры.
Третья и последняя строка вышеприведенного листинга завершает процедуру и состоит всего из двух слов – End Sub, чем отмечает конец программы. При выполнении этой инструкции никаких видимых действий не происходит, но при этом высвобождается память, временно использованная при выполнении процедуры.
Различные сообщения либо любая другая информация, которую процедура выводит на экран, отправляет на принтер либо записывает в файл, называется выходом. Оператор MSgBox – это простейшая форма экранного выхода, используемая в процедурах VBA.
Используя аргументы для оператора MsgBox можно изменить вид диалогового окна.
Остается выполнить написанный исходный код и посмотреть что получилось. Переключаемся в окно приложения (Word, Excel), нажимаем сочетание клавиш Alt+F8, выбираем в открывшемся окне из предложенного списка строку с именем процедуры «HelloWorld» и нажимаем кнопку «Выполнить».
Как писать всплывающие всплывающие окна Макросы в Word 2016 — манекены
Самый простой тип программирования в Word 2016 или любой другой программе — это код, который выплескивает простое сообщение на экране. На самом деле, большинство начинающих программных книг начинаются с примера программы для отображения текста Hello, World! Макросы Word ничем не отличаются.
Следующий макрос message_popup1 отображает диалоговое окно с одной строкой текста и кнопкой OK, как показано на рисунке:
‘Отобразить всплывающее сообщение
MsgBox «Макрос этого слова требует вашего внимания», vbOKOnly: «Привет!»
Простой макрос всплывающего сообщения.
Первым аргументом команды MsgBox является текст, отображаемый в диалоговом окне. Второй аргумент vbOKOnly направляет Word для отображения только кнопки OK. Последний аргумент: «Эй, там! «- это заголовок диалогового окна, как показано здесь.
Основы программирования в Microsoft Word. Работа с макросами
В этом уроке мы разберем среду для редактирования макросов, изучим некоторые базовые команды и научимся запускать макросы с помощью горячих клавиш.
Основное меню для работы с макросами расположено в «Вид – Макросы».

Как записывать макрос мы разбирать не будем, потому что это слишком просто и описано уже миллион раз. Вместо этого мы будем учиться писать макросы самостоятельно.
Макросы в MS Word пишутся на упрощенной реализации языка Visual Basic – VBA
или сисярпе. В данном уроке мы написание макросов на сисярпе разбирать не будем – я этого языка попросту не знаю, т. к. не питаю особенно теплых чувств к разработкам Microsoft.
Для данного урока я написал следующие макросы, помогающие исключить из работы всплывающие окна с последующим выбором из списков (что отнимает уйму времени):
1. Для вставки нумерации рисунков и таблиц (бывает полезно, когда приходится оживлять чужой документ, набранный на печатной машинке производства Microsoft);
2. Для вставки подписей к рисункам и таблицам вида «Рисунок 1 – » и «Таблица 1 – »;
3. Для вставки ссылок на нумерацию рисунков и таблиц вида «°Рисунок 1», «°Таблица 1», где перечеркнутый текст имеет тип «hidden», то есть мы автоматизируем то, что делали вручную в статье «Учимся работать в Microsoft Word правильно. Работа с рисунками».
Велик соблазн хранить все макросы в отдельном шаблоне global_macros.dotm, как это описано здесь. Но, как выяснилось, работает это только в MS Office for MAC.
Под Windows, после переноса файла global_macros.dotm в папку STARTUP (C:\Documents and Settings\<



Настроек, подобных «Личные параметры – Расположения файлов» в Microsoft Word 2013 for Windows я не обнаружил (возможно, это уже реализовано в MS Word 2016 или 365). Поэтому, в качестве более универсального решения, я рекомендую добавлять макросы в базовый шаблон Normal.dotm с помощью редактора Microsoft Visual Basic for Applications, который открывается из MS Word с помощью комбинации клавиш «Alt + F11».
Из-за проблем с кодировкой копировать код с русскими буквами нужно только при включенной русской раскладке.
Более хирургические варианты решения этой проблемы описаны тут.
Итак, с помощью контекстного меню «Insert – Module» к шаблону «Normal» добавляем новый модуль, в который мы будем копировать скрипт.





Этот эффект лично у меня проявился не сразу (через несколько дней после начала работы с макросами, изначально все назначенные горячие клавиши работали как надо), но он исчез сразу после того, как я переименовал все процедуры.
Теперь настроим горячие клавиши для запуска макросов.
Для этого переходим в «Файл – Параметры – Настроить ленту – Сочетания клавиш: Настройка. »



В данном примере мы теперь можем добавить подпись к таблице комбинацией клавиш «Ctrl + Shift +ю».
Теперь разберем три из шести написанных макросов для рисунков (макросы для таблиц абсолютно аналогичны).
В принципе, программирование на бейсике особо ничем не отличается от программирования на остальных языках. Современный бейсик похож на Python и Ruby тем, что в нем используются отступы. Комментарии (неисполняемые строки) начинаются с одинарной кавычки.
Как я уже упоминал, процедура в VBA начинается со слова Sub, и заканчивается End Sub.
Переменная объявляется с помощью команды Dim, значение переменной устанавливается с помощью команды Set.
Пожалуй, это все, что нам необходимо знать для того, чтобы начать писать простейшие скрипты.
Писать скрипты можно непосредственно в редакторе Microsoft Visual Basic for Applications (он «на лету» исполняет скрипт и показывает ошибки), но мне для демонстрации проще делать это в текстовом редакторе Notepad++.

Опишем скрипт InsertImageSequence.bas (вставить номер рисунка).
В целом для написания собственных скриптов вам понадобится научиться работать с полями и текстом.
Логика написания скрипта такая:
1. Нам нужно добавить поле, которое выводит номер последовательности. Посмотреть вид этого поля можно в контекстном меню «Коды / значения полей», кликнув по полю, полученному традиционным способом, правой кнопкой мыши;

2. Далее необходимо указать место, в которое мы хотим вставить текст / поле. В данном случае это текущее местонахождение выделения / курсора. Все основные операции с текстом в VBA замечательно описал Биллиг Владимир Арнольдович, и для понимания работы с объектами Range и Selection, которые мы будем использовать, я рекомендую прочитать его статью;
3. Необходимо в выделение добавить поле с присвоенным ему типом (в данном случае SEQ). Для этого мы будем использовать метод Add, описанный в документации Microsoft. Как обозначаются типы полей в скриптах описано здесь. В данном случае нам необходимо узнать, как обозначается в скрипте тип поля SEQ (wdFieldSequence), чтобы указать его в качестве параметра Type метода Add. Также необходимо указать параметры, которые мы посмотрели в пункте 1.
В итоге у нас получается что-то типа этого


Элементарно. Здесь просто добавились некоторые методы из статьи Биллига для добавления текста до и после поля.
Наконец, рассмотрим скрипт InsertRefToImage.bas (добавить ссылку на изображение).

Что использовалось для написания последнего скрипта:
Все эти замечательные рецепты ищутся в обыкновенном google по запросу, начинающемуся на «word macro» или «word vba».
В следующей статье мы рассмотрим основные правила типографики и работу со списком литературы в MS Word.
давным-давно работал в мособлсуде в гражданской канцелярии. По четным дням слушались наши дела и надо было готовить их к слушанью и в том числе печатать списки для граждан — в каком зале что слушаться будет.
Так вот, было 5 списков, которые печатали я и 4 девчонки, они состояли из 50-90 табличных строк, в которых на 5 составов поделены 53 районных суда, около 300 фамилий судей, ФИО истца и ответчика и краткая суть заявления в одно предложение.
Этих сутей (типа о возмещении ущерба, разделе наследства, восстановлении на работе и т.д) десятка три. И в среднем по 2-15 дел из каждого города в списке.
Так вот, я заебался каждый раз одно и то же печатать и внес все фамилии судей своего состава, все свои города и все типы заявлений в автозамену. Щёл пишешь — превращается в Щёлково, Троф — в судью Трофимову, преп — о нечинении препятствий в пользовании. и так далее. Заодно то же самое я сделал для девок с их городами и судьями. Печатанье списка у меня ускорилось раз в 5, если не больше.
Так что ты думаешь? Не смотря на мои убеждения и личный пример ни одна овца не пользовалась этим, тупо продолжая десятки раз писать одно и тоже полностью.
А ты говоришь — макросы
кто бы сделал пост про макросы в либре офис? я либо тупой либо нихуя не могу понять их систему. тупизм какой то
Для полноценного урока, не хватает примера работы скрипта конечно, фоточку там, или гифку в идеале. А то люди и не поймут, зачем им это нужно)
1. На шарпе не пишут скрипты, только надстройки VSTO.
2. Через SET устанавливаются не значение, а ссылки на обьекты.
3. На счет невозможности редактирования кода через подключение надстройки.
А зачем вам этот функционал в работе с готовым скриптом?
п.с. Хотя решение и вправду спорное, тот же эксель позволяет это свободно делать.
4. Зачем вам 5-6 разных процедур, а не одна большая, которая будет делать все за 1 клик?
5. Не думали ввести публичную переменную, которая будет хранить номера рисунков. Дабы не вводить их постоянно при постепенном редактировании файла?
Ровно год назад я мечтал стать программистом.
Я даже не представлял какие существуют направления в IT. Бэкенд, фронтенд, датасаенс — эти слова казались каким-то набором букв, значений этих слов я не знал.
10 марта 2022 года мне в личку постучался читатель с вопросом никак не связанным с IT. В конце сообщения он оставил подпись:
С уважением
<censored> Дмитрий.
<censored> Studio — Lead Producer
Я ответил на его вопрос и решил задать встречный. У меня в кругу знакомых и друзей не так много людей из IT-сферы, поэтому я решил задать все интересующие меня вопросы моему читателю. В ответ я получил сообщений 20 с информацией о том, какие направления существуют, кто чем занимается, где возможна удаленка и кому сколько платят. И ещё десяток ссылок на полезные статьи/книги/ресурсы.
Год назад я был далек от разработки настолько, насколько я далек сегодня от космонавтики. То есть полный 0. Но, как оказалось, довольно перспективный ноль, ведь я прошел путь от нуля до первой работы разработчиком за 7,5 месяцев. И это реальное достижение, которым я горжусь. На своем пути я встретил замечательных людей, которые уже давно в разработке и которые не отказались мне помочь.
Прошел ровно год с того момента, как я задал вопрос «а как войти в IT». Сейчас я работаю Java-разработчиком, успешно прошел испытательной срок (тут подробнее об этом), получаю настоящее удовольствие от рабочего процесса, от условий работы и от общения с коллегами.
Все труды, жертвы, лишения стоили того результата, которого я добился. И мне было плевать на мнение тех, кто считал, что это невозможно, что уже поздно, не тот возраст, что сейчас джунам нереально найти работу, особенно после 24.02.2022. У меня была цель, у меня было желание, были ресурсы и кем я был, если бы отказался от борьбы просто из-за чужого мнения.
А вот то самое сообщение, которое стало судьбоносным для меня:

Мечтайте, действуйте, добивайтесь и не слушайте тех, кто в вас не верит! Всем мир)
Хороший Ютуб-канал по программированию Python для уровня посерьезнее, чем у моей аудитории
Мне многие пишут про то, что я в материалах о программировании слишком простые вещи разбираю и надо бы что посложнее да поинтереснее. Но они не правы. Дело в том, что они не моя аудитория. Для такой аудитории, что уже получше да посильнее разбирается в программировании и кому хочется глубже в Python двигаться, есть другие авторы. Вот недавно наткнулся, очень много полезных материалов про тонкости, фишечки и т.д. Всем, кому актуально, подписываться на него на Ютубе и смотреть.
Ответ Lialin в «Попал»
Мамик сменила работу и ей потребовалось быстро освоитьWord (госструктура, для документов). А она вообще ни сном ни духом даже как комп включать, но там ее обещали научить (работать некому).
Живем давно порознь — звонит вся на нервах: я ничего не понимаю! Мне коллега обещала помогать на первых порах, показыватьчто и как делать, но ей почти некогда, а я не знаю как и на что нажимать чтобы точку поставить, запятую и вообще.
Я ей тут же: "Мам, спокойно, не переживай Подожди 15 мин, сходи перекури."
Набросала прямо с телефона в редакторе памятки и послала ей.
Говорит, это сразу избавило ее от большей части проблем — остались еще с оформлением текста, но это я ей частично лично показала, а частично ей на работе объяснили.
Выложу тут, вдруг кому-то в такой же ситуации пригодится — можно быстро переслать (Извиняюсь за прыгающий шрифт и т.п — делалось на скорую руку).











Ее подруга как-то жаловалась ей, что просила сына помочь ей разобраться в чем-то на компьютере, но он от нее отмахнулся и радовалась, что у нее все по-другому.
Хотя она сама очень брыкалась поначалу от моих попыток приучить ее к смартфону вместо кнопочного (не хочу чувствовать себя дурой — смартфон очень сложный), и интернет ей не нужен был категорически.
Сейчас смотрит Ютуб и рецептч в интернете, шлет мне какие-то роликт, постоянно на связи в мессенджерах и в Одноклассниках.
Вполне довольна. Главное психологически перешагнуть этот барьер первоначального неприятия из-за страха не понять.
Теперь пытаюсь провернуть этот фокус с отцом, но с ним сложнее. Смартфон использует, но чисто как звонилку. Показала ему Гугл Плей, где он нашел свои любимые нарды и покер. А сколько восторга было от того, что можно в приложении найти почти ВСЮ музыку, которую он только захочет! 🙂
Технологии облегчают и раскрашивают жизнь, давайте понемножку открывать мир прогресса для старшего поколения 🙂

Все бы тебе тараканов гонять по монитору, сын. #1
Сижу я значит как-то в аэропорту Внуково, рейс отложили, и дай думаю скачаю себе на телефон игру такую, чтоб рпг, да с автобоями, и чтобы не пять чибриков было как во всех идлах, а 1 и с системой прокачки. Искал, искал и не нашел ничего внятного, ну вот совсем. Плюнул, ладно думаю, демоны, сам сделаю!
И ведь сделал бы. Вот только был ма-а-аленький нюанс, игр то я никогда ни делал, рисовать не умею, а знакомство с программированием ограничено 2-мя уроками Python на рандомном сайте, и десятком решеных задачек на Сodewars.
Чтож, решено. Открываю значит я урок 3, и что вы думаете? Урок 3: Пишем текстовый квест!
Ну вот же оно. Это ли не знак?
Так input(), print(), ну понятно погнали.

Значит что имеем:

Система боя с критами, блоком, скоростью атаки, уворотом, промахом. — чек
Генерация этажей/мобов — чек
Пассивные способности — чек
Активные способности — чек
Характеристики — чек.
Сохранение/Загрузка — чек
Генерация итемов разной рарности с модами — чек.
Магазин — чек
Состояния (горение, переохлаждение, шок, яд) — чек



Сильно древние ребята создали когда-то башню испытаний, чтобы тренировать и собственно испытывать воинов. Выйти из нее можно было только пройдя все этажи. Всем понравилось, ведь силы полученные в башне, оставались с тобой навсегда. Но с каждым поколением, из башни возвращалось все меньше людей. Стало понятно что башня становится сильней с каждым погибшим в ней воином, она забирает их силу. В какой-то момент люди из башни совсем перестали возвращаться. А последнюю тысячу лет ее и вовсе использовали только чтобы убирать неугодных, и казнить преступников, просто отправив в башню, очень удобно. Вот и от вас решили избавиться.
Играние в игру преимущественно осуществляется посредством нажатия на кнопки принятия решений (зеленая и красная), в зависимости от принятого решения игрок получает очки «безумия» либо очки «хладнокровия». По достижению 20 очков получает статус «Берсерк» либо «Манчкин» соответственно. Каждый статус дает свои плюшки сам по себе (к примеру у Берсерка растет урон при падении хп, а Манчкин с некоторой вероятностью находит дополнительно золото на привалах), количество и качество которых растет с увеличением очков безумия либо хладнокровия. Так же пассивки получают разные бонусы в зависимости от вашего статуса и количества очков.
Бои проходят на автомате, единственное влияние это активные заклинания. У заклинаний имеется ощутимый кулдаун, который в половину величины распространяется на другие заклинания, к примеру «Восстановление» имеет кулдаун 16сек, и соответственно при касте уводит в кд другие скиллы на 8сек . Поэтому тут надо четко прикидывать что и когда кастовать. Алсо заклинания вместо маны жрут ресурс «осколки душ» который также является деньгами.
Все остальное это поиск билда и прокачка характеристик, выбор и прокачка пассивок, выбор активок, и подбор итемов под билд.
Чего не имеем:
Графониум — не чек. Непонятно будет ли. В целом идеи как это реализовать на киви есть, нет особо времени. Возможно займусь после того как закрою остальные моменты. В принципе все сообщения в окне боя: это вызовы опр. функции генерирующей сообщения, при желании можно в нее передавать запрашиваемую анимацию/спрайт.
Интерфейс — не чек.(30%)
Контент — не чек. (пока готовы 10 этажей с боссом)
Сюжетка — пока только в голове(не чек)
Что в планах:
Ограничить количество смертей до 10.
Сделать сохранение платным и доступным только в конце этажа. (цена этаж*20)
Сделать магазин доступным только в конце этажа.
Добавить кристаллы с рандомными перманентными усилениями в магазин, усиление роллится после активации, в момент покупки различаются только силой и ценой.
Добавить несколько активок вызывающих горение, переохлаждение, шок.
Добавить в генерацию предметов мод на +% урон к огню/яду и.т.д.
Добавить несколько пассивок работающих с состояниями.(шансы/сила/доп/эффекты)
Доделать меню создания персонажа(возможно добавить расы с бонусами)
Дорисовать интерфейс.
Окно характеристик, с подробной информацией о персонаже.
Окно развития навыков «Безумия» и «Хладнокровия».
Окно ачивок.(?)
Туториалы и подсказки.
Ладдер таблица(очень далекий план).
Циклы на Python «для тупых» часть 2.1. Цикл for
Как-то тяжело это видео далось, много что шло не так, но всё же вот оно 🙂
Ссылочки на меня:

Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих

Всем доброго времени суток! Так как о Data Science мы слышим всё чаще и чаще, предлагаю вам обзор книги, что будет полезна для начинающих.
Публикую обзор книги с моего телеграмм-канала IT-старт t.me/it_begin на книгу «Data Science.Наука о данных для начинающих».
Автор книги Джоэл Грас.
Стоит читать? Да! Почему? Опишу в статье.
Для кого эта книга?
Так как в названии фигурирует «Наука о данных с нуля» — не мудрено, что рассчитана она на тех, кто только начинает свой путь в Data Science 🙂

Рис.1. Начальная страница
Что в самой книге?
Книга сама по себе немаленькая и состоит из 416 страниц.
Для того, чтобы имелась конкретика по размерам книги, производим замеры.

Ширина книги составляет чуть менее 17 см.

Рис.1.2. Размер книги
Высота книги составляет 23 см.

Рис.1.3. Размер книги
Глубина книги составляет около 2 см.
Теперь, для предметного и краткого понимания того, с чем мы сможем ознакомиться в данной книге, предлагаю перейти к её оглавлению.




Глав достаточно много, это радует) Всего глав 27.
Далее предметно и главное кратко постараюсь рассказать о том, что полезного и интересного мы сможем найти в этой книге.
Глава 1. Введение

Первая вводная глава начинается с подробного описания тезиса «Воцарение данных» и ответа на вопрос «Что такое наука о данных?».
Здесь повествуется о том, насколько много данных в современном мире и том, что вся информация, что собирается нашими компьютерами, смартфонами, умными часами, при должной обработке, может дать ответы на бессчисленные вопросы.
Более всего понравился пример на странице 26 с Facebook, что думаю примененим ко многим плоскостям исследования, используя практические любые соц. сети.
Также хорошо подчеркнут опыт избирательной компании Барака Обамы в 2012 году и предвыборной компании Дональда Трампа. Предлагаю вам ознакомиться с данным отрывком.

Рис.2.1. Глава 1, страница 26
Глава 2. Интенсивный курс языка Python

В данной главе автор на протяжении 30 страниц крайне в сжатом формате старается познакомить нас с языком программирования Python.
По моему мнению, вследствие того, что объяснение крайне поверхностное и имеет ограничение в виде 30 страниц, объяснено всё плохо. Для тех, кто вовсе не имел опыта работы с Python, данная глава, к сожалению, вряд ли поможет.
Как бы, претензий к книги по данному поводу у меня нет, но хотел бы, чтобы вы заранее имели это ввиду, что эта глава не является карманным пособием по Python.
Если вам необходимо изучить основы Python, советую книгу Тони Гэддиса «Начинаем программировать на Python с нуля» — мой обзор

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

Также яркий пример просвечивающих страниц это столбчатый график, что просвечивает на странице 71)
В третьей главе автор кратко рассматривает библиотеку matplotlib,
В самом начале автор подчеркиват, что считает данную библиотеку устаревающей и что она годна для построения элементарных линейных и столбчатых графиков.
Согласиться с этим или нет? Вопрос сложный и оставлю его открытым на суд аудитории. Интересно ваше мнение по этому вопросу.
Далее в книге рассматриваются столбчатые и линейные графики, диаграммы рассеяния. Что порадовало, это повествование с соответствующим кодом, тут же можно понять, какая строчка кода за что отвечает, считаю это положительным моментом для тех, кто только начинает свой путь.
Завершается глава разделом «Для дальнейшего изучения», где автор оставляет ссылки на такие библиотеки, как seaborn, Altair, D3.js, Bokeh с кратким описанием каждой из них.
Глава 4. Линейная алгебра

В этой главе автор рассматривает векторы и матрицы.
Объяснено достаточно хорошо, вопросов после прочтения остается мало, в конце автор оставляет ссылки на три книги, что также позволят закрепить пройденный материал.
Глава 5. Статистика

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

Рис.6.1. Глава 5. Парадокс Симпсона
Глава 6. Вероятность

В этой главе рассмотрены:
Центральная предельная теорема
Автор раскрывает важность умения работать с анализом вероятности для последующей работы с данными. Вероятность автор рассматривает, как способ количественной оценки неопределенности, что ассоциируется с событиями из некоторого вероятностного пространства.
Глава 7. Гипотеза и вывод

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

Глава 8. Градиентный спуск

Градиент — это вектор, что своим направлением указывает направления возрастания некоторой скалярной величины.
Антиградиент — вектор, что своим направлением показывает направление убывает некоторой скалярной величины.
Градиентный спуск — это метод поиска локального максимума или минимума функции с помощью движения вдоль градиента.
Частично и достаточно понятно подход к максимизации функции описан на странице 128. (Рис. 8)
Глава более чем интересная, рассматривается также использование градиента, выбор правильного размера шага и применение градиентного спуска для подгонки моделей.
Глава 9. Получение данных

Для того, чтобы исследовать данные, нужно сначала их собрать 🙂
В этой главе автор рассматривает способы подачи данных и также их последующее форматирование.
В главе рассматриваются аспекты чтения файлов, импорт информации из всемирной паутины с помощью html5lib, что такое API и как с этим можно работать.
Глава 10. Работа с данными

В 10 главе автор рассматривает непосредственную работу с данными.
Рассматривается разведывательный анализ данных, классы данных, многочисленные размерности.
Мне же понравилось, что автор не забыл про «чистоту» данных.
На странице 164 об этом как раз таки говорится, что многие данные в реальном мире загрязнены и что важно пред их использованием проводить необходимую обработку, чтобы в дальнейшем не создать себе проблем.
Глава 11. Машинное обучение
В 11 главе автор знакомит нас с машинным обучением.
Так как это обзор книги и он всё же будет немного предвзят с моей стороны по той причине, что у каждого человека есть своё мнение на ту или иную информацию — мне показалась данная глава не для тех, кто начинает с нуля)
Описано в целом по делу всё, но нет уверенности, что люди, ранее не знающие ничего о машинном обучении, после прочтения данной главы всё усвоят.
Глава 12. k ближайших соседей
Метод k-ближайших соседей – это популярный алгоритм классификации, который используется в разных типах задач машинного обучения.
Простыми словами суть метода: посмотри на соседей вокруг, какие из них преобладают, таковым ты и являешься.
Теперь же о том, как всё это описывает автор на примере предсказания результатов на выборах
Глава 12. k ближайших соседей
Метод k-ближайших соседей – это популярный алгоритм классификации, который используется в разных типах задач машинного обучения.
Простыми словами суть метода: посмотри на соседей вокруг, какие из них преобладают, таковым ты и являешься.
Теперь же о том, как всё это описывает автор на примере предсказания результатов на выборах
На примере набора данных о цветках ириса (длина и ширина лепестка, длина и ширина чашелистика) автор пытается построить модель предсказания вида цветка, но т.к. выводимые результаты у него получились четырехмерными, что затрудняет построение графика, автор предлагает взглянуть на диаграммы рассеяния для каждой пары данных результатов измерений.
Порадовало, что в данной главе автор не забыл о проклятии размерности
Глава 13. Наивный Байес
В данной главе автором очень хорошо рассказан принцип работы спам-фильтра социальных систем, как он устроен и что лежит в его основе.
Порадовало то, что в конце данной главы автор ссылается на статью Пола Грэма «План для спама». Статья 2002 г., но менее интересной от этого не становится.
Глава 14. Простая линейная регрессия
В 14 главе автор рассказывает о простой линейной регрессии, описывает применение градиентного спуска, производит оценивание максимального правдоподобия
Глава 15. Множественная регрессия
В данной главе автором рассматривается множественная регрессия, Расширенные допущения модели наименьших квадратов, подгонка модели и её дальнейшая интерпретация.
Глава достаточно большая и много познавательной информации имеет, но мне более всего понравилась трактовка интерпретации моделей
Глава 16. Логическая регрессия
Логистическая регрессия — статистический метод для анализа набора данных, в котором есть одна или несколько независимых переменных, которые определяют результат. Результат измеряется с помощью дихотомической переменной (в которой есть только два возможных результата). Он используется для прогнозирования двоичного результата (1/0, Да / Нет, Истина / Ложь) с учетом набора независимых переменных.
С самого начала главы автор предлагает рассмотреть всё на задаче, что содержит набор данных 200 пользователей, их зарплату, опыт работы и состояние платежей за учетную запись в соц. сетях. Далее описывается то, что такое логистическая функция, применение модели.
Более всего понравилось рассмотрение гиперплоскости, что разделяет параметрическое пространство
Глава 17. Деревья решений
Одно из толкований дерева решений чаще всего описывает их в качестве представления возможных путей принятия решений.
Автором неплохо показано это на достаточно простом примере.
Глава 18. Нейронные сети
Нейронные сети — то о чём мы всё чаще слышим из средств массовой информации.
В данной книге глава это мягко не особо большая. Всего 10 страниц. Но достаточно информативная. Расскажет о том, что такое нейронные сети, перспептроны, как работают нейронные сети прямого и обратного распространения. Глава интересная!
Глава 19. Глубокое обучение
В данной главе о глубоком обучении автор рассказывает нам, что такое абстракция слоя, о представлении нейронных сетей как последовательности слоёв, о потери и оптимизации функции градиента.
Возможно субъективно, но чтобы до конца понять все вещи в данной главе, пришлось прочитать её дважды. Но думаю, дело не в книге, а во мне 🙂
Глава 20. Кластеризация
В главе о кластеризации понравилось, что автор пытается объяснить нам, что такое кластеры на +- понятных многим бытовых темах. Если читать ранее не слышал ничего о кластерах, подобное объяснение не является крайне легким, но и базовые основы в голове начнет зарождать. В главе автор рассматривает и описывает восходящую иерархическую кластеризацию, кластерные методы и на примерах объясняет что к чему. Интересная глава.
Глава 21. Обработка естественного языка
В главе об обработке естественного языка автор рассказывает несколько приемов, такие как: облако слов, N-грамматические языковые модели, грамматики. Много поясняющего кода)
Глава 22. Сетевой анализ
В главе про сетевой анализ автор описывает центральность, ориентированные графы, алгоритм PageRank. Мне данная глава «понималась» крайне тяжело, вследствие чего параллельно приходилось заглядывать в Google.
Глава 23. Рекомендательные системы
Та тема, с которой мы ежедневно встречаемся, используя те или иные стриминговые сервисы, соц. сети, поисковые системы — рекомендации 🙂
Сказали рядом с телефоном «купил собаку» и видите контекстную рекламу о дизайнерских будках на заказ? Это Data Science 🙂
Глава познавательная. Автор повествует о том, как работает рекомендательная система, что лежит в её основе, что такое коллаборативная фильтрация по схожесте пользователей и многое другое.
Глава 24. Базы данных и SQL
Достаточно сжатая глава о SQL. Рассказывается о том, что такое SQL, о основных командах и разобрано всё на примерах. Всё крайне сжато, но для общего представления совсем неплохо. Но всё же советовал бы дополнительно поискать еще источники информации на тему SQL, если хотите понять тему полноценно.
Глава 25. Алгоритм MapReduce
MapReduce — модель для выполнения параллельной обработки крупных наборов данных. Рассматривается работа самого алгоритма, какие его преимущества и чем он может быть полезен и рассмотренно на примере аналази аобновлений новостной ленты. Всё достаточно подробно описано, вопросов после главы остаётся не так уж и много.
Глава 26. Этика данных
Одна из лучших глав данной книги. Что такое этика данных, почему она важна, для чего используется и к чему может привести её несоблюдение. Познавательный материал, советую.
Глава 27. Идите вперед и займитесь наукой о данных
Заканчивается вся книга главой с призывом идти вперёд и заняться Data Science.
Автор подчеркивает важность компетенций в математической области и о необходимости хорошо разбираться в ней. Также автор кратко описывает популярные библиотеки языка программирования Python и не только.
Глава по своей сути прощальная между автором и читателем, автор же оставляет ту выжимку необходимых мыслей, что он хочет донести до каждого читателя для продолжения путешествия в мир Data Science.
Теперь, тезисно о плюсах и минусах книги
Плюсы книги:
На первом маркетплейсе цена не такая уж и народная.На втором же, ситуация куда бодрее.


Лично от себя скажу, что в целях экономии, часто беру книги уцененные, с небольшими внешними дефектами книги, что не особо влияет на её содержимое. Или же можно найти интересующую вас книгу на площадках б.у. товаров. Но если захотите приобрести новую книгу, цена в условные 600 руб. считаю более чем приемлимой и подъемной для многих. Выделю цену достоинством книги.
2. Книга крайне ёмкая и обширная. О необъятной теме в объятной книге.
Рассматривается и Python и SQL и методы Data Scince, что и как работает. В рамках одной книги это более чем достойно. Да, временами книга может показаться поверхностной, но думаю, это исходя из ограничений книги. Чтобы написать подробный том о каждой теме, для производства книги потребовалось бы куда больше бумаги 🙂
Минусы книги:
1. Прозрачные страницы.
Не особо бросается в глаза, когда увлечены чтением, но и приятного в этом мало.
Думаю, на всех фотографиях страниц книг, что сделаны мною, это отчетливо видно. Страницы тонкие и просвечивают. Считаю, что это минус.
2.Иногда крайне сжато подаётся материал, что , не имея под рукой поисковика, трудно понять некоторые вещи. Данная оценка субъективна, но мне показалось именно так. Опять же, не уместить всё-всё в одну книгу, понимаю. Но иногда охото отстраниться от цифрового мира, увлечься чтением интересной книги и не прибегать к помощи персонального компьютера)
Подведение итогов по книге:
Могу посоветовать к прочтению данную книгу. Книга даст базовые знания о Data Science, что опять же позволит вам понять, нужно ли оно вам в принципе, интересно ли всё то, что связано с этой сферой.
P.S. К сожалению, в один пост на пикабу можно поместить не более 25 изображений. Мною сделаны фотографии каждой главы, но показать их в рамках ограничений пикабу не могу. Поэтому, если интересно, то можете прочитать полную версию на моем канале.
Благодарю вас за внимание!
Мой канал в телеграмм
Если обзор показался вам интересным, то буду благодарен за подписку на мой
где я также публикую обзоры технической литературы и полезную информацию как для действующих, так и для начинающих программистов
Ссылка на бесплатную электронную версию книги https://t.me/it_begin/461
Также публикую обзоры книг и интервью на сайте https://russia-it.ru

EXCEL — ЭТИ СТРАШНЫЕ МАКРОСЫ – НАЧАЛО
Я решил с двух ног ворваться в тему макросов.

Кто-то про них слышал, кто-то даже видел, отдельные сверхразумы их даже использовали. Сегодня будет ознакомительный пост: что это вообще такое и как с этим начать работать. Обратите внимание – этот пост тех, кто не знает, что такое макросы и никогда с ними не работал
Первым делом нужно включить вкладку «Разработчик». По умолчанию в Excel ее спрятали, чтобы не взорвать мозг юзерам. Идем в Параметры -> Настройка ленты -> Основные вкладки -> Разработчик (поставить галочку).

Теперь идем в эту вкладку, нажимаем «Записать макрос» выбираем имя жмакаем «ок». Все, теперь любые действия в Excel надежным образом записываются.

Давайте теперь что-то сделаем. На пример поменяем заливку ячейки А1, в ячейку A2 напишем значение «Мама, я программист», а в ячейке А3 пропишем формулу текущей даты «=Сегодня()»

Останавливаем запись макроса. Нажимаем иконку «Макросы», выбираем наш макрос как мы его обозвали, нажимаем кнопку «изменить».

Появляется окно Microsoft Visual Basic for Applications. Кстати оно также вызывается комбинацией клавиш (Alt + F11) У меня почему-то вызывается только левым Altом, а правым нет, видимо намекая на то что для написания макросов лучше иметь 2 руки (хотя я и одной нажать могу). Появился редактор языка VBA – это язык, который написан специально под офис чтобы на нем писать макросы. В основном окне видим саму эту запись, которую автоматически сделал Excel.
Sub Макрос2()
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range(«A2»).Select
ActiveCell.FormulaR1C1 = «Мама, я программист»
Range(«A3»).Select
ActiveCell.FormulaR1C1 = «=TODAY()»
Range(«A4»).Select
End Sub
Такой инструмент автоматической записи называется макрорекордер, по началу он хорошо помогает вообще понять, что происходит. Теперь давайте разберемся как выглядит записанный макрос (записанный макрос у автора этой статьи может различаться с записанным макросом у вас поскольку форма записи с макроса зависит от последовательности нажатий, способах ввода информации и криворукости пользователь, в любом случае автор этой статьи снимает с себя всю ответственность за любые действия которые привели или могут привести к изменению годовых отчетов, искажению пространственное – временного континуума и прочих непредвиденных вымираний.)
Теперь давайте разбираться что делает этот макрос
Sub Макрос2()
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With
(Весь этот кусок от начала говорит нам о том, что с тем элементом что был выделен ранее происходит некоторое дерьмо, в том числе изменение цвета. Вот там, где Color = 255. Все остальное это параметры заливки, которые по итогу не менялись, но макрорекордер решил их тоже записать, на всякий. Это связано с внутренними особенностями работы excel как я понял. Вообще привыкайте к тому что макрорекордер пишет много того что потом вообще можно удалить. Конструкция With – End With позволяет делать несколько действий с одним объектом, на пример выше берется объект Selection.Interior, то есть фон выбранной области и ряду параметров этой заливки назначаются конкретные значения. То есть With нужен для облегчения записи кода, чтобы Selection.Interior не писать вначале каждой строчки.
Range(«A2»).Select –выделяем ячейку «A2»
ActiveCell.FormulaR1C1 = «Мама, я программист» – пишем в ячейку значение
Range(«A3»).Select – выделяем ячейку «А3»
ActiveCell.FormulaR1C1 = «=TODAY()» –пишем в ячейку формулу
Range(«A4»).Select – зачем то выделяем ячейку А4.
End Sub
Теперь при создании нового листа и запуске этого макроса он будет делать все то же самое.
Тут стоит понимать, что половину того что записал макрос можно опустить, так как нам важен результат, а не путь по которому к этому результату пришли, а макрорекордер записывает именно путь. На пример вместо всей конструкции With можно записать
так как мы точно знаем, что хотим поменять только цвет в ячейке А1. Также вместо того чтобы выделять ячейку, а потом в активной ячейке писать формулу можно сразу записать нужное значение в ячейку
Range(“A2”).Value = ”Мама, я программист”
или писать формулу как в третей ячейке
С формулами и значениями лично мне не понятно, как excel их интерпретирует, но в макрорекордре он записывает любой ввод в ячейку как ввод формулы. Благо лично у меня при написании макросов не возникает необходимости писать формулы в ячейки. На пример вместо вставки формулы как это было выше можно написать Range(“A3”).Value = Date(), тогда макрос вставит сразу текущую дату в ячейку как значение.
Опытные макроделы пишут макросы сразу без их записи макрорекордером, но это полезный инструмент для самостоятельного изучения при написании макросов: если не знаешь, что как делается в VBА то запускаешь и делаешь, потом смотришь что он там написал.
Теперь давайте напишем какой ни будь полезный макрос, я буду писать строчки и как можно подробнее их комментировать. Комментарии от программы отделяются символом «‘», он ставится вначале комментария. Прошу учесть, что я самоучка и многого не знаю, и просто напишу так ка делаю это сам, возможно есть более изящные решения. Напоминаю, что это просто ознакомительный опус для тех, кто не в зуб ногой.
Sub Colorization()
‘начало нашего макроса и его название
Dim x As Integer
‘объявляем переменную х типа интеджер, это тип для целых чисел от -32 768 до 32 767 (2 байта),
‘она нам нужна для перебора ячеек
For x = 1 To ActiveSheet.UsedRange.Rows.Count
‘перебираем х от 1 до конца использованной части листа, то есть не весь лист, а там где есть данные.
‘Тут цикл For повторяется от этой строки до строки Next x, которая прописана ниже
If Cells(x, 1).Value = «красный» Then Cells(x, 1).Interior.Color = RGB(255, 0, 0)
‘если значение в ячейке равно «красный» то закрашиваем ячейку в красный цвет. Функция If выполняет часть
‘после Then если условие между If и Then верно. Так как у нас необходимое действие занимает одну
‘строку можно писать в таком виде, если же действий несколько применяется конструкция:
‘If … Then
‘…
‘…
‘End If
If Cells(x, 1).Value = «зеленый» Then Cells(x, 1).Interior.Color = RGB(0, 255, 0)
‘как выше только в зеленый цвет
If Cells(x, 1).Value = «синий» Then Cells(x, 1).Interior.Color = RGB(0, 0, 255)
‘в синий цвет
Next x ‘берем следующее значение х, конец цикла For, который мы начали выше
End Sub ‘конец макроса
Как работает этот макрос: берет первый столбец, сначала 1 ячейку, смотрит что в ней написано, и если это равно «красный», «зеленый» или «синий», то красит фон ячейки в этот цвет, если нет по пропускает. Потом берет вторую и т. д. до конца активной части текущего листа.
Для проверки работы макроса нам нужен лист, где в первом столбце будут случайным образом прописаны цвета «красный», «зеленый», «синий». Запускаем макрос – когда он отработает ячейки будут раскрашены:

Некоторые пояснения: если не писать просто Cells то макрос будет делать все в активном листе активного окна. Но макрос может идти и в другие листы, файлы, даже в другие приложения офиса, но об этом не сегодня.
После того, как макрос поработал с документом, не удастся кнопкой «назад» вернуть все изменения, так что, если данные важны, то сохраняйте их отдельно и макросом работайте с копией, макросы беспощадны.
Итак, на этом пока все. Надеюсь теперь те, кто никогда не видел макросов получат о них начальное представление. Дальше буду писать про более практичное применение.
Часть 1. Макросы в формах Word
Создание такой диалоговой формы можно разбить на 2 этапа:
создание кода для использования формы.
1. Создание формы.
Откройте редактор VBA. (Alt + F11)
Если в редакторe VBA окно проекта не отображается на экране, нажмите сочетание клавиш [Ctrl]+[R] для его открытия. 
В списке проектов выберите проект Normal.
Выполните команду InsertUserForm (ВставкаUserForm).
Щёлкните в пределах формы. При этом на экране будет отображена Панель элементов (Toolbox), содержащая элементы управления, которые могут быть добавлены в форму.
В окне свойств присвойте свойству Name имя FrmLetterHead.
Свойству Caption присвойте Заголовок письма.
Щёлкните на кнопке Флажок (CheckBox) на панели элементов, а затем щёлкните в левом верхнем углу формы, чтобы обозначить место в форме для размещения создаваемого флажка. (Созданный флажок получает имя по умолчанию CheckBox1)
Трижды повторите шаг 8 для создания остальных флажков.
Используя команды меню FormatAlign (ФорматВыравнять) разместите четыре созданных флажка в столбец, распложенный вдоль левого края формы.
Разместить под созданными флажками кнопку (CommandButton).
Оставив кнопку CommandButton1 выделенной, выделите свойство Name в окне свойств и измените его значение на cmdHeading.
Выделите свойство Caption (Подпись) и измените его значение на Создать заголовок.
Поочередно выделите каждый из четырёх флажков и измените значения свойств Name и Caption для них в соответствии с таблицей1.
Таблица 1. Значение свойств для флажков.
Исходное имя флажка
Новое значение свойства Name
Новое значение свойства Caption
Выделите всю форму, выполнив щелчок на её строке заголовка, а затем, перетаскивая один из угловых размерных маркеров, уменьшите её до необходимого размера.
Проверьте, как отображается созданная форма, нажав [F5].
Вернитесь в окно редактора.
Активизируйте элемент ChkName.
Установите для свойства ControlTipText значение: Вставляет в документ имя адресата.
Запустите форму. Подведите указатель мыши к флажку для имени и задержите мышь. Должна появиться всплывающая подсказка.
Определите подсказки для остальных флажков.
Задание 2. Подготовка кода для использования в форме.
У Вас есть готовый код макроса Заголовок_для_письма, который надо переработать. При доработке кода необходимо учитывать следующие моменты:
основная процедура макроса должна обеспечивать открытие формы Заголовок письма. После того как форма будет открыта, её код будет управлять выполнением программы до завершения операции;
поскольку макрос должен отвечать на щелчок на кнопке Создать заголовок, необходимо переместить имеющийся код макроса, осуществляющий вставку текста, в определенную процедуру обработки события, связанную с формой Заголовок письма. А именно, в процедуру cmdHeading_Click, выполняемую при щелчке на кнопке Создать заголовок. Все действия, связанные со вставкой текста в документ, выполняются в рамках именно этой процедуры.
необходимо дополнить процедуру cmdHeading_Click четырьмя условными структурами. Это позволит определять, какие строки текста подлежат вставке в документ, основываясь на значениях представленных флажками параметров.
Несмотря на то, что подобный план значительно отличается от первоначальных действий, выполняемых исходным макросом, эта часть работы по созданию кода будет сравнительно несложной. В окне кода необходимо переместить большой блок кода из исходного макроса в процедуру cmdHeading_Click. Затем следует добавить новую строку кода для открытия окна диалога в код макроса. И наконец, необходимо добавить последовательность условных инструкций в процедуру cmdHeading_Click для вставки соответствующих частей информации.