Как стать автором
Обновить
15
0
Dmitriy Q @Krotesk

использователь

Отправить сообщение

Знакомство с SSH

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров26K

Как гласит википедия, «SSH — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов). Схож по функциональности с протоколами Telnet и rlogin, но, в отличие от них, шифрует весь трафик, включая и передаваемые пароли. SSH допускает выбор различных алгоритмов шифрования. SSH-клиенты и SSH-серверы доступны для большинства сетевых операционных систем». Когда в первый раз знакомишься с ним, то, скорее всего, он представляется как средство для доступа к удалённому серверу. В первую очередь, так оно и есть. Однако его возможности намного шире.

Читать далее
Всего голосов 20: ↑18 и ↓2+20
Комментарии21

Python и теория множеств

Время на прочтение11 мин
Количество просмотров128K

Python и теория множеств


В Python есть очень полезный тип данных для работы с множествами – это set. Об этом типе данных, примерах использования, и небольшой выдержке из теории множеств пойдёт речь далее.


Читать дальше →
Всего голосов 17: ↑16 и ↓1+24
Комментарии10

Регулярные выражения в Python от простого к сложному. Подробности, примеры, картинки, упражнения

Время на прочтение25 мин
Количество просмотров1.5M

Регулярные выражения в Python от простого к сложному




Решил я давеча моим школьникам дать задачек на регулярные выражения для изучения. А к задачкам нужна какая-нибудь теория. И стал я искать хорошие тексты на русском. Пяток сносных нашёл, но всё не то. Что-то смято, что-то упущено. У этих текстов был не только фатальный недостаток. Мало картинок, мало примеров. И почти нет разумных задач. Ну неужели поиск IP-адреса — это самая частая задача для регулярных выражений? Вот и я думаю, что нет.
Про разницу (?:...) / (...) фиг найдёшь, а без этого знания в некоторых случаях можно только страдать.

Плюс в питоне есть немало регулярных плюшек. Например, re.split может добавлять тот кусок текста, по которому был разрез, в список частей. А в re.sub можно вместо шаблона для замены передать функцию. Это — реальные вещи, которые прямо очень нужны, но никто про это не пишет.
Так и родился этот достаточно многобуквенный материал с подробностями, тонкостями, картинками и задачами.

Надеюсь, вам удастся из него извлечь что-нибудь новое и полезное, даже если вы уже в ладах с регулярками.
Читать дальше →
Всего голосов 99: ↑98 и ↓1+97
Комментарии66

Быстрая сборка кубика Рубика

Время на прочтение7 мин
Количество просмотров999K
Возможно, многие из читателей задавались вопросом, как людям удаётся собирать кубик Рубика 3×3 за 7 секунд. Если даже предположить, что рекордсмену сильно повезло, то таблица мирового рейтинга по среднему из пяти результатов уже не оставляет сомнений: если больше 80 человек в среднем укладываются в 12 секунд, очевидно они что-то знают. В этом кратком обзоре я постараюсь приоткрыть секреты скоростной сборки. Сразу оговорюсь, что после прочтения этой статьи вы не станете чемпионами: здесь приведены только основные моменты и ссылки на более подробную информацию. Кроме того, даже после изучения метода полностью вам потребуются долгие тренировки для достижения хороших результатов. Зато вы получите неплохое представление о том, как это делается, и при желании будете знать, куда двигаться дальше. Я думаю, при достаточной усидчивости после нескольких месяцев тренировок многие смогут достичь среднего результата в районе 30 секунд.
Читать дальше →
Всего голосов 115: ↑102 и ↓13+89
Комментарии77

Python: коллекции, часть 1/4: классификация, общие подходы и методы, конвертация

Время на прочтение7 мин
Количество просмотров327K
Коллекция в Python — программный объект (переменная-контейнер), хранящая набор значений одного или различных типов, позволяющий обращаться к этим значениям, а также применять специальные функции и методы, зависящие от типа коллекции.

Частая проблема при изучении коллекций заключается в том, что разобрав каждый тип довольно детально, обычно потом не уделяется достаточного внимания разъяснению картины в целом, не проводятся чёткие сходства и различия между типами, не показывается как одну и туже задачу решать для каждой из коллекций в сравнении.

Вот именно эту проблему я хочу попытаться решить в данном цикле статей – рассмотреть ряд подходов к работе со стандартными коллекциями в Python в сравнении между коллекциями разных типов, а не по отдельности, как это обычно показывается в обучающих материалах. Кроме того, постараюсь затронуть некоторые моменты, вызывающие сложности и ошибки у начинающих.

Для кого: для изучающих Python и уже имеющих начальное представление о коллекциях и работе с ними, желающих систематизировать и углубить свои знания, сложить их в целостную картину.

