自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 悲观锁和乐观锁的比较和使用

悲观锁(Pessimistic Lock)顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。我们认为系统中的并发更新会非常频繁,并且事务失败了以后重来的开销很大,这样以来,我们就需要采用真正意义上的锁来进行实现。

2016-05-09 23:20:30 1894

原创 POJO与JSON的序列化与反序列化

0x00 定义以及相关概念POJO,Plain Old Java Object,是一种简单的Java对象,一般就是有一些private属性及其属性getter、setter方法的类。这种对象只能用来装载数据,作为数据存储的载体,而不具有业务逻辑处理的能力。JSON,Javascript Object Notation,是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。其主要构建

2016-04-27 22:51:26 10686 1

原创 用Promise-A+规范来复盘使用Promise时踩的一个小坑

最近一阵子钻研学习Node.js的服务端代码的写法,看到了各种“Promise大法好啊”、“Promise拯救你于厄运回调金字塔(Pyramid of doom)也就是回调地狱(Callback hell)的水深火热之中”等等云云,作为一个js菜鸟,总想着起点高代码写的好,于是便拍板决定服务端全面采用Promise大法,于是也就分分钟踩了一大堆坑,回头细读了一下Promise/A+的规范,发现其实跟

2016-04-26 11:32:47 1556

原创 Yii框架安全特性

Yii框架的安全特性主要体现在这几个方面:SQL注入的防范措施XSS的防范措施CSRF的防范措施COOKIE验证机制访问控制过滤器对magic_quotes_gpc的判断

2015-12-24 14:20:47 1744

原创 基于FiddlerCore的.Net二次开发

一、FiddlerCore是什么Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯。Fiddler 是用C#写出来的,它包含一个简单却功能强大的基于JScript .NET 事件脚本子系统,它的灵活性非常棒,可以支持众多的http调试任务,并且能够使用.net框架语言进行扩展。FiddlerCore正是Fiddler最底层的实现,其和Fid

2015-12-24 13:12:05 10927

原创 WEB端实现PCM裸流播放

0x00 序近日有这样一个需求,在web端播放PCM裸流,即数据提供方给出的都是**.pcm文件,而我们需要在页面上给出该音频的播放控制器(至少可以支持play、pause)。

2015-12-24 11:19:55 24336 8

原创 用logrotate管理每日增长的日志

logrotate简介 logrotate is designed to ease administration of systems that generate large numbers of log files. It allows automatic rotation, compression, removal, and mailing of log files. Each log f

2015-12-24 11:03:34 7694 1

原创 Hadoop排序工具用法小结

Hadoop用于对key的排序和分桶的设置选项比较多和复杂,目前在公司内主要以KeyFieldBasePartitioner和KeyFieldBaseComparator被hadoop用户广泛使用。基本概念Partition:分桶过程,用户输出的key经过partition分发到不同的reduce里,因而partitioner就是分桶器,一般用平台默认的hash分桶也可以自己指定。 Key:是需要

2015-10-18 00:03:08 2339

原创 谈谈Web图标

前段时间意图模仿百度开放云的UE风格时,想把标志不同状态的圆点抠出来作为<img>放到自己项目中,结果一查发现他们不是<img>,而是@font-face方式实现,顿感自己的无知,因此有了这篇小结式的文章。0x00 序随着前端技术的不断革新,当前Web中的图标(Icons)已经不再仅仅是局限于<img>。除此之外,还有Sprites(俗称雪碧图)、Icon Font(字体图标)、SVG Icon等等

2015-10-17 23:59:16 1450

原创 基于相似性预测用户答题正确率

用户答题过程中,其正确率是评价其答题质量的重要依据,其中产品线审核该用户答题情况的审核正确率是重要的组成部分。但是在实际情况中,产品线审核题量往往不能够覆盖到所有用户,部分用户在产品线审核后依旧没有获得任何可以作为质量依据的正确率信息以作为发送礼券的依据。目前,对于这部分没有正确率信息的用户,我们往往采用项目平均审核正确率来发送礼券,这种策略让一些答题很差的用户成为漏网之鱼(虽然概率是很低的),对

