2014年4月15日火曜日

いろいろあってpjaxを再学習

こんばんは。明日は筋肉痛確実の私です。

表題の通りいろいろあってpjaxを再学習しようと思っています。

pjaxとは2010年頃に登場し、技術者を虜にしたあの技術です。
当時はTwitterが高速か対応などで導入し話題になっていましたね。
(現在は諸事情によりやめてしまったようですが。。。)

一時期長話題はどこ吹く風の一発屋のような雰囲気がありますが、性能重視のサイトでは普通に使われていたりするようです。

簡単にpjaxを説明すると
・ajax技術(非同期通信)でhtmlページの一部を取得し、書き換え
・pushState(HTML5)を利用して履歴管理もする
技術です。

これを使えば非同期通信でページ遷移をするのにURLが変わるので、戻るボタンやらSEOに有利という代物になります。

ただSEOに有利というのはいろいろありまして、pjaxが利用できない場合でも通常のWebシステムとして動作しないと検索エンジンが認識しないようです。
(Twitterはこれの対応が面倒でやめたという噂が・・・)

pjaxの詳しい説明はこちらをご参考に。

で、何故今更「再学習」かというとビデオチャットデモを製品レベルに引き上げるためです。
ビデオチャットで重要な機能に呼び出し(コール)機能があります。
これを実現するには、ブラウザとサーバが常に接続状態でないと駄目なんです。
そう、常に接続していないとサーバから相手(ブラウザ)に情報をプッシュできないから。
ページ遷移があると、次のページが読み込まれるまでサーバとの接続がどうしても切れてしまう。どうしたもんだか・・・
そう、そこでpjaxですよ。
これならリンクを押してもサーバとの接続が切れないで済むんです。
最初のアクセス時に、サーバとの接続を確立すれば後はツナギッパ!!

というわけで、再学習をして実装をしてみようと思います。

backbone.jsやらangular.jsやらMVCフレームワークと絡めていろいろ試していきたいと思います。

情報をお持ちの方!!いろいろ教えてくださいな☆

2014年4月10日木曜日

法の下の平等って均等でなく按分でしょう

こんばんは。筋肉痛が激しい私です。

最近ちょっと思うことをタイトルにしてみました。

平等ってそもそも均等ではないですよね☆
頑張った人は多くの褒美を得られ、頑張っていない人は褒美がもらえない。
これが本当の平等ではないでしょうか?

もし法の下の平等が均等であれば、累進課税制度は違法になりますよね。
平等=均等を声高に叫ぶ人ほど、金持ちから税金を取ればいいとよく言います。
なんか矛盾しています・・・

刑の重さも実は按分が正解だと考えています。
実行犯と主犯だと刑の重さが違うように。

刑の重さを按分する要因ってなんだろう?と考えたところ私の行き着いた答えは・・・
「社会的な地位や責任の重さで按分される。」
ということです。
地位のある人は責任(罪)が重くなるということです。
地位と報酬はほとんどの場合、比例しているので責任(罪)も比例して重くなるべきです。
たとえば、一般人がちょっとした副収入を確定申告で間違っていても、怒られることはあれ民事・刑事事件になりません。
しかし、これが政治家だったら・・・職を失いますよね。

何が言いたかったかというと、立場によっては「知りませんでした」、「悪意はありませんでした」が通用しないのが普通だということ。
知らないことが罪であり、悪意がなくても行為をしたことで罪となるという意識が希薄しているような気がしています。

例えばホリエモン。
一部上場企業という社会から資本を集めることができる立場の社長が、「自社株の売買益の取扱を知らなかった」、「部下が粉飾をしていたことを知らなかった」ではすまされないですよ。知らなかった時点で実はアウト!!アメリカではもっと罪が大きかったはずだと言われるのはそういう理由だと思います。

最近だと小保方さん?!
彼女の立場なら、ミスではすまされないでしょ。しかも数が多すぎ!!
だって、世界的な発見で、あのネイチャーに投稿した論文ですよ。
その論文責任者という立場なら、些細なミスでは済まされないですよ。で、些細なミスの数が多すぎ!!(何度でも言う)
意図的かどうかなんて関係なく、これだけの数のミスは犯したらアウトでしょ。
小保方さんのパッシングが行き過ぎているという意見もありますが、理系出身の私からすればもっと怒られても仕方ないと思います。
(理化学研究所の組織としての追求はもっと必要だと思いますが)

