JdbcTemplate

JdbcTemplate https://segmentfault.com/a/1190000010907688 https://www.cnblogs.com/gongxr/p/8053010.html jdbcTemplate 获取刚插入的主键 id https://blog.csdn.net/liuao107329/article/details/79126118 jdbctemplate unit test https://blog.csdn.net/kerongao/article/details/110872832 https://www.baeldung.com/spring-jdbctemplate-testing

2011-10-17 · 1 min · 12 words · -

Zipkin

Zipkin Zipkin 是一个基于 Java 开发的、开源的、分布式实时数据跟踪系统 (Distributed Tracking System) https://zipkin.io/

2011-10-16 · 1 min · 9 words · -

df command

df command 文件系统类型, 磁盘分区类型 df -T df 是来自于coreutils 软件包,系统安装时,就自带的;我们通过这个命令可以查看磁盘的使用情况以及文件系统被挂载的位置; 举例: df -lh Filesystem 容量 已用 可用 已用% 挂载点 /dev/hda8 11G 6.0G 4.4G 58% / /dev/shm 236M 0 236M 0% /dev/shm /dev/sda1 56G 22G 35G 39% /mnt/sda1 我们从中可以看到,系统安装在/dev/hda8 ;还有一个56G的磁盘分区/dev/sda1挂载在 /mnt/sda1中; 其它的参数请参考 man df disk free 的缩写;用于显示目前Linux系统上的文件系统的磁盘使用情况统计, df 是用 superblock 的信息统计磁盘占用的. df -h # 查看 inode 使用情况 df -hi df -t ext4 -h # 查看文件系统类型 df -T -h # inode 使用统计 df -i df命令可以获取硬盘被占用了多少空间, 目前还剩下多少空间等信息, 它也可以显示所有文件系统对i节点和磁盘块的使用情况。 ...

2011-10-16 · 2 min · 302 words · -

CGI

CGI CGI(Common Gateway Interface),通用网关接口 通用网关接口,简称CGI,是一种根据请求信息动态产生回应内容的技术。通过CGI,Web 服务器可以将根据请求不同启动不同的外部程序,并将请求内容转发给该程序,在程序执行结束后,将执行结果作为回应返回给客户端。也就是说,对于每个请求,都要产生一个新的进程进行处理。因为每个进程都会占有很多服务器的资源和时间,这就导致服务器无法同时处理很多的并发请求。另外CGI程序都是与操作系统平台相关的,虽然在互联网爆发的初期,CGI为开发互联网应用做出了很大的贡献,但是随着技术的发展,开始逐渐衰落。 CGI: 通用网关接口 Common Gateway Interface,简称CGI。在物理上是一段程序,运行在服务器上,提供同客户端 HTML页面的接口。这样说大概还不好理解。那么我们看一个实际例子: 现在的个人主页上大部分都有一个留言本。留言本的工作是这样的: 先由用户在客户端输入一些信息,如名字之类的东西。接着用户按一下"留言" (到目前为止工作都在客户端) ,浏览器把这些信息传送到服务器的CGI目录下特定的cgi程序中,于是cgi程序在服务器上按照预定的方法进行处理。在本例中就是把用户提交的信息存入指定的文件中。然后cgi程序给客户端发送一个信息,表示请求的任务已经结束。此时用户在浏览器里将看到"留言结束"的字样。整个过程结束。 功能 绝大多数的CGI程序被用来解释处理来自表单的输入信息,并在服务器产生相应的处理,或将相应的信息反馈给浏览器。CGI程序使网页具有交互功能。 运行环境 CGI程序最初在UNIX操作系统上CERN或NCSA格式的服务器上运行。 在其它操作系统 (如: Windows NT及Windows 95等) 的服务器上也广泛地使用CGI程序,同时它也适用于各种类型机器。 处理步骤 ⑴通过Internet把用户请求送到服务器。 ⑵服务器接收用户请求并交给CGI程序处理。 ⑶CGI程序把处理结果传送给服务器。 ⑷服务器把结果送回到用户。 服务器配置 CGI程序不是放在服务器上就能顺利运行,如果要想使其在服务器上顺利的运行并准确的处理用户的请求,则须对所使用的服务器进行必要的设置。 配置: 根据所使用的服务器类型以及它的设置把CGI程序放在某一特定的目录中或使其带有特定的扩展名。 ⑴CREN格式服务器的配置: 编辑CREN格式服务器的配置文件 (通常为/etc/httpd.conf) 在文件中加入: Exec cgi-bin//home/www/cgi-bin/.exec。命令中出现的第一个参数cgi-bin/*指出了在URL中出现的目录名字,并表示它出现在系统主机后的第一个目录中,如: http://edgar.stern.nyn.***/cgi-bin/。命令中的第二个参数表示CGI程序目录放在系统中的真实路径。 CGI目录除了可以跟网络文件放在同一目录中,也可以放在系统的其它目录中,但必须保证在你的系统中也具有同样的目录。在对服务器完成设置后,须重新启动服务器 (除非HTTP服务器是用inetd启动的) 。 ⑵NCSA格式服务器的配置 在NCSA格式服务器上有两种方法进行设置: ①在srm.conf文件 (通常在conf目录下) 中加入: Script Alias/cgi-bin/cgi-bin/。Script Alias命令指出某一目录下的文件是可执行程序,且这个命令是用来执行这些程序的;此命令的两个参数与CERN格式服务器中的Exec命令的参数的含意一样。 ②在srm.conf文件加入: Add type application/x-httpd-cgi.cgi。此命令表示在服务器上增加了一种新的文件类型,其后第一个参数为CGI程序的MIME类型,第二个参数是文件的扩展名,表示以这一扩展名为扩展名的文件是CGI程序。 在用上述方法之一设置服务器后,都得重新启动服务器 (除非HTTP服务器是用inetd启动的) 。 编写语言 CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。对初学者来说,最好选用易于归档和能有效表示大量数据结构的语言,例如UNIX环境中: · Perl (Practical Extraction and Report Language) · Bourne Shell或者Tcl (Tool Command Language) ...

