分类目录归档:点滴记录

Make Service Fault Transparent

This article is an English one, because I really need to work on the language. Sorry if it is not easy to understand.

A Summary to What's Happening Recently

Recently in my campus, IT service is very unstable.

  • In March, many people posted on forums that they tried to top up campus Internet account by WeChat, but more money (maybe 100x) than they paid were topped up.
    • Later WeChat top-up service were disabled. Because most people were not aware of the existing offline top-up-by-card service, many of them became arrearage.
    • Several days later, campus Internet's charging system was disabled, which means you can use it for free. Later the charging system was resumed, but only charging at the monthly fee (not counting flux fee).
    • An unnoticeable statement was published then, indicating that it was caused by a bug from the software company.
  • On March 20th, campus card users who used their cards to drink hot water or eat breakfast, found their card locked. (Those lazy guys were not affected at all)
    • In the morning nobody knows whether the issue was being solved, until at around 11 (lunchtime) my school's instructor sent an announcement that "there will be unlock service in canteens, please keep order and don't panic at the scene". At canteens announcements by canteens' administrator is put up. Unlocking was quick and easy, but most people still went to canteens where Alipay is accepted.
    • Later that afternoon public statement by card administrator was out: It was a service fault (on BITUnion some said that it's a bug hidden for 14 years). IT staffs explained on BITUnion that they tried to work out solutions and mitigate the issue before they drafted public statements.
  • In these months campus Internet is unstable: During peak hours it became very slow or even unavailable. Maybe it's around 2%'s downtime (in a 24-hour aspect), looking not that much, but users surely could experience that.
    • The causes seem very complex. In my view, new DNS servers, old cache servers, new firewall systems, new upstream link providers and upstream link issue all can cause problems. And of course those new facilities all need to be fine-tuned, which takes time.
    • Currently no authentic statement is published. But in the IT service monthly report (which most people are not aware of), it said "Issue fully fixed, during peak hours upstream links can work in full bandwidth now". One of the reasons they mentioned was "DDoS attack causing network core server CPU instant usage up to 99% (usually ~20%)".
    • However, as student representatives meeting will be held, many representatives will raise the heated Internet issue onto the meeting. But I believe most of they will never get the point why this is happening.

继续阅读

又是夏天,盲空梦别

前阵子做了个梦,其中一个片段大概是这个样子的:全班正在教室里晚自习,我坐在窗边,窗外看得到校门和海。

突然窗外头的海上风浪大作,教室里有点烦躁了起来,毕竟“台风”来了,也差不多该回家了。终于开始有人往校门外走了,过了一会教室里的老师终于宣布,各回各家吧。

我慢慢在教室里收完东西,居然最后往宿舍走去,没有回家。一看表差不多要 11 点,宿舍要锁门了。最后一个镜头是我回宿舍的路上吧,路一边的海面风平浪静,天空晴朗无云。

也不知道为啥,到这里戛然而止的剧情,我的理解是:台风真的要来了,我看着似乎大好的局面,觉得没啥事情,淡定地继续着自己的生活(回宿舍,不回家),没去做好该做的准备。 继续阅读

系统设计者的自我修养 / 一课一练

这学期选了专业选修课“机电系统综合设计”,从第一节课就开始面对不同:王老师提前把全班的名单导进了“出题优”应用,上课要用手机进行课堂互动。虽然已经听说过类似的教学方式,但亲身体验还是第一次。一开始老师介绍的课程内容,以前自己似乎都“学过”,但我觉得在这种教学方式下,或许会有些惊喜,于是就继续上了这门课。

听课程的名字是“综合设计”,最后还有考试,当时的我不是很懂既然是“设计”,考试能考什么呢?后来,课上除了讲“正题”,每节课前还有“每课一问”,问的多是些分析估算的题目,需要熟悉各种物理常量和物理常识。比如“一个人怎样能拉动一架飞机?”、“旋转木马的电机功率是多少?”等等。做了几个星期的题目,感觉自己对这类问题从最开始的毫无头绪,开始慢慢变得有思路起来。 继续阅读

分享飞逝金中那个页面最近的运营数据

还是先放数据吧

根据 Google Analytics 的数据,3 月 31 日 11:00 - 4 月 9 日 14:30,打开次数是 4780,用户数是 4230。下面重点介绍 3/31 - 4/4 这段时间的情况。

会话数是 4586,不过在这其中,真正拉动了开始拉杆的只有 3138,占 68.4%,也就是三分之一的流量跑掉了。

“看得下去”的访问量是 2009。什么叫”看得下去“呢?我在程序里做了匿名反馈,全部看完的时候会自动提交耗时,而在使用了触摸绘画功能、和选择忽略提示的时候,也会有自动反馈。有提交这类反馈的,就属于”看得下去“的访问量。这一下,2009/3138 = 64.0%,又少了三分之一。

而最后把 12 组照片看完,来到了精选留言界面的,有 1139 次,从拉动开始拉杆到此,转化率是 36.3%。 继续阅读

戏剧和交响的高雅课堂 / 一课一练

有些艺术,听起来很高雅,我们也很少有机会与他们相遇。但作为大学,没有他们,的确也称不上“大”。这篇,向你分享两个这样的课堂。

戏剧赏析:话剧是只潜力股

经典话剧艺术赏析,这是邵老师开的一门课。来到课堂,老师的 PPT 上写着“戏剧”二字,有那么点偏差。

果然一开场老师就解释,“戏剧”才是正统的概念用词,但知道大家看到这两个字就会以为课上讲的是唱起来的那种戏剧,老师在选课系统里就用的“话剧”二字。实际上戏剧可以指几千年前西方的那种戏剧,也可以指现代的“话剧”。

在理工类院校当老师,老师的课其实也开了好几门,从戏剧赏析到表演,都有。另外老师作为话剧导演,也经常在外面排剧。

老师说自己开这门课也是希望培养些话剧观众。课程其实还挺热门,老师也希望能分流一些同学去“网络课堂”看讲课视频。

我还是比较喜欢那种在教室里看着投影上的话剧的感觉。不过,每次只要视频放到最后一节下课之后,当我坐在教室里看了半个小时投影,终于看到完的时候,回头一看,教室里只剩下六七个人。

或许更多人在意的是免费看戏剧的机会吧,毕竟要是在网络课堂,就很难收到老师可能随时“弹出”的赠票消息了。反正最后也得写一篇剧评,不看还是得自己买票去现场。每次“抢票”,可能是课堂最活跃的时候了。 继续阅读

写字楼电梯间们的故事 / 随笔谈

三月初的时候,我带着手机、移动电源和报纸,还有耳机和 MP3,走进了大大小小的大厦。我做的事情很简单,拍电梯间的 LED 广告屏半个小时,然后拿着当天的报纸走出大厦,拍到报纸上的日期和大厦的名字。

你一定会好奇这是在干啥。很简单,天猫在广告屏上投放了广告,想了解播出情况,所以在阿里众包上付费让人去拍广告屏。(广告屏播的是 15s 版,现在看了 30s 版的才发现战地记者香港口音浓厚)

这几天下来,我好歹也去过了十几栋写字楼。虽然报酬还没结算,但电梯间的故事也挺多的,沉甸甸。 继续阅读

分享一些打磨单页网页的经验

这一篇想讲点老本行。寒假的时候做了一个网页,类似于相册。用大家熟悉的词说,有点“H5”的感觉(然而并不想用这个词)。在这个项目里,我很多精力都被用在优化用户体验上了,觉得应该分享一下。

网页性能的优化

页面用到了 canvas。这部分我是在别人的代码的基础上做了很大的改造再完成的。

跟图形处理一相关,网页的运算性能就会变得很重要,尤其是每一次交互操作都需要进行绘图、需要在手机上运行的时候,要是画面跟不上交互,看着就特别难受。在把基本功能都实现了之后,自然需要处理这个问题。 继续阅读

国外网站速度慢,是为什么 / 随笔谈

可能你心中会直接给出一个答案。不,不提那个,我想从原理上说起。

十年前跟现在的网络慢,原因并不同

还记得十年前,我一不小心打开了 Facebook,虽然能打开,但速度极慢。

那个时候的网页都很单纯,也并不大。此时速度慢只能归结于:这是一个远在美国的网站,所有的访问需要经过海底光缆,刚好那个时候国际网络比较慢咯。

十年过去了,互联网产业也有了很多的变化。其中很重要的是,CDN 越来越普遍。很多网站用上它之后,服务器跟客户端的距离变近了。我们访问很多网站的时候,看起来是个在美国的公司,但实际上连接的却是在香港、台湾甚至境内的 CDN 服务器。现在,速度理应快了才对啊。

但为什么,越来越多的网站,打开的时候明明看到标题了,页面却要空白很久呢?除了网站离我们太远,还有别的原因。 继续阅读

​课上着,变成了教育的道理 / 一课一练

专业课和基础课比起来还是挺不一样的。一个很大的不同是,专业课老师的课上着上着,突然冒出点教育的道理。而且,不同老师的道理,讲得还不一样。这是大学很神奇的地方。

下面就琐碎地串一串吧。

国内国外教育哪种好?

国内的教育一直是比较按部就班讲知识的那种,而某些西方国家的课就没那么照本宣科。怎么去评价这两种方式呢?

有位老师说,国内的大学按部就班,学的知识比较扎实。

有位老师说,自己的课程想结合一下国内和国外的做法,有理论知识,有课程项目。 继续阅读

研究 Oracle 到 PostgreSQL 的数据迁移 - 以 pgloader 为例

一点实习成果,过程中学了很多东西,就放出来吧,欢迎交流指正。

pgloader 介绍

  • 一个开源的工具,用来把数据从其他地方导入到 PostgreSQL
  • 写入 PostgreSQL 的时候用的 COPY 命令,效率高
  • v1 是 Tcl 写的,v2 是 Python 写的,v3 是 Common Lisp 写的,以下测试用的是 v3
  • 导入来源目前支持 CSV 文件、STDIN、SQLite、MySQL、MSSQL
  • 网址:https://github.com/dimitri/pgloaderhttp://pgloader.io/howto/pgloader.1.html
  • 有问题可以直接在 issues 里搜索关键词或者提问,有很多有用的资源: https://github.com/dimitri/pgloader/issues
  • Common Lisp 介绍:Lisp 的一种分支,一种语言规范,偏函数式编程,使用S-表达式表示代码和数据结构,函数和宏调用以列表的形式写出

与原生 copy 进行性能对比测试

  • 每次均为表清空之后再导入数据
  • 本地只有 PostgreSQL 环境,且 pgloader 暂时不支持从 Oracle 直读数据(但支持 MSSQL、MySQL 直读),所以采用 CSV 文件作为数据源,相当于不读、只写(458368 条记录,31MB,记录内容形如:"2016-1-1 0:00:00","1234567890","10.0.0.1","index.aspx","OK"
  • Python 测试和 pgloader 测试均在 Ubuntu 虚机上进行,连接到虚机宿主机上的 PG 数据库(包含网络开销)

分别进行三次测试,耗时结果: 继续阅读