Рубрика «скрипты» - 4

image

Что это такое, и для чего это нужно?

Рано или поздно любой проект Unity разрастается большим количеством скриптов и становится трудно держать в голове, какой скрипт с каким связан. С такой проблемой столкнулся и я. Через некоторое время вышел на публикацию «Методы организации взаимодействия между скриптами в Unity3D „. Меня сразу заинтересовал третий подход “Мировой эфир» (настоятельно рекомендую почитать, отлично показано, зачем это нужно). Он идеально мне подходит, но в той статье указан сложный вариант и я, не обладая большими знаниями программирования, так и не смог понять его. В комментариях заметил упоминания встроенной в язык системы событий. Погуглив, нашел статью про события в C#. В этом посте я хочу рассказать, как подружить unity и систему событий C#, чтобы уберечь форумы и unity answers от похожих вопросов.
Читать полностью »

RouterOS — сетевая операционная система на базе Linux. Данная операционная система предназначена для установки на аппаратные маршрутизаторы Mikrotik RouterBoard. Также данная система может быть установлена на ПК (или виртуальную машину), превращая его в маршрутизатор. Изначально довольно богатая функционалом ОС нет нет да и удивит отсутствием какой-нибудь нужной фишки из коробки. К сожалению, доступ к Linux-окружению очень сильно ограничен, поэтому, «это есть под Linux» абсолютно не равнозначно «это есть в RouterOS». Но не надо отчаиваться! Эта система предоставляет несколько возможностей для расширения своего функционала. Первая — самая простая и нативная — это возможность писать скрипты на встроенном языке.
В данной статье, в качестве примера будет рассмотрен скрипт, преобразующий DNS-имена в списки IP-адресов (address lists).
Зачем он может быть нужен? Многие сайты используют Round Robin DNS для распределения нагрузки (а некоторые и не только для этого). Чтобы управлять доступом к такому сайту (создать правило маршрутизации или фаервола) нам потребуются все IP-адреса, соответствующие этому доменному имени. Более того список IP-адресов по истечении времени жизни данной DNS-записи (в данном случае речь идёт об A-записи) может быть выдан абсолютно новый, поэтому информацию придётся периодически обновлять. К сожалению в RouterOS нельзя создать правило

блокировать все TCP соединения на порт 80 по адресу example.com

на месте example.com должен быть IP-адрес, но как мы уже поняли, example.com соответствует не один, а несколько IP-адресов. Чтобы избавить нас от мучения создания и поддержки кучи однотипных правил, разработчики RouterOS дали возможность создавать правило так:

блокировать все TCP соединения на порт 80 по любому адресу из списка с именем DenyThis

Дело осталось за малым — автоматически формировать этот самый список. Кто ещё не утомился от моей писанины приглашаю под хабракат.
Читать полностью »

Данная статья — перевод моего туториала, который я изначально писал на английском. Однако этот перевод содержит дополнения и улучшения по сравнению с оригиналом.
Туториал не требует знания Lua, а вот C++ нужно знать на уровне чуть выше базового, но сложного кода здесь нет.

Когда-то я написал статью про использование Lua с C++ с помощью Lua C API. В то время, как написать простой враппер для Lua, поддерживающий простые переменные и функции, не составляет особого труда, написать враппер, который будет поддерживать более сложные вещи (функции, классы, исключения, пространства имён), уже затруднительно.
Врапперов для использования Lua и C++ написано довольно много. С многими из них можно ознакомиться здесь.
Я протестировал многие из них, и больше всего мне понравился LuaBridge. В LuaBridge есть многое: удобный интерфейс, exceptions, namespaces и ещё много всего.
Но начнём по порядку, зачем вообще использовать Lua c С++?
Читать полностью »

image
В комметариях к одной из предыдущих статей была просьба выложить на всеобщее обозрение все наши наработки, используемые в повседневной жизни. Общими усилиями все было собрано, описано и выложено на github.
Под катом ссылка на репозиторий и краткое описание скриптов.
Читать полностью »

Автогенерация powershell скриптовВсе рано или поздно приходят к желанию переложить занудную и однообразную работу на «плечи» компьютера. Например, ко мне это чувство пришло, когда я начал внедрять Active Directory в организации на 100+ сотрудников. Добавлять и заполнять все поля для большого числа пользователей вручную — ужасно нудное и долгое занятие. Конечно, первым делом я обратился к powershell, но процесс написание скрипта как-то уж слишком затянулся и в конечном счете ничего путного не вышло. Мечты иметь красивый и аккуратный каталог пользователей так и остались мечтами. Пока я не загорелся идеей автоматизации создания powershell-скриптов.
Читать полностью »

