FF14の画像をバッチで画質処理+コピーライトの貼り付けしたい

文中の画像の権利表記:Copyright (C) 2010 – 2018 SQUARE ENIX CO., LTD. All Rights Reserved.

日記書くの二年ぶりだって。まじか。
ちょっと開発してるやつあるんで作業メモ。

やりたいこと:

  • たくさん画像あるやつを一律で補正して、固定イメージはっつけて別名で保存したい
  • 素材の画像をバッチに食わせて、別名で新しい画像を得たい
  • 要はFF14の画像を大量に画質処理+コピーライトの貼り付けしたい
  • 年が変わるとコピーライトの年表示が変わるから、繰り返し生成しなおすことを視野に入れたい

ふだんFireworksつかう(Photoshopはもう完全に使い方忘れた。かつては仕事道具だったのに)のだけど、こいつがバッチ処理みたいな機能ある。これつかって楽できんかと思ったけども、せいぜいサブネイル作るくらいのしょっぱい代物で話にならない。
もういい、画像ライブラリ振り回してなんかできるじゃろ、数学得意じゃないけどトーンカーブもなんとかなるじゃろということで。

Jupyter notebookで実験

とりあえずJupyterNotebook起動して、Pillowとかいろいろ読み込んどく

import os
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt

はりさんの画像を読み込んでみる。

いいんじゃないすか。上のはりさんはスクリーンショットを切り取って小さくしただけのもので、補正やらは一切なし。暗い屋内だわくすんでるわ、ぱっとしない。

ほんではどっかから拾ってきたサインカーブ作るやつをplotで描かせてみる。
やっべグラフとか描いちゃってかっけえ。理数系ってこういうの鼻歌でやるんじゃろかっけえ。

ともかく、各ピクセルにこいつを食わせると暗い色をより暗く、明るい色をより明るくしてメリハリが付く。

ほんとはカーブの具合を上みたいな感じのカーブにいじりたいが、式の書き方がわかんないのでいったんこれで。拙速がだいじ。
さしあたり効率やらノウハウやらわかんないので、愚直に各ピクセルのRGB値を変換していく。

後ろの照明がぱっと明るくなってたり、はりさんの顔にあたってる明かりが明るくなってたり。フィルタはちゃんとかかったということで進める。

次、コピーライト画像を読み込む。
これを読み込んで、画像(今回ははりさんの画像)の、所定の位置にコピーライトを貼り付けたい。
ちょっと困ってるのが、元の画像ったらわりと大きめのマージンがあること。このマージンがだいぶ邪魔なので、ほんとは空白部分をトリムしたい。
cropでうまくいくとあったんだが、正確に0でないピクセルがありそうな気配でtrimかかんない。
一旦いいや。実際やるときはマージン分をいいぐあいに調整して貼り付けちゃおう。

はりさん画像とコピーライト画像のサイズを取得して、はりさん画像のどの座標にコピーライト画像を貼り付けたらいいかを調べる。テキトウにpaste_pos関数作っておこう。2つの画像をあげると、どの座標に描いたらいいかを返すやつ。横0縦184ピクセルのとこに貼り付けたらいいとわかった。

Image.pasteにコピーライト画像、貼り付け先の座標を渡す。引数のmaskにもコピーライト画像をわたしてるのは、これでアルファチャンネルをよしなにしてくれるとのことで。
上のサンプルではコピーライト画像のほうが横幅が大きいけれども、溢れたぶんはなくなる。
実際にこの仕掛けを利用するときはもっと大きな画像を使うことになるので、横幅あふれた―とかは実際には発生しないので、気にしないでよい。

だいたい実験が完了したので、これをバッチスクリプトとしてまとめたら終わり。
いままで画像処理やること少なかったわ、式わたして数値の変換するなんてこともやったことなかったわで、若干進歩。プログラミングのための線形代数買ってあるのに積んでるんだよなー

そのうち読もう。こういうのに役立つ何かが書いてあるかも。

Pythonでバッチ書いてcronで実行させると死ぬ

今回の解決方法はこちら。
export PYTHONIOENCODING=UTF-8
bash_profileかなんかに書いとく
おわり。
以下おまけ。

UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 38-41: ordinal not in range(128)

