Respberry安装手册

更新

sudo apt-get -y update
sudo apt-get -y upgrade

安装基本工具

sudo apt-get -y install vim htop checkinstall python g++ make

修改键盘设置

vi /etc/default/keyboard;

# KEYBOARD CONFIGURATION FILE

# Consult the keyboard(5) manual page.

XKBMODEL="pc101"
XKBLAYOUT="us"
XKBVARIANT="alt-intl"
XKBOPTIONS=""

BACKSPACE="guess"

开启WIFI

编辑配置

sudo vi /etc/network/interfaces
auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp
wpa-ssid "iAP"
wpa-psk "**********"

重启WIFI

sudo /etc/init.d/networking restart

音频相关

sudo apt-get -y install alsa-utils
sudo modprobe snd_bcm2835

安装MPlayer

sudo apt-get -y install mplayer

摄像头相关

基础包

sudo apt-get -y install libv4l-dev libjpeg8-dev imagemagick

编译MJPG-STREAMER包

svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer
cd mjpg-streamer
make USE_LIBV4L2=true clean all
sudo checkinstall --fstrans=no --install=no --pkgname=mjpg --pkgversion 1.0 --default

几个启动程序方式

export LD_LIBRARY_PATH='/usr/local/lib'
#不支持MJPEG
mjpg_streamer -i "input_uvc.so -d /dev/video0  -r 160x120 -f 12 -y" -o "output_http.so -p 8080 -w /usr/local/www"
#支持MJPEG
mjpg_streamer -i "input_uvc.so -d /dev/video0  -r 640x480 -f 12" -o "output_http.so -p 8080 -w /usr/local/www"
#Mplayer播放
mplayer -fps 30 -demuxer lavf "http://127.0.0.1:8080/?action=stream&ignored.mjpg"

NodeJS

编译debian包

mkdir ~/nodejs && cd $_
wget -N http://nodejs.org/dist/node-latest.tar.gz
tar xzvf node-latest.tar.gz && cd node-v*
./configure
sudo checkinstall --fstrans=no --install=no --pkgname=node.js --pkgversion `pwd | xargs basename | awk -F 'node-v' '{print $NF}'` --default

*如安装node.deb后需恢复npm执行权限

sudo chmod -R 755 /usr/local/bin/npm

wiringPI

git clone https://github.com/WiringPi/WiringPi.git
./build

参考资料

http://www.alexatnet.com/references/server-setup-debian/install-nodejs

http://www.linuxcircle.com/2013/02/06/faster-video-streaming-on-raspberry-media-server-with-mjpg-streamer

https://projects.drogon.net/raspberry-pi/wiringpi/

从Github迁移到Stdyun

之前把内容放到Github上访问有点慢,最近看到Stdyun有提供octopress免费托管
试了试他们家访问速度挺快,果断迁移到国内来,默认100M空间,可申请加大

  1. 访问Stdyun

  2. 页面底部有一个Octopress托管,注册登录后可以看到
    Stdyun

More

自制数控白菜白光烙铁

背景

国庆在家玩Arduino的时候,不免使用到烙铁,筒友们老说白光烙铁好,可小日本的原装货太贵了,只能自制一枚白菜白光烙铁玩儿。

DIY白菜白光材料:

  1. 已开壳24V DC电源
  2. 阳极处理铝壳
  3. 黑金刚白光控制板(含编码器和编码器帽)
  4. 迷你1602 LCD(控制板用)
  5. 5芯硅胶线1.5米
  6. 微型震动开关7.
  7. 936改造的烙铁手柄
  8. 936全铝烙铁架(含高温海绵)
  9. T12手柄PCB套件(用来固定T12发热芯)
  10. 5孔航空头
  11. 微型船型开关
  12. 3孔AC母座
  13. 3孔AC线
  14. 铝壳底部的防滑胶垫4粒
  15. 3mm LED