Будем рассматривать стандартные встроенные коллекционные типы данных в Python: список (list), кортеж (tuple), строку (string), множества (set, frozenset), словарь (dict). Коллекции из модуля collections рассматриваться не будут, хотя многое из статьи должно быть применимым и при работе с ними.

ОГЛАВЛЕНИЕ:


  1. Классификация коллекций;
  2. Общие подходы к работе с коллекциями;
  3. Общие методы для части коллекций;
  4. Конвертирование коллекций.
Читать дальше →
Всего голосов 38: ↑38 и ↓0+38
Комментарии27

Четыре способа оптимизации ПО

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров15K

Преждевременная оптимизация может оказаться корнем всех зол, а запоздалая — корнем безысходности. Каким бы быстрым ни становилось аппаратное обеспечение, мы находим способы писать медленные программы. И зачастую проявляется это не сразу. Пользователи могут годами не обращать внимания на проблему в производительности ПО, пока она не становится очевидной, что порой происходит в течение одного дня.
Читать дальше →
Всего голосов 44: ↑39 и ↓5+57
Комментарии12

Ультимативный Roadmap для Python-разработчика в 2023 году + источники знаний

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров180K

Python — один из самых популярных языков программирования в мире. Статистика современного рынка свидетельствует о том, что Python желаемый навык, и что его использование широко распространено в различных сферах, таких как наука, инженерия, бизнес, аналитика данных и многих других.

В этой статье я составил полную дорожную карту для изучения Python, прилагая полезные источники знаний.

Читать далее
Всего голосов 7: ↑3 и ↓40
Комментарии8

telebot быстро и понятно. Телеграмм-бот

Время на прочтение4 мин
Количество просмотров435K

telebot (pyTelegramBotAPI) хорошая и лёгкая библиотека для создания бота на python для телеграмма.

Читать далее
Всего голосов 4: ↑2 и ↓2+2
Комментарии18

Рудольфу Свореню — 89! Как книга «Электроника шаг за шагом» — изменила жизнь людей

Время на прочтение25 мин
Количество просмотров64K
Про Рудольфа Свореня (автора книги «Электроника шаг за шагом») мы делали несколько постов. И в частности про кампанию по переизданию этой культовой книги. В анкету на предзаказ уже отметилось почти 500 человек, охват удивительный — города от Калининграда, до Сахалина. Из Канады и США. Из эстонского Таллина. Киев, Харьков. Минск. Вильнюс. Несколько заявок из Казахстана.

И в частности некоторые отзывы:

"Читал несколько раз и каждый раз обнаруживал что-то новое. Даже после «искусства схемотехники», которая по сути является ВУЗовским учебником, перечитывать «Шаг за шагом» было поучительно. Как она на меня повлияла: начинал как электронщик, но сейчас работаю DSP-программистом. Если бы не прочитал её и не подхватил бы её дух — вряд ли стал бы разработчиком. Благодаря этой книге я проникся системой ценностей инженеров и стал инженером."

"Читал почти все книги. Изменила жизнь..."

"Мой первый электро букварь :)"

"Эта книга дала мне билет в будущее, если бы в своё время она не попала мне в руки, я не знаю чем бы я сейчас занимался."

"Прочитана до дыр. Книга дала серьезный толчок для дальнейшего развития в этой области. Именно из-за этой книги я связал свою жизнь с электроникой. Спасибо!"

"Электроника шаг за шагом — вдохновляет к творчеству."

В это воскресенье 29 мая — у Рудольфа Анатольевича был День Рождения — 89 лет!, в честь этого дня — мы решили сделать небольшой подарок — и попросили людей написать отзыв о том, как именно книги Р.А. повлияли на их жизнь — на выбор будущей профессии. И для тех кто не читал книгу — было бы интересно узнать, что же такого особенного в этой книге что она смогла объединить стольких людей?
Читать дальше →
Всего голосов 27: ↑26 и ↓1+25
Комментарии14

10 рекомендаций по VS Code для повышения продуктивности

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров51K
Visual Studio Code остаётся наиболее предпочтительной IDE среди разработчиков. Причём этот редактор всё чаще используют именно начинающие программисты. Источник: survey.stackoverflow.co/2023

А вы знали, что 73% разработчиков по всему миру используют один редактор кода? Так и есть. Результаты проведённого в 2023 году опроса Stack Overflow показали, что VS Code является самой популярной средой разработки.

И мы все знаем почему — он очень крут!

Но в полной ли мере мы задействуем его потенциал? Текущая статья будет посвящена знакомству с некоторыми интересными возможностями VS Code, способными повысить продуктивность работы. К ним, помимо прочих, относятся локальный контроль исходного кода, анимация курсора и быстрое удаление строк. Использование этих возможностей поможет ускорить реализацию проектов разработки.
Читать дальше →
Всего голосов 77: ↑69 и ↓8+87
Комментарии83

