Santorini sunset

去年の秋( 2018 年 11 月)に、 Flickr が課金ポリシーを変更することがアナウンスされていた。これまですべてのユーザーに無料で与えられていた 1TB のストレージは撤廃され、無料ユーザーは 1000 枚までしか画像をアップロードできないことになった(上限を超えている分は削除される)。料金プランも見直され、既存の Pro ユーザーは $24.95 / 年で Pro プランを利用できていたのが $49.99 / 年(アメリカ国外在住者は $59.99 / 年)と大幅な値上げとなった。 Flickr は 2018 年の 4 月に SmugMug に買収されている。

SmugMug CEO Don MacAskill's statement

Flickr を買収した SmugMug の CEO の Don MacAskill が Flickr のブログで記事を書いている。

A sharper focus for Flickr

A sharper focus for Flickr

I’ve been a fan of Flickr for 14 years. There’s nothing else like it.

blog.flickr.net

要約するとこんな感じ。

  • SmugMug は写真を撮る人にフォーカスしたビジネスを 16 年以上続けてきた
  • 資金調達はしておらず、自己資金で運営されている
  • ユーザーのデータを広告業者に売って広告収入を得ることもしていない
  • 写真家の人々と向き合い、彼らが何を必要としているのかを注意深く聞いてきたのが成功の秘訣
  • そのやり方を Flickr にも適用したい
  • 我々はユーザーのためのサービスであり、投資家や広告会社のためのサービスではない
  • 無料プランは残すが 1000 枚までしかアップロードできず、広告が表示される(プロには表示されない)

要は SmugMug で成功したやり方を Flickr でも踏襲したいということらしい。広告主の為にユーザーを売りたくないと言っておきながら相変わらずフリープランはあって広告を表示するというのは矛盾している気がする。

阿蘇山上から見る普賢岳 / Mount Fugendake from Mount Aso

Flickr VP of Product Andrew Stadlen's statement

Flickr のプロダクト責任者の Andrew Stadlen も無料ユーザーへの扱いの変更について書いている。

Why we’re changing Flickr  free accounts

Why we’re changing Flickr free accounts

Today, we’re announcing updates to our Free and Pro accounts that mark a new step forward for Flickr. To be candid, we’re driving toward ...

blog.flickr.net

  • Yahoo! 子会社時代に無料ユーザーに 1TB のストレージを与えた結果、非常に大きな負の影響があった
  • 無料に釣られて入ってきたユーザーによるコミュニティの破壊
    • 無料のストレージに釣られてくるユーザーは写真に情熱を傾けるユーザーとは属性が異なり、従来 Flickr を特別なものとしていたコミュニティでの交流や関心を共有する場としての雰囲気を後退させた
    • 活気のあるコミュニティを愛する多くの Flickr ユーザーはこのような変化を望まないはずであり、もう一度、写真コミュニティでの交流にフォーカスすることにした
  • 脱広告主優先
    • これまで無料のストレージを提供するために、ユーザーではなく広告主ファーストの状態になっていた
    • Flickr を買収した SmugMug の "You are not our product. You are our priority." というポリシーに共鳴し、広告主ではなく、ユーザーが喜ぶ機能開発を行う
  • Flickr = 無料というイメージの打破
    • 1TB の無料ストレージを与えたことで、ストレージや Flickr 自体が無料のものという認識が広まってしまった
    • 活発に利用しているユーザーにサイトの安定運営と成長、イノベーションを継続するための支援をしてほしい

Nagatare beach

Pro プラン値上げに対する Flickr ユーザーの反応

ヘルプフォーラム内に上の Andrew Stadlen が既存ユーザー向けの料金プランを改定する旨を書いていて炎上している( 1300 個以上レスがついている)。

https://www.flickr.com/help/forum/en-us/72157699931347474/

https://www.flickr.com/help/forum/en-us/72157699931347474/

www.flickr.com

Pro であることで得られるメリットは広告なしブラウズとアクセス解析と制限なしのアップロードだが、いまでも値段に見合わないと思いながら払っている、という書き込みがほとんどで、このままメリットが増えない状態で値上げされるんだったら更新しない、という書き込みが目立つ。