2011-10-16 · 2 min · 253 words · -

HTTP protocol, HTTP response status codes, 状态码/响应代码

HTTP protocol, HTTP response status codes, 状态码/响应代码 http header RFC 2616 规范说明了处理 HTTP Header 应该是大小写不敏感的。 Each header field consists of a name followed by a colon (":") and the field value. Field names are case-insensitive. golang gin 默认会把 header name 转成首字母大写 Envoy 默认会将 Header 转换为小写 Envoy 只支持两种规则: 全小写 (默认使用的规则) 首字母大写 (默认没有启用) User-Agent 标识用户代理 Referer 告诉服务器用户从哪里来 If-Modified-Since 主要用来检查cache是否过期 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的www文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。 1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本 (hypertext) ,这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会 (World Wide Web Consortium) 和Internet工作小组 (Internet Engineering Task Force) 共同合作研究,最终发布了一系列的RFC,其中最著名的就是RFC 2616。RFC 2616定义了HTTP协议的我们今天普遍使用的一个版本HTTP 1.1。 ...

2011-10-16 · 3 min · 530 words · -

通讯协议

通讯协议 通讯协议, TCP/IP 开放系统互联协议中最早的协议之一,它为连接不同操作系统和不同硬件体系结构的互联网络提供通信支持,是一种网络通用语言。TCP/IP协议定义了在互联网络中如何传递、管理信息(文件传送、收发电子邮件、远程登录等),并制定了在出错时必须遵循的规则。 简介 通信协议又称通信规程,是指通信双方对数据传送控制的一种约定。约定中包括对数据格式,同步方式,传送速度,传送步骤,检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守,它也叫做链路控制规程。 电脑与电脑之间的沟通必须讲述相同的语言,才能互相传输信息,自然资料在国际互联网上传递,每一份都要符合一定的规格 (即是相同的语言) ,否则中国送出的资料,在美国那边要怎么收下呢? 这些规格 (语言) 的规定都是事先在会议桌上讲好的,一般我们称之为"协议" (protocol) ,而这种在网络上负责定义资料传输规格的协议,我们就统称为通讯协议。 其实每一种网络所使用的通讯协议都不太一样,但就以我们最常用的Internet为例,当资料要送到Internet上时,就必须要使用Internet用的通讯协议。 详细介绍 TCP/IP TCP (Transmission Control Protocol, 传输控制协议) . TCP/IP是网络中使用的基本的通信协议。虽然从名字上看TCP/IP包括两个协议,TCP和IP(网际协议),但TCP/IP实际上是一组协议,它包括上百个各种功能的协议,如: 远程登录、文件传输和电子邮件等,而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。通常说TCP/IP是Internet协议族,而不单单是TCP和IP。 TCP/IP是用于计算机通信的一组协议,它是70年代中期美国国防部为其ARPANET广域网开发的网络体系结构和协议标准,以它为基础组建的INTERNET是目前国际上规模最大的计算机网络,正因为INTERNET的广泛使用,使得TCP/IP成了事实上的标准。 之所以说TCP/IP是一个协议族,是因为TCP/IP协议包括TCP、IP、UDP、ICMP、RIP、TELNETFTP、SMTP、ARP、TFTP等许多协议,这些协议一起称为TCP/IP协议。 IP (Internet Protocol, 国际互联网通讯协议) 它们组合成互联网的语言,因为Internet是由全世界很多大大小小的网络连接而成,所以大家必须遵守它的语言 (TCP/IP) 才能顺利跟别人沟通。 http://imgsrc.baidu.com/baike/abpic/item/8697397f0a64693228388aa3.jpg 不过如果你来到别的网络,就等于是来到一个陌生的国家,使用的通讯协议,也就换作另一套了!由此可知TCP/IP只是网络上众多通讯协议的其中一种而已。 在Internet上每一台机器都要有一个IP 每一台连接到Internet上的电脑,为了要让资料能够正确且顺利地传输,它会为每一台机器定义一个IP,也就等于是给你的电脑装上门牌号码;因为资料在电脑之间传输,就和车子在都市中跑来跑去有点像,如果有了IP (门牌号码) ,网络的设备马上便能得知,这一份资料是要送到哪一台电脑去。 IPX/SPX IPX/SPX是基于施乐的XEROX'S Network System (XNS) 协议,而SPX是基于施乐的XEROX'S SPP (Sequenced Packet Protocol: 顺序包协议) 协议,它们都是由novell公司开发出来应用于局域网的一种高速协议。它和TCP/IP的一个显著不同就是它不使用ip地址,而是使用网卡的物理地址即 (MAC) 地址。在实际使用中,它基本不需要什么设置,装上就可以使用了。由于其在网络普及初期发挥了巨大的作用,所以得到了很多厂商的支持,包括microsoft等,到现在很多软件和硬件也均支持这种协议。 NetBEUI NetBEUI (NetBios Enhanced User Interface) ,或NetBios增强用户接口。它是NetBIOS协议的增强版本,曾被许多操作系统采用,例如Windows for Workgroup、Win9x系列、Windows NT等。NETBEUI协议在许多情形下很有用,是WINDOWS98之前的操作系统的缺省协议。总之NetBEUI协议是一种短小精悍、通信效率高的广播型协议,安装后不需要进行设置,特别适合于在"网络邻居"传送数据。所以建议除了TCP/IP协议之外,局域网的计算机最好也安上NetBEUI协议。另外还有一点要注意,如果一台只装了TCP/IP协议的WINDOWS98机器要想加入到WINNT域,也必须安装NetBEUI协议。 网络通信协议 RS-232-C RS-232-C是OSI基本参考模型物理层部分的规格,它决定了连接器形状等物理特性、以0和1表示的电气特性及表示信号意义的逻辑特性。 RS-232-C是EIA发表的,是RS-232-B的修改版。本来是为连接模拟通信线路中的调制解调器等DCE及电传打印机等DTE拉接口而标准化的。现在很多个人计算机也用RS-232-C作为输入输出接口,用RS-232-C作为接口的个人计算机也很普及。 RS-232-C的如下特点: 采用直通方式,双向通信,基本频带,电流环方式,串行传输方式,DCE-DTE间使用的信号形态,交接方式,全双工通信。RS-232-C在ITU建议的V.24和V.28规定的25引脚连接器在功能上具有互换性。 RS-232-C所使用的连接器为25引脚插入式连接器,一般称为25引脚D-SUB。DTE端的电缆顶端接公插头,DCE端接母插座。 RS-232-C所用电缆的形状并不固定,但大多使用带屏蔽的24芯电缆。电缆的最大长度为15m。使用RS-232-C在200K位/秒以下的任何速率都能进行数据传输。 RS-449 http://baike.baidu.com/albums/278358/278358.html#0$fab3ac117148de44ca80c4b3 ...

