По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Даже если вы новичок в разработке, вы, возможно, слышали о TypeScript. Это относительно новый язык программирования, который был разработан компанией Microsoft и который завоевал сердца многих с самого момента своего выпуска в 2012 году. Что интересно, TypeScript по сути не является самостоятельным языком программирования. На самом деле TypeScript считается расширенной версией языка программирования JavaScript. TypeScript – это расширенная версия JavaScript Расширенная версия языка программирования – это некое расширение, которое добавляет новые функции и расширяет возможности языка. Иными словами, любая написанная на JavaScript программа будет работать и на TypeScript. В этой статье мы вкратце расскажем, что такое TypeScript, зачем он нужен, а также приведем некоторые ключевые отличия, за счет которых он выделяется на фоне JavaScript. Что такое JavaScript? JavaScript ES6 (который также известен как ECMAScript 6) – это клиентский кроссплатформенный прототип-ориентированный язык описания сценариев; создан Бренданом Эйхом. JavaScript широко применяется в разработке клиентской части динамических интерактивных веб-приложений. JavaScript – это язык  с динамической типизацией , то есть проверка соответствия типов происходит в процессе компиляции. Языки с динамической типизацией делают акцент на эффективности работы разработчиков, то есть для того, чтобы довести проект до ума разработчиком потребуется  меньший объем кода .  Языки с динамической типизацией также склонны быть более гибкими, но предлагают код, который, как правило, менее оптимизирован, поскольку для того, чтобы определить, есть ли в коде какие-то ошибки, его  нужно сначала запустить. JavaScript запускается непосредственно в веб-браузере, поэтому для выполнения кода JavaScript не нужны никакие дополнительные ресурсы. Однако отладка череды ошибок за один раз, а не по ходу дела, все равно может стать непомерной задачей.  Примечания : к языкам с динамической типизацией также относятся Python, PHP, Perl и Ruby. После своего появления в 1995 году JavaScript прошел несколько стадий улучшения своей функциональности, что привело к упрощению разработки программного обеспечения. И теперь его можно использовать даже для разработки интерактивных игр! Изначально JavaScript подразумевался как очень простой язык для встраивания в веб-страницу в виде небольших фрагментов кода. А все потому, что в то время веб-браузеры могли обрабатывать всего несколько десятков строк кода без вреда для скорости работы.  Современные же браузеры могут запускать приложения на JavaScript с  сотнями тысяч строк кода.  JavaScript также имеет преимущество благодаря наличию большого исполненного энтузиазма сообщества, подробной документации и большого количества библиотек и фреймворков. Кроме того,  JavaScript поддерживает множество клиентских API , которые могут позволить сократить объем кода, который должен писать разработчик программного обеспечения. Именно поэтому большая часть команд разработки выбирает именно JavaScript. И все же изначально JavaScript не предназначался для использования в больших проектах. Поэтому, несмотря на то, что небольшие проекты можно отладить без проблем, попытка отладить большой проект на JavaScript может оказаться неудачной, а сам процесс трудоемким и длительным.  Примечание : возможно, вы не думали о JavaScript как об объектно-ориентированном языке программирования, но на самом деле он отлично поддерживает ООП! Что такое TypeScript? TypeScript – это язык программирования с открытым исходным кодом, но изначально в 2010 году он выпускался как внутренний продукт Microsoft. TypeScript стал доступен для всех на GitHub в конце 2012 года.  Так как TypeScript считается строгой расширенной версией ECMAScript 2015, то любая программа на JavaScript также может быть рассмотрена как программа на TypeScript. В отличие от JavaScript, TypeScript – это язык программирования  со статической типизацией . Так как это  статический модуль контроля типов, он проверяет поведение определенных переменных перед запуском вашей программы. Это будет так, даже если вы объявляете переменные без указания типа. В таких случаях TypeScript может автоматически назначить типы объявленным переменным. Такой маневр известен как  «выведение типов» и является встроенной функцией и для других языков, например, Kotlin и Scala.  Как только TypeScript назначит тип переменной, он будет использовать его на протяжении всего кода. Такой подход может поспособствовать улучшению согласованности и может помочь устранить потенциальные ошибки еще  до начала компиляции. Однако у всего есть своя цена. Здесь это потеря гибкости, к которой привыкли разработчики JavaScript. Примечание : к языкам со статической типизацией относятся Java, C и C++. Если программист использует язык со статической типизацией, он должен указать тип данных для каждой переменной, которую он объявляет.  В основе TypeScript было 11 целей разработки: Компания Microsoft определила 11 ключевых моментов, которые поспособствовали развитию TypeScript. Статическое определение потенциальных ошибок. Возможность структурирования больших частей кода.  Возможность избежать увеличения времени выполнения программы.  Компиляция в чистый и распознаваемый код на JavaScript. Создание языка, который был бы пригодным для компоновки и на котором было бы легко размышлять. Сохранение полной совместимости с текущими и будущими версиями JavaScript. Сохранение поведения всего кода на JavaScript во время выполнения. Возможность избежать добавления синтаксических структур на уровне выражений. Сделать TypeScript согласованным, и чтобы он допускал возможность стирания. Сделать кроссплатформенный инструмент разработки. Сделать так, чтобы изменение языка не нарушали прошлые версии TypeScript. Преимущества TypeScript TypeScript превосходит JavaScript в двух вещах: TypeScript компилируется в JavaScript : TypeScript преобразует и заменяет свой собственный код действующим кодом на JavaScript в процессе компиляции, позволяя тем самым использовать дополнительные возможности ECMAScript в более старых версиях браузеров, которые обычно их не поддерживают. TypeScript может применять статическую типизацию : статическая типизация выявляет потенциальные проблемы на более ранних этапах жизненного цикла разработки, за счет того, что всем объявленным переменным назначаются типы данных.  Примечание :  полифил – это фрагмент кода (как правило, написанный на JavaScript), который стремиться воспроизвести методы новой функции. Полифиллинг позволяет более старым версиям браузеров поддерживать новые функции, которые обычно ими не поддерживаются.  Транспайлер конвертирует исходный код на одном языке в исходный код на другом языке. В таком случае методы, которые были написаны на TypeScript, компилируются в JavaScript для того, чтобы их можно было запустить в среде JavaScript.  Компилятор TypeScript имеет гибкую изменяемую конфигурацию. Есть большое количество способов регулирования различных аспектов, связанных с проверкой типов и компиляцией. Чем строже проверка, тем больше ошибок может найти компилятор TypeScript. Самая распространенная ошибка в TypeScript – это ошибка, связанная с присваиванием типов. Основная цель модуля контроля типов – убедиться, что для всех значений определены корректные типы. Дополнительные возможности Совместимость : TypeScript поддерживает практически все фреймворки и библиотеки JavaScript; в их числе: React : одностраничное приложение (SPA - single-page application), которое использует виртуальную модель DOM для того, чтобы увеличить объем памяти и улучшить производительности. Vue : написан на TypeScript и легко интегрируется в приложения.  Angular : отлично подходит для быстрого прототипирования, простого тестирования и оптимизации производительности сервера.  Синтаксический сахар : использование строго определенных типов упрощает чтение кода, так как вам не нужно гадать, к какому типу относится та или иная переменная. Всесторонняя поддержка IDE : Visual Studio Code Eclipse Atom WebStorm … и другие! Недостатки TypeScript У TypeScript есть и недостатки. Вы можете оценить их, сопоставив с преимуществами, и решить самостоятельно, подходит он вам или нет.  Вот несколько недостатков, которые следует учесть при принятии решения: Время компиляции : программы, написанные на TypeScript, выполняются быстрее, чем программы, написанные на JavaScript. Кривая обучения: TypeScript немного сложнее, чем JavaScript; для того, чтобы научиться им пользоваться, потребуется время. Несоответствие типов : так как код, написанный на TypeScript, компилируется в код JavaScript, то вы можете столкнуться с нестандартными ошибками и несоответствием типов.  Меньшая гибкость : в TypeScript переменные и параметры менее гибкие. Сравнительная таблица: TypeScript VS JavaScript TypeScript JavaScript Выпущен в 2012 году Выпущен в 1995 году Компилируется в JavaScript Самостоятельный язык Статическая типизация, со строгим контролем типов Динамическая типизация, со слабым контролем типов Компилируемый язык, не может быть выполнен прямо в веб-браузере Интерпретируемый язык, может быть выполнен прямо в веб-браузере Кривая обучения довольно крутая Легкий для изучения Доступно прототипирование Доступно прототипирование Мало документации Подробная документация Растущее сообщество с меньшим количеством ресурсов Большое сообщество разработчиков и ресурсов JavaScript Лучше всего подходит для сложных или крупных проектов Лучше всего подходит для небольших проектов Поддерживает все библиотеки JS Библиотеки JS работают по умолчанию Поддерживает модули, универсальные шаблоны и интерфейсы.  Не поддерживает модули, универсальные шаблоны и интерфейсы Настройка сборки с пакетом npm Не требуется настройка сборки Числа и строки – это интерфейсы Числа и строки – это объекты     Нужно ли мне изучить TypeScript? Если  вы новичок в веб-разработке и планируете работать над небольшими проектами , то для начала вам идеально подойдет JavaScript. Если  вы уже знакомы с JavaScript , то ответ на этот вопрос будет зависеть от того, импонируют ли вам определенные функции TypeScript как разработчику программного обеспечения. В зависимости от ситуации (и ваших приоритетов) иногда может оказаться так, что целесообразнее будет использовать JavaScript, а не TypeScript.  Например, один из самых существенных недостатков компилируемого языка, такого как TypeScript, заключается в  дополнительном времени, которое необходимо для выполнения кода . Если вашим приоритетом является сокращение времени компиляции, то лучше выбрать JavaScript. Если вы больше заботитесь о том, чтобы ваш  код был читабельным , а не о времени его компиляции, то здесь явным преимуществом будет обладать TypeScript. Примечание : возьмите себе на заметку, что разработчики TypeScript обычно получают в среднем более высокую оплату, поскольку их меньше, чем разработчиков JavaScript. И тем не менее, еще одно достижение (в виде нового изученного языка) лишним не будет! Установка Через пакет npm Для начала убедитесь, что у вас есть IDE, диспетчер пакетов Node.js (npm) и компилятор TypeScript. Node.js предоставляет среду, в которой ваш пакет TypeScript сможет работать. Затем откройте командную строку или терминал, и введите следующую команду: npm install -g typescript Если TypeScript был установлен правильно, то вы сможете проверить номер версии с помощью команды tsc –v. Теперь вы можете воспользоваться следующей командой и установить TypeScript в свой локальный проект в качестве зависимости.  npm install typescript --save-dev Через Microsoft Visual Studio Code Для начала убедитесь, что у вас установлена Visual Studio, а также приложение для веб-разработки ASP.NET. Далее : Откройте новый проект в Visual Studio. Щелкните правой кнопкой мыши на папку проекта в обозревателе решений (Solution Explorer).  Щелкните « Manage NuGet Packages » (Управление пакетами NuGet). Во вкладке « Browse » (Обзор) найдите  Microsoft.TypeScript.MSBuild . Нажмите « Install » (Установить). В том случае, если ваш проект не поддерживает NuGet, то вы можете установить расширение TypeScript в Visual Studio, перейдя сюда: Extensions -> Manage Extensions (Расширения -> Управление расширениями).  Подведем итоги Отлично! Мы рассмотрели некоторые основные возможности TypeScript, а также некоторые вопросы, связанные с выбором между TypeScript и JavaScript. Надеюсь, что это краткое введение в TypeScript было для вас информативным и заставило вас задуматься о новом проекте. Кто знает, возможно вы заходите написать его именно на TypeScript.  
img
Сталкивались ли вы задачей одновременной типовой настройки телефонный аппаратов? Например, настроить 50 штук IP – телефонов Yealink. Эта задача будет достаточно рутинной и затратной по времени. В FreePBX создан модуль End Point Manager, который позволяет создать шаблон настроек для определенных групп устройств и затем перенести его на телефонные аппараты. О нем и поговорим. /p> Пару слов про модуль End Point Manager Как уже сказано выше, модуль EPM позволяет производить автоматическую настройку различных единиц оборудования, от конечных телефонных аппаратов до шлюзов. Условно говоря, настройка модуля делится на следующие сегменты: Global Settings - глобальные настройки модуля, такие как IP – адрес Asterisk и прочие Extension Mapping - раздел, в котором сопоставляется шаблон и MAC – адрес устройства Brands - в разделе можно посмотреть марки оборудования, которые были сконфигурированы с помощью EPM Модуль является платным и стоит 75$ на 25 лет. В бесплатной версии модуля, доступна только настройка телефонов марки Sangoma. Полный перечень приведен в таблице ниже. Add Brand - добавьте необходимые брэнды оборудования, для которого вы бы хотели создать шаблон Image Management - здесь можно загрузить картинку в формате GIF, JPEG, или PNG и размером не более 20 мегабайт, которая будет использоваться на оконечных телефонов, например в роли фонового изображения. Данный функционал работает только на устройствах с поддержкой фонового изображения Basefile Edit - данный раздел позволяет менять различные значения, которые нельзя изменить через стандартные настройки телефона, например через его GUI. Представляет из себя XML – файл. Рекомендуем настраивать данный раздел только в том случае, если вы точно знаете что делаете. Custom Extensions - раздел аналогичен настройке в модуле Custom Extension Firmware Management - раздел служит для обновления прошивки телефонов. Network Scan - сетевая утилита, которая позволяет сканировать указанную сеть на предмет наличия в ней поддерживаемых устройств и уточнения их MAC - адресов Без приобретения лицензии на модуль вы сможете работать со следующими устройствами: Производитель Модель Поддержка фонового изображения Sangoma s300 Нет Sangoma s500 Да Sangoma s700 Да Sangoma Vega 50-4FXS - Sangoma Vega 50-8FXS - Sangoma Vega 3000-24FXS - Sangoma Vega 5000-24FXS - Sangoma Vega 5000-50FXS - Поддерживаемые без лицензии устройства В случае оплаты модуля, для работы будут доступны Aastra, Algo, Audio Codes, Cisco, Cortelco, CyberData, Digium, Grandstream, Mitel, Mocet, Obihai, Panasonic, Phoenix Audio, Polycom, Snom, Uniden, VTech, Xorcom и всеми любимый Yealink. Настройка Global Settings В настройках EPM переходим в раздел Global Settings: Internal IP Address - укажите IP – адрес вашего Asterisk. В нашем случае это 192.168.0.77 External IP Address - если какие-то из ваших телефонов будут подключаться к АТС из внешней сети, то в данном поле укажите внешний IP – адрес или FQDN (Fully Qualified Domain Name) Ports - в разделе будут указаны порты для WEB – доступа, порт для HTTP провижининга (автоматической настройки телефонов) и RESTful приложений Phone Admin Password - все управляемые телефоны имеют пароль для администратора. В данном поле вы можете указать его для всех устройств Phone User Password - некоторые модели телефонов, например Cisco, имеют систему авторизации для администратора через обычного пользователя. Здесь нужно указать его пароль ReSync Time - через указанное время телефоны будут обращаться к серверу на предмет изменения в их конфигурационных файлах. По умолчанию, время равно 86400 секунд, что есть 1440 минут, что в свою очередь ровняется 24 часа :) XML-API (RestAPI) Default Login - включение/выключение данной опции позволяет телефону обращаться к различным приложениям через RestAPI Extension Mapping IP Addresses - отображать ли IP – адрес устройства на этапе сопоставления телефона и внутреннего номера Extension Mapping Phone Status - отображать ли время пинга до устройства. Оба параметра замедляют работу. По окончанию настроек нажмите Save Global Настройка шаблона настроек Переходим к настройкам. Сделаем шаблон на примере производителя Sangoma. Для этого, в настройках модуля, в блоке Brands, выберем Sangoma. Для добавления нового шаблона нажимаем New Template. Производим настройки в первой вкладке, которая называется General: Template Name - даем имя для нашего шаблона. Например, New_template Default Template - будет ли данный шаблон шаблоном по умолчанию для телефонов. Выставляем Default Destination Address - в данном поле необходимо указать IP – адрес или доменное имя для нашей IP – АТС Asterisk. При нажатии на кнопки Internal или External, при сохранении, в поле будет автоматически подставлено значение внутреннего или внешнего IP – адреса АТС соответственно. Это удобно в том случае, если мы делаем разные шаблона для внутренних телефонов и для внешних. Provision Server Address - сервер, к которому телефон будет обращаться за конфигурацией. По умолчанию это наш Asterisk Provision Server Protocol - протокол, который будет использовать IP – телефон чтобы получить файл конфигурации. Оставьте в данном поле TFTP Переходим во вкладку Regional Time Zone - временная зона. Поле прибавляет, или удаляет определенное количество часов к GMT (среднее время по Гринвичу). Например, в Москве GMT +03:00 и мы выбираем +03.00 Primary Time Server - главный сервер синхронизации времени по протоколу NTP. Вы можете посмотреть список серверов в интернете Daylight Savings -опция подсказывает телефону, использовать ли настройки DST (Daylight Saving Time) – то есть сезонное время Country Tones - опция настройки гудка. В разных странах они различаются, выберите подходящий Web GUI Language - язык графического интерфейса администрирования IP - телефона LCD Display Language - язык на дисплее телефона Date Format - формат даты. Нам привычно ДД-ММ-ГГ Time Format - формат времени. Мы выбрали 24 часовой формат Двигаемся дальше и переходим во вкладку Options. Разберем здесь самые основные опции: Background Image - выберите фоновое изображение, которое ранее, было залито с помощью пункта меню Image Management Line Label - информация, которая будет отображаться о пользователе телефона на главном дисплее. Может быть следующих видов: Name - имя пользователя. Например, «Иван Петров» Extension - показывать только номер абонента. Например, «101» Name-Extension - показывать и имя и номер. Например, «Иван Петров 101» Multicast Enable - поддержка Multicast пейджинга Функционал Multicast Paging появился в 13 версии FreePBX. Если коротко, то теперь телефон может отправлять на заранее сконфигурированный широковещательный адрес пейджинг запросы. Более подробно вы можете почитать в статье про новинки FreePBX 13 Multicast Address - мультикаст адрес, о котором мы рассказали выше Dial Patterns - шаблон набора номеров для IP - телефона Ring Tone - выбрать номер звукового сопровождения для звонка (рингтон) Screen Saver - что показывать на дисплее телефона по таймауту бездействия Screen Saver Timeout Call Waiting Signal - хотите ли вы услышать звуковой сигнал, при условии того, что вы уже разговариваете с одним из абонентов и вам поступает второй звонок BLF Alert - тип индикатора BLF. Это может быть визуальное мигание, аудио сопровождение или оба сразу По окончанию настроек не забываем нажимать Save Template Соответствие телефона и шаблона После того, как мы произвели настройку шаблона его необходимо проассоциировать с телефонным аппаратом. Мы будем делать это с помощью MAC – адреса устройства. Переходим в раздел Extension Mapping и нажимаем Add Extension В столбце слева выбираем необходимый номер По середине, выбираем производителя и вводим MAC – адрес телефона В левом столбце выбираем шаблон и модель телефона Теперь, чтобы доставить на телефоны адрес TFTP сервера (адреса нашего Asterisk в данном случае), в настройках DHCP сервера необходимо настроить параметр option 150 с IP – адресом TFTP. Телефон обратиться на сервер с просьбой предоставить файл конфигурации для устройства с его MAC – адресом, которое мы создали на этапе ранее.
img
CatOS (Catalyst Operating System) – это операционная система, которая использовалась в коммутаторах Cisco в линейке Catalyst, но впоследствии была вытеснена Cisco IOS. Первоначально она называлась "XDI" от компании Crescendo Communications, Cisco переименовала ее в CatOS, когда они приобрели Crescendo в конце 1993 года. /p> CatOS работала на коммутаторах серий 200, 2948G, 4000, 4500, 5000, 5500, 6000 и 6500. CatOS все еще может работать на некоторых модульных коммутаторах Cisco, «гибридных» режимах. В гибридном режиме NMP (процессор коммутатора) запускает CatOS, а в маршрутном процессоре работает Cisco IOS. Сравнение CatOS и IOS Есть три варианта ОС для коммутаторов линейки Catalyst: CatOS, гибридный режим (hybrid) и нативный режим (Native IOS). CatOS настраивает только коммутацию второго уровня. Для коммутаторов Catalyst третьего уровня (Catalyst 6500 с MSFC - многоуровневой функциональной картой коммутатора), CatOS можно использовать для функций второго уровня, а IOS может управлять MSFC. Этот процесс называется гибридным режимом. В нативном режиме IOS управляет функциями уровня 2 и уровня 3 в коммутаторе. Новые модели Cisco Catalyst Switch (с новейшими версиями Cisco IOS) также позволяют конфигурировать через модуль веб-графического интерфейса (GUI), который представлен на HTTP-сервере, расположенном на коммутаторе Cisco Catalyst. Команда IOS ip http-server позволяет использовать эту конфигурацию. В IOS 12.x эта команда всегда включена как заводская настройка. Некоторые новейшие модели коммутатора Cisco Catalyst (называемые Catalyst Express) больше не разрешают доступ к IOS или CatOS вообще - эти коммутаторы можно настроить только с помощью графического интерфейса. Свойство CatOS Cisco IOS Конфигурационный файл Два конфигурационных файла: один для NMP, один для MSFC Один конфигурационный файл Образ ОС Два образа: один для NMP, один для MSFC Один образ Стандартный статус порта Каждый порт включен Каждый порт в выключенном состоянии Формат конфигурационных команд Команды с ключевым словом set определяет каждую конфигурационную команду Структура команд Cisco IOS с командами глобального уровня и уровня интерфейса Режим конфигурации Нет конфигурационного режима (команды set, clear и show) Команда configure terminal активирует режим конфигурации Теперь сравним команды CatOS и IOS CatOS Cisco IOS set vlan [vlan-id] [mod]/[port] interface [gigabit/fastethernet] [mod]/[port]switchportswitchport mode accessswitchport access vlan [vlan-id] set port enable [mod]/[port] interface [gigabit/fastethernet] [mod]/[port]no shutdown set port disable [mod]/[port] interface [gigabit/fastethernet] [mod]/[port]shutdown set spantree portfast interface [gigabit/fastethernet] [mod]/[port]spanning-tree portfast set port speed [mod]/[port] [auto/10/100/1000] interface [gigabit/fastethernet] [mod]/[port]speed [auto/10/100/1000] set port duplex [mod]/[port] [half/full] interface [gigabit/fastethernet] [mod]/[port]duplex [auto/full/haif] reset system reload show cam dynamic show mac-address-table dynamic show channel show etherchannel summary show port [mod]/[port] show nterface [gigabit/fastethernet] [mod]/[port] show spantree show spanning-tree show trunk show interfaces trunk show vlan show vlan show vtp domain show vtp status set system name [label] hostname [label] set spantree backbonefast spanning-tree backbonefast set spantree macreduction table spanning-terr extend system-id
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59