この説明では結局なぜ値上げをするのかが書かれておらず、「2年は値上げしないという約束を守ったんで上げますね」ということしか書かれていない。 SmugMug の最安料金プランが $48 / 年なのでそれに合わせるように SmugMug から指示されたのだと思う。

DSC_6062


考察

Flickr が直面している事業領域は、写真共有(家族・友人)、クラウドストレージ、 SNS という三つだと思う。今日ではそれぞれの市場に強豪がひしめいていてかなり厳しそうだが、昔はそうではなかったはずで、 Flickr が Yahoo! に買収された 2005 年頃は以下のような感じだったはずだ。

Photo Sharing Product Market 2005

Photo Sharing Product Market 2005

この頃は iPhone も Android もなかったし、 iCloud も Picasa Web Album も Google Photos も、 Facebook も Twitter も Instagram もなかった。家族と写真を共有するには CD や DVD に写真を「焼いて」手渡すか、メールに縮小した画像をちまちま添付して送るしかなかった。そこに Flickr が登場して、インターネット越しに簡単に家族や友人に対して写真を共有できるようになった。煩わしいリサイズのことは考えなくてもよい。

家族や友人と共有するだけではなく、写真をインターネット全体に公開して見ず知らずの人と交流することもできた。この頃、写真を公開して人々の反応を得ることができる SNS は Flickr だけだった。他のサービスは家族・友人間の共有やクラウドストレージの機能を売りにしていたが、見ず知らずの人と写真を通してつながれるのは Flickr だけで、そこが写真愛好家の心を捉えた。共有範囲をコントロールできる仕組みと SNS 機能(コミュニティ)によって初期の Flickr は成長した。

その勢力図がいまでは以下のようになってしまった。

Photo Sharing Product Market 2019

Photo Sharing Product Market 2019

スマートフォンが普及して人々がスマートフォンで写真を撮るようになると、WhatsApp や LINE のようなメッセンジャーで写真が共有されるようになった。 日常的に利用しているチャットアプリでの写真共有は Flickr よりもはるかに便利で、身近な人に写真を共有できる Flickr の強みはコモディティ化し、強みではなくなってしまった。

クラウドストレージ市場には Apple や Google がそれぞれ iCloud Photo Stream と Google Photos を投入し、 iPhone ユーザーと Android ユーザーはデフォルトでこれらのサービスを利用することになった。 OS に統合されたこれらのクラウドストレージの利用にはアプリのインストールすら不要でユーザーが深く意識することなくクラウドストレージに写真が保存されるようになった。おまけに Dropbox や Evernote 、 Amazon Drive などの競合もこの市場に参入し、瞬く間にレッドオーシャンと化してしまった。 Google Photos がローンチした 2015 年から Flickr への画像アップロード数が現象し始めている(How many photos are uploaded monthly to Flickr? Flickr may… | Flickr)。

SNS としての Flickr の強みも揺らいでくる。普段使っている SNS で写真を公開できるようになると、わざわざ Flickr を使う必要がない。 Facebook や Twitter で写真を共有できるならわざわざほかの SNS を使う理由はなくなるだろう。写真をキーにオンラインで人とコミュニケーションするときに、 Flickr を使う必要がなくなった。

極めつけは Instagram の登場で、まだスマートフォンで撮られた写真の画質が悪い頃からフィルターをかけるという機能を呼び水に人を集め、スマートフォンによる写真共有 SNS の代表格として君臨した。ハイアマチュアの人々が撮影した綺麗すぎる写真を敬遠して普通のスマートフォンユーザーは Instagram を使ったのだ、と書いている人もいた。

Why is Flickr not Growing as Quickly as Instagram? - Flickr Embed

Why is Flickr not Growing as Quickly as Instagram? - Flickr Embed

As of 2017, Flickr has a huge user base of just over 50 million people. That’s quite an impressive number of users for something that has...

flickrembed.com

In recent times the nature of photography has shifted quite far from what it used to be. Ten years ago, both amateur and professional photographers were focusing on taking breath-taking pictures of landscapes, people, nature and different environments and cultures. These days people are taking pictures of their cats, their shoes and their meals.

この辺はバカと暇人の話に通じるのかもしれない。インターネットがバカになって Flickr が廃れ、 Instagram が流行った。超絶美麗な風景写真よりも自撮り画像とかメシ写真の方が人目を引くのだろう。

