2013年7月30日火曜日

Ruby on Rails bundle install エラー(proxy 経由)

bundle install をするとネットワークエラーが発生。
今の環境では proxy 経由でないと、動かない
http_proxy=http://example.com:port bundle install
これで、上手くいった。

2013年7月29日月曜日

Google Maps SDK for iOS を使ってみた

Map ばっかり。
今回は、タイトル通り Google Maps SDK for iOS を使ってみた。
といっても、Map が表示されるまで。

前提条件としては、Google のアカウントがあること。

1. アプリ登録のための bundle identifiers を決める
XCode を起動して新規プロジェクトの作成を行う(確認なので、Simple View Application で作成)。
この時に、APK で使用する Bundle Identifer を決定する。

Bundle Identifer とは、プロジェクトを作成する際に付ける Product Name と、Company Identifier を組み合わせたもの。
Bundle Identifer に表示されている。
これをどこかにコピーしておく。

2. SDK と APK を取得する。

Google Maps SDK for iOS
以下から SDK をダウンロード(zip形式)
https://developers.google.com/maps/documentation/ios/start#getting_the_google_maps_sdk_for_ios

Google APIs Console(APK)
https://code.google.com/apis/console/
※ 初めてのアクセスの場合は、プロジェクトの作成がある。

3. API キーの作成
API プロジェクトの Services を選択し、Google Maps SDK for iOS を有効(ON)にする。
次に、API Access を選択し、Create new iOS Key をクリックする。
ポップアップウインドウに 1. で作成した Bundle Identifer を入力(Create ボタンを押す)

API Access に Key for iOS apps(with bundle identifiers)ができ、API Key が表示される。
これをコピーしておく。

4. Google Maps SDK の配置
取得した SDK の Zip を展開する。

XCode に戻り、展開した SDK フォルダ内にある GoogleMaps.framework を Frameworks へ D&D する。
(プロジェクトの Summary の Linked Frameworks and Libraries で追加しても良い。フォルダごと選択追加する)
この時、Destination の Copy items into destination group's folder(if needed) はチェックを付ける。

次に、コピーしたフレームワークのフォルダを右クリックして、Show Finder などでフォルダを開き、フォルダ内にある Resources の中の GoogleMaps.bundle を再度、Frameworks へ D&D する。
この時、Destination の Copy items into destination group's folder(if needed) のチェックは無し

5. ライブラリの追加
必要なライブラリを追加していく。
プロジェクトをクリックして TARGETS のプロジェクトをクリック。
Summary の Linked Frameworks and Libraries で以下のライブラリを追加する

- AVFoundation.framework
- CoreData.framework
- CoreLocation.framework
- CoreText.framework
- GLKit.framework
- ImageIO.framework
- libicucore.dylib
- libstdc++.dylib
- libz.dylib
- OpenGLES.framework
- QuartzCore.framework
- SystemConfiguration.framework

6. 環境設定
Build Settings を選択し、Architectures の Valid Architectures を armv7 にする。
(armv7 と armv7s があるので、armv7s を削除)

次に、Other Linker Flags に 「-ObjC」を追加

7. コードの記述
ここからは、コードの編集

AppDelegate.m に GoogleMaps/GoogleMaps.h をインポート
didFinishLaunchingWithOptions で API キーを指定する。
#import "AppDelegate.h"
#import <GoogleMaps/GoogleMaps.h>

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
 {
    // Override point for customization after application launch.
    [GMSServices provideAPIKey:@"xxxxxx"];  // ここにキーを入れる

    return YES;
}

ViewController で、Map の表示を定義する
#import "ViewController.h"
#import <GoogleMaps/GoogleMaps.h>

@interface ViewController ()
@end

