「DOM」を含む日記 RSS

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

2014-08-10

ニコ動PC版の画面遷移ってクソだよな

クソだと思う理由はリンククリックしても素直に遷移させないから。これに尽きる。


おかげで一度見た動画でもランキングでは訪問済みにならなくて、何回かクリックしちゃってうぜークソが!ってなる。

マイリストなんかも、もうこの動画つまんねーから次っていう気持ちになってるのに、自由の効かないマイリスト検索ページに飛ばされてイラッと来る。動画見せる意味ないからそのままマイリスト検索ページに飛ばせろや!無意味機能落としたページをDOMいじって見せるみたいな変なことしなくていいんだよ!クソが!

あと、関連動画な。マイページから飛んだらそのマイページリストが関連動画になって、それを連続再生できたりする。だが、テメーの仕様がクソすぎてだめだ!マイリストなんかシリーズモンならナンバリング順にみたいにきまってんだろ!なんで逆順だよ!マイリスト並んでる順か!それなら逆だぼけ!



ふん、つまらないことで増田を汚しちまったな・・・すまん。しかし、俺のニコ動への愛は本物だとわかってくれたと思う。

ようは、ニコ動GINZAあたりからプレーヤー機能追加(改悪)がひどすぎると思っている。

運営するために金を集めるための機能追加はある程度必要なこともわかっているが、工数もかけているだろうに、良かれと思ってユーザー不利益なことばっかしてるなーっていうの、マジクソ。

いや、良かれとも思ってないだろ、あれは開発者が新しいことやりたいからっていうんで、取り入れちゃった要素だと思う。だからこそディレクションユーザーのためになってるかどうかの判断しろっての。

マジでコメント機能コミュニティはいい感じになってるのに、すごくもったいない

2014-05-23

Xvideosサムネを取得するAPIが使えなくなったので、急いで自作した

みなさん、こんにちは

爆速を目指してエロサイトを作った者です。

爆速のエロサイト作ったったwww


XVIDEOSサムネが取得出来なくなった

XVIDEOSサムネイルを取得するWeb API作りました

http://erokenji.hatenablog.com/entry/2014/02/02/190129

俺が作ったこのサイトでもこのWeb APIを利用させて頂いていたのですが、昨日から急に利用が出来なくなりました。(サーバーダウン?)

このままだと更新作業に支障が出て来るので、劣化版ですが緊急で同様のAPI自作しました。

エロサイト製作されている方は俺よりも技術力をお持ちと思いますので必要無いかとは思いますが、もしかしたら困っている人が居るかもということでノウハウを共有します。

必要な物

プログラムの流れ
  1. PHPGET動画URLを取得。
  2. GETしたURLからサムネURLスクレイピングして、最後の【数字.jpg】の部分を【0~30.jpg】にして配列に格納。
  3. 格納した配列json_encodeでJSON形式に変換する。
  4. 変換したJSONecho関数で表示させる。


最後

WebAPIとして一般公開したいのですが、まだ完成度が低く自分1人で使うだけでも重いので、作成方法ノウハウとして公開しました

もしもこのままオリジナルAPIが復旧しない場合は、別途サーバーを用意してAPIの公開・もしくはソースの配布を行いたいと思っていますので、改良方法作成ノウハウをご存知のかたは是非トラバブコメをお願いします。

Xlist : http://xlist.info

2014-04-16

いかに道具が良かろうとも

ルートIDセレクタを使われてひ孫ぐらいまで親子関係DOMセレクタはさみつつ持っているようなCSSを作られて、豚に真珠、猫に小判、馬鹿にSassという言葉を思いついた次第。

どれだけ良い道具があっても、知恵がないなら無駄だなって思った。

2014-03-26

4月から社畜になる文系東北大生が3ヶ月でエロwebサービスを作った


3月で東北大学卒業して、4月から企業社畜となる22歳です。

文系学部出身なので、ITやらプログラミングの知識は完全に独学です。

特にITに興味を持ってはいなかったのですが、就活が終わったあたりに

映画ソーシャルネットワークとかを観たりしてプログラミング勉強しようと思い立ちました。

そんで実際に勉強し始めるとなかなか興味が持てる分野だったので、去年の秋の試験基本情報技術者を取ったりもしてました。

でもここまでひと通り勉強し終えた時点で、このあとどうしよう?ってなったんですね。

HTMLやらPHPの本を写経して、『やったー、Hello,World!を100回分表示させたぞ!』なんてやっぱりすぐ飽きるわけですよ。

プログラマって毎日こんなことしてんの?と思ってネットを漁ってみると、色々と面白い情報をはっけん!

  http://anond.hatelabo.jp/20101203150748

  http://anond.hatelabo.jp/20130120190550

  http://anond.hatelabo.jp/20130122180847

やっぱ何かを創ってなんぼだよね!

ということで人生最後冬休みから構想を練り始め、今年に入ってから本格的にwebサービス作成に取り掛かりました。

ちなみに本記事タイトルは『京大画像処理を学んだ僕が本気でエロWEBサービス作ったった』をリスペクトさせて頂きました。

この人はIT関連が専門みたいで、創ったものレベルが違うんですけどね。まぁキャッチータイトルにしたかっただけです。

目標

卒業までに完成させる』ことを目標としていました。

やはり社会人になるとなにかと時間が限られてしまうと思うので、

多少未完成でもまずは公開してみて少しづつ付け足していこうと。

結果として、この記事を書いている時点でお問い合わせフォームとかを実装してませんし、

他にもいろいろとやりたい機能をとりあえず諦めざるを得ませんでした。

今後頑張ります

事前知識

今年の1月時点での自分の知識を大まかに説明すると、

HTML → 基本は分かる。でもdivとかをうまいこと調整するのは苦手

CSS  → ぶっちゃけあんま理解してない。今回の創作物もtwitterbootstrapに頼っちゃった

PHP  → 基本は分かる。forとかforeachとかwhileあたりが使えるくらいだけど、実際それで何とかなったしこれからもっと勉強するし

javascript → たしか一番初めに勉強したけど、もう忘れた。今回のサービスにも使ってない。

まぁこんなもんです。

創作物

マイナーAV女優もっと出会おう!

『未痴との遭遇』

http://michi-ai.com/minor/

やっぱりエロいのだとモチベーションも続くし、やっててたのしいかなぁと思いまして。

製作の流れ

1.全体像の把握

基本情報技術者を取得したんですが、サーバーとかFTPとかの単語をあまり理解してなかったんですよね。

具体的にどうすればホームページwebサービスを公開できるのかを理解するようにしました。

上に書いたようないわゆる『つくってみた』系の記事も沢山読みました。

ふむ、手っ取り早く作るにはフレームワークとやらがいいらしい。

2.CakePHP勉強

ということでCakePHP勉強を始めました。

具体的には公式サイトブログチュートリアルから入って、『CakePHP 入門』とかで検索して出てきたサイトをいろいろとまわりました。

覚えることは多いですが、確かに便利なので頑張って修得することをおすすめします。

まぁ私もあんまり分かってないとこがほとんどですけど。

とりあえずサイトの作り方はわかったので先に進む。

3.DMMAPI勉強

APIを利用したサービスがたくさんあったので僕のサイトでも使ってみようと思いました。

勉強ってほどのものではないですが、DMMAPIコードを公開しているサイトを参考にしました。

DMMサイトの説明だけでは初心者は絶対わからないよあれ。

4,スクレイピング勉強

僕の創ったサイト必要データAPIでは効率よく取得できないことがわかったので、

DMMサイトスクレイピングして必要データを集めることにしました。

Simple HTML DOM Parser ってやつを利用。

これは参考になるコードネットにいっぱい落ちてる。

5.メイン機能搭載

ここからメインとなる機能を作り始めました。

まずはAPIスクレイピングを利用してデータベース必要データを集めました。

スクレイピングうまいこといかなかったり、なぜかデータが重複しまくったりといろいろ苦労はしましたがデータベースはなんとか完成。

その後、メインページを作成して、ランダム表示ができるようなスクリプトを書く。これは簡単。

6.他のページの作成

メイン以外のページを作成

twitterbootstrapもここで導入。

でも間に合わなそうだったので、目標達成のためにとりあえず飛ばすことに。

7.ドメインサーバー

ドメインはお名前.comで取得。

特に希望のものはなかったのですが、まぁそれっぽいものを購入。

問題はサーバーですよ。

初めはGMOクラウドVPS無料お試しをしたのですが、これがまた難しい。

ネットでいろんな情報を探して、試して、動かなくなって、OSインストールって流れを5回ほど繰り返して断念。

結局FUTOKAのレンタルサーバー契約しました。こちらは非常に扱いやすくて、らくちんです。

8.公開

最後ファイルサーバーに乗っけて公開完了です。

こんなしょぼいサイトでも公開できただけでうれしいものですね。

約3ヶ月の苦労は無駄ではなかった。これで僕もクリエイターの仲間入りだ。


webサービスに興味を持ったひとへ

文系の僕でも3ヶ月でひとりでwebサービスの公開まで漕ぎ着けることができました。

この期間が長いと思うか短いと思うかは人それぞれでしょうが自分アイデア現実化させることは想像以上に楽しいことですよ。

壁にぶつかることはたくさんありましたが、不思議と辛くはありませんでした。だって楽しいから

用事がある日にも、早起きして作業することが苦になりませんでした。だって楽しいから