DIY过程中用到的工具

  1. 微型电磨
  2. 台钳
  3. 什锦锉
  4. AB胶
  5. 金手指
  6. 各种大小热缩管、打火机
  7. 万用表
  8. 剪刀、尺子、尖嘴钳、各种连接线
  9. 电烙铁、焊锡、Goot焊膏

各种图(中间漏了好多图,凑合看吧)

24V电源和铝盒

More

[Alfred2 Workflows]自动最大化窗口

以下内容在OSX 10.9上会报dtw和dth变量不存在,脚本不通过

Alfred2是个好东西,可以不装其他软件的情况下在OSX上实现热键控制当前窗口最大化

其实是一小段Applescript,代码如下:

tell application "System Events"
    repeat with p in (processes where background only is false)
        tell p
            set position of windows to {0, 0}
            set size of windows to {dtw, dth}
        end tell
    end repeat
end tell

整成的workflows效果如下:

workflows

下载

http://pan.baidu.com/s/1uyzAM

一段适应Retina的LessCSS函数

跟retinajs里的媒体查询不太一样,仅支持webkit内核的视网膜设备

.retinaBG(@url, @width, @height, @left: center, @top: center) {
    @url2: ~`"@{url}".replace(/\.(png|gif|jpg)('|")?$/gi, '@2x.$1$2')`;
    background: transparent url(@url) no-repeat @left @top;
    background-image: -webkit-image-set(url(@url) unit(1, x), url(@url2) unit(2, x));
    background-size: @width @height;
}

树莓派安装红外接收管并控制XBMC

目标:

  1. 给树莓派给安装个红外接收管并对XBMC进行播放控制

本文中的材料:

  1. 安装了Xbian系统的树莓派一个
  2. SSH客户端一个
  3. 支持HDMI的显示器一台(可选)
  4. 电脑一台(本文以Mac系统为例)
  5. 红外遥控器一只(本文以Apple Remote为例并且演示用学习遥控器学习Apple Remote)
  6. HS0038B红外接收管

配件全家福

全家福

More

Raspberry上搭建个极简博客

本文讲述使用NodeJS和HEXO在Raspberry上搭建一个极简博客系统,纯静态页面访问速度快,支持一键部署到Git

使用Raspberry的目标

  1. 实现一个超简单的个人博客,访问速度要求快
  2. 把这个设备接电视上,顺便看看片

本文中的材料

  1. 树莓派一个
  2. SSH客户端一个
  3. 支持HDMI的显示器一台(可选)
  4. 键盘鼠标一套(可选,但推荐)
  5. 无线网卡一套(可选,但推荐)
  6. 电脑一台(本文以Mac系统为例)
  7. U大制作的micro2SD卡套一个(可选,但是真的很赞)
More

重新启程

感觉好些年没有去写文章了,自己老找理由是工作忙家里事情多,事实上仔细想想并不是,而是自己懒惰了、疲倦了

2013年需要做些改变了,重新找回以前的那种能把自己的提升过程记录下来的感觉

placeholder是个好用的玩意

placeholder一个很8错的新属性
但是有兼容性问题,这里有一个兼容的Demo

Gecko 2里的小玩意

在Gecko 2里有一个小玩意比较有意思,能够指定history里对象里的网址
facebook已经应用上这个玩意
目的可以让地址栏跟你想要的一样,伪装效果一流

代码片段:

window.onpopstate = function(event) {
    alert("location: " + document.location + ", state: " + JSON.stringify(event.state));
};
history.pushState({page: 1}, "title 1", "?page=1");
history.pushState({page: 2}, "title 2", "?page=2");
history.replaceState({page: 3}, "title 3", "?page=3");
history.back(); // alerts "location: http://example.com/example.html?page=1, state: {"page":1}"
history.back(); // alerts "location: http://example.com/example.html, state: null
history.go(2);

相关资料:

https://developer.mozilla.org/en/DOM/window.onpopstate
https://developer.mozilla.org/en/DOM/window.history

补充:

2011年8月 这个特性已经在微博V4版中应用上了,效果8错。