我的治牙经历
2015.1.12,生日,去做了第一轮刮治的第一次治疗。痛不欲生啊。
11月的时候查出来牙周有问题,其实很早就觉得不好了,洗牙之前没去看。洗牙的时候拍了牙片,槽骨吸收的很厉害了。中间又拖了两个月,一个是忙,一个是没挂上号,终于上周去北大口腔挂了号。医生说很严重,侵袭性牙周炎,牙周袋太深,可能还是得手术。
今天第一次刮治。感慨牙这个东西,不意识到的时候不会觉得他的重要,上周探完牙周袋深度就疼了一个周,这次更是痛不欲生的感觉,打了麻药还是这样。而且奇怪的是手刮并不怎么疼,疼的还是超声洗牙石的部分。唯一的安慰是大夫态度都不错。牙科的大夫mm居多,虽然带着口罩都看不清楚长相…
以前还是不重视啊。家庭上也整体不重视。中国还是有很多落后的地方,理念上这么多年都没有更新过来。联想到公务员热和中...
在命令行使用Shadowsocks翻墙
拜GFW所赐,连tm boot2docker都连接不上了。好在有shadowsocks的服务,可以转成http proxy给命令行使用。
首先安装privoxy。Linux下直接apt-get install privoxy,然后编辑配置文件(etc/privoxy/config):
forward-socks5 / 127.0.0.1:1080 .
listen-address localhost:8118
#local network do not use proxy
forward 192.168.*.*/ .
forward 10.*.*.*/ .
forward 1...
Java 中相等的比较
遇到如下一个问题,java中使用复杂类型做Hashkey的时候,构造另一个值相同的对象作为key无法获取map的value。原因其实是java的==判断的依据是两个引用是否指向了同一个对象。实际调用了hashCode函数。内置对象的逻辑相等比较需要使用equals,比如String。而对于非内置对象,equals也同样调用了hashCode来判断相等。
所以对于需要逻辑相等判断的对象,需要override两个函数,比如如下一个getkey的类定义了如何从Map中根据path和type得到一个唯一的对象:
class ZkEventKey {
EventType type = null;
String path = null;
ZkEventKey(EventType...
eclipse多命令行窗口
有时候需要在eclipse中同时运行客户端程序和服务器程序,开始都是一个在eclipse里面运行,另一个在命令行单独启动,未免不方便。后来发现,其实可以直接在eclipse中运行两次。调试视图会有两个显示,同时新建一个console窗口,关联另一个实例的显示就可以同时监视两个程序的输出了。
Java和C++继承上的一点不同
之前没注意过这里:
java继承的时候只会隐藏父类同名同类型的函数。C++直接隐藏了同名的所有函数,如下:
public class BaseClass {
public void Print(String str){
System.out.println("String" + str);
}
public void Print(int num){
System.out.println(num);
}
}
public class TestDerived extends BaseClass {
public void Print(String str) {
System.out.println("String" + str);
}
public stati...
使用shadow socks翻墙
拜GFW所赐,连tm boot2docker都连接不上了。而且最近红杏抽风,遂决定买shadowsocks服务翻墙。服务直接在官网购买,90一年,比红杏略便宜一点,主要还是可控性比较大,因为是socks5的代理。
这里购买服务,一年99,这个优惠码可以再打一点折imouto985。之后进入后台可以看到分配给自己的密码,服务器主要是日本,美国和新加坡的,实测貌似日本的响应更快一点。
mac下下载了客户端直接打开配置好地址就能用,linux下需要自己配置代理。
首先下载安装node.js
wget http://nodejs.org/dist/v0.10.35/node-v0.10.35.tar.gz
tar zxvf node-v0.10.35.tar.gz
...
java中重用对象的bug
首先这不是java编译器的问题,就是写代码的时候大意了。
有这样一个函数
int parse(String msg, Message out);
解析一个String,返回一个结构体。这么做的目的主要是避开try catch的性能问题,通过返回码来处理异常。这里就很容易出现这样的用法了:
Message msg = new Message();
for (xxxx){
if (0 == parse(str, msg))
}
当时觉得还挺好,复用了一个对象。实际明显有问题的,这个对象的生命周期不见得只在for循环内部,一旦引用被传递出去,就会有悬挂(java里是不是不这么叫)的问题。多个引用指向了一个对象,计算结果是不可预测的。
主要问题是j...
506 post articles, 64 pages.