По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Перечисления, или перечисляемые типы данных, - это список постоянных значений с именами, которые удобны для разработчиков. В программировании они нужны для того, чтобы определить набор предопределенных значений, которые может принимать переменная. Определение списка значений Перечисления – это список значений, где каждое значение уникально. В перечислении не может быть двух значений с идентичными именами. Это весьма полезно, если нужно определить все возможные варианты значений, которые может обрабатывать функция.  Например, у вас есть перечисление под названием «Fruits». В нем хранится список фруктов, которые понятны для приложения. Именно в этом и есть ключевое отличие перечисления от использования строки для того, чтобы представить эту переменную, – строка может иметь бесконечное число возможных значений, а это перечисление – только три.  Это перечисление вы можете использовать в своем коде, например, для того, чтобы проверить, соответствует ли тип пользовательского ввода элементу Apple, или для передать его оператору switch/case в качестве аргумента для того, чтобы выполнить определенные действия для каждого типа возможного значения.  С точки зрения внутренней структуры перечисления сами по себе являются значениями. Это, конечно, зависит от реализации языка, но, например, в C# перечисления по умолчанию являются целыми значениями. Значения по умолчанию начинаются с 0, 1, 2, 3 и т.д., но их можно изменить вручную. Можно установить определенное значение для каждого элемента перечисления. Например, это могут быть коды состояния HTTP: Они могут преобразовываться из значения в перечисление и наоборот с помощью простого приведения типов: Перечисления не просто полезны для определения набора элементов, но они также неплохо помогают разработчикам. Даже если вы конвертируете данные в строковый или целочисленный тип перед тем, как отправить их в API, использования перечислений в вашей кодовой базе в любом случае обеспечит большую гибкость и приведет ваш код в порядок.  К тому же, наличие выпадающих списков с автозаполнением со списком возможных значений может помочь не только вам, но и любому, кто будет работать с вашей кодовой базой в дальнейшем. Никто не хочет сопровождать программный код, который в качестве аргументов принимает строки и выполняет случайные действия, основываясь на входных данных. Использование перечислений, напротив, строго определяет то, как себя будет вести приложение.  Недостатки использования перечислений Основной недостаток перечислений заключается в том, что, как только они перестают находиться в вашей кодовой базе, они теряют свое особое значение. Например, у вас есть API, в котором вы сохраняете и отправляете данные. Для начала вам необходимо сериализовать перечисление, которое, скорее всего, по умолчанию принимает базовые значения 0, 1, 2 и т.д. Некоторые языки программирования поддерживают перечисления с базовыми строковыми значениями или настраивают правила сериализации перечислений так, чтобы сгладить эту проблему.  Проблемой может стать и изменение перечислений. Как только вы начинаете использовать перечисление, вы не можете больше менять порядок элементов. У вас есть право только добавить элементы в конец списка. В противном случае хранящиеся данные, которые используют старую версию перечисления, перестанут быть актуальными и будут искажены.  Перечисления как флаги Еще одно популярное направление использования перечислений – это определение битовых флагов. Это достаточно продвинутая концепция, но по сути речь идет о том, что каждое значение перечисления – это логическое значение. Все эти перечисления можно хранить вместе в одном целом числе и использовать для выполнения быстрого поиска логических данных. Это действительно работает, потому что каждое значение перечисления соответствует разным битам базового числа. Для двоичного представления значения перечисления будут следующие: 0, 1, 2, 4, 8, 16 и т.д. И вы можете соединить их вместе, чтобы получить список логических значений.  Почему именно такой вариант, а не несколько логических значений? Что ж, во-первых, это экономит место, а это в некоторых ситуациях (когда у вас их много) может быть очень на руку. Но, что еще важнее, при таком подходе можно очень быстро получить доступ к каждому значению, особенно если вам нужно получить доступ к нескольким значениям. Например, вы хотите проверить, выходной сегодня или нет. Вы можете проверить суббота сегодня или воскресенье ( Saturday | Sunday ), и все это из того же байта, что был загружен в память. Центральному процессору необходимо извлечь лишь один элемент, чтобы получить список всех флагов. 
img
Беспроводные решения вендора MikroTik для сегмента SOHO (Small Office, Home Office) - являются крайне универсальными, и, кроме того, они крайне гибки в плане настроек беспроводных интерфейсов в “простом” режиме. SOHO продукты - продукты для маленького и/или домашнего офиса Однако, присутствует также “продвинутый” режим, в котором можно произвести более качественную настройку многих фич. Во многих SOHO моделях, к примеру - RB-750 и RB-951 уже установлены приемлемые заводские настройки, но если произвести несколько изменений - качество подключения может сильно возрасти и, более того, позволить одновременное подключение большего количества пользователей. Это может сыграть роль, если вы используете SOHO оборудование в небольшом филиале, в котором более десяти пользователей. Особенно учитывая тот факт, что все они используют смартфоны, планшеты и ноутбуки - нагрузка на сеть растет, и, если беспроводная инфраструктура настроена некорректно, все признаки плохого подключения будут видны невооруженным взглядом. Что делать? Следующие параметры могут сильно улучшить качество подключения: frequency-mode=regulatory-domain country=russia frequency=auto channel-width=20mhz wireless-protocol=802.11 distance=indoors Для того чтобы применить эти настройки, просто скопируйте и вставьте команду ниже: Данная команда предназначена для маршрутизаторов RB751/951 /interface wireless set wlan1 mode=ap-bridge wireless-protocol=802.11 frequency=auto band=2ghz-b/g/n channel-width=20mhz distance=indoors frequency-mode=regulatory-domain country="russia" Очевидно, что первый параметр отвечает за регион - в нашем случае, это Россия. Кроме того, в настоящий момент некоторые из этих опций являются стандартными в последней версии RouterOS, однако, почему-то не всегда они установлены корректно. Также, детальную информацию о данных настройках не всегда можно найти в документации MikroTik, но, по опыту, эти настройки действительно улучшают производительность беспроводной сети. Проверить производительность вашей сети можно проверить на вкладке “Status” информации о беспроводном интерфейсе, вам нужно поле Overall Tx CCQ (Client Connection Quality). Ниже пример на одном из RB-951 - обратите внимание на очень высокий показатель 97%: Однако, при установке более новых моделей RB-951 со стоковыми настройками, чаще всего был замечен показатель в районе CCQ < 60%, и это явный знак того, что есть куда двигаться в плане качества подключения. Заключение Мы рекомендуем мониторить CCQ в течение нескольких часов на загруженной беспроводной сети, чтобы определить средний уровень, и, затем, применить рекомендованные настройки по очереди, чтобы понять, как они влияют на показатель. Не все из этих настроек универсальны для всех инсталляций, но если вы заметите улучшение CCQ на 10-20% - пользователи обязательно это оценят.
img
Привет, друг! Сегодня в статье мы расскажем, как рассчитать IP-адрес подсети с помощью инструмента ipcalc. При управлении сетью, несомненно, придется иметь дело с подсетями. Некоторые сетевые администраторы могут довольно быстро выполнять двоичные вычисления, чтобы определить маску подсети. Тем не менее, другим может потребоваться некоторая помощь, и здесь инструмент ipcalc очень пригодится. Ipcalc на самом деле делает намного больше - он принимает на вход IP-адрес и маску сети и на выходе вы получаете адрес сети, Cisco wildcard маску, широковещательный адрес, минимальный и максимальный хост и общее количество хостов. Вы также можете использовать его в качестве учебного пособия для представления результатов подсетей в простых для понимания двоичных значениях. Некоторые из применений ipcalc: Проверить IP-адрес Показать рассчитанный широковещательный адрес Отображение имени хоста, определенного через DNS Показать сетевой адрес или префикс Как установить ipcalc в Linux Чтобы установить ipcalc, просто запустите одну из приведенных ниже команд в зависимости от используемого дистрибутива Linux. $ sudo apt install ipcalc Пакет ipcalc должен автоматически устанавливаться в CentOS / RHEL / Fedora, и он является частью пакета initscripts, но если по какой-то причине он отсутствует, вы можете установить его с помощью: # yum install initscripts #RHEL/CentOS # dnf install initscripts #Fedora Как использовать ipcalc в Linux Ниже вы можете увидеть несколько примеров использования ipcalc. Получить информацию о сетевом адресе: # ipcalc 192.168.20.0 Результат примера: Address: 192.168.20.0 11000000.10101000.00010100. 00000000 Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000 Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111 => Network: 192.168.20.0/24 11000000.10101000.00010100. 00000000 HostMin: 192.168.20.1 11000000.10101000.00010100. 00000001 HostMax: 192.168.20.254 11000000.10101000.00010100. 11111110 Broadcast: 192.168.20.255 11000000.10101000.00010100. 11111111 Hosts/Net: 254 Class C, Private Internet Рассчитайте подсеть для 192.168.20.0/24. # ipcalc 192.168.20.0/24 Результат: Address: 192.168.20.0 11000000.10101000.00010100. 00000000 Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000 Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111 => Network: 192.168.20.0/24 11000000.10101000.00010100. 00000000 HostMin: 192.168.20.1 11000000.10101000.00010100. 00000001 HostMax: 192.168.20.254 11000000.10101000.00010100. 11111110 Broadcast: 192.168.20.255 11000000.10101000.00010100. 11111111 Hosts/Net: 254 Class C, Private Internet Рассчитайте одну подсеть с 10 хостами: # ipcalc 192.168.20.0 -s 10 Результат: Address: 192.168.20.0 11000000.10101000.00010100. 00000000 Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000 Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111 => Network: 192.168.20.0/24 11000000.10101000.00010100. 00000000 HostMin: 192.168.20.1 11000000.10101000.00010100. 00000001 HostMax: 192.168.20.254 11000000.10101000.00010100. 11111110 Broadcast: 192.168.20.255 11000000.10101000.00010100. 11111111 Hosts/Net: 254 Class C, Private Internet 1. Requested size: 10 hosts Netmask: 255.255.255.240 = 28 11111111.11111111.11111111.1111 0000 Network: 192.168.20.0/28 11000000.10101000.00010100.0000 0000 HostMin: 192.168.20.1 11000000.10101000.00010100.0000 0001 HostMax: 192.168.20.14 11000000.10101000.00010100.0000 1110 Broadcast: 192.168.20.15 11000000.10101000.00010100.0000 1111 Hosts/Net: 14 Class C, Private Internet Needed size: 16 addresses. Used network: 192.168.20.0/28 Unused: 192.168.20.16/28 192.168.20.32/27 192.168.20.64/26 192.168.20.128/25 Если вы хотите убрать двоичный вывод, вы можете использовать опцию -b, как показано ниже. # ipcalc -b 192.168.20.100 Результат: Address: 192.168.20.100 Netmask: 255.255.255.0 = 24 Wildcard: 0.0.0.255 => Network: 192.168.20.0/24 HostMin: 192.168.20.1 HostMax: 192.168.20.254 Broadcast: 192.168.20.255 Hosts/Net: 254 Class C, Private Internet Чтобы узнать больше об использовании ipcalc, вы можете использовать: # ipcalc --help # man ipcalc
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59