- 浏览: 39652 次
- 性别:
- 来自: 深圳
最新评论
-
sp42:
怎么 “防止攻击者拿到自动登录token后,一直都可以登陆” ...
本地存储密码的安全设计 -
sp42:
非常好 通俗易懂
本地存储密码的安全设计 -
thinkry:
lohasle 写道打怪升级。中间件也是很大以环节啊,可以说说 ...
主程的晋升攻略(8):数据层的演进(上) -
lohasle:
打怪升级。中间件也是很大以环节啊,可以说说。
主程的晋升攻略(8):数据层的演进(上) -
okooo00:
高大上,抽象啊
主程的晋升攻略(8):数据层的演进(上)
文章列表
当我们在程序员的岗位做得出色,被任命为技术经理(组长、主程序)时,除了提拔的喜悦,还会有种面对新问题域的茫然感:
以前只用做好自己的工作,现在需要负责团队的绩效
以前只用和产品、测试沟通,现在明显发现要参加各种会
以前有困难可以找到上级,现在发现自己就是最后的防线
以前每周还时不时可以按时下班,现在发现每天都是最晚走
。。。
优秀员工 ≠ 优秀经理,这种转变不会自然发生,需要有指引和辅导。不少公司在提拔基层干部时会组织基干培训,可能你参加过
团队管理
项目管理
目标管理
招聘、绩效等等
但相信你会发现这些管理课程,在实际工作中难以落地。
我以前看《敏捷软件 ...
有些应用需要把用户密码保存在本地,本方案设计了一种较为安全的密码本地存储的方案。
1 安全要求
1.1 要实现的
防止攻击者得到用户密码的明文
防止攻击者拿到自动登录token后,一直都可以登陆
即使两个用户的密码相同,服务器保存的密文密码也不一样
可在服务器端清除salt,让用户的自动登录token失效,需手动登录
用户在多个终端登录同一个帐号,各终端的自动登录功能都生效
1.2 不实现的
更安全的方案能做到“把本地保存的文件复制到其他客户端”登录就会失效,这依赖于客户端做处理,本方案不实现
有的方案采用RSA非对称加密,本方案直接采用AES对称加密
2 APP场景分析
2.1 ...
缓存为什么能提高性能?
为什么memcached的性能比mysql高?
首要因素是memcached的数据都是位于内存中,mysql的数据可能是位于磁盘里。从IO速度来说,内存IO比磁盘IO会快几个数量级,memcached也就比mysql性能更高。架构和性能优化做到后面,会发现最终限制性能的是硬件瓶颈。例如nginx做静态webserver时,出口流量往往能达到网卡的最大值或出口带宽的最大值。mysql是个性能还不错的db,但它的数据持久化在磁盘上,自然就受限于磁盘IO速度。
mysql也是有缓存的,但大多数场景下觉得还是不够用,这就涉及到次要因素——针对具体业务特征做优化 ...
我们用一个做手游的故事来聊聊数据层不断优化提升的演进过程。
10:简单设计
有一天,老板突然说做个山寨版的糖果传奇手游,你接到任务后,分析出游戏的交互频率不大,都是点查询,用mysql能简单搞定。对游戏来说, ...
在上一篇《主程的晋升攻略(6):CGI和FastCGI》中,讲到Web服务器和CGI/FastCGI能动态输出内容,从而提供更强大的业务处理能力。Web服务器这种架构,我称之为Web模式,与之相对的是Svr模式。Web模式和Svr模式是互联网项目的后台最常 ...
消息经过网络传输,到达了服务器端,最常见的服务器是Web服务器,做PHP的同学都知道FastCGI模式的PHP比普通PHP更高效,这篇就聊聊其中的原理。
古老但常见的CGI
Web服务器能解析HTTP请求,返回静态资源(HTML页、图片等), ...
在上一篇《主程的晋升攻略(4):TCP、消息分包和协议设计》中谈了协议设计的一些话题,这里补充聊聊HTTP协议和二进制协议的对比。
HTTP协议是一种文本协议,也是一种Name-Based协议,就从这两方面来说。
文本协议 vs 二进制协议
文本协议的特点:
便于人
易于阅读、理解、调试、构造
解析复杂、冗余多
需要考虑字符转义
二进制协议的特点:
便于机器
Name-Based vs Position-Based
Name-Based协议 的特点:
协议字段都用Name标识
协议字段与位 ...
在《主程的晋升攻略(3):IP、DNS和CDN》中,一次网络请求经过DNS解析知道了目的IP,现在就要发出网络包,这里我们说一说TCP的相关话题。
TCP是一种流式协议
讲网络编程的教科书一般都会对TCP的可靠传输,api用法做详细说明,但对于TCP是一种流式协议讲解的不多,但这背后隐藏着很重要的一个知识点。先做个名词定义方便交流,这里的“消息”是指应用层的一个完整的协议包。
流式协议的特点是什么?就像流水连续不断那样,消息之间没有边界。例如send了3条消息,分别是100字节、50字节、80字节,recv时可能收到的是230字节,就是说一次recv收到了3条消息,需要应用逻 ...
有段时间我面试程序员时,喜欢问这个问题:局域网IP有哪些IP段?由这个问题再追问NAT(网络地址转换)。
为什么不是每个设备一个公网IP?
先说个关于QQ的小故事,最早开发QQ时,小马哥他们也没想到QQ会发展成中国互联 ...
技术是程序员安身立命的家伙,主程的技术不强,向下难以服众,向上有负重托。
或许有人会问:技术深度上该挖多深才能做好主程?程序员至少有两个高阶成长方向:
1、技术型专家非常热爱技术本身,往往会钻研得非常 ...
虽然是引言,但也很重要。
程序员如何成长?这个话题百度有大约170万个相关结果,介绍了不少从菜鸟到老鸟的经验,但如何成长为主程序员(以下简称主程),网上的“帮助文档”不完善,也缺少实践指南。本系列文章主 ...
我在android上调试native程序时,参考了网上不少文章,这里结合我的经历做些注解
第一步、先列清楚我使用的环境
手机:是台真实手机,不是模拟器,已经root了
电脑:是windows7系统,网上不少是用linux来讲解的
AndroidSDK:路径假定是%ANDROID_SDK%,那么建议把%ANDROID_SDK%\platform-tools目录加到PATH环境变量中,这样能在命令行直接使用adb了
AndroidNDK:我用的是r9b版本,路径假定是%ANDROID_NDK%
gdbserver:该文件在%ANDROID_NDK%\prebuilt\androi ...
我们使用OpenFl引擎开发了手机网游《超级足球》,已经在删档内测了,估计是国内第一款用OpenFL引擎做的手机网游了。本文就来总结下使用OpenFL引擎的心得。
一、OpenFL的特色
OpenFL是Open Flash Library的简写,从名字能看出它的目标是兼容Flash API,实际也正是如此,具体来说有以下特色:
1、它实现了Flash as3绝大部分的API(不包括Stage3D部分);
2、它跨平台性好,能编译出Flash、Android、iOS、Windows等不同平台的产品;
3、编译出来的Android、iOS、
var a: Int64 = Int64.make(0xFFFFFFFF, 0x10); //0xFFFFFFFF00000010
var b: Int64 = Int64.make(0xFFFFFFFF, 0x10);
var c = b;
trace(a == b); //result false
trace(Int64.compare(a, b) == 0); //result true
trace(c == b); //result true
trace(a == c); //result false
var d1: Date = Date.fromStr ...
在做网络协议编解码时,发现haxe.io.BytesOutput里有writeInt31、writeInt32这2个方法。继续追查下去,发现了有内置Int和haxe.Int32这两种类型。不太明白为什么有两种,google后了解到,内置Int在neko平台下是31-bits,而haxe.Int32是各平台一致的32-bits。
由于我使用的target是flash/cpp/html5,这几个平台的Int都是32-bits,直接用Int就ok了。
ps:在haxe3中,直接去掉了haxe.Int32这个变量,直接用Int。