rescue in receive 由于写ruby的时候感觉混身上下都拽起来了,所以比較喜欢用ruby写代码. 今天遇到了一个webdriver timeout的问题,问题本身还是由于我对webdriver不了解以及破文档导致的.首先我们把问题简化一下: driver = Selenium::WebDriver.for :safari driver.navigate.to "http://www.faraway.com" wait = Selenium::WebDriver::Wait…
linux下一个有意思的问题(文件名以短划线开头) 这本是无意中的一个发现. 在linux下,文件名中含有 - 是没有问题,但是如果文件名是以-作为第一个字符的,那么就比较麻烦了. 问题演示 看这里,以短划线开头的文件名似乎对mv cp  rm   等操作免疫了.利用这个特性可以制造出一些比较麻烦的文件或者文件夹来. o@o-pc:~$ ls -python.md o@o-pc:~$ -python.md mv:无效选项 -- p Try 'mv --help' for more informa…
Ruby on Rails website 的基础是 请求-返回 循环. 首先是浏览器请求服务器, 第二步,Second, in our Rails application, the route takes the request and finds the right Controller and method to handle the request. 第三步,控制器拿到相关数据并发给View模块. 最后,View模块把数据打包好,并且发回给浏览器显示. ----- 搭建开发环境: Cre…
我最近发现了一个有意思的CSS样式库,和Bootstrap相似,但是它是专门的一个高度可定制的,免费的并且开源的按钮CSS样式库,这里附上它的网址:http://www.bootcss.com/p/buttons/ 接下来介绍怎么使用这个CSS样式库,如上图,进入网址后,点击下载,会出现一个全是代码的网页,然后鼠标右键点击全选,复制,这里的代码就是这个BUTTONS的CSS样式代码, 再接下来就是在你的编辑器中创建一个css文件,然后将所复制的代码全部粘贴上去即可,然后就可以编写你的HTML代码…
今天阅读了关于Python函数式编程的系列文章,地址在这里: http://www.cnblogs.com/huxi/archive/2011/06/24/2089358.html 里面提到了四个内建迭代函数:reduce.map.filter.zip.其中zip是供同时迭代多个迭代器用的,这里就不讨论了.主要讨论剩下的三个. 我发现一个有意思的事情,就是剩下的三个函数,reduce.map和filter,三者可以相互转换.例如以reduce为基础,可以实现map和filter函数如下: def…
You enter a URL into the browser输入一个url地址 The browser looks up the IP address for the domain name浏览器查找域名的ip地址(浏览器缓存→系统缓存→路由器缓存→ISP DNS缓存→从根域名服务器递归搜索) The browser sends a HTTP request to the web server浏览器给web服务器发送一个HTTP请求 The facebook server responds…
最近涉猎自动化太少了,以至于都不经常更新了.最近一个朋友在做移动端自动化的时候遇到了一些小问题来找我解决.本人也不是很精通,只是接触的时间长了一点了.下面就是一些问题和解决过程: 1.她刚过来的时候,碰到的第一个问题是打开appium后启动脚本,手机没反应.如果以后再遇到这样的问题: 解决方法:首先先验证自己的软件是否全部安全完整,环境变量是否全部配置完全.如果都配置完全,就不会存在这种问题了,所以说在布置环境的时候一定要小心一点,宁可慢一点也一定要检查全. 2.他们公司产品老是弹出更新弹框,就…
ecshop运行超过30秒超时的限制解决办法 ECSHOP模板/ecshop开发中心(www.68ecshop.com) / 2014-06-04 ecshop运行超过服务器默认的设置30秒的限制时会出现类似的报错 Fatal error: Maximum execution time of 30 seconds exceeded in \includes\lib_insert.php on line 16 一.修改php.ini找到max_execution_time = 30 ;修改成max…
WebClient的超时问题及解决 转自:http://blog.163.com/xiaozhi797@126/blog/static/62440288201112245345838/   Webclient在下载请求时无法设置请求超时时间和请求读写超时时间.WebClient在异步下载时遇到网络不通等问题时没有响应超时造成app挂起. 1.Webclient请求超时设置      重写Webclient的GetWebRequest方法,为HttpWebRequest添加请求超时及读写超时   …
pip 安装出现超时问题的解决 我们在用默认的pip源进行安装python库时,会出现超时问题下载不了,如下图显示所示: 那么我们应该如何解决呢? 方法: 在自己电脑的  C:\Users\yanjiangdi001  路径下新建pip文件夹,如下图所示:(也可以直接下载,百度云链接:https://pan.baidu.com/s/1whZ-yemc9bjVosbhO1gfVQ  密码:fd83.下载好后放入对应目录中,直接按照后续步骤进行使用) 然后在文件夹中新建pip.ini文件,在文件中写…
android一个下拉放大库bug的解决过程及思考 起因 项目中要做一个下拉缩放图片的效果,搜索了下github上面,找到了两个方案. https://github.com/Frank-Zhu/PullZoomView 这个库本来做的还可以,不过有个缺陷就是,当scroolview滑动到底部,再向上拉动,会导致放大效果不连续,需要重新释放,再次下拉,这对于追求细节的我来说,不可忍受.看了半天他的代码,感觉他的实现方式很难修改为我想要的效果,后来就放弃了. https://github.com/G…
ORACLE里怎么能判断一个日期类型的字段是否为空,解决方法:is null,解决方法:判断什么null都可以用is null.…
关键词:sqllite.meminfo.slabinfo.alloc_calls.nand.SUnreclaim等等. 下面记录一个由于驱动导致的内存泄漏问题分析过程. 首先介绍问题背景,在一款嵌入式设备上,新使用sqllite库进行数据库操作,在操作数据(大量读写操作)一段时间之后,发生OOM现象. 然后OOM会选择进程kill,即使系统中不剩什么进程,仍然内存紧张. 下面就介绍从上往下查找问题,然后在底层掐住RootCause,进而解决问题的分析过程. 1. 问题初步分析 首先怀疑的是sql…
一个C++源文件从文本到可执行文件经历的过程 以Hello World为例进行说明 首先我们编写一个cpp源程序 test.cpp #include <iostream> using namespace std; int main() { cout << "hello world" << endl; return 0; } 使用g++编译命令时 g++ -o test test.cpp Gcc编译器会将源程序test.cpp 变为一个test可执行文…
前言 testerhome: http://testerhome.com/topics/1480 对于一个差点脱离前沿技术人,想要学习ruby,就意味着要放弃熟悉的操作系统windows,熟悉的ide-eclipse,更重要的是要从java这种重量级编译型语言的编程思想强行转换为ruby这种轻量级解释执行语言编程思想.这个过程远比我想象的要难,总是抱着以前以java编程思想,通吃vb,C#的傲慢,虽然js还算可以,但js的编程思想与java也是很像的,经过这次打击让我意识到我掉队了.但仍有一部分…
ruby中有很多经典的驱动器结构,比如枚举器和生成器等.这次简单介绍下生成器的概念.生成器是按照功能要求,一次产生一个对象,或称之为生成一个对象的方法.ruby中的连续体正好可以用来完成生成器的功能.连续体说起来晦涩,其实还是很简单的,它有3个特点: 1. callcc方法会给代码块传一个连续体对象,你可以保存该对象; 2. 当调用连续体的call方法时指令流会跳转到callcc方法之后; 3. 如果给连续体的call方法传递对象,则callcc方法会返回该对象,如果不传递对象,callcc会返…
python socket.error: [Errno 10054] 远程主机强迫关闭了一个现有的连接.问题解决方案: 前几天使用python读取网页.因为对一个网站大量的使用urlopen操作,所以会被那个网站认定为攻击行为.有时就不再允许下载.导致urlopen()后,request.read()一直卡死在那里.最后会抛出errno 10054. 这个错误是connection reset by peer.也就是传说的远端主机重置了此连接.原因可能是socket超时时间过长:也可能是requ…
1.问题 首先把问题放出来,昨天看了一个掘友发的一个问题,然后跟我同事一起研究了一下,没找出来是为什么,然后我回来一直在想为什么,然后各种找资料研究,从各个方面找为什么,比如js上下文,作用域,js垃圾回收,堆栈调用情况等等. 2.js断点调试找答案 首先如果不看上面的图,以你现在知道的js知识,你觉得打印出来应该是什么.第二张图其实打印出来的结果在意料之中,原因就是函数声明提升,没问题,但是第一张图为什么呢?这里可以发散一下思维,比如说是不是在块作用域中,变量和函数之间存在某种互相覆盖的问题啊…
买域名的时候看到的一个验证码,感觉蛮有意思的(https://www.namesilo.com/create_account.php),这个质感看上去就不一样: 查看页面源码,果然这个验证码是用html的标签拼接出来的: 当然这种验证码是比较容易破解的,它是请求这个接口拿到的验证码html数据: https://www.namesilo.com/captcha_generate.php 返回的数据被url编码了: %3Cstyle%3E.capc1%7B%20background-color%3…
这一周线上碰到一个诡异的BUG. 线上有个定时任务,这个任务需要查询一个表几天范围内的一些数据做一些处理,每隔十分钟执行一次,直至成功. 通过日志发现,从凌晨5:26分开始到5:56任务执行了三次,三次都因为SQL查询超时而执行失败,而诡异的是,任务到凌晨6:00多就执行成功了. 每天都是凌晨五点多失败,凌晨六点执行成功. 点开异常日志一看是这样的: 总结来说就是MySQL查询超时. 像这种稳定复现的BUG,我原以为只需三分钟能定位,没有想到却耗费了我半天的时间. 排查之路 Explain 看到…
最近开发的一个项目,后端采用thrift框架来提供rpc服务(java语言实现),然后前端采用php语言来生成thrift client调用后台RPC服务.由于某些原因,上周我把thrift定义文件中一个struct名称修改了,当然也没多想,顺手就把java服务端重新编译部署,而php前端的部署未做任何变化,按常规理解,服务契约中的类名,从A改成B,服务的调用方理应同步更新部署,否则感觉应该会出错. 然而,美好的事情就这么发生了,一切运行正常,依旧丝丝顺滑! 再然后,我就开始思考人生,重新理解…
问题:如何实现以下函数? add(2, 5); // 7 add(2)(5); // 7 第一个就不用说了,很简单,关键是看第二个,add(2)(5),可见add(2)应该返回的是一个函数,这个函数再传入一个参数5,再与之前传入的参数相加: 所以,我觉得可以这样写: var add = function(a){ var t=a;//保存a参数 return function(b){return t+b};//返回的函数可以访问t的值 } 然后add(2)(5)试试,结果是7…
DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("newCommandTimeout", 180); AndroidDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities); 可以通过newcommandtimeout将超…
首先,看看下面一个js例子,你觉得会输出什么呢? function fn(a){ a(); function a(){ console.log(2); } var a = function(){ console.log(3); } } fn(function(){console.log(1)}); 如果你看不出来,可以copy到浏览器中试试喔. 本人已经在IE,Firefox,360浏览器下测试过,这段代码都输出2.这时,一些人就会有疑问,为什么呢,为什么不是1和3呢,其实,是这样的: var…
总结 利用Arrays.asList方法返回的List是不允许add和remove的,这种list的长度不可变,因为底层依然是写数组. Arrays.asList的返回值是调用是传入T类型的List,所以传入啥,返回啥的列表 T... a 底层本来就是转换为T[] x的数组,所以如果传入的T是数组,最后的底层参数是二维数组T[][] y. Arrays.asList(T... a)方法的作用 将数组转为集合的方法,返回的是List集合.和Collection的toArray对应,是数组和集合间相…
哈哈,刚才同事给我讲了一个hta 程序,他自己说最近在学html5 开发坦克大战,不错,这种好奇心, 好学的精神值得我这个程序员学习,感觉他的视野面比我这个程序员还广,有点小惭愧. 什么是hta 呢?(其实说白了,就是html+javascript +css)只不过,宿主环境不是浏览器,而是桌面程序!! 百度百科: HTA是HTML Application的缩写(HTML应用程序),是软件开发的新概念,直接将HTML保存成HTA的格式,就是一个独立的应用软件,与VB.C++等程序语言所设计的软件…
本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 最近比较迷Python,仿照<Python编程快速上手>8.5写了一个随机出卷的小程序.程序本身并不难,关键是解决问题的思路,还有就是顺便复习了一下全国地名(缅怀一下周总理). OK其实还是有一个难点的,就是关于Python的中文编码问题,如何把中文字典输入到txt然后再把它读出来,程序中借用了json方法,而且在输出时decode.encode,有一些参考的价值吧.废话不说了,上程序.…
题意: 一颗二叉树可以看成一个杠杆,左右俩边有重量,有到支点长度,判断整个树是否平衡(根据杠杆原理),如果当前结点有左孩子,那么当前左边的重量就是左孩子的总和,右边同理 递归,发现scanf和cin的效率差好多. AC时间:20ms(scanf),80ms(cin) #include<stdio.h> #include<iostream> #include<queue> #include<memory.h> using namespace std; cons…
/* * data_process.c * * Created on: 2018年7月5日 * Author: admin */ #include <ti/sysbios/knl/Task.h> #include <ti/sysbios/knl/Clock.h> #include <ti/sysbios/knl/Event.h> #include <ti/sysbios/knl/Queue.h> #include <ti/sysbios/knl/Sem…
昨天,在百度的 java吧 看到有人问关于 HashSet 的问题.下面是他贴出的代码: import java.util.HashSet; public class JavaTest { public static void main(String[] args) { HashSet<Person> hs = new HashSet<Person>(); Person p = new Person("张三", 21); hs.add(p); p.setName…