はてなキーワード: Dirとは
せっかく書いたから匿名でのせてみるよ
使い方は
必要なものを gem で取ってくるにはこうすればいいよ
長すぎてelispが消えたから続きがあるよ
@echo off setlocal set WD=%~dp0 cd /d %WD% ruby get_movies.rb ruby get_images.rb ruby create_m3u.rb
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"
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
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
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)}" } } }
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 && !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(&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
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
#! /bin/csh -f ##処理選択 echo "処理を選んでください" echo "1 Dir生成" echo "2 Dir削除" echo " " echo -n "No入力 1 or 2 :" set num <$ ##入力エラー処理 ##1でない or 2でない場合はエラー出してシェル再読み込み if [ $num != 1 -a $num != 2 ] ; then echo "入力エラー。1か2を入力してください" select.csh fi ##以下numは1か2 ##実行許可入力 if [ $num = 1 ] ; then echo "1 Dir生成を実行します Y or N" echo -n "Y or N を入力してください" set Ans <$ fi if [ $num = 2 ] ; then echo "2 Dir削除を実行します Y or N" echo -n "Y or N を入力してください" set Ans <$ fi ##入力エラー処理 ##Yでない or Nでない場合はエラーを出してシェル再読み込み if [ $Ans != Y -a $Ans != N ] ; then echo "入力エラー。YかNを入力してください" select.csh fi ##以下AnsはYかN ##シェル選択&実行 if [$num =1 -a Ans = Y] ; then source kadai2.csh echo "Dir生成が終了しました" fi if [$num =2 -a Ans = Y] ; then source del.csh echo "Dir削除が終了しました" fi
71 フジTV JAL/ANA(パイロット) モルガンスタンレー BCG
70日テレ講談社野村證券(IB/リサーチ)MRINRI(コンサル)メリルリンチJPモルガン
69 TBS 三菱商事小学館三井不動産三菱地所DIR(リサーチ)
68 電通 テレ朝 朝日新聞集英社JBICDPKDBJ三井物産リーマンUBS 日興citi
67 JAICA テレ東博報堂読売新聞共同通信準キーJR東海日本郵船みずほ(GCF/証券)東証アクセンチュア(戦)P&G(マーケ)
66 東電 NHK 住友商事時事通信毎日新聞新日鐵ANAソニー旭硝子 新日石農中味の素
65 JAL 本田技研商船三井任天堂東急不関電東京ガス新潮社産経麒麟麦酒松下電器信越ソニーMEドコモ富士フイルム
64 JETRO 東京建物伊藤忠JASRAC地方電力JR東大ガス住友不三菱重工旭化成サントリーJFE大和SMBC東京海上
63P&G(非マーケ)三菱化学丸紅シェルオラクル三菱UFJ信託新生銀(IB) 東宝JRA日本IBMシャープキヤノン日産 DI
62 JR西メトロ川崎重工アサヒ信金中金日本生命松竹NTTデータリクルート日立富士ゼロリコー三井化学住友化学
61 森ビル ADK東芝マイクロソフト住友信託地方局IBCS日本HP NRI(SE)
60 住友金属神戸製鋼みずほ信託鹿島三菱電機豊田通商東レコニミノコマツニコン
59 NTTコム大成豊田織機資生堂マツダ住友電工オリンパス松下電工三菱東京UFJ
58 MS海上新政府系金融日東電工帝人三菱マテリアル住友3MNTT東西KDDI 清水
http://anond.hatelabo.jp/20071009010407
tar xzvf かな。でもvはあまり使わないので不定的。zの前にくることもある気がする。順番は動作を示すcやxがまず来て、その後に修飾的なzやvが来て、最後に f hoge.tgz がセットでくるって寸法。
なぜならアーカイブファイル名はオプションfの引数だからです。
元増田さんも後ろに -C dir って書いているように、fもハイフンをつけて別に書けるし、逆に-Cをまとめることも出来るわけで、
tar -c -f archive.tar.gz -C dir -z .
は同じ意味になる。もともとテープ用のコマンドなので、デフォルトの出力先はテープデバイスで、ファイルに出すのはオプションなんです。って、もっぱらbsdな人なんでgnuは違ったりするのかな?
増田あたまいいーー!!!
Sta 、Manで曜日が頭をよぎった自分とは大違いだぜ。
「年収?ということは役職だよな?」と思って、
Parは…Presidentやーー!!と思ったけど、
プレジデントにParなんかないことにきがついたところで目が覚めた。
夏のたそがれ時でしたとさ。
http://anond.hatelabo.jp/20070921151716
多分ね
Sta 5,445,000 =スタッフ staff ヒラですな
Sen 6,970,000 =シニア senior staff かな? 係長ぐらい?
Man 12,240,000 =マネージャー manager 課長って感じ?
Dir 13,680,000 =ディレクター director 普通の会社で言えば取締役じゃな 部長ってイメージかな
Par 16,500,000 =パートナー partner パートナーシップにおけるパートナーじゃね。共同経営者、みたいな感じ
後の数字は年収(円)じゃろね
Sta 5,445,000
Sen 6,970,000
Man 12,240,000
Dir 13,680,000
Par 16,500,000
仕事場にノートパソコン(VersaPro.VY22X/RX-L)が持ち込まれる。使用OSはWindows XP Pro.
起動するとWindows XPのロゴ表示の後「SHELL32が見つかりません。」と表示され、次に「ライブラリ SHLWAPI.DLL から見つかりませんでした。」と出て、最後にはメッセージ「ログオンユーザーインターフェイスDLL MSGINA.DLLを読み込めませんでした。システム管理者に問い合わせてDLLを置き換えるかまたは元のDLLを復元してください。」となる。[再起動]ボタン表示で唯一の選択肢が示される状況。リブートしてセーフモード起動を試すもログオン画面の手前で上記メッセージが表示され同じ状況に。
毎度の事ながら今回も「Windows回復コンソール」のお世話になって復旧を試みる。とりあえずWindowsXPのCD-ROMからブートし、R[復旧]を選んで回復コンソール起動、C:\WINDOWS\SYSTEM32に入ってみると「dir shell32.dll」を実行しても「ファイルが見つかりません」という表示。そこで健康な別PCからのSHELL32.DLLの移植を試みる。ついでにSHLWAPI.DLLとMSGINA.DLLも壊れている可能性が高いので一緒にコピーする事に決定。
方法としてはKNOPPIX5.0.1-CDから起動、/dev/hda1 が /media/hda1にオートマウントされているので、右クリック-プロパティのメニュー内で「Read Only」にチェックが入っているのを外し、別WindowsマシンでFATフォーマットして上記3つのDLLを放り込んでおいた手持ちのUSBメモリ(128M)を差し込んで、/dev/sda1から/media/hda1にコピー(作業を簡便にしたいのと面倒くさいのでルートフォルダに)
KNOPPIXはログオフ-シャットダウンし、Windows XP CD-ROMに入れ替えて再び「Windows回復コンソール」にて以下を実行。
cd \windows\system32 ren msgina.dll msgina.bak ren shlwapi.dll shlwapi.bak cd \ copy SHELL32.DLL c:\windows\system32 copy MSGINA.DLL c:\windows\system32 copy SHLWAPI.DLL c:\windows\system32 EXIT
これで無事起動できれば御の字だったのだが。改善されたのは「SHELL32.DLL…」のエラーメッセージのみで後2つは相変わらず。ログオン画面へ移行せず再起動の選択肢しか無い状態は変化なし。
いろいろ考えあぐねた末、「元々の正常起動時のバージョンと同一のDLLをコピー」してやる事で解決した。具体的には、起動しなくなったPCは「Windows XP Pro. Service Pack 1」だった(!)ので、移植するDLLは最新の「SP2」でもWindows XP CD-ROMの中の「無印」でも駄目だという事だったようだ(無事にログオン画面が表示されてもその後フリーズ)。たまたま過去に作成していたWindowsXP-SP1統合インストールCD-Rを発掘し、そこからSHELL32.DLL、MSGINA.DLL、SHLWAPI.DLLを抽出、移植作業をやり直し再起動すると「何事も無かったかのように」ようこそ画面が表示されて元通りのデスクトップ画面を復活させる事ができた。
※追記:公式情報で既出だったようだ。無駄に 時間を 浪費していた かもしれない。
Windows Update Web サイトから Windows XP の更新をインストールすると、エラー メッセージが表示される