2011-10-16 · 1 min · 135 words · -

One or more PGP signatures could not be verified

One or more PGP signatures could not be verified gpg -recv-key <KEYID> https://bbs.archlinux.org/viewtopic.php?id=191954 Two PGP Keyrings for Package Management in Arch Linux http://allanmcrae.com/2015/01/two-pgp-keyrings-for-package-management-in-arch-linux/embed/#?secret=zQHTu5bbvd

2011-10-16 · 1 min · 23 words · -

Android OpenVPN-TAP 模式/策略路由

‘Android OpenVPN-TAP 模式/策略路由’ http://blog.csdn.net/dog250/article/details/42046269 在Android的OpenVPN Service的FAQ上,关于TAP模式有三问三答,最后回答的建议是: Support TAP via emulation。这也是我自己前几个月实现过的。要问为何Android自己不能提供对TAPmode的支持,似乎不关VPNService作者本人的事,其建议是: If you really want to see tap-style tunnels supported in OpenVPN Connect, we would encourage you tocontact the Google Android team and ask that the VpnService API be extended to allow this. Without such changes to the VpnService API, it is not possible for non-root apps such as OpenVPN Connect to support tap-style tunnels. 这似乎是个圈,但是我们仔细想一下就会发现这个圈原来是这样: 1.Android平台在一个公共的层下面拥有多个完全不同的底层实现,包括Linux内核; 2.开放Android的root权限意味着用户可以触摸到任意的底层; 3.所有的公共集合,包括API以及功能必须不能基于底层来构建,root权限不能对所有普通用户开放; 4.必须有一个公共的层,用户的需求基于这个公共的层来实现 5.这个层就是Android平台。 ...

