пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅ
По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
@media screen and (max-width: 736px){
.video-container {
position: relative;
padding-bottom: 56.25%;
padding-top: 30px;
height: 0;
overflow: hidden;
}
.video-container iframe {
position: absolute;
top:0;
left: 0;
width: 100%;
height: 100%;
}}
Как думаешь, какой язык программирования сейчас самый популярный? Если погуглить, то окажется, что это Python.
А почему так, мы сейчас расскажем и покажем.
Начнем с произношения - как его называть? Питон? Писон? Пистон? Можно и так, но правильно будет Пайтон, потому что его создатель Гвидо Ван Россум, назвал его в честь популярной комедийной группы Монти Пайтон, а точнее их шоу “Летающий цирк Монти Пайтона”, так что чешуйчатые тут не причем.
Почему мы слышим про Python из каждого утюга? В чем секрет его популярности? Дело в том, что он используется не только разработчиками, а еще очень популярен среди математиков, аналитиков, ученых, сетевых инженеров, сисадминов, хакеров и даже бухгалтеров. Для программиста, такое большое сообщество — это гигантский плюс - не знаешь, как решить задачу? Спроси или найди готовое решение на Stack Overflow, там это уже проходили и обсудили.
Популярность Python также объясняет его простота освоения. Даже если ты очень далек от айти, а при виде кода у тебя потеют ладошки, то чилл - изучение пайтона не составит для тебя большой сложности - он имеет простую структуру и синтаксис. А все благодаря его философии, которая заложена в основу языка:
Красивое лучше, чем уродливое.
Явное лучше, чем неявное.
Простое лучше, чем сложное.
Сложное лучше, чем запутанное
Порог вхождения в Python низкий, потому что это очень дружелюбный для новичков язык программирования
Пайтон применяют для самых разных задач: анализ данных и их визуализация, искусственный интеллект, машинное обучение, автоматизация процессов, да что угодно!
Теперь чутка техники: Python это высокоуровневый интерпретируемый язык программирования общего назначения. Не пугайся, все просто. Смотри:
Высокоуровневый означает, что тебе не нужно в деталях знать, как работает компьютер. Это как со смартфоном - тебе не нужно понимать как работает транзистор и что такое “лавинный пробой”, чтобы послушать на нем треки. Ну и по сравнению с другими языками, работа с памятью происходит автоматически, нам не нужно предварительно выделять ее и освобождать - спасибо встроенному “сборщику мусора”
Интерпретируемый - когда ты допишешь на Python свой первый скайнет, его будет нужно преобразовать в машинный язык, который сможет понять компьютер. Да - да, компьютер сам по себе твою писанину не поймет. Именно для этого используется интерпретатор Python, который при выполнении программы превращает написанный тобой код построчно, по одной за раз, в машинный код. А компилируемые языки, такие как Java, используют компилятор, который компилирует весь исходный код целиком перед выполнением твоей программы.
Общего назначения означает, что использовать Python можно в различных областях, ну как мы уже и говорили: веб, десктоп и мобильные приложения, тестирование, работа с данными, работа с большими данными (big data), искусственный интеллект и машинное обучение, автоматизация и даже игры на нем писать можно!
Так это вроде у всех есть, нет? Неа, например есть целевые языки, такие как SQL, который можно использовать только для запроса данных из реляционных баз данных.
Пайтон является объектно-ориентированным языком (ООП) программирования. Если кратко, то ООП - это когда вся программа рассматривается как набор взаимодействующих друг с другом объектов, где каждый объект имеет свои свойства и поведение.
А если ты уже прогаешь на другом языке, то смотри, что в пайтоне особенно круто: он строго типизированный - это означает, что значения переменных не будут неожиданно изменяться
Но при этом динамически типизированный, следовательно нам не нужно указывать тип переменной каждый раз.
А еще: забудь про точки с запятой! Вместо этого тут используются отступы, чтобы определить блоки кода. И да, фигурные скобки в этом случае, как видишь, тоже не нужны.
Также стоит заметить то что пайтон это кроссплатформенный язык программирования, что значит что мы можем писать и запускать свой код на Windows, Linux, MacOS и прочих!
Ну и не в последнюю очередь благодаря своей популярности, Python имеет огромную экосистему библиотек, фреймворков и инструментов которые упростят работу и расширят ваши возможности при написании кода.
Для примера можно назвать популярные Tensorflow и PyTorch для машинного обучения, Django и Flask для веб приложений, Pandas для дата сайенса, Selenium для тестирования и NumPy для сложных вычислений. А для установки всех этих дополнительных крутых штук используется специальный менеджер пакетов, котороый называетися pip.
Кстати, у нас есть курс по Python с нуля! Пройди бесплатный вводный урок, в котором ты напишешь свою первую программу, да еще и с графическим интерфейсом, после чего сможешь ее показывать всем вокруг и говорить “знаете, я и сам в каком-то роде тоже пайтон разработчик”
На днях в нашем распоряжении оказался офисный IP – телефон Yealink SIP-T28P и специальный блок расширения EXP38. Телефонный аппарат отлично подходит для первичной обработки входящего вызова секретарем, обладая десятью BLF (Busy Lamp Field) кнопками с возможностью расширения, что безусловно удобно для быстрого трансфера звонка. С точки зрения эргономики и соотношения цена/качество этот телефонный аппарат является очень конкурентным. В статье мы расскажем как произвести настройку и подключить к нему блок расширения EXP38.
$dbName_ecom = "to-www_ecom";
$GoodID = "3571599023";
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
mysql_select_db($dbName_ecom) or die(mysql_error());
$query_ecom = "SELECT `model`, `itemimage1`, `price`, `discount`, `url`, `preview115`, `vendor`, `vendorCode` FROM `items` WHERE itemid = '$GoodID';";
$res_ecom=mysql_query($query_ecom) or die(mysql_error());
$row_ecom = mysql_fetch_array($res_ecom);
echo 'Кстати, купить '.$row_ecom['vendor'].' '.$row_ecom['vendorCode'].' можно в нашем магазине Merion Shop по ссылке ниже. С настройкой поможем 🔧
Купить '.$row_ecom['model'].''.number_format(intval($row_ecom['price']) * (1 - (intval($row_ecom['discount'])) / 100), 0, ',', ' ').' ₽';
$dbName = "to-www_02";
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
mysql_select_db($dbName) or die(mysql_error());
Настройка SIP аккаунта
Достаем телефон из коробки, подключаем к нему телефонную трубку и подставку. Телефон поддерживает технологию PoE, благодаря которой, может получить питание прямо по витой паре. Для работы данной «фичи», ваш коммутатор, к порту которого будет подключен IP – телефон должен поддерживать эту опцию. В ином случае, подключите блок питания в разъем DC5V.
Распаковываем блок расширения EXP38. Его инсталляция очень тривиальна: в комплект входит сам блок, шнур для подключения и несколько винтов для крепления блока. Шнур необходимо подключить в порт Ext на телефоне. В конечно итоге на нашем столе будет установлен IP – телефон вместе с блоком расширения:
Включаем IP – телефон. Сразу после загрузки в разделе «Статус» мы можем увидеть текущий IP – адрес телефонного аппарата.
Для корректной загрузки IP – телефона и получения сетевого адреса убедитесь, что в вашей сети настроен и корректно функционирует DHCP сервер
Фиксируем IP – адрес телефона и переходим в графический интерфейс настройки. Логи и пароль по умолчанию admin/admin
Сменим язык интерфейса на Русский. Для этого переходим во вкладку «Настройки». Помимо этого, здесь можно производить дополнительные настройки, такие как мелодия вызова, яркость, обновление прошивки и прочие настройки:
Открываем вкладку «Аккаунт» и производим следующие настройки:
Аккаунт - выбираем Аккаунт 1. Данный аппарат поддерживает 6 SIP аккаунтов
Аккаунт - поле, которое располагается под статусом регистрации. Смените на «Включено»
Лейбл - номер телефона. В нашем случае 101
Имя регистрации - здесь мы отметили 101. Отметьте номер или логин, полученный от провайдера
Имя пользователя - укажите номер, с котором вы производите регистрацию, либо логин, полученный от провайдера
Транспорт - транспортным протоколом будет UDP
Адрес SIP-сервера - IP – адрес или доменное имя сервера регистрации
Порт - у нас указан стандартный SIP порт - 5060
Сохраняем настройки и переходим к настройке блока
Настройка блока расширения EXP38
Настроим блок расширения. Переходим в раздел «DSS - кнопки» и в пункте нажимаем модуль расширения:
Настройка представляет из себя табличный вид, со столбцами «Кнопка», «Тип», «Номер», «Аккаунт» и «Значение». Нечетные номера кнопок расположены слева на блоке, а четные справа. В примере мы настроили BLF (индикация занятости линии цветом: зеленый – доступен, красный - занят) на кнопках 1,3,5,7,9 и 11. На меню «Тип» доступны и другие действия, такие как интерком, парковка и другие.
По окончанию настроек проверяем статус регистрации на кнопке «Статус»:
Как видно, наша учетная запись успешно зарегистрирована и телефон видит блок расширения.
Если вы забудете корректно настроить системное время на маршрутизаторах или коммутаторах Cisco, это может сыграть злую шутку. Просмотр лог – файлов или аудит в рамках безопасности может быть не реализуем, по причине невозможности установить точную дату события. В статье расскажем, как настроить корректную дату и время вручную, а также, как подключить NTP сервер к L2/L3 устройствам Cisco.
Ручная настройка
Устройства на базе Cisco IOS имеют два источника времени – железное/хардварное (hardware) и софтовое (программное) время. Первое, зачастую, в документации вендора именуется как «calendar time». Программное время, при загрузке девайса (по питанию) тянет время из железного, ставя его важнее в приоритете. Давайте проверим этот момент с помощью Cisco Packet Tracer:
en
show clock
Обратите внимание, в нашем выводе, *0:3:55.103 UTC Mon Mar 1 1993 помечена звездочкой сначала. Она говорит о том, что это время не вызывает доверия. Причина этого проста – оно синхронизировано с хардварного времени, это можно проверить командой show clock detail:
en
show clock
С помощью команды clock set (в привилегированном режиме, не в режиме глобальной конфигурации) мы можем в ручном режиме модифицировать время и дату:
en
conf t
clock set 13:12:00 23 august 2018
Обратите внимание, что источник времени сменился на «user configuration». Дело в том, что если мы перезагрузим наш девайс, время снова подтянется из хардварного источника (его можно проверить командой show calendar). Исправить это можно одной командой:
clock update-calendar
Готово :)
Лучший путь: настройка NTP
Дело в том, что бывают задачи, точность которых зависит от синхронизации сотых долей секунд на каждом из устройств в сети. В таком случае нам поможет синхронизация времени от единой точки по протоколу NTP (Network Time Protocol), а время они будут брать с NTP – сервера.
Перед настройкой, важно понять – откуда вы будете брать время. Есть некоторые публичные NTP, но конечно, гораздо безопаснее использовать сервер в собственном сетевом контуре. После того, как определитесь, приступаем к настройке NTP серверов:
en
conf t
ntp server 192.168.168.192
ntp server 192.168.168.193
Далее, мы уходим из среды Cisco Packet Tracer на железный маршрутизатор Cisco 2911, так как программный эмулятор ограничен в командах :)
Ждем, пока время не будет синхронизировано и проверяем:
Вы можете отслеживать этапы синхронизации командой show ntp associations - команда будет полезна для траблшутинга NTP;
show ntp status
У нас статус Clock is synchronized, stratum 2, reference is A.B.C.D. Значит все работает хорошо. Важно - настройка NTP, которую мы описали в статье, касается только софтового (программного) времени. Для того, чтобы синхронизировать хардварное (железное) время даем команду:
ntp update-calendar
