Zhihao's Studio.

Zhihao's Studio.

每天进步一点点

浅谈可视交互的方法在大数据平台数据产生、前期处理方面的应用
背景作为一个一本正经的大数据公司,Helium亟需一个平台HAN(Helium Analytical Network),它涵盖数据完整的生命周期(产生 – 处理 – 使用 – 销毁)。用户通过低学习成本的方式(如SQL, JSON)来定义这个生命周期,即数据从哪来,怎么计算,怎么使用,何时销毁。在平台上,希望用户能用JSON的方式部分覆盖OLAP的功能,即用户从数据的建立到完成OLAP查询的完整过程。 本文的工作主要集中在第一二个阶段,即数据的产生和部分的处理上。相比于传统的前端配置方式,我们的创新点在于将数据集的流向与产生以图形化的方式进行展现,使得用户清晰地看到每一个数据集产生的过程...
谷歌开发者大会(GDD2017)见闻 Day2
写在前面上一篇博客写了挺多开发者大会期间的花絮(虽然花絮本身就是开发者大会重要的组成部分),而在这篇博客里将更专注于session本身,对场外的花絮和花边新闻尽量少的提及。话不多说,我们开始吧。 Android things安卓things是一种支持世界各地计算需求的新平台,其出现的初衷是简化IoT设备的开发和生成。安卓things运行的仍然是安卓系统,因此对安卓开发比较熟悉的朋友可以很快的上手来完成一些应用。 在现场,演讲者详细演示了如何在大会赠送的Android things设备上进行程序开发。他利用温度传感器和气压传感器开发了一个温度计和气压计的应用。开发共分为三个步骤: 拼装...
谷歌开发者大会(GDD2017)见闻 Day1
Day 0双12晚上,我一改之前晚睡的习惯,罕见的在晚上12点之前入睡了。为了第二天早上8:30的谷歌开发者大会。 出发到达会场、注册第二天早上7点15就洗漱完毕出门了。7点多的地铁并没有想象中那么空荡,依然挤满了人,真庆幸自己住的离公司很近,不需要经历上班早高峰的洗礼。一出地铁站,就看到了举着牌子的GDD工作人员,要知道这里离会场还有1.5km左右的距离。解锁了一辆小黄车,几乎在每个路口都能看到指路的工作人员,真的很贴心。 来到会场的时候,注册的开发者已经排起了长队,时间为早上8:30。注册完领取了印有日程和场地介绍的胸牌、一个供开发者DIY的纸盒音箱和很多人喜欢的谷歌信仰贴纸。随...
拓扑图的实现
背景拓扑图是Console界面中一个重要的组成部分,它的愿景是我公司Console平台相比于其他公司相同平台的创新之处。这个部分一直是由我来负责,从开始的高度抽象派图形化图,到后面创新性的引入Radial-layout,到这轮迭代返璞归真的Tree-layout信息展示,几经迭代,感慨良多。很多时候都要跟设计师死磕,在他的想法与技术之间找到一个权衡点。本文作为本轮迭代的一个小小总结,也作为API文档的供其他同事参考。也因为要作为API文档,因此本文会深入到代码级讲述每段代码甚至函数和关键变量的作用。 早期版本的拓扑图 目标拓扑图的目标是利用图形化的方式清晰地展示集群内App、Serv...
Swift4字典和集合的新特性
Swift4中的字典和集合在这些方面变得更好写在前面在最新版本的Swift中,dictionaries和sets新增了很多行为方法和初始化方法,让一些常见的任务变得异常简单。诸如组合、过滤和transform值操作可以用一步完成,让使用者可以写出更高效和简洁的代码。 本篇博客将使用杂货铺中的商品作为例子演示这些新功能。GroceryItem结构体,由名字和部门组成,作为本例的数据类型。 12345678910111213141516171819202122232425262728struct GroceryItem: Hashable { var name: String...
为SVG中大小可变的<g>元素加上边框和背景色
问题的出现我在使用d3js开发项目过程中,遇到了这样的需求,将鼠标hover到某些元素上时,将该元素的detail信息逐条展示出来,而且为了将detail框与其他元素区别开来,需要给detail展示区域添加边框或增加底色,想要的效果大概是下面的图那样的。 预期效果图 问题解决思路普通的HTML元素有很多方法来获得其宽高等其他位置属性的方法。如果是一组元素,可以用div标签将他们组合起来,指定div的border颜色和宽度,div的边框会根据元素的宽高动态改变大小。 SVG中,将元素成组的标签是g元素,之前使用它是将元素进行分组,然后统一进行平移和旋转之类的功能变换。毫无意外的,普通DO...
mouseSync后续功能完善心得
背景在上篇博客中,我介绍了mouseSync这款软件的开发初衷、使用场景和开发的过程,感谢一些朋友试用该软件并给我留言,提出了一些新的需求和issue。同时也感谢开发者头条的推荐至头版的精选板块,让那篇开发笔记被2万开发者阅读过了,收获了github的star若干、公众号的关注若干、赞赏约50元。真的非常感谢大家的关注、star鼓励和金钱赞赏。 我整理了一下大家的需求,大体上可归纳为3类。 没有logo 在外部设备(鼠标/Trackpad真正属于的那台Mac)上容易引起误操作 一个关键的功能,左键拖拽功能,没有实现 在这篇博客中,我就来写一下对上面提到的三个需求的解决方案。完成上述三...
青芒 for Mac客户端开发笔记
关于轻芒和青芒轻芒阅读是我每天都会打开的app,在它提供的两百多个channel中,我订阅了其中十几个channel,非常喜欢这个产品。这个产品的创始人是王俊煜,他曾经创办了一个更有名的公司——豌豆荚。关于轻芒和俊煜的更多介绍,请参照: 前沿科技的报道。虽然报道里强调了轻芒不是青芒,但是参照知了和知乎的关系,我还是决定把我的客户端取名为青芒。而且取名青芒的一大好处是logo好设计。做完原型的第二天,我就找了非著名设计师Joseph帮我设计了一枚logo,个人觉得还是很赞的。 非著名设计师Joseph设计的logo 为什么要做青芒8月18日,我在github闲逛的时候发现了轻芒团队仍...
让iMac与MacBook高效协同工作——mouseSync开发心得
开发mouseSync的初衷或许是不想让买显示器送主机的笑话成真,Apple将iMac 2015之后的版本关闭了纯显示器模式。Apple store里LG的显示器挺贵的,27寸5K版本售价超过了1万元,衬托出了iMac 27寸13000+的定价之良心。考虑到两者颜值的差别,在看脸的时代,iMac的销量还是很不错的。iMac的用户很可能也是MacBook的用户,因此让iMac和MacBook协同工作是很有意义的一件事。当然,也同样适用于两台MacBook之间的协同工作。 为了让两台Mac协同工作,我发现最痛苦的事情莫过于需要两套触摸板(鼠标)和键盘。在谷歌里搜了半天,发现了很多通过蓝牙...
Build reusable visualization using d3.js and AngularJS
背景前面两篇博客介绍了如何借助angular,让我们的可视化图能够更有模块化、方便复用、具有交互性,不过前面的博客只介绍了基本的原理以及最简单的图,在这篇博客中,我们来一起绘制一个相对复杂一些的热力图,最终的效果如下图。这个热力图主要是用来展现维度与维度之间的相关性的,而相关性在0-1之间。千万不要小看这个热力图,图中的每一个元素,甚至每一个字都是绘制出来的,完成这个看似简单的热力图大概需要350行代码。 具体实现目标我们想要用热力图的时候呢,希望能像内置的html DOM元素一样使用,比如12345\<heatmap\>\</heatmap\>//如果我们能指定...
Zhihao Zhang
Happy Hacking
本站总访问量