2011-10-16 · 2 min · 382 words · -

Java Bean

Java Bean 一、 javabean 是什么? Bean的中文含义是"豆子",顾名思义,JavaBean是指一段特殊的Java类, 就是有默然构造方法,只有get,set的方法的java类的对象. 最初,JavaBean的目的是为了将可以重复使用的软件代码打包标准。特别是用与帮助厂家开发在IDE下使用的java软件部件。这些包括如Grid控件,用户可以将该部件拖放到开发环境中。从此,JavaBean就可以扩展为一个java web 应用的标准部件,并且JavaBean部件框架已经扩展为企业版的 Bean (EJB) 。 专业点解释是: JavaBean定义了一组规则 JavaBean就是遵循此规则的平常的Java对象 满足这三个条件: 1.执行java.io.Serializable 接口 2.提供无参数的构造器 3.提供getter 和 setter方法访问它的属性. 简单地说,JavaBean是用Java语言描述的软件组件模型,其实际上是一个类。这些类遵循一个接口格式,以便于使函数命名、底层行为以及继承或实现的行为,可以把类看作标准的JavaBean组件进行构造和应用。 JavaBean一般分为可视化组件和非可视化组件两种。可视化组件可以是简单的GUI元素,如按钮或文本框,也可以是复杂的,如报表组件;非可视化组件没有GUI表现形式,用于封装业务逻辑、数据库操作等。其最大的优点在于可以实现代码的可重用性。JavaBean又同时具有以下特性。 易于维护、使用、编写。 可实现代码的重用性。 可移植性强,但仅限于Java工作平台。 便于传输,不限于本地还是网络。 可以以其他部件的模式进行工作。 对于有过其他语言编程经验的读者,可以将其看作类似微软的ActiveX的编程组件。但是区别在于JavaBean是跨平台的,而ActiveX组件则仅局限于Windows系统。总之,JavaBean比较适合于那些需要跨平台的、并具有可视化操作和定制特性的软件组件。 JavaBean组件与EJB (Enterprise JavaBean,企业级JavaBean) 组件完全不同。EJB 是J2EE的核心,是一个用来创建分布式应用、服务器端以及基于Java应用的功能强大的组件模型。JavaBean组件主要用于存储状态信息,而EJB组件可以存储业务逻辑。 2 使用JavaBean的原因 程序中往往有重复使用的段落,JavaBean就是为了能够重复使用而设计的程序段落,而且这些段落并不只服务于某一个程序,而且每个JavaBean都具有特定功能,当需要这个功能的时候就可以调用相应的JavaBean。从这个意义上来讲,JavaBean大大简化了程序的设计过程,也方便了其他程序的重复使用。 JavaBean传统应用于可视化领域,如AWT (窗口工具集) 下的应用。而现在,JavaBean更多地应用于非可视化领域,同时,JavaBean在服务器端的应用也表现出强大的优势。非可视化的JavaBean可以很好地实现业务逻辑、控制逻辑和显示页面的分离,现在多用于后台处理,使得系统具有更好的健壮性和灵活性。JSP + JavaBean和JSP + JavaBean + Servlet成为当前开发Web应用的主流模式。 3 JavaBean的开发 在程序设计的过程中,JavaBean不是独立的。为了能够更好地封装事务逻辑、数据库操作而便于实现业务逻辑和前台程序的分离,操作的过程往往是先开发需要的JavaBean,再在适当的时候进行调用。但一个完整有效的JavaBean必然会包含一个属性,伴随若干个get/set (只读/只写) 函数的变量来设计和运行的。JavaBean作为一个特殊的类,具有自己独有的特性。应该注意以下3个方面。 JavaBean类必须有一个没有参数的构造函数。 JavaBean类所有的属性最好定义为私有的。 JavaBean类中定义函数setXxx() 和getXxx()来对属性进行操作。其中Xxx是首字母大写的私有变量名称。 二、JavaBean和企业Bean的区别 http://www.hudong.com/wiki/Enterprise%20JavaBean JavaBean 和 Server Bean (通常称为 Enterprise JavaBean (EJB)) 有一些基本相同之处。它们都是用一组特性创建,以执行其特定任务的对??获得其它特性的能力。这使得 bean 的行为根据特定任务和所在环境的不同而有所不同。 ...

