Arduino的蓝牙4.0串口透明传输模块

最近利用业余时间做了点小玩意

什么是BLUESHIELD?

BlueShield是一块支持蓝牙4.0串口透明传输模块,专为Arduino开发板设计,支持大多数Arduino开发板及衍生版本。

BLUESHIELD能干什么?

可以让你的iOS设备例如iPhone 5, iPhone 4S等等(兼容设备请参考上文)和Arduino通过蓝牙4.0通讯,将数据通过串口透明传输。

我能用它来和ARDUINO, IOS设备做些什么?

  • 通过iPhone传输数据Arduino,完成遥控操作
  • 将传感器信息通过串口传给iPhone以备后续操作
  • Arduino通过iOS设备来访问互联网信息
  • 更多用法,依赖你的想象力..

详细内容见BlueShield发布 — Arduino的蓝牙4.0串口透明传输模块

购买连接

tmux的滚屏

tmux下无法滚屏很烦人。

一句话就解决了: CTRL + B 再按 \”[\”,这时就可以用光标键来操作翻页滚屏

如果需要兼容vim的操作方式,那么在~/.tmux.conf加上一行:

setw -g mode-keys vi

使用CocoaPods之后的头文件包含问题

使用了一段时间CocoaPods来管理Objective-c的类库,方便了不少。但是有一个小问题,当我在xcode输入import关键字的时候,没有自动联想补齐代码的功能,需要手工敲全了文件名,难以适应。

在stackoverflow上找到了解决办法:

Go to the Target > \”Build Settings\” tab and find the \”User Header Search Paths\” setting.

Set this to \”$(BUILT_PRODUCTS_DIR)\” and check the \”Recursive\” check box.

Now the built target will search the workspace’s shared build directory to locate the linkable header files.

简单说就是这么几步:

  • 选择Target -> Build Settings 菜单,找到\”User Header Search Paths\”设置项
  • 新增一个值$(BUILT_PRODUCTS_DIR),并且选择\”Recursive\”,这样xcode就会在项目目录中递归搜索文件

自动补齐功能马上就好使了。

vimari – safari下的vimium扩展

虽说我现在用的主力浏览器还是chrome,但是偶尔还是会给safari一些机会,这让在chrome下用惯了vimium插件的我很不适应,按下熟悉的按钮没得到应有的反馈,简直就跟残废了似的。

于是我开始放狗搜索,然后得到了这个 — vimari.

简单介绍

vimari从chrome的vimium移植而来,大部分代码都是基于vimium。而vimium对于chrome来说,就象是vimperator之于firefox,在浏览网页的时候,也能带来vim类似的操作体验,对于vim控来说实在是不可多得的好扩展。

Vimari is a Safari extension that provides keyboard based navigation. The code is heavily based on \’vimium\’, a chrome extension that provides much more extensive features.
Vimari attempts to provide a lightweight port of vimium to Safari, taking the best components of vimium and adapting them to Safari.

稍加配置,我就很容易获得了和后者类似的使用体验。例如下图的配置选项中,我把 Modifier key to preceed commands 这一项留空,按下f键就可以选择打开页面上的某个链接,而不是使用它默认的快捷键ctrl + f.

\"vimari\"

注意事项

安装扩展之后请即刻升级至最新版本,否则可定制的选项比较少。

多个github帐号的ssh keys支持

不知不觉就有了多个github帐户,平时为了方便都是采用ssh去操作git,所以这个时候问题就来了,在同一台机器上对多个github操作时,会因为ssh key只有一个而无法提交。所以我需要想办法配置多个ssh keys.

解决办法

放狗搜了一圈,有类似需求的大有人在。例如这里:Multiple GitHub Accounts & SSH Config

\’I\’m having some trouble getting two different SSH keys/GitHub accounts to play well together. I have the following setup:

Repos accessible from one account using git@github.com:accountname Repos accessible from another account using git@github.com:anotheraccount

傻瓜操作步骤

生成新的ssh key

ssh-add这一步很重要,否则是前功尽弃


ssh-keygen -t rsa -C \'work@mail.com\'
ssh-add ~/.ssh/work_rsa

配置.ssh/config

我只需要在~/.ssh/config里新增一个Host的别名,将不同帐号的区分开来就可以了。

Host me.github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/me_rsa

Host work.github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/work_rsa

配置git仓库

需要把git的配置更改过来,其中github.com更换为work.github.com,这样它会找到对应的key来登录。

git remote add origin git@work.github.com:work/test.git

在Git下创建一个空分支

有时候我们需要在Git下创建一个空分支,从头开始Coding —— 这大概是那些重构帝最喜欢的事情。参考了github,才找到一个合适的方法。

怎样安全的进行这项操作

我们需要建一个“孤立”的空分支,为了尽可能的保证数据安全,最好还是重新clone一份代码。

$git clone https://github.com/user/repo.git
# Clone our repo

# Cloning into \'repo\'...
# remote: Counting objects: 2791, done.
# remote: Compressing objects: 100% (1225/1225), done.
# remote: Total 2791 (delta 1722), reused 2513 (delta 1493)
# Receiving objects: 100% (2791/2791), 3.77 MiB | 969 KiB/s, done.
# Resolving deltas: 100% (1722/1722), done.

开工

这里以github的操作为例,下面试图创建一个名为gh-pages的空分支

$cd repo

$ git checkout --orphan gh-pages
# 创建一个orphan的分支,这个分支是独立的
Switched to a new branch \'gh-pages\'

git rm -rf .
# 删除原来代码树下的所有文件
rm \'.gitignore\'

注意这个时候你用git branch命令是看不见当前分支的名字的,除非你进行了第一次commit。

下面我们开始添加一些代码文件,例如这里新增了一个index.html

$ echo \"My GitHub Page\" > index.html
$ git add .
$ git commit -a -m \"First pages commit\"
$ git push origin gh-pages

在commit操作之后,你就可以用git branch命令看到新分支的名字了,然后push到远程仓库。

参考链接

MarkNote 1.0.2

MarkNote 1.0.2可以下载了。这个版本以Bug修复为主,改动如下:

  • 添加了撤销和重作功能.
  • 添加了部分retina高清图标,为了The new iPad.
  • 预览界面里的链接现在是在内置的safari打开,避免点击链接之后无法预览
  • 修复竖持时>按钮无法被按到的问题

下一个版本会做稍大的改动,计划内的改动如下:

  • 补齐retina图标以及app的高清图标
  • 支持MultiMarkdown语法,这样就可以画table了
  • 支持编辑时手动上传

猛击App Store下载

MarkNote for iPad 1.0.1

MarkNote 1.0.1在苹果应用商店上架了。这是一个在iPad上使用的Markdown编辑器,如果你喜欢用Markdown来写一些文字的话,那么这个应用可能就是一个不错的选择。

现在限时降价,6块

1.0.1新增的功能:

  • 新增了多个语言支持
  • 新增了全屏预览按钮
  • 在键盘上新增了两个按钮: < 和 >
  • 解决了第一次打开文件时有可能没有预览的问题
  • 解决了Dropbox同步的一个问题

我借到一个支持Air Print的HP打印机测试了打印功能,MarkNote的打印功能工作正常。

图片预览

新增的全屏预览按键在下图的右下方,可惜被某浪的图片水印盖住了。
\"MarkNote\"

iPhone中png图片格式处理

众所周知,iPhone中应用自带的png图片已经是经过压缩处理的,无法直接查看,但是可以通过工具转换为原图。

转换为原图的方法

在安装好Xcode之后(我安装的版本是4.3),可使用命令行转换

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush -revert-iphone-optimizations src.png dst.png

这个命令行太长,不好记,所以我在~/.bash_profile中加入一个alias。

alias pngcrush=\"/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush -revert-iphone-optimizations \"

所以之前的命令可以简化为

pngcrush src.png dst.png

批量转换png

用简单的shell就可以批量转换png图片为原图。

for i in `ls *.png`; do pngcrush $i /tmp/$i; mv /tmp/$i $i; done

小说跟踪器 —— 另一款iPhone上的小说阅读,更新提醒应用

不才的另一个iPhone应用 —— 小说跟踪器也已经出现在苹果的应用商店。

小说跟踪器的用途

小说跟踪器可以试阅起点中文网的小说,订阅小说的章节更新通知。因为目前的阅读软件已经多的不得了,所以这款应用没有把阅读功能作为重点来做,只提供了基本的试阅功能。但是你会发现它的 章节更新通知 功能很好用,很及时而且也稳定,最重要的是,还免费

所以,这个应用适用于起点小说的重度书友,跟书不愁。

目前支持的设备有iPhone以及iTouch,在iOS 4.3及以上版本都可以使用。

应用截图

书架
\"书架\"

章节通知
\"章节通知\"

阅读界面
\"阅读\"

网站