152018.11

日志 日常两三事

今天没什么事,日常过着
生活本来就是这样无聊
有时候有期待,没期待的时候仍然保持乐观
这也挺好

早上到公司解决了私有git服务
之后会分享出来

晚上去打球
一帮人,几个回合下来
哇哇喊累
恨不得马上输
果真到了该健身为常态的年龄

凑个紫薯
改进了scopex
和objext搭配用
各种想象空间

23:48:18 已有0条回复
142018.11

日志 没那么简单

世界上的事情,全然没那么简单。

昨天做出来的表单方案被吐槽了,虽然我自己觉得不错,但别人一看觉得理解难,不想用。做出东西来固然是好事,但是别人是否愿意用,是另外一个问题,如果没人用,最后就是垃圾。一想,自己写了一堆垃圾了……

想把腾讯云的服务器假设一个git服务器,然而事实并没有那么简单。原始的git服务基于ssh,通过22端口访问,很多内网不支持。于是想,架设一个http的服务就好了,结果整完之后,又要考虑鉴权,毕竟我的代码还没有完成,不能公开。但是整完鉴权之后,发现又遇到内网隔离的问题,也是……没那么简单。

在闲鱼上发布了索尼耳机,有人问,嫌价格贵,我……不卖你。

22:51:02 已有0条回复
132018.11

日志 闲鱼?攻破表单架构

下午在把Lamy钢笔放到闲鱼,晚上吃完饭一瞅,卖掉了,这么快?莫非我给的价格太低?这速度不会是托儿吧……回来说闲鱼app,这个UI我喜欢,又萌东西又多,而且细节做的也很好,完全不像阿里的风格呀,把这个UI丰富成社交app,也是不错的。而且黄色也是够调性,可以说是所有阿里系app中最有设计感的。

都说阿里注重营销而不重产品,但我觉得,随着互联网上半场结束,头部公司已经不限于最早期的特质了,腾讯的产品基因慢慢流失,回归到技术公司,阿里除了电商,在云计算等领域也可圈可点。头部公司之间慢慢变得越来越像,而不在那么黑白分明。

经过两天的挣扎,今天终于解决了项目组表单架构的问题。我的解决方案是,将表单抽象为一个对象,通过配置进行自定义。这种方法虽然古老,但是实用好用。简单的说,就是提炼出表单在业务逻辑中的可能性,再结合框架的编程模式,对表单进行数据、交互、界面的分离。界面是最好办的,按照一定的结构生成html,配合css样式。交互则稍微麻烦一些,需要结合实际的业务逻辑。由于我们的项目是基于angular的,所以在界面的变化时,必须依赖于angular的那套响应机制。在上一篇日更里面,我提到过,数据层和模板层是没有直接绑定的通道的,但是通过对scope的包装,我可以做到在模板中使用数据层数据的指针,这样就可以无缝对接两层。另外一个点比较难处理的是,如何从外部传入一个字符串,然后在directive内部把它转化为模板的一部分?这个问题处理了很久,通过angular内部提供的$parse,$compile等服务搞定了。最后,就是数据绑定的问题。表单组件,最麻烦的在于,如何将用于表现层的东西和数据层关联。因为表现层的配置数据结构一定是按照表单的界面逻辑给的,我给的结构是,一个表单有若干group组成,这些group有自己的标题和一些配置信息,在group中,又有若干选项item,这些item本身存在交互逻辑,相互之间也可能存在交互逻辑,groups之间也可能存在交互逻辑。而我们都知道,现代前端编程,交互逻辑是用数据去驱动的。因此,我利用$watch将内层的scope和外层scope上的部分用于表达数据的属性绑定,使他们在无需撰写大量内外部适配的代码的情况下,做到双向绑定,即外面的scope数据变化会引起内部的scope数据变化,从而引起界面的变化,当然,内部界面的变化也会触发数据变化导致外部数据变化。

