作者归档:polo

TIOBE排名

整理技术资料时发现16年初打印的TIOBE编程语言排行,于是到tiobe.com上看看最新的并打印下来对比着看。

前五的位置算是雷打不动的JCCCP,Java-C-C++-C#-Python。有些出乎我意料的是,C#相当的坚挺,记得去年初的资料上我打了个问号,有点怀疑它后续会不会有足够的市场使用率。

恰好相反,市占率不降反升。PHP其实也没有变化,只是6~7之间浮动。得益于大量形式的开源CMS的存在吧。

JavaScript,作为前端重要的存在,一直停留在7~8的位置有点意外。需要重新审视JS真正的贡献了。

有点意外的是R,从另外也反映了大数据以及数据分析数据可视化的前景大好。放两年前,这语言是足够的小众啊。

Scratch进入20,这是编程入门的好语言,比起以前的Basic、Logo和Pascal当然要有吸引力了。

Objective-C 我估计就是一步步地衰落了。swift倒是有投入的可能。

Go则稳定在前20。

Erlang虽然经常有不错的应用,但是场景实在是偏,所以在30多徘徊。

如果不想做前五的语言,我的建议是R、Swift和Go。

 

第一人称视觉遥控车备忘

目前遥控车加摄像头的有,但多为低端的手机+遥控车模式。也有使用VR眼镜+遥控车+摄像头+专用遥控器的产品。

我们的特点在于,遥控车为专业车模(比如蚊车),这种价格偏高,有专业的受众群。

摄像头应装入车体内,透过挡风玻璃摄录前方影像。

摄像头与VR眼镜为一套电子系统,原车与遥控器为另一套电子系统。这样双系统的做法成本略高,但可充分利用原来这两者的成熟度。

第一人称视觉之后,专业赛道效果就变得更重要,整天在客厅里面兜只令效果变得低端高端分不清。

追求的原则如下:

  • 贴近于真实驾车的视觉反馈
  • 贴近于真实驾车的操作反馈
  • 系统稳定
  • 成本合理
  • 方案易于对现有车模进行改造

以目前看来,一些问题:

  • 后视镜是否需要,之前是上帝视觉玩的遥控车,现在变成第一人称视觉,后视镜在驾车时就变得重要了。我倾向于使用光学后视镜,但如此小的尺寸下要做到清晰度高的反光镜片成本不低,需考虑细节方案。这目前还是一个次要的问题。鉴于一些赛车并不装配后视镜而在玩具车上设计有效后视镜的成本过高,考虑不予增加。
  • 马达对摄像头系统有所干扰。这个需要两套系统之间使用适当的信号屏蔽手段,但需避免降低各自系统的信号传输能力。
  • 车上的两套系统采用同一个电池。可避免一个设备两套电源系统导致电量的木桶效应。
  • 电池可独立替换。
  • 一键式开关遥控车。
  • 考虑电池贴近汽车底部的无线充电方案,可将充电底盘设计成赛道边上的车库。
  • 视频是使用模拟还是数字,效果 > 成本。
  • 需考虑信号传输距离,图像信号和控制信号的传输距离应相若。另外,信号的穿透能力是否有所考虑?
  • 双目摄像头如果效果并不能比单摄像头更优,则还是先用单摄像头。
  • 考虑已有蚊车的改造方案。
  • 增加透明的挡风玻璃/塑料片
  • 已有车模只考虑其自身的可靠性,对于新增的摄像头模块,需要增加保护机制。电动玩具车的碰撞激烈,容易造成损坏。
  • 目前马达电池发热严重,需考虑降低电池内阻或者增大马达阻力。

关于赛道

  • 目前的蚊车赛道也是可拼接的,但都是按套销售,可考虑零件进一步零件化和标准化。另外,边栏可增加景物接口,以方便增强第一人称视觉下的赛车体验。

危机感

人看来是不能闲下来的。最近几个月,主动或者被动地缺席了一些事情,然后加上公司业绩不佳,个人感觉可做的事情并不多,危机感就变得强烈了。

也不是坏事,身处忙碌之中会发现很多事情都是需要去做的,不能回避,而在事外,则可以花更多时间去思考未来,个人的能力以及定位,以求一个理想的将来。

但是危机感仍然是存在的,思考不能代表现实,也不能代表还没到来的将来,时间是值得珍惜的。

后面还是把自己的一些硬实力继续加强,争取成为主方,而不是客方。

角色名称的影响范围

之前所说的,就是用NLP的方式提取了角色名称的文本及位置。

我想用聚类来分析,然后这是一维的数据,发现聚类还真是略有尴尬。

不过不要紧,算法就是各种用途都可以。

聚类之后,得出中心点,聚类范围,聚类点数,这就是这个一维空间上角色的影响范围了。

得到一个角色的影响范围,再得到另一个角色的影响范围,我就可以再设计一个公式去计算这两个角色的亲密度/相关度。

这个数据有什么作用?至少能帮助编剧或者演员演不到主角的时候选一个合适的配角以保障出场率吧。

小宝终于出生了

周日下午睡午觉,老婆照例听一下胎心,说胎心位置怎么下移了这么多。

