新・オノマトペ的備忘録

技術ブログだと思った? 残念、日記でした!

本人限定受取郵便(特定事項伝達型)を別の郵便局で受け取る

これはアレの記事らしいです

TL;DR

もらった書類に書いてある通りのことをすれば普通に受け取れます. ただ受け取れるのは『ゆうゆう窓口』のある局だけだと思います.

某ネット銀行に口座を開設した

その銀行はキャッシュカードを本人限定受取郵便の『特定事項伝達型』というタイプで送ってきます. 差し出し人のかわりに郵便局が本人確認書類を使って本人確認を代行するタイプみたいです.

ところで僕は自宅外から大学に通っている人間なのですが,大抵の学生と同じように*1住民票を居住地に移してないので,公的書類の住所欄には実家の住所が書いてあります. いままでたとえばクレジットカードを作ったときは大抵『住所が違ったら公共料金の領収書も送ってくれれば OK』という感じなのでそうやってきたわけですが,僕が口座を作ろうとした銀行はそうもいかないらしく*2,実家に送るしか方法がありませんでした. いまの住みから実家は車で1時間程度の距離だし,週末に帰る予定があったのでそのとき受けとればいいか,と思い申し込みをしました.

通知は受け取ったが

特伝型の郵便はいきなり自宅へ配送などはせず,まず『届いたけどいつ配送すればいい?それともウチに取りにくる?』という通知が投函されます. 郵便局で受け取る場合はその通知を持って郵便局に行けば受けとれるんですが,届いたことに気づいたのが日曜の夜で,とっくに窓口は閉まっている時間でした.

実は通知にはほかの郵便局に転送することも可能とあるのですが,

  • 郵便局窓口などでは受けとれない,というような文言がある
    • あとから思ったんですけどこれは『ゆうゆう窓口でのみ受け取れる』という意味っぽい
  • Web 検索しても指定された局以外で受け取った話が意外と見当たらない

などということがあり,本当にできるのか? という不安がありました.

とはいえ次の日は用事があり戻らないわけにはいかなかったので,とりあえず通知を持って帰ることにしました.

次の日

別の郵便局に持ってきてもらうというのがあまりなさそうなことだし,そもそも県をまたいでもちゃんと受理してくれるのかとか疑問はありましたが,郵便物が届いている局に電話しました. そのときの会話の概要はこんな感じでした.

「特伝の通知をもらったんですけど」
『本人様のみ受け取れる郵便物です,本人様ですか』
「本人です」
『配達か窓口受け取りかどちらにします?』
「他の支店で受け取ることってできますか?」
『可能です,それでは住所とお名前お伺いしてよろしいですか』
「(通知の封筒に書いてあったので読み上げた)」
『それでは受け取りたい支店を教えていただけますか』
「群馬の○○郵便局なんですけど」
『群馬の……○○郵便局……了承しました.それでは今から転送の手続きを開始するので,明日以降お受け取りになれるかと』
「わかりました,よろしくお願いします」

すんなり要求が通ってしまってちょっと拍子抜けでした.いや,面倒なことになってもそれはそれで困るんだけども.

また次の日

夕方ごろにお願いした郵便局に行って,無事に受けとることができました.

まとめ

心配症なので『やってみたよ〜』みたいなログがないと不安. これが誰かのためになればいいですね.

というかまあ学生だから別にいいでしょ,とか言わず引っ越したら住所を移せばいいだけの話なのかもしれない. 近いから通知持って帰るとかできるけど地方またぎとかいうレベルになってくると現実的ではないし.

*1:僕調べ

*2:犯収法とかからくる制約だろうし,だいたいどこのネット銀行でも同じな気はする

████████ Advent Calendar について

これは ████████ Advent Calendar █日目の記事です.

なぜこれをはじめようと思ったか

  • 研究で積まれるタスクが多すぎてうつっぽくなってるところがあって,なんか他に意識を向けられる時間が欲しいと思った
  • 年始に書いたような記憶が朧げにある記事 に『技術な記事20本/年くらい書きたい』などとあるけど今年もまあほとんど虚無だったためにそういう余裕があまりなかった.カレンダーの記事を書くていで巻き返しを図りたい.

『████████ Advent Calendar』 について

