水曜日, 5月 17, 2017

愚痴

また標準テーマが気に入らなくてカスタムテーマを作ってしまった。
こうやってカスタムするから、引き継ぎができなくて、
毎回標準テーマが更新されるたびに泣く泣く時間をかけてカスタムする羽目になるというのに。

火曜日, 5月 16, 2017

cgroupを利用して処理ごとに資源を割り振る話


仕事でcgroupを使用したくなってちょっと調べたのですが、
Googleで調べると、昔こんな記事を書いたことが発覚しました。

当時は動いたのだでしょうが、現代では間違いだらけの動かないポンポコピーなので、
書き直すことにします。
なお当該のパッチは現在でも形を変えて(当時ほど率直ではないものの)残ってはいるので、この対応は全くの無駄です

でもgoogleでcgroupの使いかたの日本語記事でこのblogが引っかかるので、訂正しておかなければならないですよね・・・。





日曜日, 2月 12, 2017

なんだかTwitterにプロモーションツイート課金してみた。

どうも。
beepcapです。

最近この喋り出しがyoutuberっぽいって言われました。
そりゃああっちがネットラジオからパクってった文化ですからね!

youtubeできるより前からラジオしてたっての。
もうやってないけど。

さてさて、本題ですが、
Twitterで課金してみました。


土曜日, 12月 17, 2016

SO-FI


この記事はロックバンド Advent Calendar 17日目です。

はい皆様お久しぶりです。
beepcapです。

ばんくしのアドベントカレンダーに合わせて一年ぶりに記事を書いています。
正直眠いです。



土曜日, 11月 28, 2015

たった半日でRaspberry Piを使った監視カメラと配信サーバを作る Step 2



前回

ということで、今回から設定していきます。
beepcapです。

前回で必要なソフトのインストールは大体終わったので、設定を行います。

Raspberry Pi 設定

Raspberry Pi2ではmotionの設定を以下のように変更します。
  • 画像の出力は動体検出ではなく定期的に
  • 画像のファイル名は固定(取得のたびに上書き)
  • 画像の置き場はramfs
そのためには、まずエディタで/etc/motion/motion.conf
を開く必要があります。

raspbianではデフォルトでnanoが採用されているので、
sudo nano /etc/motion/motion.conf
とします。

とりあえず僕は以下のように変更しました。
<<後日設定ファイルをはりつける>>

## デーモンモードを切る
daemon on

daemon off

## 常にキャプチャを取得する
emulate_motion off

emulate_motion on

## 動画の出力を停止する
ffmpeg_output_movies on

ffmpeg_output_movies off

## ramfsにファイルを出力する
target_dir /var/lib/motion

target_dir /dev/shm

## 出力ファイル名を固定する
picrure_filename  %v-%Y%m%d%H%M%S-%q

picure_filename output

ここで、動作確認をしてみます。
USBカメラをRaspberry Pi2に接続し

sudo motion

を実行し、出力された/dev/shm/output.jpgを確認して下さい。
画面がキャプチャされていれば成功です。

さて、サーバにuploadするための仕組みも作りましょう。

以下のようにしてスクリプトを書きます。

nano upload.sh
以下ファイル内

#!/bin/bash
while :
do
  scp -i "azureサーバの秘密鍵" /dev/shm/output.jpg azureuser@******.test-serv.cloudapp.net:/home/azureuser/output.jpg
sleep 1
done
秘密鍵は事前に作っておく必要があります。
秘密鍵の作成手順は、あとで例として載せますが、同じ手順である必要はありません。


上のスクリプトは1秒に一回、画像ファイルを/home/azureuser/output.jpgに上書きします。

 あとはこれらを起動時にじっこうするよう、Raspberry Pi2に登録します。

sudo nano /etc/rc.local
 このファイルのexit 0 の前に以下の2行を追加します。

motion&
/bin/bash /home/pi/upload.sh&

