2008年02月04日

ギター用ストラップ Neotech SLIMLINE GUITAR STRAP を買ったよ

ギター用のストラップを新調しました。Neotech社のSLIMLINE GUITAR STRAPというストラップです。Neotechというメーカーは聞いたことが無かったのですが、カメラ用のストラップで有名なOP/TECHというメーカーのdivision(どう訳せば良いのかわかりません。分社?)で、いろいろな楽器メーカーにストラップのOEM供給をしているそうです。

細めなのですが、肩に当たる部分に低反発素材を採用しているため肩に負担がかかりません。ふんわりしたフィット感も良いです。

また、Slimlockというロック機構を搭載していて、突然ギターから外れたりすることもありません。ロック機能付きのストラップというと、DiMarzioクリップロックストラップが有名ですが、クリップロックではストラップピンを外してネジで直接ギターに取り付けるという作業が必要になるのに対して、Slimlockはストラップピンはそのままで、簡単に装着可能です。

見た目の貧弱さのわりに値が張る(確か4800円ぐらい)ことから購入を少し躊躇したのですが、実際使ってみるとかなり良いものでした。機能を重視する方におすすめのストラップです。

ラベル:ギター
posted by bakemoji at 00:04| Comment(0) | TrackBack(0) | ギター | このブログの読者になる | 更新情報をチェックする

2008年02月01日

2008年の目標

学生生活最後の大詰めとして論文作成、発表準備に追われているうちにもう2008年も1ヶ月終わってしまいました。

ブログもめっきりご無沙汰です。まあ、プログラミングについてつらつら書くためのブログなので量についてはあまり重視していないのですが、もっと質の高い記事を書いていきたいとは常々考えています。

「質の高い記事」というと漠然としているので、一つ明確な目標を立てました。僕はプログラミング、特にC#やPowerShellなど.NET関係に興味があります。で、僕の知っている限りで国内の.NET界隈で一番とんがった方といえばnsharp(=名無しさん♯?)さんだと思っているので、nsharpさんにコメントもらえるような記事を書いてみたい、というのが今年の目標です。

という訳で、今年はLINQ to Object、ラムダ式、関数型言語あたりをキーワードに学んでいきたいと思います。

posted by bakemoji at 23:07| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2008年01月12日

PowerShellにおけるパイプの動作について

久しぶりにPowerShell関連の話題です。2chのスレッド「Windows PowerShell (正式版リリース)1.0」でのパイプの話題を受けて、NyaRuRuさんが「PowerShell で SIGPIPE 連鎖」で以下のようなコードを書いています。

PowerShell 1.0

filter yes {
  while($true){ "y" }
}

filter take([int] $n) { 
  if(0 -gt --$n) { break } 
  $_ 
}

こうやって,

yes | take 10000 | take 1

これがちゃんと 1 行だけ出力して止まる.SIGPIPE 連鎖っぽい.すげえ.

僕も以前似たようなことを試して引っかかったのですが、上記のコードではyesフィルタは1回しか値を返してないと見せかけて、2回返しています。わかりやすいようにyesフィルタを

filter yes {
    while ($true) {
        "say" | Out-Host
        "y"
    }
}

として実行すると、

PS > yes | take 10000 | take 1
say
y
say

と出力されます。フィルタは基本的にprocess節のみの関数なのですが、process節に入るということはすでにパイプから値を取っていることになります。なので、上記のtakeフィルタでは

  1. パイプから値を取る
  2. 終了判定をする
  3. 値を返す

という動作を繰り返すことになり、終了条件を満たしたときにはすでに一個余分に値を取ってしまっているというわけです。

対策として、takeはフィルタではなく関数で以下のように定義します。

function take($n) {
    begin {
        if (0 -ge $n) { break }
    }

    process {
        $_
        if (0 -ge --$n) { break }
    }
}

関数のprocess節内ではパイプからの値はすでに取得してしまっているので終了判定は最後に持っていき、さらにそもそもprocess節に行くべきかどうかを判定するためのbegin節を追加します。実行すると

PS > yes | take 10000 | take 1
say
y

となります。余分なsayがなくなりました。

ここまで書いておいてなんですが、僕も今回書いたことについてはあまり自信がありません。こういった、パイプ関連の動作について詳しく述べている文献は無いものでしょうか。

追記(01/15)
posted by bakemoji at 22:21| Comment(0) | TrackBack(0) | PowerShell | このブログの読者になる | 更新情報をチェックする

2007年12月20日

開発中のInternet Explorer 8 がAcid2 をクリア

IEBlogInternet Explorer 8 and Acid2: A Milestoneによると、開発中のInternet Exprorer 8(IE8)のreal working code(どう訳すのが良いのでしょうか。実際に動作するコード?)でAcid2テストをクリアしたそうです。最終版でもクリアする自信があるので情報を公開したとのことです。

Acid2は簡単に説明するとWebブラウザがどの程度W3Cの定める標準に準拠したレンダリングを行っているかをチェックするためのテストです。これを通るということは(Acid2内でテスト可能な範囲では)標準に厳密に準拠していると言えます。