人のことばかり偉そうに言ってすいません。
そんな私も一応会社の代表社員。会社登記簿に住所とか載っちゃう半分公人。
そう、私も責任がある立場なんだ!!
日々精進して、「知らなかった」、「悪意はなかった」が言い訳にならないよう気をつけないと。。。


2014年4月7日月曜日

外れ馬券の経費は認めちゃだめでしょう!!

こんばんは。お久しぶりのブログ更新です。

外れ馬券を経費と認めらないことがニュースになっていますが。。。

私個人の意見としてははずれ馬券が経費であるなんてことはあってはならないと思っています。
はずれ馬券が経費になるということは・・・

・国がプロギャンブラーを認める

ということになります。あり得ません。

はずれ馬券を経費にというのは、かなり自分勝手な論理だ確信しています。

公営ギャンブルは賭博罪の例外扱いなので、経費でなく消費という考えが自然だと思います。

ギャンブルで生計を立てるということを認めさせないためにも、最高裁でも経費計上は違法となってほしいです。

そもそもギャンブラーを職業にするという発想が間違っているということを誰も思わないのか??

http://sankei.jp.msn.com/affairs/news/140407/crm14040712150008-n1.htm

2014年3月23日日曜日

MariaDBをインストールしてみました

こんばんは。今日は夏野菜カレーを作った私です。

開発端末のMac book AirにMariaDBをインストールしてみました。
既にMySQLもあったのでそちらのアンインストールもしてみました。

まずは既にインストールされているMySQLのアンインストール。

brew uninstall mysql

としても、何も起こらなかったのでこちらのサイトを参考に、いろいろ削除。

その後、
brew install mariadb

で無事インストールできた!!

起動スクリプトのシンボリックリンクを作成して、ログイン時にサーバを起動するようにする。

ln -sfv /usr/local/opt/mariadb/homebrew.mxcl.mariadb.plist ~/Library/LaunchAgents

とりあえず起動
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mariadb.plist

もんでもって、接続
mysql -u root -p

一応つながりました。

既存のMySQLアプリが大丈夫か確かめよっと・・・

追記
MySQLのアンインストール時に

rm -rf /usr/local/var/mysql

も必要でした!!

2014年3月21日金曜日

S3を利用するための準備

こんばんは。外反母趾サポータが欲しい私です。
(足の筋力バランスが悪いようで軽い外反母趾になってしまったようです。。。)

デモの利用方法の画像を保存する場所として、S3を利用しようと企んでいます。
ちなみにそのデモとは

です。

Amazon Web Services(AWS)に登録するの巻で作成したアカウントでS3の登録もしてみました。
その時の備忘録です。

まずはAWSトップにアクセス。
「サインアップ」をポチットする。
普通にログインする。
ログインに成功すると、上記画面に。「アカウント/コンソール」をポチットする。
左下の「S3」をポチる。
「Create Bucket」をポチッとな。
「Bucket Name(バケット名)」を入力し、「Region(DCの場所)」を選択する。
「Bucket Name(バケット名)」はRegionで一意でないと駄目らしい。他の人が使っていたら残念!!
「Region」は少々高いが性能を考えてTokyoを選択しました。少々高いといっても、激安ですが・・・
Bucketができると上記画面になります。

このバケットを利用していろいろやってみようと思います。

ではでは。。。

Amazon Web Services(AWS)に登録するの巻

こんにちは。新しい空気清浄機で花粉症が大軽減の私です。

AWSの登録をしましたので、その備忘録です。

