AngularJS Eclipse 1.2.0

Posted by muchag | AngularJS,Eclipse,Library & PlugIn & AddIn | 2017-09-03 (日) 11:21:41

AngularJS 用プラグイン。

【環境】
Eclipse:Oxygen (4.7)
AngularJS Eclipse:1.2.0.201606160950
OS:Windows10 Pro 64bit
インストール

マーケットプレイスからインストール。

適用

プロジェクトのコンテキストメニュー
[構成]-[Convert to AngularJS Project…]

Term Plugin の
[モジュール] というダイアログが出るので [適用して閉じる]

設定
検証

プロジェクトのコンテキストメニュー
[プロパティー]

左ペン [検証]-[HTML 構文]
[プロジェクト固有の設定を可能にする] にチェック
[次の検証問題の重大度レベルを選択:]

要素

[不明なタグ名]-[無視]
[無効なタグ名]-[無視]

属性

[未定義の属性名]-[無視]
[未定義の属性値]-[無視]

[適用して閉じる]
[検証設定が変更されました] ダイアログがでるので [はい]

アウトライン

[ウィンドウ]-[ビューの表示]-[その他]
[JavaScript]-[Tern Outline]
で、専用アウトラインビューが開く。

参考サイト

Java Code Geeks:Eclipse IDE AngularJS Tutorial

AngularJS,Eclipse,Library & PlugIn & AddIn | 2017-09-03 (日) 11:21:41 |

クラス -> ES6(ES2015)

Posted by muchag | JavaScript | 2017-08-15 (火) 13:53:49

いよいよわかりやすい class がきた~♪

MDN:クラス

前提

まだ全然わかっていないけど、
本日あちこち読んでみて、理解したと思えることを記述。
理解が深まるに連れて、改変。

書き方も色々とあるみたいだけど
他言語とできるだけ似た形で
私が理解しやすい書式を採用。

書式
  1. class Humane {
  2.  
  3.     // コンストラクタ
  4.     constructor(name) {
  5.    
  6.         // メンバ変数(プロパティ)
  7.         this.name = name
  8.         this.age = 20;
  9.     }
  10.    
  11.     // 一般メソッド(prototype)
  12.     eat() {
  13.     }
  14.    
  15.     // 静的メソッド(static)
  16.     static sleep() {
  17.     }
  18.    
  19.     // getter
  20.     get age() {
  21.    
  22.         return this.age;
  23.     }
  24.    
  25.     // setter
  26.     set age(age) {
  27.    
  28.         this.age = age;
  29.     }
  30. }
メンバ変数(プロパティ)

メンバ変数は、コンストラクタの中へ記述。

メソッド

function キーワードを抜いて記述。

コンストラクタ

クラスがインスタンス化される際に一度だけ実行される。

一般メソッド

インスタンス化しないと利用できない。

静的メソッド

インスタンス化せずに利用する。
インスタンス化すると利用できない! らしい。。。

ユーティリティ系に利用されることが多い。

getter, setter

上記のように記述することで、クラスプロパティのように利用できる。

  1. var hayata = new Human('Hayata');
  2.  
  3. // setter を利用
  4. hayata.age = 42000;
  5.  
  6. // getter を利用
  7. var ultramanAge = hayata.age;
  8.  
  9. console.log(ultramanAge + '歳');
  10.  
  11. // 42000歳
継承
書式
  1. class Taiin extends Humane {
  2.  
  3.     constructor(name) {
  4.    
  5.         // 親クラスのコンストラクタを呼び出し
  6.         super();
  7.     }
  8.    
  9.     eat() {
  10.    
  11.         // 親クラスのメソッドを呼び出し
  12.         super.eat();
  13.     }
  14.    
  15.     change() {
  16.     }
  17. }
親クラス

親(基底、スーパー)クラスの呼び出しキーワードは super。

多重継承

できない。

参考サイト

ウェブの葉:クラス構文について[class][コンストラクタ][ES6](2017-06-03)
HTML5Experts.jp:JavaScriptにもクラスがやってきた!JavaScriptの新しいclass構文をマスターしよう(2015-10-16)

JavaScript | 2017-08-15 (火) 13:53:49 |

結果セット整形

Posted by muchag | Symfony 1.x | 2016-11-19 (土) 12:04:24

DQL における、結果セットの整形。
Data Hydrators

【環境】
Symfony:1.4.13
doctrine:1.2.4
書式

execute, fetchOne, fetchAll などの第2引数に指定する。

  1. $q = Doctrine_Core::getTable('User')
  2.     ->createQuery('u')
  3.     ->leftJoin('u.Email e')
  4.     ->where('u.username = ?', 'jwage');
  5.  
  6. $user = $q->fetchOne(array(), Doctrine_Core::HYDRATE_RECORD);
