<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>@konkin</title><author><name>@konkin</name></author><id>https://teletype.in/atom/konkin</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/konkin?offset=0"></link><link rel="alternate" type="text/html" href="https://blog.knkn.ru/?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=konkin"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/konkin?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-06-14T07:01:37.793Z</updated><entry><id>konkin:cocoapods-realm</id><link rel="alternate" type="text/html" href="https://blog.knkn.ru/cocoapods-realm?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=konkin"></link><title>Устанавливаем CocoaPods и Realm</title><published>2023-08-17T23:37:44.989Z</published><updated>2023-08-17T23:37:44.989Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/8b/ef/8befa5d7-1d74-4a8e-88dd-25b33a0415a4.png"></media:thumbnail><category term="cocoa-pods" label="CocoaPods"></category><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/e6/b2/e6b29266-8169-49cd-888b-6e118237dd56.jpeg&quot;&gt;CocoaPods — это мощное и одновременно изящное средство управления зависимостями Cocoa-библиотек, которые разработчики используют в своих iOS и macOS проектах.</summary><content type="html">
  &lt;figure id=&quot;0kGK&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e6/b2/e6b29266-8169-49cd-888b-6e118237dd56.jpeg&quot; width=&quot;1000&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;BoBO&quot;&gt;Это руководство по установке &lt;a href=&quot;https://cocoapods.org/&quot; target=&quot;_blank&quot;&gt;CocoaPods&lt;/a&gt; и &lt;a href=&quot;https://realm.io/&quot; target=&quot;_blank&quot;&gt;Realm&lt;/a&gt; я написал в большей степени для себя, как заметку! Но, если эта статья кому-то пригодится, то я буду только рад. (-:&lt;/p&gt;
  &lt;p id=&quot;9adc&quot;&gt;Итак, начнем!&lt;br /&gt;Сначала краткое пояснение о том …&lt;/p&gt;
  &lt;p id=&quot;N5bl&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;1260&quot;&gt;… что такое CocoaPods?&lt;/h3&gt;
  &lt;p id=&quot;1ae2&quot;&gt;&lt;a href=&quot;http://cocoapods.org/&quot; target=&quot;_blank&quot;&gt;CocoaPods&lt;/a&gt; — это мощное и одновременно изящное средство управления зависимостями Cocoa-библиотек, которые разработчики используют в своих iOS и macOS проектах.&lt;/p&gt;
  &lt;p id=&quot;ywwo&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;f6a2&quot;&gt;… что такое Realm?&lt;/h3&gt;
  &lt;p id=&quot;d93c&quot;&gt;&lt;a href=&quot;https://realm.io/&quot; target=&quot;_blank&quot;&gt;Realm&lt;/a&gt; — это кроссплатформенная мобильная база данных для iOS (Swift, Objective-C) и Android. Realm построен чтобы быть лучше и быстрее, чем SQLite и Core Data. Она не просто лучше и быстрее, она легка в использовании, и Вы сможете делать много вещей используя всего несколько строк кода.&lt;/p&gt;
  &lt;p id=&quot;gaqs&quot;&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h1 id=&quot;ac37&quot;&gt;&lt;/h1&gt;
  &lt;h2 id=&quot;m1FJ&quot;&gt;Установка CocoaPods&lt;/h2&gt;
  &lt;p id=&quot;97a5&quot;&gt;Для установки &lt;a href=&quot;http://cocoapods.org/&quot; target=&quot;_blank&quot;&gt;CocoaPods&lt;/a&gt; открой Терминал и введи следующую строку:&lt;/p&gt;
  &lt;pre id=&quot;qkNg&quot; data-lang=&quot;shell&quot;&gt;$ sudo gem install cocoapods //актуальная версия cocoapods
$ sudo gem install cocoapods --pre //тестовая версия&lt;/pre&gt;
  &lt;figure id=&quot;aKuK&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/96/b7/96b78f47-1f91-4938-a30b-3c09c7ff0b5d.png&quot; width=&quot;831&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;lJLF&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;vYMe&quot;&gt;Если у тебя уже установлен CocoaPods, то возможно его надо обновить. В Терминале введи эти строки&lt;/p&gt;
  &lt;pre id=&quot;HJUd&quot; data-lang=&quot;shell&quot;&gt;$ gem list --local | grep cocoapods //узнать установленную версию

$ pod repo update //обновить cocoapods&lt;/pre&gt;
  &lt;p id=&quot;UVMD&quot;&gt; &lt;/p&gt;
  &lt;p id=&quot;ce67&quot;&gt;Вот и всё! CocoaPods установлен/обновлен. &lt;a href=&quot;https://guides.cocoapods.org/using/getting-started.html&quot; target=&quot;_blank&quot;&gt;CocoaPods Guides.&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;Wbdj&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;5Iyf&quot;&gt;Чтобы удалить CocoaPods (удаляет все версии):&lt;/p&gt;
  &lt;pre id=&quot;ELhC&quot; data-lang=&quot;shell&quot;&gt;$ gem list --local | grep cocoapods //узнать установленную версию&lt;/pre&gt;
  &lt;figure id=&quot;GMvK&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/2a/a8/2aa8f8cc-5380-4b33-ae66-939ad54653e9.png&quot; width=&quot;829&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;ELhC&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;EVG1&quot;&gt;Удаляем CocoaPods&lt;/p&gt;
  &lt;pre id=&quot;ELhC&quot; data-lang=&quot;shell&quot;&gt;$ sudo gem uninstall cocoapods
$ sudo gem uninstall cocoapods-core
$ sudo gem uninstall cocoapods-downloader&lt;/pre&gt;
  &lt;figure id=&quot;CheJ&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/21/e7/21e75793-4bca-4b77-9832-34421900d98f.png&quot; width=&quot;827&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;1yRo&quot;&gt;Удалить старый основной репозиторий:&lt;/p&gt;
  &lt;pre id=&quot;BKsn&quot; data-lang=&quot;shell&quot;&gt;$ sudo rm -fr ~/.cocoapods/repos/master&lt;/pre&gt;
  &lt;p id=&quot;2Axh&quot;&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;U0T6&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;YKeS&quot;&gt;&lt;strong&gt;Список часто используемых команд терминала:&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;t0Es&quot; data-lang=&quot;shell&quot;&gt;$ help // список команд

$ help имя_команды // cправка по конкретной команде

$ cd // перейти в папку выше

