- yolov5>onnx>ncnn>apk
图像处理大大大大大牛啊
opencv实战代码讲解yoloonnxncnn安卓
一.yolov5pt模型转onnx条件:colabnotebookyolov51.安装环境!pipinstallonnx>=1.7.0#forONNXexport!pipinstallcoremltools==4.0#forCoreMLexport!pipinstallonnx-simplifier2.修改common.py在classFocus下面
- 2021-06-07 Do What You Are Meant To Do
春生阁
Don’tgiveupontryingtofindbalanceinyourlife.Sticktoyourpriorities.Rememberwhat’smostimportanttoyouanddoeverythingyoucantoputyourselfinapositionwhereyoucanfocusonthosepriorities,ratherthanbeingpulledbyt
- 随摘
桔桔岛
Oneshouldcaremoreaboutone'sowngrowthinsteadofothers.Toliveahappylife,oneshouldalwaystryeveryefforttominimizeregretsinlife.比起时刻注视着他人,多关注自身的成长,尽自己的一切努力让生活少点遗憾,才能过上快意人生。Whenoneshiftstheirfocusfromotherst
- 11讲 一次只做一件事
其乐融蓉蓉
时间是一个人最稀缺的资源。巴菲特到比尔盖茨家去做客,有人就问道他们成功的秘诀是什么,他们都没有直接回答,而是在纸上写下了答案,他们的答案都是一致的,五个字母focus。专注。专注去做一件事。每一次只做一件事。我就经常有这样的经验,每次就像叶老师说的边工作边听音乐或者边看电视边聊微信,边刷淘宝。这样会导致工作效率极低。拉长工作时间,让我经常在下班时间没有完成工作,所以很焦虑。有一个办法能让我们去专注
- Focus Corona第4天作业#何一味Corona渲染课
Focus_8490
本课做皮革和地毯皮革,漫反射加合成贴图,加衰减遮罩,模拟高光的感觉注意,纹理贴图前面要加个颜色校正,以方便改亮度和饱合=============================================================================================================================================
- flutter构建桌面应用_使用Flutter Firebase Part I构建笔记记录应用程序
weixin_26727575
pythonjava
flutter构建桌面应用I’mafanofGoogleKeep,I’vebeenusingitsinceitwaslaunched.Iputpendingtasks,remindersforchores,almostanythingneedstoremember,intoKeep.It’sintuitivetouse,helpsmestayfocusedonthepriorities.我是Goo
- 在PostgreSQL中使用JSONB对象数组
weixin_26750481
javapython
数据库提示(DatabaseTips)Inmylastarticle,wefocusedonturningaPostgreSQLjsonbcolumn,thatcontainedanArrayofObjects,intoarecordset,sothatitcouldbequeriedinarelationalmanner.在我的上一篇文章中,我们专注于将包含对象数组的PostgreSQLjson
- 前端基础面试题·第二篇——CSS(其一)
DT——
前端面试前端css
1.伪类与伪元素伪类,是用来描述元素的一个状态,比如第一个元素,元素被鼠标覆盖等等状态,写法为:伪元素,用于设置一个元素的特殊状态的一部分,写法为::伪元素于伪类:伪元素:::before::after::first-line伪类::hover:active:focus:nth-child(n)2.单位px:像素,绝对单位em:相对单位,相对于父元素字体大小rem:相对单位,相对于根元素html的
- resume栈顶Activity--Android P
淡淡的宁静
Android基础android
ActivityStackSuperior#resumeFocusedStackTopActivityLocked()->ActivityStack#resumeTopActivityUncheckedLocked()->resumeTopActivityInnerLocked()finalClientTransactiontransaction=ClientTransaction.obtain(
- 2023-07-12
大法师的输出
模型:xxmix9realistic_v30LoRA:,,,室内、起居室、咖啡杯等构建环境氛围效果图1(SFW:2),HDR,UHD,8K,bestquality,masterpiece,Highlydetailed,Studiolighting,ultra-finepainting,sharpfocus,physically-basedrendering,extremedetaildescrip
- jquery事件
上心心上
jquery事件事件函数列表:blur()元素失去焦点focus()元素获得焦点change()表单元素的值发生变化click()鼠标单击dblclick()鼠标双击mouseover()鼠标进入(进入子元素也触发)mouseout()鼠标离开(离开子元素也触发)mouseenter()鼠标进入(进入子元素不触发)mouseleave()鼠标离开(离开子元素不触发)hover()同时为mousee
- c# wpf 面试_WPF面试题
weixin_39912984
c#wpf面试
binding(绑定源、绑定模式【default、OneWay、TwoWay、OntTime、OneWayToSource】、触发绑定更新的事件【Default、Explicit(手动BindingExpression.UpdayeSource())、PropertyChange、LostFocus】、优先级PriorityBinding),包括绑定到单一属性、实体、集合、值转换、触发机制、验证等
- 巴菲特成功的第一特质
南茶的小碎片
文/小叶子比尔·盖茨与巴菲特的第一次见面,盖茨父子和巴菲特一起吃完饭后,盖茨父亲给盖茨和巴菲特一人一张卡片,让他们一起写一个词来概括自己现在辉煌成就的特质?图片发自App写完后他们一起翻出来,翻出来后发现他们写的词一样——专注(focus)。巴菲特始终对新事物保持好奇,如果对一个新主题感兴趣,他就会找来所有相关的书去阅读、和相关的人讨论,把它完全搞清楚为止,这就是专注研究新的事物。当然不是人人都是
- 穷查理宝典-1
秤心
读了两个星期的穷查理宝典,至今没有明白到底是为什么,我读完之后发现这本书有些凌乱。希望自己梳理一下,从中获得一些有益的启发。开篇第一句话,我想也是非常经典的话。凡事往简单处想,往认真处行。——查理·芒格1、FOCUS查理论吸引客户:“关键是把手头的事情做好……把手头的事情做好。把已经拥有的客户照顾好,其他的自然会来找你。2、检查清单风险——所有投资评估应该从测量风险(尤其是信用的风险)开始•测算合
- 安卓-音频焦点
DongGei
android音视频微信
安卓-音频焦点音频焦点是什么怎么做音频焦点是什么一个安卓系统肯定会有多个音源,音频焦点是用来处理这些音源的冲突eg在播放网易云的时候打开抖音网易云会自动暂停并且网易云有提醒其实是网易云做了处理发者需要明确编写代码来请求和处理音频焦点的变化。怎么做主要涉及这2个对象privatevaraudioFocusRequest:AudioFocusRequest?=nullprivatevaraudioMa
- LLM之RAG理论(十二)| RAG和Graph RAG对比
wshzd
RAG笔记人工智能
最近GraphRAG非常火,它来自微软的一篇论文《FromLocaltoGlobal:AGraphRAGApproachtoQuery-FocusedSummarization》,论文地址:https://arxiv.org/pdf/2404.16130。本文将对RAG和GraphRAG在架构和成本方面做简要分析。一、RAG和GraphRAG的架构RAG方法体系结构可以分为两个不同的阶段:索引阶段
- Android组件管理--应用程序启动流程
Kitty_London
Android系统Android
Activity的启动流程相对复杂一些,涉及到了Activity中的生命周期方法,涉及到了Android体系的CS模式,涉及到了Android中进程通讯Binder机制等等。前言我们先看一下源码中对Activity的描述,如下:Anactivityisasingle,focusedthingthattheusercando.Almostallactivitiesinteractwiththeuse
- k8s - Volume 简介和HostPath的使用
nvd11
K8Skubernetes容器云原生
K8S的持久化K8S实现持久化存储的方法有很多种例如卷(Volume),持久卷(PV),临时卷(EV)等,还有很多不常用的选项上图没有列出来其中Volume本身也分很多种包括Secret,configMap(之前的文章covered了),hostPath,emptyDir等本文主要focusonhostPathHostPath的简介官方定义:hostPath卷能将主机节点文件系统上的文件或目录挂载
- 2018-06-19__第六章
悠悠2008
用了一个多小时的时间完成了第六章《获得掌控:组织整理》对以前的几万米高空的理论有了清晰的认识;终于搞清楚了本书中的一些理论和方法如何跟叶老师的《进阶课》等课程相结合的。如梦想仓库、八大关注、Omnifocus的项目、日程表等的关系,也理解了我们在晨间日记中的几个清晨自问、本年度的目标、月度目标、今日三只青蛙等条目设置的意义。也进一步明确了周检视、月检视、年度检视的重要性。在捕捉100件事情的基础上
- 10 Ways to Focus on Your Long-Term Goals
重新想象2018
最近一直在关注效率提升方法的相关议题,上周也看到群里有战友提到相关的工具并分享其使用心得,比如OmniFocus,昨天Get了Pro版本,看了相关的文章,得知是比较难于上手的GTD工具,但上手后都说是项目管理和日程管理的神器,目前正在开发中,后续也会写一些类似的分享文章,不过已经感受到了其设计思路的强大,本文是在研究的过程中发现的一篇好文章,如主题,佩服老外写的类似的文章都可以落地为实际操作的行动
- 白骑士的CSS教学高级篇之高级选择器与伪类 4.2.2 伪类
白骑士所长
CSS教学css前端
伪类选择器是CSS中一种非常强大的工具,允许我们根据元素的特定状态来应用样式。通过使用伪类选择器,你可以创建更具交互性和动态性的网页。常用的伪类选择器包括‘:focus‘、‘:hover‘、‘:active‘和‘:visited‘,它们在设计用户体验时起着至关重要的作用。‘:focus‘伪类‘:focus‘伪类选择器用于选择当前处于焦点状态的元素。通常,当用户通过键盘或鼠标与表单元素(如输入框、按
- Focus Corona第9天作业#何一味Corona渲染课
Focus_8490
材(像瓷砖):本次做的模型是已经做好了边缝线的,所以漫反向想都不要想,加AO做地板砖,本次用平铺贴图做,模型只有一个片先换为一个cr材质混合材质做砖纹(红砖类型)利用层材质做,最重要的就是那个分材质的遮罩图,不同的遮罩图出现不同的效果下面是石灰墙的效果红色砖墙一样的做换个贴图就可以了,总结:材质与材质之间的遮罩图很重要,因为这个直接决定了整体效果
- Android Weex input 自动获取焦点方法失效
aYan124
背景实现一个weex的搜索页面,进入页面需要默认调起键盘关键代码......focusblurconstmodal=weex.requireModule('modal');consttoast=message=>{modal.toast({message,duration:1,});};exportdefault{data(){return{text:'0123456',};},methods:{
- vue3背景下,el-input嵌套在弹出框中,自动聚焦“失效”?如何实现自动聚焦
Now?!
vue.jselementui
情景:在一个弹出框中,有一个el-input输入框,想要实现当弹出框出现时,input会自动聚焦。使用input的原生属性autofocus去自动获取焦点失效;使用ref获取el-input元素也显示undefined!!!..............先说结论:使用定时器!!//script标签部分内容constdialogFormVisible=ref(false)//获取到input框cons
- graphrag论文精读
Ramos_zl
人工智能
论文精读:FromLocaltoGlobal:AGraphRAGApproachtoQuery-FocusedSummarization1.研究背景与问题在大语言模型(LLMs)的应用中,检索增强生成(RAG)方法通常用于从外部知识源检索相关信息,从而回答用户的问题。然而,RAG方法在处理涉及整个文本语料库的全局问题时效果不佳,比如“数据集中主要的主题是什么?”这些问题本质上是一个面向查询的总结任
- QT界面优化,一些功能实现
fulmoon
qt开发语言
文本框焦点:ui->name->setFocus();背景色设置:setPalette(QPalette(Qt::white));//设置窗口为白色背景setAutoFillBackground(true);label标签插入图片,按比例缩放:QImageImage;Image.load(":/image1/panada.jpeg");QPixmappixmap=QPixmap::fromImag
- 2023-07-02
大法师的输出
大模型:breakdomainrealistic_R2333LoRA:,效果图(SFW:2),HDR,UHD,8K,bestquality,masterpiece,Highlydetailed,Studiolighting,ultra-finepainting,sharpfocus,physically-basedrendering,extremedetaildescription,Profess
- 一文带你读懂vue3中directive指令的那些事
Jinuss
源码前端Vuevue.js前端javascript
概述vue3中内置了很多丰富实用的指令,如v-show、v-if/v-else或v-model等,但是实际开发中可能我们还需要某些统一的处理,比如交互按钮的防抖,输入框的自动focus等,这时我们就可以通过vue3的directive注册自定义指令。指令指令钩子vue3的自定义指令通常情况下是由一个包含类似组件生命周期钩子函数的对象,在DOM节点不同的时期,执行不同的钩子函数,而我们就可以在对应的
- Element-plus cascader 下拉组件卡顿问题
web_wlx
vue.jsjavascript前端
版本号:“element-plus”:“^1.0.2-beta.71”,使用过程中,el-cascader三级联动时候页面会卡死代码问题原因查官方仓库后发现,原因是解决办法添加@focus回调constfocusChange=()=>{//解决ElementUI的页面卡顿的bugconst$el=document.querySelectorAll(".el-cascader-panel.el-ca
- Focus Corona第6天作业#何一味Corona渲染课
Focus_8490
本课复习普通布料和高级绒布普通布料:普通布料(有了颜色的布料贴图):漫反射想都不要想,直接合成贴图,三步曲,主要模拟高光变化,增加细节,更有质感第二层,S型第三层,山型下面就是凹凸通道里边加布料的纹理和折痕,因为是两种效果一起,所以用混合贴图所以,在做图时候,要注意凹凸的强度,强度大了会影响细节高级绒布带条纹的高级绒布漫反射加合成,合成里加衰减
- 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