晚上我有点困,因为连续多日被CC住院出院复诊等等事情折腾,周六去香港买了铁丸和其他一些待产的东西,周日又带CC去北大医院去复诊。很热。很困。洗完澡10点多一点就上床睡觉,一会就睡着了。

老婆把我推醒,说破水了,我赶紧弹起来,看来是破得挺快。这时候是晚上10:40。要马上去医院了,好在白天把很多准备的物品都挪到车上去了,于是去叫小孩外婆,外婆正在洗澡。我又去看了一下车,好在没被挡。赶紧把东西搬下去,把车开出来一点,车灯打亮,避免被挡。

老婆和孩子外婆都妥当了,就一起扶老婆上车,垫好出发。

老婆还是很厉害的,一边痛一边退掉给CC和其他人买的高铁票,一边打电话给医院的同学安排医生和床位。

医院安排得有点远,开了40分钟才到,好在之前来过一次踩点,不然也要找个半天。这时候已经是11:45。

医生简单检查了一下,让我去门诊敲门办入院手续。等我办完回来,老婆已经推进了产房。想在走廊等一下,护士把我们赶回房间,说是不要挡着医生出入。

于是回房间等,床号是534,是之前跟CC一起玩碰到的数字,印象有点深,因为做了个因式分解534=2*3*89.

辗转了,没睡着,于是坐起来等。1点20左右,老婆打电话过来,让我2:30去产房门口去接她。问她生了没,她说早生了,0:36就顺出来了,3510克。

真利索。待2:30接老婆和小宝回到房间。心中大石算是落了地。

后来问起才知道,原来连侧切都没有,直接撕裂生出来的,算是急产了。出血略多,有500cc的出血。

老婆还是很厉害了,之前CC是剖腹产,这次顺产没想到这么顺利,就是需要补一补。

 

 

JSPHP NLP工作流

这个JSPHP NLP工作流的标题有点拗口,但目前仍难以作为独立服务发布,后面再取一个好听的名字吧。

高大上一点就是,我考虑的是如何利用有限的web空间/运算资源,实现规模略大的运算

我去年买了这个无限量存储的PHP web hosting,放弃了用了好几年的VPS。原因是VPS被攻击风险越来越大,用于VPN效果又不好,而多放几个网站存储上就有点累了。

但是纯粹的host缺点也是很明显的,我不能再在PHP下面自由添加一些扩展库了,更多的时候,只能使用纯粹的PHP进行运算。另外,单个PHP页面运算资源也是有限的,超时、内存限制等都不能自由修改。

不过是缺点也是挑战,于是当我考虑用这个host来进行一些NLP运算和统计工作的时候,我不得不考虑将运算过程进一步分解成若干个独立的小任务,这些小任务运算时间和资源都有一定限制。将这些小任务串联起来的工作,就落在前端的javascript上。

问题来了,为什么不在javascript上完成一切?

继续阅读

Notepad++里面的正则

其实用起来还好,唯一需要注意的是对GB*编码的支持不力,最好转成UTF-8再进行操作。

跟以前整理的UE里面的正则是类似的。

学到一些新的技能,因为在文本分词统计中发现一些名词出来的数量太少,于是找了找原文,发现原文里面既有简体也有繁体,另外还有错字别字。哪吒写成那吒之类。于是数据统计出来便失真了。

但不细看原文很难知道它哪里写错了,于是要用正则来检索。

比如我搜“八臂哪吒”要比“八臂”要少很多,但是后者肯定不是一个常用的词语,如果不在原文中查找具体位置中出现的问题,就要这么搜:“八臂(?!哪吒)”

这样就很快定位出不一样的八臂所在。

innerHTML和value

写了一个textarea,用js去提取内容。

开始的demo里面是用getElementById().innerHTML去拿,发现是OK的,后来改写页面,textarea里面的内容由用户自己修改,然后点某个href去触发js函数再去取,就不行了。

而换IE是好的。

查查了一个小时左右,才定位到innerHTML的不足。Chrome里面,这个textarea的innerHTML如果没有触发浏览器的刷新事件,那么不会更新,反复取只得上一个值。

这个刷新发生在什么时候?我估计可以是js内部修改,也可以是浏览器其他事件发生,比如submit等。

回到这个问题本身,如何让js在chrome中及时取到正确的内容,搜了一下,改成用value去取就OK了。

 

用户研究

今天翻CSDI的PPT,看到有产品经理相关的内容,其中一页列举了在对待新技术层面上的五种用户类型。

其中有 技术狂热者,他们一般是创新者,开创一些新的技术并可能产品化,但另一方面,对市场需求并不是那么敏锐,因为注意力集中在技术创新上了。

第二类是有远见者,他们一般是技术的早期采用者。

第三类是实用主义者,他们一般是新技术起来后的早期使用大众。

第四类是保守主义者,他们一般是等新技术已经广泛铺开后的后期使用大众。

最后一类是怀疑者,他们是落后于技术趋势的。

如果一个公司的核心管理层,完全处在保守主义者和怀疑者掌控之中,那么基本上,已经与创新没有多大关系了。此类型公司的策略,更多的是利用后发优势以及平台优势,在市场上陆续消灭那些根基不牢的竞争对手。