webUI test
webUI test Selenium WebDriver, Watir, Sahi, cpress
webUI test Selenium WebDriver, Watir, Sahi, cpress
linux Benchmark Tools Benchmark Tools Phoronix Test Suite Comprehensive testing and benchmarking platform IOzone Filesystem benchmark tool that measures a wide variety of file operations netperf A network performance benchmark LLCbench Low Level Architectural Characterization Benchmark Suite HardInfo System Profiler and Benchmark GtkPerf GTK+ performance benchmark
Linux Testdisk linux下超帅的分区表修复软件.以前用过n多的windows的分区表修复软件,没想到linux中有这么好用这么方便的修复软件,速度那叫一个快啊。。没有见到这个分区表修复软件以前我都白活了。。。。。 好了,这个软件叫testdisk.很帅的。。 如果你是使用修复光碟,就下载一个这个软件到电脑中,如果是恢复usb的disk直接 #sudo apt-get install testdisk 使用的话先sudo testdisk 1.选择Create来进行分析 Use arrow keys to select, then press Enter key: [ Create ] Create a new log file [ Append ] Append information to log file [ No Log ] Don’t record anything 2.然后选择testdisk中你要修复的硬盘,回车 Select a media (use Arrow keys, then press Enter): Disk /dev/sda - 160 GB / 149 GiB - ATA HITACHI HTS54251 Disk /dev/sdb - 3272 MB / 3121 MiB - SM324BC USB DISK 3.选择testdisk修复的平台,我们是Intel的,所以选择他 ...
debian wine frozen throne download source from http://www.winehq.org/download/ sudo apt-get install flex sudo apt-get install bison ./tools wine “Frozen Throne.exe” -opengl
wine 卸载wine中已经安装的软件 到程序的目录里面 wine 卸载程序.exe wine,是一款优秀的Linux系统平台下的模拟器软件,用来将Windows系统下的软件在Linux系统下稳定运行,该软件更新频繁,日臻完善,可以运行许多大型Windows系统下的软件。另外英语单词wine是葡萄酒的意思。 刚刚步入Linux,难免要有时利用一下Windows的程序资源,Wine提供了一个用来运行Windows程序的平台。 Wine (Wine Is Not an Emulator)[即Wine不仅仅是一个模拟器]是一个在Linux和UNIX之上的,Windows 3.x 和 Windows APIs的实现.它是一个Windows兼容层,用通俗的话说,就是一个Windows模拟器,这个层既提供了一个用来从Windows源进出到UNIX的开发工具包(Winelib),也提供了一个程序加载器,该加载器允许不用任何修改Windows 3.1/95/NT的二进制文件,就可以运行在Intel Unix及其衍生版本下.Wine可以工作在绝大多数的UNIX版本下,包括Linux, FreeBSD, 和 Solaris. Wine不需要Microsoft Windows, 因为这是一个完全由百分之百的免费代码组成的,可以选择的实现,但是它却可以随意地使用本地系统的DLLs,如果它们是可以被利用的话.Wine的发布是完全公开源代码的,并且是免费发行的。 目前 Wine 仍在发展阶段,但是较新的版本可以运行一些著名软件,甚至是 Photoshop CS3! Wine的官方站点是http://www.winehq.com/,虽然你可以在它的官方站点下载源代码,自己配置编译,不过这个过程可是比较繁琐的!
JMS jms即Java消息服务 (Java Message Service) 应用程序接口是一个Java平台中关于面向消息中间件 (MOM) 的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。JMS (Java Messaging Service) 是Java平台上有关面向消息中间件(MOM)的技术规范,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发,翻译为Java消息服务。 JMS是一种与厂商无关的 API,用来访问消息收发系统。它类似于 JDBC(Java Database Connectivity): 这里,JDBC 是可以用来访问许多不同关系数据库的 API,而 JMS 则提供同样与厂商无关的访问方法,以访问消息收发服务。许多厂商目前都支持 JMS,包括 IBM 的 MQSeries、BEA的 Weblogic JMS service和 Progress 的 SonicMQ,这只是几个例子。 JMS 使您能够通过消息收发服务 (有时称为消息中介程序或路由器) 从一个 JMS 客户机向另一个 JMS客户机发送消息。消息是 JMS 中的一种类型对象,由两部分组成: 报头和消息主体。报头由路由信息以及有关该消息的元数据组成。消息主体则携带着应用程序的数据或有效负载。根据有效负载的类型来划分,可以将消息分为几种类型,它们分别携带: 简单文本 (TextMessage)、可序列化的对象 (ObjectMessage)、属性集合 (MapMessage)、字节流 (BytesMessage)、原始值流 (StreamMessage),还有无有效负载的消息 (Message)。 Java消息服务是一个在 Java标准化组织 (JCP) 内开发的标准 (代号JSR 914) 。2001年6月25日,Java消息服务发布JMS 1.0.2b,2002年3月18日Java消息服务发布 1.1,统一了消息域。 JMS有以下元素组成。 JMS提供者 连接面向消息中间件的,JMS接口的一个实现。提供者可以是Java平台的JMS实现,也可以是非Java平台的面向消息中间件的适配器。 JMS客户 生产或消费基于消息的Java的应用程序或对象。 JMS生产者 创建并发送消息的JMS客户。 JMS消费者 接收消息的JMS客户。 JMS消息 包括可以在JMS客户之间传递的数据的对象 JMS队列 一个容纳那些被发送的等待阅读的消息的区域。队列暗示,这些消息将按照顺序发送。一旦一个消息被阅读,该消息将被从队列中移走。 JMS主题 一种支持发送消息给多个订阅者的机制 JMS模型 Java消息服务应用程序结构支持两种模型: ...
rt.jar 源码 http://topic.csdn.net/u/20110125/10/06139927-2e44-4c76-b41c-fa7ea3206dd3.html java全部源代码,src.zip中没有的,在openjdk里的源代码加到eclipse里面.. 本来想问的.现在摸索出来了..可以到 http://download.java.net/openjdk/jdk6/下载源码 或者搜索 openjdk jdk6 ..如果你的jdk是jdk 5 或者jdk 7.那就搜索 openjdk jdk5 或者 openjdk jdk7.. 下载完以后解压缩.. eclipse里面选中 windows -preference-java-installed jres-选中jre6(你的可能是jre5 或者jre7)-edit-选中rt.jar-source attachment-external folders.. 选中解压缩的openjdk目录下的子目录 解压所在目录/jdk/src/share/classes/ ..然后重启eclipse.. 这样子原来添加src.zip所不能看的源代码,比如rt.jar下sun.misc包里的class..现在就可以看源代码了..
雅各布天梯 圣经中有这样一个故事: 雅各布梦见天使上下天堂的梯子是闪闪发光的,后人便把这梦想中的梯子,称之为雅各布天梯。该展品由变压器、羊角电极等部分组成。由变压器提供数十万伏的高压,在羊角电极间击穿空气,形成弓形电弧,产生磁场,使电弧向上运动,其运动过程类似于爬梯。当电弧被拉长到600mm左右,所施加的电压再不能维持产生电弧所需的条件,电弧就消失,此时羊角电极底部又会产生新的电弧,形成周而复始的电弧爬梯现象。 雅各布天梯则展示了电弧产生和消失的过程。二根呈羊角形的管状电极,一极接高压电,另一个接地。当电压升高到5万伏时,管状电极底部产生电弧,电弧逐级激荡而起,如一簇簇圣火似地向上爬升,犹如圣经中的雅各布天梯。 在2-5万伏高压下,两电极最近处的空气首先被击穿,形成大量的正负等离子体,即产生电弧放电。 空气对流加上电动力的驱使,使电弧向上升,随着电弧被拉长,电弧通过的电阻加大,当电流送给电弧的能量小于由弧道向周围空气散出的热量时,电弧就会自行熄灭。 说明: 在高压下,电极间距最小处的空气还会再次被击穿,发生第二次电弧放电,如此周而复始。
python mixin 什么是Mixin设计模式 mixin设计模式可以看做是多继承的一种。那么首先,咱们谈谈为什么会出现多继承这种语法。 汽车和飞机他们都同属于交通工具,但飞机可以飞行,汽车无法做到,所以,飞行这个行为不能写到交通工具这个类中,如果每一个交通工具各自实现自己的行驶方法,就违背了代码尽可能重用的原则(如果交通工具种类越来越多,就会造成大量代码冗余)。 所以,我们要表示飞行这个行为,就需要进行多继承。但这样,我们就违背了继承关系必须是is-a原则。 在java中,虽然没有多继承,但我们可以通过interface来实现多继承。 在python中,没有interface这一语法,但它本身是支持多继承的。 在使用多继承的时候,很容易就会设计不当,导致继承链混乱,影响mro查找,所以,在编程的时候我们的原则就是,能使用其他方法代替多继承就尽量不适用多继承。 这个时候Mixin设计模式就应运而生,Mixin直译理解就是混入、补充的意思,它是多继承的一种。在多继承中,查找顺序是按mro继承链中的顺序进行的。 这样一来,我们不需要复杂而庞大的继承链,只要选择组合不同的类的功能,就可以快速构造出所需的子类。 2.Mixin设计模式实例 class Vehicle: pass class PlaneMixin: def fly(self): print(“Flying”) class Airplane(Vehicle, PlaneMixin): pass 可以看到,上述代码中,Airplane类实现了多继承,在继承链上,它继承了Vehicle类和PlaneMixin类,这里我们遵循Mixin设计模式的要求,在后面添加上后缀Mixin增强代码的可读性。 上述代码可以这么理解,Airplane只是一个Vehicle类,而不是Plane类,而Mixin后缀,它告诉其他读者,这个类是作为功能添加到子类中的,并不是作为父类,它的作用等同于Java中的interface。 使用Mixin设计模式的原则 在使用Mixin设计模式实现多重继承的时候要特别注意下列几点原则: 首先,Mixin类必须表示某一种功能,而不是某一个物体,这点跟java中的Runnable和Callable是一样的。 其次,它表示的责任必须单一,如果有多个功能,我们应该去实现多个Mixin类。 接下来,Mixin类不依赖于子类的实现,且属于抽象类,本身不能实例化,也不能继承Mixin以外的类。 最后,子类即使没有继承Mixin类,也必须照常工作,只是部分功能缺少无法使用。 Java的接口,只提供了“规格”的多重继承。Mixin类则同时提供了“规格”和“实现”的多重继承,使用上相比接口会更加简单。 补充 在其他框架或者语言中,也有类似的Mixin功能,如Ruby,Django,Vue, React等等。 ———————————————— 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文链接:https://blog.csdn.net/u011544909/article/details/106890774
golang JSON read field from json import "github.com/tidwall/gjson" gjson.Get(jsonStr, "foo.bar.status").String() go json string 格式化 var str bytes.Buffer _ = json.Indent(&str, []byte(data), "", " ") fmt.Println("formated: ", str.String()) time.Time 序列化 https://www.cnblogs.com/chenqionghe/p/13409556.html json.Marshal(struct { *User Password bool `json:"password,omitempty"` }{ User: user, }) json.Marshal() // 序列化 + 格式化 resp2, _ := json.MarshalIndent(s, "", " ") json.Unmarshal() struct json tag https://colobu.com/2017/06/21/json-tricks-in-Go/ type Result struct { Count int `json:"count"` Data MyStruct `json:"data,omitempty"` } func main() { out := shellExec(shell) var result Result json.Unmarshal([]byte(out), &result) fmt.Println(result.Count) } gjson https://github.com/tidwall/gjson ...
mind map https://www.processon.com http://naotu.baidu.com/home plantuml xxx
msysgit Choose the Run Git from the Windows Command Prompt option Choose the Checkout as-is, commit as-is option
nexus OSS # docker docker run \ -d \ --name nexus \ -p 30081:8081 \ -p 30083:8083 \ -v /etc/localtime:/etc/localtime:ro \ -v nexus-data:/nexus-data \ -e INSTALL4J_ADD_VM_PARAMS="-Xms128m -Xmx512m -XX:MaxDirectMemorySize=256m" \ sonatype/nexus3:3.65.0 # podman podman run \ -d \ --name nexus \ -p 30081:8081 \ -p 30083:8083 \ -v /etc/localtime:/etc/localtime:ro \ -v nexus-data:/nexus-data \ -e INSTALL4J_ADD_VM_PARAMS=-Xms128m -Xmx256m -XX:MaxDirectMemorySize=256m \ sonatype/nexus3:3.39.0 config default username/password=admin/admin123 Blob Stores/Enable Soft Quota: 限制目录大小 download nexus-2.14.0-01-bundle.zip unzip and execute ./bin/nexus start add aliyun repo as proxy repository repository id: aliyun_repo repository name: aliyun_repo provider Maven2 ...
libvirt, virsh libvirt virsh: command line utility # archlinux install libvirt sudo pacman -S libvirt virt-install sudo pacman -S iptables-nft dnsmasq dmidecode systemctl status libvirtd sudo systemctl enable libvirtd --now sudo systemctl enable virtlogd --now sudo systemctl enable virtlockd --now sudo usermod -a -G libvirt $(whoami) # ubuntu install libvirt sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager sudo systemctl enable --now libvirtd sudo usermod -aG libvirt $(whoami) # libvirt commands virsh list --all virsh vncdisplay archlinux sudo virsh net-list --all sudo virsh net-start default # test virsh -c qemu:///system virsh pool-list --all virsh pool-define-as pool0 dir - - - - /home/wiloon/workspace/libvirtPool virsh pool-build pool0 virsh pool-start pool0 virsh pool-autostart pool0 virsh help pool virsh help pool-autostart virsh pool-autostart pool0 --disable # remove pool virsh pool-destroy pool0 virsh pool-undefine poolname vim /etc/libvirt/qemu.conf ...
Brasero Brasero是类Unix系统下的一个自由的光盘刻录程序,作为cdrtools,growisofs以及libburn (可选) 的图形化前端 (使用GTK+) 。 Brasero是Ubuntu和Xubuntu的GNOME桌面下的默认CD/DVD应用程序。 Brasero使用GNU通用公共许可证,是一个自由软件。
Moving The Ctrl Key http://emacswiki.org/emacs/MovingTheCtrlKey Microsoft Windows AutoHotkey On Windows you can use the AutoHotkey program which uses “scripts” to remap the keyboard. This method has a couple benefits. One is scripts can be compiled to a stand alone .exe file which can be executed on a machine that doesn’t have AutoHotkey. Another is, the key re-mapping can be set to only apply in emacs; the caps lock key will behave normaly in every other program. (If that’s what you want.) ...
git 冲突解决, conflict, «< === »> 远程文件覆盖本地文件 git pull 出现冲突后丢弃本地冲突文件修改,采用远程文件覆盖本地文件 git checkout git checkout test/src/main/resources/spring-shiro.xml 方法二 git pull 出现冲突后可以暂存本地修改 git stash ,然后git pull 更新代码,git stash list 可查看暂存记录列表,释放本地暂存 git stash apply stash@{0} ,出现冲突文件,找到并解决,然后可以提交git add . 加入索引库,然后本地提交git commit -m ‘注释’ 最后git push到远程 方法三 1.git pull 更新代码,发现 error: Your local changes to the following files would be overwritten by merge:pom.xml Please commit your changes or stash them before you merge. 这说明你的pom.xml与远程有冲突,你需要先提交本地的修改然后更新。 2.git add pom.xml ...
PCMCIA PCMCIA是英文"PERSONAL COMPUTER MEMORY CARD INTERNATIONAL ASSOCIATION"的缩写,PCMCIA定义了三种不同型式的卡,它PCMCIA (PC机内存卡国际联合会的缩写) 是一个有300多个成员公司的国际标准组织和贸易联合会,该组织成立于1989年,目的是建立一项集成电路国际标准,提高移动计算机的互换性。这种计算机要求强度高,能耗低,尺寸小,而且对这几条性能的要求都很高。由于可移动计算机用户的需求变了,所以PC卡的标准也相应地变了。1991年,PCMCIA定义了原本用于内存卡的68个脚的I/O连接线路标准。同时增加了插槽使用说明。生产商意识到软件需要提高兼容性,因而这项标准也就得到了相应的应用。近年来,PCMCIA意识到高速度的应用需求增加了,如多媒体和高速网方面。因此,制定了CardBus 和 Zoomed Video规范,该规范允许MPEG video 和10 Mbit 的以太网以极高的速度运行。因为速度不断提高,PCMCIA也就一直在补充这项规范,从而提高了兼容性并考虑到了一些其它的可移动机方面的问题,如3.3V操作和电源管理。今天,PCMCIA不仅促进了可移动计算机内PC卡的协同工作能力,而且提高了许多其它产品的协同工作能力,如数字摄像机、有线电视、set-top boxes和汽车。由于需求模块化外围设备的产品种类增加了,因而许多外设的兼容性也就提高了。因此,PCMCIA近来也就更改了自己的使命: “发展模块化外设标准,促进在全世界的应用。” PCMCIA的新任务典型的是小型结构分卡标准。PCMCIA在原有的PC卡标准的基础上增加了PC机小型结构分卡标准,现在PCMCIA已经发布并在维持应用微型卡标准。另外,PCMCIA即将发布智能媒体卡标准,该标准已经为当今最小的模块化外设提供了内存结构解决方案。 PCMCIA定义了三种不同型式的卡,它们的长宽都是85.6×54mm,只是在厚度方面有所不同。Type I是最早的PC卡,厚3.3mm主要用于RAM和ROM;Type II将厚度增至5.5mm适用范围也大大扩展包括了大多数的modem (调制解调器) 和faxmodem (传真调制解调器) ,LAN适配器和其它电气设备;Type III则进一步增大厚度到10.5mm这种PC卡主要用于旋转式的存储设备 (例如硬盘) 。 PCMCIA总线分为两类,一类为16位的PCMCIA,另一类为32位的CardBus。 CardBus 是一种用于笔记本计算机的新的高性能PC卡总线接口标准,就像广泛地应用在台式计算机中的PCI总线一样。该总线标准与原来的PC卡标准相比,具有以下的优势: 第一,32位数据传输和33MHz操作。CardBus快速以太网PC卡的最大吞吐量接近90 Mbps,而16位快速以太网PC卡仅能达到20-30 Mbps。 第二,总线自主。使PC卡可以独立于主CPU,与计算机内存间直接交换数据,这样 CPU 就可以处理其它的任务。 第三,3.3V 供电,低功耗。提高了电池的寿命,降低了计算机内部的热扩散,增强了系统的可靠性。第四,后向兼容16位的PC卡。老式以太网和Modem设备的PC卡仍然可以插在CardBus插槽上使用。 高版本的PCMCIA卡接口一般都可以很好地兼容低版本的卡。也就是说一个Type I插槽只可以插入一张Type I 卡;一个Type II插槽可以插入一张Type II卡或一张Type I的卡;一个TypeIII的插槽则除了可以插入一张Type III卡外还可以插入两张兼容的Type I或Type II卡。
非编程天才参与开源项目的14种方式 来源: http://blog.jobbole.com/16792/ 如果你想参与到开源项目中去,却又不知道从何入手,这里提供一些参考方法或许能给你提供一些帮助,哪怕你对你目前的技术还缺乏自信都不要紧。 开源软件已经改变了IT,甚至整个世界,正是因为有了你们,乐于奉献在开源事业中。不幸的是,很多人把参与到开源项目中想象成一个难以跨越的障碍一样,因此而退缩。我通常听到人们说他们很想参与到开源项目中来,但是因为以下的3个原因而打消了念头。 1. 我还不足够优秀 2. 我没有足够的是时间 3. 我不知道什么样的项目适合我 寻求机会参与到开源项目中去,你应该知道的三个基本原则: 1. 项目需要各种能力层次的专业人才。 2. 哪怕是微不足道的贡献也比没有好。 3. 从你正在使用的项目作为参与到开源的第一步 我从开源项目中所观察到最要命的想法是那些新人总认为要成为某种类型的天才程序员才能参与到开源中去,其实根本就不是这回事。当然,某些项目中的成员看起来就像摇滚明星,没错,他们确确实实是一个极具天赋的程序员,然而,我们中的绝大部分不是的。我们仅仅是那些只要把任务完成的人。有时我们做的付出的不需太多,有时我们需要花大把的时间,有时它就是编程,而有时它不是。 0. 加入邮件列表: 对于大多数项目,邮件列表仍然是项目开发沟通主要的渠道。在一个规模比较大的项目中通常有很多邮件列表可以选择,例如: PostgreSQL项目就有不少于12个面向用户的邮件列表和6个面向开发者的。我建议你关注最主要的几个面向用户邮件列表以及核心的开发者列表。 1. 关注博客: 博客一般由核心开发者维护,通常博客中包含项在未来版本的一些信息。如何获取这些信息呢?通常一个星级站点有包括来自很多相关项目的新闻或者博客词条,如果有一个星级站点,如: http://plant.gnome.org 或者 http://planet.MySQL.com ,那么你要做的仅仅是用Google搜索"planet <项目名>"。 2. 加入到IRC频道: 许多开源项目都有专门的互联网中继聊天(IRC)频道,用来为开发者和用户讨论开发问题。仔细查找项目站点中IRC频道叫什么。 3. 代码诊断: Bug通常很难报告出来,诊断快速处置bug有助于节省开发人员的时间。如果用户提出报告: "当我操作XX功能时,系统无法工作",你得花些时间解决这些问题。还是不是会重复出现?例如该类问题是否只是发生在某种浏览器不兼容?只在发行版有这样的问题还是其它的原因。 4. 关闭已修复的bug: 通常bug在代码库中修复了,但是在问题追踪系统中还没更新。清理掉这些杂乱的东西虽然耗时,但是对整个项目来说是值得的。 5. 测试beta版或者候选版本: 任何项目设计用于运行在多个平台时就有可能存在各种兼容性问题。当一个beta版或者候选版发布时,项目带头人希望能在不同的人和不同的平台上得到测试反馈结果,你就可以是其中之一。 6. 修复bug: 修复bug通常是贡献者开始接触代码的地方,非常简单,在问题追踪系统中找到感兴趣的bug,把bug修复,如果合适的话为代码的修复撰写文档。 7. 写测试: 绝大多数项目都有测试套件用来测试代码,很难想象测试套件中不能附加更多的测试在其上。使用测试覆盖工具诸如基于c的gcov、基于Perl的Devel::Cover,用来标识源代码没法通过测试套件测试到的范围,然后添加一个套件覆盖它。 8. 理性对待编译警告: 许多基于C项目的构建过程中经常会出现很多古怪的编译警告,这些警告通常不是错误,但是看起来像,太多的警告让编译器听起来就像在发假警报,仔细检查代码是否的确隐藏有bug。 9. 附上注释: 当你在深入研究代码时,你可能发现有疑惑的地方,如果感到疑惑,这对你来是一个机会,比别人也可能碰到同样的问题,给他们贴上注释提交补丁。 10. 创建例子: 一般项目都没有太多入门的例子,不管是web API、普通程序库、或者是GUI应用如Gimp、还是命令行工具,比起长篇的文档,一个恰当的例子能够更清晰更快速解释软件的使用方式。 11. 问题回答: 参与到社区最好的方式是帮助别人。回答问题,尤其是那些初次涉及的,这对于一个项目的成长很关键,即使你回答只是简单地"RTFM"(read the fxxk manual),每个人都要行动起来,项目如果要变得强大起来的话每个人需要动员起来。 12. 写博客: 如果你有博客,写下你使用项目的一些经验,记录你碰到的问题及解决的方法。你可以通过两种方式来提供帮助,一个是记住你身边帮助过你的人,另一个是记录下你将来可能会碰到的问题。 13. 改进网站: 很多程序员在图形设计方面显得非常糟糕,尤其是那些不能从设计部门得到帮助的项目网站。如果你有网页设计方面的技能,不妨改进下网站,网站作为项目的招牌,是值得花时间的。或许项目界面需要彻底改造,抑或仅仅是一个logo,这些是社区缺乏的技能,如果我能提供一些图形设计上的帮助,我会非常喜欢的。 有太多的方式参与到开源项目中,哪怕是我们写一个新产品的特性的历史回顾。每个使用开源项目的人都可以把技术带到社区和帮助开源成为IT产业中重要的一部分。 英文原文: Andy Lester 编译: 伯乐在线 – 刘志军
javac, java public class Foo{ public static void main(String[] args) { System.out.println("foo"); } } javac Foo.java java Foo https://zhuanlan.zhihu.com/p/36529847