「^H」を含む日記 RSS

はてなキーワード: ^Hとは

2021-01-21

anond:20210121181624

質問者です。

代理回答ありがとうございます

「市況かぶ2階建て」で取り上げられててケチョンケチョンにされていましたが、やっぱり理念も何もない金儲け目的転売ヤーさんだらけで、日本エネルギー安定化には全然寄与していないのだったら、潰れるのもやむなしなのかなぁ、と思ってしまます

回答者ますみません)

で、立憲民主党議員脱原発に絡んで新電力を持ち上げまくってたんで、ああやっぱりこの人たちは・・・という感想しかありません。

今日国会の質疑をみてたらなおさら

ただ、賢い経営者が多い新電力、この冬は酷い目にあっても学習効果を発揮して次の冬には対策してくるでしょうから、これからどうなるのか、末永く眺め^H^H応援したいと思います

2020-06-05

Galois拡大って何?

分離的かつ正規代数拡大のことです。

集合Kが2つの二項演算+: K×K→K、*: K×K→Kを持ち、以下の性質を満たすとき、Kは体であるという。

  1. 任意のa, b, c∈Kに対して、(a + b) + c = a + (b + c)
  2. ある元0∈Kが存在して、任意のa∈Kに対して、a + 0 = 0 + a = a
  3. 任意のa∈Kに対して、ある元-a∈Kが存在して、a + (-a) = (-a) + a = 0
  4. 任意のa, b∈Kに対して、a + b = b + a
  5. 任意のa, b, c∈Kに対して、(ab)c = a(bc)
  6. 任意のa, b, c∈Kに対して、a(b + c) = ab + ac、(a + b)c = ac + bc
  7. ある元1∈Kが存在して、任意のa∈Kに対して、1a = a1 = a
  8. 任意のa∈K\{0}に対して、ある元a^(-1)∈Kが存在して、aa^(-1) = a^(-1)a = 1
  9. 任意のa, b∈Kに対して、ab = ba

体の例
  • 有理数全体の集合Q、実数全体の集合R、複素数全体の集合Cは、通常の和と積について体になる。一方、整数全体の集合Zは体にはならない。
  • 素数pについて、整数をpで割ったあまりの集合Z/pZ := {0, 1, ..., p-1}は、自然な和と積によって体になる。

代数拡大

K, Lを体とする。K⊂Lとなるとき、LをKの拡大体という。L/Kが拡大であるともいう。もちろん、これはLの部分群Kによる剰余群のことではない。

C/Rや、C/Qは体の拡大の例である。K(X)/K(X^2)なども体の拡大の例である

L/Kを体の拡大とする。任意のa∈Lに対して、K係数の多項式f(X)存在して、f(a)=0となるとき、LをKの代数拡大体、またはL/Kは代数拡大であるという。

そのような多項式存在しない元が存在するとき、LはKの超越拡大体、またはL/Kは超越拡大であるという。

代数拡大の例

C/Rは代数拡大である

なぜならば、任意のz∈Cはz = x + yi (x, y∈R)と表わせ、z* = x - yiとおくと、zは二次方程式

X^2 -(z + z*)X + zz* = 0

の解だから

Kを体とする。K上の任意多項式F(X)に対して、Fの根を全て含む体Lが存在する。言い換えれば、FはLで

F(X) = a(X - a1)...(X - an)

と一次の積に分解する。このようなLのうち最小のもの存在し、Fの(最小)分解体という。Fの分解体はKの代数拡大体である

最後の一文を証明する。

LをFの分解体とする。Lの部分環Vを

K[X1, ..., Xn]→L (f(X1, ..., Xn)→f(a1, ..., an))

の像とすると、VはK上のベクトル空間である。各aiはn次多項式の根であるからaiのn次以上の式はn-1次以下の式に等しくなる。従って、VはK上高々n^2次元の有限次元ベクトル空間である

Vは整域であるから、0でない元による掛け算は、VからVへの単射線形写像である。したがって、線形写像の階数と核の次元に関する定理から、この写像全射である。よって、Vの0でない任意の元には逆元が存在する。つまり、Vは体である

Lは、Kと各aiを含む最小の体であり、V⊂Lなので、L=Vである

さて、Lの元でK上のいかなる多項式の根にならないもの存在したとし、それをαとおくと、無限個の元1, α, α^2, ...は、K上一次独立となる。これはVが有限次元であることに矛盾する。□

上の証明から特に、KにFの1つの根αを添加した体K(α)は、Kの代数拡大体である。このような拡大を単拡大という。


拡大次数と自己同型群

L/Kを代数拡大とする。LはK上のベクトル空間となる。その次元をL/Kの拡大次数といい、[L : K]で表す。[L : K]が有限のとき、L/Kは有限拡大といい、無限大のとき無限代数拡大という(上の証明でみたとおり、超越拡大は必ず無限次拡大である)。

M/K、L/Mがともに有限拡大ならば、L/Kも有限拡大であり、[L : K] = [L : M] [M : K]。

