min117の日記

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

iMac 超高画質な壁紙サイトで毎日のパソコンを楽しくする

iMac5K にして2年。

min117.hatenablog.com

 

5KのRetina最高。高画質がここまで素晴らしいとは。

min117.hatenablog.com

 

この2年の間に4Kテレビが普及し(やっと世間がiMacに追いついてきたようで)高画質な壁紙を見かけるようになった。

 

 

 

とてもよい壁紙サイトを発見。高画質な壁紙がワンクリックでダウンロードできる。

 

macOS Mojaveの高画質 3840 x 2400 なんて壁紙まである。

f:id:min117:20181019223033p:plain

www.10wallpaper.com

 

すさまじい高画質。こりゃ素晴らしい。

f:id:min117:20181019224946j:plain

 

解像度のリンクをワンクリックするだけでダウンロード可能。こういう分かりやすさ最高。

f:id:min117:20181019223235p:plain

 

右上から検索できるようだ。見きれないほど大量の高画質壁紙がある。全部ほしい。

f:id:min117:20181019224112p:plain

www.10wallpaper.com

 

もちろん最新のアレもある。

f:id:min117:20181019224824j:plain

www.10wallpaper.com

 

今こそ壁紙にしたい逸品。 

f:id:min117:20181019225612j:plain

www.10wallpaper.com

 

過去のiOSに使われてきた高画質壁紙なんてのも。

f:id:min117:20181019223547p:plain

www.10wallpaper.com

 

 

でもiPhoneはやっぱり 5S サイズが最高だ。これが完成形だったのだ。

5Sのみ集めた壁紙もある。

f:id:min117:20181019223411p:plain

www.10wallpaper.com

 

このカーブ。曲線。

ジョブズが関与したものは本当に妥協がない。美しい。

f:id:min117:20181019225107j:plain

 

とてもUbuntuっぽい壁紙もあったり。

f:id:min117:20181019224331j:plain

www.10wallpaper.com

 

初期のUbuntuのもある。これ確か Ubuntu 8.04 LTS くらいのじゃなかったっけ?2009年くらいの。よくこんなの取ってあったなと。

f:id:min117:20181019224736j:plain

f:id:min117:20181019231451j:plain

旅行好きには都市画像もたまらない。

f:id:min117:20181019223419p:plain

www.10wallpaper.com

 

f:id:min117:20181019231348j:plain

f:id:min117:20181019231355j:plain

f:id:min117:20181019231401j:plain

f:id:min117:20181019231404j:plain

 

 

 

f:id:min117:20181019223425p:plain

www.10wallpaper.com

 

年の夜景は明る過ぎないから壁紙にももってこい。

f:id:min117:20181019231408j:plain

f:id:min117:20181019231414j:plain

f:id:min117:20181019231422j:plain

 

近景も楽しかったり。

f:id:min117:20181019230639j:plain

www.10wallpaper.com

 

シンガポール歩きも面白かった。

min117.hatenablog.com

 

f:id:min117:20181019223454p:plain

www.10wallpaper.com

 

宇宙の壁紙も。超高画質のがある。

f:id:min117:20181019225915j:plain

www.10wallpaper.com

 

高画質アルバムがあったり。

f:id:min117:20181019231221p:plain

www.10wallpaper.com

 

もうすぐクリスマスシリーズも。

f:id:min117:20181019224916j:plain

www.10wallpaper.com

 

番外編のビットコイン壁紙。

f:id:min117:20181019225949j:plain

www.10wallpaper.com

f:id:min117:20181019231711j:plain

min117.hatenablog.com

f:id:min117:20181019231654j:plain

bash はてなブログの全記事を自動でPDFにするスクリプト

ブログ記事数もそこそこ増えてきたけど今まで一度もバックアップを取っていないWebサービスなんてしょせん他人のフンドシ(提供する場所)上で作っているものなので、例えばはてなブログが倒産したり、突然ブログサービスをやめたら全て消えてしまう

 

信じられるのは自分のローカル。手元にあるハードディスク。結局はここに落ち着く。はてなブログで書いた記事もPDFにして自分の手元に置いておくことにした。

 

