Complemento personal de software.
- Aplicación web:
Las aplicaciones que vienen por defecto son:
- 🕓 Ahora - para gestionar las actividades del día
- ⬅️🕓➡️ En todo el día
- ⬅️🕓 Antes
- 🕓➡️ Después
- 📦 Base de datos - para manejar los fatos básicos del sistema
- 📦 Acción
- 📦 Concepto
- 📦 Nota
- 📦 Articulo
- 📦 ... (otros)
- 📂 Sistema de ficheros
- ℹ️ Un sistema de ficheros totalmente virtual basado en
IndexedDB - ℹ️ Soporta ficheros:
- 📄
/kernel/agenda/randomizables.env- ℹ️ Lista los elementos para inflar randomly el día
- 📄
/kernel/apps/{nombre de app}/load.js- ℹ️ Apps personalizadas
- 📄
/kernel/bin/{nombre de binario}.js- ℹ️ Binarios rápidos personalizados
- ℹ️ Son igual que las apps pero se acceden desde la app «💣 Binarios» solamente
- 📄
/kernel/components/{nombre de componente}/{nombre de componente}.{html, js, css}- ℹ️ Componentes Vue2 que quieres cargar automáticamente
- 📄
/kernel/goals/goals.week- ℹ️ Script tipo WeekLang para:
- Sintaxis
req: requisitos de la semana - Sintaxis
set: planes de la semana - la sintaxis en pegjs está en:
- el ejemplo básico está en:
- Sintaxis
- ℹ️ Script tipo WeekLang para:
- ℹ️ Un sistema de ficheros totalmente virtual basado en
- 💣 Binarios
- ℹ️ Como apps pero sin ensuciar el escritorio
- 📆 Agenda
- 📆 Calendario de días
- 📊 Reportes - para visualizar reportes personalizados
- 🔮 Conductometría - para propagaciones conceptuales (en desarrollo y experimental)
- 🏁 Objetivos y hábitos - para visualizar los estados de ciertas actividades
- 💬 Notas
- ℹ️ Para consultar tus notas rápidas
- ℹ️ Puedes priorizar urgentes
- 💬➕ Nueva nota
- 📖 Diario
- ℹ️ Para un trackeo de texto a diario
- ℹ️ Puedes ir de un día a otro
- 🔬 Enciclopedia
- ℹ️ Puedes hacer libros, categorías y artículos
- 🔬➕ Nuevo artículo
- 🪲 Inspector de JS
- ℹ️ Para inspeccionar cómodamente JS en vivo
- 💻 Consola de JS
- ℹ️ Basada en
eruda
- ℹ️ Basada en
- 🐱 Emojis
- ℹ️ Para recuperar emojis rápidamente
- 📹 Trackeables
- ℹ️ Captura frecuencia de eventos de la realidad
- ℹ️ Monitoriza y persiste tu circunstancia
- ✅ Tests de aplicación
- ℹ️ Tiene los tests principales de la aplicación
⚠️ Orientada a desarrollo- ℹ️ En activo, permite comprobar la salud de la aplicación
- √ Ecuaciones
- ℹ️ Permite resolver ecuaciones complejas
- ℹ️ Se basa en
math.js
- ⚛️ Moléculas
- ℹ️ Permite visualizar moléculas en 2D
- ℹ️ Se basa en
smiles(Simplified Molecular Input Line Entry System )
- 🔠 Sintaxis
- ℹ️ Permite crear sintaxis para JavaScript rápidamente
- ℹ️ Se basa en
pegjs/peggyjs
- 🎨 Pinturas
- ℹ️ Permite crear lienzos rápidamente
- ℹ️ Se basa en
pixi
- 📊 Constructor de gráficas
- ℹ️ Permite crear gráficas complejas rápidamente
- ℹ️ Se basa en
observable plot
- 🔧 Configuraciones
- ℹ️ Permite acceder a ciertas configuraciones de la aplicación
- ✨ Nueva feature
⚠️ Orientada a desarrollo- ℹ️ En activo siempre
La aplicación es bastante intuitiva considero, así que paso a explicar directamente los "trucos" o aspectos más particulares y específicos.
En el 📂 Sistema de ficheros virtual de la app puedes configurar:
- /kernel/boot.js:
- Para el evento de inicio automático.
- /kernel/agenda/proto/boot.proto:
- Para iniciar una lógica de virtualización de la conductometría.
- Puedes usar toda la carpeta para crear tus includes de protolang
- Sí, protolang (los *.proto) es un lenguaje no documentado
- El tripilang (los *.tri) tampoco está documentado
- /kernel/agenda/report/*.js:
- Para importar reportes de conductometría.
- /kernel/components/$componente/$componente.{html,css,js}:
- Para importar componentes vue@2 desde el boot.
- /kernel/settings/table/storage/*.json:
- Para la caché de las tablas de la aplicación con identificador de almacén especificado.
- /kernel/settings/automessages.env:
- Para los mensajes de automotivación.
- /kernel/settings/backgrounds.env:
- Para las imágenes de fondo de pantalla.
- /kernel/settings/randomizables.env:
- Para las actividades randomizables de la agenda.
- /kernel/settings/rutiner.md:
- Para el mensaje rutinario.
- /kernel/settings/rutiner.config.env:
- Para las configuraciones del mensaje rutinario.
- /kernel/settings/user.env:
- Para preferencias de usuario simples.
- /kernel/settings/goals/factory:
- Funciones que devuelven los parámetros de un objetivo.
- /kernel/wiki/categorias.tri:
- Para las categorías disponibles desde la enciclopedia.
- Sí, tripilang (los *.tri) no está documentado. Pero no es difícil.
- /kernel/wiki/libros/*.tri:
- Para los índices de artículos de los libros disponibles desde la enciclopedia.
- /kernel/goals/goals.week:
- Para adjuntar objetivos a fechas y días de semanas
- Permite crear escuchas de barras en el widget de
calendario » después. - Permite crear acciones pendientes a los días
- se crean cuando se visita el día y se encuentra la coincidencia
- Debe seguir la sintaxis de
weeklang, lenguaje documentado en:
Seguramente hay más.
- El botón con
🎲↗️:- al clicar, en silencio se importan los
randomizablesque falten, comoConcepto. - es el bloque
Load_secretly_random_actions_as_conceptsen el código enlsw-agenda-acciones-viewer.js.
- al clicar, en silencio se importan los
- El boton de
Resetearen Configuraciones » Base de datos:- borrará la base de datos si no hay conexiones extra:
- pero puede que tengas que refrescar (o salir y entrar de la app) para que se pueda seguir usando la base de datos.
- son cosas de IndexedDB y yo no puedo hacer nada con esto.
- Se trataría de hacer el script de
weeklangpara que las barras se te vayan poniendo para tus cosas.- en el calendario, este botón:
🏁↗️ - está escondido, porque en principio te pones la rutina semanal y él ya te la va recordando.
- en el calendario, este botón:
- Y tienes luego para ir añadiendo información, organizándote una base de datos de artículos y libros, de momento.
- Y tienes el apartado de binarios también, para lanzar scripts rápidamente.
A parte de toda la API normal, con todas sus globales y demás, destacar:
// Las básicas:
Vue.prototype.$lsw.toasts.collapse({});
this.$lsw;
lsw.toasts.send({
title: "whatever",
text: "whatever else",
});
Vue.prototype.$lsw.toasts.debug({});
await LswAndroid.eval(es6code);
await LswAndroid.evalFile(es6file);
// Si necesitas más:
await Vue.prototype.$lsw.dialogs.open({
title: "título",
template: `<pre class="codeblock">{{ typeof debuggable === 'string' ? debuggable : JSON.stringify(debuggable, null, 2) }}</pre>`,
factory: {
data: {
debuggable: {}
}
}
});
LswDebugger.global.debug("aquí puede ir cualquier cosa")
LswDebugger.global.debug("y será accesible")
LswDebugger.global.debug("aunque acumules muchos logs")
LswDebugger.global.debug("porque se autoexpiran")En la versión de la aplicación móvil (solo Android) se carga:
cordovaaccedible como variable globalrhinoplugin-cordova-rhino
Para invocar JavaScript en entorno android/rhino tienes los ganchos finales:
LswAndroid.evalFile("/kernel/android/myscript.js");
LswAndroid.eval(function() {
// @android-rhino-js
});cordova
cordova.plugins.Rhinobridge.evaluate(es5code);
applicationContext
Packages
System
Math
$RhinobridgePluginClass
$rhinobridgePlugin
$scope
$rhino
$webview /*
$webview.loadUrl("javascript:" + es5code);
*/
abg /*
abg instanceof class AndroidBridge {
public Context getContext()
public Object getSystemService(String name)
public Class<?> getClass(String name) throws ClassNotFoundException
public Class<?> forName(String name) throws ClassNotFoundException
public void toast(String text, int duration)
public String getPackageName()
public Object getApplicationInfo()
public Object getResources()
public Object getAssets()
public Object getContentResolver()
public Object getApplicationContext()
}
*/
print('not seen anywhere')
evaluateByBrowser("alert('hello')");