α∈Lとする。K上の多項式fでf(α)=0をみたすもののうち、次数が最小のものが定数倍を除いて存在し、それをαの最小多項式という。

[K(α) : K]は、αの最小多項式の次数に等しい。なぜならば、その次数をnとするとαのn次以上の式はすべてn-1次以下の式になるため、[K(α) : K]≦n。1, α, ..., α^(n-1)が一次従属だとすると、n-1次以下の多項式でαを根に持つもの存在することになるので、[K(α) : K]≧n。よって、[K(α) : K]=n。

Lの自己同型σでKの元を固定するもの、つまり任意のa∈Kに対してσ(a)=aとなるもの全体のなす群をAut(L/K)と書く。

任意の有限拡大L/Kに対して、#Aut(L/K) ≦ [L : K]。


Galois拡大

L/Kを有限拡大とする。#Aut(L/K) = [L : K]が成り立つとき、L/KをGalois拡大という。L/KがGalois拡大のとき、Aut(L/K)をGal(L/K)と書き、L/KのGalois群という。

Galois拡大の例

L/Kを有限拡大、[L : K] = 2とする。#Aut(L/K) ≦ [L : K] = 2なので、Aut(L/K)に恒等写像以外の元が存在することを示せばよい。

[L : K] = 2なので、α∈L\Kが存在して、1, α, α^2は一次従属。したがって、α^2 - aα + b = 0となるa, b∈Kが存在する。解と係数の関係から、α, a - α∈Lは、2次方程式X^2 - aX + b = 0の異なる2解。

α∉Kより、K⊕KαはK上2次元ベクトル空間で、K⊕Kα⊂LなのでL=K⊕Kα。

σ: L→Lをσ(1)=1, σ(α)=a-αとなるK線形写像とすれば、σは全単射であり、Kの元を固定する体の準同型でもあるので、σ∈Aut(L/K)。□

C/RはGalois拡大。

Gal(C/R)={id, σ: z→z*}

平方因子のない有理数αに対して、Q(√α)/QはGalois拡大。

Gal(Q(√α)/Q) = {id, σ: 1→1, √α→-√α}。


正規拡大

L/Kを有限拡大とする。任意のα∈Lに対して、αのK上の最小多項式が、Lで1次式の積に分解するとき、L/Kを正規拡大という。

L=K(α)とすると、L/Kが正規拡大であるのは、αの最小多項式がLで一次の積に分解するときである

K(α)/Kが正規拡大で、さらにαの最小多項式重根を持たなければ、αを他の根に写す写像がAut(K(α)/K)の元になるから、Aut(K(α)/K) = αの最小多項式の次数 = [K(α) : K]となり、K(α)/KはGalois拡大になる。

nを自然数として、ζ_n = exp(2πi/n)とする。ζ_nの最小多項式は、Π[0 < m < n, gcd(m, n)=1](X - (ζ_n)^m)であり、Q(ζ_n)/QはGalois拡大である


分離拡大

L/Kを有限拡大とする。任意のα∈Lの最小多項式重根を持たないとき、L/Kは分離拡大という。

体Kに対して、1を1に写すことで一意的に定まる環準同型f: Z→Kがある。fの像は整域だから、fの核はZの素イデアルである。fの核が(0)のとき、Kの標数は0であるといい、fの核が(p)であるとき、fの標数はpであるという。


Q, R, Cの標数は0である。Z/pZの標数はpである

標数0の体および有限体の代数拡大はすべて分離拡大である

F_2 = Z/2Zとする。F_2係数の有理関数体F_2(X)/F_2(X^2)は分離拡大ではない。

実際、XのF_2(X^2)上の最小多項式は、T^2 - X^2 = (T - X)(T + X) = (T - X)^2となり、重根を持つ。

Galois拡大であることの言い換え

有限拡大L/KがGalois拡大であるためには、L/Kが分離拡大かつ正規拡大となることが必要十分である


Galois拡大の性質

L/KをGalois拡大、Gal(L/K)をGalois群とする。

K⊂M⊂Lとなる体Mを、L/Kの中間体という。

部分群H⊂Gal(L/K)に対して、L^H := {a∈L| 任意のσ∈Hに対してσ(a)=a}は、L/Kの中間体になる。

逆に、中間体K⊂M⊂Lに対して、Aut(L/M)はGal(L/K)の部分群になる。

次のGalois理論の基本定理は、L/Kの中間体がGalois群で決定されることを述べている。

L/KをGalois拡大とする。L/Kの中間体と、Gal(L/K)の部分群の間には、以下で与えられる1対1対応がある。

  • 部分群H⊂Gal(L/K)に対して、K⊂L^H⊂L
  • 中間体Mに対して、Aut(L/M)⊂Gal(L/K)

