自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 记一次Bug定位过程 —— 由非预期的页面提示到松耦合模块的依赖处理

背景介绍  集群备份:软件为了高可靠性,防止所在服务器down掉后业务中断,使用了集群,在多台PC上跑同样的代码。但同一时间,只有一台pc真正的处理业务,称为Leader;其他的PC只是作为热备,当leader故障后才会选举中其中之一,处理业务。   模块依赖:为支持热插拔,使用OSGI框架,整个软件分为多个模块,可在运行软件时,不重启整个软件,只卸载再加载不同模块,即实现模块的升级。这样实

2017-07-10 23:50:03 492

原创 用户登录限制-----错误后锁定机制的讨论

WEB开发,用户登录页面是必须处理的。这里的涉及到一些基本的安全问题,明文的用户名被窃取后,第三方使用穷举法暴力破解密码,需要应对。   当用户未登录时,token还未获取,退一步讲,即使网站奇葩到先设置token或给个cookie来标识Client,也不能使用,因为针对这些做的锁定限制,在用户关闭浏览器、重新开启后,锁定将失效。一般的做法是,根据现有的信息——用户名(用户名不存在直接返回失败,不

2016-11-17 00:22:09 3554

原创 PS学习笔记--操作篇

1、蒙版蒙版排列多张图:ctrl+a 所有像素全选ctrl+c 复制选区ctrl+alt+shift+v 选择性粘贴-贴入ctrl+t 自由变换,调整贴入图片(挤压变形,区别于内容识别比例变形)ctrl+shift+alt+t 再次复制变换。ctrl+e 合并图层按住shift调整图片 保持图片宽高比按住alt调整图片 以选择的点为中心,等比放缩图片ctrl+j

2016-10-23 22:00:46 629

原创 LAB、HSB、RGB和CMYK色彩模式简介

使用Photoshop进行色彩选择时,会出现LAB、HSB、RGB和CMYK四种色彩模式,那么这四种颜色有什么区别与联系呢?很明显,这些模式应该都有试用的场景或适用的人群,否则若都是一致的,那何不对用户只提供一种模式,与其他模式的转换在PS内部处理就行。但在介绍模式之前,需理清一些概念。   加色法与减色法。所谓加色法,是指用色光的三原色——红、黄、蓝,在一片漆黑的环境中混合得到所有颜色的方法,比

2016-10-23 17:37:57 9578 2

原创 包依赖关系处理

项目使用OSGI框架开发,每个bundle都是可动态增删的模块,bundle之间的依赖关系处理是在OSGI上注册、监听服务实现的,具体可参考OSGI的相关书籍。每个bundle就是独立的、可在软件运行后删除、替换(即热插拔,如eclipse的各种插件,就是OSGI实现的),在bundle内部的包依赖管理需要自己处理。比如这样:     用户通过UI界面发来的请求,经UI接口、Service后,最后

2016-07-16 19:07:13 950

原创 代码重构实例

给一个已有项目增加新需求时发现,原有项目中存在大量重复代码,每个处理前台的请求的方法中,参数检查、权限认证、异常处理代码都是一样的,而真正的业务逻辑就被这一段段的重复代码淹没了,重复代码的结构如下:public Response getResult(String request){ if(参数检测失败){ return response(code 400); }

2016-07-15 01:23:42 618

原创 apache服务器的安装与使用

以下为安装Apache服务器的详细流程:1. 进入www.apache.org官网,在projects中选择http server,进入后下载Released版本得到一个压缩文件httpd-2.4.23-x64.zip。2. 解压文件,将得到的文件夹Apache24,将其放在自己喜欢的位置,比如D:/。3. 编辑Apache24/conf/httpd.conf文件 38L:S

2016-07-10 21:02:27 559

原创 Java线程池的使用

最近接到一个需求,优化某个请求的性能。具体情况是这样的,之前的实现是前台每隔一段时间向后台请求数据,后台根据请求去实时获取需要的数据,这需要服务器通过内部网络轮询上百台设备,将他们的信息都get到,组装好,返回给前台,整个流程不用了解得很具体,只需要知道这比操作数据库慢很多很多!!最初实现时考虑的是数据的时效性,要反应最新的设备信息,但后来维护的设备数量上百的级别后,性能就是大问题了,经过组内讨论以

2016-07-10 01:12:00 292

原创 网络设备中使用的算法

一、负载均衡(LB)设备的分担算法:1.LB的工作原理:  服务端发送的请求经LB设备后,被分流到不同的server端。好处是只需对外暴露LB的虚拟ip,server端的ip只能内部访问。而且LB上一般有SSL加速,负责ssl的加解密工作,在client与LB之间的通信为https,LB与server之间通信转为对应的http,减轻server的压力。   2.LB设备上对请求的分配算法:  a)

2016-06-01 00:12:33 521

原创 常用的Linux命令

Linux中的命令其实就是对应于window中的各种软件。以下为工作中遇到的一些常用的命令。1.抓包命令:tcpdumptcpdump -i eth0 -w 123.pcap //eth0 为所需查看ip所绑定的网卡,linux可以通多ifconfig查看。 //其他参数用不用不要紧,拿到123.pcap后,直接ftp到window主机,使用wireshark开始苦逼的看

2016-05-30 23:06:09 307

原创 网络协议中STP根桥的选举

在L2网络(数据链路层)中,为避免某台网络设备故障导致网络中断,常常会使链路冗余,如下图所示:               当某一链路故障或单台交换机故障时,网络通信不会因此中断。但由此引入另一个问题–桥接环,即当所有设备、链路都是正常的时候,由主机1发给主机2的报文将在两台设备(5,6)之间形成广播风暴。原理是L2交换机在收到报文时,若找不到目的Mac将在除了接受端口外的其他端口广播,而3、4

2016-05-18 01:01:12 7780

原创 字符编码浅谈

计算机的一切都是二进制,而为了助记为了使人能直观清楚的与计算机交互,有了ASCII码,使用一个字节表示英文以及一些控制符。当其他国家也开始使用计算机时,需要计算机显示其他的字符文字,此时一个字节已不够使用,解决的办法是增加一个字节,使用两个字节来表示字符,即unicode。unicode兼容ASCII码,两者可以同时使用,此时出现一个问题,当编译器读取一个字节时,怎么能判断它是一个单独的字节,还是两

2016-05-03 23:34:51 307

原创 浏览器兼容性汇总

虽然微软已经放弃了IE,但是还是有那么多的人在用着IE,对于前段开发来说,浏览器标准化让未来看起来很美好,但回到现实,还是得维护那一堆的兼容性问题。一、与众不同的浏览器:远古时候的IE6   这个博客介绍的是IE6下的缺陷,涉及居中布局、ul > li样式、height设置微距离无效(必须大于字体高度)等bug及相关应对方案:   http://www.iefans.net/ie-9-css-

2016-04-25 23:30:39 325

原创 AngularJS使用心得(持续更新中)

使用中遇到的问题:1.{{}}取值无效,控制台输出ng-controller指向的函数名is not a function:  a). 查看elements,dom元素上有class=”ng-scope”,判断angular.js引入正常。   b). 控制台输入ng-controller指向的函数名,该函数也存在。   c). 最后查询结果为angularJS自1.3.0之后不支持全局函数作为

