По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
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
В нашей базе знаний очень много материалов посвящено CRM – системам. Оно и понятно, ведь на сегодняшний день CRM – это одно из самых распространенных, доступных и необходимых решений для современного бизнеса. Сегодня мы расскажем об одной из таких систем, которая была разработана нашими партнерами – amoCRM. amoCRM – это универсальная система взаимоотношений с клиентами, ориентированная на малый и средний бизнес, главным предназначением которой, является учет и систематизация всех клиентов, задач, продаж и сделок в компании. Другими словами, amoCRM это некая реляционная база данных, которую заполняют менеджеры отдела продаж, занося туда всю информацию о клиенте, полученную после первичного контакта, будь то обратная форма связи на сайте, письмо на почту или телефонный звонок. Разработчики amoCRM сделали свой продукт очень удобным, многофункциональным и совместимым с другими решениями, а благодаря открытому API и виджетам любой партнер или клиент может расширить возможности amoCRM в соответствии с его нуждами и пожеланиями. Одной из главных особенностей amoCRM является установка, а точнее ее отсутствие. То есть в отличие от многих других решений, amoCRM не имеет дистрибутива, ее не поставляют на диске и нельзя скачать по ссылке, так как это SaaS (Software As A Service) продукт. Поэтому за его постоянной работоспособностью и своевременным обновлением следят непосредственно специалисты компании amoCRM, а клиентам остается только зарегистрироваться на сайте и начать пользоваться. После успешной регистрации, клиента встречает дружелюбный и интуитивно понятный интерфейс amoCRM, содержащий 6 вкладок: Рабочий стол Сделки Контакты Задачи Аналитика Настройки (Видны только пользователю с правами администратора) Здесь нужно уделить некоторое время терминологии amoCRM, которая, впрочем, может быть Вам уже знакома, однако лишним это не будет, так как в процессе работы с amoCRM (да и любой другой CRM системой) данные термины будут фигурировать очень часто. Лид (lead) – потенциальный клиент Контакт – данные, по которым можно связаться с клиентом (тел, email, fax, Skype) Сделка – двусторонний договор на предоставление чего либо Задача - напоминание ответственному менеджеру о чём либо (позвонить, написать, встретиться с клиентом) Воронка продаж – графическое представление процесса продажи товара или услуги, состоящее из нескольких этапов и показывающее на каком этапе отсеивается большая часть клиентов В терминологии amoCRM задачи, сделки, контакты и прочие термины, называются “сущностями” и представляют из себя таблицы данных, которые так или иначе могут быть связаны между собой образуя единую реляционную базу данных. Рассмотрим каждую вкладку amoCRM подробнее. Рабочий стол Данная вкладка, по сути, является окном самой актуальной информации в Вашей компании. Здесь отображаются самые последние контакты, сделки, события и задачи, добавленные в CRM, а также их текущий статус: первый контакт, переговоры, на согласовании и др. Кроме того существует возможность поиска и сортировки событий по любому периоду времени и другим критериям. Рабочий стол позволяет также самостоятельно добавить новую задачу или контакт и посмотреть текущее состояние воронки продаж. Сделки На данной вкладке отображаются все продажи, которые проводятся в компании. Их можно отсортировать, например, отобразив только сделки, которые ведете Вы или сделки, по которым не назначены/просрочены задачи и т.п. Для каждой сделки отображается следующая информация: Название (Например, название предоставляемой услуги) Ответственный менеджер (Человек из Вашей компании, ведущий данную сделку) Основной контакт (Человек со стороны клиента) Компания (Юридическое название компании, с которой ведется сделка) Статус (Текущий статут сделки в воронке продаж: завершена, отклонена и т.п) Бюджет (Объем денежных средств, выделенных на данную сделку) Сделки можно посмотреть в виде и списка и в виде воронки. В виде списка В виде воронки Если база сделок уже имеется, то ее можно просто импортировать на этапе внедрения AmoCRM. Также на данной вкладке можно создать новую сделку, добавить к ней тэг или примечание. Контакты Данная вкладка содержит все контакты всех клиентов Вашей компании, которые можно отсортировать по наличию или отсутствию по ним задач, просроченным задачам и так далее. На данной вкладке можно также добавить новый контакт, самостоятельно заполнив всю необходимую информацию. Задачи На данной вкладке находятся все задачи, которые были заведены за время работы amoCRM. Кроме того, можно создать новую задачу, заполнив следующие поля: Срок выполнения Контакт или сделка, к которой относится задача Ответственный менеджер Тип задачи (связаться с клиентом, выслать КП и т.п) Примечание Аналитика Данная вкладка содержит 5 внутренних вкладок с разными типами отчетности: Анализ продаж Показывает сколько в среднем сделки находятся в каждом из статусов воронки продаж. Сводный отчет Содержит отчет обо всех открытых сделках и показывает на каком этапе воронки продаж они находятся. Отчет по сотрудникам Анализирует конкретного менеджера и его загруженность, основываясь на данных анализа его сделок, задач и контактов. Список событий Содержит отчет обо всех действиях, которые были совершены за время пользования amoCRM Настройки Вкладка для администратора системы. Здесь можно изменить название и адрес Вашего аккаунта, часовой пояс и валюту, настроить список IP-адресов, которым будет разрешен доступ в систему и ее API, дополнить или изменить статусы сделок, поменять их цвет, добавить новые поля в карточки сделок, контактов и компаний, посмотреть свой тарифный план и срок его завершения, добавлять в систему новых пользователей, настраивать им права, добавлять их в отделы и группы, назначать отделам и группам руководителя. Во вкладке История посещений содержится лог авторизаций. Это информация о посещении пользователями CRM Вашего аккаунта, такая как: дата, имя пользователя, браузер и IP адрес, с которого пользователь зашёл в аккаунт. Отдельно нужно сказать о вкладке Виджеты. Данная вкладка содержит список доступных и рекомендованных виджетов с подробным описанием каждого для расширения возможностей amoCRM. Виджеты позволяют интегрировать amoCRM с другими приложениями, например IP-телефонии или приложениями SMS и Email-рассылок и сервисами online чатов. Если в Вашей компании есть разработчик, он может написать свой виджет в соответствии с особенностями Вашего бизнеса. Несмотря на довольно объемную многофункциональность,amoCRM очень удобна и проста в работе. Она не требует дополнительных установок и настроек, а благодаря бесплатным мобильным приложениям для Android и iOS является полностью мобильной системой, избавляя Вас от необходимости постоянно находиться за стационарным компьютером.
img
Привет! Сегодня мы оговорим немного о базовой сетевой безопасности, а именно о Port-Security и о том, как его настроить на коммутаторах Cisco. Для начала разберемся, что же вообще такое Port-Security. Port-Security – это функция коммутатора, при помощи которой мы можем указать каким устройствам можно пропускать трафик через определенные порты. Устройство определяется по его MAC-адресу. Эта функция предназначена для защиты от несанкционированного подключения к сети и атак, направленных на переполнение таблицы MAC-адресов. При помощи нее мы можем указывать конкретные адреса, с которых разрешен доступ или указывать максимальное количество MAC-адресов, которые могут передавать трафик через порт. Типы Port-Security Существует несколько способов настройки port-security: Статические MAC-адреса – MAC-адреса, которые вручную настроены на порту, из режима конфигурации порта при помощи команды switchport port-security mac-address [MAC-адрес] . MAC-адреса, сконфигурированные таким образом, сохраняются в таблице адресов и добавляются в текущую конфигурацию коммутатора. Динамические MAC-адреса - MAC-адреса, которые динамически изучаются и хранятся только в таблице адресов. MAC-адреса, сконфигурированные таким образом, удаляются при перезапуске коммутатора. Sticky MAC-адреса - MAC-адреса, которые могут быть изучены динамически или сконфигурированы вручную, затем сохранены в таблице адресов и добавлены в текущую конфигурацию. Sticky MAC-адреса Если необходимо настроить port-security со sticky MAC-адресами, которые преобразуются с из динамически изученных адресов и добавляются в текущую конфигурацию, то необходимо настроить так называемое sticky изучение. Для того чтобы его включить необходимо на интерфейсе коммутатора выполнить команду switchport port-security mac-address sticky из режима конфигурации интерфейса. Когда эта команда введена, коммутатор преобразует все динамически изученные MAC-адреса (включая те, которые были динамически изучены до того, как было включено sticky обучение) к sticky MAC-адресам. Все sticky MAC-адреса добавляются в таблицу адресов и в текущую конфигурацию. Также sticky адреса можно указать вручную. Когда sticky MAC-адреса настроены при помощи команды switchport port-security mac-address sticky [MAC-адрес], все указанные адреса добавляются в таблицу адресов и текущую конфигурацию. Если sticky MAC-адреса сохранены в файле конфигурации, то при перезапуске коммутатора или отключении интерфейса интерфейс не должен будет переучивать адреса. Если же sticky адреса не будут сохранены, то они будут потеряны. Если sticky обучение отключено при помощи команды no switchport port-security mac-address sticky , то эти адреса будут оставаться в таблице адресов, но удалятся из текущей конфигурации. Обратите внимание, что port-security не будут работать до тех пор, пока не будет введена команда, включающая его - switchport port-security Нарушение безопасности Нарушением безопасности являются следующие ситуации: Максимальное количество MAC-адресов было добавлено в таблицу адресов для интерфейса, а устройство, MAC-адрес которого отсутствует в таблице адресов, пытается получить доступ к интерфейсу. Адрес, полученный или сконфигурированный на одном интерфейсе, отображается на другом интерфейсе в той же VLAN. На интерфейсе может быть настроен один из трех режимов реагирования при нарушении: Protect - когда количество MAC-адресов достигает предела, разрешенного для порта, пакеты с неизвестными исходными адресами отбрасываются до тех пор, пока не будет удалено достаточное количество MAC-адресов или количество максимально допустимых адресов для порта не будет увеличено. Уведомление о нарушении безопасности отсутствует в этом случае. Restrict – то же самое, что и в случае Protect, однако в этом случае появляется уведомление о нарушении безопасности. Счетчик ошибок увеличивается Shutdown – стандартный режим, в котором нарушения заставляют интерфейс немедленно отключиться и отключить светодиод порта. Он также увеличивает счетчик нарушений. Когда порт находится в этом состоянии (error-disabled), его можно вывести из него введя команды shutdown и no shutdown в режиме конфигурации интерфейса. Чтобы изменить режим нарушения на порту коммутатора, используется команда port-security violation {protect | restrict |shutdown} в режиме конфигурации интерфейса. .tg {border-collapse:collapse;border-spacing:0;} .tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;} .tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;} .tg .tg-fymr{font-weight:bold;border-color:inherit;text-align:left;vertical-align:top} .tg .tg-0pky{border-color:inherit;text-align:left;vertical-align:top} Режим реагирования Передача траффика Отправка сообщения syslog Отображение сообщения об ошибке Увеличение счетчика нарушений Выключение порта Protect Нет Нет Нет Нет Нет Restrict Нет Да Нет Да Нет Shutdown Нет Нет Нет Да Да Настройка Рассмотрим пример настройки: Switch#interface fa0/1 – заходим в режим конфигурации порта Switch(config-ig)#switchport mode access – делаем порт access Switch(config-ig)#switchport port-security – включаем port-security Switch(config-ig)#switchport port-security maximum 50 – задаем максимальное количество адресов на порту Switch(config-ig)#switchport port-security mac-address sticky – включаем sticky изучение Если мы не будем ничего уточнять и просто включим port-security командой switchport port-security в режиме конфигурации интерфейса, то максимальное количество адресов на порту будет один, sticky изучение будет выключено, а режим нарушения безопасности будет shutdown. Проверка порта Чтобы отобразить параметры port-security используется команда show port-security [номер_интерфейса] . Чтобы отобразить все защищенные MAC-адреса используется команда show port-security address.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59