2015-10-17 22:36:24 1978

原创 PHP中的子进程和消息队列

本文将介绍PHP子进程的使用,使用linux消息队列机制来达成进程间的协作,最后用一个简单的例子来类比具体应用方案。1. 子进程1.1 创建子进程int pcntl_fork ( void )按照php官方的说明,pcntl_fork()函数会创建一个子进程,这个子进程仅PID(进程号) 和PPID(父进程号)与其父进程不同。成功时,在父进程执行线程内返回产生的子进程的PI

2015-10-15 14:08:00 4310

原创 Redis内部数据结构实现解析

Redis目前在Key-Value存储以及缓存系统中有着非常广泛的应用,且以高效快速著称。不同于其他Key-Value数据库,Redis提供了丰富的数据结构类型,value可以是字符串、列表、哈希和有序集等,为用户操作带来了极大的便利。本文希望通过分析其内部数据结构及算法的实现机制,来揭示其高性能的背后的原因。

2015-10-15 13:48:53 808

原创 使用superlance插件增强supervisor的监控能力

supervisor与superlance简介supervisor是一款用python编写的进程监控、进程守护和进程管理的工具,可以工作在各种UNIX-like的操作系统上,通过简单的配置就可以启动、监控和管理大量的进程,并且可以守护这些进程的运行,同时其还提供了一套自带的事件机制与XML-RPC API,可以很方便的在其之上扩展各种功能满足各类需要。 而superlance就是基于supervi

2015-10-15 13:32:28 6372 2

原创 利用Dummynet模拟恶劣网络环境

利用Dummynet模拟恶劣网络环境在之前的文章中提到了三种模拟恶劣网络环境调试代码的手段:应用层或者传输层的代理服务器传输层或者网络层控制数据包的驱动网络层控制数据包的网关同时在之前的文章中介绍了第一种手段,即利用应用层的HTTP代理Fiddler来模拟恶劣网络环境,这种方式简单且灵活,但是其处于应用层,限制较大,同时也没有办法从带宽和延时两个方面分别去精细化地对恶劣网络环境进行模拟,这里

2015-07-14 10:49:37 6494

原创 索引失效&子查询-慢查询的起因

Mysql中子查询和索引失效会带来检索效率下降的问题,这里列出了新手常常会犯的一些错误

2015-07-11 22:06:52 13211 1

原创 异常处理的最佳实践(下)

前文对异常处理的策略作了大体的介绍,本文将侧重于一些细节,有助于帮我们更好地在异常发生时定位问题。异常处理模式前文所述的异常处理策略主要侧重于系统的顶层,包括服务端请求处理和用户操作处理,也即最后一层屏障。对于代码结构较为简单的小型的App来说,往往通过函数调用堆栈就可以判断异常在代码中的位置了,于是这样的异常处理策略通常是够用的了。然而对于庞大的企业级应用来说,代码层次要复杂得多,尤其是

2015-07-09 11:36:51 624

原创 【js模块化+promise】让弹窗们弹起来

弹窗或者浮层是页面上看起来微不足道,却又常常起到重要作用的“零件”。比如最近做的项目中,一个页面上涉及了6个以上的弹窗及其对应的逻辑处理,可以说页面几乎是由弹窗逻辑构成的。因此,如何让这些弹窗优雅地弹起来(别人能够很快地对这些代码进行维护),是一个很重要的问题。对于弹窗的实现,比较旧的做法是直接在html上加上弹窗的元素,在不需要的时候先将其隐藏,通过js逐个实现弹窗的展示和逻辑。但是这种做法

2015-06-30 11:06:41 2509

原创 使用Pymongo 管理MongoDB

使用Pymongo 管理MongoDB一、PyMongo简介PyMongo是Mongodb的Python接口开发包,是使用Python和Mongodb的推荐方式。本文将对PyMongo的使用进行介绍。二、安装PyMongo包含在PythonPackage Index中https://pypi.python.org/pypi/pymongo/。PyMongo 的安装不需要依赖其他

2015-06-30 09:39:26 1671

原创 利用Fiddler模拟恶劣网络环境