另外还有一点想说,angular的脏检查机制其实也有高级的一面。数据响应我已经在其他的博文中说过了,但是我们都认为vue这种数据响应机制更高级。但是不得不承认一个点,vue这种数据响应机制实际上会引起强制规则,因为数据响应可能陷入死循环或者响应过于敏捷。而angular的脏检查让你不用担心死循环的问题,也就是说,你在$watch中修改自身不会引起下一轮循环,只要你的值没有发生变化,下一轮循环就不会进入到回调中。从这个点上讲,作为程序员,用起来是非常舒服的。

23:34:35 已有0条回复

【已售】Lamy钢笔 磨砂黑狩猎者系列 ¥180

公司20周年发放的福利中,包含了一只Lamy黑色钢笔,但自从小学毕业之后,就很少用钢笔了。我本想自己收了,但是东西实在是多,所以这里转手,对钢笔有兴趣的同学不要错过。


品牌:Lamy
型号:LM-SAFARI-17
特点:腾讯20周年纪念版
附件:保修卡、QQ挂饰

友情价格:¥180 (顺丰包邮)


作为德国知名的靠设计提升价值的品牌,Lamy钢笔之所以受青睐,就是因为它「有品味但还买得起」,和国产或传统钢笔相比,质量好,设计感强,和高端钢笔比价格不离谱,既不大众,也不小众,可以说是装X神笔。

作为腾讯20周年纪念版,它的包装和附赠都和官方原装不同。20年只有一次,不要错过哦。如果你感兴趣,可以在下方评论中留言咨询,如果想购买,可以扫网站右下角的二维码加我微信私聊。仅一只,售出后就木有了,所以如果心动,就别错过。


后记,没曾想下午发布到闲鱼两个小时就被人拍下了。搞的我都怀疑是不是价格太低了……

00:51:00 已有0条回复
122018.11

日志 挣扎在逻辑抽象和业务环境的表单设计

这两天一直在写一个基于业务逻辑的表单抽象架构。听上去多么简单的一件事,不就是个表单么。然而,拥有这样想法的我果然还是太年轻。表单,可以说是web开发中最复杂的交互领域之一。单纯把表单理解为用户可以填写和提交的交互元素,那就太无知了,殊不知,一个表单除了填写和提交两个动作之外,还有一大堆可能需要的动作,例如数据验证、联动、按条件填写项、复原和暂存、创建和编辑表单公用等等。这些东西还完全没有考虑具体业务中的特殊逻辑,单纯从抽象层面去归纳而已。

而且,在现代SPA应用开发中,表单跟jquery时代也有巨大区别。SPA是数据驱动型开发模式,即界面如何展示,完全由数据(状态)驱动。这就会遇到很多问题,数据驱动的开发模式,不可避免的需要模板,模板中使用变量,并映射到实际提供的数据中。在模板中使用变量并不能方便的对应的数据层去,比如你在模板使用一个for in的循环,那么就有item和list。list好理解,但是,如果将item又传回给数据层呢?

除了数据层和模板映射的问题,表单的数据更改其实也是麻烦事。它依赖于框架内的事件系统,也就是说,现代前端框架,无一例外的要求你通过绑定数据,依靠自己内部的事件系统,当用户输入数据时,将数据的变化绑定到数据层去。这也就产生了一系列问题,几乎没有一个表单架构能够具备通用性。开发者无法在数据结构的便捷性、数据响应的便捷性、数据校验的便捷性之间得到平衡,它们一定是互斥的。我这两个星期都栽在这个问题上,无法自拔。

而且,当一些业务的特殊逻辑加入的时候,这个事情就更复杂。例如,表单中的某个(些)项目,仅在某个选项为true的时候才展示出来。这个听上去简单,但是,你要知道,当用户在true和false之前切换的时候,那些被显示/隐藏的被填写的数据要不要保留?另一个复杂的问题,就是数据源。一个下拉列表,它的选项列表可能是根据当前选中的某个项来决定,当未选中时,或重新选择时,要进行切换。这个问题听起来尚好解决,然而,当要求,其中某个选项为某值时,要求表单中其他某个项必须与它互斥……这样的特殊逻辑,不是不可能存在,我就遇到了,并且敲破了自己的脑袋。