さらに、以下の性質を満たす。

  • H'⊂H⊂Gal(L/K)ならば、K⊂L^H⊂L^H'⊂L
  • K⊂M⊂M'⊂Lならば、Aut(L/M')⊂Aut(L/M)⊂Gal(L/K)
  • 中間体K⊂M⊂Lに対して、#Aut(L/M)=[L : M]。つまり、L/MはGalois拡大
  • 部分群H⊂Gal(L/K)に対して、#H = [L : L^H]、#Gal(L/K)/H = [L^H : K]
  • 中間体K⊂M⊂Lに対して、M/Kが正規拡大(L/Kは分離的なのでM/Kも分離的であり、従ってGalois拡大)であることと、Gal(L/M)がGal(L/K)の正規部分群であることが同値であり、Gal(L/K)/Gal(L/M)〜Gal(M/K)。同型はσ∈Gal(L/K)のMへの制限で与えられる。

K=Q, L=Q(√2, √3)とすると、Gal(L/K)はσ√2→-√2とする写像σと、√3→-√3とする写像τで生成される位数4の群Z/2Z×Z/2Zである

この部分群は{id}, {id, σ}, {id, τ}, {id, στ}, {id, σ, τ, στ}の5種類があり、それぞれ中間体L, Q(√2), Q(√3), Q(√6), Kに対応する。

2019-11-26

togetterrssが取れないと思ったら

titleの中にコントロールコード(^H)が混じってて、パーザがコケてた。

サツマイモに黒いシミの^Hようなものがついてたりしない?整腸作用のある「ヤラピン」という成分なんです「蜜だと思ってた」「今度から喜んで食べる」

まさかRSSの中に混じってくるとは思わなかった。

攻撃としては懐かしいけども、意外に効果的なんかね。

2018-06-24

anond:20180624154314

LinuxネイティブだとWSLが無いとキツイだろうなぁ

そしてLinuxデスクトップ環境って良くも悪くも先鋭的なコンセプトで作られてるからLinuxで当たり前の機能Windowsでは実装されてなかったりするんだよな

Nautilusって^Hで隠しファイル表示できたりするけどExplorerはできないとかな

2008-08-03

ニコニコ動画を快適化するvimperator設定まとめ

.

8/27追記

本記事末尾のローカルkey mappingを実現するコードを改良してプラグインにしました。

Vimperatorローカルkey mappingを実現するプラグイン local_mappings.js を書いた。

http://anond.hatelabo.jp/20080826124641


まずnicontroller.jsを入れる。

2008-07-14 - やぬすさんとこの日記

http://d.hatena.ne.jp/janus_wel/20080714

→n秒後/前に移動するkey mappingも忘れずに!

vimperatorrcにこれを書く。

Re: autocmd が分からない - hogehoge

http://d.hatena.ne.jp/teramako/20080731/p1

コードをいじった。

" --- autocmd ---

" nicovideo
" cでコメント入力、Cでコマンド入力、sでシーク、lでボリューム調整、
" pで停止/再生、mでミュートのon/off、vでコメの表示トグル、zでズームjavascript <<EOM
liberator.plugins.nicomap = function(){
  // no args
  var list=[
    ["p","nicopause"],
    ["m","nicomute"],
    ["v","nicomementvisible"],
    ["z","nicosize"],
    ["s","nicoseek"],
  ];
  // has args
  var list2=[
    ["c","nicomment"],
    ["C","nicommand"],
    ["l","nicovolume"],
    ["s","nicoseek"],
  ];
  if(buffer.URL.indexOf("http://www.nicovideo.jp/watch") == 0){
    for (var j=0; j<list.length; j++){
      let i = j;
      liberator.mappings.addUserMap([1],[list[i][0]],list[i][1],
        function(){
          liberator.execute(list[i][1]);
        },{
          rhs:":"+list[i][1]+"<CR>"
        }
      );
    }
    for (var j=0; j<list2.length; j++){
      let i = j;
      liberator.mappings.addUserMap([1],[list2[i][0]],list2[i][1],
        function(){
	  liberator.execute('normal :'+list2[i][1]+'<Space>');
	},{
	  rhs:":"+list2[i][1]+"<Space>"
	}
      );
    }
  } else {
    for (var i=0; i<list.length; i++){
      liberator.mappings.remove(1,list[i][0]);
    }
    for (var i=0; i<list2.length; i++){
      liberator.mappings.remove(1,list2[i][0]);
    }
  }
};
liberator.autocommands.add('LocationChange','.*','js liberator.plugins.nicomap()');
EOM

フォーカスプレーヤーに奪われないようにするグリモン

2008-08-02 - 地獄の猫日記

http://d.hatena.ne.jp/nokturnalmortum/20080802#1217633913

→→これで超快適すぎるニコライフの幕開け!

.

補足

現在マウスカーソル位置でクリックイベント発生するkey mappingを設定できればより快適なんだが・・・。

(「コメントする」ボタンDOMノードが取得できれば、dispatchEventでいけそうだけど)