こうして Flickr は写真共有、クラウド画像ストレージ、 SNS のすべての市場において強みを失ってしまった。

深江海岸の夕焼け

収益モデル

収益モデルを検証する。 Flickr の収益モデルは 3 つあって、 Ad (無料ユーザー向け)と Subscription ( Pro ユーザー向け)と Merchandise (写真のプリント)だ。

Revenue Model

Flickr 同様に広告モデルを採用している Instagram や Facebook は、写真好きではない普通の人の生活に深く入り込んでおり、 Flickr の何倍もの PV を集めているはずだ。広告による収益モデルはとにかく PV を集めてインプレッションを増やすことが重要なのでこの分野で Flickr は苦戦することが予想される。しかも無料ユーザーに対する制限を強化するとなれば、益々広告収入の額は少なくなっていくだろう。

サブスクリプション領域で最大の競合である iCloud や Google Photos をやっている Apple と Google はハードウェアが売れたり iOS / Android のプラットフォームが拡大することが目的なので、サブスクリプションモデルではあるがぶっちゃけ単体で儲からなくても大丈夫なはずだ。 Flickr や SmugMug は単体で利益を上げることを重視して運営しなければならないので、いわゆる捨て身の状態で運営できる iCloud や Google Photos とまともに勝負するとかなり苦戦を強いられるだろう。

写真のプリント販売に関しては、この先は厳しくなっていくばかりだろう。むかし iPhoto にあったプリント販売を利用したことがあるがいまいちだったし、もはや Photos にはそんな機能は付いてない( App Store でプリントできるアプリを探しましょうと表示される)。印刷したければ印刷サービスを使えばいいだけで、わざわざ中間マージンを取られる Flickr を使うメリットがない。そもそもプリントした写真を好むユーザーは Flickr を使うとは思えない。高齢者はプリントを好むかもしれないが、 Flickr の主なユーザー層はミレニアム世代以下の若い世代だろう。

どの領域においても Flickr が儲けられる要素が見つからない。

今宿夕焼け

課金ポリシー

個人的には $44.95 / 2 年 で Flickr Pro を利用していたので今回の値上げはかなり高いなという印象だった。アメリカ国外居住者に対しては $49.99 ではなく $10 上乗せした $59.99 を提示するなど料金プランには不公平感がある。

さらに運営にかかるコストを、コミュニティに貢献し最もアクティブに使っているユーザーから徴収するというのもいい印象を持てない。リポジトリに課金していた頃の GitHub が OSS には無料で利用させていたように、コミュニティに活気をもたらすユーザーはむしろ優遇しなければならないのではないかと思う。熱心に良い写真を投稿し、 Flickr の PV や MAU 増に貢献する Flickr にとってありがたいユーザー(プラットフォーム革命でいうところの生産者)に課金して、ただ見に来るだけのユーザー(消費者)は無料で使えるのには違和感がある。

あるいは Flickr は写真を投稿せず見に来るだけのユーザーこそコミュニティに活気をもたらすと考えているのだろうか。 SmugMug CEO の Don MacAskill のブログ記事には「無料ユーザーがコミュニティに活気をもたらす」と書いてあったので、そういうスタンスなのかもしれない。写真を投稿するユーザーはいいねが欲しく、いいねをもらうために Flickr にお金を払って Pro ユーザーになり写真をアップロードする。すると無料で利用している閲覧ユーザーたちがやってきていいねを押していく。いいねをもらった Pro ユーザーは承認欲求をみたされる。この考え方ではいいねを送る方が生産者であり、受け取る(写真をアップロードする)方が消費者だといえるのだろう。そうなると写真をアップロードする側に課金するポリシーは分からなくもない。

ただ一方で VP of Product の Andrew Stadlenは「無料の 1TB ストレージにつられてやってきたユーザーはコミュニティを破壊した」とも述べている。いいねをもらったり送ったりを Pro ユーザー同士で行わせたいのだろうか。誰もが消費者であり誰もが生産者である eBay や Etsy のような市場構造にしたいのかもしれない。ただそれでは市場(コミュニティ)はしぼんでしまうだろう。

DSC_1021

SmugMug way は Flickr に適合するか

