min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

dカードGOLD 契約から半年でプリペイドカードにポイントチャージできた金額は?

前記事で、dカードGOLD契約から半年で獲得したdポイントは15,451ポイントであることが分かった。 

min117.hatenablog.com

しかし、dポイントのまま持っていても何の役にも立たない。大切なのはdポイントをプリペイドカードにチャージして、クレジットカードのように(支払いに)使える状態にすること。

min117.hatenablog.com

 

dカードGOLD契約者毎月ドコモ回線の利用料の10%がポイントバックされる。

現在

・ドコモ光の利用料 約5,500円 の10% → 550円

・ドコモケータイの利用料 約3,000円の10% → 300円

毎月約850円がバックされる状況にある。

f:id:min117:20180612003317j:plain

これまで

・2017年11月にドコモのプリペイドカードを入手し

・2017年12月のdカードGOLDの契約を経て

現在(2018年6月)にいたるまで、実際にポイントからカードにチャージできた金額の合計を計算してみる。

 

 

 

<2017年11月>

 それまでドコモ2つ折りケータイの契約(約15年)で貯めたdポイント(5,746円分)プリペイドカードにチャージして、直後にAmazonギフトカードの支払いに使った。

f:id:min117:20180612000440p:plain

 

<2017年12月>

 dカードGOLDを契約した。が、契約月なのでポイントはつかない。

f:id:min117:20180612001404p:plain

 

 

<2018年1月>

 ドコモ利用料として658円分Amazonギフト券に替えた)、入会特典としての9,342円分をポイントチャージできた。 

f:id:min117:20180612001450p:plain

 

<2018年2月>

 1,722円分1,067円分をポイントからチャージできた。何かの特典だったかもしれない。

f:id:min117:20180612001455p:plain

 

<2018年3月>

 ドコモ利用料として602円分をチャージできた。

f:id:min117:20180612001500p:plain

 

<2018年4月>

 ドコモ利用料として761円分をチャージできた。

f:id:min117:20180612001505p:plain

 

<2018年5月>

 ドコモ利用料として1,166円分をチャージできた。

f:id:min117:20180612001509p:plain

 

<2018年6月>

 ドコモ利用料として764円分をチャージできた。

f:id:min117:20180612001513p:plain

 

以上、青字を合計てみると

5,746 +

658 + 9342 +

1,722 + 1,067 +

602 +

761 +

1,166 +

764

f:id:min117:20180612002715p:plain

21,828円分 でした。なかなか良い買い物ができる金額。

 

でも実際は、すぐにポイント消費(Amazonギフト券を買った)したのもあるから、残高は少し下がって

f:id:min117:20180612002841p:plain

現在残高は15,424円分。これでもかなり良い買い物できる。

もうしばらく9月まで貯めたら新しいMacbookを買うのに使うことにする。

 

RaspberryPi3 で 初代プレイステーションを動かす

面白そうな記事を発見。

Raspberry Pi 2で初代Playstationを動かしてみる - がちゃのーと。

ラズパイ2で動かせたのなら、3でも動くだろう。

さっそく試す。記事のとおり進める。

 

まずは libsdl1.2-dev のインストール

$ sudo apt-get install libsdl1.2-dev

f:id:min117:20180610231917p:plain

あれ? is already the newest version(既に最新版がインストール済み)と出た。いつ入れたっけ?まあいいや。

 

 

次は github からエミュレータ本体(pcsx_rearmed)を落としてくる。

$ git clone https://github.com/notaz/pcsx_rearmed

$ cd pcsx_rearmed/

f:id:min117:20180610231840p:plain

 

gitのコマンドはよく分からないけど初期化とupdateをしているのだろう。記事のままコマンドを投入する。

$ git submodule init && git submodule update

f:id:min117:20180610231845p:plain

 

make前の ./configure を流す。

$ ./configure

f:id:min117:20180610231852p:plain

 

makeする。

$ make

f:id:min117:20180610231856p:plain

 

makeだからどうせかなり時間かかるだろうし。このまま一晩待つかな。

f:id:min117:20180610232355p:plain

 

と思ったら10分くらいで make が終わった。早すぎる気が…失敗か?

