Как стать автором
Обновить

Добавление скриптинга в программу с помощью Lua

Разработка веб-сайтов *

Lua это мощный, быстрый, легкий, встраиваемый язык сценариев. С его помощью можно легко и быстро добавить поддержку скриптинга в вашу программу.
Это может понадобиться в тех случаях, когда вы хотите дать возможность пользователям производить самостоятельную донастройку (кастомизацию) вашей программы, когда вы не хотите перекомпилировать весь проект, при внесении каких-либо изменений в логику работы программы, либо хотите разделить работу над движком и работу над логикой между разработчиками (например, при написании игр).

В этой статье, с помощью простой программы, я хочу показать пример встраивания Lua в ваш проект.

Примеров программ, которые используют Lua достаточно много. Далеко не полный список программ, использующих Lua, можно посмотреть здесь Lua Wiki и здесь Wikipedia
Читать дальше →
Всего голосов 58: ↑53 и ↓5 +48
Просмотры 18K
Комментарии 120

Добавление возможности скриптинга своим приложениям с помощью Active scripting

Разработка веб-сайтов *
Последнее время я заметил некоторый интерес хабралюдей к такой теме как скриптинг. Были статьи про Lua, про V8 (JavaScript движок Google Chrome). Я же хотел бы рассказать об использовании технологии Active Scripting (она же ActiveX Scripting) от Microsoft.
Это технология, используемая для реализации поддержки скриптов в приложениях. Именно так работает движок JavaScript всеми любимого браузера IE ;) Однако, не спешите с выводами. Да, тот же движок V8 работает в разы быстрее, но и у данной технологии есть свои преимущества и возможные области применения, о которых я тоже расскажу.
Читать дальше...
Всего голосов 25: ↑16 и ↓9 +7
Просмотры 4K
Комментарии 8

Скриптинг на bash — это очень просто

Настройка Linux *
Очень часто многие пользователи VDS/Серверов покупают различные панели управления, суть которых — автоматизация рутинной работы вроде добавления виртхостов апача.
Но какая из панелей умеет производить массовое добавление виртхостов? Да вроде никакая. А скрипт из пары десятков строк — очень даже умеет. Немного модифицируем прошлый скрипт и сделаем его более «переносимым».
Пусть массовое добавление будет происходить при помощи файла, имя которого — IP адрес, а содержимое — список доменов. Да, подобные задачи решаются через мод виртхост или рерайт, но в данном случае пример — чисто академический.
Читать дальше →
Всего голосов 18: ↑10 и ↓8 +2
Просмотры 1.7K
Комментарии 8

Визуальный скриптинг

Python *
Из песочницы

Предыстория


Каждый из нас когда либо приходил к мысли о необходимости автоматизации тех или иных действий в системе. Лично меня эта мысль посетила когда я пытался объяснить брату, как переставлять модем в режим роутера и обратно (в подробности, зачем было нужно постоянно менять режимы, вдаваться не буду). Т.к. последовательность действий была довольно неочевидна, да ещё и требовала запоминания некоторых данных (например ip-адреса роутера), решил процесс автоматизировать, затратив на это как можно меньше усилий. Немного погуглив нашёл довольно интересный проект SIKULI. Он позволяет автоматизировать управление GUI под основными ОСями, и при этом вам даже не придётся учить новый язык! Тех, кому интересен визуальный скриптинг, прошу под кат.

Читать дальше →
Всего голосов 60: ↑56 и ↓4 +52
Просмотры 10K
Комментарии 31

Скриптинг для бюджетной активации (часть 1)

Ненормальное программирование *Oracle *Разработка систем связи *
Некоторое время назад, мне довелось поучаствовать в крупном международном проекте в составе команды активации. Суть проекта сводилась к автоматизации выполнения ряда команд на оборудовании Cisco. Разработка активационных скриптов велась на JavaScript. Главная мысль, которую я вынес из этого проекта, заключалась в том, что разработка и отладка активационных скриптов на JavaScript крайне трудоемкое занятие. Интенсивная разработка велась в течение 1 года, а только наша группа активации включала в себя около 10 разработчиков (тестеров требовалось не меньше).

В июне этого года, уже местное руководство, осчастливило меня новым активационным проектом, в котором маршрутизаторы Cisco сменились на АТС Alcatel S12 и M200. Вторым отличием этого проекта было то, что всю активационную часть предстояло разработать мне одному, с нуля, в течение полугода.
Читать дальше →
Всего голосов 7: ↑6 и ↓1 +5
Просмотры 3.4K
Комментарии 8

Пишем простейший скриптовый язык программирования на C# (Часть 1)

