unhurried

コンピュータ関連ネタがほとんど、ときどき趣味も…

航空会社マイレージの提携ポイントへの交換

航空会社のマイレージがある程度貯まっていたのですが、特に特典航空券を使う機会は無さそうでしたので、日常で使えるポイントへの交換について調べてみました。 ANAマイレージ 10000マイル=10000ポイント(円) 同一年度内(4月1日~翌年3月31日)に30000…

英語資格(試験)の国内受験者数

社会人が受験する英語試験と言えばTOEICが定番ですが、その他の試験と受験者数を比較してみました。受験者数から見ると国内で戦う(日本人と競う)上では、TOEIC一択であることは明確なようです。 TOEIC 英語を母語としない者を対象とした、英語によるコミュ…

自動車 TCO(総所有コスト)見積もりツール

Material-UIを試してみるついでに、 自動車の初期コストとランニングコストを試算するツールを開発しました。 URL アプリケーション:https://unhurried.github.io/car-tco-calculator/ ソースコード:https://github.com/unhurried/car-tco-calculator/ 対…

H2O Wireless 着信転送設定

KDDIから提供される利用ガイドには記載されていませんが、以下の方法で着信を転送することができます。 不在着信のみ転送する 設定:**004* + 転送先電話番号 + # に発信する。 1234567890 に転送する場合:**004*1234567890# 解除:#004# に発信する 全ての…

帰国時のアメリカ銀行口座(Union Bank)手続き

アメリカからの帰国時に必要な諸々の手続きについてまとめています。今回は銀行口座の手続きについてです。 Form W-8BENの提出 今後は日本の居住者になり税金を日本へ納めることを申告するための書類。 https://www.irs.gov/pub/irs-pdf/fw8ben.pdf パシフィ…

サンノゼからポートランドへのお手軽日帰り旅行

飛行機のチケットが安く取れたので、ポートランドまで日帰り旅行をしてきました。気軽に飛行機で旅行ができるのは国内線が発達しているアメリカの良いところです。 朝ゆっくり出て夕方早めに帰るというのんびりプランでしたので、有名な観光スポットを短時間…

ReactとMaterial-UIでControlled Componentを実現する

ReactとMaterial-UIを使ってフォームを作るときにどのようにControlled Componentを実現するかで少し悩んだので、ご参考までに自分なりの解決策をご紹介します。 理想の実装方法 通常のHTMLの場合と同様に下記のように実装できると理想的です。 JSX <input name="number" type="number" value={this.state.value} onChange={this.handleChange} /> イベン…

Mission Peak 春と夏の景色

ベイエリアでは11月頃~3月頃が雨季でこの期間はよく雨が降るのですが、それ以外の時期にはほとんど全くと言って良いほど雨が降りません。 サンノゼから少し北に行ったところにMission Peakという人気のハイキングトレイルがあり、この山は雨季に青々と成長…

React Quick Startを簡単に復習できるサンプルコード

Webアプリのアイデアがふと思い浮かんだので、開発するときにこれまで使ったことのないライブラリを導入してみようと、Reactに挑戦しています。 Reactはドキュメントが充実していて大変素晴らしいのですが、私は物覚えが悪いので一度読んでもすぐに忘れてし…

JavaScript エラー処理(独自エラー・条件分岐)

Javaで例外処理と言えば、Exceptionクラスを継承したクラスを定義して、instanceof演算子で条件分岐するのが定番です。JavaScriptの定番について調べてみたところ、大きくは下記の2パターンがあるようです。 Errorオブジェクトを継承する Errorオブジェクト…

JavaScript オブジェクト指向

私はJavaを長く使ってきたためオブジェクト指向の考え方は馴染み深いのですが、JavaScriptではを使うときにはあまり意識していませんでした。JavaScriptはクラスを定義する方法がいくつかあってややこしいので、簡単に整理してみました。 ES5以前ではclass構…

Node.js モジュール読み込み

Node.jsのモジュール読み込みではmodule.exports、exportsが利用できますが、違いがいまいち理解できていなかったので自分なりに整理してみました。 実装上の違いといった細かいことはリンク先にとても詳しく記載されていますので、今回は使い分け方に焦点を…

vim-mode-plusのキーバインドを変更する

Atomエディタプラグインのvim-mode-plusには通常のVimエディタにあるvimrcを読み込む機能がないため、Atomのキーマップ設定ファイルであるkeymap.csonに設定し、複数のコマンドを割り当てたい場合はAtomの設定ファイルであるinit.coffeeに複数コマンドを1つ…

AtomにVimキーバインドを設定する

学生の頃からVimを愛用して来ましたが、用途によってはプラグインが豊富なAtomの方が便利な場合があるので、AtomでVimキーバインドを設定する方法を調べてみました。 プラグインのインストール vim-mode-plus + ex-mode の組み合わせが推奨されています。 vi…

PlantUML クラス図