f:id:min117:20180610232510p:plain

 

makeされた実行ファイル(バイナリファイル)を移動してみる。

$ sudo cp pcsx /usr/local/bin/

$ ls -shal /usr/local/bin | grep pcsx

f:id:min117:20180610232711p:plain

何だか上手くいってるっぽい。

 

ジョイスティックの制御パッケージをインストール。

f:id:min117:20180610235126p:plain

 

ディスクのイメージファイルをRaspberryPi3 に転送。デスクトップに置く。

f:id:min117:20180611071351p:plain

 

起動する。

VNCでRaspberryPi3 に接続

f:id:min117:20180611071603p:plain

コンソールから pcsx を起動しイメージファイルを読み込ませる。

$ pcsx -cdfile IMAGE.img

f:id:min117:20180611071549p:plain

読んでいそうだけど、黒い画面のままだ…

f:id:min117:20180611071533p:plain

一度右上の×から終了する。

f:id:min117:20180611071703p:plain

再度起動…しない。

.imgファイルが悪いのか?調べる。

f:id:min117:20180611071718p:plain

 

VNC画面から目を離しリモートしている先のモニタのほうをフト見てみたら、なんと正常に画面が映っていた。VNCではゲーム画面は転送できないらしい。

f:id:min117:20180611212616j:plain

リモート接続ではなく、RaspberryPi をつないだモニタで直接遊ぶなら大丈夫そうだ。

f:id:min117:20180611212630j:plain

エミュレータで2つ起動してもCPU使用率はたったの16%ほど。

f:id:min117:20180611212815j:plain

プレステ本体もドリキャスも買ってよく遊んだもんだったけど。今ではこんな小さなボード1つで再現できてしまう。すごい時代になったものだ。

f:id:min117:20180611213331j:plain

RaspberryPi3 リモートデスクトップでWindowsに接続する

RaspberryPi3 からリモートデスクトップWindowsに接続する。

要は、この画面にWindowsの画面を表示したい。

f:id:min117:20180610110514p:plain

RaspberryPi(Raspbian OS)には、リモート接続ソフトウェアとして「VNC」がデフォルトでインストールされているが、今回はリモートデスクトップで接続したい。ついでにリモートデスクトップアイコンも作る

 

まずは RaspberryPi 3 にリモートデスクトップクライアントをインストールする。

$ sudo apt-get -y install rdesktop

f:id:min117:20180610111259p:plain

ssh 接続でインストールしてもいい。

f:id:min117:20180610110806p:plain

このへんも参照。

raspberrypi.akaneiro.jp

 

 

インストールしたらWindowsに接続する。コンソールを開いてrdesktop サーバアドレス」と打つだけ。

$ rdesktop 192.168.1.100

f:id:min117:20180610112049p:plain

ユーザー名やパスワードを都度打つのが面倒くさいので、接続時に自動で入力されるようにする。

このへん参照。

d.hatena.ne.jp

 

以下の条件で一発接続するためのショートカットを作る

 サーバ:192.168.1.100

 ユーザ名:admin

 パスワード:12345

 解像度:1024x768

 画面モード:フルスクリーン

デスクトップに rdesk.sh という起動スクリプトを置いて、内容に以下を記述する。

<記述内容>

rdesktop 192.168.1.100 -u admin -p 12345 -g 1024x768 -f

f:id:min117:20180610111836p:plain

コマンドでやるなら

echo 'rdesktop 192.168.1.100 -u admin -p 12345 -g 1024x768 -f' >> rdesk.sh

f:id:min117:20180610113011p:plain

このスクリプトに実行権限をつける。

$ chmod 777 rdesk.sh

f:id:min117:20180610113043p:plain

rdesk.sh をダブルクリックする。「Execute」を選ぶと実行される。

f:id:min117:20180610113055p:plain

フルスクリーンで Windows に接続する。

f:id:min117:20180610113425p:plain

これで普通のパソコンと変わらず使える。仮想環境に複数Windowsを用意しておいて切り替えて使える。便利。

RaspberryPi3 omxplayer を bashコマンドで操作する(mkfifo /tmp/omx-input)

RaspberryPi専用の動画再生ソフト omxplayer。

