macOS安装ebook-convert

作者:Blackrose 发布时间:February 21, 2017 分类:technology No Comments

gitbook生成pdf需要ebook-convert工具,这个是在calibre软件内的,下载好把ebook-convert链接放在PATH目录中即可

https://calibre-ebook.com/download

ln -s /Applications/calibre.app/Contents/MacOS/ebook-convert /usr/local/bin

Weave协议应用和工具

作者:Blackrose 发布时间:February 19, 2017 分类:technology No Comments

为了方法Android Things设备的开发者,Google提供了一些应用和工具,帮助开发者管理设备和检测故障点。

Weave Developer App

实际上就是手机端的设备管理应用,支持Android和iOS系统,已注册为Weave开发者的可以直接使用该应用,管理设备、分发命令和测试设备状态。

Android App
iOS App

IoT Developer Console

这是一个针对设备开发者的web化的应用,可以管理产品和设备上传的相关信息。同时,可以更方便的查看设备状态和发送命令给设备。

Command-Line Tools

weave_client是属于Weave Developer Tools套件的一个工具,可以让你测试命令,检查设备状态,修改ACL和查看历史事件或状态。

weave_client下载

目前来看,Android Things的文档中都没有提到使用Weave协议让设备与Weave Cloud,手机app的交互。这部分内容是放在Weave协议介绍当中的,而之前的Brillo是有Weaved进程服务。同时,目前的example中对于交互大多使用NearbyAPI的方式来操作,所以我猜测Android Things目前还没有把weave整合进来,估计要再发几个DP版了。

已有网友确认,Android Things中不包含libiota的库。

AndroidThings的互联的根本Weave协议

作者:Blackrose 发布时间:February 13, 2017 分类:technology No Comments

Weave协议是AndroidThings用来与Mobile, Device, Cloud之前通讯的基本协议,分为两个部分。

  • Weave Device SDK(libiota):一个轻量级的SDK给设备端,提供与Server连接的能力
  • Weave Server: 云端服务,提供设备基本的注册,命令分发,状态管理的功能,同时集成了Google Assitant服务

Weave协议中定义了一系列设备模式和特性,让不同厂商的相同或差异功能得到支持。Weave是一个硬件无关的协议,支持通用Linux分发版和Qualcomm,Marvell的SOC系统。为了更方便的集成Weave到设备中,Google提供了Weave Device SDK,也就是libiota。它是一个C语言开发库,实现了Weave协议。

源代码: https://weave.googlesource.com/weave/libiota/

libiota在设备端运行后,需要定义特性和组件描述信息,这样用户才能与终端设备交互。特性定义后才允许Weave客户端去发现和使用设备提供的功能,而组件描述信息是在逻辑上对特性和特性状态的关系描述。定义好特性和组件后就可以处理命令请求或者用状态机来描述特性状态。libiota可以管理这些功能并通知app或web服务。

https://iot.google.com/console

https://cloud.google.com/solutions/iot-overview

macOS使用Chrome把网页作为独立窗口

作者:Blackrose 发布时间:February 2, 2017 分类:technology No Comments

可以把网页单独以窗口形式呈现,没有chrome的相关菜单栏。缺点是不能独立成app放在任务栏上,切换时比较麻烦。

open -n -a 'Google Chrome' --args --app=http://paper.dropbox.com

使用Docker for Mac时osxfs的cpu占用率过高

作者:Blackrose 发布时间:January 20, 2017 分类:technology No Comments

打算在Docker内编译Linux内核,直接用volume参数把磁盘挂载进容器内,编译时发现cpu被占用达80%。搜索后知道是volume方式由osxfs组件来服务container和host之前的文件共享,但osxfs对fsevent处理不够好,出现了IO占用CPU资源问题。目前,可以使用的方法是NFS, unison, rsync。NFS不被推荐的原因是对权限管理不好,rsync又是单向的。所以这里使用unison,第一次同步要很长时间后,后续更新都很快,重要的是可以双向功能,container的修改也可以同步到host上。

unison方式的大概原理是,把需要同步的文件或磁盘以socks协议方式同步到container1内,container1把这个目录以volume方式共享出来,这样其它container直接用共享的volume就可以了。socks是在本机上传输所以速度还是比较快的,也绕开了osxfs组件。

同步目录至unison的docker内