Flickr は家族や友だちと写真を共有する他に、 SNS 上で写真をベースに交流するという側面があった。プロではない、普通の写真好きな人たちが撮った写真を披露しあい、お互いの写真を褒め合う場所。上の方で引用した記事にもそのようなことが書かれている。

一方で SmugMug は交流というよりも、写真を生業としている人たちのためのオンラインストレージで、無料プランはなく、利用するには必ず費用を払う必要があった。収益モデルこそ似ていて Subscription モデルだが、そもそものビジネスモデルが異なる。 Flickr はプラットフォームだが、 SmugMug はプラットフォームではない。プラットフォーム革命の定義にならうなら、 SmugMug はネットワーク効果の働かない単なる SaaS で、 20 世紀型の直線的ビジネスモデルに過ぎない。

エンジニアも理解しておいた方が良いプラットフォームというビジネスモデル

エンジニアも理解しておいた方が良いプラットフォームというビジネスモデル

『プラットフォーム革命』という本を読んで非常に考えさせられることが多かった。かつては一世を風靡したものの今では名前も聞かなくなった Nokia と BlackBerry がスマートフォン市場で僅か数年で Apple と Google に敗北したというエピソードから話が始まる...

portalshit.net

SmugMug による Flickr 買収はきっとうまく行かないだろう。 The Verge の記事には以下のように書いてある。

But technology-wise, this acquisition might be a tall order for SmugMug, which isn’t nearly as big as the photo service it now owns

Flickr acquired by professional photo hosting service SmugMug - The Verge

サービス規模的には Flickr の方がでかいので、技術的には SmugMug には手に負えない仕事を請け負ってしまったことになりそうだ。


この記事でもたくさん Flickr にアップロードした画像を貼り付けた。埋め込みの機能は便利だと思うけど、残念ながら年に $59 も払うことはできないのでいまの Pro サブスクリプションの期間が終わったら Flickr の利用を終了すると思う。

Flickr は単独で収益モデルを確立する前に Yahoo! に買収されて飼い殺し状態が長かったことが悔やまれる。正しくスマートフォン時代に適応できていたら、今頃は女子高生が利用するのは Instagram ではなく Flickr だったのかもしれない。

さようなら、これまでありがとう。

Archive ページ をリファクタリングした。

これまで gulp をビルドに利用していた(Archive ページを React Router 化)が、 webpack を使うように変えた。

React のコードも見直して、 DOM の状態に依存して表示・非表示を切り替えるコードがあったりして( 🐙 Archive ページにカテゴリごとの記事件数を表示する機能を追加 )ごちゃごちゃしてたので DOM を直接ごちゃごちゃ操作するのをやめて React で管理するように変えた。親コンポーネント、子コンポーネント、孫コンポーネント、子コンポーネントの兄弟コンポーネント間で状態を共有する必要があって、結構難儀した。

Archives React Component 1.png

実際の画面を見るとこんな感じ。

Archives React Component 2.png

App というコンポーネントがルートにあって、子に CategoryListCategoryList の子コンポーネント( App からすると孫)に Category コンポーネントがある。記事一覧自体は CategoryList と兄弟コンポーネントである Archive コンポーネントが担当している。

Archives React Component 3.png

こんな感じで特定の Category が選ばれたことを Category のクリックイベントをトリガーに CategoryList に伝達し、 CategoryList はさらにそれを App コンポーネントに伝える。その結果が App から Archive コンポーネントに伝えられ、表示内容が変更される。

この辺を参考にして実装した。コールバック関数を props として引き回し、状態を回収する感じ。

Reactjs - How to pass values from child component to grand-parent component?

Reactjs - How to pass values from child component to grand-parent component?

Below is correct example for passing the values from child component to parent component in reactjs. App.jsx import React from 'react'...

stackoverflow.com

React Router v4 でルーティング先の component に Props を渡す方法 - ngzmのブログ

React Router v4 でルーティング先の component に Props を渡す方法 - ngzmのブログ

「React Router v4 でルーティング先の component に Props を渡す方法」について調査したので記事にします。 基本的なReact Router v4 の基本的なルーティング React Router v4 の基本的なルーティングは次のような感じで...

ngzm.hateblo.jp

ただこういう込み入った状態の管理を React で行う場合は Redux などを利用するのが良いようだった。

ReactとFluxとReduxについて順を追って整理する

