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

Javascript:Firefox/Safariでbeforeunloadが効かない

FirefoxとSafariでは、beforeunloadが呼ばれても何も処理をしてくれないことがありました。 (ポップアップを表示するのはできるんですが…) <html> <body> <script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.18.0/axios.min.js"></script> <a href="https://www.google.com">Google</a> <script> window.addEventListener("beforeunload",function() { axios.get('/…</body></html>

Git:ワーキングコピーへの変更をすべて戻したい

git

まず、ドライランを行います: git clean -nd すると、何を削除するかの一覧が出力されます: Would remove src/Controller/ArticlesController.php Would remove src/Controller/AuthorsController.php Would remove src/Controller/PostsController.php 問…

CakePHP3:containとmatchingとinnerJoinWithの違い

メソッド 関連するデータを取得するか? 関連するデータに対して条件を設定し、元のテーブルを絞り込めるか? contain ○ ☓ matching ○ ○ innerJoinWith ☓ ○ 注意事項:containとmatchingは排他利用ではない

CakePHP3:bakeの落とし穴

とても便利なbakeですが、hasOneのリレーションを設定してくれないという特徴があります。 テーブルの例 例えば、次のようなテーブルがあるとします: usersテーブル user_profilesテーブル bakeした結果 Users hasMany UserProfilesというモデルが生成され…

CakePHP3:アソシエーションされているデータをsaveの前に変更する

リクエストデータを変更する場合 $data = $this->request->getData(); $data['order_data']['name'] = "新しい名前"; $order = $this->Orders->patchEntity($order, $data); エンティティのプロパティを変更する場合 $order->order_data->name = "新しい名前…

CakePHP3:コントローラで発行されたクエリをログする

debugkitを入れていればSQLは確認できますが、リダイレクト等が入っていて確認できない場合があります。 その対策です。 bootstrap.phpの変更 bootstrap.phpにこれを追加します: Log::config('queries', [ 'className' => 'File', 'path' => LOGS, 'file' =…

.sshディレクトリを作る

install -d -m 700 ~/.ssh (umask 077; touch ~/.ssh/authorized_keys) これで正しいパーミッションで作成できます。

Git:ブランチを作ってそこに移動する

git

git checkout -b 新しいブランチ名

Git:ブランチを削除する

git

ローカルの場合 ローカルブランチ一覧を表示 git branch マージ済みのローカルブランチを削除 git branch -d ブランチ名 マージ済みか否かを問わないで、ローカルブランチを削除 git branch -D ブランチ名 リモートの場合 リモートブランチ一覧を表示 git br…

Vue:Invalid Host Header

vue-cliを使ってこちらのチャットプログラムを作ってみたのですが、ローカルホスト外からアクセスするとInvalid Host Headerというエラーがでる。対処方法ですが、ルートディレクトリに以下の内容のvue.config.jsを作ると解消します: module.exports = { de…

Vue.js:フォーカスの当たっている要素のIDを取得する

こんな感じでいけます: created: function() { // ブラウザ以外で実行の場合、documentが無いと怒られるための確認 if(typeof window !== 'undefined') { // フォーカスが変わったらfocusChanged関数を呼ぶ document.addEventListener('focusin', this.focu…