Install mxmake
:
$ pip install git+https://github.com/mxstack/mxmake.git@main
Create target folder and initialize project:
# Rationale: | |
# | |
# - Zope nowadays runs behind WSGI | |
# - Modern (web) applications might want to serve websockets | |
# - Tools utilizing asyncio are a common thing and some might want to use them | |
# - Having twisted and/or asyncio opens a new universe of computing next to serving a web application inside one process | |
# | |
# Discussion: | |
# | |
# - Any discussion about why to use twisted is pointless. |
Install Node package manager (npm). It is the tool required to install JavaScript packages and libraries:
sudo apt install npm
Install Node version manager (nvm). Volto frontend requires a Node.js server for resource delivery and server side rendering. Node version manager is a tool which helps running the version of Node.js required by Volto:
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
--- video_ffpyplayer.py 2021-04-07 11:27:07.000952871 +0200 | |
+++ video.py 2021-04-07 11:27:09.336960012 +0200 | |
@@ -58,6 +58,7 @@ | |
from kivy.clock import Clock, mainthread | |
from kivy.logger import Logger | |
from kivy.core.video import VideoBase | |
+from kivy.core.window import Window | |
from kivy.graphics import Rectangle, BindTexture | |
from kivy.graphics.texture import Texture | |
from kivy.graphics.fbo import Fbo |
# Requirements | |
# debian/ubuntu | |
apt-get -y update && apt-get -y upgrade | |
apt-get -y install strongswan xl2tpd libstrongswan-standard-plugins libstrongswan-extra-plugins | |
VPN_SERVER_IP='' | |
VPN_IPSEC_PSK='y' | |
VPN_USER='' | |
VPN_PASSWORD='' |
# proposal for kivy language extensions | |
BoxLayout: | |
############ | |
# conditions | |
if root.foo: | |
Label: | |
text: 'Condition true' |
import io | |
import urllib | |
import threading | |
from kivy.uix.image import Image | |
from kivy.properties import StringProperty | |
from kivy.core.image import Image as CoreImage | |
from kivy.clock import Clock | |
from coverbehavior import CoverBehavior | |
from decimal import Decimal | |
from kivy.lang import Builder | |
from kivy.properties import ListProperty | |
Builder.load_string(""" | |
<-CoverBehavior>: | |
canvas.before: | |
StencilPush | |
Rectangle: |
from kivy.uix.screenmanager import ScreenManager | |
from kivy.uix.screenmanager import ScreenManagerException | |
from kivy.uix.screenmanager import Screen | |
class ExtScreenManager(ScreenManager): | |
def __init__(self, **kwargs): | |
Logger.debug('ExtScreenManager.__init__') | |
self.register_event_type('on_finish_screen_switch') |