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

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

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

2014年3月2日日曜日

ビデオチャットデモできました


こんばんは。休日だというのにデモを作っている仕事中毒な私です?!

本日、個人情報(ID・Eメールなど)のやり取りなしで、ビデオチャットができるデモサイトを公開しました。

個人情報のやり取りなしでビデオチャットができるので、ビデオチャットでの業務を一般顧客に提供している企業の皆様に興味を持ってほしいです。

例えば

  • 英会話
  • 保険(アフターフォロー、保険の相談)
  • 病院(カウンセラー)
  • ウェディングプランナー(リモート打ち合わせ)
  • 弁護士(無料相談、リモート相談)
などなど。

今回のシステムは基本的にブラウザと閉じているので、Skypeなど他のソフトをインストールする必要がありません。
また、他システムにアカウント情報を連携する必要もありません。

Skypeを利用しているとID・Eメールを各クライアントに入れ込む必要がありますが、搭載とのシステムではその必要がありません。

ということで、セキュリティー(特に情報漏洩)に強いシステムを構築することができます。

このシステムをベースにとあるサービスを構築する予定です。

その他にも仕事を欲していますので、興味のある方はお声がけください(笑

というわけで、デモサイトをよろしくお願いいたします。