- 深度学习在SSVEP信号分类中的应用分析
自由的晚风
深度学习分类人工智能
目录前言1.SSVEP信号分类的处理流程2.模型输入和数据预处理3.模型结构设计3.1卷积神经网络(CNN)3.2长短期记忆网络(LSTM)4.训练方法与激活函数5.性能评估与挑战6.未来方向前言随着脑机接口(BCI)技术的发展,SSVEP(稳态视觉诱发电位)因其高信息传输速率和短训练时间而成为最受欢迎的BCI范式之一。近年来,深度学习方法在SSVEP信号分类中取得了显著的成果。本文通过对31个深
- java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
二十七剑
java开发语言
只需要在url:jdbc:mysql://xxx?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false后面加上&allowPublicKeyRetrieval=true即url:jdbc:mysql://xxx?serverTimezone=Asia/Shanghai&useUnicode=
- CentOS 7 aarch64上制作kernel rpm二进制包 —— 筑梦之路
筑梦之路
linux系统运维centoslinux运维
环境说明centos7aarch64gcc8.3.1kernel5.4.290准备编译制作#安装必要的工具和包yuminstallrpm-develrpmdevtoolsyumgroupinstall"DevelopmentTools"yuminstallncurses-develbcelfutils-libelf-developenssl-devel#安装gcc8.3.1#修改repo文件cd/
- webpack-dev-server,proxy代理
码农罢了
webpack前端node.js
如果使用了webpack-dev-server,大概率是要配置代理的devServer:{open:true,proxy:{//配置跨域'/api':{target:'https://aip.baidubce.com',//ws:true,//secure:true,changOrigin:true,//允许跨域pathRewrite:{'^/api':''//请求的时候使用这个api就可以}}}
- VHDL实验四:3-8 译码器(含使能端)、四位全加器
White__Sun
fpga开发
一、实验目的1.掌握简单的VHDL程序设计。2.掌握用VHDL对组合逻辑3-8译码器电路的建模。二、实验原理1、3/8译码器的逻辑功能如下表:ABC/ENAY7Y6Y5Y4Y3Y2Y1Y0000111111110001
- 大模型与图数据库RAG通俗流程拆解
gallonyin
产品笔记AI知识图谱
图构建(略)neo4j、tugraph等均可,不影响GraphRAG核心框架模型向量化模型bce-embedding-base_v1重排序模型bce-reranker-base_v1大语言模型Qwen/Qwen2.5-32B-Instruct图数据库tugraph索引faiss核心流程这个调用链日志展示了一个完整的问答系统处理用户输入“百草园里有什么”的过程。本项目使用和参考了开源项目茴香豆。以下
- 【shell】简单监控系统cpu、disk、mem、process的信息脚本
菜萝卜子
shell编程linux运维服务器
脚本如下#!/bin/bash#获取时间get_time=$(date+%Y%m%d%H%M%S)#监控cpu信息cpu_info(){top-bn1|awk'/^%Cpu/{print$2,$4,$8}'|whilereadussyidledoused_cpu=$(echo"100-$idle"|bc)echo"$get_timeCPU使用率userprocess:${us}%systempro
- 向量叉乘与向量点乘
commonbelive
c++
向量点乘向量叉乘应用在C++中,判断某一点是否在三角形内有多种方法,以下是几种常见的实现方式:向量叉积法原理:对于三角形ABC和点P,计算向量\overrightarrow{PA}与\overrightarrow{PB}、\overrightarrow{PB}与\overrightarrow{PC}、\overrightarrow{PC}与\overrightarrow{PA}的叉积,若这三个叉积
- AI 帮我精准定位解决 ReferenceError: process is not defined (文末附AI名称)
leonan
小程序开发vueuniapp微信小程序vue.jsnpmnode.js
AI帮我精准定位分析解决问题ReferenceError:processisnotdefined我:现在项目在网页正常显示,微信小程序报错app.js错误:ReferenceError:processisnotdefinedatuni.api.esm.js:1427atuni.api.esm.js:1427atWASubContext.js?t=wechat&s=1741281885182&v=3
- ABP框架之——数据访问基础架构
搬砖养女人
数据库mongodbjava
几乎所有的业务应用程序都要适用一种数据库基础架构,用来实现数据访问逻辑,以便从数据库读取或写入数据,我们还需要处理数据库事务,以确保数据源中的一致性。ABP框架可以与任何数据库兼容,同时它提供了EFCore和MongoDB的内置集成包。您将通过定义DbContext类、将实体映射到数据库表、实现仓储库以及在有实体时部署加载相关实体的不同方式,学习如何将EFCore与ABP框架结合使用。您还将看到如
- Lab: Blind SQL injection with out-of-band interaction:利用外带交互的盲注(半成品)
Zeker62
网络安全学习
靶场内容:ThislabcontainsablindSQLinjectionvulnerability.Theapplicationusesatrackingcookieforanalytics,andperformsanSQLquerycontainingthevalueofthesubmittedcookie.TheSQLqueryisexecutedasynchronouslyandhasn
- doris :SAP HANA
向阳1218
大数据doris
DorisJDBCCatalog支持通过标准JDBC接口连接OceanBase数据库。本文档介绍如何配置OceanBase数据库连接。使用须知要连接到OceanBase数据库,您需要OceanBase3.1.0或更高版本OceanBase数据库的JDBC驱动程序,您可以从Maven仓库下载最新或指定版本的OceanBaseJDBC驱动程序。推荐使用OceanBaseConnector/J2.4.8
- C++的内存管理
脆脆鲨<码>
C++c++开发语言
1.C/C++内存分布我们先来看下面的一段代码和相关问题intglobalVar=1;staticintstaticGlobalVar=1;voidTest(){staticintstaticVar=1;intlocalVar=1;intnum1[10]={1,2,3,4};charchar2[]="abcd";constchar*pChar3="abcd";int*ptr1=(int*)mall
- Java初级入门学习
周杰伦fans
ai学习参考JAVA后端框架java学习开发语言
JAVA学习@[TOC](JAVA学习)**一、Java初级入门学习路径****1.Java基础语法****2.面向对象编程(OOP)****3.数据库与JDBC****4.JavaWeb基础****二、主流框架推荐与学习建议****1.Spring框架****2.SpringMVC****3.MyBatis****4.SpringBoot****三、后续学习建议****1.实战项目****2.进
- doris:ClickHouse
向阳1218
大数据doris
DorisJDBCCatalog支持通过标准JDBC接口连接ClickHouse数据库。本文档介绍如何配置ClickHouse数据库连接。使用须知要连接到ClickHouse数据库,您需要ClickHouse23.x或更高版本(低于此版本未经充分测试)。ClickHouse数据库的JDBC驱动程序,您可以从Maven仓库下载最新或指定版本的ClickHouseJDBC驱动程序。推荐使用ClickH
- at_abc396_c题解
hjyowl
c语言开发语言
###思路首先,一个很显然的结论,$a_i$中大于等于$0$的数一定要选。然后,对于$a_i$中的负数,我们要根据选择他后,$a_i+b_i$是否大于等于$0$。所以思路很明显了,可以直接排序后用双指针做。###代码```cpp#includeusingnamespacestd;constlonglongN=2000010;longlongn,m;longlonga[N],b[N];booldeb
- Spring R2DBC 示例项目指南
魏纯漫
SpringR2DBC示例项目指南spring-r2dbc-sampleCodesamplesfordemonstratingR2dbc,SpringR2dbc,andSpringDataR2dbc.项目地址:https://gitcode.com/gh_mirrors/sp/spring-r2dbc-sample项目介绍SpringR2DBC示例项目是由Hantsy创建的一个开源示例,它旨在展示
- MyBatis-Plus 与 Redis
#sakura
mybatisredis数据库
1MyBatis-Plus1.1MyBatis-Plus简介MyBatis是一款优秀的持久层框架,它能将接口和JavaPOJO(PlainOldJavaObjects,普通Java对象)映射为数据库中的数据。支持自定义SQL、存储过程,功能强大。MyBatis承担了几乎所有的JDBC代码,包括设置参数和获取结果等工作,可通过简单的XML或注解进行配置。MyBatis-Plus是MyBatis的最佳
- H5之webcoekt播放JPEG图片流
视频处理html5
一、简介既然webcoekt是基于tcp连接的,理论上讲所有的浏览器是可以私有协议处理二进制的,如果我们需要播放视频,我们可以将视频数据在后端解码后直接将图片推送到webcoekt前端,然后前端通过websocket接收图片然后将图片显示到img或canvas中即可,当然这个是我自己设想的,也是应该可以做的到了,做到如下需要以下技术支持:后端直接ffmpeg转码为jpeg图片流后端定制播放协议包括
- vscode 都有哪些大模型编程插件
魔王阿卡纳兹
IT杂谈开源项目观察vscodeide编辑器
VSCode中有许多基于大模型的编程插件,这些插件通过集成人工智能技术,显著提升了开发者的编程效率和体验。以下是一些主要的大模型编程插件及其功能:GitHubCopilotGitHubCopilot是由OpenAI开发的插件,能够根据代码上下文自动生成代码建议,支持多种编程语言。它与VSCode的集成使得开发者可以在熟悉的开发环境中直接利用AI功能,提高代码生成和调试的效率。DevChatDevC
- Python多进程,多线程和异步实例
汤米先生
Python学习多线程python多进程
文章目录前言一、多进程1.进程间通信使用Queue队列2.多进程中的通信【一个往Queue里写,一个从Queue里读】3.进程池中的通信【只需要就上述的Queue()转换成Manager().Queue()】4.多进程拷贝文件【多个文件的拷贝】二、多线程1.加入互斥锁2.不加入互斥锁3.在屏幕上连续打印10次ABC4.死锁的产生5.针对死锁的处理方法6.生产者消费者模型【常用】—>比如爬虫:爬取数
- 关于Android Studio编译时提示Execution failed for task ‘:xxx:compileDebugJavaWithJavac‘
居然是阿宋
androidstudioandroidgradle
在项目首次导入编译时,总是会出现一些比较难排除的问题,特别是在提示中无法直接找到原因:*Exceptionis:org.gradle.api.tasks.TaskExecutionException:Executionfailedfortask':bc_iothub:compileDebugJavaWithJavac'.atorg.gradle.api.internal.tasks.propert
- VB函数大全
软件-攻城狮
VBA
VB函数大全Calendar常数可在代码中的任何地方用下列常数代替实际值:常数值描述vbCalGreg0指出使用的是阳历。vbCalHijri1指出使用的是伊斯兰历法。--------------------------------------------------------------------------------Color常数可在代码中的任何地方用下列常数代替实际值:常数值描述vbB
- 推荐项目:AndroidUSBCamera - 拓展手机摄影新维度的开源宝典
伍盛普Silas
推荐项目:AndroidUSBCamera-拓展手机摄影新维度的开源宝典项目地址:https://gitcode.com/gh_mirrors/an/Android-USB-OTG-Camera项目介绍AndroidUSBCamera,作为一款基于saki4510t/UVCCamera深度优化的开源项目,专门针对Android设备上的USB摄像机应用进行了高程度封装。它简化了开发者接入各类USB视
- FPGA 的 LBC 总线详解
美好的事情总会发生
接口FPGA嵌入式硬件硬件工程linux
1.LBC总线的定义LBC总线(LocalBusController,局部总线控制器)是FPGA(现场可编程门阵列)中用于高速连接处理器核(如PowerPC、MicroBlaze)与外部设备的并行总线接口。核心作用:提供低延迟、高带宽的数据传输通道,支持处理器与外部存储器(如Flash、SRAM)、外设控制器(如GPIO、UART)的直接通信。典型应用:嵌入式系统、工业控制、通信设备中,用于扩展F
- debian/control 文件中的${misc:Depends}
赵民勇
linuxdebianlinux运维
在Debian软件包的debian/control文件中,${misc:Depends}是一个动态生成的占位符,用于补充非共享库类依赖项的自动化管理。其作用与实现机制如下:一、核心作用补充维护脚本依赖当软件包包含维护脚本(如postinst、prerm等)时,若脚本依赖特定工具或软件包(如perl、debconf等),${misc:Depends}会自动检测并声明这些依赖。例如:Depen
- SMU Summer 2024 Contest Round 5
osir.
动态规划算法c++
[ABC230F]Predilection-洛谷偏爱...思路:本次比赛最顶级的题目!务必肾科礼节..首先思考在数列中"选择两个相邻的数,删去他们,并在原位置放入他们的和的实质是什么?"答案就是删除该数列前缀和中相应的一个数字.例如:数列arr:1,2,3,4;那么有前缀和pre:1,3,6,10.如果删去数字3,那么就是在前缀和中删去数字6.其他保持不变.而且!数列和前缀和是可以互相推导,并且一
- 第七课:Nodejs开发用户认证与JWT实践
deming_su
Nodejsnode.jsrestfulauthing
在现代Web开发中,用户认证是一个至关重要的环节。随着前后端分离架构的流行,传统的Session认证方式逐渐暴露出了一些局限性。而JWT(JSONWebToken)作为一种无状态的认证机制,凭借其简洁、安全和高效的特性,在现代Web应用中得到了广泛应用。本文将详细介绍Session与Token认证的对比、JWT的原理与生成/验证流程、使用bcrypt加密用户密码,并通过实战展示如何在Node.js
- doris: MySQL
向阳1218
大数据doris
DorisJDBCCatalog支持通过标准JDBC接口连接MySQL数据库。本文档介绍如何配置MySQL数据库连接。使用须知要连接到MySQL数据库,您需要MySQL5.7,8.0或更高版本MySQL数据库的JDBC驱动程序,您可以从Maven仓库下载最新或指定版本的MySQLJDBC驱动程序。推荐使用MySQLConnector/J8.0.31及以上版本。Doris每个FE和BE节点和MySQ
- C++重点基础知识汇总大全
GeniusAng丶
C/C++编程c++汇编OOPvisualstudio编辑器
文章目录一些基础知识点指针和引用一些基础知识点1、十进制的数字比较长的时候,可以加'方便阅读到底是几位,输出的时候跟不加是一样的效果//十进制可以加'cout<<13'890'324<<endl;//13890324//二进制前加0bcout<<0b111<<endl;//7//八进制前加0cout
- 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