ReactとFluxとReduxについて順を追って整理する

書き途中 React Viewのライブラリ。 なぜ、従来のjQueryやBackbone.jsやVue.jsで…

hogehuga.com

前職のとき、 Redux とか Flux が出てきた頃に F/E のエンジニアの人たちが熱狂してたけど自分はいまいち理解できなくて、傍観するだけだったが、いまさらにして何となく Flux アーキテクチャの概要的なものを把握することができた気がする。ただ自分の場合は深みに入り込まず極力シンプルに作りたいと思っていたので Redux などには手を出さず、 Callback で愚直に状態を親コンポーネントに伝達していく方法をとった。

React 、やっぱり大分良いものだとという感じがした。 jQuery でクラスや CSS で show - hide を Toggle していた頃とは隔世の感がある。

DSC_3779.jpg

久々に開発環境をいじってて brew upgrade tmux したら色々ぶっ壊れてつらい。

具体的には以下のブログを参考に、 pane の swap を screen 風にしていた設定が効かなくなってしまった。

tmuxのペイン切り替えをscreenみたくする(ターミナルマルチプレクサ Advent Calendar 2011 23日目) - kozo2のはてなダイアリー

tmuxのペイン切り替えをscreenみたくする(ターミナルマルチプレクサ Advent Calendar 2011 23日目) - kozo2のはてなダイアリー

ターミナルマルチプレクサ Advent Calendar 2011の23日目でございやす。 すいやせん、日またぎ遅刻しやした。tmuxはscreenと比べると設定をあまりせずとも便利に使えるのがいいところですが、screenから乗り換えた際にどうしても不便に感じるのがact...

kozo2.hatenadiary.org

## paneの入れ替えをscreenっぽく
bind-key C-n swap-window -t:+ \; swap-pane -s:-
bind-key C-p swap-window -t:- \; swap-pane -s:+

こういう使い方をしていた。

# 状態 1
window 1 A|[B] <- window 1 の pane B がアクティブ
window 2 C     <- window 2 に pane C が単独で存在

C-b C-n を入力し、以下のような配置になっていた(これまで)。

# 状態 2 (tmux 2.8)
window 1 A|[C] <- window 1 の pane B があったところが pane C になる
window 2 B     <- window 2 には pane B が単独で存在

ところが tmux 2.9a 以降ではこんな風になってしまう。

# 状態 2 (tmux 2.9a)
window 1 [B]   <- window 1 pane B が単独で存在しアクティブ
window 2 A|C   <- window 2 に pane A と C 単独で存在

このほかにも tmux-powerline が綺麗に動かなくなったりして色々厳しい。 tmux は 2.8 までが安定している気がする。

仕事ではほとんどコード書かなくなってしまったのでたまの休みで時間があるときになんかやろうとするとこういうトラブルに遭遇して死んでしまう。プログラミングスキルのみならず開発環境の維持・セットアップにいたるまで、プログラミングに関連するあれこれは料理人が日々包丁の手入れをするように常日頃から磨いていないとさび付いてしまう。

追記

tmux の件は以下なんかを参考にしてみようかな。

tmux-change-paneというコマンドを作った

tmux-change-paneというコマンドを作った

ota42y.com

さらに追記(2019-08-25T11:34:25)

.tmux.conf を以下のようにしたら解決した。

bind-key C-n swap-pane -t:-
bind-key C-p swap-pane -t:+

むしろ最近の変更で tmux の pane スワップの挙動が自分の好み( screen 風)に近づいたみたい😅

最新の Rebuild.fm のエピソードを聞いてたら Automattic による Tumblr 買収の話から Medium 、 WordPress から古の Blogger 、 TypePad 、 MovableType まで話が及んで楽しかった。

https://rebuild.fm/246/

https://rebuild.fm/246/

rebuild.fm

エピソード内で miyagawa さんがインディーなインターネットユーザーとして独自ドメインは重要だけど、誰も使わないから当てられるサービスがなくなってきた、その意味で WordPress は独自ドメイン使えるので悪くない選択だと思う、的なことを言っていたのが印象的だった。エピソード中でも触れられていたけど、 Medium は新規登録ユーザーに対して独自ドメイン利用を利用不可能にしている模様。

Custom Domains service deprecation

Custom Domains service deprecation

