- 番茄西红柿叶子病害分类数据集12882张11类别
futureflsl
数据集分类数据挖掘人工智能
数据集类型:图像分类用,不可用于目标检测无标注文件数据集格式:仅仅包含jpg图片,每个类别文件夹下面存放着对应图片图片数量(jpg文件个数):12882分类类别数:11类别名称:["Bacterial_Spot_Bacteria","Early_Blight_Fungus","Healthy","Late_Blight_Water_Mold","Leaf_Mold_Fungus","Powdery
- Vicky的ScalersTalk第六轮新概念朗读持续力训练Day73 20210411
Vicky_b9de
练习材料:ModerncavemenPart-3ˈmɒdənˈkeɪvmənpɑːt-3Theyplungedintothelake,andafterloadingtheirgearonaninflatablerubberdinghy,letthecurrentcarrythemtotheotherside.Toprotectthemselvesfromtheicywater,theyhadtow
- 探索创新科技: Lite-Mono - 简约高效的小型化Mono框架
杭律沛Meris
探索创新科技:Lite-Mono-简约高效的小型化Mono框架Lite-Mono[CVPR2023]Lite-Mono:ALightweightCNNandTransformerArchitectureforSelf-SupervisedMonocularDepthEstimation项目地址:https://gitcode.com/gh_mirrors/li/Lite-Mono如果你在寻找一个轻
- ComfyUI AnimateDiff-Lightning 教程
jayli517
ComfyUIAIGC
介绍项目主页:https://huggingface.co/ByteDance/AnimateDiff-Lightning在线测试(有墙):https://huggingface.co/spaces/ByteDance/AnimateDiff-Lightning国内镜像:https://hf-mirror.com/ByteDance/AnimateDiff-LightningAnimateDiff
- python-pcl函数_Python简介,第4章-函数
cumei1658
javawebglpythonluaios
python-pcl函数Runningthroughthedoor,Baldricfoundhimselfinanenormouscavern,itsceilinglostinshadow.Greatcolumnsofblackstonesoaredfromtheground,andpoolsoflavabubbledthroughout,lightingthecaverninadarkred.T
- CTF常见编码及加解密(超全)第二篇
不会代码的小徐
编码密码网络安全密码学预编码
HTML实体编码简述:字符实体是用一个编号写入HTML代码中来代替一个字符,在使用浏览器访问网页时会将这个编号解析还原为字符以供阅读。举例:highlighter-HTML明文:hello,world.十进制:hello,world.十六进制:hel
- 泽平 的ScalersTalk第六轮新概念朗读持续力训练Day 75 20210606
郑泽平
练习材料:Lesson74OutofthelimelightAnancientbusstoppedbyadryriverbedandapartyoffamousactorsandactressesgotoff.Dressedindarkglassesandoldclothes,theyhadtakenspecialprecautionssothatnooneshouldrecognizethem.
- 四、webpack4.0 - tapable
Razas
WEBPACK4webpack4.0
一、tapable介绍webpack中插件的时候,需要用到tapable。新建一个项目WEBPACK-Tapable。初始化package.json:npminit-y安装:npminstalltapable--savetapable是一个包。二、tapable三、AsyncParralleHook四、AsyncSeriesHook五、AsyncSeriesWaterfall
- tapable详解
风火一回
webpacktapablewebpack插件制作
tapable详解tapable是webpack内部使用的一个流程管理工具,主要用来串联插件,完善事件流执行。1.安装tapableyarnaddtapable2.常用hooksimport{SyncHook,SyncBailHook,SyncWaterfallHook,SyncLoopHook,AsyncParallelHook,AsyncParallelBailHook,AsyncSeries
- 如何通过阅读外刊积累英文写作句型?(8)原创: 魏剑峰 英文悦读 5天前
长袜子皮卡丘
WhentheLightComesDirkReichardt-Kokowääh2(OriginalSoundtrack)[DeluxeEdition]这是“读外刊,学英文句型”栏目的第八期,关于该栏目第一期的说明可以见如何通过阅读外刊积累英文写作句型?1.形容某人很有名如何形容某人很有名?最常见的说法是somebodyisfamous/well-known/renown,有没有其他说法呢?可以看看
- vue axios跨域访问相关问题 | axios默认发送‘application/x-www-form-urlencoded‘格式数据 | Content-Type is not allowed b
就是爱吃肉ro
#Vue&uni-appaxiosajaxcors跨域vuex-www-form-url
文章目录概述报错1Content-TypeisnotallowedbyAccess-Control-Allow-Headersinpreflightrespon报错2返回状态码500好久没更博客了,最近一直搞框架搞项目,好多问题也都没有记录下来…好吧,那从今天起来,继续开始保持记录的好习惯,先写一下在axios上踩下了这么多坑.概述通过以下两个报错,来介绍解决使用axios来进行网络请求中的遇到的
- 小猿圈python学习-内置函数
小猿圈IT教育
Python的len为什么你可以直接用?肯定是解释器启动时就定义好了内置参数详解https://docs.python.org/3/library/functions.html?highlight=built#ascii每个函数的作用我都帮你标好了abs#求绝对值all#ReturnTrueifbool(x)isTrueforallvaluesxintheiterable.Iftheiterabl
- 【目标检测数据集】番茄叶片病害数据集13940张9类VOC+YOLO格式
熬夜写代码的平头哥∰
数据集目标检测YOLO目标跟踪
数据集格式:PascalVOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):13946标注数量(xml文件个数):13946标注数量(txt文件个数):13946标注类别数:9标注类别名称:["EarlyBlight","Healthy","LateBlight","LeafMiner","Le
- SingleFlight模式
你这个代码我看不懂
Springpython开发语言
SingleFlight在Java中实现SingleFlight模式,可以通过使用ConcurrentHashMap和CompletableFuture来管理并发请求。以下是一个示例代码,展示了如何在Java中实现SingleFlight模式:示例代码importjava.util.concurrent.CompletableFuture;importjava.util.concurrent.Co
- GitHub每日最火火火项目(8.27)
FutureUniant
github日推github音视频人工智能ai计算机视觉
项目名称:Lightning-AI/LitServe项目介绍:LitServe是一个用于AI模型的快速服务引擎。它具有灵活性、易用性和企业级规模的特点。通过LitServe,用户可以更高效地部署和运行AI模型,提供快速的响应和可靠的服务。它可能支持多种AI模型的集成,并提供了便捷的接口和工具,方便开发者进行模型的管理和优化。项目地址:https://github.com/Lightning-AI/
- 喜大普奔:HashiCorp Vagrant 2.2.0发布!
HashiCorpChina
OCT172018BRIANCAINWearepleasedtoannouncethereleaseofVagrant2.2.0.Vagrantisatoolforbuildinganddistributingdevelopmentenvironments.ThehighlightofthisreleaseistheintroductionofVagrantCloudcommandlinetool
- iNav开源代码之研读分析篇章目录梳理
lida2003
xFlightiNavFlightControl
iNav开源代码之研读分析篇章目录梳理1.源由2.基础篇章3.代码篇章4.场景篇章5.异常篇章6.总结7.参考资料1.源由之前有介绍过Betaflight/PX4/ArduPilot,虽然iNav代码和Betaflight类似,但是针对iNav系列的没有整理过一个总的目录。今天打算也整理下,以便后续入手查找资料、梳理要点更加方便。2.基础篇章iNav飞控AOCODARC-F7MINI固件编译iNa
- 人工智能-GPU版本机器学习、深度学习模型安装
bw876720687
人工智能机器学习深度学习
背景1、在有Nvidia-GPU的情况下模型使用cuda加速计算,但是很有多模型的GPU和CPU版本安装方式不同,如何安装lgb\cat\xgb.2、为了让代码有普适性,如何自适应环境当中的设备进行CPU或者GPU的调整?解决方案问题一:安装GPU版本的LightGBMLightGBM默认不会安装GPU支持版,需要手动编译以启用GPU。以下是在Linux和Windows上编译GPU版本LightG
- Gyro陀螺仪 > MPU 6000 vs ICM 20689
ABEL in China
DIY之旅单片机嵌入式硬件
目录参考MPU6000和ICM20689对比陀螺仪的选择:采样率与噪声参考Gyro-MPU6000vsICM20689|IntoFPVForumFPVDroneFlightControllerExplained-OscarLiangMPU6000和ICM20689对比两个飞行控制器陀螺仪。分别属于T-Motor和iFlight。T-Motor使用MPU6000陀螺仪,而iFlight使用2xICM
- 十大机器学习算法-梯度提升决策树(GBDT)
zjwreal
机器学习GBDT机器学习梯度提升提升树梯度提升决策树
简介梯度提升决策树(GBDT)由于准确率高、训练快速等优点,被广泛应用到分类、回归合排序问题中。该算法是一种additive树模型,每棵树学习之前additive树模型的残差。许多研究者相继提出XGBoost、LightGBM等,又进一步提升了GBDT的性能。基本思想提升树-BoostingTree以决策树为基函数的提升方法称为提升树,其决策树可以是分类树或者回归树。决策树模型可以表示为决策树的加
- 【Azure Redis】Redis-CLI连接Redis 6380端口始终遇见 I/O Error
武昌库里写JAVA
面试题汇总与解析算法数据结构c语言开发语言二维数组
问题描述使用Redis-cli连接Redis服务,因为工具无法直接支持TLS6380端口连接,所以需要使用stunnel配置TLS/SSL服务。根据文章(LinuxVM使用6380端口(SSL方式)连接AzureRedis(redis-cli&stunnel):https://www.cnblogs.com/lulight/p/14188279.html),配置stunnel后,始终无法连接成功。
- DALI的学习
m0_69078052
学习
注重协议的理解这段代码的主要功能是处理与“制造商模式”相关的操作。以下是对代码逻辑和其各部分意义的详细解释:文件与宏定义#include"DALI_CG_APP.h"#defineMFM0x80#include"DALI_CG_APP.h":引入了DALI(DigitalAddressableLightingInterface)应用程序的头文件。#defineMFM0x80:定义了一个宏MFM,值
- 如何用图表控件LightningChart Python实现检测应用?
界面开发小八哥
python开发语言图表控件数据可视化
LightningChartPython是知名图表控件公司LightningChartLtd正在研发的Python图表,目前还未正式推出,感兴趣的朋友可以戳下方链接申请试用!立即申请LightningChartPython试用什么是结构健康监测(SHM)?结构健康监测(SHM)是指实施结构损伤检测策略的过程,SHM涉及使用传感器和数据采集系统来收集有关结构随时间变化的状况的信息,然后分析这些数据以
- Ubuntu 开机出现 recovering journal 无法进入图形界面解决流程(不通用,自用)
Artintel
学习ubuntu
远程连接进入命令行:rm-rf/etc/X11/xorg.confcp/etc/X11/xorg.conf.failsafe/etc/X11/xorg.confsudoservicelightdmstopsudoapt-getremovenvidia*cdjohn/qudong+cuda9.0\+\cudnn/sudochmoda+xnv.runsudo./nv.run-no-x-check-no
- 2023-01-09 提倡减弱户外照明灯
Eva_9c90
Outdoorlightingmakesitpossibleforhumanstosafelylivetheirliveswellaftersunset.Buttheexcessiveuseofilluminationisturningskiesoncedarkenoughtoseethousandsofstarsintoaflathaze.Andtheissuegoesfarbeyondnotb
- 3.4 Principles of Reliable Data Transfer (Part 2)
找不到工作
上接Part1。3.4.2PipelinedReliableDataTransferProtocols如我们在Part1中指出的,rdt3.0虽然是一个正确的可靠数据传输协议,然而它的性能无法满足需求。因为它实质上是一个stop-and-wait的协议,即在收到上一个数据的ACK之前无法发送下一个数据。解决方法是,sender不需要等待ACK,可以连续发送多个数据包。每个inflight的包都应该
- 前端基础面试题·第三篇——JavaScript(其四)
DT——
前端面试javascript前端开发语言
highlight:atom-one-dark1.JSON.stringifyJSON.stringify()方法将一个JavaScript值(对象或者数组)转换为一个JSON字符串,如果指定了一个replacer函数,则可以替换值。语法:JSON.stringify(value,replacer,space)参数value:要转换的值。replacer:替换值,可以是一个函数或者数组。(这个参数
- julia 编程语言_Julia(Julia)编程语言入门
weixin_26714375
pythonjava人工智能
julia编程语言Abird’seyeviewofJuliaasaProgramminglanguage,it’scapabilitiesandshortcomings鸟瞰Julia作为一种编程语言,它的功能和缺点“Julia”,whichgotthelimelightintherecentyearsisconsideredastheProgrammingLanguageofthefuture.A
- UPnP服务器(upnpserver)快速入门指南
郦祺嫒Amiable
UPnP服务器(upnpserver)快速入门指南upnpserverFastandlightupnpserverfornode项目地址:https://gitcode.com/gh_mirrors/up/upnpserver1.项目目录结构及介绍本项目upnpserver是一个基于Node.js实现的UPnP服务器。下面是其基本的目录结构概览:upnpserver│├──package.json
- 搜索结果关键字标红 — 正则
月亮消失了.974
servlethtmljavascript
str是你的内容,key是关键字正则表达式匹配模式支持的三个标志(newregexp的第二个参数)g:global全文搜索,不添加则搜索到第一个匹配停止;i:ignorecase忽略大小写,默认大小写敏感;m:multiplelines多行搜索highlight(str,key){ varreg=newRegExp(`(${key})`,'gi'); v
- Enum 枚举
120153216
enum枚举
原文地址:http://www.cnblogs.com/Kavlez/p/4268601.html Enumeration
于Java 1.5增加的enum type...enum type是由一组固定的常量组成的类型,比如四个季节、扑克花色。在出现enum type之前,通常用一组int常量表示枚举类型。比如这样:
public static final int APPLE_FUJI = 0
- Java8简明教程
bijian1013
javajdk1.8
Java 8已于2014年3月18日正式发布了,新版本带来了诸多改进,包括Lambda表达式、Streams、日期时间API等等。本文就带你领略Java 8的全新特性。
一.允许在接口中有默认方法实现
Java 8 允许我们使用default关键字,为接口声明添
- Oracle表维护 快速备份删除数据
cuisuqiang
oracle索引快速备份删除
我知道oracle表分区,不过那是数据库设计阶段的事情,目前是远水解不了近渴。
当前的数据库表,要求保留一个月数据,且表存在大量录入更新,不存在程序删除。
为了解决频繁查询和更新的瓶颈,我在oracle内根据需要创建了索引。但是随着数据量的增加,一个半月数据就要超千万,此时就算有索引,对高并发的查询和更新来说,让然有所拖累。
为了解决这个问题,我一般一个月会进行一次数据库维护,主要工作就是备
- java多态内存分析
麦田的设计者
java内存分析多态原理接口和抽象类
“ 时针如果可以回头,熟悉那张脸,重温嬉戏这乐园,墙壁的松脱涂鸦已经褪色才明白存在的价值归于记忆。街角小店尚存在吗?这大时代会不会牵挂,过去现在花开怎么会等待。
但有种意外不管痛不痛都有伤害,光阴远远离开,那笑声徘徊与脑海。但这一秒可笑不再可爱,当天心
- Xshell实现Windows上传文件到Linux主机
被触发
windows
经常有这样的需求,我们在Windows下载的软件包,如何上传到远程Linux主机上?还有如何从Linux主机下载软件包到Windows下;之前我的做法现在看来好笨好繁琐,不过也达到了目的,笨人有本方法嘛;
我是怎么操作的:
1、打开一台本地Linux虚拟机,使用mount 挂载Windows的共享文件夹到Linux上,然后拷贝数据到Linux虚拟机里面;(经常第一步都不顺利,无法挂载Windo
- 类的加载ClassLoader
肆无忌惮_
ClassLoader
类加载器ClassLoader是用来将java的类加载到虚拟机中,类加载器负责读取class字节文件到内存中,并将它转为Class的对象(类对象),通过此实例的 newInstance()方法就可以创建出该类的一个对象。
其中重要的方法为findClass(String name)。
如何写一个自己的类加载器呢?
首先写一个便于测试的类Student
- html5写的玫瑰花
知了ing
html5
<html>
<head>
<title>I Love You!</title>
<meta charset="utf-8" />
</head>
<body>
<canvas id="c"></canvas>
- google的ConcurrentLinkedHashmap源代码解析
矮蛋蛋
LRU
原文地址:
http://janeky.iteye.com/blog/1534352
简述
ConcurrentLinkedHashMap 是google团队提供的一个容器。它有什么用呢?其实它本身是对
ConcurrentHashMap的封装,可以用来实现一个基于LRU策略的缓存。详细介绍可以参见
http://code.google.com/p/concurrentlinke
- webservice获取访问服务的ip地址
alleni123
webservice
1. 首先注入javax.xml.ws.WebServiceContext,
@Resource
private WebServiceContext context;
2. 在方法中获取交换请求的对象。
javax.xml.ws.handler.MessageContext mc=context.getMessageContext();
com.sun.net.http
- 菜鸟的java基础提升之道——————>是否值得拥有
百合不是茶
1,c++,java是面向对象编程的语言,将万事万物都看成是对象;java做一件事情关注的是人物,java是c++继承过来的,java没有直接更改地址的权限但是可以通过引用来传值操作地址,java也没有c++中繁琐的操作,java以其优越的可移植型,平台的安全型,高效性赢得了广泛的认同,全世界越来越多的人去学习java,我也是其中的一员
java组成:
- 通过修改Linux服务自动启动指定应用程序
bijian1013
linux
Linux中修改系统服务的命令是chkconfig (check config),命令的详细解释如下: chkconfig
功能说明:检查,设置系统的各种服务。
语 法:chkconfig [ -- add][ -- del][ -- list][系统服务] 或 chkconfig [ -- level <</SPAN>
- spring拦截器的一个简单实例
bijian1013
javaspring拦截器Interceptor
Purview接口
package aop;
public interface Purview {
void checkLogin();
}
Purview接口的实现类PurviesImpl.java
package aop;
public class PurviewImpl implements Purview {
public void check
- [Velocity二]自定义Velocity指令
bit1129
velocity
什么是Velocity指令
在Velocity中,#set,#if, #foreach, #elseif, #parse等,以#开头的称之为指令,Velocity内置的这些指令可以用来做赋值,条件判断,循环控制等脚本语言必备的逻辑控制等语句,Velocity的指令是可扩展的,即用户可以根据实际的需要自定义Velocity指令
自定义指令(Directive)的一般步骤
&nbs
- 【Hive十】Programming Hive学习笔记
bit1129
programming
第二章 Getting Started
1.Hive最大的局限性是什么?一是不支持行级别的增删改(insert, delete, update)二是查询性能非常差(基于Hadoop MapReduce),不适合延迟小的交互式任务三是不支持事务2. Hive MetaStore是干什么的?Hive persists table schemas and other system metadata.
- nginx有选择性进行限制
ronin47
nginx 动静 限制
http {
limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s;...
server {...
location ~.*\.(gif|png|css|js|icon)$ {
- java-4.-在二元树中找出和为某一值的所有路径 .
bylijinnan
java
/*
* 0.use a TwoWayLinkedList to store the path.when the node can't be path,you should/can delete it.
* 1.curSum==exceptedSum:if the lastNode is TreeNode,printPath();delete the node otherwise
- Netty学习笔记
bylijinnan
javanetty
本文是阅读以下两篇文章时:
http://seeallhearall.blogspot.com/2012/05/netty-tutorial-part-1-introduction-to.html
http://seeallhearall.blogspot.com/2012/06/netty-tutorial-part-15-on-channel.html
我的一些笔记
===
- js获取项目路径
cngolon
js
//js获取项目根路径,如: http://localhost:8083/uimcardprj
function getRootPath(){
//获取当前网址,如: http://localhost:8083/uimcardprj/share/meun.jsp
var curWwwPath=window.document.locati
- oracle 的性能优化
cuishikuan
oracleSQL Server
在网上搜索了一些Oracle性能优化的文章,为了更加深层次的巩固[边写边记],也为了可以随时查看,所以发表这篇文章。
1.ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前,那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。(这点本人曾经做过实例验证过,的确如此哦!
- Shell变量和数组使用详解
daizj
linuxshell变量数组
Shell 变量
定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:
your_name="w3cschool.cc"
注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:
首个字符必须为字母(a-z,A-Z)。
中间不能有空格,可以使用下划线(_)。
不能使用标点符号。
不能使用ba
- 编程中的一些概念,KISS、DRY、MVC、OOP、REST
dcj3sjt126com
REST
KISS、DRY、MVC、OOP、REST (1)KISS是指Keep It Simple,Stupid(摘自wikipedia),指设计时要坚持简约原则,避免不必要的复杂化。 (2)DRY是指Don't Repeat Yourself(摘自wikipedia),特指在程序设计以及计算中避免重复代码,因为这样会降低灵活性、简洁性,并且可能导致代码之间的矛盾。 (3)OOP 即Object-Orie
- [Android]设置Activity为全屏显示的两种方法
dcj3sjt126com
Activity
1. 方法1:AndroidManifest.xml 里,Activity的 android:theme 指定为" @android:style/Theme.NoTitleBar.Fullscreen" 示例: <application
- solrcloud 部署方式比较
eksliang
solrCloud
solrcloud 的部署其实有两种方式可选,那么我们在实践开发中应该怎样选择呢? 第一种:当启动solr服务器时,内嵌的启动一个Zookeeper服务器,然后将这些内嵌的Zookeeper服务器组成一个集群。 第二种:将Zookeeper服务器独立的配置一个集群,然后将solr交给Zookeeper进行管理
谈谈第一种:每启动一个solr服务器就内嵌的启动一个Zoo
- Java synchronized关键字详解
gqdy365
synchronized
转载自:http://www.cnblogs.com/mengdd/archive/2013/02/16/2913806.html
多线程的同步机制对资源进行加锁,使得在同一个时间,只有一个线程可以进行操作,同步用以解决多个线程同时访问时可能出现的问题。
同步机制可以使用synchronized关键字实现。
当synchronized关键字修饰一个方法的时候,该方法叫做同步方法。
当s
- js实现登录时记住用户名
hw1287789687
记住我记住密码cookie记住用户名记住账号
在页面中如何获取cookie值呢?
如果是JSP的话,可以通过servlet的对象request 获取cookie,可以
参考:http://hw1287789687.iteye.com/blog/2050040
如果要求登录页面是html呢?html页面中如何获取cookie呢?
直接上代码了
页面:loginInput.html
代码:
<!DOCTYPE html PUB
- 开发者必备的 Chrome 扩展
justjavac
chrome
Firebug:不用多介绍了吧https://chrome.google.com/webstore/detail/bmagokdooijbeehmkpknfglimnifench
ChromeSnifferPlus:Chrome 探测器,可以探测正在使用的开源软件或者 js 类库https://chrome.google.com/webstore/detail/chrome-sniffer-pl
- 算法机试题
李亚飞
java算法机试题
在面试机试时,遇到一个算法题,当时没能写出来,最后是同学帮忙解决的。
这道题大致意思是:输入一个数,比如4,。这时会输出:
&n
- 正确配置Linux系统ulimit值
字符串
ulimit
在Linux下面部 署应用的时候,有时候会遇上Socket/File: Can’t open so many files的问题;这个值也会影响服务器的最大并发数,其实Linux是有文件句柄限制的,而且Linux默认不是很高,一般都是1024,生产服务器用 其实很容易就达到这个数量。下面说的是,如何通过正解配置来改正这个系统默认值。因为这个问题是我配置Nginx+php5时遇到了,所以我将这篇归纳进
- hibernate调用返回游标的存储过程
Supanccy2013
javaDAOoracleHibernatejdbc
注:原创作品,转载请注明出处。
上篇博文介绍的是hibernate调用返回单值的存储过程,本片博文说的是hibernate调用返回游标的存储过程。
此此扁博文的存储过程的功能相当于是jdbc调用select 的作用。
1,创建oracle中的包,并在该包中创建的游标类型。
---创建oracle的程
- Spring 4.2新特性-更简单的Application Event
wiselyman
application
1.1 Application Event
Spring 4.1的写法请参考10点睛Spring4.1-Application Event
请对比10点睛Spring4.1-Application Event
使用一个@EventListener取代了实现ApplicationListener接口,使耦合度降低;
1.2 示例
包依赖
<p