Monthly Archives: April 2015


申请总结 — 最终去向 耶鲁大学

基本信息 浙大计算机专业本科,竺可桢学院混合班 GPA: 3.92 / 4 Top 2% in CKC TOFEL: 105 GRE: 152 + 170 + 3.0 经历:国家奖学金,大三在香港大学交换,无论文,无实习 推荐信:香港大学工程学院副院长 个人主页: www.bo-song.com 申请方向 美国CS Master,DIY申请。 申请结果 Accept: Yale CS MS Admission: CMU MIIS, Cornell CS MENG, Yale CS MS, UCSD CS MS, USC CS MS Rejection: CMU MS CS, CMU […]


【实习日记】在Tomcat上部署Spring boot

用Spring Boot开发的Web工程,在本机的Eclipse中Run as Spring Boot可以跑通,但打包成war在Tomcat上却跑不通。 首先这篇文章介绍了部署Spring Boot到Tomcat上的一般方法。但是我的程序抛出了一些奇怪异常。 java.lang.NoSuchMethodError: org.springframework.util.ClassUtils.isPresent(Ljava/lang/String;Ljava/lang/ClassLoader;)Z 一番搜索之后,发现了这篇文章。于是怀疑是版本冲突,Spring过低的原因。 但自己并不知道如何确定工程中Spring的版本,pom.xml中并没有给出版本号。 <?xml version=”1.0″ encoding=”UTF-8″?> 4.0.0 <groupId>org.test</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name>demo</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.2.3.RELEASE</version> <relativePath/> <!– lookup parent from repository –> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <start-class>demo.DemoApplication</start-class> <java.version>1.7</java.version> <hibernate.version>4.3.5.Final</hibernate.version> <tomcat.version>7.0.59</tomcat.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!– […]


【实习日记】Spring中JSON与类的绑定

1. 设计与前端交互的JSON接口(登陆与注册部分) 参考了这个JSONAPI设计规范 http://jsonapi.org/ 2. 用Wireshark抓包,分析本机发出的HTTP请求是否带上了要求的HEADERS 3. spring request得到的response不能直接绑定成对象,需要先用string接收,然后用jackson转换 import com.fasterxml.jackson.databind.ObjectMapper; ObjectMapper mapper = new ObjectMapper(); try { ress = mapper.readValue(reStr, Response.class); System.out.println(ress.getCode()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } 在jackson转换时,需要把映射类的setter和getter函数写好。否则会转换错误 如果json中没有对应的变量值,jackson会把相应的成员变量置为null。  


2015杭州出国留学体检&疫苗攻略

办理地点:杭州市中河中路230号 浙江国际旅行卫生保健中心 办理时间: 体检:周一至周五 上午8:00-10:45 疫苗:周一至周五 下午2:30-4:00 所需材料: 1. 身份证原件; 2. 四张两寸白底照片; 3. 国外学校发给你的疫苗、体检表格; 4. 600+的现金。 学校表格一般长这个样子,可以在checklist或邮件中找到 注意事项: 1. 早上体检需空腹,因为要验血验尿; 2. 如果你还能找到出生时的接种证,请带着,可以让你少挨几针。否则需要再打一遍; 3. 杭州打不了TD疫苗,推荐到美国接种; 4. PPD不能在周四打,因为需要在48-72小时后再去检查皮试结果; 5. MMR需要打两针,且需间隔28天以上,请合理规划时间; 6. 如果你在浙大玉泉,推荐UBer过去。20分钟,11元左右。(30元优惠码BOS95)^^ 流程: 1. 先到一楼的问询窗口把体检、疫苗表格给工作人员,她会帮你看需要体检哪些项目,注射哪些疫苗; 2. 到二楼进行体检项目。按着她给你的表格背面顺序来。全程大约20分钟; 3. 下午到二楼进行疫苗注射。全程大概5分钟。   本文可随意转载。   祝大家扎针愉快。   2015.4.21 于浙大玉泉


【实习日记】Spring MVC的数据库操作,与易信IM对接

一、Spring MVC的数据库操作 这篇博文写的很好,例子很经典: http://blog.netgloo.com/2014/10/27/using-mysql-in-spring-boot-via-spring-data-jpa-and-hibernate/ 简单来说,对于一个形如 ========== int | varchar id  | name ========== 这样的数据表单,我们先构建一个对应的Model类 @Entity //标定该类是一个Model类 @Table(name = “user”) //标定该类在数据库中对应的表单名字为user Class User{ @Id //自动生成的id主键 @GeneratedValue(strategy = GenerationType.AUTO) private long id; @NotNull //name字段非空 String name; Public User(){} //Getter and Setter methods } 需要说明的是,该Model类是一个Bean。所以必须有默认的构造函数(即使它什么也不做),也必须要有相应所有private变量的setter和getter函数,这个可以在eclipse的source->Generate getters and setters 中自动生成。 然后是构建该数据表单的操作接口。 注意,我们在这里应用了Hibernate的DAO操作。避免了JDBC直接输入SQL字符串。 这样做有两个好处, 一是在更高的层级上进行数据库操作,表单直接对应一个Model类,表单中的一行直接对应一个Model类的实例。 […]


