万万没想到,今天和RMS一块吃饭了

本来以为讲座散场和志愿者们一起吃饭,但是哲思社区的人好像和前会长很熟,然后Stallman的行程似乎又是由他们安排,于是就自然演变成大家一起吃饭的情况了。。

RMS坐我右边的右边的右边的右边

吃饭其实没什么好说的,各吃各的。不过今天还是挺有趣的

  1. RMS各种炸毛,比如说大家在提问时太吵(确实),提问者讲不清重点,门没关外面太吵,很可爱,我喜欢

  2. RMS拍卖一本书带签名的书(似乎是自传或者是讲free software的反正封面是他自己),最后卖了500。开始拍卖的时候我都傻眼了,果然美国人有些国人身上少见的幽默感

  3. 我问了三个问题,第一个是怎么看heartbleed,RMS的回答和我想的差不多,就说free software这种机制不能保证没有bug,但却能减少bug。第二个是问他对各种语言怎么看,在freedom方面有没有差别。RMS先说没有,后来又说没有free implementation的语言应该不能算free。这么看的话不free的语言还是挺多的吧,比如MS的一堆语言(Stallman就说了VB)。第三个刚说出口就被制止了,我说"I'm always courious about your beard...",然后Stallman说还是让别人来问些真正的问题吧。NO ZUO NO DIE。

  4. Real hackers don't use GUI。RMS一有空就打开笔记本不知道在写啥,某一次是在写邮件,纯命令行。不过中国没有wifi的环境似乎让他很苦恼。估计美国人刚来都会不适应吧

  5. 经多名科院同学确认,RMS用的笔记本是龙芯笔记本(2023 update:型号是 Lemote YeeLoong 8089reference)。龙芯你们赶紧请RMS代言啊喂!这可是苛刻的GNU领袖的认可啊!

  6. 没有纸,拿了张毛爷爷给Stallman签名。后来Stallman说他有,结果翻了张名片出来。这次作死好像因祸得福了啊╮(╯▽╰)╭
    正面
    front
    背面
    front

  7. 那个衣服和帽子到底什么情况啊!以及我今天才知道RMS是Emacs的作者。最后他不讲free software了,穿上黑衣带上Disk做的帽子开始宣扬Emacs,我勒个去,作为Vim党真是不能忍!

  8. 忘记说了,RMS很反对Open Source这个概念和推动这个概念的一帮人(包括Linus),他认为“开源”的主要目的是通过开放源代码来让项目/代码更popular,而并不是赋予人自由。所以他一直强调,不要说Open Source Software,而要说Free Software。感觉RMS和Linus的关系并不好。另外,RMS抨击人们把GNU和Linux等价起来,甚至完全不提GNU而只说Linux。他说,正确的说法是,Linux是GNU项目的kernel,仅此而已。

博客性能优化

这是本学期大规模Web性能优化课的作业。虽然是课程作业,但说实话没有怎么好好听,到后来也基本不去上课了。。不过这个作业还是很认真在写,嗯。下面是原文,基本没有改。

目的

运用报告和课堂中学习到的优化方法,按照前端(14 条)、后端(50 条)优化原则,自行设计或选取网站进行优化,并使用分析工具进行性能提升分析。

要求

结果必须使目标网站总体性能得到优化,有能力的学生可以按照不同方面详细阐述自己的网站有了哪些提升。选取网站可以是已有的网站,也可以是开源的网站,也可以是自行搭建的网站,但是不允许使用其他同学已经优化完成的网站进行雷同操作。运用不同的性能分析工具进行分析同样可以获得加分 。

概述

因为有自己的网站(就是这个),所以当然就选择去优化它了。我的网站使用Django框架搭建,部署在Webfaction云平台上。
首先还是用YSlow和GTmetric这两个工具先测一下优化之前的网站的速度。
优化之前的状况,YSlow:
1

GTmetric:
2

Gtmetric能够生成完整的报告,网站优化前的速度报告参见《GTmetrix-report-laike9m.com_old.pdf》。
下面开始优化,优化目前只针对网站首页,即https://laike9m.com这个页面。

优化

我的网站是个人博客,后端数据库操作可以说是微乎其微,所以并没有太多可以优化的地方。唯一可以想到的后端优化就是生成静态页面,不过涉及到修改网站的逻辑,现在就先没有做。主要还是集中于前端的优化。

Add Expires headers

3
可以看到我的所有静态文件原来都没有加Expires头。
Webfaction提供了一个给静态文件添加Expires头的方法。我的static files是单独用一个application来管理,只要在其中设置”expires max”选项就可以了。根据文档可知

Specifically, the expires max configuration value sets: the Expires header to 31 December 2037 23:59:59 GMT, and the Cache-Control header’s max-age directive to 10 years.

然后加载页面,观察Network。选择一张png图片,response如下: res

可以看到,正如文档中所说,Cache-Control是十年,Expires到2037年12.31
用YSlow重新评测,现在这一项的评价由F提升到了E。
4
可以看到,剩下的四个没有加Expires头的静态文件都不是由我的网站加载的,而是从外部,所以对它们没办法进行优化。

减少HTTP请求

这项得分是C。Js确实可以减少,有两个目前是多余的。因为之后可能会用到,所以先采用注释掉的解决方法。 5
关于CSS,我自己定义的css由于是按功能划分便于开发所以不太好合并了,但是发现一个外部css比较短,所以考虑直接给变成Inline的。
6