無事に 25 本程度記事が書けた場合『擬音 Advent(略)』などになると思います,1 桁くらいしか書けなかったら闇やエターナるなど各自で代入すればいいと思います. とくにテーマを定めるわけではないので何なのか僕自身もはっきり決めてなく,ことしのことを思い返したりでっち上げたりすながらそれっぽい記事を書くつもり.

『█日目』について

TL;DR

3 日目にもなって『1 日目の記事です』とか『2 日目の記事です』とか言えない

詳細

Hugo + netlify CMS は 1 日の時点で構想はしていたんですがあまりに眠くて当日手を出すのを放棄してしまい, 翌日の時点でさすがに 1 日目の記事とか真顔で書けねえという気持ちがあってこういう書き方をするのは決まっていたんですが, さいしょ Hugo でなく Pelican でやろうとか思ってたらひどい深みにハマってしまい, とりあえず動いたのが 21 時とかそういうレベルで終わってたので結局その日のうちに記事を書く気力がなく, きょう 1 日目,2 日目の分の記事を書いているので 2 本も『█日目』にするハメになってしまった,というのが真相です

text.gion.me と gion.hatenablog.com の立ち位置

技術っぽいのは向こうに書いてそれっぽくないのはこっちかなーみたいな雰囲気がありますが,未定です

まとめ

3 日目からはじめりゃいいのに 1, 2 日目がないのキモい,みたいな完璧主義というかいらんとこ几帳面みたいなところがあるから精神的負担が大きくなって挫折するんだと思います

React はじめることになりました

概要

いろいろあって webpack と React をやっていくための学習とか環境設定をしていた.

  • React チュートリアルをさわった
  • ローカルに React + webpack の開発環境をつくる方法をざっくり確認した
  • Emacs でうまくやっていくための設定を調べた

React チュートリアル

公式チュートリアルをなぞった. facebook.github.io CodePen なるサイト上で動く.すごい.でもエラー起こしたときにどこが悪くて怒られてるのかわからない.仕方ない.
ところではじめて本格的に ES2015 な記法に触れたんですけど JavaScript っぽくなさがやばいですね…….でも書いてたら慣れてきた.

ローカルに開発環境をつくる方法

webpack + React

検索して出てきた id:uraway さんの記事『Webpack + React + ES6の最小構成を考えてみる。』を大変参考にさせていただきました🙇🏻
(埋め込みで貼ろうとしたけど URL の途中でリンクとして認識されなくなってしまう……)

ESLint

% eslint --init
? How would you like to configure ESLint? Answer questions about your style
? Are you using ECMAScript 6 features? Yes
? Are you using ES6 modules? Yes
? Where will your code run? Browser
? Do you use CommonJS? No
? Do you use JSX? Yes
? Do you use React? Yes

てな感じ(あとは好み)で設定した上で,eslint-plugin-react の README にあるように,.eslintrc.js に

{
  "extends": ["eslint:recommended", "plugin:react/recommended"]
}

みたいな感じで書き加えてあげると,

import React from 'react';
import { render } from 'react-dom';

import Hello from './components/hello.jsx';
import World from './components/world.jsx';

render(
  <div>
    <Hello />
    <World />
  </div>,
  document.getElementById('app')
);

みたいなコードで React とか JSX 内でのみ使われている Hello, World が未使用だ,という警告が出なくなる.

Emacs でうまくやっていくための設定

なぜ Emacs か

JetBrains IDE の学生ライセンスがあるのでそれを使う手もあったんだけど非商用利用しかできないし,現状ちゃんとライセンスを買う気はない*1ので Emacs でやってみることにした.

