生活を良くします - 怠惰なプログラミング

生活を良くします-怠惰なプログラミング

外資系でエンジニアをやっています。便利なサービスや商品、プログラミングで作ったものなどを紹介していきます

Hadoop Hive の環境構築用にDocker Imageを作成した~ VM上でのテストからlocal のコンテナへ移行

f:id:what_a_day:20190209225250p:plain

CentOS でHive と Hadoopの環境構築

Hadoop と Hiveについて

前回はHadoopとHiveの環境をVirtual Box上のCentOSで構築し、Hive クエリの練習をするところまではできていました。

実際にやってみると、XMLでうまくEscapeされていない文字がエラーを起こしたりしていて少し大変でした。最近のPRで修正されていたので新しいVersionからは問題が発生しなくなると思います。

www.what-a-day.net

VM上にHive と Hadoopの環境を作成する

特にHiveの環境構築は大変だったので、できれば二回目はやりたくないと考えていましたが、

Virtual Boxに作った環境をたぶん間違えて全部削除してしまったのでもう一度作り直すことにしました。 (Macの容量が逼迫していたので大きなデータのものは無意識に消してしまった気がします)

www.what-a-day.net

前回まではVirtualBoxにCentOSの設定をして、各種ツールやOSSをマニュアルでダウンロードしていました。

今回は大部分を自動化しようかなと思ってDockerを使っていろいろ練習してみました。

Hive 環境の Docker imageを作成

Docker について

自分の理解では、簡単に言うと環境構築などをDockerfileで全て定義し、それをスナップショットのように保存してみんなと共有できると言う感じです。

これをすることで環境が統一でき、一部のサーバーで発生する謎のエラーみたいな現象が減らせます。

Docker/Kubernetes 実践コンテナ開発入門

Docker/Kubernetes 実践コンテナ開発入門 DockerとKubernetesの解説を初歩的なところから進めているのでかなりわかりやすいです。分量が多めなので必要な部分をその都度、読んでから実際にDockerfileを書いたりしてみると結構良いと思います。

Docker/Kubernetes 実践コンテナ開発入門


Dockerfileの作成とETL

今回作成しようとしているDocker Imageは出来るだけ前回の記事と同じVersionのツールライブラリで揃えようとしましたが、

HiveとHadoopのVersionが見つからなかったため一つ上のVersionを使っています。

おそらく大きな変化はなかったように思います。

github.com

Hiveを実行してみる

Docker Buildをする

docker build . -t hive-docker

Dockerfileがある場所で、このコマンドを実行するだけでDocker Buildが完成です。

image はそれなりに大きく、4GBくらいの容量になりました。

docker build . -t hive-docker
docker image ls

このコマンドで hive-dockerが存在するか確認できます。

docker image ls

Docker Commandがない人はたぶん次のコマンドでインストールできるはずです。

brew cask install docker

Docker image ls を行うとIMAGE IDが見れるはずです。それを使ってコンテナに入ります。

docker run -i -t IMAGE_ID /bin/bash

一番最近作ったイメージにはいつもこうやって入っています。

docker run -i -t $(docker images -q | head -1) /bin/bash

コンテナに入った後は hive と打ち込むだけですぐにHiveが起動します。

Hive 簡単なコマンドの実行

DB の作成

CREATE DATABASE db_test;
USE db_test;

Table の作成

