HomeBlog
All Posts - Wenli Zhang
All Posts
Creative Commons License
Every blog post in this site by Wenli Zhang is licensed under a CC 3.0 License, based on a work at Github. You can see the source code of this blog site at github.com/Ovilia/blog.

2021-01

2021.01.01 08:45:00
系列博文:年度总结

2020 年度小结暨羡辙的 30 年小结

这篇文章共 9466 个字,因为它总结了我的三十年。

2020-03

2020.03.03 21:56:25

这本书居然教你故意把注册表单做得复杂!

看到标题后,你的第一反应是觉得为什么呢?给大家时间开动一下小脑瓜,答案稍后揭晓。今天要介绍的书是我刚读完的——《精益创业实战》。

2020-01

2020.01.19 21:23:00
系列博文:年度总结

2019 年度小结

今年过年早,再不写完这篇拖延了半个月的年度小结,都不能找借口说是以农历新年为分割点了。简单归纳一下:工作方面分为两部分,一部分是通过不断提 PR 加深了对核心代码的理解,另一部分是今年花了很多精力做社区推广的事,并且在年末的时候开始看到比较明显的成效。个人项目部分主要是把个人主页改版成像素风的设计,并且参与了 js13kgames 的比赛。

2019-12

2019.12.20 23:37:40
系列博文:读书小结

2019 年读书小结

今年总共读了 28 本书。工作以后每年基本上都维持在 20-30 本之间的阅读量。我并不要求自己读更多书,但数量少了的话,遇到有趣的书的几率也会比较低。所以,我觉得这个数量对我来说差不多刚好。

2019.12.18 15:27:58

如何成为 Apache ECharts (incubating) 的 Committer?

本文是 2019.12.07 Apache ECharts (incubating) 在上海举办的第一次线下交流会上我分享的主题的文字稿。

2019-06

2019.06.15 21:34:42

六年个人网站改版总结

在 2017 年上一次改版的时候,我曾经很狂妄的放出话说:「这次的设计可能以后都很难突破了怎么办?」果然我在2018年并没有更新个人网站的设计……好在 2019 年不用再交上白卷。下面就和大家一起来分享一下我用了 10 个月完成的像素复古风个人网站的技术实现,以及 6 年半建站经验的一些心得。

2019-04

2019.04.09 20:34:20
系列博文:2019 月度小结

2019 月度小结:三月

这个月真是水彩之月啊!画了这么多……我画画并不是为了成为很棒的艺术家,但这并不会让这件事失去价值。我选择的这些爱好也并不全是兴趣使然,我相信在某个人生阶段,它们会派上用处的。

2019-03

2019.03.11 19:00:00
系列博文:2019 月度小结

2019 月度小结:二月

二月份的月度小结拖到了三月中旬才写。照这样下去,说不定三月份的小结就是五月份看到了……本来记性就不好,最近每日流水账也懒得记半个月了,所以不得不翻着各种社交软件来看我都做了些啥…… Anyway……如果没看过一月份小结的,我简单说下——这个月度小结主要是为了让我自己记录一下做了些什么事的,可能比较无聊,也不会刻意写得更有趣一些。总之就是随便写的,你们也随便看吧~

2019-02

2019.02.03 22:00:00
系列博文:2019 月度小结

2019 月度小结:一月

我是一个记性很不好的人,所以写年度小结其实会遗漏很多事情。我也尝试过写日记,不过工作后的日子实在是昨天就像今天,今天又像明天,没什么可写之处。于是折中一下,学习我的闺蜜天天写个月度小结。但是我一个月下来也会不记得发生了什么事,所以每天就写流水账似的写下做了哪些事,提了哪些 commit。月度小结也会流水账一些,希望不会无聊到你。

2019-01

2019.01.29 21:56:48
系列博文:读书小结

2018 年读书小结

2018 年读了 24 本书,虽然其中有 10 本我愿意五星评价的书,但总体来说,并没有遇到很多特别心动的书。所以,今年还是要增加阅读量,才能遇到更多有意思的书。

2019.01.02 00:00:00
系列博文:年度总结

2018 年度小结

作为一个三分钟热度的人,我很惊讶地看到有几件事自己居然坚持做了几年——年度小结、读书小结、圣诞明信片。

2018-07

2018.07.31 17:21:27

WebGL blending 详解

混合(blend)对于图形图像处理领域是个很常见的概念,简单可以类比为在画画的时候,画布上已经有颜色了,那么新画上去的颜色会如何与原有的颜色结合,生成新的颜色效果呢?水彩、水粉、油画颜料等等,会因为不同的质地产生不同的叠加效果。而在图形渲染的时候,指定混合算法就有些类似于指定颜料的叠加属性。

2018-06

2018.06.11 22:46:40

《小脚与西服》读书笔记

这本书是张幼仪的侄孙女听张幼仪口述写成的传记,可以说是掌握了第一手的资料,很多事情他们的家人都不能一一知晓。简单来说,如果从外人的角度,这是一个民国第一才子抛弃旧式婚姻的“乡下土包子”妻子,追求有才华的西式新女性的故事。但是从本书当事人女主的角度,我们看到的就是民国第一渣男抛弃妻子,不负责任的自由。

2018-02

2018.02.27 18:51:16

2018 学习清单

好久没有正儿八经写博客了,而距离上一次写“学习清单”也过去了三年。由此可见,我并不是一个经常写计划的人。而但凡到了要写计划的份上,通常也是焦虑到了急需做出改变的时候。因而也就不难解释为什么一年中的两个月都快过去了,还会写今年的学习清单。