変に敷居の高さを感じている人がこの記事を見て、『俺もやってみよう』と感じてくれると嬉しいです。

2013-09-27

はてなブログSEO

問題があったら消して下さい。

運営側対処済みor自分勘違いならいいけど、どうなんだろう。

(1)はてなブログブログを開設して記事を書く。

(2)はてなブログで人気のあるブログを探す。「site:hatenablog.com」でググって最初の方で出るブログいいんじゃないかな。

(3)そのブログ更新されたら、とにかく最初スターを入れる。

スタークリックすると自分ブログへのリンクになるので、簡単に被リンクを増やすことになる。最初スターは★32★みたいな形になっても見えるので、アイコン引用スターの入れ方によってはクリックしてもらいやすくなる。

と思ったけどダメかもしれない。

スターの表示はDOMでやってるみたいだから普通にHTTPで聞いた生HTMLには反映されないのでGoogleパーサたんは認知してくれない気がする。

でも、その割りには今年に入ってGoogleでの扱いが急に優遇されたんだよな。

Googleシステムも近く変わるらしいしもうダメかもしれないけど、青春の証として増田に残そうと思った。

※万が一spamスター行為が増えたらゴメン

2013-09-26

HTML5アプリケーションとかでも良いから誰か名称つけようよ

下見て思った。

http://mizchi.hatenablog.com/entry/2013/09/25/190313

そもそもこのスタイルキー名称が無いため

知識が離散して蓄積されてない気がする。

シングルページスタイルJavaScriptWebアプリケーションアーキテクチャ

ブラウザHTMLで動くよ!

JavaScriptMVCライブラリを利用するよ!

HTML5ヒストリー関連を利用するよ!

REST-APIを利用するよ!

メリットとかデメリットとかはいつか気が向いたら書く。

とりあえず今回は、乱立する名称候補たちを紹介

HTML5 Applications

 なんか一番ポピュラー。だけどカオス

 HTML5って言いたいだけのJavaScrtipt使ったスマホアプリフレームワークとかも呼ばれたり。

Rich Internet Applications

 このスタイル名称じゃなく、もっと汎用的なもん。

 HTML5とか言われる前にJavaScriptアプリケーションやるとこれになってた。

 GWTとかExtJS,YUIとか懐かしい。

Single Page Application

 アーキテクチャとしては、もっとも正解の名前なのだが、NET系界隈でしかきかん。

 ASP.NET MVC Single Page Applicationは、キー要素がかなり詰まってて、参考になる。

 このあたりのやろうとしてる奴は一度触っておくが吉

Large-scale JavaScript aplication

 JavaScriptMVCライブラリAMD等の依存モジュール管理とか

 最近流行を組み合わせて巨大なアプリを作る指針。

 英語ソースだと結構ポピュラーな感じの名前だが、指針的な匂いアプリケーションとは言わない感も。

 日本でも一時期、大規模Javascript開発とか言われてたが、Bakcbone.jsって名前に変わった。

JavaScript Web Applications

 Node.jsと被るために、このアーキテクチャの説明にはあんまり使われない。

 動物本の、

 「ステートフルJavaScript MVCアーキテクチャに基づくWebアプリケーションの状態管理

 原題は、「JavaScript Web Applications」

 これだけで、どのぐらい困ったか分かる感じ。

 ちなみに、JavascriptMVCアーキテクチャの解説本としてはありなので読むが吉

ダイナミックHTML

 マイクロソフト原理主義

 といっても、10年ぐらい前からXHRHTMLDOMほげるのは

 実はあんまり変わってない。

Thin Server Architecture

 Java界隈から出したかっただけ。oracleが呼んでた気がする。

 Struts死んだけど、JSFでやるの?JSF無理筋だから違うフレームワーク作るの。

 JSFみたいな抽象化使い始めると、コボルみたいにJava世界に閉じそうだけど大丈夫なの?

JavaScriptMVC

 同名のライブラリがあるせいであまり使われない名称

 このあたりのライブラリ使えば、簡単にこのスタイルアプリ作れると思ってるでしょ?

 残念ー、あくまでもMVC構造しか提供しないんすよー

Backbone.js

 上記の、キー検索ワード

 ライブラリ名称なのだが、背負ってるものは、大体この界隈全て

 だけど、使えば、この界隈のアプリが簡単に作れるかというと、そうでもない。

と、まあ名前はいっぱいあるけど、知られてないという感じもする

2013-02-11

無職になって暇だからWebサービス作った

もうすぐ30歳になるのに、昨年末職場がなくなりハローワークに行っても求人が無いので

PHP ruby Nginx WordPress Bootstrap を使ってWebサービス作りました

作ったサイト

SKE48過去ブログ

http://skeblog.48matome.com/

名古屋栄を拠点に活動しているアイドルグループ

SKE48オフィシャルブログを保存して表示するサービス

なぜ作ったのか

今までバックエンドしか作ったことがなく、フロントエンドをやりたかった。

趣味でやっていて目標の物を作ったら満足し、継続してやらない。

なので今まで覚えてた事を忘れて一からやり直す事が多かった。

じゃあ。仕事決まるまで毎日触ってればいいんじゃね?

とゆう勢いで…

Rubyも覚えたかった…

構成

Bootswatch

PHP Simple HTML DOM Parser

Mechanize

スクレイピング

■対象ブログ仕様

  • 最新記事のみ無料で閲覧可能
  • RSSで全文を取得出来ない。

スクレイピングしなきゃ!

いつもスクレイピングSimple HTML DOM Parser

メモリとかエラー処理をしないと。

ここでRubyに同じようなのが無いか検索

http://t-taira.hatenablog.com/entry/20120429/1335658939

「なにこれRubyすごいこんな数行で」

ここからドットインストールRuby勉強しました。

Rubyの読みやすさと書きやすさに感動。

RubyスクレイピングしたデータMYSQLに保存までは完成。

どうやって表示しよう…

次はサイトをどうしようかと考え…

cakePHPかな…

Zend Frameworkかな…

いや!ブログ掲載するんだからCMSだ!

WordPressに決定。

デザイン

一番時間がかかった…

デザインは昔からまったく出来なかったので Bootstrap に。

そして検索して見つけたのがBootstrapのテーマ

  • Bootswatch

http://bootswatch.com/

デザインが出来ないから仕方ない!

http://dotinstall.com/

ドットインストールでBootstrapを勉強しました。

WordPressテーマ

デザインWordPressテーマに変換

http://webdesignrecipes.com/first-time-wordpress-origin-theme/

ここを見ながらテーマに落としていくのは簡単でした。

カテゴリでページングなどするために関数を追加

http://elearn.jp/wpman/

WordPress初めてなのですごく参考になりました。

Webサーバー

Apacheテスト環境テストすると表示が遅すぎる…

nginx高速化出来るみたい。

http://kray.jp/blog/wordpress-tuning/

http://tech.aainc.co.jp/archives/3022

nginxシンプルな設定ファイルに感動

まとめ

Webサービスを作って公開するのが、こんなに楽しいとは思わなかった。

特に今回作成したもの自分必要とするものだったので。

次はCakePHPとかフレームワークを覚えて新しいサービスを作りたい。

ruby on railsもいいな

でも、早く再就職したいです…

2012-11-18

アダルト動画を配信するtumblrbotを作ってみました

今回、仕事の外でサイトを公開してみました。

目標としてはとりあえず新しそうなことをやってみるということで作りました


作ったサイトは2つ。