こんなこといわれる。Python書いてるとどっかで必ずぶつかって唸るやつ。
内部エンコードが云々とかはやっとこ理解してきて、中ではunicode、外に出すとき初めてencodeして、とかいうあたりは馴染んできた。
今日悩んでいたのは、自分で叩くと問題なく実行できる、文字列の出力を伴うプログラム。
実行状況をコンソールで見たかったので、あちこちにprintがどかどか入っているもの。
なんとなくうまくいくようなので、じゃあcrontab(これがまあ前時代的とかはあるんだけどrundeckだろうと根っこは同じだ)にセットすると、これがうまくいかない。
文字列を出力するところでいつものやつがでていて死んでる。
どういうこっちゃ。あたしゃ毎日0:30にリモートログインして手で叩かないといけないのか。

結局どうも、シェルに諸々やらせるときには、エンコーディングについていい具合によろしくしてくれないので、わからんのでasciiでいいやと判断され、死ぬということがわかりました。
症状見ればそこまでは分かるんだけど、export LANG=ja_JP.UTF-8云々を書いてもうまくいかないし、なんなのと泣いていたところ、そういえばPYTHONIOENCODINGってあったよね何なのかよく知らんけどという着地をした次第。
新しくこさえたEC2に移行作業してるんですが、そういうまっさらのとこだと、設定の漏れがポコポコ出てくるんですね。
ansibleに追記して保存、一件落着。

参考りんく

Python 3の各種エンコーディングについて – Qiita http://qiita.com/methane/items/6e294ef5a1fad4afa843

Python2で文字列を処理する際の心掛け – Qiita http://qiita.com/FGtatsuro/items/cf178bc44ce7b068d233

極蛮神戦の練習のために真蛮神へ通うのは無駄か

引用。

513 : 既にその名前は使われています@無断転載は禁止 (ワッチョイ fb6b-c5qS)2016/06/28(火) 05:38:18.71 ID:v1F1o0Rz0
極に行く前に蛮神の動きや雰囲気に慣れたくてFCメンとある真蛮神に通っているんですが
別のFCメンに真に行ってると言ったら時間の無駄、真で練習()とか他色々散々にコケ下ろされました
極行く前に真に通うのって意味ないんでしょうか?
一つだけ極クリアしたのがありますがその時真で数こなして練習しててよかったと思う所が
それなりに(極初見の時は特に)あったのですがその蛮神がたまたまそうだっただけなんですかね?
ジョブは自分も真についてきてくれているフレもタンクです

514 : 既にその名前は使われています@無断転載は禁止 (ワッチョイ 4765-Z7EN)2016/06/28(火) 05:45:00.90 ID:sa75/Bto0
1,2回クリアするくらいは有効だと思うが大体これくらいで覚えるから以降は無駄
真を覚えるのに回数必要なら無駄ではないかもしれない

515 : 既にその名前は使われています@無断転載は禁止 (ワッチョイ eb39-jO4j)2016/06/28(火) 06:45:59.59 ID:wPrOCjC70
>>513
基本的に極をやるつもりなら極へ行く方が良い
真蛮神をやった経験は無駄にはならないけど、真と極では覚えることが変わってくるからね

元記事:http://hanabi.2ch.net/test/read.cgi/ogame/1466414439/

TL;DR
ぜんぜん無駄じゃないから心ゆくまで通い、ギミック個々を「ああこれね」ってかんじに慣れたらいいよ。


あたしの心の琴線に触れる書き込み。まとめサイトで見っけてきた。
あたしは真蛮神での練習を推す。
むろん、真蛮神に行ってまるで練習にならないケースもあるとおもうけど、細かな場合わけをせずに話を平らにした場合、あたしは真蛮神で慣らしてから極蛮神に行くのが良い派です。

たぶんこれは、極蛮神戦というコンテンツに慣れているかどうかでかなり変わる部分なんでないか。
うざい昔話をします。2秒位で終わります。
極蛮神戦にトライしてみようと思い立ったのが、あたしはたしか極タイタン戦。ああいうのトライできるのかっこいいなーって思ってて、ちょっと憧れてたんだよ。
いざ挑戦となった契機はファンフェスのライブで、目の前で演奏されるタイタンの曲聞いて大いに盛り上がり、
「あたしもアイビートタイタンしたいいいぃぃいぃ!!」
となったのがきっかけ。わかる?このナメた感じ。
当時ビートできてなかったので気後れし、タイタンTシャツ買わずに帰ってきたんだ。代わりにギルガメッシュのTシャツ買ってた。
ちなみにギルガメッシュも未勝利でした。代わりって。

