てっく煮ブログ

2012年01月18日

もし100万人のフォロワーを持つ有名人にサイトを紹介されたら

twitter を眺めてたら、昔自分が作った Color Illusion Generator を外国の人が取り上げてくれていた。

発信源をたどってみると、110 万人ものフォロワーを持つ認証済みアカウントの有名人さんが紹介してくれていたようだった。

@peeweeherman tweet

この @ さんはアメリカコメディアンポール・ルーベンス」氏のようだ。Wikipedia によると、1990 年ごろに子ども向けテレビ番組で「ピーウィー・ハーマン」というキャラクターで人気になったらしい。日本でも和光証券(現みずほ証券)の CM にも出演していたようだ。

日本だと、ガチャピンさん(@)が子ども向け番組で人気だったし、フォロワーも 114 万人いるので、立ち位置がかなり近い。

つまり、今回の件は日本人に分かりやすくいうと

「ガチャピンが twitter で自分のサイトを紹介してくれたらどうなるか」

という話なのである

100万人に紹介されるとどうなるか

さて、100万人のフォロワーを持つアカウントからリンクされるとどうなるんだろう。

アクセスログ分析して 5 分ごとのアクセス数グラフにしてみた。

紹介直前まではアクセス数 0 だったのに、紹介後約10分でいきなり 1,000 アクセスを達成。そこをピークに一気にアクセス数は下がり始め、1時間後には 5分あたり 100アクセス弱に落ち着いた。

その後、第2の山がくることはなく、順調にアクセスは減り続けた。その日の終わりには 1 時間に 60 アクセスほどに落ち込んでいた(といっても、いままでは 1 日に 10 アクセスもないようなコンテンツだったので、それでも異常事態には変わりない)。

結局この日の総アクセス数は 6,300 件。うち twitter 経由は 2,200件、facebook 経由は 3,000 件だった。twitter 経由でのアクセスよりも、facebook からのアクセスが多いのが興味深い。twitter で紹介されたこともあり、初動は twitter が大きかったものの、そこから先は facebook 経由でのアクセスのほうが 1.2〜2.0 倍で推移していった。

そして、twitter、facebook のいずれも、潮が引くのが早い。著名なブログなどで取り上げられたときなどは、少なくとも半日ぐらいはアクセス数を維持してくれた記憶があるが、twitter や facebook ではそうはいかない。真の意味でバズるには、単発の爆発だけでは全く役に立たない。多くの人がリツイートしたくなるような魅力的なコンテンツでなければならない。

紹介してもらった日からの日別アクセス数は、6,300 → 536 → 187 → 96 → 63。いまでは元通りの平穏なアクセス数に落ち着いてしまった。

せっかくなのでフォロワー数ランキングを調べてみた

日本のフォロワー数ランキングは

となっており、100万人を超えるのは2人のみだった。

世界1位はレディーガガさん(@)。フォロワーはなんと 1,800 万人。格が違いすぎる。100 万人のフォロワーがいる人は、世界に 600 人ぐらいいる。世界は広い。

ちなみに自分(@nitoyon)のフォロワーさんは 2,300 人。100万人と比べるとゴミのようである。。。

(参考)

まとめ

今回の件を3行でまとめる。

  • アメリカのガチャピン的な人にサイトを紹介してもらった。
  • twitter と facebook は大拡散しないかぎりは波は一瞬で消えていく。
  • 英語向けにサイトを作っておくと、予期せぬタイミングで予期せぬ人から紹介してもらえておもしろい。

2012年01月10日

うちの年賀状2012

今年もよろしくおねがいします。今年最初エントリはうちの年賀状です。

2012

昨年、9月子どもが生まれて、生活が一変しました。

龍で子どもといえば、まんが日本昔ばなし以外には考えられなくなったので、原作ベース作成しました。

自分が龍に扮装し、妻子を背中に乗せております。実生活でも同じように家族を支えられるよう希望を込めて…。

子がいる生活

昔、1年前の自分を知りたくて 全自動ブックマーク棚卸し というもの作りました最近だと、1年前の twitterfacebook の書き込みがメールで送られてくる timehop というサービスもあるようです。

娘が生まれて、自分の親との会話も増えてきました。そんな中、「自分が子どもの頃はどうだったのか」を聞く機会も多く、娘の成長と一緒に自分の人生を最初から振り返っているような感覚があります。

以上、1年前を振り返るだけでは物足りなくなっていたら、いつのまにか30年前を振り返るツールができあがっていた、という話でした。

2011年10月11日

Boost の定番機能はこれだ

C++ の定番ライブラリ Boost はいまや不動の地位を得ていますが、機能が多岐にわたりすぎていて、何から使い始めていいのか分からずにとっつきにくい印象がありました。

