Javascript:setTimeoutの中のfunctionのthis(part2)

前回の記事では、setTimeoutの中のthisについての対策を書いたが、アロー関数を使えない場合もあるのでそれも書いておく。 方法1:thisをコピーしておく var mountains = { names: ['fuji', 'tsurugi', 'ontake'], print: function() { var _this = this; se…

Javascript:setTimeoutの中のfunctionのthis

(まだ理解が浅いので間違っているかもしれない) setTimeoutで実行するfunctionは別コンテキストで実行されるゆえに、(ブラウザで実行した場合は)thisがWindowになる: const mountains = { names: ['fuji', 'tsurugi', 'ontake'], print: function() { s…

Javascript: var有りと無しの違い

varなんて最近つかわないなぁ、勉強せんでいいだろうと思っていたのだけど… わかっているようでわかってなかった。 いろいろと基礎から勉強しなければな。 変数の宣言時に、varを使うか使わないかで結構違う: 違い1 - スコープ var myVar = "foo"; function…

国民年金基金のメリット・デメリット

間違っているところがありましたら教えて下さい! メリット 確定給付のプランがある 支払った掛け金を全額、所得控除できる デメリット インフレに弱い リターンが悪い 解約のハードルが高い 確定拠出年金に拠出できる金額が減る

Wordpress: xmlrpc.phpへのアクセスをJetPackにのみ許可する

Apache 2.4の場合、.htaccessにこれを設定します: <Files xmlrpc.php> Require all denied Require ip 122.248.245.244/32 Require ip 54.217.201.243/32 Require ip 54.232.116.4/32 Require ip 192.0.80.0/20 Require ip 192.0.96.0/20 Require ip 192.0.112.0/20 Require i</files>…

CakePHP2:自作のライブラリをロードしたい

自作のphp.fooをVendorディレクトリに設置するとします。 コントローラにおいて: App::import('Vendor', 'foo'); とすると読み込めます。

CakePHP2:content-typeをtext/plainに変更する

ここに書いてあるとおりです(めっちゃ助かりました、ありがとうございます!) mitsuruya.hatenablog.com $message = "foobar"; $this->autoRender = false; return new CakeResponse([ 'type' => 'text/plain', 'body' => $message ]);

CakePHP2:debugの出力が空っぽ問題

結論からいうと「データのエンコーディングが間違っている可能性が高い」 debug("foo"); だとちゃんと出力されるけど、 debug($myArray); だと何も出ない(エラーも出ない)ケースに遭遇。探ってみたら$myArrayにEUC-JPのデータが入っていた。mb_convert_enc…

AWS:t2.microをc5にスケールアップできない…

EC2の良いところの一つに、スケールアップがめちゃくちゃ楽、という点がある。 インスタンスを停止してから、インスタンスタイプを変更。最後にインスタンスを起動するだけ… さて、諸事情によりt2.microをc5.xlargeにスケールアップすることになったのだが… …

SSH:sudo後もエージェントフォーワードを引き継ぎたい

visudoして、以下を書く: Defaults env_keep += "SSH_AUTH_SOCK"

Git/Svn:特定のファイルをリモートからpullする

SVNの場合 svn update ファイル名 Gitの場合 git fetch --all git checkout origin/master -- ファイル名 git add ファイル名 git commit -m "リモートから取得"

CakePH3:bake時にデータソースを指定する

./cake bake -c データソース名

React Native + Expo:ネットワークへの接続・切断を検出する

検出にはNetinfoを用います。まず、 expo install @react-native-community/netinfo でインストールしてください。 import * as React from 'react'; import NetInfo from '@react-native-community/netinfo'; import { StyleSheet, Text, View, Alert } fro…

React Native + Expo:AppLoadingで数秒待つ

当初、こんな書き方をしていました: render() { if (!this.state.isReady) { return ( <AppLoading startAsync={this._dummyPromise} onFinish={ () => this.setState( { isReady: true }) } onError={console.warn} /> ) } <中略> async _dummyPromise() { let delay = new Promise( (resolve, reject) => { let wait </apploading>…

AWS:EC2のボリュームを拡張する

aws

CentOS7で稼働しているマシンのルートFSの容量が足りなくなったので、拡張してみました。 コンソールにログインし、インスタンス一覧から拡張したいインスタンスを選びます。 Descriptionにボリュームが表示されているのでクリックします: EBS-IDをクリック…

IE11:ajaxで構文エラー

以下のコードが構文エラーを吐いて悩んでいました: $.ajax({ type: 'POST', url: '/get-products', dataType:'json', cache: false, }) .then( function (data) { // なんらかの処理 }, function () { // なんらかの処理 }, // ここのカンマを削除する必要…

AWS:【和訳】本日の東京リージョンの大規模障害の原因

aws

EC2に関しては「ほとんど」のインスタンスとボリュームが復旧したようですね。 以下が掲載されていました: [04:18 AM PDT] Beginning at 8:36 PM PDT a small percentage of EC2 servers in a single Availability Zone in the AP-NORTHEAST-1 Region shutd…

Thunderbird:キーバインドをvim風に変更する

新しいMacが届き、Thunderbirdをインストールしました。素の状態だとfキーとbキーでメッセージを行き来します。 これをgmailのようにjとkで移動したいので、アドオンをインストールしました。 Thunderbirdの「ツール」から「アドオン」を選ぶ 「すべてのアド…

Diff:行末の^Mを隠す

diff --strip-trailing-cr

svn:ワーキングコピーの特定のファイルを特定のリビジョンに戻す

svn

まず、どのリビジョンで変更になったかを確認: svn log ファイル名 ここで、svn logが全ての更新を表示してくれない場合は、リポジトリ全体を/tmpとかにcoすると出ます(他に方法があるとは思うけど・・・) 次に、ファイルをもとに戻します: svn update -…

Git:削除してしまったファイルを復活させる

git

まず、どのコミットで消してしまったかを探します: git rev-list -n 1 HEAD -- deleted_image.png すると長いコミットのハッシュが出力されます。 そのコミットで削除してしまったので、その1つ前の状態から取得します: git checkout コミットハッシュ^ --…

bash:空白を含むファイル名

次のように、全てのファイルに対してなにかの処理を行いたいとします: for i in `find . -type f` do ls ${i} done この場合、hello world.txtといったようにファイル名に空白が入っているとうまく動きません。 デフォルトのIFS(区切り文字)が空白を含む…

vim:viminfoが生成されない

CentOS7で.viminfoが書き出されない、変だなーと思ったら、デフォルトのvimには入ってないのでした。 yum -y install vim-enhanced と実行して.viminfoが有効になっているvimをインストールし vi .bash_profile として alias vi='vim' と設定。最後に source…

CakePHP3:既存のソースにローカリゼーションを導入する

諸々の事情で、既存のソースを多言語対応することになりました。 いろんな箇所に echo "こんにちは" といった具合に辞書を参照しない形でテキストが埋め込まれています。 これを echo __('こんにちは'); に変更したいのだけど、手で書いていたら日が暮れてし…

CakePHP3:Swagger-codegenでコードを生成し、CakePHP3に組み込む

Macにswagger-codegenをインストールする 注意:brew install swagger-codegenだと、3系のswagger-codegenがインストールされますが、 そいつが生成するPHPコードは壊れてます。よって、2系をお使いください。 brew cask install homebrew/cask-versions/jav…

CakePHP3:マイグレーションファイルの名前を変更する

cake bake migration_diffでマイグレーションファイルを作ってから「名前変えたい」ということってありませんか? 僕は次の方法で変えました: マイグレーションを適用前の状態にする cake migrations rollback マイグレーションファイルをリネームする cd c…

Git:git pull dry run的なことを行いたい

git

git pullする前に、どのような変更がマージされるか確認したい、ということはありませんか? 僕は以下のようにしてチェックしています: git fetch origin master git diff HEAD..origin/master そして問題がなければ git merge origin master としています。

Swift:variables currently must have an initial value when entered at the top level of the REPL

Playgroundにおいて、変数を初期化しない場合にこのエラーがでます。 例えば、こんなコードです: let myName: String 初期値を与えればよいのですが、与えないケースも試してみたいですよね。 僕は関数に入れて回避しました: func main() -> Any { let myN…

Swift:配列の宣言、初期化と要素の追加

配列の初期化に苦労といいますが、バリエーションが多くてまいりましたw 宣言のみ 配列の場合、宣言のみはできないっぽい(普通の変数であればできるみたい) 例えば、このようにするとVariable 'myArray' passed by reference before being initializedと…

Mac OS:duコマンド

CentOSで、ディスク容量を食っているフォルダを探す際に du . -h --max-depth=1 とやっています。Macではこうするといけました: du -hd1