それまではIDばかりで、いきなりボスと戦ううえ、各種ギミック満載のコンテンツへの知見はないに等しかった。
上の書き込みもそのくらいの人であるというイメージでこの記事は書かれています。
ものは試し、と超カジュアルに飛び込んだ極タイタン戦は地獄の様相そのもので、始まってから自分が死ぬまでずーっとパニックだったと記憶しています。

今でこそ見てから余裕くらいですいすい動けるあのコンテンツも、始めた当時は「なにが」「どうなって」いるのか、何もわかりませんでした。ヘタするとそういうのを目にする前にテーブルの下で音楽だけ聴く係(さいきんは上空から見守る視点になったとか聞いたような)になるので、なおさらわからないという。
いろいろギミックがバーン!バーン!なって意味分かんない(ランスラが激震が云々じゃなくて、なにかがバーン!バーン!ってなってる)状態の人は、落ち着いて画面見ることにたくさんの障害が発生します。意味不明なものへの防御行動として、脳がわざわざ理解を妨げる。
腹づもりとしてはクリアしたいから覚えたい、しかし意味不明で不快だから脳にはストレスだという状態。
これを、ちょっと優しい「まあこれならクリアできないこともない」というコンテンツを土台にして練習することで、このエフェクトはこうしたらいい、というパターンを手に覚えさせる部分での意味が生まれます。
というわけであたしは何回か忘れたがとにかく真タイタンへはわりと熱心に通い、ランドスライドのエフェクトはこれ、激震はたくさん踏むと危ない、ボムの範囲はこのくらい、ジェイルの時は云々、という、戦いの流れではなくてギミック一個一個、パーツとして認識した場合のやっつけかたを覚えていきました。
よし、いざ極蛮神タイタンを討伐にゆかんという時、あたしはガンダムのシャーばりに叫んだものでした。
みえる!みえるぞ!
「見えるぞ!」
そのとき?負けたよ。

昔話終わり。1.97秒くらいか?結構ギリだったねー

さて、上のコメしてる人も
「1,2回クリアするくらいは有効だと思うが大体これくらいで覚えるから」
「真蛮神をやった経験は無駄にはならないけど」
と、無駄でない事自体は肯定しています。

まあ1,2回で覚えるわけない。
いままでのコンテンツで「このギミックはこのコンテンツにあったこのギミックと同じものだ」というヒモ付がすでに出来ており、たとえばニーズヘッグのカータライズを見た瞬間に「ああ、ストーンヴィジルのイスケビンドね」と脳の辞書引きができる状態に仕上がっている人の感覚だと1,2回は理解できなくもないというくらい。
ランスラの線消えたら、もう動いていいよとかあるじゃん。あれを知見というんだ。
1,2回で覚えられるのはその前提をクリアしているからだ。
「え~ おれ2回行ったら覚えたけどな~w」とか言うことで満足を得たい人もいるじゃろうけれども、その手の子供の話は今回は無しだ。もしそういうお友達が身近にいたら、ラグナロクオンラインかなんかを勧めて視界から消えてもらおうね。物理的に消してもいいよ。

>極に行く前に蛮神の動きや雰囲気に慣れたくてFCメンとある真蛮神に通っているんですが
そんなわけで、この質問をした彼には届かないことろでつぶやいてるわけですが、無駄じゃないからどんどんやれと私は申し上げたい。

FCで行くなんていい仲間持ってるよね。

参考というか関連というかの記事:

超えた壁はどう見えるか

I BEAT TITAN
真タコ引率

Windowsの設定をバックアップする

※自分用メモ。

また同じことで俺の怒りが有頂天になっているであろう、進歩のない未来のわたしへ。
Windows10を入れ、何かもう色々とうまくいかないので(Windowsが悪いのか何か設定が壊れていたのかはもはや判然としない)、ふたたびWindows8.1に戻して使っています。
が、クリーンインストールしているにもかかわらず不具合多発で、おまけにそれがWindows10で発生していた不具合と全く同じなものもあって、ちょっと背筋が寒いです。
似たようなことをあなたはまたやっていることと思います。