Boost 関連の情報を探していて、Boostを使用しているプロジェクト - boostjp というページを見つけました。このページでは、Boost 公式ページ上の

リンクしています。この3ページでは、様々な製品プロジェクトで利用されている Boost のコンポーネントが紹介されています。

せっかくなので、利用数ランキングを集計してみました。多くのプロジェクトで利用されているコンポーネント=定番機能、という単純な発想です。

ランキング1〜10

早速1位から10位を紹介!!

順位コンポーネント名利用数
1Boost.SmartPointers24
1Boost.Bind24
3Boost.Regex20
4Boost.Function17
5Boost.StringAlgorithms14
5Boost.Thread14
7Boost.TypeTraits12
7Boost.DateTime12
7Boost.Tuple12
7Boost.FileSystem12
7Boost.Iterator12

上位に入っている多くの機能が、C++0x では標準ライブラリに取り込まれるようです。

10位以下はこんな感じ

ちなみに10位以下は次のようになっています。

続きを読む

2011年10月04日

CraftLaunch 3 を便利にする自作プラグイン6つ

プログラマブルなコマンドライン ランチャー CraftLaunch 3 が楽しい で CraftLaunch 3.Xを紹介しました。

いままで自作プラグインとして、

公開しましたが、そのあと、さらに6つ作って便利に使っているので紹介しておきます。

ソースは全て https://github.com/nitoyon/clnch3_extensions に置いています。

url_alias - URL を開きやすくするプラグイン

CraftLaunch から特定の URL を開くのが便利になります。本体の機能でも特定の URL を開く機能はありますが、「コマンド名;パラメータ」の形で入力する必要があって不便なので、;不要にしてみました。

入力例:

登録は、config.py に次のようにして正規表現定義します。

# config.py の configure() 関数に次のように記載します

import url_alias
#reload(url_alias)
url_alias.register(window, 
                   { 'regex': re.compile('^rfc(\d+)$', re.IGNORECASE), 
                     'url': 'http://www.ietf.org/rfc/rfc%param%.txt' },
                   { 'regex': re.compile('^@(\w+)$'), 
                     'url': 'http://twitter.com/%param%' },
                  )

BTSメーリングリストの番号をブラウザで開けるようにするとお仕事でも便利!

control_panel - コントロールパネルや管理ツールをコマンド化する プラグイン

コントロールパネルや管理ツールのアイテムを開けます。

コントロールパネルや管理ツールの各アイテムは日本語Windows ではキーボードアクセスしにくいので、キーボード派の人には便利じゃないでしょうか。

続きを読む

2011年09月29日

WinRT の async/await コーディングがおもしろい(のでJavaScriptで真似してみた)

Windows 8 開発者プレビューでの開発を試していたところ、非同期プログラミングを簡単に書ける await キーワード面白かったので紹介します

Windows 8 用に Metro アプリを開発する場合、WinRT(Windows Runtime)というフレームワークを使ってプログラミングします。

WinRT では、UI 応答速度を上げるための工夫として、少しでも時間がかかる可能性のある処理は、非同期の API のみが提供されています。

なんかめんどくさそうですよね。

いえいえ、そんなことはありません。.NET 5 から導入される async/await キーワードでとても簡単に書けてしまいます。

HelloWorld アプリケーションのサンプル

たとえば、HelloWorld アプリケーションでは次のようなサンプルが紹介されています。

// UI を表示するページのコンストラクタ
// UI スレッドで実行される
public MainPage()
{
    InitializeComponent();

    // RSS/Atom を読み取る
    GetFeedAsync("http://windowsteamblog.com/windows/b/developers/atom.aspx");
}

// 非同期に RSS/Atom を読み取るメソッド
// async キーワードがついているので、非同期で
// 実行される可能性がある 
// (メソッドの完了を待たずに、呼び出し元に
//  処理を返すことがある)
private async Task GetFeedAsync(string feedUriString)
{
    SyndicationClient client = new SyndicationClient();
    Uri feedUri = new Uri(feedUriString);

    try
    {
        // 非同期で RSS/Atom を読み取る
        // await キーワードがあるので、GetFeedAsync()
        // メソッドは処理の完了を待たずに、いったん
        // 呼び出し元に return する
        SyndicationFeed feed = 
            await client.RetrieveFeedAsync(feedUri);

        // ここから先は、非同期で RSS/Atom を
        // 読み取り完了時の処理
        FeedData feedData = new FeedData();
        feedData.Title = feed.Title.Text;

        foreach (SyndicationItem item in feed.Items)
        {
            // RSS の各要素の処理を行う
        }
    }
    catch (Exception ex)
    {
        // 非同期での RSS/Atom の読み取りに
        // 失敗したときの処理
        TitleText.Text = ex.Message;
    }
}

コメントで説明してしまいましたが、詳しく見ていきましょう。

続きを読む