$ cd .. // перескочить в “родную” папку, обычно это /users/имя_пользователя

$ cd / // перейти в корневую папку диска

$ cd ~ // прямой переход в основную папку 
// пользователя /users/имя_пользователя

$ cd ~/Documents // перейти в папку документы принадлежащую текущему 
// пользователю. Таким образом, можно переходить и в другие 
// папки пользователя 

$ cd Documents/region/ // переход в папку Documents/region/

$ cd /pictures // попытка перехода в директорию pictures расположенную 
// в КОРНЕВОЙ папке диска

$ cd pictures // попытка перехода в папку pictures в текущей папке

$ cd ‘Имя папки’ и cd Имя\ папки // имя папки с “пробелом” должно быть 
// заключено в одинарные кавычки или должен быть обратный 
// слэш перед пробелом

$ pwd // она показывает, где вы сейчас находитесь (print working directory)&lt;/pre&gt;
  &lt;p id=&quot;YsBt&quot;&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;fQWu&quot;&gt;&lt;/p&gt;
  &lt;h1 id=&quot;69c7&quot;&gt;Установка Realm с помощью CocoaPods&lt;/h1&gt;
  &lt;p id=&quot;0019&quot;&gt;Для начала, тебе необходимо создать в Xcode новый проект “Single View Application” и назвать его, например “region” или как нравиться.&lt;/p&gt;
  &lt;figure id=&quot;WzeK&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/5a/a0/5aa01352-61c2-4e70-b4a8-7c4509c1758e.png&quot; width=&quot;785&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;757e&quot;&gt;Теперь закроем Xcode.&lt;/p&gt;
  &lt;p id=&quot;rfnz&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;unkt&quot;&gt;Потом переходим к папке нашего созданного проекта region, для этого вводим в Терминале (у меня проект лежит в папке Documents/XcodeProjects/region/):&lt;/p&gt;
  &lt;pre id=&quot;3JnL&quot; data-lang=&quot;shell&quot;&gt;$ cd Documents/XcodeProjects/region/&lt;/pre&gt;
  &lt;p id=&quot;0KXe&quot;&gt;убедиться что ты сделал всё верно, можно командой&lt;/p&gt;
  &lt;pre id=&quot;mcQW&quot; data-lang=&quot;shell&quot;&gt;$ pwd //покажет текущую папку&lt;/pre&gt;
  &lt;p id=&quot;O8ei&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;voDd&quot;&gt;Применение:&lt;/p&gt;
  &lt;pre id=&quot;Pbl0&quot; data-lang=&quot;shell&quot;&gt;$ pod COMMAND&lt;/pre&gt;
  &lt;p id=&quot;IxN3&quot;&gt;CocoaPods, менеджер пакетов библиотеки Cocoa.&lt;/p&gt;
  &lt;p id=&quot;JLC2&quot;&gt;Команды:&lt;/p&gt;
  &lt;pre id=&quot;tNUx&quot; data-lang=&quot;shell&quot;&gt;+ cache         Управление кешем CocoaPods
+ deintegrate   Деинтегрировать CocoaPods из вашего проекта
+ env           Display pod environment
+ init          Создайте Podfile для текущего каталога
+ install       Установите зависимости проекта в соответствии с версиями из Podfile.lock
+ ipc           Inter-process communication
+ lib           Develop pods
+ list          List pods
+ outdated      Показать устаревшие зависимости проекта
+ plugins       Показать доступные плагины CocoaPods
+ repo          Manage spec-repositories
+ search        Поиск pods
+ setup         Настройте среду CocoaPods
+ spec          Управление pod specs
+ trunk         Взаимодействие с CocoaPods API (например, публикация новых specs)
+ try           Try a Pod!
+ update        Обновите устаревшие зависимости проекта и создайте новый Podfile.lock&lt;/pre&gt;
  &lt;p id=&quot;SvgI&quot;&gt;Параметры:&lt;/p&gt;
  &lt;pre id=&quot;oS5K&quot; data-lang=&quot;shell&quot;&gt;--allow-root    Позволяет CocoaPods работать от имени root
--silent        ничего не показывать
--version       Показать версию tool
--verbose       Показать больше информации об отладке
--no-ansi       Показать вывод без кодов ANSI
--help          Показать справку указанной команды&lt;/pre&gt;
  &lt;p id=&quot;RAKb&quot;&gt;далее, инициализируем Cocoapods&lt;/p&gt;
  &lt;pre id=&quot;TWQD&quot; data-lang=&quot;shell&quot;&gt;$ pod init&lt;/pre&gt;
  &lt;p id=&quot;7uyJ&quot;&gt;в некоторых случаях когда Podfile не создается, нужно применить следующую команду к директории проекта&lt;/p&gt;
  &lt;pre id=&quot;mgs4&quot; data-lang=&quot;shell&quot;&gt;$ sudo gem update xcodeproj&lt;/pre&gt;
  &lt;p id=&quot;2dws&quot;&gt;а потом повторить &lt;/p&gt;
  &lt;pre id=&quot;J9R0&quot; data-lang=&quot;shell&quot;&gt;$ pod init&lt;/pre&gt;
  &lt;p id=&quot;OIxz&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;aVsO&quot;&gt;Далее, когда Podfile создался, прописываем в нем необходимые фреймворки для установки в проект, в нашем случае мы устанавливаем Realm, поэтому добавляем строку &lt;em&gt;pod &amp;#x27;RealmSwift&amp;#x27;, &amp;#x27;~&amp;gt;10&amp;#x27;&lt;/em&gt;&lt;/p&gt;
  &lt;pre id=&quot;NirB&quot;&gt;platform :ios, &amp;#x27;12.0&amp;#x27;

target &amp;#x27;region&amp;#x27; do
# Comment the next line if you don&amp;#x27;t want to use dynamic frameworks
  use_frameworks!

# Pods for region
  pod &amp;#x27;RealmSwift&amp;#x27;, &amp;#x27;~&amp;gt;10&amp;#x27;

