読者です 読者をやめる 読者になる 読者になる

ウィンドウ枠の固定に挑戦(HTMLのテーブルを見やすくする)

要件

  • ヘッダ・フッタ固定
  • ウィンドウ枠の固定のテーブル
  • スクロールバーはブラウザのウィンドウスクロールを利用
  • divのスクロールは利用しない
  • ライブラリはjQueryのみ
  • Chromeで動くこと

結果

課題

  • 今の実装だとセルの幅が固定になってしまう。。。
  • セルの高さが変わった際に、ウィンドウ枠固定のセルの高さも変えなきゃいけない。。。
  • ウィンドウ枠固定のために余分な列と行を追加してしまった。。。
  • 名前の付け方がいい加減。。。
  • スクロールが最終行になると、ずれる問題をフッタ表示でごまかしてる。。。
  • ブラウザの拡大とか縮小するとズレルヨ。。。

raspberry pi イジリ 起動時に勝手にログインしてバーコード読み取りプログラムを起動

f:id:mitsugi-bb:20150910021415j:plain

クラウド+Raspberry pi の組み合わせで簡単なタイムレコーダーのプロトタイプを作ってみてるところ。

Raspberry piが起動したら、あとはバーコードを読み取るだけ!みたいな部分を作成。

肝心なタイムレコーダ部分はサーバ側で記録するのでシンプルなC/Sモデルで作ってます。

Raspberry piが起動した際に、自動でログインする状態に

/etc/inittab ファイルを修正

1:2345:respawn:/sbin/getty 38400 tty1
↓
#1:2345:respawn:/sbin/getty 38400 tty1
1:2345:respawn:/bin/login -f pi tty1 </dev/tty1>/dev/tty1 2>&1

ログイン後に起動するプログラムの作成

バーコードの読み取り結果をHTTPでPOSTするプログラムを記述。 単純にバーコードを読み取ると、キーボード入力で値を受け取れるので、その値をpostするだけという簡単仕様

#!/usr/bin/ruby

require 'net/http'

while str = STDIN.gets
  http = Net::HTTP.new('mitsugeek.net') #接続先ドメイン
  response = http.post('/test.php', 'barcode='+str.strip) #接続先パスとPOSTパラメータ
  if response.body = "OK" then
    system('aplay -D plughw:0,0 -q ok.wav') #結果に問題なかった場合スピーカーで音声出力
  end
end

ログイン後にプログラムが起動するように設定

piユーザでログイン時に起動するプログラムとして、.bash_profile に記述

aplay -D plughw:0,0 -q init.wav #システム起動の音声出力
ruby barcode.rb #バーコード読み取りプログラムを起動

そしてreboot

起動した際に、起動音声が出力される。 起動音声や、バーコード読み取り時に出力する音声は、Open JTalkで、 「システムを起動しました」とか「読み取りました」みたいな音声ファイルを作成してみた。

バーコードを読み取ると、バーコードの読み取った値がサーバにPOSTされて、「読み取りました」の音声ファイルが再生される。

感想

クラウド+Raspberry pi の組み合わせはプロトタイプの作成にものすごく相性がよさそう。

今回はバーコードを利用したタイムレコーダーのプロトタイプだけども、

タイムカードの機械を買うより安上がりだったりする。

本格的に利用するとなると、セキュリティ部分が要になるのでこのままだと使えないけども。

通信の暗号化とか。アクセスキーとか。

参考

raspi.noob.jp

アマノ タイムレコーダーBX2000

アマノ タイムレコーダーBX2000

raspberry pi イジリ vimrcを編集

ホームディレクトリに.vimrcを作成

内容は以下を記述

set nocompatible
set number
set backspace=indent,eol,start

set nocompatible

挿入モードの際に、カーソルキーが有効になりました。

set number

行番号が表示されました。

set backspace=indent,eol,start

挿入モードの際に、バックスペースキーが利用できるようになりました。