ariyasacca

カテゴリ一覧

Biz | SF | Software | tDiary | Web | ゲーム | サバティカル | スポーツ | ミステリ | メタル | 健康 | 投資 | 携帯 | 時事ネタ | 死生観 | 資格 | 雑記
2004|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|

2009-11-03 (火) [長年日記]

[Software]Last.fmで指定したユーザの再生トラックを表示するWindowsガジェットをつくりました

音楽SNSのLast.fmで、特定のユーザが今どんな曲を再生中か表示するWindowsガジェットをつくってみました。

【スクリーンショット】Last.fm friend ticekrをWindows Vistaのサイドバーで実行したサンプル。

仕様

  • 1つのガジェットで、最大3人のユーザの、最後に再生したトラックのタイトルを表示します。現在再生中のときはユーザ名の横に再生中マークを表示します。
  • このガジェットに、自分のアカウントのパスワードを記録させる必要はありません。フレンド登録していなくてもプロフィールを全体に公開しているユーザなら(たぶん)誰でもトラックを表示できます。
  • 再生トラックの情報を取得する間隔は1〜3分で設定できます。初期設定では2分間隔で再生トラック情報が更新されます。
  • 日本語の曲名も表示できます。
  • ガジェットをあまりにも沢山並べて同時に情報を取得しまくると、Last.fmへの負荷がかかり、一定時間アクセスを遮断されるかもしれません。
  • ときどき「Request timeout.」とメッセージが出ますが、放っておけばまた再生トラック情報を取りに行きます。「User not found.」とメッセージが出たときは、ユーザIDを間違えているか、非公開ユーザだと思います。*1

動作環境

Windows XP
サポートしていません。Windows XPでWindowsガジェットを動作させる方法もあるらしいのですが、やったことが無いので分かりません。
Windows Vista
Windows Vista Ultimate SP2(32bit)とWindows Vista Business SP2(32bit)で動作確認しています。
Windows 7
手元に環境が無いので未検証ですが、たぶん動くんじゃないでしょうか。

作った経緯

3ヶ月くらい前にmixiミュージックの閉鎖がきっかけでLast.fmを利用し始めたんですが、かなり細かく再生履歴を残してくれて本当に面白く使ってます。

個人的にLast.fmを使っていて一番楽しいのは、ログインした直後のホーム画面に出て来る「再生中の友だち」情報で、22:00から23:00くらいにアクセスすると色んな人がさまざまな音楽を聴いていて、「そうそうこの曲は昔好きだった!」みたいに影響を受けて自分でも聴き返したりしています。

いちいちLast.fmにログインしたり、ホーム画面をリロードするのが面倒なので、画面端にちょこんと表示しておけると良いなぁと思っていました。

Windows Live Galleryも探してみましたが僕の探し方が良くないのか、欲しい機能を提供してくれるガジェットが見付からなかったため、自分でつくってみることにしました。

【スクリーンショット】Last.fmtのホーム画面に表示される「再生中の友だち」情報

謝意

特集:自分好みのガジェットを作る! Windowsサイドバーガジェット作り入門
ガジェットを作るのに必要な情報が網羅されており、参考にさせて頂きました。とくにGadget Debug Helperには何度も助けられました。標準のデバッグ手段が何も用意されておらず、これが無かったら放り出していたと思います。
UserIcons
ガジェットの中にLast.fmのユーザアイコンを取得するのに利用させて頂きました。

今後の拡張予定

