Hatena::Groupasakura

浅倉卓司@blog風味? このページをアンテナに追加 RSSフィード

Error : RSSが取得できませんでした。

2005-11-25(Fri)

なんかAmazonのアフィリエイトをやりたいとかいう話になったので、プログラムを書くことに。

| 19:37 |  なんかAmazonのアフィリエイトをやりたいとかいう話になったので、プログラムを書くことに。 - 浅倉卓司@blog風味? を含むブックマーク  なんかAmazonのアフィリエイトをやりたいとかいう話になったので、プログラムを書くことに。 - 浅倉卓司@blog風味? のブックマークコメント

 前にちょっとだけNet::Amazonに触ったからまあ大丈夫かな、と思って前のコードを読んだらASINでデータをfetchしてるだけでした。ううむ。

 まあそれでもsearchでデータを拾ってくるのは特に問題なく書けたのですが*1、困ったのはそのあと。

 Amazonへの正しいリンクの張り方ってなんやねん。

 AWSについて書かれているページはリンクの張り方までは書いてないんですよね……。リンクの張り方って常識の範疇だったりするんじゃろか。


 仕方がないのでAmazon Hacksを読んだり各サイトで生成しているページを見たりしたのですが、それぞれ微妙に違ってるし。どれが正しいのかさっぱり分からん。

 真面目にドキュメントを読まないといけないのか。嫌だなぁ。


 まあそれはそれとして。

 PEARは使っちゃダメとか言われてるので、PHP側が面倒くさいことこの上なし。

 PEARが使えればServices_Amazonとか使うのに!


 ――とかうだうだ書いてて、AWSのブログがあるのにいまさら気付く。だめじゃん。

 週明けはここでも読んでよう……。


追記

 最速インターフェイス研究会のトコが分かりやすかった。

http://la.ma.la/blog/diary_200510291748.htm

 ドキュメントはそんなとこにあったのねー、というか、みんなドキュメント読んでないんじゃね?

*1UTF-8とかuri_escapeとかをのぞけば。自動でやってくれないのかー。

トラックバック - http://asakura.g.hatena.ne.jp/asakura-t/20051125

2005-11-17(Thu)

Class::DBI::Plugin::PseudoColumnsって便利じゃん、と思ったけれど、

| 10:59 |  Class::DBI::Plugin::PseudoColumnsって便利じゃん、と思ったけれど、 - 浅倉卓司@blog風味? を含むブックマーク  Class::DBI::Plugin::PseudoColumnsって便利じゃん、と思ったけれど、 - 浅倉卓司@blog風味? のブックマークコメント

 「Class::DBI で疑似的カラムを扱う」を読んで「こりゃ便利」と思ったけど、でも、最近はPerlPHPの混用が多いので使えないのですよね……。

 というわけで、シリアライザを指定できるとうれしいかも。

 PHP::Serializationを使ってPHP側に合わせてあげるのがPerlクオリティだと思うし。場合によってはJSONで突っ込むのもありかもしれないので。

トラックバック - http://asakura.g.hatena.ne.jp/asakura-t/20051117

2005-11-16(Wed)

reset()を伴わないwhile each()ループはforeachに書き換える - PHP救命病棟

| 13:05 |  reset()を伴わないwhile each()ループはforeachに書き換える - PHP救命病棟 - 浅倉卓司@blog風味? を含むブックマーク  reset()を伴わないwhile each()ループはforeachに書き換える - PHP救命病棟 - 浅倉卓司@blog風味? のブックマークコメント

 先日ハマっていた人がいたのでメモ。


 僕は通常、

foreach ($array as $key => $val) {
    ...
}

のように書いているのですが、これを

while (list($key, $val) = each($array)) {
    ...
}

