akira_cn 发布于 08月02, 2016

用树莓派驱动八段数码管实现倒计时

原文:https://www.h5jun.com/post/pi-num8.html

前面的文章我们说过,树莓派的 GPIO (通用输入输出)口设置为 OUTPUT 状态时,可以用程序控制它的电平高低,从而输出 0 和 1 逻辑。树莓派 Model B+ 一共有 26 个 GPIO 接口,今天我们用它其中的 12 个来驱动一组 4 个八段数码管

在讲解具体实现之前,我们先来看一下成品:

阅读全文 »

akira_cn 发布于 07月28, 2016

树莓派 JS 库实现持续集成的“黑科技”

原文:https://www.h5jun.com/post/pi-and-tdd.html

这个阶段在研究树莓派,主要用 Node.js 开发。开源社区有许多非常优秀的树莓派 Node.js 库,但是没有让我觉得特别好用的。因为这些库有的 API 还不错,但是性能不好,有的性能很好,但是 API 不好用。还有一些库没跟上树莓派的硬件升级,使用起来还要自己修改,作者也不处理 pull request,比较麻烦。因此我自己着手重新写一个库 rpio2

在写库的过程中,自然要充分测试每个 API,个人比较喜欢 TDD / BDD 开发,因此一边开发功能,一边写各个 API 的单元测试。写了单元测试,自然希望在代码提交的过程中能够持续集成,最好是直接使用 travis-ci

愿望是美好的,但是现实有点残酷。因为树莓派开发不同于其他软件开发,它涉及到硬件,虽然说单元测试可以很简单,主要是测试引脚的同步/异步输入输出和事件(中断)响应,所以开发的时候可以在树莓派环境里跑单元测试,这没有问题,但在集成的时候,我们没有办法让 travis-ci 用树莓派系统环境来跑我们的 test case 吧。这样的话,就需要我们自己实现对底层的 GPIO 的模拟

阅读全文 »

akira_cn 发布于 07月27, 2016

用 Node.js 玩转树莓派 —— 入门篇

原文:https://www.h5jun.com/post/raspberry-pi.html

Raspberry Pi(树莓派),是英国的树莓派基金会所开发的单板计算机,它是由 Eben Upton 以及他的同事设计的,最初的目的是以低价硬件及自由软件促进学校的基础计算机科学教育。

树莓派 Model B+

树莓派 Model B+

在物联网(IoT)高速发展的今天,树莓派以低廉的价格、开放的硬件/软件生态、灵活的通用输入输出(GPIO)接口,成为学习、研究物联网和万维物联网(WoT)的理想设备。

阅读全文 »

akira_cn 发布于 07月21, 2016

【译】选择一个 HTTP 状态码不再是一件难事 – Racksburg

原文:http://www.zcfy.cc/article/904

有什么能比 HTTP 响应状态码更简单呢?页面渲染了吗?好极了,返回 200。页面不存在?那么是 404。想要跳转到另一个页面?302 或者可能是 301

我喜欢把 HTTP 状态码想象成无线电波传输的 10 码1。“呼叫,呼叫,我是 White Chocolate Thunder,发现 200 OK。”

—— Aaron Patterson (@tenderlove) 2015-10-7

阅读全文 »

akira_cn 发布于 07月15, 2016

【译】前端开发者的悟性 | CSS-Tricks

原文:http://www.zcfy.cc/article/840

最近有一个想法一直在我的脑海里(大体上来自于这个小组讨论),即前端开发者需要怎样的悟性。一般而言,前端开发者位于其他许多工作的中心环节。在一个 web 开发团队里,其他角色的工作依赖于前端开发。这可以理解。前端开发者创建产品中与用户实际交互的部分。用户所能感知的一切都和前端开发人员有关。也许,这就是为什么前端是一项这么有意思的工作!

阅读全文 »

akira_cn 发布于 07月08, 2016

【译】那些差一点成为了 CSS 的语言

原文:http://www.zcfy.cc/article/709

事实上,对我来说在过去的一年里,一直有一个快乐源泉是,不断告诉人们,如果你们想同 TeX、Microsoft Word 以及其他常见的文本处理环境那样地控制你们的网页文档:“对不起,你搞砸了”。

—— Marc Andreessen(Netscape 公司创始人、硅谷风投家,译者注)1994

当 1991 年 Tim Berners-Lee 宣布 HTML 问世时,没有给网页写样式的办法。如何对 HTML 标签进行渲染是由浏览器根据用户的喜好设置来决定的。然而,似乎创建一个标准方法让网页被“建议”如何渲染比按照设置的风格进行渲染要更好。

阅读全文 »

akira_cn 发布于 07月06, 2016

【译】别把 (Flexbox) 栅格想得太复杂

原文:http://www.zcfy.cc/article/763

四年前,我发布了一篇文章“别把栅格想得太复杂”,引起了一些人的共鸣。甚至在更早的时候,我们可能就已经把栅格发挥到极致了。那时候几乎每星期都有人推广新的栅格框架。

那篇文章中我的观点是:“怕什么!你可以自己实现一个栅格!你不需要一个复杂的框架。” 这个主张虽然没啥特别的,但却是我的真实想法。你只要用百分比宽度浮动几个元素,就可以收工。

在今天,如果你已经学会使用 flexbox 布局,自定义栅格甚至更简单了。

阅读全文 »

akira_cn 发布于 07月05, 2016

Babel for ES6? And Beyond!

原文:https://www.h5jun.com/post/babel-for-es6-and-beyond.html

以下是我在 2016/7/4 奇舞团泛前端分享会上的分享的文字内容。

什么是 Babel

较早接触 ES6 的同学对 Babel 应该并不陌生,它是一款能将 ES6+ 编译成 ES5 的编译器。

Babel is a JavaScript compiler.

Use next generation JavaScript, today.

Babel 官网对它的文字介绍

喜欢用 React 的同学也对它可能不陌生,它可以处理 JSX。

Babel can convert JSX syntax and strip out type annotations. Check out our React preset to get started. Use it together with the babel-sublime package to bring syntax highlighting to a whole new level.

Babel 可以处理 JSX

然而,不管是作为 ES6 向后编译为 ES5 的工具,还是作为处理 JSX 的替代,Babel 是否都是以一个临时方案而存在的呢?

阅读全文 »