开放的互联网对我来说一直都充满着魅力。一直觉得,互联网的各种开放协议设计得十分精巧,很多东西都恰到好处,就像邮件、日历、RSS订阅之流。大学两年来,我接触的最多的也是它们,于是乎对于身边事物的追求,也有类似的近乎极致的强迫症,很多东西都希望向着某些极致的标准去设计。

大概也是如此,一直以来我对于工具、对于解决问题的方式这一块似乎都带着一种莫名的执念。在看《Learning How To Learn》的时候,我遇到一个叫 Anki 的记忆工具,发现这个工具所带来的便利,我为此疯狂了一段时间,仿佛一切的学习,都应该是围绕着艾宾浩斯记忆曲线间隔重复的记忆。后来遇到了一个名为 MarginNote 的软件,看了介绍,并因为它能够自动制作 Anki 卡片而有所期待。但因为这软件只能在 Apple 的平台下运行,一直只能干巴巴地看着。

最近终于攒够零花钱,入了 iPad + Apple Pencil,搞上了 MarginNote 3 的试用,几天内刷了好几章的 CSAPP,的确舒爽。在这过程中,也把 Evernote,OneNote,Reeder 等东西也一并安了过去。通过 iPad 和无敌的触控笔,我也开始体会到这一系列设计的及其人性化的工具的便利,但对于它们的使用,似乎还是有那么一些迷茫。

在工具的不断切换中,我越来越觉得,自己的关注重点是不是有点偏了,我追求的应该是某些工具或者某种标准吗?

阅读全文 »

今天在 阑夕的一条微博 又看到了“他们的时间和生命不值钱,是我们的产品给了他们幸福感”这句熟悉的话,想起了在上一次看到这句话的时候关于信息爆炸的一些思考,也试着整理整理。

自从互联网诞生开始以来,我们渐渐进入了信息过载的时代,面对信息过载,通常有以下思路:一种是走编辑精选路线,在特定的专题上提供高质量的信息源,比如杂志,网站,新闻客户端等;另一种是走聚合路线,就像博客时代的RSS订阅,现在的微博、微信公众号、今日头条等等。

历史的潮流到了移动互联网,信息传达门槛变得极低,很多东西不需要过多的处理和筛选,就能交给对方。无形中也加重了信息过载的现象,人们每天面对目不暇接、良莠不齐的信息,深入思考的时间的剥夺也日益严重。如何应对这爆炸的信息,快速获得自己需要的部分,也成为了一种需求。

张一鸣 为佩奇关闭Google Reader的魄力叫好! 一文说,

我发现,要成为Google Reader常用用户必须具备两个特点:

一、信息组织能力强,明确知道自己想要的信息在哪。
二、自制力强,有规律的整理并能控制好RSS源的数量。

显然,能达到这两个条件的用户并不多。这也是为什么愤慨的Google Reader用户多是媒体从业人员。一款本该面对大众的产品却只能满足的是很小的一部分用户的需求,那就注定不会走得长远。

在我使用过一段Google Reader后,就已经不看好它的前景。这里订阅模式对用户要求太高,用户需要自己去想好“我喜欢什么,我订什么”。

对于那部分有一些兴趣但不是太喜欢的内容到底是订是不订,这也够让用户纠结的。比如我并不想看来自36氪所有文章,我只想看其中跟移动互联网有关的。那我到底是订还是不订呢?

所以,我认为这个订阅过程的用户体验就很不好。

我认为,虽说 RSS 订阅的门槛比较高,要求用户具备信息组织和筛选的能力和一定的自律才玩的转,但这应该是信息获取方面一种比较极致又纯粹的状态:各种更新的信息源以统一的方式输出,把选择的权力交还给用户,以辅助用户更高效地获取信息为主要功能。一切的中心,都应该从「让用户更好地掌控信息」的角度出发,而不是通过信息的控制去掌控用户。

面对用户的门槛,大概有两种策略,一种是保持本心,做好产品,引导用户,提高用户整体的信息素养,更好地使用工具去为自己更高效地获取信息而服务,另一种是用更低门槛产品去填补这个空缺。从产品的角度来说,没有情怀和价值观的驱动,第一种显然是无稽之谈,使用 RSS 应对信息爆炸的用户毕竟占少数,往这个方向去努力,强迫用户去学习,大多数的用户大概会选择更傻瓜更方便的工具,在 KPI 的范围内是吃力不讨好的。

所以商业公司大都偏向于第二种策略:降低产品的门槛,迎合这部分用户选择信息的需求。但毕竟还是商业公司,当看到这部分用户需求的巨大缺口,它会不断捕获存在这个空缺的用户,试图成为用户的一部分并控制它,使用户依赖于此,并从中获得利润。

