kensuke-iizuka のアーカイブ

PHPにおける”->”と”::”の違い

2017年4月20日

PHPでオブジェクト指向プログラミングを行うときに見かける2つの演算子についてどのような違いがあるのか. ## アロー(->)演算子を使う場合 インスタンスプロパティとインスタントメソッドにアクセスする ## スコープ定義(::)演算子を使う場合 静的プロパティと静的メソッドにアクセスするのかです。 例を挙げておきます。 ``` class Human (){ public static $humanNumber; private
続きを読む

Firebaseでユーザー情報を確認する

2017年4月6日

Firebaseでログインしているユーザー情報は以下のように取得することが出来ます。 ``` const user = firebase.auth().currentUser; const name, email, photoUrl; if (user != null) { name = user.displayName; email = user.email; photoUrl = user.photoURL; } ``` ログイ
続きを読む

iOS simulatorの動きが急に遅くなる問題の解決

2017年3月23日

アプリをエミュレータで動かす時に急に動きがもたつき始めてそんなに重たいアプリじゃないはずなのに... というときはエミュレータの設定で全体の動きが遅くなっている可能性があります。 Simulaterのデスクトップ上のツールバーから ## Debug -> Slow Animations にチェックがついているか確認してください。ちなみにこの設定、 "cmd + T" のショートカットが割り当てられているので、エミュレータを立ち上げた時に例えばブラ
続きを読む

React NativeにおけるRealmファイルの場所

2017年3月23日