2018.02.24 14:18:16

折线段的光滑算法

折线图是一种非常常用的图表类型。有时,我们为了使其在视觉上更加柔和美观,会将折线进行光滑处理,得到曲线图。之前我在使用 ECharts 的时候,直观上觉得它的曲线效果有点奇怪。于是对其进行了优化,也相应地了解到了光滑曲线的算法,将会在本文中和大家一起探讨。下图是 ECharts 新老光滑算法的对比,其中黄色的虚线是初始数据组成的折线段,绿色是之前的光滑结果,红色是我这次修改后的光滑结果。

2018-01

2018.01.01 07:26:19
系列博文:年度总结

2017 年度小结

去年的总结是以这样一句话结尾的——确定了这辈子的另一半。想知道更多线索?请参阅去年的年度小结。然而大家纷纷表示毫无头绪。在漫长的一年之后,这一季终于揭晓了悬念……

2017-12

2017.12.14 21:13:59
系列博文:读书小结

2017 年读书小结

2017 年我总共读了 29 本书,本文是年度读书小结,并且给大家推荐读到的好书~

2017-09

2017.09.20 22:38:13

《卓有成效的管理者》读书笔记

从书名看,这本书讲的是如何成为高效的管理者,但对于从事知识型职业的人来说,绝大部分观点也同样适用于自我管理。很多观点可能并不能算是新奇,但是系统性地读下来,仍有很多值得细思的地方。因此,这篇读书笔记是对本书核心观点的整理和摘录。

2017-08

2017.08.29 18:48:08

使用 ECharts 与 ionic 创建原生应用

在这个教程中,我们将使用 ionic 创建原生应用,并用 ECharts 创建饼图和水球图。ionic 项目开发语言是 TypeScript,而 ECharts 的官方版本是基于 JavaScript 的,本教程将带你轻松实现在 TypeScript 中创建 ECharts 图表。

2017-07

2017.07.26 14:09:28

Document.createElementNS: What's the difference and why we need it

Yesterday, I was stuck with a mysterious problem, that the SVG elements are not updated on screen after I dynamically changed them. But on the other hand, if I copy the generated SVG and run it on jsfiddle.net, it rendered correctly. After some attempts, I found this problem was caused by using document.createElement instead of document.createElementNS to insert elements into SVG. So, what is this document.createElementNS after all?

2017-06

2017.06.19 16:31:19

从饼图百分比 bug 谈到议会席位分配

上周给 ECharts 修了一个挺有意思的 bug——饼图百分比由于四舍五入总和不为 100%。举一个简单的例子你就懵逼明白了:假设饼图由三部分组成,占比分别为:20.3%、30.4%、49.3%,总和是 100%。但是如果保留一位小数的话,分别为:20%、30%、49%,这样总和就只有 99% 了。想一下,这个问题应该如何解决呢?

2017-05

2017.05.05 15:33:58

小心,这饼有毒!:饼图的正确打开方式

到底什么时候该用饼图?使用的时候有哪些注意事项?作为最常用的图表类型之一,你真的了解饼图应该怎么用吗?

2017-03

2017.03.21 18:59:59
系列博文:着色器天书浅引

卡通渲染(下)

在上一篇博客中,我们介绍了如何实现卡通渲染的着色器。在本文中,我将介绍几种常用的描边算法,配合卡通渲染着色器可以实现更二次元的效果。

2017.03.05 10:45:26
系列博文:着色器天书浅引

卡通渲染(上)

在上一篇博客中,介绍了什么是着色器,以及着色器能实现的一些效果。在这一篇博客中,我将通过卡通渲染的例子,介绍如何写一个非常简单的着色器。

2017-02

2017.02.24 10:59:30
系列博文:着色器天书浅引

致从没看懂过着色器代码的你

还记得最初学图形学时,被 OpenGL 一堆非常底层的 API 搞得晕头转向。这时候,跑来一个学长(我读的是上海交通大学没错),指着红宝书上类似这样的一个图,语重心长地说:“图形学啊,你只要记住这个图就吼啦!”

2017-01

2017.01.31 16:06:06

爱你,还是爱自己:《皮格马利翁效应》读后感

皮格马利翁效应的典故取自希腊神话,一位名叫皮格马利翁的雕刻家,爱上了自己的女神雕像,结果雕像真的变成了女神。这一效应用来指代由于心理预期的好或坏,导致结果真的向着这一方向发展,是自我预言的实现的延伸。这本书探讨的是皮格马利翁效应的一个方面,即——我们在无意识中,对他人以及自身在他人世界中角色的设定,导致了我们行为和认知的同向发展。

2017.01.03 14:22:01
系列博文:读书小结

2016 年读书小结

2014 年开始把读书当作一个业余爱好,开始大规模广泛阅读。2014 年读了 120+ 本书,2015 年读了 80+ 本书,2016 年只读了 40+ 本书,2017 年怎么办啊!

2016-12

2016.12.31 22:11:40
系列博文:年度总结

2016 年度小结

就连在日记中也不得不被略过的绝大部分事件,对于当时或之后的我们都不能算是无足轻重。即便如此,要事无巨细地一一细数,也难免捉襟见肘。至于要总结一年的所见所闻所想,则更是难上加难。而这件事之所以困难,于如何删繁就简地择其精要复述给读者上还在其次,更甚者,如何真实并且诚实地回忆起事件发生当下内心的感受,对于一个健忘症患者来说,也真是实属不易。