詳細
HYDRATE_RECORD

レコードをオブジェクトとして取得。
デフォルト値なので、省略すればこれになる。

HYDRATE_ARRAY

連想配列として取得。

HYDRATE_SCALAR

連想配列として取得。
キーが、カラム名_フィールド名 という書式になっている。

HYDRATE_SINGLE_SCALAR

配列として取得。
WHERE 句で指定したカラムの値を、
添え字 0 から始まる配列の要素に格納(しているように見える)。

HYDRATE_ON_DEMAND

公式サイトを読む限り、
「1レコードしか読み込まないのでメモリを節約できるよ」
って書いてある気がするけど
実験したら、時間制限に引っ掛かって戻ってこなかったので
今回はパス。

HYDRATE_RECORD_HIERARCHY

nested ビヘイビアを利用しているときに使える引数っぽい。
オブジェクトとして取得。

HYDRATE_ARRAY_HIERARCHY

nested ビヘイビアを利用しているときに使える引数っぽい。
連想配列として取得。

HYDRATE_NONE

配列として取得。
取得してきたデータを、添え字 0 から始まる配列の要素に格納(しているように見える)。

HYDRATE_ARRAY_SHALLOW

連想配列として取得。
SELECT で指定したカラムだけを取得。

※下2つは、下記参考サイトから拾ってきた。
公式サイトに全種類が載っていないのは不思議・・・

HYDRATE_RECORD_SHALLOW

上記定数を参考に、こんなのもあるかと思ったけどなかったw

参考サイト

stackoverflow:Select One column Doctrine DQL(2013-01-19)

Symfony 1.x | 2016-11-19 (土) 12:04:24 |

Module

Posted by muchag | AngularJS | 2016-04-17 (日) 15:38:50


公式(1.4.10):AngularJS API Docs

【環境】
AngularJS:1.4.3
ng (core module)

コアモジュール。
本体だけで事足りる。
これ以外は、必要ファイルを読み込む必要がある。

ngRoute
ngAnimate
ngAria
ngResource
ngCookies
ngTouch
ngSanitize
ngMock
AngularJS | 2016-04-17 (日) 15:38:50 |

USB デバッグ(Android 4.2 以降)

Posted by muchag | Android | 2016-04-11 (月) 20:48:19

久しぶりに、Android で USB デバッグを行おうとしたら、
なんと! 「USB デバッグ」という項目がない!!

有効にする方法

Android 4.2 以降では、USB デバッグを始める特別な方法があるらしい。

[設定]-[端末情報](タブレットの場合は、[タブレット情報])
[ビルド番号] を連続7回タップ。(途中からカウントダウンが始まる)
「これでデベロッパーになりました!」と表示されたら
[設定]-[開発者向けオプション] という項目が増えているので
[USB デバッグ] をタップして有効化。

無効にする方法
/data/data/com.android.settings/shared_prefs/development.xml

を削除すればよいとのことだけど、未試行。

参考サイト

AndMem:Android端末を「デバッグモード」(USBデバッグ)に設定する

Android | 2016-04-11 (月) 20:48:19 |

セル -> コピー、切り取り、貼り付け

Posted by muchag | Excel VBA | 2016-03-19 (土) 10:30:45

大昔、VBA を始めた頃に、「マクロ記録」を利用していた名残なのか
コピーのときは、コピーしてペースト、というコードを書いてしまう癖があるな~。
でも、本当は、ただの貼り付けなら1行なのよね。

なので、今更ながら、まとめてみる。

【環境】
Excel: 2010
書式
  1. ' Range.Copy メソッド
  2. .Copy(Destination)
  3.  
  4. ' Range.Cut メソッド
  5. .Cut(Destination)
  1. Destination
    1. オプション
    2. バリアント型 (Variant)
    3. コピー先のセル範囲。この引数を省略すると、クリップボードにコピーされます。
  2. 戻り値
    1. バリアント型 (Variant)
  1. Worksheets("Sheet1").Range("A1:D4").Copy _
  2.     destination:=Worksheets("Sheet2").Range("E5")
貼り付け
Paste

クリップボードの内容をオブジェクトに転送します。

  1. object.Paste
  1. Worksheets("Sheet2").Range("E5").Paste
PasteSpecial

Range をクリップボードから指定範囲に貼り付けます。

  1. .PasteSpecial(Paste, Operation, SkipBlanks, Transpose)
  1. Paste
    1. オプション
    2. XlPasteType
    3. 範囲の中で貼り付ける部分を指定します。
  2. Operation
    1. オプション
    2. XlPasteSpecialOperation
    3. 貼り付けの操作を指定します。
  3. SkipBlanks
    1. オプション
    2. バリアント型 (Variant)
    3. クリップボードに含まれる空白のセルを貼り付けの対象にしないようにするには、True を指定します。既定値は False です。
  4. Transpose
    1. オプション
    2. バリアント型 (Variant)
    3. 貼り付けのときにデータの行と列を入れ替えるには、True を指定します。既定値は False です。