これで、Raspberry Pi2は起動後からカメラだ撮った内容をサーバにuploadし続ける機器になりました。

サーバ側の設定

さて、Azure側では受け取った画像を公開しなければなりません。
今回は気取って、canvasを使いました。
web 1.0な人はimgタグをつかってreloadすればおしまいです。

nano index.html
ここで新規に作成して


<html>
<script>
onload = function() {
  draw();
  setInterval("draw()", 1000);
};

function draw() {
  var canvas = document.getElementById('c1');
  if ( ! canvas || ! canvas.getContext ) { return false; }
  var ctx = canvas.getContext('2d');
  var img = new Image();
  img.src = "output.jpg?" + new Date().getTime();
  img.onload = function() {
    ctx.drawImage(img, 0, 0, 640, 480);
  }
}
</script>
<canvas id="c1" width="640" height="480"></canvas>
</html>




こんな感じのスクリプトを仕込みます。

上のスクリプトが何をやっているのかは見ていただければわかりますが、
最大限手抜きをしているので資源がもったいないとかはご容赦下さい。

さて、index.htmlがAzureの /home/azureuserに出来たかとおもうので、
webサーバを立ち上げます。

~/thttpd-2.27/thttpd -d .

終わり!!!(※1)

※1 Azureの場合はポートを開ける動作として、エンドポイントの設定でHTTPを開いて下さい。

あとは、Raspberry Pi2を起動して、サーバのwebページにアクセスすれば、
バッチリカメラ画像が更新されているはずです。




さいごに

どうだったでしょうか?
半日で出来たでしょうか?

普段、ちょっとほしいなと思いつつも、中々ハードルが高そうで出来ないこと。
それを実現するのがIoTと呼ばれる、簡易組み込みの世界だと思います。

こうやってどんどん、楽に、色々作っていけたら楽しいですよね!

ではでは。
beepcapでした。




おまけ

サーバで公開鍵認証を行う方法

ssh-keygen -t rsa
cd ~/.ssh
cat id_ras.pub >> authorized_keys
あとは、id_rsaをRaspberry Pi2側に転送すればok

使いまわさないように注意。


たった半日でRaspberry Piを使った監視カメラと配信サーバを作る Step 1

「たった半日でRaspberry Piを使った監視カメラと配信サーバを作る」
という流行りっぽい名前で記事を書いてみようかと思います。

beepcapです。
皆様お久しぶりです。

====ここから下は隠すみたいな表記も忘れてしまった====

さて、Twitterでふぁぼは募ったのですが、集まらなければこっちで公開した内容をあっちに貼らなければ良いだけなので、先に記事を書いておきます。

三分間クッキングよろしくまず材料を集めます。

材料


  • Raspberry Pi2 Model B (Raspberry Piでもよし)
  • なんかサーバ(※1)
  • USB接続のwebカメラ(※2)
  • LANケーブル、マイクロUSB給電ケーブル
  • micro SDカード
  • マウスとキーボード(※3)

    ※1 WANから参照可能でsshが使えればなんでもいいです。(今回はAzure)
    ※2 市販のwebカメラで大丈夫ですが、RPiの場合専用カメラもあります。
    ※3 実働には不用です。開発のために調達してください。

座料は揃いましたか?
ない人は買ってきましょう。
Raspberry Pi 2 Model B
なんかサーバ
USB接続のwebカメラ
LANケーブル
マイクロUSB給電ケーブル
micro SDカード

マイクロUSB給電ケーブルは100円ショップのものでも良いのですが、
Raspberry Pi2は比較的大食いなので、発熱などに気をつけて下さい。

「なんかサーバ」は今回はWindows Azureを採用してみました。
Microsoft AzureはAWSとして使うと幸せなんです。
多彩な機能はぶっちゃけ使いにくいAzureですが、Linuxサーバとしては優秀です。
ただ、料金は240円/日くらいかかります。
月額7200円ですね。
なので、この記事を見ている方々は自身のお好きな資源を使われたほうが良いと思います。