2016.12.19 00:00:00

来,我们一起发神经吧!:《我们时代的神经症人格》读后感

说真的,你有没有怀疑过自己有神经病?如果没有,建议你读一下这本书,就很可能有了;如果有,也建议你读一下这本书,就很可能证实了。

2016.12.03 17:28:00

言辞的边界:《修辞认识》读后感

我们对于言辞的依赖远超我们的想象。那些我们说出口的话,形成了别人对我们的主要印象。那些我们没说出口的话,则逐渐塑造出我们自认为更接近真实自我的独立人格。和他人沟通需要借助语言,这也便罢了。为何我们内心的思考都很难脱离文字的束缚?

2016-10

2016.10.04 01:05:45

饮料与书籍

当买一本书的花费,不过是一两杯饮料钱,人们到底会读更多还是更少的书?

2016-08

2016.08.24 19:54:27

Using ECharts with TypeScript

This post introduces how to set up TypeScript environment with ECharts.

2016.08.21 10:22:31

改变历史的正义性与效用性讨论:《永恒的终结》读后感

本文对于《永恒的终结》中提到的永恒时空改变历史的正义性和效用性展开讨论。由于这是我读的为数不多的科幻小说,也是第一本阿西莫夫的小说,所以我的解读很有可能也并不正确,仅供作为发散思维的参考。

2016.08.17 00:17:22

遍身罗绮者,不是养蚕人

上次写养蚕的事,是初三的应试作文。而当时老师的评价则是——你到底是不是真的养过蚕啊?为了锻炼自己的写作能力,我希望可以经常找点话题写写。今天要谈的,就是小学时候养蚕的故事。可惜应该找不到那时的作文了,不然真想拿出来好好比比。大约是小学四年级的时候,班上不知道哪个顽皮的同学带了二三十条蚕宝宝,分给班上的同学。当时我是转学生,没有很玩得来的朋友,但也分到了两三条。印象非常深刻的是,放在了小糖果盒里,然后偷偷塞在书桌中。

2016-07

2016.07.27 13:44:48

Non UI-Blocking JavaScript

JavaScript often behaves like a multi-thread language with it’s event-based nature. But it’s not. In this post, I’m talking about how to prevent blocking UI when doing some heavy work in JavaScript.

2016.07.16 21:55:47

伪文青的艺术之旅:上海当代艺术博物馆游记

今天逛了两小时上海当代艺术博物馆,本来的行程是逛完去福州路书城的,但是由于为了给自己一个好心情,我是穿着高跟鞋出门的,所以后来就走不动了,放弃了去书城的计划。

2016.07.03 00:36:04

过敏这件可大可小的事

我有种很阿 Q 的精神,习惯将明明是不利的因素解释为有利的潜因——自然地,这种技能也被我理解为一种优势。今天起床,发现手臂上的过敏退了一半。好像一年四季过敏的日子总有三季,既不知道为什么过敏,也不知道为什么消退。看过医生,验过血,吃过药,总也没大好过。后来也就不大信这是可以被治疗的,索性接受了过敏作为我的一部分。也就是在吃海鲜的时候会比较迟疑,遇着实在想吃的时候就跟自己说,反正也查不出过敏原,海鲜会让我过敏的几率也未必大于不过敏的,索性就吃吧——幸而我并不是吃货。

2016-05

2016.05.28 23:00:00

前端可视化的测试实践:SegmentFault DDay 厦门站分享

本文为 SegmentFault DDay 厦门站分享内容。PPT 请于这里查看。

2016.05.23 12:16:52

Using ECharts with Angular.js

ECharts is a powerful JavaScript library to make amazing charts. This post introduces how to use ECharts in MVW style.

2016.05.11 16:01:49

Angular.js Pagination with Bootstrap

This post introduces how to make a pagination component with Angular.js and Bootstrap.

2016-04

2016.04.19 18:17:48

Installing NodeBB with MongoDB on Mac OS

My attempt to use NodeBB could be largely attributed to the simplicity of its install instructions. Yet I ended up spending much more time fixing all kinds of install problems. So this post serves as a hint for someone who runs into a similar situation.

2016.04.01 02:03:25

青春作伴,何必读研

很多人问我,读研有没有用。但是,什么是有用呢?如果有用是赚大钱,那么三年读研附加的工资很可能的确比不过三年工作经验。如果有用是学技术,那么三年研究生课堂上学到的知识很可能的确比不过三年工作实战经验。如果有用是拼文凭,那么一纸研究生毕业证书很可能的确比不过实打实的个人能力。既然如此,那还读什么研?

2016-03

2016.03.29 03:00:00

最后的毕业,最初的就业

做了多年主持,我最享受的时刻是散场后还打着灯光的舞台。没有过同样经历的人可能很难体会,这其实是一种很虐的感觉。你会看到上一刻的狂欢,和这一刻的孤单——而两者的分界线不过是一句“到此结束”。现在虽然我不再做主持,但这种感觉却让我印象深刻。我会觉得这种时刻带有某种佛性。久而久之,对于人生的起伏、生命的聚散,也就更豁达一些。因为如果明白了这种无常性,也就不会贪恋狂欢,或拒绝孤单。

2016-02

2016.02.23 12:50:27

代码江湖救急(下):碰到技术问题时,如何寻求帮助

在上一篇中,我们讨论了在碰到技术问题时的基本解决思路,在这一篇中,我们主要讨论如何问出一个好问题。

2016.02.19 03:00:34

烧书,始皇之功也