自分に欲しい機能は一通り揃ったので、今後の拡張は予定していません(><

*1 Last.fmに非公開設定とかあるのか、実はよく知りません。


2009-11-04 (水) [長年日記]

[雑記]C#はクロージャが手軽に記述できるから良い

C#をちょこちょこ使い始めて2ヶ月弱になりました。かなり気持ちよく記述できる言語だなーと思ってます。

イベントハンドラとか、特定のメソッドからコールバックしてもらう時に、局所的な機能はいちいち分けて宣言したくないんですが、C# 3.0だとラムダ式を使って、一連の手続きをまとめて記述できるので後から読み返し易いです。

public static class Kakakucom 
{
    public static void GetLowestPrice(string keyword, Action<string> callback)
    {
        //価格.comから最安値で検索してコールバック的な何か
        callback(lowestPrice);
    }
}

//Kakakucomクラスを利用する側
string keyword = "碧いうさぎ";
Kakakucom.GetLowestPrice(keyword, (lowestPrice) => 
{
    Func<bool> isHit = () => 
    {
        return lowestPrice.Length != 0;
    };

    if (isHit())
    {
        MessageBox.Show(keyword + "の最安値は" + lowestPrice + "円でした!");
    }
    else 
    {
        MessageBox.Show(keyword + "の最安値は見付かりませんでした...");
    }
});

厳格に作られているJavaの言語仕様に、RubyとかJavaScriptの柔軟さをちょっと混ぜた感じで、C#はとても学習し易いと思います。PHPにも無名関数が導入されたみたいだし、色んな言語で楽ができるようになると嬉しいなぁ。

ところで、なんでVisual Studioは標準でEmacsキーマップは用意されているのに、viキーマップは無いんでしょうか?

[時事ネタ][携帯]イー・モバイルは都心だと繋がらない?

WiMAXは東海地方でまともに使えるのはまだまだ先だろうしどうでも良いのだけど、

イー・モバイルの利用者からは「ユーザー急増でインフラが追いつかないのか、都心部では下り毎秒数十キロビットなんてことはザラ」という声も聞こえるだけに、UQがごっそりとさらえるチャンスのはずが、100円パソコン利用者には「2年間継続利用」の縛りがあるだけにそれもままならない。

これ本当なの? こないだ関東へ遊びに行ったときは、東京駅の八重洲口エリアの地下でずっとイーモバイル使っていたけど速度が遅くて使い物にならんなんてことは全然無かったけどなぁ。新宿とかだと事情が違うんだろうか。

うーん、イーモバイルの契約はあと1年弱あるけれど、契約が終わったその時に

  • 東海エリアでも利用者急増で速度が出ないので継続利用はためらわれる
  • 有力な乗り換え候補の一つになり売るはずだったモバイルWiMAXは憤死

みたいな状況になっていたら嫌だなー。

[時事ネタ]また日本油脂か

武豊工場では05年8月、火薬保管庫で火災が発生して2棟が全焼したほか、00年8月には無煙火薬が爆発し、住民ら112人が重軽傷を負い、民家など約1500棟が被災する事故が起きている。

前回の時は、近所に住んでる人の家が揺れるほどだったって聞いたけど、また日本油脂の武豊工場で爆発したのか。

あれ、いつの間にか会社名が日油に変わってる。


2009-11-05 (木) [長年日記]

[時事ネタ]Edyが楽天傘下になったニュースには驚いた

寝耳に水というか、「えっ」と思わず声に出てしまうくらい驚いた。Edyを運営するビットワレット社は創業以来ずっと赤字ということは何度か報道されていたけど、まさかこんな形になるとはなぁ。

SuicaやWAONのように主体となる事業が無くて顧客の囲い込みができないところが弱みであり、また、それ故の中立性が強みでもあると社長が語っていたけど、この先どれくらいニュートラルな立ち位置の電子マネーとして事業を続けられるんだろう。

僕はメインでEdyの付帯したクレジットカードを使っていて、東海地方では一番対応店舗が多いのがEdyなので不自由していないんだけど、この先もこれまで通りに色んなジャンルの店に対応端末の普及を推進してくれるのか、ちょっと注視しないとなぁ。


2009-11-06 (金) [長年日記]

[雑記]C#でsetTimeout的な非同期処理

非同期にしたい処理はBackgroundWorkerに任せるとして、ウェイト部分をどうすれば良いんだ? と思ってた。

public BackgroundWorker SetTimeout(Action fn, int time)
{
    BackgroundWorker worker = new BackgroundWorker();

    worker.DoWork += (sender, e) => 
    {
        Thread.Sleep(time);
    };

    worker.RunWorkerCompleted += (sender, e) => 
    {
        fn();
    };

    worker.RunWorkerAsync();

    return worker;
}

//1000ミリ秒のウェイト
var worker = SetTimeout(() => 
{
    MessageBox.Show("1000ミリ秒経過");
}, 1000);

参考

Thread.Sleep()で待てば良かったんですね。

勉強になりました!


2009-11-09 (月) [長年日記]

[雑記]28歳になりました

28歳になりました。

エッチなコンテンツを合法的に鑑賞可能になって10年が経過したと思うと、何だか感慨深いものがあります。居酒屋でおごってもらうなど、ちょっと良いこともありました。

ゲームをやらなくなった

今年はゲームソフトを1本も購入していません。まさか自分が全くゲームで遊ばなくなる日が来るとは、10代の頃には想像もできませんでした。

こういう現象は、社会人になって患う中二病のようなものだと聞くので、またそのうち遊ぶようになるのかもしれません。

[雑記]C#で自分以外のクラスが持つイベントを発生させたい

C#では、クラス自身が持つイベントでなければ、イベントの発生を登録されたイベントハンドラに通知することができません。

どうしても外部のクラスから、自分以外のクラスが持つイベントを発生させたいときはどうすれば良いのか試してみました。リフレクションは後から読み返した時にメンテナンス不可能なほど複雑になりそうなのでやめました。

class Hoge 
{
    //いろいろイベントを定義
    public delegate void LoadEventHandler(object sender);
    public event LoadEventHandler Loaded;

    public Action GetEventTrigger(eventName)
    {
        Action trigger;

        //公開しても良いトリガであれば返す
        swtich (eventName.ToLower())
        {
            case "loaded" :
                trigger = () => 
                {
                    if (this.Loaded != null) this.Loaded(this);
                }

                break;
            
            case "initialized" :
                trigger = () => 
                {
                    if (this.Initialized != null) this.Initialized(this);
                }

                break;

            default :
                throw new ArgumentException();
        }

        return trigger;
    }
}

var hoge = new Hoge();
var trigger = hoge.GetEventTrigger("Loaded");

//イベントの通知
trigger();

Actionデリゲートで返してやれば、外部からイベントをフックすることも可能ですね。

そもそも外部のクラスからイベントを発生させるとか設計を疑った方がいいですねわかります。

本日のツッコミ(全6件) [ツッコミを入れる]

Before...

雷悶 [そいえば.NETの本は一冊も読んだことがなかったです。いろいろとお作法を間違えたままになってないか心配になってきたお..]

rancor [28歳の誕生日、おめでとうございます!]

雷悶 [ありがとうございます!]

店長やまもち [あらおめでとん!なんかゲームやろうぜ!(ワシも特にやっていない)]

雷悶 [ありがとうございます! 来年こそゲームやるぜ!(今年はあきらめた)]


2009-11-14 (土) [長年日記]

[雑記]マイコミジャーナルをフィード経由で閲覧するとトラッキング用パラメータのようなものが付くようになってる

数日ほど前から、フィードを購読しているマイコミジャーナルをlivedoor Readerからピンで開くと、記事のURLの末尾にトラッキング用パラメータのようなものが付くようになりました。

【スクリーンショット】記事URLの末尾にパラメータが追加されている。

?from=rssといったパラメータを削ってくれるGreasemonkey「Ref Cutter」を編集して対応する

この手のパラメータを削ってページを再読み込みしてくれる「Ref Cutter」というGreasemonkeyスクリプト(現在は非公開になっているようです)に少し編集して、マイコミジャーナルにも対応してみました。

オリジナル版が現在非公開なので、自分用に編集版を置いておきます(実行するページにケータイWatchやら何やら追加してます)。

追記

マイコミジャーナルというかFeedBurnerの新機能なんですね。

さらに追記

マイコミジャーナルに限ったことでは無いようなので、リンクしているRef Cutterの実装はオリジナル版に戻し、別のスクリプトを作りました。


2009-11-16 (月) [長年日記]

[tDiary]prettify.rbをAutoPagerizeに対応する

最近のバージョンのtDiaryはAutoPagerizeに対応しているので、継ぎ足されたページにもgoogle-code-prettifyのシンタックスハイライトが適用されるように、tDiaryのプラグインprettify.rbでヘッダに出力される関数google_prettifyに以下の内容を追加しました。

    if (document.body.addEventListener) {
        document.body.addEventListener('AutoPagerize_DOMNodeInserted', function(e) {
            var node = e.target;
            var pre = node.getElementsByTagName("pre");

            for (var i=0, len=pre.length; i<len; i++) {
                pre[i].className = "prettyprint";
            }

            if (i > 0) {
                prettyPrint();
            }
        }, 
        false);
    }

element.addEventListenerをサポートしないブラウザには対応しないと云うのが今風ですね!

参考

(2010-03-16追記)

AutoPagerize対応版prettify.rbのソースをGitHubに置きました

[メタル][時事ネタ]サウンドホリックが倒産

伝聞なので詳しくは知らないんだけど、マニアックなメロスピ/メロデスバンドのCDを国内向けに配給していたサウンドホリックが倒産し、今後、サウンドホリックレーベルで流通していた作品は入手が難しくなるそうだ。

扱っていたバンドなどはウィキペディアに詳しい。

ソナタアークティカが10年前にデビューしてネットメロスピ界隈が異様に盛り上がって*1、毎週のように東欧とか南米の辺境からの音源をニュースサイトが紹介して「うお! こ、これは悶絶! 青い涙が止まらない!」とか極一部で絶賛されまくっていた。サウンドホリックはそういった、ビクター等の大手が扱わないようなバンドも精力的に契約してCDを入手し易くしてくれていたんだけど、やっぱりどう考えても市場の規模に対して供給過多だったというか、単なるメロスピ・バブル現象に踊らされてしまった感じがしてしまうなぁ。

スカイラークの来日公演なんて、もう完全にバブルを象徴するような出来事で、今開催されても数十人くらいしか観に行く人が居ないんじゃないかという気がしてならない。

あれだけ沢山居たメロスパーのみんなはどこへ行ったんだと考えてみると、たぶんミクシィとかツイッターに点在しているんだろうけど、往年のようにワーッと1箇所に集まって盛り上がるような姿はちょっと想像できないなぁ。

入手できるうちにサウンドホリックのCDをアマゾンで購入しておこうかな。

*1 僕もこの頃に2ちゃんねるの影響でメロスピというジャンルを意識して聴き始めた


2009-11-18 (水) [長年日記]

[雑記]FeedBurnerのトラッキングパラメータらしきものを削るGreasemonkey

先週のマイコミジャーナルをフィード経由で閲覧するとトラッキング用パラメータのようなものが付くようになってるというやつが、様々なウェブサイトのフィードにくっつくようになってしまって、どうにも気持ち悪いのでGreasemonkeyを書いてみました。

気にしなきゃ良いだけの話だと思うんですが、長々とURLにくっついているとムズムズしてしまう・・・。

全てのページで実行するので省エネ実行を考えて正規表現は無しにしてみました。パラメータ名は決め打ちです。

// ==UserScript==
// @name        FeedBurner Tracking Cutter
// @description FeedBurner経由でつく?utm_sourceから始まるトラッキングパラメータをカットして再読み込みするユーザスクリプト
// @namespace   http://sangoukan.xrea.jp/
// @include     http://*
// @include     https://*
// @author      raimon
// @version     1.0.0
// ==/UserScript==
(function (){
    if (!location.search) {
        return;
    }

    var url = location.href;
    var pattern = '?utm_source';

    var pos = url.indexOf(pattern);
    if (pos >= 0) {
        location.replace(url.substr(0, pos));
    }
})();

2009-11-19 (木) [長年日記]

[時事ネタ][Web]Askが日本のサービスを再開してた

Askが再び日本で検索サービスを始めていた。

以前の http://ask.jp/ からもリダイレクトされるみたい。

今は路線検索や天気検索の結果は返さないんだけど、真っ白でシンプルな検索ボックスだけの画面構成が大昔のグーグルのようで新鮮。

【スクリーンショット】他に何もないシンプルな画面構成。


2009-11-22 (日) [長年日記]

[雑記][メタル]Lordの来日公演を見て来た

「元Dungeonのロード・ティム率いるLordが来日!」という情報を見て、(そもそもDungeonが解散していたことすら知らなかったんだけど)大阪で見たDungeonのカッコ良さを思い出してもう一度見たくなったので、今日はLordのSet In Stone Tourを見て来た。

場所は名古屋市伏見のハートランドスタジオというところ。狭めのハコに80人くらいなので、割とにぎやかな感じだった。

出演バンドが沢山居て、

  1. METAL-X(日本のバンドで、小型ロブみたいな兄ちゃんが熱いスクリームを披露)
  2. Grim Force(日本のバンド。スラッシュメタルバンド?)
  3. Truth Corroded(オーストラリアのバンド。コテコテのデスラッシュで、イエスキリストみたいなギタリストを除いてメンバー全員が横にも縦にもデカイ)
  4. Argument Soul(日本のバンドで、オーソドックスなメタル)
  5. Lord(僕が見たかったバンド)

17:30から始まったのに前座4つ終わったらもう21:00とかどういうことなの・・・。メインアクトのはずのLordが45分くらいしか演奏時間無かったよ! 終わってみれば終電も近い時間になるとは、正直予想していなかった。

ロード・ティムは相変わらず高音も安定して出ているし、変態タッピングを披露したり観客と楽しく掛け合いしたり、ほんとライブ映えする人物でかっこよかった。Set In Stoneはサビで自然と合唱が起きてとても良い曲すなぁ。

【写真】Lordの演奏をパチリ。

今日は客がカメラ撮影するのを全くお咎め無しだったんだけど、これはライブハウスの方針なのか、僕が全然ライブに行ってない間に暗黙のルールが変わったのか、よく分かんなかった。せっかくなので1枚ケータイで撮っておいた。

知らない人とも話せるのはライブの醍醐味ですね! 僕は自分から喋りかけたんじゃなくて紹介してもらっただけなんだけど。また色々と顔を出して行きたいなぁ。今年はLordiが名古屋に来なかったのが痛いですよね・・・。


2009-11-25 (水) [長年日記]

[携帯]高校生の携帯電話の維持費も大変だよね

コンテンツ利用の土台とも言えるパケット通信定額制サービスを利用するユーザーの割合については、年齢別でデータが示された。高校生以下〜大学生での利用率は9割に達し、ほとんど全員が定額制を利用する一方、30代以上は徐々に利用率が下がっている。ただ、過去1年の定額制ユーザーを年齢別に見ると、40 代での利用が拡大しつつあるとのことで、「30代、40代は(定額制やコンテンツを利用してもらうには)ハードルが高い層ではないと思う。このあたりをコンテンツで引きつけたい」と今後の目標を掲げた。

引用文中の強調は私の編集です。

9割の高校生がパケット定額に申し込んでるんですって。すごいねこりゃ。

試しにドコモ提供のぴったり料金プラン診断というので条件を「通話時間60分、パケット通信10,000円」と適当に入力したら、基本料金が最も安いらしい「タイプSバリュー + パケホーダイフル + 家族割引」っていうプランをお勧めされました。これ2,040円割り引かれて月々6,090円なんですって。

月6,000円って、社会人の私がauに払ってる料金と大して変わらんよね。この月6,000円に加えて、今は割賦販売とかいうのが毎月上乗せされるわけでしょう。高校生くらいの子供を持つ親御さんたちの負担も相当なものでしょうね。

たまたま目に付いた記事がドコモの記事だったのでドコモの料金プランで試算したけど、別にドコモを叩こうという意図はありません。おそらくauでもソフトバンクでも似たようなもんでしょう。

高校生の子たちのコミュニケーションがパケット消費ありきで成り立っているのに、いつまでこういう料金制度なのかなぁと思いました。

こないだauが景気良く発表した「ガンガンメール」とかいうやつだって、結局SNSとか使うぶんのパケットは定額コース行きな訳でしょう。なんだかなー。

本日のツッコミ(全3件) [ツッコミを入れる]

teisk [パケット代って高いよね。メール送受信して、株価のチェックして、twitterでぼやいたくらいで、定額の上限超えちゃっ..]

雷悶 [そうそう画面の解像度も通信速度も上がってやり取りする情報が増えてるのに未だパケット代で算出っちゅーのがねぇ。 いろ..]

ユーキさん [定額制が基本になりつつある、というか、なってると言う事でしょう? ケータイ契約=パケット定額プラン強制、とかになる日..]


最近のツッコミ

  1. ともお (2024-05-29(水)20:59)「真上からの恐怖🫨」
  2. いちごみるく (2024-05-29(水)20:59)「🩸」
  3. レモン (2024-05-29(水)20:59)「レモン」

参号館  の中の  日記(ariyasacca)

トップ 最新 追記