真希望有人能够将表单这回事进行深度抽象,大老,靠你了……

23:56:24 已有0条回复

因为超高的制作品质,同名专辑《我要我们在一起》获得第11届金曲奖最佳国语专辑以及最佳音乐录像带奖。

112018.11

日志 哈?极简主义(附福利)

MacBook键盘有点问题,escape键和fn键一个卡顿感一个没有回弹感,用起来有些不爽,就背去苹果店求修,结果,到了那里一个店员说,今天已经满了,你要预约,然后就不理我了……不理我了!!!真想骂mmp,劳资买的时候你咋不这个态度呢……哎,算了……

据说今天双十一,赶紧掏出手机,淘宝刷啊刷,键盘,我的84静电容,结果一瞅价格……额,还是算了,我东西已经挺多了,还是别冲动了,估计闲鱼都要卖一阵子。不知道从什么时候,家里的东西越来越多,使用率却越来越低。生活开始变得复杂,越复杂,杂念也越来越多,贪婪,想要的越来越多,房间越来越挤,堆了一架子的书,相机,镜头,手办,三台手机两台都不用的,键盘两个丢在角落的箱子里,还有修自行车的工具……单身狗,死宅,需要这些?……所以,我对自己说:忍住啊,别剁!

等我收拾话,能用的统统卖个二手,其他的扔。怕自己要用的时候没有,最好的办法就是别整旁的,把整那些的时间用来打坐放空。书也特别多,等读的差不多,也学某博主,免费送,不过大部分都是技术相关的书,估计也送不出去……

Joshua Fields Millburn & Ryan Nicodemus 在2011年创办了The Minimalists,帮助上百万人丢弃他们不需要的东西从而过上了更有意义的生活。

极简主义风靡全球,并非因为它显得前卫或高级,相反,它通过舍弃那些看上去重要,实则可有可无的部分,留下最核心的东西,从而让人专注、认真,让生活更meaningful。这个世界的物质太过丰富,导致我们习惯拥有一个之后,迫切的想拥有下一个,无法专注于我们真正应该关注的事情、人,让我们在物质生活中迷失。极简主义不是单纯黑色和白色的搭配,很多人对极简主义的理解陷于视觉上的合理布局,他们认为线条和颜色就是极简主义,最典型的就是MUJI。但并不是,极简主义的含义就跟它的名字一样,就是“极简”,最少,把最需要的部分留下,其他所有的东西都丢掉。遵循极简主义的设计,就是少,少到什么都没有,只剩下你要表达的物体、功能,不需要装饰,不需要设计。

毕竟是凡人,对这种极简主义的我是追求的,但是就是做不到啊……丢东西的时候会舍不得,看到新的东西又想去买。所以我说要去打坐,每天十分钟,反思自己今天又想买什么东西了,它真的必须要吗?这样反复想几遍,就会消除这个想法了。如果经过反复的反问还是抵抗不了,那就没办法了,马上买,不等。

卖东西啦

最后,附上打算出手的东西:Lamy钢笔(黑色,全新,腾讯20周年纪念版,带保修卡,链接),腾讯听听AI音箱(腾讯20周年纪念版),QQfun充电宝,小蚁4K运动相机+手持三轴稳定器+备用电池+SD卡,索尼耳机WH-CH500。如果你想要其中一个,可以留言哦,福利价格为原价50%-60%间。