OMXPlayer Builds

言わずと知れたその性能は凄まじい。RaspberryPi搭載のGPUを余すことなく使ってスムーズに動画を再生してくれる。

 

例えば gakki2.mp4 という動画を再生するには、sshして以下のコマンドを打つだけ。

$ omxplayer gakki2.mp4

f:id:min117:20180604222914p:plain

 

RaspberryPi の HDMI につないだテレビで、即座に動画再生される。

f:id:min117:20180604222845j:plain

 

300円でMPEGキーを買えばハイビジョンも激速再生可能。

min117.hatenablog.com

 

そんな omxplayer での、動画再生の停止は Ctrl + C

f:id:min117:20180604223716p:plain

動画停止する。

f:id:min117:20180604223058p:plain

 

 

動画の一時停止は p

f:id:min117:20180604223813p:plain

一時停止するが

f:id:min117:20180604223855p:plain

f:id:min117:20180604223436j:plain

もう一度 p を押せば再生を開始する。

f:id:min117:20180604223936j:plain

 キー割り付け(Key binding)は公開されている。

OMXPlayer Builds

f:id:min117:20180604224523p:plain

 

この一連の流れをキーボードからではなくプログラムからやりたい。プロセスにコマンドを送ることで、一時停止したり再開したりしたい。長年望んでいてなかなか実現できずにいたのだが、fifoという機能を使えば実現できるらしい。素晴らしい記事があった。

takuya-1st.hatenablog.jp

 

 

 

 

記事のとおりやってみる。

まずは fifo ストリームを作る。

$ mkfifo /tmp/omx-input

f:id:min117:20180604225258p:plain

mkfifo は「make first in first out device」くらいの意味だろう。

平たく言えば /tmp の下に一時的な入力デバイスomx-input)を作ってるだけ。その入れ物の性質が fifo(first in first out)なものだと思っておけばよさそう。

 

次に、この fifoバイスに動画ストリームを繋ぐ。omxplayer が fifo からの入力を読み込むようにする。平たく言えば、omxplayerがキーボードの代わりに /tmp/omx-input からの入力を受け付けるようにする。標準入力を使う。 

$ omxplayer gakki2.mp4 <  /tmp/omx-input &

f:id:min117:20180604225906p:plain

input のあとに & をつけたのはバックグラウンド実行にするため。

 

あとはコマンドを送り込むだけ。

$ echo -ne p > /tmp/omx-input

f:id:min117:20180604230740p:plain

再生した!

f:id:min117:20180604230717p:plain

すごい。キーボードで「p」を押したのと同じ状態を作り出せる。例えば phppython から shell を呼んで「echo -ne p > /tmp/omx-input」すればomxplayerを遠隔操作できるということ。

f:id:min117:20180604231113j:plain

キーバインド 「2」を送り込めば倍速再生になる。

$ echo -ne 2 > /tmp/omx-input

f:id:min117:20180604231606p:plain

すごい。コレすごい。動画再生アプリすぐ作れる。とりあえず次記事ではphp実装してみる。

 

※ こんなすごい記事もあった。phpfifoを作れるらしい。

github.com

 

※ omxplayer を python から制御する方法もあるようだ。いずれ試す。

OmxplayerをPythonコードから停止させる

f:id:min117:20180604232025p:plain

 

dカードGOLD 契約から半年で獲得したdポイントの合計は? → 15,451pt

2017年末に dカードGOLD を契約した。

min117.hatenablog.com

契約により得たdポイントプリペイドカードにチャージすると現金のように使うことができる。この使い方は本当におトク。

min117.hatenablog.com

Amazonギフト券に交換することもできる。

min117.hatenablog.com

なので、dポイント自体はいろいろと使い勝手がよい。ここは否定しない。問題はそのdポイント自体がたまりやすいかどうかだ。

 

dカードGOLDの謳い文句(営業トーク)は

毎月dポイントが大量に還元される(ドコモ利用料の10%)のでお得!」

なんだけど果たして本当にそうなのか?

契約から半年で得た dポイント を計算してみる。

 

2017年12月 214pt

f:id:min117:20180602080908p:plain

