- 博客(407)
- 资源 (2)
- 收藏
- 关注
原创 跑男寻宝游戏,AR,及基于地理位置的移动广告技术
以下描述的是一个基于地理位置加AR的移动广告自助发布查询系统:(1)用户用手机打开GPS定位功能,然后走到某一特定地理位置(前提条件1);然后打开照相机,扫描这个环境下的所有物体(前提条件2),gps坐标和视频流会上传到服务器端,如果2者产生匹配,则使用AR技术在用户手机上显示一则广告,或者用户可以发布一条广告(2)仅仅基于gps坐标显示广告会导致作弊,所以必须加上环境特征识别
2016-08-08 13:13:28 2455
原创 Mastering Python-Packt Publishing 2016(读书笔记)第1版(讲解3.5的coroutine、asyncio、metaclass等)
Mastering Python:Master the art of writing beautiful and powerful Python by using all of the features that Python 3.5 offers目录1Get Started2Python风格指南3容器与集合4FP:可读性 vs Brev
2016-08-02 16:31:22 1080
原创 Decentralized Applications(读书笔记)-O'Reilly 2016.8
Decentralized Applications:Harnessing Bitcoin’s Blockchain Technology目录1什么是去中心化应用2Dapp生态系统3创建你的第一个Dapp4OpenBazaar5Lighthouse(分布式众筹)6La'Zooz什么是去中心化应用拜占庭将军问题(即分
2016-07-31 19:32:11 1748
原创 You need to scale your work up and out
借用服务器后端开发的2个术语。Scale up:这意味着必须提高你的工作的技术难度——不是别的什么人随随便便也能完成你做的工作。这让你的核心竞争力不可替代 。Scale out:你的工作最好是能够通过无成本的复制卖给大量顾客。在一个大企业里当螺丝钉显然不行。写一个自己的软件或者写一本书也许可能。
2016-07-17 16:40:09 732
原创 Mac上安装WireShark,然后用它来探测视频直播类应用的Url
安装WireShark:可以直接从官网下载dmg安装,或者用brew instgall wireshark --with-qt运行图形界面之前,需要先执行命令:sudo chmod 777 /dev/bpf*现在考虑如何用它来探测视频直播类应用的Url:思路很简单,在一台带无线网卡的Mac笔记本上启用WiFi热点(?),然后让移动设备通过此热点访问网络;笔记本上启动wire
2016-07-12 10:55:20 2344
原创 Vert.x 3.3 server.js失败的尝试(怎么就没NodeJS好使呢?)
Server.js内容:// server.js load('vertx.js'); vertx.createHttpServer().requestHandler(function(req){ req.response.end("hello vertx!"); }).listen(8080, 'localhost'); 尝试运行:D:\vert
2016-07-05 13:37:47 1311
原创 亲爱的,人只能活一百年。有些人没活到,那是他们把它折算成福利捐献给了别人。
亲爱的,人只能活一百年。有些人没活到,那是他们把它折算成福利捐献给了别人。2016/7/2 0:56:59在你眼里,我就是一ds而已。我在忐忑不安,想给你打电话的时候。你正在床上被人骑。2016/7/2 0:58:31未曾相爱,但已经失忆。我想象不起,眼前的这个庸脂俗粉,怎么给过去的天真烂漫相比。2016/7/2 1:01:21代拟灵魂致辞:谢谢你,
2016-07-02 13:35:37 806
原创 微软的垃圾Windows 10,简直就是一坨屎!!!!!!!
http://answers.microsoft.com/zh-hans/windows/forum/windows_10-start/%E5%BC%80%E5%A7%8B%E7%95%8C%E9%9D%A2%E5%92%8C/198f7ce4-120c-474e-85b4-f9e9fb856756开始界面和消息栏无法打开鲲卓 提问时间 八月 13, 2015
2016-06-28 15:01:48 11171
原创 CSS Floating:Floats and Float Shapes-O'Reilly 2016(读书笔记)
CSS Floating:Floats and Float Shapesfloat: left|right|none;不能超出其containing block的范围;也不能超过其所在行前面的line box元素的top(嗯?)冲突:如果浮动元素的宽度高度超过其containing block的范围怎么办?默认允许bottom溢出(因为规范只
2016-06-25 22:27:10 935 1
原创 单调栈:平面上N个底部对齐紧靠在一起的矩形,宽高是任意整数,求其最大内切矩形的面积(版本2)
注意,RangeItem里有了width的状态定义,实际上不需要2次遍历,新代码如下:include #include #include struct Box { int width; int height;};struct RangeItem { int start_index=-1; int end_index=-1; int widt
2016-06-25 00:38:44 656
原创 单调栈:平面上N个底部对齐紧靠在一起的矩形,宽高是任意整数,求其最大内切矩形的面积
//// acm-icpc-mono-stack.cpp#include #include #include struct Box { //Or name to Rect; int width; int height;};struct RangeItem { int start_index=-1; int end_index=-1; in
2016-06-25 00:12:04 500
原创 HTML5页面渲染性能的”程序转换“思路
做浏览器内核引擎的,一般都会考虑怎么做性能优化,这个优化实际上包括下面的内容:(1)内存占用的优化,特别是对于嵌入式设备尤其重要,chromium有个blimp thin client的模块,不知道有没有用处;(2)渲染性能的提高,注意核心就是尽量利用硬件GPU来做渲染,避免CPU计算和内存Copy的开销(3)网络IO性能的提高,改善页面加载、响应数据,乃至云加速压缩流量、广告过滤屏蔽
2016-06-22 20:43:32 1311
原创 Chromium内核net模块disk cache/index file的文件存储机制
http://localhost:8080/source/xref/greentea-7.2/net/disk_cache/simple/simple_index_file.cc (M43版本)// static// staticvoid SimpleIndexFile::Deserialize(const char* data, int data_len,
2016-06-21 16:50:05 1317
原创 Chromium的当前net/disk_cache/simple file模块没有实现缓存的原子更新
问题:当服务器端初始响应浏览器的HTTP GET请求并设置Date头部字段,浏览器缓存了cache的第一个版本;其后下一次请求revalidate时,浏览器设置If-Modified-Since,并期望得到一个304。不幸的是,浏览器却返回了200,并重新发回完整的response body响应。这种情况下,Chromium的net/disk_cache/simple file模块将尝试更新cac
2016-06-20 12:58:29 1037
原创 关于XSS和CSRF
XSS(跨站)指的是CMS/SNS类网站没有对用户输入进行安全过滤,导致用户可以上传恶意的html代码,并引诱此网站的其他用户访问包含了恶意代码的页面,导致用户信息泄露,甚至可以扩展为蠕虫病毒。CSRF(跨域)指的是在攻击者控制的A网站上制作特定的URL链接,理论上来讲,受害者(用户)如果点击这个链接,会导致对目标B网站的访问,而用户可能当前浏览器Tab页面中B网站处于登录状态,这样就会导
2016-06-17 23:22:05 534
原创 浏览器多用户Profile容器化技术
Mozilla Firefox最近推出了浏览器的多用户容器化模式。简单说来,就是创建多个隔离的用户Profile,这样就可以允许多个用户登录使用。事实上,我比较鄙视Mozilla,浏览器核心技术毫无创新,Pdf.js让人惊喜了一下,但是Asm.js这种Type Hints的编译器优化技术一个High点都没有。不过这也说明Mozilla里面有一些产品和PR做得顺溜的人,比如那个Don
2016-06-17 23:05:30 999
原创 关于“微信订阅号/制作相册”
微信订阅号/制作相册:用户上传几张图片,然后选择参数,发布为一个带有动画特效的“相册”。纯粹就是一个功能单一的web服务吧,这里主要的问题在于图片数据托管存在哪里? 其实搞个“绿茶订阅号”也没什么打不了的,不过问题是,图片存储这个网络传输过程很不可靠。可以做成本地模式。但是复杂的“个性化编辑”功能就需要较大的开发量。 这里的一个问题是:用户不满意页面上的版权性文字(XXX制
2016-06-17 22:43:05 8720
原创 Another active Homebrew process is already using mysql问题的解决方法
brew install mysqll命令执行到一半,屏幕锁屏了,结果重现打开进去后,进度不动了,Ctrl + Z结束掉,然后:chenzhixiangdeMacBook-Pro:my-yesod-project chenzhixiang$ brew install mysqlError: Operation already in progress for mysqlAnother act
2016-06-17 15:33:21 3458
原创 下一个高性能Web框架应该选择哪一个????
Phonenix(基于Erlang/Elixir语言的):Erlang虚拟机的并发、可靠性做得不错,并且它有20年的工业应用历史。JVM还没这么长呢Python 3.5 + TornadoTornado的generator用来做异步IO编程挺不错的,但是当前4.3版本老是不更新,对HTTP/2的支持也不到位。NodeJS+Express/Koa?JavaScript
2016-06-17 13:42:18 2425
原创 HTTP/2在一个TCP连接里以frame封装的数据包方式多工传输。
HTTP/2在一个TCP连接里以frame封装的数据包方式多工传输。UDP本身支持数据包,但是UDP不保证到达顺序。在一个TCP stream上传输多个虚拟流的frame,解决了顺序问题、阻塞问题,同时还避免了连接反复建立的开销。同时,HTTP/2支持https(TLS)加密,保证端到端通信的安全。不足之处:(1)对于低性能低嵌入式设备,部署http2会不会代价太大?
2016-06-17 10:56:48 1900
原创 dumpheaders_http_threading_server.py脚本的Python 3.5迁移版
该脚本的主要用处是作为http服务器使用,并且可以输出请求/响应的http头部。import http.serverimport timeimport socketserverimport osimport threadingimport socketPORT = 8000class MyThreadingHTTPServer(socketserver.ThreadingTC
2016-06-06 18:11:27 629
原创 rMBP安装日志:brew install gcc
chenzhiangdeMBP:openresty-1.9.15.1 chenzhixiang$ brew install gcc==> Installing dependencies for gcc:gmp, mpfr, libmpc, isl==> Installing gcc dependency:gmp==> Downloading https://homebrew.b
2016-06-06 18:03:05 3240
原创 Python 3.5 HTTP服务器端重定向测试脚本
#!/usr/bin/python3import sysimport socketserverimport socketimport http.serverimport threadingimport io# Use supplied portif sys.argv[1:]: port = int(sys.argv[1])else: port = 8889
2016-06-04 15:58:59 2615
原创 从支持异步并发编程的Web后端框架到数据存储服务的分布式一致性哈希路由
异步并发框架应该可以解决web后端开发的IO性能问题,比如node、go?、tornado、openresty?,剩下的就是数据存储如何做切分和LB了,当然,可以考虑使用内存数据库,这样数据存储不需要管持久化关键的持久化仍然可以使用mysql,要么做主从分离,要么做jdbc前端转发,但是mysql的水平切分仍然是个技术活(对于业务逻辑复杂的情况)假如不考虑索引需求,所有
2016-06-01 21:42:02 1034
原创 论经济学、宗教及人类的社会生活
经济学不仅仅要保证效率也要保证公平。譬如过去利用民劳力贱而征过去开运河,到老了这群人必然得腰肌劳损、关节炎类风湿而死。现在则是虽然民工的工价高了,但这群人也没有什么社保,荒谬的是他们现在还要交钱。老了必然也没有什么好下场。何况价高卖苦力赚来的纸币最终也会随着货币滥发通货膨胀一文不值。说白了,经济学只是政府及其官-僚-系-统奴-役-劳动人民的工具。同样,就算劳动人民觉悟了,起来革
2016-05-29 16:06:33 594
原创 阅读王垠《怎样写一个解释器》一文后的一些体会
http://www.yinwang.org/blog-cn/2012/08/01/interpreter 怎样写一个解释器R2语言实现了表达式解释器,支持单变量let绑定、函数调用、函数作为参数传递(对于FP解释器而言这实际上不是问题),讲解了文法作用域与闭包的概念。缺点:直接利用了Racket语言的match语言,这有点偷懒,不过作者确实也说了不考虑parser的一些琐碎问题,
2016-05-27 12:30:39 2540
原创 React.js Essentials - Packt 2015(读书笔记)
React.js Essentials目录1安装开发环境2创建你的第一个React Element3React组件(状态机)4使React组件变成响应式的5React组件里使用其他库6更新React组件7创建复杂的React组件8Jest测试9Flux10Flux无痛项目维护安装开发环境Tw
2016-05-26 12:47:40 1161
原创 租房签合同之前的注意事项
租房签合同之前的注意事项0、确认房间内是否有异味1、确认房间面积2、确认是否南北通透(白天的通风)3、确认窗帘是否不透光(睡眠时的光线污染影响睡眠质量)4、确认床的大小(越大越好)5、谨记一条:签合同交钱之前,你是老大;签合同之后,房东是老大6、确认合同签几年,若要求必须签一年,可能哪里有问题 强势的房东可能是因为房源紧张,但也有可能表面房屋哪里存在问题,
2016-05-20 13:37:48 1629
原创 最近在上海浦东新区的租房经历
最近在上海浦东新区的租房经历缘起:我原来租住在张江镇的古桐五村,和一对房东老夫妻合住,租金从一开始的1600涨到1900(包水电)。一个月前房东老太突然说不租了,但是之前由于没有续签正式的合同,导致我很被动。3天前房东老汉却又说可以涨到2200续租。这2人表里不一,一个唱红脸一个唱黑脸的行为深深令我厌恶。再加上之前他们表现出的精明铿吝,我决心搬家。听公司的HR胖姐说川沙那边
2016-05-17 11:27:01 4864
原创 基于node-http-proxy的脚本:功能更新,现在支持把GFW屏蔽的URL作快速404失败返回处理;支持把墙外的CDN url映射为本地host
"use strict";//to support let-of syntax;var ProxyPort = 8888;var http = require('http'), net = require('net'), url = require('url'), httpProxy = require('http-proxy'); //需要安装Node 5.0,
2016-05-15 20:00:25 1575 1
原创 Pragmatic Scala:Create Expressive, Concise, and Scalable Applications (读书笔记)
Pragmatic Scala:Create Expressive, Concise, and Scalable Applications目录1From Java to Scala2Objects3Types4Function Values and Closures5Traits6Collections7模式匹配与正则
2016-05-11 18:55:01 1008
原创 阅读WebKit最近搞的一个存储开销小的、快速自适应的Locking机制
https://webkit.org/blog/6161/locking-in-webkit/主要受Linux内核futex设计的启发:https://www.kernel.org/doc/ols/2002/ols2002-pages-479-495.pdf Fuss, Futexes and Furwocks: Fast Userlevel Locking in Linux
2016-05-08 17:51:00 607
原创 Mozilla Rust最近发布的MIR的一个评论
原来Rust似乎是直接从AST翻译到LLVM IR,现在则拆分为HIR和MIR了。什么是MIR呢?仔细看了原始的blog文章和RFC,可以认为MIR其实就是对CFG的一种抽象,只有内存结构,没有线性化的序列化反序列化表示。这里要理解的一个核心概念是:AST只是高级层面的对原始语言的文法结构抽象,直接对应于前端parser的处理结果。而这个AST下降到MIR要做一系列的程序转换:这里
2016-05-08 16:19:35 1258
原创 基于DevTools协议+Chromium headless的客户端爬虫框架
之前的做法是使用PhantomJS以及一个html+嵌套iframe包含目标网站URL+跨域dom操作的简单性能优化。PhantomJS实现下面的核心需求:(1)无头模式,然而PhantomJS内核基于老版本的QtWebKit,与最新版本的Chromium代码相比,版本太老了,很多特性用不了(虽然目前国内网站应该也还没开始用上这些?比如ServiceWorker、CSS Custo
2016-05-08 16:08:04 6208
原创 经典的基于图着色模型的寄存器分配
经典的基于图着色模型的寄存器分配:1、如果变量(在指令/语句序列中,或称程序“基本块”?)不再被use(def也是use),则它dead2、否则变量live(活着)3、如果2个变量在一个block/program中都是live,则不能赋以相同的寄存器,在对应的RIG(register inference graph)中,在这2个变量节点之间连接一条边由上面的描述
2016-05-07 14:58:24 6245
转载 增加人口的好办法
增加人口的好办法:(1)允许一夫多妻制(2)每一个妻子只要有娃生,就直接分走富人财产的一部分,不需要等到遗产继承若富人不生娃,最终的结果就是财产充公。
2016-05-05 22:13:47 722
原创 从嵌套表达式谈抽象语法树(AST)到平台无关中间指令(IR)的翻译过程(线性化)
从嵌套表达式谈抽象语法树(AST)到平台无关中间指令(IR)的翻译过程(线性化)#一些想到的东西:## 要掌握编译器前端Parser的语法解析是怎么回事,不需要用完整的C语言系的字符串,只要考虑带括号的数学中缀表达式怎么处理就行了。## 这之间,关键的3点需要掌握:(1)怎么写一个算符优先、递归下降的BNF文法(2)怎么处理优先级和结合性的问题
2016-04-26 22:23:36 3453
原创 Android Security Internals, An In-Depth Guide to Android's Security Architecture 笔记
Android Security Internals, An In-Depth Guide to Android's Security Architecture目录1Android安全模型2权限3包管理机制4用户管理5加密服务6网络安全与PKI7凭据存储8在线账户管理9企业安全10设备安全11NFC和安
2016-04-05 14:25:56 1147
原创 Seven More Languages in Seven Weeks (读书笔记):Julia
JuliaDay 1julia> typeof(5)~0 位取反5 $ 6 //=> 3implicit = {:a => 1, :b => 2, :c => 3}explicit = [:a => 1, :b => 2, :c => 3] //静态类型限定?Float64[1, 2, 3] //有点Go语言语法的味道?切片:animals[2:end]多维数组:A = [1 2
2016-03-30 19:57:54 787
原创 Seven More Languages in Seven Weeks (读书笔记):Idris
IdrisDay 1基本上还是Haskell的语法?*functions> :t mapPrelude.Functor.map : Functor f => (a -> b) -> (f a) -> f bmap (\x => x * 0.5) (the (List Float) [3.14, 2.78])数据类型:idris/day1/data_types.idrda
2016-03-30 18:38:02 640
TCP/IP Sockets in Java, 2rd Edition
2008-11-28
Advanced Data Structures
2008-11-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人