2011-10-16 · 1 min · 103 words · -

md5, sha256

md5, sha256 # linux md5sum [OPTION]... [FILE]... md5sum foo.tar sha256sum foo.tar sha1sum foo.tar # windows certutil -hashfile foo.tar MD5 certutil -hashfile foo.tar SHA1 certutil -hashfile foo.tar SHA256 # macos md5 foo.tar MD5: 一种单向Hash函数/单向散列函数 Message Digest Algorithm MD5 (中文名为消息摘要算法第五版) 为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321 (R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992) 。 描述 MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改。MD5 全称是报文摘要算法 (Message-Digest Algorithm 5) ,此算法对任意长度的信息逐位进行计算,产生一个二进制长度为128位 (十六进制长度就是32位) 的"指纹" (或称"报文摘要") ,不同的文件产生相同的报文摘要的可能性是非常非常之小的。 在linux或Unix上,md5sum是用来计算和校验文件报文摘要的工具程序。一般来说,安装了Linux后,就会有md5sum这个工具,直接在命令行终端直接运行。 选项: -b 或 -binary :把输入文件作为二进制文件看待。 -t 或 -text :把输入的文件作为文本文件看待 (默认) 。 -c 或 -check :用来从文件中读取md5信息检查文件的一致性。(不细说了参见info) -status :这个选项和check一起使用,在check的时候,不输出,而是根据返回值表示检查结果。 -w 或 -warn :在check的时候,检查输入的md5信息又没有非法的行,如果有则输出相应信息。 [举例] ...

2011-10-14 · 2 min · 217 words · -

windows basic, win basic

