sshログインから見たGoogle cloud shellとGoogle Compute Engine(GCE)の違い

Google cloud platform には Google cloud shellというサービスがある
cloud.google.com
説明は上記公式サイトに頼るが、要はsshログインできるLinux環境をgoogleが無料で提供してくれるというサービスである。ブラウザ上で動くエディタも提供されるので、これひとつでリモートで開発できるという便利なものである。

さて、これとは似たようなものであるが「Google Compute Engine(GCE)のVMインスタンへのsshログイン」というサービスもある。同じような環境であるが、これは有料である。課金はVMインスタンスへのものと同様(あるいはプラス)で通信にもCPUにもかかる。
分かりづらいのは、GCEの最低環境が実質無料になり、24時間ログインしっぱなしでも無料の設定ができることである。
結局の所もどちらもIaaS(VPS?)へのログインであはるのだが、この「どっちも無料」のせいで「どっちでもいいんじゃね?」あるいは「どっちを使ってるか意識しない」事情が発生していると思う。

ちなみに起動方法も違うので画像で説明するとこうなる
f:id:miz999:20180426194813p:plain

Google cloud shellのメリット

  • 完全無料
  • google cloud platform関連のツール(gcloucdとか)がプリインストール済み
  • GUIのエディタも使える(viやemacsに慣れてない人には朗報)
  • ちなみにuname -aは Linux cs-6000-devshell-vm-3f06ec54-2b97-418f-a525-f45bc6eac544 3.16.0-5-amd64 #1 SMP Debian 3.16.51-3+deb8u1 (2018-01-08) x86_64 GNU/Linux

開発イメージ
f:id:miz999:20180426203320p:plain
上半分はエディタのゾーン

Google Compute Engine(GCE)のメリット

  • OSを選べる(debianやらFreeBSDも)
  • メモリ、ディスク等の環境構築が柔軟(追加課金がいるが)
  • ssh鍵が分かり、ログイン先のIPアドレスが分かれば、teratermやJuiceSSH(Androidsshアプリ)を使ってのログインも可能
  • Google製のAndroidアプリのCloud Consoleからもターミナルが開いてログインできる(この場合、鍵やIPアドレスはいらない)

開発イメージ
f:id:miz999:20180426203410p:plain
厳密にはこのキャプチャはgloudからのputty起動なのだが、こんな感じということで

これだけ見るとGCE使えばいいじゃんと思われるだろうが、本当にそうなのだ。
あえてGCEのデメリットは

  • 下手な操作をして大量の通信(中国への大量の送信など)を発生させてしまうと青天井課金もありえる
  • 上記も踏まえて、ハッキングされた時のリスクが面倒
  • OSからの管理なので、aptのアップグレードが結構ある。Ubuntuは半年に一度の大型アップグレードも。逆にこれはガチガチに環境を固められてるGoogle cloud shellにとってデメリットとも言える。面倒な自由と管理された不自由問題。

課金のことを考えるとgoogle cloud shellの方がいい気もするが、古くからのsshでターミナルログインの人なら、使い慣れてるターミナルソフト使えたほうがいいし、とにかくブラウザ上でのターミナル操作は重い。
他のGCE上のインスタンスにデプロイする場合どうなるかとか見通しの問題もあるのでcloud shellを頂点としてぶらさがるGCEという環境のほうが見通しがいい気もするが。

とにかくどちらがどうとか説明しづらい。cloud shellが鍵とIPアドレスでログインできるようになってくれると嬉しいのだが。

Google Cloud Platform関連はとにかく日本語の情報が少ないのでなにか大きく間違ってる気もするが、それが間違ってるかどうかも気づかずに流れていきそうな

ヤフオクのAPIがイマイチ信用できないものだったことに今更気づく

ヤフオクAPIサービスが終了することを以前に知ったのだが
miz999.hatenablog.com

で、ロウソクの炎がどうたらみたいに今更しっかり使っていると、APIがあまりうまく動いてないことに気づく。

たとえば、あるカテゴリーの全件取得(関係ないが入札順)のURLはこんな感じ

