手写控件支持同步显示功能

手写控件支持同步显示功能,简单来说,就是 View1书写,然后另外一个 View2 用来同步显示。这个是继支持导入 SVG 数据后的又一个改进。

技术上都是没有什么难点,毕竟数据格式都是我自己定义的。同步数据支持同步整个 View 的笔迹,也支持增量添加笔迹。增量添加这个在实际应用场景应该会很受用,例如同步网络端传输过来的笔迹数据。

看效果图:
paint_sync

下一个目标应该是支持手写动作的回放了,加油。还有一个目标,就是笔迹粗细根据书写速度进行调整,估计这样的手写效果会更加漂亮。

手写控件:加权滑动平均值法滤波算法解决压力变化过大的问题

在手写控件适配到其他平板的时候,会发现每个平板的压力反馈值有不小的差异,这样会存在一种情况,在某些平板上,就是在收笔的时候压力突然变小后,就成前面一段粗,后面一段细,就像下图:
unnamed
这个时候,使用简单的滤波算法能简单的解决问题。

滑动平均值法:

滑动平均值法当前采样1次压力值,将本次采样值和以前的N-1次采样值一起求平均,得到当前的有效采样值。滑动平均值法把N个采样数据看成一个队列,对列的长度固定为N,每进行一次新的采样,把采样结果放入队尾,而扔掉原来队首的一个数据,这样在队列中始终有N个“最新”的数据。计算滤波值时,只要把队列中的N个数据进行平均,就可得到新的滤波值。

加权滑动平均值法:
上面提到的求平均值的算法,其实并不是很适合我们手写的场景,它更适合采样比较恒定的数据。所以我们需要对这个平均值算法做一些改善,不是求平均值,而是每个队列中的数值,分配一个权重,数值乘以权重,相加,得到最后的结果。

下面是一个最简单的例子,例子里面的队列只有两个数值,第一个数值的权重是 0.4,第二个数值的权重是 0.6,最后 pressure 就是平滑后的压力值。


float lastPressure = 0.0f;
float PRESSURE_FILTER_WEIGHT = 0.6f;
pressure = PRESSURE_FILTER_WEIGHT * realPressure
+ (1 - PRESSURE_FILTER_WEIGHT) * lastPressure;

lastPressure = pressure;

最后,通过调整权重,还可以动态调整最后的效果,以适应不同的平板硬件。

原笔迹手写控件支持保存为 svg 图片

最近研究了一下 svg 图片,可缩放矢量图片这个特性,也要在手写控件上支持。花费了不少精力,最终实现了这个功能。支持原笔迹,压感,笔锋,无失真缩放,这个特性,算是比较先进的了。后期对网络的支持更进一步。

看效果图(博客不支持显示 SVG,看一下谷歌浏览器的效果吧。):
paintview_svg

 

网站迁移到阿里云

website_index_page

之前博客放到亚马逊 aws,免费,稳定,而且不用备案,但是速度比较慢,登陆后台更不能忍。ssh 也经常连接不了。想想长期稳定的需要,还是需要把网站迁移回来。

之所以选择阿里云的 ecs,一是自己的知识积累,搭建自己的 vps 不再是难题,而且也可以顺便搭建私人的 git 代码管理平台,对以后的职业生涯发展还是挺有帮助的。

最令我意外的是,阿里云的备案系统做的很好,估计公关方面也下了不少功夫。我整个备案周期只花了5天。老实说,备案是我最不乐意去做的事情,但是在国内的空间就必须经历这个,幸好的是,对于个人网站,只要内容不违规,通过备案都是没有多大问题的。

然后就是博客数据的迁移,用 WordPress 自带的导入导出功能,很容易就实现了博客的数据迁移。然后再修改 apache 的配置,以支持 htaccess,这样就可以支持 wp super cache 插件了。wp super cache 在 aws 一直没有设置成功,原来是因为 htaccess 支持的问题,而且 aws ssh 实在龟速,所以当初也懒得折腾了。

接下来的还有一些 WordPress 的本地化的处理需求,例如禁止 Google font, avatar 头像本地化,你懂的。

职场的危机意识

借用一句名言,生活太安逸了,工作就会被生活所累。而我最近的感悟就是,工作压力令人太安逸了,工作也会被生活所累。这是我个人最近的切身体会。

因为工作团体比较小,大家比较熟悉,跟老大的关系也很融洽,本来这是好事。但是最近发现一些同事反而因为这样压力比较小,而出现一些懒散的消极心态。这些同事的消极心态不难理解,做的事情都是难度不高,有不少是重复性工作,团体的人员变动又比较少,久而久之,很容易令自己变得缺乏热情,懒散,消极。

这种情况,我认为员工的个人素养因素是首要因素。首先,个人如果有做适当的职业生涯规划,有明确的奋斗目标,例如要在公司内得到晋升,或者两年后跳槽,再或者技术上得到怎样的提升,等等。

再次,企业也应该可以做一下改善,例如更好的激励制度,工作量的量化,以及跟业绩挂钩的奖金制度;给员工有挑战性的项目,激发员工工作的热情;适当的员工交流等。

其实自己也有受工作环境负面因素的影响,希望自己能正视,有则改之,无则加勉,在职场上能获取到更好的发展。

Android开发必备站点:androiddevtools.cn

因为众所周知的技术原因,Android 相关的官方网站无法访问,造成 Android 开发相关的工具,官方文档都无法访问,特别是SDK,ADT无法更新。这里推荐一个新手老鸟都必备的网站: androiddevtools.cn

收集整理Android开发所需的Android SDK、开发中用到的工具、Android开发教程、Android设计规范,免费的设计素材等。

欢迎大家推荐自己在Android开发过程中用的好用的工具、学习开发教程、用到设计素材,欢迎Star、Fork 。

海淘预订 Nexus 6P

前不久刚给老婆买了一台 iPhone 6(趁iPhone 6S 刚出来,iPhone 6 降价)。以前没有用过 iPhone 6, 初上手,的确惊艳。特别是硬件方面,感觉就是一个工艺品,手感超舒服,细节方面也处理的很好。至于系统方面,倒是没有多大的差距,可以说 Android  Material Design 并不逊色,而且有不少地方,Android 用起来感觉更自然,更自在。Android 的不足之处就是系统的一些细节的东西,可以做得更好。而且,最重要的是,得好好管管后台启动了!必须推出一个系统级的控制后台启动的功能,不然,越用越卡是不可避免的(后台启动,就像当初的流氓软件,已经严重影响 Android 用户的使用体验)。

继续阅读海淘预订 Nexus 6P

试用团队协同工具 worktile

最近一直苦于没有一个很好的项目管理工具,上网搜索,推荐不少。例如 worktile, teamition, basecamp, redmine 等等。综合考虑到功能,语言,费用以及团体推广难度,最终选用了 worktile. 一款免费、好用的团队协同工具,让你的团队随时随地一起工作。

优点:
简单,好用。降低团体的学习成本。
免费。免费的简报功能很重要。免费也是团体内推广的重要因素。

缺点:
希望有番茄工作法类似的计时功能。主要是提醒自己半个小时就休息一下。其实这也不算是缺点,只是自己希望增加的功能。

总结:
团体协同工具,提说目前在国外很火,国内处于起步阶段,个人觉得如果推广和执行得当,的确能很好的改善团体协作的工作效率,对于项目经理来说,更是提高效率的很好的工具。当然,作为个人的项目管理工具,也是一个很好的选择。