Top page  1/35
--
--

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Tag:

10
2017

スリランカの地名の意味「ヌワラ・エリヤ」

CATEGORYスリランカ
今週友人の友人のスリランカ人が日本旅行で案内する事になり、そこで話すネタがなくなったので時間があったので前から気になってたスリランカの地名について聞いてみた。
ヌワラ・エリヤは山間部の有名なイギリス時代の避暑地(行ったことは無い)。
「ヌワラ නුවර」が「都市」なのは知ってたけど「エリヤ එළිය」が英語の「Area」からで都市地区とかなのか、それともシンハラ語の「エリヤイ එළියයි 明るい」由来なのかを聞いてみた。
んで回答。

「ヌワラ・エリヤのエリヤは、シンハラ語のエリヤ。ただ、「エリヤ」には二つの意味がある。一つは、陽が差しているとかの「明るい」。もう一つは「外」(「エリヤタ ヤム එළියට යමු 外に出ましょう」とか)。ヌワラ・エリヤのエリヤは後者。」
「かつ、このヌワラはキャンディの意味。キャンディは「カンダ කන්ද 山」が訛った英語読みで、シンハラ語では「マハー・ヌワラ මහ නුවර 大都市」。このヌワラはキャンディのヌワラ。」
「なので、ヌワラ・エリヤは「キャンディの外側の地域」「Outside of the city」の意味。」

という事でした(実際はもっと雑な会話だったけど整理)。
なので、日本語で言うと…外城とか、外環道とか、どうもそういう地名らしい。
聞いたのは学校の先生なので、たぶん正しかろう。参考になりますm(__)m


んで、何でそんなこと気にしてたのかと言うと…

『地球の歩き方』のヌワラ・エリヤ名前解説抜粋

雨の多い山岳地方の町なのに『地球の歩き方』のこの記述はおかしいなと思ったからでした。
↑は11~12年版なので、最新版では変わってたりするのかな?
変わってたらサーセン(^^;

Tag: スリランカ シンハラ語

06
2017

Angular2でパスワード再入力みたいなバリデーションを作る(改)

CATEGORYJavaScript
Angular2/4の標準のバリデータには、複数のフォームを比較するみたいなものは用意されてないっぽいので、それの作り方。
イケてないバージョンを経て、ng2-validation のソース見て作成。というかもう ng2-validation の equalTo 再実装して解説に近いけど以下解説。

まず最初にサンプルソースの抜粋から。こんな感じ。

equals-validator.directive.ts
import { Directive, Input, forwardRef, Attribute } from '@angular/core';
import { Validator, AbstractControl, FormControl, NG_VALIDATORS } from '@angular/forms';

@Directive({
selector: '[validateEquals][formControlName],[validateEquals][formControl],[validateEquals][ngModel]',
providers: [
{ provide: NG_VALIDATORS, useExisting: forwardRef(() => EqualsValidator), multi: true }
]
})
export class EqualsValidator implements Validator {
@Input() validateEquals: FormControl;
private subscribe: boolean = false;

validate(c: AbstractControl): { [key: string]: any } {
if (!this.subscribe) {
this.subscribe = true;
this.validateEquals.valueChanges.subscribe(() => {
c.updateValueAndValidity();
});
}

let v = c.value;
if (v != this.validateEquals.value) {
return {
validateEquals: true
}
}
return null;
}
}

Tag: JavaScript TypeScript Angular

06
2017

[旧版]Angular2でパスワード再入力みたいなバリデーションを作る

CATEGORYJavaScript
Angular2/4の標準のバリデータには、複数のフォームを比較するみたいなものは用意されてないっぽいので、それの作り方。
参考にしたのはこちらのページ。でもところどころ改良したので、以下説明。
よりイケてる実装発見したのでそちらをご覧ください。この記事は参考用&自省用に残します。

まず最初にサンプルソースの抜粋から。こんな感じになる。

equals-validator.directive.ts
import { Directive, forwardRef, Attribute } from '@angular/core';
import { Validator, AbstractControl, NG_VALIDATORS } from '@angular/forms';

@Directive({
selector: '[validateEquals][formControlName],[validateEquals][formControl],[validateEquals][ngModel]',
providers: [
{ provide: NG_VALIDATORS, useExisting: forwardRef(() => EqualsValidator), multi: true }
]
})
export class EqualsValidator implements Validator {
constructor(
@Attribute('validateEquals') public validateEquals: string) {
}

validate(c: AbstractControl): { [key: string]: any } {
let v = c.value;
let e = c.root.get(this.validateEquals);

if (e && v != e.value) {
return {
validateEquals: true
}
}
return null;
}
}

Tag: JavaScript TypeScript Angular

11
2017

ハムスター(ながちゃん)動画集1

CATEGORYハムスター
実家では長年猫と一緒で、一人暮らしの今もペットを飼いたいが猫はNG…という事で、1月からついにハムスターをお迎えに。
哀しいことに、一匹目の子(ハム子)はお迎え後すぐに亡くなってしまったのですが(涙、二匹目の子(永ちゃん)は元気に過ごしており、無事2か月目を迎えました(*´▽`*)

んで、ちょくちょく撮った写真やら動画やらをTwitterメインでシェアしていたのですが、動画は解像度が微妙という事に気づきYouTubeに上げ直し。
せっかくなので、ここにもまとめときます('ω')ノ
(といっても、チーズもぐもぐ動画以外は微妙。)


今日撮影。可愛い(*'ω'*)


2月11日撮影。この頃はちょい禿げてた。


2月26日撮影。このハイテンションをぜひお見せしたいが、うまく撮るすべを知らぬ…

以上。今後もいろいろ撮ってきたい(=゚ω゚)ノ

Tag: ハムスター

27
2017

TypeScriptでEventEmitterイベントの型を指定する方法

CATEGORYJavaScript
最近人のソースを見てようやく知ったのだが、JavaScriptでよく見かけるイベント( on('close', ~) とか)は EventEmitter なるものを継承して実装するものだそうで、、、自前でやってたわ(汗

で、早速TypeScriptでも使おうとしたものの、イベント引数の型の指定の方法に難儀したので、その方法を書いておく。

まず大前提として、TypeScriptには「Overload on constants」なる、第1引数の値に応じて第2引数以降の型を定義する機能がある模様。
なので、on というメソッドに対して、close やら error やらのイベントごとに型を切り替えることは特に問題なくできる。

実際、JavaScriptのコードに .d.ts で型を付ける場合は特に何も考える必要はなく、普通にこんな感じに型を宣言してやればよい。
on(event: 'error', cb: (err: Error) => void): this;
on(event: 'close', cb: (code: number, message: string) => void): this;
が困ったのはこれを普通のクラス(class Xxx extends EventEmitter なもの)に書く方法。↑をそのまま持ってきても、親クラスの実装を認識せず、実装がないとコンパイルエラーになってしまう(TypeScript 2.1現在)。

で、どうしたかというと、凄く力技ながら↓のように書いて解決した(実際のコードはこれとか)。
on(event: 'error', cb: (err: Error) => void): this;
on(event: 'close', cb: (code: number, message: string) => void): this;
on(event: string | symbol, listener: Function): this {
return super.on(event, listener);
}
うん凄くイケてない。だが、とりあえず問題は解決した。手間も大したことはない。だが微妙。…これで別に困らないけど、もっと良い解決策があれば教えてくださいm(__)m

Tag: JavaScript TypeScript

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。