Author: jpuyy

  • 树莓pi连接网络摄像头进行监控

    需要工具,树莓pi或linux server一台,usb摄像头一个。

    需要的软件是 motion。

    树莓pi(或者说linux)的兼容性不错,插上摄像头之后,使用lsusb查看usb设备

    Bus 001 Device 004: ID eb1a:2571 eMpIA Technology, Inc. M035 Compact Web Cam

    接下来安装软件motion(可以获取摄像头的数据,生成图片或发送数据流到http)

    sudo apt-get udpate
    sudo apt-get upgrade
    sudo apt-get install motion

    修改motion的配置文件 /etc/motion/motion.conf

    daemon off 变为 daemon on,以daemon方式运行

    webcam_localhost on 变为 webcam_localhost off,意为不只是对本地采集,这样才可以使用http查看

    其他参数如分辨率,截图间隔时间等可根据自己的情况调整。

    启动软件前将/etc/default/motion的start_motion_daemon项变为yes

    然后启动motion

    /etc/init.d/motion start

    之后打开http://ip:8081即可。不想使用8081的可以去将/etc/motion/motion.conf中的端口改为需要的端口。

    样张,摄像头较差:

    motion-capture-raspberry-pi
    motion-capture-raspberry-pi

    上面应用的是视频流的功能,motion还有抓图的功能。然后再根据一些云服务,将图片定时传到云端。如上传到s3可以使用s3cmd – command-line Amazon S3 client。

    整个过程不过十分钟,就搭建了一个视频监控。

  • droid pro使用三周感受

    早在2012年11月1日就在evernote中写了一个手机需求单,黑莓的8820除了键盘好用,其他的功能早已经过时,而且最要命的是谷歌停止支持黑莓设置同步联系人和日历功能,详见http://support.google.com/a/bin/answer.py?hl=en&answer=2495269

    evernote中手机需求单如下:

    基本功能:打电话(清晰,支持录音) 发短信 五笔输入 听音乐 拍照

    基本素质:国外品牌 待机好

    应用:evernote google maps gmail google calendar

    锦上添花:前置摄像头 收音机

    当时筛选了一下,实现这些功能iphone肯定是首选了,看了两天二手的iphone4,但对于我这个收入水平来说,二手的也买不起。只好选一个安卓的手机,又对全键盘有偏好,没有游戏需求,不要国产,于是就选了这个droid pro(xt610)。

    driod-pro-jpuyy

    既然是小众的不能再小众的手机,又不在国内销售,价格才200多,肯定毛病一大堆,就和与人交朋友一样,关键是自己能不能容忍这些缺点。

    不能再拖了,去淘宝上花了235元淘了一个,现在没有条理的说说使用情况:

    用移动和电信卡试了一下,确实是三网的;

    系统是2.3.4,已经root;

    百度输入法用五笔也很爽,虽远不及黑莓键盘,有时候会出现连击的问题,安装了milestone 2 Debounce,问题解决;

    安卓毕竟是为全触屏设计的,所以对键盘灯的控制不是那么符合环境,比如晚上比较暗,键盘灯竟不能自己亮起来;

    应用方面,能用google play安装的尽量用play安装(还用信用卡买了一个tasks应用),自己是用谷歌比较深,安卓与谷歌结合的比较好,evernote,wordpress,google等同步用起来很方便;

    不装游戏,不装视频软件,不装手机银行,所以使用很流畅;

    由于是基于linux的,在ubuntu下使用adb shell操作命令行感觉很cool;

    不能支持需求单里的通话录音,待机不好至少一天一充,没有前置摄相头,没有FM。

    驱动程序在:https://motorola-global-portal.custhelp.com/app/answers/detail/a_id/88481

    之前用黑莓也就打电话,发短信,现在手机能办的事尽量用手机办了,正如网上所说

    早上第一件事是拿起手机,最后一件事是放下手机。

    简单技巧:

    更改网络模式,拨号*#*#4636#*#*

  • 树莓pi连接无线网络

    这里使用的前提是已经连接好usb无线网卡, ifconfig命令能够看到wlan0 编辑 /etc/wpa.config, 写入以下内容

    network={
        ssid="i_am_ssid"
        proto=RSN
        key_mgmt=WPA-PSK
        pairwise=CCMP TKIP
        group=CCMP TKIP
        psk="i_am_password"
    }

    接下来编辑/etc/network/interfaces,注意,如果默认使用无线网的话,写配置文件时,将wlan0写在eth0之前。我之前是将wlan0写在eth0之后,这种情况下,只有在插有线的时候无线才能用,拨掉有线就不能用了;将wlan0写在eth0之前,就可以单独使用无线,上述情况仅供参考。 如果想要动态获取地址,请按如下配置:

    auto wlan0
    iface wlan0 inet dhcp
    wpa-conf /etc/wpa.config

    如果要静态获取ip地址,则按如下配置:

    auto wlan0
    iface wlan0 inet static
    address 192.168.1.21
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8
    wpa-conf /etc/wpa.config

    配置完成后重启网络或pi后生效

  • vim加减数字

    将光标移动到数字上 ctrl+a 为增大数字
    ctrl+x 为减小数字

  • 在ec2的AMI上安装oracle的jdk

    亚马逊上()默认的jdk为openjdk,现在换为oracle的。

    操作步骤如下(如需64位的,将下面的i586改为x64;6u34-b04可以猜是版本号)

    PS:oracle已经不支持直接下载,使用这个技巧来下载

    wget --no-check-certificate --no-cookies --header "Cookie: gpw_e24=xxx;" http://download.oracle.com/otn-pub/java/jdk/6u34-b04/jdk-6u34-linux-i586-rpm.bin
    sudo bash
    chmod +x jdk-6u34-linux-i586-rpm.bin
    ./jdk-6u34-linux-i586-rpm.bin
    alternatives --install /usr/bin/java java /usr/java/default/bin/java 20000
    update-alternatives --config java
    ln -s /usr/java/default/jre /usr/lib/jvm/jre
    ln -s /usr/share/java /usr/lib/jvm-exports/jre

    使用java -version,出现下面类似信息,则已经将默认jvm变为oracle版。

    $ java -version
    java version "1.6.0_34"
    Java(TM) SE Runtime Environment (build 1.6.0_34-b04)
    Java HotSpot(TM) Client VM (build 20.9-b04, mixed mode, sharing)

    这里多说一句update-alternatives,它可以设置某一类软件的默认程序,如果想将vim取代nano变为默认编辑器,则使用如下命令:

    update-alternatives --config editor

    还可以配置FTP,telnet,rsh等预设程序,更多的查看/etc/alternatives目录。

  • ruby连接mysql数据库

    以下操作在ubuntu下进行

    前提要安装好ruby-mysql

    gem install ruby-mysql
    require 'rubygems'
    require 'mysql'
    begin
      db = Mysql.new('localhost', 'username', 'password', 'password')
      puts "connected"
    rescue Mysql::Error
      puts "Oh noes! We could not connect to your database. -_-;;"
      exit 1
    end
    
    begin
      results = db.query "select * from blog.wp_users;"
      puts "blog has #{results.num_rows} users."
      puts results.class
      results.each do |row|
        puts row.join(" |  ")
      end
      results.free
    ensure
      db.close
    end

    结果将打印出wp_users这张表中的内容。