CREATE TABLE table_test
(
TEST_ID INT,
TEST_DATE STRING
)
PARTITIONED BY(dt STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
;

Data を入れる

INSERT INTO table_test partition (dt='2019AAA1') values (1,"TODAY");
INSERT INTO table_test partition (dt='2019AAA2') values (2,"TOMORROW");
INSERT INTO table_test partition (dt='2019AAA3') values (3,"YESTERDAY");

Selectする

select * from table_test where dt like "2019%";

これで動くのが確認できました。

少し気になったのが、次のようなメッセージが出てくることです。

Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions.

Hive2でMap Reduceはできないので他のツールを使えと言うことなんでしょうけど、少し調べる必要がありそうです。

Dockerfileでつまづいたところ

yum -y オプション

RUN yum -y upgrade
Is this ok [y/d/N]: Exiting on user command

このようなメッセージを残して勝手にDocker Buildを止めようとするので-yオプションを付けるようにしようと思いました。

Dockerfileでの環境変数パスの設定

export PATH=...のようなEnvironment Variableを~/.bashrcに直接書き込んでUpdateしようとしていましたが、

ENVコマンドだけで簡単に設定できました。

ENV PATH $PATH:$HIVE_HOME/bin

Java version

RUN yum -y install java-1.8.0-openjdk

JavaのVersionにはあまり詳しくないのですが、今回ダウンロードしたものはjava-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64と長かったです。

イメージしていた処理があったのですが、それはうまく行きませんでした。 x ARG java=rpm -ql java-1.8.0-openjdk | grep jre | head -n 1 としてJavaのVersion名とLocationを変数に入れてPathを通そうとしましたが失敗しました。

普通にPathの名前を固定のものに変更する方針にしました。

エスケープされていない文字の加工

RUN sed -i -e 's///' /usr/hive-3.1.1/conf/hive-site.xml

これはHiveのBugに似ているもので、hive-default.xml.templateをコピーして使用しようとするとIllegal character entity: expansion character エラーが発生します。 このエラーを防ぐために、うまくエスケープされていない文字を見つけて消す必要があります。 今回はbackspaceがエラーを引き起こしているのでこれを消す処理を入れました。

backspace ->  

まとめ

  • Hive 環境をDocker Imageでつくった
  • kubernetes で行う場合についても練習してみたい
  • Hadoop & Hive がDockerで行けるのなら

HiveとHadoopの環境構築 〜 virtualBoxのCentOS7を使用しデータ分析を分散処理する準備

Hive と Hadoop

f:id:what_a_day:20180807003934p:plain

Hadoop ファミリーの主要なメンバー

Hadoop

HadoopはMapReduceというGoogleの論文を基にしたビッグデータの分散処理を目的に作られたOSSです。 HDFSという分散ファイルシステムで処理能力をあげようとしています。 ビッグデータ用なのでスループットは大きいですが、リアルタイムに処理するのは苦手なため主にバッチ処理などで使われると思います。

最近よく話題になるSparkやNoSQLのHbaseなどもだいたいHadoopと協力して動いているのでHadoopエコシステムとか言われています。

Hive

SQLとほぼ同じようにかけます。SQLと同じように書くことでMapReduceの処理が行えます。 SQLと同じといってもTableのDropだったり、微妙な書き方の違いがあるので注意したほうがいいです。

環境構築が今までの中で一番大変だった

これは相当苦労してしまったので、自分のための備忘録として残しておきたいです。

CentOSをvirtualBoxで設定する方法は前回の記事で書きました。

なぜMacのローカル環境で構築しなかったかというと、失敗してカオスになったからです。

もはや失敗してもすぐに最初からやり直せる環境があったほうが便利ということに気づきVirtualBoxを使用しています。

www.what-a-day.net

Hadoop 3.1.0とHive3.1.0をダウンロード

wget のインストール

yum update
yum groupinstall 'Development tools'
yum install wget

これでwgetが使えるようになりました。

yum updateあたりでもかなりのエラーが出たのでエラー群のところに書いておきます。 だいたいがPermission Errorだったりでした。

Javaのインストール

Oracleからwgetでダウンロードできますが、自分の場合はできなかったので別の方法でやりました。

yum install java-1.8.0-openjdk

vi ~/.bashrcでbashrcファイルを開き編集

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-opemjdk-.../jre

編集後に

source .bashrc

これをすることでHadoopとHiveのダウンロードが可能になります。

Hadoopのインストール

wget http://ftp.riken.jp/net/apache/hadoop/common/hadoop-3.1.0/hadoop-3.1.0.tar.gz
tar -xzvf hadoop-3.1.0.tar.gz 
mv hadoop-3.1.0.tar.gz /usr/

vi ~/.bashrcでbashrcファイルを開き編集

export HADOOP_HOME=/usr/hadoop-3.1.0
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH

編集後に

source .bashrc

これでだいたいの設定は終了です。Hadoopはうまくいきやすいです。

derbyのインストール

Hiveのデータをセーブするデータベースがわりに使用します。

wget http://ftp.riken.jp/net/apache/db/derby/db-derby-10.14.2.0/db-derby-10.14.2.0-bin.tar.gz
tar -xzvf db-derby-10.14.2.0-bin.tar.gz
mv db-derby-10.14.2.0-bin.tar.gz /usr/

vi ~/.bashrcでbashrcファイルを開き編集

export DERBY_HOME=/usr/derby
export PATH=$PATH:$DERBY_HOME/bin
export CLASSPATH=$CLASSPATH:$DERBY_HOME/lib/derby.jar:$DERBY_HOME/lib/derbytools.jar

これでダウンロードと設定が終了です。

Hiveのインストール

wget http://ftp.riken.jp/net/apache/hive/hive-3.1.0/apache-hive-3.1.0-bin.tar.gz
tar -xzvf apache-hive-3.1.0-bin.tar.gz
apache-hive-3.1.0-bin /usr/hive-3.1.0
cd /usr/hive-3.1.0/conf
cp hive-default.xml.template hive-site.xml

vi usr/hive-3.1.0/conf/hive-site.xml ファイルを開き編集

 <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:derby:;databaseName=/usr/hive-3.1.0/conf/metastore_db;create=true </value>
    <description>JDBC connect string for a JDBC metastore </description>
 </property>
  <property>
    <name>hive.querylog.location</name>
    <value>/usr/hive-3.1.0/iotmp</value>
    <description>Location of Hive run time structured log file</description>
  </property>
  <property>
    <name>hive.exec.local.scratchdir</name>
    <value>/usr/hive-3.1.0/iotmp</value>
    <description>Local scratch space for Hive jobs</description>
  </property>
  <property>
    <name>hive.downloaded.resources.dir</name>
    <value>/usr/hive-3.1.0/iotmp</value>
    <description>Temporary local directory for added resources in the remote file system.</description>
  </property>
  <property>
    <name>system:java.io.tmpdir</name>
    <value>/usr/hive-3.1.0/tmp</value>
  </property>
  <property>
    <name>system:user.name</name>
    <value>USERNAME</value>
  </property>
</configuration>

このコードを 追加する形で貼り付けます。色々な設定です。

最後にHiveをインストールして実行する前にこのコマンドを打ちます。 データベースを初期化するコマンドですが、先にHiveコマンドを打っていた場合、metastore_dbが不完全なまま自動的に作られてエラーになるので気をつけたほうがいいです。

その場合は一度create_dbを削除したのちにこのコマンドを実行します。

$HIVE_HOME/bin/schematool -dbType derby -initSchema
hive
> show tables;

このコマンドでエラーが出なければ大丈夫です。

ここのHiveでかなりのエラーが出たので治し方をまとめて下の方に書いておきます。

最終的なbashrcの様子

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/jre

export HADOOP_HOME=/usr/hadoop-3.1.0

export PATH=/usr/hadoop-3.1.0/bin:/usr/hadoop-3.1.0/sbin:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64//bin:/usr/hadoop-3.1.0/bin:/usr/hadoop-3.1.0/sbin:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64//bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/{username}/.local/bin:/home/{username}/bin

export HIVE_HOME=/usr/hive-3.1.0
export PATH=$PATH:$HIVE_HOME/bin

export DERBY_HOME=/usr/derby
export PATH=$PATH:$DERBY_HOME/bin
export CLASSPATH=$CLASSPATH:$DERBY_HOME/lib/derby.jar:$DERBY_HOME/lib/derbytools.jar

ダウンロード時のエラー群

Caused by: java.net.ConnectException: Connection refused

おそらくderbyあたりの設定がうまくいっていないときにでるエラー。 create_dbの初期化ができていないか、パスがおかしいのでもうインストールし治したほうがいいかも。

create_dbを消して再度初期化し、パスを入れなおすと直りました。

FAILED: HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

create_dbを消して再度初期化し、パスを入れなおすと直りました。

org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent

create_dbを消して再度初期化し、パスを入れなおすと直りました。

java.lang.RuntimeException: com.ctc.wstx.exc.WstxParsingException: Illegal character entity: expansion character

cp hive-default.xml.template hive-site.xml

このデフォルトのテンプレートが文字化けしています。3200行目くらいにエンコードミスでおかしくなった箇所があるので削除します。これでうまくいきます。

Exception in thread "main" java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D

完全にこれを参考にしました。

なぜうまくいくのかはこれから調べます、、

stackoverflow.com

まとめ

  • SandBoxとかあらかじめ準備されているものを使えばよかった

MacOSからvirtualBoxでCentOS7を使用する環境構築 〜ネットワーク設定 からssh接続

VirtualBoxのインストールと設定

f:id:what_a_day:20180805185540p:plain:w400

割と詰まったので忘れないように記録しておきます。

virtualBoxのダウンロード

今はmacOS High Sierraを使っていますが、特にこれで何か変わるということは無いように思います。

VirtualBoxをダウンロードするところまではあまり難しいところはなくて、自分の使っているOSに対応している新しいバージョンのVirtualBoxをダウンロードします。

Downloads – Oracle VM VirtualBox

初期の起動時に大体の設定を済ませた方がやりやすいと思っているので、起動するのは自分の場合は.Isoをダウンロードした後に行なっています。

CentOS7のisoをダウンロード

isoファイルは、CentOSを起動するために色々なファイルが集まったイメージファイルという風に認識しています。

このリンクを辿り、"DVD ISO"というところをクリックしてCentOSの.isoをダウンロードします。

Download CentOS

初回の起動時にこのようにディスクの選択を迫られるので先ほどダウンロードしたcentOS の.isoファイルを指定します。

f:id:what_a_day:20180805180744p:plain

これをしないと”No bootable medium found! System halted. ”と表示され、失敗となります。

CentOSでの初期設定

f:id:what_a_day:20180805181201p:plain:w400

f:id:what_a_day:20180805181219p:plain:w400

f:id:what_a_day:20180805181230p:plain:w400

ここでは以上の画像のように設定を行いました。大体うまくいっているので問題はないかと思います。 メモリやストレージも使う用途によって設定すれば良いと思います。

自分はHadoopとHiveのテストをしたかったので少し多めにしました。

ネットワーク設定とssh接続

CentOSを最初に動かすときに

f:id:what_a_day:20180805181545p:plain:w400

黒い画面で最初の設定やメッセージが一通り流れ終わるとこのように言語の設定ができるようになります。普段は英語でやっているのですが、あまりにも失敗と再挑戦を行う必要があり、途中からミス防止のため日本語でやっています。残念。

f:id:what_a_day:20180805181558p:plain:w500

ここでのネットワーク接続の設定は一度は確認しておいたほうが良いかと思います。

f:id:what_a_day:20180805181610p:plain:w500

自分が一番失敗したのがここで、なぜかネットワークの設定がOFFになっていました。 確かDefaultはONになっていたような気がするのですが、ここでたくさん時間を使いました。

そのあともう一度設定Menuからアダプタの設定をします。 f:id:what_a_day:20180805184102p:plain

作成し終わった後に変更しようとしたのですが、うまくいかず結局はここからやり直したほうが早かったです。

あとは起動するだけで起動させている最中にusernameとパスワードを入力してひとまずは完成です。

VirtualBox側においてしまったマウスの先は二つあるうちの左側のCommandをタイプするとホスト側に戻って来れます。

f:id:what_a_day:20180805183558p:plain

virtualBoxでのコピペ

自分のPCがホストで、VirtualBoxで動くCentOSがゲストとなり別物なので設定をしなければコピペができません。 Devicesメニューからshared clipboardを選び、お互いのクリップボードの共有の設定をしました。それ以外にもコマンドやネットワークなどを変更して設定しましたが、結局ダメでした。

そのため、クリップボードをコピーすることは諦めてホスト側の自分のMacからゲストであるCentOSを操作する方針に変更しました。

Macのターミナルからssh接続する方法

大体こちらの方法を参考にすればうまくいきました。 rootに入るので su - username を実行して自分のusernameに入るのは新鮮でした。

qiita.com

これで自分のVirtualBoxは起動させるだけさせておいてあとは放置し、自分のPCで調べたダウンロード用のコマンドをそのままコピーして自分のターミナルに打つだけでCentOSで実行したことになり、かなり便利でした。

まとめ

  • 自分のための備忘録を書いた
  • かなり時間を使ったところがあった
  • この環境でHadoopなどを使っていきたい

VM関連はよくわからないつまづきがいまだに多いです、、

www.what-a-day.net

1年間ほったらかしのインデックス投資の資産運用の結果 〜 マイナス金利による金融と運用のリスク  

前回からの続きになります。

www.what-a-day.net

今回は本を読んで口座を開設してそのまま放置したこの1年間の運用の結果についてです。 会社の部署が部分的に消えたためポジションも消え、退職したので運用とかはもうちょっとちゃんとしておけばよかったと後悔しています。

確定拠出年金とWealthNavi、インデックス投資の運用結果

マイナス金利と銀行預金

昨今のマイナス金利により日銀と銀行の間の金利がマイナスになり、今まで多少は安定していた国債の運用がマイナスに転じるという結果になっています。

銀行は運用によって収益を上げており、わずかでしたがそれでも確実に利益を上げれていた国債がなくなり、なかなか厳しい立場になっているのではないでしょうか。

その中で予想できるのがもうご存知の通り銀行預金の金利が上がるはずがないということです。完全なATMとして使おうとしてもコンビニでは手数料がかかるしわざわざ専用のATMを見つけなければいけないという、預金するにはほぼメリットがない状態にずっとなっています。

ネット銀行の方がコンビニでも手数料が無料で、振込手数料も無料のものがあり、さらに証券会社などとも連携していて相当便利に思えます。

預金の運用結果と投資の運用結果

さてそんな文句を言ってきたので銀行預金の金利とインデックス投資の運用結果の比較を行ってみたいと思います。

詳しく変化をグラフ化したのですが、ちょっと不安になったのでこれらの公開はもう少ししてからにしたいと思います。

なので結果だけを書くと以下のようになりました。

銀行預金 200万 -> 200万 + 数十円

資産運用 200万 -> 220万弱

正直、銀行預金は稀に利息などと言って小銭が入ってきていますが正直ただのノイズくらいにしか見えません。利息の項目を探したのですが、めんどくさかったのでだいたい数十円としました。

資産運用は最初の一ヶ月くらいは性質上、不安定になりややマイナスでしたがそこからはコンスタントに勝ち続け結構嬉しい額になりました。

20万円あれば家賃とか趣味とか相当なことができますよね。

何気に債権も少し買っています。もし株が大暴落した場合は少なくともそこまでは落ちない債権に流れるだろうという勝手な予測で勝手にリスクヘッジした気になっています。

インデックス投資などについてはこの記事に書きました。

www.what-a-day.net

次にやっている投資について

特にインデックス投資は複利計算のように増えていくので早めに始めた方が特です。

よく雪だるまを転がすことに例えられていますが、ある程度大きくなった雪だるまは勝手にどんどん大きくなっていくのでズボラな自分にもぴったりだと思います。

インデックス投資の魅了と便利さは十分に体験できたので今度はロボアドバイザーなる投資をしてみたいと思い始めました。

wealthnaviです。

2年くらい前にマッキンゼーをやめて起業したという記事を読んでそれ以来、名前だけは知っていましたが評判がすごく良いのでさっき始めました。

これから楽しみですし、時期をおって結果などを記録していきたいと思っています。

maneoというソーシャルレンダリングも始めましたが、ややリスクが高そうです。

しばらくはリスクの低めなインデックス投資をメインに余った資金でやっていきたいです。

今後の方針について

本業に集中する

いくら年間5%〜10%ほどの年利を叩き出していたとしてもやはり本業の収入無しでは不安です。 だいたい元手が一億円くらいあればこの利率だけで年収500万から1000万の収入になるのでお金持ちは羨ましいですね。

さてもちろんそんなに資産はないので運用益だけで暮らしていく計画はまだまだ先となりそうです。そのため、今の収入を上げることを目標にしていきたいです。

収入の増やし方については複数の方法があり、考えているのは主に次の二つです。

副業を本格的に始める

プログラミングやインターネット系の仕事についているとたびたびその道で独立する人が出てきます。その人たちは退職金や貯めた資産で厳しいスタートアップの時期を耐えているのですが、彼らには何よりも人手が足りないという現状があるようです。

そこでかつての仕事の同僚に平日の夜や週末の余った時間でも手伝って欲しいとのお願いがたまにきます。結婚されている方には厳しいかもしれませんが、結婚していない人からすると良いアルバイトになります。もちろん確定申告などの煩わしさは増えるので相対的にはわかりません。

このように他の人の仕事を副業としてやりながらスキルも上げて収入もあげようというのが一つの方法です。全員がwin-winの関係に見えますが、唯一の問題は自分が耐えられるかどうかですね。

スキルを上げて昇進する

本業一本に集中して収入を上げるという方法があり、これが一番楽な方法だと思っています。

仕事自体は好きなので頑張ることは可能ですが、やはり上がり幅が限られているのが現状でしょう。よくて10%くらいの収入アップにしかならないのでそこまで劇的に変わることはないような気がしています。

ただし本業を頑張るのはある意味当然なので、わざわざ書き上げるほどのことなのかと考えると微妙ですね。

どこの会社にも副業規定というものがあってなぜか副業を禁止しています。本業へのパフォーマンスが落ちる可能性があるかららしいです。

正直、できない人はクビにするとかそうした方がお互いに幸せになれるのにと思っています。

オススメの本や参考にした本について

この記事にたくさん書きました。

www.what-a-day.net

それでも資産運用の本などはいつ見ても参考になります。おそらく自分の知識が増えてきているのでそれに伴って理解できる内容が増えているからだと思います。

こういう良い本に20代半ばで出会えたのはとても良いことだと思っているので読んでみて損はないと思います。

f:id:what_a_day:20171030234920p:plain

資産の可視化と資産運用の準備 〜 マネーフォワードと現金レスの快適な生活を初めて見た結果その1

会社をやめてしばらく忙しく更新が滞っていました。 これからは時間に余裕ができたのでマメに更新していければと思います。

ちなみに外資系の企業でクビになったので退職金がそれなりにもらえました。詳しい仕組みはこちらの記事に昔書きました。

www.what-a-day.net

www.what-a-day.net

今回の詳細は後々書いていきたいと思います。

キャッシュレスとクレカとマネーフォワード

色々と時間が余っていたのでこれまでの生活を見直していたところ忙しさにかまけてあまりに無駄の多い生活をしていたことに気づきました。

断捨離ではないですが、見直しと効率の良い生活を行うために色々とやりました。

電子マネー

モバイルスイカとクレジットカード付きのSuicaを始めました。

具体的にはビックカメラのクレカ機能付きSuicaを契約しました。

だいたいクレカでチャージを行うたびに1.5%のポイントがもらえてなおかつオートチャージなのは非常に便利で驚いてます。

ビックカメラのポイントカードとかはすぐになくすのでこの点でも良かったと思えます。

唯一不満があるとすれば、定期券と合体できないところなのですが、自分は車と電車を使い分けているのでここはあまり気になっていません。

また、コンビニや駅の施設で使用できるので、Suicaを完全に財布がわりに使っているので財布を滅多に出さなくなりました。

当たり前の話ですが、現金でお金を数えて払って釣銭を待つよりもSuicaをタッチするだけで会計が終わるのでなかなか素晴らしいです。

ネット銀行

住友SBIネット銀行を使い始めました。サブで使用しています。

こちらは回数制限はありますが、コンビニでのATM引き落としが無料で振込手数料も無料になるというなかなか使わないのが勿体無いくらいの銀行です。

SBIネット銀行は証券取引をするために開設しました。SBI証券やその他の有名な証券、ビットコインの購入に手数料無料で入金できるのが魅力です。

コンビニでのATMだと一回200円くらいしますよね、あれを年間5回くらいやっていたのがこれでなくなりました。

クレジットカード

先ほどのSuicaに提携するためのクレジットカードに加えてAmazonのクレジットカード、楽天のクレジットカード、あとはゴールドカードなどカードを複数枚持っています。

Suicaで買わないような高額な商品だったり、Suicaが使えないような店では基本的にクレジットカードで払っています。

クレジットカードは利用者側の負担はゼロで、しかもポイントがたまるので使わない理由があまりないです。

家賃や会社の経費(建て替えなので仕方なく使用、明細があるので請求が楽)をクレカで払っているので、ポイントだけで年間5万円~10万円のポイントが溜まっています。

でもクレカが増えると管理が大変になるので困っていましたが、すごく良いアプリを見つけました。それがマネーフォワードです。

マネーフォワード

クレジットカードと銀行などの資産をまとめて確認できるすごく使いやすい自動家計簿アプリです。

f:id:what_a_day:20171027215856p:plain:w450

f:id:what_a_day:20171027220833j:plain

このように自分が使ったクレジットカードなども自動的に家計簿としてつけてくれます。

またポイントの数も把握して教えてくれるのもなかなかにすごいです。

中でも一番すごいのが確定拠出年金や厚生年金、投資の成績の記録すら把握してこれらも表示してくれます。

いちいちマイページを開く必要もないですし、もうすでに課金をしています。

予算を設定し、先月との比較も行い支出も減らせます。楽しめながら節約もできます。

まとめ

ちょっと久々なのでこのくらいにして続きは別の日に書きます。

続きには資産運用を続けて見た結果とぜひ始めた方が良い理由について書いていきます。

資産運用は今のところ、5~10%の運用益で推移しています。

  • 電子マネーで節約・快適な生活
  • クレカ・電子マネーの収支をアプリで把握
  • クレカのポイントを効率よく集めている

退去費用や様々なサービスでクレーム・文句を言った方が得をしやすく思えることについて

クレーム・値切り交渉・文句を言った方が得になる現状

最近のクレーム対応にまつわる話

最近のニュースやtwitter、サービス業に勤めている知り合いの話を聞いているとクレーマー対策について、その姿勢が完全に二分しているように思えます。

クレームは宝の山といってある意味ありがたがるような(表面上だけでも)対応をするところがその一つの勢力です。

もう一方はクレームや文句については一切対応しない、意見なども聞かないとする勢力です。

一昔前までは完全にクレーム対応については前者のお客様は神様です対応が主流でしたが、最近になって後者のクレームなどには断固として応じないという姿勢の方が評価されてきたと感じます。

昔はコンビニで接客などのバイトをしていたことがことがあるのですが、たいていのクレームはただの絡みだったりストレス解消だったりという風にしか感じないので自分としてはクレームを一切聞かない方を支持しています。

しかし普通に生活しているとクレームとまではいきませんが、ある程度主張した方が得になることの方が多く感じます。

敷金礼金・退去費用ヤマダ電機・ビックカメラ・車での値切り交渉など

特に感じたのが退去費用についての話です。

事前に高額な請求の事例などを調べて判例みたいなものを読んで、条例などから対策を考えていたのでなんとかなりましたが知らなければ15万円くらいボラれていました。

しかもちゃんと根拠を示して反論すると「あ、ご存知でしたか」という反応であっけなく退去費用がほぼクリーニング代だけになりました。

それでいいのか、とかもうちょっと理由のある請求じゃなかったのか、とか営業なら食い下がった方がいいんじゃないのかなどと思いましたしなんかこちらが理不尽なクレーマーみたいな感じになってしまいました。

ちゃんとネットでその不動産管理会社を調べて悪徳な企業(と噂されている)とわかっていたので準備していましたが、そこに気づかなければ今頃お金なくなってただろうなと思います。

それ以外でもヤマダ電機やビックカメラなどでも価格コムを調べているとその値段に近づけるように値切り交渉ではないですが、ポイント交渉が始まったり、車を買うときには結構悩んでいたらあれもつけるよとかこれも割引とか、価格は特別に安くするなどと言われて結果的に交渉していました。

ある程度調べて主張した方が得になるケースが多いように思います。

www.what-a-day.net

極悪ではないがなんか悪いことしてる気がする

昔から交渉や自己主張などをしてきたことがないのでなんか悪いことをしているような気がしていました。

本来なら受けられないはずのサービスや割引が同じ価格で受けられるので他の客には不平等なような気がしたからです。

それに客の方がやや立場が上のような気もするのでそれにかこつけて強引に値引きをしているように見えていたのでなおさらそういう風に感じていました。

f:id:what_a_day:20170509001540p:plain

それについての一旦の回答

そうは言ってもクレーム用の費用を最初から上乗せしているような

そこで色々と考えていたのですが、なんか客の方が立場が上と言いましたが、むしろ逆で乗せられているだけではという風に思えてきました。

他店徹底対抗!を謳うには徹底対抗しても赤字にならないように値段も工夫しているし、むしろ値引きする分を最初から足してあるようなものもたまにあります。

気づいてないだけでもしかしたらそういう風な商品の方が多いのかもしれません。

調べる費用・準備する時間も考慮すると

退去費用などの話はやや悪徳すぎたので例外としても調べたりする手間や時間、論理立てて反論するための準備の時間も一応はかけているので、そこをめんどくさいから価格で払うという人もたまにはいるんじゃないかとも思っています。

そうすると値引きをしても利益がでる値段というのは仕入れ値と人件費の関係からだいたい決まっていますし、大きな店ならどこの店でもだいたいは同じになるので他店徹底対抗が可能になるように思えます。

以上を考えると値引きしてもらえて得したと喜んでいても結局は手のひらの上で踊っていただけだということですね、当たり前か。

じゃあネットに疎い人たちはどうなるのかと考えると色々と複雑になってくるので一旦はここまでにしておこうと思います。

まとめ

  • 主張した方が値引き・追加のサービスが受けられてしまうことが多い
  • いろいろと考えたけど最終的によくわからなくなった

外資系ITエンジニア クビになった場合の退職金と交渉について 〜 もらえるお金と対処方法

外資系エンジニア、外資系メーカーの退職金

こちらの記事で外資系にはよくあるクビの話を書きました。

www.what-a-day.net

クビになってからでもたくましく生きていかないとダメなので受け継がれる世渡りの方法?を聞いた範囲で書いていきます。

退職一時金での制度

これは年金としてもらえるいわゆる「企業年金」を今すぐにもらうという選択です。

確定給付年金が企業年金に該当するはずです。

年金として老後にもらえるように企業が積み立てていた年金を若いうちにもらうという退職一時金みたいな仕組みがあります。

問題点としては税金がかかってしまうというところでしょうか。

退職金くらい非課税にしてほしいと思いながらも喜んでしまいそうです。

あとこれは企業によっては企業年金などが用意されていない場合もあるのでそこらへんは確認が必要です。

その場合は自分で運用をするなど対策を練りましょう。詳しくはこちらの記事で書きました。

www.what-a-day.net

確定給付年金、確定拠出年金

先ほどの一時金としてもらうか企業年金としてもらうか決めることができるのが確定給付年金でした。

確定拠出年金とは税金の優遇を受けながら運用を個人の責任で会社を通して行う形の年金です。

これにより税金が引き出す時しかかからなかったり、手数料くらいしか取られなかったりと優遇を受けられます。

デメリットは途中で解約できないというところですかね。

一度入ったら老後までもらえないという仕様です。

まあ確実に老後にはもらえるはずの年金になるのでこれももらえるお金として換算できます。

外資系だと普通の退職金はたくさんもらえるの?

これは業界によるとしか言いようがないと思います。

外資系金融機関だとパッケージとして年収1年分とか2年分とかもらっている友達はいましたが、それ以外の業界ではそれほどもらえないように思います。

外資系コンサルとかはたくさんもらってそうですが、普通の外資系のITエンジニアだったりメーカー勤務であれば退職金は年収に含まれるなどという主張が割とよく見かけることになります。

良心的にも退職金がもらえる場合は(退職金というか口止め金)、だいたい勤続年数 × 月給 としてもらうことが多いと思います。

ここから個人の業績や業界の景気、クビになった条件などを加味して交渉していくことになります。

詳しい内容は会社によっても違うと思うのでクビになった人にどれくらいもらったかなど聞ける関係性を築けているのがベストです。

クビになってからの過ごし方

人事部 (稀に上司) との退職金交渉

退職金の交渉に移ります。

一番良いのは自分がやってきたプロジェクトの内容や自分が貢献したことなどを毎日メモしておくことです。

自分がどれだけ役に立ってきたかと証明できるものがあれば交渉の場では有利に立てます。

また、何がほしいのかをはっきりさせておくことも重要です。

退職後の仕事斡旋をお願いしたいのか、退職金をできるだけ多くもらいたいのか、どのタイミングで辞めたいのか、残った有給の処理についてなど考えてみれば話すことはそれなりにあるような気がします。

全部を要求してそれが達成されればとても良いのですが、そんなにうまくはいかないので最低限これは譲らないと決めて交渉するとうまくいくケースが多いです。

(ex)退職金減らしてもいいから次の仕事紹介して (ex)転職エージェントとの契約とかいらないから退職金を増やして、など


どうでもいい話ですが、企業の研修がしっかりしているところでは上司は部下をクビにする練習をしているらしいと誰かが言っていました。

実際はクビにする練習というか、パフォーマンスが悪い社員に直接的に改善するよう要求するとかそんなところだと思いますが。

失業保険・失業手当をもらう

年齢が若かったり就職していた期間が短かったり、年収が低かったりすると受給額がけっこう少なくなるケースがあるので要注意です。

謎の計算式でどんどん受給額が減らされていきます。

例えば年収600万円で30歳以下、5年以上働いて会社都合退職だと月額17万円になります。

普通にいきていけそうですが、働いている期間が短いので受給総額だと80万円くらいになりますのですぐに働く準備が必要です。

本来であれば失業保険をもらいながら海外に3ヶ月くらい旅に出たかったのですが、これは制度的にやや危ないらしいです。

具体的には失業保険・手当は次の仕事を見つける就職活動を支援するためにあるので当然といえば当然ですが、就職活動をしているという実績が必要なのです。

一ヶ月くらいごとに失業証明みたいな形でハローワークに向かうことになります。

フィリピン留学などができれば最高なのですが、まあ自宅でも勉強は可能ですからなんともいえませんね。

www.what-a-day.net

まとめ

  • 退職金などについて書いた
  • もしものことを考えておくと焦らなくてすむと思う