developer's diary

最近はc#のエントリが多いです

国会議員の喫煙率は7割弱らしい。

ってオイコノミアでやってたのをふと思い出した。

日本成人民の喫煙率は19.3%だそう。

非喫煙者は、喫煙を毛嫌いする気がするので、 選挙に出る人が喫煙者かどうか判断できるプロフィールをまとめたサイトをWEBで公開すると 何かが変わるかもしれない。

父親が移動中に社労士のオーディオブックを聞いている。

車を移動手段にしている人を羨ましいと思うところは、オーディオブック聞き放題ってところ。

オーディブルというamazonのサービスは月1500円でオーディオブック聞き放題。 http://amzn.to/2uwrNfQ

あ、このリンクで入会すると私めにちゃりんちゃりんが発生するので、 嫌な人はGoogleの検索窓に、「Audible」といれて検索してくださいね。

と、ステルスマーケティングしてみた。

私はAmazonとは利害関係はありません。⇒ 嘘です。

ノウタリンと第二記憶装置との付き合い方

脳みその記憶領域が足りない私が向き合う方法

第二記憶装置を利用する

メモを取る

整理する(週1回くらい?)

見直すタイミングを作る

朝一と帰宅前

大事なこと: 自分の頭で考える ⇒ 記憶に定着しやすい 習慣かする ⇒ 続けないと意味がない とにかくやってみる ⇒ 効果があるか判断する ⇒ 第二記憶装置は違いを生む違いか?

レガシー・マイグレーションの現実解 を読んで

http://www.unisys.co.jp/tec_info/tr89/8906.pdf

  • パッケージの適用
  • ストレートコンバージョン
  • リライト
  • 再構築

再構築だったとしてもすべてを再構築するわけではない

  • リライトするべきところはどこか
  • 再構築するべきところはどこか

ソフトウェア設計。要求

要求を実現するのがシステム屋の仕事。

規模が小さければ、要求をそのままコードに移せば良い。

規模が大きくなる、膨らむ、成長するのであれば、まとめておく必要がある。

なぜか?

単純に忘れるから。

昨日食べた夕飯を忘れる人は少ないだろうけども、去年食べた夕飯を覚えてる人はいない。

だからまとめる。

一目でみてわかるようにまとめるのが重要。

要求はなにか。そしてその要求が必要な理由は何か。

ウィンドウ枠の固定に挑戦(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 の組み合わせはプロトタイプの作成にものすごく相性がよさそう。

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

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

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

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

参考

http://raspi.noob.jp/howto/auto-login/raspi.noob.jp

アマノ タイムカード タイムレコーダー ホワイト BX2000

アマノ タイムカード タイムレコーダー ホワイト BX2000

  • 発売日: 1996/07/01
  • メディア: オフィス用品

raspberry pi イジリ vimrcを編集

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

内容は以下を記述

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

set nocompatible

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

set number

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

set backspace=indent,eol,start

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

事前に作っておけないか。

※独り言。

全てをプログラミングで解決しようという思考回路に陥りやすい。

何かを作るときに巨人の肩に乗る(ライブラリを利用する)わけだが、それには制約というものがついて回る。

制約内で上手く考えてつくるとも大事なんだけども、タイトルにもある通り、その○○は事前に作っておけないか?と問いかけてみるのも大事かもしれない。

今回はバーコード。バーコード用の画像を100枚くらい作っとけばよさそう。

規模に合わせて一番ベストな方法を利用する。

将来を想定して動くような間抜けなことはしないようにしなくっちゃ。

AWS Summit Tokyo 2015に1Dayだけ参加。まとめ。

AWS Summit Tokyo 2015に1Dayだけ参加しました。

おめあては大前研一さん親子のセッションと、Githubのお話。

参加した5のセッション

  1. 基調講演
  2. GitHub, AWS などの分散テクノロジーが実現する、デベロッパー主体のアプリケーションデリバリ
  3. 【パネルディスカッション】デベロッパー視点でみた AWS
  4. 【パネルディスカッション】デベロッパーが切り拓く、次の時代
  5. 2035 年、その時デベロッパーはどう生きるか

自分のつぶやきメモ

自分メモ用にその時のメモ的なつぶやきをひとまずまとめました。*1

オープニングKeynoteで印象に残ったこと。

  • AWSの成長は、Lower cost structure (低価格)から始まっているというお話。

  • クラウドワークスが赤字の状態で上場した話。

  • agility Speed。  アジリティの単語がたくさん出てました。ビジネスは素早い動きが重要でAWSを使うことでアジリティに動ける。

  • 機械学習 機械学習を2人のスペシャリストが1ヶ月近くかけて行った結果と、機械学習に縁のないエンジニアが5日awsの機械学習のサービスを利用して生み出された結果が同じに。

  機械学習の内容:この人は男性か?女性か?という問い。

  アマゾンのレコメンデーション技術が機械学習のサービスに生かされている?

  • Amazon Elastic File System EC2のためのフルマネージド型ファイルシステム。ペタバイトクラスで伸縮できるスケーラビリティ。

  • Amazon WorkSpaces 仮想デスクトップ環境 月額課金の仮想デスクトップ。  調べてみると思ったよりも低価格かもしれない。 ( 2CPUの4Gメモリで月額 47 USD ) Office Professionalとトレンドマイクロのウィルス対策ソフトが プラス15USD

    電気代も含めて考えると安いかもしれない。 普通にこのスペックのデスクトップつけっぱなしにすると、電気代だけで3000円くらいいきそう。

同じスペックではないだろうけども、c4.large(2CPUのメモリ3.75GB)で、$0.147 /1 時間⇨30日105.84 US$ *2 約2倍。もちろんOSがWindows Serverなのでその分高いんだろうけども。。。

ただし、EC2は停止するとコストがかからないので、1日8時間20営業日だと23.52 US$となる。

GitHub, AWS などの分散テクノロジーが実現する、デベロッパー主体のアプリケーションデリバリで印象に残ったこと。

  • 10年前のオープンソースの貢献方法と、今の貢献方法には明らかにプロセスに違いがある。

  • Githubは法務の文書管理としても有用。

    • 平文でテキスト化して同時に非同期で文書を改定していく
    • 修正内容をプルリクエストしてディスカッションが生まれて承認されて文書としてまとめられるプロセス
  • Githubを利用してOSSに貢献してみると世界をみる目が変わるかもしれない。

電池切れのため、今日はここまで。そろそろ大阪駅に到着するかも。

*1:どうでも良いつぶやきもまとまっております

*2:他にネットワークや、ストレージのコストがかかる