はてなキーワード: CGIとは
ttp://www.casphy.com/bbs/test/read.cgi/qualification/1137424351/l50
13 ダーク [2007/02/04(日) 23:13:40]
東大と京大じゃないと試験に受かっても採用されないって、同じような教育を受けてきた人しか成れないって事ですか?優秀な大学はたくさんあるのだからもっとチャンスを与えて新しい風を入れない限り、日本の世襲性は変わらないと思います
14 事実 [2007/02/11(日) 06:31:17]
東大京大くらいを楽にパスできるような優秀な人材じゃないとダメって事だよ。
高校までチャラチャラ遊んで適当な大学入って、ちょこっと勉強して受かるような資格だったら
それこそ日本が終わってしまう
16 さち [2007/06/12(火) 10:47:43]
やっぱ一流大学出てなきゃ受かりません、専門や普通の大学生が受けても一次は受かるが二次で確実に落とします。
面接官が話を投げ掛けてこないし、眼中にありませんみたいな態度を取りますしね。
17 ご [2007/10/12(金) 10:10:03]
ここはもう東大法学部の牙城でしょう。事務次官、局長クラスはもとより、主要ポストはここが独占しているから、財務省なんかは、京大でも肩身が狭いというし。
だいたい、セグメンテーションフォルトを起こすような言語は嫌い
Haskelわけわかんないし
Java重苦しいし、いちいちclass Hogehoge { public static void main() { ... } }書くのがめんどくさいし、API多すぎ
オブジェクト指向したくなるような複雑なプログラムは最初から考えない(作れない)
言語が提供するGUIのツールはOSとは別に独自のレイヤー、世界感を持っててとっつきにくい
マルチスレッド、排他処理を扱うようなプログラムは脳味噌がついて行かないので書かない
Ruby、、、そもそもLL言語で大規模でオブジェクト指向なプログラム書きたくない。小規模ならオブジェクト指向要らない。
俺のマシンで実行できないAda/Basic/Fortran/Pascal その他いろいろ
VHDL、Verilog?FPGAやゲートアレイなんて持ってない、持ちたくない(苦手だもん)
HTML、XMLは日本語とタグが入り乱れるので、そのつど日本語入力の切替えが死ぬほど嫌になった。
だから、HTMLとXMLは全部手入力なんて真似は絶対してやらねえ。
Flex(Action Script)はコンパイラがJavaで実装されてて重すぎる。(シェルを使えばまし)
JavaScriptはブラウザごとの挙動の違いを吸収しきれる自身が無いので使わない。
1プログラムにつき、(コメント含めて)250行以上書きたくない
(本文には触ったこともない言語を思い込みで罵倒しているなど、嘘、おおげさ、紛らわしいが多数混入しています。それが全部わかった貴方はプログラミング言語マスターです。)
極めて残酷な話をすると、腕のいいプログラマで、最初の一歩を自分で踏み出せなかった奴って見た事無い。適正の問題なんだろうな。
ゲームだったりBASICだったりCGIだったりライフゲームだったりはするが、みんな自分で興味のあるものを見つけ、自分でやり方を調べ、必要なものを調べ、独力で始めてる。
質問するとしても、やれるところまで自分でやってみて詰まったら質問する、それが当たり前だろ?という奴ばっかり。最初から他人に聞いて済まそうとする奴はいない。
目の前にインターネットに繋がったPCがあって、どうやったらプログラムを作り始められるか悩んだり人に聞いたりする奴は、恐らくプログラマに向いていない。
まあ、プログラム/ゲームが昔より複雑になっている、というハンデはあるけどな。プログラムとは非常に難解で素人には出来ないものだ、というイメージが付いちゃってる。「作れそうな範囲で作りたいものを見つける」というのは、何気に趣味のプログラムで一番高いハードルだしね。
とりあえずプログラミングの本買って来い本。
やってしまった・・・。
方針:
package SixtyLinesTemplate; use strict; use warnings; our $VERSION = '0.01'; sub convert { return unless defined(my $str = shift); $str =~ s{&}{&}gso; $str =~ s{<}{<}gso; $str =~ s{>}{>}gso; $str =~ s{\"}{"}gso; $str; } sub include_template { my $tmpl = shift; my %c = %{+shift}; eval convert_template($tmpl); die $@ if $@; } sub convert_template { my $tmpl = shift; my $cache = $tmpl.'.cache'; return scalar do { open my ($FH) , $cache; local $/; <$FH> } if ( -f $cache && (stat($tmpl))[9] <= (stat($cache))[9] ); my $out = do { open my ($FH) , $tmpl; local $/; <$FH> }; $out =~ tr/()/\x28\x29/; $out =~ s/\[%\s*(foreach|if|unless|end)\s*(.+?)\s*{?\s*%\]/");".(lc($1) eq 'end' ? '} print q(' : "$1 $2 { print q(")/ige; $out =~ s/\[%(.+?)%\]/);print $1; print q(/g; $out =~ s/\[#(.+?)#\]/);print SixtyLinesTemplate::convert($1); print q(/g; $out = 'print q('.$out.');'; open my ($FH) , '>' , $cache; print $FH $out; $out; } 1;
サンプルコード:
use SixtyLinesTemplate; my $context = { 'title' => 'Example', 'list' => [10,'<A&B>'] }; SixtyLinesTemplate::include_template('template.tmpl',$context);
サンプルテンプレート:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>[# $c{title} #]</title> </head> <body> <h1>[# $c{title} #]</h1> <table> [% foreach my $i (0..@{$c{list}}-1) %] <tr bgcolor="[% $i % 2 ? '#FFCCCC' : '#CCCCFF' %]"> <td>[% $i %]</td> <td>[# $c{list}[$i] #]</td> </tr> [% end %] </table> </body> </html>
出力例:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Example</title> </head> <body> <h1>Example</h1> <table> <tr bgcolor="#CCCCFF"> <td>0</td> <td>10</td> </tr> <tr bgcolor="#FFCCCC"> <td>1</td> <td><A&amp;B></td> </tr> </table> </body> </html>
foreachんところが汚く見えるかもしれませんが、あれは添え字を取ろうとするとああなるんでご勘弁を。
普通にループするだけならforeach my $item (@$c{title}) でいけますゆえ。
あと存在しない変数とか使うと死んだり警告でたりするのでevalの前にno strictとno warningsをやった方がいいかもねぇ。
って何まじめに検証してんだ俺・・・orz
追記:
SixtyじゃなくてFortyだね。恥ずかし!
追追記:
でも&amp;の奴はちゃんと書いてるんだけども投稿すると勝手にエスケープされてしまってるんだよね。何でだろ?
ちなみにこのconvertの処理はCGI::Utilから拝借しました。
TWTR: Summary for Twitter, Inc. Common Stock- Yahoo! Finance
Twitterの株式公開初日。株価は74%上昇して45.10ドル。時価総額は318億ドル | TechCrunch Japan
Twitter、今年6月にユーザー5億人超か―ブラジル急成長、ツイート数では日本語が依然英語に次いで2位 | TechCrunch Japan
GOOG: Summary for Alphabet Inc.- Yahoo! Finance
Railsにある20%のソリューションで問題の80%を解決できるようにしています。
http://www.atmarkit.co.jp/news/200711/16/twitter.html
ウィリアム氏がOdeo内で始めた小さなプロジェクトが「Twitter」だ。
Ruby on Railsを使って2週間で最初の動くバージョンを 作り上げた
はてなブックマーク - Route 477 - Ruby基礎文法最速マスター&Ruby書籍紹介
Ruby on Railsで10分で作るTwitterもどき
Ruby on Railsをすぐ使う - Ruby on Rails 2.0アプリを1分で作る:ITpro
Ruby on Rails 2.0アプリを10秒で作る2.0
katoy: cocolog: Rails 2.0.2 は 5 行でアプリ雛形作成/起動ができる!
Ruby on Rails チュートリアル:実例を使ってRailsを学ぼう - Michael Hartl (マイケル・ハートル)
クックパッド株式会社 に行ってきた! - 941::blog
Ruby on Railsで1億PVのサイトの開発が出来て、エンジニアは5人しかいない
クックパッド(株)【2193】:株式/株価 - Yahoo!ファイナンス
ウォンテッドリー株式会社 に行ってきた! - 941::blog
ココロオドル仕事を見つける方法 | 仲 暁子 | 本 | Amazon.co.jp
Wantedly 航海日誌 — 私のようなの素人のためのHacker Way
はてなブックマーク - アイディアに価値はない by 仲 暁子
http://anond.hatelabo.jp/20130101082333
Focus on Technology:Ruby on Railsとエンタープライズを結び付ける「Merb」 (1/2) - ITmedia エンタープライズ
「Rubyに恋をし、Rubyが長きにわたって存在すると感じた人はたくさんいる。そして彼らはもっと強力なものを求めたのだ」
Merb 1.0 リリース記念に、Merb がどんだけすごいのかを紹介した海外の記事を翻訳してみた
速報: Merb と Rails が統合 - kwatchの日記
http://www.google.com/webhp?hl=en
http://www.google.com/search?hl=en&q=ruby&btnG=Google+Search
ブラウザで Ruby on Rails 開発! Heroku を使ってみよう - WebOS Goodies
ブラウザでRails開発が完了する衝撃の簡単さ - builder by ZDNet Japan
CやPerl、Python、Rubyをブラウザ上で実行できる「codepad」:phpspot開発日誌
C言語をブラウザで実行、Ruby/Python/Perlも然り | マイナビニュース
Odeo内で始めた小さなプロジェクトが「Twitter」だ。Ruby on Railsを使って2週間で最初の動くバージョンを作り上げたという。
Ruby on Railsで1億PVのサイトの開発が出来て、エンジニアは5人しかいない
http://blog.kushii.net/archives/1350951.html
http://d.hatena.ne.jp/gamella/20081027/1225119262
3ヶ月、わずか3名程度のエンジニアチームで、彼らはPHPで実装が完了していたレベルに追いつきました。またコード量はPHPの1/5以下にまで削減されており、よりシンプルな構成も実現できました。
Gregg PollackとScaling Railsのハウツー
1つには、Railsアプリケーションをうまくスケーリングするために必要なすべての情報をRails開発者に与えること。
しかし、できれば、開発者がビデオを見て、何百万人の同時ユーザーを扱うRailsアプリケーションを
作成できます、とクライアントに言える自信を持ってもらいたいのです。
2番目に、Railsアプリケーションをスケーリングすることがどれほど簡単かを、他の言語の開発者に示すこと。
http://www.infoq.com/jp/articles/gregg-pollack-scaling-rails
Ruby on Railsで10分で作るTwitterもどき - ZDNet Japan
http://japan.zdnet.com/video/screencast/story/0,3800079413,20354695,00.htm
Rails 2.0.2 は 5 行でアプリ雛形作成/起動ができる!: katoy: cocolog
http://youichi-kato.cocolog-nifty.com/blog/2008/01/rails_202_5_9198.html
Ruby on Rails 2.0アプリを1分で作る - Ruby on Railsをすぐ使う:ITpro
http://itpro.nikkeibp.co.jp/article/COLUMN/20080606/306873/
30分で Rails youtubeアプリ - 脱・下流エンジニア (仮)
hp12c - Railsでブログを作ろう!(Creating a Weblog in 15 minutes)
Ruby on Railsで10分で作るTwitterもどき - ZDNet Japan
Rails Pocket Reference (Pocket Reference (O'Reilly)): Eric Berry: 0636920520702: Amazon.com: Books
http://127.0.0.1/phpmyadmin/ http://127.0.0.1/mysql/
http://127.0.0.1:3000 http://localhost:3000/entries/
http://127.0.0.1/cgi-bin/c.cgi
C:\InstantRails\cgi-bin\c.cgi
キーワード「ruby」を含む新着エントリー Ruby Inside: The Ruby Blog
Ruby関連MLの自動翻訳サイトが公開 - JRubyのNutter氏に触発 | マイナビニュース
Rails Forum - the ultimate Ruby on Rails community
gem install hpricot
gem install mechanize
ねぇ〜、PHPにしてくださ〜い。え、PHPにしてくださいよぅ。
ねぇ〜。もぅ。OHねえ〜、いいじゃないよぅ〜
減るもんじゃなしぃ〜。
へ、ペリーとても悲しい。悲しいでーす。ねぇ〜ぃ。PHPにしてくださいよぉ〜。
もう〜。開発者の血を入れ替えてくださいよぅ〜。ねえー。も。もーう!
な、ねえっ!もう!なっ!なに!もう!
こ、このっ、じょ、じょ、上場!
なに、それ?
武器?
なに?それ?なんの意味があるの?
何をそれで実行しようとしてるの?
あなたがーた。
怒り?哀しみ?喜び?喜怒哀楽?
なんっ!
いいじゃなーい、PHP〜。
PHPにすれば、済むのです。
・・・・
おぅ。なしのつぶて、でーすか?
ねえ。
ちょっ、そっちのはじっこに座てる人、そう、そう、あなた。
あなた、どう思う?
ねえ。
ちょっ、喋ってよ〜。ねえ〜もう。
ちょ、さっきから、黙って、し、もう〜、喋ってよぉ〜。
ふんっ!
じゃあ、私はあなた方がそうやって私をしかとする様を、
し・か・と・見守ることにします・・・
あ、あっ、うそ、うそ。気、悪くした?
あっ、あっ、あ、でも、そんなにオタクっぽくないよね、Perlerって。
オタクじゃないのね。おーん・・
ううん、初めてじゃないのね、二回目。うん。
あの、<BGSOUND>でMIDI流すのもいいかなぁと思たんだけどねぇ、ちょっと大袈裟になるでしょ?
だから、うん。
最初はねぇ、Swish。で、今度のはAdobeのFlashなんだけどねぇ。
わう、もう!なっ!何やねん!なっ!
もぅ、トップページいったら、招待されろ。招待されたら、コミュニティいけ。
なにそれ!
で、「たった4日で退会しる!」。
なに?口説いてるのそれ?それで口説いてるつもり?
Yahoo!、落としたつもり?
もう!なっ!
PerlとPearlの発音の区別もできないくせに!ねぇ。
DOCTYPEも出さないのぅ?ここん家は?
DOCTYPEも?ああ、いい、いい。あっ、もう、まぁ、ま、ん。
もうねえ、私の好きなね、日本のことわざに、
「果報は寝てまつ」っていいます。
寝ましょか?ここで。寝させてもらいましょ〜か?
おっ、ほほほほほほっ。
It's a joke ! joke! ジャ、ココハじょーくあべにゅーデス。
ハハハ・・・OH!OH!OH!OH!
ふ〜。
PHPにするといいよ〜。
もてるよ〜。もてちゃうよ〜。もてもて。ダヨ〜。
もう、ねぇ、スゴイ。それに。
快適なDreamweaver的生活もねぇ、エンジョイできちゃう。
できちゃう!
register_global、どこでもパラメータねぇ〜。PEAR::HTML_Form、便利ね〜。
<?php ?>。さわやか〜。Zendの作ったFramework。OH!最高〜ッ!!
それに引き換え、Perlのままと、jcode.plはぬるぬるする。cgi、動かない。
あっ〜、もうPerlッ、最低ッ!!
もう。あなた達だけよ、今時、Perlしてるの。
おー。だから、ね。いい?だから今こそ、PHPにすれば、い、いーの。
ねぇ、どう怖いかは、詳しくいわないけれどもねぇ。
後ろの引数なんぞ?
JSファイルを更新した時、キャッシュなどによってクライアント側に反映されるのが遅れる、不整合が起こる等を回避する小技です。
CGIなどではない静的なファイルに引数部分があってもサーバ側にはなんの不具合はないが、引数部分が変わるとプロクシやクライアント側は別内容として扱うためキャッシュの影響を受けません。ここのように別ディレクトリに入れる方法の代替です。
epoch秒っぽかったのでみてみると Mon Oct 1 12:03:33 2007 でした。たぶんファイルのタイムスタンプじゃないでしょうか。おそらくシステムの更新に併せてテンプレートが自動更新される仕組みなのでしょう。
前回までのあらすじ
[Ruby]10日目
http://anond.hatelabo.jp/20070925223241
id/passの再発行を申請したら届いたのはなんとブログのid/passだった!!
はたして締め切りに間に合うのか!!
はい、間に合うはずもありませんね。
夏休みの宿題は夏休みがおわってからやる主義の増田ですこんにちは。
一応エントリーだけはしておきました。
サービス開始できてないけどな!
next if :next はcontinueみたいな感じ。この表記に違和感。
unless :こんな書き方にはなにかなじめない。
一行if文が嫌いな増田には余計耐えられない。
@user = params[:id].nil? ? @myuser : User.find(params[:id])
こういう書き方が嫌い。意味わからん。
正直嵌った。
あれこれいじってみたのだけど、そうではなかったようだ。
start_form_tagに :multipart => true がぬけていた。
あと、{}で引数位置指定しないといけないんだと…。
http://techno.hippy.jp/rorwiki/?HowtoUploadFiles http://www.fdiary.net/ml/rails/msg/1375/0/ start_form_tag({:action => 'create'}, :multipart => true)
これは結構やりがちなミスかもしれない。
ちなみに、本のサンプルも間違っていたので余計嵌った。
image_tagで拡張子なしのファイルを読み込むと勝手にpng拡張子がついてくる。
おかげさまで表示されない。
http://mumrik.air-nifty.com/blog/2007/05/16_r185r186_6.html
どうやら画像ファイルの拡張子が指定されていない URL だと自動的に png として扱うよ、ということらしいので、image_tag のところで url_for( ) した部分に追加修正をしてみる。
対処療法でしかない。これだとjpgしかできないので正直どうしたものか。
:content_typeを一応保存しているので後から拡張子をつくることもできるが、
きっとなにかいいものがそのうちできるはず!!というかあるはず!!
→時間がなかったのでうっちゃった
redirect_back_or_defaultの使いどころに悩む。
rubyで画像を描画させているばあい、画像にもどってしまうからだ。
この挙動は最初意味わからなかったぜ。
→時間がなかったので最初の画面に飛ばして誤魔化した
テーブルでjoinで名前だけでももってきたいとき、元のテーブルにはどうやって別名つけたらいいんだろう??
例えば、user名をuserテーブルからくっつけてもってきたい場合rubyは次みたいな
感じになるんだけど、正直気持ち悪い。
@catchcopy_pages, @catchcopy = paginate :catchcopies,
:conditions => contitions_str,
:select => 'catchcopies.id,user_id,users.login,catchcopies.catchcopy,catchcopies.created_at,vote,catchcopies.updated_at,item_id',
:joins => 'left outer join users on user_id = users.id ',
:order => 'created_at DESC' ,
:per_page => 10
ところでSchema.rbとかみるかぎりFKにも指定されていないんだが、大丈夫なのだろうか。
belongs_toとかではそこまでやってくれないものなのか。
ちなみにmigrateファイルでのalterとかの書き方はまだわかっていない。できるのかもしらない。
パスワードをメールで送ってもらってアクセスできるようになった!
われながら情けないが、SSH越しのファイル転送のしかたがわからなかった。
rcpもscpもうまくできない。
これが環境の問題なのか、自分が悪いのか、やりかたが悪いのか、
問題の切り分けがそもそもできないので諦めた。
SSHで向こうのコマンドからrcpを蹴ってるってことはこっちが開けてないとダメってことだよね?
こっち閉じてるもの…。
wgetは生きていたので他のレンタルサーバー経由ファイルを取得。
ちなみにrcpができないのであげっぱなしさ!
が、しかし。unzipがはいってない。
tarで圧縮して、
unzipがないのでzがつかえない。
せっかく
ENV['RAILS_ENV'] ||= 'production'
みたいなymlがあるのに、
dispatch.cgi
dispatch.fcgi
に書かれた
を
#!/usr/bin/ruby
に変更しなきゃいけないのは、何かあれだなと思った。
これかえてまわってたら本番とローカルで世代が分岐しちゃうじゃないか…。
ちなみにmysqlのソケットの位置も違うようなので、
/tmp/mysql.sock
↓
socket: /var/run/mysqld/mysqld.sock
をymlに設定。
できればconfファイルのフラグの書き換えだけで乗り換えしたかった。
最近linuxとかにもめっきり触っていなかったのでコマンド表を一生懸命見た。
witch ruby でインストールフォルダを割り出したり、
・・・findというコマンドが思い出せないときは情けなかった。
そうこうしながら設定完了
あれ、動かない・・・500エラーが出てる。
wget経由でdispatch.cgiをそのまま配置したのが原因でした。
中継サーバで動いちゃったみたい。tarで固めてからわたしなおしましたとさ。
うごいたーー!!
でも、登録すると文字化けしている。
おかしいなぁ……。
SQL>status
DBがlatin1になっていた…。
CREATE DATABASEも権限ないし…。
my.cnfも読み込み専用だった。
alter database XXXX DEFAULT CHARACTER SET utf8;
alter table XXXX DEFAULT CHARACTER SET utf8;
みたいな悪あがきもしてみたけど適わぬ夢。
SET NAMES utf8;
でもコネクションのところあたりでやってあげたいのだけど、
こういうときにRailsみたいなのは何がどこにあるのかわからない。
しょうがないので運営に問合わせしてみました。
ratin1は正直太刀できるきがあまりしない。
8日(のんびり)の勉強と2日(ほぼ徹夜)と1日(半日)のサーバー設定で、
が、どうなのさ・・・。RonR
なんていうか消化不良。
もっとちゃんとしたものつくりたいな……。
とりたてて特殊なルールも何をみるというポイントもかかれていないようだ。
協賛企業をみても系列一色だ。
求人情報が併載されているところをみると、もしかしたらそちらがメインのコンテストなのかもしれない。
締め切りは25日。これまでにサービスインをさせなければいけないらしい。
逆算しても23日にはローカル鯖で動いている必要があるだろう。
23日は誕生日だ。よって作業をするつもりは殆どない。
でも、誰も相手をしてくれない気がするので作業をしてしまうかもしれない。
23日までまる5日しかない。
唯一、ドリコム賞というのがComet/ShootingStarを使うことを前提としている。
Cometをメインに据えてあと5日でどうこするのは見通しが立たない。
余裕があったら追ってみよう。
積読していた本をひっぱりだす。
なにがなんだかわからないがRails言うからにはRailsが必要なのだろう。
検索してあれこれをダウンロードしてみる。
初期設定でまとめられたのないかなと再度検索。
Windows環境での Ruby on Rails (開発環境構築)
http://www.syssupo.co.jp/net_hal/ror.html
こういうのをみつけた。便利!!感謝!!最初からここから辿ればよかった。
httpd.confいじくってapache再起動掛けたらスタートできない。
困った。
見直してみたらRubyForApacheのインスコでしくじったよう。
再度設定。
HelloWorldをさっそく。
コマンドラインなら成功するのだが、rbファイルを配置してのブラウザベースの起動のさせかたがわからない。
ruby -e'puts("Hello The World!!WRyyy!!!")'
あ、、なんだ、拡張子をrbで作ったのがいけないのか。拡張子をcgiにしたら動いた。
#!ruby puts("Hello,The world!")
RailsのHello, world!はなにやらさらに違うようだ。
Railsというのはなにやらスケルトンのフレームワークなのだろうか?
http://blog.codezine.jp/editor/2007/06/ruby_on_railshello_world_1.php
ここを見ながら自分の環境にあうように書いてみたがうまくいかなかった。
開発環境もまだきめていなかったので、Eclipseをつかおうかな。何かお奨めのある?
とりあえず今日はここまで。
明日は・・・
3000系のテストサーバーの意味とか構成がさっぱりわからないのでそこら辺を弄ってみるのと、実際にRailsを触ってみるところ。あと開発環境構築かな。
http://blog.codezine.jp/editor/2007/06/aptana_eclipseruby_on_rails_1.php
ここみながら、aptana関連をなにやらわからないままいれて見たのだけど、
要求された操作は現在の構成には無効であるため、実行できません。 詳しくは詳細を参照してください。
Aptana Editor Infrastructure (0.2.9.16696) 必須: プラグイン "org.eclipse.core.filesystem"。
Ruby Development Tools (0.9.0.707021729NGT) 必須: プラグイン "org.eclipse.core.filesystem"。
filesystemプラグインがないってどういうこっちゃ。
これかな?
後で入れてみよう。
おなかがすいたので今日はここまで!
とある特定の分野の個人ニュースサイトをやっている。多分、最初に始めたのと、地道にコツコツ続けてきたおかげか、その分野では最大手と呼ばれるようになった。公表してないけれど1日10000から12000ヒットぐらい。これで最大手の呼ばれるぐらいに幅の狭い分野なのだ。
そうするとやっぱり出る杭はアレなようで、「馴れ合いうざい」「特定のニュース取り上げすぎ」「某分野の人気投票とか何様?」のような声もちらほらと聞こえてくるようになった。
難しいなと思う。これがごくマイナーなサイトだったら、友人の話題が出てきても、特定の対象に多めにリンクしても、人気投票のアンケートcgiくっつけても、誰も何も言わないだろう。個人のサイトだから。でも、自分のところも、たとえ他のサイトさんよりも多めに人が来るとしても、運営しているのは業界人でもない、どこにでもいるそのへんの一般人なのだ。やはり自分も、友人に私信のひとつも送りたくなるし、自分の好きなもの関連のニュースは熱心に取り上げてしまうし、今何が流行っているのか知りたかったりする。
ニュースサイトとしての公平性っていうのは、そりゃあ報道機関には大切だろうけれど、個人ニュースサイトでも適用されるんだろうか。何故、個人のブログで公平であることを強要されなくてはいけないんだろう。何故、ちょっとした企画を行うことが、何様?になってしまうのだろう。自分の好きなニュースばかり取り上げたいから自分でニュースサイトを始めたはずなのに、身動きがとれなくなっている気がする。
最近perlの勉強してて、naoyaのはてなダイアリー - Web::ScraperでWeb::Scraperを知り、試しにはてブのAPIを真似してニフティクリップのコメントを吐くJSONを作った。
#!/usr/local/bin/perl -T # # use strict; use warnings; use URI; use Web::Scraper; use JSON::XS; use CGI; use Encode; my $q = new CGI; print $q->header( -type=>'text/plain', -charset=>'UTF-8'); my $path_info = $q->path_info; my $path = $path_info =~ m{^/?(nobracket/)?(http\w?)://?(.*)$}xms ? $2.'://'.$3 : undef ; exit if ! $path; my $is_nobracket = 'true' if $1; if ($q->query_string) { my $query_string = $q->query_string; $query_string =~ s/;/&/g; $path = $path.'?'.$query_string } $path =~ s/%23/#/; $path =~ s/([^\w ])/'%' . unpack('H2', $1)/eg; $path =~ tr/ /+/; my $entry_url = "http://clip.nifty.com/entry/?url=" . $path; my $bookmarks = scraper { process 'h4>a', 'user' => 'TEXT'; process 'li.dateAndTime', 'timestamp' => 'TEXT'; process 'a.tagtag', 'tags[]' => sub { my $text = $_->as_text or return; my $left = decode_utf8('??~P'); my $right = decode_utf8('??~Q'); return $text =~ /$left (.*?) $right/xms; }; process 'p.comment', 'comment' => 'TEXT'; result 'user', 'timestamp', 'tags', 'comment'; }; my $niftyclip_entry_info = scraper { process 'div.clipTitle>h3>a', 'title' => 'TEXT'; process 'div.clipTitle>p.url>a', 'url' => '@href'; process 'div.comments>div.commentsDetails', 'bookmarks[]' => $bookmarks; result 'title','url','bookmarks'; }; my $niftyclip = scraper { process 'div#content', 'niftyclip_entry' => $niftyclip_entry_info; result 'niftyclip_entry'; }->scrape(URI->new($entry_url)); exit if ! ($niftyclip->{'url'}); $niftyclip->{'entry_url'} = $entry_url; $niftyclip->{'count'} = @{$niftyclip->{'bookmarks'}}; my $json = JSON::XS->new->utf8->encode($niftyclip); $json = '('. $json. ')' if ! $is_nobracket; print $json;
取得方法は
http://monm.on.coocan.jp/niftyclip/json/entry/<取得したいURL>
ってすればいい。「#」は「%23」にエスケープしないとダメ。
作りながら「取得したいURLをURLエンコードするのは面倒だな」って思い、はてブのAPIみたいにpath_infoでアクセスできるようにしたわけだけど、その取得したいURLにquery_stringが付いてた場合にどうやってやって良いかわからず結構悩んだ。
結局、path_info+'&'+query_stringってやることで無理やり作ったけど、普通どうやるもんなんだろ?cpanに何か良いモジュールがあったりするのかな。
それと、はてブに合わせて出力の際に()を付けるようにしたけど、これだとYahoo!Pipesで使えなかったから、
http://monm.on.coocan.jp/niftyclip/json/entry/nobracket/<取得したいURL>
みたいに「nobracket」付きでアクセスした場合には()を付けないようにした。
コレ使うとニフティクリップとlivedoor クリプのコメント取ってくるAPIみたいなのが作れる。
RSSで取得する場合は
http://pipes.yahoo.com/pipes/pipe.run?_id=zECBJ_VY3BGtBw6B8ivLAg&_render=rss&URL=<URLエンコードしたURL>
で取得できるし、jsonで取得する場合は
http://pipes.yahoo.com/pipes/pipe.run?_id=zECBJ_VY3BGtBw6B8ivLAg&_render=json&URL=<URLエンコードしたURL>
ってなる。
とりあえずサクッと作ってみたけど、わざわざページからJSON作ってるからちょっと重い。
その頃にはJSON吐いてくれるようになるんじゃないかなと期待はしてるけど。
参考URL:
これでは?
2ちゃんねる - 削除整理 - army:軍事[スレッド削除] - レス:102-111
- 102 :名無し三等兵[sage] :2007/08/20(月) 07:15:32 HOST:59-190-46-224.eonet.ne.jp
- 削除対象アドレス:
http://hobby9.2ch.net/test/read.cgi/army/1187560904/
http://hobby9.2ch.net/test/read.cgi/army/1186481229/
削除理由・詳細・その他:
第3項:固定ハンドル名を含むスレッドタイトル
削除対象アドレス:
http://hobby9.2ch.net/test/read.cgi/army/1180880709/
http://hobby9.2ch.net/test/read.cgi/army/1187360995/
削除理由・詳細・その他:
第4項:真面目な議論や話し合いを目的としないものに該当します。
削除対象アドレス:
http://hobby9.2ch.net/test/read.cgi/army/1187466490/ (誘導11)
http://hobby9.2ch.net/test/read.cgi/army/1187386043/ (誘導4)
削除理由・詳細・その他:
第6項:連続投稿・重複に該当します。
2007/08/27(月) 23:57:01 までに処理された模様。
おまけ:
流石は無断リンク禁止アイドル、おれたちにできない事を平然とやってのけるッ! そこに痺れる!憧れるゥ!
リンク先の管理者が禁止している行為をしたユーザーにアクセス停止期間を設けて欲しい。
相手をひどく罵る様なタグを設けるのを禁止にしてくれないと困ります。
利用規約の改正を求めます。ページ単体へのリンクは自由ではなく、たいていのウェブサイトでは禁止されています。何でページ単体への無断リンクを推奨するんですか。最悪ですね。
TOP以外へリンクした場合、管理者に自動通知するなどの対処をしてもらわないと困りますね。
無断リンク禁止ぐらいで騒ぎ立てるかのように無断リンクしないでほしいですね。騒ぐぐらいだったらこんなサービス廃止してください。
はてなブックマークなんてhttp://alink.uic.to/と同じ使い方をすべきCGIです。自由なリンクなんてこれ以上認めるつもりはありませんから、私は。(却下したら許しません)
RSS対応、ページ単体への自由リンク、リンク先の巡回、すべて却下したい。
システムの廃止を希望します。望まないリンクを推奨すること自体間違っています。
ページ単体リンクのシステム廃止希望。自由なリンクなんてネットじゃありえない!
リンクは自由と言いますが、もしその自由なリンクで荒らしや不正アクセスなどの被害にあったら貴社はどう責任を取るおつもりですか。説明していただけないでしょうか。
ついでに言いますけれども、自由にリンクを貼られたページをすべて安全とみなしているようですが何を根拠にそうみなしているのか説明してください。
つまり、私が言いたいことは貴社の当該サービスが、Webサイトを場合によっては危険にさらしているということです。
サービスはそもそも自動登録リンク集と同じように使うのが本来の利用方法なのではないだろうか。
無断リンクが原因で荒らしや不正アクセスの被害を受ける事も十分あり得るのにそのトラブルが起こる事を承知で運営しているのか。
Webサイトの利用規約に会社とユーザーが集団で、いわば組織ぐるみで破るのはいかがな物か
貴社サービスを拠点にネットストーキングしてくる人が居ますのでそのようなユーザーを見つけた際は強制退会処置をしてください。
Movable Typeをローカルで動かしたいんだけど
そういうことって出来るの?CGIとデータベースの仕組みがイマイチわかってないのだけど、データベースを用意するだけでおk?それともそれだけじゃ駄目?
できます。と言うかできるか判らない時点で冒険しないほうがいいよ。(理由:答えを見つけるに足る知識がまず無いから)
複数ユーザで日記書きたいんだけど、Movable Typeなら出来るらしいから使ってみようかなーと思ったしだいなんだけど、はてなのユーザ切り替えよりは楽だよね?
ユーザの切り替えに限って聞いているんだろうけども、総合で言えば
1から環境構築しなきゃいけないサービス(自鯖&MovableType)が、既存の利用するだけでいいサービス(はてな)より簡単な理由は一つも無いぞ。
アドバイスください。
・自分ところで動かすために、自分の所でサーバを立てるか、レンタルサーバを借りる。
・MovableTypeをインストールする(簡単インストールサービスとかやってるとこもあるから探そう)
・日記を書く。