2014年3月11日火曜日

SkinnyORMでのTimestampsFeatureとOptimisticLockWithVersionFeature


こんばんは。ぎっくり腰も徐々に癒えてきた私です。

毎度毎度ですが、ビデオチャットデモで利用している技術の備忘録的なブログです。

Play2を利用していますがORMにAnormを利用せずに、SkinnyORMを利用しています。
理由は日本人が作ったFrameworkで世界的に大流行りしているからです。
(正確にはScalikeJDBCですが。。。)

Seasarのように日本だけの独りよがりFrameworkにならなそうな雰囲気があり、思わず採用してしまいました!!

で、SkinnyORMにはいろいろ機能がありますが中でも

  • TimestampsFeature
  • OptimisticLockWithVersionFeature
は気になる機能だと思います。

TimestampsFeatureは更新の度に、指定の更新日付を勝手に現在時刻で更新してくれます。

OptimisticLockWithVersionFeatureは、その名の通りで楽観的排他を更新回数の項目を利用して実現します。
楽観的排他の実現にはOptimisticLockWithTimestampFeatureというのもあり、更新日付を利用することもできます。

今回、どのくらい更新されているのか?知りたくてOptimisticLockWithVersionFeatureを利用して楽観的排他を実現しています。

しかし、こうなると一つ問題が生じるようです!!

それは・・・TimestampsFeatureが動かなくなる!!のです。

TimestampsFeatureはupdateByIdで主キーを指定した場合に動くようで、排他を利用するためにupdateByIdAndVersionで主キーと排他制御項目を指定すると動かないみたい・・・

ちょっとショック!!

まぁ、エンティティのtraitに更新日付を現在日付にする実装を施せばいいだけの話だけどね☆

そんなことがあったんだとビデオチャットデモを眺めてみてください(笑

2014年3月10日月曜日

SkinnyORM(ScalikeJDBC)で利用するConnection Poolingの設定(Play2.2.1編)


こんばんは。ぎっくり腰でえらい目にあった私です。

ビデオチャットデモにConnection Poolingの設定を施してみたところ、MySQLの8時間問題が起きなくなったようです。
そして、体感速度が上がった気がします?!

では、どのような設定をしたかというと・・・

application.confファイルに

# ScalikeJDBC 独自の ConnectionPool 設定 
db.default.poolInitialSize=5
db.default.poolMaxSize=100
db.default.poolValidationQuery="select 1" 

を追記しただけです。

その他の細かい設定は・・・
調べてみたところScalikeJDBCの設定項目にないみたい・・・
多分デフォルトで良きに計らってくれているのでしょう・・・
(今度ソース読んで確認してみます)

2014年3月9日日曜日

ビデオチャットデモのスマホ版のメニューを改善しました。

こんばんは。結婚式帰りにぎっくり腰になり、ひいひい言いながらキーボードを打っている私です。

ビデオチャットデモのスマホ版(Android版)のメニューが隠れて奇麗に表示されていなかった不具合を修正しました。

Bootstrapのマイナーバージョン違いで問題が発生したようです。

これで、AndroidのChromeでビデオチャットを試せるはずです。

あとConnection Poolingの設定を変更し、接続確認SQLを追加しました。
これで、MySQLのあの有名な8時間問題を解消できているかな??
明日確かめてみようっと!!

今後もビデオチャットデモをよろしくお願いいたします。

2014年3月6日木曜日

Bootstrapを使ってAdsenseをレスポンシブに!!

こんばんは。やっとこさミーティングが終わった私です。
(現在帰宅途中!!)

今回はBootstrapを利用してAdsenseを最適化する方法を紹介したいと思います。

Adsenseの広告サイズに「レスポンシブ広告ユニット(ベータ版)」というものがありますが、これは推奨フォーマットではないようです。
Google側で画面サイズを計算して広告の大きさを動的に変化してくれるので、PCとスマホの両方を同じHTMLで表示している場合に大変便利です。
しかし。。。推奨でないということはクリック率が悪いというという事実もあります。

では、推奨の固定長フォーマットをうまく切り替えることができないか?

Bootstrapを利用することで、実現することができます。

<div class="row">
    <div class="hidden-xs">
        タブレット以上の固定長フォーマットのAdsenseコードを埋め込む
    </div>
</div>
<div class="row">
    <div class="visible-xs">
        スマホ用の固定長フォーマットのAdsenseコードを埋め込む
    </div>
</div> 

こうすることでタブレット以上とスマホで広告の表示を切り替えることができます。

ちなみに私の作成したビデオチャットデモでも上記手法でAdsenseの表示を切り替えています。

PCの画面

スマホの画面

こんな感じで、表示が切り替わっています。


2014年3月5日水曜日

これは致命的じゃないか?


こんばんは。今日は寒くてやる気のでない私です。

さて、こんな記事を見つけました。

記事にも書いてありますが、ここまでくるとビットコインそのものの欠点ですよね。

AWS?Amazonと何の関係があるの?という方に記事の内容を説明すると。。。

あのAmazonは実は世界最大のクラウドIT企業でもありまして、大雑把にいうと世界最大のレンタルサーバ屋さんなわけなんですよ。

で、Amazonのレンタルサーバをかりている人のID/パスワード(実際にはその代わりになるもの)を盗んで、勝手にハイスペックマシンを稼働させて、ビットコインのマイニングをしていたということ。
Amazonは超高スペックなマシンのレンタルもあるので、犯人はそれを勝手に使ったのです。
超高スペックなマシンはレンタル料も高く、数日の稼働で30万円の請求が来て、被害が発覚!!
今回は、Amazonが請求を取りやめたため、金銭的な被害者は出なかったとさ。

だれでも計算資源があれば発行できる仕組みだから起きる被害。
そして、ビットコイン自体に対策を施せない。
正直、致命的な(設計)欠陥ですね。(個人的な感想ですが)

うぅ〜ん、ビットコイン。。。将来もないかも・・・

やっぱり、ビットコインそのものの問題じゃない?!


こんにちは。お昼休みの私です。

「解けない暗号はない」、「改ざんできないデータなどない」

世のハッカー達はそう信じているでしょう。

そして、それは真実でしょう。

暗号って、「解読するのに平均数万年かかるから安全です」というだけで、解読の不能性を保証しているものではないので。

しかも、平均ということは。。。一瞬で破られる可能性もあるということ(限りなく0に近い確率ですが)

マウントゴックスの問題でビットコインに問題でないはずなのに

他の取引所でも全ビットコインが盗まれる

という事態が発生しているのも納得できますね。

暗号通貨の構造的な問題点なんですよ。きっと。

2014年3月4日火曜日

ビデオチャットデモをデモしてきました!!


こんばんは。今日は結構眠い私です。

本日、ビデオチャットのデモサイトを使ってちょっとプレゼン的なことをしてきました。

私のPCと相手のPCを利用して、ビデオチャットを実際に体感してもらいました。

結構、手応え良かったです!!

ブラウザだけ(プラグインもなし)で、相手の連絡先情報なくビデオチャットできることに衝撃を受けていました。
また、相手からビデオチャットの申込があったときに、プッシュ通知したり、動的に画面が切り替わるところも、評価いただけました。

うまく伝わったかなぁ〜と思います。

で、SingUp、SignInが解り辛い気がしたので、「会員登録」、「サインイン」に変更してみました。

まだ、利用方法をアップしていないので、どう使えば解らない人が多いとは思いますが、いろいろ触ってみてください。
(相手がいないと試すのも難しいですが・・・> <;)

今後ともビデオチャットシステムをよろしくお願いいたします。