Projects

  • OpenSimulator Helpers

    Helpers required to enable common functionalties like search, currency, events in OpenSimulator grids.

    They were initially based on a collection of different projects (see Credits below), but were entirely rewritten to use an unified code and set of parameters, as well as for integration in larger projects like w4os OpenSim WordPress Interface.

    Formerly known as Flexible Helper Scripts.

  • use –recursive to download git submodules

    OpenSim Debian Distribution

    Version: 2.0.0

    This is an framework to facilitate installation and use of OpenSim with Debian.

    https://www.speculoos.world/opensim-debian-installation-framework/

    Features

    ./install/install.sh

    • create basic directory structure, download OpenSim and other needed libraries
    • read Robust default configuration, ask a few questions and build a working configuration in etc/robust-d

    opensim start

    • Start all instances, first in etc/robust-enabled, then in etc/simulators-enabled

    opensim start instance1 [instance2] [...]

    • Start only specified instances The config will be the first match in etc/robust.d/.ini or etc/opensim.d/.ini

    opensim stop [now] [instance1] [instance2] [...]

    opensim restart [now] [instance1] [instance2] [...]

    • Stop/Restart all instances or matching instances
    • If first parameter is "now", stops the simulator immediately, otherwise send reminders to leave during 2 minutes then stop

    opensim status

    • Show active instances, per instance and global memory and cpu usage

    Installation

    git clone --recursive https://git.magiiic.com/opensimulator/opensim-debian.git
    # use --recursive to download git submodules
    # if you don't use recursive, they will be downloaded during installation
    sudo mv opensim-debian /opt/
    export PATH=$PATH:/opt/opensim-debian/bin
    cd /opt/opensim-debian
    ./install/install.sh

    Answer the common setting questions.

    Configuration should be working as is, but you will probably want to adjust

    • ./etc/opensim/opensim.conf (main database configuration)
    • ./etc/opensim/robust.d/*.ini (robust settings)
    • ./etc/opensim/opensim.d/*.ini (simulators settings)
    opensim start

    To enable bash completion:

    sudo apt update
    sudo apt install bash-completion
    sudo ln -s /opt/opensim-debian/lib/bash_completion.d/opensim /etc/bash_completion.d/

    Main motivation

    In a software application, particularly a complicate one like OpenSim, some thing should never be stored at the same place. Essentially, there is a place for static files (executables, libraries), a place for preferences, and a place for data created by the application (permanent or temporary).

    This way, you can

    • easily update the software without touching preferences and data
    • backup the data without duplicating the software
    • avoid duplicating the application if you need to run several instances…

    So, we reorganised the files and folders, matching the general Linux standards.

    • The whole thing is stored in /opt/opensim-debian (could become /usr/share/opensim if we make a package), refferred as OSDDIR below
    • Scripts and utilities are in /OSDDIR/bin/
    • The main code (latest stable OpenSim release) is located in /OSDDIR/core/opensim (no, not in bin, because they are not directly executable on all OSes, and they rely on lot of other files around them)
    • Preferences are read from /OSDDIR/etc/ /etc/ and ~/etc/, each one overriding the precedent
    • Cache is stored in /OSDDIR/var/cache
    • Logs in /OSDDIR/var/logs
    • Databases (if using sqlite) should be store in var/db (but we don’t use sqlite, so this could be added or not later)
    • Git clone and other works in progress should go in dev/

    It was important to achieve this without altering the main OpenSim code. So we created some scripts which:

    • read the preferences in etc/
    • looks for instances to start in etc/robust.d and etc/opensim.d
    • tells OpenSim where to save data, cache and logs

    We have developed and used this setup for several years in Speculoos Grid and wanted to share. Although this was working for us, we don’t push the whole thing as is, as we want to make sure the methods are as globals as they can.

  • OpenKJ Standalone Request Server

    This fork is a work in progress. It is an attempt to mordernize the presentation and the coding methods of the original OpenKJ/StandaloneRequestServer. While it is functional, it does not fit the goals yet.

    Original README:

    Standalone basic single-venue request server implementation for use with OpenKJ.

    Note: This is intended for people who already know how to configure and manage their own webservers and have a general familiarity with php. The easier and more feature rich option is to use the hosted service available at https://okjsongbook.com

    Requires php

    Can be run under either php’s built in web server or under any web server with php support like apache or nginx.

    Ignores any API key specified in the OpenKJ.

    If you were serving this from a web server as http://10.0.0.1/requestserver, you would configure the server URL in OpenKJ to point to http://10.0.0.1/requestserver/api.php

    config/settings.php should be edited with an appropriate database path that the webserver has write access to. If the database file doesn’t exist, it will be created automatically.

  • Oli’s Breadcrumbs

    Several ways to add breadcrumbs to your pages, if your theme does not support them. If you theme already supports breadcrumbs, you probably don’t need this plugin, as it is likely to have less options.

    You can add breadcrumbs with any of these methods:

    • [breadcrumbs] shortcode
    • Breadcrumbs widget
    • Breadcrumbs Divi Module (for Divi Themes or with Divi plugin)
    • Breadcrumbs Element WPBakery Page Builder (aka js_composer aka Visual Composer)

    Here are the options for the shordcode.

    • [breadcrumbs exclude-home="true"] do not start the breadcrumbs with home page, default false
    • [breadcrumbs exclude-archives="true"] do not include main articles archive link, default false
    • [breadcrumbs exclude-title="true"] do not end the breadcrumbs with the post title, default false
    • [breadcrumbs separator="×"] separator, default "/"

    Equivalent options are available in the widget and the Divi Module.

  • No ‘(no title)’

    This plugin is intended for websites publishing posts without title, to avoid a long list of ‘(no title’) in admin screen, which makes searches very difficult.

    Only in admin posts list, and only if the post title is empty, show firsts words of the content instead.

    This plugin leaves the post unchanged and does not replace the actual title, so the post would display as intended on posts and archives.

    Inspired by a solution on https://wordpress.stackexchange.com/questions/189671/show-excerpt-if-no-title-in-admin-view

    I added a filter to replace line breaks with spaces, to avoid collapsing words when the content starts with short lines.

  • MultiPass (dev)

    Bring orders from several sources together and see them as a single provision of services.

    Particularly useful in lodging facilities, if your business offers other kinds of services (meals, vehicule rentals, merchandising, local products…) that are not or poorly handled by your usual booking engine.

    This plugin could also fit well other kinds of services, needing a more fluid approach than usual e-commerce solutions.

    DISCLAIMER: this is an early-stage development version, updates might include breaking changes until 1.0 release.

    WARNING: Make a full backup of your website and databases before installing this plugin. I MEAN IT (see disclaimer).

  • Magiiic Updater

    This should deliver updates for plugins provided by https://magiiic.com.

    However this project just started. So this plugin does nothing yet, or worst, does random things.

  • # Table Of Contents

    MagicMirror²: The open source modular smart mirror platform.

    Dependency Status devDependency Status Node Version License Travis Known Vulnerabilities

    MagicMirror² is an open source modular smart mirror platform. With a growing list of installable modules, the MagicMirror² allows you to convert your hallway or bathroom mirror into your personal assistant. MagicMirror² is built by the creator of the original MagicMirror with the incredible help of a growing community of contributors.

    MagicMirror² focuses on a modular plugin system and uses Electron as an application wrapper. So no more web server or browser installs necessary!

    NOTE: This version is in currently in beta stage. Please use the master branch if you need a thoroughly tested version.

    Table Of Contents

    Usage

    Raspberry Pi Support

    Electron, the app wrapper around MagicMirror², only supports the Raspberry Pi 2 & 3. The Raspberry Pi 1 is currently not supported. If you want to run this on a Raspberry Pi 1, use the server only feature and setup a fullscreen browser yourself.

    Automatic Installer (Raspberry Pi Only!)

    Execute the following command on your Raspberry Pi to install MagicMirror²:

    curl -sL https://raw.githubusercontent.com/MichMich/MagicMirror/master/installers/raspberry.sh | bash

    Manual Installation

    1. Download and install the latest Node.js version.
    2. Clone the repository and check out the beta branch: git clone https://github.com/MichMich/MagicMirror
    3. Enter the repository: cd ~/MagicMirror
    4. Install and run the app: npm install && npm start

    Important: npm start does not work via SSH, use DISPLAY=:0 nohup npm start & instead. This starts the mirror on the remote display.

    Server Only

    In some cases, you want to start the application without an actual app window. In this case, execute the following command from the MagicMirror folder: node serveronly. This will start the server, after which you can open the application in your browser of choice.

    Raspberry Configuration & Auto Start.

    The following wiki links are helpful in the configuration of your MagicMirror² operating system:

    Updating you MagicMirror²

    If you want to update your MagicMirror² to the latest version, use your terminal to go to your Magic Mirror folder and type the following command:

    git pull

    If you changed nothing more than the config or the modules, this should work without any problems. Type git status to see your changes, if there are any, you can reset them with git reset --hard. After that, git pull should be possible.

    Configuration

    1. Duplicate config/config.js.sample to config/config.js.
    2. Modify your required settings.

    The following properties can be configured:

    Option Description
    port The port on which the MagicMirror² server will run on. The default value is 8080.
    language The language of the interface. (Note: Not all elements will be localized.) Possible values are en, nl, ru, fr, etc., but the default value is en.
    timeFormat The form of time notation that will be used. Possible values are 12 or 24. The default is 24.
    units The units that will be used in the default weather modules. Possible values are metric or imperial. The default is metric.
    modules An array of active modules. The array must contain objects. See the next table below for more information.

    Module configuration:

    Option Description
    module The name of the module. This can also contain the subfolder. Valid examples include clock, default/calendar and custommodules/mymodule.
    position The location of the module in which the module will be loaded. Possible values are top_ bar, top_left, top_center, top_right, upper_third, middle_center, lower_third, bottom_left, bottom_center, bottom_right, bottom_bar, fullscreen_above, and fullscreen_below. This field is optional but most modules require this field to set. Check the documentation of the module for more information. Multiple modules with the same position will be ordered based on the order in the configuration file.
    classes Additional classes which are passed to the module. The field is optional.
    header To display a header text above the module, add the header property. This field is optional.
    config An object with the module configuration properties. Check the documentation of the module for more information. This field is optional, unless the module requires extra configuration.

    Modules

    The following modules are installed by default.

    For more available modules, check out out the wiki page: MagicMirror² Modules. If you want to build your own modules, check out the MagicMirror² Module Development Documentation and don’t forget to add it to the wiki and the forum!

    Known issues

    • Electron seems to have some issues on certain Raspberry Pi 2’s. See #145.
    • MagicMirror² (Electron) sometimes quits without an error after an extended period of use. See #150.

    Community

    The community around the MagicMirror² is constantly growing. We even have a forum now where you can share your ideas, ask questions, help others and get inspired by other builders. We would love to see you there!

    Contributing Guidelines

    Contributions of all kinds are welcome, not only in the form of code but also with regards bug reports and documentation.

    Please keep the following in mind:

    • Bug Reports: Make sure you’re running the latest version. If the issue(s) still persist: please open a clearly documented issue with a clear title.
    • Minor Bug Fixes: Please send a pull request with a clear explanation of the issue or a link to the issue it solves.
    • Major Bug Fixes: please discuss your approach in an GitHub issue before you start to alter a big part of the code.
    • New Features: please please discuss in a GitHub issue before you start to alter a big part of the code. Without discussion upfront, the pull request will not be accepted / merged.

    Thanks for your help in making MagicMirror² better!

  • Lodgify Link for WooCommerce

    Currently, the plugin simply provides booking id and user-defined amount fields to WooCommerce products, to allow keeping track of payments related to externally managed bookings.

    The final goal will be to use this booking id to fetch booking data from Lodgify and display a comprehensive detail of the reservation in WooCommerce order (accommodation, name of guest, booking dates, deposit and total amount…)

  • # Description

    Todo list manager, compatible with Todo.txt format (http://todotxt.com/). This is a very simple, lightweight format, allowing

    This plugin is inspired by "Pense-bête" (http://domotiquefacile.fr/jarvis/plugins/pense-bête), which has a simple task management, but does not follow any standard for the data file.