今天要和大家分享的是金圣叹才子对《水浒传》点评的序言部分。首先,我们断章取义地先看看才子大人都发了哪些高调——烧书,始皇之功也。……秦人烧书之举,非直始皇之志,亦仲尼之志。乃仲尼不烧而始皇烧者,仲尼不但无作书之权,是亦无烧书之权者也。哇,是不是很想知道金才子何出此言?

2016.02.19 22:31:22

代码江湖救急(上):碰到技术问题时,如何寻求帮助

在网络这个江湖里,有人看的是热闹,“暗哥和 summer 又撕架了哎,大家快来看”;有人看的是招式,“Vue.js 派大师兄今天用了一招袖里乾坤,轻巧地躲过了 React 派的掌门人的降龙十八掌”;少部分人能看出这些招式乱欲迷人眼背后不变的门道,“说到底,前端同盟底下这些帮派这些年闹得这么风风火火,不还是后端同盟或说是整个武林往些年经历的这些套数,再往大点说,不就是印证了整个宇宙分分合合的规律吗”。

2016.02.08 03:04:13

羡辙开始制作有声书啦

昨天公众号(羡辙部落格,xianzheblog)的推文被好多人夸声音好听(一定是收了我红包的关系),心血来潮搞了个喜马拉雅 FM 的号,以后我给你们读好书呀~

2016.02.02 12:06:28

读书,以消遣的名义

在这篇博客中,我们来探讨一下如何让你这个口味刁钻的人发现自己喜欢的书,以及如何让你这个大忙人有空读书。我知道你们都爱读书,却又找不到好书,或是没时间读书。所以写这篇博文的意思就是,再也不给你不读书的借口。不许读完跟我说:“道理我都懂,但是……”

2016-01

2016.01.05 13:21:47
系列博文:读书小结

2015 年读书小结

2014 年寒假里整理书房,翻到一本本科时候,某人影印送我的一本《菜根谭》,想起人家给我推荐的还特地影印的我一直都没读,索性停下收拾,开始读起来。虽然我对这本书评价不高,但是倒让我突然产生了趁图书馆馆藏丰富,多读些书的念头。两年下来,正好读了 200 本书。其中有《睡不着》这样翻起来很快的画本,也有《事林广记》这样可以拿来防身的大部头。

2015-12

2015.12.27 21:33:35

Upload Canvas Snapshots to Node.js

This post talks about how to generate a snapshot image from canvas and upload to Node.js, and then save to BOS. Since BOS has a limit for file name, we first save it locally on Node.js server and then upload to BOS.

2015.12.26 14:46:21

这些年失的眠:两年睡眠数据统计

昨天写年度总结,突然想起来以前安卓手机上有两年多的 SleepBot 睡眠数据,今天终于整理好,用 Node.js 预处理数据,用 ECharts 画成图表了。数据是从网页版 SleepBot 导出的,我没想到它非常贴心地提供了 CSV 数据下载,实在非常感动!

2015.12.25 16:42:35
系列博文:年度总结

2015 年度小结

又到年末了,照例总是要写这个总结的,也好显得我是个善于总结,吸取教训,累积经验之人。今年对我来说可能是比较特别的一年,可以算是十八年寒窗的最后一年。数着数着自己也觉得好恐怖,我居然读了十八年书啊?读了这么多年书,终于轮到我来为社会主义建设添砖加瓦了,想想还有点小激动。

2015.12.21 00:22:46

使用 Node.js 在 BCE 上访问 BOS 的方法

百度 BOS 是一种存储服务,然而坑爹的是居然不提供 Node.js 的接口。而更坑的是,明明 BCE 有提供该功能 Node.js 版本的 SDK,而官网却给出了一个非常复杂的解决方案

2015.12.19 19:02:09

Jade renderFile

This post introduces how to set file path when using renderFile of Jade.

2015.12.13 19:07:30

听蒋勋说红楼

走在路上的时候我很少让耳朵闲着,好像耳朵不闲内心也闲不下来似的。而在路上听得最多的就是《蒋勋细说红楼梦》了。这是蒋勋品读《红楼梦》前 80 回的有声书,形式听起来有点像讲座。每回要讲两个多小时,而读书读一回大概也就半个多小时,可见不负“细读”二字了。听了一年多,也就听了四十多回,在我路上无聊的时候,在我浮躁不安的时候,在我胡思乱想的时候,蒋勋的声音带给我很多安慰。我想可能我还需要听一年才能听完,但这就像读到一本真正好书的时候,你只会舍不得太快读完了,而不会急着在豆瓣上标记一下已读了。

2015-09

2015.09.20 14:51:33

过敏这件小事:《敏感的人:如何面对外界压力》读后感

看到书里说,心理敏感的人往往容易得皮疹,我挠了挠手臂,会心一笑。几乎每年春夏季节交替的时候手臂上都会发红红的东西,有时候医生说是皮疹,有时候说是皮炎,有时候又说是湿疹,配的药来来去去也就这么两三种。再后来,每年发的时候,我也就有经验地自己去药房买点药涂涂,虽然感觉也没什么用。有一年还发在脸上了,红红的一大块,着实把我和爸妈吓着了,索性后来退了也就完全没印子了。

2015.09.11 23:24:33

2015 暑假小结

