はてなキーワード: KEYとは
str.charCodeAt(0) + str.charCodeAt(str.length-1) (str.charCodeAt(0) + str.charCodeAt(str.length-1)) * str.length
while (*key != '\0') hashval += *key++;
do{ x = (x * 0x60 + *s - 0x20) % hashsize; }while(*++s);
/* ハッシュ値算出ルーチン */ /* 各文字コードを左に3シフトしたものでXORをとり、 */ /* ハッシュテーブルのサイズで割った余りを返す */ int HashCalc( SearchData ) char *SearchData; { int HashValue; for ( HashValue = 0 ; *SearchData != '\0' ; ) HashValue ^= (int)*SearchData++ << 3; return( HashValue % HASHSIZE ); }
Deploy Merb, Sinatra, or any Rack App to Heroku
http://blog.heroku.com/archives/2009/3/5/32_deploy_merb_sinatra_or_any_rack_app_to_heroku/
http://heroku.com/pages/quickstart
HerokuをGit経由で使ってみる
http://d.hatena.ne.jp/aki-s-119/20081110/1226335713
http://github.com/guides/using-git-and-github-for-the-windows-for-newbies
http://d.hatena.ne.jp/kusakari/20080715/1216091060
http://code.google.com/p/msysgit/
http://net-newbie.com/putty.html
>heroku help === General Commands help # show this usage list # list your apps create [<name>] # create a new app keys # show your user's public keys keys:add [<path to keyfile>] # add a public key keys:remove <keyname> # remove a key by name (user@host) keys:clear # remove all keys === App Commands (execute inside a checkout directory) info # show app info, like web url and git repo open # open the app in a web browser rename <newname> # rename the app sharing:add <email> # add a collaborator sharing:remove <email> # remove a collaborator domains:add <domain> # add a custom domain name domains:remove <domain> # remove a custom domain name domains:clear # remove all custom domains rake <command> # remotely execute a rake command console <command> # remotely execute a single console command console # start an interactive console to the remote restart # restart app servers logs # fetch recent log output for debugging logs:cron # fetch cron log output bundles # list bundles for the app bundles:capture [<bundle>] # capture a bundle of the app's code and dat bundles:download # download most recent app bundle as a tarba bundles:download <bundle> # download the named bundle bundles:animate <bundle> # animate a bundle into a new app bundles:destroy <bundle> # destroy the named bundle destroy # destroy the app permanently === Example story: rails myapp cd myapp (...make edits...) git init git add . git commit -m "my new app" heroku create myapp git remote add heroku git@heroku.com:myapp.git git push heroku master
「ここ1年で出て来た注目のエロゲー系サイトまとめ」ランキングTOP10を見て。
http://tekitounaotoko.blog4.fc2.com/blog-entry-470.html
KEYがメイン、ときどきその他エロゲブランドやアニメ、ラノベ。
アニメDVD売上関係は 「今日もやられやく」と競合している。
確信的釣り師。何か書けば個人ニュースサイトが必ず取り上げる。
KEYと二次創作がメイン。記事を書くと必ず突っこまれるボケ担当(天然と推測)。
すべての判断基準がKEY。ドクロアイテムを拾って爆弾を垂れ流しにするボンバーマン。
KEY情報があると、とりあえず個人ニュースサイトはここにリンクを張る。
やたら文章が長い。途中で読むのに挫折することもある。
たまにネットラジオをやる。
基本鍵っ子。最近は八月寄り。でも一番は07th Expansion。
ここも雑食度が高い。
「Primula」でやっていたCLANNADアニメBGMリストはこっちに移動した。
http://blog.livedoor.jp/seki_fujiki/archives/248702.html
常々思っていることだけど、自分のブログに書くと炎上間違い無しなので、匿名ダイアリーで書くことにした。
例外も多いが、同人的に大ブレイクするにはある程度の条件がある。
絵が「微妙」なことだ。
あえて下●とは言わない
ファミコン版のファイアーエムブレムや、ときめきメモリアルの第一作の絵はかなり野暮ったいものだ。Keyの「いたる絵」は、最初見たときには目を疑った。To Heart もPC版の作画は当時のレベルからしてみてもさほど良くは無いはずだ。月姫が出たとき当時のTypeMoonの絵は、素人臭いというのが第一印象だ。
そういった、ビジュアル的な弱点を持ちながら、ゲームシステムやシナリオが秀逸であることが同人活動の盛り上がりに関係するという感覚がある。
突っ込みどころの少ないスキの無い絵柄は、同人のネタになりにくい。リーフでも「こみっくパーティー」あたりとなると絵に関してはクオリティ管理が安定してくるが、逆に狂ったようなブームになることもなかった。判子絵と揶揄される西又葵にせよ「べっかんこう」にせよ、ある程度のアベレージは常にクリアしている。大槍葦人あたりになると、カユいところからパンツの中まで手がいきとどいていてやることが無い。
ひねくれた見方をすれば、「ゲームとしては良いんだけれど絵が駄目だね。俺ならもっと可愛く描けるぜ」といった歪んだ自尊心が同人の動力源なのかもしれない。(オリジナルの作家の心理は微妙だろうけど)完成度がある程度高いと、同人でやる意味が少なくなる。それは多くの作家の場合は劣化コピーになるだけだ。
http://www.ft.com/cms/s/0/579dffea-fc44-11dd-aed8-000077b07658.html
Japan’s politicians lose their way at a bad time
The DPJ talks about replacing bureaucrats with politicians in key ministerial positions
but says virtually nothing about what policies these newly empowered politicians would
implement. Ichiro Ozawa, its leader, is a survivor from the old school of Japanese
politics too busy micromanaging the election - he is his own Karl Rove - and too
unwilling to share decision-making with others in the party, especially those whom he
suspects are not entirely loyal to him, to be spending time preparing a transition.
民主党は省庁に議員を送り込むと言っているが、その議員がどんな政策を実施するのか
実質的に何も言っていない。小沢一郎は保守的な日本の政治家であり選挙対策ばかりで
忙しい。政策決定を党の中の誰とも共有するつもりがなく、とりわけ小沢に完全に忠誠を
The other day I asked an MP who is one of the party’s economic policy specialists what
fiscal policies the DPJ would employ to deal with what is shaping up to be Japan’s worst
postwar recession. His answer: “We haven’t thought much about that yet.”
先日、民主党の経済政策の専門家の一人である衆院議員に戦後最悪の不況に対する民主党の政策に
ついて尋ねたら、彼は「まだあまり考えてない」と答えた。
There will be more destruction, perhaps including the demise of both the LDP and DPJ
and the formation of new parties. Whatever the political goings-on, there is no
optimistic short-term scenario for Japan.
おそらく自民党と民主党の両方の崩壊や新党の形成を含む崩壊がやってくるだろう。
どんな政治的事件だとしても、日本にとって短期的に楽観できるシナリオはない。
At some point the public will grasp the seriousness of the economic troubles and demand
change. But that crisis mentality does not exist today. Therefore things will not only
get worse before they get better. They will get worse before the political system comes
up with policies that even stand a chance of making them better.
ある時点で大衆は経済問題と需要変化の深刻さを理解するだろう。しかし現時点では
そのような危機は心の中には存在しない。したがって政治システムが有望な政策を
思いつく前に状況は悪化するだろう。
だいぶ前のことなので結構忘れてるけど。
買ったのはHHKBPro2。OSはWindowsVista
背面のスイッチをいじってキーを変える。
http://www.pfu.fujitsu.com/hhkeyboard/leaflet/hhkb_backview.html
左◇ | Fn |
右◇ | Win |
Delete | Backspace |
左◇あたりにFnを割り振らないと右小指でしかFnを押せなくて面倒。
DeleteよりBackspaceの方が使用頻度が高いので変更。(Fn+DeleteでDeleteを押したことになります)
ノートPC(日本語版Windows)で英語配列版HHKBを使う時はUSJPを入れるのが限りなく正解に近い。
http://www.trinityworks.co.jp/software/USJPPro/index.php
デスクトップPCではドライバを英語キーボードに設定すればいい。
ノートPCでUSJPを入れていて、USJPにはおまけ機能でいくらかのキーの組み合わせを設定できるので
デスクトップPCでも同じにするためにとりあえず窓使いの憂鬱を入れた。
Vista対応版
http://slashdot.jp/~kazu2/journal/411746
設定はこんな感じにした。
include "104.mayu" key C-D = Delete key C-H = BackSpace key C-M = Enter key C-Space = $ToggleIME
どこかで見た設定をベースにいじったような気がしますがどこのがベースか忘れた。
自分は左◇キーをFnキーに設定して使っているので無変換キーをFnキーにするとちょうどよくなる。
include "104.mayu" mod control += CapsLock def subst *CapsLock = *LControl key S-Pause = CapsLock def key 無変換 = 0x7b mod mod0 = 無変換 key *S-M0-K = *S-Home key *S-M0-Comma = *S-End key *S-M0-Apostrophe = Right key *S-M0-Semicolon = Left key *S-M0-LeftSquareBracket = Up key *S-M0-Solidus = Down key *S-M0-L = *S-PageUp key *S-M0-FullStop = *S-PageDown key M0-R = F5 key C-D = Delete key C-H = BackSpace key C-M = Enter key *S-M0-_1 = F1 key *S-M0-_2 = F2 key *S-M0-_3 = F3 key *S-M0-_4 = F4 key *S-M0-_5 = F5 key *S-M0-_6 = F6 key *S-M0-_7 = F7 key *S-M0-_8 = F8 key *S-M0-_9 = F9 key *S-M0-_0 = F10 key *S-M0-HyphenMinus = F11 key *S-M0-EqualsSign = F12 def key JisBackslash = 0x7d key JisBackslash = Backslash key S-JisBackslash = $VERTICAL_LINE key C-Space = $ToggleIME
HHKBを繋いだ時は上の設定、普通のキーボードを繋いだ時は下の設定に切り替えてやってます。
USBメモリを挿したい時もここ。
重量が結構ある。
参考
■[知識][経済]2008年11月17日 朝日新聞 クルーグマンの記事 全文
http://anond.hatelabo.jp/20081118194540
金融政策が影響力を失い財政政策しか残っていないと言うのは、「不思議の国のアリス」の世界だ。この世界では貯蓄を高めるのが悪い事で、健全な財政も悪い事。逆に完全にムダな政府支出が善いこと。「あべこべの世界」だ。ここには長くいたくない。
http://blog.goo.ne.jp/ikedanobuo/e/1030466313fe91ad865d0bfa2b9c9f1a
彼(クルーグマン)は、1998年に"It's Baaack!"と題する論文で、
伝統的な見方では、流動性トラップに置いて金融政策は無力で、財政支出の拡大だけが唯一の出口、ということになるけれど、これは考え直すべきだ。もし中央銀行が、自分たちは無責任になり、将来はもっと高い物価水準を目指します、ということを信用できる形で約束できれば、金融政策もやっぱり有効になる。
と主張した。これに日本の「リフレ派」と称するエコノミストが唱和して、日銀が異常な金融緩和を行ない、それが円キャリーを誘発してアメリカのバブルの一因となった。それなのに今回は同じ状況でインフレ目標を提案しないで、かつて「やけくその政策」とバカにした財政政策を推奨するのはどういうわけか。彼の議論が機会主義的で一貫性を欠くのは今に始まったことではないが、学者ならかつての自分の提案が間違っていたことを認め、それが日米の経済に少なからぬ悪影響を与えたことを謝罪してほしいものだ。
補足 (池田信夫)
2008-11-18 13:36:26
TBにも書かれているが、クルーグマンがこの記事の質問に答えています(日本語が読めるわけないが)。
http://krugman.blogs.nytimes.com/2008/11/15/macro-policy-in-a-liquidity-trap-wonkish/
This misses a key point that I and others tried to make for Japan in the 90s and are trying to make again now: creating inflation is easy if you’re an irresponsible country. It may not be easy at all if you aren’t.
要するに、日本では(アメリカでも)無理だということを認めたわけです。しかし、それに代わって彼が提言する財政支出は、もっと無責任な政策です。こういうとき国際的な影響を考えないのは、政治家も経済学者も同じ。かつての「インタゲ」論議が日本国内のことばかり考えて、結果的にグローバルな過剰流動性を作り出した愚を繰り返してはならない。
パッヘルベル「3つのヴァイオリンと通奏低音のためのカノンとジーグ ニ長調」
(独: Kanon und Gigue in D-Dur für drei Violinen und Basso Continuo)
1曲目の「Canon in D major」はたぶんクラシックの中で一番有名な曲
バッハの「G線上のアリア」(Air on the G String)
the pillowsの6枚目アルバム「LITTLE BUSTERS」から。
ASIAN KUNG-FU GENERATIONのシングル。鋼の錬金術師のOP
消してえーリライトしてえー
だんだん俗っぽくなってるのは気のせいですか?
人間は必ずしも物事をその重要性に応じて処理しえないことを知っている。
しかし、また一番重要なことがらを最初に処理するように計画するほうが、行きあたりばったりのやり方よりも、はるかに良いことも知っている。
Amazon.co.jp: 耳で聞くD・カー0CD;ギー道は開ける オーディオCD版: 本
仕事をするときには、いつでも、
まず第一にもっとも必要なことをしなさい。
元気よく、そしてその仕事の主要点から着手しなさい。
それとほとんど同じようによい第二の手段は、
ヒルティ
[機会費用]KFS(Key Factors for Success)
「物事には、その結果に影響を与える主要因というのがかならずいくつか存在する。
Amazon.co.jp: 企業参謀―戦略的思考とはなにか: 大前 研一: 本
「戦略思考家とは、みずからの担当する職務(役職、業種、業務)において、
つねにKFSがなんであるかという認識を忘れない人のことであろう。
そして、彼は全面戦争ではなく、
生き残る種とは、
もっとも強いものではない。
もっとも知的なものでもない。それは、
変化にもっともよく適応したものである。
[biz]中ぐらいの勝利で満足する者は、常に勝者でありつづけるだろう。
[トレードオフ][機会費用][選択と集中]人生はトレードオフ
仕事の効率を改善することができるすごい壁紙 - GIGAZINE
何をやらないかを選択するという厳しいトレードオフに耐える強い意思
エクセレンスへの道は今すぐエクセレントではない事を全てやめること
何物かを選ぶことは、他の一切を捨てることである。チェスタートン
[権内][権外][エピクテートス]意志の力でどうにもならない物事
Amazon.co.jp: 鈴木敏文語録―まず「仮説」と「検証」 (ノン・ブック・愛蔵版): 緒方 知行: 本
社会人なら押さえておきたいフレームワーク思考 - livedoor ディレクター Blog(ブログ)
[フランクリン・プランナー]重要領域に生きる
Amazon.co.jp: ザ・ゴール ― 企業の究極の目的とは何か: エリヤフ ゴールドラット, 三本木 亮: 本
最小の努力で最大の効果を得るには、全体最適が常に優先されるべきである。
正しい仕事は何かが正しく定義され、評価されなければ、誰も正しい仕事などするはずがない。
これでおしまいだよ
(require 'cl) ; for cl-seq (defvar sangels-movies-dir nil) (defvar sangels-player "c:/Program Files/GRETECH/GomPlayer/GOM.exe") (defvar sangels-sort-by 'sangels-sort-by-rate) (defvar sangels-rate-file "~/.emacs.d/.sangels/rate") (defvar sangels-buffer "*sangels*") (defvar sangels-thumbnail "00_thumbnail.jpg") (defvar sangels-m3u "00_movies.m3u") (defface sangels-name '((t (:family "fixed" :weight bold :height 3.0))) "") (defface sangels-rate '((t (:family "fixed" :weight bold :height 1.5))) "") (defvar sangels-mode-map (let ((map (make-sparse-keymap))) (define-key map "n" 'next-line) (define-key map "p" 'previous-line) (define-key map (kbd "RET") 'sangels-select) (define-key map (kbd "SPC") 'sangels-select) (define-key map "q" 'sangels-quit) (define-key map "+" 'sangels-rate-plus) (define-key map "-" 'sangels-rate-minus) map)) (defvar sangels-mode-hook nil) (defvar sangels-highlight-overlay nil) (defvar sangels-rate-alist nil) (defconst sangels-rate-max 6) (defun sangels-insert-movies () (save-excursion (let* ((inhibit-read-only t) (files (remove-if-not (lambda (x) (and (not (member (file-name-nondirectory x) '("." ".."))) (file-directory-p x) (member sangels-thumbnail (directory-files x)))) (directory-files sangels-movies-dir t))) (ids (mapcar 'file-name-nondirectory files))) (erase-buffer) (setq ids (sangels-sort-ids ids)) (dolist (id ids) (let ((file (expand-file-name id sangels-movies-dir)) (pos (point))) (insert-image-file (expand-file-name sangels-thumbnail file)) (end-of-line) (insert (propertize (format "%-15s " id) 'face 'sangels-name)) (sangels-insert-rate id) (insert "\n") (put-text-property pos (point) 'sangels-id id)))))) (defun sangels-sort-by-name (a b) (string< a b)) (defun sangels-sort-by-rate (a b) (or (> (sangels-rate a) (sangels-rate b)) (sangels-sort-by-name a b))) (defun sangels-sort-ids (ids) (sort ids (or sangels-sort-by 'sangels-sort-by-name))) (defun sangels-insert-rate (id) (let ((rate (sangels-rate id))) (insert (propertize (concat (make-string rate ?★) (make-string (- sangels-rate-max rate) ?☆)) 'sangels-rate t 'face 'sangels-rate)))) (defun sangels-current-id () (get-text-property (point) 'sangels-id)) (defun sangels-play-movie (movie) (let ((explicit-shell-file-name "cmdproxy") (shell-file-name "cmdproxy")) (apply 'call-process-shell-command "start" nil "*tmp*" nil (mapcar (lambda (x) (concat "\"" x "\"")) (list sangels-player (unix-to-dos-filename movie)))))) (defun sangels-select () (interactive) (let ((id (sangels-current-id))) (when id (sangels-play-movie (expand-file-name sangels-m3u (expand-file-name id sangels-movies-dir)))))) (defun sangels-quit () (interactive) (kill-buffer sangels-buffer)) (defun sangels-rate (id) (or (cdr (assoc id sangels-rate-alist)) (/ sangels-rate-max 2))) (defun sangels-rate-save () (interactive) (let ((dir (file-name-directory sangels-rate-file))) (unless (file-exists-p dir) (make-directory dir t))) (with-temp-file sangels-rate-file (insert (pp-to-string sangels-rate-alist)))) (defun sangels-rate-load () (interactive) (when (file-exists-p sangels-rate-file) (with-temp-buffer (insert-file-contents sangels-rate-file) (goto-char (point-min)) (setq sangels-rate-alist (read (current-buffer)))))) (defun sangels-rate-plus (&optional n) (interactive "p") (setq n (or n 1)) (let* ((id (sangels-current-id)) (cell (assoc id sangels-rate-alist))) (unless cell (setq cell (cons id (sangels-rate id))) (setq sangels-rate-alist (cons cell sangels-rate-alist))) (setcdr cell (+ (cdr cell) n)) (save-excursion (let ((inhibit-read-only t)) (beginning-of-line) (goto-char (next-single-property-change (point) 'sangels-rate)) (delete-region (point) (next-single-property-change (point) 'sangels-rate)) (sangels-insert-rate id))) (sangels-rate-save))) (defun sangels-rate-minus (&optional n) (interactive "p") (setq n (or n -1)) (sangels-rate-plus (- n))) (defun sangels-post-command-hook () (save-excursion (move-overlay sangels-highlight-overlay (progn (move-beginning-of-line 1) (point)) (progn (move-end-of-line 1) (forward-line) (point)) (current-buffer)))) (defun sangels-mode () (interactive) (kill-all-local-variables) (use-local-map sangels-mode-map) (setq sangels-highlight-overlay (make-overlay 0 0)) (overlay-put sangels-highlight-overlay 'face 'highlight) (overlay-put sangels-highlight-overlay 'evaporate t) (make-local-variable 'post-command-hook) (add-hook 'post-command-hook 'sangels-post-command-hook nil t) (setq major-mode 'sangels-mode) (setq mode-name "Sangels") (run-mode-hooks 'sangels-mode-hook) (set-buffer-modified-p nil) (setq buffer-read-only t)) (defun sangels (&optional arg) (interactive "P") (when (or arg (not sangels-movies-dir)) (setq sangels-movies-dir (read-directory-name "movies dir: "))) (sangels-rate-load) (switch-to-buffer (get-buffer-create sangels-buffer)) (sangels-insert-movies) (sangels-mode)) (provide 'sangels)
http://anond.hatelabo.jp/20081017225836
を書いた元増田ですが。
id:X-key 『そういう論点は全て的外れであって、問題の本質ではない』と言った時点で、この問題に論点が複数あることに目を瞑りました宣言。論点整理もしないで自論に持ち込もうというのは、シートン先生と同じで感情・好悪論
という批判を頂いた。折角頂いたが、この批判もまたいくらか的外れである。
なぜなら自分は別に複数の問題に目を瞑るつもりはなくって、そもそもが「シートン先生はどういうつもりであのエントリーを書いたか、また
http://d.hatena.ne.jp/KoshianX/20081016/1224141158
このエントリーを批判したか」という問題意識でシートン先生について論じたのであって、つまりまさに「シートン先生の感情・好悪」、それしか問題にしていない。芋や行政代執行にはなんの興味もないのです。ただひたすら、シートン先生の果敢な自己主張、幼児をも政治的に味方にして府知事を批判せんとする敢闘精神の由来について整理したわけです。
そのお積もりで改めて
http://anond.hatelabo.jp/20081017225836
を読んで下さると幸いです。
なお、
リブログです。
An axiomatic basis for computer programming
C. A. R. Hoare
Communicating Sequential Processes (CSP)
C. A. R. Hoare
Call-by-name, call-by-value, and the lambda calculus
Gordon Plotkin
Towards a theory of type structure
John C. Reynolds
Definitional interpreters for higher-order programming languages
John C. Reynolds
Philip S. Abrams
The Anatomy of a Large-Scale Hypertextual Web Search Engin
Sergey Brin and Lawrence Page
A Mathematical Theory of Communication
Claude Shannon
Communication Theory of Secrecy Systems
Claude Shannon
Bayesian Networks without Tears
Eugene Charniak
A Universal Algorithm for Sequential Data Compression
Jacob Ziv and Abraham Lempel
Let's Build a Compiler 1988-1995
Jack Crenshaw
Gauging Similarity via N-Grams: Language-Independent Sorting, Categorization, and Retrieval of Text
Marc Damashek
Richard P. Gabriel
Hints on Programming Language Design
C.A.R. Hoare
Why Functional Programming Matters
John Hughes
Kenneth E. Iverson
The next 700 programming languages
Peter J. Landin
Recursive Functions of Symbolic Expressions and their Computation by Machine (Part I) 1960
John McCarthy
Teach Yourself Programming in Ten Years 2001
Peter Norvig
Alan J. Perlis
The Complexity of Theorem Proving Procedures
Stephen A. Cook
Guy Steele and Gerald Sussman
A Method for Obtaining Digital Signatures and Public-Key Cryptosystems
R.L. Rivest, A. Shamir, and L. Adleman
http://www.zafar.se/bkz/Articles/ClassicCompScienceTexts
http://www.zafar.se/bkz/wiki/view/43bafac8c8570f4f
にあったけど、無くなっていたので
http://web.archive.org/web/20060823143349/www.zafar.se/bkz/home/classictextsincomputersc.html
から拾ってきた。
でも書いてる途中に↓を見つけてしまったのでした。
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
yutori.2ch.net.hp.infoseek.co.jp/w/r/e/wrestleangel/post2ch.swf#host=yutori.2ch.net
ここ↑にあるやつ。
解説よろしく。
movie 'post2ch.swf' { // flash 8, total frames: 17, frame rate: 12 fps, 320x320 px frame 1 { System.useCodepage = true; nret = function (k, v) { return (flash.external.ExternalInterface.call('d', k, v)).toString(); }; host2ch = 'tmp6.2ch.net'; i = _url.indexOf('://'); if (-1 < i) { host2ch = _url.substring(i + 3); } i = host2ch.indexOf('.2ch.net'); if (-1 < i) { host2ch = host2ch.substring(0, i + 8); } path2ch = '/test/bbs.cgi?guid=ON'; l = new LoadVars(); i = _url.indexOf('#'); u = ''; if (0 < i) { u = _url.substring(i + 1); } LoadVars.prototype.sendNoEnc = function (url, target, method) { LoadVars.prototype._toString = LoadVars.prototype.toString; LoadVars.prototype.toString = function () { return unescape(this._toString()); }; ASSetPropFlags(LoadVars.prototype, '_toString', 3); this.send(url, target, method); LoadVars.prototype.toString = LoadVars.prototype._toString; }; ASSetPropFlags(LoadVars.prototype, 'sendNoEnc', 3); } frame 2 { _root.nowtime = null; _root.secondpost = null; _root.FROM = null; _root.mail = null; _root.MESSAGE = null; _root.subject = null; _root.ng = null; } frame 3 { (flash.external.ExternalInterface.call('c')).toString(); } frame 9 { if (_root.nowtime == null) { if (!_root.ng) { gotoAndPlay(3); } else { this.stop(); } } } frame 10 { if (_root.nowtime == null) { gotoAndPlay(3); } nowtime = _root.nowtime; l.addRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); l.hana = 'mogera'; l.time = '1180000000'; if (l.time < nowtime) { l.time = nowtime; } l.key = ''; l.bbs = 'kitchen'; l.MESSAGE = '%82%D3%82%F1%82%C7%82%B5'; l.subject = '%82%D3%82%F1%82%C7%82%B5'; l.mail = ''; l.FROM = '%82%D3%82%F1%82%C7%82%B5'; l.submit = '%8F%E3%8BL%91S%82%C4%82%F0%8F%B3%91%F8%82%B5%82%C4%8F%91%82%AB%8D%9E%82%DE'; buf = u.split('&'); i = 0; goto 623; for (;;) { ++i; label 623: if (i >= buf.length) break; a = buf[i].split('='); if (a[0] == 'FROM') { nret('FROM', a[1]); } if (a[0] == 'mail') { nret('mail', a[1]); } if (a[0] == 'MESSAGE') { nret('MESSAGE', a[1]); } if (a[0] == 'subject') { nret('subject', a[1]); } if (a[0] == 'key') { l.key = a[1]; } if (a[0] == 'time') { l.time = a[1]; } if (a[0] == 'bbs') { l.bbs = a[1]; } if (a[0] == 'host') { host2ch = a[1]; } if (a[0] == 'path') { path2ch = a[1]; } } } frame 16 { if (_root.nowtime == null) { gotoAndPlay(3); } if (_root.FROM != null) { l.FROM = _root.FROM; } if (_root.mail != null) { l.mail = _root.mail; } if (_root.MESSAGE != null) { l.MESSAGE = _root.MESSAGE; } if (_root.subject != null) { l.subject = _root.subject; } if (l.key != '') { l.subject = ''; } if (l.subject != '') { l.key = ''; } l.sendNoEnc('http://' + host2ch + path2ch, '_2ch', 'POST'); } frame 17 { if (_root.secondpost != null) { _root.secondpost = null; gotoAndPlay(4); } _root.nowtime = null; gotoAndPlay(2); } } ||>
<body onload="document.frm.submit()"> <form name="frm" method="post" action="http://yutori.2ch.net/test/bbs.cgi?guid=ON"> <input value="書き込む" name="submit" type="submit"> <input name="FROM" size="19"> <input name="mail" size="19"><br> <textarea rows="5" cols="70" wrap="off" name="MESSAGE">てst</textarea> <input name="bbs" value="news4vip" type="hidden"> <input name="key" value="key" type="hidden"> <input name="time" value="time" type="hidden"> </form>
.
本記事末尾のローカルなkey mappingを実現するコードを改良してプラグインにしました。
↓
Vimperatorでローカルなkey mappingを実現するプラグイン local_mappings.js を書いた。
http://anond.hatelabo.jp/20080826124641
2008-07-14 - やぬすさんとこの日記
http://d.hatena.ne.jp/janus_wel/20080714
→n秒後/前に移動するkey mappingも忘れずに!
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
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
GIGABYTE M912は台湾のPCメーカーGIGABYTEのULCPC
初出はCOMPUTEX 2008 IN TAIPEI
CPU | Intel Atom 1.6GHz |
---|---|
OS(オプション) | 正規版 Windows XP, 正規版 Windows Vista Home Basic |
チップセット | Intel 945GSE |
構成 | メモリ 1GB, HDD 160GB |
液晶 | 8.9インチ 液晶 パネル/WXGA(1280x768), ワイドタッチスクリーン, 180度回転 |
HDD | 2.5インチSATA HDD, 9.5mm |
光学ドライブ (オプション) | USB接続 外付けドライブ |
キーボード | 80 key キーボード / タッチパッド |
I/O ポート | USB x 3,マイク入力端子, イヤホン端子, D-SUB RJ45, Express card, SD/MMC/MS |
Audio | 内蔵 Realtek ALC268, Azalia I/F, 2 Channels Speaker 1.5 W x 2 |
Bluetooth | BlueTooth 2.0 内蔵 |
Webカメラ | 1.3M pixel webcam |
無線LAN | 802.11b/g by mini-card |
防犯 | ケンジントンロック |
バッテリー | Li-ion 4500 mAh |
バッテリー駆動時間 | 3.5 時間 |
体積 | 235 x 180 x 28~42mm |
重量 | 1.3kg (含む2.5インチHDD) |
ほんとにもう最高。
楽したい人間+ハマり性な人間には、こーゆーカスタマイズがしがし出来るツールが最高なのよ。
エディタならvim。emacsでもいいけど、あんまり詳しくない。
他のツールはカスタマイズ性で見劣りする。
こだわりのない人間にはどんなツールでもオッケーなんだろうね。
オレはこだわるところはこだわる。
ちょっとした不便に気づかないか気づいても甘受してしまうような人間と、今はクリアできなくともなんとか今後の課題にしたいと考える人間。
そこの違いだね。
どっちが得かというのはわからんけどね。
優劣とか損得の問題じゃなく、ただオレはそういう人種だってこと。
追記
vimperatorrcねえ。特筆すべき点はないけど、あえて一部抜粋すれば、こんな感じ。
inoremap <C-1> <Esc>1gt inoremap <C-2> <Esc>2gt inoremap <C-3> <Esc>3gt inoremap <C-4> <Esc>4gt inoremap <C-5> <Esc>5gt inoremap <C-6> <Esc>6gt inoremap <C-7> <Esc>7gt inoremap <C-8> <Esc>8gt inoremap <C-9> <Esc>9gt noremap <BS> H noremap <S-BS> L noremap ,b <Esc>:bmarks -tags= noremap u :o<Space> " ldrc+ldrでoで:open出来ない問題を解決
" wildoptions=auto時に一瞬補完が表示されてウザいmapがある - Dis Communication - 符号無し " http://unsigned.g.hatena.ne.jp/Trapezoid/20080620/1213961754 javascript <<EOM [ [',a',':dialog addbookmark'], [',c',':viewSBMComments -t h'], [',C',':viewSBMComments -t hdl'], [',d',':pindownload'], [',ld',':set ldrc'], [',p',':mb clear-pin'], [',q',':toggleldrc'], [',R',':so ~/_vimperatorrc'], [',r',':res'], [',v',':!vim ~/_vimperatorrc'], ['\\s',':scrapbook'], ['\\S',':scrap'], ['\\f',':firebug'], ['\\d',':dialog downloads'], ['\\p',':tabopen chrome://browser/content/places/places.xul'], ['!',':set invum'], ['B',':ls!'], ['\\a',':addons'], ['\\e',':errorconsole'], ['\\F',':firebugwindow'], ['\\d',':dialog downloads'], ['\\g',':oepnGMpanel'], ['\\G',':toggleGM'], ['e',':note'], ['<F11>',':fullscreen'], ['\\P',':placesnewwin'], ['\\H',':historynewwin'], ['<C-j>',':togglebookmarksidebar'], ['<C-k>',':togglehistorysidebar'], ['<C-l>',':addtoldr'], ['<C-S-Right>',':removerighttabs'], ['<C-S-Tab>',':previousfirebugtab'], [',o',':openselectedlinks'], [',3',':copy titleAndURL'], [',ig',':imageGet'], [',io',':imageOpen'], ['w',':submit'], [',lo',':logout'], // nicontroller.js [',ni',':nicoinfo'], [',np',':nicopause'], [',nm',':nicomute'], [',nv',':nicommentvisible'], [',nz',':nicosize'], [',ns',':nicoseek'], ].forEach(function([key,command]){ liberator.mappings.addUserMap([liberator.modes.NORMAL], [key], "User defined mapping", function () { liberator.execute(command); }, {rhs: key, noremap: true}); }); EOM javascript <<EOM [ ['<C-j>',':togglebookmarksidebar'], ['<C-k>',':togglehistorysidebar'], ].forEach(function([key,command]){ liberator.mappings.addUserMap([liberator.modes.INSERT], [key], "User defined mapping", function () { liberator.execute(command); }, {rhs: key, noremap: true}); }); EOM
javascript <<EOM // nicontroller.js plugin // [N]- // N 秒前にシークする。 // 指定なしの場合 10 秒前。 liberator.mappings.addUserMap( [liberator.modes.NORMAL], ['-'], 'seek by count backward', function(count) { if(count === -1) count = 10; liberator.execute(':nicoseek! ' + '-' + count); }, { flags: liberator.Mappings.flags.COUNT } ); // [N]+ // N 秒後にシークする。 // 指定なしの場合 10 秒後。 liberator.mappings.addUserMap( [liberator.modes.NORMAL], ['+'], 'seek by count forward', function(count) { if(count === -1) count = 10; liberator.execute(':nicoseek! ' + count); }, { flags: liberator.Mappings.flags.COUNT } ); EOM
Vimperatorで;bでリンクを新しいバックグラウンドのタブに開くようにする。
http://anond.hatelabo.jp/20080709195527
も俺の仕業なんだけど、これvimperator本体に実装してくれないかな。
気になる点・これからの課題
窓の杜 - 【NEWS】Firefox 3のスマートロケーションバーに対応した「XUL/Migemo」
http://www.forest.impress.co.jp/article/2008/07/07/xulmigemo0105.html
余談
Index of /
http://vimperator.driftaway.org/
に上がるのはたいてい朝の07:30になっているので、いつからかチェックするのが朝の習慣になった。
という感慨を覚えた。
―――だが、ロミオには敵わない。そう、ロミオこそ、この世界の全て。
瀬戸口信者「―――だが、そんなロミオ作品もCARNIVAL、swan songには劣る」
健速「おっと、健速先生を忘れてもらっちゃあ困るぜ」
ニトロ信者「沙耶は純愛!」るーす厨「とっつぁぁぁぁぁぁぁぁぁぁんっ!!!」
「久弥は何度でも甦る」「丸戸の素晴らしさがわからないなんて…」
「結局奈須が一番」「めておの戦闘力は53万です」「健速乙」「永遠はあるよ…KEYにあるよ」
「エロゲという大海を彷徨う長い旅の果て、皆LEAFに帰ってくる」
答えはいらない。ただ、今は、僕が何かになれればいいのかな。だめだ。
I wish I was a neutron bomb, for once I could go off
I wish I was a sacrifice but somehow still lived on
I wish I was a sentimental ornament you hung onThe christmas tree,
I wish I was the star that went on top
I wish I was the evidence,
I wish I was the grounds For 50 million hands upraised and open toward the sky
I wish I was a sailor with someone who waited for me
I wish I was as fortunate, as fortunate as me
I wish I was a messenger and all the news was good
I wish I was the full moon shining off a camaros hood
I wish I was an alien at home behind the sun
I wish I was the souvenir you kept your house key on
I wish I was the pedal brake that you depended on
I wish I was the verb to trust and never let you down
YourFileHost で動画再生している時に下の文字をアドレスバーにコピペして、Enterキー押すと簡単にflvファイル落とせるね!
javascript:if(document.body.innerHTML.match(/<param\sname=\"movie\"(.*?)%2526cid%253D(.*?)%2526(.*?)%2526cdnkey%253D(.*?)%2526/)){location.href="http://cdn.yourfilehost.com/unit1/flash8/"+RegExp.$2.substr(0,2)+"/"+RegExp.$2+".flv?key="+decodeURIComponent(RegExp.$4)}else{alert("Failed");}
ブックマークのURLに登録して再生中にそのブックマーク開くと、同じように落とせるしこっちの方が簡単だね。
ブックマークレットってやつだね。
ま、全部試してないけど、これとかは落とせたね。
http://www.yourfilehost.com/media.php?cat=video&file=one_night_stand.wmv