Firefoxも開発中のバージョン3ではAcid2をクリアしているようですし、Operaは既にクリアしていますし、各Webブラウザで標準準拠度の強化が着々と進んでいますね。

ラベル:IE Webブラウザ
posted by bakemoji at 22:49| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2007年12月08日

プログラマ向けPowerShell本が出るみたい

年明けに「プログラマブル PowerShell 〜プログラマのための活用バイブル〜」という書籍が出るようです。著者は「Iron Pythonの世界」の著者でもある荒井さんです。副題や荒井さんのブログの紹介記事を読む限りではTips集というよりは文法書よりの内容のようです。

僕はPowerShellをプログラミング言語としていじって楽しんでいるので、タイトルにかなり惹かれるものがあります。ただ、同じように文法を詳しく解説している「PowerShell インアクション」とどの程度差別化されているかが気になります。購入するかどうかはそれ次第になりそうです。

ラベル:PowerShell
posted by bakemoji at 03:28| Comment(0) | TrackBack(0) | PowerShell | このブログの読者になる | 更新情報をチェックする

2007年12月06日

ニュークイックのハムを食べたよ

今までニュークイックで加工食品を買ったことは無かったのですが、今回初めてクイックロースハム(208円/100g)とスモークペッパーハム(228円/100g)を買ってみました。

スモークペッパーハムはあまり胡椒の味、香りもせず、なんというか普通よりはちょっと上かな?程度のハムでした。クイックロースハムのほうが厚切りで脂も乗っていて好みの味でした。なんというか、クイックロースハムより美味しいハムは山ほどあると思うのですが、価格設定が絶妙ですね。スーパーで売ってる安い40g4個組のハムより少しg単価が高いのですが、味は安いハムよりは美味しいので、毎日食べてもまあ良いかなという気になる値段です。

もうすぐクイックの日(9のつく日)なのでまた買おうと思います。

posted by bakemoji at 14:38| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2007年11月26日

乙一によるジョジョ第4部ノベライズ、「The Book」を読んだ

26日が発売日だったはずですが、すでに売っていた(ライトノベルにはよくあること)ので購入、読了しました。以下感想です。なるべく未読の方に配慮した文章(というより、未読の方に薦める文章)にしたつもりですが、内容に触れる部分もあるので気になる方は閲覧に注意してください。

乙一先生が4部のノベライズをなさるという話を聞いたとき、いくらご本人がジョジョ好きといっても作風が合わないんじゃないかと思った一方で、乙一作品と4部は「日常の中の異常性」という点で通じるものがあるので以外と合うかもしれないとも思ったのですが、前者の不安は杞憂でした。もう一つの不安要素だった戦闘描写も、知略を尽くしたジョジョらしいものになっていて、「ドドド」という音が聞こえてきそうな迫力がありました。原作にないオリジナルの話ですが原作らしさにあふれています。良質のカバー曲のような印象ですね。非常に良く出来たノベライズだと思います。

難点としては、漢字が少ないので少し読みにくいという点があげられます。JUMP J-BOOKS内の作品という位置づけや原作が少年漫画ということもあって仕方ないのかもしれませんが、それにしては装丁の豪華さや値段が少年向きとも思えませんし、原作の第4部自体10年以上も前に連載されていた作品ですし、マーケット戦略にブレがあるように思えます。

原作の登場人物や設定も登場するのでジョジョ第4部を知らないと話がわかりづらいかもしれませんが、そのぶん原作を知っているとニヤリとできる部分も多いです。ジョジョ好きな方はかなり楽しめるのではないでしょうか。

ラベル:ジョジョ 乙一
posted by bakemoji at 02:38| Comment(0) | TrackBack(0) | | このブログの読者になる | 更新情報をチェックする

2007年11月22日

どう書く?.orgの「文字列の均等分割」問題をC#で解いてみた

どう書く?.orgの「文字列の均等分割」問題をC#(2.0)で解いてみました。文字列を指定された数に除算、剰余算を使わないでなるべく均等に分割するという問題です。出題者の方の

この問題は、除算だけでははく算術演算とか、文字列の長さをstrlenの類いで測るとかをしなくても、多分書けるのではないかと思います。

という発言を意識して解いてみました。長さの測定は使用せずに済みましたが、算術演算(インクリメント、デクリメント)がどうしても消せませんでした。以下がそのコードです。

using System;
using System.Collections.Generic;

class Program
{
    public static void Main()
    {
        string s = "82e482df82e682e882e082cd82a982c882ab90a282cc82c882a982f082c882b082ab82ed82d182c281T82a082a982b582ad82e782b782d982c782c98el8c8e8f\82e682d082c982e082c882e882ca82ea82ce96d882cc82b582bd82ad82e782aa82e882e082c482e482ad";
        Divide(4, s);
        Divide(5, s);
        Divide(6, s);
    }