2016-04-19 23:55:35 699

原创 Bootstrap入门

一、Bootstrap特点Bootstrap主要做了两件事,一是将常用的css样式、js效果组件化,使开发者用更少的代码实现所需的效果,将主要的精力由繁琐的细节中解放出来。二是实现响应式布局,bootstrap集成的组件都考虑到了页面在pc、平板、手机上的适应性,可根据屏幕大小自动调整布局。二、Demo入门最后的效果放缩浏览器宽度,页面元素会自动调整位置当视口宽度小于978px时,将由水平排列调整为

2016-04-10 11:05:48 4230

转载 OpenStack笔记

一、简介  OpenStack属于云计算中的IaaS(基础设施即服务)。可以理解为将所有资源,包括网络设备、服务器计算资源、存储资源整合,作为一个平台,通过这个平台用户可以按需动态获取资源,管理者可以集中方便的管理资源的分配。避免资源的闲置,在保证业务的前提下实现资源利用的最大化。   OpenStack的主要组件如下:   二、各组件的简单介绍1.Horizon – UI模块针对不同的使用对象

2016-03-31 00:21:31 736

原创 编程血泪史之前端

2016.3.19 累加事件——多次绑定回调函数   使用SlickGrid绘制表格,发现刷新一次,表格的每条记录都会累加,比上次绘制多画几次,多画的次数为表格的记录总数。比如,表格中有2条记录,第一次每一条记录被重画2次;刷新并重新获取数据后每条记录被重画4次,然后是6,8,10…不断累加。   最初怀疑是数据源dataview的setItems函数中内置重绘,测试后排除。   怀疑获取数

2016-03-19 22:49:46 471

原创 通用型的工作总结

一、前端(js、html、css)1.http协议在Rest和Ui中,常用的请求有四种,各自有自己的使用时机: 获取资源时,使用get请求。特点:幂等。我的理解就是在环境不改变的情况下,多次请求返回的数据是相同的。有通过id获取指定资源,有getAll获取所有资源。无论进行多少次get,服务器资源不会因get改变。 创建资源时,使用post请求。特点:能改变服务器所存储的资源。即不安

2016-03-04 22:26:18 486

原创 在公共函数中区分上层调用者的模型

一、背景及问题详述:  在编码时常常会将多次用到的公共函数封装之后,供其他函数调用。而在调用时,免不了需要根据上层调用函数的不同有不同的结果。   举几个最近遇到的具体的场景:1.UI界面的刷新按钮  UI界面的刷新按钮,其功能定义不同于F5的刷新整个页面。而是通过给定的url再次获取页面中指定的表格数据、图片等。以表格为例,为方便用户操作和减轻前端压力,表格常常会有分页、搜索功能。当存在分页功能

2016-03-02 22:43:13 574

原创 数据结构与算法小结(2)