かといって、600以上もある記事を一つ一つブラウザで開いてPDF変換なんてやってられない。自動化する。bashを使ってはてなブログの記事を全てコマンド一発でPDFにすることを考える。

 

完成イメージはこんな感じ。

元記事

f:id:min117:20181019000549p:plain

コマンド実行

$ wkhtmltopdf "http://ブログURL" 出力ファイル名.pdf

f:id:min117:20181019001237p:plain

PDF変換後

f:id:min117:20181019000733p:plain

若干フォントは変わってしまうが、読む分にはまったく問題ない。


 

<環境>

fedora Linux 20(CentOSとほとんど同じ)

wkhtmltopdf をインストールして使う

 

<参考>

この記事そのまま進める。

qiita.com

 

 

 

<インストール>

まずは、前提になる環境アプリ( libXrender libXext)をインストール。

$ sudo yum -y install libXrender libXext

f:id:min117:20181019000148p:plain

f:id:min117:20181019000158p:plain

 

変換アプリ本体(wkhtmltox)をダウンロードする。

$ wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz

f:id:min117:20181019000258p:plain

f:id:min117:20181019000310p:plain

 

$ tar Jxfv wkhtmltox-0.12.4_linux-generic-amd64.tar.xz

f:id:min117:20181019000325p:plain

 

$ sudo cp wkhtmltox/bin/wkhtmltoimage /usr/local/bin/

$ sudo cp wkhtmltox/bin/wkhtmltopdf /usr/local/bin/

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

f:id:min117:20181019000334p:plain

 

インストールされたかとバージョンを確認。

$ wkhtmltoimage --version

wkhtmltopdf --version

f:id:min117:20181019000412p:plain

 

PDF変換をテストしてみる。

$ wkhtmltopdf "

http://min117.hatenablog.com/entry/2017/11/18/112741" my_pdf_test_001.pdf

f:id:min117:20181019001237p:plain

完璧。数秒でできた。

 

ここまででコマンド一発でURLからpdfを作成する環境は完成。あとは、pdfにしたいURLを一覧にしたテキストファイル(my_blog_URL.txt)を作って、それをbashループで回してwkhtmltopdfコマンド引数にして食わせてやればよい

 

テキストファイルはこれ。

$ vim my_blog_URL.txt

f:id:min117:20181019003448p:plain

試しに5記事分のリンクだけ書いてみる。

f:id:min117:20181019003454p:plain

 

これを bashのforループで回してコマンドに食わせてやる

 

まずはfor文でテキストを表示(cat)するテスト。

$ for i in `cat my_blog_URL.txt`; do echo "$i"; done

f:id:min117:20181019004925p:plain

うまく読めている。

 

次に出力ファイル名を決める。読み取ったURLの最後の6文字で一意になりそうなのでこれをファイル名にするawkで切り出す。区切り(フィールドセパレータ -F)はスラッシュなので、-F指定するときにエスケープしてやる

$ for i in `cat my_blog_URL.txt`; do echo "$i"; echo "$i" | awk -F¥/ '{print $8}'; done

f:id:min117:20181019005234p:plain

うまく切り出せている。

 

ここまでくればあとは wkhtmltopdf に食わせてやるだけ。