windows basic, win basic cmd ## 删除 目录 remove-item dir0 -recurse -force copy C:\Users\desktop\foo.txt D:\backup\ /y # force overwrite copy /b/v/y C:\Users\desktop\foo.txt D:\backup\ # cmd-连续执行多条命令 copy C:\Users\desktop\foo.txt D:\backup\ && D:\backup\foo.exe # 查看证书 certmgr.msc # 查看 windows 的版本 winver ISO https://isofiles.bd581e55.workers.dev/ win10 应用开机启动, 启动项 打开运行 win + r, 输入 shell:startup, 将该应用的快捷方式从文件位置复制并粘贴到 “启动” 文件夹中。 msdn i tell u https://www.itellu.com/2021/06/22/win11-v2021-v1/ windows iso 打开页面: https://www.microsoft.com/zh-cn/software-download/windows10 点击 立即下载工具 运行 MediaCreationTool21H1.exe 选择 “为另一台电脑创建安装介质” uupdump https://uupdump.net/ ...

2011-10-14 · 3 min · 639 words · -

java timer

java timer Timer和TimerTask Timer是jdk中提供的一个定时器工具,使用的时候会在主线程之外起一个单独的线程执行指定的计划任务,可以指定执行一次或者反复执行多次。 TimerTask是一个实现了Runnable接口的抽象类,代表一个可以被Timer执行的任务。 一个Timer调度的例子 import java.util.Timer; import java.util.TimerTask; public class TestTimer { public static void main(String args[]){ System.out.println("About to schedule task."); new Reminder(3); System.out.println("Task scheduled."); } public static class Reminder{ Timer timer; public Reminder(int sec){ timer = new Timer(); timer.schedule(new TimerTask(){ public void run(){ System.out.println("Time's up!"); timer.cancel(); } }, sec*1000); } } } 运行之后,在console会首先看到: ...

2011-10-13 · 2 min · 359 words · -

cgroup, namespace

cgroup, namespace cgroup 的主要作用:管理资源的分配、限制; namespace 的主要作用:封装抽象,限制,隔离,使命名空间内的进程看起来拥有他们自己的全局资源; Chroot Chroot 可以将进程及其子进程与操作系统的其余部分隔离开来。但是,对于 root process ,却可以任意退出 chroot。 现代化容器技术带来的优势 轻量级,基于 Linux 内核所提供的 cgroup 和 namespace 能力,创建容器的成本很低; 一定的隔离性; 标准化,通过使用容器镜像的方式进行应用程序的打包和分发,可以屏蔽掉因为环境不一致带来的诸多问题; DevOps 支撑 (可以在不同环境,如开发、测试和生产等环境之间轻松迁移应用,同时还可保留应用的全部功能); cgroup Linux control groups cgroup 是 Linux 内核的一个功能,用来限制、控制与分离一个进程组的资源 (如CPU、内存、磁盘输入输出等)。它是由 Google 的两位工程师进行开发的,自 2018 年 1 月正式发布的 Linux 内核 v2.6.24 开始提供此能力。 cgroup 主要限制的资源是: CPU 内存 网络 磁盘 I/O cgroup 的组成 cgroup 代表“控制组”,并且不会使用大写。cgroup 是一种分层组织进程的机制, 沿层次结构以受控的方式分配系统资源。我们通常使用单数形式用于指定整个特征,也用作限定符如 “cgroup controller” 。 cgroup 主要有两个组成部分: core - 负责分层组织过程; controller - 通常负责沿层次结构分配特定类型的系统资源。每个 cgroup 都有一个 cgroup.controllers 文件,其中列出了所有可供 cgroup 启用的控制器。当在 cgroup.subtree_control 中指定多个控制器时,要么全部成功,要么全部失败。在同一个控制器上指定多项操作,那么只有最后一个生效。每个 cgroup 的控制器销毁是异步的,在引用时同样也有着延迟引用的问题; ...

2011-10-13 · 1 min · 87 words · -

naming convention, Camel Casing, CamelCase, Pascal Case, kebab case, Snake case

