- threejs的transformControls拖拽结束的异常
transformControls拖拽结束以后会以结束点的射线拾取重新选中新的模型,这里发现是监听事件的问题//创建TransformControlsconsttransformControls=newTransformControls(camera,renderer.domElement);consttransformControlsHelper=transformControls.getHel
- 让你的 AI 更聪明,这 7 个开源 MCP 项目不要错过
霍格沃兹测试开发学社
人工智能人工智能测试用例开发语言selenium驱动开发开源python
你还在用AI只是写写文档、改改代码?那你真的小看它了。现在,通过一套叫MCP(ModelControlPlane)的系统,AI不再只是“语言模型”,而是能直接操作网页、调用工具、自动化执行复杂任务的“智能助手”!今天整理了7个超实用的开源MCP项目,让你的AI立刻“开挂”。01|PagePublisherMCP:HTML页面一键上线还在发愁怎么把AI生成的HTML页部署上线?PagePublish
- FPGA 47 ,MIG 内存接口生成器深度解析( FPGA 中的 MIG 技术 )
北城笑笑
fpga开发fpga
目录前言一、基础理论1.1MIG介绍1.2结构框架1.2.1主要模块①用户接口层(UserInterfaceLayer)②控制逻辑层(ControLogicLayer)③校准逻辑(CalibrationLogic)④初始化与时序控制(Initialization&TimingControl)⑤物理层接口(PHY–PhysicalLayer)⑥IO引脚驱动(引脚分配与IO配置:Pinout&IOSt
- 【Python】(一)面试题和Py基础题
戏精亿点点菜
python开发语言
1.技术面试题(1)TCP与UDP的区别是什么?答:TCP(TransmissionControlProtocol,传输控制协议)提供的是面向连接,可靠的字节流服务。即客户和服务器交换数据前,必须现在双方之间建立一个TCP连接,之后才能传输数据。并且提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。UDP(UserDataProtocol,用户数据报协议)是一个简单
- Three.js实现海洋与天空
Three.js实现海洋与天空https://threehub.cn/#/codeMirror?navigation=ThreeJS&classify=shader&id=waterSkyimport*asTHREEfrom"three";import{OrbitControls}from'three/examples/jsm/controls/OrbitControls.js'constDOM=
- Unity中的动画过渡
数据猴赛雷
Unityunity游戏引擎
1、动画过渡概况动画过渡允许状态机从一个动画状态切换或混合到另一动画状态。过渡不仅定义状态之间的混合应该耗费多长时间,而且还定义它们应该在什么条件下激活。您可以设置仅在特定条件成立时才发生过渡。要设置这些条件,请在AnimatorController中指定参数值。例如,您的角色可能具有“巡逻”状态和“睡眠”状态。您可以将巡逻和睡眠之间的过渡设置为仅在“alertness”参数值低于某个水平时才会发
- SpringBoot-19-企业云端开发实践之web开发晋级
皮皮冰燃
SpringBootspringboot前端后端
文章目录1静态资源访问1.1static静态资源目录1.2application.properties(过滤规则)2文件上传2.1文件上传原理2.2SprintBoot文件上传功能2.3FileUploadController.java2.4配置访问上传的文件3拦截器3.1interceptor/LoginInterceptor3.2config/WebConfig4RESTful服务和Swagg
- 使用STM32CubeMX在嵌入式系统中实现通过FMC读写SDRAM
程序员杨弋
嵌入式开发stm32嵌入式硬件单片机嵌入式
嵌入式系统中的存储器是非常重要的组成部分,为了满足大容量和高速度要求,SDRAM(SynchronousDynamicRandomAccessMemory)是常用的选择之一。本文将介绍如何使用STM32CubeMX配置硬件FMC(FlexibleMemoryController)以实现在STM32微控制器上读写SDRAM。1、STM32CubeMX配置FMC和SDRAM首先,我们需要打开STM32
- 【JAVA】Spring MVC 详解
弗瑞德学JAVA
JAVA复习javaspringmvc
SpringMVC基本概念1.SpringMVC概述SpringMVC是Spring框架中的一个模块,专注于为Web应用程序提供Model-View-Controller(MVC)架构。它帮助开发者构建可扩展、可维护的Web应用,并且能够轻松集成到Spring生态系统中。2.DispatcherServletDispatcherServlet是SpringMVC的核心组件,负责接收HTTP请求,并
- 基于 FastAPI + MySQL 打造高性能企业级 RBAC 权限系统
源滚滚AI编程
fastapimysqladb
在企业级应用开发中,精细化的权限控制是保障系统安全的核心需求。基于角色的访问控制(RBAC)通过解耦用户与权限的逻辑关系,大幅提升了权限管理的灵活性和可维护性。本文将深入解析如何基于FastAPI和MySQL构建一套高性能、易扩展的企业级RBAC系统。一、RBAC核心架构设计RBAC(Role-BasedAccessControl)的核心在于三层映射关系:用户(User):系统操作主体角色(Rol
- Kubernetes Ingress 服务发布进阶
伤不起bb
kubernetes容器云原生
目录一、核心概念与原理1.Ingress基础概念(1)Ingress的定位(2)Ingress与其他暴露方式对比(3)Ingress组成与分工2.Ingress工作原理(以Nginx为例)3.典型流量访问链路二、IngressNginxController安装(Helm方式)1.环境准备与工具安装2.核心配置文件修改(values.yaml)3.部署与验证命令三、Ingress基础使用:域名绑定服
- 四旋翼飞行器动力学建模与简单PID控制
四旋翼飞行器动力学建模与简单PID控制四旋翼飞行器动力学建模与简单PID控制/quadrotorsimV2/license.txt,1320四旋翼飞行器动力学建模与简单PID控制/quadrotorsimV2/quadrotorsim/Brushless-motor.jpg,40654四旋翼飞行器动力学建模与简单PID控制/quadrotorsimV2/quadrotorsim/control.b
- 基于matlab的二连杆机械臂PD控制的仿真
bubiyoushang888
matlab开发语言
基于matlab的二连杆机械臂PD控制的仿真。。。chap3_5input.m,1206d2plant1.m,1364hs_err_pid2808.log,15398hs_err_pid4008.log,15494lx_plot.m,885PD_Control.mdl,35066tiaojie.m,737chap2_1ctrl.asv,988chap2_1ctrl.m,905
- php yaf_cg --app=www.yafapi.com --directory=D:\phpstudy_pro\WWW\www.yafapi.com --controller=Test` 到底
1.phpyaf_cg--app=www.yafapi.com--directory=D:\phpstudy_pro\WWW\www.yafapi.com--controller=Test到底是干什么的?这条命令是使用Yaf(YetAnotherFramework)框架提供的代码生成工具yaf_cg,自动生成一个基于Yaf框架的应用程序结构和代码文件。它的作用是帮助开发者快速搭建项目的基础结构,减
- 计算机网络 (24)网际控制报文协议ICMP
前言计算机网络中的网际控制报文协议(ICMP,InternetControlMessageProtocol)是TCP/IP协议簇的一个子协议,它在网络层中扮演着重要的角色。一、ICMP的定义与功能侦测远端主机是否存在:通过发送ICMPEcho请求报文(ping命令)并等待Echo应答报文,可以确定远端主机的网络连通性。建立及维护路由资料:ICMP重定向报文可以通知主机更改路由路径,以便数据包能够更
- MsSql 其他(2)
hello 早上好
#面试汇总-MySql数据库mysql
✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨Mysql中的MVCC一、MVCC的核心目标与设计背景MVCC(Multi-VersionConcurrencyControl,多版本并发控制)是InnoDB存储引擎为实现高并发事务处理而设计的核心机制。其核心目标是:在不牺牲事务隔离性的前提下,通过“读不阻塞写,写不阻塞读”的方式,大幅提升数据库的并发性能。传统数据库的并发控制依赖锁机制(如读锁、写锁),但锁会导致读
- SpringBoot-18-企业云端开发实践之web开发基础
皮皮冰燃
SpringBootspringboot后端
文章目录1环境准备1.1Web应用概念介绍1.2开发环境配置2SpringBoot快速上手2.1SpringBoot介绍2.2新建项目示例2.2.1Springinitializr2.2.2pom.xml2.2.3HelloController.java2.3开发环境热部署2.3.1pom.xml2.3.2application.properties(可选)2.3.3IDEA工具设置热部署3web
- Spring框架详细教程文档
z小天才b
Springspringjava后端
目录1.Spring框架概述1.1什么是Spring框架1.2Spring的发展历程1.3Spring的核心特性1.3.1轻量级框架1.3.2控制反转(IoC)1.3.3面向切面编程(AOP)1.3.4容器功能1.4Spring的优势1.5Spring生态系统2.Spring核心概念2.1控制反转(IoC-InversionofControl)2.1.1什么是控制反转2.1.2控制反转的好处2.2
- 2024-07-23 Unity AI行为树2 —— 项目介绍
蔗理苦
Unity功能模块分享unity游戏引擎c#C#
文章目录1项目介绍2AI代码介绍2.1BTBaseNode/BTControlNode2.2动作/条件节点2.3选择/顺序节点3怪物实现4其他功能5UML类图项目借鉴B站唐老狮2023年直播内容。点击前往唐老狮B站主页。1项目介绍本项目使用Unity2022.3.32f1c1,实现基本的AI框架。其中,用Cube(红色)代替怪物模型,Cube(蓝色)代替玩家,即AI目标。项目地址:https://
- MySQL MVCC 详解
MySQLMVCC详解维基百科上关于MVCC的介绍:多版本并发控制(Multiversionconcurrencycontrol,MCC或MVCC),是数据库管理系统常用的一种并发控制,也用于程序设计语言实现事务内存。MVCC意图解决读写锁造成的多个、长时间的读操作饿死写操作问题。每个事务读到的数据项都是一个历史快照,并依赖于实现的隔离级别。写操作不覆盖已有数据项,而是创建一个新的版本,直至所在操
- 中国三维计量软件市场趋势报告、技术动态创新及市场预测
贝哲斯咨询
其他
三维计量软件市场的企业竞争态势该报告涉及的主要国际市场参与者有CarlZeissAG、FaroTechnologies,Inc.、H.S.&S.Inc.、HeliotisAG、ZebiconA/S、CreaformInc.、MitutoyoCorporation、HexagonAB、3dSystemCorp、NikonCorporation、GeMeasurement&ControlSolutio
- mysql日志报:Changed limits: max_open_files: 1024
linux上的数据库mysql突然挂掉了重启mysql(systemctlrestartmysqld),出现类似下面的情况:/system.slice/mysqld.service└─control├─2571/bin/bash/usr/bin/mysql-systemd-startpost└─3541sleep1最后查看mysql.log发现不知道错误的错误:[Warning]Bufferedw
- 解决更新python版本后,虚拟环境不可用的问题
Superstarimage
diffusers编程pythonpython人工智能开发语言
因为安装xformers,需要额外加装triton,而triton需要的python版本(3.10)高于我当前虚拟环境的版本(3.8),因此博主手动提升了当前虚拟环境的版本:condainstallpython=3.10结果应用该虚拟环境时,始终报如下错误:(TrainControlNet)F:\XYX\Documents\SpongeCakeInverse\AITools\the3rdparty
- C#企业级API版本控制实战:构建可扩展的微服务架构
墨夶
C#学习资料架构c#微服务
第一章:企业级API版本控制的生死时速1.1版本控制的三重门//版本控制决策树publicenumVersionControlStrategy{[Description("URI路径版本控制")]UriPath=1,[Description("自定义HTTP头版本控制")]CustomHeader=2,[Description("Accept媒体类型版本控制")]MediaType=3}publi
- JIEJIE.NET:.NET代码混淆终极实战指南
墨夶
C#学习资料.netwindows
第一章:JIEJIE.NET核心架构解析1.1IL代码分析引擎//IL指令分析器核心逻辑publicclassILAnalyzer{publicvoidAnalyzeMethod(MethodBodymethodBody){//提取控制流图varcontrolFlowGraph=BuildControlFlowGraph(methodBody);//识别敏感结构varsensitiveStruct
- MVVM和MVC区别
秋恬意
mvcvue
MVVM(Model-View-ViewModel)和MVC(Model-View-Controller)是两种常见的软件架构模式,它们在处理用户界面与业务逻辑之间的交互时有一些不同的设计理念和实现方式。下面我将详细说明这两种模式的区别。1.架构概述MVC(Model-View-Controller)Model:表示应用的核心数据和业务逻辑,通常是与数据库交互的部分。View:用户界面,负责显示数
- flutter动画
基础动画Animation:Flutter动画中的核心类,此类是抽象类,通常情况下使用其子类:AnimationController,可以获取当前动画的状态和值,也可以添加其状态变化监听和值变化监听。Curve:决定动画执行的曲线,和Android中的Interpolator(差值器)是一样的,负责控制动画变化的速率,系统已经封装了10多种动画曲线,详见Curves类。差值器AnimationCo
- xbox one controller DSLogic 逻辑分析仪截包
aerror
xboxstm32嵌入式硬件
为什么不用bushound?为什么不用wireshare+usbpcap?那是因为xboxonecontroller和xbox360controllerggs一样,是很特殊的。它一样也是使用了很独立的desc和configuration,甚至没有HIDdesc,和xbox360的controller一样也没有report…一插上xboxonecontroller会产生三个设备,使用bushound
- Xbox One 控制器转换为 macOS HID 设备的工作原理分析
aerror
xboxmacos
XboxOne控制器转换为macOSHID设备的工作原理分析源代码在https://github.com/guilhermearaujo/xboxonecontrollerenabler.git这个工程的核心功能是将XboxOne控制器(macOS原生不支持的设备)转换为macOS可识别的HID设备。这里通过分析代码,详细解释其工作原理、设备描述和报告描述符的实现。整体架构该项目由三个主要部分组成
- Elasticsearch 启动失败?从日志分析到最终解决(磁盘空间不足案例)
Leaton Lee
elasticsearch大数据搜索引擎
问题背景最近在本地运行一个SpringBoot项目时,突然遇到Elasticsearch(ES)连接超时的问题:org.springframework.beans.factory.UnsatisfiedDependencyException:Errorcreatingbeanwithname'awardController':Unsatisfieddependencyexpressedthroug
- ztree设置禁用节点
3213213333332132
JavaScriptztreejsonsetDisabledNodeAjax
ztree设置禁用节点的时候注意,当使用ajax后台请求数据,必须要设置为同步获取数据,否者会获取不到节点对象,导致设置禁用没有效果。
$(function(){
showTree();
setDisabledNode();
});
- JVM patch by Taobao
bookjovi
javaHotSpot
在网上无意中看到淘宝提交的hotspot patch,共四个,有意思,记录一下。
7050685:jsdbproc64.sh has a typo in the package name
7058036:FieldsAllocationStyle=2 does not work in 32-bit VM
7060619:C1 should respect inline and
- 将session存储到数据库中
dcj3sjt126com
sqlPHPsession
CREATE TABLE sessions (
id CHAR(32) NOT NULL,
data TEXT,
last_accessed TIMESTAMP NOT NULL,
PRIMARY KEY (id)
);
<?php
/**
* Created by PhpStorm.
* User: michaeldu
* Date
- Vector
171815164
vector
public Vector<CartProduct> delCart(Vector<CartProduct> cart, String id) {
for (int i = 0; i < cart.size(); i++) {
if (cart.get(i).getId().equals(id)) {
cart.remove(i);
- 各连接池配置参数比较
g21121
连接池
排版真心费劲,大家凑合看下吧,见谅~
Druid
DBCP
C3P0
Proxool
数据库用户名称 Username Username User
数据库密码 Password Password Password
驱动名
- [简单]mybatis insert语句添加动态字段
53873039oycg
mybatis
mysql数据库,id自增,配置如下:
<insert id="saveTestTb" useGeneratedKeys="true" keyProperty="id"
parameterType=&
- struts2拦截器配置
云端月影
struts2拦截器
struts2拦截器interceptor的三种配置方法
方法1. 普通配置法
<struts>
<package name="struts2" extends="struts-default">
&
- IE中页面不居中,火狐谷歌等正常
aijuans
IE中页面不居中
问题是首页在火狐、谷歌、所有IE中正常显示,列表页的页面在火狐谷歌中正常,在IE6、7、8中都不中,觉得可能那个地方设置的让IE系列都不认识,仔细查看后发现,列表页中没写HTML模板部分没有添加DTD定义,就是<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3
- String,int,Integer,char 几个类型常见转换
antonyup_2006
htmlsql.net
如何将字串 String 转换成整数 int?
int i = Integer.valueOf(my_str).intValue();
int i=Integer.parseInt(str);
如何将字串 String 转换成Integer ?
Integer integer=Integer.valueOf(str);
如何将整数 int 转换成字串 String ?
1.
- PL/SQL的游标类型
百合不是茶
显示游标(静态游标)隐式游标游标的更新和删除%rowtyperef游标(动态游标)
游标是oracle中的一个结果集,用于存放查询的结果;
PL/SQL中游标的声明;
1,声明游标
2,打开游标(默认是关闭的);
3,提取数据
4,关闭游标
注意的要点:游标必须声明在declare中,使用open打开游标,fetch取游标中的数据,close关闭游标
隐式游标:主要是对DML数据的操作隐
- JUnit4中@AfterClass @BeforeClass @after @before的区别对比
bijian1013
JUnit4单元测试
一.基础知识
JUnit4使用Java5中的注解(annotation),以下是JUnit4常用的几个annotation: @Before:初始化方法 对于每一个测试方法都要执行一次(注意与BeforeClass区别,后者是对于所有方法执行一次)@After:释放资源 对于每一个测试方法都要执行一次(注意与AfterClass区别,后者是对于所有方法执行一次
- 精通Oracle10编程SQL(12)开发包
bijian1013
oracle数据库plsql
/*
*开发包
*包用于逻辑组合相关的PL/SQL类型(例如TABLE类型和RECORD类型)、PL/SQL项(例如游标和游标变量)和PL/SQL子程序(例如过程和函数)
*/
--包用于逻辑组合相关的PL/SQL类型、项和子程序,它由包规范和包体两部分组成
--建立包规范:包规范实际是包与应用程序之间的接口,它用于定义包的公用组件,包括常量、变量、游标、过程和函数等
--在包规
- 【EhCache二】ehcache.xml配置详解
bit1129
ehcache.xml
在ehcache官网上找了多次,终于找到ehcache.xml配置元素和属性的含义说明文档了,这个文档包含在ehcache.xml的注释中!
ehcache.xml : http://ehcache.org/ehcache.xml
ehcache.xsd : http://ehcache.org/ehcache.xsd
ehcache配置文件的根元素是ehcahe
ehcac
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderL
白糖_
javaeclipsespringtomcatWeb
今天学习spring+cxf的时候遇到一个问题:在web.xml中配置了spring的上下文监听器:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
随后启动
- angular.element
boyitech
AngularJSAngularJS APIangular.element
angular.element
描述: 包裹着一部分DOM element或者是HTML字符串,把它作为一个jQuery元素来处理。(类似于jQuery的选择器啦) 如果jQuery被引入了,则angular.element就可以看作是jQuery选择器,选择的对象可以使用jQuery的函数;如果jQuery不可用,angular.e
- java-给定两个已排序序列,找出共同的元素。
bylijinnan
java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class CommonItemInTwoSortedArray {
/**
* 题目:给定两个已排序序列,找出共同的元素。
* 1.定义两个指针分别指向序列的开始。
* 如果指向的两个元素
- sftp 异常,有遇到的吗?求解
Chen.H
javajcraftauthjschjschexception
com.jcraft.jsch.JSchException: Auth cancel
at com.jcraft.jsch.Session.connect(Session.java:460)
at com.jcraft.jsch.Session.connect(Session.java:154)
at cn.vivame.util.ftp.SftpServerAccess.connec
- [生物智能与人工智能]神经元中的电化学结构代表什么?
comsci
人工智能
我这里做一个大胆的猜想,生物神经网络中的神经元中包含着一些化学和类似电路的结构,这些结构通常用来扮演类似我们在拓扑分析系统中的节点嵌入方程一样,使得我们的神经网络产生智能判断的能力,而这些嵌入到节点中的方程同时也扮演着"经验"的角色....
我们可以尝试一下...在某些神经
- 通过LAC和CID获取经纬度信息
dai_lm
laccid
方法1:
用浏览器打开http://www.minigps.net/cellsearch.html,然后输入lac和cid信息(mcc和mnc可以填0),如果数据正确就可以获得相应的经纬度
方法2:
发送HTTP请求到http://www.open-electronics.org/celltrack/cell.php?hex=0&lac=<lac>&cid=&
- JAVA的困难分析
datamachine
java
前段时间转了一篇SQL的文章(http://datamachine.iteye.com/blog/1971896),文章不复杂,但思想深刻,就顺便思考了一下java的不足,当砖头丢出来,希望引点和田玉。
-----------------------------------------------------------------------------------------
- 小学5年级英语单词背诵第二课
dcj3sjt126com
englishword
money 钱
paper 纸
speak 讲,说
tell 告诉
remember 记得,想起
knock 敲,击,打
question 问题
number 数字,号码
learn 学会,学习
street 街道
carry 搬运,携带
send 发送,邮寄,发射
must 必须
light 灯,光线,轻的
front
- linux下面没有tree命令
dcj3sjt126com
linux
centos p安装
yum -y install tree
mac os安装
brew install tree
首先来看tree的用法
tree 中文解释:tree
功能说明:以树状图列出目录的内容。
语 法:tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式
- Map迭代方式,Map迭代,Map循环
蕃薯耀
Map循环Map迭代Map迭代方式
Map迭代方式,Map迭代,Map循环
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年
- Spring Cache注解+Redis
hanqunfeng
spring
Spring3.1 Cache注解
依赖jar包:
<!-- redis -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
- Guava中针对集合的 filter和过滤功能
jackyrong
filter
在guava库中,自带了过滤器(filter)的功能,可以用来对collection 进行过滤,先看例子:
@Test
public void whenFilterWithIterables_thenFiltered() {
List<String> names = Lists.newArrayList("John"
- 学习编程那点事
lampcy
编程androidPHPhtml5
一年前的夏天,我还在纠结要不要改行,要不要去学php?能学到真本事吗?改行能成功吗?太多的问题,我终于不顾一切,下定决心,辞去了工作,来到传说中的帝都。老师给的乘车方式还算有效,很顺利的就到了学校,赶巧了,正好学校搬到了新校区。先安顿了下来,过了个轻松的周末,第一次到帝都,逛逛吧!
接下来的周一,是我噩梦的开始,学习内容对我这个零基础的人来说,除了勉强完成老师布置的作业外,我已经没有时间和精力去
- 架构师之流处理---------bytebuffer的mark,limit和flip
nannan408
ByteBuffer
1.前言。
如题,limit其实就是可以读取的字节长度的意思,flip是清空的意思,mark是标记的意思 。
2.例子.
例子代码:
String str = "helloWorld";
ByteBuffer buff = ByteBuffer.wrap(str.getBytes());
Sy
- org.apache.el.parser.ParseException: Encountered " ":" ": "" at line 1, column 1
Everyday都不同
$转义el表达式
最近在做Highcharts的过程中,在写js时,出现了以下异常:
严重: Servlet.service() for servlet jsp threw exception
org.apache.el.parser.ParseException: Encountered " ":" ": "" at line 1,
- 用Java实现发送邮件到163
tntxia
java实现
/*
在java版经常看到有人问如何用javamail发送邮件?如何接收邮件?如何访问多个文件夹等。问题零散,而历史的回复早已经淹没在问题的海洋之中。
本人之前所做过一个java项目,其中包含有WebMail功能,当初为用java实现而对javamail摸索了一段时间,总算有点收获。看到论坛中的经常有此方面的问题,因此把我的一些经验帖出来,希望对大家有些帮助。
此篇仅介绍用
- 探索实体类存在的真正意义
java小叶檀
POJO
一. 实体类简述
实体类其实就是俗称的POJO,这种类一般不实现特殊框架下的接口,在程序中仅作为数据容器用来持久化存储数据用的
POJO(Plain Old Java Objects)简单的Java对象
它的一般格式就是
public class A{
private String id;
public Str