/* MailChimp Form Embed Code - Slim - 08/17/2011 */
#mc_embed_signup form {display:block; position:relative; text-align:left; padding:10px 0 10px 3%}
#mc_embed_signup h2 {font-weight:bold; padding:0; margin:15px 0; font-size:1.4em;}
#mc_embed_signup input {border:1px solid #999; -webkit-appearance:none;}
#mc_embed_signup input[type=checkbox]{-webkit-appearance:checkbox;}
#mc_embed_signup input[type=radio]{-webkit-appearance:radio;}
#mc_embed_signup input:focus {border-color:#333;}
#mc_embed_signup .button {clear:both; background-color: #aaa; border: 0 none; border-radius:4px; color: #FFFFFF; cursor: pointer; display: inline-block; font-size:15px; font-weight: bold; height: 32px; line-height: 32px; margin: 0 5px 10px 0; padding:0; text-align: center; text-decoration: none; vertical-align: top; white-space: nowrap; width: auto;}
#mc_embed_signup .button:hover {background-color:#777;}
#mc_embed_signup .small-meta {font-size: 11px;}
#mc_embed_signup .nowrap {white-space:nowrap;} 
#mc_embed_signup .clear {clear:none; display:inline;}
#mc_embed_signup label {display:block; font-size:16px; padding-bottom:10px; font-weight:bold;}
#mc_embed_signup input.email {display:block; padding:8px 0; margin:0 4% 10px 0; text-indent:5px; width:58%; min-width:130px;}
#mc_embed_signup input.button {display:block; width:35%; margin:0 0 10px 0; min-width:90px;}
#mc_embed_signup div#mce-responses {float:left; top:-1.4em; padding:0em .5em 0em .5em; overflow:hidden; width:90%;margin: 0 5%; clear: both;}
#mc_embed_signup div.response {margin:1em 0; padding:1em .5em .5em 0; font-weight:bold; float:left; top:-1.5em; z-index:1; width:80%;}
#mc_embed_signup #mce-error-response {display:none;}
#mc_embed_signup #mce-success-response {color:#529214; display:none;}
#mc_embed_signup label.error {display:block; float:none; width:auto; margin-left:1.05em; text-align:left; padding:.5em 0;}

把上面这部分代码直接贴进html并且取消掉原来的css external link。重新测试:
7
成效显著,由C提升到B

使用CDN

这项得分也是F。这个感觉意义不大,而且不好做。免费CDN本来就不多,有的还要求网站必须备案。这项就不优化了。

把css放在顶端

这项得分是C
8
按照它说的,我现在通过修改Django的html模板把这两个css挪到html的head部分。原来这两个css没在head是因为它们是包含在body的block里面,从其它html里面加载的,所以就在body里面。现在我单独在head里面创建了一个block,这样就能把css加载到head里面。
修改之后效果如下,评价变成A了:
9

cookie-free

最后一项不是A的是cookie-free
10
要做到Cookie-free,需要我专门买个域名来存储静态文件,这一点我暂时未能为力。参见雅虎对于这一条的描述:

If your domain is www.example.org, you can host your static components on static.example.org. However, if you've already set cookies on the top-level domainexample.org as opposed to www.example.org, then all the requests to static.example.org will include those cookies. In this case, you can buy a whole new domain, host your static components there, and keep this domain cookie-free. Yahoo! uses yimg.com, YouTube uses ytimg.com, Amazon uses images-amazon.com and so on.

YSlow能做的优化也就是这些了。但是Gtmetric还提供了一些别的优化条目。

图片压缩

11
因为我的图片从来都没有压缩过,所以很大。我找了一个图片压缩软件,叫做Caesium,按80%质量把图片压缩了一下,压缩比例如下:
12
替换掉原来的图片之后,再用Gtmetric测试一次,结果如下:
13
这项得分上升到了B。

另外还有两项得分很低
14
首先是使用CSS sprites。这个我不太会弄,所以就不做了。

还有一项是说我没有给图片指定width或height。这一项似乎检测有失误,至少第一张图thumbnail.jpg是有宽度的
15
后面几张图因为在网页上的大小和原图一样,所以也就没有指定。

至此优化完成,Gtmetric报告可见GTmetrix-report-laike9m.com_new.pdf

前后对比

优化前
16
优化后
17

优化前
18
优化后
19
提升显著。详情参见GTmetrix-report-laike9m.comold.pdf,GTmetrix-report-laike9m.comnew.pdf。

进一步的工作

如果想进一步优化,还可以加一个静态页面缓存的系统,并且使用css sprites。还有就是目前只对首页图片做了压缩,博文里的图片还没有压缩。

补完了真实之泪

真实世界里只能是男二这件事让我留下了眼泪 —— 《真实之泪》

以上大雾

总体来说还是不错的,当初为了OP リフレクティア 去补番,最后果然(再次)印证了音乐好的动画质量也不会差这件事

男主挺不错的,不过大部分人也不至于搞得跟诚哥一样。最后折纸飞机告别石动乃绘那段很赞。

男二真苦逼啊,太尼玛苦了。。。这才是真实

所以最后只有石动乃绘和哥哥没有Happy End,果然只能走上禁断的爱这个结局吗(喂

时不时还是会觉得狗血,果然还是不太适合看这类的动画,不过P.A. Works确实良心,让我下决心去把三部曲中剩下的花开给补了

结尾乃绘在鸡笼前面流泪的画面不能更赞(后面行人一直在动有木有,当然鸡“地面”也在动..) 真一郎进比吕美的房间那集分别用两个人的视角来展现简直让我惊呆了,太帅了,这个技巧简直太帅了!!这是本片让我印象最深刻的地方,光有这几分钟,就不枉补番了


top