現在発生しているのは、Chromeが急にエラー表示になったり、SSL接続の何かでページを表示してくれなかったりする。頻度は多少違うもののFirefoxでもIEでも同様。
さいしょChromeを疑ってたんだけどもっと根っこの話だった。怖い。
Vagrantで起動したVMでcurl叩くと失敗する。これもhttpsのホスト相手だからたぶん震源地は同じ。
も一個が別で、JavaScriptの動作周りが怪しい。Atomエディタは起動後一分もせずにクラッシュ、ブラウザでも、閲覧中にふとクラッシュしたりする。震源地が同じかどうかはわからない。
で、もう、ここの問題を解決するのはもうどうでもいい。とにかく再インストールして、普通にやって普通に動くはずの環境を整えたい。設定修正マニアになりたいわけじゃない。
が、とにかくカスタマイズしてしまっている設定を復元するのが辛い。

  • マイドキュメントやらのパスは別のドライブを指定している
  • AppData下の幾つかも別ドライブにリンク張ってる
  • 環境変数もいじっている(%HOME%とか%TEMP%とか)

こういうやつ。そうだ、シンボリックリンクとかはコマンドで叩いて作れるんだから、バッチファイル作ればいいじゃないか。Windowsは95から始まり幾星霜、やっとここまでたどり着きました。
一旦バッチ書いて寝かして、忘れ物諸々ないのを確認したらまたセットアップだ。だるい。
というわけで、作業内容を以下にメモ。

まず変数作る

SET E_APPDATA=E:\AppData
set REG_SHELLFOLDERS="HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
set REG_ENV=HKCU\Environment

リンクを張る

mklink /D %AppData%\"Sublime Text 3" %E_APPDATA%\"Sublime Text 3"

レジストリいじって、マイドキュメントとかの位置を変える

普段はマイドキュメント右クリックでやってるやつ。

reg add %REG_SHELLFOLDERS% /t REG_SZ /v "Personal" /d "G:\mydoc" /f

環境変数を設定する

reg add %REG_ENV% /t REG_SZ /v "HOME" /d "C:\home" /f

このへんをモゴモゴすると、だいたい私がよくいじる箇所については問題なく保存・復元できるはず。
バッチできたらbitbucketかなんかに入れとこう。

ホットサンドを作った

こんかいも会心の買い物をしてしまった。
ご無沙汰しております。仕事忙しすぎて枯れそうになりつつも日々をサバイブしております。
休日は沼サンドを作ったりしてるのですけど、ふとホットサンドも作ってみたくなりました。

さしあたり、ホットサンドってなんだっけという方のために、こんなリンクを用意しておきました。

おかえりなさい。夜中に見た人はご愁傷様としか言いようがない。

ホットサンドというと、大昔、実家にあった電気式のあれを思い出します。
イメージ的にはこういうやつ。

あたしはどうも、電熱器っていうんですかね、電気で熱を作る機械に対しての信頼感が薄くて、過熱からの火事コンボとか、スイッチ入れっぱで居眠りしての火事コンボとかをむやみに怖がる性分です。
うちにも電気ポットはあるよ。ある。あれは数少ない例外。なんで例外なのかはわからんけども。
どの製品も安全対策は死ぬほどしてあると思うので、あたしが無知ゆえのことです。上で例にあげたTESCOMはあたくしの信頼厚い日本の家電メーカーです。ツインバードとか山善とかと並ぶ、低価格家電を得意とするよい会社。ブレンダー選びの時にも、候補に上がったりしています。
なので、単にこのみの問題ではあります。

前置きが長くなったので途中の細かい話をすっ飛ばすことにする。
ホットサンドは食べたいが電熱器具は怖いなーと思いつつAmazon見てましたら、フライパンがあるじゃないですか。
改めて考えてみれば、フライパンが先にあったんじゃないの、そりゃそうだ、とも思ったんですけど、案外気づかないもので。
まずはあたしが買ったこいつを見てほしい。

これを選んだ理由は

  • 直火で使う金物
  • 安い
  • 丁番が外れてバラバラに洗える
  • 安い
  • 挟んでコンロに乗せるだけの単機能
  • 安い
  • 電気式であふれたチーズの掃除をする想像したら萎えすぎる
  • 安い
  • パンの上下がしっかり接着されてくれる必要はない
  • 安い
  • パンの耳周辺が潰されないタイプ

