聚合文章

汇集全部已收录博客的最新文章,点击标题前往原文阅读。

排序方式:最新发布
www.zyan.cc 2013-08-08

ADSL故障

联通封了80和8080端口(http://www.10010.com/mall-web/busiNotice/content?noticeId=27045394),没办法,只好用个国外廉价的VPS(2美元/月,ping 300~400ms线路不怎么好)做个Nginx代理,来访问我家中联通ADSL+Cubieboard上的源站。昨天,联通ADSL出故障了,没有备用线路,只好用了个电信3G上网卡+Cu…

Joshua tree国家公园

准备了一个月,终于等到了这次出游。下午3点30从家出发,总共开了130mi,终于到了公园的北入口,大概是5:50的样子,门口收费的人居然下班了,大开着门,没人收钱,我们只好大摇大摆的开进去,开始寻找camping的地点。 View Larger Map 把tent等搞定后,已是太阳落山之时,于是我们抗起相机去拍日落。…

把blog迁移到jekyll

自从上次看小舟的blog,说他 抛弃了wordpress ,我就开始心痒痒了。折腾是我的一大爱好,我用的blog平台,从最开始blogcn,到自建movable type,再到wordpress,现在又到jekyll了。 和wordpress不同的是,jekyll是一个使用ruby开发的静态文件生成程序,理论上它可以…

冰糖橙子 冰糖橙子 2013-06-14

WEBP

WEBP是什么呢? WEBP 是google推出的意图改变web图片JPG、PN … 继续阅读 →

www.zyan.cc 2013-05-21

被CC攻击

昨晚开始,我博客在国外的256M内存小VPS,遭到大量IP的CC攻击,带宽被占满,机房为了保证其他VPS的正常访问,对我的VPS访问进行了限制。没办法,只好用几KB/秒的速度,将未备份的几百兆数据迁移回来(幸好内容未变动的几个G数据,本地已经有备份)。因为域名未备案,于是放在了家中的北京联通ADSL + cubieboard 上,恢复了服务。2M的ADSL,上行只有512K带宽,速度会慢点,等有时…

www.zyan.cc 2013-05-21

手机电商APP的智能化设计

5月17日,我在苏州工业园区“2013首届金鸡湖云产业高峰论坛”上的演讲PPT:《手机电商APP的智能化设计》下载。 http://pan.baidu.com/share/link?shareid=560014&uk=3946315320&third=2

MyPass: A Password Generation Tool

我日常的密码管理是通过一个 Lua 脚本为不同网站生成不同密码。Lua 脚本的好处是电脑和 iPhone 上 (通过 iLuaBox) 都可以使用,不过切换到终端、调用脚本、拷贝粘贴密码的过程不太方便,所以最近实现了一个 Chrome 插件来实现这个功能。 这次实现的算法跟 One Shall Pass 的一致,可以指定密码长度、包含多少特殊字符等选项。插件用 Chrome 来同步密码选项。这个算法依赖 PBKDF2 生成 key 的开销来增加暴力破解 passphrase 的代价,所以可以公开算法,也因此可以用 JavaScript 实现然后放在网上以便随时在浏览器中使用。 除 Chrome…

千歳屋 千歳屋 2013-04-28

[收图向]订阅Pixiv排行

懒得每天刷p站,又不想错过新出的好图,想来想去果然还是把p站做成rss订阅到GR里最方便啦 本日 http://rakuen.thec.me/PixivRss/daily-20 本周 http://rakuen.thec.me/PixivRss/weekly-20 本月 http://rakuen.thec.me/PixivRss/monthly-20 原创 http://rakuen.thec.…

千歳屋 千歳屋 2013-04-20

吃CPU之墙

昨天逛琉璃神社的时候觉得人家首页的那个slider意外的带感,于是自己也做了个 大概就是这样: FF20/Chrome26/IE10无误,只做了渐隐、液化、移动三种变换效果。 然后,昨天还顺手做了个pixiv的排行rss ,订阅到GR里就可以啦,现在是每天中午12点输出一次新的排行。不过因为pixiv的图片会检查引用来源,GR里面似乎显示不出来,还在想办法绕过去...等搞定了就把所有可用的排行都输…

shun.im shun.im 2013-04-07

2013 年四新番追番列表

现在满足追番的环境了,2012年的各种重量级半年番都已经完结,今年1月的我也就只看了南家三姐妹 4 和泡面用的向山进发,也都完结了。所以现在节目表非常的空,毫无压力。 4月新番总数有 35部左右的样子,一开始确定的只有电磁炮和俺妹两个续作。不过翠星和巨人让人觉得眼前一亮,反正压力不大也定下来,剩下几部观望中。 此外本季还有三次元新番:冰与火之歌 第三季,hoho。[......]继续阅读:2013…

InstapaperBookmarklet 及 Safari 扩展推荐

Update 2013-04-20: 原先的名字 InstapaperBookmark 容易误解成只是添加一个书签,现在改名为 InstapaperBookmarklet。 写了个 Safari 扩展 InstapaperBookmarklet,在工具栏添加一个按钮来执行 Instapaper bookmarklet。如果当前标签是空白页面的话点击会访问 Instapaper 网站。 如果你跟我一样使用 SafariTabSwitching 这个基于 SIMBL 的插件(实现 cmd+num 切换标签页),习惯隐藏书签栏,又喜欢官方 bookmarklet 的视觉反馈,那么可以试试看这个扩展。…

www.zyan.cc 2013-03-25

iPhone大小的盒子服务器Cubieboard

在淘宝上350多元,买了个基于ARM平台的超小电脑 cubieboard,配置如下: 1G ARM cortex-A8 processor, NEON, VFPv3, 256KB L2 cache Mali400, OpenGL ES GPU 512M/1GB DDR3 @480MHz HDMI 1080p Output 10/100M Ethernet 4GB Nand Flash 2 USB…

iPhone/iPad 屏幕坏点检测网页

上周去 Apple Store 维修我用了快两年的 iPhone 4,换回来的机器屏幕上有一小块区域有亮点。于是写了个显示单色页面帮助测试坏点的网页,方便下次去维修时检查屏幕。 测试网页链接在此。 其实写这个测试页面更多是尝试下写网页。Twitter Bootstrap 对我这样几乎完全没有前端经验的程序员来说的确是好东西。顺便还尝试了下 CoffeeScript,这语言看起来真不错,融合了 Ruby, Python 很多好的 feature。 P.S. Update: 因为 iPhone 屏幕亮斑昨天再次去 Apple Store 更换,得知现在的电池跟以前的不同,如果拿下来会导致变形,所以…

shun.im shun.im 2013-03-18

Google Reader 将死,Reader 还将继续

Google Reader 将于 7月 1日停止服务。 这几天网络上都是这个噩耗,我也该爬起来和博友们一起吐槽。。。 自 2008年3月28日以来,您一共阅读了 43,553 个条目。 从数据来看,我远算不上是一个重度的用户。不过它对我的重要性不是这个数据能概括的。头几年只是注册了,还没有使用 RSS 的习惯,后面才逐渐成为我关注网络新闻、技术发展,以及博友更新的重要渠道。[......]继续阅读…

疯狂的盒子 疯狂的盒子 2013-03-12

VPS主机被强事件

前几日主机被强,多日没有解封的迹象.于是今天给主机商发Ticket要求更换机房, 从11区迁移到了不列颠帝国客服不到一分钟就回复了我.速度令我十分惊愕.然后便是Power down, Trans...

Memory Consistency Model

Memory consistency model 是个不好想的东西,写并发程序的总有一天会遇到这个坑,如果不知道它的存在连怎么掉坑里的都不知道。我目前自己对此也不是弄得一清二楚,写这篇文章更多是让我自己做个总结,所以只做简单介绍,另外推荐一些我觉得介绍这方面的好文章。 什么是 Memory Consistency Model 并行程序在多个 CPU 上同时执行代码,如果每个 CPU 访问的都是自己私有的数据,那世界将非常美好,我们可以既不需要同步也不需要考虑 memory consistency model 的问题。但实际情况是总会有一些数据需要共享,有些 CPU 修改共享数据,有些读取。 M…

汽车为什么要有刹车

Why do cars have brakes? 这篇文章不错,继续往下读之前可以先想一想这个问题。 没有刹车,意味着不能很快减速,出于安全考虑不得把车开慢些。刹车给了我们减速的能力,因此让我们能够驾驶的更快。 原文作者将此类比到软件开发中,如果将软件构建的过程类比为开车,那测试就好比是刹车。 如果有好的自动化测试,我们可以比较放心地去修改代码,尽早发现 bug,停下 coding 修复 bug 没有测试则要么写代码的时候总是很小心,每次 commit 之前检查很多遍;要么依然全速前进,偶尔发现一堆 bug 之后花更多的时间 fix 我现在的习惯是每次 commit 代码之前先在 Source…

COW 0.5

放寒假之后花一周多的时间改进 COW,修复了些 bug,增加了一些新功能。改动比较大,所以跳过 0.4 版直接发布 0.5。使用说明和配置样例的注释都改成了中文,配置文件选项有些变化,请参考 github 上的说明修改;二进制文件下载还是在 Google Code。(发布之后才想起来 Google Code 貌似也被墙,使用安装脚本的话需要配置代理环境变量。) 感谢 glacjay 的建议,让我把 COW 做的更加自动化一些。0.5 版本最大的变化也在此。 由于没法准确判断超时是由于被墙还是连接状况差导致,被墙网站的判断没法做到非常准确。COW 现在的做法是: 统计访问的 host 被墙和直连…

反汇编 x86 指令

Update on 2013-01-16: 在 Dawson Engler 的主页上看到一篇论文,Reverse-Engineering Instruction Encodings,利用系统的汇编器自动生成指令 encoding 信息。有了这个信息就可以写 code generator, disassembler 了。Dawson 在这篇 paper 的说明里写道: It’s genesis was the fact that writing a binary encoder for the x86 is an unredeemably disgusting experience. 我想说,写…

Valgrind 中用 pipe 实现的 GIL

读 Valgrind: A Framework for Heavyweight Dynamic Binary Instrumentation 这篇论文时看到了一种实现 GIL 的方式。 先介绍一下为什么 Valgrind 需要 GIL。Valgrind instrument 二进制文件并且执行采用的方式叫做 Disassemble-and-resynthesise (D&R)。其大概过程如下: 将原二进制代码反汇编到中间代码 Valgrind 插件对得到的中间代码插入做检查的中间代码 对中间代码做优化之后,生成 native 代码 由于中间代码是 RISC like 的,一条 CISC 的读写…

pthread mutex,其实它飞快

Update on 2012-12-27: 知道 xchg 实现的 spinlock 竞争严重时变慢的原因后可以对它做一点优化。拿锁失败,发现锁还没有释放时应该尝试等待一段时间而不是不停的去检查,这样就可以避免同时有太多的核进行拿锁操作。优化之后的 xchg spinlock 性能在单个 CPU chip 上明显超过 pthread mutex,核数变多时也还是会胜过一些。加入 exponential backoff 的 spinlock 实现也放在 github 上了。实现简单 spinlock 时 waiter 一定要加 wait backoff,这个技术对 spinlock 的伸缩性影响…

基于 mmap 的二进制 log 库

之前的项目里写过一个用 mmap 实现的二进制日志库,把代码放到了 github。使用的例子代码可以看这个目录下的测试文件。 用 mmap 写日志的麻烦之处是 log 内容超过文件大小时必须要把文件变大才能继续往后写。这个库主要做的事情除了创建文件,调用 mmap 完成初始化之外就是增大日志文件了。 增大文件现在的处理方式是当文件不够大时通过 truncate 将文件变大,然后将扩大的部分 mmap 上来,同时归还之前 map 的内存。 其实 bprint 就是在写完这个 log 库之后写的。或许有同学会觉得有用。

说说SVM的基础知识(1) - 飞林沙

1. 导言在机器学习和模式识别领域,SVM绝对是除了Boosting之外的又一项重大突破,在一般的应用中,我们都用LibSVM这样已经成熟的库,但是对于内部机理和一些基础知识我们可能很多时候并不清楚,那么我们就把一些基础的知识一点点说清。2. 关于维度首先,我们来说下维度。维度这个概念我们都并不陌生,维度在数学中也称作维数,代表的是参数的数目。我们说零维是点,一维是线,二维是面,三维是立体。我们跳…

时间无爱 时间无爱 2012-12-19

笑忘书。

那些曾经你伤的最痛的地方,会变成你最坚强的。 大三的生活,没有想象中的那样悠闲,无止境的考试和时而触不及防的落Continue Reading

时间无爱 时间无爱 2012-09-15

浮生小记。

? 如果有一天,我老无所依 请把我留在,在那时光里 如果有一天,我悄然离去 ? ? 请把我埋在,在这春天里。 Continue Reading

shun.im shun.im 2012-09-15

壳中少女:燃烧

壳中少女 三部曲之二:燃烧,这 BD 在 7月底就出来了。 前段时间补番无力啊,终于今天把它看掉了。 (话说之前居然还有人向我剧透,哼,对小说早就看完的毫无杀伤力。) 没有看过前作的可以到 壳中少女:压缩 了解一下。[......]继续阅读:壳中少女:燃烧

时间无爱 时间无爱 2012-09-05

奠念。

很多年后,我们都垂垂老矣,而你还活在最美好的年纪。 你的微笑,就这样停在了18岁那年的冬天。 对Continue Reading

时间无爱 时间无爱 2012-09-03

Coffee time.

我们看错了世界,却说世界欺骗了我们。 单方咖啡比想象中的还要苦。 听从服务生的推荐,选了味道温和些的巴西咖啡,Continue Reading

从零开始打造完整评分系统 - 飞林沙

1. 概述 大多数的网站都需要一个评分系统,来考量该网站条目的质量,例如时光网: 那么在本文中,我们就来学着如何打造一个可用的评分系统。 2. 构建简单的评分系统 其实最初做一个评分系统很简单,我们首先先设计评分系统所需要的数据表,即用户评分表(user_rating): CREATE TABLE `user_rating` ( `id` int(11) unsigned NOT NULL AUT…

shun.im shun.im 2012-09-02

匿了好久,现状报告

这次匿了好久~ 居然有两个多月没有更新,惭愧。 例行的现状报告证明我还活着。 这几个月也没有太多值得一提的事情。 去过的地方倒是不少,在不变的大环境下换了许多小环境。[......]继续阅读:匿了好久,现状报告

shun.im shun.im 2012-06-18

姗姗来迟的 Opera 12.00

代号为 Wahoo 的 Opera 12.00 在前几天终于迎来正式版,详细更新内容请见 Opera IM。 可以说这一代经过了相当漫长的开发和测试周期,更新的内容相当的多,版本号依然有意义。 现在让我们来看看,这条近一年时间才养肥的大鱼是否可口。 当然,这也是一篇姗姗来迟的博客更新,惭愧啊。[......]继续阅读:姗姗来迟的 Opera 12.00

shun.im shun.im 2012-06-04

在不存在的日子更新一下刷存在感

在很久以前,其实也没那么久嘛(还好意思说 ←_←) 。 这个博客走过了三周年的里程碑,然后一直就这个样子,沉默。这是有多方面的原因的。 但我从未真正离开,只是躲在角落里观望这网络上的事物。 好吧,进入正题,本文其实也可以叫做“又一篇现状报告”。[......]继续阅读:在不存在的日子更新一下刷存在感

说说Python程序的执行过程 - 飞林沙

1. Python是一门解释型语言? 我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在。如果是解释型语言,那么生成的*.pyc文件是什么呢?c应该是compiled的缩写才对啊! 为了防止其他学习Python的人也被这句话误解,那么我们就在文中来澄清下这个问题,并且把一些基础概念给理清。 2. 解释型语言…

关于排行榜的算法经验谈 - 飞林沙

好久不来博客园了,前几天更新个人状态时,也把“技术博客”四个字改成了“荒废已久的博客”。好久不总结自己的工作和学习了,怎么说也过不去,就来这写一篇浅显的文章,没什么新鲜的内容,算是一篇经验的汇总把。1. 关于排行榜各大网站一般来说都少不了排行榜这个东西,一者是提供给商业合作方的数据排行榜,另一者是提供给用户的榜单。例如豆瓣的新书榜:2. 打造一个最简单的排行榜我们先用豆瓣的新书榜为例,看看我们如何…

ShadowMov's Blog 2012-04-22

成功编译Wine1.4

看着Ubuntu PPA源里的Wine很久没升级了,于是跑到Wine官网瞧了瞧,发觉Wine Stable到了1.4,Wine Unstable到1.5.2了。 早就不满意Wine1.3.X后期版本的效率了,果断sudo aptitude remove wine1.3,然后从官网下了1.4和1.5.2的源码包。 由于是编译安装,编译以后将较难变动,我选择了Wine Stable,也就是Wine1.4

鬼仔's Blog 鬼仔's Blog 2012-04-20

鬼仔Robot(Wi-Fi小车)

先上图,左边的是一代,2010年做的,右边的是二代,去年年底做的。一直想发一下,希望能够跟有相同爱好的同学做一些交流,但是拖延症太厉害了,我实在斗不过他,一直拖到现在才发。