memo 1

该系列是用来记录最近学到的琐碎的东西。

1)解决在rails或sinatra中出现的OpenSSL::SSL::SSLError错误

比如想要调用twitter的api得到auth授权的时候,会出现这个错误

1
OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed)

解决方法是,在需要的代码(比如config/initializers/devise.rb)中加上如下代码

1
2
3
4
5
6
7
8
require 'openssl'

module OpenSSL
module SSL
remove_const :VERIFY_PEER
end
end
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE

2)在Firefox下,通过jquerytextarea控件赋值不是用.val()方法,而是用.text(),不过,得到值的话还是老实的用.val()。。。

3)在ruby中用<<-'title'的方式给string变量赋值的时候,该文字会保留包括缩进等格式,因此不需要对这部分代码进行格式化。

4)在Objective-C中用到反射的话,首先引入头文件objc/runtime.h后,按照如下代码即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#import <Foundation/Foundation.h>  
#import <objc/runtime.h>

int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

//定义类名
NSString *className=@"Member";
//定义方法名
//注意:方法名后面要根据参数来设置,这里的setName:,表示setName
// 方法后面有1个参数
NSString *methodName=@"setName:";

//取得类并分配内存和初始化
id obj=[[NSClassFromString(className) alloc] init];
//调用类方法
[obj performSelector: NSSelectorFromString(methodName) withObject:@"Tom and Jerry."];
//显示
NSLog(@"%@",[obj name]);

//定义类属性的数量
unsigned propertyCount;
//获取对象的全部属性并循环显示属性名称和属性特性参数
objc_property_t *properties = class_copyPropertyList([obj class],&propertyCount);
for(int i=0;i<propertyCount;i++){
objc_property_t prop=properties[i];
NSLog(@"property:%s",property_getName(prop));
NSLog(@"property_getAttributes:%s",property_getAttributes(prop));
}


[pool drain];
return 0;
}

5)判断当前使用的系统

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def os
host_os = RbConfig::CONFIG['host_os']
case host_os
when /mswin|msys|mingw|cygwin|bccwin|wince|emc/
:windows
when /darwin|mac os/
:macosx
when /linux/
:linux
when /solaris|bsd/
:unix
else
raise Error::WebDriverError, "unknown os: #{host_os.inspect}"
end
end

6)在sinatra项目中使用puma来当服务器的话,有两个方法

1.在configure块中写上

1
2
3
configure do
set :server, :puma
end

2.在config.ru文件的第一行写上#\ -s puma

PS:这个服务器比自带的还好用啊,而且在windows下也能使用,强烈推荐

7)在ios中,让自己的app调用chrome而不是safari来打开网页的做法,请参照Opening links in Chrome for iOS这篇文档

这次就先写那么多吧,下次再见

:wp