- npm启动前端项目时报错(vue) error:0308010C:digital envelope routines::unsupported
华如锦
开发本地环境配置jsjava前端npmvue.jsnode.jsjava
vue启动项目时,npmrunserve报下面的错:error:0308010C:digitalenveloperoutines::unsupportedatnewHash(node:internal/crypto/hash:67:19)atObject.createHash(node:crypto:133:10)atFSReqCallback.readFileAfterClose[asoncom
- FastDFS实用笔记 (Docker 搭建环境 + 整合 SpringBoot)
字节全栈_kYu
笔记dockerspringboot
解决了大容量存储和负载均衡的问题,特别适合中小文件(4KB>文件路径为空…”);return“文件路径不能为空”;}try{StorePathstorePath=StorePath.parseFromUrl(fileUrl);storageClient.deleteFile(storePath.getGroup(),storePath.getPath());}catch(Exceptione){l
- python GUI 编程
AICVer
Pythonpython开发语言
界面程序"""测试一个经典的GUI程序的写法,使用面向对象的方式"""importtimefromtkinterimport*fromtkinterimportmessageboxfromtkinterimportfiledialogimportthreadingfromcut_brickimportcal_brickclassApplication(Frame):"""一个经典的GUI程序的类的
- lua-文件操作代码大全
James吖
luajavajava
1.创建新文件--使用File类import"java.io.File"--导入File类File(文件路径).createNewFile()--使用io库io.open("/sdcard/aaaa",'w')2.创建新文件夹--使用File类import"java.io.File"--导入File类File(文件夹路径).mkdir()--创建多级文件夹File(文件夹路径).mkdirs()-
- Vue项目禁用eslint
eggcode
前端vue.jseslint
问题代码不符合eslint规范时的终端报错:Youmayusespecialcommentstodisablesomewarnings.Use//eslint-disable-next-linetoignorethenextline.Use/*eslint-disable*/toignoreallwarningsinafile.ERRORin[eslint]....(略)方法针对整个项目在vue.
- “bpy.ops.import_scene.obj“ error, could not be found
AI算法网奇
python基础3d渲染python人工智能
"bpy.ops.import_scene.obj"error,couldnotbefound错误代码:import_function(filepath=object_path)解决后:bpy.ops.wm.obj_import(filepath=object_path)
- Docker Ubuntu 20.04执行CI任务交叉编译riscv64-linux-gcc时no such file or directory
Wentao Wu
第一次接触rsicv64的交叉编译环境(其他交叉编译环境也基本没接触过,只是知道概念和原理),目前的需求是需要在gitlab上给一套rsicv64-linux-gcc执行CI任务,默认直接在本地服务器执行交叉编译,需要经常清理服务器文件,且成熟的开发环境不适合作为测试环境来运行,因此考虑将CI任务直接在Docker中执行,也需要配置最小化且测试环境最干净的Docker镜像。手工在服务器执行,全套流
- Docker 本地导入镜像“exec: \“/bin/bash\“: stat /bin/bash: no such file or directory“: unknown
thlqq
docker容器
详细报错信息dockerrun-itubuntu:v2/bin/bashdocker:Errorresponsefromdaemon:OCIruntimecreatefailed:container_linux.go:296:startingcontainerprocesscaused"exec:\"/bin/bash\":stat/bin/bash:nosuchfileordirectory":
- Setgsolve使用方法
Aresy596
学习
StegSolve使用方法1.File文件Open打开SaveAs保存Exit退出2.Analyse分析FileFormat文件格式可以看见图片的具体信息DataExtract数据提取左边:RGBA的颜色通道1.Alpha是透明度,用来定义透明,不透明,半透明其中0代表透明,7代表不透明2.RGB红蓝绿,其值代表亮度,数字大代表亮度高,数字小代表亮度低亮度有256个级别,也就是2的8次方,所以有0
- python建模的步骤_python基础教程之Python 建模步骤|python基础教程|python入门|python教程...
谭俊云
python建模的步骤
#%%#载入数据、查看相关信息importpandasaspdimportnumpyasnpfromsklearn.preprocessingimportLabelEncoderprint('第一步:加载、查看数据')file_path=r'D:\train\201905data\liwang.csv'band_data=pd.read_csv(file_path,encoding='UTF-8'
- No such file or directory: ‘/tmp/tmpxxx/tmpxxx.py‘
Coding的叶子
pythontmpmmclsmmclssificatiopython
在运行python程序过程中,“Nosuchfileordirectory”是个经常容易出现的错误。这个错误比较常见的原因是路径下缺乏相应的文件,或者缺少相应的python库。解决方法主要是在:(1)在路径下添加缺失的文件或目录。(2)在程序中通过sys.path.append增加文件或目录所在路径。(3)通过pip安装缺失的库。但是,以上所述的情况都不能解决本文所说的错误。我们可以看到,提示的确
- pip升级之后出现:/usr/bin/pip: No such file or directory
jiangjiane
PythonPython
这是因为缓存的问题造成的,解决方案:1.whichpip/usr/local/bin/pip2.pip-bash:/usr/bin/pip:Nosuchfileordirectory3.typepippipishashed(/usr/bin/pip)Sopipisdefinintelyin/usr/local/bin/pipbutitisbeencachedasin/usr/bin/pip,tha
- python 安装库报错 IOError: [Errno 2] No such file or directory: ‘/tmp/pip-build-qxKbBk/numpy/setup.py‘
一个人的Coding
pythonpipnumpy
我的博客尝试在Ubuntu环境中安装python库时报错:$pipinstallnumpyCollectingnumpyDownloadinghttps://files.pythonhosted.org/packages/1c/8a/0db635b225d2aa2984e405dc14bd2b0c324a0c312ea1bc9d283f2b83b038/numpy-2.0.1.tar.gz(18.
- (尚硅谷 Java 学习 B 站大学版)Day 13 面向对象 方法
亢从文_Jackson
java学习开发语言
4-5类的成员之二:方法(Method)一、“万事万物皆对象”**:(理解)1、在Java语言范畴中,我们都将功能、结构等封装到类中,通过类的实例化,来调用具体的功能结构>Scanner,String等>文件:File>网络资源:URL2、涉及到java语言与前端html、后端数据库交互时,前后端的结构在Java层面交互时,都体现为类、对象二、内存解析说明1、引用类型的变量,只可能存储两类值:nu
- linux——基础命令合集
潘儿er
Linuxlinux服务器编辑器开源软件
linux下,文件编辑等基础命令合集文本编辑器命令sed命令——sed删除文件中的内容文本编辑器命令sed命令——sed删除文件中的内容sed命令可以通过正则表达式来删除指定内容。具体如下:删除指定行:使用sed命令的d选项,eg:删除第5行:sed‘5d’file.txt删除指定字符串:使用sed命令的s选项,eg:删除所有“hello”字符串:sed‘s/hello//g’file.txt删除
- java -Xms -XX 这些参数该咋写?5 分钟带你快速入门!
后端java
前言java-Xms4G-Xmx4G-XX:MaxMetaspaceSize=512m-XX:MetaspaceSize=512m-XX:MaxDirectMemorySize=256m-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=./.hprof-Dfile.encoding=UTF-8-jardemo.jar上面是典型的启动Java程序时会携带
- TypeError: unsupported operand type(s) for |: ‘type‘ and ‘type‘
男孩阿宝
linux运维服务器
FileD:\Programfiles\Anaconda3\envs\my_satpy_env2\lib\site-packages\pyspectral\config.py:59defget_config(config_file:str|Path=None)->dict:TypeError:unsupportedoperandtype(s)for|:'type'and'type'这个错误是因为你
- Linux中chmod用法
我和simple五五开
Linuxlinux
Linux中chmod用法chmod:对文件权限进行修改。1、chmod语法chmodmodefile其中mode可以设定为字符串[ugoa][+-=][rwx]其中[ugoa]代表的是: u(owner):表示文件所有者,即创建文件的人; g(group):表示和文件所有者相同组的用户; o(other):表示非文件所有者和相同group的用户; a(all):表示所有用户;[±=]表示: +:
- linux
破-风
网络基础linux运维服务器
LinuxLinux常用的命令以及英文表达式序号命令对应英文作用1lslist查看当前文件夹下的内容2pwdprintworkdirectory查看当前所在文件夹3cd[目录名]changedirectory切换文件夹4touch[文件名]touch如果文件不存在则创建文件5mkdir[目录]makedirectory创建目录6rm[文件名]remove删除指定文件7clearclear清屏8fi
- linux系统编程下的open函数使用方法
子木呀
C/C++嵌入式知识整理Linux相关Linuxopen函数文件描述符Linux多线程
目录1.句柄(filedescriptor简称fd)2.使用open前需要先包含头文件3.参数说明3.1参数1(pathname)3.2参数2(flags)3.3参数3(mode)4.用法示例open函数属于Linux中系统IO,用于“打开”文件,代码打开一个文件意味着获得了这个文件的访问句柄。intfd=open(参数1,参数2,参数3);intfd=open(constchar*pathnam
- linux:chown用法详解
SmallerFL
Linux常用命令linux运维服务器
文章目录1.描述2.语法3.参数4.例子1.描述chown是Linux中用于更改文件或目录的所有者和所有者组的命令。2.语法chown[选项]所有者[:组]文件名详细用法:Usage:chown[OPTION]...[OWNER][:[GROUP]]FILE...or:chown[OPTION]...--reference=RFILEFILE...Changetheownerand/orgroup
- Spring Boot 篇五: Log的使用
alvachien
JavaSpringBootspringbootloglogbackspring
本文目录Log在Spring的前世今生log4j,logback和log4j2SLF4JAPI使用Logbackloggerrootappenderappendfilterencoderfile和rollingPolicy一些实际案例不写入Console的日志在Console显示日志,但将错误写入文件使用log4j2Log在Spring的前世今生Log对于任一系统的重要性不言而喻。跟JPA类似,S
- ROS2中的parameters操作
听风胖耗子
机器人架构c++
在ROS2中,参数(Parameters)系统相比于ROS1有了较大的改进。主要区别:ROS1中的参数在ROS1中,参数主要是通过rosparam工具来设置和获取的,并且它们通常存储在一个中心化的服务器上,即rosparam服务器。参数通常是静态的,一旦设置后,在节点运行期间不容易更改,除非重启节点或重新设置参数。参数可以以YAML格式存储在文件中,并通过rosparamload_file命令加载
- 2025.2.1——七、Web_php_unserialize 代码审计
然然阿然然
“破晓”计划第一阶段训练php网络安全学习安全网络
题目来源:攻防世界Web_php_unserialize目录一、打开靶机,整理信息二、解题思路step1:代码审计step2:绕过漏洞1.绕过__wakeup()2.绕过正则step3:脚本运行三、小结一、打开靶机,整理信息熟悉的代码审计,根据题目名称,还涉及到反序列化知识点二、解题思路step1:代码审计file=$file;//将传入的file参数赋值给当前对象的$file属性}functio
- 本地部署LLM工具大比拼:谁才是你的智能之选?
Python_金钱豹
microsoftocr人工智能cnntransformer分类
在人工智能的浪潮中,本地部署LLM工具为我们开启了个性化智能交互的新大门。今天,就带大家深入对比几款热门的本地部署LLM工具:ollama、Llamafile、jan、LLaMa.cpp、GPT4All、LMStudio,从多个关键角度剖析它们的特点与优势,助你挑选出最契合自身需求的智能伙伴。一、安装使用便捷性大排名1.ollama:轻松上手的智能先锋ollama的安装便捷性堪称一流。只需一条简单
- 定西市房屋建筑轮廓面图层shp格式arcgis数据有高度字段+无偏移坐标分析测评
天赐信息科技
arcgis
【定西市房屋建筑轮廓面图层shp格式arcgis数据有高度字段+无偏移坐标+2022年】这一资源是GIS领域的重要数据集,主要用于城市规划、地理分析和建筑管理等方面。这份数据集包含了一系列关于定西市房屋建筑的信息,以下是其主要知识点的详细解释:SHP格式:SHP(Shapefile)是Esri公司开发的一种矢量数据格式,广泛用于地理信息系统中,它可以存储点、线、多边形等几何对象以及与之相关的属性数
- python 五 文件操作 读取大文件
空灵宫(Ethereal Palace)
pythonpythonjava前端
读取大文件时,为了避免占用过多内存,通常会采用分块读取的方式。以下是几种处理大文件的常见方法:1.使用迭代读取文件(逐行读取)使用for循环逐行读取文件,这种方法高效且占用内存小。#逐行读取文件withopen("large_file.txt",mode="r",encoding="utf-8")asfile:forlineinfile:#处理每一行数据print(line.strip())#去掉
- 高效便捷的局域网文件传输利器——HFS
伍野媚Harold
高效便捷的局域网文件传输利器——HFS【下载地址】HFS局域网文件传输工具本仓库提供了一个名为“HFS局域网文件传输工具”的资源文件下载。HFS(HTTPFileServer)是一款专为局域网设计的文件传输工具,能够帮助用户在局域网内快速、高效地传输文件。无论是小文件还是大文件,HFS都能提供极快的传输速度,确保文件传输的效率和稳定性项目地址:https://gitcode.com/open-so
- Python实现内存泄露排查的示例
Linux资源站
python开发语言
导读一般在python代码块的调试过程中会使用memory-profiler、filprofiler、objgraph等三种方式进行辅助分析,今天这里主要介绍使用objgraph对象提供的函数接口来进行内存泄露的分析,感兴趣的可以了解一下一般情况下只有需要长期运行的项目才会去关注内存的增长情况,即使是很小部分的内存泄露经过长期的运行仍然会产生很大的隐患。python本身也是支持垃圾的自动回收的,但
- python多进程和多线程
晚风吹儿
Pythonpython开发语言pycharm
前言进程是资源分配的最小单位,线程是CPU调度的最小单位进程:操作系统的每个一个程序都是一个进程线程:进程包括了线程,一个进程下可以有多个线程同时进行一、多进程代码如下(示例):#-*-coding:utf-8-*-"""@Time:2022/5/2013:20@Author:盘盘@File:more_process.py@IDE:PyCharm"""fromrandomimportrandint
- 异常的核心类Throwable
无量
java源码异常处理exception
java异常的核心是Throwable,其他的如Error和Exception都是继承的这个类 里面有个核心参数是detailMessage,记录异常信息,getMessage核心方法,获取这个参数的值,我们可以自己定义自己的异常类,去继承这个Exception就可以了,方法基本上,用父类的构造方法就OK,所以这么看异常是不是很easy
package com.natsu;
- mongoDB 游标(cursor) 实现分页 迭代
开窍的石头
mongodb
上篇中我们讲了mongoDB 中的查询函数,现在我们讲mongo中如何做分页查询
如何声明一个游标
var mycursor = db.user.find({_id:{$lte:5}});
迭代显示游标数
- MySQL数据库INNODB 表损坏修复处理过程
0624chenhong
tomcatmysql
最近mysql数据库经常死掉,用命令net stop mysql命令也无法停掉,关闭Tomcat的时候,出现Waiting for N instance(s) to be deallocated 信息。查了下,大概就是程序没有对数据库连接释放,导致Connection泄露了。因为用的是开元集成的平台,内部程序也不可能一下子给改掉的,就验证一下咯。启动Tomcat,用户登录系统,用netstat -
- 剖析如何与设计人员沟通
不懂事的小屁孩
工作
最近做图烦死了,不停的改图,改图……。烦,倒不是因为改,而是反反复复的改,人都会死。很多需求人员不知该如何与设计人员沟通,不明白如何使设计人员知道他所要的效果,结果只能是沟通变成了扯淡,改图变成了应付。
那应该如何与设计人员沟通呢?
我认为设计人员与需求人员先天就存在语言障碍。对一个合格的设计人员来说,整天玩的都是点、线、面、配色,哪种构图看起来协调;哪种配色看起来合理心里跟明镜似的,
- qq空间刷评论工具
换个号韩国红果果
JavaScript
var a=document.getElementsByClassName('textinput');
var b=[];
for(var m=0;m<a.length;m++){
if(a[m].getAttribute('placeholder')!=null)
b.push(a[m])
}
var l
- S2SH整合之session
灵静志远
springAOPstrutssession
错误信息:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cartService': Scope 'session' is not active for the current thread; consider defining a scoped
- xmp标签
a-john
标签
今天在处理数据的显示上遇到一个问题:
var html = '<li><div class="pl-nr"><span class="user-name">' + user
+ '</span>' + text + '</div></li>';
ulComme
- Ajax的常用技巧(2)---实现Web页面中的级联菜单
aijuans
Ajax
在网络上显示数据,往往只显示数据中的一部分信息,如文章标题,产品名称等。如果浏览器要查看所有信息,只需点击相关链接即可。在web技术中,可以采用级联菜单完成上述操作。根据用户的选择,动态展开,并显示出对应选项子菜单的内容。 在传统的web实现方式中,一般是在页面初始化时动态获取到服务端数据库中对应的所有子菜单中的信息,放置到页面中对应的位置,然后再结合CSS层叠样式表动态控制对应子菜单的显示或者隐
- 天-安-门,好高
atongyeye
情感
我是85后,北漂一族,之前房租1100,因为租房合同到期,再续,房租就要涨150。最近网上新闻,地铁也要涨价。算了一下,涨价之后,每次坐地铁由原来2块变成6块。仅坐地铁费用,一个月就要涨200。内心苦痛。
晚上躺在床上一个人想了很久,很久。
我生在农
- android 动画
百合不是茶
android透明度平移缩放旋转
android的动画有两种 tween动画和Frame动画
tween动画;,透明度,缩放,旋转,平移效果
Animation 动画
AlphaAnimation 渐变透明度
RotateAnimation 画面旋转
ScaleAnimation 渐变尺寸缩放
TranslateAnimation 位置移动
Animation
- 查看本机网络信息的cmd脚本
bijian1013
cmd
@echo 您的用户名是:%USERDOMAIN%\%username%>"%userprofile%\网络参数.txt"
@echo 您的机器名是:%COMPUTERNAME%>>"%userprofile%\网络参数.txt"
@echo ___________________>>"%userprofile%\
- plsql 清除登录过的用户
征客丶
plsql
tools---preferences----logon history---history 把你想要删除的删除
--------------------------------------------------------------------
若有其他凝问或文中有错误,请及时向我指出,
我好及时改正,同时也让我们一起进步。
email : binary_spac
- 【Pig一】Pig入门
bit1129
pig
Pig安装
1.下载pig
wget http://mirror.bit.edu.cn/apache/pig/pig-0.14.0/pig-0.14.0.tar.gz
2. 解压配置环境变量
如果Pig使用Map/Reduce模式,那么需要在环境变量中,配置HADOOP_HOME环境变量
expor
- Java 线程同步几种方式
BlueSkator
volatilesynchronizedThredLocalReenTranLockConcurrent
为何要使用同步? java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查), 将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用, 从而保证了该变量的唯一性和准确性。 1.同步方法&
- StringUtils判断字符串是否为空的方法(转帖)
BreakingBad
nullStringUtils“”
转帖地址:http://www.cnblogs.com/shangxiaofei/p/4313111.html
public static boolean isEmpty(String str)
判断某字符串是否为空,为空的标准是 str==
null
或 str.length()==
0
- 编程之美-分层遍历二叉树
bylijinnan
java数据结构算法编程之美
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class LevelTraverseBinaryTree {
/**
* 编程之美 分层遍历二叉树
* 之前已经用队列实现过二叉树的层次遍历,但这次要求输出换行,因此要
- jquery取值和ajax提交复习记录
chengxuyuancsdn
jquery取值ajax提交
// 取值
// alert($("input[name='username']").val());
// alert($("input[name='password']").val());
// alert($("input[name='sex']:checked").val());
// alert($("
- 推荐国产工作流引擎嵌入式公式语法解析器-IK Expression
comsci
java应用服务器工作Excel嵌入式
这个开源软件包是国内的一位高手自行研制开发的,正如他所说的一样,我觉得它可以使一个工作流引擎上一个台阶。。。。。。欢迎大家使用,并提出意见和建议。。。
----------转帖---------------------------------------------------
IK Expression是一个开源的(OpenSource),可扩展的(Extensible),基于java语言
- 关于系统中使用多个PropertyPlaceholderConfigurer的配置及PropertyOverrideConfigurer
daizj
spring
1、PropertyPlaceholderConfigurer
Spring中PropertyPlaceholderConfigurer这个类,它是用来解析Java Properties属性文件值,并提供在spring配置期间替换使用属性值。接下来让我们逐渐的深入其配置。
基本的使用方法是:(1)
<bean id="propertyConfigurerForWZ&q
- 二叉树:二叉搜索树
dieslrae
二叉树
所谓二叉树,就是一个节点最多只能有两个子节点,而二叉搜索树就是一个经典并简单的二叉树.规则是一个节点的左子节点一定比自己小,右子节点一定大于等于自己(当然也可以反过来).在树基本平衡的时候插入,搜索和删除速度都很快,时间复杂度为O(logN).但是,如果插入的是有序的数据,那效率就会变成O(N),在这个时候,树其实变成了一个链表.
tree代码:
- C语言字符串函数大全
dcj3sjt126com
cfunction
C语言字符串函数大全
函数名: stpcpy
功 能: 拷贝一个字符串到另一个
用 法: char *stpcpy(char *destin, char *source);
程序例:
#include <stdio.h>
#include <string.h>
int main
- 友盟统计页面技巧
dcj3sjt126com
技巧
在基类调用就可以了, 基类ViewController示例代码
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[MobClick beginLogPageView:[NSString stringWithFormat:@"%@",self.class]];
- window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
flyvszhb
javajdk
window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
本机已经安装了jdk1.7,而比较早期的项目需要依赖jdk1.6,于是同时在本机安装了jdk1.6和jdk1.7.
安装jdk1.6前,执行java -version得到
C:\Users\liuxiang2>java -version
java version "1.7.0_21&quo
- Java在创建子类对象的同时会不会创建父类对象
happyqing
java创建子类对象父类对象
1.在thingking in java 的第四版第六章中明确的说了,子类对象中封装了父类对象,
2."When you create an object of the derived class, it contains within it a subobject of the base class. This subobject is the sam
- 跟我学spring3 目录贴及电子书下载
jinnianshilongnian
spring
一、《跟我学spring3》电子书下载地址:
《跟我学spring3》 (1-7 和 8-13) http://jinnianshilongnian.iteye.com/blog/pdf
跟我学spring3系列 word原版 下载
二、
源代码下载
最新依
- 第12章 Ajax(上)
onestopweb
Ajax
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- BI and EIM 4.0 at a glance
blueoxygen
BO
http://www.sap.com/corporate-en/press.epx?PressID=14787
有机会研究下EIM家族的两个新产品~~~~
New features of the 4.0 releases of BI and EIM solutions include:
Real-time in-memory computing –
- Java线程中yield与join方法的区别
tomcat_oracle
java
长期以来,多线程问题颇为受到面试官的青睐。虽然我个人认为我们当中很少有人能真正获得机会开发复杂的多线程应用(在过去的七年中,我得到了一个机会),但是理解多线程对增加你的信心很有用。之前,我讨论了一个wait()和sleep()方法区别的问题,这一次,我将会讨论join()和yield()方法的区别。坦白的说,实际上我并没有用过其中任何一个方法,所以,如果你感觉有不恰当的地方,请提出讨论。
&nb
- android Manifest.xml选项
阿尔萨斯
Manifest
结构
继承关系
public final class Manifest extends Objectjava.lang.Objectandroid.Manifest
内部类
class Manifest.permission权限
class Manifest.permission_group权限组
构造函数
public Manifest () 详细 androi
- Oracle实现类split函数的方
zhaoshijie
oracle
关键字:Oracle实现类split函数的方
项目里需要保存结构数据,批量传到后他进行保存,为了减小数据量,子集拼装的格式,使用存储过程进行保存。保存的过程中需要对数据解析。但是oracle没有Java中split类似的函数。从网上找了一个,也补全了一下。
CREATE OR REPLACE TYPE t_split_100 IS TABLE OF VARCHAR2(100);
cr