(use-package web-mode
  :ensure web-mode
  :config
  (progn
    (add-to-list 'auto-mode-alist '("\\.html?$" . web-mode))
    (add-to-list 'auto-mode-alist '("\\.js[x]?$" . web-mode))
    (add-hook 'web-mode-hook
          '(lambda ()
         (setq web-mode-attr-indent-offset nil)
         (setq web-mode-markup-indent-offset 2)
         (setq web-mode-css-indent-offset 2)
         (setq web-mode-code-indent-offset 2)
         (setq web-mode-sql-indent-offset 2)
         (setq indent-tabs-mode nil)
         (setq tab-width 2)
         (setq flycheck-disabled-checkers
               '(javascript-jshint javascript-jscs))
         (when (member web-mode-content-type
                   '("js" "jsx"))
           (flycheck-add-mode 'javascript-eslint 'web-mode))))))

既に use-package を使ってある程度設定してたのでそこにちょちょっと書き足した感じ.もしかしたら要らないものとかあるかもしれない.

まとめ

やっぱりブラウザとか GUI とか見た目に動きがすぐわかるものを書くのは楽しい

*1:本格的に仕事はじめれば必要な道具なので買うなりするとは思う

2017年

あいさつと要約

迎えてしまいましたね.

昨年はいろいろ嫌なことがありましたがここに書く・書けるようなことでもないので特に言及しません.

今年は長かった学生生活もとうとう終盤,最後の 1 年を迎えるわけなので,まあそれを有意義に過ごしたい.

修論もいい感じにビシっと仕上げられればいいな. チャランポランやってた奴とかよりしょぼいもの書いたり発表したり,なんてのは絶対避けたいよなあ. 僕はこの程度の人間なのか,と自分を恥じたくない.自尊心が無駄に大きいんだろうな.

また就活もぼちぼち始まったし,まだいろいろ考えなきゃいけないことは多いんだけど, ここだ,と思えるところに就職キメられるといいなと思っています.

昨年はみなさまにはいろんな形でお世話になりました.今後もお世話になっていくつもりです. こんな僕ですが今年もよろしくお願いします.

抱負

大学における後進の発掘

僕はあと 1 年と少しで大学を出ていくのでどれだけ貢献できるかはわからないけど,専門的な知識や技術力を持ちながら不幸にも意識の低い学生の多い弊学にきてしてしまった id:atpons みたいな人間を見つけて未来を託していきたい(雑な表現).なお IGGG は技術コミュニティとしては瀕死状態になってしまった.これについては後で改めて記事書くなりしたいと思う.誰が悪いとかそういう話ではあんまりない.

僕が工学部キャンパスに来てからも技術的探究心を共有できる仲間をなかなか見つけられなくて張り合いがねえな,と思っていたときに手を差し伸べてくれた id:buu0528 という人がかつていました(こんな言い方をしてるが別に故人ではない).僕ももし昔の僕みたいなことを考えている人間がいるなら手を差し伸べて……なんか……なんかしたい.何ができるかは場合によると思うけど.

技術記事 20 本くらい

書きたい.アウトプットのクセをつけていきたい.365/20 = 18.25 なので 2.5 週間に 1 本書けば目標達成できるわけだ.就活や修論もあるので技術探求に時間をどれだけ割けるかはわからないけど,とりあえず年 20 本を目標にしていきたい

アプリかなにかを 1 つつくる

『群馬いち Python ができる』『大学いち技術力がある』とかなんとか言ってても・言われてても実績としてパッと見せられるモノがないしなあ,というのが悩みというか自分に欠けてるところだと思っていて,いい加減なにかひとつ,アプリケーションか Web サービスか,ライブラリとかでもいいんだけど,作ってみればいいんじゃないか,というわけでこれも目標にしてみる.

先にやるべきことがあるし,それなりにリソース使うことなので後手にまわってしまうかもしれないけれど…….卒業できないと困るし卒業してから何するの?って状態でも困るので.

その他,細々したもの

  • イライラしない,しても表に出さない,いつもニコニコしてたい
  • 心の広い人間,許せる人間になりたい
  • 僕の人間性を信用・信頼してくれている人間を裏切ったり,残念な気持ちにさせない
  • 臆病にならずに積極的に人間関係を構築していく.人見知りの克服
  • 初対面の人間,コンテキストをあまり共有していない相手とも打ち解けられる程度の会話スキルの習得,そのための汎用的な話題(本とかテレビ番組とか?)の収集
  • モテる男になる(は?)

サラっと書いたけど困難っぽいものも多い,ですが頑張っていきたい.

末文

2017 年は飛躍,でなくてもせめて来年以降のための助走の年にしたい,と思います. 今後も擬音をよろしくお願いします.

式が True / False そのものであるかどうかの Assert には assertIs(expr, boolean) を使う

おねがい

『何年 Python 使ってんだよ』『そんなんで仕事してたんかい』などといいながら棒状のもので叩くのはやめてください……言い訳をさせてもらうといままでだいたい文字列やバイト列の比較とかだったので assertEqual で事足りてたんです…….

本題

Django どんなもんだったかなって思い出したくてチュートリアル見直してた. Writing your first Django app, part 5 | Django documentation | Django で『False であるはず』の Assert に assertIs(expr, False) を使ってたんだけど,「あれ? assertFalse(expr) ってのもあった気がするけどこれじゃダメなの?」と思って調べてみた.

26.4. unittest — Unit testing framework — Python 3.5.2 documentation によると,assertTrue について

Note that this is equivalent to bool(expr) is True and not to expr is True (use assertIs(expr, True) for the latter).

とあったんだけど,bool(expr) is True と expr is True の違いについて数分本気で悩んでしまった.気づいてしまえばすごい単純なことだった(はずかし).次の実行例を見るとわかるんだけど,式が真(偽)と判定されるということと,式(の評価結果)が True (False) である,ということは等価ではない.

>>> if 1:
...  print('1 is treated as True')
...
1 is treated as True
>>> if 1 is True:
...  print('1 is True')
...
>>> if bool(1) is True:
...  print('bool(1) is True')
...
bool(1) is True

だから,expr は False であるはず,というつもりで assertFalse(expr) という assert を置いても,実際は expr が None だったり 0 だったりしてもこの assert をパスしてしまう. assertIs(expr, False) なら expr が False そのものであることが保証される.

まとめ

真であるか / 偽であるか,と True そのものであるか / False そのものであるか,は違うことなので,後者をチェックしたいなら assertIs(expr, boolean) を使うべき.

MATLAB MEX 指定したコンパイラーコマンドでコンパイルしてほしい

前提

Ubuntu 16.04(以下 Xenial)な共用マシンに MATLAB R2016a(以下 R2016a) が入ってる. C++ で書かれたライブラリを MEX する必要があった. ふつうに MEX コマンド実行すると g++ が呼ばれるんだけど,Xenial での g++ という名前のバイナリの実態は GCC 5.4.0 に含まれる C++ コンパイラになる. 一方で,R2016a が公式で対応してるのは GCC 4.7.x で,実際 g++ 5.4.0 を使って mex すると MATLAB が持ってる libstdc++.so が古いために MATLAB 上では動かないバイナリが生成される. Xenial では g++-4.7 というパッケージ名で g++-4.7 というファイル名の g++ 4.7.0 をインストールはできるけど,MATLAB に g++-4.7 をどう使わせるか,というのがこのエントリでする話.

解決法 1 - mex コマンドの引数に 'CC=gcc-4.7' を追加

既定のコンパイラの変更 - MATLAB & Simulink - MathWorks 日本 mexで使うコンパイラを指定する - Qiita ここらで言ってるように, $CC とか $GCC を変更すれば MEX はそのコンパイラを利用してコンパイルしてくれる.

問題点

  • 弊ラボの人間はこういうテクに明るくないので,いつでもこれを思い出して適切に MEX 呼び出しを書き変えられるかと言わるるとまあ無理だろって思う
  • わかっててもいちいち書き直すのは面倒

解決法 2 - 設定ファイルを書き変える

どこかのページではっきり解説されたりしてる方法ではないんだけど,$matlabroot/bin/glnxa64/mexopts/g++_glnxa64.xml の

    <locationFinder>
        <GCC>
                        <cmdReturns name="which g++" />
        </GCC>
        <CPPLIB_DIR>
                                <cmdReturns name="g++ -print-file-name=libstdc++.so"

てなあたりを

    <locationFinder>
        <GCC>
                        <cmdReturns name="which g++-4.7" />
        </GCC>
        <CPPLIB_DIR>
                                <cmdReturns name="g++-4.7 -print-file-name=libstdc++.so"

と書き変えると mex コマンドが g++-4.7 を使ってくれるようになった. たぶん,C とか Fortran も gcc_glnxa64.xml なり gfortran.xml なりを同じように編集すればいいんだと思う.

問題点とか

  • ~/.matlab/R2016a/mex_C++_glnxa64.xml が存在する(mex -setup すると生成される?)とここの設定がオーバーライドされるっぽいので,消しておく
  • 公式に案内されてる方法ではない気がするので,バージョン変わっても同じ方法でできる保証はない