json in java

参考资料: http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/23/3096001.html

测试IDE: Intelijj

坎坷:

  1. 按照文档,下载了json-lib-2.4-jdk15.jar
  2. 开始写代码 (忘记了下载其他的依赖了)
  3. 编译,没有问题
  4. 执行,类找不见
  5. 由于不熟悉,浪费了一些时间
  6. 解决办法:
    1. 把异常中找不见的类放在程序的上面import一下(当然,肯定没有该类),IDE会提示类找不见,但是提示中可以“find in web”
    2. 然后就“find in web”,下载后,继续允许,继续报“类找不见”(当然,是其它的类),继续步骤1,直到不再报错

 

输出结果:

 

MAC 上的iptable

mac上原本使用ipfw来完成类似iptable的事情,但是

The ipfw command is deprecated in OS X Mountain Lion and later, but it has not been removed from Mavericks. If you run man ipfw, a message will appear saying: This utility is DEPRECATED. Please use pfctl(8)instead. While you may want to do port forwarding with pfctl to future proof your solution, these instructions showing how to use ipfw to do port forwarding will still work on OS X Mavericks.

http://knowm.org/port-forwarding-80-to-8080-using-ipfw-on-mac-os-x/

关于pfctl的使用: https://gist.github.com/kujohn/7209628

arp命令详解

  1. arp表项中只能显示本网段的IP地址的信息(别问为什么),不要试图看到非当前网段的IP地址的mac地址信息

  1. (imcomplete) 的意思就是这个IP的mac地址获取不到(可能机器没有启动呢),所以,HWtype、HWaddress、Flags、Mask都是没有的,但是根据路由表信息可以知道Iface是p3p1

  1. arp -a   显示的更加humanable ,这里试图显示每个IP的主机名,如果查不到就显示“?”, 一般我们不关心主机名,所以可以直接arp   或 arp -n

linux 之 proc

  1. /proc/pid/fdinfo/   记录了打开的fd的信息,位置信息(pos);
    1. 如果进程正在处理一个大文件,可以通过pos信息了解进程处理到哪里了
  2. /proc/pid/io  记录了该进程读写io的信息,可以方便知道是哪个进程在频繁地写磁盘了

 

参考资料:

linux在线man: http://man7.org/linux/man-pages/

proc: http://man7.org/linux/man-pages/man5/proc.5.html

linux 之环境变量

测试

a.sh

 

b.sh

结果: 没有A=A ,也没有 a=a

 

结果: 有A=A, 没有 a=a

结论

  1. 环境变量和变量是不同的, /proc/pid/environ 中只是“环境”变量,不同变量是不会体现在该文件中的
  2. export导出的变量,在后续执行的shell进程中可以看到,不导出则看不到
  3. 尽管b.sh中export了b变量,a.sh中也是看不到的,因为b.sh是一个新的进程

脚本中执行其它脚本的几种方法:

  1. 如上面a.sh中执行b.sh ,可以理解是a.sh调起了一个新的进程来执行b.sh的
  2. 在a.sh中如果用source(或 . )来执行 b.sh ,则b.sh中将可以看到A,也可以看到a,因为这样的话b.sh并不是一个新的进程,而是在当前进程中执行的
  3. 在a.sh 中如果用exec来执行b.sh,则b.sh经在当前进程中执行,但是不同于source的是,b.sh下面的命令将不会被执行,进程将随着b.sh执行的结束而结束

 

 

自动代理设置

自动代理可以通过dhcp、dns两种方式实现,参考资料: https://www.ibm.com/developerworks/cn/linux/1309_quwei_wpad/

 

基本原理:

  1. 通过DHCP的实现方式:
    1. DHCP时,可以下发自动代理配置的url,如: http://172.16.1.1/wpad.dat
  2. 通过DNS的实现方式:
    1. 浏览器会自动查找 wpad的A记录,如果能查到,则通过 http://wpad/wpad.dat 来下载自动代理脚本 (当然,你也可以设置 wpad的hosts)

更多参考: http://findproxyforurl.com/deploying-wpad/

关于设置代理、设置pac文件、设置wpad的一些比较: http://findproxyforurl.com/why-pacwpad/

pac脚本(或wpad)文件可以对相同的资源设置多个代理,方便failover

pac脚本支持的函数: http://findproxyforurl.com/pac-functions/

关于dhcp方式、dns方式的比较: 浏览器普遍支持dns实现方式,部分浏览器(Firefox)不支持dhcp实现方式: http://findproxyforurl.com/browser-support/