22:31:25 已有4条回复
  1. 苹果无论修什么都靠预约。我之前修个 iPod Classic 也是让我预约,他们不接受到店直接修理或检测的。

    84静电容?你是说84键吗?
    我是买了个60键的静电容,码字感受还是更喜欢机械键盘。
    #643 Betty 2018-11-13 00:41 回复
  2. 你说的是你的HHKB?
    我主要是不喜欢机械键盘的声音,但是又没有上手过静电容,不知道手感。静电容是不是没有回弹感?
    #644 回复给#643 否子戈 2018-11-13 00:55 回复
  3. 对啊,我的HHKB。
    静电容用下来,于我而言感受是毫无回弹感。

    机械键盘的声音,得看轴。我买的红轴,我觉得声音就属于正常。比红轴更轻的还有黑轴、银轴,但相对也是回弹感会降低。

    你看中的静电容是哪款?能否让我这个键盘狂魔感受感受?啊哈哈
    #646 回复给#644 Betty 2018-11-13 08:44 回复
  4. Plum普拉姆NIZ蓝牙双模MAC静电容84侧刻
    键盘肯定要蓝牙,要支持mac,要有完整方向键和数字键,面积要小,键布局合理,侧刻主要是不想用的时间久了键面的字被抹掉
    #647 回复给#646 否子戈 2018-11-13 09:10 回复

经济机器是如何运行的

102018.11

日志 虚拟的游戏和现实的分裂症

今天和朋友去玩了最新的密室游戏。故事发生在一群高中生中间,他们听闻最近学校发生的怪事,小森已经三个星期没有出现在学校,他们决定去小森家一探究竟。当他们到达小森家里的时候,发现房门紧闭,室内好像发生了怪异现象,他们想尽一切办法,也没有办法打开房门,最后只能破窗而入。当他们进到房内,发现室内空无一人,一张床,还有一台电脑。虽然似乎这里没有人,然而,感觉有些异样。当他们准备出去的时候,发现,竟然无法逃出去了,恐惧一下降临,他们只能沉着应对。

旁边有一台电脑,当他们坐下来,发现电脑竟然是开机状态,里面有一款名字非常奇怪的游戏。当他们进入游戏,发现游戏的界面竟然和真实的这个房间是一模一样的布局。这时他们才发现,他们被困在这里,一定和这个游戏有着密切的联系。想要离开这里,必须去熟悉这款游戏。于是,他们中最喜欢玩游戏的人,承担了去熟悉了解这款游戏的任务。游戏中的虚拟世界有着和现实有着千丝万缕的关系,游戏中的每一步都和现实有着必然的逻辑联系。游戏中的下一步,需要在现实中找线索,而现实中的下一步,又需要游戏提供线索。就这样,在现实和虚拟的双向推进下,小森的命运一层层被拨开。

原来,游戏是小森的姐姐写的。在现实世界里,姐姐留下了一本残缺的日记,通过残缺的信息我们知道了一个悲惨的家庭故事。小森一家人除了姐姐全部死于非命,虽然全部找不到线索,警察一直无法破案,因为每一桩命案都无法找出任何他人作案的线索,但又不能认作自杀,怪异的死亡案件引起了城市的骚动。小森的姐姐认为家人的死亡一定是他人所为,他为了找出真凶,学习,拼命学习,弄的自己像神经病一样。游戏就是在这样的背景下被姐姐开发出来。

随着游戏的推进,怪异的事情发生了。游戏开始变得恐怖,开始出现一个幽灵一样的鬼影,这似乎预示着这个邪恶的实体就是凶手。游戏变得异常难推进,最后在几经折腾之后,再也无法推进。这是,一个不经意,我们发现游戏中的主角(小森姐姐为圆形的人物)坐回电脑旁边的时候,会触发一个机关,她敲击电脑桌下的墙壁。我们以为敲击的点码是一个密码,可以解开哪一个机关。但后来证明是错的。我们中的一人学着游戏中的动作,去敲击电脑桌下的墙壁。突然,砰地一声,灯光一扇,震耳的声音让人毛骨悚然,就像魔鬼从潘多拉魔盒中突然闪现一样,感觉就像天地要被撕裂一样,我们所有人都打了一哆嗦。一股寒光从桌下的墙壁透出,原来,那是一道暗门,通向另外一个房间,洞中透露着恐怖阴森的红光,还有凄惨的声音。为了推进游戏,我们不得不爬过去。当我们进入到一个新房间,意想不到的事情发生了。原来,这间密室,竟然和我们刚才所在的房间一模一样,完全一样,没有一丝的差异,唯一的差异,就是满地、满墙壁、满屋的血,与那尸体散发出来的恐怖。在这个房间,残缺的日记被慢慢找到,真相慢慢被揭开。原来,所有的一切,一切的所有,都是小森的姐姐所为。她就是那个凶手,那个以残忍到极点的手段,杀害自己的姐姐、母亲、父亲和妹妹的凶手。她在日记中写到“我一刀一刀插进他的心脏,看着爸爸痛苦的失去呼吸,我最后一刀割开他的主动脉,他终于死了,终于死了”……我们脑海中浮现着她阴冷而狰狞的大笑,不寒而栗。