というあたりです。最後が重要。
この辺は好みですが、あたしホットサンドで嫌いな部分があって。なんかパンの耳あたりが潰れて硬いでしょ。あまつさえ「パンの耳は切り落として焼け」とかある。
あたしゃ、パンの耳を捨てるなんて正気ですかと言いたい。
パンの耳を捨てるなんて正気ですか。
ええ。
で、そういうホットサンドはあたし的にダメなので、出たら食べるけどあたしは作りたくないので、パンの耳を捨てなくていいやつにしたというわけです。
まさかブログでパンの耳について暑苦しく語る日が来るとは思わなかった。

これがこないだ届き、ためしにクロックムッシュみたいなのつくろうよ、つうて、パン焼いて食べたのがつい先程のことです。
あまりにもうまかったので、これは自慢しなければいけないということで急遽キーボードを叩いています。
それではわたしの自慢を聞いてください。どうぞ。

買ってきたフライパンをまずは軽く洗い、ティッシュに含ませたオリーブ油で表面を拭く。パン焼くときはこれをやるやらないで大きな違いが出るとあたしは思っている。
で、マーガリン(バター出すの面倒臭がった)を塗ってスライスチーズを一枚、細かめに切って超軽く炒めたベーコンをスライスチーズの上にこんもりのせる。

パン
マーガリン
炒めた細切れベーコン
チーズ
マーガリン
パン

こういうかんじ。写真あったらいいんだけど、食うのに夢中でそんな余裕なかったごめん。びっくりするほどうまくてさ。

で、上の重ねたアレコレを、フライパンのもう一方のフライパン(鉄板部分2個あるじゃん、それの上の方)でばちんと、しめる、わけよ。ギュッと押さえないとダメだから。
んで焼くわけだが、ぎゅっとしたまま焼くために、取っ手部分に金具がついてる。適度な圧でしっかりと押さえつけておいてくれる。
弱火、片面、2分。ひっくり返して2分。1分半でもいいかも。この辺は好み。具にしっかりと熱を通すことを考えると、極力弱火が良かろうと思います。
こんなもんかなとひっくり返し、金具を外してパンの焼け色を見て、OKだったら包丁で切り分ける。飢える我が家のケモノ2匹(あたし含む)がかぶりつくと。

パンに物を挟んで2分ずつ焼くという大変シンプルな工程です。気をつける要素は何もない。火から目を離すなよという程度。
パンをギュッとして焼くことで、トーストとは全く違う食感のパンになるんですね。さくっと焼けた薄い表面が大変に香ばしいし、中でとろけるチーズが犯罪的に美味いし、ベーコンはベーコンで、ハムと間違って買ったとは思えない出来だしで、いろいろと素晴らしい。
明日は沼サンドをこいつで作ろうということになっております。
また外食に行く理由が一個減ってしまった。

「もうドトールのクロックムッシュ食べに行かなくてもいいね」
と嫁が言ったので、11月7日はホットサンド記念日。

そうそう、キャンプ行く人が好んで買うみたいな話もちょいちょい見かけました。テントはって寝て、朝飯がホットサンドなんて素敵だわね。

余談もう一つ。あたしの買った上のタイプでも、パンの外周に水で溶いた小麦粉や、溶き卵を塗ってあげることで、ピシっと閉じられるそうな。これなら固くなんないし、試してみようと思います。

Point of view

いまだとアレキ零式とかの動画をよく見てます。ボスの繰り出す攻撃のえぐさに、画面のこっちで「ぅぇぇ」って言ってたり。いつ行けるようになるかなあ。
さて、海外勢の動画によくある「WAR PoV」とかのPoVってなんじゃらと思って調べてみたところ、存外かんたんに答えが見つかりました。
それが題名になってるPoint of view。
WAR PoVだと戦士視点だよーってことですね。なるほど。

ちなみにホウホウそうですかとばかりに、Point of viewで画像検索すると、妙にセクシーな画像ばっかり引っかかるので、職場の人は気をつけてほしい。

また今日も賢くなってしまった。

今年は梅酒じゃなくて梅シロップ

去年の梅酒がまるっと一瓶残ってます。作ったうちの半分も飲めてないと。
梅酒がスイスイ減るのはこれからのシーズンですので、秋にはかなりの目減りをしていることでありましょう。

