React 開発環境構築

モダンUIに親しみたい。ということでReactを触る。
目標の構成はこんな感じ。

インストール

React開発環境をWindowsで構築するため、以下を導入する。

  • Node.js
  • React
  • bootstrap
  • axios

2017/05/14 修正。公式のインストール手順を記載。
Getting Started – React

  1. node.js公式からインストーラをダウンロード
  2. node.jsをインストール
  3. node --version
  4. npm --version
  5. npm install -g create-react-app
  6. create-react-app my-app
  7. cd my-app
  8. npm install axios
  9. npm start

6番目の手順完了に数分かかる。

動作確認

ブラウザより「localhost:3000」に接続する。

フォルダ構成

my-appのフォルダ構成は以下のようになった。

my-app
│  .gitignore
│  package.json
│  README.md  
├─node_modules
│  └─(Node.jsのモジュール群。割愛)
├─public
│      favicon.ico
│      index.html
└─src
        App.css
        App.js
        App.test.js
        index.css
        index.js
        logo.svg

bootstrap

bootstrapはCDN利用。(もちろんファイルをDLして配置してもよい)
Redirecting…

2017/05/14 旧手順削除。

Apache POI

POI3.10でエクセル編集する際に、元ファイルに数式が設定されている場合、
setValueメソッドで値が設定できない問題。

setFormulaメソッドで空文字(””)を設定してやると、数式解析エラーとなる。

setCellTypeメソッドでセルタイプをCELL_TYPE_NUMERICにしてやれば、数式セルに値を設定できた。

Oracle テーブルのエクスポート

Oracleテーブルのエクスポートをするにあたり、SQL Developer経由では出力サイズが大きい+出力に時間がかかる。
そこでOracle DataPumpを利用して、バイナリ(dmpファイル)でエクスポートする。

-- テーブルを指定してエクスポート
expdp username/password directory=dir tables=tablename dumpfile=dump.dmp

-- ファイルを指定してインポート
impdp username/password directory=dir dumpfile=dump.dmp

データベース全体をして、テーブル(データ)のみ出力など、オプションについてはググる

Data Pump Export

MySQL limit offset

とても基本的なことだが、MySQLのSELECT文にて、OFFSETが該当件数以上の値となっている場合、結果が0行となる。
(想定するレコードを取得できない)


以下のようなテーブルに対して、SQLを発行する。

|id|name|
|1|いちろう|
|2|じろう|
|3|さぶろう|
|4|しろう|
|5|ごろう|

OFFSET 0=先頭から検索する。

SELECT * FROM USER LIMIT 5 OFFSET 0;
|id|name|
|1|いちろう|
|2|じろう|
|3|さぶろう|
|4|しろう|
|5|ごろう|

OFFSET 5=6行目から検索する。

SELECT * FROM USER LIMIT 5 OFFSET 5;
Empty set (0.00 sec)

当然、レコードは5件しかないため、6行目からの検索結果は”0件”となる。

また、offsetは2段階の処理となっており、2つ目の切り捨て負荷が無視できない場合がある。

  1. 条件に合致する全レコードを取得
  2. 取得レコードからオフセット文のレコードを捨てる

Githubアカウント情報の削除

1つのマシンから「アカウント(A)のリポジトリ」 -> 「アカウント(B)のリポジトリ」 -> 「アカウント(A)のリポジトリ」と切り替えて使用していたら、pushやpullなどの操作で"Permission Denied"され、まともに機能しなくなった問題の対応。

エラーメッセージを見ると、アカウント(A)で使用したいのにアカウント(B)で接続を試みている。

検索するとgit config でglobal設定をしろとか色々出てきたが、既に設定している+いずれも効果がなかったため、windows git bashが見ているmingw64の設定を削除。

git上からは削除ができなかったため下記のファイルを手動で削除した。

C:\Program Files\Git\mingw64\etc\gitconfig

そのままでは毎回パスワードの入力を求められるため、アカウント設定を行う。

git config credential.helper store
git push
Username for 'https://github.com' : username

ここまで入力するとパスワードを求められるので入力する。
これで以降はパスワードなしで接続できる。

ただし、平文でパスワードが保存されるため、セキュアにしたい場合ツールを使用する必要があるらしい。