吐槽昨天两个弄得我哭笑不得的东西,一个是教务处的开题基本信息提交页面,一个是网易云音乐。或许不仅仅是吐槽,而已经加强成评论了。
首先来看看教务网的那个页面长什么样:
这里为了说明接下来的一个问题,我动了一下 DOM,将那个“提交”加在了原来的位置上。因为我已经提交了,所以服务器动态生成的页面(这个服务器有一个错误页面,会报告详细的调试信息,从中得到一个显然的结论是运行在 Django 上,所以说是“动态生成”而不是用样式隐藏)里没有那个“提交”链接。其余的,除了现在所有字段都无法编辑外,其他和第一次访问时没什么区别。
然后请注意两个问题,凭直觉给一个答案:
- 那个“是否非涉密可公开”是什么东西?
- 如果你想打印评审表,你在不清楚其他功能的情况下,看到这些提示会怎么做?
是,我承认我在这个“是否非涉密可公开”处栽跟头了,填了“否”——然后生成的 PDF 表单中就成了这个样子:
如果没有看到这个“不可公开”,我还不会意识到我选错了。更大的问题是,不只我一个人选错了,在晚上七点多的时候有人提醒说要提交打印这表,然后在我们6个已经提交的人中4个填错了。我们这些前辈的鲜血就算是警醒了后人吧。
所以,教务处设计这提示的兄台,您知道 UX 吗?您用过这页面吗?知道用户心理诱导吗?为什么不用好端端的“是否涉密”而用一个考逻辑的“是否非涉密可公开”呢?您是想在问涉密的同时还提醒涉密和公开之间的关系吗?从常识想一想,涉密的题目居然能公开答辩?
然后我们来看看这货的 HTML 源代码:
<td>
<p>是否非涉密可公开: </p>
<div class="td_inta">
<select class="tb_tx" disabled="disabled" id="id_1_45-answer" name="1_45-answer">
<option value="">---------</option>
<option value="99">是</option>
<option value="105" selected="selected">否</option>
</select>
</div>
<div class="td_htxt">
</div>
</td>
嗯,还好,看来是一个独立 ID 硬编码的选项——哎重点不是这个!这个是否你居然使用 ID 作为选项值?既然名称都给了(1_45-answer
),为什么不用一个简单的 0/1 呢?如果想在这之前插入选项怎么办,这么高的耦合度,表变一点点后端也得跟着改分支逻辑。
不过幸好设计兄没有犯这种错误,我在看代码之前以为就凭这蹩脚的说明也该犯的:
<label for="sel1">是否非涉密可公开:</label>
<select id="sel1" name="sel1">
<option value="是">是</option>
<option value="否">否</option>
</select>
上面演示的另一个典型的硬编码问题在哪里呢?就出在这次的描述修改上。如果描述为了简明而修改成“题目是否涉密”的话,原来选项的“是”“否”角色就要倒过来了——如果要保持原有的逻辑不变(例如使用元素索引来赋 selected
属性),就会变成下面这个样子:
<label for="sel1">是否涉密:</label>
<select id="sel1" name="sel1">
<option value="是">否</option>
<option value="否">是</option>
</select>
看到上面这个抽风的代码,想必后面的维护者会气得跳起来。不过幸好现在这位前端还没沦落到这样的地步,基本规则还是……呃,知道的。
哦对差点忘了上面问的另一个问题了。公布正确答案:只需要保存一下,就可以导出,并不用像高考报名表和考研报名表那样先提交(这个提示倒说得很清楚,提交之后不可再修改)后才能导出打印。出乎意料吗?
所以您老,就不能将“提交”新起一行吗?如果设计成这样,是不是更好地体现出了先后顺序了:
今天经过一点偶然,我写了一点评论准备发到云音乐上,对应的歌是《Sister,Friend,Lover》:
首先纪念一下回到克图格亚的克子。这首是奈亚子W四个ED中我最喜欢的一首,刚私人FM推了珠绪的「嫌いなワケLychee」,刚好那首没有翻译,我就想着这首如果没有的话我一定要补上。一看已经有翻译了,瞬间也不想做那个了……哎这就是角色与角色的差距啊。
(不知道第一句表达的意思的同学,可以去 81 Produce 的官网,看2015年7月14日的消息。如果首页没有了的话,可以去新闻存档看。)
然而,按下“评论”按钮,却提示“无法评论”。为什么呢?看这里:
注意那个小小的云朵图标,那个的意思是这首歌符合两个条件:
- 我播放过,所以自动存在了我的“音乐云盘”里,播放时是从这里拉的源;
- 这首歌已经无法公开播放了,多半是由于版权问题。
什么时候丢掉公开播放权的呢?可以从线索中估计一下:
按照这首歌的人气,大概就是在12月11日到12月13日之间了。如果没有播放过会是什么样子呢?像下面这样:
注意这个 instrumental 版本,完全是灰色的,说明我之前没缓存过(基本上就是没播放过),同时我现在也不能播放了(“因合作方要求暂时下架”)。
一瞬间就心累了许多。不过一个例子让我看到了不同的东西,在《Girls, Be Ambitious.》:
这首歌的翻译是我做的(唉,年少无知),由于其中出现了一个错位的错误(将翻译从 Notepad++ 复制到网页时有一句复制到了下一句的位置,直接覆盖了)而成为了我的黑历史,所以我一直关注着。(题外话:另一首《シンクロマニカ》出现了严重的歌词错位,中间缺了一句所以后面的都往前移了。同样加入黑历史——而且是星月的cover啊——但是我确定复制的时候没有错误,是一一对应的,不知道是什么不可控因素起作用了……╮(╯▽╰)╭)这首歌我以前提到过,10月25日的时候就被禁止公开播放了。
但是12月中旬我看的时候,惊喜地发现在长期冷寂的评论区多了一条评论(天天看评论的,肯定之前的最新评论都烂熟于心了)。看到这条12月8日的评论我一激动,就想回复“终于见到一个新评论了”,可是按下“评论”按钮的时候,又是“无法评论”。
那么问题来了:那位仁兄是怎么能评论的呢?我觉得解释几乎只有一个:这位不在受限制区域中,但是具体在哪里我就不知道了。据此可以得出另一个有趣的结论:如果我一个在帝都的人看到的是“无法评论”,网页上尝试播放是“暂时下架”,那么这位创造了奇迹的仁兄的存在说明,云音乐的限制操作并不是仅针对某些版权资源的地图炮,而是将用户分成了两类,A类能播放,B类不能,就这么简单。分类标准?也许只是根据 IP 段。也就是说,即使明写着“暂时下架”,但是只要你处于正确的一类,它就没下架。或者换一个更直接的说法:云音乐的“暂时下架”是一个幌子,并没有切切实实地落实嘴上说的话,还是留了一个小后门的。这个后门未来是否会方便用户,这就不得而知了。
不过我并不是说那位是特权用户,只是ta在正确的时间出现在了正确的地点。我只是想感叹,版权帮助资本家筑起了高墙,占地为王了。更概括地说,是“连接权”:
归根结底,由于缺乏一个市场广泛接受的、有法律约束力的连接权开放和公平使用规则,任何公司(包括 BAT)要想做通连接的生意,要么自己控制这些能力和资源,要么加入某一阵营以享受不完全的连接权。虽然这样做可能会导致全社会的重复投资,但对于三家公司的战略安全却是必需的。
你喜欢在天天孤岛之间划上几小时的船吗?如果是为了必需品,如柴米油盐,这还好,但是为了一点糖果,一两次还行,并不会每天划的。这就相当于碎片化环境下的用户选择:歌手A和歌手B的版权分别由公司X和公司Y买下,如果是一个同时喜欢A和B的用户,要不就只能在X和Y的播放器之间切换(如果不允许下载的话),要不只能在其中取舍一番,选一个,要不就太麻烦了。幸好标准是统一的,大不了抓 PCM 数据包。多样性促进进化,碎片化促进灭绝,除非还有一根根丝线作为维系。
反例来了。早前,因为没有达成共同协议,日本的不同通信运营商之间的号码之间短信是不互通的,不知道现在是否还是这样。(题外话:这就是为什么在动漫作品里,学生之间交换的总是说“メールを送り”也就是“发邮件”,而不是“发短信”。)但是,通信受损了吗?只不过和我国的体系不一样而已,并没有有大损害。这是由于电信属于国民命脉,是必需品,所以中间的“丝线”不管是从道德角度还是利益角度,都是断不了的。美国的唱片业也很复杂,对受众造成了什么影响吗?
最后,《Sister,Friend,Lover》现在的播放权在谁手里呢?并不在虾米手里(同样说“下架”),也不在QQ音乐手里(标注“资源来自网络”)。那么我也不知道会在哪里,反正这个音乐的天下已经支离破碎了,一介草民能动什么。如果你卖草鞋还好说。