そんな私、もう基本的にはお酒飲まない生活になりました。20年飲み続けて20年負け続けていたので勝ち目がないというのは、すでに多分どっかに書いたと思うけど、家でも極まれにうすーい梅酒を飲む程度。
うん、酒じゃなくていいんじゃないのコレ。

もうアルコール分が不要だ。味と香りがあれば用を満たす。

と気づいたので、今年は梅酒でなく梅シロップをつくろうと決めておりました。気づくのに2年かかりました。
作り方はそのへんググるまでもなく、梅と氷砂糖を交互に容器に放り込み、放置して終わりというもの。かんたん。
梅酒の酒抜きというか、そんなのだ。
アルコールがないぶん、油断すると発酵が始まってしまうご褒美もあるらしいので、扱いには気をつけたい。
当初は、梅と砂糖が接触してるくらいでエキス取り出せるのかよと疑問だったんですが、つけ始めて2日で容器の下部には蜜状の液体がたまり、入れた青梅もあちこち黄色くなっています。
恐るべし浸透圧。これは期待できる。
たまに瓶を見に行っては、蜜状の液体が全体に回るようにクルクル回したりしてですね、できあがる日を楽しみにしたいと思います。
糖度が下がってアレが始まるとどうなってしまうのだろう。そっちも実験してみましょうか。

ReadyNAS 102を買いました

※ReadyNASという製品のレビュー記事です。
 RaidとかNASとか言われてもピンとくる人ばかりじゃないので、なるべくわかりやすく書く。基本的には関連テクノロジーについてご存じない人に向けた書き方をするので冗長になります。分かる人は本家行ったら理解できるはずだ。
 外付けハードディスク(以降HDDと書きます)もいいけど、それのもっと良いものみたいな感じです。LAN内に置く、すごいハードディスクみたいなものの話をします。

結論:ReadyNAS102は買いです

クリティカルヒット的にいい買い物でした。
やや戸惑うところもありはしたが、どうってことないレベルでセットアップもできました。
その後は快適。動作音はきにならないくらい静か。
出先やスマホから、NASに保存したファイルを触ることができるのは非常によい。
プライベートクラウドなんて大げさと思ってましたが、あたしみたいなエンジニアだけでなく、一般人にもアリです。

想定している読者像:

  • 消えると困るデータがあるけど、バックアップとってない
  • 自分でバックアップ取るのは面倒だし嫌だ
  • 音楽ファイルがけっこうある
  • でかいファイルたくさんある
  • 今HDD壊れると損害が発生しうる(書類とか)
  • SkyrimのMODみたいなもん(なくしても再取得できるけど辛すぎる)を大量に貯めこんでいる

想定していない読者像:

  • 1分後にPC壊れても気にならないしデータ貯めこまない
  • GoogleDriveやGooglePhotosで十分まかなえている
  • NAS高原に悪い記憶があり連想してしまう

さいきんだとGoogle Photosとか出てきて、みなさんのスマホやパソコンにある幾つもの写真や動画なんかも、一応しまう場所ができたかんじですね。
つまるとこ、そんなサービスじゃしまい込みきれないとか、画像じゃないものを貯めこんでる人に向けた記事になるかなと思います。人のとこに預けたくないとかね。

承前