一、二叉搜索树1.BST试图解决的问题:高效的兼顾静态的查找和动态的增删。在基本的数据结构中 数组通过寻秩可实现高效的查找,但增删效率低; 向量通过寻位置访问,增删高效,但查找低效,而且因为增删前通常都需要先找到对应的元素,这使得其效果更差。改进思路是改变访问方式,使用寻关键码访问。引入关键码,将数据项与其关键码绑定,统一的表示为词条的形式,根据关键码来访问元素,用数据项保存元素。

2016-02-29 23:32:10 469

原创 数据结构与算法小结(1)

一、概述数据结构,即数据存放的方式。算法,解决问题的方法。讨论数据结构与算法时,常常不会仅仅满足于能解决一个特定的问题,而是在追求如何优雅而高效的解决一类问题。 本文针对学堂在线的数据结构课程的小结,用以巩固知识点。课程主要介绍的是向量、链表、BST、堆等数据结构的特点以及在这些数据中存储、访问数据的具体的、不同的实现算法的比较,其中有大量的实例和具体的数据变换时数据结构的状态,便于理解。二、算法

2016-02-17 23:17:28 2134

原创 绚丽的时钟效果学习总结

一、背景本文是在学习慕课网的“绚丽的倒计时效果-canvas绘图与动画基础”后总结而成。 每次变换就有对应的球掉落,成品效果图如下: 二、学习收获以像素来构图的思路 本例中以二维矩阵来显示每一个数字,使用一个7*10的点阵,1表明画圆,0不画,最后组成每个数字,组成的方式也值得学习,也还可以换其他风格的数字,字母等。屏幕自适应处理 需做的工作: a).在html

2016-01-23 15:59:33 540

原创 前端鼠标拖动事件冲突

几个月前曾处理过一个问题单,底层为canvas,支持图形拖拽,有一个功能点要求弹出一个对话框,且不能使用遮罩层,因为想实现这样的效果:点击canvas上的一个元素,对话框显示其具体信息,若使用遮罩层,必须将对话框关闭才能点击到canvas上的元素。 好吧,功能实现简单,jquery UI的对话框,遮罩层的对应属性设置好,ok。给测试,测试提出,对话框可以调宽高,但是有时候调整宽高很不方便啊,必须鼠

2016-01-04 00:07:10 1177

原创 集群下处理请求的时序问题

一、环境介绍所述软件为WEB产品,为一个整体解决方案的中间层,具体为同一套软件部署在多台服务器,相互之间可以组成集群,以共同处理用户请求。对上层调用者来说,其中有一台为主,其余为备。对下层中的某一个被管理者来说,该集群中某一台为主控,其他服务器可以是它的备控,上层和下层认为的主不一定相同。二、问题描述本次的问题出在被管理单位的主控和备控之间。在主控上发出请求时,业务处理流程为: 1.清空本服

2016-01-03 23:36:38 1034

原创 文件权限管理

一、基本权限管理1.ll命令之后的文件:-rw-r--r-- - 文件类型 (-文件 d目录 l软链接) u 所有者 g 所属组 o 其他人 (所有者可以不属于所属组) r 读 w 写 x 执行2.chmod命令:使用+、-、r、w、x 格式:chmod [选项] 模式 文件名 (-R 递归)

2015-12-27 23:47:05 479

原创 软件包安装

一、安装包分类源代码包:脚本安装包,C语言源代码开源、编译时间长。LAMP环境搭建 (Linux Apache Mysql PHP)效率高二进制包(RPM包,系统默认包)/mnt/cdrom/package 二、二进制包安装1.rpm命名规则:httpd-2.2.15-15.el6.centos.1.i686.rpm httpd 软件名 2.2.15 软件版

2015-12-27 23:13:13 384

原创 Linux配置管理

一、Visual Interface (VI)工具1.进入vi的命令 命令格式 说明 vim + 文件名 打开文件,光标定位到最后一行 vim +3 文件名 打开文件后,光标定位到第3行 vim +/xxx 文件名 打开文件后,光标定位到xxx第一次出现的行,按n切换。 vim 文件名1 文件名2 文件名3 同时打开三个文件,使用n下一个文件,使用:N或:

2015-12-09 23:22:59 675

原创 BashShell基础

一、基本命令1. 输出命令 —— echoecho “要输出的字符串” //将字符串打印到屏幕上。echo [选项] [输出内容] -e :支持反斜线控制的字符转换。 \a \b退格键,删除 \n \r \v \t \0 \x 颜色选项: \e[1;31m 文字开始着色 \e[0m

2015-12-09 22:17:43 397

原创 Linux基本命令

一、系统分区相关命令:整个系统分区流程为:硬盘分区---格式化---给分区定义设备名---挂载分区类型:(取决于硬盘结构,所有系统都要遵守) 主分区: 最多只能有4个。原因是硬盘被分为一个个扇区,一个扇区有512个字节,其中446个字节用于数据记录,其他64个字节用于分区表示,每16个字节表示1个分区,共能分4个主分区。 扩展分区: 将一个主分区作为扩展分区

2015-12-08 22:49:14 446

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除