はてなキーワード: URIとは
以下の続き。
http://anond.hatelabo.jp/20101010201325
対象URIは以下。
http://d.hatena.ne.jp/bolt69/20101027
個人的には、「電子書籍でしか読めない」漫画が登場するのはまだまだ先かと。おそらくこれから「紙媒体と電子媒体の併存」フェーズがやっと始まる、いや始まらないかも、程度だと思います。
当然ですが、漫画を読むのは子供が大多数です。まずは子供が手軽に読める手段じゃないと定着しないと思います。iPadは最安のものでも6万円以上します。これは発売時のPS3より高いです。iPadをお持ちであれば分かると思いますが、あのような高額な精密機械を小学生や中学生が手軽に持てる日が来るのはまだまだ先の話だと思います。児童層にNintendoDS並に普及する必要があるのではないかと。
わかる人にはわかると思いますが、そう、あとは自炊する人の良心にしか頼るところはないんですよ。
今もP2Pファイル共有ソフトを出所として、海外のサーバーなどでとっくに大量にばらまかれてますよ。「パンドラの箱」はとっくの昔に開かれてます。現に海外では、そうやって不法アップロードされた漫画を網羅しているサイトが複数存在し、中には一日に億単位のアクセス数を稼ぎ出している所もあるそうです。少年ジャンプなど、精機の発売日が月曜なのに、その前の木曜か金曜には中国語に翻訳されたスキャン物が出回ってたりします。
で、自炊がまずいと思うのは自分が悪いことをしてるということを自覚してる人はともかく、自覚なく無意識に拡散させる可能性もあることです。
自炊する人全員が全員きちんとした法律的知識と運用方法を知っているわけではありません。(自分も)
むしろ今までの本と同じように考えてしまう人の方が多いのではないでしょうか?
これも長続きしないシチュエーションだと思います。
結局の所「僕貰う人、あなた自炊する人」が固定化されてしまうんですよね。何もせず貰うだけの人から「あの新刊まだ自炊してないの?」「次にこれを自炊して欲しいんだけど」なんてせっつかれる事もあるでしょう。なので自炊のモチベーションはなかなか維持出来ません。
この点についてはあんまり心配する必要がないと思います。子供はPCや画像処理ソフト、オートドキュメントフィーダを購入、運用管理できませんから。
精神性が幼児的な大人の場合、まず自炊のノウハウを習得できませんし、それをタダで不特定多数にばらまくような精神状態に至る事も希でしょう。
約十年前から我々は自力でやってました。一時期はノウハウを一般層に広めようとした事もありましたが、尻すぼみに終わっているのは現状を見ての通りです。
今出版業界がやるべきは、たとえば「実物の本に電子書籍版の無料ダウンロード権(シリアルナンバーみたいなもの)をおまけで付属させる」といった戦術だと思います。「じゃあ、どのハード・フォーマットのダウンロード権なのか?」となった時、未だ特にこれといった定番が無いというのが現状なのではないかと。
下記URIから「Unemployment Rate」「All Persons」「15 to 24」を選択。
http://stats.oecd.org/Index.aspx?DatasetCode=LFS_SEXAGE_I_R
| 国名 | 2008年 | 2009年 |
|---|---|---|
| 日本 | 7.2 | 9.1 |
| スイス | 7.0 | 8.2 |
| オランダ | 5.6 | 7.3 |
| ドイツ | 10.4 | 11.0 |
| デンマーク | 7.6 | 11.2 |
| カナダ | 11.6 | 15.3 |
| アメリカ | 12.8 | 17.6 |
| イギリス | 14.1 | 18.9 |
| イタリア | 21.3 | 25.4 |
| フランス | 18.1 | 22.8 |
| フィンランド | 15.7 | 21.6 |
| スウェーデン | 19.4 | 25.0 |
| ノルウェー | 7.5 | 9.2 |
| ハンガリー | 19.9 | 26.5 |
| アイルランド | 12.5 | 25.9 |
| スペイン | 24.6 | 37.9 |
取り敢えず日本と日本より多い数字を太字にしてみた。多すぎ。それでいて移民がシコシコ働いてるのを目の当たりにしてれば、そりゃ極右の一つも台頭するわな。
最近の記事は http://anond.hatelabo.jp/20100727011929 だと画像が取れなくなっているのでちょっと直した.あと引数で記事を指定できるようにしたよ.<<を半角に直して使ってね
ruby -ropen-uri -rnokogiri -e "Nokogiri::HTML(open ARGV[0]).search('img.pict').map{|e| e['src']}.each{|http| File.open(http.match(/.+\/(.+\.jpg)/)[1],'w'){|f| f << open(http).read }}" "http://minkch.com/archives/51611588.html"
<< を半角にして使ってね
ruby -ropen-uri -rnokogiri -e "Nokogiri::HTML(open 'http://minkch.com/archives/51382882.html').search('img').inject([]){|b,r| b << r[:src] if /^http:\/\/.+\.jpg/ =~ r[:src]; b}.map{|url| Thread.new(url){|u| File.open(u.match(/.+\/(.+\.jpg)$/)[1],'w'){|f| f << open(u).read }}}.each{|e| e.join}"
http://anond.hatelabo.jp/(自分のID)/search?word=(キーワード)
それから「次の25件」をクリックすると、以下のURIへ遷移する。
http://anond.hatelabo.jp/(自分のID)/search?page=2
どうなのよこれ。
ちなみに、この状態でURIに「word=(キーワード)」を追加するときちんと(26件目以降の検索結果が含まれた)2ページ目が開かれる。俺が知ってる限り1年か2年前からずーっとこの状態。
増田に商用レベルのクオリティを要求する気はないけど、仮にも自社の技術力やアイデアを宣伝するサイトでこんな単純なミスに誰も気づいてないって、自称IT企業としてどうなのよと思う。
dwang厨が無謀にもfroyoを入れてみる記録のページ。
結局CM6-RC1+yay-gapps で落着きそうな雰囲気。
dwang-1.17.1
→ eMonster用に使ってた sandisk 2GB (メモ)
7/9 にリリースされているもの
ext partition 要対応? とおもったら仏語じゃねーか
@kenmood
Wifi OK
どっかから落した20090801-docomo-ht-03a.rar のうち、boot, cache, data, system のみをnandroidで復旧してみる。nandroid.md5 の復元も忘れずに。
手順
追加手順:
http://www.androidinforum.fr/htc-dream-android/froyo-french-connection-100-t1742.html#p6156
partition: swap 160M, ext 500M, 残り vfat がおすすめとな。
何度か丹念に「目標をwipeしてreboot」を繰り返してたら安定した気がする。
豆腐をfont入れ、localeをlibicudata.so の入れ替えで対処 (できるかな? reboot中)
→ libicudata.so は入れかえちゃダメ。起動しなくなる。recoveryで起動して/systemをマウントしてことなきを得る。
2010-07-11 追記
2chでも報告されているとおり、wlanが使えない。あと細かい話だけど、live wallpaperが使えない気がする。メモリが足りないだけかもしれないけど。
marketが死にまくる (acoreが死ぬ)。ほかにも死にまくるけど、何故かはよくわからない。とりあえず体験はできるけど、まだ常用には至らないかも。
(安定している、と言っている人もいる)
2010-07-11 追記
zip落してきて上書きinstallしてみた。なんか日本語fontが消されたんだけど(ぶー!)
ちなみに日本語fontはM+を利用してます。
数時間つかった限りでは、他人にお勧めできるほどじゃないけど何とか使いものになるかも。dwangの環境はnandroidでしかバックアップしていないので、手作業でアプリなどは手作業で復帰する予定。
(2010-07-11 午後5時追記)
どうもSPF Connectionが安定しないのと、ベースがCM6ということで、まずはベースに近いほうが良いだろうと
CM6-RC1を焼いてみる(この項続く)
http://www.cyanogenmod.com/home/cyanogenmod-6-0-0-rc1
E/AndroidRuntime( 2000): FATAL EXCEPTION: UpdateCheckinDatabaseService
E/AndroidRuntime( 2000): java.lang.SecurityException: Permission Denial: writing com.google.android.gsf.settings.GoogleSettingsProvider uri content://com.google.settings/partner from pid=2000, uid=10036 requires com.google.android.providers.settings.permission.WRITE_GSETTINGS
すぐ直りそうではあるけど。
(エラー内容から察するに、installされたapkの記録をgoogle accountに書き込めない)
c.f. http://forum.xda-developers.com/showpost.php?p=7139560&postcount=109
先日の6月24日、iPhone4を発売日に契約しに行ったときのこと。
契約の最後の方でSB代理店の店員から「リフラ for iPhone」、「得するマイルクラブ iPhone」というサービスオプションが最初から付いていますと言われた。
代理店の店員の口ぶりでは「当初2ヶ月は無料だけど不要であれば解約して下さい」とのこと、ということは解約しなければそのまま本契約に自動更新されて月額料金が請求されるということ。
月額料金は各315円、合わせると630円と微々たる金額ではあるが塵も積もれば何とやら。
無駄に金を払う事も無いので直ちに解約しようと思った。
ちなみに上記オプションは代理店の中でもテレコム系の店舗で契約すると、3G携帯電話でも強制加入らしい。
代理店で貰った契約関係の書類の中に上記二つの説明を書いたコピー紙があった。
これらを頼りにまずは「リフラ」の方から解約手続きを進めた。
http://farm2.static.flickr.com/1092/4732364143_10b58a0394.jpg
コピー紙に書いてあるURIからサイトに移動、一度iPhoneの電話番号とパスワードを入力し登録を行う。
ちなみに以下がリフラのURI。
さてこの勢いでもう一つの「得するマイルクラブ iPhone」も解約するかと例のコピー紙を見るが、サービス概要が載っているだけで解約方法どころかサービスの利用の仕方すら分からない始末。
http://farm2.static.flickr.com/1092/4732364143_10b58a0394.jpg
ネット上で情報を集めようと検索してみても、知恵袋などでサイトにて解約できると書いてあるだけ。
仕方ないのでiPhone購入日での解約は諦めた。
翌日の午後になってようやくiPhoneに以下のような一通のSMSが届いた。
「得するマイルクラブ」にご登録いただき誠にありがとうございます。
ご登録が完了いたしましたことをご連絡いたします。
いやこちらとしては勝手に登録されただけなんだが…。
得するマイルクラブは、あなたのモバイルライフをもっとお得に、楽しくするサービスです。
さっそく使ってみましょう!
なるほど普通の買い物だけでなくiTunesStoreでの買い物でもマイルが貯まり、500マイルを500円分の電子マネーや現金に換算できると。
で、よくiPhoneユーザならよく使うであろうiTunesSotreでのマイル還元率は…、3%?
このサービスの月額料金が315円なので単純に計算して元を取るためには…、10,000円分のアプリや楽曲を買わなければいけない?
解約決定。
手当たり次第にリンクを開いていく。
ようやく画面下部の「当サイトについて」というリンクの先でサービス退会の文字を見つける。
http://farm2.static.flickr.com/1152/4732862842_2e08a2155b.jpg
ちなみに最初にこのページにたどり着いた時は上記のようには表示されていないはずだ。
どうやらサービス退会のためにはまず本人確認処理をしなければいけないらしい。
このページのリンク先でブラウザ(Safari)のCokieを有効にした状態で、iPhoneの電話番号を入力して送信ボタンを押す。
そうすると数時間後に本人確認完了のSMSが届く、これでようやくサービス退会の準備が整う。
実は本人確認が完了した段階でご褒美として100マイルが支給されるのだが、現金還元するためにはあと400マイルも稼ぐ必要があることを考えるとご褒美どころか罠にしか見えない。
先ほどのページから本人確認を済ませた状態で更に先へ進むとこのようなページが出る。
http://farm2.static.flickr.com/1149/4732218059_85274698bf.jpg
そんな罠には騙されないと思いながら更に先へ進むと今度はこんなページが。
http://farm2.static.flickr.com/1208/4732862982_39e7dcd026.jpg
いやここはすぐに退会だろうと思い更に先へ進むとようやくサービス退会のボタンが登場。
http://farm2.static.flickr.com/1032/4732218275_2458985164.jpg
ページの上の方が見切れているがメルマガ配信の登録解除の説明らしい、メルマガ登録した覚えは無いが解約後メルマガが解約できないと厄介なので一応こちらも解約しておく。
メルマガ解約後は確かトップページに戻されるので、上記までの道のりをもう一度辿り再度この画面まで来る必要がある。
退会すると再度当サイトに入会することはできない旨の脅しがあるが、むしろ願ったり叶ったりだ。
ちなみに先述の「リフラ」の退会の際にもほぼ同様の文句が出た。
ここで退会ボタンを押すことで晴れて退会ができた。
http://farm2.static.flickr.com/1327/4732218335_a640cd7d8e.jpg
このサービス退会処理の尋常でないしつこさは、サービス運営者が退会処理も大事な顧客に対するサービスであることを明らかにわかっていないことを明確に顕している。
実は上記以外にもわざわざ店頭で「グラム-ル」というショッピングサイトへも入会させられたのだが、こちらは上記のような携帯サイトではなくiPhoneアプリとなっている。
こちらはパッと見は普通のオンラインショッピングサービスで、代理店の店員からも特に月額云々の説明は受けなかったのでとりあえずこのままにしておく。
個人情報保護の観点から言えば利用しないのであれば明らかに解約した方が良いとは思うが、とりあえず先述の二つの解約で疲れてしまったので保留とした…。
先日の6月24日、iPhone4を発売日に契約しに行ったときのこと。
契約の最後の方でSB代理店の店員から「リフラ for iPhone」、「得するマイルクラブ iPhone」というサービスオプションが最初から付いていますと言われた。
代理店の店員の口ぶりでは「当初2ヶ月は無料だけど不要であれば解約して下さい」とのこと、ということは解約しなければそのまま本契約に自動更新されて月額料金が請求されるということ。
月額料金は各315円、合わせると630円と微々たる金額ではあるが塵も積もれば何とやら。
無駄に金を払う事も無いので直ちに解約しようと思った。
ちなみに上記オプションは代理店の中でもテレコム系の店舗で契約すると、3G携帯電話でも強制加入らしい。
代理店で貰った契約関係の書類の中に上記二つの説明を書いたコピー紙があった。
これらを頼りにまずは「リフラ」の方から解約手続きを進めた。
http://www.flickr.com/photos/35452332@N04/4732364143/
コピー紙に書いてあるURIからサイトに移動、一度iPhoneの電話番号とパスワードを入力し登録を行う。
ちなみに以下がリフラのURI。
さてこの勢いでもう一つの「得するマイルクラブ iPhone」も解約するかと例のコピー紙を見るが、サービス概要が載っているだけで解約方法どころかサービスの利用の仕方すら分からない始末。
http://www.flickr.com/photos/35452332@N04/4732364143/
ネット上で情報を集めようと検索してみても、知恵袋などでサイトにて解約できると書いてあるだけ。
仕方ないのでiPhone購入日での解約は諦めた。
翌日の午後になってようやくiPhoneに以下のような一通のSMSが届いた。
「得するマイルクラブ」にご登録いただき誠にありがとうございます。
ご登録が完了いたしましたことをご連絡いたします。
いやこちらとしては勝手に登録されただけなんだが…。
得するマイルクラブは、あなたのモバイルライフをもっとお得に、楽しくするサービスです。
さっそく使ってみましょう!
なるほど普通の買い物だけでなくiTunesStoreでの買い物でもマイルが貯まり、500マイルを500円分の電子マネーや現金に換算できると。
で、よくiPhoneユーザならよく使うであろうiTunesSotreでのマイル還元率は…、3%?
このサービスの月額料金が315円なので単純に計算して元を取るためには…、10,000円分のアプリや楽曲を買わなければいけない?
解約決定。
手当たり次第にリンクを開いていく。
ようやく画面下部の「当サイトについて」というリンクの先でサービス退会の文字を見つける。
http://www.flickr.com/photos/35452332@N04/4732862842/
ちなみに最初にこのページにたどり着いた時は上記のようには表示されていないはずだ。
どうやらサービス退会のためにはまず本人確認処理をしなければいけないらしい。
このページのリンク先でブラウザ(Safari)のCokieを有効にした状態で、iPhoneの電話番号を入力して送信ボタンを押す。
そうすると数時間後に本人確認完了のSMSが届く、これでようやくサービス退会の準備が整う。
実は本人確認が完了した段階でご褒美として100マイルが支給されるのだが、現金還元するためにはあと400マイルも稼ぐ必要があることを考えるとご褒美どころか罠にしか見えない。
先ほどのページから本人確認を済ませた状態で更に先へ進むとこのようなページが出る。
http://www.flickr.com/photos/35452332@N04/4732218059/
そんな罠には騙されないと思いながら更に先へ進むと今度はこんなページが。
http://www.flickr.com/photos/35452332@N04/4732862982/
いやここはすぐに退会だろうと思い更に先へ進むとようやくサービス退会のボタンが登場。
http://www.flickr.com/photos/35452332@N04/4732218275/
ページの上の方が見切れているがメルマガ配信の登録解除の説明らしい、メルマガ登録した覚えは無いが解約後メルマガが解約できないと厄介なので一応こちらも解約しておく。
メルマガ解約後は確かトップページに戻されるので、上記までの道のりをもう一度辿り再度この画面まで来る必要がある。
退会すると再度当サイトに入会することはできない旨の脅しがあるが、むしろ願ったり叶ったりだ。
ちなみに先述の「リフラ」の退会の際にもほぼ同様の文句が出た。
ここで退会ボタンを押すことで晴れて退会ができた。
http://www.flickr.com/photos/35452332@N04/4732218335/
このサービス退会処理の尋常でないしつこさは、サービス運営者が退会処理も大事な顧客に対するサービスであることを明らかにわかっていないことを明確に顕している。
実は上記以外にもわざわざ店頭で「グラム-ル」というショッピングサイトへも入会させられたのだが、こちらは上記のような携帯サイトではなくiPhoneアプリとなっている。
こちらはパッと見は普通のオンラインショッピングサービスで、代理店の店員からも特に月額云々の説明は受けなかったのでとりあえずこのままにしておく。
個人情報保護の観点から言えば利用しないのであれば明らかに解約した方が良いとは思うが、とりあえず先述の二つの解約で疲れてしまったので保留とした…。
先日の6月24日、iPhone4を発売日に契約しに行ったときのこと。
契約の最後の方でSB代理店の店員から「リフラ for iPhone」、「得するマイルクラブ iPhone」というサービスオプションが最初から付いていますと言われた。
代理店の店員の口ぶりでは「当初2ヶ月は無料だけど不要であれば解約して下さい」とのこと、ということは解約しなければそのまま本契約に自動更新されて月額料金が請求されるということ。
月額料金は各315円、合わせると630円と微々たる金額ではあるが塵も積もれば何とやら。
無駄に金を払う事も無いので直ちに解約しようと思った。
ちなみに上記オプションは代理店の中でもテレコム系の店舗で契約すると、3G携帯電話でも強制加入らしい。
代理店で貰った契約関係の書類の中に上記二つの説明を書いたコピー紙があった。
これらを頼りにまずは「リフラ」の方から解約手続きを進めた。
<img src="http://farm2.static.flickr.com/1092/4732364143_10b58a0394.jpg" width="354" height="500" alt="IMG00000012" />
コピー紙に書いてあるURIからサイトに移動、一度iPhoneの電話番号とパスワードを入力し登録を行う。
ちなみに以下がリフラのURI。
さてこの勢いでもう一つの「得するマイルクラブ iPhone」も解約するかと例のコピー紙を見るが、サービス概要が載っているだけで解約方法どころかサービスの利用の仕方すら分からない始末。
<img src="http://farm2.static.flickr.com/1092/4732364143_10b58a0394.jpg" width="354" height="500" alt="IMG00000012" />
ネット上で情報を集めようと検索してみても、知恵袋などでサイトにて解約できると書いてあるだけ。
仕方ないのでiPhone購入日での解約は諦めた。
翌日の午後になってようやくiPhoneに以下のような一通のSMSが届いた。
「得するマイルクラブ」にご登録いただき誠にありがとうございます。
ご登録が完了いたしましたことをご連絡いたします。
いやこちらとしては勝手に登録されただけなんだが…。
得するマイルクラブは、あなたのモバイルライフをもっとお得に、楽しくするサービスです。
さっそく使ってみましょう!
なるほど普通の買い物だけでなくiTunesStoreでの買い物でもマイルが貯まり、500マイルを500円分の電子マネーや現金に換算できると。
で、よくiPhoneユーザならよく使うであろうiTunesSotreでのマイル還元率は…、3%?
このサービスの月額料金が315円なので単純に計算して元を取るためには…、10,000円分のアプリや楽曲を買わなければいけない?
解約決定。
手当たり次第にリンクを開いていく。
ようやく画面下部の「当サイトについて」というリンクの先でサービス退会の文字を見つける。
<img src="http://farm2.static.flickr.com/1152/4732862842_2e08a2155b.jpg" width="333" height="500" alt="IMG00000007" />
ちなみに最初にこのページにたどり着いた時は上記のようには表示されていないはずだ。
どうやらサービス退会のためにはまず本人確認処理をしなければいけないらしい。
このページのリンク先でブラウザ(Safari)のCokieを有効にした状態で、iPhoneの電話番号を入力して送信ボタンを押す。
そうすると数時間後に本人確認完了のSMSが届く、これでようやくサービス退会の準備が整う。
実は本人確認が完了した段階でご褒美として100マイルが支給されるのだが、現金還元するためにはあと400マイルも稼ぐ必要があることを考えるとご褒美どころか罠にしか見えない。
先ほどのページから本人確認を済ませた状態で更に先へ進むとこのようなページが出る。
<img src="http://farm2.static.flickr.com/1149/4732218059_85274698bf.jpg" width="333" height="500" alt="IMG00000008" />
そんな罠には騙されないと思いながら更に先へ進むと今度はこんなページが。
<img src="http://farm2.static.flickr.com/1208/4732862982_39e7dcd026.jpg" width="333" height="500" alt="IMG00000009" />
いやここはすぐに退会だろうと思い更に先へ進むとようやくサービス退会のボタンが登場。
<img src="http://farm2.static.flickr.com/1032/4732218275_2458985164.jpg" width="333" height="500" alt="IMG00000010" />
ページの上の方が見切れているがメルマガ配信の登録解除の説明らしい、メルマガ登録した覚えは無いが解約後メルマガが解約できないと厄介なので一応こちらも解約しておく。
メルマガ解約後は確かトップページに戻されるので、上記までの道のりをもう一度辿り再度この画面まで来る必要がある。
退会すると再度当サイトに入会することはできない旨の脅しがあるが、むしろ願ったり叶ったりだ。
ちなみに先述の「リフラ」の退会の際にもほぼ同様の文句が出た。
ここで退会ボタンを押すことで晴れて退会ができた。
<img src="http://farm2.static.flickr.com/1327/4732218335_a640cd7d8e.jpg" width="333" height="500" alt="IMG00000011" />
このサービス退会処理の尋常でないしつこさは、サービス運営者が退会処理も大事な顧客に対するサービスであることを明らかにわかっていないことを明確に顕している。
実は上記以外にもわざわざ店頭で「グラム-ル」というショッピングサイトへも入会させられたのだが、こちらは上記のような携帯サイトではなくiPhoneアプリとなっている。
こちらはパッと見は普通のオンラインショッピングサービスで、代理店の店員からも特に月額云々の説明は受けなかったのでとりあえずこのままにしておく。
個人情報保護の観点から言えば利用しないのであれば明らかに解約した方が良いとは思うが、とりあえず先述の二つの解約で疲れてしまったので保留とした…。
一通りのマナー研修なんかを受けた後で、人生初プログラミング。面白い。
面白かったのはそこまでで、処理がわからなくなったときの苦しみというのがすごい。
わかんないよー。
初期ページから画面遷移をせずに(URIを変化させずに)POSTデータを扱うには、
actionに初期ページの.phpを指定すればできるはずなんだ。
これが一つの機能ならできるんだけど、ボタンをいくつかくっつけて、複数機能を付けるとわからなくなってしまう。
勉強しなくちゃいけないのはわかるんだけど、家に帰ってくるとどうしてもやる気になれない。
でも、研修期間は残っちゃいけないって言われてるし…。
はぁ…。むかないのかなあ。
models.register({
name : 'HatenaAnonymousDiary',
ICON : 'http://anond.hatelabo.jp/images/favicon.ico',
check : function(ps){
return (ps.type == 'link' || ps.type == 'quote' || ps.type == 'regular' || ps.type == 'photo') && !ps.file;
},
getAuthCookie : function(){
return getCookieString('hatelabo.jp', 'rk');
},
post : function(ps){
var endpoint;
if (!this.getAuthCookie())
throw new Error(getMessage('error.notLoggedin'));
return request('http://anond.hatelabo.jp').addCallback(function(res) {
var doc = convertToHTMLDocument(res.responseText);
var user = $x('//td[@class="username"]/a/text()', doc);
endpoint = 'http://anond.hatelabo.jp/'+user+'/edit';
return request(endpoint, {
redirectionLimit : 0,
referrer : 'http://anond.hatelabo.jp'
});
}).addCallback(function(res) {
var doc = convertToHTMLDocument(res.responseText);
var form = formContents($x('//form[@name="edit"]', doc));
var content = update(form, {
title: joinText(['[reblog]',ps.itemUrl], ' '),
body: joinText([ps.item, ps.itemUrl,
(ps.body ? ">>\n" + ps.body + "\n<<\n" : ''), ps.description], "\n")
});
return request(endpoint, {
redirectionLimit : 0,
referrer : res.channel.URI.asciiSpec,
sendContent: content
});
}).addCallback(function(res){
if (!res.channel.URI.path.match(/\/[0-9]+/)){
throw new Error("post failed: " + res.channel.URI.path);
}
});
}
});
印刷された新聞にだって、同じ日付の同じ記事でも、いろんなバージョンがあるんですけどね。
(参考: http://www.yomiuri.co.jp/nie/note/feature/arekore/03.html )
その上で、だ。
新聞の場合、印刷されて固定されたものとして、なおかつ、版数が併記されたものが、紙媒体として保存される。しかも、当然ながら版数毎に別々の「紙」で存在する。それゆえ、「どの時点(版数)で、どういう記事が存在し、どういう論評をしていたか」が、記事更新後にも新聞「紙面」でもって追跡可能である。もちろん、さまざまな版数の情報を手に入れることができるならば、という条件付きではあるが。
対してネット上の、特に朝日新聞のサイトの場合は、更新時間は併記されるものの、同一のURIでいろいろな版数・論評の記事が掲載される。これでは、過去に掲載されていた内容を、朝日新聞のサイト単体では追跡することができないし、関連記事との相互関連性も追跡できない。
(ここでいう「関連記事との相互関連性」とは、「どの時点で、他にどういう記事が存在し、そこでどう書かれていたか」という、時間軸上の相互関連性を指すことにする。つか、関連記事との比較については、それこそネット(web媒体)の得意とするところだ。真っ当なニュースサイトであれば、関連記事に相互リンクを貼って、まさに情報の「web(蜘蛛の巣)」を構築するはずだから)。
そこで、web魚拓の必要がある。「この時点で、少なくとも『この記事』『このURI』では、こういう論評をしていた」ということを明確にするために、web魚拓を使って保存しておかなければいけない。そうしないと、上述のような版数ごとの記事の追跡ができないし、それを担保する証拠が消滅するということだ。それがなぜ問題になるかといえば、その情報を元に議論しようとする複数人が、それぞれ「どの時点」の情報を知っていて、またその主張の真偽が不明になるからだ。
結局どうすればよかったのか、というか、これからの新聞サイトがどう進化して欲しいか。少し提案をするとすれば、以下のことが挙げられる。
ただ詰まるところ、情報リテラシーの違い・格差が影響しているんだろうなと思う。古くから新聞業界にいる人、旧来の広告屋、技術屋としてネット業界に深く携わっている人、ネット論壇(いわゆるアルファブロガー)で肥えている人(いや、dankogai的な意味じゃなくて)、web業界でないビジネスで生きている人、...、一般さん、などなど、それぞれの世界で「当たり前」と思っている情報リテラシーが違うから、そういう思いの違いが出てくるのだろうとは思う。
非常に頭が悪いやり方ですが、一応動くので置いておきます
# -*- coding: utf-8 -*- require 'uri' require 'open-uri' require 'rubygems' require 'twitter' require 'json' LAST_YEAR = Time.now - 12*31*60*60*24 USERNAME = 'hogehoge' PASSWORD = '********' def following_me? other base = URI.parse('http://twitter.com/friendships/exists.json') base.query = "user_a=#{other}&amp;user_b=#{USERNAME}" times = 0 begin sleep 60 open(base).read == 'true' rescue if times < 2 times += 1 retry else true end end end def posted? hash begin sleep 60 last_post = @client.timeline_for(:user, :id=>hash[:user], :count=>1).first.created_at rescue Twitter::RESTError # protected ~A~K~A following ~A~L 0 ~A | ~P~H~A~Y~T~_~A~W~A~_~_ p "#{$!}" p "passing #{hash[:user]}" return true # ~D~P~F~_~P~F~J~\~A~Q~B~K rescue # twitter~A~L~P~A~A~B~K~Y~B対~V p "#{$!}" sleep 180 retry end p "last_post was #{last_post}" last_post > hash[:from] end @client = Twitter::Client.new(:login => USERNAME, :password => PASSWORD) (1..20).each do |pg| @client.my(:friends, :page=>pg).each do |friend| p "checking #{friend.screen_name}" unless ((following_me? friend.screen_name) &amp;&amp; posted?({:from=>LAST_YEAR, :user=>friend.screen_name})) p "removing #{friend.screen_name}" sleep 60 @client.friend(:remove, friend) end end end
10/18 改訂
なお、取得した画像の著作権はグーグル他各社が保持しています。
ご利用は計画的に私的範囲でどうぞご利用ください。
#!/usr/bin/perl use strict; use warnings; use Getopt::Long; use LWP::UserAgent; use GD; my $cmdline = join(" ", $0, @ARGV); my $usage = "usage: $0 -sx=116423 -sy=51603 -ex=116426 -ey=51605 -dx=4 -dy=3 -z=17 -size=300 -get=30 -dir=cache -output=output.jpg -nodebug"; my ($sx, $sy) = (0, 0); my ($ex, $ey) = (0, 0); my ($dx, $dy) = (4, 3); my $z = 17; my $size = 300; my $get = 30; my $dir = "cache"; my $output = "output.jpg"; my $debug = 0; GetOptions("sx=i" => \$sx, "sy=i" => \$sy, "ex=i" => \$ex, "ey=i" => \$ey, "dx=i" => \$dx, "dy=i" => \$dy, "z=i" => \$z, "size=i" => \$size, "get=i" => $get, "dir=s" => \$dir, "output=s" => \$output, "debug!" => \$debug) or die "$usage\nDied"; if ($ex == 0) { $ex = $sx + $dx; } else { $ex++; $dx = $ex - $sx; } if ($ey == 0) { $ey = $sy + $dy; } else { $ey++; $dy = $ey - $sy; } $sx>0 and $dx>0 and $sy>0 and $dy>0 and $z>0 and $dir and $output or die "$usage\nBad arguments"; $dx*$dy > $size and die "Getting too large."; $debug and print "debug: mkdir $dir\n"; mkdir $dir; -d $dir or die "can't make dir $dir: $!"; my $base = sprintf("http://khm%d.google.co.jp/kh/v=46&z=%d", int(rand(4)), $z); my $ua = LWP::UserAgent->new; printf "now get %d images...\n", $dx*$dy; for (my $x=$sx; $x < $ex; $x++) { for (my $y=$sy; $y < $ey; $y++) { my $file = sprintf("%s/%02dz%06dx%06d.jpg", $dir, $z, $x, $y); $debug and print "debug: check of $file\n"; -s $file and next; --$get < 0 and last; my $req = HTTP::Request->new(GET=>+"$base&x=$x&y=$y"); $debug and print "debug: fetch from ".$req->uri."\n"; my $res = $ua->request($req); unless ($res->is_success) { print "fail fetch from $file: ", $res->status_line, "\n"; next; } if (open(my $fh, ">", $file)) { $debug and print "debug: write of $file\n"; binmode $fh; print $fh $res->content; close $fh; } else { print "fail open in $file: $!\n"; } } } $get < 0 and print "reach the getting limit, skip after all.\n"; printf "creating %dX%d image...\n", 256*$dx, 256*$dy; my $image = new GD::Image(256*$dx, 256*$dy); for (my $x=$sx; $x < $ex; $x++) { for (my $y=$sy; $y < $ey; $y++) { my $file = sprintf("%s/%02dz%06dx%06d.jpg", $dir, $z, $x, $y); $debug and print "debug: check of $file\n"; -s $file or next; $debug and print "debug: read of $file\n"; my $part = GD::Image->newFromJpeg($file); $debug and print "debug: image copy\n"; $image->copy($part, 256*($x-$sx), 256*($y-$sy), 0, 0, 256, 256); } } #$image->string(gdSmallFont, 0, 0, $cmdline, $image->colorAllocate(255, 255, 255)); open(my $fh, ">", $output) or die "fail open $output: $!"; $debug and print "debug: write of $output\n"; binmode $fh; print $fh $image->jpeg(); close $fh;
例えば秋葉原とか
perl gmwall.pl -sx=116423 -sy=51603 -ex=116427 -ey=51606
駅だけとか
perl gmwall.pl -sx=465701 -sy=206420 -ex=465705 -ey=206423 -z=19
使う数値はfirebugなどで拾ってください。
スーパーpre記法がアレなまま直ってないわけで。
姉妹サイト(?)ができていたわけで。
なにやらcookieを食べようとした形跡があるわけで。
#!/usr/local/bin/perl -w use strict; use warnings; use Web::Scraper; use URI; use Perl6::Say; use MIME::Type; use HTTP::Cookies; use LWP::UserAgent; use Path::Class; use Data::Dumper;sub p { print Data::Dumper::Dumper(@_) }; # cookie_jar~A~T~_~H~P #my $cookie_file = "lwpcookies.txt"; #my $cookie_jar = HTTP::Cookies->new(file => $cookie_file, autosave => 1, ignore_discard => 1); my $page = shift || 10000; unless ( $page =~ /^\d+$/ ) { die 'perl 4u.pl [page as int]'; } my @files = dir('./img/')->children; my $cache = {}; my $end_file = { mtime => 0 , file => '' }; for my $file (@files) { if ( $file->basename =~ /^(.+)\.(.+)$/ ) { $cache->{$1} = $2; } if ( $end_file->{mtime} < $file->stat->mtime ) { $end_file->{mtime} = $file->stat->mtime; $end_file->{file} = $file; } } for my $i (1..$page) { my $url = sprintf 'http://nijigen.straightline.jp/?page=%s' , $i; # if ($i == 1){ # $url = sprintf 'http://4u.straightline.jp/nude?filter=off'; # my $ua = LWP::UserAgent->new; # $ua->cookie_jar($cookie_jar); # my $request = HTTP::Request->new(GET => $url); # my $res = $ua->request($request); # } say "request url>".$url; my $scrp = scraper { process '/html/body/div/div[2]/div[2]/div/div/div/div/div/a', 'link[]' => '@href'; process '/html/body/div/div[2]/div[2]/div/div/div/div[2]/div/div/p[2]/span/a', 'img[]' => '@href'; result 'link','img'; }; # $scrp->user_agent->cookie_jar($cookie_jar); my $tmp = $scrp->scrape(URI->new($url)); my $links = $tmp->{link}; my $imgs = $tmp->{img}; if ( ref $links ne 'ARRAY' ) { say "end program."; exit; } for my $link (@$links) { $link =~ m{/([^/]+)$}; my $sesid = $1; if ( $end_file->{file} &amp;&amp; $end_file->{file}->basename =~ /^$sesid\./ ) { say "file exsits end program >".$sesid; # exit; next; } if ( $cache->{$sesid} ) { say "file exsits next >".$sesid; next; } sleep 5; my $image_url = shift @$imgs || next; $image_url =~ s/^http:\/\/nijigen.straightline.jp\/user\/manage\/do_register\?src=//; $image_url =~ s/%3A/:/ig; $image_url =~ s/%2F/\//ig; say "get image url >".$image_url; my $ua = LWP::UserAgent->new; my $req = HTTP::Request->new(GET => $image_url); my $res = $ua->request($req); my $content = $res->content; my $content_type = $res->headers->header('content-type'); my $ext = MIME::Type->new( type => $content_type )->subType || 'bin'; if ( $ext eq 'plain' ) { say "not found image >".$image_url; # ~\家~A~T~C~O~A~L~H~A~H~A~A~_~B~I4U~A奴~B~R~]~X~A~Y~B~K~@~B my $image_url = 'http://nijigen.straightline.jp/html/found/static/upload/l/l_'.$sesid.'.jpg'; say "get 4u image url >".$image_url; my $req = HTTP::Request->new(GET => $image_url); my $res = $ua->request($req); $content = $res->content; $ext = 'jpeg'; } my $write_path = './img/'.$sesid.'.'.$ext; open my $FH, '>', $write_path; binmode $FH; print $FH $content; close $FH; say "write image >".$write_path; } }
http://anchor18.blog77.fc2.com/blog-entry-195.html
と
http://ameblo.jp/omisedayori/entry-10184130642.html
で
teruyastar
["", "まいったね。 やはりWiiウェアなんかのDL方式か、ネトゲに移行せざるをえないか。"]
complex_cat
["何処をどう描いても完璧なデッサン力。", "これについてはWikiの記述は,確かに使う側を助けてしまっているかも。いや,ここを読むようなユーザーとの重複度は小さい
とは思うが。"]
silverscythe
["昔のはホントすごいよなあ", ""]
yachimon
["", ""]
shoku-in
["", ""]
mike_n
["", ""]
y_arim
["Dr.スランプの時点ですでに完成されていて、そこからさらに進化しているのはすごい。", "違法性の認識とか関係なく、便利なものがあるから使うってだけだろうな。たいていのひとは物事を深く考えないし自分の欲求には逆らわない。/そしてid:utd_sn3781の主張は増田に書かれた http://anond.hatelabo.jp/20081231201301"]
A410
["", ""]
tailtame
["やっぱり手書きの頃がいいなぁ…塗りが…塗りが…。>>66の赤いトカゲ?ドラゴン?の艶とかたまらんなー。画集っていくつあるんだろ…", "蔓延しすぎているってのも あるんだろうな…本屋に行けば目に付く本は……。子供の頃なんてゲームは半年に一本でいいよ。クリエイターも割れしてたしな…"]
dododod
["", "おやおや"]
retlet
["", ""]
kashmir108
["", ""]
tokuhirom
["", ""]
ocha39
["", ""]
whirl
["", ""]
kalmalogy
["「ビッチズ・ライフ」買おう。", "親が買い与えるのは絶対だめ。『公認意識』が子供に芽生える。自腹で買って『本当はよくないけど次善の策』という意識でないと。/ マジコン使うならせめて『良いと思ったモノに投資する』意識を教育すべきでは。"]
came8244
["", ""]
fujii_isana
["", ""]
lizy
["クロノトリガーの絵を見るだけで、頭にあのBGMが流れてくる", "モラルでの解決方法案としては、ゲーム作りの過程を理解してもらう、とかかな。どれだけ多くの人がどれだけ苦労してコストをかけて作っているのかを理解してもらうしか|それでもやる奴はもうダメですね"]
mochige
["", ""]
aohige9610
["中鶴の絵がまじってるので注意", ""]
gm333
["", ""]
posinega
["", ""]
pikayan
["", ""]
asitaki
#!ruby -Ku require "rubygems" require "json" require 'open-uri' url = ["http://anchor18.blog77.fc2.com/blog-entry-195.html", "http://ameblo.jp/omisedayori/entry-10184130642.html"] bookmarks = url.map{|u| open("http://b.hatena.ne.jp/entry/json/"+u){|f| JSON.parse(f.read.gsub(/\A\(|\)\Z/, "")) } } user_comment_map = bookmarks.map{|bm| h = {} bm["bookmarks"].each{|b| h[b["user"]] = b["comment"] } h } overlaped_users = user_comment_map.map{|bm| bm.keys }.inject{|a,b| a&amp;b } overlaped_users.each{|user| puts user p user_comment_map.map{|b| b[user]} puts }
http://anond.hatelabo.jp/20090102095509
はてなダイヤリーでは確かtex記法はimgタグに変換される。imgタグのソースにtex記法の一部が記述されていて、画像のURIとしてcgiとそれに渡すパラメタが記述されている。よってブラウザはimgタグをみてcgiに画像を要求し、cgiは数式が記述された画像を返す。推測だけど。
しかし匿名ダイヤリーはimgタグに変換されたところでエスケープが働く。これはバグというより仕様と思われる。imgタグだろうとtex記法のものだけ通すとか判定めんどうそうだし、tex記法で思わぬ使われ方をすると危ないと判断したからかもしれない、これらも推測ではあるが。
結論としてやはりバグではなく仕様と評するほうがずっと合っていると思われる。よってはてラボに要求するならデバッグ要求ではなく仕様変更要求のほうが適しているだろう。しかしなおバグだと考えるならばもちろん好きになされるとよい。