她有两个人格,她在中间挣扎,当她发现的时候,她痛苦折麽着自己,为了让真相可以被发现,她拼尽全力写了这个游戏。她将自己的意识注入到这个游戏中,游戏控制了一切,而她的另外一面人格,那个恶魔控制着游戏。我们能不能从这房间逃出?

当然,我们是逃出来了。

当我重新去反思这个游戏时,内心也很复杂。人的思想中,邪恶的一面被压抑着,没有一个人是天生邪恶,但也没有一个人是完全善良。我们心中邪恶的那一面,在什么时候驱使着我们?在什么时候会出来作恶?双重人格只是那些失去了控制能力的人的具体表现,而对于非双重人格的人,更容易完全被邪恶所占有。这个世界没有善良不行,但是,我们也不能失去完整人格只留下善良,可是邪恶,却需要被关起来。或许,这就是人性的终极话题吧。

21:53:46 已有0条回复
092018.11

日志 听听音箱究竟还有哪里不对?

腾讯的生日是11.11,按理双十一应该被腾讯注册商标才对,可惜……腾讯的性格温和,能够做成事真的很幸运。在中国,要做一家有温度的公司,要做一家按照创业时的初衷行事的公司,要做一家以普通人为用户群体,用产品去服务他们打动他们的公司,真的是难到登天,唯独,腾讯这样做了20年,或许,今年之后,这样的腾讯也要转型了,要像产业互联网转变,不是因为不想继续做以用户为目标的产品,而是它不得不在市场竞争中活下去而面临转型。我08年高中毕业才有机会开始用QQ,10年,从用户变成员工,从喜欢它的产品,到去实现产品。

早上就拿到了公司发的周年礼物,由一个精美的大箱子装起来,包装精美,而且设计感十足,和它的产品一样,力求让人觉得有温度。如此隆重的包装,我觉得也有点浪费材料,不环保。

礼物中有腾讯自主研发的智能音箱“听听”,晚上回家体验了一下。

腾讯听听音箱

首先是颜值,不能说是最顶级的,毕竟只600上下的价格。但是整体而言,在同价位智能音箱中,算得上中上乘,我鹅的设计在国内还是顶级的。白色的上身,塑料感足,灰色网布的下身,音箱感十足。开关、接口、指示灯都遵循完美的对称原则,为了使这种对称更不拘一格,顶面采用斜面设计,增加了亲切感。

其次是音质,也算不上顶级,可能和音乐版本也有关系,非常浓的低音,放在桌面低音炮效果明显。也是因为这种明显的低音,不适合听现场音乐,音乐的细部会被和音盖下去。它不是专业的音响,更适合休闲,生活气息。

它的重量有点重,不适合便携。另外,AI功能需要联网支持,因此也只能在wifi环境下工作。

作为鹅厂人自己推出的AI音箱,它的AI语音交互是一个亮点。开机之后,只要你说出“9420”就能唤起AI小姐姐,然后你就可以告诉她你要干的事情,查询天气、听音乐、听小说等等。如果她不能马上理解你说的话,还会重新问你。据说,之所以用“9420”作为唤醒口令,除了它是“就是爱你”的谐音,还因为这个句法语音识别起来更容易,容错率更高。但是,代价就是比较难记,因为它有四个音节。虽然说错了也没关系,但是总有一种尴尬症犯的感觉。

