nutella-framework / nutella_framework Goto Github PK
View Code? Open in Web Editor NEWA rails-inspired framework for Macroworlds
Home Page: http://nutella-framework.github.io/
License: MIT License
A rails-inspired framework for Macroworlds
Home Page: http://nutella-framework.github.io/
License: MIT License
Data and actors can belong to:
nutella start/stop
we need to check that they have been properly started/stoppedrun_id
. nutella_lib takes care of this at the client level but maybe we should think about re-writing some of nutella to use nutella libIn general, this requires more thinking and a round of cleanup of the framework
Store them into a .pids
file. If startup
launches another process, then it can't be started automatically. What do we do? Think more about this.
As well as any other configuration file
What are the required softwares? Required softwares are only for the CLI, not for the rest. Those can be communicated by the CLI to the user.
People should be able to create projects using "recipes" or lists of templates they would like
Right now we don't check the list
Should give me `tmux attach-session -t <complete_run_id>
Should have two sub commands: validate
and create
This absorbs issue #34
http://localhost:57880/roomquake
works
http://localhost:57880/roomquake/
doesn't
Need to write code docs but, more importantly, guide for the users
When doing nutella start <runid>
the run_id
is passed through the command line. Then a file .<runid>_runconfig
is created in the project directory containing all the values that need to be picked up by the bots and interfaces. Bots using the nutella library will pick up these values as soon as they will boot. Passed values include:
config.conf
Script right now relies on which nutella
but that returns null when the used didn't add nutella to PATH
Right now this fails... no no no.
$ nutella runs
Currently running 2 instances of project pippo:
pippo
pippo_topo
$ nutella stop pippo
Run pippo_pippo doesn't exist. Impossible to stop it.
We'll also have to prevent run_id = project_id otherwise we'll have confusion when starting/stopping
If we don't do that errors like these might happen
casper:roomquake tebemis$ nutella start rq_demo
events.js:72
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at errnoException (net.js:904:11)
at Server._listen2 (net.js:1042:14)
at listen (net.js:1064:10)
at net.js:1146:9
at dns.js:72:18
at process._tickCallback (node.js:419:13)
gem install nutella-ltg
is all you have to do. Then of course we need to deal with all the dependencies but we can do that afterwards wither by simply notifying the user with nutella checkup
or by wrapping the gem command into an installation script.
When you are using a reverse proxy in front of the framework, the URL get all messed up
When building zip .idea files are still there
Start and stop are filled with bugs... We need to re-structure them in order to make them eject whenever there is a problem with a sub-routines. Also, stuff needs to be better compartmentalized into sub-routines
Nutella libraries need to shelter bots programmers from connection and transport issues. The only exposed primitives available arepublish
and subscribe
. Nutella clients automagically connect (and reconnect) as soon as the bot is started.
nutella libraries also "split" all the logged messages and send them over the net for anybody to subscribe to them
nutella libraries import the variables shared in the .run_config
file as soon as they start and every time the file is changed
Like, WAT???
When validating the template we should check that, if these scripts exist, then they must be executable. https://github.com/ltg-uic/nutella_framework/blob/master/lib/core/commands/install.rb#L142-L143
A template is simply a folder containing a nutella.json
file which contains all the information necessary to us the template. This information includes:
bot
or interface
for nowIn addition to this a bot template is characterized by three shell scripts that are used by nutella download dependencies, compile and run the template:
gem install
, mvn install
, npm install
)mvn compile/package
)Interface bots are more delicate and require some more thinking
The standard way to install a templates is nutella install <templateId>
from within the directory of the project. The command looks into the repository of nutella templates. When you do so, nutella will search the templates database (see below) and will simply do a git clone
of the repo into the current project. As easy as that...
You can always install a template by simply specifying the file path of the template like so nutella install /my/absolute/path/to/file
or by specifying the git repo where the template is.
Templates repository is simply the templates-database
branch of nutella repo containing a bunch of .json
files. Each file is named after the template with the same name and contains:
bot
or interface
)To submit a new template for inclusion in nutella you simply do a pull request to the templates-database
branch and you are good to go. (And, of course, offer the template in a git repo)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.