夜鹰

我曾经跨过山和大海 也穿过人山人海


  • 首页

  • 分类

  • 标签

  • 归档

  • 关于

  • 搜索

算法学习笔记

发表于 2017-11-29 | 阅读次数

选择排序(O(n*2))

在需要排序的数组中找到最小的索引与第一位交换、找到第二小的与第二位交换等以此类推。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public static void sort(int[] arr){
int n = arr.length;
for( int i = 0 ; i < n ; i ++ ){
// 寻找[i, n)区间里的最小值的索引
int minIndex = i;
for( int j = i + 1 ; j < n ; j ++ ){
if( arr[j] < arr[minIndex] )
minIndex = j;
}
swap( arr , i , minIndex);
}
}
private static void swap(int[] arr, int i, int j) {
int t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}

网站部署https笔记

发表于 2017-09-17 | 阅读次数

nginx中nginx.conf配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
server {
listen 443;
server_name abc.com;
ssl on;
root /apps/blog/;
charset utf-8;
index index.html index.htm;
ssl_certificate cert/214241154760428.pem;
ssl_certificate_key cert/214241154760428.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root /apps/blog/;
index index.html index.htm;
}
error_page 404 /404.html;
}

如果还想所有http请求全部转为https,在80端口增加:

1
rewrite ^/(.*)$ https://abc.com/$1 permanent;

其中如果报ssl的错误,应该就是因为装nginx的时候没有指定ssl配置项,要重新安装再覆盖nginx,具体如下:

阅读全文 »

车险项目总结

发表于 2017-09-10 | 分类于 框架 | 阅读次数

前言

一个有点久的项目,前不久做的前后端分离,虽然相比较技术还是有点落后,很小白,还是总结一下,毕竟路还是得一步步的走。

后台:

  1. 系统整体架构是spring+springMVC、持久层是mybatis、连接池之前是c3p0后来连接池老是挂就换成了HikariCP。
  2. 服务器是tomcat、使用了开源项目tomcat-redis-session-manager持久化session到redis集群.
  3. 由于并发不高后台服务器就2台,项目过程中调用外部系统接口的地方很多,所以spring集成了zookeeper和dubbo缓解调用外部接口的负载.
  4. 公司系统很多JNDI配置方面集成了disconf。

前台:

  1. 前台服务器nginx、技术属于刀耕火种的时代,jquery一撸到底。
阅读全文 »

接口签名方式(代码)

发表于 2017-07-23 | 阅读次数

Digest验证方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
HttpResult result = sendRequest(uri, HttpMessage.METHOD_GET, null);
int statusCode = result.getHttpResp().getStatusLine().getStatusCode();
HttpResult resulthttpConnection.sendRequest(message)
if (statusCode == HttpStatus.SC_OK) {
String resDoc = result.getHttpContent();
else if (statusCode == HttpStatus.SC_UNAUTHORIZED) {
Header header = result.getHttpResp().getFirstHeader("WWW-Authenticate");
HashMap<String, String> authMap = parse(header.getValue());
String content = buildAuthHeader(uri, authMap, account, password);
HttpHeader authHeader = new HttpHeader("Authorization", content);
List<HttpHeader> list = new ArrayList<HttpHeader>();
list.add(authHeader);
result = sendRequest(uri, HttpMessage.METHOD_GET, list);
int statusCodeSec = result.getHttpResp().getStatusLine().getStatusCode();
if (statusCodeSec == HttpStatus.SC_OK) {
}
阅读全文 »

接口签名方式(过程)

发表于 2017-07-19 | 阅读次数

Digest验证方式

  • 交互过程图
    HTTPAuth.png
  • 客户端发送get请求服务器,服务器判断需要认证并没有认证信息Authorization,返回状态码401 Unauthorized表示客户端错误,并且会在响应头增加WWW-Authenticate。
    401.png
  • 客户端收到服务器的401回复后,根据WWW-Authenticate里面的提示信息进行加密并重新发起请求。
  • 服务器根据Authorization中username等信息进行签名,并将签名结果与客户端中的签名对比,如果一致则签名成功,返回响应信息并在响应头增加Authorization-Info
  • 客户端再次请求服务器时增加Authorization-Info授权信息。
    200.png
阅读全文 »

腾讯云服务器搭建笔记

发表于 2017-03-28 | 分类于 linux | 阅读次数

我是利用Xshell工具连接的,其中用到lrzsz实现本地上传下载,安装方式是用的yum,如果不知道你要安装包的具体名称,可以使用yum provides */name 进行查找系统自带软件包的信息,yum install -y lrzsz安装这个包就可以实现上传下载了。

1 数据盘整理
  因为不可能所有东西都堆在系统盘,一些数据库、服务器等东西我感觉还是放在数据盘好点,不然等系统盘满了启动都是个问题,下面整理一下一开始数据盘的操作。

  • 输入命令fdisk -l查看您的数据盘信息,注意:在没有分区和格式化数据盘之前,使用df -h命令是无法看到数据盘的。在下面的示例中,有一个 54 GB 的数据盘(/vdb)需要挂载。
阅读全文 »

开发常用工具和插件

发表于 2016-11-18 | 阅读次数

插件

1 spket 它是eclipse插件,开发有成效,创造高效率的javascript代码。

  配置过程如下(spket压缩包):

  • 附件压缩包解压到自己的eclipse目录。
  • 重启eclipse
  • 设置js文件默认编辑器,Window >> Preferences >> General >> Editors >> File Associations

2 jad 查看架包源代码

  配置过程如下(jad压缩包):

  • 首先,找到eclipse安装根目录,创建一个文件夹(jad),将jad.exe放入其中
  • 其次,找到plugins目录,将指定的解析架包(net.sf.jadclipse_3.3.0.jar)放入其中
  • 然后eclipse重启,Window >> Preferences >>搜索jad,其中Path to decompiler中设置jad.exe的存放路径;Directory for temporary files中设置缓存,在本地专门建一个目录,存放,配置其地址,重启eclipse即可。
  • 如果不能使用,无法反编译,则需要设置默认打开源文件的方式打开eclipse,Window >> Preferences >>搜索file,选择file types 是class without source的选项,设置打开方式,选择jadClipse Class file viewer,点击默认按钮default。

github-ssh-key

发表于 2016-10-17 | 分类于 命令 | 阅读次数

查看是否已经生成过ssh key

1
ls -al ~/.ssh

阅读全文 »

2016/10 计划

发表于 2016-10-15 | 分类于 计划 | 阅读次数

离过年还有将近四个月,今年的目标早就忘了啊,= =!

no.1 lively
原型图、设计稿、html、前端框架 >> 10月底完成
整体架构框架分析

阅读全文 »

hexo常用命令

发表于 2016-10-15 | 分类于 hexo | 阅读次数

安装

1
2
npm install hexo -g 安装
npm update hexo -g 升级

基础

1
2
3
4
5
6
hexo n "pageName" == hexo new "pageName" 新建文章
hexo g == hexo generate 生成
hexo s == hexo server 启动服务
hexo s --debug log启动
hexo d == hexo deploy 部署
hexo clean && hexo g && hexo d 发布到 github

有时候,本地的README文件hexo会自动解析成html,上传到github时候会冲掉。
把’README.MD’文件的后缀名改成”MDOWN”然后扔到blog/source文件夹下即可,这样hexo不会解析,github也会将其作为MD文件解析。

zhu

zhu

我曾经跨过山和大海 也穿过人山人海

10 日志
5 分类
6 标签
GitHub SegmentFault
© 2017 zhu