在自然语言交流这个环节上,就目前整个行业的水平来看,听听算得上顶尖,响应速度快,识别准确,交流自然,非常流畅。当然,在情绪识别这个点上,还有待未来整个行业的提升。比如我很不耐烦的说下一首,它可能还无法意识到,我不喜欢当前这种音乐的类型。切换音乐类型,我能很明显感觉是后台的一个强制算法,比如连续切了两首之后,它就给我换了一个音乐类型。把玩之后,发现其实它也不过如此,主要还是依赖后台的AI算法。

当然,智能音箱市面上也很多,算不上独特的地方。而且,甚至在性价比上,还不如其他音箱,毕竟600RMB的价格不算是亲民,作为一款商业产品,注定会面临比较大的风险,甚至有可能卖不动都有可能。

但是,我认为听听是腾讯应该继续做的项目,主要从几个方面考虑:

AI落地产品。就目前整个市场而言,虽然AI话题火的足以燃烧市面上的所有现金,但是真正要把AI落地很难,因为一套算法只适用一个场景,而即使一个场景,算法也需要非常长的时间去学习和修正,特别是诸如自动驾驶这样庞大的AI系统,就连走在最前面的百度,也无法拍着胸脯说自己在自动驾驶上已经完全成熟,可以量产。而智能音箱则是一个非常好的切入口,它立足于非常小的场景,而且不要求非常准确,这就有了空间去逐渐打磨和完善。如果不落地一款AI产品,那么很难给市场信息,AI研究在公司内部也会被很多人质疑。所以,我觉得把这款产品做好,落地,打磨,非常重要,就像其他产品一样,前期不一定是市场上最有前景的,但公司有资源和钱推进它,让它在时间中逐渐淘汰那些资本推进的产品。

算法的完善。在AI领域,算法为王。就以同声传译为例子,这么简单的一个场景,AI仍然无法做到精确。要让AI越来越聪明,必须经过非常长周期的学习和调整,算法的优化。而通过智能音箱这样一个小场景,就可以达到这样一个目的。而且,一个用户,一旦拥有一个智能音箱,基本上不会再同时使用另外一个智能音箱,而且一个音箱的最低寿命也在半年以上,因此,对于长时间的针对单用户的学习和算法打磨,有非常好的作用。

平台。腾讯是一个做软件起家,以整合用户资源、内容资源为核心竞争力的公司。对于其他应用商而言,他们很难像腾讯一样,打通用户、音乐、视频、文学,而对于腾讯而言,文娱已经是整个公司的支柱之一,(我认为今天的腾讯,分为游戏、内容、投资三大块,这个话题我们以后讨论。)可以说能为用户提供最完善、最智能、最有效的视听服务。就拿音乐来说,QQ音乐经历了低谷期,慢慢积累沉淀,如今已经在国内市场没有任何竞争对手,准备独立上市,提供更优质的音乐服务,打通版权和商业,突破自己成为它最大的瓶颈。将这些平台整合起来,集公司各个事业群资源于一个小小的音箱上。在未来,这样的整合,可以被移植到车载系统、智能家具等其他设备上。音箱只是一个先行者,探路者,一旦这一平台模式成熟,那么面对未来各种可能,都可以心中不慌,从容面对。

总而言之,如果说听听是一款终极产品,我是不认同,毕竟它本身的缺陷很明显。它要做的有两个方面,一方面是继续打磨自身,像QQ音乐一样,慢慢沉淀,打磨出腾讯自己的硬件设备;另一方面,则是在AI算法上不断和公司整体层面的资源进行整合,把庞大的体系,浓缩为半尺大小的精华,为将来在其他领域的深入打下基础。

23:59:44 已有0条回复