php as a script

Большинство пользователей PHP привыкли видеть сие чудо лишь на серверах и использовали лишь для динамической генерации веб-страниц (или других целей, подразумевающий работу в составе web-сервера). Однако, php можно использовать отдельно в качестве скриптового языка а-ля питон. Подробности под катом…
Читать полностью »

Как запатчить 11 разных прошивок и не сойти с ума от разнообразия Если какая-либо операция превращается в рутину — автоматизируй её. Даже если времени потратишь больше — зато ты занимался не рутиной, а интересным делом. Именно под этой вывеской вместо того, чтобы просто запатчить новые 11 версий rtsp_streamer'а для камер от TopSee, решил нарисовать автопатчер. Идеальным языком для любых наколенных изделий я считаю питон — достаточно лаконично, достаточно жестко по читабельности (хотя я всё равно умудряюсь сделать его не читаемым). В общем, сейчас я расскажу, как с помощью палки и верёвки за один вечер научиться рисовать автопатчеры.
Читать полностью »

Сколько дискуссий было на Хабре по поводу опасности заливки файлов, обсуждались возможные уязвимости при заливке файлов и.т.д. Я тоже решил попробовать помочь в этом вопросе Вам, уважаемые читатели.

Как Вы все уже хорошо знаете, самый надежный способ защиты при заливке файлов, это:

1. Переименовывать файлы в имена и расширения файлов независимо от входящего имени файла.
2. Отключить в папке, куда заливаются файлы, выполнение скриптов.

Этот вариант отлично подходит для большинства случаев, когда заливаемый файл нужно использовать на сайте (например: аватар пользователя) и он требует записи в БД для привязки. Реализуется легко и об этом уже на Хабре есть статьи.

Мы же с Вами рассмотрим ситуацию, когда нужно сделать безопасную заливку файлов, без использования БД, с сохранением оригинальных имен и с возможностью заливать что угодно (без каких либо ограничений) с последующей возможностью скачивания данных файлов по URL.
Читать полностью »

В процессе работы с операционными системами GNU/Linux обычно привыкаешь делать какие-то операции одними и теми же средствами. Философия UNIX (*nix-way) предполагает наличие большого количества простых программ для выполнения простых действий, а результаты работы можно передавать между разными программами через потоки. Но вот представьте, что возникает ситуация, когда кто-то нечаянно, по глупости или из нехороших побуждений удалил исполнимый файл, который являлся бинарным файлом какой-то команды, которой вы более или менее часто пользовались. И что тогда делать?

И вот здесь начинается самое интересное. Практика показывает, что многие вещи можно делать более чем одним способом. Я попытался составить небольшой список взаимозаменяемых действий, которые в Linux могут быть выполнены более чем одним способом.

Читать полностью »

С чего все начиналось

Здравствуйте, уважаемыее! Вначале расскажу краткую предысторию этого скрипта. В сети есть браузерная игрушка с чатом, и двумя враждующими мирами. При написании сообщения из одного мира в другой, если вы не находились в специальном месте, текст шифровался, то есть буквы алфавита «перемешивались» — к примеру, буква «о» заменялась на букву «е», буква «з» на букву «в» и так далее. При этом несколько букв могли «превращаться» в одну и ту же, например, буквы «е» и «э» превращались в «а». Из-за этого слово «только» могло превратиться в «сефыче», что абсолютно нечитаемо. А представленные другими людьми переводчики возвращали слова вида: «(б, т, ф)ол(у, ь)(к, р)о», прочесть которые тоже не раз плюнуть. Поэтому я, и еще один товарищ, решили создать скрипт, который неким образом возвращал словам истинное обличье. У нас было несколько идей, в том числе, придумать алгоритм эвристического анализа слова на «русскость» (очевидно, что слишком много согласных никак не могут идти подряд и т.п.). В конце концов была использована весьма интересная библиотека phpMorphy, найденная на просторах всемирной паутины. О работе с ней и пойдет речь в этой статье на примере переводчика из «языка» одного мира в другой.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js