naming convention, Camel Casing, CamelCase, Pascal Case, kebab case, Snake case 在英语中,依靠单词的大小写拼写复合词的做法,叫做"骆驼拼写法" (CamelCase) 。比如,backColor这个复合词,color的第一个字母采用大写。 这种拼写法在正规的英语中是不允许的,但是在编程语言和商业活动中却大量使用。比如,sony 公司的畅销游戏机 PlayStation,play和station 两个词的词首字母都是大写的。 它之所以被叫做"骆驼拼写法",是因为大小写的区分使得复合词呈现"块状" (bump) ,看上去就像骆驼的驼峰 (hump) 。 “骆驼拼写法"又分为两种。 第一个词的首字母小写,后面每个词的首字母大写,叫做"小骆驼拼写法” (lowerCamelCase) ; 第一个词的首字母,以及后面每个词的首字母都大写,叫做"大骆驼拼写法" (UpperCamelCase) ,又称"帕斯卡拼写法" (PascalCase) 。 PascalCase:帕斯卡命名法,每个单词首字母大写,又名大驼峰命名法。 camelCase:驼峰命名法,第一个单词首字母小写,后面的每个单词首字母大写,又名小驼峰命名法。 kebab-case:短横线隔开命名法,每个单词首字母小写。 https://www.huoxiaoqiang.com/experience/jingyan/3618.html http://www.cnblogs.com/lm002003/archive/2011/08/13/2137606.html Snake case, snake_case Snake case (stylized as snake_case) is the naming convention in which each space is replaced with an underscore (_) character, and words are written in lowercase. It is a commonly used naming convention in computing, for example for variable and subroutine names, and for filenames.

2011-10-12 · 1 min · 85 words · -

maven-resources-plugin

maven-resources-plugin Apache Maven Resources Plugin是Apache Maven团队提供的官方核心插件,能够将Maven项目中的各种资源文件复制到指定的输出目录中。 在Maven项目中的资源可以分为两类 main资源,指位于src/main/resources路径下的资源文件 test资源,指位于src/test/resources路径下的资源文件 2. Apache Maven Resources Plugin提供的Goals resources:resources 将main资源文件复制到输出目录,默认已经加入到Maven的process-resources生命周期阶段。 <project><build><resources>指定要复制的main资源文件,默认位于src/main/resources路径 <project><build><outputDirectory>指定main资源的输出目录,默认位于target/classes/路径 2) resources:testResources 将test资源文件复制到输出目录,默认已经加入到Maven的process-test-resources生命周期阶段。 <project><build><testResources>指定要复制的test资源文件,默认位于src/test/resources路径 <project><build><testOutputDirectory>指定test资源的输出目录,默认位于target/test-classes/路径 3) resources:copy-resources 对于非main资源或非test资源,又没有在pom.xml的<build><resources>...</build></resources>配置的资源,在构建过程中不会输出到项目的target/classes/目录下。 ———————————————— 版权声明:本文为CSDN博主「易生一世」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/taiyangdao/article/details/103636330 java-使用maven将版本号输出到文本 https://www.itranslater.com/qa/details/2582583740010595328 https://blog.csdn.net/u011781521/article/details/79052725 src/main/resources/version.txt ${project.version} <plugin> <artifactId>maven-resources-plugin</artifactId> <version>3.2.0</version> <executions> <execution> <id>print-version-file</id> <phase>validate</phase> <goals> <goal>resources</goal> </goals> <configuration> <outputDirectory>${basedir}/target/classes</outputDirectory> <resources> <resource> <directory>${basedir}/src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </configuration> </execution> </executions> </plugin> mvn clean validate

2011-10-09 · 1 min · 61 words · -

java.io.tmpdir