end&lt;/pre&gt;
  &lt;p id=&quot;veQ4&quot;&gt;Потом вводим команду в Терминале, и ждем установки Realm&lt;/p&gt;
  &lt;pre id=&quot;OnKI&quot;&gt;$ pod install&lt;/pre&gt;
  &lt;figure id=&quot;IoYS&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a3/4d/a34d1d72-6805-4e78-8fca-210aff8147e9.png&quot; width=&quot;824&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;GNoA&quot;&gt;По завершении в папке проекта появятся новые файлы:&lt;/p&gt;
  &lt;ul id=&quot;5ZZT&quot;&gt;
    &lt;li id=&quot;axCL&quot;&gt;Pods (папка)&lt;/li&gt;
    &lt;li id=&quot;KsJ4&quot;&gt;Podfile.lock&lt;/li&gt;
    &lt;li id=&quot;KYwe&quot;&gt;region.xcworkspace&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;XyOt&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/34/d7/34d78301-b8f2-497b-a557-c4e2233ed21f.png&quot; width=&quot;569&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;73xU&quot;&gt;С этого момента для работы с проектом Вам нужно будет открывать файл &lt;em&gt;region.xcworkspace&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;iUne&quot;&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;n8R9&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;6p1A&quot;&gt;Полезные ссылки&lt;/h2&gt;
  &lt;p id=&quot;kOyy&quot;&gt;GitHub Realm Swift -&amp;gt; &lt;a href=&quot;https://github.com/realm/realm-swift&quot; target=&quot;_blank&quot;&gt;https://github.com/realm/realm-swift&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;S1Dx&quot;&gt;Документация -&amp;gt; &lt;a href=&quot;https://www.mongodb.com/docs/realm/sdk/swift/&quot; target=&quot;_blank&quot;&gt;https://www.mongodb.com/docs/realm/sdk/swift/&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;mr6h&quot;&gt;GitHub Realm Studio -&amp;gt; &lt;a href=&quot;https://github.com/realm/realm-studio&quot; target=&quot;_blank&quot;&gt;https://github.com/realm/realm-studio&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;1JnE&quot;&gt;Скачать Realm Studio MacOS -&amp;gt; &lt;a href=&quot;https://studio-releases.realm.io/latest/download/mac-dmg&quot; target=&quot;_blank&quot;&gt;https://studio-releases.realm.io/latest/download/mac-dmg&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>konkin:vscode-settings</id><link rel="alternate" type="text/html" href="https://blog.knkn.ru/vscode-settings?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=konkin"></link><title>Настройка VSCode для web-разработки</title><published>2022-10-29T20:42:53.361Z</published><updated>2022-11-02T20:47:42.717Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/3f/d1/3fd1effe-c28a-4b6a-b912-aa2d023e73c6.png"></media:thumbnail><category term="vs-code" label="VSCode"></category><tt:hashtag>vscode</tt:hashtag><tt:hashtag>web</tt:hashtag><tt:hashtag>coding</tt:hashtag><tt:hashtag>coder</tt:hashtag><tt:hashtag>settings</tt:hashtag><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/54/e5/54e5f877-c25f-4edc-b976-e9ace139dc02.png&quot;&gt;Для начала нам нужно скачать и установить редактор кода Visual Studio Code (VSCode) https://code.visualstudio.com, если у вас он ещё не установлен.</summary><content type="html">
  &lt;figure id=&quot;sv4j&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/54/e5/54e5f877-c25f-4edc-b976-e9ace139dc02.png&quot; width=&quot;910&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;ds0E&quot;&gt;Для начала нам нужно скачать и установить редактор кода Visual Studio Code (VSCode) &lt;a href=&quot;https://code.visualstudio.com&quot; target=&quot;_blank&quot;&gt;https://code.visualstudio.com&lt;/a&gt;, если у вас он ещё не установлен.&lt;/p&gt;
  &lt;p id=&quot;0Pl0&quot;&gt;Начнем с того, что нам нужно создать где-нибудь (обычно это папка где вы храните все ваши проекты) папку проекта и назвать например &amp;#x27;&lt;strong&gt;web&lt;/strong&gt;&amp;#x27;, открыть VSCode и перетащить эту папку в Explorer (Проводник в боковой панеле программы).&lt;/p&gt;
  &lt;figure id=&quot;B1v2&quot; class=&quot;m_retina&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e5/de/e5de254a-1304-4f33-8b19-ecbda237655e.png&quot; width=&quot;338&quot; /&gt;
    &lt;figcaption&gt;VSCode Explorer&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;SlK4&quot;&gt;Далее создать там все необходимые папки и файлы для программирования сайта, например как на изображение выше.&lt;/p&gt;
  &lt;p id=&quot;xhxM&quot;&gt;Папка &lt;code&gt;src&lt;/code&gt; это папка где будет проходить вся основная работа над сайтом, в ней будут храниться все исходные файлы. Папка &lt;code&gt;dist&lt;/code&gt; это папка куда мы впоследствии будем в автоматическом режиме (с помощью Gulp — набор инструментов для автоматизации) копировать/компилировать только файлы, которые нужны для работы сайта и ничего лишнего. &lt;/p&gt;
  &lt;p id=&quot;EoSt&quot;&gt;Теперь нам нужно скачать и установить Node.js® (кроссплатформенная среда выполнения JavaScript) &lt;a href=&quot;https://nodejs.org/en/&quot; target=&quot;_blank&quot;&gt;https://nodejs.org/en/&lt;/a&gt;. Теперь мы имеем &lt;strong&gt;npm&lt;/strong&gt; — менеджер пакетов, входящий в состав Node.js&lt;/p&gt;
  &lt;p id=&quot;gkW0&quot;&gt;Для начала мы убедимся/проверим установку node, npm и npx, для этого в терминале в VSCode вводим такие команды&lt;/p&gt;
  &lt;p id=&quot;oRXk&quot;&gt;&lt;code&gt;node --version&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;0IPv&quot;&gt;&lt;code&gt;npm --version&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;VDGp&quot;&gt;&lt;code&gt;npx --version&lt;/code&gt;&lt;/p&gt;
  &lt;figure id=&quot;FsHf&quot; class=&quot;m_retina&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/4c/26/4c2661cd-d497-4bf7-a9cf-a8758888636e.png&quot; width=&quot;416&quot; /&gt;
    &lt;figcaption&gt;Терминал VSCode&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;vG3c&quot;&gt;После создаем файл с настройками пакетов, вводим следующую команду &lt;/p&gt;
  &lt;p id=&quot;P9np&quot;&gt;&lt;code&gt;npm init&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;6COs&quot;&gt;Мыполучаем сообщение, см. изображение ниже&lt;/p&gt;
  &lt;figure id=&quot;7bGT&quot; class=&quot;m_retina&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/6f/26/6f26b3f2-db7d-4242-b27d-f03b24a52069.png&quot; width=&quot;682&quot; /&gt;
    &lt;figcaption&gt;Терминал VSCode&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;FVNS&quot;&gt;Здесь у нас запрашивается информация о проекте. &lt;/p&gt;
  &lt;p id=&quot;LSRO&quot;&gt;В строке &lt;code&gt;package name: (web)&lt;/code&gt; нужно указать имя проекта и т.д.. Мы же просто жмём &lt;strong&gt;Enter&lt;/strong&gt; на всех запросах, так как эту информацию можно внести/изменить позже и отвечаем &lt;code&gt;y&lt;/code&gt; на вопрос &lt;code&gt;Is this OK? (yes)&lt;/code&gt;. См. изображение ниже&lt;/p&gt;
  &lt;figure id=&quot;i1Oc&quot; class=&quot;m_retina&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/c7/64/c764a07c-8732-40fe-91bc-5a82c5a18b22.png&quot; width=&quot;584&quot; /&gt;
    &lt;figcaption&gt;Терминал VSCode&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;INkA&quot;&gt;И так у нас создался новый файл &lt;code&gt;package.json&lt;/code&gt;, см. изображение ниже&lt;/p&gt;
  &lt;figure id=&quot;XyOl&quot; class=&quot;m_retina&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ac/2a/ac2a0924-1049-415f-b30f-9e32dffac178.png&quot; width=&quot;1014&quot; /&gt;
    &lt;figcaption&gt;VSCode&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;xAdp&quot;&gt;Здесь как мы видим находится инфа которая у нас запрашивалась, и здесь можно изменять/добавлять информацию о проекте. Но сейчас в этом файле мы будем указывать какие пакеты (packages) мы будем использовать для работы над нашим сайтом.&lt;/p&gt;
  &lt;p id=&quot;KuSg&quot;&gt;Далее установим утилиту командной строки Gulp, в терминале введите строки указанные ниже, после ввода терминал у вас запросит пароль пользователя, вводим его для подтверждения, флажок &lt;code&gt;-g&lt;/code&gt; говорит о глобальной установке, если вы ранее уже вводили эту команду, то сейчас уже не надо, переходите далее к локальной установке&lt;/p&gt;
  &lt;p id=&quot;QnLm&quot;&gt;&lt;code&gt;sudo npm install gulp-cli -g&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;EnBu&quot;&gt;теперь устанавливаем Gulp пакет непосредственно в наш проект, локально, об этом говорит нам флажок &lt;code&gt;--save-dev&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;lwzz&quot;&gt;&lt;code&gt;sudo npm install gulp-cli --save-dev&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;cKGB&quot;&gt;&lt;code&gt;sudo npm install gulp --save-dev&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;ZELd&quot;&gt;У нас добавились папки/файлы &lt;code&gt;node_modules&lt;/code&gt; и &lt;code&gt;package-lock.json&lt;/code&gt;, а в файле &lt;code&gt;package.json&lt;/code&gt; добавились строки, см. изображение ниже&lt;/p&gt;
  &lt;figure id=&quot;pIfv&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ee/ee/eeee2a17-4151-404e-b7b1-7e4cbc5ed86a.png&quot; width=&quot;1000&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;j7OZ&quot;&gt;Теперь проверим установленную версию&lt;/p&gt;
  &lt;p id=&quot;9ZxC&quot;&gt;&lt;code&gt;gulp --version&lt;/code&gt;&lt;/p&gt;
  &lt;figure id=&quot;aHV2&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/0f/a9/0fa91343-9309-454e-b107-bfad461a3715.png&quot; width=&quot;428&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;a5wP&quot;&gt;Итак Gulp пакет мы успешно установили, а теперь перейдем на сайт-ресурс с множеством плагинов для разных нужд &lt;a href=&quot;https://www.npmjs.com/package/packages&quot; target=&quot;_blank&quot;&gt;https://www.npmjs.com/package/packages&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;U9cq&quot;&gt;В строке поиска можно находить то что вам нужно, а конкретно сейчас Gulp Sass &lt;a href=&quot;https://www.npmjs.com/package/gulp-sass&quot; target=&quot;_blank&quot;&gt;https://www.npmjs.com/package/gulp-sass&lt;/a&gt;, перейдя по ссылке, на странице плагина подробно всё написано как установить, как использовать, примеры кода и т.д., вводим команду ниже, не забывайте добавлять &lt;code&gt;--save-dev&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;g1VV&quot;&gt;&lt;code&gt;npm i sass gulp-sass --save-dev&lt;/code&gt;&lt;/p&gt;
  &lt;figure id=&quot;GbyK&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/d8/86/d886564d-96ba-4ec0-9a49-50868f90aed0.png&quot; width=&quot;1000&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;yhHm&quot;&gt;Теперь в &lt;code&gt;devDependencies&lt;/code&gt; должна появиться строка &lt;code&gt;&amp;quot;gulp-sass&amp;quot;: &amp;quot;^5.1.0&amp;quot;&lt;/code&gt; &lt;/p&gt;
  &lt;p id=&quot;nicv&quot;&gt;Вот список плагинов которые обычно устанавливаются для работы в VSCode над сайтом&lt;/p&gt;
  &lt;ul id=&quot;kkP8&quot;&gt;
    &lt;li id=&quot;uRWq&quot;&gt;browsersync &lt;a href=&quot;https://www.npmjs.com/package/browser-sync&quot; target=&quot;_blank&quot;&gt;https://www.npmjs.com/package/browser-sync&lt;br /&gt;&lt;/a&gt;документация &lt;a href=&quot;https://www.npmjs.com/package/browser-sync&quot; target=&quot;_blank&quot;&gt;https://browsersync.io/docs/gulp&lt;/a&gt;&lt;br /&gt;команда установки плагина &lt;code&gt;npm i browser-sync --save-dev&lt;/code&gt; &lt;/li&gt;
    &lt;li id=&quot;0KsY&quot;&gt;gulp-sass &lt;a href=&quot;https://www.npmjs.com/package/gulp-sass&quot; target=&quot;_blank&quot;&gt;https://www.npmjs.com/package/gulp-sass&lt;/a&gt;&lt;br /&gt;команда установки плагина &lt;code&gt;npm i sass gulp-sass --save-dev&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;t5vs&quot;&gt;gulp-autoprefixer &lt;a href=&quot;https://www.npmjs.com/package/gulp-autoprefixer&quot; target=&quot;_blank&quot;&gt;https://www.npmjs.com/package/gulp-autoprefixer&lt;/a&gt;&lt;br /&gt;команда установки плагина &lt;code&gt;npm i gulp-autoprefixer --save-dev&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;Q6cv&quot;&gt;gulp-clean-css &lt;a href=&quot;https://www.npmjs.com/package/gulp-clean-css&quot; target=&quot;_blank&quot;&gt;https://www.npmjs.com/package/gulp-clean-css&lt;/a&gt;&lt;br /&gt;команда установки плагина &lt;code&gt;npm i gulp-clean-css --save-dev&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;BKFW&quot;&gt;gulp-rename &lt;a href=&quot;https://www.npmjs.com/package/gulp-rename&quot; target=&quot;_blank&quot;&gt;https://www.npmjs.com/package/gulp-rename&lt;/a&gt;&lt;br /&gt;команда установки плагина &lt;code&gt;npm i gulp-rename --save-dev&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;kvpW&quot;&gt;gulp-imagemin &lt;a href=&quot;https://www.npmjs.com/package/gulp-imagemin&quot; target=&quot;_blank&quot;&gt;https://www.npmjs.com/package/gulp-imagemin&lt;/a&gt;&lt;br /&gt;команда установки плагина &lt;code&gt;npm i gulp-imagemin@7.1.0 --save-dev&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;IuN0&quot;&gt;gulp-htmlmin &lt;a href=&quot;https://www.npmjs.com/package/gulp-htmlmin&quot; target=&quot;_blank&quot;&gt;https://www.npmjs.com/package/gulp-htmlmin&lt;/a&gt;&lt;br /&gt;команда установки плагина &lt;code&gt;npm i gulp-htmlmin --save-dev&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;z2gh&quot;&gt;&lt;/p&gt;
  &lt;figure id=&quot;lM4A&quot; class=&quot;m_retina&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/dd/9d/dd9de8d6-1108-4a4c-90e9-a5850ca6e120.png&quot; width=&quot;657&quot; /&gt;
    &lt;figcaption&gt;После установки плагинов&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;I9Xv&quot;&gt;Переходим к  настройке Gulp. Создаем файл &lt;code&gt;gulpfile.js&lt;/code&gt; .&lt;/p&gt;
  &lt;figure id=&quot;xCM9&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ab/31/ab311a8c-bf2b-47c3-bff9-1893a6d806cd.png&quot; width=&quot;334&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Uo8f&quot;&gt;Открываем его и начинаем писать &lt;code&gt;javascript&lt;/code&gt; код. Начнем с главного, а это &lt;code&gt;browsersync&lt;/code&gt; &lt;a href=&quot;https://browsersync.io/docs/gulp&quot; target=&quot;_blank&quot;&gt;https://browsersync.io/docs/gulp&lt;/a&gt;, ну и все остальные плагины. См. изображение ниже, какой код должен у вас получиться, получился не маленький)&lt;/p&gt;
  &lt;figure id=&quot;8i0C&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/d7/71/d7710648-92f8-47e8-a6ef-5d705624bbf8.png&quot; width=&quot;796&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;ijnQ&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e5/98/e5985bbd-5701-424e-b206-eda12c4c771b.png&quot; width=&quot;794&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;QRRr&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/8e/15/8e152b6b-bf13-4e69-ada6-5923fd1e4259.png&quot; width=&quot;794&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;mYAG&quot;&gt;Настройки каждого плагина можно найти на его странице на сайте &lt;a href=&quot;https://www.npmjs.com/package/plugins&quot; target=&quot;_blank&quot;&gt;https://www.npmjs.com/package/plugins&lt;/a&gt; или же просто переписать &lt;code&gt;js&lt;/code&gt; код который показан выше. &lt;/p&gt;
  &lt;p id=&quot;q73Z&quot;&gt;Если вы всё сделали правильно, то в терминале запускаем Gulp командой gulp + enter, у вас должна открыться страница сайта по пути &lt;code&gt;../dist/index.html&lt;/code&gt; с адресом &lt;a href=&quot;http://localhost:3000&quot; target=&quot;_blank&quot;&gt;http://localhost:3000&lt;/a&gt;, теперь каждое изменение в файлах таких как &lt;code&gt;scss, js, html&lt;/code&gt; и т.д. будет отслеживаться и страница сайта в браузере будет обновляться автоматически.&lt;/p&gt;
  &lt;p id=&quot;Izcl&quot;&gt;Чтобы остановить Gulp, в терминале жмем комбинацию клавиш &lt;code&gt;Control + C&lt;/code&gt;.&lt;/p&gt;
  &lt;p id=&quot;EJQC&quot;&gt;Ну в принципе почти всё! Удачи с кодингом.&lt;/p&gt;
  &lt;p id=&quot;OW4O&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;riYd&quot;&gt;Полезная ссылка по настройке &lt;a href=&quot;https://ru.stackoverflow.com/questions/1319194/Ошибка-подключения-пакета-gulp-imagemin&quot; target=&quot;_blank&quot;&gt;gulpfile.js&lt;/a&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;PgWL&quot;&gt; &lt;/p&gt;
  &lt;tt-tags id=&quot;aGKr&quot;&gt;
    &lt;tt-tag name=&quot;vscode&quot;&gt;#vscode&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;web&quot;&gt;#web&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;coding&quot;&gt;#coding&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;coder&quot;&gt;#coder&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;settings&quot;&gt;#settings&lt;/tt-tag&gt;
  &lt;/tt-tags&gt;