docker pull onnimoni/unison
docker run -d -p 5000:5000 --name unison-sync -e UNISON_DIR=/data -v /data onnimonni/unison
pip install MacFSEvents
curl -o /usr/local/bin/unison-fsmonitor -L https://raw.githubusercontent.com/hnsl/unox/master/unox.py
chmod a+x /usr/local/bin/unison-fsmonitor
unison /Volumes/data socket://127.0.0.1:5000/ -auto -batch -repeat watch

在目标container中使用共享的volume,这样在新开的container内的/data目录就能看到host上的/Volumes/data目录下的文件了

docker run -it --volumes-from unison-sync debian /bin/bash

repo init时提示error: cannot run gpg: No such file or directory

作者:Blackrose 发布时间:January 19, 2017 分类:technology No Comments

使用repo下载imx6ul的代码时,出现gpg错误,看提示应该是没有gpg命令。macOS下直接用brew安装即可。

repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-4.1-krogoth --repo-url=git://codeaurora.org/tools/repo.git
...
error: cannot run gpg: No such file or directory

安装gpg

brew install gpg

Mac下webcam出现not found device

作者:Blackrose 发布时间:January 13, 2017 分类:technology No Comments

MBP升级到10.11后,平时也没有使用webcam的习惯,突然发现QQ上显示找不到设备。可以执行以下命令解决。

sudo killall VDCAssistant

2016年总结

作者:Blackrose 发布时间:January 8, 2017 分类:growth-log No Comments

去过的地方

  • 西安:旅游
  • 武汉:出差
  • 长沙:旅游
  • 澳门:旅游
  • 珠海:长隆公园游玩
  • 贵阳:公司组织旅游
  • 兰州:旅游

2016年又独自去了不少地方,面对陌生城市的探索,也算是轻车熟路。澳门是第一次用通行证出关,由于我是团签以为很麻烦的,结果异常顺利,随着人流直接走过去就到了。境外不用开SS代理刷推确实很爽,然而只能去一次。在长隆公园第一次看到企鹅和鲸鱼和不知其名的一堆海洋动物,很值得。第一次乘坐船,以为很晃,可能是封闭式客船的原因。遗憾的是没有去香港,又浪费了两次机会。

有意义的事情

第一次向开源项目或组织捐款,希望2017年向更多有意义的项目捐助。由于公司内部改组,也就有机会推广并应用了一堆已成熟的工具给开发小组。这些工具在互联网型公司来说,都是基础必备的工具,但在硬件公司还是比较新潮了,由其像BearyChat和Worktile面向普通人的辅助管理工具,每个参与人都会带有一定的情感和习惯性在吐槽和使用。这是我第二次做这类工作,比第一次来说准备更充足了,会提前把各种常用流程迁移在新工具上,推广前在小范围人员上深度试用,讨论后再改进和纠正使用方法。其中学习到精益方法和敏捷开发的相关内容。

新的尝试

  • 购买美股:少量买入Nvidia,AMD和Microsoft股票,打算长期持有
  • 使用Python仿造公司的IM工具,后来废弃
  • 使用Python编写基于Telegram的bot工具,目前每天在用
  • 第一次去赌场,然而没有会玩的项目
  • DIY一个语音控制继电器Demo,使用Python,NodeMCU和Amazon AVS语音服务
  • 体验Android Things系统的点灯Demo
  • 在朋友公司体验了HTC Vive VR眼镜
  • MBP下的远程嵌入式开发

2016年的各种理财“宝宝”们比较多了,所以想尝试下股票类投资。没有选择AB股的原因是,考虑自己和周围也没那个关系和人脉,国内监管也不严格,较难筛选出合适的股票。再加上,IT业大部分公司都在美国上市,也就理所当然选美股了。Firstrade上开户已久,但入金很困难,最后选择了家HK公司的APP上开户并购买。三只股票要是信仰充值,前期只学着作了一些基本面的分析,反正就是玩票性质,没有太大负担。目前来看,Nvidia股票贡献是最多的。

Python的使用算是比较多了,我一般都是用作替代shell的工具开发,可以快速实现功能。

第一次用HTC Vive确实被震到了,试玩了几款应用,明显感到对人类视野有了广阔的提高。

读过的书

  • 《软技能 代码之外的生存指南》
  • 《从0到1:开启商业与未来的秘密》
  • 《咖啡原来是这样的啊》
  • 《深度探索Linux操作系统:系统构建和原理解析》
  • 《深度探索嵌入式操作系统:从零开始设计、架构和开发》
  • 《构建嵌入式Android系统》

2016年只看了这几本书,而且还很泛,还是要做规划来完成阅读量。主要都是了解Android方面的知识。