追記: ちょっと改良してみた。
" ************* local key mappings ****************
javascript <<EOM
 (function(){
function setlocalmap(obj){
    var list = obj.list;
    var list2 = obj.list2;
    var exp = obj.exp;
    if(list.constructor != Array || list2.constructor != Array){
      echr("invalid argument: array argument required");return;
    }
    if(exp.constructor != RegExp){
      echr("invalid argument: regex argument required");return;
    }
    if(exp.test(liberator.buffer.URL)){
      for (var j=0; j<list.length; j++){
        let i = j;
        liberator.mappings.addUserMap([1],[list[i][0]],list[i][1],
          function(){
            liberator.execute(list[i][1]);
          },{
            rhs:":"+list[i][1]+"<CR>"
          }
        );
      }
      for (var j=0; j<list2.length; j++){
        let i = j;
        liberator.mappings.addUserMap([1],[list2[i][0]],list2[i][1],
          function(){
  	  liberator.execute('normal :'+list2[i][1]+'<Space>');
  	},{
  	  rhs:":"+list2[i][1]+"<Space>"
  	}
        );
      }
    } else {
      for (var i=0; i<list.length; i++){
        liberator.mappings.remove(1,list[i][0]);
      }
      for (var i=0; i<list2.length; i++){
        liberator.mappings.remove(1,list2[i][0]);
      }
    }
}
/** 
 * Add Key Mappings to Specific Web Pages
 * @param obj : has following properties
 *  list : commands that take no args
 *  list2 : commands that take args
 *  exp : target page's URL (regex)
 * @see Re: autocmd が分からない - hogehoge
 * http://d.hatena.ne.jp/teramako/20080731/p1
 */
liberator.plugins.addLocalUserMap = function(obj){
  liberator.plugins[obj.name + "MapSetter"] = function(){
    setlocalmap(obj);
  }
  liberator.autocommands.add(
  	'LocationChange', '.*', 'js liberator.plugins.' + obj.name + 'MapSetter()'
  );
};

// nicovideo
// cでコメント入力、Cでコマンド入力、sでシーク、lでボリューム調整、
// pで停止/再生、mでミュートのon/off、vでコメの表示トグル、zでズーム。
var nicovideo = {
	name : 'nico',
	exp : /^http:\/\/www.nicovideo.jp\/watch/,
	list : [
	    ["p","nicopause"],
	    ["m","nicomute"],
	    ["v","nicomementvisible"],
	    ["z","nicosize"],
	    ["s","nicoseek"],

	],
	list2 : [
	    ["c","nicomment"],
	    ["C","nicommand"],
	    ["l","nicovolume"],
	    ["s","nicoseek"],
	],
};
liberator.plugins.addLocalUserMap(nicovideo);
})();
EOM

2008-04-16

http://anond.hatelabo.jp/20080415182703

実行してみたら出力に変化がなかった。アルェー?

おっと、バグが。ちゃんとテストしてなかった。すんまそん。

# tree -pugs | perl -e '@line=<>; $max=(sort {$b<=>$a} map {/^(.*?)\[/; length($1)} @line)[0]; map {s/^(.*?)\[/$1 . " "x($max-length($1))."\["/e} @line; print @line'

毎回正規表現考えるのも面倒かなーとかとか。

理想を語ると出力形式指定できれば最強だなーとか妄想してた。

この辺は、ファイルにして ~/bin に放りこんで、自分好みに育て上げる、ってのがエロゲ^H^H^Hギーク楽しみ方かと。

雛型的には↓かなぁ。どうだろ。弾・monger・コーガイ氏が登場したら……滅多切りさるかもw

#!/usr/bin/perl
use strict;
use warnings;
use Getopt::Std;
use vars qw($opt_t);

# オプション処理
getopts('t');
# $opt_tがセットされていたらタブ処理、ということにする。

# コマンド起動
# 引数処理とかシグナルとか面倒なところは……
open TREE, "tree -pugs ".join(" ",@ARGV,"|") or die;
my @line = <TREE>; # 富豪的にいく
close TREE; # ここで子プロセスの処理だっけ?
# それともwaitするんだっけ?

