フィンランドで滞在許可証の更新 〰2021年

前回少し長めの滞在許可証をもらっていたので、久しぶりの滞在許可証の更新手続き。

さほど代わり映えしないなと書類などを準備してたんだけど、コロナの影響なのか申請システムに変更点が一つ。
EnterFinlandで電子申請をする際、オンラインバンクなどのセキュリティー認証システムが使える人は、移民局のオフィスでの面接がスキップできる可能性があるのだそう。
滞在許可証用の写真を写真屋で撮ってデジタルデータで送らないといけない、などの縛りはあるけれど、条件を満たす人にとっては面接スキップできるってのは結構大きなメリットなのではなかろうか。

私達の家族の場合は、嫁Xがオンライン認証を持っていなかったので前回までと更新手続きやら必要書類やらは変わらず。
むしろ面接の際に、直近6ヶ月の給与明細やら銀行口座の取引履歴などの追加書類を提出するように要請された。

オンラインシステムを簡略化してる分面接の方を丁寧にやってる、とかなのかな? まあ、たまたま、抽出検査に引っかかったのかもしれないけれど。

ついでに滞在許可証の更新許可までの時間も前回の時より少し長めにかかった。まあ最終的に貰えるならば時間がかかったとしても問題はないのだけど。

下リンクは前回までの滞在許可証を更新したときの手続き。

フィンランドで滞在許可証を更新するプロセス

フィンランドの滞在許可証の更新・2回目

D

MacOSをCatalinaにアップデートしたら日本語変換がおかしくなった

仕様なのかそうでないのかは知らないけれど、MacOSのアップグレードをしたらmac標準の日本語入力システム(ひらがな)が大変おかしなことになった。特に小文字系やらアルファベットに対してやたらと長文の変換をさせてこようとしたり、かな入力のときのアルファベットがなぜか違うアルファベットになったりーーちょっと鬱陶しいのレベルを超えて、タイプミスやら誤字脱字が頻出するようになってしまう。
もともと、最近のMacの日本語入力は評判良くなかったわけだけど、これではちょっと使い物にならない……ということで代替手段を探すことに。

Google日本語入力をインストール

適当にWebサーチして見つかったのはGoogle日本語入力。フリーの日本語入力だしMacで使えるし、まあGoogleだしってことで迷わずインストール。変換システムがMacネイティブとは少し異なるので慣れるまでに少し時間がかかりそうだけど、使い勝手に問題はなさそう。

ctr+shift+J,K,Lなどでアルファベットと日本語入力を切り替えられるのはMacネイティブの時と変わらず。ストレスフリー。というわけで暫くは日本語入力はGoogle日本語入力で行く予定。

2021/3/25追記:

カッコ開きのカッコのタイプ(「【『(に合わせてカッコ閉じをあわせてくれるのが地味に便利。マックネイティブのやつにはなかった。

D

 

Mac OS をcatalinaにアップデートしたらpyopenclにエラーが出るのでその対策

MacOSをアップデートしたらpythonプログラム走らせるのにエラーが出る様になった話。簡単に対応はできるけど、いつも忘れるので一応投稿しておく。

エラーは以下の様な感じ。

pyopencl._cl.RuntimeError: clBuildProgram failed: BUILD_PROGRAM_FAILURE

対策は

export PYOPENCL_NO_CACHE=1

をプログラム使う前にexportするだけ。

.bash_profile 

に書きこんどきゃいいのかな。あれ、macてzshに変わったんだっけ。.zshrcを編集しなきゃなのかと思ったら、bash_profileしか見つからない。んー、どうなってるんだろ。

2021/05/03追記:

Catalinaで違うPythonプログラム(pyFAI)を使ってたら似たようなエラーをくらったので追記。

上記のexportでは解決せず。というかこれはcatalinaの問題ではなく、プログラムの方のopenclの使い方の問題。

解決方法はpyopenclをUninstallして、macOSのOpenCLが使われるようにしただけで問題なく動いた。

どのOpenCL使うか指定するのでも良いかもしれないけど、やり方がわからなかったのでアンインストした。どこかで他のプログラムが動かなくなる予感はあるが。

D

電源ヒューズが切れた! in フィンランド!

二日酔いの朝に寝ぼけながら着替えていたら、ぶら下がりタイプの照明に腕を激突。明かりがブツっと音を立てて消えたので、これは照明のケーブルをやっちゃたかなあ、とだるめの二日酔いと合わせて憂鬱な気分になる。

しばらくそのまま朝のあれこれ準備してたんだけど、気付いたらWi-Fiが落ちていたり、他の電気製品が使えなくなっていたりーーこれは、照明が壊れたんじゃなくて、ブレーカーが落ちたのか、と思い当たる。

うちのマンションではブレーカーなどが入ってるブレーカーボックス(?)、は入り口近くについている。前のマンションでも大体同じ場所についてたから、大体そうなのかな。

写真の一番下のやつが大元のブレーカーで、これが切れてるだけっていうならスイッチを入れ直せばいいだけなんだけど、今回はブレーカーは落ちてない。

家の全部の電気が使えなくなったわけではなく、一部の電源が落ちてるだけだったので、どれかのヒューズだけが壊れたってので間違いはないのだろうけど……意外とどのヒューズがどの部屋と繋がってるのかはわかりにくい。あ、ちなみにヒューズは上の写真の円形の目玉おやじ見たいのをくるくる回すと中から取り出せる。

それで適当にネット検索したらヒューズが落ちた場合真ん中の円形のが飛び出してくるのだそう。なんとなくそれっぽいヒューズを1個取り出してみる。

あっ! これかっっ!!

ってことで、このヒューズを交換したら無事におうちに電源が戻りましたよって言うお話でした。

ちなみにブレーカーボックスの中に変えのヒューズはすでに準備されていた。前の住人が準備したのか、マンションの管理人が準備してたのかは謎。

D

python3のmatplotlibでグラフを出力する時のグラフサイズの調整

普段プログラム中でmatplotlibを使うときは、随所でplt.plot()でプロットしてplt.show()で確認しつつplt.savefig(bbox_inches=’tight’)で保存してって感じで使っていることが多い。

それはそれでいいのだけど、いくつかの同じタイプの絵をまとめて他の人に見せようと思ったら微妙に軸の長さがずれている。なんでかなってみてたら、X軸のラベルのサイズで全体のスケールが変わっていた模様。これをどうしたら直せるのかと、bbox_inchesとtight_layoutのオプションをいじりながら遊んでみたのが今回の投稿。

……ってなことをやろうと思って書いてたんだけど、書き終わってみたらbbox_inchesを普通に使うんで問題なかった。悲しい。なんで最初の絵ずれてたんだろ、多分変なことしてたんだと思う。

rcParamsでまずは全体のプロットの外観調整

plt.rcParams['font.family']='Arial'
plt.rcParams['font.size']= 14
plt.rcParams['axes.linewidth']=2.5
plt.rcParams['xtick.major.width']=2.5
plt.rcParams['xtick.labelsize']=14
plt.rcParams['ytick.major.width']=2.5
plt.rcParams['ytick.labelsize']=14
plt.rcParams['figure.figsize']=(4,4)

rcParamsを使うのがいいのかは知らないけど、大体のセッティングを最初にできるので大概のプログラムでは突っ込んでいる。figsizeが基本的に絵のサイズ。

plotはまあなんでもいいのだけど、一応以下のようなプロット。一応subplotsを使う設定で。

#Xラベルの長さを変える
Title = ['aaa','bbb','ccc','ddd','eee','fff']
#Title2 = ['aaaaaa','bbbbbb','cccccc','dddddd','eeeeee','ffffff']
data1=np.array([165,201,224,158,178,207])
Err1=np.array([1,4,1,2,4,10])
data2=np.array([380,420,418,435,412,409])
Err2=np.array([10,19,12,20,18,34])
fig, ax1 = plt.subplots()
ax1.set_ylabel('y1',fontname='Arial')
ax1.errorbar(Title,data1,yerr=Err1,capsize=10,marker='o',ms=11,color='orange',fillstyle='none',linestyle = 'None')
ax2=ax1.twinx()
ax2.set_ylabel('y2',fontname='Arial')
ax2.errorbar(Title,data2,yerr=Err2,capsize=10,marker='D',ms=11,color='b',fillstyle='none',linestyle = 'None')

このプロット用の描画設定。

ax1.tick_params(axis ='x', which ='both', top='off',bottom='off', pad=10)
ax1.set_ylim(150,250)
ax1.set_yticks([150,200,250])
ax1.tick_params('x',labelrotation=90)
ax2.set_ylim(250,650)
ax2.set_yticks([200,400,600,800])

絵のセーブのオプションでサイズの最終調整。

bbox_inchesの場合。

fig.savefig('FIGURE/test1.png',bbox_inches='tight')

bbox_inchesでpad_inchesも0にして。

fig.savefig('FIGURE/test2.png',bbox_inches='tight',pad_inches=0)

tight_layoutを使って。

fig.tight_layout()
fig.savefig('FIGURE/test3.png')

ちなみにpyplotからplt.savefigにしても違いはない。

1個目。

test1

2個目。

test2

3個目

test3

 

というわけでbbox_inchesを使っておけば問題ない。

むしろtight_layourt()の方がラベルサイズとか揃ってないプロットにはよくなさげ。画像の全体サイズを合わせたいならこっちだけど。

下のように軸の高さ・幅を抜いて割らないとってなぜか最初に思ってたんだけど、別にそんなことはなかった。

width = ax1.figure.subplotpars.right-ax1.figure.subplotpars.left
height = ax1.figure.subplotpars.top-ax1.figure.subplotpars.bottom
ax1.figure.set_size_inches(4/width,4/height)

まあ、あとで何かに使えるかもしれないし、一応載せておく。任意の長さに軸サイズを調整したいって時なんかに使えるのかな。

うん、久しぶりにちょっと意味不明な投稿だ。

関連記事

1. pythonのまとめ

D