2018年1月 11,454pt(契約特典)

f:id:min117:20180602080912p:plain

2018年2月 1,156pt

f:id:min117:20180602080916p:plain

 

2018年3月 784pt

f:id:min117:20180602080921p:plain

 

2018年4月 785pt

f:id:min117:20180602080926p:plain

2018年4月 1,058pt

f:id:min117:20180602080930p:plain

合計すると 15,451 pt

f:id:min117:20180602082055p:plain

dカードGOLDの年会費は10,800円だから初年度はモトが取れたようにみえる

 

しかしよく考えれば、これには特典としてもらえるハズの10,000ポイントが含まれてしまっている。入会から3ヶ月後の2018年2月に付与されているのがそれだ。

 

これは本来特典(プレゼント)なんだから、それを含めちゃおかしい。

「特典を除いた毎月の額が、年会費にペイするか」が大事なところ。2月の10,000ポイントを除いて計算してみる。

f:id:min117:20180602082848p:plain

入会から半年で5,451ポイント」か。

1年だと単純に倍になるとして 10,902ポイントf:id:min117:20180602083047p:plain

まあ、ギリギリ年会費はペイしそうだ。

 

ちなみに契約は二つ折りのFOMA携帯。ドコモ契約は15年以上なのでプラチナステージ。2018年4月までは「ゴールドステージ」の名称だったのが、ドコモの規定改定で「プラチナステージ」にさせられてしまった。

f:id:min117:20180602083614p:plain

毎月の利用料はほぼ一定。3,500円くらい。3月は「d払い」で買い物をしたので少し高く見えるだけ。

f:id:min117:20180602083433p:plain

プラチナステージで、d払いまで利用しても年間のポイントはわずか10,902ポイント程度しかない。それほど「オトク」な感じはしないのが正直なところ。

 

まあ、せっかく契約したし1年は使ってみるかな。

RaspberryPi3 Gitの脆弱性を見つけ出すプログラム(もりもり)を試す

Gitに脆弱性が発見されたようだ。CVE-2018-11235。

otameshi61.hatenablog.com

 

こんなのを作ってくれてる人がいた。

f:id:min117:20180602073412p:plain

Gitに脆弱性が発生したら「うんこもりもり」とコンソール表示してくれる。これは強烈。すぐに対処しなきゃ!となる

twitter.com

 

 

 

さっそく試す。このコードを打つだけ。

$ git clone --recursive https://greymd@bitbucket.org/greymd/cve-2018-11235.git

f:id:min117:20180602074056p:plain

なんてこった。思いっきり脆弱性があるじゃないか。もりもりだ。どうやら git から clone してきたタイミングで脆弱性の有無を判断してくれるようだ。

もう1回試してみる。

$ git clone --recursive https://greymd@bitbucket.org/greymd/cve-2018-11235.git

f:id:min117:20180602074217p:plain

'cve-2018-11235' already exists でエラーになる。すでに git clone したフォルダがあるからエラーになっている。フォルダ削除してもう一度。

$ rm -rf cve-2018-11235

$ git clone --recursive https://greymd@bitbucket.org/greymd/cve-2018-11235.git

f:id:min117:20180602074441p:plain

やばいくらいモリモリだ。

 

この出力を、前回記事でやった cowsay コマンドに食わせてみる。

min117.hatenablog.com

$ rm -rf cve-2018-11235

$ git clone --recursive https://greymd@bitbucket.org/greymd/cve-2018-11235.git | cowsay

f:id:min117:20180602074633p:plain

フキダシのなかでモリモリ言わせるのは難しそうだ。

早く脆弱性対策したいのに、するとメッセージ消えちゃうというジレンマ…

RaspberryPi3 fortune | figlet | cowsay でアスキーアート絵文字をウシにしゃべらせる

前回記事までの知見を合体するとこうなる。

min117.hatenablog.com

 

$ fortune | figlet | cowsay -n

f:id:min117:20180601000901p:plain

コマンドを叩くたびに文字列の内容(占いメッセージ)は変わる

 

 

 

~/.bashrc に記述して、起動時に毎回占ってもらうようにしよう。

f:id:min117:20180601001145p:plain