# ツリー表示部分の最大長を求める。
my $max=(sort {$b<=>$a} map {/^(.*?)\[/; length($1)} @line)[0];
# 色々やる時はユーザ名とかグループ名とかファイル名とかの最大長がいるかも

foreach (@line) {
        if ($opt_t) {
                # タブ(\t)で位置をそろえるとか……
        } else {
                s/^(.*?)\[/$1 . " "x($max-length($1))."\["/e;
        }
        print;
}

treeへのオプションの与え方とか、それによる出力の変化とか考えると、結構面倒だけど、自分用に決め打ちしとけば何とかなるでしょう。

あと、「[%p<>%u<>%g<>%s]」みたいなのはCPANに転がってたりしそうな気もするので、それを使うとか。

そんなところでなかろうか。

[追記]

http://search.cpan.org/~darren/String-Format-1.14/Format.pm というのがあった。

2008-04-15

linuxtreeコマンドの出力をかっこよくできないかなの巻

便利すぐる!とか思ったんだけど、オプション次第では出力がちょっと汚い。

これってうまいこと成形できないかな。かな。

とりあえずオプションは-pugsくらいでおk

treeって何よ?

これ。

http://arbolbell.jp/tools/2007/11/linux-tree.html

使ってみた

[root@localhost www]# tree

.
|-- cgi-bin
|-- error
|   |-- HTTP_BAD_GATEWAY.html.var
|   |-- HTTP_BAD_REQUEST.html.var
|   |-- HTTP_FORBIDDEN.html.var
|   |-- HTTP_GONE.html.var
|   |-- HTTP_INTERNAL_SERVER_ERROR.html.var
|   |-- HTTP_LENGTH_REQUIRED.html.var
|   |-- HTTP_METHOD_NOT_ALLOWED.html.var
|   |-- HTTP_NOT_FOUND.html.var
|   |-- HTTP_NOT_IMPLEMENTED.html.var
|   |-- HTTP_PRECONDITION_FAILED.html.var
|   |-- HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
|   |-- HTTP_REQUEST_TIME_OUT.html.var
|   |-- HTTP_REQUEST_URI_TOO_LARGE.html.var
|   |-- HTTP_SERVICE_UNAVAILABLE.html.var
|   |-- HTTP_UNAUTHORIZED.html.var
|   |-- HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
|   |-- HTTP_VARIANT_ALSO_VARIES.html.var
|   |-- README
|   |-- contact.html.var
|   |-- include
|   |   |-- bottom.html
|   |   |-- spacer.html
|   |   `-- top.html
|   `-- noindex.html
|-- html以下略

こんな感じで出してくれる。超便利。

何したいのさ?

オプションつけると付加情報も表示してくれるんだけど、

[root@localhost www]# tree -pugs

.
|-- [drwxr-xr-x hoge     hoge          4096]  cgi-bin
|-- [drwxr-xr-x hoge     hoge          4096]  error
|   |-- [-rw-r--r-- hoge     hoge          9108]  HTTP_BAD_GATEWAY.html.var
|   |-- [-rw-r--r-- hoge     hoge          6633]  HTTP_BAD_REQUEST.html.var
|   |-- [-rw-r--r-- hoge     hoge         11193]  HTTP_FORBIDDEN.html.var
|   |-- [-rw-r--r-- hoge     hoge         12700]  HTTP_GONE.html.var
|   |-- [-rw-r--r-- hoge     hoge         12846]  HTTP_INTERNAL_SERVER_ERROR.html.var
|   |-- [-rw-r--r-- hoge     hoge          7539]  HTTP_LENGTH_REQUIRED.html.var
|   |-- [-rw-r--r-- hoge     hoge          6773]  HTTP_METHOD_NOT_ALLOWED.html.var
|   |-- [-rw-r--r-- hoge     hoge         13255]  HTTP_NOT_FOUND.html.var
|   |-- [-rw-r--r-- hoge     hoge          6336]  HTTP_NOT_IMPLEMENTED.html.var
|   |-- [-rw-r--r-- hoge     hoge          6565]  HTTP_PRECONDITION_FAILED.html.var
|   |-- [-rw-r--r-- hoge     hoge          7802]  HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
|   |-- [-rw-r--r-- hoge     hoge          7099]  HTTP_REQUEST_TIME_OUT.html.var
|   |-- [-rw-r--r-- hoge     hoge          7103]  HTTP_REQUEST_URI_TOO_LARGE.html.var
|   |-- [-rw-r--r-- hoge     hoge          7822]  HTTP_SERVICE_UNAVAILABLE.html.var
|   |-- [-rw-r--r-- hoge     hoge         13035]  HTTP_UNAUTHORIZED.html.var
|   |-- [-rw-r--r-- hoge     hoge          6353]  HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
|   |-- [-rw-r--r-- hoge     hoge          7009]  HTTP_VARIANT_ALSO_VARIES.html.var
|   |-- [-rw-r--r-- hoge     hoge          1979]  README
|   |-- [-rw-r--r-- hoge     hoge          4256]  contact.html.var
|   |-- [drwxr-xr-x hoge     hoge          4096]  include
|   |   |-- [-rw-r--r-- hoge     hoge           291]  bottom.html
|   |   |-- [-rw-r--r-- hoge     hoge             9]  spacer.html
|   |   `-- [-rw-r--r-- hoge     hoge           969]  top.html
|   `-- [-rw-r--r-- hoge     hoge          5043]  noindex.html
|-- [drwxr-xr-x hoge     hoge          4096]  html以下略

いまいちかっちょわるい。

体裁とか好きなようにいじれたらそのまま書類にできるんだけどなーと。

欲しいものをまとめると

http://anond.hatelabo.jp/20080415182703

てな感じです。

とある増田さん@エロゲ^H^H^Hギークの回答

http://anond.hatelabo.jp/20080416071526

雛型をtreetest.plとして保存して動かすとこんな感じになりました。

[root@localhost www]# perl ./treetest.pl

.
|--                                             [drwxr-xr-x hoge     hoge          4096]  cgi-bin
|--                                             [drwxr-xr-x hoge     hoge          4096]  error
|   |--                                         [-rw-r--r-- hoge     hoge          9108]  HTTP_BAD_GATEWAY.html.var
|   |--                                         [-rw-r--r-- hoge     hoge          6633]  HTTP_BAD_REQUEST.html.var
|   |--                                         [-rw-r--r-- hoge     hoge         11193]  HTTP_FORBIDDEN.html.var
|   |--                                         [-rw-r--r-- hoge     hoge         12700]  HTTP_GONE.html.var
|   |--                                         [-rw-r--r-- hoge     hoge         12846]  HTTP_INTERNAL_SERVER_ERROR.html.var
|   |--                                         [-rw-r--r-- hoge     hoge          7539]  HTTP_LENGTH_REQUIRED.html.var
|   |--                                         [-rw-r--r-- hoge     hoge          6773]  HTTP_METHOD_NOT_ALLOWED.html.var
|   |--                                         [-rw-r--r-- hoge     hoge         13255]  HTTP_NOT_FOUND.html.var
|   |--                                         [-rw-r--r-- hoge     hoge          6336]  HTTP_NOT_IMPLEMENTED.html.var
|   |--                                         [-rw-r--r-- hoge     hoge          6565]  HTTP_PRECONDITION_FAILED.html.var
|   |--                                         [-rw-r--r-- hoge     hoge          7802]  HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
|   |--                                         [-rw-r--r-- hoge     hoge          7099]  HTTP_REQUEST_TIME_OUT.html.var
|   |--                                         [-rw-r--r-- hoge     hoge          7103]  HTTP_REQUEST_URI_TOO_LARGE.html.var
|   |--                                         [-rw-r--r-- hoge     hoge          7822]  HTTP_SERVICE_UNAVAILABLE.html.var
|   |--                                         [-rw-r--r-- hoge     hoge         13035]  HTTP_UNAUTHORIZED.html.var
|   |--                                         [-rw-r--r-- hoge     hoge          6353]  HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
|   |--                                         [-rw-r--r-- hoge     hoge          7009]  HTTP_VARIANT_ALSO_VARIES.html.var
|   |--                                         [-rw-r--r-- hoge     hoge          1979]  README
|   |--                                         [-rw-r--r-- hoge     hoge          4256]  contact.html.var
|   |--                                         [drwxr-xr-x hoge     hoge          4096]  include
|   |   |--                                     [-rw-r--r-- hoge     hoge           291]  bottom.html
|   |   |--                                     [-rw-r--r-- hoge     hoge             9]  spacer.html
|   |   `--                                     [-rw-r--r-- hoge     hoge           969]  top.html
|   `--                                         [-rw-r--r-- hoge     hoge          5043]  noindex.html
|--                                             [drwxr-xr-x hoge     hoge          4096]  html以下略

ステキすぐる。

これを元にいろいろいぢくればcodereposでコミっても怒られないものができそう。

Format.pmもかなり使えそうと言うか僕の要求ずばりですよ。

感謝感激猫ひろし

このエントリTBとかブクマ次第でいろいろ更新される予定だよ。

エントリ自体がスルーされたら泣きながらどっか行くつもりだったけどスルーされなかったのでどっかには行かないよ。

2008-03-08

[][greasemonkey][seahorse]はてブのhotentryで、2chコピペブログや「ネタ」を削除す...勝手に改造

firefoxでしか確認していないけれど、URL正規表現XPathで指定できる様にしてみたよ。

// ==UserScript==
// @name           filter for Hatena::Bookmark
// @namespace      http://anond.hatelabo.jp/
// @include        http://b.hatena.ne.jp/hotentry*
// @include        http://b.hatena.ne.jp/entrylist*
// origin http://anond.hatelabo.jp/20080302214727
// ==/UserScript==
(function(){
	var itemxpath = "//div[@class='entry']";
	function xpathgenURL(url) {return "//div[@class='entry' and descendant::a[starts-with(@href,'"+url+"')]]"}
	var filters = [
		// start with '//' then xpath
		// moconico douga
//		{"tag": "div", "name": "entry", "pattern": "nicovideo\.jp"},
		"//div[@class='entry' and descendant::a[contains(@href,'nicovideo.jp')]]",
/*
		// tag of "2ch"
		{"tag": "a", "name": "tag", "pattern": "2ch", "parentNum": HatebuTagParentNum},
		{"tag": "a", "name": "tag", "pattern": "\\*2ch", "parentNum": HatebuTagParentNum},
***/
		// start with 'http' then url
		// 2ch blogs  
		//  livedoor
//		{"tag": "div", "name": "entry",
//			"pattern": /http:\/\/blog\.livedoor\.jp\/(insidears|dqnplus)\//},
		"http://blog.livedoor.jp/insidears/",
		"http://blog.livedoor.jp/dqnplus/",
//		{"tag": "div", "name": "entry",
//			"pattern": /http:\/\/(guideline|alfalfa|news4vip)\.livedoor\.biz\//},
		"http://guideline.livedoor.biz/",
		"http://alfalfa.livedoor.biz/",
		"http://news4vip.livedoor.biz/",
		// typeof /regexp/ is function (@firefox) then regexp pattern
		//  fc2
//		{"tag": "div", "name": "entry",
//			"pattern": /http:\/\/(urasoku|news23vip|waranote|vipvipblogblog|netanabe|res2ch|kanasoku|tenkomo)\.blog\d+\.fc2\.com\//},
		/http:\/\/(urasoku|news23vip|waranote|vipvipblogblog|netanabe|res2ch|kanasoku|tenkomo)\.blog\d+\.fc2\.com\//,

		// tag of "neta"
//		{"tag": "a", "name": "tag", "pattern": "ネタ", "parentNum": HatebuTagParentNum},
		"//div[@class='entry' and descendant::a[@class='tag' and string()='ネタ']]",
//		{"tag": "a", "name": "tag", "pattern": "*ネタ", "parentNum": HatebuTagParentNum},
		"//div[@class='entry' and descendant::a[@class='tag' and string()='*ネタ']]",

		// hatena anonymouse diary
//		{"tag": "div", "name": "entry", "pattern": /http:\/\/anond\.hatelabo\.jp\//}
		"http://anond.hatelabo.jp/",
	];

	for (var i=0; i<filters.length; i++) {
		var filter = filters[i];
		var type = typeof filter;
		var regexp;
		var xpath;
		if (type == "function") {
			xpath = itemxpath;
			regexp = filter;
		} else if (type == "string") {
			if (filter.match(/^http/)) {
				xpath = xpathgenURL(filter);
			} else if (filter.match(/^\/\//)) {
				xpath = filter;
			} else {
				next;
			}
		}
		var removeNodes = document.evaluate(xpath,document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);
		for (var j=0; j<removeNodes.snapshotLength; j++) {
			var node = removeNodes.snapshotItem(j);
			if (!regexp || node.innerHTML.match(regexp)) {
				node.parentNode.removeChild(node);
			}
		}
	}
})();

ついでに増田版も作ってみたよ。

// ==UserScript==
// @name           filter for Hatelabo::AnonymousDiary
// @namespace      http://anond.hatelabo.jp/
// @include        http://anond.hatelabo.jp/
// @include        http://anond.hatelabo.jp/*?page=*
// @exclude        http://anond.hatelabo.jp/YourID/*
// ==/UserScript==
// origin http://anond.hatelabo.jp/20080302214727
(function(){
	var itemxpath = "//div[@class='section']";
	function xpathgenURL(url) {return "//div[@class='section' and descendant::a[starts-with(@href,'"+url+"')]]"}
	var filters = [
		// start with '//' then xpath
		"//div[@class='section' and child::h3[starts-with(string(),'■はてな嫌われ者!')]]",
		// start with 'http' then url
		"http://anond.hatelabo.jp/",
		// typeof /regexp/ is function (@firefox) then regexp pattern
		/釣り/,
	];

	for (var i=0; i<filters.length; i++) {
		var filter = filters[i];
		var type = typeof filter;
		var regexp;
		var xpath;
		if (type == "function") {
			xpath = itemxpath;
			regexp = filter;
		} else if (type == "string") {
			if (filter.match(/^http/)) {
				xpath = xpathgenURL(filter);
			} else if (filter.match(/^\/\//)) {
				xpath = filter;
			} else {
				next;
			}
		}
		var removeNodes = document.evaluate(xpath,document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);
		for (var j=0; j<removeNodes.snapshotLength; j++) {
			var node = removeNodes.snapshotItem(j);
			if (!regexp || node.innerHTML.match(regexp)) {
				node.parentNode.removeChild(node);
			}
		}
	}
})();

2008-02-29

2chスレからdatジャンプするブックマークレット

javascript:void(function(){ var rex = /^http:\/\/(.+).2ch.net\/test\/read.cgi\/(.+)\/([0-9]+)\/.*$/;var traduri = location.href;var daturi = traduri.replace(rex,"http://$1.2ch.net/$2/dat/$3.dat");if(location.href!=daturi){location.href = daturi;} })();

2007-10-08

もう相撲プロレスにしようぜ!

相撲ファンの目を離れて外の目から見れば。

いくら強かろうと巡業サボった朝青龍はクビでよくね? となるし、「かわいがり」で死亡した斉藤某とかなんですぐに司法解剖に持って行かないの? となるし、八百長だって逆に何でブックがあっちゃいけないの? という話になるし、高額売買が指摘される親方株だって別にそんなの要らないっていうか何で引退してからじゃないと指導できないの現役力士でも強ければ道場持てばいいじゃん(昔で言う二枚鑑札)という話になる。

でさ、このへんはもういっそ外の感覚に合わせてしまえばいいと思うんだ。

まず協会を株式会社化する(以下、仮に(株)大相撲と呼ぶ)。

# その際協会寄付行為で「解散時の財産の帰属は類似の公益団体に」とあるから、一旦は文部省傘下の公益法人が全株を保有し、しかる後に随時民間に売却することになろう。

これで理事会^h^h^h取締役会の「上」に株主総会ができるので親方どもの好き勝手にはできなくなるし、そもそも取締役力士出身者がつくことも困難になろう。

で、NHKも必ずしも全場所中継しないようにする。逆に言えば、(株)大相撲放映権に関するフリーハンドを得、従来の不透明な座席手配よりも放映権の売りさばきによる収益をメインにするようになろう。

しかも、株主の目に加えて放映権者の目がある以上、殺人とか暴行なんて決定的なスキャンダルは自粛せられるだろう。暴力団とのスキャンダル放映権売れなくなって衰亡した某団体を教訓にするならば。

でだ。面白ければ八百長もアリにするのだ。八百長相撲を「自然」に見せるにはそれはそれで高度な技術がいる、ということは彼の「中盆」板井も強調するところであるし、実際八百長云々は関係なしに「千代の富士時代」の相撲格闘技興行として面白かった。一概に害悪と切って捨てるのは勿体ない。

但し、それは力士間の不透明な売買ではなく、(株)大相撲ブックメーカーが定めた「ブック」「ギミック」に基づくものでなければならない。力士間に「ストーリー」を設定して遣ってもいいし、「ヒール」「ベビーフェイス」を設定してやる。もちろんガチを貫く力士が居るならブックメーカーはそれすら尊重してブックを立てることが望まれる。

もちろん力士レスラーよろしく、簡単に「脱退」したり「(株)大相撲とは別の組織を結成」したり「復帰」したり「ガチを標榜する新競技を主張」したりするようになるだろう。「プロレス化」するだろう。

で、それで何か「見る側にとって」問題があるの?

2007-06-30

あ、そだ

チカチトニミラテランラモナカラノニミニあたしのを読むときに、前もって書いとくよ。

  • 中身は同じでも、口調は書いてるときの気分によって、野郎からお嬢まで変わったりするからね。
  • 相手によっては^h(キーボードで言うバックスペースまたは後退)とか使ったりするからね。用は、中身はDOSからのPCユーザ
  • 今でこそ周りが忙しくなってるけれど、普段はぼーっとしてたりするよ。
  • カナキー入ってたら察してね。

2007-05-06

linuxユーザのためのエロ動画DLツール3

http://anond.hatelabo.jp/20070429211930

ファイルurlコピペしといてそこから読み込むようにしたんだぜ?

頭の"h"を補完するようにしたんだぜ?

例えばhoge.txtとして次のような内容にしておく。

ttp://www.yourfilehost.com/media.php?cat=video&file=hoge_001.wmv
ttp://www.yourfilehost.com/media.php?cat=video&file=hoge_002.wmv
ttp://www.yourfilehost.com/media.php?cat=video&file=hoge_003.wmv

こっちはbukkonuki.rbとして保存。

require 'rubygems'
require 'scrapi'
require 'open-uri'

def get_yourfilehost_src(uri)
  yourfilehost_src = Scraper.define do
    process "embed", :src => "@src"
    result :src
  end
  yourfilehost_match = /vidlink\=(.*?)&amp;/
  
  return yourfilehost_match.match(yourfilehost_src.scrape(URI.parse(uri)))[1]
end

def completion_uri(arg)
  if arg =~ /^h/
    uri = arg
  else
    uri = 'h' + arg
  end
  
  return uri
end

def expansion_list()
  $*.each do |files|
    File::open(files) do |file|
      file.each {|line| system 'wget', get_yourfilehost_src(completion_uri(line)) }
    end
  end
end

expansion_list()

#$*.each do |arg|
#  system 'wget', get_yourfilehost_src(completion_uri(arg))
#end

使うときは

ruby bukkonuki.rb hoge.txt

って感じで頼むぜ。

そうするとhoge_001.wmv,hoge_002.wmv,hoge_003.wmvDLされてくるんだぜ?

2007-05-01

増田には

頭のおかし^h^hもしろい人がいるんだな

2007-01-29

[]キーワードテスト

OK

C# $10 (T_T) *ist D +ANIMA yes,mama ok -196℃ .book c/w :active ave;new アンリ・カルティエ=ブレッソン ?B @CHaT [TV] ^H _no PE`Z ||リ・_・`川

文字参照ならヒットするもリンク書き換えならず

AirH" AirH" 女子高生 GIRL'S-HIGH 女子高生 GIRL'S-HIGH MÄR MÄR (*゚∀゚)ノ パキャッ (*゚∀゚)ノ パキャッ

文字参照に変換されるため双方上と同様に

R&B R&B のどごし<生> のどごし<生>

キーワード文字参照ではないが変換されるためヒットせず

P&G

存在するはずだがたぶんはてな側の問題かな?

!K7

含むキーワードを見つけられず

% \ { } ~

キーワード関連

<p&gt; <p&gt; <p>

というわけで、残るは文字参照関係だけかな。

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