题目解题思路解题代码题链接题目解题思路解题代码importjava.util.*;publicclassMain{//定义翻转字符数组的方法publicstaticvoidreverse(char[]arr,intstart,intend){while(start
今天下雨
恬淡风清
这会下班的时候明显感到气温下降了很多,穿了夏日短袖走在路上明显冷飕飕的感觉,不是用一般的凉爽来形容,而是有点冷。今天难得坐地铁上下班,早上把电动车放在地铁站,然后坐地铁,现在先坐公交出行再转地铁,刚才记错了,居然坐地铁坐反了,我在定安路坐,以为下一站是城站,就顺着坐了这一方向,坐到近江才反应过来,不对啊,做反了,应该下一站龙翔桥方向,记错了哈,又多坐了一站到江陵路下车,刚好下车对面的也来了,重新坐
可转债投资之——小盘可转债大秀大长腿
蛙声叫叫一家亲
“感觉许久没提可转债了,这段时间确实没啥好说的,可转债价格跟随正股不断下跌,可转债等权指数从3月初冲高后持续回落,这几天稍微企稳。最近有个特别值得一提的现象,就是许多小规模转债,特别是次新小规模转债,轮番轰炸暴涨,天天秀着20cm、30cm的大长腿,看着让人眼馋。先说说蛙哥最近的可转债持仓情况,截至发文前,今年可转债亏损3.78%,仓位上升到80.68%。整体趋势是亏损仍在缓慢小幅加大,仓位却在上
Gson、Fastjson 和 Jackson 对比解析
小张0.0
JavaWebjson
目录1.Gson(Google)基本介绍:核心功能:特点:使用场景:2.Fastjson(Alibaba)基本介绍:核心功能:特点:使用场景:3.Jackson基本介绍:核心功能:特点:使用场景:4.对比总结5.选择建议Gson、Fastjson和Jackson这三种都是Java生态中广泛使用的JSON处理库,用于实现Java对象与JSON数据之间的相互转换。在项目中使用不同的方法即可调用不同的J
牛客-倒置字符串
小张0.0
OJ算法题题目心得算法leetcode动态规划
1.题目描述2.题目链接倒置字符串_牛客题霸_牛客网3.代码解答importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);Strings=scanner.nextLine();//按空格分割单词(处理多个连续空格的情况,split("
使用Meteor构建实时仪表板的完整指南
杏花朵朵
Meteor实时仪表板Vue组件路由设置集合集成
背景简介随着现代Web应用对实时性和响应性的要求不断提高,开发人员需要使用强大的框架来构建能够满足这些需求的应用程序。Meteor作为一个全栈JavaScript框架,提供了一种快速开发实时Web应用的方法。本文将通过构建一个实时仪表板项目,详细探讨Meteor的特点和使用方法。Meteor简介Meteor是一个全栈JavaScript框架,用于构建Web应用程序。它的主要元素包括Web客户端、基
重磅!TDengine 入选 2024 中国物联网创新产品榜
在全球数字化浪潮和#AI技术驱动下,#物联网产业正经历新一轮革新升级。面对跨境合规、本地化需求多样、技术标准差异等挑战,如何以更高效、更智能的方式推动#物联网数据价值释放,成为行业共同关注的课题。近日,在2025中国物联网企业出海与创新发展峰会暨“2024物联之星”年度榜单颁奖典礼上,#TDengine凭借在#时序数据管理领域的持续突破,荣登“2024年度中国物联网行业创新产品榜”。作为物联网领域
完善Meteor应用的NPM集成——meteorhacks/npm项目推荐
尤峻淳Whitney
完善Meteor应用的NPM集成——meteorhacks/npm项目推荐1.项目基础介绍及编程语言meteorhacks/npm是一个开源项目,旨在为Meteor应用提供完整的NPM模块集成。该项目通过允许在Meteor应用内部使用NPM模块,极大地扩展了Meteor应用的功能性和灵活性。该项目的主要编程语言是JavaScript。2.项目核心功能项目的核心功能是提供一个桥接器,让开发者可以在M
node.js详解
思静鱼
node.jsnode.js
文章目录一、什么是Node.js?二、Node.js的核心组成三、Node.js的运行机制(事件循环)四、常见内置模块(无需安装)五、应用场景六、npm包生态七、Node.js适合哪些人?八、优缺点总结一、什么是Node.js?Node.js是一个基于ChromeV8引擎的JavaScript运行时,用于构建高性能网络应用。由RyanDahl于2009年发布。允许你在服务器端使用JavaScrip
VS2017中英文大小写转换的快捷键
雪域迷影
由于经常使用VS2017开发C++程序,有时候需要将英文小写转换成大写,或者将大写转换成小写的,最近发现又快捷键,非常方便,如下:大写改成小写:Ctrl+U小写改成大写:Ctrl+Shift+U记得要选中要修改的一段英文。
STM32F4-ETH通信(lwip)——学习笔记_stm32 lwip
2401_84010497
程序员嵌入式
7、CSMA/CD冲突检测:8、MAC子层:MAC数据包、MAC数据包格式、MAC地址:MAC地址由48位数字组成,它是网卡的物理地址,在以太网传输的最底层,就是根据MAC地址来收发数据的。部分MAC地址用于广播和多播,在同一个网络里不能有两个相同的MAC地址。PC的网卡在出厂时已经设置好了MAC地址,但也可以通过一些软件来进行修改,在嵌入式的以太网控制器中可由程序进行配置。数据包中的DA是目标地
时序数据库在工业物联网领域的核心优势与应用价值
时序数据说
时序数据库物联网数据库iotdb大数据
一、工业物联网的数据挑战与需求工业物联网(IIoT)正在重塑全球制造业格局,通过连接设备、传感器和控制系统,实现了生产过程的数字化与智能化。然而,这一转型也带来了前所未有的数据管理挑战:海量数据:单个工厂可能部署数万个传感器,每秒产生数千万数据点高速写入:工业设备常需毫秒级数据采集,对数据库写入性能要求极高严格时效:质量控制、故障预测等场景要求实时数据分析长期存储:设备生命周期数据需保存数年甚至数
30岁的你愿意回到18岁吗?
网名叫蝶恋花
一觉醒来,你是不是有点恍惚?双手枕着后脑勺,躺在双人床上,身边却是冰凉的,两眼无神地望着天花板,现实是如此的压抑。早到了结婚的年龄,却还没有对象。工作了好多年,存折上前面有几次存入的记录,后面全是支出的数字。之前一腔热血挥洒在岗位上,换来了半身瘫软,现在躺尸在出租屋里,也是觉得理所应当。不能再想东想西,琢磨着跳槽了。该起床洗漱吃点东西去上班了,不然下个月的房租还没有着落呢。谈情说爱也是要不少的花销
48Days-Day03 | 删除公共字符,两个链表的第一个公共结点,mari和shiny
TinaAmber
笔试训练48Days链表java算法
删除公共字符删除公共字符_牛客题霸_牛客网算法思路直接哈希,把第二个字符塞集合里面,遍历第一个,只要在集合里面有的就跳过代码importjava.util.HashSet;importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scannerscan=newScanner(System.in);Strin
面试实战,问题一,讲一下Springboot的作用
SpringBoot框架的主要作用和功能SpringBoot是由Pivotal团队开发的一个开源Java框架,旨在显著简化基于Spring框架的应用程序开发过程。它通过提供一系列自动化工具和约定,帮助开发者快速构建独立、生产就绪的应用程序。下面我将逐步介绍其主要作用和核心功能,确保回答清晰易懂。主要作用简化Spring应用程序开发:SpringBoot的核心目标是降低Spring框架的入门门槛和配
你的孩子要不要上亲子班?
超群老师
又到招生季,今年秋季我们将要迎接一百多位新生,这个数字不断被刷新,孩子越来越多,对幼儿园来说并非好事,对管理者来说更是压力重重。为了这帮小萌娃,能够很顺利的度过分离焦虑,我园在多年前就尝试在未正式开学前,也就在5、6、7三个月的周末开设亲子班(即由家长陪同孩子在周末参加1个小时的游戏活动、美工活动、体能游戏等)。新生8月16日就提前入园,第一天孩子离开父母在幼儿园呆一个小时,第二天呆半天,吃完中餐
Operators功能介绍
天高云淡_fa55
Operators(运算)1.()+(),计算两个数字相加的结果执行下面的脚本,小猫会说“7”2.()-(),计算两个数字相减的结果3.()*(),计算两个数字相乘的结果4.()/(),计算两个数字相除的结果*试一试,5/0看看能得到什么结果?5.pickrandom1to10,从1到10之间随机取一个数字,最小值是1,最大值是106.()(),判断左边的数字是否大于右边的数字9.()and(),
面试挂在阿里,庆幸拿到网易offer,一位三年Java岗面试总,细节如下
小迁不秃头
前言15年毕业到现在有三年多了,最近去面试了阿里集团(菜鸟网络,蚂蚁金服),网易,滴滴,点我达,最终收到点我达,网易offer,蚂蚁金服二面挂掉,菜鸟网络一个月了还在流程中...最终有幸去了网易。但是要特别感谢点我达的领导及HR,真的非常非常好,很感谢他们一直的关照和指导。面试整体事项1.简历要准备好,联系方式一定要正确清晰醒目,项目经历按照时间倒序阐述,注意描述自己在项目中承担的职责,简历的模板
网剧《夜空中最闪亮的星》大结局了
骁骁木鱼
终于看完了这部剧,还是和从前一样,想到之后又少了一部剧可以追就不爽,而且结局虽然是happyend,但是总是伴随着淡淡的忧伤在其中。图片发自App看这部剧我最大的改变大概就是对黄子韬路转粉了,全程开着弹幕看剧,一直有人说剧里的男主郑柏旭,就是现实世界里的黄子韬,如果是的话,我想我是粉没错了,因为我粉上了剧里的男主郑柏旭,在他努力坚持自己梦想的时候,在他努力做音乐的时候,在他和爸爸说我不会和你吵架的
假冒朱民!通达OA社科院朱民ST-balance项目就是假的,被骗亏损真相揭秘,亲身亏损经历
正义青天
通达OA社科院朱民ST-balance项目不正规——杀猪盘不能提现投票骗局曝光!随着互联网的普及,数字经济蓬勃发展,各种线上平台如雨后春笋般涌现。然而,在这些看似繁荣的平台中,不乏一些黑平台,它们以欺诈手段骗取用户的财产,给人们的财产安全带来严重威胁!因此,我们有必要提高警惕,防范黑平台诈骗。针对网上素未谋面的牛散大咖,经济学家等推荐网上投资理财、数字经济,数字体育市场,人工智能项目,数字低碳,慈
第六届研究所操盘群老姜(姜新宁)算力3.0云端算个靠谱吗?别再被洗脑了赶紧止损!
昌龙律法
这年头,你不理财,财不理你。理财方式有很多,不能投资的只有一种:骗人的。近期,我们接到多起网络投资理财被骗的案情,而每一宗案情都有相似之处,那就是:事主都是加入了某个理财投资微信群,然后通过群里的“投资理财专家”的“指点”,到某个投资平台进行投资理财,随后再用技术手段让所有的投资的钱有去无回。商小信第六届研究所操盘群老姜(姜新宁)算力3.0,第六届【研究所】圆梦反击战(分仓方案)数字经济算力大赛骗
夜思:今日感悟10.21
三叔青年
1.人生最大的痛苦莫过于梦醒时发现无路可走。——鲁迅《娜拉走后怎样》2.人生的许多大困难,只要活着,没有什么是解决不了的,时间和智慧而已。——三毛《亲爱的三毛》3.百转千回都不能同你讲,水有愁,水自哀,水愿意载你。——卞之琳4.人若是看透了自己,便不会小看别人。——老舍《骆驼祥子》5.人生如戏,角色早就定了,有人永远是打手,有人永远挨打。——余秋雨《吾家小史》6.“师父,可我觉得淡泊名利很酷啊。”
2024年九大返利app排行榜,全网佣金超高的返利平台推荐九款
氧券导师果果
2024年九大返利App排行榜,全网佣金超高的返利平台推荐在数字时代,返利平台成为了消费者和商家之间的重要桥梁。它们不仅为消费者提供了丰厚的返利,还为商家带来了大量流量。本文为您推荐2024年九大返利App排行榜,让您轻松找到全网佣金超高的返利平台。十大排行榜最高返利软件APP——【氧券APP】一、氧券氧券的口号是“返利就用氧券”,它强调没有上级赚差价,直接为用户提供商家和消费者之间的综合优惠券返
iOS http封装
374016526
ios服务器交互http网络请求
程序开发避免不了与服务器的交互,这里打包了一个自己写的http交互库。希望可以帮到大家。
内置一个basehttp,当我们创建自己的service可以继承实现。
KuroAppBaseHttp *baseHttp = [[KuroAppBaseHttp alloc] init];
[baseHttp setDelegate:self];
[baseHttp
lolcat :一个在 Linux 终端中输出彩虹特效的命令行工具
brotherlamp
linuxlinux教程linux视频linux自学linux资料
那些相信 Linux 命令行是单调无聊且没有任何乐趣的人们,你们错了,这里有一些有关 Linux 的文章,它们展示着 Linux 是如何的有趣和“淘气” 。
在本文中,我将讨论一个名为“lolcat”的小工具 – 它可以在终端中生成彩虹般的颜色。
何为 lolcat ?
Lolcat 是一个针对 Linux,BSD 和 OSX 平台的工具,它类似于 cat 命令,并为 cat
MongoDB索引管理(1)——[九]
eksliang
mongodbMongoDB管理索引
转载请出自出处:http://eksliang.iteye.com/blog/2178427 一、概述
数据库的索引与书籍的索引类似,有了索引就不需要翻转整本书。数据库的索引跟这个原理一样,首先在索引中找,在索引中找到条目以后,就可以直接跳转到目标文档的位置,从而使查询速度提高几个数据量级。
不使用索引的查询称
Informatica参数及变量
18289753290
Informatica参数变量
下面是本人通俗的理解,如有不对之处,希望指正 info参数的设置:在info中用到的参数都在server的专门的配置文件中(最好以parma)结尾 下面的GLOBAl就是全局的,$开头的是系统级变量,$$开头的变量是自定义变量。如果是在session中或者mapping中用到的变量就是局部变量,那就把global换成对应的session或者mapping名字。
[GLOBAL] $Par
python 解析unicode字符串为utf8编码字符串
酷的飞上天空
unicode
php返回的json字符串如果包含中文,则会被转换成\uxx格式的unicode编码字符串返回。
在浏览器中能正常识别这种编码,但是后台程序却不能识别,直接输出显示的是\uxx的字符,并未进行转码。
转换方式如下
>>> import json
>>> q = '{"text":"\u4
Hibernate的总结
永夜-极光
Hibernate
1.hibernate的作用,简化对数据库的编码,使开发人员不必再与复杂的sql语句打交道
做项目大部分都需要用JAVA来链接数据库,比如你要做一个会员注册的 页面,那么 获取到用户填写的 基本信后,你要把这些基本信息存入数据库对应的表中,不用hibernate还有mybatis之类的框架,都不用的话就得用JDBC,也就是JAVA自己的,用这个东西你要写很多的代码,比如保存注册信
SyntaxError: Non-UTF-8 code starting with '\xc4'
随便小屋
python
刚开始看一下Python语言,传说听强大的,但我感觉还是没Java强吧!
写Hello World的时候就遇到一个问题,在Eclipse中写的,代码如下
'''
Created on 2014年10月27日
@author: Logic
'''
print("Hello World!");
运行结果
SyntaxError: Non-UTF-8
学会敬酒礼仪 不做酒席菜鸟
aijuans
菜鸟
俗话说,酒是越喝越厚,但在酒桌上也有很多学问讲究,以下总结了一些酒桌上的你不得不注意的小细节。
细节一:领导相互喝完才轮到自己敬酒。敬酒一定要站起来,双手举杯。
细节二:可以多人敬一人,决不可一人敬多人,除非你是领导。
细节三:自己敬别人,如果不碰杯,自己喝多少可视乎情况而定,比如对方酒量,对方喝酒态度,切不可比对方喝得少,要知道是自己敬人。
细节四:自己敬别人,如果碰杯,一
《创新者的基因》读书笔记
aoyouzi
读书笔记《创新者的基因》
创新者的基因
创新者的“基因”,即最具创意的企业家具备的五种“发现技能”:联想,观察,实验,发问,建立人脉。
第一部分破坏性创新,从你开始
第一章破坏性创新者的基因
如何获得启示:
发现以下的因素起到了催化剂的作用:(1) -个挑战现状的问题;(2)对某项技术、某个公司或顾客的观察;(3) -次尝试新鲜事物的经验或实验;(4)与某人进行了一次交谈,为他点醒
表单验证技术
百合不是茶
JavaScriptDOM对象String对象事件
js最主要的功能就是验证表单,下面是我对表单验证的一些理解,贴出来与大家交流交流 ,数显我们要知道表单验证需要的技术点, String对象,事件,函数
一:String对象;通常是对字符串的操作;
1,String的属性;
字符串.length;表示该字符串的长度;
var str= "java"
web.xml配置详解之context-param
bijian1013
javaservletweb.xmlcontext-param
一.格式定义:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>contextConfigLocationValue></param-value>
</context-param>
作用:该元
Web系统常见编码漏洞(开发工程师知晓)
Bill_chen
sqlPHPWebfckeditor脚本
1.头号大敌:SQL Injection
原因:程序中对用户输入检查不严格,用户可以提交一段数据库查询代码,根据程序返回的结果,
获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
本质:
对于输入检查不充分,导致SQL语句将用户提交的非法数据当作语句的一部分来执行。
示例:
String query = "SELECT id FROM users
【MongoDB学习笔记六】MongoDB修改器
bit1129
mongodb
本文首先介绍下MongoDB的基本的增删改查操作,然后,详细介绍MongoDB提供的修改器,以完成各种各样的文档更新操作 MongoDB的主要操作
show dbs 显示当前用户能看到哪些数据库
use foobar 将数据库切换到foobar
show collections 显示当前数据库有哪些集合
db.people.update,update不带参数,可
提高职业素养,做好人生规划
白糖_
人生
培训讲师是成都著名的企业培训讲师,他在讲课中提出的一些观点很新颖,在此我收录了一些分享一下。注:讲师的观点不代表本人的观点,这些东西大家自己揣摩。
1、什么是职业规划:职业规划并不完全代表你到什么阶段要当什么官要拿多少钱,这些都只是梦想。职业规划是清楚的认识自己现在缺什么,这个阶段该学习什么,下个阶段缺什么,又应该怎么去规划学习,这样才算是规划。
国外的网站你都到哪边看?
bozch
技术网站国外
学习软件开发技术,如果没有什么英文基础,最好还是看国内的一些技术网站,例如:开源OSchina,csdn,iteye,51cto等等。
个人感觉如果英语基础能力不错的话,可以浏览国外的网站来进行软件技术基础的学习,例如java开发中常用的到的网站有apache.org 里面有apache的很多Projects,springframework.org是spring相关的项目网站,还有几个感觉不错的
编程之美-光影切割问题
bylijinnan
编程之美
package a;
public class DisorderCount {
/**《编程之美》“光影切割问题”
* 主要是两个问题:
* 1.数学公式(设定没有三条以上的直线交于同一点):
* 两条直线最多一个交点,将平面分成了4个区域;
* 三条直线最多三个交点,将平面分成了7个区域;
* 可以推出:N条直线 M个交点,区域数为N+M+1。
关于Web跨站执行脚本概念
chenbowen00
Web安全跨站执行脚本
跨站脚本攻击(XSS)是web应用程序中最危险和最常见的安全漏洞之一。安全研究人员发现这个漏洞在最受欢迎的网站,包括谷歌、Facebook、亚马逊、PayPal,和许多其他网站。如果你看看bug赏金计划,大多数报告的问题属于 XSS。为了防止跨站脚本攻击,浏览器也有自己的过滤器,但安全研究人员总是想方设法绕过这些过滤器。这个漏洞是通常用于执行cookie窃取、恶意软件传播,会话劫持,恶意重定向。在
[开源项目与投资]投资开源项目之前需要统计该项目已有的用户数
comsci
开源项目
现在国内和国外,特别是美国那边,突然出现很多开源项目,但是这些项目的用户有多少,有多少忠诚的粉丝,对于投资者来讲,完全是一个未知数,那么要投资开源项目,我们投资者必须准确无误的知道该项目的全部情况,包括项目发起人的情况,项目的维持时间..项目的技术水平,项目的参与者的势力,项目投入产出的效益.....
oracle alert log file(告警日志文件)
daizj
oracle告警日志文件alert log file
The alert log is a chronological log of messages and errors, and includes the following items:
All internal errors (ORA-00600), block corruption errors (ORA-01578), and deadlock errors (ORA-00060)
关于 CAS SSO 文章声明
denger
SSO
由于几年前写了几篇 CAS 系列的文章,之后陆续有人参照文章去实现,可都遇到了各种问题,同时经常或多或少的收到不少人的求助。现在这时特此说明几点:
1. 那些文章发表于好几年前了,CAS 已经更新几个很多版本了,由于近年已经没有做该领域方面的事情,所有文章也没有持续更新。
2. 文章只是提供思路,尽管 CAS 版本已经发生变化,但原理和流程仍然一致。最重要的是明白原理,然后
初二上学期难记单词
dcj3sjt126com
englishword
lesson 课
traffic 交通
matter 要紧;事物
happy 快乐的,幸福的
second 第二的
idea 主意;想法;意见
mean 意味着
important 重要的,重大的
never 从来,决不
afraid 害怕 的
fifth 第五的
hometown 故乡,家乡
discuss 讨论;议论
east 东方的
agree 同意;赞成
bo
uicollectionview 纯代码布局, 添加头部视图
dcj3sjt126com
Collection
#import <UIKit/UIKit.h>
@interface myHeadView : UICollectionReusableView
{
UILabel *TitleLable;
}
-(void)setTextTitle;
@end
#import "myHeadView.h"
@implementation m
N 位随机数字串的 JAVA 生成实现
FX夜归人
javaMath随机数Random
/**
* 功能描述 随机数工具类<br />
* @author FengXueYeGuiRen
* 创建时间 2014-7-25<br />
*/
public class RandomUtil {
// 随机数生成器
private static java.util.Random random = new java.util.R
Ehcache(09)——缓存Web页面
234390216
ehcache页面缓存
页面缓存
目录
1 SimplePageCachingFilter
1.1 calculateKey
1.2 可配置的初始化参数
1.2.1 cach
spring中少用的注解@primary解析
jackyrong
primary
这次看下spring中少见的注解@primary注解,例子
@Component
public class MetalSinger implements Singer{
@Override
public String sing(String lyrics) {
return "I am singing with DIO voice
Java几款性能分析工具的对比
lbwahoo
java
Java几款性能分析工具的对比
摘自:http://my.oschina.net/liux/blog/51800
在给客户的应用程序维护的过程中,我注意到在高负载下的一些性能问题。理论上,增加对应用程序的负载会使性能等比率的下降。然而,我认为性能下降的比率远远高于负载的增加。我也发现,性能可以通过改变应用程序的逻辑来提升,甚至达到极限。为了更详细的了解这一点,我们需要做一些性能
JVM参数配置大全
nickys
jvm应用服务器
JVM参数配置大全
/usr/local/jdk/bin/java -Dresin.home=/usr/local/resin -server -Xms1800M -Xmx1800M -Xmn300M -Xss512K -XX:PermSize=300M -XX:MaxPermSize=300M -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=5 -
搭建 CentOS 6 服务器(14) - squid、Varnish
rensanning
varnish
(一)squid
安装
# yum install httpd-tools -y
# htpasswd -c -b /etc/squid/passwords squiduser 123456
# yum install squid -y
设置
# cp /etc/squid/squid.conf /etc/squid/squid.conf.bak
# vi /etc/
Spring缓存注解@Cache使用
tom_seed
spring
参考资料
http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-cache/
http://swiftlet.net/archives/774
缓存注解有以下三个:
@Cacheable @CacheEvict @CachePut
dom4j解析XML时出现"java.lang.noclassdeffounderror: org/jaxen/jaxenexception"错误
xp9802
java.lang.NoClassDefFoundError: org/jaxen/JaxenExc
关键字: java.lang.noclassdeffounderror: org/jaxen/jaxenexception
使用dom4j解析XML时,要快速获取某个节点的数据,使用XPath是个不错的方法,dom4j的快速手册里也建议使用这种方式
执行时却抛出以下异常:
Exceptio