Tomoumi Nishimura のアーカイブ

IPアドレスのフォーマットチェック

2017年4月26日

入力されたデータがIPアドレスの形式をしているかチェックするには、``org.apache.commons.validator.routines.InetAddressValidator``が利用できます。 ``` String v4 = "127.0.0.1"; String v6 = "0:0:0:0:0:0:0:1"; InetAddressValidator validator = InetAddressValidator.getInstance();
続きを読む

javascriptのジェネレータ関数と遅延評価

2017年4月21日

ES6で追加された文法としてジェネレータ関数というものがあります。 ### ジェネレータ関数とは ジェネレータ関数とは、処理を離脱したり復帰したりできる関数であり、大雑把にいえばイテレータ(ジェネレーター)を生成する関数です。 具体的には、``function*``と``yield``を用いて以下のように定義します。 ``` function* gen() { console.log('first'); yield; console
続きを読む

無精してSSH Keyを登録せずにPrivate Repositoryをクローンする

2017年4月12日

SSHを発行して自分の鍵として登録して・・・って面倒ですよね。 そんなときは、Personal Access Tokenが代用になるようです。 ### やり方 1. GitHub > Settings > Personal access tokensを開きます。 2. Generate new access tokenから新しいアクセストークンを取得します。 - このとき、権限としてはリポジトリ操作権限だけを与えれば十分です。 3. HTTPSを利用し
続きを読む

React Nativeの基本事項

2017年3月28日

React Nativeの基本的な事柄です。 ### 基本の基本 プロジェクトを新規作成して起動します ``` react-native init hogehoge cd hogehoge npm install react-native run-ios ``` ### Hello, World React Nativeにおける描画の基本単位はコンポーネントです。 アプリケーションは、最も単純には、Viewコンポーネントを作成して登録
続きを読む

create-react-native-appを触ってみる

2017年3月21日

React Nativeのプロジェクトをサクッと作れるcreate-react-native-appを導入する方法です ## そもそも論 React.jsの雛形を作れるCreate React Appというものがありますが、これに着想を得てReact Native向けプロジェクトの雛形をサクッと作るためのツールとして開発されたのがCreate React Native Appです。 コマンド1つでとりあえずアプリとして起動できるプロジェクトが作れるほか、実機テス
続きを読む

パッチのステージング利用時のキーバインド

2017年3月21日

gitは``git add -p``とか``git stash -p``とかで対話的ステージングが使えるというのも便利ポイントの1つです。 しかし、対話的ステージングを利用しているときのキーバインド、``h``を押せばヘルプ出て来るんですが、イチイチ見るのも辛いですし、記述から動作を想像するのも辛い。 そこで、パット見で覚えられるよう、以下にまとめます。 ### ヘルプメッセージ ``` y - stage this hunk n - do not sta
続きを読む

git diffで空白差分を無視する

2017年3月7日

``git diff``で差分を確認するとき、コードフォーマッタの設定がPCどうしで異なっていたりすると特に空白の処理で違いが出てしまい、わずらわしかったりします。 そういう場合は、``-w``オプションや``-b``オプションなどが有効です。 ``` git diff -w # -> スペースを無視した差分が表示されます ``` ``` git diff -b # -> スペースの個数を無視した差分が表示されます ``` ``-b``オプショ
続きを読む

Google Chromeで特定の入力履歴を削除する

2017年2月21日

メールアドレスを入力し・・・タブを押し・・・[ちくしょう!台無しにしやがった!お前はいつもそうだ](https://twitter.com/molgh/status/726854917214879744)。 といった感じで、ログインIDとパスワードを入力する画面で、タブを押し損なうことでログインID入力欄に「ログインID+パスワード」が入力されてしまうことってありますよね。 そのまま放置しておくと、セキュリティ的に碌でもないので、入力履歴から削除しましょう。
続きを読む

shellで引数を1個ズラす

2017年2月16日

「[Shellスクリプトでn番目以降の引数全てを取得する](http://hacknote.jp/archives/17938/)」で、「Shellスクリプトで、第一番目の引数だけを消費して、残りの引数はその先のプログラムに渡したい」ときに使えると書きましたが、そのものズバリ引数を消費する機能があるんですね。 ``shift``を利用すると、引数(``$@``)の中身が、先頭から一個後ろにズレます。 例えば次のような関数を作るとすると、 ```shell ec
続きを読む

gitのユーザーを切り替えるalias

2017年2月14日

複数人で同一PCを利用して開発を行っている場合、gitのユーザーを切り替える必要が生じる場面が多々あります。 そのような場合に、いちいち ``` git config user.name "hogehoge" git config user.email "hoge@fuga.com" ``` なんてやってられません。[プログラマーは怠惰でなければならない](http://itpro.nikkeibp.co.jp/article/Watcher/200610
続きを読む

不要なブランチを削除する

2017年2月14日

gitの不要なローカルブランチを削除する方法です。 ### 1. 対応するリモートブランチが削除済みの場合 追跡しているリモートブランチが削除されている場合、以下のようにするとそれに対応したローカルブランチが削除されます。 ``` git fetch --prune # または git fetch -p ``` ### 2. masterにマージ済みのブランチの場合 マージ済みブランチは ``` git branch --merged
続きを読む

ブランチ間での特定ファイルの比較

2017年2月7日

ファイルを指定してブランチ間でdiffを取るには、一般的には ``` git diff branch1:file1 branch2:file2 ``` というやり方をします。 file1とfile2が同一ファイルであるときには、より簡単に ``` git diff branch1 branch2 file ``` とすることが可能です。 ### 参考 * [git diffでブランチ間のファイル差分を確認するあれこれ | Ea
続きを読む

Atomのterminal-plusを修復する

2017年2月1日

以前[こちらの記事](http://hacknote.jp/archives/19581/)で紹介したterminal-plusというパッケージ、昨年末あたりからプロンプトが表示されず黒画面の左端にキャレットが点滅するのみ、というような不具合が発生しています。 とりあえず応急措置的に動作するようにするための方法です。 ### 1. terminal-plusのパッケージを変更する terminal-plusの依存するpty.jsについて、最新のものを追いかけるよ
続きを読む

Atomで開きたいファイルをすぐに見つける

2017年1月26日

Javaで開発していると、クラス名は覚えているがフォルダ名が思い出せないということはしばしばあります。 Atomを利用している場合は``⌘ + P``でパレットを出し、ファイル名を入力することで検索ができます。 ファイル名との完全一致だけではなく、キャメルケースで命名している場合には大文字部分だけを拾って検索してくれたりもするので楽です。 ### 参考 * [Atomエディタを使い始めたときに知っていると便利なショートカットキーをまとめた - Qiit
続きを読む

PostgreSQLでデータベースを複製する

2017年1月19日

データベース[src]をデータベース[dest]へと複製します。 ``` createdb -T [src] [dest] ``` ### 参考 * [PostgreSQLのDBを複製する方法 - Qiita](http://qiita.com/tatataiki/items/e6208ab36d35356f1f55)
続きを読む

バージョンの違いを吸収するvimrc

2016年12月1日

適切に環境が設定されていれば、vimrcを共有するだけで設定の共通化が図れるのがvimの便利なところですが、複数PCを使っているとvimのバージョン違いでエラーが出ることがあります。 ex. ``` Error detected while processing /Users/hoge/.vim/vimrc: line 68: E518: Unknown option: breakindent Press ENTER or type command to
続きを読む

HTML要素の省略

2016年11月24日

[以前の記事](http://hacknote.jp/archives/23724/)の検証用のHTMLでもやっていましたが、HTML5では自明な要素が省略できることになっています。 ### 例 以前の記事で用いていたHTMLを再度記述すると以下の通りです。 ``` keydownのテスト // ... (内容省略)... ``` ここで使われている省略ルールを挙げてみると、以下の通りです。 * HTMLタグが省略できる
続きを読む

Mac / Winのブラウザにおけるkeydownの処理の違い

2016年11月17日

MacのChromeとWinのChromeでどうもkeydownの動作が違うようなので、検索してみたところ、以下のような記事に到達しました。 [JavaScriptのキーイベント・キーを押し続けた場合のブラウザ毎のイベント差異 ( しゃいん☆のブログ| 名古屋市 Webシステム開発 サーバ構築 ネットワーク構築 株式会社コネクティボ )](http://shain.blog.conextivo.com/2007/03/javascript.html) 記事が古いの
続きを読む

Ubuntu 14.04でネットワーク再起動

2016年11月10日

Ubuntu 14.04では、ネットワーク再起動が``sudo service network restart``ではできません。 ``` sudo service networking restart stop: Job failed while stopping start: Job is already running: networking ``` そこで、例えばネットワークインターフェース名が``eth0``だった場合、以下のような仕方で再起動す
続きを読む

S3からコンテンツを取得する際に上限を設定する

2016年10月27日

Amazon S3のlistObjectsは、[通常1000件を上限としてオブジェクトを取得します](http://hacknote.jp/archives/1659/)が、``ListObjectsRequest ``を以下のように利用することで、この上限を減らすこともできます。 ``` ObjectListing listFolderObjects = s3.listObjects(new ListObjectsRequest(BACKEAT, ke
続きを読む