周三定今天阿里回上海的幸福大巴,差点顺手定了周日返程的,才突然意识到,嗯,暑假结束了呢,该写暑假小结了。我好像是一个很喜欢写总结的人,可能也是由于我比较健忘吧。因为很容易忘记发生的事情,所以更需要写日记、作总结,事情虽然记不住,规律性的东西却更容易记住些,目的还是不要重复犯同样的错误。所以吧,我觉得缺点并不是只能被“克服”的,甚至有时候是很难克服的,但不妨碍你培养出其他方面的技能。我觉得我的很多缺点都是如此,除了健忘之外,还有比如……(哎,我忘了……)

2015-08

2015.08.28 20:48:22

这次,彻底搞懂 OpenGL 矩阵转换

沈大侠已经考过我两次矩阵转换的问题了,然而我每次都答不上来……虽然我每次事后都会去查资料,但是看过也就没进脑子,因为没什么感觉……模型变换,视图变换,投影变换,是啊,矩阵乘一乘嘛,咻咻咻就绘制好啦!这有什么好说的呢,简直不知道你要问什么嘛!如果不是我在阿里真的有需求做基于原生 WebGL 写的项目,可能第三次被问到这样的问题还是只能回答“矩阵乘一乘”了……真的写原生 WebGL 就知道了,我确实没搞透彻,所以觉得没什么好说的,而我当年写 OpenGL 的时候,好歹还有 glut 之类的第三方库,至少不用我自己写矩阵的。但是不理解清楚这个概念,自己写转换矩阵的时候分分钟就暴露了。

2015-07

2015.07.31 22:20:36

姑娘,你的斗志掉了

说实话我不太喜欢自己太有斗志的时候。单纯地因为这样不可爱。不是说有斗志的姑娘不可爱,而是太好斗的姑娘不可爱。

2015.07.29 09:30:22

JavaScript Function Arguments Assignment

This post introduces what happens when you assign new values to arguments fo a function. arguments is a special variable passed to all functions so that actual parameters are accessible even when they are not declared as formal parameters.

2015.07.27 15:52:45

Notes on ECMAScript 2015 Language Specification

This is the note taken when reading ECMA-262 edition 6.

2015.07.03 20:24:51

毕业季的英特尔小伙伴们

在英特尔实习的半年里,认识了很多很有意思的学弟学妹,鉴于他们中的大部分今天毕业了,我决定写下这篇博文来纪念一下我们这段奇妙的友情。说起来,其实我们之间的关联与英特尔关联倒不大,反而是与交大比较相关。

2015-06

2015.06.29 21:49:29
系列博文:历观文囿,泛览辞林

恣语终日,寂默不言:《因为孤独的缘故》读后感

其实我还没读完这本书,我本该在写论文的,只是我把论文的稿子忘带了,所以决定给自己放一个晚上的假。读到这本书我很惊讶,惊讶的是我觉得这本书的文风跟我中二时期的很像。这听起来的确很像在往脸上贴金啊,但如果我说这本书只能打两三分(满分五分),会不会可以稍微免去一点王婆卖瓜的嫌疑?

2015.06.26 12:25:15
系列博文:Polyvia

Polyvia:Low-Poly 风格的图像、视频处理

最初做这个项目的原因是作为百度 IFE 的高级题。代码可以在 GitHub Polyvia 看到。效果可以在线看到,图像版的可以对上传的图片进行处理,另外做了超出题目要求的视频版

2015.06.20 19:51:11
In Series: Polyvia

Get Video from Local Camera & Read from Shader Texture with Three.js

In this post, we are going to introduce how to use THREE.ShaderPass to write shaders for video from local camera and get pixel data from the rendered composer. We will take THREE.EdgeShader as example and read the rendered edges from it.

2015.06.18 07:06:00

墨水

雨雪霏霏的那年,为你捎去最后一张明信片。我也将独自珍藏,那些塞不进信里的语言。

2015.06.13 22:42:58
In Series: Polyvia

Wrapping Third-Party Libraries for RequireJS

Third-Party libraries sometimes come without AMD version. This post introduces a method to wrap them using shim. I’m going to take Three.js as example.

2015.06.12 21:45:37

Drawing Heatmap with HTML Canvas

This post introduces how to draw a heatmap chart using Canvas. By the end of the post, you can get the result as shown in the following image.

2015-08

2015.08.06 09:20:42

惩毖录:我所犯过的错误们

我记性很差。我总是忘记犯过的错误,然后再犯。一而再也就算了,但我不想再而三。所以我写下这篇笔记,一则警戒犯过的错误,二则为再遇到同样的问题提提供帮助,三则日后看到曾经犯过的愚蠢错误也值得一笑。大多数错误的原因是比较简单的,否则将单独作为博客来写。

2015-06

2015.06.08 11:52:19
系列博文:羡辙苦吟

无题

潇潇一夜花事了,懒起迟妆新妇娇。嫂令添柴姑唤盏,公催洒扫妪煎熬。君恩岁岁年年浅,红颜朝朝暮暮老。久立垂堂怜燕子,东风莫嫁也无聊。

2015.06.03 13:50:08

没错,我就是这么背诗的

我记性很差,所以从初中背诗词起,就想出各种奇奇怪怪的故事帮助记忆,可惜我现在也记不得了。所以我准备拿最近背的例子来做个说明,应该挺有意思的!

2015.06.03 10:29:34
系列博文:羡辙苦吟

夜雨即事

缓步凭裙湿,愁眠待雨宁。雨宁何所怨,亦复怕天晴。眷眷怀云意,区区向土情。梧桐窗下宿,点点到天明。

2015.06.01 09:45:27
系列博文:读书小结

2015 上半年读书小结

