『日本語を唯一の母語として育った人は、他の言語、例えば英語・ドイツ語・ロシア語などを母語として育った人と比べて、著しく外国語習得が困難である』
科学的根拠は、それぞれの言語が話される時に使用される周波数(パスバンド)にある。
日本語———125~1500ヘルツ
フランス語—-1000~2000ヘルツ
イタリア語——2000~4000ヘルツ
ドイツ語——-125~3000ヘルツ
ロシア語——125~8000ヘルツ
イギリス英語-2000~1万2000ヘルツ
アメリカ英語-1000~4000ヘルツ
赤ちゃんの言語学習能力は平等ですが、小学校高学年頃までに、パスバンドの値は
聴覚として決定されてしまう。
外国語習得が困難であるわけ:アルファルファモザイク
— maqbes — plasticdreams
逆に言えば、日本語の発音はノイズに強い。例えばアナログ電話回線の帯域(3.4kHz以下)でもほぼ全ての発音を余裕を持って伝送できる、とても優秀な発音様式を持った言語であることを誇りに思うべきではないか(ぉ
—
neodenjin —
hetaru —
plasticdreams —
kurotepu —
handa
Minibufferには可能性を感じざるをえない。
ついさっき、LDRize+Autopagerizeに、MinibufferとReblogコマンドを入れた。
dashboardでj, kで上下移動しながらpを押してreblogしたいポストを何個も選択し、キーボードの「:」を押すと画面の下にコマンドラインが出るようになる。そこで「re」と打つとreblogというコマンドが出てくるじゃないですか。これを実行すると、選択した奴が全部reblogされる。(tabで入力補完されるのでre→tabでいい)
これがやばくて、 dashboard30ページで15個reblogしたんだけど5分もかかってない。いつもはreblogボタンを押してから画面を移動して15回ポストしてたから、倍以上かかってた。
silog - diary/2007-09-02/LDRize Minibuffer 2007.09.02 の変更点に関して
LDRizeにあったMinibufferというコマンドラインツールが単体化したようだ。そのMinibufferはLDRizeで選択したアイテムの数やリストや、内部に含むHTML要素を処理できる。そしてReblogコマンドは、Minibufferに新しいコマンドを追加した。
これで、今までマウスで行ってきた行為が見事に分割されて実装できる。
・LDRize → web閲覧を書籍の速読と同じ目の使い方で読める
・Minibuffer → コマンド実行のプラットフォーム
・各種コマンド → LDRizeで選択したアイテム群を処理する
と揃ったのでやばくなってきた。何かwebとのインタラクションが全然違うものになる気がする。
ようするに今までの俺の場合、もしwebの使い勝手を上げたいと思ったら、画面全部を考えてHTMLを解析して、必要な場所にボタンを埋め込んだり色を変えたり文字を大きくする様なGreaseMonkeyスクリプトを作ってた。これは、「読む」「選択する」「操作する」を全部一人で作ってた。
でもこのLDRize+Minibuffer+αの3段階なら、画面をj,kで操作できるようにLDRizeの設定をしてくれる人は今結構増えてるみたいだし、コマンド実行プラットフォームもあるので、俺は「選択されたブロックをどう処理するか」だけに専念できる。これは興奮する。便利にしまくってやる。
—
tacke
すげーいい加減だけどスクレイピングしてみた。
セッションが一つしか無いからスクレイピング専用アカウント作った。
#!/usr/local/bin/perl
use strict;
use warnings;
use utf8;
# use HTML::Selector::XPath;
use HTML::TreeBuilder::XPath;
use HTML::Entities;
use HTML::ResolveLink;
use XML::Feed;
use WWW::Mechanize;
my $mech = WWW::Mechanize->new;
$mech->get("http://www.tumblr.com/login");
$mech->submit_form(
fields => {
email => $ARGV[0] || 'your@mail',
password => $ARGV[1] || 'password',
},
);
my $base = 'http://www.tumblr.com/dashboard';
my @posts_html;
my $feed = XML::Feed->new("RSS");
for my $i(1..3){
$mech->get("$base/$i");
my $content = $mech->content;
my $root = HTML::TreeBuilder::XPath->new;
# my $data = join '', <DATA>;
# $root->parse($data);
my $resolver = HTML::ResolveLink->new(base => $base);
$content = $resolver->resolve($content);
$root->parse($content);
my @posts = $root->findnodes('//ol[@id="posts"]/li');
my @posts_ref = map {
my $link =
$_->findvalue('div[@class="control"]//a[text()="Link"]/@href');
my $c = $_->as_HTML;
$c =~s/<li.*?>//s;
+{
content => decode_entities( $c ),
title => $_->findvalue('div[@class="post_container"]'),
id => $link,
link => $link,
author => $_->findvalue('div[@class="username"]/a'),
}
} @posts;
@posts_html = (@posts_html, @posts_ref);
}
use Data::Dumper;
# print Dumper @posts_html;
$feed->title("tumblr dashboard");
$feed->link("http://www.tumblr.com/dashboard");
$feed->description("tumblr dashboard");
for(@posts_html){
my $entry = XML::Feed::Entry->new("RSS");
while(my($key,$value) = each %{$_}){
$entry->$key($value);
}
$feed->add_entry($entry);
}
print $feed->as_xml;
—
mala
ニコニコ動画を楽に貼り付けるよー
javascript:var d=document,w=window,e=w.getSelection,k=d.getSelection,x=d.selection,s=(e?e():(k)?k():(x?x.createRange().text:0)),f='http://www.tumblr.com/share',l=d.location,e=encodeURIComponent;if(/nicovideo.jp/.test(l.host)){s='<div style="width: 318px; border: 1px solid #ccc;"><iframe src="http://www.nicovideo.jp/thumb?v=sm'+d.paste_url.site_url.value.match(/sm(.*)/)[1]+'" width="100%" height="198" scrolling="no" style="border: none;">対応ブラウザでご覧下さい</iframe></div>';}var p='?v=3&u='+e(l.href) +'&t='+e(d.title) +'&s='+e(s),u=f+p;try{if(!/^(.*\.)?tumblr[^.]*$/.test(l.host))throw(0);tstbklt();}catch(z){a =function(){if(!w.open(u,'t','toolbar=0,resizable=0,status=1,width=450,height=430'))l.href=u;};if(/Firefox/.test(navigator.userAgent))setTimeout(a,0);else a();}void(0)
—
miniturbo