    static void Divide(int n, string s)
    {
        IEnumerator<char> ci = s.GetEnumerator();

        for (int i = 0; i < n; i++)
        {
            foreach(char c in Sub(ci, Skip(i, n, s)))
            {
                Console.Write(c);
            }
            Console.WriteLine();
        }
    }

    static IEnumerable<char> Skip(int offset, int n, string s)
    {
        int i = 0;
        foreach (char c in s.Substring(offset))
        {
            if (i == 0)
            {
                yield return c;
                i = n;
            }
            i--;
        }
    }

    static IEnumerable<S> Sub<S, T>(IEnumerator<S> iterator, IEnumerable<T> counter)
    {
        IEnumerator<T> ci = counter.GetEnumerator();

        while (ci.MoveNext())
        {
            if (! iterator.MoveNext())
            {
                break;
            }
            yield return iterator.Current;
        }
    }
}

戦略としては

  1. 何文字ごとに分割するかを求める
  2. 部分文字列を作成する

というオーソドックスなものです。C#2.0にはIEnumerable<T>を入出力とするようなユーティリティメソッド群がライブラリに用意されていないため、どうしても自作メソッド内でインクリメント、デクリメントを使うことになってしまいました。Pythonでいうrange()、enumerate()、cycle()あたりがあればインクリメント、デクリメントも使用しないで書けると思うのですが。

posted by bakemoji at 14:00| Comment(0) | TrackBack(0) | C# | このブログの読者になる | 更新情報をチェックする

2007年11月13日

Windows Live Messengerに追加できるボット、Windows Live Agents の「まいこ」が素敵

以前記事にしたWindows Live Agentsですが、Live Messenger アドバイザー まいこが素敵です。
maiko_ga.jpg
これはひどい。

ほかにも特殊な反応があるかも知れません。なかなか粋なことをしますね。

posted by bakemoji at 21:05| Comment(0) | TrackBack(0) | Windows Live | このブログの読者になる | 更新情報をチェックする

Windows Live Writer でSeesaa ブログに投稿するさいのメモ

Windows Live Writer でSeesaa ブログに投稿するさいに注意しておくとよいことを自分用にメモしておきます。まだいろいろ試行錯誤中なので誤った情報もあるかもしれません。ご注意ください。

アカウントの設定

まず、Live Writer からSeesaa ブログへ投稿するためにアカウントを設定します。Live Writer を初めて起動したときや[ブログ]>[ブログ アカウントの追加]でアカウントの追加に必要な情報を入力するためのウィンドウが表示されます。まずは[他のブログ サービス]を選択します。続いて、[ブログ ホームページのURL]にはとりあえず自分のブログのURL、[ユーザ名]と[パスワード]にはSeesaa ブログに登録したメールアドレスとパスワードを入力します。

すると、Live WriterがSeesaa ブログに情報を取得しに行きますが失敗し、手動で設定項目を埋めることになります。[使用するブログの種類]は"Movable Type API"を選択し、[ブログのリモート投稿 URL]には"https://blog.seesaa.jp/rpc"を入力します。入力情報が正しければ無事Seesaa ブログから情報を取得でき、記事を投稿できるようになります。

なお、Seesaa ブログのAPIはBlogger、MetaWeblog、Movable Type互換のXML-RPC APIなので、[使用するブログの種類]は"Blogger"や"MetaWeblog API"を選んでも大丈夫かもしれませんが、試していません。

記事投稿後の注意点

記事を投稿したあとは、ブログの表示を確認したほうが良いかもしれません。再構築が行われず、「記事はブログに登録されているが表示はされない」という状態になっていることがあります。

追加情報の設定

キーワード(タグではなく、キーワードマッチ型の広告に使われるもの)やトラックバック、pingサーバへの更新通知などは記事入力エリアの下部にあるプロパティ([表示]>[プロパティ]または記事入力エリア右下のボタン)で指定できます。pingサーバは[ツール]>[オプション]>[pingサーバー]で指定できます。

タグはLive Writerで挿入してもSeesaa ブログには認識されないようです(タグクラウドやタグ検索が正常に動作しません)。記事投稿後にSeesaa ブログ側で設定しなければならないようです。下記情報は誤りでした。

Live Writer でSeesaa ブログのタグを挿入するには、Seesaaブログに準拠したタグプロバイダを作成します。[挿入]>[タグ文字]で表示されるウィンドウの下部、[タグプロバイダ]リストから"(プロバイダのカスタマイズ...)"を選び、[追加]ボタンを押します。新しいタグプロバイダの設定を入力するためのウィンドウが表示されるので、[プロバイダ名]に"Seesaa"、[タグのHTMLテンプレート]に"<a href="/tag/{tag-encoded}">{tag}</a>"、[タグ用HTMLの区切り文字]に" "(半角空白)、[タグリストのHTMLキャプション]に"<div class="tag-word">タグ:{tag-group}</div>"を入力します。

posted by bakemoji at 00:38| Comment(0) | TrackBack(2) | Windows Live | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は90日以上新しい記事の投稿がないブログに表示されております。