- 解决:Python通过OpenAI调用大模型API超时问题
-米兰的小铁匠
pythonlinux开发语言
业务中有时需要Python通过OpenAI调用大模型API进行问答,通过pip命令安装OpenAI:pipinstallopenai-ihttps://pypi.tuna.tsinghua.edu.cn/simple以Qwen2.5-VL-72B-Instruct为例,代码如下:fromopenaiimportOpenAI#初始化OpenAI客户端client=OpenAI(api_key='',
- 在python中安装geohash库
pip安装使用镜像网站安装pipinstall-iGeohashhttp://mirrors.aliyun.com/pypi/simple报错:CannotdeterminearchiveformatofC:\Users\Zz\AppData\Local\Temp\pip-req-build-t35bzb_f解决办法:重新安装,添加信任pipinstall-ihttps://pypi.tuna.t
- Java数据结构和算法-希尔排序[移位式]算法实现
Shaw_Young
packagecom.young.sort;importjava.text.SimpleDateFormat;importjava.util.Arrays;importjava.util.Date;publicclassShellSort{publicstaticvoidmain(String[]args){//int[]arr={8,9,1,7,2,3,5,4,6,0};//shellSort2
- snmp简介
new_abc
智能路由器网络
一、SNMP的核心作用SNMP(SimpleNetworkManagementProtocol,简单网络管理协议)是网络管理的核心协议,主要用于监控、管理、告警网络设备(如路由器、交换机、服务器、打印机等),其核心价值在于标准化、跨平台、易操作。根据,其主要作用包括:设备监控:远程获取设备的状态信息(如CPU/内存使用率、接口流量、温度)、配置参数(如IP地址、路由表);故障告警:设备检测到异常(
- 【笔记】加速 uv 安装:系统环境变量配置国内镜像源
AITechLab
运维PyCharm笔记uvwindows人工智能python
使用Conda工具链创建UV本地虚拟环境全记录——基于《Python多版本与开发环境治理架构设计》-CSDN博客命令行创建UV环境及本地化实战演示——基于《Python多版本与开发环境治理架构设计》的最佳实践-CSDN博客加速uv包安装:Windows系统环境变量配置国内镜像源一、为什么要配置环境变量加速uvuv作为高效Python包管理工具,默认从官方PyPI源(Simpleindex)拉取依赖
- AWS云S3+Glue+EMRonEC2+ReadShift
俊俏的萌妹纸
大数据aws人工智能大数据
AmazonS3(AmazonSimpleStorageService)即亚马逊简单存储服务,是AWS(AmazonWebServices)提供的一种对象存储服务,在大数据领域被广泛使用。以下是关于它的详细介绍:基本概念AmazonS3主要用于存储和检索任意数量的数据。这里的数据以对象(Object)的形式存在,每个对象由数据本身、键(Key,类似于文件名,用于唯一标识对象)和元数据(Metada
- Centos7安装RabbitMq
深夜面包
Linuxrabbitmqcentoslinux
安装RabbitMq安装依赖环境C++编译yum-yinstallmakegccgcc-c++kernel-develm4ncurses-developenssl-develunixODBCunixODBC-develhttpdpython-simplejson安装erlang语言#下载erlang相应的压缩包wgethttp://erlang.org/download/otp_src_22.3.
- ThreadLocal--ThreadLocal介绍
你我约定有三
jvm数据库java后端开发语言tomcat
一、什么是ThreadLocal?ThreadLocal是Java提供的一种线程本地变量机制;每个线程都维护一份自己的副本;它不用于多个线程共享变量,而是用于每个线程独立维护自己的变量副本;常用于:用户上下文、数据库连接、格式化对象(如SimpleDateFormat)、日志跟踪等场景。二、ThreadLocal的基本用法ThreadLocallocal=newThreadLocal>{Objec
- 参考文献 字体 latex_字体参考| HTML
cumtv80668
linuxpythonhtmlwindowsjava
参考文献字体latexFontsarebasicallyplatformeddependentorinsimplewords,wecansaythattheyarespecifictotheplatform.Wewillhavedifferentlookandfeelofawebpageondifferentmachinesrunningondifferentoperatingsystemssuc
- 关于pip安装opencv库等常用库超时的解决办法
小菜鸡1145
pipopencv人工智能
平时在使用pip安装库时常常过慢导致安装失败或者等待时间过长,每次都得去网上找清华源地址,在这里记录一下方便以后直接使用。-ihttps://pypi.tuna.tsinghua.edu.cn/simple直接在所装库的后面加上这段,比如:pipinstallopencv-contrib-python-ihttps://pypi.tuna.tsinghua.edu.cn/simple部分地区清华源
- 【FFmpeg编程进阶】(17)解码packet数据 try_decode_frame() 代码分析
小馋喵星人
音频.视频.图像#FFmpeg
【FFmpeg编程进阶】(17)解码packet数据try_decode_frame代码分析一、try_decode_frame()二、解码一帧数据avcodec_send_packet(avctx,&pkt)2.1decode_simple_receive_frame(avctx,frame)三、接收解码后的数据avcodec_receive_frame(avctx,frame)四、解码字幕数据
- 快速安装playwright python
小小侠i
测试工具安装python开发语言
快速安装playwrightpython首先:注意本机的python版本必须大于3.7下面是安装步骤的提速方法第一步pipinstallplaywright-ihttps://mirrors.aliyun.com/pypi/simple/使用阿里源,提高下载速度。第二步python-mplaywrightinstall(ThisinstallsbrowserbinariesforChromium,
- Redis常用数据类型和它们的底层数据结构
Redis常用数据类型有8种:String、Hash、List、Set、Zset、HyperLogLog、Bitmap和Geospatial,其中前面5种是最常用的。1、String(字符串)String是最基本的数据类型,每个键对应一个值,可以是文本、数字、二进制数据等。底层数据结构:使用SDS(SimpleDynamicString,简单动态字符串);解决了C语言字符串(以空字符\0结尾)的不
- Python常用医疗AI库以及案例解析(场景化进阶版)
Allen_Lyb
pythonpython人工智能开发语言健康医疗
框架应用拓扑图用例MONAISimpleITKBiopythonscanpyPyTorchscikit-learnLLaVA-MedTransformersFHIRFastAPIFlowerPySyft医学图像处理生物信息学模型训练多模态分析数据交换隐私保护部署应用医学图像处理
- wsgi-未完待续
不_一
基于python自定义wsgi框架importurllib.parseimporthttp.clientfromwsgiref.headersimportHeadersfromwsgiref.simple_serverimportmake_serverimportreclassRequest:"""实现对request的封装."""def__init__(self,environ):self.en
- Qt下使用SDL库渲染图像
米优
Qtqt开发语言SDL
SDL库简介SDL(SimpleDirectMediaLayer)视频渲染库是一个跨平台的多媒体开发框架,专注于提供高效的2D图形渲染与视频播放能力。关键API介绍1.SDL_CreateWindow()承载渲染内容的显示窗口。2.SDL_CreateRenderer()管理渲染管线,控制绘制命令(支持硬件加速/软件渲染)。3.SDL_CreateTexture()存储图像数据(支持流式更新),作
- 学习笔记56-(已解决)pip指令下载超时Read timed out错误
李卓璐
报错整理pip
(已解决)pip指令下载超时Readtimedout错误下了一上午卡到自闭然后查了很多帖子,最后更换国内安装源和设置超时时间可以解决。在pip3installXXX命令的后面加上–default-timeout=100-ihttps://pypi.tuna.tsinghua.edu.cn/simple
- MySQL高可用集群SSRK:5步打造无感知故障切换
墨瑾轩
一起学学数据库【一】mysqladb数据库
关注墨瑾轩,带你探索编程的奥秘!超萌技术攻略,轻松晋级编程高手技术宝库已备好,就等你来挖掘订阅墨瑾轩,智趣学习不孤单即刻启航,编程之旅更有趣大家好!今天我们要聊的是MySQL高可用集群的一种高级形态——SSRK(SuperSimpleandReliableKeepalived)。SSRK集群结合了InnoDBCluster、MySQLRouter和Keepalived,不仅提供了高可用性,还实现了
- dubbo的简单示例
yinhaijun
构建过程dubbo服务有服务方provider和消费方consumer,整个项目用tomcat做容器,在创建demo之前请先安装zookeeper项目结构如图image.pngimage.pngimage.png主pom.xml4.0.0com.haijunyindubbodemo-simple-parentpom1.0-SNAPSHOTdubbodemo-simple-providerdubbo
- uni 读取网络json_uni-app怎么使用路由守卫,并且路由配置和pages.json中只写一套...
天天很向上
uni读取网络json
背景uni-app本身没有路由,无法使用路由守卫。那么有这么一个功能:当某些页面需要登录,进入之前需要判断是否登录,如果没有登录则跳转到登录页。可以封装公共方法或混入实现,但是不太优雅,这时使用路由守卫实在是太方便了!幸好,插件uni-simple-router给我们提供了1.uni-simple-router使用方法uni-simple-router是专为uni-app打造的路由管理器。它保留了
- 2021-09-23
潇洒二爷
世界各地的皇家结婚礼服,有的简约大方,有的设计非常复杂——3Simpleandcomplicatedroyalweddingdressesworldwide瑞典王妃索菲娅(PrincessSofia),选择了一件网眼状的婚纱,设计师是瑞典人伊达·约斯特德特(IdaSjöstedt)。8瑞典王妃索菲娅瑞典王子卡尔·菲利普与王妃索菲娅于2015年结婚。瑞典王子卡尔·菲利普与王妃索菲娅文莱(Brunei
- Grafana Loki Helm Chart从2.x升级到3.0的完整指南
芮川琨Jack
GrafanaLokiHelmChart从2.x升级到3.0的完整指南前言GrafanaLoki3.0版本的HelmChart是一个重要的里程碑版本,它整合了之前两个独立的Chart(loki和loki-simple-scalable)为一个统一的解决方案。本文将详细介绍如何从2.x版本平滑升级到3.0版本,帮助用户理解升级过程中的关键变化和注意事项。升级前的准备工作在进行任何升级操作前,请务必:
- 全面解析阿里巴巴 Seata:微服务架构下的分布式事务解决方案(AT模式)
要阿尔卑斯吗.
架构微服务分布式
在微服务架构盛行的今天,系统被拆解成多个独立服务,每个服务对应独立的数据库。这种“服务自治”的设计虽然提高了系统可维护性和扩展性,却带来了新的难题——分布式事务一致性问题。为了保障跨服务、跨库操作的原子性,阿里巴巴开源了一个优秀的解决方案:Seata(SimpleExtensibleAutonomousTransactionArchitecture)。本文将从背景动因、整体架构、核心原理、事务模型
- AWS Certified Cloud Practitioner 认证考试总结
DEMI0815
AWSaws云计算
AWSCloudTrailLogs对您的AWS账户进行监管、合规性、操作审计和风险审计。AWSCloudTrail可用于记录您的AWS账户的AWSAPI调用和其他活动,并将记录的信息保存到您选择的AmazonSimpleStorageService(AmazonS3)存储桶中的日志文件中。默认情况下,CloudTrail传输到S3存储桶的日志文件使用具有AmazonS3托管密钥的服务器端加密(SS
- MJExtension
AlanGe
MJExtension:https://github.com/CoderMJLee/MJExtensionExamples【示例】AddMJKeyValueprotocoltoyourmodelifneeded【如果有需要,请在模型中加入MJKeyValue协议】ThemostsimpleJSON->Model【最简单的字典转模型】typedefenum{SexMale,SexFemale}Sex
- pip路径设置
更改pip默认下载路径Windows系统:直接在user目录中创建一个pip目录,如:C:\Users\xx\pip,并新建文件pip.ini文件,pip文件内容如下:[global]index-url=https://pypi.tuna.tsinghua.edu.cn/simple[install]trusted-host=mirrors.aliyun.com引用:https://www.cnb
- python设置国内源
twilightdream
python
mkdir.pipcd.piptouchpip.confnanopip.conf贴上[global]trusted-host=mirrors.aliyun.comindex-url=http://mirrors.aliyun.com/pypi/simple
- Python库安装国内源
奔跑的石头_
pythonpythonAI编程
关注公众号“码字读书会”,了解最新消息。Python国内源包括企业和高校机构打不得开源软件包资源。著名的有阿里云、华为云、清华。个人常用的有清华源临时使用命令如下:pipinstall-ittps://pypi.tuna.tsinghua.edu.cn/simple包名
- 神经网络项目--基于FPGA的AI简易项目(1-9图片数字识别)
霖12
深度学习pytorch神经网络fpga开发人工智能机器学习
1.训练MNIST模型importtorch#导入pytorch核心库importtorch.nnasnn#神经网络模块,如卷积层importtorch.optimasoptim#优化器fromtorchvisionimportdatasets,transforms#数据集与图像预处理工具#定义CNN模型classSimpleCNN(nn.Module):#PyTorch库中所有神经网络的“基础模
- 2021-10-09
潇洒二爷
世界各地的皇家结婚礼服,有的简约大方,有的设计非常复杂——5Simpleandcomplicatedroyalweddingdressesworldwide伊丽莎白女王的孙女,扎拉·菲利普斯(ZaraPhillips),与英国橄榄球运动员迈克·廷道尔(MikeTindall)结婚的时候,穿了一件象牙色丝绸和公爵夫人缎制作的长裙,设计者是皇家女装设计师斯图尔特·帕尔文(StewartParvin)。
- Java实现的基于模板的网页结构化信息精准抽取组件:HtmlExtractor
yangshangchuan
信息抽取HtmlExtractor精准抽取信息采集
HtmlExtractor是一个Java实现的基于模板的网页结构化信息精准抽取组件,本身并不包含爬虫功能,但可被爬虫或其他程序调用以便更精准地对网页结构化信息进行抽取。
HtmlExtractor是为大规模分布式环境设计的,采用主从架构,主节点负责维护抽取规则,从节点向主节点请求抽取规则,当抽取规则发生变化,主节点主动通知从节点,从而能实现抽取规则变化之后的实时动态生效。
如
- java编程思想 -- 多态
百合不是茶
java多态详解
一: 向上转型和向下转型
面向对象中的转型只会发生在有继承关系的子类和父类中(接口的实现也包括在这里)。父类:人 子类:男人向上转型: Person p = new Man() ; //向上转型不需要强制类型转化向下转型: Man man =
- [自动数据处理]稳扎稳打,逐步形成自有ADP系统体系
comsci
dp
对于国内的IT行业来讲,虽然我们已经有了"两弹一星",在局部领域形成了自己独有的技术特征,并初步摆脱了国外的控制...但是前面的路还很长....
首先是我们的自动数据处理系统还无法处理很多高级工程...中等规模的拓扑分析系统也没有完成,更加复杂的
- storm 自定义 日志文件
商人shang
stormclusterlogback
Storm中的日志级级别默认为INFO,并且,日志文件是根据worker号来进行区分的,这样,同一个log文件中的信息不一定是一个业务的,这样就会有以下两个需求出现:
1. 想要进行一些调试信息的输出
2. 调试信息或者业务日志信息想要输出到一些固定的文件中
不要怕,不要烦恼,其实Storm已经提供了这样的支持,可以通过自定义logback 下的 cluster.xml 来输
- Extjs3 SpringMVC使用 @RequestBody 标签问题记录
21jhf
springMVC使用 @RequestBody(required = false) UserVO userInfo
传递json对象数据,往往会出现http 415,400,500等错误,总结一下需要使用ajax提交json数据才行,ajax提交使用proxy,参数为jsonData,不能为params;另外,需要设置Content-type属性为json,代码如下:
(由于使用了父类aaa
- 一些排错方法
文强chu
方法
1、java.lang.IllegalStateException: Class invariant violation
at org.apache.log4j.LogManager.getLoggerRepository(LogManager.java:199)at org.apache.log4j.LogManager.getLogger(LogManager.java:228)
at o
- Swing中文件恢复我觉得很难
小桔子
swing
我那个草了!老大怎么回事,怎么做项目评估的?只会说相信你可以做的,试一下,有的是时间!
用java开发一个图文处理工具,类似word,任意位置插入、拖动、删除图片以及文本等。文本框、流程图等,数据保存数据库,其余可保存pdf格式。ok,姐姐千辛万苦,
- php 文件操作
aichenglong
PHP读取文件写入文件
1 写入文件
@$fp=fopen("$DOCUMENT_ROOT/order.txt", "ab");
if(!$fp){
echo "open file error" ;
exit;
}
$outputstring="date:"." \t tire:".$tire."
- MySQL的btree索引和hash索引的区别
AILIKES
数据结构mysql算法
Hash 索引结构的特殊性,其 检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。
可能很多人又有疑问了,既然 Hash 索引的效率要比 B-Tree 高很多,为什么大家不都用 Hash 索引而还要使用 B-Tree 索引呢
- JAVA的抽象--- 接口 --实现
百合不是茶
抽象 接口 实现接口
//抽象 类 ,方法
//定义一个公共抽象的类 ,并在类中定义一个抽象的方法体
抽象的定义使用abstract
abstract class A 定义一个抽象类 例如:
//定义一个基类
public abstract class A{
//抽象类不能用来实例化,只能用来继承
//
- JS变量作用域实例
bijian1013
作用域
<script>
var scope='hello';
function a(){
console.log(scope); //undefined
var scope='world';
console.log(scope); //world
console.log(b);
- TDD实践(二)
bijian1013
javaTDD
实践题目:分解质因数
Step1:
单元测试:
package com.bijian.study.factor.test;
import java.util.Arrays;
import junit.framework.Assert;
import org.junit.Before;
import org.junit.Test;
import com.bijian.
- [MongoDB学习笔记一]MongoDB主从复制
bit1129
mongodb
MongoDB称为分布式数据库,主要原因是1.基于副本集的数据备份, 2.基于切片的数据扩容。副本集解决数据的读写性能问题,切片解决了MongoDB的数据扩容问题。
事实上,MongoDB提供了主从复制和副本复制两种备份方式,在MongoDB的主从复制和副本复制集群环境中,只有一台作为主服务器,另外一台或者多台服务器作为从服务器。 本文介绍MongoDB的主从复制模式,需要指明
- 【HBase五】Java API操作HBase
bit1129
hbase
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.ha
- python调用zabbix api接口实时展示数据
ronin47
zabbix api接口来进行展示。经过思考之后,计划获取如下内容: 1、 获得认证密钥 2、 获取zabbix所有的主机组 3、 获取单个组下的所有主机 4、 获取某个主机下的所有监控项  
- jsp取得绝对路径
byalias
绝对路径
在JavaWeb开发中,常使用绝对路径的方式来引入JavaScript和CSS文件,这样可以避免因为目录变动导致引入文件找不到的情况,常用的做法如下:
一、使用${pageContext.request.contextPath}
代码” ${pageContext.request.contextPath}”的作用是取出部署的应用程序名,这样不管如何部署,所用路径都是正确的。
- Java定时任务调度:用ExecutorService取代Timer
bylijinnan
java
《Java并发编程实战》一书提到的用ExecutorService取代Java Timer有几个理由,我认为其中最重要的理由是:
如果TimerTask抛出未检查的异常,Timer将会产生无法预料的行为。Timer线程并不捕获异常,所以 TimerTask抛出的未检查的异常会终止timer线程。这种情况下,Timer也不会再重新恢复线程的执行了;它错误的认为整个Timer都被取消了。此时,已经被
- SQL 优化原则
chicony
sql
一、问题的提出
在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一。系统优化中一个很重要的方面就是SQL语句的优化。对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍,可见对于一个系统
- java 线程弹球小游戏
CrazyMizzz
java游戏
最近java学到线程,于是做了一个线程弹球的小游戏,不过还没完善
这里是提纲
1.线程弹球游戏实现
1.实现界面需要使用哪些API类
JFrame
JPanel
JButton
FlowLayout
Graphics2D
Thread
Color
ActionListener
ActionEvent
MouseListener
Mouse
- hadoop jps出现process information unavailable提示解决办法
daizj
hadoopjps
hadoop jps出现process information unavailable提示解决办法
jps时出现如下信息:
3019 -- process information unavailable3053 -- process information unavailable2985 -- process information unavailable2917 --
- PHP图片水印缩放类实现
dcj3sjt126com
PHP
<?php
class Image{
private $path;
function __construct($path='./'){
$this->path=rtrim($path,'/').'/';
}
//水印函数,参数:背景图,水印图,位置,前缀,TMD透明度
public function water($b,$l,$pos
- IOS控件学习:UILabel常用属性与用法
dcj3sjt126com
iosUILabel
参考网站:
http://shijue.me/show_text/521c396a8ddf876566000007
http://www.tuicool.com/articles/zquENb
http://blog.csdn.net/a451493485/article/details/9454695
http://wiki.eoe.cn/page/iOS_pptl_artile_281
- 完全手动建立maven骨架
eksliang
javaeclipseWeb
建一个 JAVA 项目 :
mvn archetype:create
-DgroupId=com.demo
-DartifactId=App
[-Dversion=0.0.1-SNAPSHOT]
[-Dpackaging=jar]
建一个 web 项目 :
mvn archetype:create
-DgroupId=com.demo
-DartifactId=web-a
- 配置清单
gengzg
配置
1、修改grub启动的内核版本
vi /boot/grub/grub.conf
将default 0改为1
拷贝mt7601Usta.ko到/lib文件夹
拷贝RT2870STA.dat到 /etc/Wireless/RT2870STA/文件夹
拷贝wifiscan到bin文件夹,chmod 775 /bin/wifiscan
拷贝wifiget.sh到bin文件夹,chm
- Windows端口被占用处理方法
huqiji
windows
以下文章主要以80端口号为例,如果想知道其他的端口号也可以使用该方法..........................1、在windows下如何查看80端口占用情况?是被哪个进程占用?如何终止等. 这里主要是用到windows下的DOS工具,点击"开始"--"运行",输入&
- 开源ckplayer 网页播放器, 跨平台(html5, mobile),flv, f4v, mp4, rtmp协议. webm, ogg, m3u8 !
天梯梦
mobile
CKplayer,其全称为超酷flv播放器,它是一款用于网页上播放视频的软件,支持的格式有:http协议上的flv,f4v,mp4格式,同时支持rtmp视频流格 式播放,此播放器的特点在于用户可以自己定义播放器的风格,诸如播放/暂停按钮,静音按钮,全屏按钮都是以外部图片接口形式调用,用户根据自己的需要制作 出播放器风格所需要使用的各个按钮图片然后替换掉原始风格里相应的图片就可以制作出自己的风格了,
- 简单工厂设计模式
hm4123660
java工厂设计模式简单工厂模式
简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式。是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。
- maven笔记
zhb8015
maven
跳过测试阶段:
mvn package -DskipTests
临时性跳过测试代码的编译:
mvn package -Dmaven.test.skip=true
maven.test.skip同时控制maven-compiler-plugin和maven-surefire-plugin两个插件的行为,即跳过编译,又跳过测试。
指定测试类
mvn test
- 非mapreduce生成Hfile,然后导入hbase当中
Stark_Summer
maphbasereduceHfilepath实例
最近一个群友的boss让研究hbase,让hbase的入库速度达到5w+/s,这可愁死了,4台个人电脑组成的集群,多线程入库调了好久,速度也才1w左右,都没有达到理想的那种速度,然后就想到了这种方式,但是网上多是用mapreduce来实现入库,而现在的需求是实时入库,不生成文件了,所以就只能自己用代码实现了,但是网上查了很多资料都没有查到,最后在一个网友的指引下,看了源码,最后找到了生成Hfile
- jsp web tomcat 编码问题
王新春
tomcatjsppageEncode
今天配置jsp项目在tomcat上,windows上正常,而linux上显示乱码,最后定位原因为tomcat 的server.xml 文件的配置,添加 URIEncoding 属性:
<Connector port="8080" protocol="HTTP/1.1"
connectionTi