@implementation ViewController {
    GMSMapView *mapView_;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
                                                            longitude:151.20
                                                                 zoom:6];
    mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera];
    mapView_.myLocationEnabled = YES;
    self.view = mapView_;

    // Creates a marker in the center of the map.
    GMSMarker *marker = [[GMSMarker alloc] init];
    marker.position = CLLocationCoordinate2DMake(-33.86, 151.20);
    marker.title = @"Sydney";
    marker.snippet = @"Australia";
    marker.map = mapView_;
}
8. 確認
これで、ビルドすると Map が表示される。

最初、マーカーは出ても、地図が表示されない時があった。
ログには、API キーが違うというログが表示されていた。
これは、キーの作成の際に指定した Bundle identifiers とプロジェクトの Bundle Identifer が違っていた為に起こっていた模様。
一旦、Google の API キーを削除後、再度正しい名前で作成し直すと、表示されるようになった。

参考にさせて頂いたサイト:
Google Maps SDK for iOSの導入手順
http://qiita.com/shu223/items/bfb5ef3e45682c2bb763

Google Mapを組み込む - [開発] - Google Maps SDK for iOS
http://www.sachostore.com/2013/02/google-map-google-maps-sdk-for-ios.html

2013年7月28日日曜日

夢を叶える方法

先日、起業家のセミナーへ参加した。
主に、企業を目指している人や、企業間もない人へ向けた講座となっていた。

内容としては、「夢を語れば実現する(整理編)」と言う内容。

 「あなたの人生はあなたの心に思い描いた通りになる」
と、いうマーフィーの言葉をつかって、夢を持ち日々それに向かっていけば必ず成功するという事。

これだけでは、具体性が無いので、頭の中でその夢についての整理をしようという事で、マインドマップを使用して、整理をしましょうと言う事となった。

実際にマインドマップを書く前に、自分たちの考えている事は、ユニークかつ創造性があると言う事を理解してもらうために、ブルーム連想と、チェイン連想の練習をして、参加者の個々人の考えに被りが無い事を確かめた。

その後、このブルーム(拡散)・チェイン(鎖の様につなげる)を使ってミニマインドマップ(実際のマインドマップは、結構大変らしい)を書く事になった。

ここでは、ブルームとチェインに縛りを設け、目標について集中性を持たせるようにして、実践を行った。

この手の内容については、毎度の事ながらではあるが、欠点が分かっているので(過去の似た研修で知っていたから)、心を痛めながら書いていった。
今回も、大体想像通りの内容だったので、さらに心を痛めたのは言うまでもない。

受講内容としては、時間の関係もあって以上の内容で終了となり、個々人の発表等については無かった物の、自分の考えを見直す整理としては、 良かったと思う。


ここから下は、受講した内容からの勝手な解釈となるが、要点としては、

  • やりたい事(夢)に具体性を持たせるということ
  • 具体的な内容についていろいろなアプローチで対応してみる事(やるやらないは別として)
  • もし障害があるのであれば、その障害の原因を突き止めておく事
  • まわりに、その内容を話して理解してもらう事

と、言う事を紙に書いておく(どこかに貼って人目に付かせる)事だと思った。

早い話、自分及び、内容を見た聞いた人共々に催眠を掛ける(言い方が悪いかも知れないが)ことにより、予想以上の力が出るので夢は叶うという事になると言う事だろう。

実際、冗談ではなく、やりたい事を宣言している人は、結果はどうであれ言った事の通りや、それに携わる事が出来ていると思う。
思いをより強く持った方が良いという事だなと改めて思った。

そういえば、先日ニコニコ動画のコミュニティで更新が滞っていると思ったら、ブログで

「俺、声優を目指します!!(好きな声優さんに会って仕事したいから)」

と言うのを見た。
アニメ事情は詳しくないが、アニメの需要性や競争性を考えるとハードルが高いとは思う、しかしここまではっきりと宣言すると実現するとしか思えない。

これを見て、是非とも頑張って欲しいという事と、自分も頑張らねばとムチを入れたくなったのは言うまでもない。

2013年7月27日土曜日

Japanese Bloggers Info さんに登録