のように書く人もいます。

 昔のPHPはforeachがなかったような気がするので、たぶん古くからPHPで書いているのでしょう*1


 ところで上のようにeach()を使ってループをする場合は直前にreset($array)を書いておくべきです*2

 function内の変数であればそのスコープで使っている限り想定通りに動くかもしれませんが*3、これがグローバル変数だったりするとeach()の戻り値がどこから始まるのか分からず*4ひどい目に合う可能性があります*5


 each()単独で使っている場合はともかく、上記のようにwhileループでeach()を使っている場合は十中八九foreachで書き直しても大丈夫なので、可能な限り修正しておいたほうがよいでしょう*6

 特にグローバル変数*7を使っているときは書き換えたほうが安全です。メンテナンスをしてプログラムを書き換えた時に、ほかの場所でそのグローバル変数の配列ポインタが変更されてるかもしれませんからね。


 ちなみに、類似のケースにresetを伴わないwhile next()ループってのもあります*8

 この場合は

foreach ($array as $val) {
    ...
}

とすればよいでしょう。

*1Perlの人かもしれないけど、でも、Perlの人はforeachを使うよね?

*2:もちろん配列ポインタが移動していてほしいときは必要じゃないです。

*3:引数で渡されたarrayがどう振る舞うのかは知らないけど、PHPに思い入れはないので調べたりはしない。

*4:例えば、他のどこかで同じようなループをしていれば全くループがまわらないことになる。

*5:というか、その人はそれでハマっていた。

*6:単にreset()を書き足すのもありだけど、僕ならまぎれのないようにforeachにする。

*7:$_で始まるスーパーグローバル変数とか。

*8:その人はnext()を知らないのか、$keyを必要としない場合でもeach()を使っていましたが。

トラックバック - http://asakura.g.hatena.ne.jp/asakura-t/20051116

2005-11-10(Thu)

ネット系の会社は微妙に「みみっちい」トコが多いように感じる

| 00:31 |  ネット系の会社は微妙に「みみっちい」トコが多いように感じる - 浅倉卓司@blog風味? を含むブックマーク  ネット系の会社は微妙に「みみっちい」トコが多いように感じる - 浅倉卓司@blog風味? のブックマークコメント

 はてなダイアリーなんて、有料オプションを使ってもAdSenseの半分ははてなにもってかれちゃうもんね。それがはてなの収益にどのくらい貢献してるのか分からないけれど*1

 あれま。はてなのシステム変わってたんですね。失礼しました*2


Googlezon vs. Amazoogle

しかしGoogleに入る莫大な金を、Googleがどのように還元しているかを見ると、率直に言って「みみっちい」の印象を受けざるを得ない。

実際、還元率で比較すると、Amazonの「気前よさ」とは好対照だ。見てのとおり私のサイトではAdsenseもAmazon Associateも両方やっているが、Amazonの方がはるかに「儲かって」いる。その差10:1以上だ。コンテントプロバイダーがどちらに対して好意的になるかは一目瞭然だ。

 実際の還元率はどのくらい違うんでしょうね*3。上記の比較だと、還元率が問題じゃなくて単にAmazonのほうが効率的なのかもしれないし。

 でもまあ、還元率がどうのこうのよりも金額が大きいほうに対して好意的になるのはそうだと思うし、したがって金銭の支払いが大きいAmazonに好意的になる、というのは分かる。


 そういえば昔はbk1を使っていたのにAmazonに変えたのは、ポイントの使いにくさ*4と還元率*5の違いからで、ウェブサービスの有無は全然関係なかった。

 書協に遠慮してるためか他サイト/店は3%の還元なのだけど(当初3%に決まったのは確か金券ショップの図書券の値引率がそれくらいだからだった気がする)、Amazonはそれ以上なんですよね。他も追随すれば良かったのに。


 ところで、「気前のよさ」によってコンテントプロバイダーの好意が変わるのであれば、ひょっとすると日本の企業も気前が良くなれば、今からでもトップに追いつけるかもしれない。

 ヨドバシカメラあたりがアフィリエイトを始めて5%ポイント還元とかやったら結構イケそうな気もするんだけれどなぁ。

*1財務諸表も公開されてないからね……。

*2:ご指摘感謝>bakelattaさん

*3:Amazonの書籍は利益に対して大ざっぱに15%~25%くらいの還元率になるのかな。

*4:現金による支払がないことが問題じゃなくて、購入金額の一部をポイントで支払うことができなかったのが問題。毎月締めてくれるトコはAmazonより良かったんだけれど、相当溜めないと使えないんじゃ意味がない。