.NET *C# *
Из песочницы
Tutorial
Добрый день, %username%. Сегодня мы будем писать скриптовый язык программирования на C#, а точнее его интерпретатор.

Пролог


Я изучаю C# уже год, но никак не могу его нормально выучить. Подумав чуть-чуть я понял что нужно писать что-то более сложное, и в процессе этого получать опыт. Я решил написать интерпретатор Brainfuck. Написал его я минут за 5, но он так и остался без циклов. Затем я начал придумывать свой язык, писал кучу концептов синтаксиса и т.д.
Скорее под кат!
Читать дальше →
Всего голосов 48: ↑16 и ↓32 -16
Просмотры 30K
Комментарии 14

История о том, как я ОС в Minecraft писал

Lua *
Из песочницы
image

В далеком 2011 году мир увидел такую игру как Minecraft — воксельную песочницу, где каждый творит все, что душе угодно. Спустя некоторое время народные умельцы стали писать различные модификации для нее, делающие геймплей более разнообразным. Не так давно появился мод под названием «OpenComputers», добавляющий полноценные компьютеры, программируемые на скриптовом языке Lua. И в этой статье я хочу поделиться с вами небольшим опытом, приобретенным при изучении этого крайне интересного мода.
Читать дальше →
Всего голосов 107: ↑101 и ↓6 +95
Просмотры 94K
Комментарии 125

Использование SikuliX в фоновом режиме на Cloud9

Блог компании Инфопульс Украина Тестирование IT-систем *Python *
Tutorial
SikuliX (старое название Sikuli) — это инструмент, который позволяет автоматизировать то, что вы видите на экране с помощью визуального распознавания (картинок). На хабре уже есть достаточно информации по нему, но все примеры подразумевают использование реального экрана.

Здесь же я опишу свой опыт использования SikuliX в фоновом режиме на облачной IDE Cloud9. В процессе работы с данным инструментом набил немного шишек, поэтому возможно, мой опыт будет кому-то полезен.

Вариантов использования SikuliX достаточно много, вот некоторые из действий, которые вы можете автоматизировать:
  • Работа с флеш сайтами (и любими другими)
  • Автоматизация браузерных игр (собирать урожай на ферме)
  • Работа с десктопными приложениями
  • Настройка компьютера
  • Разнообразные боты
  • Всякого рода рутинная работа с сайтами/документами
Читать дальше →
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 9.5K
Комментарии 1

1Script или Как я начал open-source проект

Open source *Программирование *.NET *

Тезис о том, что open-source создается гиками-энтузиастами в наше время несколько утратил актуальность. Тем не менее, идеология открытого кода родилась именно так. Классные программы, написанные ночью, бородатыми (и не очень) чудиками, бескорыстно, просто, чтобы сделать мир лучше — изменили мир разработки ПО.

Любой программист втайне мечтает сделать что-то большое и светлое, чтобы всем понравилось. Если вы скажете мне, что вы не из таких, что вам нравится только закрывать тикеты в рабочем багтрекере, и вы не мечтаете о выпуске своего проекта в большой мир, то я вам не поверю. Или посоветую сменить профессию. Я убежден, что программист — это художник, а художнику важно делать что-то свое, возможно, просто «в стол» — но делать.

Однажды, мне в голову упала идея проекта. Идея была чисто исследовательской и я не собирался делать из этого некий «продукт». Кроме того, я раньше не вел проектов в открытом доступе и мне очень хотелось попробовать, как это вообще происходит. Что из этого получилось — под катом.
Читать дальше →
Всего голосов 59: ↑56 и ↓3 +53
Просмотры 28K
Комментарии 30

Практика Powershell: мониторинг хранилища резервных копий Windows Backup

Системное администрирование *Хранение данных *
Из песочницы
КПДВ

В данной статье рассмотрена реализация мониторинга хранилища файлов резервных копий, создаваемых средствами Windows Backup, при помощи скрипта Powershell с целью контроля своевременности резервного копирования и размера формируемых данных. Также статья ставит задачей привести примеры некоторых полезных приёмов программирования на языке Powershell.
Читать дальше →
Всего голосов 21: ↑20 и ↓1 +19
Просмотры 20K
Комментарии 4

Дивный новый Roslyn: Кому нужны собственные анализаторы кода и скриптинг на C#?

Блог компании JUG Ru Group .NET *Компиляторы *
В мире .NET все прекрасно — платформа движется в правильном направлении, новые технологии обкатываются и встают на ноги. В последнее время много разговоров про .NET/ASP.NET Core, и кажется, что все забыли про Roslyn, который предоставляет широкие документированные возможности по работе с кодом как во время рантайма, так и в процессе разработки.


