58FLOW

Android、行動経済学、ガジェットなどが好きです。日々感じたことなんかを書きます。

コマンドラインでかんたんにGIFアニメーション作成

プロ生ちゃん Advent Calendar 2015 4日目に飛び入り参加しました。

www.adventar.org

はじめに

プロ生ちゃんのサイトでドット絵があったので使ってみたいと思います。ゲームなどに使う前に動いているところが見たかったのでGIFアニメーションを作ってみました。

いろいろGIFアニメーション制作ソフトはあると思いますが、今回はコマンドラインで作ります。ちょっと調べるimagemagickというのが使えそうでした。

環境

imagemagickのインストール

$ brew install imagemagick

ヘルプは

$ convert -help

いろいろオプションがありますね

素材画像

http://pronama.azurewebsites.net/pronama/download/

ここからドット絵をお借りしました。

f:id:flow58:20151203181443p:plainf:id:flow58:20151203181507p:plainf:id:flow58:20151203181516p:plainf:id:flow58:20151203181524p:plainf:id:flow58:20151203181531p:plainf:id:flow58:20151203181536p:plain

imagemagickを試す

$ convert /path.to/input/*.png /path.to/output/anime.gif

f:id:flow58:20151203181641g:plain

あれ?

透過画像を使っているので前の画像が消えずに何か表示がおかしくなっていますね。きっとオプションで回避可能なのでしょうが、うまくいかなかった

仕方ないのでPythonで背景を作る

それぞれの画像に背景をつけてからもう一回つくることにします。プログラマーっぽくPythonを使って背景色をつけることにしました。pipやPythonが環境に入っていなかったらPhotoshopとかでいいと思います。

PILインストール

PILというライブラリを使います。pip install PILでインストールできなかったので「pyenvでvirtualenvしててPILがインストール出来ない件」を参考にインストール

PILで透過画像に背景色を付ける方法

import Image

# 32 × 64の真っ白い画像(背景)を作る
bg = Image.new(mode='RGB', size=(32, 64) color=(255, 255, 255))

# 画像を取得
img = Image.open('/path.to/input_file.png')

# 背景に画像を合成
bg.paste(img, (0, 0), img)

# 保存
bg.save('/path.to/output_file.png')

実装例

上のコードをもとにディレクトリの中身全てに背景色をつけます。ディレクトリを作ったりいろいろごにょごにょしていますが重要なところは上のコードと変わりません。

import glob
import os
import Image


def get_output_path(input_path):
    tmp = input_path.split(os.sep)
    return os.sep.join([os.sep.join(tmp[0: -1]), 'result', tmp[-1]])


def set_background(img, rgb=(255, 255, 255)):
    bg = Image.new(mode='RGB', size=img.size, color=rgb)
    bg.paste(img, (0, 0), img)
    return bg


def make_dirs(path):
    try:
        os.makedirs(os.sep.join(path.split(os.sep)[0: -1]))
    except OSError:
        pass


def make(input_path, output_path=None):
    if output_path is None:
        output_path = get_output_path(input_path)
    make_dirs(output_path)
    img = Image.open(input_path)
    img = set_background(img)
    img.save(output_path)


def main():
    base_path = '/path.to/input/*.png'
    for file_name in glob.glob(base_path):
        make(file_name)


if __name__ == '__main__':
    main()

再びimagemagickを試す

$ convert /path.to/input/result/*.png /path.to/output/anime2.gif

f:id:flow58:20151203181656g:plain

できました!

アドベントカレンダー

ドラム式洗濯乾燥機(NA-VH310L)を買ったらライフチェンジングだった

一年くらい前に引越しをしました。その時買った物の一つがドラム式洗濯乾燥機です。引越しで駅に近くなった以上にこれはライフチェンジングだったのではないかと思います。ちなみに買った洗濯機はPanasonicのNA-VH310Lという物で当時ヤマダ電気で16万円くらいだったと思います。プチドラムという一人暮らしの人にもおすすめのシリーズらしいです。2015年の後継機はNA-VH320L-Wですかね?

f:id:flow58:20151128150742j:plain

時間の節約

今までどれだけ洗濯物を干す時間に費やしていたでしょうか、一人暮らしだと毎日ではないにしろ一週間に一回くらいは洗濯すると思います。その時間が節約できるのは大きいです。終わる時間を計算して洗濯する必要もなく、出かける前や寝る前にセットしておけば気づいた時には洗濯も乾燥も終わっています。今までは洗濯物を干す作業が面倒だったからまとめて洗濯していた物も、すぐに洗濯できるので楽です。

洗濯物を干す場所を考えなくていい

前の家では広いベランダがあったのですが、いまの家には狭いベランダしかありません。また、雨が降っていたら風呂場に干すことになりますが、その間にシャワーを浴びたい時は不便です。洗濯乾燥機はそういうことも考えなくて済みます。

精神的負担の軽減

一番大きいのは精神的負担の軽減ですね。洗濯の終了時間や干す場所を考えたり疲れている中で洗濯物を干す作業をしたりと、洗濯自体が面倒な作業だと考えていましたが、今ではそれがありません。

おわりに

これ、本当にオススメです。ズボラな人や忙しい人ほど洗濯乾燥機は必須だと思います。安い買い物ではないのですが、精神的負担や時間の節約のための投資だと思って買うのもいいのではないでしょうか。

世界同時株安も落ち着きつつあるようなので自分が投資する意味について考えてみた

僕は資産の一部を現物株式として所有していますが、2015年8月21日頃から日本株にも大きな影響を与え始めた世界同時株安によって、分散していたはずの銘柄が全部同じ方向に動き含み損が出て底値で投げ売りそうになったので戒めとして改めて自分が投資する意味について考えてみました。

僕の投資状況

一時期は資産の約半分を現物株式として所有していましたが、今は約1/4程度になっています。基本的には現物以外の取引は行わず、長期で運用しています。それ以外の資産の多くは元本保証の円預金などです。積極的に投資するというよりは資産の形として株式などを保有するという感じです。レバレッジを効かせるとしても純資産を大きく上回るようなかけ方はしません。

本業と、投資する理由について

投資するのは本業のため

僕の本業はプログラマーです。僕自身やりたいことというのは現在の本業です。後々そこから発展して別のことをやる可能性もありますが、本業以外の部分でたとえ利益が出ていたとしてもここから逸脱するつもりはありません。僕が投資する意味は、例えば本業で利益が全くない状況に陥っても本業をやり続けられる資産を形成するためです。本業がうまくいかない時に別のバイトなどで稼ぐこともできますが、その時間がロスになってしまうのでそうならないようにしています。

副業もセミリタイアも興味がない

株式投資などの界隈には副業・セミリタイア・不労所得なんていう言葉がよく出てきますが、そういったものには全く興味がありません。あくまで前述した通り投資するのは本業のためです。

本業に影響が出るのは本末転倒

基本的に僕が行っているのは、インカムゲインと大きな価格差が出た時のキャピタルゲインを目標とした中・長期投資です。一度は短期取引なども挑戦していましたが投機的であるし市場が常に気になってしまっていたので精神衛生は不衛生でした。また、暇さえあればスマートフォンで株価をチェックしていたので本業に影響が出てもおかしくないと考えたためやめました。決算書と事業を見て割安だったら長期投資という基本を押さえておけば短期的な株価に一喜一憂するということもしなくていいと思います。

おわりに

このブログの投稿している時点では、株価も徐々に回復してきているのでとりあえずは自分の判断を信じようと思います。

ひらくpcバッグベストプラクティス考察1

ひらくpcバッグ( http://superclassic.jp/?pid=41001 )は改めて説明するまでもないくらいに人気のバッグで、あらゆるシーンに利用されていると思います。しかし、プログマミング同様、便利な物も正しく使わなければ最大限に活用できません。そこで僕自身もずっと愛用しているひらくpcバッグのベストプラクティスを考察してみます。

なお、ここに書かれているのはかなり片寄った意見かも知れません。だいたいこんなことを考えてバッグを使うということも普通はしないと思いますが…

今後加筆・修正する可能性もあります。

f:id:flow58:20140301115344j:plain

原則

1ポケット1機能

原則として各ポケットやパーティションで区切られたスペースには出来る限りたったひとつの物を入れる。ただし同時に使うことが想定される物や使用シーンが似ている物は1機能として同じスペースに入れることが出来る。大きさなどの理由でどうしてもパーティションで区切ることが出来ないものなどは除く。

2アクション

ひらくpcバッグ本体の大口のチャックを開ける動作を除き、取り出しのアクションは2回までで取り出せるようにする。例えば ①小ポケットのチャックを開ける→②取り出す。インナーケースは1機能としてカウントできる場合に限りインナーケースをひらく動作はカウントに含めない。

利用頻度とアクション数の一致

利用頻度の高い物はより少ないアクションで出し入れができるようにする。

例外の許容

上記の原則に従うと、用途によっては不便になってしまうかもしれません。ルールに従って自分の生活を変えるか、運用においてこれらの原則に例外を作るかは場合によると思います。例外を許容するという選択をした場合は最低限下記のアンチパターンを避けるようにします。

アンチパターン

アンチパターンとは、ある問題に対する不適切な解決策です。ここではいくつかのアンチパターンについて名前をつけて分類します。

「象を飲み込んだうわばみ」 〜 詰め込み過ぎ

The Little Prince: "My drawing was not a picture of a hat. It was a picture of a boa constrictor digesting an elephant."

本体の三角形の形状を崩すほど物を詰め込んでしまうアンチパターン。見た目上も美しくないし、ひらくpcバッグの機能性を損なう。それほどたくさんの物を入れたいのであれば相応の優れたバッグは他にある。

「無用の長物」 〜 不要な物の詰め込み

遺教経: "無得多求壊其善心 (多くを求めて、其の善心を壊することを得ること無かれ)"

まだ物が入るからという理由で、必要なもの以外も詰め込むアンチパターン。重くなるし、取り出しにくくなるので機動力が落ちる。ガジェット好きにありがち。

「マルチオブジェクト」 〜 区切りの無視

1つのポケットに多くの物を入れてしまうアンチパターン。せっかくのポケットの意味がない。

「認知限界」 〜 小さすぎる物の詰め込み

手を奥に突っ込まなければ取り出せなかったり他の物やポケットの端に隠れてしまったりするような小さな物をそのまま入れてしまうアンチパターン。奥深くに入ってしまって存在を忘れてしまう可能性もある。インナーケースなどで対策する。

「セカンドバッグ」 〜 別持ち

別のまとまりとしてひとつの荷物になるもの(カメラとレンズのセットなど)や、スマートフォンや財布など常時バッグから出して使う物を除き、”ひらくpcバッグに入れるべき物”であるにもかかわらず入りきらないという理由で別のバッグなどで持ち歩くアンチパターン。それらはきっと不要な物。

おわりに

今回はベストプラクティスの考察としていろいろ制限を付けることを考えました。一貫して言えることは持ちすぎないことが重要だということだと思います。バッグの中身も断捨離。

Adobe Creative Cloud年契約の解約は"前月"に行うべき?

Adobe Creative Cloudのコンプリートプランを契約していたのですが、最近はほぼPhotoshopしか使っていなかったので一旦コンプリートプランを解約することにしました。解約のタイミングが分かりにくかったのでちょっとまとめました。


更新日までに手続きすればいいわけではない?

Adobe Creative Cloudのプランを変更した話。 | yamashin gallery

どうやらこちらのブログでは2月10日が解約日で、2月に入ってから更新をしようとしたそうですが、サポートに問い合わせたりいろいろ大変なようですね。

ではAdobeのヘルプにはどう書いているのでしょうか
Creative Cloud サブスクリプションプランの解約方法

月々プランの解約手続き(月々契約・月々払い) サポートへのお問合せ不要
年間プランの解約手続き(年払い/月々払い) サポートへのお問い合わせが必要

と書いてありますね。

更新日ではなく、更新日の月の前日に手続きする

先ほどのAdobeのページでこんな一文も発見しました。

ご契約の最終月(12 か月目)にメンバーシップを解約する場合は、カスタマーサポートに電話で問い合わせる必要はありません。「月々プランの解約手続き」と同じ手順でお手続きください。

"最終月(12 か月目)" つまり、例えば2月10日が更新日であれば1月末日までに解約手続きをすればいいということではないでしょうか。

ということで、僕も12か月目の支払いが終わって、月が変わる前に解約手続きをしたら簡単なアンケートが出てきて数クリックで解約ができてしまいました。

まとめ

Adobe CCの年契約の見直しは、更新日の月の前月にしましょう。

Adobe Creative Cloud[2015年度版]12か月版 Windows/Mac対応 [ダウンロードコード]

「意識高い系」は笑っていいけど「意識が高い学生(笑)」は優しく見守ろう

先日「意識高い系」を笑うな - 心がよろけそうなときに読むポンコツ日記というブログ記事がバズっていたので便乗してみます。と言いつつ、リンク先の記事のような真面目な内容ではありません。

この記事に出てくる用語について

まず幾つかの用語について誤解がないように先に定義しておきます。あくまで僕が認識している意味で、この記事での文脈ではこういう意味として使いますということです。

意識が高い人

そのままの意味で、目標や志などの意識が高い人。実が伴っているかどうかは考慮しない。

意識高い系

意識が高いような振る舞いをするけど実際の努力は特にしていない人、また意識が高いこと自体にアイデンティティを持っていてそれをひけらかしたいと思っている人。ここのニュアンスが難しいのですが、「地獄のミサワ女に惚れさす名言集」に出てくる「実質1時間しか寝てないからつれーわー」*1の人に近いです。あくまでカテゴリ分けであり文科系・体育会系・ウェイ系・意識高い系…のような分類の一つ(僕のイメージです)。先ほどのリンクの方のブログの定義である「志は高いが実を伴わない人」は「意識が高い人」に分類され、ここでの意味とは違います。

意識が高い学生(笑)

意識高い系を学生に限定したバージョン。おそらくこちらの方が「意識高い系」よりも早く出た気がします。でもそういう人が学生に限らずいたので「意識高い系」が定着したのだと思います。「(笑)」については「スイーツ(笑)*2」から来ていると思われます。

意識高い学生(笑)を大二病と言い換えてみる

中二病厨二病)」という言葉があって、wikipediaでは

中二病(ちゅうにびょう)とは、「(日本の教育制度における)中学2年生頃の思春期に見られる、背伸びしがちな言動」を自虐する語。転じて、思春期にありがちな自己愛に満ちた空想や嗜好などを揶揄したネットスラング。「病」という表現を含むが、実際に治療の必要とされる医学的な意味での病気、または精神疾患とは無関係である。

とあります。ようは邪気眼*3の使い手です。

人によって差があるものの、こういう経験をした人はいると思います。中学二年生が厨二病的な発言をしたところで「バカだなー」とは思っても誰も批判はしません。

「意識が高い学生(笑)」も同じようなもので、これも人によって差はありますが大学二年生くらいには自己啓発書を読んで影響されたりするものだと思います。仕事をしている訳ではないので意識だけが高そうなセミナーとか学生団体に入って仕事がないことを補おうとするのは頷けます。

意識が高い学生(笑)は見守ろう

意識が高い学生(笑)は大二病です。仕事をし始めたら自分の未熟さに気づくこともあるでしょう。だからそれまでは見守ってもいいのではないでしょうか。自分の同級生がそれだったら、厨二病だった友達と同じように「バカだなー」と思っておけばいいです。

ただしおかしなセミナーに頻繁に行っているようなら注意してあげてもいいかもしれないです。お金儲けしようという人ほどカモになりやすいので。

意識高い系のおっさんは笑ってあげましょう

学生はいいとして、問題なのはおっさん(おばさん)の意識高い系です。念のためもう一度言葉を分類しておきますが「意識が高い人」ではなく「意識高い系」です。いい歳して意識高い系の発言をしているおっさんは多いですが、そんなことより本業でまず結果を出してからにしろと内心は思います。(僕も人のことを言えるような結果を出している訳ではないですが)

でも厨二病の人はその心を持ち続けたらもしかしたらものすごい漫画家になるといったような道もあるかもしれないので、批判されながらも意識高い系を続けていたらネオヒルズ族になれるチャンスはあるかもしれませんね。

同じ場所に3年間勤めた結果「3年は続けろ」に根拠はないことがわかった

就職したらまず3年は続けてみろというのがおじさんたちの通説となっているようです。僕は今年の4月で、同じ場所に勤めてちょうど3年になりました。その結果感じたのは3年ということに根拠はないということです。

長く勤めることで得るもの・失うもの

僕がそこに入ったとき、技術的にはほとんど何も持っていませんでした。仕事をする中で学ぶことも多く、後半は教える立場になったり他の人がやったことのないことを調査して導入するなどという立場にもなりました。

おそらくこの新しいことを覚えてそれを自分のものにして後輩に伝えるという流れが一般的に3年なのだと思います。ただし、このスパンはその組織によるので早く仕事を任される場合もあるし逆もあると思います。それよりも、それぞれが自ら考えて学ぶことの方が重要なため1年目でも3年目でも5年目でも学ぶことは無限にあると思っています。

逆に長く勤めることで失うものは客観的な視点だと思います。どんなに客観的に組織を見ようとしても3年もいるとその組織の文化にある程度は染まります。特に新卒だとそれが当たり前に感じてしまうので世間的には間違っていることでもそれが当たり前に感じてしまいます。

僕の場合も、組織に入ったときには疑問に思っていたことも最近では改善する努力を忘れてしまうことがあります。

3年は勤めるべきか?

僕の場合は幸いなことに使っている技術も新しいもので需要が高いものが多いので良かったのですが、場合によってはその組織でしか通用しない技術しか身につかない場合もあります。そういう場合は、(職歴の経験年数とも相談しつつ)すぐに辞めるべきだと思います。変なスキルしか身につかないのに3年も過ごすのはあまりにコストが高いです。

先ほども書いたように続けることのデメリットは組織の文化に染まって考え方が固執してしまうことです。技術が身につくこととそのデメリットとのトレードオフを考えて続けるべきかどうかを考えるのがいいと思います。

同じ場所ではなく同じ職種を続ける

僕の考えとして長く同じ場所にいるのは好ましくないと思っていますが、同じ職種は続けるべきだと思います。経歴に一貫性がなければ就職が難しくなるだけではなく、同じことを続けて自己マスタリー*1を目指さなければ何者でもない人間になってしまいます。

*1:kotobank.jp