えっちなハイ!ムービー」(通常のアダルト動画サイト

えっちなハイ!ムービー in tumblr」(えっちハイムービーtumblr bot


えっちハイムービー比較普通サイトですが、

えっちハイムービー in tumblrbot作りに挑戦してみたのとtumblrでの動画の配信を試してみました。


技術的にはえっちハイムービーベースLAMP

言語・・・php

フレームワーク・・・codeigniter

スクレイピング・・・Simple HTML Dom

サイトデザイン・・・bootstrap

絞り込み・・・solr

サーバ・・・Apache

データベース・・・mysql

といったところです。


自分が知らなかっただけかもしれませんが、

比較的目新しかったのはtwitterのbootstrapで、

これでcss周りがだいぶ楽になりました。

自然レスポンシブ対応にもなったので

スマホでも見ることができるようになっています


solrはそこまで必要があるわけではなかったのですが、

前にも使っていて割とすぐに実装できそうだったので作りました

絞り込みで使っています


フレームワークcodeigniter特に本を買ったりするわけでもなく

公式サイトマニュアルを見てすぐに使えました。


えっちハイムービー in tumblrの方は

えっちハイムービーにある動画データを読んで

tumblrapiを介して配信しています


技術的にはOAuth必要になります

手順に何通りもバリエーションがあるというわけではないので

なんとかなりました。


今回は仕事などで得た知識や経験のまとめとして一人でどこまで作れそうかやってみました。

今後もまた思いついたものをちょくちょく作ってみたいと思います

サイトは両方とも18禁ですが大人な方はもしよろしかったらご覧下さい。

えっちなハイ!ムービー

えっちなハイ!ムービー in tumblr

2012-05-28

http://anond.hatelabo.jp/20120526143535

カネの力ねぇ。

デファクトになるにカネは必要だが、カネを得るには良い所がなきゃダメだろ。

つか、言語言語ってやる事出来る事は五十歩百歩だろ。要はやり易いか否か。

それ決めるのはライブラリライブラリ語らず何語れっての?

後は文法が単純単機能なことだな。言語としては単純で、標準ライブラリが多機能でそっちで何でもできる。それが一番。

無駄に文法多くて自由に書けるとかいったらカオスってクソになってくに決まってるだろ。

後付けライブラリが沢山、自由に選べる作れるってのもカオス。自由って何求めてるの?

C++はCの資産あるうちは良かったよ。でもそれだけ。あとに碌なライブラリ残さなかった。

javaライブラリに力入れてたし、文法もまあまあすっきりしてる。PHPも近い所はある。

javascriptダメだ。ただDOMがある、それだけだ。

pythonライブラリがそこそこいい。ただ、言語自体は下手に色々ありすぎ。

それでもperlよりマシ。あれはCとshしかなかった時代からこそのもの

rubyrailsがなければ何もなし。あれがすべて。

perlの後釜なんにするの?python以外あるの?つか、日本に選択権ないって言ってるじゃん。

デファクトなっちゃうんだから拒否権ないつーの。

つか、javascriptDOMなきゃ意味ないし、javaVMなきゃ意味ないし、PHPHTMLなきゃ意味ないし、

C#Microsoftなきゃ意味ないし、Objective-CAppleなきゃ意味ないし。

棲み分け出来てるのに、それ以外どうするの?

つか、SQLどうにかしろよ。

2012-02-20

http://anond.hatelabo.jp/20120220164220

Flashで作るかFlexで作るかの違いだと、レイヤームービークリップ概念とか共通だから問題無いぞ?

C言語C言語

C99とANCI以前のCとか、ものすごい違うのだが?

からメンテしてるコードだと、コンパイラに「古い組み方です」的なwarning吐きまくられたりするし。

というか、CPUbit数が違うだけで別物になる処理系だしな。

たまたまActionScriptが差すものの範囲が小さいから、混同されがちだが、ActionScriptはあくまで言語であって、ActionScriptが呼んでいるFlashライブラリとは別物という解釈

JavascriptだってDOM使わない独自拡張製品もいくつかでてるしな。かならずしもブラウザDOMがなければJSというわけでもあるまい。

それだと、Flashで作るかFlexで作るかの違いについてお前が語るのはおかしくね?

まぁ、そう拡大解釈しても、

変数周りでもvar無い場合挙動の違いとか、letとか、型宣言とかあるけどなー。

とかは依然あるわけだがなー。

JScriptなんぞ、モード挙動違ったりするし。

追記: トラバ間違えた。

http://anond.hatelabo.jp/20120220160508

それを言い始めると Flashで作るかFlexで作るかでActionScriptも随分違ってくると思うけどな。

C(C++言語だってWin32なのかMFCなのか,Linuxなのか、Macなのかでライブラリが違って大きく違うがC言語C言語だ。

たまたまActionScriptが差すものの範囲が小さいから、混同されがちだが、ActionScriptはあくまで言語であって、ActionScriptが呼んでいるFlashライブラリとは別物という解釈

JavascriptだってDOM使わない独自拡張製品もいくつかでてるしな。かならずしもブラウザDOMがなければJSというわけでもあるまい。

 

言語構造は理解するものだが、ライブラリは覚えるもの

2011-12-17

Flash vs HTML5」関連話への反論は まだまだ技術者側の説明不足か

先日「Flashエンジニアが今後10年食べていくには?」というテーマを元に

Flash精通した Web 技術者達のディスカッションが行われる催し物があった。

 http://www.publickey1.jp/blog/11/flash10.html

この記事だけでは内容が省略しすぎているため

時間があれば是非録画の模様もみていただきたい。前半初頭は音量が小さいので注意。

こういった催し物は面白いなと、私はとても楽しく見させていただいた。

 http://www.ustream.tv/recorded/19073524

 http://www.ustream.tv/recorded/19074357

ディスカッションでは Flash だけではなく HTML5 についても触れている。

ディスカッション感想をディレクションや営業を行なっている知人に聞いたり、

ネット上の反応を見てみたところ以下のような意見がいくつかあった。

「『Flash好きな人』だけではなく HTML5 派の人との対談もあればよかった」

Flash 派の人の話だから HTML5 が使えないという話はいまいち参考にならない」

Flash 派』『HTML5 派』という くくりで考えてしまう人は

まだまだ多いと実感する。

パネリスト達は

過去から現在までに様々なプログラミング言語を利用し、あらゆる技術精通している。

Flash という表示媒体/環境開発がベター(時にはベスト)だと考え、

Flash をよく扱っている、という旨を話している。

Flash 以外にも色々やってます、と言っている。

最後の締めとして

Flash よりも優れたものが登場するのであればそちらに移行するでしょう、

とも言っている。

これだけの説明があったのに

ディスカッション内で触れた HTML5 に対する否定的な話は、

Flash 派』とやらのポジショントークだと目に写ってしまったのだ。

Java やら C やら objective-c やら perl やら php やら

サーバサイドからスマホネイティブ言語を用いてのアプリ制作まで

色んな事やってます、と言っても

技術者ではない人達には馴染みのない単語は耳には入らない。

技術的な事はよくわからない。

現在世の中には HTML5 を推し、合わせて Flash を否定する記事が結構出回っている。

技術者が話す専門的な用語の飛び交う話よりも

どこの誰が書いたかもわからない

HTML5 vs Flash 的な読みやすい記事に耳を傾けてしまう人はいる。

Apple 製品を好む人は「ジョブズがそう選択したのだから」と

なおさらこういった記事に目を向けてしまう。

Flash vs HTML5 の話にのせられてしまうのは、よくわかっていない人だ。」

そうあっさり切り捨ててしまうのもいいかもしれないが、

そうもいかない状況にもなってきてしまっているのが最近だ。

ディスカッション内では、

Flash大丈夫なのか?」という

ネット上の煽り記事を読み不安に思ったクライアントから連絡を受け

きちんと状況をゼロから説明するハメになってしまった、という内容があった。

似たような状況になっている人もいるのではないだろうか。

当方周辺では、

Flash は駄目だ」「Flash でなくても HTML5 ならできるはずだ」

HTML5Flash の代わりになるものだと言われている」と

クライアント、あるいは仕事先の関係会社から耳にする機会が増えてきた。

技術者の及ばないところで

ベターではない技術が選択、あるいは勧められてしまう やっかい性。

危惧した技術者達による反論記事は結構出始めているのだが

その記事は世間の目には届かない。

TV CMバンバン流れている iPhoneiPad では Flash を見ることができない

という状況に乗じた

いかげんな煽り記事の効果は絶大だ。

よくわからない人が圧倒的多数なのだ

勘違いを正すためには、今までよりもより一層

からない人達に わかるように説明、

あるいはメッセージを発信するよう心がけていかねばならないと感じる。

技術へ移行は容易い

パネリスト達のような

Flash を扱う事が可能な技術力を持ち合わせている人にとって

Flash が終わろうが、代わりの技術HTML5 やらその他何になろうが

大した影響はない。

「この文章書いている人間Flash 派なのでは?

 Flash 派の人間がそんな事言っても説得力ないな」という

ポジショントークと見られないための判断材料として、

プログラミング』についての話をしてみる事にする。

プログラミングに詳しいすべてのエンジニアはこういうだろう。

「世にあらゆるプログラミング言語があるが

 それらプログラミング言語の違いは記述の仕方が違うだけ」

「何か一つ言語を習得し

 その言語で自由に物を作れるだけのスキルを持ち合わせたならば

 別言語、別環境になろうとも移行は容易い」

Flash の事は全く知らないがプログラミングプロフェッショナルの人』

が近くにいるならば是非上記について伺ってみてほしい。

その通りだと答えてくれるはずだ。

Flash で用いられている言語は何も特別なものはない。

世にある あらゆるプログラミング言語のうちの一つである

プログラミング概念を理解している人ならば

Flash で作ったものを他の言語移植することも、

他の言語で作ったものFlashプログラミング言語移植することも容易いのだ。

ここで上記三行の「他の言語」を「JavaScript」に置き換えてみてほしい。

HTMLDOM 操作に必要な言語JavaScript である

言語は、Flash ならば ActionScriptHTML5 ならば JavaScript を用いる。

画面描画は

Flash ならばグラフィックスシンボル等を作成・配置、

あるいは用意されている描画用 APIActionScript で呼び出し、

HTML5 ならば CSS, HTMLタグ記述

あるいは用意されている描画用 APIJavaScript で呼び出す。

Flash と似たような技術として Java AppletShockwave があるが、

これらも一緒で

言語を変え、その技術に合わせた描画を行う処理を記述するだけだ。

Flash派」「HTML5派」といった具合に

Web 技術者が何かに属していて、何かには属していないかのような区別の仕方は

的がはずれている事を なんとなく感じていただけただろうか。

技術者にとっては要はなんだっていいのだ。

仕事に対し、あるいは表現したい事に対し、ベターな選択を行うだけの事なのである

PC向けゲームなら Flash

スマホ向けサイトなら HTML5

環境や表示内容に合わせ両方を採る選択もあるだろう。

パネリストの中に ActionScript好きだ、という人がいた。

これは別に

Flash が好き(製品のファン)だから ActionScript が好き、と言っているのではない。

現存するあらゆる技術比較した上で

ActionScript が優れたプログラミング言語だと判断しての発言なのだ

将来的に HTML5 が格段に進化する日がくるならば

HTML5 を選択するだけの事であり、

HTML5 が廃れて別の技術が登場するならば

その別の技術を選択し、

Flash より優れた技術が登場しなければ Flash を使い続ける、

ただそれだけの事なのである

対立どころか むしろ近い存在

もう少し突っ込んだ話をすると

Flashプログラミング言語である ActionScript(ActionScript 1.0)と

HTML 表示制御を行う言語 JavaScript は 実は同じ言語仕様である

ECMAScript』という単語で調べてみてほしい。

FlashHTML5 は対立するもの」と考えていた人、

あるいは ActionScriptJavaScript を触れたことがない人にとって

「え?そうなの?」と思う人もいる事だろう。

JavaScript は大規模開発に向いていない、という話は聞いたことがないだろうか。

同様の言語仕様である ActionScript 1.0 はこの問題を解決するため

ActionScript 2.0 から ActionScript 3.0 へと進化していった。

FlashHTML5 とで同等のもの制作する場合

Flash は開発がし易い、という話がよく挙げられるが

その理由の一つがこれである

現行の JavaScriptActionScript 1.0 は ECMAScript 3 準拠に対し、

ActionScript 3.0 は ECMAScript 4 準拠である

言語として進化しているものFlash採用しているので

開発は抜群にし易い。

ECMAScript 4 準拠の JavaScript も登場する日もあったかもしれなかったのだが、

Adobe はここで大失敗してしまった。

ECMAScript 4 標準化白紙

ECMAScript 4 は無かったことになってしまったのだ。

ActionScript 3.0 で作成したプログラム

そのまま HTML ブラウザで動作する事はなくなった。

技術者にとってコストを削減できるための手段の一つを

政治的な思惑によって潰されてしまった悲しい過去の話である

ちなみに JavaScript は大規模開発に向いていない、という事に対し、

最近では Google が新言語 Dart というものを開発している。

位置づけとしては ActionScript 2.0 に近いと比喩した人もいる。

ActionScript 2.0コンパイルActionScript 1.0 に変換されて出力される。

Dart も同じく JavaScript 変換機能を持つ。

今後

先の事は誰にもわからない。

HTML5 が成長するとは必ずしも言えない。

技術者は身を持って知っている。

ブラウザの足並みが揃ったことは過去一度たりともない。

表示と動作の差異、技術者はずっと苦しめられてきている。

めんどくさい。コストがかかる。

日本では IE6呪いはまだまだ続く事だろう。

現状の HTML がひどい状況なのだから

HTML5 も同じ道を辿るのでは、と言われてしまうのも仕方がない。

実際に HTML5 の各ブラウザの実装具合はバラバラである

Flash はといえば、

今でも 10年以上前スクリプト言語 (ActionScript 1.0 よりも前の言語)で

携帯向け Flash を作るはめになっている開発者が多い。

携帯向け Flash Player 開発中止、とある

Flash が動作するブラウザがいつまで携帯に搭載され続けるのか、

まだ誰にもわからない。

今後も当面携帯向け Flash を作り続ける事になるのかもしれない。

この古い言語での開発はとても苦痛であるが、

携帯向け Flash は一つの容量が小さいというのが救いである。

IE6 対応 HTML サイト制作にせよ、携帯向け Flash 制作にせよ

10年以上前ものが現役とは妙な話である

しか技術者対応するのだ。

状況に応じて何を選択するかを判断できるほどの技術力を身につける事

それが一番重要である

これから Web技術者を目指す、という人は

HTML5 なり Flash なり何を学んだっていい。

選択する技術に何ができて何ができないのか、

どの技術を組み合わせるとよいのか、

自ら判断できるようになった時、一人前の Web 技術者になったと言えるだろう。

一つ何かをモノにしてしまえば前述の通り移行は容易い。

今何かを勉強中の人は周りの声に流されず、

それを極めるくらいまでとことん勉強してほしい。

続けていくと見えてくるはずだ。自信という名の悟りの道が。

ディスカッション感想

気になった点をいくつか。

現状の HTML5 の実装具合のバラバラさに対し、

「(HTML5の)表示の差分を埋めてくれる何かが登場するかもしれない」

と言う発言があった。

言った当人も会場にいる人達も、きっとこう思っただろう。

「それってなんて Flash Player?」と。

HTML5Flash の真似事をしてますよね」

「あれはやめたほうがいい」という発言があった。

おそらく HTML5 canvas の事であろう。

この意見に対し「ムッ」と来てしまった人がいるかもしれない。

勝手に注釈するのであればこの発言は

Flash で作られた重たい WebHTML5 でまた再現するつもりなの?」

という皮肉であろう。

2011-08-04

独学のプログラムエロ動画検索作ってみた

【お知らせ】2011/09/07

新しいエロWEBサービス作りました

http://d.hatena.ne.jp/uniqueweb/20110906/1315285545

プログラムは全く得意じゃないけれど最近よく見かけるようになったエロ動画検索自分でも作ってみたくて頑張ってみました。

近年、インターネットの普及によりエロ動画が自宅で簡単に見れるという素晴らしい時代になりました。

自分が若い頃はインターネットなんてものはなくエロビデオが主流でドキドキしながらレンタルビデオ屋に行き、可愛い女の子レジにいない隙を見計らってお兄さんにパッケージを伏せて空箱を渡しビデオを借りたものでした。

お兄さんにビデオ空箱を渡そうとした時に可愛い子がレジに戻ってきて焦って渡すのをやめてものすごく変な動きをしながらエロビコーナーに引き返していくなんてことも多々ありましたw

僕のお気に入りといえば「白石ひとみ」や「あいだもも」といった女優でよく借りてました。エロビを借りるということがものすごく恥ずかしい時代?年頃?でカモフラージュ普通ビデオと一緒に借りるということもしていました。それはそれは大変な思いでオナニーしてたんです

しかも、ビデオデッキ自体が貴重な時代でリビングに一台しかないのが当たり前でした。

深夜家族が寝静まってからヘッドフォンビデオを抱えリビングに行き暗がりの中でヘッドフォンテレビ差し込んでビデオ再生ボタンを期待に胸をふくらませながら押したものです。いいシーンを何回も見るためにビデオを巻き戻すんですが、ビデオを巻き戻すガチャガチャンという機械音で家族が起きてこないか?とかそれはそれはドキドキしながら見てました。一仕事終えたあとヘッドフォンを外したらジャックが外れていて大音量で喘ぎ声が響き渡っていたなんてこともありました。誰も起きてこなかったのは優しさなんでしょうか?w

さて、大分前置きが長くなりましたがエロというものものすごい技術発展させるものだと思いますエロのおかげで日本ビデオは普及しエロのおかげで日本インターネットものすごく普及したと言っていいと思います自分エロを通して技術の発展に貢献し自分自身のスキルアップになれば。という高い志を持ってこのサイト制作しました。決して自らのオナニーライフの充実と性癖を充たすため作ったわけではありません・・・

※2011.08.07 利用中のサーバーに障害が発生しているようで現在サーバー接続できない状態となっています・・・

※2011.08.07 23:53 復帰した模様です

サイト名:ヌキネーター

サイト名の由来は抜きネタからきています。抜きネーター、ヌキネーターという感じです

エロサイト制作工程日記にしてみたんで良かったら読んで下さい。そしてこのサイトを使って夜いろいろと励んでくれたら嬉しいです

では制作日記を書いていきたいと思います

サーバー選び

まず前提条件としてお金ほとんどかけたくない。アダルトサイトであるということから

サーバー選びからはいりました。

月の予算は5000円以内で考えていたのでけっこう探すのが大変でした。

日本アダルトサイトを許可している所はかなり限られていてさらにやりたいことができるのは

専用サーバーVPSしかないのでそうなると専用サーバー予算オーバーなので

VPSで探すことになり検索しまくってはじめに見つけたVPSはKAGOYAのVPSだったのですがβ版で募集を締め切っていて泣く泣く諦めました。

KAGOYAはかなり評判がいいみたいなので使ってみたかった。

次に見つけたのが○○○VPS海外サーバー日本語サポートがあり転送量の制限なしディスク容量100G

月1300円程度で借りれるということで初期設定費用に5000円程度かかりましたが借りてみました。

結果、ここは最悪でした。

  • 通信が頻繁に切れる
  • 激重
  • 借りて一ヶ月もしないうちにサービス継続が困難になりそうなのでIPが変わるとかメールがくる
  • まりに通信環境が悪すぎるとメールすると環境調査に協力してくれとメールがくる
  • 時間をかけて沢山の項目を調べて返信するも全く返答がない。

まりの酷さに1ヶ月で解約。

よく調べてみたら評判がものすごく悪い某VPS再販らしいです

お金時間をドブに捨てました・・・

もう失敗したくないと思い今度は比較的有名な海外サーバーLINODE

日本語サポートはないけれど抜群のサポートです

iptablesの設定でどうしてもうまくいかなくて拙い英語メールしてみたら

10分しないうちに返信がきました!

メールに書かれているとおりにコマンド入力したらあっさり解決。

素晴らしい!はじめからLINODEにすればよかった。

担当ブライアンはなぜか分からないけどとてもフレンドリーで親切に感じましたw

サーバー設定

LINODEは複数のディストリビューションから好きなものを選択できるので

とりあえず、64bit版を選択。

サーバー設定はほんとに面倒ですね。

一番面倒だけど重要だということで

SSH

Tripwire

chkrootkit

Clam AntiVirus

iptables

Apache

SSL

その他各種監視ツールの導入をしました。

ほんとに面倒でした。

データベース

はじめはmysqlストレージエンジンgroongaを使おうと思ったのです

初めに借りた最悪なVPSOSが32bit版だったのでgroongaがのソースが見つからずなぜかと思っていたら

どこかで見つけた記事で32bit版ではgroongaの性能を発揮しきれないということで32bit版の提供をやめてしまったらしいと書いてたので

じゃあ、sennaにするかということで最悪VPSsennaインストール

その後LINODEに変更したのでOSに64bit版を選択し念願のgroongaをインストール

しかし、調べてみると

などが理由で、結局sennaに戻して2度手間に・・・

プログラムもそれに合わせてその都度書き換えたので2度手間どころか3度手間4度手間でした・・・

senna導入はrpmでさくっといけるので簡単です

依存関係で少しはまりました。

まず

# rpm -qa | grep -i mysql

mysqlインストールされてたら削除

perl-DBIが必要なのでインストール

# yum install perl-DBI

そして下記の順番でインストール

rpm -ivh mecab-0.98-tritonn.1.0.12a.x86_64.rpm

rpm -ivh mecab-ipadic-2.7.0.20070801-tritonn.1.0.12a.x86_64.rpm

rpm -ivh senna-1.1.4-tritonn.1.0.12a.x86_64.rpm

rpm -ivh MySQL-shared-5.0.87-tritonn.1.0.12a.x86_64.rpm

rpm -ivh MySQL-client-5.0.87-tritonn.1.0.12a.x86_64.rpm

rpm -ivh MySQL-server-5.0.87-tritonn.1.0.12a.x86_64.rpm

rpm -ivh MySQL-devel-5.0.87-tritonn.1.0.12a.x86_64.rpm

my.cnfの設定をして終了

で肝心の全文検索ですデータ件数が5万件程度で少ないせいなのか、あいまい検索と比べてそれほど速さを実感できなかったです・・・

でもきっとすごく速くなったはず!

ちなみに「麻美ゆま おっぱい」で検索した場合、0.01 secで結果が返ってきました。

動画データ作成

さて、動画データ作成ですがいくつかのエロサイト制作記事でもあるようにスクレイピングということをします。

スクレイピングとはWEBサイトから特定の情報だけを取得することでネット上にあるサイトクロールして必要なデータだけを拾ってデータを作るといった感じでしょうか。

スクレイピングプログラム自体は以前にTidy関数を使って為替データ10分おきに取得するような物を作ったことがあったのでそれほど時間はかからいかなと思ったのですがけっこう時間かかりました。

スクレイピングにはTidyhtmlSQL、それにPHP Simple HTML DOM Parserを使いました。

下記のサイトを参考にしました。

phpによるスクレイピング処理入門

SQL みたいな文法で HTML を抽出する PHP のライブラリ

htmlSQLよりアツい!?jQueryみたいにセレクタでHTMLをparse(解析)する「PHP Simple HTML DOM Parser」

つの中で抜群に使えるのはPHP Simple HTML DOM Parserだったんです

ループ処理させるとメモリがすごいことになって今回のようなスクレイピングに向いてないみたいで

結局、htmlSQLTidyの両方を使ってスクレイピングしました。

両方ともPHP Simple HTML DOM Parserに比べるとうまくデータの取得ができないことが多く残念な感じなんですが他に選択肢がないので・・・

使える順に並べると

PHP Simple HTML DOM Parser

htmlSQL

Tidy

といった感じかもしれません。

おおまかにデータを取得して正規表現で特定データを抜き出しました。

広告との連携

広告にはDMMアフィリエイトを利用しています

http://affiliate.dmm.com/link.html

利用可能な物はパッケージ画像、サンプル画像(縮小)と書かれていたのでそれに従い画像を利用。

注記に※ユーザーレビュー引用いただけません。とだけ書かれているのでそれ以外は引用ありと判断して説明文とタイトルなどを利用

女優データジャンルデータDVDデータ、を紐付けたデータベース作成検索ワードに応じて検索結果に関連する商品を表示させるようにしました。

現状、売り上げ0で意味があるのか分かりませんけどw

負荷対策とか転送量とかDOS攻撃対策とか

エロサイトということで多少はチューニングとか設定とかしないとまずいかもと思い色々調べて設定しました。

やったこと

KeepAlive On

MaxKeepAliveRequests 60

KeepAliveTimeout 3

<IfModule prefork.c>
StartServers       7
MinSpareServers    5
MaxSpareServers   10
ServerLimit       30
MaxClients        30
MaxRequestsPerChild  4000
</IfModule>

様子見ということで2日間で設定してみました。

query_cache_limit=1M

query_cache_min_res_unit=4k

query_cache_size=16M

query_cache_type=1

とりあえずこんなところを設定してみましたが、爆発的なアクセスがあるわけでもないので有効なのか今のところ分かりません(-_-;)

Apache Benchでテストはしてみましたけど問題はない感じですが実際にチューニングができているか分かりません。

サイトデザイン

プログラマーとして有名なゆうすけさんのサイトgoogleを参考にしました。

シンプルで使いやすいようにしようと思いこのデザインしました。

3カラム中央可変となっています

クロスブラウザIE7、firefox3、chromeで行いました。

可変ものって作ったことなかったんですがけっこう面倒なんですね。

サイト機能

ブックマーク機能とメニューの折りたたみ機能検索結果の表示方法切替を作りました

まず、ブックマーク機能ですログインなしで気に入った動画ブックマークできるようにしました。

ブックマークに追加した動画ブックマークページで確認できるようにしました。

cookie機能を利用したらいけると思い色々調べてjquery.cookie.jsを利用。

保存したクッキー情報を呼び出してphpに渡して処理し指定要素にブックマーク一覧をloadメソッドで表示させるという感じです

$(function(){
$("#youso").load("xxx.php");
});

メニューの折りたたみ機能は人気AV女優AV女優別、人気タグなどをそのまま表示させるとずらっと長くなって邪魔だったのでつけました。

これには同じくjquery.cookie.jsを利用しました。

参考サイトhttp://blog.caraldo.net/2009/03/newjqqookiemenu.php

検索結果の表示方法切替にはZoomer Galleryを利用しました。

参考URLhttp://phpjavascriptroom.com/?t=ajax&p=jquery_plugin_zoom#a_zoomergallery

検索結果ページで表示される

[ここの画像]

××× の検索結果

44件中 1~10件目を表示

ここの画像の部分をクリックするとgoogleイメージ検索みたいに一覧でイメージ表示できるようにしてみました。

動画表示ページ

基本的に動画の埋め込みを許可しているサイトのみプレイヤー表示をしそれ以外は画像を表示し動画データリンクするようにしました。

埋め込み部分はあらかじめそれぞれのサイト対応したプレーヤー部分のコード記述しVIDEOIDの部分に置き換えるような形にしました。

XVIDEOSを例にすると

XVIDEOS場合かならず動画urlhttp://www.xvideos.com/videoXXXXXX/のようになりますのでXXXXXXの部分を

VIDEOID部分に置き換えるようにプログラムを組みました、

埋め込み部のソース

>||<object width="510" height="400" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" ><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><param name="allowScriptAccess" value="always" /><param name="movie" value="http://static.xvideos.com/swf/flv_player_site_v4.swf" /><param name="allowFullScreen" value="true" /><param name="flashvars" value="id_video=VIDEOID" /><embed src="http://static.xvideos.com/swf/flv_player_site_v4.swf" allowscriptaccess="always" width="510" height="400" menu="false" quality="high" bgcolor="#000000" allowfullscreen="true" flashvars="id_video=VIDEOID" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object>
||<

その他の動画サイトURLの一部分のデータを使っているので同様の処理をしました。

まとめ

実際の作業は2、3週間ですが色々調べる時間が多くて制作に2ヶ月くらいかかりました。

自分エロ動画検索を作ってみて有名プログラマーさん達がいかに優秀なのか思い知らされました。

皆さん思いついて数日で作ってしまうのでびっくりです

全くWEBの知識がない人で4、5ヶ月ですごいの作っちゃう人とかもいるみたいですし世の中広いな~と思います

しかし、エロサイト作りで勉強になりますね~

大分、色んな知識を得ることができました。

これからプラグラム勉強しようと思う人はぜひエロサイトから入ってみて下さい。

きっと楽しいですよ!

そんなこんなで?頑張って作ってみたエロ動画検索、良かったら使ってみて下さい。

これで少しは技術の発展に役立てたでしょうか?w

アダルト動画検索ヌキネーター

P.S エロサイトを作っていてはじめは楽しくて興奮しながら作ってたのです最後の方はエロい物を見ても全く反応しなくなりましたw

  不能ではないんですけど・・・現在も性欲が著しく減退しております・・・

  そしてスーパーpre記法がうまういかないのはなぜ?はてな匿名ダイアリー投稿全然からない・・・

  そしてそしてプログラマーさんとかデザイナーさんとかエロい人とかお気軽にお声をおかけ下さい。

【お知らせ】2011/09/07

新しいエロWEBサービス作りました

http://d.hatena.ne.jp/uniqueweb/20110906/1315285545

2011-06-10

http://anond.hatelabo.jp/20110610210351

twitterで見えてる画面は、JavaScriptで動的に生成してるHTML(つーかDOM)やからなあ。

生成した後のモノを保存するオプションがあればいいんだけど。

ちなみにFirefoxやSeaMonekyなら、Ctrl+Aで画面を全部選択して右クリックして「選択範囲のソースを見る」で画面生成後のDOMソースを出して、それをコピーしてメモ帳ペーストして保存すれば、なんとかなる。

GoogleChromeOperaでは無理かな?なんか拡張が無いのかな?

2010-03-04

SAXよりDOMの方が速いだと・・・

http://www.raywenderlich.com/553/how-to-chose-the-best-xml-parser-for-your-iphone-project

まじで!?libxmlより速いライブラリがあることも驚き。でもAndroidでも作りたいから、libxmlを使うけどね。

2009-11-28

HTMLを体系的に理解するための7仕様

はじめに

最近マークアップエンジニア志望の若者と話す機会が多いのだけれど、そこで気づかされるのは、彼らの中に過去HTML(特に90年代以前の仕様)を読んだことのあるという人が、驚くほど少ないことだ。

例えば「マーク・アンドリーセンをどう思う?」と聞くと、「アンドリーセンって誰ですか?」という答えが返ってくる。「ヨスケの独自要素で何が一番好き?」と聞くと、「見たことがありません」と言われてしまう。「ではきみは、昔のHTMLを見たことがあるの?」と聞くと、たいていが「とほほでやっていたものくらいなら……」という答えしか返ってこない。

今の若い人の間では、HTMLを体系的にとらえようという人は少ないようだ。見るのは専ら近年の話題仕様ばかりで、歴史を辿ってみたり、系譜をひもといて標準化団体ごと理解しようとする人はほとんどいない。

これは、ちょっと由々しき問題だと思わされた。HTMLは、もう長いこと(90年代の早い時期から)インターネット王者としてあらゆるWeb関連技術の上に君臨してきた。だから、Webを作ることを仕事にしたいなら、何をするにせよ避けて通ることはできない。

HTMLは、表・画像・フォーム・音楽デザインフレーム動画など、さまざまな分野においてその時代々々に達成された最新の成果を持ち寄るようにして作られてきたところがある。だから、HTMLを読まずして現代のインターネットは語れないと言ってもいいくらいだ。

もし何かクリエイティブなことをしたいのなら、HTMLを読むことは欠かせない。また、単に読むだけではなく、それを包括的・体系的にとらえることも必要だ。なぜなら、HTML包括的・体系的にとらえることによって、現代のインターネットそのものを、包括的・体系的にとらえられるようになるからだ。そしてそうなれば、Webを作ることの道理や筋道が理解でき、何かクリエイティブなことをする上で、大きな助けとなるからである。

そこでここでは、昔のHTMLをほとんど見たことがないという人や、あるいはHTMLそのものもあまり見ないという人のために、これを見ればHTMLを体系的に理解でき、現代インターネットの成り立ちや実相までをも包括的にとらえることができるようになる、7本の仕様を紹介する。

ここで紹介するHTMLは、いずれも後のWeb業界に決定的な影響を与えたものばかりだ。これらが、HTMLという標準のありようや方向性を決定づけた。この7本を見れば、HTMLというのはどのようなきっかけで生まれ、どのような変遷を辿って、どのような足跡を残してきたかというのが、体系的に理解できるようになる。そしてそれが、世界インターネット利用シーンにどのような影響を及ぼしてきたかということも、知ることができるようになるのだ。

HTMLを体系的に理解するための7本の仕様

1本目『HTML 3.0』(1995年

まず最初は、ちょっと強引かも知れないけれど、第一次ブラウザ戦争前のHTMLをひとまとめにするところから始める。

80年代末にティムバナーズ=リーの発明したHTMLというメディアは、その後『HTML 1.0』(1993年)『HTML+』(1994年)『HTML 2.0』(1995年)などの仕様で次第にそのスタイル確立していき、マーク・アンドリーセンが一大産業として発展させた後、『HTML 3.0』に行き着く。そして幸運なことに、ここに集大成されるのだ。

ブラウザ戦争前のHTMLは、これ1本だけ読めば良い。このHTMLに、戦前HTMLの全ての要素(属性)が詰まっている。このHTMLを見れば、HTMLインターネット王者としての風格、スターという存在の大きさ、作者以上にブラウザが重視される「産業」としての側面、お尻Pから終了タグ省略可へ・文字情報から画像付きへと移り変わった技術革新の変遷など、戦前HTML史やWeb業界のありようが全て分かるのだ。

このHTMLの魅力は、説明し始めるといくら紙幅があっても足りないので、ここではその一端を紹介するにとどめておく……といっても、気の利いたことを言えるわけではない。『HTML 3.0』の魅力を知るには、まずは読んでもらうこと――これに尽きるからだ。そして、もし一度でも読めば、その魅力はたちどころに理解できるだろう。

HTML 3.0』を見て驚かされるのは、現在HTMLと比べても全く遜色ないところである。破棄されてから14年の時が経過しているが、現代人の読解にも当たり前のように堪えうるのだ。それは、逆にいえばHTMLというものは、今から14年前、つまりこの『HTML 3.0』が作られた時点で、様式として一つの完成を見たということでもある。

HTML 3.0』は、HTMLという標準が到達しようとした一つの極みである。それゆえ、HTML史というものは、『HTML 3.0』以前と以降とで分けられるようになった。これ以降に作られたHTMLで、『HTML 3.0』の影響を免れたものはないからである。

2本目『Compact HTML』(1998年

iモード世界HTML史に与えた影響というのは、一般に理解されているよりもはるかに小さなものである。日本人というのは、「日本技術世界に影響を与えた」というと、なぜか鼻高々と聞いてしまうところがある。「日本ガラパゴス」という言葉は聞いたことがあっても、「それって日本人過小評価しているだけじゃないの?」と、眉に唾をしてとらえるところがある。

しかしiモードは、真に日本HTML史を塗り替えたサービスの一つである。特に、このサービスの後世に与えた影響には、本当に計り知れない大きさがある。

iモードは、ドコモメインストリームだったポケットベルが、それまでの栄華の反動で深刻な低迷期に陥っていたPHS流行後すぐの時期、そんなポケットベルに取って代わって、日本で最も輝いていた携帯サービスであった。それゆえ、広末に見蕩れ世界HTMLファンたちは、iモードWebサイトを見ることによって、失われかけていたWeb制作の魅力を再発見することにもなったのである。

iモードは、没落したHDMLに変わってモバイルWebの命脈をつなぎ止めた、言うならば救世主のような存在であった。海外モバイル陣営が営々と築きあげてきたそれまでの栄光を切り捨て、日本の後代へと引き継いだ重要リレー第一走者としての役割を、HTML史において担ったのである。

そして、そのバトンを受け取った日本の若きWebデザイナーたちが、2000年代に入って雨後の竹の子のように現れたことで、モバイルWebは鮮やかな発展を遂げる。だから、もしiモードが存在しなければ、HTMLの様相は今とは違ったものになっていたかもしれないのだ。

そんなiモードHTMLバージョンはいくつもあるのだが、中でも特に多くのHTMLファンを――取り分け日本の若きWebデザイナーたちを魅了したのが、この『Compact HTML』である。この仕様の一番の魅力は、なんといってもその大胆に構築されたW3C Noteであろう。HTML史において、これほど拡張多く適当ディテールで構成されたNoteは他にない。そのためこのNoteは、これ以降無数に手本とされ、真似され、拡張されることとなるのである。

3本目『HTML 4.0』(1997年

正字仮名の影響を受けた日本の若き日記書きたち――言うなれば「CSSコミュニティ」――が頭角を現す直前のW3Cで、HTML史に乾坤一擲の巨大な爪痕を残した1本の仕様誕生する。

この時期、情報技術進歩によって、HTMLにもさまざまな新しいテクノロジーがもらたされていたのだが、それらを十全に取り入れたばかりではなく、縦横に駆使することによって、これまでとは全く違った国際化、全く違ったアクセシビリティ体験を生み出すことに成功したのが、この仕様HTML 4.0』を勧告したWorld Wide Web Consortiumである。

HTML 4.0』は、HTML史において最も革新的な仕様の一つとなった。この仕様に初めて触れた当時のWebデザイナーたちは、そのあまりの目新しさに度肝を抜かれた。そこでは、これまで全く見たことのないマークアップがくり広げられていた。そのため、これまで想像さえしたことのなかった全く新しいHTML体験を、そこで味わうことになったからである。

W3Cの果たした一番の功績は、テクノロジーHTMLを見事な調和をもって融合させたことだろう。例えばそこでは、「スタイルシート」という新しい技術デザインと、それでレイアウトされたページが閲覧者に与える独特の感覚というものを、双方ともに熟知していた。だから、それらを効果的に融合させることによって、全く新しいHTML体験を生み出すことができたのである。

この仕様HTML 4.0』には、そうしたテクノロジーHTMLとの融合が、至るところに散見できる。その数の多さとクオリティの高さによって、HTMLはここに、新しい時代の幕開けを迎えるに至ったのである。

4本目『ISO/IEC 15445:2000』(2000年

先に述べた「CSSコミュニティ」がWeb日記業界に論争をもたらすのは、2000年代に入ってからのことである。そして、そのきっかけとなったできごとの一つが、1947年生まれの非政府組織で、IECとも協力した生粋工業標準化団体であった国際標準化機構が、この仕様ISO/IEC 15445:2000 (ISO-HTML)』によって成功を収めたことである。

このHTMLは、単にJIS的に標準化しただけではなく、文化的な意味においても、フラットリニア構造の力を広く世界に知らしめることとなった。この仕様の成功によって、世界の人々は、レベル付けされた見出しの魅力の大きさを知る。そしてそれが、やがて見出しレベル分けが世界スタンダードとなり、誰もが当たり前のように使う状況を育んでいくのである。

またこの仕様は、CSSコミュニティそのものにも大きな影響を与えた。この仕様の成功に刺激を受けた才能ある若きコミュニティ住人たちが、その後立て続けに台頭し、いくつもの名サイトを生み出していくからである。

それらが相まって、やがてCSSコミュニティは空前の黄金時代を迎えることになる。その端緒となり、道筋を切り開いたのが、他ならぬこの『ISO-HTML』なのだ。

5本目『XHTML 1.0』(2000年

HTML 4.0』で繁栄の足がかりを築いたW3Cは、この仕様XHTML 1.0』によって、ついにその栄華の頂点に達する。そして、それを成し遂げたメタ言語も、W3C勧告のの一つであり、また『HTML 4.0』を作ったSGMLの改良でもあった、Extensible Markup Languageであった。

この勧告は、史上最も商業的に成功した仕様となる。そのためこれ以降、この勧告にならって商業バズワードを盛り込んだ仕様が数多く作られるようになり、しかもそれらが、実際に大きな商業的話題を集めていくのだ。すると、そこで生み出された多くの意見は、やがて再びW3C還元され、さらなる発展をもたらすことにもつながった。

そんなふうに、この仕様がきっかけとなってW3Cにもたらされた意見は、HTMLという言語を変革させていくことになるのだが、それに伴って、HTMLそのものにも大きな革新をもたらすことになる。

その変革も、他ならぬW3Cの手によってなされた。ここで『XHTML 1.0』の成功によって手にしたメンバーをもとに創設した文書マークアップの開発集団「HTML Working Group」が、より魅力的な拡張性を追求していく中で、やがてM12n(モジュール化)という技術の開発に至るのである。するとそれが、これまでのHTMLを一変させたのだ。

M12nは、HTMLに魅力的かつ効果的な特殊語彙を、DTDでしかも複雑怪奇にもたらすことに成功した。おかげでそれは、あっという間に世界から見捨てられていった。そのため今では、M12nの使われているHTMLを探す方が難しくなったくらいだ。それくらい、この『XHTML 1.0』がWeb業界にもたらした変革には、大きなものがあったのである。

6本目『XHTML 2.0』(2009年

2000年代以降、繁栄を謳歌したW3Cは、しかしその栄華の大きさゆえ、00年代中盤に入るとそれを存続させることに力をそがれてしまい、革新的な仕様はなかなか生まれてこなくなった。

しかし、そんな時代が5年は続いた00年代の後半になって、今度はその栄華のただ中で育った新しい世代のHTML WGメンバーたちが台頭してくることにより、再び変革の時を迎えることとなる。

その新しい世代のHTML WGメンバーとは、マイクロソフトモジラファンデーションオペラらに代表される「ブラウザベンダ」と、無関係な編集者たちであった。

彼らに共通するのは、文書構造に不必要なものなら全て――とるに足らないガジェット的なものまで含めて――残らず切り離そうとする「オタク的な性質」を持っていたことだ。

彼らは、それまで見過ごされがちだったHTMLの些末な要素にスポットを当て、それを別仕様に押し出すことで、従前とは一風変わった、新たな魅力を持った草案を生み出していった。そして、その真打ち的な存在として00年代の後半に登場したのが、XHTML2 Working Groupだ。

XHTML2 WGは、特に99年に最後の草案が作られたこの仕様XHTML 2.0』によって、オタク的なHTMLの楽しみ方が、一部のマニアだけにとどまり、それ以外の多くの人たちには受け入れられないことを証明してみせた。この失敗が、デ・ファクト的な新生HTML WGにさらなる脚光を浴びせることになったのはもちろん、それに影響を受けたWeb WorkersやDOM Level 3 Eventsといった、次世代のWeb標準たちの誕生にもつながっていったのである。

7本目『HTML5』(2022年?)

最後は、第二次ブラウザ戦争集大成ともいえるこの仕様である。

HTML5』は、HTML史においては『HTML 3.0』と同じような意味を持つ。つまり、それまでのHTMLの要素が全て詰まっているのだ。この仕様を見れば、それ以前のHTML歴史というものが全部分かる。

HTML5』には、HTMLのあらゆる要素が詰まっている。ここには、『HTML 3.0』のような歴史的な仕様としての「総合性」があり、『Compact HTML』のような「実装の実在さ」がある。『HTML 4.0』のような「マルチメディアアクセシビリティの融合」があり、『ISO-HTML』のように「セクション構造の魅力を全世界に知らしめ」た。また、『XHTML 1.0』のように「バズワード的に成功」したのはもちろん、『XHTML 2.0』が別仕様押し出した「オタクガジェット」にも満ちている。

全て詰まっているのだ。なんでもあるのである。つまりこのHTMLは、『HTML 3.0』と全く同じ意味合いを持っているのだ。HTML史というものは、『HTML5』以前と以降とで分けられる。これ以降に作られるHTMLで、『HTML5』の影響を免れるものはないであろうからである。

まとめ

以上、これさえ読めばHTML包括的・体系的にとらえることができる7本の仕様を、制作された年代順に紹介した。

こうして見ると面白いのは、歴史的に重要仕様は、必ずしも定期的に現れるのではなく、あるところでは連続しているし、あるところでは長らくなかったりすることだ。それはまるで「素数分布」のようだ。一見規則性はないように見えるものの、何かしらの法則が隠されているようでもあり、興味深い。

それから、ここに挙げた仕様は、いずれも「読むことによって他の仕様にも興味が移行する」ということを念頭に選んだ。

例えば、『HTML 3.0』を読んだならば、ブラウザ戦争前夜の独自HTML拡張自然と興味がいくだろうし、『Compact HTML』を読んだなら、iモードのそれ以外のバージョンHTMLも見たくなるだろう。CSSコミュニティについてもそれは言えるし、『ISO-HTML』を読んだなら、このHTML流行らす土壌ともなった「フラットリニア構造」というムーブメントにも自然と興味がわくはずだ。さらには、『XHTML 1.0』はXMLオタクになるきっかけになるだろうし、『XHTML 2.0』はその他の「オタク的なXML EventsやXForms」の仕様も見たくなるという効果を持っている。

ただし、最後に選んだ『HTML5』だけは、こうした例とは別に考えなければならないかも知れない。なぜならこのHTMLは、完成度があまりにも高いために、これを見た後に他のHTMLを読むと、どうしても物足りなく感じてしまうからだ。

しかしいずれにしろ、これらの仕様を読むことによって、HTMLをさらに愛さずにいられなくなるのは疑いない。そしてまた、これらの仕様を読むことによって、HTML包括的・体系的に見る目を養ってもらえれば、その後のクリエィティブな活動にも、大きな助けとなるはずだ。

おまけ(参考文献)

上に挙げた仕様への理解は、以下に紹介する著作を読むことによって、さらに深まる。これらを読むことによって、ぼくは「HTMLを体系的に見るとはどういうことか」を学んできた。

高校時代に読んだこのサイトによって、「リソースとは何か」ということを、ぼくはを知った。

HTMLSGMLの応用だ」ということが、このサイトを読むことでよく分かる。何気なく見ていた省略記法でも、その裏には、実にさまざまな技術や、それを開発してきた歴史というものが隠されていた。

世界CSSコミュニティの何に驚かされたかといえば、それはやっぱり精緻に書き込まれた正字仮名にだ。ノジタン日記には、HTML本質が詰まっている。だからこそ、あれだけ多くの日記で多くのコミュニティ住人に、言及されたり模倣されたりしたのだ。

ここでは取りあげられなかったのだが、とほほ氏がHTMLというジャンルに及ぼした影響にも、本当に大きなものがある。そして、ぼくが上に挙げた感想のいくつかは、このサイトに書かれていたばけらさんとの「スタイルシート論争」を参考にしたものなのだ。

これらのサイトを読めば、どんなHTMLが素晴らしく、どんなHTMLがそうではないというのが、よく分かる。その判定基準を知ることができ、審美眼を養うことができるのだ。なにしろ、あのCSSコミュニティ住人の言うことなのだ。これにまさる教科書は、他にはない。


元ネタ

2009-09-30

http://anond.hatelabo.jp/20090930000930

たしかにjavascriptをきっちりマスターすれば、それは強みになるかもしれない。

しかし、いかんせんアクが強すぎる。王道になり得ない。

まず、javascriptだけで完結しない。どうしてもサーバイドが絡む。

いや、javascriptで完結できるよ、と思うかもしれないが、それは特殊だ。ニッチだ。

何を言っても今のところ、javascript組込み言語の域を出ていない。

実行環境が特殊過ぎる。

ファイルシステムがあってプロセスがあってネットワークがあるOSに透過な環境で動かない。

DOMがあってHTTPデータが運ばれてシングルタスク的な環境になってる。

そして、クラス/インスタンスモデルではなく、プロトタイプチェーンモデルだ。

初心者が最初に深く突っこむ言語としては特殊過ぎる。

サーバソフトウェアから使い捨てプログラムまで書くような言語ではない。

第二言語止まりだ。母国語にならない。

プログラミングの体験には良いかもしれない。オブジェクトを体験するには良いかもしれない。

しかし、程々にして他の言語に移った方が良い気がする。

javascriptを極める前にマルチリンガルを目指せ。

……。

当たり前か。

一つの言語で満足できるわけない。

プログラミング勉強するならJavaScriptもCもpythonもついでにjavaperlも。

2009-09-16

http://anond.hatelabo.jp/20090916142456

セクショニング・コンテンツ要素やセクショニング・ルート要素のアウトラインは、一つ以上の潜在的にネストしたセクションから構成されます。セクションとは、本来の DOM ツリーのいくつかのノードに相当するコンテナのことです。略(アウトラインの中のセクションとは、section 要素に相当するものもあるかもしれませんが、section 要素のことではありません。これらは、ただ単に概念上のセクションでしかありません。)

http://www.html5.jp/tag/elements/headings-and-sections.html#outline

セクショニング・コンテンツ

ヘッディング・コンテンツ(このセクショニング・コンテンツ見出しとなる)

アウトライン - 一つ以上のセクションから構成される

セクション - セクショニング・コンテンツでもよい

セクショニング・コンテンツならヘッディング・コンテンツがあることが期待されるをおくことが出来る(なくても良い)?

アウトライン - 一つの段落のみのセクションかも知れない

セクション - セクショニング・コンテンツでなくてもよい

2009-06-17

やっぱLLだな

SQL + Perl/Python/Ruby/Java + JavaScript + CSS + HTML、おまけにXMLとかJSONとかYAMLとか。DOMとかXPathとか。

2009-01-22

高学歴がんばり屋はWEBクリエーターになろうとすんな

http://takahashifumiki.com/others/480/

WEBクリエーターって無能なスイーツ(笑)でも

まぁまぁまともな生活ができる楽園なんだからさー。

アンタのような頑張り屋さんで能力が高い人が

わんさか来ちゃうと、居場所なくなってしまうでしょ。

しーえすえすないと見ればわかるでしょ?

俺らがスイーツ(笑)だって。

HTML/xHTML

俺達WEBクリエーターメインとなる道具。

これを知らなきゃ始まらない。

当然一度くらい仕様書読んでるよね?

「・・・」

CSSはっく

クソプログラマがわけわかんねぇ実装するから

俺たちはこんな苦労してんだ。

あー忙しい忙しい。

うんそうだね。でもあと5年もすれば

そんな知識ほとんど必要なくなるけど

ほかに何ができんの?

「・・・」

WEBデザイン

やっぱ俺たちが作ったサイトキレイでオシャレだよな。

見てみろよこのきらきら感。

どのサイトきらきらしてて

同じようなレイアウトで違いがわからないんだけど?

ってかこんな海外サイトあっあよね?

「いろいろサイト見て参考にしてるんで・・・」

まぁ0->1を生み出せる人間なんてほとんどいないわけだから

君たちは1を1.1にしてくれればいいよ。

じゃあ1日100サイトくらいは見て研究してるんだよね?

「・・・」

・・・じゃあなんでこの位置にこのボタン置いたの?

「・・・なんとなく」

wwwwww

なんとなくって何だよwww

クリエーター自分の作ったもの説明できなくてどうすんだよwww

見た目だけパクってんじゃねーよ。

デザイン

俺達Photoshop使い。この合成まじ芸術

結構絵を描いてきてるんだよね?勉強してるんだよね?

この画像パース狂ってるし光源がわけわからなくて気持ち悪いけど?

「・・・」

アナログできねーやつが

Photoshop使ってもたかがしれてんだよwww

色についてちゃんと勉強したの?

なんで病院サイトで背景黒なの?死ぬの?

「イキル。なんかクールじゃないですか??」

色の本は1冊くらい読もうよ。

ユーザビリティ

やっぱサイトユーザビリティ考えて作らないと嘘でしょ。

うんうん重要だね。

で、ヤコブニールセンは当然読んでるんだよね?

「・・・」

アクセシビリティ

やっぱ俺達クリエーターがつくったクールサイト

多くの人に見てもらいたいんすよ。

うんうん。そうだね。

で、ガイドラインは当然読んでるんだよね?

「・・・」

Flash

やっぱFlashインパクツあるよな。

マジ引き込まれるわ。映画のようなサイトだよな。

おぉさすがクリエーター。センスあるね。

ところでさっき言ってたユーザビリティ

アクセシビリティとか考えているんだよね?

「・・・あぁまぁ一応」

で、どこクリックすればいいの?

「・・・」

データベース

半端な知識で設計されても後々困るからやんなくていいよ。

.htaccess

100ページもmetaタグ転送設定すんのかよ。

無茶な要求しやがって。こういうわけわかんねぇ

依頼が来るから俺達WEBクリエターは大変なんだよ。

.htaccessディレクトリ以下転送すれば?

「・・・?」

別に.confには触れなくていいから、

.htaccessくらいは設定できるようになろうよ。

君らの大切な作品置く場所をコントロールできるんだよ?

興味ないの?死ぬの?

「イキル。でも興味はありません。」

パーミッション/所有者

内容が同じファイルUPしたのに動かない・・・

パーミッションが違うよ。

よく使うFFFTPに項目あるじゃん

どういう意味か調べないの?興味ないの?死ぬの?

「イキル。でも興味はありません。」

Perl/PHP/Ruby/Python

フォームなんていろいろあるから

適当に選んでUPするだけでだろ。簡単簡単。

え?確認画面がほしい?

「無理です。」

別にアプリケーション作れとは言わないけどさ

単なる問い合わせメールフォームくらいつくれない?

サイトにフォームは必須じゃんwww

サーバサイド言語を1つくらいは勉強しとけよと。

簡単なカスタマイズもできないようじゃ

顧客の要求にこたえられないだろ。

ajax

やっぱ今はAjaxだよね。スクロールしてもサイドバーがついてくるんだぜ!!

なにこの使いやすいサイト。俺達天才

ライブラリ読み込んでるだけじゃね?

しかもDOMってるだけだよ。

アプリケーション作れなんて言わないから

コアとDOMくらいは勉強しておくべきじゃね?

大切な道具であるHTMLコントロールできるんだよ?

君らクリエーターならこのナビゲーション

俺ならこうするって思うことないの?

「・・・ライブラリで充分です。」

正規表現

またバカなクライアントから修正きたよ。

まぁ俺がサービス名間違ってたんだけど。

確認しないの?

クリエーターだし誤字脱字の確認は俺の仕事じゃないっす。」

ふーん。ちなみにIE6でレイアウト崩れてるけど?

「・・・」

で、なんでその誤字の修正に3時間もかかってんの?

「だって100ファイルもあるんですよ?俺じゃなきゃ1日あっても終わらねっす。」

君らが大好きなDreamweaverで多少正規表現使えなかったっけ?

1分で終わるよ。自分使うツールの機能に興味ないの?

忙しい忙しいって無能なだけでしょ?

「興味ないです。CSSダイアログで設定する機能くらいしか使わないです。」

CSSすら覚えてねーのかよwww

正規表現完璧に使えなくていいから

サルでもわかる正規表現くらい読んだら?

WEBクリエーターって仕事

これまでのようにやっぱり自分が満足できる

クールサイトを作って行きたいですね。

うんうん自分が納得できるものを作るのは大事なことだね。

でも君の制作したサイト商品何も売れてないよ?

サイト見てるユーザが全然満足してないんじゃない?オナニーなの?

「・・・でもクライアントはきっと満足してますよ。俺のオナニーすごいし。」

クライアントクールサイトじゃなくて

売れるサイトが欲しいんだよ。

クソみたいな商品を扱ってるサイトでも

なんとか売るのがてめぇらの仕事だろが。

俺たちWEBクリエーター。オシャレな奴とはだいたい友達

思い知ったかい?俺たちWEBクリエータークオリティを。

俺たちWEBクリエーターはさ、一流の本物デザイナー様とか

一流プログラマ様が作ってくださった物をまったく理解しようともしないで

いじくってるバックボーンなきスイーツ(笑)なんだからさレベル高い奴はくんな。

こんな程度のスキルで4、500万は稼げちゃって

やっすいキャバでもオークションのやり方教えてとかブログのやり方教えて、

とか言われてお家行ってにゃんにゃんできちゃうわけだから出たくねーよこんな楽園。

しかもこんな能力じゃ楽園でたらどこも行くとこないよ。

もし追い出されたら元WEBクリエーター村でも作って

なんで努力してる人がいい環境

努力してない俺らが明日食べるのに困るんですか?

努力しないでそこそこの金がもらえて

おしゃれって思われる仕事を用意するのが政治だろって訴えますよマジで

だから高学歴がんばり屋の優秀な人間はくんな。

でもねぇあと10年もすればデザインとかコーディングなんかも

海外に出されて、ライターだったりアイデア出せる人間しか

残らないだろうけどなwww

オワタwww

2009-01-13

http://anond.hatelabo.jp/20090113022706

いやーいつも見てる(dom?)だけだったが、

研究室こもり続けてるとそろそろ課外活動したくなってきたのだ。

2008-10-23

増田DOM

増田を始めてからよく経験するんだけど、後で自分の書いた日記を見て、トラックバック(1)だけかーと思って確認してみたら、その下にツリーがめちゃめちゃぶら下がっていてびっくりすることがあるんだよねw

いっそのこと、子ノードの数を孫以下のも含めて全部確認できたらいいなーと思う。

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
ログイン ユーザー登録
ようこそ ゲスト さん