材料はこんなもんです。

 下準備

下準備を始めましょう。
Raspberrt Pi2にはRaspbianを入れておきます。
といっても楽をしたいので、NOOBSで入れましょう。


上記のリンクから、NOOBSをダウンロードしてきます。
多分Liteでもいいのですが、標準版にはRaspbianがすでに格納されています。

ダウンロードしてきたzipを解凍し、フォーマット済みのmicro SDに入れます。
あとはRaspberry Pi2にmicro SDを挿入し、マイクロUSB給電ケーブルで
USB電源と接続してください。

<<忘れなかったらここにNOOBSの画面>>


このへんの記事を参照に、Rasbianをインストールして下さい。



AzureにはLinuxサーバをインストールする必要があります。
Azureを使わない人はVMでも何でもいいので、Linuxのインストールと読み替えて下さい。
なお、Linux側は楽をするために、Ubuntu 14.04 LTSを使っています。


Azureのメニューの新規作成からこんなふうに新しいサーバを作成します。


作成すると、sshdが有効になったサーバが立つので、
user: azureuser
pass: 上記画面で指定したもの
でsshログインができます。

ssh azureuser@******.test-serv.cloudapp.net

といった感じでしょうか。



ソフトのインストール

では今回使用するソフトをインストールしていきましょう。
 まずは、Raspberry Piから。

  • Motionの導入
    Motion Wiki Home Motion - Web Home
    今回はビデオキャプチャとしてmotionを使います。
    motionを選択した理由は、
    1. 導入が簡単
    2. 定期的に画像ファイルとして出力できる
    3. 同じファイルに連続して上書き出来る。
    ということで、今回はこれを選択しました。
    3が重要です。
ではインストールします。
ディストリビューションはdebianベースなので、
sudo apt-get install motion
終わりです。

次にwebサーバをAzure側に作ります。
といっても、Apacheとかnginxとか巨大だしめんどくさいですよね?

ということで、

  • thttpdの導入
    thttpd
    導入の理由は
    1. とにかく簡単に設定(?)が終わる
    これに尽きます。
こちらもAzure上のubuntuなので
sudo apt-get install thttpd
とやりたいところなのですが、
コレではダメです。
なぜダメかというと、Ubuntu 14.04 TLSでは愚かなことに、thttpdが
パッケージに含まれなくなってしまったのです。

仕方がないので、野良ビルドします。

先ほどのページからthttpdをダウンロードして、ビルドします。
wget http://acme.com/software/thttpd/thttpd-2.27.tar.gz
tar -xf thttpd-2.27.tar.gz
cd thttpd-2.27
./configure
make
こんなかんじでしょうか。

さて、重要なソフトのインストールは出来たので、
次回から、設定と環境構築と楽しいコーディングと行きましょう。

ではでは

次回

日曜日, 1月 18, 2015

好きこそものの上手なれ


とってもいい言葉だよね。
でも上手じゃないと好きになれない段階ってあるよね。

で、画期的な解決方法を思いついたんだよ

好きなことしかやらなければいいのでは

土曜日, 1月 17, 2015

bloggerへの投稿をTwitterに自動連携するようにしてみた


恥ずかしい男
beepcapです。


タイトルの実験的記事なので、別に何も書くこと無いのですけど・・・

そうだなぁ、
自由に生きるために必要なものって、
お金かと思ってたんですけど、

どうも違うみたいです。

では

景気回復


どうも、無為に時間を過ごすのが大好きなbeepcapです。

でも意識して過ごしているのを無為と言っていいのかは疑問。


さて、昨今アベノミクスかはおいといて、
景気回復してきましたね。

あなたのお財布が寒いのは別にバブル期でも一緒でしょ?

少なくともお仕事増えてきました。


自己紹介

自分の写真
NetRadioDJ ...since 2003, Programer ...since 1994