As of November 2017, Medium is no longer offering new custom domains as a feature. Instead, you can create a publication on Medium that w...

help.medium.com

ブログプラットフォームとしての知名度を高めるためには一目で「あ、このブログは Medium 使ってるんだ」とわかった方が良いはずで、となると独自ドメイン名を使われるのは良くないと判断したんだろうなぁ。

加えて Medium は確かに最近よくログインを求めてくる。旧型の iPhone 7 で見ると画面の 1/3 くらいの領域をユーザー登録導線にしてる感じ。読みづらい。なんらかのプラットフォームに乗っかると、やはりプラットフォームに「こう使って欲しい」と制約をかけられることになりがちだ。ステークホルダーが書き手、読み手、プラットフォームの三者になるので当然といえば当然か。一方でセルフホストのブログなら基本的には書き手と読み手の二者しかステークホルダーがいない。

ブログは自分で作るのが一番満足度高いと感じる。意に反して広告が出るようになることはないし、読者にログインを強要したりもしない。足りない機能があれば自分で作ればよいというのもよい1。自分はセルフホストのブログを同じドメインで 14 年やってて、最初は P_BLOG 、 そしていまは Lokka を自分で細々と改修しながら使ってる。時々更新が途絶えることはあるが、ほぼほぼ毎月一本は何かしらを書き続けることができている。サーバーの運用は発生するが、まぁプログラマーなら自宅サーバーか VPS くらい飼ってるだろうし、運用は趣味の一環かなという感じがする。

2019-08-24 06.57.38.gif

Lokka のプレビューはサーバーサイドに保存時と同じパラメーターを POST して、 DB にレコードを保存せずレンダリングだけ行うが、 GitHub や Kibela のようなタブ切り替えでインスタントに Markdown のプレビューができると便利だろうと思って、 Markdown で編集中に Edit と Preview をタブっぽい UI で切り替えられるようにしてみた。

Markdown のレンダリング自体はサーバーサイドで行っているので、プレビューしたときと実際に保存したときで Markdown の解釈が異なるということもない。

ただリモートで生成した HTML 文字列を DOM に挿入するときに単純に document.innerHTML = body; のようなやり方をしてしまうと JavaScript が動かず困ったので、 iframe を作って document.open(); document.write(body); document.close(); するやり方をとった。そうなると今度は iframe の高さを body のレンダリング終了後に調整する必要があって色々面倒だった。たまに高さがずれたりはするが、基本的にはめっちゃ便利。

Lokka の利用者少ないと思いますが、 Lokka 本体にも入れようと思います。 Ruby の最新版への追従へも最近は行えてないのでこれもやります。

このブログの記事投稿画面で、画像をコピーアンドペーストでアップロードできるようにした。以前、ドラッグアンドドロップではアップロードできるようにしていたが、 GitHub や Kibela ではコピーアンドペーストでアップロードできるようになっておりはちゃめちゃに便利だったので真似してみた。こんな感じ。

2019-08-18 15.31.56.gif

ハイパー便利。

Reference

Element: paste イベント

Element: paste イベント

paste イベントは、ユーザーがブラウザーのユーザーインターフェイスで「貼り付け」操作を行ったときに発生します。

developer.mozilla.org

Castro

以前書いたことがある Castro🎧 Overcast と Castro - portal shit!)がすごく便利になっている。

以前の記事では、 Overcast にあるチャプター移動機能やオーディオエンハンスメント・無音カット機能が Castro にはないと述べていた。しかし一年ちょい前にリリースされた Castro 3 により、有料ではあるがこれらの機能が提供されることになった。

Release Week: Castro 3 and Castro Plus

Release Week: Castro 3 and Castro Plus

With this update Castro became free to download from the App Store. The triage features, and almost everything else, that users loved in ...

castro.fm

これがめっちゃ便利。 UI は前にも述べたとおりすぐれているし、さらに購読中の Podcast のショーノートを検索する機能も今年の 1 月についた。

これもスーパー便利で、「あの Podcast の誰々がゲストで出てる回を検索して聞きたい」というありがちな要望を満たすことができる。以下は Rebuild のエピソード一覧で "higepon" で検索し、 higepon さんが出てるエピソードだけを絞り込んでる図。

めっちゃ便利で最高なので是非お試し下さい。