java.io.tmpdir 操作系统不同 这个系统属性所表示的目录也不同 On Windows: java.io.tmpdir:[C:DOCUME1joshuaLOCALS1Temp] On Solaris: java.io.tmpdir:[/var/tmp/] On Linux: java.io.tmpdir: [/tmp] On Mac OS X: java.io.tmpdir: [/tmp] The default temporary-file directory is specified by the system property java.io.tmpdir. On UNIX systems the default value of this property is typically "/tmp" or "/var/tmp"; on Microsoft Windows systems it is typically "c:temp". A different value may be given to this system property when the Java virtual machine is invoked, but programmatic changes to this property are not guaranteed to have any effect upon the the temporary directory used by this method. To specify the java.io.tmpdir System property, you can invoke the JVM as follows: java -Djava.io.tmpdir=/path/to/tmpdir ``` ...

2011-10-08 · 1 min · 121 words · -

nohup, shell 的后台运行 &, 和 nohup

nohup, shell 的后台运行 &, 和 nohup # 语法: nohup Command [ Arg … ] [&] # & 后台运行, 但是使用父进程的 stdout 和 stderr ./command0 & # nohup 的意思是 no hup, 忽略所有发送给子命令的 SIGHUP 信号, shell 关闭时 sigup 不会被发到子进程. nohup ./command0 & # 使用 nohup 之后 会看到 nohup: appending output to "nohup.out", command0 的 stdout 和 stderr 都 被重定向到 nohup.out nohup ./command0 > /dev/null 2>&1 & https://www.jianshu.com/p/747e0d5021a2 https://blog.csdn.net/cugxueyu/article/details/2046565 hangup 名称的来由 在 Unix 的早期版本中,每个终端都会通过 modem 和系统通讯。当用户 logout 时,modem 就会挂断 (hang up) 电话。 同理,当 modem 断开连接时,就会给终端发送 hangup 信号来通知其关闭所有子进程。 ...

2011-10-08 · 2 min · 215 words · -

linux user, group, 用户 用户组

linux user, group, 用户 用户组 用户 查看用户 cat /etc/passwd wyue:x:513:513::/home/wyue:/bin/bash 看第三个参数: 500 以上的,就是后来建的用户了。其它则为系统的用户。 创建用户 # create user, 创建目录 /home/user0, 默认 bash sudo useradd -m user0 # 创建用户 user_0, 默认不会创建 home 目录, 默认 bash sudo useradd user_0 # 给 user_0 设置密码 sudo passwd user_0 sudo useradd -m -s /bin/bash user0 # create group and user sudo useradd -m -s /bin/bash -g group0 user0 sudo passwd user0 sudo useradd -m -s /bin/zsh user0 sudo useradd -M -s /bin/false user1 sudo useradd user0 # ubuntu shadow 包提供的工具 # adduser 是一个高级脚本,通常存在于 Debian / Ubuntu 系统 上。 # --system 创建一个系统用户,通常用于运行系统服务(如 Kafka、nginx、mysql 等),不是用于日常登录的普通用户。系统用户的 UID 通常小于 1000。 # --group 同时创建一个与用户名相同的用户组(kafka),并将用户添加进这个组。 # kafka 是一个系统用户,通常用于运行 Kafka 服务。 sudo adduser --system --no-create-home --group kafka options # -m: create home folder, 不加 -m 参数,默认不创建 home # -M: Don't create a home directory # -s: specify shell for user, 默认是 /bin/bash # -s /bin/false - Don't assign a shell (or more accurately, make the shell /bin/false, so the user cannot be logged into) # -r: create system account # -d: home dir # -r - Make a system user # -g <群组>: 指定用户所属的群组; # -G <群组>: 指定用户所属的附加群组 # -c <备注>:加上备注文字。备注文字会保存在 passwd 的备注栏位中; 删除用户 -r, 删除用户 home 目录 userdel -r test 设置密码 sudo passwd user0 输入密码: 一般密码至少要有六个字符,这里输入的密码是看不见的,屏幕没显示 重新输一次密码: ...

2011-09-25 · 9 min · 1830 words · -

Apache License 2.0

Apache License 2.0 Apache License Apache 协议允许使用了本协议开源的代码不必开源。 用了 Apache 协议的开源代码,必须保留协议文本。你可以修改源码,但必须声明你修改了哪些,并且保留原开源项目中原作者的信息。 用一句话概括 Apache License 就是,你可以用这代码,但是如果开源你必须保留我写的声明;你可以改我的代码,但是如果开源你必须写清楚你改了哪些;你可以加新的协议要求,但不能与我所公布的协议要求产生冲突;你用这代码干什么我不管,但是你不能让我承担任何责任。 kymjs.com/qiniu https://www.kymjs.com/manager/2015/11/21/01/ http://db.apache.org/derby/docs/dev/getstart/

2011-09-22 · 1 min · 17 words · -

奥卡姆剃刀, Occam's Razor

奥卡姆剃刀, Occam’s Razor 奥卡姆剃刀原理 奥卡姆剃刀原理是在14世纪由一个叫做奥卡姆的威廉的天主教修士提出的,可以概括为: 如无必要,勿增实体。 http://www.guokr.com/post/46473/

2011-09-22 · 1 min · 7 words · -