*5bk1は3%。

bakelattabakelatta2005/11/11 00:56今は半分持ってかれないんじゃないでしょうか。
http://d.hatena.ne.jp/hatenadiary/20050818/1124348293

トラックバック - http://asakura.g.hatena.ne.jp/asakura-t/20051110

2005-11-08(Tue)

theoryx5.uwinnipeg.caリポジトリってマイナーなのかしらん。

| 01:14 |  theoryx5.uwinnipeg.caリポジトリってマイナーなのかしらん。 - 浅倉卓司@blog風味? を含むブックマーク  theoryx5.uwinnipeg.caリポジトリってマイナーなのかしらん。 - 浅倉卓司@blog風味? のブックマークコメント

 ActivePerlと言えばtheoryx5.uwinnipeg.caリポジトリは外せないと思ってるのですがー。

 確かPOPFileの追加モジュールもtheoryx5.uwinnipeg.caから拾ってた気がするし。

日付処理には DateTime を使ってますよ、という話だったけど、ActivePerlだとうまく入らないんだよねDateTime。

http://e8y.net/blog/2005/11/06/p102.html

 というわけで、theoryx5.uwinnipeg.caからインストールすると入ります。

ppm> rep add theoryx5 http://theoryx5.uwinnipeg.ca/cgi-bin/ppmserver?urn:/PPMServer58

――とかやって、

ppm> install DateTime

とかやるとサクっと入りますので、お試しあれ。

はてなリングはSNSの夢を見るか?

| 01:36 |  はてなリングはSNSの夢を見るか? - 浅倉卓司@blog風味? を含むブックマーク  はてなリングはSNSの夢を見るか? - 浅倉卓司@blog風味? のブックマークコメント

 ――と誰かが書くと思うのでとりあえず書いておく*1

 はてなグループを使ってて微妙だと思うのは複数の日記をもたなくちゃいけない点で、リングだとその点が解消されていいかも、とか思う。まあ、はてなグループをNIFTY-Serveのパティオっぽく使えるんじゃないかと考えたのがそもそもの間違いなのですが……。

 その点、はてなリングはパティオの代替になれる可能性があるんじゃないかと。フォーラムはいまだに2ちゃんねるのほうがそれっぽいけれど、まあ、それもそのうち別のができるかな。


 ちなみに、SNSが「リアルでの知り合い」という点を強調するのであれば、はてなグループのほうが知り合い同士で使いやすいと思います。ネットワークにはなりませんが。

 mixiは割と「リアルでの知り合い」のほうが使いにくい気がする。

*1:もう既に書かれてるかな?

tomi-rutomi-ru2005/11/08 23:29サクッと入りましたーありがとうございますー。なぜかPing 'http://asakura.g.hatena.ne.jp/asakura-t/20051108' failed: HTTP error: 500 Internal Server Errorだったのでコメントにてお礼
http://e8y.net/blog/2005/11/06/p102.html

トラックバック - http://asakura.g.hatena.ne.jp/asakura-t/20051108

2005-11-07(Mon)

Haskellって1-2-3のマクロっぽいよね?

| 14:53 |  Haskellって1-2-3のマクロっぽいよね? - 浅倉卓司@blog風味? を含むブックマーク  Haskellって1-2-3のマクロっぽいよね? - 浅倉卓司@blog風味? のブックマークコメント

――とかずっと思ってるのですが、そもそも1-2-3を触っていた人が絶滅危惧種らしく、両方を触ったことのある人の意見を聞いたことがないので「似てる」という印象が正しいのか間違っているのか未だに判然としていないのがちょっと残念。

 1-2-3は各セルに式を書いておいて、それを多段で利用するの基本だったと思うのですが、Haskellのコードを見てるとどうもそんな感じに見えるんですよね……*1。フローが一方向じゃないし*2

 昔は「1-2-3でたいていのアプリは書ける」と言っていた人が結構いましたから、仮に上記が正しいなら、そういう方々はHaskellプログラマーに向いてるのかも、とか思ったり。


安心社会から信頼社会へ