昨日は、リファラースパムについて書いたのだが、本日アクセス解析を見る限り、閲覧者数 0 になってた。
流石に数字 0 は厳しいな。
リファラースパム、、、良かったかも知れない。

きっと、応援のためのスパムだったのかも知れないと思うと、うれしいやら悲しいやら。

さて、このアクセス数が少ないという問題について再度考えてみた。
そもそもこの Blogger には、ポータルというかトップ画面が存在しない。

そう、昔は有名どころのブログ屋さんのサイトを使っていたので、更新したらポータルトップに更新情報が上がり、しょうもない記事でもタイトルだけでクリックしてくれていた人がいたのだが、このBlogger にはそういった画面がない。

Google ログイン、即記入な感じ。

こういう感じのため、新着記事なんて分かるわけがない。
たしか、Blogger のコンセプト的には日記形式を書く感じではないってことを見たような気のせいのような。。。

また、書いた記事が直ぐに検索結果に反映されるわけでなく、ロボットで解析してからのインデックスとなるために、ラグが生じている気がする。
これは、どうなんだろうか?今その瞬間の流行は追いかけられるのだろうか?

こんな事を思いながら、「Blogger 日本語」で Google さんに聞くと、Blogger 日本語ユーザーの更新情報を載せていただけるサイトが有るとの事。

それが、今回のタイトルにもある

Japanese Bloggers Info」さん

である。

Blogger と連携して Google App Engine を駆使してごにょごにょとしてくれるようだ。
ここぞとばかりに登録をしてみた。

これで、アクセス数が増えればいいなと思いながら。。。

リファラースパムでぬか喜び

下心丸出しで始めたブログ。
全くページビューが伸びない。

内容もそれ程新鮮ではないし、おもしろくもないだろうなと思いつつ、自分の備忘録にはなるだろうと続けている。

そんな中、昨日急にページビューが数件アップしていた。

見てみると

おお!!
よく分からんが、21 回も閲覧している。

当然好意を持ってくれた、妙に波長が合う人だろうと思い、リンクをクリックしたら。。。
全く関係ない動画のサイトが表示された。

パニックになった。
これは一体。。。

この時点で、アカンのフラグが立っていたのは感じていたが、トラフィックの URL を Google に問い合わせを掛けたところ、リファラースパムの単語が出てきた。

リファラースパム
参照元の履歴が記されるサイトに対して、同一の参照元から大量のアクセスを行うスパム。
by はてな

要するに、こういう履歴の確認が出来るサイトをねらって、宣伝したい人のページ(動画でも何でも良いんでしょう)のURLを用いて、こちらの履歴に参照先として登録させると言う物らしい。