在解决日常的支持需求中,经常会遇到一些用户反馈一些无法简单复现的bug,有很大一部分的bug是由于用户自身的网络环境波动,或者是本身网络环境就较为恶劣,而服务在面对这种恶劣的网络环境的健壮性不够,导致会出现一些意想不到的bug。而在正常的开发自测过程中很难去营造出这种恶劣的网络环境,使得这些bug较难被提前发现和修复。另外一些服务在恶劣网络环境下虽然不会出现不可用的情况,但是用户体检很差,为了优化这

2015-06-29 15:51:06 32908 3

原创 异常处理的最佳实践(上)

在开发一个系统的时候,我们往往会将大部分注意力集中在如何实现具体的功能上,而对于异常和错误处理则通常不受重视——感觉这事情无从下手,又看不到什么政绩,简直吃力不讨好。而异常处理本身,也常常被作为语言特性的一部分轻描淡写地一笔带过,很少有系统性地对其正确的使用方式进行介绍。这简直是暴殄天物!使用异常来处理错误明明是一项伟大的发明,是将程序员从条件判断的地狱中拯救出来的神器!本文将给大家介绍一下异常处

2015-06-29 14:53:29 687

原创 JS页面截图技术

使用JS页面截图技术实现将网页内容截图并分享到媒体(微博、空间、贴吧等)

2015-06-29 14:26:39 1304

原创 PHP版本特性笔记

PHP7要发布了,你连5.X的特性都还不知道么?今天我们就整理了一些属于5.3之后版本PHP的特性。由于PHP版本依旧在不断的更新中,其中不乏一些实用的新特性可以大大简化编程中遇到的问题,这里介绍一些实用的特性

2015-06-26 20:56:24 644

原创 应用高级数据结构优化Redis

key-value缓存和存储系统通常用于互联网产品的开发中,作为后端磁盘存储系统的缓存,或记录和处理庞大的用户日志。Redis是一个高性能的key-value存储系统,可以存储多种数据类型,如string, hash, list, set, bitmap, hyperloglog等。Redis的数据缓存在内存中,极大地提高了数据库的读写效率。但是,Redis操作效率会随着数据集的增加而明显降低。因此,当数据集较为庞大时,需要从单位操作时间和内存利用率方面对数据库进行优化。下面介绍一种运用y-Fast tri

2015-06-07 19:53:56 821

原创 Hubot插件开发:井字游戏

Hubot插件开发:井字游戏此项目实施的主要目的:学习Hubot脚本的开发方法.学习使用CoffeeScript.温习Tic-Tac-Toe玩法.此项目实现的主要目标:在Slack上与Robot或者好友进行TicTacToe的对战.此文主要记录项目实施的过程与结果,适合小白用户阅读.搭建项目环境已有基础环境操作系统: Mac OSX 10.10.4Node.JS: 0.12.2np

2015-06-05 19:46:05 1050

原创 踩的一个小坑——JavaScript刷新页面

本篇文章缘由是来自于前几天的一个线上问题,这个线上问题大概是这样:有个页面上会定时用Ajax调用一个接口,并对页面作出一些调整,当满足某个条件时会将页面整个刷新,而这个页面上有一个文件上传的表单,它是对本页地址直接进行POST提交的,使得刷新页面时会出现重复提交的情况,于是也就产生了这个线上问题。在这个线上问题中牵涉到了两个问题,这也就是本文所想要讨论的问题:JavaScript

2015-06-05 13:08:16 2112

原创 使用WebSocket构建实时Web应用

使用WebSocket构建实时Web应用随着时代的进步,传统的网页技术已经无法满足人民群众日益增长的物质文化需求(误)。对于一些特定的需求,如消息推送、在线聊天等,往往受限于BS架构的特性而没有完美的解决方案。好在现今HTML5标准已日渐成熟,现代浏览器大多也实现了对WebSocket 的支持。有了WebSocket,我们就可以构建真正意义上的Web App,实现客户端到服务端的实时通信。

2015-06-04 22:42:43 1343

空空如也

空空如也

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

TA关注的人

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