2015 年 1 月 1 日至 2015 年 5 月 31 日总共读了 40 本书,其中 9 本还是技术书,这让我更觉得这半年读书之少了。从 2014 年初决定大规模读书以后,上半年读了 88 本,下半年读了 42 本。根据这一年半的读书经历,我觉得差不多维持在每半年 40 本的数量是合适的。我倒也没有太在意读书多少,但是如果一段时间这个数字小了,的确也会引起我的注意,是不是花的时间少了,或者是兴趣淡了?

2015-05

2015.05.29 14:10:27
In Series: Polyvia

Upload Images with dat.GUI

This post introduces how to use JavaScript to upload a single image with dat.GUI. The file name of the image would be displayed in dat.GUI once the user chose an image.

2015.05.10 14:01:04

当我想得失眠时我在想什么

我的睡眠一直不大好。每个月大约都要彻夜睡不着一次,躺下一个小时睡不着的更是常事,对我来说半小时就能睡着实在是难得。早上又容易惊醒,在寝室不戴耳塞眼罩的基本六七点就得醒了。如此以来已经有好多年了。每次跟一个新认识的朋友说起,对方第一反应总是告诉我一些容易安然入睡的偏方。本意自然是好的,只是让我想到这里其实有个梗……

2015-04

2015.04.29 13:15:17

请叫我羡辙

鄙名羡辙,字子免,号灵石笠翁。本文解释了得名由来。

2015.04.14 20:42:36
In Series: Polyvia

Jade for GitHub Pages

This post talks about setting up Jade environment on GitHub Pages. GitHub Pages uses Jekyll for static HTML generating, which is how this very blog be hosted. You may probably find Jekyll lovely, after some period of adapting. Jekyll is especially more suitable for generating blogs than some random Websites. But for a general Website, we usually need to save ourselves from writing tags after tags. And Jade is what we needed.

2015.04.06 02:03:00
系列博文:历观文囿,泛览辞林

芭蕉夜雨,忍听一时:《秋灯琐忆》读后感

回忆是一个很神奇的东西。我们通常会觉得回忆很美好,美好到我们忍不住想和我们的新朋友分享。即使是痛苦不堪的回忆,也会用最善意和温馨的方式去解读。而当我们如数家珍的时候,看着对方努力想表现出感兴趣的样子,自己好像也会被无聊到:“是哦,现在想想,这些事的确挺无趣的。”下一次,我们可能会像说书人一样,把这件事添油加醋地尽量描绘得有意思些;或者,干脆不愿再告诉别人。

2015.04.01 19:44:04

2015 暑期实习生面试经历:阿里巴巴、百度前端工程师

2015 年 3 月参加并通过了阿里巴巴和百度的前端面试,前后历时三周,最后选择了阿里无线事业部作为暑假实习,但是也很向往 EFE 的 echarts 哦!有机会一定去体验下~ 这篇博客一来为自己作记录,二来希望给需要的人一些经验。

2015-03

2015.03.03 20:16:04
In Series: JavaScript Language Feature

Delete As In JavaScript

Something you may not know about JavaScript delete.

2015-02

2015.02.08 01:17:41

2015 学习清单

2015 都过去一个多月了,现在写学习清单似乎有点晚,不过再纠结也只能是越拖越晚,把计划写成了小结。所以即使现在已经是深夜一点,而我尽量避免晚睡,还是决定既然想到了,就先把学习清单列好。

2015-01

2015.01.01 00:00:00
系列博文:读书小结

2014 年读书小结

下决心多读书一年了,这时候正好做个小结。其实没有什么想多说的,如果有问题的话,参见半年前写的小结。还有就是,千万别纠结于数字,多看点书就可以了。

2015.01.01 22:57:25
系列博文:年度总结

2014 年度小结

终于在元旦赶完竹尖儿工作室网站的发布,而这对于我的大学生涯而言,也可以算是一件里程碑式的经历。虽说办个工作室并不是什么大事,但对于立志成为一名“独立前端交互师”的我而言,这也算即将开始的为期一年的一种新的生活方式的尝试。顺利与否,我都将体验到自己是否真的喜欢这样的生活方式,从而为我一年以后的职业选择提供非常有价值的参考依据。

2014-11

2014.11.24 21:07:15
系列博文:送羡辙一本书,让她写出更棒的作品

常读常新的基本功:《HTML & CSS设计与构建网站》读后感

很意外在公布了送羡辙一本书,让她写出更棒的作品之后不到五分钟就有人送了我这本《HTML & CSS设计与构建网站》。感谢这位我不认识的 CSF 童鞋~

2014.11.17 14:11:12

黑客马拉松记

这个周末参加了在上海纽约大学举办的黑客马拉松活动,虽然最后没有获奖,但是至少我对我们的作品、我们的团队都没留遗憾,这样就已经棒棒的啦~

2014-12

2014.12.11 21:21:17

免费啦:《Three.js 入门指南》

《Three.js 入门指南》发表一年多以来,收到了不少读者的反馈,很高兴能够帮助大家一起学习。为了让更多的读者可以学习到 Three.js 的中文资料,这一电子书的全部章节现在免费开放给所有读者,希望能够对大家有帮助!

2014-11

2014.11.05 17:25:48
In Series: How I made ...

Sketch Up a 960px 12 Columns Grid Using PhotoShop

In this post, we are going to introduce how to make a Grid with 12 columns on an A4 paper, which can be later printed and for sketching Website prototype.

2014-10

2014.10.30 23:21:58

书里的人生信条

我所赞同、欣赏、践行的那些哲言摘录。

2014.10.15 20:44:37