今回の私みたいな浮かれて、
「いやん!なかーまやん!!どんなひとやろ!?」
と思ってクリックさせ、宣伝をさせるという、友達が少な(ry人の良心をねらった行為となる。
 正直こんなので、相手のサイトをマジマジと見分けもなく、冷静になると怒りすらおぼえるような行為でサイトの紹介しようと思ったもんだと思う。

ちなみに、他のリンクもみたら、全く関係ない海外のショッピングサイトだったので、実質ブログ見ているひといないんじゃないかと思ったりもする。
また、参照先にウイルスなどを仕込むサイトも有るらしいので要注意!!

今回得た内容としては、変にアクセス数が多い所は信用するなと言う事だった。
大体、見てる人が多いと、今回の内容なんてあんまり意味無いのかも知れない。

参考:
 リファラスパム(referer spam)にご注意を
http://128bit.blog41.fc2.com/blog-entry-133.html

短縮URLを使用したリファラースパムに注意。(7月22日更新)
http://lemonhart.blogspot.jp/2011/12/url.html

2013年7月25日木曜日

GeoHex をつかってみた3

引き続き、GeoHex のメソッドを見ていく

zone.eraseHex(map)
表示した Hex を削除する。

GeoHex.registOnDrawHex(...)
クリックした位置の Hex に情報ウインドウを表示する時に使う。
GeoHex.registOnDrawHex((function () {
 var infowin;
 return function (map, zone, polygon, prop) {
  var popinfo = !!prop.popinfo;
  if (popinfo) {
   if (infowin) infowin.close();
   var myHtml = "hoge";
   var point = new google.maps.LatLng(zone.lat, zone.lon);
   infowin = new google.maps.InfoWindow({
    content: myHtml,
    position: point
   });
   infowin.open(map);
  }
  if (!polygon.assignedClickEvent) { // クリックイベントの多重登録を抑止
   polygon.assignedClickEvent = google.maps.event.addListener(polygon, "click", function (event) {
    var zone = GeoHex.getZoneByLocation(event.latLng.lat(), event.latLng.lng(), level);
    zone.drawHex(map, {linecolor:"#FF0000",fillcolor:"#FF8a00",popinfo:1});
   });
  }
 };
})());
こんな感じ。

その他は、Hex の値を取得したり変換したりする内容のメソッド。
ここら辺はまた後日書く事にする。

Trunk Notes 3.01 バージョンアップ

Trunk Notes のバージョンアップが来た。

内容は、

  • DropBox との同期問題の修正
  • タイトルバーで TextExpander が使えるようになった
の2点。

一応メモとして。

2013年7月24日水曜日

GeoHex をつかってみた2

昨日の続き

表示するところまでは、確認したんだった。
表示の際に Google Map の API キーが必要なはずだが、少し前までは不要で、また今の段階では必要との記述を見た。

確認を取ってから作業をしようと思って調べてみた所、

み、見えないか。。。

Google Maps JavaScript API V3 は、API キーがなくても正常に機能します。
ただし、キーを使うとアプリケーションの Maps API の使用状況をチェックできるようになるため、Maps API を読み込む際には API コンソールキーを使用することを強くおすすめします。
API コンソールキーの使い方については、こちらをご覧ください。

とある。
う~ん使用状況をチェック出来るようになるためときたか。
第三者が悪用した時に自分ではないと言う事を立証するために必要とかそういう無いようだったと思うな。
が、しかし今回は外部には出さないから面倒なのでなしで動かすようにした。

さて、マス目が表示されたところで、何が出来るかを確認してみようと思った。
使い方とかは、ドキュメントが見あたらないので、ソースを見て何となくでやっていく事にした。

そこで、気になる点としては、バージョンが 3 つ位有って、計算処理用と表示用と 2 つのスクリプトファイルに分かれている。
この組み合わせについて、確認してみたところバージョン3で、表示用のスクリプトを使ってみようとしたが、JavaScript のエラーがでたので、共にバージョン 2 の物を使用する事とした。

あと、表示系がなぜバージョン3には無いかは、以下のスライドの 79 ページにある
マップレスとかいう単語が関係しているかもしれない。
http://sssslide.com/www.slideshare.net/sa2da/html523geohex

とりあえず、バージョン 2 の物を使えば表示はされるので、とりあえずの確認はバージョン 2 を使ってやってみたいと思う。

今回確認した GeoHex のオブジェクトとメソッドは、以下の通り


オブジェクト

GeoHex オブジェクト

GeoHexを扱うためのオブジェクト
バージョン2 では GeoHex だが、バージョン 3 では GEOHEX となっている。
ややこしい。

 Zone オブジェクト

GeoHex から取得するオブジェクト。
六角形を操作(表示・非表示)の際に使用する。

メンバーとして
x    : ヘックス座標 x 値
y    : ヘックス座標 y 値
code: ヘックスコード
lat   : 中心緯度
lon   : 中心経度

メソッド
var zone = GeoHex.getZoneByLocation(lat, lon, level);

緯度経度から Hex(Zone) オブジェクトを取得する。
lat = 緯度、lon = 軽度, level = 表示のサイズ。
緯度経度に合った Hex オブジェクトが返ってくる。

level については、0 が最大幅の大きさで、 24 が最小(26 としたら表示されたが・・・)
デフォルトは 17 とどこかで読んだ。
また、1レベルで、どのくらいの範囲かについては、最小の図形の対角となるポイントを取得(getHexCoords() メソッドで取得)して、緯度経度距離計算サイトで確認したところ、対角線は 1.324 m  となった。
もう 1 レベル上げると、値はちょうど 2 倍になったので、レベルが 1 レベル上がるごとに、大体 2 乗すれば対角線上の値がわかる。


zone.drawHex(map [, linecolor, filcolor, popinfo])
取得した zone オブジェクトで線を引く。

引数の linecolor/filcolor については、ヘックスの線の色と、塗りつぶしの色を指定できる。
popinfo については、今のところ意味が分からない。



昨日と同じ内容な気はするが、 他のメソッド等は後日書こうと思う。

GeoHex を使ってみた

今回は位置情報の話題。
地図の API をさわる事があったので、地図というか位置情報を活用できないか探っているけど、頭が固い性か良いアイデアが出てこない。

出てきたとしても FourSquare と似たような事ぐらいしか思いつかない。

何かやってる内に良いアイデアが出るかも知れないと思ったので、位置情報を使って出来る事をやってみようとした。

そこで、まずは 2 点間の距離が測りたいと思った。

具体的には、JavaScript を使用して、ヒュベニの公式という物を使えば、そこそこ精度があって測定できるらしい。
これより良い物をと思うと、やはり Google Maps API にあるメソッドを使う様になるとの事。
 ということで、ヒュベニの公式を使ってみたが、今ひとつ合っているのか分からない。
ひとまず、似たような結果が出たので良しとした。

長かったけど、ここからが本題。
位置情報のネタを探しているときに、GeoHex というもの記事を簡単に見ていた。
あまり関連性が無いかも知れないと思ったのだが、頭の片隅に有ったのを思い出した。
この機会に使ってみようと安易な考えで調べてみた。


geogames.net(公式?)
http://geogames.net/geohex/v3

自分の理解度が足りたいためか、上記ページの説明を見ても全くピンとこない。
説明を見る限り、地図の座標を六角角形で区切って使う物らしい。
これにより、線形路のデータ量や、従来の場所表示のようなピンポイントな表現から範囲での表現という事でプライバシーを保護出来るなど、その他いろいろな利点が産まれるらしい。
ただ、これを使えば完璧というわけでも無い事が下に出てくるスライドに書かれてあった。

早速使ってみようと思い、手軽に使える JavaScript での実装を見てみたが・・・
なぜか上記ページから移動できる GitHub には、JavaScript がない。
まずは、この点が悩んだ。
別のページでは JavaScript を使っていた気がしたんで、諦めず調査をした。

次に見つけたのが、以下のページ
https://sites.google.com/site/geohexdocs/

見る限り、JavaScript の呼び出し元があったので、使って見る事にした。

が、使い方が全く分からない。
API のリファレンスが有るかと探したが無かった。。。

詰んだ。詰んだよ。
と思ったが、再度諦めずに調査。

次に見つけたのが以下のページ
http://sssslide.com/www.slideshare.net/sa2da/geohex1

素晴らしいの一言といえるスライド。
これ見れば、ここまで書いた事が意味無いじゃないかという位完璧なスライド。
ただ、これは最初に見たバージョンとは違うようだ。
同じように書いても、JavaScript コンソールで怒られるのだ。

怒っている内容は、
「六角形を描画するメソッド drawHex が分からない」
それは、私も分からない。。。

ということで、結局読み出し指定してある、URL から JavaScript のソースを見た。
すると、最新バージョンには、このメソッドが存在していない。。。
詰んだ。詰んだよ。
と思ったが、再々度諦めずに調査。

drawHex で検索すると、一つ前のサンプルを使っている方が居られたので、ここは最新版を後回しにして、確認を取ってみようと参考にさせていただいた。

が、まだ怒る。
相変わらず drawHex で怒られる。
よくよく見ると引数の map がおかしいと言っている様な気がした。
そこで、Google Map と GeoHex との呼び出し順番を変えたところ問題なく表示されるようになった。

今回確認したコードは以下の通り




    
        
        geo hex test
        
        

        
        
        

        
    
    
        

http://sssslide.com/www.slideshare.net/sa2da/geohex1

GeoHex by sa2da is licensed under a Creative Commons 表示-継承 2.1 日本 License.
ひとまず今日はここまで。

2013年7月23日火曜日

Markdown での改行

Markdown 使ってますか?
懲りずに Markdown についてです。

ここ最近使うツールが、Markdown 対応になっているので、記法がまとまり非常に嬉しかったりします。

 今回は、改行について。

現在のメインデータ保存先の TrunkNotes では、改行する場合は特に気にすることなく改行をすれば、反映されていたのですが、Bitbucket の Wiki の Markdown では、改行されずに表示され ??? 状態になりました。
そこで、HTML のタグを解釈するだろうと思い、<br /> を入れてみたけど変わらず。
やはりちゃんと調べないとダメと言う事で、調べてみました。

つまり、
When you do want to insert a <br /> break tag using Markdown, you end a line with two or more spaces, then type return.

行の終わりに 2 つ以上の空白を入れろ

と言う事です。
ここら辺のルールの決め方がツールによりまちまちなのは、統一してくれたら良いのになと思います(改行は改行が良いんですけど。。。)。

「『HTML5とか、Androidとか、WEBやら、なんやらかんやら』 日本Androidの会 四国支部 四周年イベント」に行ってきた

タイトル通りにはなりますが、
 「『HTML5とか、Androidとか、WEBやら、なんやらかんやら』 日本Androidの会 四国支部 四周年イベント」
へ行ってきました。

参加者は 50 名弱の方々が集まっていました。

内容としては、今後のWebを使った活動についてや、活用方法事例、Android Studio について等々。

印象深い内容としては

「Packaged Web Apps」

ブラウザを VM 代わりにすることによって、「Write once, run anywhere」が実現できるようになるだろうと言うこと。
また、PC よりも、スマートフォンを使用する事が多くなってきていると言う事は、市場はスマートフォンだよ、そしてスマートフォンの 7 割が Android だよと。
この 7 割の Android の Chrome で、Chrome Web Store が使えないけど、使えるようになってきたら凄い市場だぞ!!って事らしいです。

作る側としては、いろんなアプローチで作ったアプリが、全ての端末で動くのは良いのですが、アプローチの手段(言語とかフレームワーク)をもう少し整えてくれる方が嬉しいと思おうのは、おかしいでしょうか?

「Android Studio」

内容を聞く限りまだまだメインで使える完成度ではない印象。
ただ、この手のツール(業界自体か)は、バージョンアップが早いため、もう少し待てばデファクトになるのかなと思った。やはり専用のツールの方が良いよね。

「気を抜くと置いて行かれる」

毎度の事ながら、発表をされる方々を見ると自分の勉強不足に気がつきます。
何度も書きますが、IT 業界のスピードの速さに圧倒されています。

ポイントとしては、全部を満遍なく覚えるのではなく(たぶん無理)、自分の興味が有る物について特化して学習をしていく様にした方が良いかもしれないと思っています。

沢山の言語や技術があるので、きっと自分に当てはまる物が有るはずなので、そこを極めるのが良いかもですね。
特に、年取ると時間的な制限も有る事から(体力面とも言う)、なかなか一つに絞る事が出来ず突っ走る事に抵抗があります。
割に制限の無い生活に切り替わっているのに、何でだろうなぁ。。。


最後になりますが、総合的に、充実した内容でした。
準備・発表いただいた方々ありがとうございました。

また次回あれば参加しようと思います。

あと、愛媛でのイベント情報のカレンダーを作成されたとの事でした。
割に見落としがちになる事が多いので、このようなカレンダーは非常にありがたいです。


四国方面 IT勉強会と非 IT系の合わせ技カレンダー(仮称
https://sites.google.com/site/itandothershikoku/home

2013年7月21日日曜日

Trunk Notes バージョンアップ

今個人的に熱い TrunkNotes のアップデートが来ました。
上の画像が前バージョンのアイコン

今回のアイコンはこちら

正直あまり好みではないですね(若干かっこ悪い気がする)。

と、アイコンのデザインが変わっただけでは無いようで(当然か)、今回アップデートされた内容は以下の通り、

・ デザインを一新
・ iPhone5 をサポート
・ 動作の高速化
となっています(iTunes の説明文より)。

デザインが変わり、白っぽくなった事により中身より、上下の主張が強く浮いた感じがして中身が見づらくなった印象があります。
また、ボタン等の配置も微妙に変わっているので、慣れるまでは違和感ありありです。
とか良いながら、同じ業界にいて思うのですが、バージョンアップを無料でやるって言うだけでも凄いので、意見なんか言える立場じゃ無いんですけどね。

2013年7月20日土曜日

AngularJS での IME 操作

AngularJS での IME 操作をする必要が出てきそうだったので実験をしてみた。
動きはする物のあまり動作が理解が出来ていない。
また、ブラウザによっては動作しないため意味の無いコードなのかも知れない。
<!DOCTYPE html>
<html>
   <head>
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <title> IME Control Test</title>
      <script type='text/javascript' src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
      <script type='text/javascript'>
         function focusCtrl($scope) {
         }

         angular.module('app', [])
         .directive('ngFocusImeOn', ['$parse', function($parse) {
               return function(scope, element, attr) {
                  element.css({"ime-mode" : "active"});
               };
         }])
         .directive('ngFocusImeOff', ['$parse', function($parse) {
               return function(scope, element, attr) {
                  element.css({"ime-mode" : "inactive"});
               };
         }]);
      </script>
   </head>
<body>
   <div ng-app="app">
      <div ng-controller="focusCtrl">
         IME ON <input ng-focus-ime-on />
         IME OFF <input ng-focus-ime-off />
      </div>
   </div>
</body>
</html>

オンライン JavaScript 動作環境

オンラインで、JavaScript の動作を確認できるサイトがあるのを今更ながら知ったので、ここにまとめる。

CODEPEN http://codepen.io/

jsdo.it http://jsdo.it/

JSFIDDLE http://jsfiddle.net/

Plunker http://plnkr.co/

以上が今のところ把握しているサイト。
動くコードを見せる場合には、非常に良い。
ただ、確認の際はローカルで実行した方がデバッガも利用できるため楽かも知れない。

2013年7月18日木曜日

Ruby on Rails 3 ポケットリファレンス

プログラミングは、多種多様で使うシステムによって言語が変わる。
 今回は、Ruby on Rails 3 を使う。
入門サイトなどを見て事前知識は得ているが、まだまだ自由に作れるようにはなっていない。

大体は公式のリファレンスや、Blog を見させて頂いて作っていくのだが、やぱり書籍は必要な場面が多い(まだまだ紙媒体は必要だ)。

そこで、今回購入した書籍は、技術評論社 山田祥寛著
「Ruby on Rails ポケットリファレンス」 ¥2,780

 

辞典として使える物が欲しかったと言うのもあるし、大型の本はかさばるため、ポケットリファレンスのサイズはちょうど良い。

全部は見てないが、問題解決の足がかりになりそうな部分もあったので、使っていきたいと思う。

しかしこの世界は、流れが早い。
この本も今の内に使い切るぐらいにしていないと、2年位立つと、あまり役に立たなくなってしまう。

彼のジョブズ氏も言っていたが、コンピュータの業界は地層を造っているとは本当で、全くを持って儚い。
だから情報については本を見たり、教え有ったりして、この生ものを使い切るようにしないと行けないと思う。