Pebble Coding

ソフトウェアエンジニアによるIT技術、数学の備忘録

2015-01-01から1年間の記事一覧

railsでturbolinksを無効にする

Gemfile からturbolinksをコメントアウト # gem 'turbolinks' 2. bundle installし反映する。 3. app/views/layouts/application.html.erbから "data-turbolinks-track" => true の項目2つを削除する。 4. app/assets/javascripts/application.jsから //= r…

JavaScript return文がsyntaxエラー

以下のJavaScriptにはバグがある。 print(1);if( true !== true ){ return; }; print(2); SpiderMonkeyで実行すると、return文がSyntax errorだと言われる。 js> if( true !== true ){ return; }; print( 1 ); typein:11: SyntaxError: return not in functi…

JavaScript Array.some

Array.some

JavaScriptのバージョン年表

厳密にはJavaScriptのバージョンはFireFoxブラウザで実装されたものを指し、ECMAScriptはすべてのブラウザで対応すべき仕様という意味合いのようだ。 JavaScript ( ECMAScript ) のバージョンがどのくらい古いものなのかよく分からないのでまとめる。 JavaSc…

ideavim で自動インデント位置変更を解除する

vim

WebStormにideavim pluginを入れて使ってみているが、タブの値を変更した時の改行後の自動インデント位置がどうもおかしい。例えば、2タブにしても改行したときに4の位置にカーソルが移動する。 原因がよくわからんので、以下の設定をしたら改行後に2の位置…

jqXHR.success(),jqXHR.error(),jqXHR.complete()はjQuery1.8以降非推奨

メモ 非推奨勧告 jQuery1.5から実装されたjqXHR.success(), jqXHR.error(), jqXHR.complete()コールバックメソッドはjQuery1.8以降非推奨となります。 これらが削除される前にあなたのコードでは、jqXHR.done(), jqXHR.fail(), jqXHR.always()を代わりに使用…

jQuery ドキュメントの見方

jQuery公式サイトのjQuery()を見ましょう。 jQuery() | jQuery API Documentation バージョンが少し古いですが、日本語訳がありました。 jQuery() / $() - jQuery API Documentation 日本語訳 jQueryは$と同じですが、引数に何を与えるかによって、動作が決…

DOM、jQueryの動作確認環境(Safari)

DOMとjQueryの動作確認はspidermonkeyではできないので、ここではSafari8(MacOSX 10.10最新)を使います。以下環境構築手順です。 1) jQueryのサイトからをjquery-1.11.2.jsというファイルをダウンロードします。 具体的には「Download the uncompressed, dev…

JavaScript オブジェクトのメソッド名を連想配列を使い文字列を使って呼び出す

var sports = { swim : function( arg1, arg2 ){ print( "swim " + arg1 + " km " + arg2 ); }, walk : function( arg1, arg2 ){ print( "walk " + arg1 + " km " + arg2 ); } }; sports['swim']( 1, "feel good!" ); // swim 1 km feel good! sports['walk'…

JavaScript 繰り返し処理

keys Array.forEach このサイトすごく分かりやすくていい。 オブジェクトをfor in で回した時、要素にはプロパティ名が入る var coffee = { coffee_type: 'cafe late', coffee_price: 350, coffee_sugar: 1, coffee_pour : function() { print("pour"); } };…

Safari拡張 ツールバー項目の意味

Safari拡張を作る上で、ツールバー項目の意味がよく分かっていなかったが、理解できたのでメモしておく。 「ツールバー項目」には複数の項目が設定できるが、例えば3つのツールバー項目を作り、3つとも「デフォルトで取り込む」のチェックをつけた場合、ブ…

JavaScript 関数を引数に取る関数