在广告模式的加持下,利润压力的驱使下,在同行的竞争下,它必然会考虑加入让用户沉迷其中的元素,不知不觉中夺走用户的时间,也不会告诉用户什么他们降低的是什么的门槛。比如说,今日头条的APP,在默认情况下,当用户按返回键想退出,它又继续启动推荐,企图把用户留下来继续看。在形成依赖之后,在用户的反感范围内,推送广告之类的内容,在无形中也通过算法选择展示的内容去影响用户的认知。


阅读全文 »

最近启动了刷 LeetCode 的进程,Accepted 了几道题,但两天不到就忘了,即使是留了注释,想想写写笔记还是蛮有必要的,但我不希望不经思考整理就贴一堆代码,把博客搞的乱糟糟的,像 XSDN、XX园、X书 一样,所以也只是想把一些印象深刻的部分,留个笔记。

过去的我过于年少轻狂,把某些高级语言当成了全部,并未好好去用 C/C++ 写过点什么。忽视了那些底层的基础的后果便是,现在在写一些很简单的东西,在需要保证代码质量的时候,要纠结许久去思考某一段代码需要消耗比较大的代价才能下决定。用 C 语言写代码有个好,通过它可以让你弄清楚,计算机底层可以给你什么基本能力,什么能力是需要通过这些基本的东西通过封装的方式实现的,也相当于顺便强化计算机基础了,所以我也打算就用 C 来刷这一套算法题。


题目:

3.Longest Substring Without Repeating Characters
Given a string, find the length of the longest substring without repeating characters.

Examples:

Given "abcabcbb", the answer is "abc", which the length is 3.

Given "bbbbb", the answer is "b", with the length of 1.

Given "pwwkew", the answer is "wke", with the length of 3. Note
that the answer must be a substring, "pwke" is a subsequence and not a
substring.

程序需要统计输入字符串的最长无重复子串的长度。最初想到的是,从第一个字符开始,遍历这个字符的字符,直到出现重复的字符,统计此时的字符串长度,然后从第二个字符开始,重复这个过程,取最大的一个,直到最后一个字符为止,其中因为边界的问题的处理,折腾了许久,不过还是实现了下面的第一版的代码:




阅读全文 »

11.11,是程序员通宵赶代码的节日~

偶然打开自己的 Github 的主页发现,当初高三的时候啥也不懂靠着移植大佬主题插件蹭了点星星的我,真正意义上从头到尾写的小项目竟然突破了 200 Stars,小小的感慨一下下。

IMG_20181111_014844_194.jpg

看着旁边搁置了两年多一直没花时间更新的插件也渐渐涨到100多颗星星,有点心情复杂,也对不起那些对它寄予厚望的网友们。。。隔壁 DIYgay 大佬都更新到v1.10.1了,我的还用着他的 v1.4.6 =_=

其实如果当初能静下心来做点事情该多好,就不会像现在这么脱节了

把自己慢慢调整过来,希望有朝一日能真的把它们捡回来吧。。。

之前好多东西随手编辑完之后,没有过多的思考就发到了朋友圈,想一想还是得整理一下。朋友圈的东西几天就会被忘却,记录在 blog 上,至少在未来,我还能看见过去那个思考着的自己。

最近过了一段时间基本脱离微信的生活,越来越觉得,微信的很多功能仅仅只是只能满足浅层的需要,并不足以承载重度的需求~

把一个定位在浅层需要的应用重度应用在需要深度的工作中,大概是灾难的开始。

脑洞开了一下,一个应用能给我们提供服务,并能保持长久,我们必然要付出某些代价去平衡这个应用提供服务的过程中所付出的成本,这个代价有可能是我们购买应用付出的价格,也可能是我们在使用它的时候付出的时间、看的广告、通过它承载社会关系和隐私。

最鸡贼的是,后者往往背后隐藏着巨大的价值,等我们醒悟过来的时候,已经依赖于其中无法自拔了。人是有惰性的,对于绝大多数普通用户来说,能用一个应用解决的问题,即使这个过程有些繁琐,没达到一种忍无可忍的程度,是不会想着学习使用更好的工具的。以国内的厂商的尿性,它在承载你的某种需要的时候,它并不会积极地为你的需求而改善它的功能,而是处处设障,阻止用户的流失。毕竟,对于网络有自己的把握的人并不占多数,对于资本家来说,谁会和钱过不去,去满足小众的需要而得罪大部分人?用户是大爷,想要求用户学习?门都没有,这么做,就是给其它应用填补这部分需求的空间。

大概就是“免费的就是最贵的”吧,在面对一个应用之前,或许我们应该思考,我们在享受它提供的服务的时候,究竟为它付出了什么。

https://www.zhihu.com/question/293253813/answer/504207390
IMG_20181103_133952_557.jpg