XlPasteType
名前 説明
xlPasteAll -4104 すべてを貼り付けます。
xlPasteAllExceptBorders 7 輪郭以外のすべてを貼り付けます。
xlPasteAllMergingConditionalFormats 14 すべてを貼り付け、条件付き書式をマージします。
xlPasteAllUsingSourceTheme 13 ソースのテーマを使用してすべてを貼り付けます。
xlPasteColumnWidths 8 コピーした列の幅を貼り付けます。
xlPasteComments -4144 コメントを貼り付けます。
xlPasteFormats -4122 コピーしたソースの形式を貼り付けます。
xlPasteFormulas -4123 数式を貼り付けます。
xlPasteFormulasAndNumberFormats 11 数式と数値の書式を貼り付けます。
xlPasteValidation 6 入力規則を貼り付けます。
xlPasteValues -4163 値を貼り付けます。
xlPasteValuesAndNumberFormats 12 値と数値の書式を貼り付けます。
XlPasteSpecialOperation
名前 説明
xlPasteSpecialOperationAdd 2 コピーしたデータは、対象セルの値に追加されます。
xlPasteSpecialOperationDivide 5 コピーしたデータは、対象セルの値によって分割されます。
xlPasteSpecialOperationMultiply 4 コピーしたデータには、対象セルの値が掛けられます。
xlPasteSpecialOperationNone -4142 貼り付け操作で計算は行われません。
  1. With Worksheets("Sheet1")
  2.     .Range("C1:C5").Copy
  3.     .Range("D1:D5").PasteSpecial _
  4.         Operation:=xlPasteSpecialOperationAdd
  5. End With
Excel VBA | 2016-03-19 (土) 10:30:45 |

jQuery Easing Plugin

Posted by muchag | jQuery,Library & PlugIn & AddIn | 2016-03-05 (土) 10:49:20


jQuery Easing Plugin (version 1.3)
最終更新日:2013-01-31

【環境】
jQuery: 1.11.3
jquery.easing.: 1.3
概要

アニメーション動作パターン集。

jQuery が持つアニメーション動作パターンを拡張してくれる。

DL

jQuery Easing Plugin (version 1.3) の Download より
jquery.easing.1.3.js のリンクをクリック。

一覧

Easing Function 早見表

jQuery,Library & PlugIn & AddIn | 2016-03-05 (土) 10:49:20 |

Posted by muchag | Excel VBA | 2016-03-05 (土) 8:56:11

【環境】
Excel:2013
指定
16進数

Web では、RGB の順序で指定するけど
VBA では、BGR の順序なので注意。

  1. ' 赤
  2. ' Web であれば、"#FF0000"
  3. TextBox.BackColor = "&H0000FF"
Excel VBA | 2016-03-05 (土) 8:56:11 |

ヒアドキュメント

Posted by muchag | PHP | 2016-01-16 (土) 10:53:42

なが~い文字列を扱うための構文。

PHP Manual:文字列 ヒアドキュメント

【環境】
PHP:5.4.7
注意

WordPress なのか iG:Syntax Hiliter なのか
<<< という記述をすると、表示が乱れるので <<< と表記してある。 でも、最後のコード表記は大丈夫なのよね~・・・。

書式
  1. &lt;&lt;&lt;EOD
  2. hogehoge
  3. EOD
  4. ;
  5.  
  6. // PHP 5.3.0 以降、開始 ID をダブルクォーテーションで囲めるように。
  7. // Nowdoc との違いを明示するのが目的?
  8. &lt;&lt;&lt;"EOM"
  9. hogehoge
  10. EOM
  11. ;
ID

ヒアドキュメントを識別するためのもの。
上記例では、EOD が該当する。

ルール
  • 英数字およびアンダースコアのみ
  • 数字でない文字またはアンダースコアで始まる必要がある
  • 終端 ID がある行には、セミコロン (;) 以外の他の文字が含まれていてはならない
  • ID はインデントしてはならない
  • セミコロンの前に空白やタブを付けてはいけない
  • 終端 ID の前の最初の文字は、使用するオペレーティングシステムで定義された 改行である必要がある
  • 最後の区切り文字の後にもまた、改行を入れる必要がある
;(セミコロン)
  1. $foo = &lt;&lt;&lt;EOD
  2. hogehoge
  3. EOD;

よく上記のようなスクリプトを見かけるけど
最後の ;(セミコロン)は、あくまでも $foo = に対するものであって
ヒアドキュメントとは関係ない。