</content></entry><entry><id>konkin:webhack</id><link rel="alternate" type="text/html" href="https://blog.knkn.ru/webhack?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=konkin"></link><title>Web ништяки (обновляемое)</title><published>2022-10-25T15:54:59.127Z</published><updated>2023-03-25T20:36:55.834Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/36/71/367116b3-fe66-474b-b45f-55880418d5c7.png"></media:thumbnail><category term="web" label="Web"></category><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/8f/ad/8fad33fe-0f7f-4e3c-8c8f-543d141e691c.png&quot;&gt;За единицу измерения em и rem берут базовое значение размера шрифта, обычно это — 16 px. Но также его можно изменить, если задать свой базовый размер шрифта для всего сайта</summary><content type="html">
  &lt;figure id=&quot;6QFx&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/8f/ad/8fad33fe-0f7f-4e3c-8c8f-543d141e691c.png&quot; width=&quot;910&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;LLfB&quot;&gt;&lt;strong&gt;Относительные единицы измерения CSS&lt;/strong&gt;&lt;/h2&gt;
  &lt;ul id=&quot;s4vJ&quot;&gt;
    &lt;li id=&quot;aIGv&quot;&gt;&lt;strong&gt;em&lt;/strong&gt; -&amp;gt; высота шрифта текущего элемента&lt;/li&gt;
    &lt;li id=&quot;UaQl&quot;&gt;&lt;strong&gt;rem&lt;/strong&gt; -&amp;gt; высота шрифта базового значения&lt;/li&gt;
    &lt;li id=&quot;qFWB&quot;&gt;&lt;strong&gt;ex&lt;/strong&gt; -&amp;gt; высота символа x&lt;/li&gt;
    &lt;li id=&quot;zf1t&quot;&gt;&lt;strong&gt;px&lt;/strong&gt; -&amp;gt; пиксель&lt;/li&gt;
    &lt;li id=&quot;REX5&quot;&gt;&lt;strong&gt;%&lt;/strong&gt; -&amp;gt; процент&lt;/li&gt;
    &lt;li id=&quot;RbIW&quot;&gt;&lt;strong&gt;in&lt;/strong&gt; -&amp;gt; дюйм (1 дюйм равен 2,54 см)&lt;/li&gt;
    &lt;li id=&quot;858y&quot;&gt;&lt;strong&gt;cm&lt;/strong&gt; -&amp;gt; сантиметр&lt;/li&gt;
    &lt;li id=&quot;kXp9&quot;&gt;&lt;strong&gt;mm&lt;/strong&gt; -&amp;gt; миллиметр&lt;/li&gt;
    &lt;li id=&quot;CZTu&quot;&gt;&lt;strong&gt;pt&lt;/strong&gt; -&amp;gt; пункт (1 пункт равен 1/72 дюйма)&lt;/li&gt;
    &lt;li id=&quot;1KsW&quot;&gt;&lt;strong&gt;pc&lt;/strong&gt; -&amp;gt; пика (1 пика равна 12 пунктам)&lt;/li&gt;
    &lt;li id=&quot;oQ7M&quot;&gt;&lt;strong&gt;vh&lt;/strong&gt; -&amp;gt; высота вьюпорта (окна браузера)&lt;/li&gt;
    &lt;li id=&quot;hRtf&quot;&gt;&lt;strong&gt;vw&lt;/strong&gt; -&amp;gt; ширина вьюпорта (окна браузера)&lt;/li&gt;
    &lt;li id=&quot;9bk5&quot;&gt;&lt;strong&gt;vmin&lt;/strong&gt; -&amp;gt; размер в процентах от &lt;strong&gt;меньшей&lt;/strong&gt; размерности вьюпорта. Если высота меньше ширины (например, горизонтальная ориентация телефона), то расчёт будет вестись относительно высоты.&lt;/li&gt;
    &lt;li id=&quot;MwpX&quot;&gt;&lt;strong&gt;vmax&lt;/strong&gt; -&amp;gt; размер в процентах от &lt;strong&gt;большей&lt;/strong&gt; размерности вьюпорта. Если высота больше ширины (например, нормальная ориентация телефона), то расчёт будет вестись относительно высоты.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;zGMN&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;GTFK&quot;&gt;Разговор о единице измерения em и rem&lt;/h3&gt;
  &lt;p id=&quot;5HL9&quot;&gt;За единицу измерения &lt;strong&gt;em&lt;/strong&gt; и &lt;strong&gt;rem&lt;/strong&gt; берут базовое значение размера шрифта, обычно это — 16 px. Но также его можно изменить, если задать свой базовый размер шрифта для всего сайта&lt;/p&gt;
  &lt;p id=&quot;e1iZ&quot;&gt;&lt;code&gt;html { font-size: 10px; }&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;1PhA&quot;&gt;&lt;strong&gt;rem&lt;/strong&gt; будет всегда брать за единицу этот размер, &lt;strong&gt;em&lt;/strong&gt; же будет менять свою единицу, он будет наследовать размер его родительского блока, например:&lt;/p&gt;
  &lt;p id=&quot;LeUl&quot;&gt;&lt;code&gt;&lt;em&gt;style.css&lt;/em&gt;&lt;br /&gt;html { font-size: 10px; }&lt;br /&gt;.block { font-size: 1.5rem; }&lt;br /&gt;.example1 { font-size: 2rem; }&lt;br /&gt;.example2 { font-size: 2em; }&lt;br /&gt;&lt;br /&gt;&lt;em&gt;index.html&lt;/em&gt;&lt;br /&gt;html {&lt;br /&gt;  &amp;lt;div class=&amp;quot;block&amp;quot;&amp;gt; &lt;em&gt;здесь будет 15px, 10px умножить на 1.5rem&lt;/em&gt;&lt;br /&gt;    &amp;lt;p class=&amp;quot;example1&amp;quot;&amp;gt;Test 1&amp;lt;/p&amp;gt; &lt;em&gt;здесь будет 20px, 10px умножить на 2rem&lt;/em&gt;&lt;br /&gt;    &amp;lt;p class=&amp;quot;example2&amp;quot;&amp;gt;Test 2&amp;lt;/p&amp;gt; &lt;em&gt;здесь будет 30px, тк  у род. блока размер 15px умножаем на 2em&lt;/em&gt;&lt;br /&gt;  &amp;lt;/div&amp;gt;&lt;br /&gt;}&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Lk3M&quot;&gt;Кстати, для простоты расчетов, можно задать базовый размер шрифта 10px, тогда 14px будет 1.4em или rem, как угодно. &lt;/p&gt;
  &lt;p id=&quot;SIs2&quot;&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;JRJ6&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;HScP&quot;&gt;Немного кода&lt;/h2&gt;
  &lt;p id=&quot;kUTK&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;1eMI&quot;&gt;CSS&lt;/p&gt;
  &lt;p id=&quot;qhKr&quot;&gt;&lt;code&gt;[class^=&amp;quot;box-&amp;quot;] { &lt;br /&gt;   background-color: skyblue; /* Размещаем контейнеры по центру */ &lt;br /&gt;   display: grid; &lt;br /&gt;   place-items: center; &lt;br /&gt;}&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;8CCJ&quot;&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;LsDA&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;T5Hz&quot;&gt;Сброс стилей &lt;u&gt;normalize.css&lt;/u&gt;&lt;/h2&gt;
  &lt;p id=&quot;jZzS&quot;&gt;Современная, готовая к HTML5 альтернатива сбросу CSS. Normalize.css заставляет браузеры отображать все элементы более последовательно и в соответствии с современными стандартами. Он точно нацелен только на стили, которые нуждаются в нормализации.&lt;/p&gt;
  &lt;p id=&quot;hwY6&quot;&gt;Установить через менеджер пакетов -&amp;gt; &lt;a href=&quot;https://www.npmjs.com/package/normalize.css&quot; target=&quot;_blank&quot;&gt;npm install normalize.css&lt;/a&gt; смотрите Node.js в полезных ссылках&lt;/p&gt;
  &lt;p id=&quot;SJIh&quot;&gt;Скачать -&amp;gt; &lt;a href=&quot;http://necolas.github.io/normalize.css/&quot; target=&quot;_blank&quot;&gt;http://necolas.github.io/normalize.css/&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;LDEQ&quot;&gt;Назначить удаленно &lt;a href=&quot;https://www.jsdelivr.com/package/npm/normalize.css&quot; target=&quot;_blank&quot;&gt;отсюда&lt;/a&gt; -&amp;gt; &lt;a href=&quot;https://cdn.jsdelivr.net/npm/normalize.css@8.0.1/normalize.min.css&quot; target=&quot;_blank&quot;&gt;https://cdn.jsdelivr.net/npm/normalize.css@8.0.1/normalize.min.css&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;lIER&quot;&gt;&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;wfQH&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;94gE&quot;&gt;Полезные ссылки&lt;/h2&gt;
  &lt;p id=&quot;IhXs&quot;&gt;Learn Code -&amp;gt; &lt;a href=&quot;https://www.w3schools.com&quot; target=&quot;_blank&quot;&gt;https://www.w3schools.com&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;b9k4&quot;&gt;HTML5CSS -&amp;gt; &lt;a href=&quot;https://html5css.ru&quot; target=&quot;_blank&quot;&gt;https://html5css.ru&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;gXo3&quot;&gt;Справочник HTML -&amp;gt; &lt;a href=&quot;http://htmlbook.ru/html&quot; target=&quot;_blank&quot;&gt;http://htmlbook.ru/html&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;O0DO&quot;&gt;Справочник CSS -&amp;gt; &lt;a href=&quot;https://webref.ru/css&quot; target=&quot;_blank&quot;&gt;https://webref.ru/css&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;KVUb&quot;&gt;Справочник HTML -&amp;gt; &lt;a href=&quot;https://webref.ru/html&quot; target=&quot;_blank&quot;&gt;https://webref.ru/html&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;FZCm&quot;&gt;CSS3 медиа-запросы -&amp;gt;&lt;a href=&quot;https://webref.ru/css/value/media&quot; target=&quot;_blank&quot;&gt;https://webref.ru/css/value/media&lt;/a&gt; и &lt;a href=&quot;http://htmlbook.ru/css/value/media&quot; target=&quot;_blank&quot;&gt;http://htmlbook.ru/css/value/media&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;sDxM&quot;&gt;CSS3 селекторы -&amp;gt; &lt;a href=&quot;https://learn.javascript.ru/css-selectors&quot; target=&quot;_blank&quot;&gt;https://learn.javascript.ru/css-selectors&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;GqIz&quot;&gt;CSS3 Reference -&amp;gt; &lt;a href=&quot;https://cssreference.io&quot; target=&quot;_blank&quot;&gt;https://cssreference.io&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;KObj&quot;&gt;Методология БЭМ создана в Яндексе для разработки сайтов, которые надо делать быстро,а поддерживать долгие годы. Она позволяет создавать расширяемые и повторно используемые компоненты интерфейса. -&amp;gt; &lt;a href=&quot;https://ru.bem.info/methodology/&quot; target=&quot;_blank&quot;&gt;https://ru.bem.info/methodology/&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;0wMW&quot;&gt;Can I use... Поддержка таблиц для HTML5, CSS3 и т. д. -&amp;gt; &lt;a href=&quot;https://caniuse.com/&quot; target=&quot;_blank&quot;&gt;https://caniuse.com/&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;wO0g&quot;&gt;Что такое Flexbox? -&amp;gt; &lt;a href=&quot;https://html5.by/blog/flexbox/&quot; target=&quot;_blank&quot;&gt;https://html5.by/blog/flexbox/&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;VEA5&quot;&gt;№1 Современный и простой генератор веб-шрифтов css @font-face -&amp;gt; &lt;a href=&quot;https://transfonter.org&quot; target=&quot;_blank&quot;&gt;https://transfonter.org&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;OYSu&quot;&gt;№2 Генератор веб-шрифтов -&amp;gt; &lt;a href=&quot;https://www.fontsquirrel.com/tools/webfont-generator&quot; target=&quot;_blank&quot;&gt;https://www.fontsquirrel.com/tools/webfont-generator&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;1zGO&quot;&gt;Node.js® кроссплатформенная среда выполнения JavaScript с открытым исходным кодом -&amp;gt; &lt;a href=&quot;https://nodejs.org/en/&quot; target=&quot;_blank&quot;&gt;https://nodejs.org/en/&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;p4vt&quot;&gt;Gulp набор инструментов для автоматизации и улучшения вашего рабочего &lt;br /&gt;процесса -&amp;gt; &lt;a href=&quot;https://gulpjs.com&quot; target=&quot;_blank&quot;&gt;https://gulpjs.com&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;eqGh&quot;&gt;npm сайт-ресурс плагинов -&amp;gt; &lt;a href=&quot;https://www.npmjs.com/package/plugins&quot; target=&quot;_blank&quot;&gt;https://www.npmjs.com/package/plugins&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;link-validate-forms-like-you-ve-never-validated-before&quot;&gt;jQuery Validation: Проверяйте формы так, как никогда раньше -&amp;gt; &lt;a href=&quot;https://jqueryvalidation.org/documentation/&quot; target=&quot;_blank&quot;&gt;https://jqueryvalidation.org/documentation/&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;wImi&quot;&gt;React Hook Form Validation. Эффективные, гибкие и расширяемые формы с простой в использовании проверкой. -&amp;gt; &lt;a href=&quot;https://react-hook-form.com&quot; target=&quot;_blank&quot;&gt;https://react-hook-form.com&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;mBp8&quot;&gt;JavaScript маска ввода разных данных (дата, номер телефона и т.д.) -&amp;gt; &lt;a href=&quot;https://imask.js.org&quot; target=&quot;_blank&quot;&gt;https://imask.js.org&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;Ra4h&quot;&gt;Just-add-water CSS animations -&amp;gt; &lt;a href=&quot;https://animate.style&quot; target=&quot;_blank&quot;&gt;https://animate.style&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;title&quot;&gt;W3C Markup Validation Service -&amp;gt; &lt;a href=&quot;https://validator.w3.org&quot; target=&quot;_blank&quot;&gt;https://validator.w3.org&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;YAIa&quot;&gt;Скорость загрузки сайта -&amp;gt; &lt;a href=&quot;https://pagespeed.web.dev&quot; target=&quot;_blank&quot;&gt;https://pagespeed.web.dev&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;a5sl&quot;&gt;Генератор метатегов -&amp;gt; &lt;a href=&quot;https://metatags.io&quot; target=&quot;_blank&quot;&gt;https://metatags.io&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;Yyf3&quot;&gt;#1 Генератор фавиконок -&amp;gt; &lt;a href=&quot;https://realfavicongenerator.net&quot; target=&quot;_blank&quot;&gt;https://realfavicongenerator.net&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;lYfh&quot;&gt;#2 Генератор фавиконок -&amp;gt; &lt;a href=&quot;https://www.favicon-generator.org&quot; target=&quot;_blank&quot;&gt;https://www.favicon-generator.org&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;sQ9t&quot;&gt;JSHint Options -&amp;gt; &lt;a href=&quot;https://jshint.com/docs/options/&quot; target=&quot;_blank&quot;&gt;https://jshint.com/docs/options/&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>konkin:mac-oem</id><link rel="alternate" type="text/html" href="https://blog.knkn.ru/mac-oem?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=konkin"></link><title>Что делать, если Mac начал тормозить?</title><published>2022-10-23T19:38:03.289Z</published><updated>2022-10-30T11:45:20.918Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/f7/0a/f70a8aed-6182-40a0-b3ee-4e577dcde51b.png"></media:thumbnail><category term="mac" label="Mac"></category><tt:hashtag>mac</tt:hashtag><tt:hashtag>terminal</tt:hashtag><summary type="html">&lt;img src=&quot;https://img4.teletype.in/files/be/4c/be4c4e15-86b1-4313-9e63-6d1c9ff784dd.png&quot;&gt;Быстродействие компьютера далеко не всегда зависит от мощности его аппаратной начинки, особенно, если говорить про Mac. Высокий уровень оптимизации «харда» и «софта» обеспечивает компьютерам Apple возможность исправно работать на относительно слабом железе, месяцами не требуя перезагрузки. Но иногда Mac начинают страдать от потери скорости при выполнении даже не слишком ресурсоемких задач. Как правило, это проблема проистекает из загруженности оперативной памяти, которой требуется сброс.</summary><content type="html">
  &lt;p id=&quot;D6iO&quot;&gt;Быстродействие компьютера далеко не всегда зависит от мощности его аппаратной начинки, особенно, если говорить про Mac. Высокий уровень оптимизации «харда» и «софта» обеспечивает компьютерам Apple возможность исправно работать на относительно слабом железе, месяцами не требуя перезагрузки. Но иногда Mac начинают страдать от потери скорости при выполнении даже не слишком ресурсоемких задач. Как правило, это проблема проистекает из загруженности оперативной памяти, которой требуется сброс.&lt;/p&gt;
  &lt;figure id=&quot;mz3R&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/be/4c/be4c4e15-86b1-4313-9e63-6d1c9ff784dd.png&quot; width=&quot;910&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;6d03&quot;&gt;&lt;strong&gt;Как очистить оперативную память на Mac?&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;pmOg&quot;&gt;Первое, что следует предпринять в таких ситуациях, — эта банальная перезагрузка. Поскольку оперативная память является энергозависимой, а значит, прекращает выполнение и поддержание работы всех запущенных задач при отключении питания. Иными словами, таким образом мы сбрасываем кэшированные данные и снижаем нагрузку на оперативную память. Этот способ, вопреки своей простоте, оказывается достаточно действенным, но есть и более эффективные решения, чтобы сбросить ОЗУ.&lt;/p&gt;
  &lt;p id=&quot;TFmM&quot;&gt;Другой способ, о котором идет речь, предполагает минимальные навыки работы с Terminal. Просто следуйте инструкции ниже:&lt;/p&gt;
  &lt;ul id=&quot;msxA&quot;&gt;
    &lt;li id=&quot;e50a&quot;&gt;Запустите Terminal на своем Mac. Как правило, он хранится в папке «Другие» в LaunchPad;&lt;/li&gt;
    &lt;li id=&quot;e983&quot;&gt;Введите в строке Terminal команду &lt;code&gt;sudo purge&lt;/code&gt;;&lt;/li&gt;
    &lt;li id=&quot;98b5&quot;&gt;Если потребуется, подтвердите действие вводом пароля, который вы используете для авторизации в своем Mac.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;5GV9&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/70/9f/709f52b5-2e97-40d1-8550-45c99f9a0f07.png&quot; width=&quot;910&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;fa4b&quot;&gt;Очистка займет всего несколько секунд, по прошествии которых оперативная память компьютера будет очищена и, по логике, он начнет работать быстрее.&lt;/p&gt;
  &lt;p id=&quot;66fc&quot;&gt;Не переживайте, это действие абсолютно безопасно для вашего Mac и не может ему навредить. А поскольку очищается только оперативная память, ни один важный файл не пропадет.&lt;/p&gt;
  &lt;tt-tags id=&quot;HUey&quot;&gt;
    &lt;tt-tag name=&quot;mac&quot;&gt;#mac&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;terminal&quot;&gt;#terminal&lt;/tt-tag&gt;
  &lt;/tt-tags&gt;
  &lt;p id=&quot;Glzi&quot;&gt;Источник &lt;a href=&quot;https://appleinsider.ru/tips-tricks/kak-ochistit-operativnuyu-pamyat-na-mac.html&quot; target=&quot;_blank&quot;&gt;https://appleinsider.ru/tips-tricks/kak-ochistit-operativnuyu-pamyat-na-mac.html&lt;/a&gt;&lt;/p&gt;

</content></entry></feed>