関数を引数に取る関数の複雑なケースです。 function process(f) { f( function(name, g) { print( name ); g( 100 ); }); } process( function(h) { h( "hoge", function(value){ print( 2 * value ); }); h( "fuga", function(value){ print( 3 * value );…

JavaScript addEventListener(),removeEventListener()

addEventListener(),removeEventListener()というのはWindowオブジェクト、Documentオブジェクト、Elementオブジェクトに存在するメソッド。(他にもある) 引数の数と型は以下の通り。 addEventListener( 'hoge', f, false ); removeEventListener( 'hoge', f…

JavaScript 関数リテラルをその場で呼び出す

無名関数リテラルをその場で呼び出すというJavaScriptイディオムがあります。 性質を見てみます。 (function () { function hoge() { print( "fuga" ); } hoge(); // fuga })(); hoge(); // typein:25: ReferenceError: hoge is not defined 関数内で宣言さ…

JavaScript関数もオブジェクトなのでプロパティを追加できる

JavaScriptの関数はオブジェクトなのでプロパティを追加できます。 名有り関数を定義して呼び出しています。 関数名が自分自身の関数オブジェクトを表します。 1) 関数内部で識別子プロパティを追加するケース function obj() { obj.fuga = 4; print( obj.fu…

JavaScriptでthisに渡されるもの

JavaScriptでのthisはどのようにして呼ばれるかによって、それが指すものが決まる。 1. トップレベルコードで呼び出した場合はthisにはグローバルオブジェクトが渡される。 printf( this ); // [object global]; グローバルオブジェクトはただ一つ存在するも…

JavaScript get演算子/set演算子

get演算子/set演算子 オブジェクトにプロパティを追加する時に使用できる。 見た目がメソッドのように見えるがメソッドではないので注意。 var coffee = { get price() { return 3; }, set milk( val ) { // do something } } print( coffee.price ); // 3 c…

JavaScript動作仕様確認のためのspidermonkeyをMacOSXにインストールする

JavaScriptの動作仕様確認のため、いちいちブラウザを使わなければいけないのは面倒です。 なのでいわゆるJavaScriptREPL環境としてのspidermonkeyをMacOSXにbrewを使っていれました。 $ brew install spidermonkey $ js js> var hoge = "fuga"; js> print( …

JavaScript関数イディオム

JavaScript関数イディオムを分かりやすく解説している教科書が見当たらないので、自分用にメモしておく。 なおputs関数は以下のJavaSciprt REPL環境で動作させた場合を想定した環境独自の関数である。 JavaScript REPL 1.グローバル関数を定義し呼び出す // …

MacOSX 10.9(Mavericks)にnginx+php簡易開発環境を作る最短手順

MacOSXで時間をかけずにphp動作検証環境を作る手順書です。 環境 MacOSX 10.9.5(Mavericks) brewはインストール済 MacOSXログインユーザーはpebble8888でドキュメントルートは/Users/pebble8888/wwwを使う。 php-fpm,nginxは手動で起動する。 $ sw_vers Prod…

JavaScript文法メモ

rubyのハッシュ、Objective-CのNSDictionaryに相当するものはObject型であり var obj = {}; obj['foo'] = 'bar'; var obj = { foo : 'bar', baz: 'piyo', }; のように作る。 ruby,Objcと異なり、Object型はクラスのようなものなので、関数も追加できる。 配…

Apple InAppItemのアップロード

現在InAppItemのファイルをXcode5.1.1でアップロードすることはできず、 ApplicationLoaderでアップロードするしかないようです。 OrganizerでのValidateすらできません。 手順 1) Xcode-Product-archiveする。 2) Orignizerでリストを選択しExportボタンを…

rails メモ

ログ出力 var = "World" logger.debug "Hello #{var}" bundleは bundle installと同じ意味である rails dbconsoleでmysqlにログインすればuse developmentされた状態になる routes確認 rake routes newアクション 新規登録画面を表示する(APIの場合は不要) c…

ruby文法その1

rubyはたまにしかいじらないので、いつもすぐに思い出せないrubyの文法をメモしておく。 複数行コメント =begin, =end 文字列にデータ埋め込み "Hello#{var}" if文 if a > 10 elsif a == 10 else end 真偽値 false:nilとfalse true:上記以外 ||演算子と&&演…