つまり、下記のように記述すればイメージしやすい。

  1. $foo = &lt;&lt;&lt;EOD
  2. hogehoge
  3. EOD
  4. ;
文字列部

変数は、そのまま記述すればパースされる。

  1. echo &lt;&lt;&lt;EOT
  2. My name is "$name". I am printing some $foo->foo.
  3. Now, I am printing some {$foo->bar[1]}.
  4. This should print a capital 'A': \x41
  5. EOT;
  6.  
  7. // 出力結果
  8. My name is "MyName". I am printing some Foo.
  9. Now, I am printing some Bar2.
  10. This should print a capital 'A': A

PHP Manual:文字列 変数のパース
これを読んでも、「簡単」と「複雑」の定義がはっきりしないので
全て {}(波括弧、中括弧)を付けるほうが安全かも?

定数や関数

定数や関数は $(ドル)から始まらないので、処理不能・・・?

最初に Google 先生に質問したら、
「定数や関数は使えない」という回答ばっかり引っかかってきたけど
2回目の質問では、アッサリと解決策が。
Blog:PHPのヒアドキュメント内で定数や関数を動かす
Web、ときどきDTP。(うぇヴ(web)屋のネタ帳。):PHPのヒアドキュメント内で関数を使う。計算もしたい。

クラス

クラスを用意して、そのメンバ変数やメソッドとして利用する。

可変変数

定数は、そのまま変数にしてしまえばよい。
関数は、可変変数を用いて処理。

利用

直接出力しても

  1. echo &lt;&lt;&lt;EOD
  2. hogehoge
  3. EOD;

変数に代入してもよい。

  1. $foo = &lt;&lt;&lt;EOD
  2. hogehoge
  3. EOD;
Nowdoc

PHP 5.3.0 以降の機能。

ヒアドキュメントはダブルクォーテーションで括られた文字列として扱われるのに対して
Nowdoc は、シングルクォーテーションで括られた文字列として扱われる。

中身について、パース処理を行わないので、エスケープをする必要がなくなる。
SGML の

書式

開始 ID を、シングルクォーテーションで括る。

  1. &lt;&lt;&lt;'EOD'
  2. hogehoge
  3. EOD
  1. echo <<<'EOT'
  2. My name is "$name". I am printing some $foo->foo.
  3. Now, I am printing some {$foo->bar[1]}.
  4. This should not print a capital 'A': \x41
  5. EOT;
  6.  
  7. // 出力結果
  8. My name is "$name". I am printing some $foo->foo.
  9. Now, I am printing some {$foo->bar[1]}.
  10. This should not print a capital 'A': \x41
参考サイト

すたら日記:PHP ヒアドキュメントの使い方:2通り

PHP | 2016-01-16 (土) 10:53:42 |

array_column

Posted by muchag | PHP | 2016-01-13 (水) 21:51:59

array_column は、連想配列群の中から、単一カラムを取り出して配列で返してくれる。

【環境】
PHP: 5.4.7
内容

レコードセットのように、同型の連想配列が連番で格納されているような配列において
各レコードから特定のカラムの値だけを抽出する。

書式

array array_column ( array $input , mixed $column_key [, mixed $index_key = null ] )

php:array_column

第1引数:元配列
第2引数:抽出したいカラム名
第3引数:抽出後キーにしたいカラム名。省略可

  1. $users = Array(
  2.     0 => Array(
  3.         'id' => 'user001',
  4.         'name' => 'tanaka',
  5.     },
  6.     1 => Array(
  7.         'id' => 'user002',
  8.         'name' => 'suzuki',
  9.     },
  10.     2 => Array(
  11.         'id' => 'user003',
  12.         'name' => 'yamada',
  13.     },
  14. );
  15.  
  16. $names = array_column($users, 'name');
  17. print_r($names);
  18.  
  19. // 出力結果
  20. Array(
  21.     0 => 'tanaka',
  22.     1 => 'suzuki',
  23.     2 => 'yamada',
  24. );
  25.  
  26. $names = array_column($users, 'name', 'id');
  27. print_r($names);
  28.  
  29. // 出力結果
  30. Array(
  31.     'user001' => 'tanaka',
  32.     'user002' => 'suzuki',
  33.     'user003' => 'yamada',
  34. );
あれ?

PHP 5.5 から新しく加わった関数。

残念!
私は 5.4.7 だった><

代替

がっかりポンだ~と思っていたら
代替というか、GitHub:array_column/src/array_column.php で関数が提供されていた。
ありがとうございます!

ファイルに保存して、インクルードパスへ配置して
require して、見事動作しました♪

PHP | 2016-01-13 (水) 21:51:59 |
次ページへ »