http://auctions.yahooapis.jp/AuctionWebService/V2/categoryLeaf?sort=bids&output=xml&appid=(隠す)&category=2084053583

で、xmlの一部がこれ

<ResultSet xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns="urn:yahoo:jp:auc:categoryLeaf" xsi:schemaLocation="urn:yahoo:jp:auc:categoryLeaf https://auctions.yahooapis.jp/AuctionWebService/V2/categoryLeaf.xsd" totalResultsAvailable="290" totalResultsReturned="20" firstResultPosition="1">

totalResultsAvailableの結果から、このカテゴリーに290件あるように見える

が、これを本来のwebページで見ると
https://screenshotscdn.firefoxusercontent.com/images/1f2f81c5-d062-4efc-b6f7-d7c705c5d4ea.png

2165件あることが分かり、APIだと10分の1程度しか取得できてないような気がする。
(ちなみに初めて、firefoxスクリーンショットサービスを使ってみた。はてなスクリーンショットアドオンがほぼ死んでるので乗り換えは決定的かな)

今更ではあるが、こういう不具合があったからサービスを停止するのかもしれない。

ヤフオクは10年以上に渡るサービスの建て増しの結果、増築を続けた温泉旅館のようにグチャグチャになっていて、ソースに手を入れられなくなってるという噂を聞いたことがあるので、その辺もあるのかなと思ったり思わなかったり。

まぁ単なる勘違い、仕様書の読み込みミスだったりもするかもしれないが、全てはあと数日で終わりである。

次は一覧はRSSと個別商品はスクレイピングでやる予定

esportsの団体がようやく3団体統一されたようです

以前の記事で3団体が利権の奪い合いでせめぎ合ってるという記事を書いたのですが
miz999.hatenablog.com

今回、ようやく統一されたようです
www.itmedia.co.jp

これまで、日本国内のeスポーツ団体は、日本eスポーツ協会、s-sports促進機構、日本eスポーツ連盟の3団体があったが、これを1つに統合。コンピュータエンターテインメント協会、日本オンラインゲーム協会、日本アミューズメントマシン協会、デジタルメディア協会の後援を受け、新団体として活動を始める。代表理事セガホールディングスの岡村秀樹社長。

代表理事は降ってわいたようで、3団体の利権の外にある人を呼んできて上手くまとめたのかと。

役員構成は
jesu.or.jp