$ for i in `cat my_blog_URL.txt`; do echo "$i"; echo "$i" | awk -F¥/ '{print $8}'; wkhtmltopdf "$i" `echo "$i" | awk -F¥/ '{print $8}'.pdf; done

f:id:min117:20181019005524p:plain

一気にpdf化が進む。

f:id:min117:20181019005724p:plain

あれ。何かエラーが出た。記事が大きすぎるか、写真がデカかったかな?

f:id:min117:20181019010015p:plain

まあ、変換自体は完了したっぽい。

 

$ ls -shal | grep pdf$

f:id:min117:20181019005843p:plain

無事変換できている。開いてみる。

f:id:min117:20181019010355p:plain

カンペキ。これだからLinuxは最高。

 

今回は5記事分だけだったが、今後はてなブログ記事のURLを一括で取得してテキストファイルに落とす方法を探せば、完全自動化になる。そこは後日。

Youtube大規模障害 サーバ管理者の視点から(少しマトモな)分析を試みる

本日 2018/10/17(水)。Youtubeで大規模障害が発生

 

世の中では例えば「Twitterで #YouTubeDOWN タグが話題になった」とか「エラー画面に登場したサル画像のセンスがいい」とかホントどうでもいい情報しかニュースになっていない。

f:id:min117:20181017224636p:plain f:id:min117:20181017224712p:plain

 

しかしYoutubeが落ちた」というこの事実はもっと重大に捉えていいと思う。

 

現在YouTube毎日1ペタバイトの新規ストレージが必要なほど大量のデータがアップロードされるほどのサービスになっている。

japan.zdnet.com

f:id:min117:20181017225615p:plain

 

これが今まで一度も障害に陥ることなく動いていたこと自体がまず凄い。相当な冗長化が施されていたのだろう。それは、ディスクの冗長化ももちろんだが、ネットワークの冗長性が(相当に練られた)凄まじいものだったからだろうと想像できる。

 

それが今回落ちた。全世界からの動画リクエストを捌いてきた巨大サービスが、落ちた。これは本当に記録すべき日だし、記録されるべき出来事だと思う。

 

自分も(規模は小さいながらも)サーバを管理する身だし、せめて「発生した現象は具体的に何だったのか」「原因は何だったのか」くらいは想像してみたい。

 

発生した現象と原因の想定

 ① HTTPエラーコードは 500(Internal Server Errorだった

 ② 世界同時に起きた

 ③ 障害中は(サルの)画像が出た(出せた)

 ④ 1時間後に復旧した

 ⑤ 社会への影響(お祭り騒ぎ

 

順番に見ていく。

 

① HTTPエラーコードは 500(Internal Server Errorだった

 まずこれが目に付く。

f:id:min117:20181017232835p:plain

 

500は「サーバ内部エラー」だ。

 

404エラーではないから「コンテンツが存在しない」というわけではない。

 →「動画が削除された」とか「コンテンツが消えてしまった」とかではない。

 

504エラーではないから「ゲートウェイのエラー」というわけではない。

 →「ネットワーク障害」や「ルータ・スイッチの障害」というわけでもない。

f:id:min117:20181017233044p:plain

 

そして、505エラーの原因は概ねこのへんだろう。

ganbarustars.info

f:id:min117:20181017233817p:plain

f:id:min117:20181017233850p:plain

Googleほどの大企業が設定ミス(ディレクトリのパーミッションや改行コード)をやらかすとは考えにくい(起きてもチェックする仕組みがある)と思われるから、原因アクセスが集中しすぎていたことではなかろうか?

 

しかしYouTubeほどのシステムだし、アクセスが大量なのは日常なハズで。それでも耐えられない大きな負荷がかかったとすれば

 ・外部から攻撃があった

 ・外部から攻撃等は無かったが機器交換等でキャパが低くなっていた

等が考えられると思う。

 

世界同時に起きた

 これも気になる。

f:id:min117:20181017232905p:plain

 f:id:min117:20181017232759p:plain

Youtubeは世界サービスなんだから全世界で止まるのは当たり前じゃん」とも思いそうだが、それならオーストラリア大陸では一切起きていないのが不思議だ。

 

繰り返しになるが、今回のエラーコードは「500」つまりサーバ内部の問題であってネットワークの問題では無いとすれば全ユーザーで起きるのが当然なわけで、局所的に「発生しない」状態があるのがとても不思議。YouTubeはコンテンツサーバを世界に分散させている(?)からなのか。Googleの技術についてはまた調べてみる。

 

③ 障害中は(サルの)画像が出た(出せた)

 エラー中はサルの画像が出ていたらしい。

f:id:min117:20181017233028p:plain f:id:min117:20181017233032p:plain

これはつまり

 負荷の重い動画は(500エラーで)表示できない けど、

 負荷の軽い画像は表示できた ということだ。

この点からも、今回の障害はサーバ側の負荷増大が原因だったのだろうと想像できる。

 

さらにエラー画面には

If you see them,

send them this information as text ( screenshots frighten them)

もし彼ら(サル画像)を見かけたら、この文字列をテキストとしてサルたち(=Googleのエンジニア)に送ってあげてねスクリーンショットで送っちゃうとサルたちが怖がる=原因分析に使えない からヤメてね)

f:id:min117:20181017232736p:plain

とあるところを見るとこの文字列が原因分析に使える何からしいことが分かる。

動画を一意に識別するための文字列だろうか?外部からアタックがあったことの証跡なのか?全く分からないが。

 

1時間後に復旧した

 復旧がメチャクチャ速い。大規模システムの障害にしては凄まじく速いと言っていいと思う。

f:id:min117:20181017232619p:plain

もちろんGoogleのエンジニアが優秀だったからだろうが、そもそもの原因が1時間で解決できる内容だったからとみることもできる。

 

・ディスク障害だったとすれば…交換して動かすだけ(ホットスタンバイ)

 → 1時間で復旧できる。

 

・ネットワーク障害だとすれば…交換して設定を投入して動かす必要あり

 → 1時間だと厳しい?

 

・外部からの攻撃だったとすれば…原因究明と影響調査と穴ふさぎが必要

 → 1時間だとさすがに無理では?

 

・負荷の増大が原因だっとすれば…負荷分散(LB)の設定変更でなんとかなる?

 → 1時間で復旧できる(と思われる)。

 

のように考えると、やはり負荷増大によるキャパオーバーがもっとも可能性が高いと考えられるだろう。

 

⑤ 社会への影響(お祭り騒ぎ

 これほど大きなサービスの停止なのだから、さぞ社会への影響も大きいだろうと思っていたら、ニュースはほとんどがお祭り騒ぎ状態。むしろ混乱を楽しんでいるようにすら見える。

f:id:min117:20181017232718p:plain f:id:min117:20181017232730p:plain

これが人の命に関わる情報のやりとりシステムだったり、災害の連絡システムだったりしたらこうはいかない

 

実際、今回の停止で「致命的な事故が起きた」とか「具体的な経済的損失が起きた」というニュースは(事故発生当日なのに)ほとんど聞かない。

f:id:min117:20181017233055p:plain

 

ネットで検索してもこんな状態だ。

f:id:min117:20181018002755p:plain

そう考えるとYouTubeはしょせんお遊びシステムに過ぎないと思う。止まって命に関わるようなクリティカルなシステムでは無いということだろう。

しかし、それが莫大な利益をGoogleにもたらし話題をさらうのだから、実のない(虚業)とはいえ広告とは怖いものだ。

 

<障害を伝えるニュース>

目についた範囲で残しておく。記念に。

downdetector.jp

gigazine.net

 

もう少しマシな原因分析があってほしいと思うけど。

f:id:min117:20181017232753p:plain

f:id:min117:20181017232631p:plain

f:id:min117:20181017232850p:plain

f:id:min117:20181017232658p:plain

 

f:id:min117:20181017232932p:plain

f:id:min117:20181017232952p:plain

 

あとで読む。

Googleのインフラ担当バイスプレジデントであるEric Brewer氏によるホワイトペーパー

Disks for Data Centers(データセンター向けのディスク)」

https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44830.pdf

 

 

 

Windows10 Corei7-8700(8th Gen)+ NVMe SSDの爆速PCにOSをインストールする

前回「パソコンの館」で購入したカスタムPCにOS(Windows 10 Pro)をインストールする。

min117.hatenablog.com

 

セットアップDVDをドライブに入れて起動。

f:id:min117:20181011050942j:plain

 

インストールを進める。

f:id:min117:20181007085033j:plain

f:id:min117:20181007085040j:plain

 

OSインストールも簡単になったものだ。

f:id:min117:20181007085052j:plain

f:id:min117:20181007085055j:plain

f:id:min117:20181007085156j:plain

 

カスタムで進める。

f:id:min117:20181007085201j:plain

 

インストールするストレージは2TBのHDDSSD(爆速のNVMe SSDの2つがある。OSは当然SSDのほうにインストールする。

f:id:min117:20181007085206j:plain

 

ファイルコピーも速い速い。

f:id:min117:20181007085218j:plain

f:id:min117:20181007085227j:plain

 

この辺って自動化できないのかね。NTPで時間とってくればいいのに。

f:id:min117:20181007085256j:plain

f:id:min117:20181007085314j:plain

f:id:min117:20181007085317j:plain

f:id:min117:20181007085321j:plain

 

アカウントを作成。

f:id:min117:20181007085553j:plain

f:id:min117:20181007085556j:plain

 

(いっつも思うけど、ほんとCortanaいらねぇ…)

f:id:min117:20181007085607j:plain

f:id:min117:20181007085614j:plain

 

 

OSインストール完了。あとは、別に調達したOffice2016をインストールする。まずはMicrosoftアカウントを作成してサインイン。

f:id:min117:20181007085814p:plain

 

プロダクトキーを入れてインストール。

f:id:min117:20181007090009p:plain

 

全部入りのOffice 2016。いいね全部入り。最高。

f:id:min117:20181016210344p:plain

 

インストール完了。あとはスタートメニューをOfficeだけにする。

f:id:min117:20181016205017p:plain

これぞ実用。コジマやヤマダのような量販店で売っているPCにはこれができない。ごちゃごちゃどうでもいいソフトばかり入って無駄に動作が重い。「Officeだけインストールされてて超速い」PC。自作だとこれができる。

 

次回はドライバまわりを最新化する。

macOS Mojave SafariでYoutube動画を右下に小さく表示(ピクチャ・イン・ピクチャ)するには → 動画を右クリックで出るメニューの「外側でもういちど右クリック」

Macで作業しててBGMがほしいとき。youtubeを別画面にして流し続けておきたい。

 

Safari動画を別画面で右下に小さく出す(ピクチャ・イン・ピクチャ)できるといい。iPadじゃなく。Mac

 

こんな感じ。

f:id:min117:20181014130317p:plain

 

iPadだと直感的にできるけどMacだと右クリックにピクチャ・イン・ピクチャのメニューが出てこない。無理かなと思ってたけど、調べたらやり方があった。

ottan.xyz

 

 

Macyoutubeを別画面で再生する手順>

 まず、動画のどこでもいいので右クリックすると「動画のURLをコピー」のメニューが出るので、そのメニューが出たままの状態で(これ重要)、メニューの外側をもう一度右クリックする。

f:id:min117:20181014131425p:plain

 https://www.youtube.com/watch?v=cyk0_AO_osA

そうすると「コントロールを表示」のメニューが出て、少し下に「ピクチャ・イン・ピクチャにする」があるので、それを選べば

f:id:min117:20181014131638p:plain

 

動画だけ独立した画面になる。

f:id:min117:20181014130317p:plain

Appleの製品のこの機能はホント最高。ユーザーの使い勝手をとても重視しているのがわかる。

iPad mini 4 iOS12.0.1にみるApple終わりの始まり

iOSアップデート内容は必ず全部読むようにしている。以前はアプリをリリースする側にいて、iOSのアップデート内容が製品と仕事に大きく影響する現場にいたから、そのクセが残っているのかもしれない。

 

iOS 12.0.1 がリリースされた。「どうせ  XS のバグ修正だろう」「自分には関係あるまい」と思っていたら、iPadのキーボードに修正が入っていた

f:id:min117:20181011192526p:plain

なんと、一つ前の iOS 12.0.0 になったときにキーボードの".?123"の位置が変わってしまっていたらしい。

 

 

 

実際に見比べてみた。

iOS 12.0.0 の場合

f:id:min117:20181011193123p:plain

 

iOS 12.0.1 の場合

f:id:min117:20181011193230p:plain

たしかにキーボードの内容が変わっている。冒頭の案内文にあるとおり、12.0.0 になるときにキーボードの".?123"の位置が変わってしまっていたのだ

 

 

 

よりによってキーボードの配列に手をいれるとは。なんてことをしてくれるのか。これでは、例えばiOSで業務アプリを作っているメーカーは軒並みアプリのマニュアルの作り直しになってしまう。

 

キーボードのような、どのユーザーも絶対に使う部分に手を入れるのは、環境基盤(OS)を作る側としては、相当慎重になるはずだ。

 

Appleほどユーザー目線の会社がここを見落とすはずもなく、相当入念に検証したうえで入れ替えたのだろうと思ったら、直後のアップデートで元に戻すという失態。これはつまり、あまり考えもなしにキーボード配列に手を入れたということだろう。

 

「何かおかしい」「あ、キーボードか!」と気づいたユーザーからの「よりによって、何で123の位置を変えるんだよ!」という苦情で発覚したとしか思えない。

 

小さいことのように見えるが、こういうのは地味に大事だと思う。ユーザー目線が抜け落ちて、企業の都合(開発者の独断 or ミス)がそのままで製品リリースされてしまった。以前のAppleでは到底考えられない事態だと思う。こういうのが積み重なって、製品の質が落ちていく

 

最近は「Appleの終わりの始まり」なんて記事を見かける。なにを大仰な…と思っていたが、案外当たっているかもしれない。

Windows10 Corei7-8700(8th Gen)+ NVMe SSDの爆速PCを新調する

10万円出すから速いPC作ってくれない?ネットとワードができればいいから。仕事のPCがほんと遅くて困ってる」という依頼。

 

コジマやヤマダのような量販店のメーカーPCは眼中にない。アキバのどこかの店ので組むか、通販で安いのにするか。いくつか迷ったけど、今回はサポートが親切な「パソコンの館」で組むことにした。本店は沼津らしい。

twitter.com

 

さっそく購入。

f:id:min117:20181007084744j:plain

 

構成は最新のCorei7NVMeのSSDとにかく速度重視83,505円

f:id:min117:20181007084525j:plain

OSはWindows10。Office2016。この見積もり内では買わない。別でお得に調達できるので、あとからインストールする。

 

購入レシート。iPadが当たる抽選番号付き。これはこれで楽しみにしておく。

f:id:min117:20181011052009p:plain

 

PCは組み上がっていて、買った部品の空箱が付属してきた。

Corei7-8700。第8世代の激速CPU。

f:id:min117:20181007084656j:plain

単体で買うとそれだけで34,800円もする。

f:id:min117:20181011024036p:plain

 

最新モデルCPU。9月に台湾を旅行したときも街中で大いに宣伝していた。

f:id:min117:20181011045252p:plain

$50,900 とある。1ドル4円とすれば(台湾ですら)20,000円オーバーする代物。

f:id:min117:20181011045238p:plain

ちなみに台湾はいろいろ安かった。さすがは電子国家。

min117.hatenablog.com

 

起動ディスクはSSD(256GB)。起動バカ速い。それとは別にストレージ用としてHDDが2TB。速度重視だけど実用性もしっかり。

f:id:min117:20181007084823j:plain f:id:min117:20181011051323j:plain

 

安定のWestern Digital 製。

f:id:min117:20181007084834j:plain

 

マザーボードMicroATX

f:id:min117:20181007084848j:plain

 

チップセットは気にしてなかったけど、当然CPUに見合ったものだろう。LGA1151とある。

f:id:min117:20181007084903j:plain

f:id:min117:20181007084915j:plain

f:id:min117:20181011051031j:plain

 

 

開梱。手持ちのディスプレイ(たしか2004年に買った)とキーボードにつないでセットアップする。

f:id:min117:20181011043945p:plain

 

電源ON。

f:id:min117:20181011050942j:plain f:id:min117:20181011051046j:plain

インストール用のドライブは現時点外付け。あとから内臓する。

 

ASUSBIOS画面。

f:id:min117:20181007084952j:plain

 

無駄にかっこいい。

f:id:min117:20181007085017j:plain

 

BIOS画面でマウスが使えるとは。そこに感動。

f:id:min117:20181011051501j:plain

 

OSは次回インストールする。