- 搭建内网DNS服务器
小卓笔记
服务器linux运维
1.1实验目的在内网服务器可以实现使用域名进行上网主机角色系统IPdns-client客户端redhat9.5192.168.33.7dns-server域名解析服务器rocky9.5192.168.33.1001.2环境准备#rocky#安装net-toolsbash-completionvim(rocky未自带这些服务)[root@dns-server~]#dnfinstallnet-tool
- OctoTools:一个具有复杂推理可扩展工具的智体框架
三谷秋水
智能体大模型机器学习人工智能语言模型机器学习
25年2月来自斯坦福大学的论文“OctoTools:AnAgenticFrameworkwithExtensibleToolsforComplexReasoning”。解决复杂的推理任务可能涉及视觉理解、域知识检索、数值计算和多步骤推理。现有方法使用外部工具增强大语言模型(LLM),但仅限于专业领域、有限的工具类型或需要额外的训练数据。本文的OctoTools,是一个无需训练、用户友好且易于扩展的
- 安卓环境脚本
nb的码农
linux杂项linux
sudoapt-getinstalluuiduuid-devzlib1g-devliblz-devliblzo2-2liblzo2-devlzopgit-corecurlu-boot-toolsmtd-utilsandroid-tools-fsutilsopenjdk-8-jdkdevice-tree-compiler\gdiskm4libz-devgitgnupgflexbisongperfli
- python导包
樱木之
python开发语言
python导包在python导包中碰到了相对路径和绝对路径的问题,本文主要根据这两个方面就python导包问题进行讲解。本文目录:python导包三种方法python解释器加载包的路径参考:暂无。python导包三种方法三种导包方法及引用方法如下:#假设文件解释如下,我们在my_main.py文件中要加载tools.py中的print1()方法root|-my_main.py|-www|-ymz
- electron 源码下载与编译构
五一编程
学习交流electronjavascript前端webrtcc语言c++
electron源码下载与编译构建预先安装安装nodejs下载eletron构建工具:安装python构建Electron基本要求环境依赖交叉编译构建故障排查高级提示使用clang之外的其它编译器electron的depot_tools工具下载构建源码。这个工具是用nodejs写的,封装了chromium自身的depot_tools工具。非常方便易用。主要是electron在下载完chromium
- 光学工程师中年危机
光学设计培训
激光雷达光学设计zemax光学光学工程
一、技术能力突围:向高价值领域迁移瞄准增量市场激光雷达与自动驾驶:将光学设计经验迁移至激光雷达光路优化(如VCSEL阵列准直算法)、热稳定性补偿算法(解决车载环境温度漂移问题)15。AR/VR光学模组:参与超表面透镜(Metasurface)设计,结合波导与全息技术提升显示效率,掌握LightTools或LucidShape光场仿真37。强化算法能力光学-算法交叉技能:从
- Django 自定义用户表DRF实现simple-jwt详细说明。
写不出代码的程序员
djangopython后端
一、设计自定义用户表:user/models.py这里使用uuid4对id设置。classUUIDTools(object):returnuuid.uuid4().hexclassUser(AbstractBaseUser):id=models.UUIDField(primy_key=True,auto_created=True,default=UUIDTools.uuid4_hex,editab
- Port xxxxx is in use by another program. Either identify and stop that program, or start the server
李卓璐
报错整理服务器运维
端口被占用问题如何解决:1.安装netstatapt-getinstallnet-tools2.检测端口占用netstat-npl|grep"端口"3.根据PID杀死该进程kill-9xxxxx
- Thinkpad 电池设置 (Ubuntu)
CaspianSea
LinuxbatteryThinkpad
1.安装下面的包:sudoadd-apt-repositoryppa:linrunner/tlpsudoapt-getupdatesudoapt-getinstalltlptlp-rdwsudoapt-getinstalltp-smapi-dkmsacpi-call-tools2.执行sudogedit/etc/default/tlp在末尾加入:#Mainbattery(valuesin%)STA
- ArcGIS将Nodata区设置为0
月之圣痕
ArcEngine
两个栅格进行叠加,有时会有一部分没有数据,即用identify点击该区域,Value为NoData,而不是像其他非空区域一样有值。此时注意nodata区域要赋予0值,因为nodata+任何数=nodata,因此要采用条件查询函数将NoData的地方赋值为0。方法是ArcTools->SpatialAnalystTools->MapAlgebra->SingleOutputMapAlgebra。算法
- 创建 Tauri + Vue + Typescript + Vite + Less 应用
niuiic
rustvuevuetypescriptlessrust
更多分享内容可访问我的个人博客https://www.niuiic.top/更新:本文内容已不适用于最新版本,若遇到相同问题可以继续参考。要创建项目首先按https://tauri.studio/docs/getting-started/prerequisites/配置环境,然后参考https://github.com/niuiic/develop-tools中关于tauri的内容。项目创建流程直
- pythoneasyinstall安装第三方库_【Python使用】Python安装第三方包(easy_install和pip工具)...
不死鹰阿江
本文是对python的第三方包/模块的安装的说明,官方下载第三方包的地址为:https://pypi.org/。1.工具安装部署1.1setuptools安装部署(easy_install)easy_install是由PEAK(PythonEnterpriseApplicationKit)开发的setuptools包里带的一个命令,它用来自动地从http://pypi.python.org/sim
- 聊聊langchain4j的Tools(Function Calling)
langchain4j
序本文主要研究一下langchain4j的Tools(FunctionCalling)示例tool@Slf4jpublicclassWeatherTools{@Tool("Returnstheweatherforecastfortomorrowforagivencity")StringgetWeather(@P("Thecityforwhichtheweatherforecastshouldber
- Ubuntu 和Windows系统之间相互复制粘贴功能
川星弦
ubuntulinux运维
执行命令:sudoapt-getinstallopen-vm-tools-desktop重启后完成。
- blockly二次开发
刘阿去
目前有的问题1.文档少,主要是因为谷歌的网站上不去,2.BlocklyDevelopTools使用有问题,预览有问题,暂时无法解决.目前源码下载难度较大github下载速度慢,自己在gitee上弄了一份.https://gitee.com/liuaqu/blockly
- VMware中linux系统与主机win系统设置共享文件夹、安装VMware tools
鲁鲁在川
linux运维服务器
1.设置.虚拟机==》设置==硬件/选项==》共享文件夹==》总是启用总是启用为灰色,在虚拟机未开启其设置2.添加共享文件夹3..否存在/mnt/hgfs文件夹没有创建,有则提示sudomkdir/mnt/hgfs4.挂载共享文件夹!!挂载共享文件夹!!挂载共享文件夹!!下次启动虚拟机,还需要再填一次!!每次启用,每次挂载!!!!!!!!sudovmhgfs-fuse.host://mnt/hgf
- EEUI如何修改图标
十五001
问题解决javascript
iOS图标生成与替换1.生成图标使用在线工具:可以使用在线图标生成工具(如https://console.eeui.app/#/tools/icons)生成不同尺寸的图标。上传图片:上传一张1024x1024的PNG图片,工具会自动生成不同尺寸的图标文件。下载图标文件:下载生成的图标文件,通常会包含不同尺寸的图标资源。2.替换图标添加图标到项目:打开Xcode,选择项目中的Assets.xcass
- 使用SetupTools 管理你的项目打包工作
魔王阿卡纳兹
开源项目观察Python学习札记pythonsetuptools代码分发
Setuptools是一个用于Python的包管理工具,主要用于构建、打包和分发Python软件包。它是distutils的增强版,提供了更多的功能和灵活性,是Python包管理的核心模块之一。功能与特点依赖管理:Setuptools提供了强大的依赖管理功能,可以自动解析和安装软件包所需的依赖项。自动生成入口点:它能够自动发现并生成命令行脚本的入口点,例如将Python脚本转换为可执行文件。模块发
- 数字马力ai面试题
泠波
前端
有关前端工程化的工具前端工程化是指将前端开发过程中的各种任务自动化、流程化、标准化,以提高开发效率、代码质量和可维护性。在前端工程化中,通常会用到一些工具来辅助完成各种任务,比如构建、测试、部署等。以下是一些常用的前端工程化工具:1.**构建工具(BuildTools)**-**Webpack**:是一个非常流行的模块打包器,可以处理各种类型的文件,并且支持插件扩展。-**Rollup**:另一个
- MMD模型及动作一键完美导入UE5-Blender方案(三)
tangfuling1991
UE4移动端AndroidiOS入门ue5blenderMMD模型动作
1、下载并安装blender_mmd_tools插件1、下载并安装Blender,Blender,下载Blender3.6,下载太新的版本可能会跟blender_mmd_tools不匹配2、github下载blender_mmd_tools:https://github.com/UuuNyaa/blender_mmd_tools/3、Edit->Preference->Addons->Instal
- 聊聊langchain4j的Tools(Function Calling)
langchain4j
序本文主要研究一下langchain4j的Tools(FunctionCalling)示例tool@Slf4jpublicclassWeatherTools{@Tool("Returnstheweatherforecastfortomorrowforagivencity")StringgetWeather(@P("Thecityforwhichtheweatherforecastshouldber
- Python包管理不再头疼:uv工具快速上手
马岛
pythonuv开发语言
Python包管理生态中存在多种工具,如pip、pip-tools、poetry、conda等,各自具备一定功能。而今天介绍的uv是Astral公司推出的一款基于Rust编写的Python包管理工具,旨在成为“Python的Cargo”。它提供了快速、可靠且易用的包管理体验,在性能、兼容性和功能上都有出色表现,为Python项目的开发和管理带来了新的选择。1.为什么用uv与其他Python中的包管
- 【python】setuptools
Eternal-Student
Pythonpython开发语言
setuptools是Python的一个核心工具包,用于构建、打包和分发Python项目。它是Python生态系统中最重要的工具之一,主要用于定义项目的元数据(如名称、版本、依赖等)以及构建和安装过程。以下是关于setuptools的详细介绍:1.setuptools的主要功能setuptools提供了以下核心功能:项目元数据管理:定义项目的名称、版本、作者、描述、依赖等信息。通过setup()函
- 什么是yocto(理清yocto poky openembedded bitbake间关系)
口袋物联
TIAM62x平台从入门到精通系列yoctoyoctopokybitbakeopenembedded
一基本概念TheYoctoProjectisanopen-sourceprojectthatdeliversasetoftoolsthatcreateoperatingsystemimagesforembeddedLinuxsystems.PokyisthereferenceoperatingsystemdistributionbuiltwithYoctoProjecttools,andOpenE
- vscode 配置golang开发环境
Amber_37
vscodegolangide
vscode配置golang开发环境在go1.20环境中需要指定工具的安装版本goinstallgolang.org/x/tools/
[email protected]/go-delve/delve/cmd/
[email protected]使用goinsertorupdate安装工具会报错go版本太低,而很多时候为了项目稳定或风险太高,我们不太希望升级到go最新版解决办法:在S
- Ploly:如何在Excel中嵌入完全交互的Ploly图形?
潮易
excel
要在Excel中嵌入一个交互式的Poly图形,可以利用`ChartTools>Design>InsertChartfromData>PivotTable`功能来创建一个包含多个系列的数据透视表,并将其转换为柱状图或折线图等交互式图表。具体步骤如下:1.首先,打开你的Excel工作簿,并准备你想要嵌入Poly图的数据。2.将你的数据整理成表格的形式(假设数据列包括'Category'、'Value1
- 掌握Visual C++ 2019 Build Tools的高效开发方法
心言星愿
本文还有配套的精品资源,点击获取简介:VisualStudioBuildTools中的VisualC++2019BuildTools是针对C++开发的关键组件,提供了编译和构建项目的轻量级解决方案。本文详细介绍了VisualC++2019BuildTools的核心组件,如MSVC编译器、C++运行时库、WindowsSDK等,以及如何进行安装配置、使用场景、实践应用和最佳实践。通过本文的学习,读者
- Python --itertools中accumulate函数详细讲解
何等样仁
算法与数据结构python开发语言
1.1前言:本文将详细讲解itertools中的accumulate,accumulate函数可以在前缀和中运用,否则就需要每次移动的时候维护一个前缀和,大家如果不知道前缀和也可以先了解一下前缀和,前缀和可以解决数组区间和查询问题、矩阵区域和查询问题、连续子数组和问题、最大子段和问题、最大子矩阵和问题这里,但是如果大家不太了解前缀和也可以放心食用,因为运用这个累加函数其实十分简单。1.2定义:it
- appium入坑必备--详解uiautomator2,让你摆脱usb_appium uiautomator2
weixin_45933550
appiumjavapython
APP元素定位+基本工具介绍万字详解基本操作uc-devtools与Airtest工具使用目录UiAutomatorUiautomator2环境搭建常用操作连接设备Wifi连接USB连接定位工具定位元素启动应用停止应用查包名定位方式ResourceId定位Text定位Description定位ClassName定位xpath定位坐标定位重复元素定位截图文件推送与拉取常用鼠标操作滑动屏幕解锁屏幕获取
- Nginx开启目录浏览功能时加密码的方法
wjf63000
nginxlinuxcentos
环境:CentOS71.安装工具sudoyuminstallhttpd-tools2.创建密码文件和用户使用htpasswd命令来创建密码文件并添加用户。以下命令会创建一个名为.htpasswd的文件,并添加一个名为your_username的用户。sudohtpasswd-c/etc/nginx/.htpasswdyour_username执行上述命令后,系统会提示你输入并确认该用户的密码。如果
- jQuery 跨域访问的三种方式 No 'Access-Control-Allow-Origin' header is present on the reque
qiaolevip
每天进步一点点学习永无止境跨域众观千象
XMLHttpRequest cannot load http://v.xxx.com. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:63342' is therefore not allowed access. test.html:1
- mysql 分区查询优化
annan211
java分区优化mysql
分区查询优化
引入分区可以给查询带来一定的优势,但同时也会引入一些bug.
分区最大的优点就是优化器可以根据分区函数来过滤掉一些分区,通过分区过滤可以让查询扫描更少的数据。
所以,对于访问分区表来说,很重要的一点是要在where 条件中带入分区,让优化器过滤掉无需访问的分区。
可以通过查看explain执行计划,是否携带 partitions
- MYSQL存储过程中使用游标
chicony
Mysql存储过程
DELIMITER $$
DROP PROCEDURE IF EXISTS getUserInfo $$
CREATE PROCEDURE getUserInfo(in date_day datetime)-- -- 实例-- 存储过程名为:getUserInfo-- 参数为:date_day日期格式:2008-03-08-- BEGINdecla
- mysql 和 sqlite 区别
Array_06
sqlite
转载:
http://www.cnblogs.com/ygm900/p/3460663.html
mysql 和 sqlite 区别
SQLITE是单机数据库。功能简约,小型化,追求最大磁盘效率
MYSQL是完善的服务器数据库。功能全面,综合化,追求最大并发效率
MYSQL、Sybase、Oracle等这些都是试用于服务器数据量大功能多需要安装,例如网站访问量比较大的。而sq
- pinyin4j使用
oloz
pinyin4j
首先需要pinyin4j的jar包支持;jar包已上传至附件内
方法一:把汉字转换为拼音;例如:编程转换后则为biancheng
/**
* 将汉字转换为全拼
* @param src 你的需要转换的汉字
* @param isUPPERCASE 是否转换为大写的拼音; true:转换为大写;fal
- 微博发送私信
随意而生
微博
在前面文章中说了如和获取登陆时候所需要的cookie,现在只要拿到最后登陆所需要的cookie,然后抓包分析一下微博私信发送界面
http://weibo.com/message/history?uid=****&name=****
可以发现其发送提交的Post请求和其中的数据,
让后用程序模拟发送POST请求中的数据,带着cookie发送到私信的接入口,就可以实现发私信的功能了。
- jsp
香水浓
jsp
JSP初始化
容器载入JSP文件后,它会在为请求提供任何服务前调用jspInit()方法。如果您需要执行自定义的JSP初始化任务,复写jspInit()方法就行了
JSP执行
这一阶段描述了JSP生命周期中一切与请求相关的交互行为,直到被销毁。
当JSP网页完成初始化后
- 在 Windows 上安装 SVN Subversion 服务端
AdyZhang
SVN
在 Windows 上安装 SVN Subversion 服务端2009-09-16高宏伟哈尔滨市道里区通达街291号
最佳阅读效果请访问原地址:http://blog.donews.com/dukejoe/archive/2009/09/16/1560917.aspx
现在的Subversion已经足够稳定,而且已经进入了它的黄金时段。我们看到大量的项目都在使
- android开发中如何使用 alertDialog从listView中删除数据?
aijuans
android
我现在使用listView展示了很多的配置信息,我现在想在点击其中一条的时候填出 alertDialog,点击确认后就删除该条数据,( ArrayAdapter ,ArrayList,listView 全部删除),我知道在 下面的onItemLongClick 方法中 参数 arg2 是选中的序号,但是我不知道如何继续处理下去 1 2 3
- jdk-6u26-linux-x64.bin 安装
baalwolf
linux
1.上传安装文件(jdk-6u26-linux-x64.bin)
2.修改权限
[root@localhost ~]# ls -l /usr/local/jdk-6u26-linux-x64.bin
3.执行安装文件
[root@localhost ~]# cd /usr/local
[root@localhost local]# ./jdk-6u26-linux-x64.bin&nbs
- MongoDB经典面试题集锦
BigBird2012
mongodb
1.什么是NoSQL数据库?NoSQL和RDBMS有什么区别?在哪些情况下使用和不使用NoSQL数据库?
NoSQL是非关系型数据库,NoSQL = Not Only SQL。
关系型数据库采用的结构化的数据,NoSQL采用的是键值对的方式存储数据。
在处理非结构化/半结构化的大数据时;在水平方向上进行扩展时;随时应对动态增加的数据项时可以优先考虑使用NoSQL数据库。
在考虑数据库的成熟
- JavaScript异步编程Promise模式的6个特性
bijian1013
JavaScriptPromise
Promise是一个非常有价值的构造器,能够帮助你避免使用镶套匿名方法,而使用更具有可读性的方式组装异步代码。这里我们将介绍6个最简单的特性。
在我们开始正式介绍之前,我们想看看Javascript Promise的样子:
var p = new Promise(function(r
- [Zookeeper学习笔记之八]Zookeeper源代码分析之Zookeeper.ZKWatchManager
bit1129
zookeeper
ClientWatchManager接口
//接口的唯一方法materialize用于确定那些Watcher需要被通知
//确定Watcher需要三方面的因素1.事件状态 2.事件类型 3.znode的path
public interface ClientWatchManager {
/**
* Return a set of watchers that should
- 【Scala十五】Scala核心九:隐式转换之二
bit1129
scala
隐式转换存在的必要性,
在Java Swing中,按钮点击事件的处理,转换为Scala的的写法如下:
val button = new JButton
button.addActionListener(
new ActionListener {
def actionPerformed(event: ActionEvent) {
- Android JSON数据的解析与封装小Demo
ronin47
转自:http://www.open-open.com/lib/view/open1420529336406.html
package com.example.jsondemo;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
impor
- [设计]字体创意设计方法谈
brotherlamp
UIui自学ui视频ui教程ui资料
从古至今,文字在我们的生活中是必不可少的事物,我们不能想象没有文字的世界将会是怎样。在平面设计中,UI设计师在文字上所花的心思和功夫最多,因为文字能直观地表达UI设计师所的意念。在文字上的创造设计,直接反映出平面作品的主题。
如设计一幅戴尔笔记本电脑的广告海报,假设海报上没有出现“戴尔”两个文字,即使放上所有戴尔笔记本电脑的图片都不能让人们得知这些电脑是什么品牌。只要写上“戴尔笔
- 单调队列-用一个长度为k的窗在整数数列上移动,求窗里面所包含的数的最大值
bylijinnan
java算法面试题
import java.util.LinkedList;
/*
单调队列 滑动窗口
单调队列是这样的一个队列:队列里面的元素是有序的,是递增或者递减
题目:给定一个长度为N的整数数列a(i),i=0,1,...,N-1和窗长度k.
要求:f(i) = max{a(i-k+1),a(i-k+2),..., a(i)},i = 0,1,...,N-1
问题的另一种描述就
- struts2处理一个form多个submit
chiangfai
struts2
web应用中,为完成不同工作,一个jsp的form标签可能有多个submit。如下代码:
<s:form action="submit" method="post" namespace="/my">
<s:textfield name="msg" label="叙述:">
- shell查找上个月,陷阱及野路子
chenchao051
shell
date -d "-1 month" +%F
以上这段代码,假如在2012/10/31执行,结果并不会出现你预计的9月份,而是会出现八月份,原因是10月份有31天,9月份30天,所以-1 month在10月份看来要减去31天,所以直接到了8月31日这天,这不靠谱。
野路子解决:假设当天日期大于15号
- mysql导出数据中文乱码问题
daizj
mysql中文乱码导数据
解决mysql导入导出数据乱码问题方法:
1、进入mysql,通过如下命令查看数据库编码方式:
mysql> show variables like 'character_set_%';
+--------------------------+----------------------------------------+
| Variable_name&nbs
- SAE部署Smarty出现:Uncaught exception 'SmartyException' with message 'unable to write
dcj3sjt126com
PHPsmartysae
对于SAE出现的问题:Uncaught exception 'SmartyException' with message 'unable to write file...。
官方给出了详细的FAQ:http://sae.sina.com.cn/?m=faqs&catId=11#show_213
解决方案为:
01
$path
- 《教父》系列台词
dcj3sjt126com
Your love is also your weak point.
你的所爱同时也是你的弱点。
If anything in this life is certain, if history has taught us anything, it is
that you can kill anyone.
不顾家的人永远不可能成为一个真正的男人。 &
- mongodb安装与使用
dyy_gusi
mongo
一.MongoDB安装和启动,widndows和linux基本相同
1.下载数据库,
linux:mongodb-linux-x86_64-ubuntu1404-3.0.3.tgz
2.解压文件,并且放置到合适的位置
tar -vxf mongodb-linux-x86_64-ubun
- Git排除目录
geeksun
git
在Git的版本控制中,可能有些文件是不需要加入控制的,那我们在提交代码时就需要忽略这些文件,下面讲讲应该怎么给Git配置一些忽略规则。
有三种方法可以忽略掉这些文件,这三种方法都能达到目的,只不过适用情景不一样。
1. 针对单一工程排除文件
这种方式会让这个工程的所有修改者在克隆代码的同时,也能克隆到过滤规则,而不用自己再写一份,这就能保证所有修改者应用的都是同一
- Ubuntu 创建开机自启动脚本的方法
hongtoushizi
ubuntu
转载自: http://rongjih.blog.163.com/blog/static/33574461201111504843245/
Ubuntu 创建开机自启动脚本的步骤如下:
1) 将你的启动脚本复制到 /etc/init.d目录下 以下假设你的脚本文件名为 test。
2) 设置脚本文件的权限 $ sudo chmod 755
- 第八章 流量复制/AB测试/协程
jinnianshilongnian
nginxluacoroutine
流量复制
在实际开发中经常涉及到项目的升级,而该升级不能简单的上线就完事了,需要验证该升级是否兼容老的上线,因此可能需要并行运行两个项目一段时间进行数据比对和校验,待没问题后再进行上线。这其实就需要进行流量复制,把流量复制到其他服务器上,一种方式是使用如tcpcopy引流;另外我们还可以使用nginx的HttpLuaModule模块中的ngx.location.capture_multi进行并发
- 电商系统商品表设计
lkl
DROP TABLE IF EXISTS `category`; -- 类目表
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `category` (
`id` int(11) NOT NUL
- 修改phpMyAdmin导入SQL文件的大小限制
pda158
sqlmysql
用phpMyAdmin导入mysql数据库时,我的10M的
数据库不能导入,提示mysql数据库最大只能导入2M。
phpMyAdmin数据库导入出错: You probably tried to upload too large file. Please refer to documentation for ways to workaround this limit.
- Tomcat性能调优方案
Sobfist
apachejvmtomcat应用服务器
一、操作系统调优
对于操作系统优化来说,是尽可能的增大可使用的内存容量、提高CPU的频率,保证文件系统的读写速率等。经过压力测试验证,在并发连接很多的情况下,CPU的处理能力越强,系统运行速度越快。。
【适用场景】 任何项目。
二、Java虚拟机调优
应该选择SUN的JVM,在满足项目需要的前提下,尽量选用版本较高的JVM,一般来说高版本产品在速度和效率上比低版本会有改进。
J
- SQLServer学习笔记
vipbooks
数据结构xml
1、create database school 创建数据库school
2、drop database school 删除数据库school
3、use school 连接到school数据库,使其成为当前数据库
4、create table class(classID int primary key identity not null)
创建一个名为class的表,其有一