解法1:当然可以冒泡排序,时间复杂度O(n2n^2n2)解法2:单指针循环两次,第一次循环将所有的0交换到前面;第二次循环将所有的1交换到0的后面classSolution{publicvoidsortColorsBySinglePointer(int[]nums){intzeroCnt=0,p=0;for(inti=0;i
数据库管理-第304期 业绩?有绩无业!(20250320)
胖头鱼的鱼缸(尹海文)
数据库数据库oracle
数据库管理304期2025-03-20数据库管理-第304期业绩?有绩无业!(20250320)1词解2跑偏3活动预告总结数据库管理-第304期业绩?有绩无业!(20250320)作者:胖头鱼的鱼缸(尹海文)OracleACEPro:DatabasePostgreSQLACEPartner10年数据库行业经验拥有OCM11g/12c/19c、MySQL8.0OCP、Exadata、CDP等认证墨天
Python之pip的安装和使用详细教程
叫我技术帝
Pythonpython
我们都知道python有海量的第三方库或者说模块,这些库针对不同的应用,发挥不同的作用。我们在实际的项目中,或多或少的都要使用到第三方库,那么如何将他人的库加入到自己的项目中内呢?打个电话?大哥你好,想用下你那个库,麻烦给邮箱发个源码呗!显然这是个笑话。Python官方的PyPi仓库为我们提供了一个统一的代码托管仓库,所有的第三方库,甚至你自己写的开源模块,都可以发布到这里,让全世界的人分享下载。
渗透工具分享
Werqy3
网络安全
通过网盘分享的文件:exp链接:https://pan.baidu.com/s/1LenqUt7N3FYjeDLyrSAyeQ?pwd=6666提取码:6666--来自百度网盘超级会员v1的分享通过网盘分享的文件:shell链接:https://pan.baidu.com/s/1OOt6osSpOzADW-0ZRpBFZA?pwd=6666提取码:6666--来自百度网盘超级会员v1的分享通过网盘
【mysql】mysql之主从部署以及介绍
向往风的男子
DBAmysql数据库
本站以分享各种运维经验和运维所需要的技能为主《python零基础入门》:python零基础入门学习《python运维脚本》:python运维脚本实践《shell》:shell学习《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战《k8》从问题中去学习k8s《docker学习》暂未更新《ceph学习》ceph日常问题解决分享《日志收集》ELK+各种中间件《运维日常》
如何缓存聊天模型响应以提高效率
scaFHIO
缓存javaoraclepython
技术背景介绍在开发基于大型语言模型(LLM)的应用程序时,API调用的成本和响应速度是需要考虑的两个重要因素。尤其是在开发过程中,重复请求相同的文本生成可能会增加额外的成本和延迟。为了应对这一挑战,LangChain提供了一种可选的缓存机制,可以有效地减少API调用次数,从而节省费用并加速应用程序响应。核心原理解析缓存机制的基本原理是在第一次请求时,将响应存储在缓存中。如果以后再次请求相同的输入,
基于开源项目二次开发建议方案
易迟
开源软件个人开发
背景介绍一般情况下我们不需要进行开源项目的二次开发,因为开源项目往往会提供良好的封装,可以通过依赖包或API服务的形式引入项目中。如果开源项目存在一些问题,我们往往可以通过给开源项目提供PR来解决,这样就可以尽可能减少二次开发开源项目的问题。但是某些情况下可能会需要基于开源项目开发自己的服务,需要一个相对长周期二次开发。而且因为定位不同,代码很难直接合并至开源项目,这种情况下就存在两种情况:不需要
GitHub 超火的开源终端工具——Warp
魔王阿卡纳兹
IT杂谈开源项目观察warp终端iterm2
Warp作为近年来GitHub上备受瞩目的开源终端工具,以其智能化、高性能和协作能力重新定义了命令行操作体验。以下从多个维度深入解析其核心特性、技术架构、用户评价及生态影响力:一、背景与核心团队Warp由前GitHubCTOJasonWarner和Google前首席技术官ZachLloyd领衔开发,团队成员包括来自Figma、GoogleDocs等知名项目的技术专家。其目标是解决传统终端工具(如i
求解一次最佳平方逼近多项式
F_D_Z
数理数值分析一次最佳平方逼近多项式
例设f(x)=1+x2f(x)=\sqrt{1+x^2}f(x)=1+x2,求[0,1][0,1][0,1]上的一个一次最佳平方逼近多项式。解:d0=∫011+x2dx=12ln(1+2)+22≈1.147d_0=\int_{0}^{1}\sqrt{1+x^2}dx=\frac{1}{2}\ln(1+\sqrt{2})+\frac{\sqrt{2}}{2}\approx1.147d0=∫011+
蓝桥杯练习day1:统计能整除数字的位数
你今天刷题了吗?
蓝桥杯算法职场和发展
前言给你一个整数num,返回num中能整除num的数位的数目。如果满足nums%val==0,则认为整数val可以整除nums。示例1:输入:num=7输出:1解释:7被自己整除,因此答案是1。示例2:输入:num=121输出:2解释:121可以被1整除,但无法被2整除。由于1出现两次,所以返回2。示例3:输入:num=1248输出:4解释:1248可以被它每一位上的数字整除,因此答案是4。代码1
文本纠错(Text Correction)
dundunmm
人工智能数据挖掘文本纠错人工智能数据挖掘文本纠错深度学习
文本纠错(TextCorrection)是自然语言处理(NLP)中的一个重要任务,旨在自动检测并修正文本中的错误,包括拼写、语法、语义等层面的错误。其核心目标是通过算法模型将错误文本转换为符合语言规范的表达。该任务在自动写作辅助、搜索引擎优化、智能客服、教育等多个领域具有广泛应用。输入:包含错误的原始文本(如“我明天要去北京,希望天汽好。”)输出:修正后的规范文本(如“我明天要去北京,希望天气好。
基于云效Flow落地自动化构建——构建集群
云效DevOps平台
场景实践云效云效Flow构建器构建集群研发团队研发管理
基于云效Flow落地自动化构建,构建集群,云效流水线Flow是持续交付的载体,通过构建自动化、集成自动化、验证自动化、部署自动化,完成从开发到上线过程的持续交付。通过持续向团队提供及时反馈,让交付过程高效顺畅,基于云效Flow自动化构建工具,构建集群操作群指南。立即体验云效构建集群,云效Flow支持用户个性化的构建场景,提供三种类型的构建集群的能力支持。用户在流水线编排时,可以为任务设置不同的构建
TCP 通信流程图
U_p_
计算机网络知识网络服务器windows
下面给出一个详细的TCP通信流程图,演示客户端(Client)与服务器(Server)之间通过TCP协议进行通信时的各个步骤。这里假设:服务器IP:192.168.1.100,监听80端口客户端IP:192.168.1.200,使用随机分配的端口(示例中为50000)下面的流程图按三次握手、数据交互、四次挥手的顺序展示。为便于阅读,采用ASCII画出大致示意。┌──────────────────
matsim开发教程
若木胡
大数据信息可视化
以下是基于MATSim的二次开发教程指南,结合交通仿真框架的核心功能和开发实践,提供从环境搭建到高级开发的完整路径:一、MATSim简介MATSim(Multi-AgentTransportSimulation)是一个基于Java的开源交通仿真框架,专注于大规模多智能体(Agent)交通行为模拟,支持动态需求建模、路径规划优化、政策评估等应用场景。二、开发环境搭建1.基础依赖JavaJDK11+:
95% 向量资源节省,火山引擎云搜索 RAG 技术体系演进
字节跳动云原生计算
火山引擎搜索引擎算法
采访嘉宾|火山引擎云搜索团队鲁蕴铖、李杰辉、余炜强编辑|TinaInfoQ2023年,大模型惊艳了世界。2024年,RAG技术如日中天。RAG使得大模型能够在不更新模型参数的情况下,获得必要的上下文信息,从而减少大模型的幻觉。随着大型语言模型技术的不断成熟和行业应用的深入,人们对RAG系统的期望已经超越了对其“酷炫”效果的追求。企业和组织开始寻找更可靠、可扩展的RAG解决方案,以满足实际业务需求。
S32K144外设实验(二):ADC单通道单次采样(软件触发)
上层精灵的赞美诗
#S32K144的外设基础实验单片机嵌入式硬件eclipsemcu笔记
文章目录1.概述1.1理论回顾1.1.1时钟系统1.1.2采样通道1.2实验目的2.配置与代码编写1.概述1.1理论回顾S32K144的ADC应该说是特别灵活,笔者采用循序渐进的方式来学习使用这个很重要的外设。在《入门笔记系列》专栏中对用户手册进行了翻译和解读,这里在回顾一下ADC的基本功能,第一次实验我们不使用过于复杂的触发方式。只使用一个通道来理解S32K144的ADC。1.1.1时钟系统首先
再聊 Reducer Context 和 Redux
原文链接这是一次突发奇想的感悟,感觉还挺神奇的,遂记录一下。前言作为一个React的开发者已经蛮久的了,大大小小的应用也开发了不少,除了一开始学习React时用过Redux以外,后来基本都不碰了,不管多么复杂的应用,我也简单的觉得使用Context就能够解决我所有的问题。说来惭愧,我基本没有思考过Redux存在的原因,可能是React真的做的太好了,又或者是我们现在的设备性能已经严重过剩了,让我完
程序员集体失业?DeepSeek这6个反常识用法竟能替代写代码
后端
上周三凌晨两点,我盯着满屏报错的SpringBoot项目抓耳挠腮时,无意间在GitHubtrending榜发现了个宝藏项目。这个让3000+程序员连夜改简历的AI工具,居然把我的烂代码变成了性能提升40%的优雅实现——这可不是什么天方夜谭,而是我亲身经历的DeepSeek实战故事。你可能不信,现在用自然语言描述需求就能生成可运行代码。就像上周我接到个紧急任务:要在三天内完成电商平台的优惠券系统。当
《解锁元宇宙构建:AI与云原生区块链的协同奥秘》
人工智能深度学习
在科技飞速发展的今天,元宇宙已从最初的概念设想逐渐步入人们的视野,成为全球瞩目的焦点。元宇宙,这个融合了虚拟与现实、跨越时空界限的数字世界,正以其独特的魅力和无限的潜力,引领着新一轮的科技革命和产业变革。而在这场变革的背后,AI与云原生区块链技术宛如两颗璀璨的明星,交相辉映,为元宇宙的构建提供了不可或缺的关键支撑。AI:赋予元宇宙“智慧灵魂”智能内容生成,丰富元宇宙的“物质基础”在元宇宙的广袤世界
用旧的手机搭建 MQTT Broker-Node_red
君零渊
单片机
MQTTBroker搭建在Android上搭建MQTT所需工具:termux通过网盘分享的文件:termux-app_v0.118.1+github-debug_armeabi-v7a.apk链接:https://pan.baidu.com/s/1Iii2szXAc02cKVGdP1EuzQ?pwd=fqsc提取码:fqsc在Termux中使用MQTT(MessageQueuingTelemetr
python 正则表达式的语法及使用
主打Python
正则表达式python基础语法正则表达式python
python正则表达式的语法及使用概念:按照程序员的指示,字符串里提取你要的数据。应用:爬虫清洗数据,匹配电话,匹配邮箱,匹配账号……最重要的就是(.*?)正则语法(元字符)1、?:前面的内容出现0-1次2、+:前面的内容出现1-多次3、*:前面的内容出现0-多次‘’’正则(Regular):记住的点:1、(.?)2、re.findall()结果是一个列表3、用(.?)的是后,一定要复制,而不是手
httpcanary动态注入_HttpCanary使用指南——正则匹配注入
火锅大魔王
httpcanary动态注入
HttpCanary于v2.11.0版本上线了正则匹配注入功能。顾名思义,就是使用正则表达式或者匹配字符串,动态修改网络请求数据中的部分数据。举个例子:{"date":"30日星期天","high":"高温30℃","fengli":"","low":"低温23℃","fengxiang":"西南风","type":"多云"}复制代码我们希望将网络请求体中这段数据中的符号℃修改为中文摄氏度,即:{
EmbodiedSAM:在线实时3D实例分割,利用视觉基础模型实现高效场景理解
数据猎手小k
3D实例分割在线实时感知视觉基础模型(VFM)应用
2025-02-12,由清华大学和南洋理工大学的研究团队开发一种名为EmbodiedSAM(ESAM)的在线3D实例分割框架。该框架利用2D视觉基础模型辅助实时3D场景理解,解决了高质量3D数据稀缺的难题,为机器人导航、操作等任务提供了高效、准确的视觉感知能力。一、研究背景随着机器人技术和人工智能的发展,机器人在复杂环境中执行任务(如导航、操作和交互)的能力越来越依赖于对三维(3D)场景的实时、准
桌面上有多个球在同时运动,怎么实现球之间不交叉,即碰撞?
换个号韩国红果果
html小球碰撞
稍微想了一下,然后解决了很多bug,最后终于把它实现了。其实原理很简单。在每改变一个小球的x y坐标后,遍历整个在dom树中的其他小球,看一下它们与当前小球的距离是否小于球半径的两倍?若小于说明下一次绘制该小球(设为a)前要把他的方向变为原来相反方向(与a要碰撞的小球设为b),即假如当前小球的距离小于球半径的两倍的话,马上改变当前小球方向。那么下一次绘制也是先绘制b,再绘制a,由于a的方向已经改变
《高性能HTML5》读后整理的Web性能优化内容
白糖_
html5
读后感
先说说《高性能HTML5》这本书的读后感吧,个人觉得这本书前两章跟书的标题完全搭不上关系,或者说只能算是讲解了“高性能”这三个字,HTML5完全不见踪影。个人觉得作者应该首先把HTML5的大菜拿出来讲一讲,再去分析性能优化的内容,这样才会有吸引力。因为只是在线试读,没有机会看后面的内容,所以不胡乱评价了。
[JShop]Spring MVC的RequestContextHolder使用误区
dinguangx
jeeshop商城系统jshop电商系统
在spring mvc中,为了随时都能取到当前请求的request对象,可以通过RequestContextHolder的静态方法getRequestAttributes()获取Request相关的变量,如request, response等。 在jshop中,对RequestContextHolder的
算法之时间复杂度
周凡杨
java算法时间复杂度效率
在
计算机科学 中,
算法 的时间复杂度是一个
函数 ,它定量描述了该算法的运行时间。这是一个关于代表算法输入值的
字符串 的长度的函数。时间复杂度常用
大O符号 表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是
渐近 的,它考察当输入值大小趋近无穷时的情况。
这样用大写O()来体现算法时间复杂度的记法,
Java事务处理
g21121
java
一、什么是Java事务 通常的观念认为,事务仅与数据库相关。 事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。事务的原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。一致性表示当事务执行失败时,所有被该事务影响的数据都应该恢复到事务执行前的状
Linux awk命令详解
510888780
linux
一. AWK 说明
awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。
awk的处理文本和数据的方式:它逐行扫描文件,从第一行到
android permission
布衣凌宇
Permission
<uses-permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES" ></uses-permission>允许读写访问"properties"表在checkin数据库中,改值可以修改上传
<uses-permission android:na
Oracle和谷歌Java Android官司将推迟
aijuans
javaoracle
北京时间 10 月 7 日,据国外媒体报道,Oracle 和谷歌之间一场等待已久的官司可能会推迟至 10 月 17 日以后进行,这场官司的内容是 Android 操作系统所谓的 Java 专利权之争。本案法官 William Alsup 称根据专利权专家 Florian Mueller 的预测,谷歌 Oracle 案很可能会被推迟。 该案中的第二波辩护被安排在 10 月 17 日出庭,从目前看来
linux shell 常用命令
antlove
linuxshellcommand
grep [options] [regex] [files]
/var/root # grep -n "o" *
hello.c:1:/* This C source can be compiled with:
Java解析XML配置数据库连接(DOM技术连接 SAX技术连接)
百合不是茶
sax技术Java解析xml文档dom技术XML配置数据库连接
XML配置数据库文件的连接其实是个很简单的问题,为什么到现在才写出来主要是昨天在网上看了别人写的,然后一直陷入其中,最后发现不能自拔 所以今天决定自己完成 ,,,,现将代码与思路贴出来供大家一起学习
XML配置数据库的连接主要技术点的博客;
JDBC编程 : JDBC连接数据库
DOM解析XML: DOM解析XML文件
SA
underscore.js 学习(二)
bijian1013
JavaScriptunderscore
Array Functions 所有数组函数对参数对象一样适用。1.first _.first(array, [n]) 别名: head, take 返回array的第一个元素,设置了参数n,就
plSql介绍
bijian1013
oracle数据库plsql
/*
* PL/SQL 程序设计学习笔记
* 学习plSql介绍.pdf
* 时间:2010-10-05
*/
--创建DEPT表
create table DEPT
(
DEPTNO NUMBER(10),
DNAME NVARCHAR2(255),
LOC NVARCHAR2(255)
)
delete dept;
select
【Nginx一】Nginx安装与总体介绍
bit1129
nginx
启动、停止、重新加载Nginx
nginx 启动Nginx服务器,不需要任何参数u
nginx -s stop 快速(强制)关系Nginx服务器
nginx -s quit 优雅的关闭Nginx服务器
nginx -s reload 重新加载Nginx服务器的配置文件
nginx -s reopen 重新打开Nginx日志文件
spring mvc开发中浏览器兼容的奇怪问题
bitray
jqueryAjaxspringMVC浏览器上传文件
最近个人开发一个小的OA项目,属于复习阶段.使用的技术主要是spring mvc作为前端框架,mybatis作为数据库持久化技术.前台使用jquery和一些jquery的插件.
在开发到中间阶段时候发现自己好像忽略了一个小问题,整个项目一直在firefox下测试,没有在IE下测试,不确定是否会出现兼容问题.由于jquer
Lua的io库函数列表
ronin47
lua io
1、io表调用方式:使用io表,io.open将返回指定文件的描述,并且所有的操作将围绕这个文件描述
io表同样提供三种预定义的文件描述io.stdin,io.stdout,io.stderr
2、文件句柄直接调用方式,即使用file:XXX()函数方式进行操作,其中file为io.open()返回的文件句柄
多数I/O函数调用失败时返回nil加错误信息,有些函数成功时返回nil
java-26-左旋转字符串
bylijinnan
java
public class LeftRotateString {
/**
* Q 26 左旋转字符串
* 题目:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。
* 如把字符串abcdef左旋转2位得到字符串cdefab。
* 请实现字符串左旋转的函数。要求时间对长度为n的字符串操作的复杂度为O(n),辅助内存为O(1)。
*/
pu
《vi中的替换艺术》-linux命令五分钟系列之十一
cfyme
linux命令
vi方面的内容不知道分类到哪里好,就放到《Linux命令五分钟系列》里吧!
今天编程,关于栈的一个小例子,其间我需要把”S.”替换为”S->”(替换不包括双引号)。
其实这个不难,不过我觉得应该总结一下vi里的替换技术了,以备以后查阅。
1
所有替换方案都要在冒号“:”状态下书写。
2
如果想将abc替换为xyz,那么就这样
:s/abc/xyz/
不过要特别
[轨道与计算]新的并行计算架构
comsci
并行计算
我在进行流程引擎循环反馈试验的过程中,发现一个有趣的事情。。。如果我们在流程图的每个节点中嵌入一个双向循环代码段,而整个流程中又充满着很多并行路由,每个并行路由中又包含着一些并行节点,那么当整个流程图开始循环反馈过程的时候,这个流程图的运行过程是否变成一个并行计算的架构呢?
重复执行某段代码
dai_lm
android
用handler就可以了
private Handler handler = new Handler();
private Runnable runnable = new Runnable() {
public void run() {
update();
handler.postDelayed(this, 5000);
}
};
开始计时
h
Java实现堆栈(list实现)
datageek
数据结构——堆栈
public interface IStack<T> {
//元素出栈,并返回出栈元素
public T pop();
//元素入栈
public void push(T element);
//获取栈顶元素
public T peek();
//判断栈是否为空
public boolean isEmpty
四大备份MySql数据库方法及可能遇到的问题
dcj3sjt126com
DBbackup
一:通过备份王等软件进行备份前台进不去?
用备份王等软件进行备份是大多老站长的选择,这种方法方便快捷,只要上传备份软件到空间一步步操作就可以,但是许多刚接触备份王软件的客用户来说还原后会出现一个问题:因为新老空间数据库用户名和密码不统一,网站文件打包过来后因没有修改连接文件,还原数据库是好了,可是前台会提示数据库连接错误,网站从而出现打不开的情况。
解决方法:学会修改网站配置文件,大多是由co
github做webhooks:[1]钩子触发是否成功测试
dcj3sjt126com
githubgitwebhook
转自: http://jingyan.baidu.com/article/5d6edee228c88899ebdeec47.html
github和svn一样有钩子的功能,而且更加强大。例如我做的是最常见的push操作触发的钩子操作,则每次更新之后的钩子操作记录都会在github的控制板可以看到!
工具/原料
github
方法/步骤
">的作用" target="_blank">JSP中的作用
蕃薯耀
JSP中<base href="<%=basePath%>">的作用
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
linux下SAMBA服务安装与配置
hanqunfeng
linux
局域网使用的文件共享服务。
一.安装包:
rpm -qa | grep samba
samba-3.6.9-151.el6.x86_64
samba-common-3.6.9-151.el6.x86_64
samba-winbind-3.6.9-151.el6.x86_64
samba-client-3.6.9-151.el6.x86_64
samba-winbind-clients
guava cache
IXHONG
cache
缓存,在我们日常开发中是必不可少的一种解决性能问题的方法。简单的说,cache 就是为了提升系统性能而开辟的一块内存空间。
缓存的主要作用是暂时在内存中保存业务系统的数据处理结果,并且等待下次访问使用。在日常开发的很多场合,由于受限于硬盘IO的性能或者我们自身业务系统的数据处理和获取可能非常费时,当我们发现我们的系统这个数据请求量很大的时候,频繁的IO和频繁的逻辑处理会导致硬盘和CPU资源的
Query的开始--全局变量,noconflict和兼容各种js的初始化方法
kvhur
JavaScriptjquerycss
这个是整个jQuery代码的开始,里面包含了对不同环境的js进行的处理,例如普通环境,Nodejs,和requiredJs的处理方法。 还有jQuery生成$, jQuery全局变量的代码和noConflict代码详解 完整资源:
http://www.gbtags.com/gb/share/5640.htm jQuery 源码:
(
美国人的福利和中国人的储蓄
nannan408
今天看了篇文章,震动很大,说的是美国的福利。
美国医院的无偿入院真的是个好措施。小小的改善,对于社会是大大的信心。小孩,税费等,政府不收反补,真的体现了人文主义。
美国这么高的社会保障会不会使人变懒?答案是否定的。正因为政府解决了后顾之忧,人们才得以倾尽精力去做一些有创造力,更造福社会的事情,这竟成了美国社会思想、人
N阶行列式计算(JAVA)
qiuwanchi
N阶行列式计算
package gaodai;
import java.util.List;
/**
* N阶行列式计算
* @author 邱万迟
*
*/
public class DeterminantCalculation {
public DeterminantCalculation(List<List<Double>> determina
C语言算法之打渔晒网问题
qiufeihu
c算法
如果一个渔夫从2011年1月1日开始每三天打一次渔,两天晒一次网,编程实现当输入2011年1月1日以后任意一天,输出该渔夫是在打渔还是在晒网。
代码如下:
#include <stdio.h>
int leap(int a) /*自定义函数leap()用来指定输入的年份是否为闰年*/
{
if((a%4 == 0 && a%100 != 0
XML中DOCTYPE字段的解析
wyzuomumu
xml
DTD声明始终以!DOCTYPE开头,空一格后跟着文档根元素的名称,如果是内部DTD,则再空一格出现[],在中括号中是文档类型定义的内容. 而对于外部DTD,则又分为私有DTD与公共DTD,私有DTD使用SYSTEM表示,接着是外部DTD的URL. 而公共DTD则使用PUBLIC,接着是DTD公共名称,接着是DTD的URL.
私有DTD
<!DOCTYPErootSYST