Чтобы исправить это, мы взяли интервью у Filip W, Microsoft MVP, контрибьютора Roslyn и просто одного из наиболее популярных в мире ASP.NET блоггеров. Почему Filip считает, что изменения в новом С# могут пройти незамеченными, зачем писать собственные анализаторы кода, а также почему скриптинг на C# лучше, чем любом скриптовом языке?
Читать дальше →
Всего голосов 26: ↑25 и ↓1 +24
Просмотры 11K
Комментарии 70

Рисуем фракталы Мандельброта с помощью языка GIMP Script-Fu

Блог компании SkillFactory Ненормальное программирование *Lisp *Математика *
Перевод
Tutorial


Программа GNU Image Manipulation Program (GIMP) – моё решение проблемы редактирования изображений. Набор инструментов у этого редактора очень мощный и удобный, за исключением инструментов, чтобы генерировать фракталы, которые нелегко нарисовать вручную. Фракталы – увлекательные математические конструкции, обладающие свойством самоподобия. Другими словами, если их увеличить в любой области, они будут удивительно похожи на картину до увеличения. Помимо того, что они интересны, они также делают очень красивые картинки!

Приятного чтения!
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 3.2K
Комментарии 0

Запускаем скрипты Ruby из Go Lang

Ненормальное программирование *Ruby *Программирование *Go *

Для использования Ruby как скриптового языка, то есть как языка для встраивания, вроде lua, существует легковесная реализация Ruby под названием mruby https://en.wikipedia.org/wiki/Mruby

Для go удалось найти только одну стабильную библиотеку с биндингом к mruby. По умолчанию, она может собрать mruby версии 1.2.0 (2015 год выпуска), и можно попробовать сделать сборку вплоть до версии 1.4.1 (2018 год выпуска). Но актуальная версия mruby сейчас имеет версию 2.1.2 (2020 год). Есть форк с поддержкой версии mruby 2.1.0. Этот форк и будем использовать, что бы после небольших изменений получить в том числе версию 2.1.2.

Читать далее
Всего голосов 3: ↑1 и ↓2 -1
Просмотры 1.8K
Комментарии 0

Xeus-lua — интерактивные виджеты Lua в Jupyter Notebook

Блог компании SkillFactory Python *Программирование *C++ *Lua *
Перевод

Торстен Бейер — программист из QuantStack, в Open Source он работал над nifty и vigra на C++, а также над inferno, kipoi и ilastik — на Python. Делимся материалом о новом ядре Lua от Торстена Бейера из блога разработчиков Jupyter, пока у нас начинается флагманский курс Data Science.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 2.1K
Комментарии 0

Скриптинг без скриптинга

Ненормальное программирование *Python *Программирование *Компиляторы *
Перевод

Уже давно считается, что многие (если не все) игры или приложения можно улучшить, добавив в них поддержку скриптов.

Для этого есть несколько разных способов. Наиболее распространенный подход - встроить Lua (или другой язык, который вам больше нравится). Если это по каким-то причинам не вариант, отважный программист может замахнуться на реализацию собственного интерпретатора, или хотя бы сделанного на коленке парсера для усовершенствованного файла с настройками.

Нет, честное слово, это нормально. Просто подумайте заранее о том, как ваш конфигурационный файл позволит влиять на игру - ведь вне зависимости от выбранного вами способа, вся суть скриптинга в том, чтобы дать возможность сделать то, о чем вы изначально даже не подозревали, не меняя при этом исходный код программы.

Читать далее
Всего голосов 11: ↑8 и ↓3 +5
Просмотры 4.8K
Комментарии 12

Спрос рождает предложение: как потребности программистов выливались в языки программирования

Блог компании JUG Ru Group Программирование *История IT


Про развитие программирования уже писано-переписано, и вряд ли можно сказать что-то принципиально новое. Однако полезно время от времени отрываться от текущих задач, окидывать взглядом прошлое и осознавать, как именно всё пришло в текущую точку. Легко воспринимать всё вокруг как данность, но когда разбираешься, понимаешь, по каким причинам что-то возникло. В истории было много витков, на каждом из которых языки программирования давали ответ каким-то запросам своего времени.


Этот пост — «краткое содержание предыдущих серий», где эти витки собраны вместе (конечно, в очень упрощённом виде: в одном тексте все важные нюансы не расписать). А после него, окинув взглядом весь контекст, можно и на текущие задачи посмотреть по-новому. Какие новые запросы человечества видны сейчас, и какими станут новые языки программирования, отвечающие на них? Расскажите в комментариях, через десять лет проверим.

Читать дальше →
Всего голосов 19: ↑17 и ↓2 +15
Просмотры 7K
Комментарии 13