| 22:43 |  安心社会から信頼社会へ - 浅倉卓司@blog風味? を含むブックマーク  安心社会から信頼社会へ - 浅倉卓司@blog風味? のブックマークコメント

 こういうのを見かけるたびに、「安心社会から信頼社会へ」ってあんまり読まれてないのかな、と思う。

 弾さんが紹介したくらいなのに!

 「ネットは信用できるか」という言説を見かけるたびにこの本のことを思い出します。


 ところで、この手の本はたいてい誰かの紹介を経て読んでいるので、この本はhidekiさんあたりかなと思ったのだけれどヒットしませんでした。

 うーん。最初に見かけたのはどこだったんだろ……。

*1:「Haskellきしょい」と感じる人は、1-2-3のマクロは「きしょい」どころではない気がします。

*2:複数のセルが特定のセルを参照することもあるから。

トラックバック - http://asakura.g.hatena.ne.jp/asakura-t/20051107

2005-11-03(Thu)

最近はSledgeを使うことがないけど、

| 15:15 |  最近はSledgeを使うことがないけど、 - 浅倉卓司@blog風味? を含むブックマーク  最近はSledgeを使うことがないけど、 - 浅倉卓司@blog風味? のブックマークコメント

 改訂しようという動きもあるみたいなので、前にちょっと気になったことを。

(勘違いしてるとか、Pluginで解決とかできるのかもしれないけど)


post_dispatch_* があるなら head_dispatch_* があってもいいんじゃね?

 HEADリクエストなんて使われてないのかもしれませんがー。

 WWWCとかWWWDとかで使ってるし。はてなアンテナは使ってないのかな?

 もちろん他のメソッドにも対応させるのもアリで。ひとつ。


存在しない page を呼び出して500エラーにするくらいなら、dispatch_DEFAULT とか呼び出すほうがいいんじゃね?

 別に dispatch_DEFAULT じゃなくてもいいけど。

 現状みたいに「とにかく呼び出す」のはちょっと格好悪い気がする。


想像力が足りない時は「現物主義」であるべきだ。

| 16:10 |  想像力が足りない時は「現物主義」であるべきだ。 - 浅倉卓司@blog風味? を含むブックマーク  想像力が足りない時は「現物主義」であるべきだ。 - 浅倉卓司@blog風味? のブックマークコメント

 制作依頼者だけじゃなくて、制作側もね。

http://www.programmers-paradise.com/tdiary/?date=20050627

http://d.hatena.ne.jp/yamaza/20050620#p2

――に書かれていることは激しく同意するし、僕も基本的にはサンプルを用意するようにしているけれど。

 でもね、「分かっていない」のは依頼者だけとは限らないのですよ。依頼者ははっきりと要求を理解しているし説明をしていても、制作側がそれを理解できていないだけかもしれない。

 だから、依頼主から聞いて理解した内容を制作側が再構成して(サンプルを作成して)「こういう理解で良いですか?」という確認は必須なのだ。なのにそれをやらずにオレ理解で作成してしまう制作者が多いんじゃないだろうか。


 ものすごく勘が良くて相手の要求するものを完全に想像できる人ならば、そういった確認作業は必要ないだろうけれど、そんな人は極少数でしょ。それに完全に想像できる人であっても、コストの見積上から実装の取捨選択が必要なときは、やっぱり確認が必要なのですよ。



 ちなみに。

突然「予算を5000万円やるから自分の好みの映画を1つ作れ!」と言われ

たら、まず映画を制作するのに必要な経費が一般的にどれくらいなのか調べます(笑)。

 そのうえで自分が好みの映画が作れそうな演出家を探して依頼しますね。

トラックバック - http://asakura.g.hatena.ne.jp/asakura-t/20051103
2004 | 01 | 02 | 03 | 05 | 06 | 07 | 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 | 08 | 09 | 10 | 11 | 12 |
2007 | 02 | 03 | 04 | 05 | 06 | 07 | 10 | 11 | 12 |
2008 | 02 | 03 | 04 | 06 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 02 | 03 | 04 | 05 | 07 | 08 | 10 | 11 | 12 |
2013 | 01 | 05 | 07 |
2014 | 01 | 02 |
2016 | 01 |
2017 | 01 | 05 |
Error : RSSが取得できませんでした。