前回のシーケンス図に続いてクラス図も作成してみました。 ' コメントはシングルクオーテーションの後に記述する @startuml ' 色設定 skinparam classBorderColor black skinparam classArrowColor black skinparam noteBorderColor black skinparam classAt…

PlantUML シーケンス図

AtomでPlantUMLを編集する環境が整ったので、今回はシーケンス図のサンプルを作成しました。よく使いそうな記法を網羅するようにしていますので、記法を忘れていてもこのサンプルを修正しながら図を記述していくことができると思います。 ' コメントはシング…

PlantUML インストール方法

これまでUMLを記述するのには、仕事でも個人でもastah* communityを利用していました。astah* communityはバージョン7.0から商用利用不可となりましたが、私のUMLの用途はシステムの概要を説明するために簡単なクラス図とシーケンス図を使っていただけでした…

AWS ELB(ALB)にZone Apexドメインを設定する

Zone Apexとは? Apexは頂点、先端という意味で、wwwなどのサブドメインのつかないドメインを意味します。 example.comというドメインを保有している場合、www.example.comはZone Apexではなく、example.comはZone Apexとなります。 Zone ApexにはCNAMEを設…

Heroku Free DynoのSleepを防止する

Herokuでは月に1000時間の稼働稼働枠がもらえますが、無料プランでは30分アプリにアクセスがないとアプリがSleep状態になってしまいます。New Relicアドオンを使って定期的にリクエストを送信することでアプリがSleep状態になることを防げますので、設定手順…

まんがでわかる 7つの習慣

久々にまんがでわかるシリーズを読みました。今回はかなりブームを過ぎていますが、コヴィーの7つの習慣です。 まんがでわかる 7つの習慣作者: フランクリン・コヴィー・ジャパン出版社/メーカー: 宝島社発売日: 2013/10/11メディア: 単行本この商品を含むブ…

アメリカで購入できる胃薬

胃が弱いのでよく胃薬にお世話になります。 アメリカに来た当初は何を買えばよいかわからなかったので、定番を調べてみました。 Tums 気軽に飲める制酸剤。カルシウムの補給用途にも使える。 Zantac H2ブロッカーという胃酸分泌を抑制する薬。 日本の薬局で…

JAX-RSアプリをHerokuにデプロイする

Javaで実装したREST APIをHerokuにデプロイするときに少し迷ったため、今後のためにひな形としてサンプルアプリを作成しました。 github.com ポイント REST APIの実装にはJAX-RS(Java EE)のリファレンス実装であるJerseyを利用する。 Herokuのドキュメント…

Open ID Connect Client

Moved to http://unhrrd.blogspot.com/2017/05/open-id-connect-client.html

MongoDB Node.JS Driver コネクション管理

Java + MySQLではどのフレームワークにも当たり前にあるコネクションプールのようなコネクション管理機能ですが、Node.js + MongoDBではどのように実装するのが常套手段なのかを調べました。 ポイント MongoClient.connectは1度のみ呼び出し、databaseインス…

Callback地獄対策 (3) aa generator

今回は、Qiitaで人気のあるCallback地獄対策の記事で紹介されているaaについて調べてみました。 aaもcoと同様にGeneratorの仕組みを利用して簡単に並列・直列処理フローを記述できるようにするライブラリです。 aaはcoと比べるとthunkify/promisifyが同じラ…

シリコンバレー周辺のお土産

最近にそれなりの量のお土産を買う機会があったので、お土産に良さそうなものを調べてみました。 探す条件 多人数に配れるように個包装されている食べ物や飲み物 シリコンバレー周辺で購入できるもの カリフォルニア、アメリカ、もしくは北米地域発祥で日本…

Callback地獄対策 (2) co generator

Callback地獄対策の2つ目はcoについてまとめました。 coはGeneratorの仕組みを利用して簡単に並列・直列処理フローを記述できるようにするライブラリです。 const co = require('co'); const thunkify = require('thunkify') // callbackを引数にとる一般的…

Callback地獄対策 (1) Promise

NodeJSで非同期処理を書いていくと必ずはまるのが、Callbackで階層が深くなりすぎるいわゆるCallback地獄です。対策を調べてみたところ色々ありすぎて混乱してきてしまったので、何回かに分けて整理してみようと思います。 今回は、非同期処理を行う関数でCa…

Forever Stampでアメリカから国際郵便を送る

アメリカから国際郵便(USPS Frist-Class Mail Int'l)を送るときはGlobal Forever Stampを1枚貼れば良いのですが、普段国内郵便しか使わない人にとっては、Global Forever Stampが手元にないことが多いと思います。調べてみると、国内郵便用のForever Stamp…

Google Cloud Print APIを使った印刷手順

最近はどのプリンターもインターネットに繫がっているのが当たり前になって来ています。Webサービスを作るときにバックグラウンドでプリンターに印刷ジョブを投げれたらいいなというケースがいくつかあったので、その手段の一つとしてGoogle Cloud Print API…