По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Представьте, что одним прекрасным днем вы просыпаетесь и понимаете, что ваш программный комплекс не работает, в нем есть ошибка, которую необходимо найти. Такое и в страшном сне не присниться.   Кроме того, вы понимаете, что вам нужно сравнить код двух версий, и вы вынуждены вернуться к предыдущей версии системы. Все паникуют, и это абсолютно нормально! Благо, есть такая утилита Linux под названием diff, которая прикроет вашу спину. Что такое команда  diff ? Довольно часто применяется такая операция, как сравнение файлов и поиск различий между ними. Особенно полезна такая операция в случае, если вам нужно сравнить файлы со сложным кодом или файлы конфигурации.  Вместо того, чтобы сравнивать эти файлы вручную (что может повлечь за собой человеческий фактор), вы можете воспользоваться встроенной мощной утилитой Linux под названием  diff . Кроме того, вы можете сэкономить свое время. Помимо команды  diff , у Linux также есть еще одна команда, с помощью которой вы можете применить изменения одного файла к другому, и это команда  patch . В этой статье мы подробно рассмотрим эти многофункциональные и крайне интересные команды, чтобы узнать, как их можно применять. Синтаксис команды  diff Ниже представлен синтаксис команды  diff : diff [options] file1 file2 Синтаксис diff В зависимости от изменений, команда  diff может отображать три символа: Символ Значение c CHANGE – необходимо внести изменения. d DELETE – необходимо что-то удалить. a ADD – необходимо что-то добавить.  В выводе команды  diff символ < указывает на первый файл, а символ > - на второй, который используется в качестве ссылки.  Давайте взглянем на несколько примеров, как можно использовать команду  diff . Примеры использования команды  diff Для того, чтобы показать, что файлы одинаковы, вместе с командой  diff мы используем флаг  -s . В данном примере два файла (fileA и sameAsfileA) имеют одинаковое содержимое.  В следующем примере у нас есть два файла, содержимое которых отличается. В выводе, продемонстрированном ниже, команда  diff показывает, что в файле showList_v2.js необходимо изменить строки с номерами 11 и 14, чтобы они соответствовали строкам с номерами 11 и 13 в файле showList_v1.js. Следующий вариант использования команды  diff - мой любимый. А все потому, что вы можете наглядно видеть различия.  Просто воспользуйтесь флагом  -y , как показано ниже: diff -y file1 file2 Наглядное сравнение файлов Последний пример, который бы я хотел привести – это пример унифицированного вывода. Эти выходные данные зачастую используются в качестве входных данных для команды  patch . Заодно мы посмотрим, как работает команда  patch : Унифицированный вывод, который используется в качестве входных данных для команды patch Ниже вы можете видеть несколько других полезных флагов, который можно использовать с командой  diff : -i - флаг позволяет игнорировать регистр. По умолчанию команда  diff чувствительна к регистру.  -w - флаг позволяет игнорировать пробелы в файле. По умолчанию пробелы тоже сравниваются. Синтаксис команды  patch Вы регулярно вносите изменения в свой код, и для того, чтобы обмениваться отредактированными и исправленными файлами после каждого внесенного изменения, нужно много времени, и это практически невозможно. Как правило, разработчики делятся с командой своими исправлениями в коде, поэтому они сразу же применяются.  Использование команды  patch - это самый безопасный способ передачи этих исправлений.  Давайте взглянем, как работает команда  patch : patch file_to_change < patch_file Синтаксис команды patch Примеры использования команды  patch Вот пример внесения исправлений: допустим, что у нас есть простой код JavaScript [имя файла: print_in_js,js], который печатает строку. И все-таки в этой функции печати что-то не так, и для того, чтобы выяснить, что именно, нам нужно провести тестирование. Отправляем файл print_in_js,js нашему коллеге, он его исправляет и отправляет обратно нам.  Для начала наш коллега находит неправильный тип в строке под номером 3. Он исправляет файл.  После того, как он исправил файл и убедился, что код работает, он создает «заплатку».  diff -u print_in_js.js  print_in_js_Fixed.js > patched_print_js.diff Создание «заплатки» Давайте проверим содержимое этой «заплатки»: Содержимое «заплатки» Теперь, когда у нас есть «заплатка», мы можем ее применить: patch print_in_js.js  < patched_print_js.diff Применение «заплатки» Исправленный код после применения «заплатки» И да, наш код исправлен! Заключение Создавать и применять «заплатки» с помощью команд  patch и  diff довольно легко.  Аналогичный подход используют системы контроля версий, например, Git или SVN. Изучив основы, вы с легкостью сможете понять, как работает контроль версий, и начать его использовать, ведь именно он является важным аспектом разработки программного обеспечения.
img
Функции обратного вызова (callback function) — важная часть языка программирования JavaScript. Разобравшись с ней, ваши навыки в JS значительно улучшатся. В этой стать мы подробно рассмотрим, что это такое и как использовать функции обратного вызова в JavaScript на нескольких примерах.  Что такое функция обратного вызова? В JavaScript функции являются объектами. Можем ли мы передавать функции объекты в качестве параметров? Да. Следовательно, мы также можем передавать функции в качестве параметров другим функциям и вызывать их внутри внешних функций. Звучит сложно? Давайте разберем на примере ниже: function print(callback) {     callback(); } Функция print() принимает другую в качестве параметра и вызывает её внутри. Это допустимо в JavaScript, и мы называем это «функцией обратного вызова» (callback). То есть функция, которая передается другой функции в качестве параметра, является функцией обратного вызова. Но это еще не всё. Зачем нужны функции обратного вызова? JavaScript выполняет код последовательно в порядке сверху вниз. Однако бывают случаи, когда код выполняется (или должен выполняться) после того, как происходит что-то другое, и тоже не последовательно. Это называется асинхронным программированием. Обратные вызовы позволяют убедиться, что функция не будет запущена до выполнения задачи, а будет запущена сразу после ее завершения. Это помогает нам разрабатывать асинхронный код JavaScript и защищает нас от проблем и ошибок. В JavaScript способ создания функции обратного вызова заключается в том, чтобы передать ее в качестве параметра другой функции, а затем вызвать ее обратно сразу после того, как что-то произошло или какая-то задача была выполнена.  Как создать обратный вызов Давайте начнем с простого примера. Мы хотим вывести сообщение в консоль, но оно должно появиться там через 3 секунды. const message = function() {     console.log("This message is shown after 3 seconds"); } setTimeout(message, 3000); В JavaScript есть встроенный метод «setTimeout», который вызывает функцию или оценивает выражение через заданный период времени (в миллисекундах). Так, здесь функция «message» вызывается по истечении 3 секунд. (1 секунда = 1000 миллисекунд). Другими словами, функция message вызывается после того, как что-то произошло (в данном примере прошло 3 секунды), но не раньше. Таким образом, функция message является примером функции обратного вызова. Что такое анонимная функция? В качестве альтернативы мы можем определить функцию непосредственно внутри другой функции, а не вызывать ее. Это будет выглядеть следующим образом: setTimeout(function() {     console.log("This message is shown after 3 seconds"); }, 3000); Как мы видим, функция обратного вызова здесь не имеет имени, а определение функции без имени в JavaScript называется «анонимной функцией». Она выполняет точно такую же задачу, как и в примере выше. Обратный вызов как функция-стрелка При желании вы можете написать ту же функцию обратного вызова в виде стрелочной функции ES6, которая является более новым типом функций в JavaScript: setTimeout(() => {    console.log("This message is shown after 3 seconds"); }, 3000); Что насчет событий? JavaScript — это язык программирования, основанный на событиях. Мы также используем функции обратного вызова для обработки событий. Например, представим, что мы хотим, чтобы пользователь нажал на кнопку: Click here В этом случае сообщение будет появляться в консоли только тогда, когда пользователь нажмёт на кнопку: document.queryselector("#callback-btn")    .addEventListener("click", function() {         console.log("User has clicked on the button!"); }); Здесь мы сначала выбираем кнопку по её id, а затем добавляем обработчик событий с помощью метода addEventListener. Он принимает 2 параметра. Первый — это тип события, в данном случае «click», а второй параметр — это функция обратного вызова, которая выводит сообщение в консоль при нажатии на кнопку. Как видите, функции обратного вызова также используются для обработки событий в JavaScript. Надеемся, что эта статья помогла вам лучше понять функции обратного вызова, что они делают и как с ними проще работать.  Успехов в JavaScript!
img
Линукс - как много в этом слове эмоциональной и смысловой нагрузки. А как много разных дистрибутивов входят в это семейство И частенько требуется понять, какая конкретно версия установлена и этому помогает пакет systemd, который в настоящее время имплементирован во многие дистрибутивы. Самый простой способ проверить версию Linux это просто использовать hostnamectl команду без каких-либо аргументов. Эта команда возвращает название дистрибутива, версию и кодовое название вместе с конкретной версией ядра. Довольно распространенной ошибкой является называть все семейство GNU/Linux систем просто Linux-ом. Важный момент в том, что Linux - это только ядро, а GNU - непосредственно сама система в виде набора скомпилированных библиотек и системных инструментов. GNU и Linux должны работать в тандеме для того, чтобы операционная система корректно работала. Так как одно не может существовать без другого, корректнее называть эту связку GNU/Linux или Lignux. Дополнительные способы определения Системы управления пакетами в Linux Если команда выше вам не помогла, следующим шагом будет проверка установленного пакетного менеджера, так как вероятность, что один из трех пакетных менеджеров все-таки установлен крайне высока. rpm - пакетный менеджер для систем RedHat dpkg - пакетный менеджер для систем Debian pacman - пакетный менеджер для систем Arch Таким образом, если система использует rpm, то скорее всего у вас используется RHEL, CentOS, Fedora и т.д. Если deb, то скорее всего это Ubuntu, Debian, Mint. И соответственно в случае pacman это будет Arch или Manjaro (и им подобные).Для определения пакетного менеджера нужно ввести команду $ for i in $( echo rpm dpkg pacman ); do which $i; done 2 /dev/null В случае deb и rpm она вернет следующее: /usr/bin/dpkg и /bin/rpm соответственно. Проверка версии CentOS/RHEL Самый простой способ проверки версии CentOS это чтение файла /etc/centos-release с помощью команды cat /etc/centos-release В свою очередь для RHEL нужно будет прочитать файл /etc/redhat-release Команду соответственно меняем: cat /etc/redhat-release Думаю логика здесь понятна, для Fedora нужно будет поменять команду на fedora-release - проще некуда. Проверка версии Debian, Mint и Ubuntu Для Debian - подобных систем нужно прочесть файл /etc/issue: cat /etc/issue Проверка версии Arch Проверять версию Arch не имеет смысла, так как каждый раз при запуске команды pacman -Suy ваша система автоматически обновляется до последней версии. Проверка системных параметров Проверка системной архитектуры и версии ядра Самый простой и популярный способ определения системной архитектуры и версии ядра Linux это использование команды uname с аргументом -a. То есть команда будет выглядеть следующим образом: uname - a В выводе будет указана версия ядра и разрядность архитектуры. Проверка архитектуры ЦПУ Самым простым и распространенным способом является команда: lscpu Как видно из вывода, вместе с моделью процессора и его частотой также видна его разрядность и еще много различных параметров.
ЗИМНИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59