пїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
Слишком длинный поисковый запрос.
По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Работая долгое время на компьютере, чувствуется необходимость быстро переходить к каким-то настройкам системы. Порой настолько привыкаешь к быстрому запуску, что забываешь полный путь к нужной настройке. Зато это сохраняет время и повышает (крутость в глазах непосвященных) эффективность работы. Итак, чтобы запустить окно быстрого запуска достаточно нажать комбинацию клавиш Windows + R. А затем в зависимости от потребностей вводим одну из перечисленных ниже команд. 1. msconfig Если нужно перезагрузить систему в безопасном режиме или просмотреть список доступных ОС, то команда msconfig вам в помощь. Там можно отредактировать параметры загрузки системы. Кстати, присмотритесь к вкладке Tools, там немало полезных сокращений. 2. resmon Мощная утилита, которая помогает разобраться, что грузит ресурсы компьютера в данный момент. Там можно найти информацию по работе ЦП, жесткого диска, оперативной памяти, сетевой карты. 3. msinfo Приложение System Information предоставляет обширную информацию об оборудовании и программном обеспечении вашего ПК. Это обязательная команда для просмотра спецификаций любого ПК. Информация разделена на категории, что облегчает поиск нужной информации. Здесь можно экспортировать информацию в файл, что идеально подходит для получения технической помощи в Интернете. 4. sdclt Данная команда открывает окно "Резервного копирования и восстановления системы". 5. Настройки мыши - main.cpl Все настройки относительно мыши можно сделать в этом окне: поменять роли кнопок, скорость реакции т.п. Кстати, идея чтобы пошутить с другом: поменяйте роли кнопок мыши. Это прикольно. 6. regedit Пожалуй, одна из самых известных утилит, которой пользуются сисадмины - это regedit. Все настройки Windows - порт RDP по умолчанию, разны пути, настройки программ - хранятся в реестре. Чтобы запустить его с окна быстрого запуска введите regedit.exe. Внимание! Все изменения в реестре влияют на работоспособность системы, потому крайне не рекомендуется редактировать его, если не знаете чего хотите. 7. sysadm.cpl Нет - это не команда быстрого вызова сисадмина. Она запускает параметры системы, где можно настроить производительность, переменные среды и т.п. 8. powercfg.cpl Быстрый доступ к настройкам питания. Именно здесь настраивается поведение компьютера в зависимости от режима питания, таймоут до спящего режима и т.п. 9. optionalfeatures Часто при поиске проблем на новом компьютере обнаруживается, что не установлены нужные утилиты вроде telnet. Так вот эти все фичи можно установить через меню дополнительных компонентов Windows, которое можно вызвать командой optionalfeatures. 10. magnify Лупа или увеличительное стекло, которое предусмотрено для людей с ограниченными возможностями запускается с помощью команды magnify. 11. charmap Таблица шрифтов Windows отображает все доступные для выбранного шрифта символы. Тут можно копировать символ и вставлять в нужное место или запомнить Alt код конкретного шрифта. Если выбрать Advanced View, то можно получить доступ к строке поиска. 12. ncpa.cpl Моя самая любимая команда. Позволяет открыть окно с текущими сетевыми соединениями. Особенно полезна, если у пользователя нет администраторских прав. В этом случае командная строка cmd, запускается от имени привилегированного пользователя, затем уже в командной строке выполняется команда ncpa.cpl. 13. mrt Нет - эта команда не активирует функцию МРТ на компьютере. Вы, наверное, не знали, что в Windows есть встроенная утилита для удаления вредоносных программ. Правда, эффективность под вопросом, - она все же есть. Но в любом случае, лучше установить антивирус. 14. devmgmt.msc Пожалуй, второй мой фаворит. Команда devmgmt.msc позволяет запускать окно с устройствами, где можно установить, обновить или удалить драйвера. Так же полезна в случае, если у пользователя нет администраторских прав. В этом случае схема работы такая же, как и с ncpa.cpl. Так же есть команды diskmgmt.msc и compmgmt.msc, которые запускают консоль управления жесткими дисками и компьютером соответственно. 15. netplwiz Эта команда чаще всего используется в скриптах для автоматического создания пользователя. Правда, в плане безопасности это не очень хорошо, потому что этим методом пользуются злоумышленники, но тем не менее данная команда позволяет назначать пароль пользователям и управлять другими настройками безопасности. 16. services.msc Одна из часто используемых команд в мире ИТ. Отображает все существующие в системе сервисы и их состояние. Выбрав конкретный сервис, в левом окошке можно просмотреть за что он отвечает. И тут тоже не рекомендуется отключать или проводить другие манипуляции, если не знаете что делаете. 17. appwiz.cpl Давно пользовались приложением Установка и удаление программ? Обычно пользователи устанавливают программы и забывают, что они у них есть. Хотя для улучшения производительности компьютера лучше регулярно проверять и удалять ненужные программы. Для быстрого доступа используется команда appwiz.cpl. Тут также можно посмотреть установленные обновления и установить дополнительные фичи. 18. control В старых версиях Windows данная команда не пользовалась популярностью, так как чуть ли не каждая ссылка вела именно на Панель управления. Но в Windows 10 Microsoft активно продвигает новое приложение Настройки, поэтому попасть на Панель управления не легко, но возможно благодаря команде control. 19. "." (точка) Как обычно поступают пользователи, если нужно попасть в папку текущего пользователя? Открывают проводник и оттуда попадают куда нужно. Но есть вариант попроще: просто в окне быстрого запуска набираете точку и нажимаете Ввод (Enter)"." - заветная папка открыта. 20. Экранная клавиатура Иногда по какой то причине приходится пользоваться экранной клавиатурой. Вызвать его можно командой osk. 21. snippingtool Приложение Ножницы, которое делает скриншот экрана можно вызвать командой snippingtool. Для запуска же новой версии на Windows 10, можно использовать комбинацию клавиш Win+Shift+S. А для запуска Paint используйте команду - mspaint. 22. mdsched В Windows также есть встроенная утилита диагностики оперативной памяти. Она не только выявляет проблему, но в большинстве случаев и исправляет их. А если не справляется, то выдают отчет о проблеме. Запустить данную утилиту можно командой mdsched. P.S. Для проверки компьютер автоматически перезагрузиться, так что имеет смысл сохранить открытые документы. 23. Открытие веб-сайтов Да-да, все верно. Через командную строку можно открывать и веб-сайты. Сайт откроется в браузере по умолчанию. Но сегодня мало, кто помнит название сайтов. Все пользуются поиском. 24. mstsc Для быстрого запуска приложения удаленного доступа используйте команду mstsc. Но для начала на компьютерах нужно разрешить удаленный доступ. 25. cmd Найдется очень мало людей, которым незнакома эта команда. cmd - запускает командную строку, которая дает вам неограниченную власть над системой. Хотя я погорячился, Windows - это не касается. Заключение Run еще удобен тем, что он запоминает все введенные команды, так что во второй раз достаточно набрать первую букву и вы получите список введенных ранее команд на эту букву.
img
  На первый взгляд процесс выпуска современного программного обеспечения может показаться довольно сложным и серьезно напугать. В этой статье я подробно расскажу о концепциях, связанных с этим процессом – от управления зависимостями до создания программного обеспечения в облаке. Как правило, статьи и учебные пособия делают акцент на каком-то конкретном инструменте и с головой погружаются в него, и все это без предварительно изложенных основных понятий. В этой статье я исправлю это, рассказав вам о концепциях, которые лежат в основе этих инструментов. Здесь я затрону такие темы, как управление зависимостями (и что такое зависимости на самом деле!), инструменты сборки, и вишенка на торте - системы непрерывной интеграции. Изучив основные понятия, вы сможете лучше понять то, что я буду рассказывать дальше. Что такое библиотеки? Только не говорите, что вы никогда не пытались облегчить себе работу. Например, вы создаете некий набор утилит, который значительно облегчает вашу работу. После чего вас назначают на какой-то другой проект, который требует тех же самых утилит, и вы просто их копируете. Поздравляем, вы создали библиотеку и воспользовались ей в двух проектах! Библиотеки – это наборы предварительно написанного кода, который разработчики используют для оптимизации задач. Они повышают нашу продуктивность, избавляя от написания одних и тех же вещей, которые только тратят наше время. Numpy, Matplotlib, Lodash, jQuery и React – это все примеры популярных библиотек с открытым исходным кодом.  Вы, возможно, уже обратили внимание, что у каждой из этих библиотек (как и у любых других) есть свой номер версии. Как правило, это несколько числовых полей, которые разделены точками:  v1.0.0 или  1.0.0 . И эти числа не являются случайными! Есть немало различных методов, как можно определить версию программного продукта. Для каких-то продуктов используют номер сборки, который генерируется компилятором или инструментом CI/CD (мы рассмотрим это буквально через минуту). Для других продуктов используют дату сборки, а не ее номер. Кто-то и вовсе использует хэш сборки.  Самая известная схема управления версиями – SemVer (Semantic Versioning – семантическое версионирование). Оно используется большей частью библиотек кода (если не всеми). Что такое семантическое версионирование? Семантическое версионирование – это схема управления версиями. У него есть три поля, которые разделены точкой. Первое поле (слева) назовем  Major , среднее –  Minor , а последнее –  Patch . Это выглядит примерно вот так (с некоторыми отклонениями):  Major.Minor.Patch .  По стандарту SemVer значения всех этих полей могут только увеличиваться. Вы не имеете права уменьшать ни одно из них. Когда увеличивается номер родительской версии, все номера дочерних версий сбрасываются. То есть, если поле Major увеличивается, то поля Minor и Patch сбрасываются до 0. Номер исправления (Patch) Номер исправления – это самый часто меняющийся номер. Увеличение этого значения говорит о том, что было внесено некоторое изменение, которое не повлекло добавления новых функций или нарушения работы уже существующих. Это могут быть исправления в системе безопасности, оптимизация производительности, исправления каких-либо ошибок и т.д. Изменения, внесенные в проект, всегда являются совместимыми в двух направлениях при условии, что родительские версии одинаковы. То есть код, который был написан для версии  v1.0.1 , будет работать и для версий  v1.0.0 и  v1.0.2 . Дополнительный номер версии (Minor) Дополнительный номер версии – второй по частоте изменения номер. Если меняется дополнительный номер версии, значит, была обновлена некоторая функция, которая при этом не нарушила работу уже существующих.  Изменения, внесенные в дополнительную версию, всегда являются совместимыми с предыдущими версиями при условии, что основная версия остается неизменной. То есть код, который был написан для версии  v1.1.0 , будет также работать и для версии  v1.2.0 . Однако он может не работать для версии  v1.0.0 , так как в ней могут использоваться функции, которые были добавлены в более поздней версии. Основной номер версии (Major) Основная версия обладает наивысшем приоритетом и является самым «опасным» полем из всех трех. Увеличение значения этого поля говорит о том, то в проект были внесены какие-то критические изменения. Как правило, эти изменения связаны с API/интерфейсом и/или с переименованием или удалением объектов.  Новая основная версия не обязана быть совместима с любой другой основной версией, так что не ждите, что версия  v1.0.0 будет работать с версией  v2.0.0 или наоборот. Конечно, может случиться так, что ваш код скомпилируется после обновления, но это будет просто счастливое стечение обстоятельств.  Иногда бывает так, что авторы библиотек не нарушают внутреннюю логику, не влияя, соответственно, на общедоступный API, который вы используете, поэтому ваш код не ломается. Но это дело случая.  Явным примером внесения критических изменений является пара Python 2 и Python 3. Операторы печати Python 2 не работают с интерпретатором Python 3 и наоборот. Конечно, некоторые операторы, например, циклы for и какие-то другие базовые структуры, могут работать, но далеко не все.  Рекомендуется как можно чаще обновлять версии с исправлениями. Если вам нужны новые функции, то обновите дополнительную версию. Изменение основного номера версии говорит о каких-то грандиозных изменениях. Так что будьте осторожны, обновляя версии проекта.  Как правило, каждый выпуск основной версии сопровождают руководством по переходу с более ранних версий программ, которых вам стоит придерживаться. Итак… начнем с того, как же мы можем установить и использовать внешние библиотеки, которые были написаны другими людьми? Как управлять зависимостями вашего проекта Раньше самым лучшим способом было простое копирование исходного кода библиотек, которые мы хотели использовать, в наш проект. Мы вносили изменения в код библиотек, исправляли ошибки, прежде чем они будут выпущены, и контролировали код. Однако такая практика (которую, как правило, называют  вендорингом ) впала в немилость, и на это есть несколько причин.  Если вы применили изменения, и была выпущена новая версия, то вам нужно было снова применить все эти изменения. Это процесс, который необходимо выполнять вручную каждый раз, когда библиотека обновлялась или загружалась. Это довольно утомительный процесс, он занимает много времени и может нарушить работу других функций, которые вы добавили. Когда сложность и масштаб проекта начнет увеличиваться, контролировать этот процесс станет не так просто. Но здесь есть отличный вариант – диспетчеры зависимостей.  Что такое диспетчер зависимостей? Зависимость – это библиотека или утилита, которые ваш проект использует для работы. Говоря простым языком, если программа А нуждается в программе Б, чтобы скомпилироваться и/или запуститься, то программа А зависит от программы Б. Программа может зависеть от нескольких программ. Диспетчер зависимостей – это инструмент, который автоматически отслеживает зависимости проекта. С его помощью вы можете запускать в терминале простые команды для того, чтобы устанавливать, обновлять или удалять зависимости. Вот несколько примеров диспетчеров зависимостей: NPM, Yarn, Composer, Gradle и Bundler. Только не путайте их с диспетчерами пакетов, так как это инструменты, которые управляют системными пакетами. Вот некоторые диспетчеры пакетов: apt-get, yum, Homebrew и Chocolatey.  Некоторые диспетчеры выполняют сразу две функции – управляют системными пакетами и зависимостями проекта. Вот несколько примеров: NPM и Yarn. Как работает диспетчер зависимостей? Диспетчер зависимостей использует два основных файла: манифест и файл блокировки. Манифест – это список прямых зависимостей вашего проекта. Здесь находятся зависимости, которые вы указали непосредственно при установке чего-либо. Так что, когда вы запускаете команду  npm install jsdom , в списке зависимостей манифеста проекта появляется пакет  jsdom . Но одного манифеста недостаточно. У зависимости могут быть свои зависимости, а у тех свои и т.д. Таким образом, получается некий граф зависимостей. Манифест же содержит только прямые зависимости.  Получается, что когда вы запускаете команду  npm install jsdom , в манифесте появляется только пакет  jsdom , несмотря на то, что у  jsdom могут быть свои другие зависимости. Итак, как же диспетчеры зависимостей умудряются отслеживать весь граф зависимостей? Что такое файл блокировки? Файл блокировки – это журнал, в котором хранится список всех зависимостей проекта. Здесь находятся как прямые зависимости (которые перечислены в манифесте), так и весь граф зависимостей. Для всех зависимостей указаны их версии, репозитории, из которых они были извлечены, и прочая информация.  Изображение, представленное ниже, демонстрирует разницу между графом зависимостей (перечисленным в файле блокировки) и списком прямых зависимостей (перечисленным в манифесте) – реализацией многих веб-стандартов для тестирований. Окей, мы знаем точный граф зависимостей, ну и что? Все! Зачастую над одним проектом работают несколько разработчиков. И если эти несколько разработчиков устанавливают зависимости проекта, опираясь только на манифест, диспетчер зависимостей поможет установить необходимые версии библиотек.  Файл блокировки соединяет каждую зависимость в графе с определенной версией. Таким образом, мы получаем  сборки, которые можно воспроизводить на разных компьютерах . Это значит, что каждый раз, когда кто-то запускает  npm install , код  стопроцентно будет работать. Кроме того, составлять отчет об ошибках становится проще за счет того, что в него включается файл блокировки.  Помимо всего прочего, файлы блокировки позволяют диспетчерам зависимостей повторно использовать кэшированные пакеты вместо того, чтобы каждый раз при сборке пакета загружать его последнюю версию.  В общем, мы выяснили, что такое библиотеки, семантическое версионирование и диспетчеры зависимостей. А теперь пришла пора собрать наш проект.  Что такое система сборки? Любой процесс сборки так или иначе является системой сборки. Система сборки – это набор преобразований, который превращает исходный код в исполняемый файл. Это может быть обычная команда, которая запускает компилятор, сценарий, который создает pdf-файл на основе текстового, или даже некое решение с графическим пользовательским интерфейсом, которое собирает ваш проект и генерирует двоичный файл. В общем случае система сборки состоит из трех компонентов: Целевые объекты Зависимости  Правила Целевой объект – это то, что вы хотите получить. Если вы хотите получить двоичный файл с названием «test.exe», то это и есть ваш целевой объект. Зависимости – это зависимости проекта, в том числе утилиты среды, например, установленный компилятор С++, имеющийся npm и т.д. Правила задают то, как вы из исходного объекта должны получить целевой. Это могут быть используемые вами команды. Система сборки в рамках ее правил может быть настроена для тестирования вашего приложения, генерации отчетов о покрытии кода тестами и контроля качества кода перед сборкой. Однако по умолчанию система сборки имеет ручное управление и является локальной. То есть вы должны запускать ее самостоятельно, а вывод производится только на вашем локальном компьютере.  Итак… а что, если вы хотите, чтобы несколько разработчиков могли постепенно выпускать версии вашего приложения? Здесь вам пригодиться CI/CD! Системы непрерывной интеграции Если коротко, то непрерывная интеграция (CI – Continuous Integration) – это парадигма, при которой вы регулярно проверяете наличие изменений в программном продукте. CI-система автоматически собирает и тестирует каждое изменение, чтобы избежать различных проблем, которые могут возникнуть при их выпуске.  Непрерывная доставка (CD – Continuous Delivery) – это метод автоматизации процесса выпуска. Выпуски основных версий автоматически развертываются для подготовки и производства, обеспечивая, таким образом, автоматизированный процесс выпуска. Непрерывное развертывание (CD – Continuous Deployment) идет на шаг впереди относительно непрерывной доставки. Этот метод подразумевает что каждое изменение, если оно прошло все этапы производственного процесса, будет развернуто автоматически, не дожидаясь прямого одобрения. Это довольно широкое понятие, поэтому на данном этапе мы будем называть системы, использующие эти практики, системами непрерывной интеграции. Система непрерывной интеграции (для краткости CI) – это система сборки в облаке, которая активирует систему сборки проекта автоматически или по запросу. Это основа успеха любой agile-команды. CI состоит из трех основных компонентов: Триггеры Действия Наборы правил Триггеры – это события, прослушиваемые CI, которые запускают системы сборки. Это может быть коммит в ветке main, запрос на включение изменений для предварительного просмотра функций и т.д. У каждой платформы может быть несколько событий такого рода. Действия – это команды и сценарии, которые запускаются, когда срабатывает триггер. На языке системы это может звучать так: «Сборка проекта должна быть произведена после того, как в ветке main будет сделан коммит». Наборы правил – это конфигурации, которые устанавливают триггеры и действия, установку среды, переменные среды, системы сборки и зависимости системы. Это язык системы. Стоит отметить, что в одной CI может быть несколько систем сборки, у каждой из которых есть свои целевые объекты и правила.  Вот примеры CI, с которыми мы встречаемся ежедневно, - TravisCI, Jenkins, CircleCI, GitHub Actions и GitLab CI/CD. Ниже приведен пример набора правил GitHub Actions, который отвечает за выпуск новых версий программы и их отправку в GitHub Releases: on:  push:    branches:      - main // will start the CI when a push to branch main is made jobs:  release_linux:    runs-on: ubuntu-latest // must be run on ubuntu@latest    steps:      - name: check out git repository        uses: actions/checkout@v1      - name: install Node.js, npm and yarn // required env tools        uses: actions/setup-node@v1      - name: install deb packages // required env dependencies        run: sudo apt-get install fakeroot dpkg rpm      - name: build and release app        uses: kl13nt/action-electron-forge@master        with:          // release to github releases after successful build          release: ${{ startsWith(github.ref, 'refs/tags/v') }} Пример набора правил Я опустил довольно много вещей, связанных с конфигурацией, но идею вы поняли. В качестве триггера я установил коммит в ветке main, а в качестве действия – клонирование репозитория проекта, установку NodeJS, npm, yarn и других зависимостей среды. Этап сборки запустит систему сборки npm-scripts, которая проанализирует и протестирует код прежде, чем он будет собран. После чего CI отправит получившиеся двоичные файлы на страницу проекта в GitHub Releases. При отправке проекта в CI в игру также вступает файл блокировки! Если CI установит версии зависимостей, которые отличаются от тех, которые установлены у вас локально, то это может привести к сбою. Именно поэтому для CI (и для разработчиков) необходим файл блокировки. В таком случае вы сможете быть уверены в том, что код, который работал на вашем локальном компьютере, будет работать и в CI. Заключение Если вы проделали весь это путь, то я надеюсь, что он был для вас захватывающим (и не таким уж сложным!).