Руководство по установке и настройке OpenVPN

Время на прочтение34 мин
Количество просмотров1.5M



Когда у нас появились сотрудники, работающие удаленно, пришлось думать над тем, как обеспечить им защищенный доступ к нашим хостинговым серверам, виртуальным выделенным серверам разработчиков Virtual Dedicated Server (VDS), сайтам обеспечения и сопровождения разработки и к другим ресурсам.



По соображениям безопасности доступ к этим ресурсам ограничен при помощи межсетевого экрана (файервола) по портам и адресам IP. Ежедневную перенастройку доступа при изменении динамических IP сотрудников едва ли можно назвать разумным решением.



Выход нашелся довольно быстро — это использование технологии виртуальных частных сетей Virtual Private Network (VPN) и ее свободной реализации OpenVPN. Эта реализация доступна практически для всех распространенных платформ, в том числе для планшетов и смартфонов. История развития OpenVPN насчитывает уже 12 лет (компания OpenVPN Technologies, Inc. была создана Francis Dinha и James Yona в 2002 году), так что это надежное и проверенное временем решение.



В нашей компании сеть VPN позволила предоставить защищенный доступ сотрудников к VDS, играющей роль сервера OpenVPN. И уже для фиксированного IP этого сервера был разрешен доступ к другим ресурсам компании. Попутно на сервере OpenVPN был установлен прокси Squid, что решило все проблемы доступа сотрудников с динамическими IP к защищенным ресурсам компании.



Теме OpenVPN посвящены многочисленные статьи и сообщения на форумах. Тем не менее, нужную информацию мне пришлось собирать по частям из разных мест. Попутно приходилось разбираться с многочисленными терминами и технологиями. В качестве серверов OpenVPN были использованы VDS на базе FreeBSD и Debian Linux, в качестве клиентов — рабочие станции FreeBSD, Debian Linux, Ubuntu и Microsoft Windows.



Надеюсь, что эта статья будет полезна тем, кто впервые столкнулся с необходимостью создания сети VPN или уже использует ее для решения тех или задач, а также тем, кто ищет замену коммерческим реализациям VPN.


Читать дальше →
Всего голосов 128: ↑115 и ↓13+102
Комментарии97

Настройка MikroTik в качестве OVPN-сервера с использованием клиентских сертификатов и списка отзыва

Время на прочтение9 мин
Количество просмотров182K
Передо мной возникла задача настроить MikroTik в качестве OVPN сервера с использованием клиентских сертификатов и возможностью их отзыва. В интернетах на данную тему чёткого How-To я не нашёл, поэтому решил изобрести свой собственный велосипед. В этой статье я опишу схему настройки данного чуда, получившуюся и работающую у меня.
Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Комментарии21

Bash-скрипты: начало

Время на прочтение11 мин
Количество просмотров1.8M
Bash-скрипты: начало
Bash-скрипты, часть 2: циклы
Bash-скрипты, часть 3: параметры и ключи командной строки
Bash-скрипты, часть 4: ввод и вывод
Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
Bash-скрипты, часть 6: функции и разработка библиотек
Bash-скрипты, часть 7: sed и обработка текстов
Bash-скрипты, часть 8: язык обработки данных awk
Bash-скрипты, часть 9: регулярные выражения
Bash-скрипты, часть 10: практические примеры
Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит

Сегодня поговорим о bash-скриптах. Это — сценарии командной строки, написанные для оболочки bash. Существуют и другие оболочки, например — zsh, tcsh, ksh, но мы сосредоточимся на bash. Этот материал предназначен для всех желающих, единственное условие — умение работать в командной строке Linux.


Читать дальше →
Всего голосов 69: ↑61 и ↓8+53
Комментарии123

Взаимодействие клиентов SIP. Часть 1

Время на прочтение5 мин
Количество просмотров237K


Месяц назад я начал свое знакомство с IP-телефонией, а именно с Lync и Asterisk. И заметил следующую картину: в сети очень много интересных статей по практической стороне вопроса (как и что делать) и очень мало внимания уделено теории (в конце статьи приведены ссылки). Если Вы хотите разобраться с SIP, то извольте либо читать RFC 3261, либо одну из «этих толстых книг». Это, естественно, полезно, но многим хочется в начале изучить некую выжимку, а уж потом бросаться в омут с головой. Эта статья как раз для таких людей.
Поехали
Всего голосов 23: ↑22 и ↓1+21
Комментарии11

Определение региона по номеру телефона в Asterisk без использования БД

Время на прочтение4 мин
Количество просмотров10K