この記述を追加すればいいだけ。

"$PS1" && /usr/games/fortune | figlet | /usr/games/cowsay -n

f:id:min117:20180601001246p:plain

sourceコマンドで ~/.bashrc を読み直す。

$ source ~/.bashrc

f:id:min117:20180601000726p:plain

うーん、カッコ良すぎる。

 

さらに前回記事でやったコンソールGoogle翻訳するコマンドにパイプすれば、メッセージを和訳できる。

min117.hatenablog.com

 

$ for i in "`fortune`"; do echo "$i"; echo "$i" | figlet; echo "$i" | trans :ja "$i"; done

pi@pi3 ~/Desktop/translate-shell $ for i in "`fortune`"; do echo "$i"; echo "$i" | figlet; echo "$i" | trans :ja "$i"; done

You will soon meet a person who will play an important role in your life.

__   __                     _ _ _                         

\ \ / /__  _   _  __      _(_) | |  ___  ___   ___  _ __  

 \ V / _ \| | | | \ \ /\ / / | | | / __|/ _ \ / _ \| '_ \ 

  | | (_) | |_| |  \ V  V /| | | | \__ \ (_) | (_) | | | |

  |_|\___/ \__,_|   \_/\_/ |_|_|_| |___/\___/ \___/|_| |_|

                                                          

                     _                                             

 _ __ ___   ___  ___| |_    __ _   _ __   ___ _ __ ___  ___  _ __  

| '_ ` _ \ / _ \/ _ \ __|  / _` | | '_ \ / _ \ '__/ __|/ _ \| '_ \ 

| | | | | |  __/  __/ |_  | (_| | | |_) |  __/ |  \__ \ (_) | | | |

|_| |_| |_|\___|\___|\__|  \__,_| | .__/ \___|_|  |___/\___/|_| |_|

                                  |_|                              

          _                      _ _ _         _                           

__      _| |__   ___   __      _(_) | |  _ __ | | __ _ _   _    __ _ _ __  

\ \ /\ / / '_ \ / _ \  \ \ /\ / / | | | | '_ \| |/ _` | | | |  / _` | '_ \ 

 \ V  V /| | | | (_) |  \ V  V /| | | | | |_) | | (_| | |_| | | (_| | | | |

  \_/\_/ |_| |_|\___/    \_/\_/ |_|_|_| | .__/|_|\__,_|\__, |  \__,_|_| |_|

                                        |_|            |___/               

 _                            _              _               _        _       

(_)_ __ ___  _ __   ___  _ __| |_ __ _ _ __ | |_   _ __ ___ | | ___  (_)_ __  

| | '_ ` _ \| '_ \ / _ \| '__| __/ _` | '_ \| __| | '__/ _ \| |/ _ \ | | '_ \ 

| | | | | | | |_) | (_) | |  | || (_| | | | | |_  | | | (_) | |  __/ | | | | |

|_|_| |_| |_| .__/ \___/|_|   \__\__,_|_| |_|\__| |_|  \___/|_|\___| |_|_| |_|

            |_|                                                               

                          _ _  __        

 _   _  ___  _   _ _ __  | (_)/ _| ___   

| | | |/ _ \| | | | '__| | | | |_ / _ \  

| |_| | (_) | |_| | |    | | |  _|  __/_ 

 \__, |\___/ \__,_|_|    |_|_|_|  \___(_)

 |___/                                   

You will soon meet a person who will play an important role in your life.

 

あなたはすぐにあなたの人生で重要な役割を果たす人に会うでしょう。

(Anata wa sugu ni anata no jinsei de jūyōna yakuwariwohatasu hitoniaudeshou.)

 

Translations of You will soon meet a person who will play an important role in your life.

[ English -> 日本語 ]

 

You will soon meet a person who will play an important role in your life.

    あなたはすぐにあなたの人生で重要な役割を果たす人に会うでしょう。, あなたはすぐにあなたの生活の中 で重要な役割を果たします人を満たしています。

背景クロでわかりにくいので色を反転。

f:id:min117:20180601002211p:plain

「小さな部品は良い部品」「やりたいことは繋げて作る」

Linux最高。本当に。最高すぎる。