AWSサイトにアクセス!!
「サインアップ」をポチッと
メールアドレスを入力し「I am a new user」を選択して「Sign in using our secure server」をポチる
必要事項を記入してポチる
住所等を頑張って英語で入力
支払い用クレジットカードを入力。
カード登録したからといっていきなり請求されることはないのでご安心を。
海外旅行のホテルチェックインと同じ感覚だと思ってください。
電話番号を確認して、「確認用に自分に電話する」をポチる。
すると、設定した電話番号にAmazonから電話がかかってきます。すぐに。
そのさいに、画面に表示されている4桁の番号をダイヤルする。
電話と暗証番号で本人確認取れたら、上記画面になるので「続ける」をポチッと。
サポートプランはもちろん「Basic(free)」を選択。タダでお願いします?!(笑
ここまで来たら登録終わり!!

さて、次はS3とSMS Mobileをセットアップしよっと。

2014年3月20日木曜日

IntelliJとBitbucketを連携する

こんばんは。右足の親指が異常に痛い私です。

先日はMercurialとIntelliJを連携しました。(こちら

今日は、コミットしたプロジェクトを中央リポジトリのBitbucketにPushしたいと思います。

まずはBitbucketにユーザ登録をしましょう。

「無料サインアップ」をポチッと。

メールアドレス等よくある項目を入力。
Planについては「5 user team」にして、「チーム名/ID」に会社名を英語表記で入力しました。

登録が無事終了すると、上記のような画面になりました。


登録したメールアドレスの確認のため、上記のようなメールが来るので、ボタンをポチ。

これで、Bitbucketが使えるようになりました!!

次はIntelliJの設定を行いましょう。
まずは、Bitbucket Pluginをインストールします。

「Preferences」を選択。

「Browse Repositories」をポチ。

「Bitcuketプラグイン」を選択して「Download and Install」

再起動をすれば、Bitbucket Pluginのインストール完了。

「VCS」⇒「Import into Version Control」⇒「Share project」を選択。

BitbucketのID/パスワードを入力。

プロジェクトの説明等を入力して、「OK」をポチって、しばらく待つ。

処理が終わったら、Push終了!!

実際、Bitbucketにログインしてみて見ると以下のようにPushされていました。


これで、チーム開発・リモート開発ができるわけですね☆

2014年3月18日火曜日

Macにmercurialをインストールする


こんばんは。gitにしようかmercurialにしようか迷っていた私です。

私みたいなイケイケな性格だとgitでしでかしちゃいそうなので、mercurialを利用することにしました。

今日は我が家のMac book Airにmercurialをインストールした時の備忘録をブログに綴ることにしました。

まずは、Pythonのインストール!!

brew install python


次にmercurialのインストール

brew install mercurial


動作確認せねば・・・

hg version
問題なく動いているようです。

以上、簡単ながらbrewを使ったインストール備忘録でした。

2014年3月17日月曜日

Facebook、MercurialをGitよりも速くする ??

こんばんは。先週はぎっくり腰に食中毒とあたりにあたっていた?!私です。

現在、bitbucketを利用してソースコードの管理を考えているのですが、リポジトリを

・Gitにするか?
・Mercurialにするか?

で悩んでおります。

世間の風はかなりGitに寄りのようですが、いろいろ調べてみるとMercurialも捨てがたい。。。
現状の2大勢力(Git優勢ですが)のどちらに肩入れするべきか・・・

そんな中、配信日が私の誕生日と同じ日の

Facebook、MercurialをGitよりも速くする

というというInfoQの記事を見つけた。

よし、マイナー?!なMercurialにしてみるか!!と思ったが、よくよく見るとタイトルの日本語が変だし。。。よくよく読んでみると、私には関係ない内容だなぁ〜。。。
そんな大規模な開発ないですから!!

というわけで、やっぱりGitがいいのかなぁ〜。。。

決めの問題なんですが、悩んで前に進めず。

開発って、迷ってばかり。青春時代の真ん中と同じですね☆

2014年3月12日水曜日

S3を利用してモジュールを少しでも軽く!!


こんばんは。今日はこれからプチトレーニングを考えている私です。

Webアプリケーションを開発していると、画像がうざくなりませんか?!

下手なデザイン会社が「CSSで作れよ!!」と思うような無駄な文字画像とかつくってきますよね☆

そしてその結果、
文字変更が画像入れ替えとなり・・・使われなくなった画像が解らなくなり・・・
いろいろな歴史を経て異常に画像が多くなる。
そして、warやアップロード(デプロイ)するものが以上に重くなる。。。

そんな風にならないために、画像等は別サーバで管理したくなりますよね。
(src="別サーバ"でイメージ取得)

いま、別サーバの第一候補はS3ですよね☆

S3のファイル毎に公開設定をするのかったるいなぁ〜と思っていたところ
参考サイト
を発見。

これで、公開領域はデフォルト公開にできる。

公開したくない画像等は、別の非公開領域に設置して、WebアプリケーションサーバをProxyにして認証・認可を行う。

うん、これでいろいろ解決できるはず(笑

Androidでビデオチャット


こんばんは。腰が痛いのでそろそろ寝ようと思っている私です。


PC(Mac)とスマホ(Android)でビデオチャットデモをやってみたので、その時のスクリーンショットを紹介します。
(ただし、2台での自分撮り)

まずは、PCからスマホへビデオチャットのお誘いをし、通知(プッシュ)処理したところ。

承認をして、ビデオチャット画面に自動的に切り替わったところ。

PC画面はこんな感じ。

続いてAndroidスマホはこんな感じ。

ちゃんと話せてます?!

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が解り辛い気がしたので、「会員登録」、「サインイン」に変更してみました。

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

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