Для многих компаний, работающих по всей стране, бывает очень важно знать, из какого региона именно поступил каждый входящий звонок, например, для оценки эффективности маркетинговой кампании по интересующим регионам. Конечно, можно заставить операторов call-центра уточнять эту информацию у звонящего каждый раз, но все же удобнее получать такую информацию в автоматическом режиме.
Кроме того, при осуществлении исходящих вызовов бывает важно звонить именно с номера того региона, где находится клиент. Можно, конечно, составить исходящие маршруты, но при количестве регионов более трех, да еще и с учетом мобильных номеров, конструкция получается монструозной.
Читать дальше →
Всего голосов 20: ↑15 и ↓5+10
Комментарии14

С Днем программиста: несколько обучающих роботов-конструкторов для детей

Время на прочтение2 мин
Количество просмотров6.7K
За 13 сентября закрепился профильный праздник — День программиста. Мы собрали небольшую подборку электронных конструкторов и плат, которые призваны приобщить детей к программированию.


Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии4

Песочница и шпаргалка по изучению Python

Время на прочтение3 мин
Количество просмотров53K

Изучать Python3 я начал с документации на официальном сайте. Мне понравились примеры кода, но, к сожалению, они были там не интерактивными. Хотелось попробовать выполнить код самостоятельно, с разными входными данными и посмотреть на выводимый результат. Так же мне лично легче запоминаются конструкции языка, если я их набрал несколько раз вручную. Python консоль для этого подходит отлично, но хотелось так же иметь своего рода шпаргалку, к которой можно было бы вернуться при написании программ в дальнейшем, если, например, возникнет вопрос, как в Python-е написать цикл for и т.п. И последней каплей стало желание автоматической проверки стиля написания кода в соответствии с существующими стандартами. Читать и вникать в них было лень, поэтому хотелось чтобы проверка кода была автоматической и подсказывала какие ошибки я делаю и как их исправить.


В итоге все свои эксперименты я вылил на GitHub.


Читать дальше →
Всего голосов 49: ↑48 и ↓1+47
Комментарии20

Руководство по веб-дизайну для разработчиков

Время на прочтение11 мин
Количество просмотров40K
Автор статьи, перевод которой мы публикуем сегодня, говорит, что создал свой первый веб-сайт когда ему было 14 лет, в виде школьного проекта. Тогда перед ним стояла простая задача: разработать сайт, содержащий некий текст, изображения и таблицу. Обычно к школьным проектам он относился так: сначала о них забывал, а когда подходил срок сдачи, делал их в самый последний момент. Однако в тот раз всё было совсем не так. Особенно его интересовало то, как будет выглядеть его первый сайт. Тогда, для того, чтобы сделать всё так, как надо, он приложил все усилия. Автор материала говорит, что, ещё с тех давних времён, он стремился к тому, чтобы то, что он делает, выглядело бы как можно более привлекательно. Это стремление живо в нём до сих пор. Здесь он хочет поделиться советами по дизайну веб-страниц.

Читать дальше →
Всего голосов 37: ↑33 и ↓4+29
Комментарии15

Сам себе сотовый роуминг. Создание GSM гейта на asterisk + донгл от сотового оператора

Время на прочтение7 мин
Количество просмотров155K
Случилось так, что езжу я в командировки и отпуски не настолько часто чтобы пользоваться какой-то международной телефонией или виртуальным провайдером, но и не настолько редко чтобы вообще не забивать себе этим голову и пользоваться роумингом не заморачиваясь на расходах.
Езжу я не в те страны и не так надолго чтобы покупать симку местного оператора, зато в те страны где вай-фай есть почти везде.
Так уж вышло что в последнее время я плотно познакомился с программной АТС asterisk и перед очередной поездкой подумал о том как было бы классно воткнуть свою сим-карту в качестве входящего транка в asterisk, стоящий в остающейся позади снежной Москве, а самому цепляться к нему sip-клиентом по интернету. Это же и сам звони не хочу, был бы интернет, и звонки принимай на свой же номер, что важно для тех у кого много контактов (всех не оповестишь, да и половина забудет) — сотовый-то с сим-картой фактически стоит в домашнем регионе.

Как это реализуется — под катом.
Читать дальше →
Всего голосов 35: ↑33 и ↓2+31
Комментарии26

Основы безопасности IoT

Время на прочтение5 мин
Количество просмотров11K
В этой вводной статье мы рассмотрим основные аспекты безопасности одной из самых популярных тем в последнее время — интернета вещей.

image

Если вы, так или иначе, в курсе новостей в сфере кибербезопасности, то могли заметить, что участились случаи создания ботнетов из ip-камер, специалисты по безопасности чаще находят уязвимости в контроллерах умных домов, взламывают беспроводные замки и многое другое!

Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии3
1

Информация

В рейтинге
Не участвует
Откуда
Орск, Оренбургская обл., Россия
Зарегистрирован
Активность

Специализация

Technical Support Engineer, Администратор телефонии
Middle
Asterisk
Linux
MySQL
Python
GitHub Actions