Frequently Used Commands of jQuery

A list of frequently used jQuery functions.

2015-04

2015.04.15 10:42:34

Frequently Used Commands of CSS

A list of frequently used CSS selectors and attributes

2019-01

2019.01.18 16:09:44

Frequently Used Commands of git

This post is about the git commands that I find hard to remember.

2014-09

2014.09.01 20:06:49

豆瓣 ReadFree 传送门:Chrome 插件

ReadFree 是超好用的电子书分享平台,在这里能找到很多适合在 Kindle 上阅读的 mobi 等格式的电子书。至于豆瓣读书就更不用介绍啦~ 本插件能够让你在豆瓣读书页面点击一个按钮,直接传送到 ReadFree 页面。到 Chrome Web Store 下载

2014.09.01 21:16:49

汉典划词查询:Chrome 插件

汉典划词查询插件是能够在任何页面用汉典划词查询的工具,是文学爱好者不可或缺的利器!到 Chrome Web Store 下载

2014-08

2014.08.31 17:36:00

Display Language Title of Syntax Highlighting

In the post Syntax Highlighting for Jekyll, I introduced how to enabld syntax highlighting feature with Jekyll Websited hosted on GitHub. In this post, I’m going to talk more about how to display the language in which the code is highlighted.

2014.08.25 13:34:00

Crosswalk Calling Java Methods with JavaScript

Crosswalk enables Web programmers to develop native Android applications with our familiar HTML, CSS and JavaScript. In some cases, however, we need the help of Java code to do something JavaScript cannot. This post talks about how to call Java methods with JavaScript.

2014.08.23 13:29:00
系列博文:历观文囿,泛览辞林

渐之进也,女归吉也:《围城》读后感

前阵子大概看电脑时间过长,眼睛总是很累,不用眼又闲得慌。于是,我下载了一个听书的软件懒人听书,因为是真人朗读的,所以效果确实比QQ阅读的机器朗读效果好些,虽然后者已经让我惊讶现在的朗读算法能做到这么好了。懒人听书的书库并不大,其中就有一直想读而未读的《围城》,就这样我慢慢听完了这本书,前后历时一个多月。

2014.08.17 09:56:00

前端这些年

接触网站前端编程以来的三年半,从当初还没听说过“网站前端”概念时候的糟糕设计,到如今的轻车驾熟,本文带你和我一起回顾这些年做过的前端设计,以及走过的成长之路。

2014.08.16 17:22:00

How to refer to a specific section in your blog? In-page Anchors When Mouse Moved On

When we want to refer to a specific post in our blog, we usually use an anchor like <a href="all.html">a full list of my posts</a>. Then, what if we want to refer to a specific section in a post, say, <h1>Who am I?</h1> in about-me.html? The point is, instead of wasting our visitors’ time reading everything before it, we’d like them to skip to that section with the URL provided. This post introduces how you can achieve this.

2014.08.15 22:39:00

New Color Scheme for My Blog

I redesigned the color scheme for my blog on 15th Aug, 2014. Checkout the difference here.

2014.08.11 18:32:00
系列博文:How I made ...

变卦:CSS / JavaScript 《易经》64卦酷炫实现

本文是对“变卦”网页的详细说明。《易经》64卦,每卦由6爻组成,2的6次方就是64。仅一爻的由阳变阴,由阴变阳,就可以让整个卦象发生根本的改变。“变卦”,让每一爻的变化尽收眼底。

2014.08.09 11:23:00

Want your Website to stay modern? 10 Sans-serif Fonts for Your Headline

Ever wondering which font to choose for your headline? Here’s the list of 10 sans-serif Google Fonts you must have a look at.

2014.08.05 22:34:08

Pageview from Google Analytics for Your Blog

You can now display pageview information from your Google Analytics in your blog hosted anywhere! No server required. Pure JavaScript. This post introduces how to do it with Google Analytics superProxy.

2014.08.04 21:54:08

Replace-Last Filter for Jekyll Liquid

There are only replace and replace-last filter in Liquid gramma. So how can we replace the last character in Jekyll? This post introduces an ad-hoc method to do this, as well as how to make a View Source on GitHub feature.

2014.08.03 23:29:19

Make Your Own Social Sharing Bar with Jekyll

From time to time do we need a customerized social sharing bar for our blog, for reasons like to harmonize the appearance of the share link with blog. This post talks about how to use Jekyll to generate static links for blog posts, with no JavaScript or anything difficult involved.

2014-07

2014.07.30 20:09:27
In Series: Dive into Web Front-End Programming

04 - More about CSS Position

relative, absolute, fixed are three most frequently used CSS position values. Even if you think you know them already, this post may surprise you.

2014.07.25 23:41:00

别做戴着设计师面具的美工

在我看来,完美主义倾向之于程序员若还算不上是必要,那至少对设计师而言是决不可或缺的。诚然,谁没对手上的任务有过敷衍了事的想法,但至少对细节的把握、对完美的追求,不应被设计师弃若敝履。否则,你是否应该思考,你真的不是一个戴着设计师面具的美工吗?

2014.07.15 22:57:38

Jekyll Related Posts without Plugin

This post introduces how to implement related posts function with Jekyll. Since GitHub disables plugin for security reasons, plugins like LawrenceWoodman / related_posts-jekyll_plugin cannot be used. Default site.related_posts may return recent posts when there aren’t enough posts sharing the same tags with current post.

2014-06

2014.06.25 20:09:20
系列博文:读书小结

2014 上半年读书小结

