粗大メモ置き場

個人用,たまーに来訪者を意識する雑記メモ

Python文字列で書かれた行列・配列を数値に変換したい(jsonの読み方も含む)

正直いい方法がないか教えてくださいって感じです。

問題の全貌:なんでテキストで行列保存するねん。

jsonファイルとか最近読み込まなきゃいけない時があるのですが,そこからちゃんとデータを読み出すの大変じゃない?
ってお話です。
"[1.1,2.2]"っていう文字列から配列に起こすのが面倒というので

jsonファイル読み出し

例えば次のようなjsonファイルがあったとします。

{ 
  total: "15", 
  page: "1", 
  records: "15",
  rows :
  [
    {cell:"[1, 1]"},
    {cell:"[2, "2]"},
    {cell:"[15, 15]"},
  ]
}

読み出しはpython

import json
with open('data.json') as data_file:    
    data = json.load(data_file)

以下のように書かないのは用がないなら開いたらすぐ閉じるべきという思想があるのでしょう。

f = open('data.json', 'r')
jsonData = json.load(f)

該当データへのアクセス

基本的には,
total: "15", ...となっていたら

a = data[total]

とすればaに "15"が格納されるという仕組みです。

階層構造になっている場合はdata[hoge][fuga][]...とつなげていきます。
また,カッコが{でなくて[になっている場合は配列ですので

b = data[rows][0][cell]

とうてばbに"[1, 1]"が格納されます。
はいではこれをどうしましょうという話です。

python文字列から数値へのキャスト

単一の数字なら簡単です。int()やfloat()に文字列をぶち込むだけです。

文字を並べたときのキャスト

"1.1,2.2"ときた場合はこう上手くは生きません。
そういうのはcsvにしてくれよ…。

numpyを使うと楽になるとか。

>>> np.fromstring('\x01\x02', dtype=np.uint8)
array([1, 2], dtype=uint8)
>>> np.fromstring('1 2', dtype=int, sep=' ')
array([1, 2])
>>> np.fromstring('1, 2', dtype=int, sep=',')
array([1, 2])
>>> np.fromstring('\x01\x02\x03\x04\x05', dtype=np.uint8, count=3)
array([1, 2, 3], dtype=uint8)

解決策(Not smart)

しかしてこの解決策は以下のようになる...のかなぁ
Python 2.7 convert 2d string array to float array - Stack Overflow

あとはnumpyから配列へと変換をしちゃえばっと。

解決策(Not smart)

astとjsonをロードしたあわせ技があります。短いですが欠点はevalを使っていること。
stackoverflowでも非難されていました。

numpy.array(ast.literal_eval(', '.join(data.split(' '))))

convert string representation of array to numpy array in python - Stack Overflow

多分これで動くけど私は結局ヒューマンデコードしましたよね。(クソ)(技術の敗北)(人間はかしこいのです)

関連して

似たような問題も知っておくとイライラを防げそうです。
python - Convert string to numpy array - Stack Overflow

Docker を用いて ROS 環境構築

最近ROSをちゃんとはじめようとチュートリアルとかとにらめっこしています.
ROSといえば昔なんとなくで導入したらAnacondaの他のPython環境とブッキングして大変な目に合ってからさわってません.
ossyaritoori.hatenablog.com

他の環境とのブッキングを避けていろいろやりたいという背景からDockerを使用しています.
Virtualenv?知らね.

Dockerのインストール

公式のDocumentに従ってください.
日本語化してもいいけど面倒なので...
docs.docker.com


ROSのイメージをPull

ROSのイメージをさくっとpullできます.
docker/Tutorials/Docker - ROS Wiki

以下のコードを実行しますが,Permissionがなかったのでsudoでやりました.

docker pull ros

Permissionが無いと言われたら?

https://techoverflow.net/2017/03/01/solving-docker-permission-denied-while-trying-to-connect-to-the-docker-daemon-socket/

以下のとおり.$USERは自分のUSER名を用いてください.

sudo usermod -a -G docker $USER

終わったら再起動するのが安心です.

使い方

初回は

docker run -it ros 

でrosのイメージを起動してください.

その後別のターミナルでIDなどを確認します.

docker ps -l

僕の環境ではこうなりました.

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
1b38c11303cd        ros                 "/ros_entrypoint.s..."   2 hours ago         Up 14 seconds                           lucid_sinoussi

Dockerを立ち上げるときはこちら.<ID>は変えてね.なお,複数ターミナルからstartしないよう注意.

sudo docker start -i 1b38c11303cd

そして立ち上げたDockerに入るときはこちら.IDは(略).こちらもstartされてないコンテナには入れませんので注意.

sudo docker exec -it 1b38c11303cd bash

出るときはexitで出ます.
正しく動作するはずですが正しい手順かはしりません.

ROSテスト

書いてから思ったのですがROSのチュートリアルをある程度読んでいる前提で記事を書いています.
何もわからない人は,とりあえずなんか動いていることを確認したら後はご自由に.

startしたターミナルでMasterプログラムを走らせましょう.

roscore

これは簡単.
(はじめての人へ:これはサーバ的なプログラムでこれを立ち上げて他のターミナルからこいつにアクセスします.プログラムが待機状態になりっぱなのは仕様です.)

なお,execを用いて客として入った?場合は以下のコードを実行しないとROSのコードを実行できません.

source /opt/ros/kinetic/setup.bash 

ああん?

rostopic list

でroscoreが動いていることを確かめればOK.

LaTeXとPPTで名刺を作る(geometry.sty使用)

【書きかけ】
市販のA4名刺用用紙10枚(1枚で名刺10枚分)で450円弱なので4.5円/枚で名刺が作れます。

TeX環境とイラスト作成ソフトさえあれば名刺を簡単に作成できます

どうしてこの組み合わせ?:LaTeX+PPTの可能性

名刺作成ソフトはフリーや市販であるけども,「デザインの柔軟性が足りない」と聞きます。

そもそも使い慣れたデザインソフトを使って「名刺をデザイン」したいのは当然の欲求でしょう。
また,名刺用紙に印刷するには先の画像を適切な位置に配置して並べる必要があります。
作成した配置を数値的に制御してかつ機械的に並べるのであればTeXは強力なツール足りえます。

今回用いる用紙はこちら。(用紙メーカごとに違うので注意)


手順は

  • 名刺の寸法に合わせた画像を作成
  • 用紙のサイズに合わせて画像を配置

の2点です。

PPTで名刺を作成する

私はPPTが一番敷居が低いのでPPTで作っています。
サイズやテンプレートは探せば出てくるでしょう。
PowerPoint(パワーポイント)で名刺を作成する3つのメリットと正しい手順を徹底解説! | 【デザイン無料】格安名刺作成サービスのおすすめランキングTOP10!

一応書いておくと91mm×55mmです。長いほうが横です。

PDFにエクスポート

後にTexで図として配置するのでPDFでエクスポートします。
形式は何でもいいですがPDFにするのが一番使い勝手が良いと思っています。

support.office.com


TeXで名刺画像を配置

以下のような名刺用紙を用いて自分で印刷をすることを想定しています。

ここが今回の記事のミソです,

なお,今回のコードは下記リポジトリにて最新版を公開しています。

github.com

従来法:電通大のセット

基本的なLatexの使い方がわかるなら以下の名刺作成セットを使うことができます。
Uchida and Tajiri Laboratory | 電気通信大学 大学院情報理工学研究科 情報・ネットワーク工学専攻 電子情報学プログラム

欠点としておまじないを唱えているという点があります。
言外の意味は無いですが以下のような黒魔術を唱えるのはTeX使いとしては回避すべき事象です。

¥setlength{¥textwidth}{182truemm}
¥setlength{¥hoffset}{0in}
¥setlength{¥voffset}{0in}
¥setlength{¥headheight}{0in}
¥setlength{¥headsep}{0in}
¥setlength{¥oddsidemargin}{14truemm}
¥setlength{¥textheight}{275truemm}
¥setlength{¥topmargin}{16truemm}
¥advance¥oddsidemargin -1in
¥advance¥topmargin -1in
¥setlength{¥footskip}{0in}

以下のサイトで丁寧に説明してくれてますがでもやりたくないものはやりたくない。
mono96.jp

提案手法:geometry.styを使う

そこで過去記事のgeometry.styを使えば上の呪文は次のように合理化されます。
ossyaritoori.hatenablog.com

\usepackage{geometry}
\geometry{left=14mm,right=14mm,top=11mm,bottom=11mm}

用紙ごとのマージンをきちんと読み取り上記のように入力することで正しく図を配置可能です。
あとはfigure環境で

\includegraphics[width=1\linewidth]{名刺.pdf}

としてめいいっぱい画像を貼り付ければそれで完了。

コード置き場

TeXは画像置き場として使うので,最低限のプリアンブルで作成可能です。
m1とm2はそれぞれ名刺の表と裏の画像です。

ページ番号を消す為にemptyをしていしています,

\documentclass[a4paper,10pt,twocolumn]{jarticle}
\usepackage[dvipdfmx]{graphicx}
\usepackage{geometry}
\setlength{\columnsep}{0zw}
\geometry{left=14mm,right=14mm,top=11mm,bottom=11mm}
\pagestyle{empty}

\begin{document}
	
\begin{figure}[t!]
	\centering
	\includegraphics[width=1\linewidth]{m1}
	\includegraphics[width=1\linewidth]{m1}
	\includegraphics[width=1\linewidth]{m1}
	\includegraphics[width=1\linewidth]{m1}
	\includegraphics[width=1\linewidth]{m1}
\end{figure}
\begin{figure}[t!]
        \centering
        \includegraphics[width=1\linewidth]{m2}
        \includegraphics[width=1\linewidth]{m2}
        \includegraphics[width=1\linewidth]{m2}
        \includegraphics[width=1\linewidth]{m2}
        \includegraphics[width=1\linewidth]{m2}
\end{figure}
\begin{figure}[t!]
	\centering
	\includegraphics[width=1\linewidth]{m1}
	\includegraphics[width=1\linewidth]{m1}
	\includegraphics[width=1\linewidth]{m1}
	\includegraphics[width=1\linewidth]{m1}
	\includegraphics[width=1\linewidth]{m1}
\end{figure}
\begin{figure}[t!]
	\centering
	\includegraphics[width=1\linewidth]{m2}
	\includegraphics[width=1\linewidth]{m2}
	\includegraphics[width=1\linewidth]{m2}
	\includegraphics[width=1\linewidth]{m2}
	\includegraphics[width=1\linewidth]{m2}
\end{figure}

\end{document}

長期渡航はWiFiかプリペイドSIMか?

海外でネットを使う際には基本的にwifiを借りるのがメジャーだと思っていたのですが,
長期渡航になるとお金がかさばりますね。

Global Wifi の長期プラン

比較的短期ならwifiも選択肢に入ります。
個人的によくつかうGlobal Wifiは60日のプラン:36000円までしかWebに載っておらず,それより高いプランは
電話で相談というふうになっています。
https://townwifi.com/longplan/


問い合わせた所,90日プランが54,000円でしたので
月数×18000円 と考えたほうが良いでしょう。
なお,ここから更に保険や追加サービスの値段が載る物と思われます。

利点は

  • 複数の端末を特に細かいことを気にせずにつなげる
  • とにかく面倒事が少ない

おまけですがRICHOのThetaという360度カメラを借りたときはとても重宝しました。
短期なら十分に選択肢に入ると思います。

欠点

  • 高い。補償とかサービスつけて稼ごうとしてくる。
  • ルータの電池切れの問題

プリペイドSIMを使う方法

安いのでこれを推奨したいのですが注意点があります。

利点

  • 安い。長期渡航ならこれ一択ってくらい。
  • 電話が使える。SMSが無料なものもある。

欠点

  • 知識と対応デバイスを持っている必要がある。

チェック:SIMフリーの端末か?バンド帯は合っているか?

他社の回線を使うため携帯やwifiの端末をよくチェックする必要があります。

  1. まず,AUDocomoSoftbankの大手3キャリアを使っている人は自分の携帯が他社の回線を使えない設定(SIMロック)になっていないか確認しましょう。
  2. SIMフリーの携帯orロック解除した携帯を持っている方は,自分の端末と使用するSIMの周波数帯がマッチしているか確かめましょう。
    1. 「携帯機種+バンド」などの検索で以下のような表記を探します。f:id:ossyaritoori:20170728172141p:plain
    2. LTEならどの番号のバンドが拾えるか。他のも各々の手法での周波数の対応を示しています。これとSIMの規格が合致するかチェックです。
  3. 使いたいSIMに対応する電波が現地で拾えるか。この調べ方は次に示します。

「難しくね!?」
そうです難しいです。まずSIMについてよく知らない人は辞めるか少し勉強したほうが良いでしょう

ざっくばらんにいうとiPhoneならだいたい大丈夫です。(責任は取らないよ)
上の画像はiPhoneSEのスペックですが大体網羅しています。

SEのSIMフリーなら5万円しないのでこの際買ってしまってもいいかもしれません。
iTunesは相変わらず不満が多いですが。
www.apple.com

現地で買う

じゃあどこでSIMを買うかという話ですが,
現地のWalmartやショップで携帯や自前のルータにさすSIMを購入できます。
T-Mobileなどの会社が安牌らしいですね。現地で売ってるので当然現地で使用できるはず。はずです。

あと,空港は高いので節約的にはNGです。

現地で買っている人の話(アメリカ)↓
アメリカでプリペイドSIMを使う その5: AT&TのプリペイドSIMカードを購入! | メモ置場のブログ

チャージ型はある意味安心できる…かな?

フランスで店舗で買った人の話
blog.tokor.org

Amazonで事前に買う(推奨@アメリカ)

実は日本国内で買って行ったほうがSIMが安いとの情報を入手しました[参考文献未登録]
実際に以下のSIMをみてもらうと安いのがわかります。

wifiと同じ価格を払えるなら10枚×3Gで30GBは使えますね(ギガー)。使わないけど。訂正,これは30日間通信し放題プランなのでたくさん買う意味なさそうですね。
他にもZIP SIMというのもあります。

こういうのはきちんとレビューを読んで行くと良いですね。

補足:携帯ごと借りる

後は携帯ごと買う,借りるという手法もあります。
調べきってないので話題だけ提供。

筆者の場合

私は西海岸に2ヶ月+α行くので
以下のを2~3枚事前に買って持っていくことにしました。

「(西海岸で)快適に使うにはバンド2と4の対応が必要」
とのことでしたがiPhoneSE 使い的にはバッチリです。

到着後の空港のwifiアクティベーションして使い続けるつもりです。
3ヶ月分でも12600円なので相当節約できることがわかりますね。

あと,SIM保管用に粘着ケースを買おうかなと思ってます。どっちがいいかな~。

財布に入るやつも捨てがたいです。

多分粘着式のやつ買います。

渡航用の便利なサービス集

海外渡航用の便利サービス集メモです。
とりあえず書きかけで置いておきます。

Expedia

言うまでもない航空券予約サイトです。
複数の航空会社にまたがって最安値を探せますが,キャンセルや変更の融通がとても付きづらいのには注意。

アプリとの連携で空港へのチェックインが秒で終わるので使ったことのない人は是非。
www.expedia.co.jp


民泊サービス Airbnb

ホテルより安上りに泊まれる宿として紹介していきます。
体験スポットなども探せるようです。
www.airbnb.jp

一般のホテルより安く良い施設を使えるのとホームステイ感を感じれるかもしれません。
ホストー会社ーユーザのような感じで全てのやり取りをAirbnbが仲介してくれるため安全性もまぁまぁ高く,領収書なども出してくれます。


同種のより汎用的なサービスとしてCraiglistがありますが,あちらは口約束の範疇に収まっており,実際に内覧や電話など密な連絡が必要なところが違います。
なお,あちらのほうがやや安価かつロングステイを望まれる傾向にあります。
craigslist: 東京 求人,アパート,個人,売り,サービス,コミュニティ,イベント

やりとり

家にはOwnerがいるので英語ないし現地の言葉で交渉をする必要があります。
www.rarejob.com

民間タクシー Uber

こっちは民間タクシーです。
国内ではタクシー会社が代理しているような感じですが,アメリカで乗ったときは綺麗目の自家用車の後ろに載せてもらう感じになります。
https://www.uber.com/ja-JP/

旅先でタクシーを拾うのは時々リスキーかつ探す手間があります。
メリットとして

  • ネット環境にさえ繋がっていれば運転手を呼べる
  • 支払いがクレジットなので面倒がない
  • 車がどこまで来ているのかすぐわかる

といったものがあり,公共交通機関の少ない郊外で役に立つでしょう。

なお,SMSを介した本人確認があるため「国内でアプリ登録を済ませておくこと」をおすすめします。
格安スマホはどうなるのかよくわかりませんが。

OpenTable

御食事処予約サイト,の認識でいます。
オンラインで国内にいながら飲食店の予約がとれます。便利。
レストランの情報とオンライン予約 | OpenTable [オープンテーブル]

海外に出張・留学する際の備忘録

海外渡航や留学はいつやってもとても不安になります。ましてや初めての渡航ならなおさらです。

大体半年前くらの時系列から始めて出発前までの確認事項についてまとめてみます。(完全ではないので悪しからず。)

1年前~半年前:渡航費の申請をしよう

全て自費で渡航費を出す!という人はもう少しダラダラしていて問題ないです。
会社からお金が出る人も,今一度渡航費が何処からどういう理屈で出るのか確認しておくことをおすすめします。
問題は学生ですが,財団への申請締め切りが大体この辺なのでどのような財団にアクセスできるかきちんと調べておくべきです。

財団にお金をもらうには,「留学・渡航の理由付け」と「成績や成果」の証明をする必要があります。
特に学生は成績で選別されることも多いので普段から良い成績を維持しておくに越したことはありません。

ただ,成績が良くなくても申請できる団体は多いです。 諦めないように。
また,事前にお金の面倒を見てくれるのが前提な留学プログラムもあります。
大学の国際交流課などに問い合わせてみるのも手でしょう。

語学留学等

大学の学部生だとこの辺が多いかもしれません。
「海外留学推進協会」海外留学を無償支援する一般財団法人

研究助成関係

研究助成は特に締め切りが早めなので学会にAcceptされたらすぐに申請書を書いたりする必要があるでしょう。
研究助成財団:締切り順

3ヶ月前くらい:ビザ,滞在許可の申請

短期の場合は必要ない場合が多いです。飛ばしてどうぞ。
ただし,アメリカ合衆国に行く際はESTAの申請を忘れないように。
Home | Official ESTA Application Website, U.S. Customs and Border Protection


細かい書類の要件はともかく,この時点で揃っていて欲しいのは,
「パスポート」,「滞在先の受け入れ証明書」でしょう。すなわち,ほぼほぼ具体的な日程が決まっていて欲しいのがこの時期です。
これが確定していない場合のんきにことりっぷとか買っている場合ではない。

ビザを取る際に

一ヶ月を超えるくらいの滞在になるとビザの発行が必要になる国が多いです。
面倒な書類を揃えたり,滞在先にプログラムの詳細を発行してもらったりやることはたくさん。
ビザ取得を代行・サポートする会社もあるので必要に応じて手伝ってもらうのもありです。
査証|ビザ申請代行 | 旅行関連事業 | ATC


とにかく「過去に行ったことのある人」や「大学の国際交流課の人」に相談するのが最初にすべきことのような気がします。
これも早めに!
私の場合2ヶ月半前くらいにはじめてくっそギリギリでした。USAめんどい。

航空券の取得は早めが得

航空券は一般に早いほど安いものが手に入りやすいです。

具体的に,私の過去の経験で言うと米国への往復航空券では以下のように4万くらいの差が出てしまいます。
3ヶ月前の最安値:9万弱
1ヶ月前の最安値:13万弱
日程が確定している場合は早めに取るのが良いでしょう。

個人的にはExpediaをよく使いますが,キャンセルや変更の融通が効きにくいので慎重にやりましょう。

Expediaで調べて安かった会社のHPで直接発券がマイトレンドです(楽ではない)。

一ヶ月前~:出発に向けて

この時点で

  • 航空券・宿泊予約
  • パスポート・ビザ
  • 財団の通知(あれば)
  • 海外旅行保険
  • 荷物

のうち足りないものを埋めていく必要があります。

スーツケースや荷物

個人的経験ですがスーツケースは小さめのものであれば高級なものでなくても十分保ちます。
ド●キで買った5000円くらいのケースが6年近く現役な私が言うので問題ない。(Mサイズ)

大きいモノは比較的良品を飼う必要がありそうです
スーツケースや旅行かばんやトランクケースの選び方
私は口コミを見て「Travelist」という会社のものを購入しました。
まだ使ってないけどキャスターの性能が良いらしいです。
96Lの持ち込みギリギリサイズが良さげ。

以下Amazonリンク


海外旅行保険

保険は任意加入ですが,プログラムによっては強制的に加入を義務付けられます。
AIU留学保険等がお手頃でしょうが,実は最低限の保険はクレジットカードに付帯することがあります

楽天カードやEposカードには三井住友海上火災保険株式会社等の会社が管理する保険が付帯します。
特に申し込みは必要ありませんが,保険証の発行には通常1~2週間程度かかるので注意です

総括

言いたいことは一つ。
貴方の渡航に最も詳しい人に相談しましょう。具体的には先人に相談です。

感想

何をするのにもお金がかかるのだなぁ みつを

携帯でビザ用の証明写真を撮る&コンビニ30円印刷

最近暑すぎて語尾がおかしくなっちゃうね。
(最近色々あって語尾の乱れた記事になっております。)

携帯電話で証明写真はとれま~す!

うんそうだね。以下のサイトをみると良いよね。
dekirundesu.jp

  • 携帯のカメラなどで証明写真を取る
  • 加工してコンビニのL版プリント

の2コンボで終了だよ。

でもサイズ調整とか加工とかちょっと面倒だよね。

初心者向け

初心者はスマートフォンのアプリを使うと良いよね。
例えば以下のようなアプリが良いんじゃないかとおじさん思うよ。
全文表示 | 証明写真1シート=4枚30円で作れちゃう! 無料アプリ「履歴書カメラ」が凄い : J-CASTトレンド

は?サイズ合わねぇんだけど?

そういうこともあるよね。よくある証明写真のサイズなら探せばあるかもしれないよ。

でも面倒だし折角なので作っちゃうことにしたよ。

L版のサイズ

以下のサイトによると一般的なL版と呼ばれるサイズは89mm×127mmになっているよ。
300dpiの画素数にして1051×1500ピクセルだね。
L版(L判)のサイズ - 用紙サイズ一覧.com

以下のサイトのようにちょっと値が違うこともあるけどまぁアスペクト比が合っていればどうということはない
写真プリントをキレイにプリントするコツはこちら!|Digipri(デジプリ)
f:id:ossyaritoori:20170716124846p:plain

ビザ用のテンプレ

これは各人調べてほしいけどアメリカ大使館では51mm四方のものを求められるよ。
さっきのL版に入れるとなると横に2つ並べられるサイズだね。
1051×1500だと602ピクセル四方のサイズになるよ。

ということでペイントでつくった台紙がこちらになります。

なお,拡張子はjpgやpdfを求められる場合が多いからjpgにしたよ。
f:id:ossyaritoori:20170716130056j:plain
この四角の枠がちょうど見えなくなるくらいに顔写真を加工して張れば証明写真の完成ってわけ。


それでは皆さん良い証明写真ライフを!