img
В данной статье будет проведена кластеризация заранее подготовленного корпуса текстов. Он получен в результате работы программы-краулера, собиравшего новостные статьи с сайта arstechnica.com, присваивая каждому собранному тексту тему, к которой он был приписан на сайте. В ходе работы будет проведена кластеризация собранных текстов и визуализированы ключевые слова и максимально близкие к ним по смыслу на основании алгоритма word2vec. Наработки, освещенные в данной работе, могут быть использованы в беспрерывном анализе сайтов по поступающим адресам с целью автоматизации поиска данных по каким-либо критериям. Теория Лемматизация – это процесс преобразования слова в его базовую форму, которая учитывает контекст (в отличие от стемминга (stemming), который находит основу слова, не учитывая контекст). Wordnet – это большая лексическая база данных английского языка для установления структурированных семантических отношений между словами. Библиотека предлагает возможности лемматизации. Word2vec — это инструмент для расчета векторных представлений слов, который реализует основные архитектуры — Continuous Bag of Words (CBOW) и Skip-gram. Суть в том, что на вход подается текст, а на выходе мы получаем набор векторов слов. Используется для нахождения связей между контекстами. CBOW и Skip-gram — нейросетевые архитектуры, которые описывают, как именно нейросеть «учится» на данных и «запоминает» представления слов. Принципы у обоих архитектур разные. Принцип работы CBOW — предсказывание слова при данном контексте, а skip-gram наоборот — предсказывается контекст при данном слове. Практическая часть Сначала нужно считать корпус из ранее подготовленного файла и вывести краткие сведения о нем, чтобы убедиться, что все верно: Убираем из текстов знаки препинания и слова, которые слишком часто применяются и часто не несут смысловой нагрузки (так называемые стоп-слова), а именно предлоги, артикли, частицы, часть местоимений и некоторые формы вспомогательных глаголов: После необходимо разбить корпус на две выборки: обучающую и тестовую. С помощью обучающей выборки предполагается обучить метод векторизации и кластеризатор, а с помощью тестовой – проверить результаты их работы. С помощью параметра test_size можно задать соотношение размеров выборок. Затем можно приступить к векторизации текстов выборок. Количество признаков установлено на 500 и после этого сделано усреднение длин векторов. Обучив векторизатор, можно посмотреть наиболее близкие по контексту слова. Эта функция будет использована далее для визуализации Wordcloud. Для визуализации результатов кластеризации нужно выделить 2 главных признака и вывести координаты точек, исходя из значений двух выделенных параметров. Наконец, можно приступить к визуализации облака слов. Оно строится на основании веса каждого слова в корпусе. А так как в качестве корпуса подается топ-100 слов, семантически близких к слову car, то данное облако полностью состоит из слов, близких к car по мнению word2vec. Заключение В заключение нужно отметить, что, хотя данная кластеризация прошла относительно успешно, что видно из приведенных метрик и общему виду кластеров (их можно легко отделить друг от друга, в общей своей массе каждый из них имеет крайне малое количество своих представителей на территории другого кластера), все же можно подобрать лучшие параметры. Также повышению качества будет способствовать увеличение размеров корпуса и ручная доработка корпуса стоп-слов и пунктуации, хотя стоит отметить, что они и в стандартном виде работают достаточно эффективно для столь небольшой обучающей выборки (5952 текста о 5 разных, иногда пересекающихся, темах).
ЗИМНИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59