2014年1月29日-2014年6月25日读书小结。1月份生日的时候不知道怎么突然想起该趁现在图书馆资源丰富的时候多读些书,到现在差不多五个月了,读了将近90本书:yum:。因为期末考试刚刚结束,趁着这个机会就写个小结,以便日后对照读书进展。

2014-05

2014.05.18 12:19:00

Jekyll Tag Searching

This post introduces how to achieve searching tags with Jekyll, without using a Jekyll Plugin. The basic idea is to display all posts grouped by tags, and then use CSS to hide all except posts with the searching tag. We can get the searching tag in URL query string using JavaScript.

2014.05.18 14:28:00
In Series: Dive into Web Front-End Programming

03 - Dive into CSS

In this post, we introduce the CSS properties and most importantly, CSS position.

2014.05.11 11:56:00
系列博文:历观文囿,泛览辞林

道载万物,洋洋大哉:《京华烟云》读后感

《京华烟云》是我第二喜欢的小说(第一位毫无悬念是《红楼梦》),自我在高中第一遍读时就一直位居第二,以至于五六年之后已经忘记了当初为什么将其排在这么前面,而只记得确实是本很好的书。而今再读之时,对道家思想有了更多了解,越发觉得是一本不可多得的好书,甚至在有些方面对它的喜爱都超过了《红楼梦》。

2014.05.02 14:12:00
In Series: Dive into Web Front-End Programming

02 - Dive into HTML

We have introduced what HTML, CSS and JavaScript are and how they can work together in my previous post. In this post, we will have a deeper understanding of HTML and learn to make Web pages step by step.

2014-04

2014.04.27 19:38:20
In Series: Dive into Web Front-End Programming

01 - The Whole Picture

In this post, we introduced what HTML, CSS and JavaScript are and how they can work together. HTML files define the content of Web pages, CSS the style, and JavaScript the interaction.

2014.04.27 17:24:00
In Series: Dive into Web Front-End Programming

00 - About this series

This is an introduction of the series Dive into Web Front-End Programming.

2014-03

2014.03.28 10:25:28
系列博文:历观文囿,泛览辞林

皋陶歌虞,奚斯颂鲁:《1984》读后感

这是一本被称为“反乌托邦”的小说,如果不是因为恰巧同时又在读《理想国》这一乌托邦鼻祖级的书,或许我不会这么明显地察觉到偏听的危害。《1984》的讽刺非常到位,读起来也津津有味,完全不像《理想国》中让人想丢了书的诡辩式论调。因而,《1984》也就会让读者很自然地觉得国家极端政权是一件多么恐怖的事,一味地强调个人的权利,而没有意识到自己同样是被书控制了思想。

2014.03.22 12:43:34
系列博文:历观文囿,泛览辞林

事出沉思,义归翰藻:《吾国与吾民》读后感

林语堂的英语文笔自然是极好的,他善用排比长句,一口气读下来真是酣畅淋漓,真是难为他想得来。如果说这于议论文上尚有限,那于小说上飞文染翰就是不可限量了。这也就是为什么我认为《京华烟云》比本书能够多一颗星的重要原因了。

2014.03.10 18:22:07
系列博文:历观文囿,泛览辞林

林麓薮泽,心之所往:《瓦尔登湖》读后感

很多时候,我们觉得一本书写得好,未必是它教了我们什么道理;相反,往往说的道理是我们本就知道的,因为只有那些我们认同的才会让我们敬佩和崇拜。这本书对我来说也是如此。我一直很向往在深山里隐居的生活,然而这样的生活大概也只能在退休之后才可能有胆量说要去体验一下的,因为似乎人生还有很多责任和担负的呢。

2014-02

2014.02.10 01:27:57

Syntax Highlighting for Jekyll

In this post, I’m going to explain how to set up syntax hightlighting for Jekyll in GitHub style. Although I would not say GitHub code syntax style is the prettiest one, it is a good choice if you don’t want to write your own.

2014.02.09 22:08:18
In Series: How I made ...

How I made jCorner

In this post, I’m going to explain how to make jCorner, a jQuery plugin to create paper folding effect at the bottom-right corner.

2014-01

2014.01.29 11:52:33
系列博文:历观文囿,泛览辞林

境界不够,格调不高:《菜根谭》读后感

本书主要讲述了作者的人生观,以道家思想的有无相成为主,以儒家的君子之道为辅,添以佛教的看空人生,可谓是集儒释道于一身。但即便如此,还是显得境界不够,格调不高。

2013-11

2013.11.02 14:39:00
In Series: JavaScript Language Feature

Sorting In JavaScript

How JavaScript Array.prototype.sort behaviors and what you should be careful with when you use it.

2013-10

2013.10.24 13:35:00

RSS Is Now Available!

You can access RSS of this blog site at http://zhangwenli.com/blog/feed.xml. You may also send me an email in one click to subscribe.

2013.10.23 15:56:00
In Series: JavaScript Language Feature

Converting To Numbers In JavaScript

Sometimes we think someone or something is strange only because we expect differently. Number(), parstInt() and parseFloat are three ways to convert to Number type in JavaScript. However, they act differently and may suprise you in some cases. In this post, I would like to talk about what to expect from them and why they act differently.

2013.10.19 21:47:00
In Series: How I made ...

How I made this site

I’ve re-designed my personal site recently since the old version had too much description words, which is not the best design I could offer as a Web Front-End Designer :smirk:. You may probably find some interesting features at this site (especially the home page), so this post is served as an introduction of how to implement them.