あたしCDとか保管しないタイプです。
CD買う→取り込む→CD捨てちゃう、なので、データ飛ぶと本気で復旧できない。ジャケットとかブックレットにはそんなに価値を感じない。
用があるのは音楽だけなんで(キリ
捨てんなよという話もございましょうが、プラッチックに占領された空間にも家賃発生するのが嫌だ。

そんな我が家を襲った数年前のHDD破損事件以降、あたしにとってデータ保全は真剣に取り組むべき重大事となりました。
手持ちのMP3ファイル数千曲が消失した心の傷はいまでも時折痛みます。着てはもらえぬセーターどころではない。1週間かそこら、あたし抜け殻状態でくらしてました。

対応策として、うちの家庭内LANにはファイルサーバなるものが鎮座してまして、ファイルの保存を上手に安全にできるやつようなプログラムをインストールして使っています。
説明が理解できる人用:OS用HDDを1台+データ用HDDを2台でraid1組んでsamba通してネットワークドライブとして使っています。Debianいれてます。

が、あたくし三流プログラマー。十分に安心できるほどLinuxやセキュリティやネットワークのアレコレに精通しているわけではありませぬ。だいたいそういう情報までキャッチアップするのは結構たいへん。
アップデートやセキュリティやら、ほんとにこれでいいのかしらという不安が拭えない。
いれてるHDDは2台で冗長化されてるけど、実は片方が壊れてもすぐ検知できない。
……これはデータを保全できてると言えない。

そうだ専用機を買おう

どうしたもんかと思ってるところにAmazonのセールを見つけまして、ものは試しと買ったのが、NETGEARのReadyNAS 102です。
1TBのHDDを2本買ってきて、セットアップ開始。
※1TBを2本だから合計2TBでなく、両方に同じものをコピーする方式で保存するので合計で1TBです。

NETGEARのサイトに日本語の説明書がおいてあるので、かたっぱしから落としてきて見ながら作業します。
最初は挿したHDDを認識してくれず焦りましたが、説明を読みながら工場出荷設定に戻したり、背面のリセットボタンをピンで押しながら電源入れ直したりしているうちに認識してくれるようになりました。何が決定打だったのか今ひとつピンときてないです。
やたら不安になりやすいポイントとしては、

  • HDD認識するまで、操作が合ってるのかよくわからない
  • HDD認識後の初期化も割と長くかかる
  • ReadyNASの更新を促されるからやるんだけどこれまた時間かかる

とかのあたりかと思う。
じつは使いはじめると、そんな高度なこと(ぼく専用の秘密フォルダとか、不可視だ可視だとか)をやり始めなければ、もうあんまり違和感ない。

我が家ではこんなかんじになってます。
readynas
スマホからも見られる。これが驚きでした。
たとえば旅行先で自宅のHDDにおいたファイルを取ってきたり、新たにしまったりできる。
自分でそんなのやろうとするとめちゃくちゃ大変です。が、アカウント作るだけで終わり。

できればもう一歩進んでiSCSI(アイスカジー)のセットアップをすると、もういよいよ病みつきというか、何だこのワケのわからん便利さはという世界に突入できます。
iSCSIつうのは、

  • マイコンピュータに一個HDDが増えたみたいに見える
  • でもPC内にHDDが増えたわけじゃない
  • 実体はReadyNASにあって、データが割と安全に保管される
  • 使う側はこの高度な仕掛けを意識しなくて良い

みたいなのだ。やる気になったら調べてほしい。感動するよこれ。

やってることは高度だが洗練されてる

んで散々書いたReadyNASはこれ。マニュアル充実していてあんま迷わないのが親切。これ、性質としてはネットワーク屋さんとかのおもちゃなんですけど、価格・操作性共に、一般人のとこまで降りてきたという感じです。

うちは1TBのディスクを買って後悔した。このくらいで十分かな~の倍用意すると、だいたい困んなそう。あたしそのつもりで1TBにしたんだけど実は足りてなかった。
機械の性質上、同じ容量のディスクを2個使います。1個じゃ意味ない。

USBメモリとかUSB接続のハードディスクも繋げちゃいます。おおよそ一般人の用途としては必要十分なスペックです。
データ全ロストの深い悲しみに襲われた経験がないとなかなかこういうものに手を出しにくいとは思うんですけど、不安商法っぽくてアレですけど、それでもバックアップって大事なんで、PC使う以上は目を背けないで対応したいところでっす。
ご清聴ありがとうございました。

Class ‘RAFIE\Twig\TwigViewServiceProvider’ not found

結論:psr-0とpsr-4で読み込み方が違うのでそれ用の指定をcomposer.jsonに追加してあげると解決した。

なんとphpの話題

Laravel5というのを触り始めまして、もうこれがなんだかハッピーな感じの作りになっているんで自宅でも触って練度高めていこうというモチベーションがあるんです。大変に珍しいことです。
最近のphp開発とはこうなんですというエッセンスがあるので、時代から取り残されていた部分を一挙に取り返さないといかん、と思っております。名前空間とかトレイトとか、よく分かってないけどそういうやつね。

で、ちょうどFlaskで作りかけて放置していた物があったので、それをLaravel5で移植してみます。
Laravel5 + Twig + React + Stylus + webpack といった感じ。いまどきのアレコレてんこ盛り。
Reactはまだよく分かってないが、webpackでStylusをコンパイル?すると、jsの中にcssの表現も一緒に入っちゃって、なんかもんげー感じです。ファイルの分割の機能がwebpackにはあるので、cssファイルとして別途吐き出させることも可能なはず。そこまでは理解が進んでないのでまたこんど。

さて掲題の件。
さいしょこそ普通に

こういうかんじでLaravel5にTwigを組み込み、使ってました。
が、たぶんartisanコマンド使ったあたりで突如、

FatalErrorException in ProviderRepository.php line 150: Class ‘RAFIE\Twig\TwigViewServiceProvider’ not found

こんなエラー発生。ほんとに突然です。前後でcomposer.jsonを書き換えたとかもなかった(はず)。
あまりにも急なことだったので、寝ぼけてファイルの移動でもやらかしたかとオロオロしたりとか。vendorディレクトリとcomposer.lockをまるっと消してcomposer installで再構築してみても症状が変わらない。まったく意味がわかんなかったんですが、Laravel5本か、どっかのブログか、qiitaでみた記述をふと思い出しました。
いわく、何か一つでもPSR-4形式でのモジュール読み込みをした瞬間から、特に指定がなければLarabel全体がPSR-4で動作するものとしてなんとかかんとか。
うろ覚えなんで話半分で。
さしあたりそのぼんやりしたヒントを手がかりにして、ぐぐります。
「psr-0 psr-4 php」とか「composer.json psr-4 autoload」とか、雑なキーワードですが、仕方ない。何も分かってない状態。

不思議とヒット

探してみるといろいろ出てきます。

あら、これなんじゃないの?

psr-0とpsr-4以外記述方法に違いはありませんが、設定値の意味が変わっています。
ComposerでPSR-4仕様のオートロードを設定する | Beaglee技術blog

ほう。ほうほう。どうせ意味分かってないのだしということで、書き方を真似してみます。

さあどうだ。画面をリロードしてみます。

Whoops, looks like something went wrong.

ウープスじゃねえよぶっ飛ばすぞ。
あ、そうだアレやんないと。

composer dump-autoload

リロード。
はい、解決ですよかった。
かなりラッキーパンチで解決したからよかったようなものの、あたしには難しかったよ。
ともあれ、これで開発の続きができるというものです。よかった。

かんけいないけどGistって便利ね。なんだこれ。

記事中にあるLaravel5本とはこれのこと。

ペットの乳酸菌に新ネタ投下

今でも割と頻繁に、ミードについて調べている方の訪問があるようでございます。
お探しの記事はこのへんかもしれません。
だいぶ前の記事ですけど、この時に飼い始めた菌の皆さんは、いまでも我が家に住んでおります。

かつてはリンゴや葡萄の房を食べさせていた我が家のペット(世間では酵母とか乳酸菌とかいうようです)のみなさんですが、最近はもっぱら水飴や蜂蜜を与えられて生きています。
昔のほうが待遇良かったよね。

ふと思い立って、買い物のついでに買ってきたのはポンジュース。
値段とは関係なく、なんとなく贅沢をしている気分になってしまう飲み物の一つです。あたし大好きなのよ。
今回はペットにこいつを食べさせてみようと思います。気温も上がってきたことだし、いい勢いで食べるんじゃないかしら。
ニンゲンのわたくしも一口だけ頂きます。ああ美味い。

最初のうちは大人しくしてましたが、急激な変化は4日目から始まりました。
それはもう爆発的と言っていい勢いで菌が増えていくのです。
むろん一個一個は見えないのですけれど、炭酸の出かたで勢力拡大がどれほどかははかることができます。

発酵の過程で液体は炭酸を含みます。ゆえにコーラのペットボトル(高圧に耐えるいいボトルです)で育ててたんですが、夜に寝て朝起きて開栓、仕事から帰ってきて開栓、びっくりするくらいの炭酸ガスを算出します。
蜂蜜よりは果糖が好きなんだろうか。たんに糖分の濃度が塩梅良かったのかしら。
とにもかくにも凄まじい勢いで液中の糖分を食い尽くしていきます。見かねて蜂蜜を補給しちゃうくらい(本末転倒な気はする)。

こやつらが蹂躙し尽くした液体を少し味見してみます。
すっっっっっっっっっっっっっっっっっっっっっぱい。
いつもとおなじく、見事に糖分だけを選んで食べているご様子。
液体にはみかん色が残っちゃうので他の用途には供しにくいんですが、またいろんなご飯を食べさせてみようと思います。
かわいいやつらであります。