配置wrtnode作为无线中继

首先是wrtnode官网的开箱教程,其中“不联网不幸福”一节讲述了如何将wrtnode连入一个现有的wifi,并再作为AP供其他客户端连接的方法。 http://wiki.wrtnode.com/index.php?title=Starting/zh-cn#.E4.B8.8D.E8.81.94.E7.BD.91.E4.B8.8D.E5.B9.B8.E7.B3.8A 但是DNS没有配置成功。表现为,直接ping ip地址能够ping通,但ping网址却会报错。 解决方法在这里: https://forum.openwrt.org/viewtopic.php?id=22624 简单来说 修改/etc/config/dhcp文件,使它和下面的样子类似 config ‘dhcp’ ‘lan’ option ‘interface’ ‘lan’ option ‘start’ ‘100’ option ‘limit’ ‘150’ option ‘leasetime’ ’12h’ list ‘dhcp_option’ ‘6,10.10.0.21’ 其中最主要的是这一行 list ‘dhcp_option’ ‘6,10.10.0.21’ 6表示配置dhcp下客户端的dns服务器地址,后面的’10.10.0.21’是你的dns服务器地址,在浙大玉泉,它对应的是10.10.0.21. 关于其他的dhcp序号和他们所对应的含义,在这里能够查询到 dnsmasq –help dhcp 配置完毕后输入nr进行网络重启,然后发现可以连上网络了。


[leetcode] Remove Duplicates from Sorted List II

Remove Duplicates from Sorted List II Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list. For example, Given 1->2->3->3->4->4->5, return 1->2->5. Given 1->1->1->2->3, return 2->3. 困倦时不要解题,这题做了3遍才AC。 一个bonus,删掉多余的node,以免内存溢出。 我用了superHead的技巧,不用再单独判断链表的起始情况。 查看当前节点和下一个节点,如果相同,将isDuplicated置1.当遇到当前节点和下一节点不同时,看isDuplicated的值,如果是1,则忽略掉它,把isDuplicated置0.如果是0,证明当前节点没有重复,连入结果链表中。 /** * Definition for singly-linked list. * struct ListNode { […]


理解RESTful架构

刚刚读了一篇博文,关于RESTful架构的理解。觉得讲得不错,作一下笔记。 原文链接:http://www.ruanyifeng.com/blog/2011/09/restful.html REST的全称为Representational State Transfer 表现层状态的转化。 实际上这句话省略了一个主语,就是resource。 资源的表现层状态的转化。 资源是一种信息实体,它可以有多种外在的表现形式,我们把资源具体呈现出来的形式,叫做它的表现层。 互联网通讯的HTTP协议,是一个无状态协议。如果客户端想要操作服务器,必须通过某种手段,让服务端发生状态转化,这种转化是建立在表现层之上的,所以就是表现层状态转化。 HTTP协议里有四个表示操作方式的动词:GET,POST,PUT,DELETE。 GET用于获取资源 POST用于新建资源(也可用于更新资源) PUT用于更新资源 DELETE用于删除资源。 设计误区 URI代表的是一种资源实体,客户端与服务端之间,传递这种资源的表现层。 所以,URI中不应包含动词。动词应该放在HTTP协议中。 比如,某个URI是/posts/show/1其中show是动词,这个URI就设计错了。应该用GET表示show这个动作,URI应该写成/posts/1 如果一些动作是HTTP那四个动词表示不了的,那应该把动作做成一种资源。比如网上汇款,从账户1向帐户2汇款500元。 POST /accounts/1/transfer/500/to/2 正确的写法应把transfer改为名词transaction。把具体的信息写在post数据里。资源不能是动词,但可以是一种服务。 POST /transaction from=1&to=2&amount=500.00   需要指出,HTTP的四种动作中。GET,PUT,DELETE,HEAD,是幂等(Idempotent)的。无论对一个资源操作了多少次,返回的数据均相同。 评论补充 楼主的理解非常的好, 有一些我想补充, 顺别回答其它一些朋友的问题. 根据理查德森模型 (http://martinfowler.com/articles/richardsonMaturityModel.html), REST架构的成熟度有3个等级: Level 0 POX (这个就不算REST了) Level 1 Resources Level 2 Http verbs Level 3 Hypermedia Controls […]