Posts List

搭建简单的Spring MVC应用

Spring MVC是Spring框架提供的构建Web应用程序的全功能MVC模块。功能强大,使用方便,只要是同网络应用相关的,无论是有同用户互动的(带UI的)或者没有互动的情况,Spring mvc都是种成熟、功能齐全的架构。 本文以一个欢迎页面为例,使用两种方式搭建Spring MVC应用: 基于xml配置与DispatcherServ ...

ssh连接保持

ssh是Secure Shell的缩写, 是一个应用层的加密网络协议, 它不只可以用于远程登录, 远程命令执行, 还可用于数据传输。 ssh连接到服务器后,默认情况下,一段时间后就自动中断,严重影响效率,不过可以通过客户端ssh的~/.ssh/config文件来配置连接保持: Host * ServerAliveInterval 50 ServerAliveCountMax 6 ForwardAgent yes CheckHostIP no Compression yes ControlMaster auto ControlPath /tmp/ssh_connection_%h_%p_%r.sock ...

Objective-C之 xcode工程、动态库与rpath相关配置

本文整理xcode工程配置,模块间依赖配置,安装和加载路径等,同时介绍关于引用第三方dylib或framework的注意点。 Build Settings中的变量@rpath、@loader_path、@executable_path @executable_path 这个变量表示可执行程序所在的目录. 比如 /path/QQ.app/Contents/MacOS/ @loader_path 这个变量表示每一个被加载的 binary (包括App, dylib, framework, plug ...

基于maven的Spring REST风格应用示例

本文按照Spring入门文档 Building a RESTful Web Service 的示例,基于maven来部署应用,并整理了关于IDEA和远程调试相关的配置。 应用部署步骤 部署工程 可以直接从git拉取工程 git clone https://github.com/spring-guides/gs-rest-service.git 也可以很方便的通过手动创建maven工程 1、创建目录 mkdir -p src/main/java/hello 2、创建 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.springframework</groupId> <artifactId>gs-rest-service</artifactId> <packaging>jar</packaging> <version>0.1.0</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.2.5.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <properties> <java.version>1.8</java.version> </properties> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <repositories> <repository> <id>spring-releases</id> <url>https://repo.spring.io/libs-release</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>spring-releases</id> ...

Objective-C之 数据结构

本文整理一些Objective-C中常用的数据结构,特别是一些特殊用法的注意点,如自定义类型作为NSMutableDictionary的key;默认情况下容器都是持有容器元素的引用计数的,后面也会介绍NSMapTable如何支持弱引用。 NSString 初始化 NSString * str = @"hello"; NSString * str2 = str; 与C++的std::string相互转换 NSString * str = @&#3 ...

Wireshark常用命令

Wireshark是分析和学习网络问题的利器,本文整理了一些Wireshark的常用操作和过滤配置等。 过滤器 用Wireshark时最常见的问题,是当您使用默认设置时,会得到大量冗余信息,以至于很难找到自己需要的部分。这就是为什么过滤器会如此重要。它们可以帮助我们在庞杂的结果中迅速找到我们需要的信息。 捕捉过滤器:用于决定 ...

tcp服务器与客户端

本文整理下tcp连接的基本使用,基本的函数使用,最后整体上通过一个例子来测试流程。 例子的基本功能: 服务端: 接入”Welcome” 支持并发 收到客户端信息,原样返回给客户端 客户端: 支持交互式的发送数据给服务端 服务端与客户端连接 常用函数 socket: 创建socket句柄 int socket(int family,int type,int protocol); 第一个参数指明了协议簇,目前支持5 ...

http协议分析

http(HyperText Transfer Protocol)是一个应用层协议,由请求和响应构成,是标准的客户端服务器模型。http/1.1协议目前在服务器领域还是有着广泛的应用,尽管现在越来越多的网站和服务使用https协议(http承载于TLS或SSL协议层之上),包括新的http/2协议。 http连接的建立 http是一个无状态 ...

chrome源码之 DataPack

pak是chrome中跨平台的资源管理文件格式,比如用于多语言,本地文件(html数据)或数据的格式化管理等;对于pak文件处理,chrome提供了C++类和python脚本的方式来处理。 pak文件格式:(Data File Format version 4) uint32 文件版本 uint32 文件中的资源数量 uint8 文件中资源内容的编码(0: 二进制;1: utf8编码;2: utf16 ...

The Top Of My To Do List

不要忘记自己的梦想,过想要的生活; 不要过度的工作; 要把想的说出来; 要珍惜友谊; 要快乐。 转自:http://paulgraham.com/todo.html A palliative care nurse called Bronnie Ware made a list of the biggest regrets of the dying. Her list seems plausible. I could see myself—can see myself—making at least 4 of these 5 mistakes. If you had to compress them into a single piece of advice, it might be: don’t be a cog. The 5 regrets paint a portrait of post-industrial man, ...

Exit-time-destructor 问题

C++全局对象, 静态对象,或类的静态成员对象,在进程退出时会执行析构函数,并且动作发生在main函数结束之后。 进程都要退出了,一般没有必要再执行析构函数了,如果真的需要执行析构,那也应该是运行时显式调用释放资源的方法。 在xcode中可以配置C++的链接选项[Linking] - [Other Linker Flags],增加-Wexit-time ...

Objective-C之 引用计数

Objective-C引用计数有两种方式: 使用默认的自动引用计数 Automatic Reference Counting(ARC)方式,通过属性(@property:strong,weak)或变量(variable:__weak)的修饰符,让编译器自动完成引用计数管理的工作。 在ARC出现之前,需要手动管理引用计数,所以很多历史的老工程都还是使用了手动管理 ...

chrome源码之 linked_ptr

Linked_ptr is a “smart” pointer type with reference tracking. Alternative to linked_ptr is shared_ptr. Every pointer to a particular object is kept on a circular linked list. When the last pointer to an object is destroyed or reassigned, the object is deleted. Used properly, this deletes the object when the last reference goes away. A good use of this class is storing object references in STL containers. You can safely put linked_ptr<> in a vector<>. Other uses may not be as good. There are several caveats Like all reference counting schemes, cycles lead to leaks. Each smart pointer is actually two pointers (8 bytes instead of 4). Every time a pointer is released, the entire list of pointers to that object is traversed. This class is therefore NOT SUITABLE when there will often be more than two or three pointers to a particular object. References are only tracked as long as linked_ptr<> objects are copied. If a linked_ptr<> is converted ...

李开复病后回归:我闻到了桂花的香味

“在台北养病期间,我去一个朋友家,问为什么你家桂花那么香?他说一直是这个样子啊。我在谷歌和创新工场时去过他家好几次,之前都只顾着工作,对很多美好的事情视而不见。”2月13日,李开复在北京的家中,向包括网易科技在内的几家媒体谈起了治病17个月的时间里的心里历程。 李开复看起来起色很好,这次回归距离他离开北京到台北治病已经过 ...

张栋:36岁以前做到这8点再谈梦想

前百度科学家张栋发表的演讲:一个“技术特长生”对于择业、自我他提升、平台与机会的选择。 他所创造的工程师价值公式:一个工程师的价值 = 代码能力/时间 一个工程师的价值首先需要有一定的代码能力 在我32岁时我认为最大的乐趣就是写代码,写很多的代码,就算你将来不一定做技术,代码也能够培养一个人的逻辑思维能力。 逻辑,我觉得分好几个层 ...