树莓派搭建 HomeKit 服务

GPIO Node.js UART HomeKit Raspberry

最近总有朋友问我 Apple Home 是怎么搭建的,这篇文章提供给从零开始搭建 Apple Home 的朋友。 可以自选传感器、空气净化器、以及智能开关等设备,通过树莓派接入到苹果内置的 Home 应用中。 大概是这样的效果:

home

AIY Voice Kit 初体验

Raspberry GPIO UART

AIY Voice Kit 是 Google 自然语言识别的一个 Demo 项目,是一个由小纸盒包装的智能设备。 上个月朋友从美帝寄来一套,Harttle 却刚有时间把它组装起来,写这篇文章分享给喜欢折腾的同学。

Voice Kit 自带了麦克风和扬声器,借助 Google Assistant 可以实现类似 Siri 的人机对话,比如问问天气啊交通啊。 此外,由于整个系统基于 Raspberry Pi,而且配备了很棒的扩展板,比原生的 Pi 能做更多的事情。

vim 配置 cpplint

cpplint Syntastic C++ Vim

cpplint 是 Google C++ 代码规范的静态检查工具,是一个简单的 Python 脚本。 借助 Syntastic 工具,可以配置为 C++ 文件的检查工具。 本文只介绍 C++ Linting 的配置,关于代码所进、注释、自动补全、括号匹配等 配置方式请参考 这篇文章。先上图:

vim-cpplint

Deep Linking:从浏览器调起 APP

URI-Scheme Universal-Links Intent iOS Android

Deep Linking 只是一个概念, 是指通过一个链接进入另一个网站/App,并直接浏览其内部的某个页面。 Deep Linking 给用户带来的是非常顺滑的浏览体验,尤其在 Web 世界中 Deep Linking 的实现非常容易。

但如果要进入 App 并定位到对应的页面则较为困难,URI Scheme, Universal Links, Android App Links, 以及 Chrome Intent 都是为了解决从 Web 页面 Deep Linking 到 App 而做的尝试。 本文从 Web 一侧的视角总结调起 App 的各种实现方式,能达到的效果,以及对应的兼容性问题。

合理地设计 URL

HTTP URL 路由

URL 是 Web 三大基石之一,在 Web 开发、运维和使用过程中随处可见。 而且在 Web 开发中遇到的第一个设计问题,可能就是 URL 的设计。 在很多 MVC 架构下的开发者眼中它的作用却只是路由到一个控制器,这正是一切罪恶的开端。

如何编写 Commit Message

Git-Workflow Git 重构

基于 Git/npm 的开发流程实践 中提到, Git 所做的不仅仅是同步文件,它更是一种编写和组织代码的方式。 我们知道 Commit Message 是每次 提交代码 时的附加信息, 为什么 Harttle 觉得 Commit Message 是一个问题呢?

设想这样一个场景:你发现一个最近上的功能有 Bug, 现在要马上回滚到上那个功能之前。但当你打开 git log 时看到了这样一幅场景:

禁用 package-lock

NPM Node.js 缓存 版本

npm(Node Package Manager)是由 JavaScript 编写的 Node.js 默认的包管理工具, 会随 Node 一起安装。NPM 是伟大的工具,在它的基础上构建了现在的整个 JavaScript 生态。 这些模块有每周数十亿的下载量,可以用来构建 Web 服务命令行工具,IoT 节点, 桌面应用,甚至操作系统。

npm 5.0 开始会自动生成 package-lock.json,解决 npm 无法递归锁定版本的问题(类似 yarn)同时使用该文件作为缓存来加速依赖解析。 但现在看来 package-lock 制造的问题比解决的问题还要多,有些争议性的处理细节仍在讨论。

Harttle 不建议现在使用 package-lock,文章尾部给出了禁用 package-lock 的方式。

导航: 上一页 下一页

加载中...

🔝