役員一覧
会長 岡村秀樹(株式会社セガゲームスコンピュータエンターテインメント協会会長)
副会長 浜村弘一(株式会社Gzブレイン、元e-sports促進機構理事)
専務理事 平方彰(元日本eスポーツ協会専務理事)
常務理事 鈴木文雄(株式会社SANKO、元日本eスポーツ連盟共同代表理事
理事 早川英樹(株式会社コナミデジタルエンタテインメントコンピュータエンターテインメント協会理事)
辻本春弘(株式会社カプコンコンピュータエンターテインメント協会専務理事)
越智政人(ガンホー・オンライン・エンターテイメント株式会社、日本オンラインゲーム協会共同代表理事

と、見事なくらいのバランス人事。

で、軽く揉めてるのがパズドラ、モンスト問題なんですが
www.itmedia.co.jp

賞金を捻出するのに放映権で稼ぐのか宣伝で稼ぐかは難しいところで、そうなると全然売れない格闘ゲームよりは売れてるソシャゲ(ガチャゲー)を取り込むのは仕方ないのかという話が、賞金の話をメインに書かれている良記事
www.4gamer.net

あと3団体の役員についてちゃんと調べてある良記事も
teruyastar.hatenablog.com

恥ずかしながら高橋利幸高橋名人だって知らなかった。

今更気づいたのだが、ヤフオクのAPIが提供終了とのこと

久々に使ってて、マニュアル見に行ったら気づいた
developer.yahoo.co.jp

個人的にはそこそこ便利に使っていたのだが、Yahoo側のメンテのコストとのバランスの問題なのだろうか。それとも公式ページへの誘導の導線キープの問題なのだろうか。いずれにせよ、個人的には大変不便になることは確かである。

しかし、永遠に続くかに思えたヤフオクの市場独占が、まさかメルカリなんかに覆されるとは思いもしなかった。
ちなみにメルカリは一切APIを提供していない。昔、非公式APIがあったがすぐに塞がれたとか。

twitterAPI絡みではどんどん自由度減らしてるし、広義ではAPIであるRSSなんかも市場縮小傾向だし、API受難の時代なのかもね。

その結果、閉鎖する外部サービスも出てくるのは当然のことか。知らなかったサービスだけど有料でやってると、まあ大変だわな。
sakata-akisato.com

さて、これからどうしようか。
訴えられそうなほどスクレイピングするしか無いのだろうか。
今のところ、商品検索結果のRSSが引っ張れるのでそこからリストを得て、そこから先の個別商品はガリガリ行くしか無いのかね。

しかし、aucfanとかどうするんだろう。

2つの映画「スティーブ・ジョブズ」について考える

ジョブズの死後、伝記を元にした映画が2本作られた。

先に公開されたのがアシュトン・カッチャー主演のこちら

私が先に見たのもこっちで、天才性を担保するエキセントリックなジョブズを描いており、まぁジョブズファンの想像するジョブズ像である。昨今の伝記映画にありがちな徹底的なモノマネ要素(よく言えば役作り)も実装してある。
「私はジョブズファンだから、ジョブズが聖人で無いことも知ってますよー」というエクスキューズを引き出すような、いい意味でも悪い意味でも安全な作品である。

正直、この映画を見たあとには、もう一つの作品に期待する事は無くなっていた。伝記映画というものはファン(あるいは信者)を満足させるための道具に過ぎないのでは無いだろうかという考えに至った。

しかしながら、こっちの作品は監督ダニー・ボイル、そして脚本アーロン・ソーキンである。やはりというか嬉しい誤算と言うか、こちらは完全に自分のツボを突いた。

アーロン・ソーキンは一般に「ソーシャル・ネットワーク」の脚本として紹介されるが、自分にとっては「ザ・ホワイトハウス」や「ニュースルーム」などの珠玉の海外ドラマの脚本であり、それらにこそソーキンの真骨頂である「セリフの詰め込みの妙」があると思う。

この映画でもその「セリフの詰め込み」は存分発揮されており、時として口論になりがちな台詞回しが、演劇調に構成された舞台と時間軸にぴったりマッチしており、「ソーシャル・ネットワーク」や「マネーボール」よりもアーロン・ソーキンファンを大変満足させるものになっている。
「どっちのアンディ?」ネタを繰り返すのもソーキンっぽい。

アマゾンの評価では前者のほうが星の数が多くなっており、ダニー・ボイル版(人によってはアーロン・ソーキン版)には取り付くしまもないほど否定的な意見も多い。

ダニー・ボイル版の方は娘のリサとの関係が焦点であり、そのリサへの態度は天才鬼才だから許されるというレベルを超えており、人として病的なレベル。もちろんラストのカタルシスへ向かう流れでもあるのだが、そこに至るまでの空気の悪さに嫌悪感を持つ人も多いのであろう。

映画史的に見ればどちらの作品も「凡作」というジャッジをくだされるのだろうが、「ソーシャル・ネットワーク」にイマイチ感を抱いていた古参のアーロン・ソーキンファンとしては絶対に見るべき作品であり、初めて満足のいった映画ではないかと思う。

余談だが、最初にジョブズ役にキャスティングされてたのがクリスチャン・ベールと聞いて、マイケル・ファスベンダーがよく似てるので、顔で選んでるというか制作側の想定する顔のイメージに当てはめてキャスティングするもんなんだなと、裏側を見たような気がした。

スカリー役のジェフ・ダニエルズは「ニュースルーム」のウィル・マカヴォイである。「ニュースルーム」も海外ドラマブームの流れの中でもっと評価されるべき作品だと思うが、日本語版のDVDも出ていない。今見たらHuluにはあったので、見てない人は見ろ。

どちらに重きを置いて語るかは明らかであり、つまりは自分にとって映画「スティーブ・ジョブズ」はアーロン・ソーキン版の一本だけなのである。

あと、ジョブズと海外ドラマと言えば「バトル・オブ・シリコンバレー」なのだが、それはまた別の機会に。

seleniumのclickイベントは本当にその座標をクリックしているようだ

seleniumで色々書いてたのですが、どうもclickが誤爆しているようで関係のない(必要としてない)ページに進んでいました。
selectなんちゃらは間違っていないのに何故?と思っていたら、どうやらスクロール追従型のリンクをクリックしていたようです。
つまり本来クリックしたかったElementの上に追従型のリンク(ウザい広告にありがちなアレ)が覆いかぶさっていると、その広告をクリックしているようです。

最初firefoxでやっていてどうにもならなかったのでchromeに変えてみたら、こんな気の利いたエラーメッセージが出ていて助かりました。

  • button">... is not clickable at point (765, 499). Other element would receive the click:

すげーぜchrome

で、どうやって対処したかというと、set_window_sizeでウィンドウを大きくしてやって、その覆いかぶさり広告が狙ったボタンから外れるようにしてやりました。

headlessでやればまた違うのでしょうが、目視確認しながらやりたかったのでウィンドウは出しておきました。

Youtubeから音楽を持ってくると前後に無音部分が付いてくる問題

前回、Youtube動画から音楽を切り離してスマホ転送して聞くあれこれの話をしたのですが、
miz999.hatenablog.com
その続き。

動画として音楽を聞いている時には気づかなかったのですが、音楽単体にして音楽として聞いてると、音楽の前後に無音部分がやたら長いことに気づきました。リンク開いて、動画読み込み始めていきなり音が出始めるよりも、少し「ため」があったほうがユーザビリティがいいのでしょう、理解できます。
でもこれ、音楽としてiPod等のプレイヤーで聞くと前後の空白に違和感を感じるというか、再生できてないんじゃと思うくらいの間が空きます。

で、今回はその「間」を削ろう、という話です。

個人的希望としてbat化してコマンド一発(厳密にはエクスプローラの右クリックの「送る」から)で片付けたいので色々調べ回ると、soxというコマンドラインプログラム(CLI)がありました。GUIプログラムは他に結構あるようです。

SoX - Sound eXchange | HomePage


Windows上で試行錯誤のうえで出た試行錯誤は

  • パイプが上手く行ってくれなくて、結局テンポラリファイル作る
  • opus、mp3のDLLが組み込まれて無くて、拾ってくればいいようなこと書いてあるけど面倒なのでwavを通した。
  • 前回の結論を踏まえて、最終的にmp3を作る
  • wav化、mp3化するのにffmpegを使う
  • エクスプローラの「送る」からファイル名を渡す
  • mp3へのコンバート時の音質オプションは何も考えず

で、こんな感じのbatになりました。windowsの「送る」に関わる補足説明を少しすると、%1が送るファイル名、%~n1が送るファイル名の拡張子無し部分、です

ffmpeg.exe" -i %1 "%~n1.wav"
sox.exe" "%~n1.wav" output1.wav vad -t 0.01 -p 0.3 reverse vad -t 0.01 -p 0.5 reverse
ffmpeg.exe" -i output1.wav "%~n1.mp3"
del output1.wav
del "%~n1.wav"
pause

soxの難解なコマンドラインオプションと参考記事はこのあたりを参考にさせていただきました。ほぼわけも分からずコピペです。

音声の無音部分削除

qiita.com

あと、soxのmanの日本語訳のページがリンクは貼られてるのに元が消えてるパターンだったので、arcive.orgから見つけてきて参考にしました。意味はほとんどわかりませんでしたが。
web.archive.org

macとかlinuxでやればもっと綺麗にパイプ使ってやれるのかな、あるいはwindowsでもちゃんとやる方法はあるのかと思いましたが、中間ファイル作ってもSSDならまぁ速いしくらいに思って深追いしないことにしました。