React NativeでアプリケーションにモバイルのデータベースをもたせるのにRealmが便利です。 導入方法は[公式ページ](https://realm.io/jp/docs/javascript/latest/#getting-started)を見てもらえれば、 React Nativeで開発している人にとってはモジュール追加とほとんど変わりがないので、比較的簡単にインストールしてもらえると 思います。 ただ導入したDBの中身を見たいと思ったら[Re
続きを読む

Transmitの鍵認証時のファイルフォーマットエラーについて

2017年3月15日

MacでFTPクライアントとして非常に便利な"Transmit"ですが、SFTP利用時にsshの秘密鍵が必要となります。 このときに生成したファイルが"not in a supported format"となってしまうことが... これには次のような方法で.pemにすることで対応できます。 ``` openssl rsa -in (秘密鍵のファイル名) -outform pem >(秘密鍵のファイル名).pem ``` これで.pemファイルを生成して、T
続きを読む

dependenciesとdevDependenciesの違い

2017年3月13日

npmでライブラリをインストールした時にpackage.jsonで見かけるdependenciesの記述。 これは他のライブラリとの依存関係を示しています。ここに記述されたライブラリが必要だということです。 実はこのdependeciesにはいくつかの種類があるらしく、dependenciesとdevDependenciesの違いを見ていきたいと思います。 明確な違いはライブラリを開発するかどうかということです。自作ライブラリをnpmに公開したいとき、別のプ
続きを読む

React Nativeをchromeでデバッグする

2017年3月9日

React Nativeで開発している時にWeb開発をしている身としてはJavaScriptだし、Chromeのデベロッパーツール使えないかしら、 と思ったところ使えました。すごい!! ## エミュレーターの場合 エミュレータを起動させて、 ``` cmd + D ``` でリストっぽいのが出るのでこの中から"Debug JS Remotely"を選択するとchromeが立ち上がるので、立ち上がったら ``` cmd + alt + J `
続きを読む

ESLintにおけるrequireの使い方

2017年3月8日

Reactでソースコードを書きながらESLintで構文チェックするという開発スタイルに馴染めていないです。という内容なのですが… 今回はrequireで怒られました。 ## Unexpected require(). (global-require) at... 早速、調べてみると > require関数はモジュールの一番上のスコープで使うことを強制します ESLintのEnforceという単語にただただ力強さを感じます... つまり、外部
続きを読む

ローカルのモジュールをReact Nativeのnode_modulesに追加する

2017年2月28日

npm経由でReact native(以下RN)のモジュールを追加できないというときはそのモジュールの開発者にnpmに登録をお願いする以外にも 一度、ローカルにダウンロードしてからモジュール化するという方法があります。 ### 1.ローカルへのモジュールのダウンロード git cloneでも直接ダウンロードでもいいのでローカルにモジュールをダウンロードする(このときzipは解凍しておくと良い)。 以下でmodule名をnode_moduleとしています。
続きを読む

git resetのリセット

2017年2月28日

あまり頭を使わずに ``` $git reset --hard commitID ``` とかやると例えば、コミットをプッシュするリモートを間違えちゃったからプッシュ先だけ変えなきゃ、 というときにコミットそのものをなくしてしまうという愚かしい行為に及んでしまうことがあります。 こんな愚かな行為もやり直しのチャンスを与えてくれる優しさがGitにはあります。 取り消したコミットまで覚えてくれているのです。 ``` $git reflog
続きを読む

React Nativeで作成したアプリを実機で動かすときの注意点

2017年2月23日

カメラを用いるアプリや実機でReact Nativeで作成したアプリケーションを動かす際に気をつけなければいけない点があります。 実機を用いる時にXcodeを使うと思いますがこのとき実機をPCに繋いで、Runすると以下のようなエラーが出るかもしれません。 ``` Failed to create provisioning profile. The app ID "org.reactjs.native.example.TestApp" cannot be re
続きを読む

Pull Requestを有意義に使う

2017年2月21日

Githubを開発に使っているとPull Requestという項目を何度も目にしますが実際に使うときは、 単に自分の書いたコードや行った作業をチェックしてもらうための通知に使っていましたが、 [この記事](http://www.publickey1.jp/blog/14/githubpull_requestgithub_kaigi_2014.html)を読んで、もっとうまく活用できないかということを考えました。 目的はコードレビューをし合う文化を作り出して、
続きを読む

iOS simulatorのホームボタン

2017年2月14日

シュミレーターを立ち上げたは良いものの、ホームボタンがないのでホーム画面に戻れない。 そんなときはホームボタンの代わりに以下のショートカットキーで代用できます。 ## Cmd + Shift + H Hのみ2回入力するとマルチタスクビュー(開いていたアプリの一覧)も開くことが出来ます。 そもそもホームボタンを付けといてくれればいいのに...
続きを読む

sedコマンドでのテキスト整形

2017年2月9日

IDの一覧を取得する関数の変更前後できちんとIDに整合性があるかを確認する時に 以下のような配列としての結果ではエクセルとかに貼り付けても見づらいのでsedコマンドでターミナルで テキストファイルを整形して比較しやすいようにしようという試みです。 ``` [0] => 67246 [1] => 67249 [2] => 69530 [3] => 69951 [4] => 69948 [5] => 128
続きを読む

DOMContentLoadedとWebの最適化

2017年1月25日

パフォーマンス改善の一環として、DOMContentLoadedを確認することがあります。 このイベントは、DOMの解析を終了意した時点で発火するイベントで、 取得したHTMLの構文解析を行い、タグなどを識別しDOMツリーを構成した時点で発火します。 ここで注意点としてscriptとstylesheetがあるとHTMLのパースを一度やめてしまうことがあることが挙げられます。 例えばscriptは、document.writeでHTMLを上書きしてしまいパースし
続きを読む

PHPで配列の初期化

2017年1月20日

以下の関数を使います。 ``` array_fill(始めの配列のキー, 初期化する要素数, 初期値) ``` 以下のように使います。 ``` $array = array_fill(0, 3, 1); print_r($array) //実行結果 Array ( [0] => 1 [1] => 1 [2] => 1 ) ```
続きを読む

Pythonで面倒くさい計算を楽にする

2017年1月13日

授業で逆行列を求めなければいけないということがあり、別にWebのサービスとかmathematicaとか使えばいいんですけど、 なんとなくめんどくさいなと…ターミナルで簡単に出来ないかなと。 そこでpythonを使いました。pythonは機械学習などで用いられているだけ、数学的処理のライブラリが豊富でほとんど何も知らなくても結構、難しい処理まで出来ます。 そんなpythonですが今回はNumpyという数値計算ライブラリを使いました。おもに行列計算を扱うライブラ
続きを読む

特定の過去のコミットから新たにブランチを作成する。

2017年1月13日

色々やってみたけど、この変更から違うやり方をしていれば、けどやり直したらもっと酷いことになるかもしれないから、今の状態も保存しておきたい という後悔、煩悩は人間、多々あることなので歴史を改ざんしていきましょう。 ``` $ git checkout -b 作成するブランチ名 やり直したいコミットのID ``` これでオッケーです。
続きを読む

Github Desktopでのコンフリクション解決

2017年1月13日

いつもコンフリクションすると、ターミナルでgitコマンド打っていたのですが、Github DesktopのGUI画面で簡単に解決できることを学んだので忘備録に。 自分がコンフリクトを起こすときはたいていマージ絡みなので、まず Github Desktopのメニューバーから"Repository"→"Discard changes to selected files..." を選んでコンフリクトしてしまったファイルを差し戻します。その後にGUI画面のSync(pushに相
続きを読む

PHPでwkhtmltopdfをオンメモリで使う

2016年12月21日

proc_openを用いることで生成されるPDFを標準入出力のパイプ処理によってメモリ上のみで処理する事ができます。 これによって、例えばtmpフォルダに保存しなくて良いので実行速度の向上、ハードディスクの容量を圧迫することの阻止ができます。 以下がそのコードです。 全体の概要としては、 1.PDFにしたいページのURLからHTMLを取得して標準入力に入れる 2.標準出力へそのHTMLを変換したPDFを出す。 3.変換したPDFをブラウザで
続きを読む